@marinoscar/platform-web 0.1.0-next.18 → 0.1.0-next.20
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 +32 -0
- package/README.md +5 -3
- package/dist/ai/headless/errors.d.ts +7 -0
- package/dist/ai/headless/errors.d.ts.map +1 -1
- package/dist/ai/headless/errors.js +2 -0
- package/dist/ai/headless/errors.js.map +1 -1
- package/dist/ai/headless/types.d.ts +30 -5
- package/dist/ai/headless/types.d.ts.map +1 -1
- package/dist/ai/headless/types.js +22 -10
- package/dist/ai/headless/types.js.map +1 -1
- package/dist/ai/headless/use-ai-usage.d.ts +5 -2
- package/dist/ai/headless/use-ai-usage.d.ts.map +1 -1
- package/dist/ai/headless/use-ai-usage.js +15 -5
- package/dist/ai/headless/use-ai-usage.js.map +1 -1
- package/dist/ai/ui/AiUsagePage.d.ts.map +1 -1
- package/dist/ai/ui/AiUsagePage.js +7 -5
- package/dist/ai/ui/AiUsagePage.js.map +1 -1
- package/dist/ai/ui/shared/AiErrorAlert.d.ts.map +1 -1
- package/dist/ai/ui/shared/AiErrorAlert.js +5 -1
- package/dist/ai/ui/shared/AiErrorAlert.js.map +1 -1
- package/dist/ai/ui/usage/aiUsageFormat.d.ts +9 -6
- package/dist/ai/ui/usage/aiUsageFormat.d.ts.map +1 -1
- package/dist/ai/ui/usage/aiUsageFormat.js +28 -12
- package/dist/ai/ui/usage/aiUsageFormat.js.map +1 -1
- package/dist/ai/ui/user/MyAiUsageSection.d.ts.map +1 -1
- package/dist/ai/ui/user/MyAiUsageSection.js +5 -2
- package/dist/ai/ui/user/MyAiUsageSection.js.map +1 -1
- package/dist/ai/ui/user/aiErrorText.d.ts +4 -1
- package/dist/ai/ui/user/aiErrorText.d.ts.map +1 -1
- package/dist/ai/ui/user/aiErrorText.js +10 -2
- package/dist/ai/ui/user/aiErrorText.js.map +1 -1
- package/dist/alerts/headless/client.d.ts +134 -0
- package/dist/alerts/headless/client.d.ts.map +1 -0
- package/dist/alerts/headless/client.js +105 -0
- package/dist/alerts/headless/client.js.map +1 -0
- package/dist/alerts/headless/format.d.ts +95 -0
- package/dist/alerts/headless/format.d.ts.map +1 -0
- package/dist/alerts/headless/format.js +164 -0
- package/dist/alerts/headless/format.js.map +1 -0
- package/dist/alerts/headless/hooks.d.ts +245 -0
- package/dist/alerts/headless/hooks.d.ts.map +1 -0
- package/dist/alerts/headless/hooks.js +315 -0
- package/dist/alerts/headless/hooks.js.map +1 -0
- package/dist/alerts/headless/index.d.ts +9 -0
- package/dist/alerts/headless/index.d.ts.map +1 -0
- package/dist/alerts/headless/index.js +9 -0
- package/dist/alerts/headless/index.js.map +1 -0
- package/dist/alerts/headless/rule-draft.d.ts +175 -0
- package/dist/alerts/headless/rule-draft.d.ts.map +1 -0
- package/dist/alerts/headless/rule-draft.js +261 -0
- package/dist/alerts/headless/rule-draft.js.map +1 -0
- package/dist/alerts/ui/AlertIncidentDrawer.d.ts +30 -0
- package/dist/alerts/ui/AlertIncidentDrawer.d.ts.map +1 -0
- package/dist/alerts/ui/AlertIncidentDrawer.js +33 -0
- package/dist/alerts/ui/AlertIncidentDrawer.js.map +1 -0
- package/dist/alerts/ui/AlertRuleDialog.d.ts +47 -0
- package/dist/alerts/ui/AlertRuleDialog.d.ts.map +1 -0
- package/dist/alerts/ui/AlertRuleDialog.js +124 -0
- package/dist/alerts/ui/AlertRuleDialog.js.map +1 -0
- package/dist/alerts/ui/AlertRuleTestResult.d.ts +23 -0
- package/dist/alerts/ui/AlertRuleTestResult.d.ts.map +1 -0
- package/dist/alerts/ui/AlertRuleTestResult.js +30 -0
- package/dist/alerts/ui/AlertRuleTestResult.js.map +1 -0
- package/dist/alerts/ui/AlertsPage.d.ts +41 -0
- package/dist/alerts/ui/AlertsPage.d.ts.map +1 -0
- package/dist/alerts/ui/AlertsPage.js +238 -0
- package/dist/alerts/ui/AlertsPage.js.map +1 -0
- package/dist/alerts/ui/FiringAlertsBanner.d.ts +28 -0
- package/dist/alerts/ui/FiringAlertsBanner.d.ts.map +1 -0
- package/dist/alerts/ui/FiringAlertsBanner.js +45 -0
- package/dist/alerts/ui/FiringAlertsBanner.js.map +1 -0
- package/dist/alerts/ui/copy.d.ts +15 -0
- package/dist/alerts/ui/copy.d.ts.map +1 -0
- package/dist/alerts/ui/copy.js +14 -0
- package/dist/alerts/ui/copy.js.map +1 -0
- package/dist/alerts/ui/index.d.ts +14 -0
- package/dist/alerts/ui/index.d.ts.map +1 -0
- package/dist/alerts/ui/index.js +12 -0
- package/dist/alerts/ui/index.js.map +1 -0
- package/dist/alerts/ui/parts.d.ts +26 -0
- package/dist/alerts/ui/parts.d.ts.map +1 -0
- package/dist/alerts/ui/parts.js +27 -0
- package/dist/alerts/ui/parts.js.map +1 -0
- package/dist/alerts/ui/settings.d.ts +27 -0
- package/dist/alerts/ui/settings.d.ts.map +1 -0
- package/dist/alerts/ui/settings.js +37 -0
- package/dist/alerts/ui/settings.js.map +1 -0
- package/dist/core/http/client.d.ts.map +1 -1
- package/dist/core/http/client.js +7 -0
- package/dist/core/http/client.js.map +1 -1
- package/dist/core/http/sse.d.ts.map +1 -1
- package/dist/core/http/sse.js +3 -1
- package/dist/core/http/sse.js.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/time-zone/format.d.ts +6 -2
- package/dist/core/time-zone/format.d.ts.map +1 -1
- package/dist/core/time-zone/format.js +27 -25
- package/dist/core/time-zone/format.js.map +1 -1
- package/dist/core/time-zone/request.d.ts +17 -0
- package/dist/core/time-zone/request.d.ts.map +1 -0
- package/dist/core/time-zone/request.js +26 -0
- package/dist/core/time-zone/request.js.map +1 -0
- package/dist/datatable/headless/export/exportModel.d.ts +7 -1
- package/dist/datatable/headless/export/exportModel.d.ts.map +1 -1
- package/dist/datatable/headless/export/exportModel.js +10 -2
- package/dist/datatable/headless/export/exportModel.js.map +1 -1
- package/dist/datatable/headless/filter/dateRange.d.ts +40 -0
- package/dist/datatable/headless/filter/dateRange.d.ts.map +1 -0
- package/dist/datatable/headless/filter/dateRange.js +53 -0
- package/dist/datatable/headless/filter/dateRange.js.map +1 -0
- package/dist/datatable/headless/filter/filterTypes.d.ts.map +1 -1
- package/dist/datatable/headless/filter/filterTypes.js +24 -4
- package/dist/datatable/headless/filter/filterTypes.js.map +1 -1
- package/dist/datatable/headless/index.d.ts +2 -0
- package/dist/datatable/headless/index.d.ts.map +1 -1
- package/dist/datatable/headless/index.js +1 -0
- package/dist/datatable/headless/index.js.map +1 -1
- package/dist/db-backup/internal/time-zones.d.ts +3 -0
- package/dist/db-backup/internal/time-zones.d.ts.map +1 -0
- package/dist/db-backup/internal/time-zones.js +24 -0
- package/dist/db-backup/internal/time-zones.js.map +1 -0
- package/dist/db-backup/ui/DbBackupConfigPanel.d.ts +11 -6
- package/dist/db-backup/ui/DbBackupConfigPanel.d.ts.map +1 -1
- package/dist/db-backup/ui/DbBackupConfigPanel.js +18 -11
- package/dist/db-backup/ui/DbBackupConfigPanel.js.map +1 -1
- package/dist/identity/ui/tokens/CreatePatDialog.d.ts +17 -0
- package/dist/identity/ui/tokens/CreatePatDialog.d.ts.map +1 -1
- package/dist/identity/ui/tokens/CreatePatDialog.js +34 -11
- package/dist/identity/ui/tokens/CreatePatDialog.js.map +1 -1
- package/dist/nodes/headless/api.d.ts +3 -1
- package/dist/nodes/headless/api.d.ts.map +1 -1
- package/dist/nodes/headless/api.js +22 -0
- package/dist/nodes/headless/api.js.map +1 -1
- package/dist/nodes/headless/index.d.ts +7 -2
- package/dist/nodes/headless/index.d.ts.map +1 -1
- package/dist/nodes/headless/index.js +4 -1
- package/dist/nodes/headless/index.js.map +1 -1
- package/dist/nodes/headless/node-events.d.ts +43 -0
- package/dist/nodes/headless/node-events.d.ts.map +1 -0
- package/dist/nodes/headless/node-events.js +150 -0
- package/dist/nodes/headless/node-events.js.map +1 -0
- package/dist/nodes/headless/power.d.ts +43 -0
- package/dist/nodes/headless/power.d.ts.map +1 -0
- package/dist/nodes/headless/power.js +74 -0
- package/dist/nodes/headless/power.js.map +1 -0
- package/dist/nodes/headless/types.d.ts +40 -3
- package/dist/nodes/headless/types.d.ts.map +1 -1
- package/dist/nodes/headless/types.js +1 -1
- package/dist/nodes/headless/types.js.map +1 -1
- package/dist/nodes/headless/use-node-events.d.ts +59 -0
- package/dist/nodes/headless/use-node-events.d.ts.map +1 -0
- package/dist/nodes/headless/use-node-events.js +159 -0
- package/dist/nodes/headless/use-node-events.js.map +1 -0
- package/dist/nodes/ui/NodeEventsTimeline.d.ts +39 -0
- package/dist/nodes/ui/NodeEventsTimeline.d.ts.map +1 -0
- package/dist/nodes/ui/NodeEventsTimeline.js +63 -0
- package/dist/nodes/ui/NodeEventsTimeline.js.map +1 -0
- package/dist/nodes/ui/NodePowerBadge.d.ts +27 -0
- package/dist/nodes/ui/NodePowerBadge.d.ts.map +1 -0
- package/dist/nodes/ui/NodePowerBadge.js +48 -0
- package/dist/nodes/ui/NodePowerBadge.js.map +1 -0
- package/dist/nodes/ui/NodeVitalsDialog.d.ts +11 -1
- package/dist/nodes/ui/NodeVitalsDialog.d.ts.map +1 -1
- package/dist/nodes/ui/NodeVitalsDialog.js +14 -5
- package/dist/nodes/ui/NodeVitalsDialog.js.map +1 -1
- package/dist/nodes/ui/WorkersPage.d.ts.map +1 -1
- package/dist/nodes/ui/WorkersPage.js +2 -1
- package/dist/nodes/ui/WorkersPage.js.map +1 -1
- package/dist/nodes/ui/workerVitals.d.ts +17 -1
- package/dist/nodes/ui/workerVitals.d.ts.map +1 -1
- package/dist/nodes/ui/workerVitals.js +43 -0
- package/dist/nodes/ui/workerVitals.js.map +1 -1
- package/dist/nodes/ui/workersTable.d.ts.map +1 -1
- package/dist/nodes/ui/workersTable.js +2 -1
- package/dist/nodes/ui/workersTable.js.map +1 -1
- package/dist/settings/ui/ProfileSettings.d.ts +1 -1
- package/dist/settings/ui/ProfileSettings.d.ts.map +1 -1
- package/dist/settings/ui/UserSettingsSection.d.ts +1 -1
- package/dist/settings/ui/UserSettingsSection.d.ts.map +1 -1
- package/dist/sharing/internal/format.d.ts +10 -1
- package/dist/sharing/internal/format.d.ts.map +1 -1
- package/dist/sharing/internal/format.js +10 -1
- package/dist/sharing/internal/format.js.map +1 -1
- package/dist/telemetry/headless/hooks/useTelemetryDashboard.d.ts +1 -1
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.d.ts +11 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.d.ts.map +1 -1
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.js +17 -2
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.js.map +1 -1
- package/dist/webhooks/headless/client.d.ts +101 -0
- package/dist/webhooks/headless/client.d.ts.map +1 -0
- package/dist/webhooks/headless/client.js +105 -0
- package/dist/webhooks/headless/client.js.map +1 -0
- package/dist/webhooks/headless/event-selection.d.ts +119 -0
- package/dist/webhooks/headless/event-selection.d.ts.map +1 -0
- package/dist/webhooks/headless/event-selection.js +225 -0
- package/dist/webhooks/headless/event-selection.js.map +1 -0
- package/dist/webhooks/headless/format.d.ts +84 -0
- package/dist/webhooks/headless/format.d.ts.map +1 -0
- package/dist/webhooks/headless/format.js +142 -0
- package/dist/webhooks/headless/format.js.map +1 -0
- package/dist/webhooks/headless/hooks.d.ts +199 -0
- package/dist/webhooks/headless/hooks.d.ts.map +1 -0
- package/dist/webhooks/headless/hooks.js +249 -0
- package/dist/webhooks/headless/hooks.js.map +1 -0
- package/dist/webhooks/headless/index.d.ts +9 -0
- package/dist/webhooks/headless/index.d.ts.map +1 -0
- package/dist/webhooks/headless/index.js +9 -0
- package/dist/webhooks/headless/index.js.map +1 -0
- package/dist/webhooks/ui/WebhookDeliveryDrawer.d.ts +32 -0
- package/dist/webhooks/ui/WebhookDeliveryDrawer.d.ts.map +1 -0
- package/dist/webhooks/ui/WebhookDeliveryDrawer.js +64 -0
- package/dist/webhooks/ui/WebhookDeliveryDrawer.js.map +1 -0
- package/dist/webhooks/ui/WebhookEndpointDetail.d.ts +21 -0
- package/dist/webhooks/ui/WebhookEndpointDetail.d.ts.map +1 -0
- package/dist/webhooks/ui/WebhookEndpointDetail.js +96 -0
- package/dist/webhooks/ui/WebhookEndpointDetail.js.map +1 -0
- package/dist/webhooks/ui/WebhookEndpointDialog.d.ts +39 -0
- package/dist/webhooks/ui/WebhookEndpointDialog.d.ts.map +1 -0
- package/dist/webhooks/ui/WebhookEndpointDialog.js +79 -0
- package/dist/webhooks/ui/WebhookEndpointDialog.js.map +1 -0
- package/dist/webhooks/ui/WebhookEventPicker.d.ts +30 -0
- package/dist/webhooks/ui/WebhookEventPicker.d.ts.map +1 -0
- package/dist/webhooks/ui/WebhookEventPicker.js +33 -0
- package/dist/webhooks/ui/WebhookEventPicker.js.map +1 -0
- package/dist/webhooks/ui/WebhookSecretDialog.d.ts +27 -0
- package/dist/webhooks/ui/WebhookSecretDialog.d.ts.map +1 -0
- package/dist/webhooks/ui/WebhookSecretDialog.js +52 -0
- package/dist/webhooks/ui/WebhookSecretDialog.js.map +1 -0
- package/dist/webhooks/ui/WebhookSignatureHelp.d.ts +18 -0
- package/dist/webhooks/ui/WebhookSignatureHelp.d.ts.map +1 -0
- package/dist/webhooks/ui/WebhookSignatureHelp.js +40 -0
- package/dist/webhooks/ui/WebhookSignatureHelp.js.map +1 -0
- package/dist/webhooks/ui/WebhooksPage.d.ts +47 -0
- package/dist/webhooks/ui/WebhooksPage.d.ts.map +1 -0
- package/dist/webhooks/ui/WebhooksPage.js +172 -0
- package/dist/webhooks/ui/WebhooksPage.js.map +1 -0
- package/dist/webhooks/ui/copy.d.ts +24 -0
- package/dist/webhooks/ui/copy.d.ts.map +1 -0
- package/dist/webhooks/ui/copy.js +34 -0
- package/dist/webhooks/ui/copy.js.map +1 -0
- package/dist/webhooks/ui/index.d.ts +15 -0
- package/dist/webhooks/ui/index.d.ts.map +1 -0
- package/dist/webhooks/ui/index.js +12 -0
- package/dist/webhooks/ui/index.js.map +1 -0
- package/dist/webhooks/ui/parts.d.ts +25 -0
- package/dist/webhooks/ui/parts.d.ts.map +1 -0
- package/dist/webhooks/ui/parts.js +28 -0
- package/dist/webhooks/ui/parts.js.map +1 -0
- package/dist/webhooks/ui/settings.d.ts +58 -0
- package/dist/webhooks/ui/settings.d.ts.map +1 -0
- package/dist/webhooks/ui/settings.js +79 -0
- package/dist/webhooks/ui/settings.js.map +1 -0
- package/package.json +18 -2
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One node's recent events (issue #1045): `GET /api/admin/nodes/:id/events`, newest
|
|
3
|
+
* first, with "load more".
|
|
4
|
+
*
|
|
5
|
+
* The same contract as the fleet hooks (`use-worker-nodes.ts`): every function
|
|
6
|
+
* resolves rather than throws, and a failure is a STRING the caller renders.
|
|
7
|
+
*
|
|
8
|
+
* The first page is asked for when the node or the filters change; `loadMore`
|
|
9
|
+
* appends the next page; `refresh` re-reads from the first page WITHOUT raising
|
|
10
|
+
* the loading flag (the list stays on screen). An event that arrives between a
|
|
11
|
+
* first page and a "load more" shifts the pages by one, so an appended page is
|
|
12
|
+
* de-duplicated by id rather than trusted to start where the last one ended.
|
|
13
|
+
*
|
|
14
|
+
* The query is read member by member (`page`, `pageSize`, `type`, `severity`),
|
|
15
|
+
* so an inline object literal does not re-fetch on every render.
|
|
16
|
+
*/
|
|
17
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
18
|
+
import { isPlatformApiError } from '../../core/index.js';
|
|
19
|
+
import { useIsMounted } from '../internal/use-is-mounted.js';
|
|
20
|
+
import { useNodesApi } from './adapters.js';
|
|
21
|
+
/**
|
|
22
|
+
* The page as the hook keeps it. A malformed answer (no `items` array: a
|
|
23
|
+
* transport that resolved nothing, an older server's unrelated body) reads as
|
|
24
|
+
* an empty page rather than crashing the dialog that shows it.
|
|
25
|
+
*/
|
|
26
|
+
function normalized(data) {
|
|
27
|
+
const items = data && Array.isArray(data.items) ? data.items : [];
|
|
28
|
+
const num = (value, fallback) => (typeof value === 'number' && Number.isFinite(value) ? value : fallback);
|
|
29
|
+
return {
|
|
30
|
+
items,
|
|
31
|
+
total: num(data?.total, items.length),
|
|
32
|
+
page: num(data?.page, 1),
|
|
33
|
+
pageSize: num(data?.pageSize, items.length),
|
|
34
|
+
totalPages: num(data?.totalPages, items.length > 0 ? 1 : 0),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function messageFor(err) {
|
|
38
|
+
if (isPlatformApiError(err)) {
|
|
39
|
+
if (err.status === 403)
|
|
40
|
+
return 'You do not have permission to view worker node events';
|
|
41
|
+
return err.message;
|
|
42
|
+
}
|
|
43
|
+
return 'Failed to load node events';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* `GET /api/admin/nodes/:id/events`: a node's events, newest first, page by page.
|
|
47
|
+
*
|
|
48
|
+
* @param nodeId - the node id, or `null` to ask for nothing.
|
|
49
|
+
* @param query - the first page, its size and the filters (every member optional).
|
|
50
|
+
* @param api - a client to use instead of the adapters' or the host's.
|
|
51
|
+
* @returns the events and their state.
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```tsx
|
|
55
|
+
* const { events, hasMore, loadMore } = useNodeEvents(node.id, { pageSize: 20, severity: 'critical' });
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @extensionPoint hook
|
|
59
|
+
* @stability experimental
|
|
60
|
+
*/
|
|
61
|
+
export function useNodeEvents(nodeId, query = {}, api) {
|
|
62
|
+
const client = useNodesApi(api);
|
|
63
|
+
const { page: firstPage = 1, pageSize, type, severity } = query;
|
|
64
|
+
const [events, setEvents] = useState([]);
|
|
65
|
+
const [total, setTotal] = useState(0);
|
|
66
|
+
const [lastPage, setLastPage] = useState(0);
|
|
67
|
+
const [totalPages, setTotalPages] = useState(0);
|
|
68
|
+
const [isLoading, setIsLoading] = useState(nodeId !== null);
|
|
69
|
+
const [isLoadingMore, setIsLoadingMore] = useState(false);
|
|
70
|
+
const [error, setError] = useState(null);
|
|
71
|
+
const isMounted = useIsMounted();
|
|
72
|
+
// Bumped by every first-page read, so a "load more" that settles after the
|
|
73
|
+
// node or the filters changed is dropped instead of appended to the new list.
|
|
74
|
+
const generation = useRef(0);
|
|
75
|
+
const loadingMore = useRef(false);
|
|
76
|
+
const pageQuery = useCallback((page) => ({
|
|
77
|
+
page,
|
|
78
|
+
...(pageSize !== undefined ? { pageSize } : {}),
|
|
79
|
+
...(type ? { type } : {}),
|
|
80
|
+
...(severity ? { severity } : {}),
|
|
81
|
+
}), [pageSize, type, severity]);
|
|
82
|
+
const load = useCallback(async (showLoading) => {
|
|
83
|
+
const run = ++generation.current;
|
|
84
|
+
if (nodeId === null) {
|
|
85
|
+
setEvents([]);
|
|
86
|
+
setTotal(0);
|
|
87
|
+
setLastPage(0);
|
|
88
|
+
setTotalPages(0);
|
|
89
|
+
setError(null);
|
|
90
|
+
setIsLoading(false);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (showLoading)
|
|
94
|
+
setIsLoading(true);
|
|
95
|
+
try {
|
|
96
|
+
const data = normalized(await client.listNodeEvents(nodeId, pageQuery(firstPage)));
|
|
97
|
+
if (isMounted() && run === generation.current) {
|
|
98
|
+
setEvents(data.items);
|
|
99
|
+
setTotal(data.total);
|
|
100
|
+
setLastPage(data.page);
|
|
101
|
+
setTotalPages(data.totalPages);
|
|
102
|
+
setError(null);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
if (isMounted() && run === generation.current) {
|
|
107
|
+
setError(messageFor(err));
|
|
108
|
+
setEvents([]);
|
|
109
|
+
setTotal(0);
|
|
110
|
+
setLastPage(0);
|
|
111
|
+
setTotalPages(0);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
finally {
|
|
115
|
+
if (isMounted() && showLoading && run === generation.current)
|
|
116
|
+
setIsLoading(false);
|
|
117
|
+
}
|
|
118
|
+
}, [client, nodeId, firstPage, pageQuery, isMounted]);
|
|
119
|
+
useEffect(() => {
|
|
120
|
+
void load(true);
|
|
121
|
+
}, [load]);
|
|
122
|
+
const refresh = useCallback(async () => {
|
|
123
|
+
await load(false);
|
|
124
|
+
}, [load]);
|
|
125
|
+
const hasMore = nodeId !== null && lastPage > 0 && lastPage < totalPages;
|
|
126
|
+
const loadMore = useCallback(async () => {
|
|
127
|
+
if (nodeId === null || loadingMore.current || !(lastPage > 0 && lastPage < totalPages))
|
|
128
|
+
return;
|
|
129
|
+
const run = generation.current;
|
|
130
|
+
loadingMore.current = true;
|
|
131
|
+
setIsLoadingMore(true);
|
|
132
|
+
try {
|
|
133
|
+
const data = normalized(await client.listNodeEvents(nodeId, pageQuery(lastPage + 1)));
|
|
134
|
+
if (isMounted() && run === generation.current) {
|
|
135
|
+
setEvents((current) => {
|
|
136
|
+
const seen = new Set(current.map((event) => event.id));
|
|
137
|
+
return [...current, ...data.items.filter((event) => !seen.has(event.id))];
|
|
138
|
+
});
|
|
139
|
+
setTotal(data.total);
|
|
140
|
+
setLastPage(data.page);
|
|
141
|
+
setTotalPages(data.totalPages);
|
|
142
|
+
setError(null);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch (err) {
|
|
146
|
+
// The events already shown stay: they are a history, not a verdict that
|
|
147
|
+
// a failed read would make wrong.
|
|
148
|
+
if (isMounted() && run === generation.current)
|
|
149
|
+
setError(messageFor(err));
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
loadingMore.current = false;
|
|
153
|
+
if (isMounted())
|
|
154
|
+
setIsLoadingMore(false);
|
|
155
|
+
}
|
|
156
|
+
}, [client, nodeId, lastPage, totalPages, pageQuery, isMounted]);
|
|
157
|
+
return { events, total, hasMore, isLoading, isLoadingMore, error, refresh, loadMore };
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=use-node-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-node-events.js","sourceRoot":"","sources":["../../../src/nodes/headless/use-node-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A node's recent events (issue #1045), the "Events" section of the node's
|
|
3
|
+
* detail dialog: newest first, a severity chip, the event's label, a one-line
|
|
4
|
+
* summary of its attributes, and when it happened (relative, with the absolute
|
|
5
|
+
* time on the node's clock and the server's receipt in the tooltip).
|
|
6
|
+
*
|
|
7
|
+
* Reads `GET /api/admin/nodes/:id/events` through `useNodeEvents`, page by page
|
|
8
|
+
* ("Load more"). Re-reads the first page when the page's poll ticks (`now`
|
|
9
|
+
* changes), but only while the first page is all that is shown: a poll must not
|
|
10
|
+
* throw away the pages an operator asked for.
|
|
11
|
+
*
|
|
12
|
+
* ACCESSIBILITY: a labelled list; severity is a word in a chip (the colour is
|
|
13
|
+
* the second cue); the relative time is a `<time>` with its ISO `dateTime`.
|
|
14
|
+
*/
|
|
15
|
+
import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';
|
|
16
|
+
import type { ChipProps } from '@mui/material';
|
|
17
|
+
import type { ReactElement } from 'react';
|
|
18
|
+
import type { NodeEventSeverity } from '../headless/index.js';
|
|
19
|
+
/** Events per page in the dialog. */
|
|
20
|
+
export declare const NODE_EVENTS_PAGE_SIZE = 20;
|
|
21
|
+
/** How each severity is drawn: a word, a colour, an icon. */
|
|
22
|
+
export declare const NODE_EVENT_SEVERITY_CHIPS: Record<NodeEventSeverity, {
|
|
23
|
+
label: string;
|
|
24
|
+
color: ChipProps['color'];
|
|
25
|
+
variant: ChipProps['variant'];
|
|
26
|
+
Icon: typeof InfoOutlinedIcon;
|
|
27
|
+
}>;
|
|
28
|
+
interface NodeEventsTimelineProps {
|
|
29
|
+
/** The node whose events to list. */
|
|
30
|
+
nodeId: string;
|
|
31
|
+
/** The page's render clock; a change re-reads the first page. */
|
|
32
|
+
now: Date;
|
|
33
|
+
/** Events per page. Default {@link NODE_EVENTS_PAGE_SIZE}. */
|
|
34
|
+
pageSize?: number;
|
|
35
|
+
}
|
|
36
|
+
/** The "Events" section of a node's detail dialog. */
|
|
37
|
+
export declare function NodeEventsTimeline({ nodeId, now, pageSize }: NodeEventsTimelineProps): ReactElement;
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=NodeEventsTimeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeEventsTimeline.d.ts","sourceRoot":"","sources":["../../../src/nodes/ui/NodeEventsTimeline.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAGhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAI1C,OAAO,KAAK,EAAE,iBAAiB,EAAmB,MAAM,sBAAsB,CAAC;AAG/E,qCAAqC;AACrC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,6DAA6D;AAC7D,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAC5C,iBAAiB,EACjB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAAC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAAC,IAAI,EAAE,OAAO,gBAAgB,CAAA;CAAE,CAK3G,CAAC;AAwCF,UAAU,uBAAuB;IAC/B,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,GAAG,EAAE,IAAI,CAAC;IACV,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,sDAAsD;AACtD,wBAAgB,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAgC,EAAE,EAAE,uBAAuB,GAAG,YAAY,CAmE3H"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* A node's recent events (issue #1045), the "Events" section of the node's
|
|
4
|
+
* detail dialog: newest first, a severity chip, the event's label, a one-line
|
|
5
|
+
* summary of its attributes, and when it happened (relative, with the absolute
|
|
6
|
+
* time on the node's clock and the server's receipt in the tooltip).
|
|
7
|
+
*
|
|
8
|
+
* Reads `GET /api/admin/nodes/:id/events` through `useNodeEvents`, page by page
|
|
9
|
+
* ("Load more"). Re-reads the first page when the page's poll ticks (`now`
|
|
10
|
+
* changes), but only while the first page is all that is shown: a poll must not
|
|
11
|
+
* throw away the pages an operator asked for.
|
|
12
|
+
*
|
|
13
|
+
* ACCESSIBILITY: a labelled list; severity is a word in a chip (the colour is
|
|
14
|
+
* the second cue); the relative time is a `<time>` with its ISO `dateTime`.
|
|
15
|
+
*/
|
|
16
|
+
import ErrorOutlineIcon from '@mui/icons-material/ErrorOutlineOutlined';
|
|
17
|
+
import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';
|
|
18
|
+
import WarningAmberIcon from '@mui/icons-material/WarningAmber';
|
|
19
|
+
import { Alert, Box, Button, Chip, CircularProgress, Stack, Tooltip, Typography } from '@mui/material';
|
|
20
|
+
import { useEffect, useId, useRef } from 'react';
|
|
21
|
+
import { formatDateTime, nodeEventLabel, nodeEventSummary, useNodeEvents } from '../headless/index.js';
|
|
22
|
+
import { formatRelativeTime } from '../internal/relative-time.js';
|
|
23
|
+
/** Events per page in the dialog. */
|
|
24
|
+
export const NODE_EVENTS_PAGE_SIZE = 20;
|
|
25
|
+
/** How each severity is drawn: a word, a colour, an icon. */
|
|
26
|
+
export const NODE_EVENT_SEVERITY_CHIPS = {
|
|
27
|
+
info: { label: 'Info', color: 'default', variant: 'outlined', Icon: InfoOutlinedIcon },
|
|
28
|
+
warning: { label: 'Warning', color: 'warning', variant: 'filled', Icon: WarningAmberIcon },
|
|
29
|
+
critical: { label: 'Critical', color: 'error', variant: 'filled', Icon: ErrorOutlineIcon },
|
|
30
|
+
};
|
|
31
|
+
function severityChip(severity) {
|
|
32
|
+
// A severity the API does not know yet reads as info rather than crashing.
|
|
33
|
+
const spec = NODE_EVENT_SEVERITY_CHIPS[severity] ?? NODE_EVENT_SEVERITY_CHIPS.info;
|
|
34
|
+
const { Icon } = spec;
|
|
35
|
+
return (_jsx(Chip, { size: "small", label: spec.label, color: spec.color, variant: spec.variant, icon: _jsx(Icon, { fontSize: "small" }) }));
|
|
36
|
+
}
|
|
37
|
+
function EventRow({ event, now }) {
|
|
38
|
+
const summary = nodeEventSummary(event);
|
|
39
|
+
const absolute = `Occurred ${formatDateTime(event.occurredAt)} (node clock) · received ${formatDateTime(event.receivedAt)}`;
|
|
40
|
+
return (_jsxs(Box, { component: "li", "data-testid": `node-event-${event.id}`, sx: { py: 1, borderBottom: 1, borderColor: 'divider', '&:last-of-type': { borderBottom: 0 } }, children: [_jsxs(Stack, { direction: "row", spacing: 1, useFlexGap: true, sx: { alignItems: 'center', flexWrap: 'wrap' }, children: [severityChip(event.severity), _jsx(Typography, { variant: "body2", sx: { fontWeight: 600 }, children: nodeEventLabel(event.type) }), _jsx(Tooltip, { title: absolute, children: _jsx(Typography, { variant: "caption", color: "text.secondary", component: "time", dateTime: event.occurredAt, sx: { ml: 'auto' }, children: formatRelativeTime(event.occurredAt, now) }) })] }), summary && (_jsx(Typography, { variant: "body2", color: "text.secondary", sx: { mt: 0.25, overflowWrap: 'anywhere' }, children: summary }))] }));
|
|
41
|
+
}
|
|
42
|
+
/** The "Events" section of a node's detail dialog. */
|
|
43
|
+
export function NodeEventsTimeline({ nodeId, now, pageSize = NODE_EVENTS_PAGE_SIZE }) {
|
|
44
|
+
const headingId = useId();
|
|
45
|
+
const { events, total, hasMore, isLoading, isLoadingMore, error, refresh, loadMore } = useNodeEvents(nodeId, { pageSize });
|
|
46
|
+
// Follow the page's poll, but only while one page is shown (see the header).
|
|
47
|
+
// The latest `refresh` and page count are read through a ref at the tick, so
|
|
48
|
+
// the tick alone triggers the read.
|
|
49
|
+
const latest = useRef({ refresh, onlyFirstPage: true });
|
|
50
|
+
latest.current = { refresh, onlyFirstPage: events.length <= pageSize };
|
|
51
|
+
const firstTick = useRef(true);
|
|
52
|
+
const nowMs = now.getTime();
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
if (firstTick.current) {
|
|
55
|
+
firstTick.current = false;
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (latest.current.onlyFirstPage)
|
|
59
|
+
void latest.current.refresh();
|
|
60
|
+
}, [nowMs]);
|
|
61
|
+
return (_jsxs(Box, { component: "section", "aria-labelledby": headingId, "data-testid": "node-events", children: [_jsx(Typography, { variant: "subtitle2", component: "h3", id: headingId, gutterBottom: true, children: "Events" }), isLoading && (_jsxs(Stack, { direction: "row", spacing: 1, sx: { alignItems: 'center' }, children: [_jsx(CircularProgress, { size: 16, "aria-label": "Loading events" }), _jsx(Typography, { variant: "body2", color: "text.secondary", children: "Loading events\u2026" })] })), !isLoading && error && (_jsx(Alert, { severity: "error", sx: { mb: 1 }, children: error })), !isLoading && !error && events.length === 0 && (_jsx(Typography, { variant: "body2", color: "text.secondary", "data-testid": "node-events-empty", children: "This node has not reported any events. Nodes running an older CLI do not send them." })), !isLoading && events.length > 0 && (_jsxs(_Fragment, { children: [_jsx(Box, { component: "ul", "aria-labelledby": headingId, sx: { listStyle: 'none', m: 0, p: 0 }, children: events.map((event) => (_jsx(EventRow, { event: event, now: now }, event.id))) }), _jsxs(Stack, { direction: "row", spacing: 1, sx: { alignItems: 'center', mt: 1 }, children: [_jsxs(Typography, { variant: "caption", color: "text.secondary", children: ["Showing ", events.length, " of ", total] }), hasMore && (_jsx(Button, { size: "small", onClick: () => void loadMore(), disabled: isLoadingMore, children: isLoadingMore ? 'Loading…' : 'Load more' }))] })] }))] }));
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=NodeEventsTimeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeEventsTimeline.js","sourceRoot":"","sources":["../../../src/nodes/ui/NodeEventsTimeline.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A node's power badge (issue #1045): a battery with its charge on battery, a
|
|
3
|
+
* plug on AC, nothing when the node did not say.
|
|
4
|
+
*
|
|
5
|
+
* The words come from `describeNodePower` (`/nodes/headless`); the badge only
|
|
6
|
+
* draws them. The charge is printed, the state is in the icon AND in the
|
|
7
|
+
* accessible label ("On battery, 42%, discharging"), and the colour (warning at
|
|
8
|
+
* 20% or under, error at 10% or under) is the secondary cue, never the only one.
|
|
9
|
+
*/
|
|
10
|
+
import type { ReactElement } from 'react';
|
|
11
|
+
import type { NodePower } from '../headless/index.js';
|
|
12
|
+
interface NodePowerBadgeProps {
|
|
13
|
+
/** `lastVitals.power`, if any. */
|
|
14
|
+
power: NodePower | null | undefined;
|
|
15
|
+
/** Dims the badge with the vitals of a node that is not healthy. */
|
|
16
|
+
stale?: boolean;
|
|
17
|
+
/** Beside a printed sentence: hidden from assistive technology, no tooltip. */
|
|
18
|
+
decorative?: boolean;
|
|
19
|
+
/** A test id for the badge's root. */
|
|
20
|
+
'data-testid'?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The badge, or `null` when there is nothing to draw (no report, `unknown`).
|
|
24
|
+
*/
|
|
25
|
+
export declare function NodePowerBadge({ power, stale, decorative, 'data-testid': testId, }: NodePowerBadgeProps): ReactElement | null;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=NodePowerBadge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodePowerBadge.d.ts","sourceRoot":"","sources":["../../../src/nodes/ui/NodePowerBadge.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,UAAU,mBAAmB;IAC3B,kCAAkC;IAClC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,oEAAoE;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAQD;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,KAAa,EACb,UAAkB,EAClB,aAAa,EAAE,MAAM,GACtB,EAAE,mBAAmB,GAAG,YAAY,GAAG,IAAI,CAsC3C"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* A node's power badge (issue #1045): a battery with its charge on battery, a
|
|
4
|
+
* plug on AC, nothing when the node did not say.
|
|
5
|
+
*
|
|
6
|
+
* The words come from `describeNodePower` (`/nodes/headless`); the badge only
|
|
7
|
+
* draws them. The charge is printed, the state is in the icon AND in the
|
|
8
|
+
* accessible label ("On battery, 42%, discharging"), and the colour (warning at
|
|
9
|
+
* 20% or under, error at 10% or under) is the secondary cue, never the only one.
|
|
10
|
+
*/
|
|
11
|
+
import BatteryAlertIcon from '@mui/icons-material/BatteryAlert';
|
|
12
|
+
import BatteryChargingFullIcon from '@mui/icons-material/BatteryChargingFull';
|
|
13
|
+
import BatteryFullIcon from '@mui/icons-material/BatteryFull';
|
|
14
|
+
import PowerIcon from '@mui/icons-material/Power';
|
|
15
|
+
import { Box, Tooltip } from '@mui/material';
|
|
16
|
+
import { describeNodePower } from '../headless/index.js';
|
|
17
|
+
const LEVEL_COLOR = {
|
|
18
|
+
normal: 'text.secondary',
|
|
19
|
+
warning: 'warning.main',
|
|
20
|
+
error: 'error.main',
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* The badge, or `null` when there is nothing to draw (no report, `unknown`).
|
|
24
|
+
*/
|
|
25
|
+
export function NodePowerBadge({ power, stale = false, decorative = false, 'data-testid': testId, }) {
|
|
26
|
+
const description = describeNodePower(power);
|
|
27
|
+
if (!description)
|
|
28
|
+
return null;
|
|
29
|
+
const Icon = description.source === 'ac'
|
|
30
|
+
? PowerIcon
|
|
31
|
+
: description.charging === true
|
|
32
|
+
? BatteryChargingFullIcon
|
|
33
|
+
: description.level === 'normal'
|
|
34
|
+
? BatteryFullIcon
|
|
35
|
+
: BatteryAlertIcon;
|
|
36
|
+
const badge = (_jsxs(Box, { component: "span", ...(decorative ? { 'aria-hidden': true } : { role: 'img', 'aria-label': description.label }), "data-testid": testId, "data-power-source": description.source, "data-power-level": description.level, sx: {
|
|
37
|
+
display: 'inline-flex',
|
|
38
|
+
alignItems: 'center',
|
|
39
|
+
gap: 0.25,
|
|
40
|
+
flexShrink: 0,
|
|
41
|
+
typography: 'caption',
|
|
42
|
+
fontWeight: description.level === 'normal' ? 400 : 600,
|
|
43
|
+
color: stale ? 'text.disabled' : LEVEL_COLOR[description.level],
|
|
44
|
+
whiteSpace: 'nowrap',
|
|
45
|
+
}, children: [_jsx(Icon, { fontSize: "inherit", "aria-hidden": true, sx: { fontSize: 16 } }), description.source === 'battery' && description.percent !== null && (_jsx("span", { "aria-hidden": true, children: description.text }))] }));
|
|
46
|
+
return decorative ? badge : _jsx(Tooltip, { title: description.label, children: badge });
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=NodePowerBadge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodePowerBadge.js","sourceRoot":"","sources":["../../../src/nodes/ui/NodePowerBadge.tsx"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;AAEH,OAAO,gBAAgB,MAAM,kCAAkC,CAAC;AAChE,OAAO,uBAAuB,MAAM,yCAAyC,CAAC;AAC9E,OAAO,eAAe,MAAM,iCAAiC,CAAC;AAC9D,OAAO,SAAS,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAczD,MAAM,WAAW,GAAG;IAClB,MAAM,EAAE,gBAAgB;IACxB,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,YAAY;CACX,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,KAAK,EACL,KAAK,GAAG,KAAK,EACb,UAAU,GAAG,KAAK,EAClB,aAAa,EAAE,MAAM,GACD;IACpB,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAE9B,MAAM,IAAI,GACR,WAAW,CAAC,MAAM,KAAK,IAAI;QACzB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,WAAW,CAAC,QAAQ,KAAK,IAAI;YAC7B,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,WAAW,CAAC,KAAK,KAAK,QAAQ;gBAC9B,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,gBAAgB,CAAC;IAE3B,MAAM,KAAK,GAAG,CACZ,MAAC,GAAG,IACF,SAAS,EAAC,MAAM,KACZ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,iBAChF,MAAM,uBACA,WAAW,CAAC,MAAM,sBACnB,WAAW,CAAC,KAAK,EACnC,EAAE,EAAE;YACF,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,IAAI;YACT,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,WAAW,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YACtD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC;YAC/D,UAAU,EAAE,QAAQ;SACrB,aAED,KAAC,IAAI,IAAC,QAAQ,EAAC,SAAS,uBAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAI,EAC5D,WAAW,CAAC,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,IAAI,CACnE,8CAAmB,WAAW,CAAC,IAAI,GAAQ,CAC5C,IACG,CACP,CAAC;IACF,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAC,OAAO,IAAC,KAAK,EAAE,WAAW,CAAC,KAAK,YAAG,KAAK,GAAW,CAAC;AACnF,CAAC"}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* printed beside it — no value is carried by bar length or colour alone.
|
|
17
17
|
* Stale vitals are said in words (an `Alert`), not just greyed.
|
|
18
18
|
*/
|
|
19
|
+
import type { ComponentType } from 'react';
|
|
19
20
|
import type { PageSlot } from '../../core/index.js';
|
|
20
21
|
import type { NodeVitalsCounters, WorkerNode } from '../headless/index.js';
|
|
21
22
|
interface NodeVitalsDialogProps {
|
|
@@ -26,6 +27,15 @@ interface NodeVitalsDialogProps {
|
|
|
26
27
|
onClose: () => void;
|
|
27
28
|
/** The page's `slots.VitalsPanel`: extra content after the vitals. */
|
|
28
29
|
VitalsPanel?: PageSlot<NodeVitalsPanelSlotProps>;
|
|
30
|
+
/**
|
|
31
|
+
* The node's events section (#1045), drawn for every open node. The page
|
|
32
|
+
* passes `NodeEventsTimeline`; left out, the dialog reads no events (it needs
|
|
33
|
+
* no nodes client of its own).
|
|
34
|
+
*/
|
|
35
|
+
Events?: ComponentType<{
|
|
36
|
+
nodeId: string;
|
|
37
|
+
now: Date;
|
|
38
|
+
}>;
|
|
29
39
|
}
|
|
30
40
|
/**
|
|
31
41
|
* What the Worker Nodes page passes its `VitalsPanel` slot: the node whose
|
|
@@ -43,6 +53,6 @@ export declare const VITALS_COUNTER_ROWS: {
|
|
|
43
53
|
key: keyof NodeVitalsCounters;
|
|
44
54
|
label: string;
|
|
45
55
|
}[];
|
|
46
|
-
export declare function NodeVitalsDialog({ node, now, onClose, VitalsPanel }: NodeVitalsDialogProps): import("react").JSX.Element;
|
|
56
|
+
export declare function NodeVitalsDialog({ node, now, onClose, VitalsPanel, Events }: NodeVitalsDialogProps): import("react").JSX.Element;
|
|
47
57
|
export {};
|
|
48
58
|
//# sourceMappingURL=NodeVitalsDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeVitalsDialog.d.ts","sourceRoot":"","sources":["../../../src/nodes/ui/NodeVitalsDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"NodeVitalsDialog.d.ts","sourceRoot":"","sources":["../../../src/nodes/ui/NodeVitalsDialog.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAsBH,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,OAAO,CAAC;AAGtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAoB3E,UAAU,qBAAqB;IAC7B,8CAA8C;IAC9C,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB,8DAA8D;IAC9D,GAAG,EAAE,IAAI,CAAC;IACV,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,sEAAsE;IACtE,WAAW,CAAC,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IACjD;;;;OAIG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;CACvD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC,qCAAqC;IACrC,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB,EAAE;IAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAWjF,CAAC;AAsDF,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,qBAAqB,+BAgQlG"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
/**
|
|
3
3
|
* A worker node's full vitals snapshot (issue #606) — the detail behind the
|
|
4
4
|
* fleet table's compact "Vitals" cell.
|
|
@@ -20,8 +20,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
20
20
|
import { Alert, Box, Button, Dialog, DialogActions, DialogContent, DialogTitle, LinearProgress, Stack, Table, TableBody, TableCell, TableHead, TableRow, Tooltip, Typography, useMediaQuery, useTheme, } from '@mui/material';
|
|
21
21
|
import { useId } from 'react';
|
|
22
22
|
import { useDisplayTimeZone } from '../../core/index.js';
|
|
23
|
-
import { formatDateTime, nodeCapabilityItems, nodeVitalRows } from '../headless/index.js';
|
|
24
|
-
import { areVitalsStale, diskFreeRatio, formatBytes, formatCpu, formatEventLoopDelay, formatOptionalBytes, formatPercent, formatUptime, formatVitalsReported, isLowDisk, ratio, } from './workerVitals.js';
|
|
23
|
+
import { describeNodePower, formatDateTime, nodeCapabilityItems, nodeVitalRows } from '../headless/index.js';
|
|
24
|
+
import { areVitalsStale, diskFreeRatio, formatBytes, formatCpu, formatEventLoopDelay, formatHostCpu, formatHostOs, formatLoadAverages, formatOptionalBytes, formatPercent, formatUptime, formatVitalsReported, hostMemoryUsage, isLowDisk, ratio, } from './workerVitals.js';
|
|
25
|
+
import { NodePowerBadge } from './NodePowerBadge.js';
|
|
25
26
|
/** The counters shown, in reading order, with the words an operator uses. */
|
|
26
27
|
export const VITALS_COUNTER_ROWS = [
|
|
27
28
|
{ key: 'claims', label: 'Claims' },
|
|
@@ -45,7 +46,7 @@ function Meter({ label, fraction, text, warning = false }) {
|
|
|
45
46
|
function formatCount(value) {
|
|
46
47
|
return value === undefined ? '—' : value.toLocaleString();
|
|
47
48
|
}
|
|
48
|
-
export function NodeVitalsDialog({ node, now, onClose, VitalsPanel }) {
|
|
49
|
+
export function NodeVitalsDialog({ node, now, onClose, VitalsPanel, Events }) {
|
|
49
50
|
useDisplayTimeZone(); // "Vitals reported" renders in the display zone.
|
|
50
51
|
const theme = useTheme();
|
|
51
52
|
// The same `down('sm')` compact-window read the settings UI uses (CLAUDE.md
|
|
@@ -64,12 +65,20 @@ export function NodeVitalsDialog({ node, now, onClose, VitalsPanel }) {
|
|
|
64
65
|
// both self-reported and bounded, both printed as plain text.
|
|
65
66
|
const extraRows = vitals ? nodeVitalRows(vitals.extra) : [];
|
|
66
67
|
const capabilities = node ? nodeCapabilityItems(node.capabilities) : [];
|
|
68
|
+
// The machine the node runs on (#1045): only drawn when the node sent it, so
|
|
69
|
+
// an older CLI's dialog is unchanged.
|
|
70
|
+
const host = vitals?.host;
|
|
71
|
+
const power = vitals?.power;
|
|
72
|
+
const hostMemory = hostMemoryUsage(host);
|
|
73
|
+
const showHost = host !== undefined || (power !== undefined && power.source !== 'unknown');
|
|
67
74
|
return (_jsxs(Dialog, { open: node !== null, onClose: onClose, fullWidth: true, maxWidth: "md", fullScreen: isCompactWindow, "aria-labelledby": titleId, children: [_jsx(DialogTitle, { id: titleId, children: node ? `Vitals — ${node.name} (${node.hostname})` : 'Vitals' }), _jsxs(DialogContent, { dividers: true, children: [node && !vitals && (_jsx(Typography, { color: "text.secondary", "data-testid": "node-vitals-empty", children: "This node has not reported vitals yet. Nodes running an older CLI do not send them. Its health is still derived from its heartbeat." })), node && vitals && (_jsxs(Stack, { spacing: 3, children: [_jsxs(Box, { children: [reported && (_jsx(Tooltip, { title: formatDateTime(node.lastVitalsAt), children: _jsx(Typography, { variant: "body2", color: "text.secondary", component: "span", children: reported }) })), stale && (_jsxs(Alert, { severity: "warning", sx: { mt: 1 }, children: ["This node is ", node.health, ": these are the last vitals it sent and may no longer describe it."] }))] }), _jsxs(Stack, { direction: "row", spacing: 3, useFlexGap: true, sx: { flexWrap: 'wrap' }, children: [_jsx(Meter, { label: "Heap used", fraction: heap, text: heap !== null
|
|
68
75
|
? `${formatBytes(vitals.heapUsedBytes)} of ${formatBytes(vitals.heapLimitBytes)} (${formatPercent(heap)})`
|
|
69
76
|
: formatOptionalBytes(vitals.heapUsedBytes) }), _jsx(Meter, { label: "State directory disk used", fraction: diskFree !== null ? 1 - diskFree : null, warning: lowDisk, text: diskFree !== null
|
|
70
77
|
? `${formatBytes(vitals.stateDirFreeBytes)} free of ${formatBytes(vitals.stateDirTotalBytes)} (${formatPercent(diskFree)} free${lowDisk ? ', low' : ''})`
|
|
71
78
|
: formatOptionalBytes(vitals.stateDirFreeBytes) }), _jsx(Meter, { label: "Job slots in use", fraction: slots, text: slots !== null
|
|
72
79
|
? `${vitals.slotsUsed} of ${vitals.slotsTotal} (${formatPercent(slots)})`
|
|
73
|
-
: '—' })] }), _jsxs(Stack, { direction: "row", spacing: 2, useFlexGap: true, sx: { flexWrap: 'wrap' }, children: [_jsx(Field, { label: "CPU", children: formatCpu(vitals.cpuPercent) }), _jsx(Field, { label: "Resident memory (RSS)", children: formatOptionalBytes(vitals.rssBytes) }), _jsx(Field, { label: "Event-loop delay p99", children: formatEventLoopDelay(vitals.eventLoopDelayP99Ms) }), _jsx(Field, { label: "Uptime", children: formatUptime(vitals.uptimeSeconds) })] }),
|
|
80
|
+
: '—' })] }), _jsxs(Stack, { direction: "row", spacing: 2, useFlexGap: true, sx: { flexWrap: 'wrap' }, children: [_jsx(Field, { label: "CPU", children: formatCpu(vitals.cpuPercent) }), _jsx(Field, { label: "Resident memory (RSS)", children: formatOptionalBytes(vitals.rssBytes) }), _jsx(Field, { label: "Event-loop delay p99", children: formatEventLoopDelay(vitals.eventLoopDelayP99Ms) }), _jsx(Field, { label: "Uptime", children: formatUptime(vitals.uptimeSeconds) })] }), showHost && (_jsxs(Box, { component: "section", "aria-labelledby": `${titleId}-host`, "data-testid": "node-host-vitals", children: [_jsx(Typography, { variant: "subtitle2", component: "h3", id: `${titleId}-host`, gutterBottom: true, children: "Host machine" }), host && (_jsxs(Stack, { direction: "row", spacing: 3, useFlexGap: true, sx: { flexWrap: 'wrap', mb: 2 }, children: [_jsx(Meter, { label: "Host CPU", fraction: host.cpuPercent !== undefined ? host.cpuPercent / 100 : null, text: formatHostCpu(host) }), _jsx(Meter, { label: "Host memory used", fraction: hostMemory?.fraction ?? null, text: hostMemory
|
|
81
|
+
? `${formatBytes(hostMemory.used)} of ${formatBytes(hostMemory.total)} (${formatPercent(hostMemory.fraction)})`
|
|
82
|
+
: formatOptionalBytes(host.memTotalBytes) })] })), _jsxs(Stack, { direction: "row", spacing: 2, useFlexGap: true, sx: { flexWrap: 'wrap' }, children: [host && (_jsxs(_Fragment, { children: [_jsx(Field, { label: "Load average (1, 5, 15 min)", children: formatLoadAverages(host) }), _jsx(Field, { label: "Operating system", children: formatHostOs(host) }), _jsx(Field, { label: "Host uptime", children: formatUptime(host.uptimeSeconds) })] })), power && power.source !== 'unknown' && (_jsx(Field, { label: "Power", children: _jsxs(Stack, { direction: "row", spacing: 0.75, sx: { alignItems: 'center' }, "data-testid": "node-vitals-power", children: [_jsx(NodePowerBadge, { power: power, decorative: true }), _jsx("span", { children: describeNodePower(power)?.label })] }) }))] })] })), _jsxs(Stack, { direction: "row", spacing: 2, useFlexGap: true, sx: { flexWrap: 'wrap' }, children: [_jsx(Field, { label: "CLI version", children: vitals.cliVersion ?? '—' }), _jsx(Field, { label: "Node.js version", children: vitals.nodeVersion ?? '—' }), _jsx(Field, { label: "pg_dump version", children: vitals.pgDumpVersion ?? '—' })] }), extraRows.length > 0 && (_jsxs(Box, { children: [_jsx(Typography, { variant: "subtitle2", component: "h3", gutterBottom: true, children: "Reported by this node's app" }), _jsxs(Table, { size: "small", "aria-label": "App vitals", children: [_jsx(TableHead, { children: _jsxs(TableRow, { children: [_jsx(TableCell, { children: "Vital" }), _jsx(TableCell, { align: "right", children: "Value" })] }) }), _jsx(TableBody, { children: extraRows.map(({ key, label, text }) => (_jsxs(TableRow, { children: [_jsx(TableCell, { component: "th", scope: "row", children: label }), _jsx(TableCell, { align: "right", children: text })] }, key))) })] })] })), _jsxs(Box, { children: [_jsx(Typography, { variant: "subtitle2", component: "h3", gutterBottom: true, children: "Counters since the node process started" }), _jsxs(Table, { size: "small", "aria-label": "Node counters", children: [_jsx(TableHead, { children: _jsxs(TableRow, { children: [_jsx(TableCell, { children: "Counter" }), _jsx(TableCell, { align: "right", children: "Count" })] }) }), _jsx(TableBody, { children: VITALS_COUNTER_ROWS.map(({ key, label }) => (_jsxs(TableRow, { children: [_jsx(TableCell, { component: "th", scope: "row", children: label }), _jsx(TableCell, { align: "right", children: formatCount(vitals.counters?.[key]) })] }, key))) })] })] })] })), node && capabilities.length > 0 && (_jsxs(Box, { sx: { mt: vitals ? 3 : 0 }, children: [_jsx(Typography, { variant: "subtitle2", component: "h3", id: `${titleId}-capabilities`, gutterBottom: true, children: "Capabilities reported by this node" }), _jsx(Box, { component: "ul", "aria-labelledby": `${titleId}-capabilities`, sx: { m: 0, pl: 2.5, typography: 'body2' }, "data-testid": "node-capabilities", children: capabilities.map(({ key, version }) => (_jsxs("li", { children: [key, version !== undefined && (_jsxs(Typography, { component: "span", variant: "body2", color: "text.secondary", children: [' ', "\u2014 ", version] }))] }, key))) })] })), node && Events && (_jsx(Box, { sx: { mt: vitals || capabilities.length > 0 ? 3 : 2 }, children: _jsx(Events, { nodeId: node.id, now: now }) })), node && VitalsPanel && (_jsx(Box, { component: "section", "aria-label": "Additional vitals", sx: { mt: 3 }, children: _jsx(VitalsPanel, { node: node }) }))] }), _jsx(DialogActions, { children: _jsx(Button, { onClick: onClose, children: "Close" }) })] }));
|
|
74
83
|
}
|
|
75
84
|
//# sourceMappingURL=NodeVitalsDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeVitalsDialog.js","sourceRoot":"","sources":["../../../src/nodes/ui/NodeVitalsDialog.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,KAAK,EACL,GAAG,EACH,MAAM,EACN,MAAM,EACN,aAAa,EACb,aAAa,EACb,WAAW,EACX,cAAc,EACd,KAAK,EACL,KAAK,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,OAAO,EACP,UAAU,EACV,aAAa,EACb,QAAQ,GACT,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EACL,cAAc,EACd,aAAa,EACb,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,SAAS,EACT,KAAK,GACN,MAAM,mBAAmB,CAAC;AAwB3B,6EAA6E;AAC7E,MAAM,CAAC,MAAM,mBAAmB,GAAuD;IACrF,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IAClC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IACxC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IAClC,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE;IAC7C,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE;IAC3C,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACjD,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACjD,EAAE,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC5D,EAAE,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,EAAE;IACzD,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE;CAClD,CAAC;AAEF,SAAS,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAA0C;IACxE,OAAO,CACL,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,aACrC,KAAC,UAAU,IAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,gBAAgB,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAC1E,KAAK,GACK,EACb,KAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,YACzD,QAAQ,GACE,IACT,CACP,CAAC;AACJ,CAAC;AAWD,SAAS,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAc;IACnE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,OAAO,CACL,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,aACrD,MAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,EAAE,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,EAAE,aACpE,KAAC,UAAU,IAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,gBAAgB,YACzD,KAAK,GACK,EACb,KAAC,UAAU,IAAC,OAAO,EAAC,SAAS,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,YAClD,IAAI,GACM,IACP,EACP,QAAQ,KAAK,IAAI,IAAI,CACpB,KAAC,cAAc,IACb,OAAO,EAAC,aAAa,EACrB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAC,EACjD,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,qBACrB,EAAE,oBACH,IAAI,EACpB,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,GAC3C,CACH,IACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB;IAC5C,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAyB;IACzF,kBAAkB,EAAE,CAAC,CAAC,iDAAiD;IACvE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,4EAA4E;IAC5E,6EAA6E;IAC7E,YAAY;IACZ,MAAM,eAAe,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IAExB,MAAM,MAAM,GAAG,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5E,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,4EAA4E;IAC5E,8DAA8D;IAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAExE,OAAO,CACL,MAAC,MAAM,IACL,IAAI,EAAE,IAAI,KAAK,IAAI,EACnB,OAAO,EAAE,OAAO,EAChB,SAAS,QACT,QAAQ,EAAC,IAAI,EACb,UAAU,EAAE,eAAe,qBACV,OAAO,aAExB,KAAC,WAAW,IAAC,EAAE,EAAE,OAAO,YACrB,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,GACjD,EACd,MAAC,aAAa,IAAC,QAAQ,mBACpB,IAAI,IAAI,CAAC,MAAM,IAAI,CAClB,KAAC,UAAU,IAAC,KAAK,EAAC,gBAAgB,iBAAa,mBAAmB,oJAGrD,CACd,EAEA,IAAI,IAAI,MAAM,IAAI,CACjB,MAAC,KAAK,IAAC,OAAO,EAAE,CAAC,aACf,MAAC,GAAG,eACD,QAAQ,IAAI,CACX,KAAC,OAAO,IAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,YAC/C,KAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,gBAAgB,EAAC,SAAS,EAAC,MAAM,YAChE,QAAQ,GACE,GACL,CACX,EACA,KAAK,IAAI,CACR,MAAC,KAAK,IAAC,QAAQ,EAAC,SAAS,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,8BACvB,IAAI,CAAC,MAAM,0EAEnB,CACT,IACG,EAEN,MAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,CAAC,EAAE,UAAU,QAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,aACpE,KAAC,KAAK,IACJ,KAAK,EAAC,WAAW,EACjB,QAAQ,EAAE,IAAI,EACd,IAAI,EACF,IAAI,KAAK,IAAI;4CACX,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,aAAc,CAAC,OAAO,WAAW,CACrD,MAAM,CAAC,cAAe,CACvB,KAAK,aAAa,CAAC,IAAI,CAAC,GAAG;4CAC9B,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAC,GAE/C,EACF,KAAC,KAAK,IACJ,KAAK,EAAC,2BAA2B,EACjC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EACjD,OAAO,EAAE,OAAO,EAChB,IAAI,EACF,QAAQ,KAAK,IAAI;4CACf,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,iBAAkB,CAAC,YAAY,WAAW,CAC9D,MAAM,CAAC,kBAAmB,CAC3B,KAAK,aAAa,CAAC,QAAQ,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG;4CAChE,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAEnD,EACF,KAAC,KAAK,IACJ,KAAK,EAAC,kBAAkB,EACxB,QAAQ,EAAE,KAAK,EACf,IAAI,EACF,KAAK,KAAK,IAAI;4CACZ,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,OAAO,MAAM,CAAC,UAAU,KAAK,aAAa,CAAC,KAAK,CAAC,GAAG;4CACzE,CAAC,CAAC,GAAG,GAET,IACI,EAER,MAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,CAAC,EAAE,UAAU,QAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,aACpE,KAAC,KAAK,IAAC,KAAK,EAAC,KAAK,YAAE,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,GAAS,EACzD,KAAC,KAAK,IAAC,KAAK,EAAC,uBAAuB,YAAE,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAS,EACnF,KAAC,KAAK,IAAC,KAAK,EAAC,sBAAsB,YAChC,oBAAoB,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAC3C,EACR,KAAC,KAAK,IAAC,KAAK,EAAC,QAAQ,YAAE,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,GAAS,IAC5D,EAER,MAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,CAAC,EAAE,UAAU,QAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,aACpE,KAAC,KAAK,IAAC,KAAK,EAAC,aAAa,YAAE,MAAM,CAAC,UAAU,IAAI,GAAG,GAAS,EAC7D,KAAC,KAAK,IAAC,KAAK,EAAC,iBAAiB,YAAE,MAAM,CAAC,WAAW,IAAI,GAAG,GAAS,EAClE,KAAC,KAAK,IAAC,KAAK,EAAC,iBAAiB,YAAE,MAAM,CAAC,aAAa,IAAI,GAAG,GAAS,IAC9D,EAEP,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACvB,MAAC,GAAG,eACF,KAAC,UAAU,IAAC,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,IAAI,EAAC,YAAY,kDAE9C,EACb,MAAC,KAAK,IAAC,IAAI,EAAC,OAAO,gBAAY,YAAY,aACzC,KAAC,SAAS,cACR,MAAC,QAAQ,eACP,KAAC,SAAS,wBAAkB,EAC5B,KAAC,SAAS,IAAC,KAAK,EAAC,OAAO,sBAAkB,IACjC,GACD,EACZ,KAAC,SAAS,cACP,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACvC,MAAC,QAAQ,eACP,KAAC,SAAS,IAAC,SAAS,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,YAClC,KAAK,GACI,EACZ,KAAC,SAAS,IAAC,KAAK,EAAC,OAAO,YAAE,IAAI,GAAa,KAJ9B,GAAG,CAKP,CACZ,CAAC,GACQ,IACN,IACJ,CACP,EAED,MAAC,GAAG,eACF,KAAC,UAAU,IAAC,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,IAAI,EAAC,YAAY,8DAE9C,EACb,MAAC,KAAK,IAAC,IAAI,EAAC,OAAO,gBAAY,eAAe,aAC5C,KAAC,SAAS,cACR,MAAC,QAAQ,eACP,KAAC,SAAS,0BAAoB,EAC9B,KAAC,SAAS,IAAC,KAAK,EAAC,OAAO,sBAAkB,IACjC,GACD,EACZ,KAAC,SAAS,cACP,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAC3C,MAAC,QAAQ,eACP,KAAC,SAAS,IAAC,SAAS,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,YAClC,KAAK,GACI,EACZ,KAAC,SAAS,IAAC,KAAK,EAAC,OAAO,YAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,GAAa,KAJ7D,GAAG,CAKP,CACZ,CAAC,GACQ,IACN,IACJ,IACA,CACT,EAEA,IAAI,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAClC,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,aAC7B,KAAC,UAAU,IAAC,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,EAAE,GAAG,OAAO,eAAe,EAAE,YAAY,yDAE7E,EACb,KAAC,GAAG,IACF,SAAS,EAAC,IAAI,qBACG,GAAG,OAAO,eAAe,EAC1C,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,iBAC9B,mBAAmB,YAE9B,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CACtC,yBACG,GAAG,EACH,OAAO,KAAK,SAAS,IAAI,CACxB,MAAC,UAAU,IAAC,SAAS,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,gBAAgB,aAChE,GAAG,aACD,OAAO,IACC,CACd,KAPM,GAAG,CAQP,CACN,CAAC,GACE,IACF,CACP,EAEA,IAAI,IAAI,WAAW,IAAI,CACtB,KAAC,GAAG,IAAC,SAAS,EAAC,SAAS,gBAAY,mBAAmB,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,YACnE,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,GAAI,GACvB,CACP,IACa,EAChB,KAAC,aAAa,cACZ,KAAC,MAAM,IAAC,OAAO,EAAE,OAAO,sBAAgB,GAC1B,IACT,CACV,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"NodeVitalsDialog.js","sourceRoot":"","sources":["../../../src/nodes/ui/NodeVitalsDialog.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,KAAK,EACL,GAAG,EACH,MAAM,EACN,MAAM,EACN,aAAa,EACb,aAAa,EACb,WAAW,EACX,cAAc,EACd,KAAK,EACL,KAAK,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,OAAO,EACP,UAAU,EACV,aAAa,EACb,QAAQ,GACT,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE7G,OAAO,EACL,cAAc,EACd,aAAa,EACb,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,SAAS,EACT,KAAK,GACN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA8BrD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,mBAAmB,GAAuD;IACrF,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IAClC,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IACxC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IAClC,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE;IAC7C,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE;IAC3C,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACjD,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACjD,EAAE,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC5D,EAAE,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,oBAAoB,EAAE;IACzD,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE;CAClD,CAAC;AAEF,SAAS,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAA0C;IACxE,OAAO,CACL,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,aACrC,KAAC,UAAU,IAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,gBAAgB,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAC1E,KAAK,GACK,EACb,KAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,YACzD,QAAQ,GACE,IACT,CACP,CAAC;AACJ,CAAC;AAWD,SAAS,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK,EAAc;IACnE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,OAAO,CACL,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,aACrD,MAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,EAAE,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,EAAE,aACpE,KAAC,UAAU,IAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,gBAAgB,YACzD,KAAK,GACK,EACb,KAAC,UAAU,IAAC,OAAO,EAAC,SAAS,EAAC,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,YAClD,IAAI,GACM,IACP,EACP,QAAQ,KAAK,IAAI,IAAI,CACpB,KAAC,cAAc,IACb,OAAO,EAAC,aAAa,EACrB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAC,EACjD,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,qBACrB,EAAE,oBACH,IAAI,EACpB,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,GAC3C,CACH,IACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB;IAC5C,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAyB;IACjG,kBAAkB,EAAE,CAAC,CAAC,iDAAiD;IACvE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,4EAA4E;IAC5E,6EAA6E;IAC7E,YAAY;IACZ,MAAM,eAAe,GAAG,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IAExB,MAAM,MAAM,GAAG,IAAI,EAAE,UAAU,IAAI,IAAI,CAAC;IACxC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5E,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChF,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzE,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,4EAA4E;IAC5E,8DAA8D;IAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,6EAA6E;IAC7E,sCAAsC;IACtC,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,CAAC;IAC1B,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,CAAC;IAC5B,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAE3F,OAAO,CACL,MAAC,MAAM,IACL,IAAI,EAAE,IAAI,KAAK,IAAI,EACnB,OAAO,EAAE,OAAO,EAChB,SAAS,QACT,QAAQ,EAAC,IAAI,EACb,UAAU,EAAE,eAAe,qBACV,OAAO,aAExB,KAAC,WAAW,IAAC,EAAE,EAAE,OAAO,YACrB,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,GACjD,EACd,MAAC,aAAa,IAAC,QAAQ,mBACpB,IAAI,IAAI,CAAC,MAAM,IAAI,CAClB,KAAC,UAAU,IAAC,KAAK,EAAC,gBAAgB,iBAAa,mBAAmB,oJAGrD,CACd,EAEA,IAAI,IAAI,MAAM,IAAI,CACjB,MAAC,KAAK,IAAC,OAAO,EAAE,CAAC,aACf,MAAC,GAAG,eACD,QAAQ,IAAI,CACX,KAAC,OAAO,IAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,YAC/C,KAAC,UAAU,IAAC,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,gBAAgB,EAAC,SAAS,EAAC,MAAM,YAChE,QAAQ,GACE,GACL,CACX,EACA,KAAK,IAAI,CACR,MAAC,KAAK,IAAC,QAAQ,EAAC,SAAS,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,8BACvB,IAAI,CAAC,MAAM,0EAEnB,CACT,IACG,EAEN,MAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,CAAC,EAAE,UAAU,QAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,aACpE,KAAC,KAAK,IACJ,KAAK,EAAC,WAAW,EACjB,QAAQ,EAAE,IAAI,EACd,IAAI,EACF,IAAI,KAAK,IAAI;4CACX,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,aAAc,CAAC,OAAO,WAAW,CACrD,MAAM,CAAC,cAAe,CACvB,KAAK,aAAa,CAAC,IAAI,CAAC,GAAG;4CAC9B,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAC,GAE/C,EACF,KAAC,KAAK,IACJ,KAAK,EAAC,2BAA2B,EACjC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,EACjD,OAAO,EAAE,OAAO,EAChB,IAAI,EACF,QAAQ,KAAK,IAAI;4CACf,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,iBAAkB,CAAC,YAAY,WAAW,CAC9D,MAAM,CAAC,kBAAmB,CAC3B,KAAK,aAAa,CAAC,QAAQ,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG;4CAChE,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAEnD,EACF,KAAC,KAAK,IACJ,KAAK,EAAC,kBAAkB,EACxB,QAAQ,EAAE,KAAK,EACf,IAAI,EACF,KAAK,KAAK,IAAI;4CACZ,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,OAAO,MAAM,CAAC,UAAU,KAAK,aAAa,CAAC,KAAK,CAAC,GAAG;4CACzE,CAAC,CAAC,GAAG,GAET,IACI,EAER,MAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,CAAC,EAAE,UAAU,QAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,aACpE,KAAC,KAAK,IAAC,KAAK,EAAC,KAAK,YAAE,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,GAAS,EACzD,KAAC,KAAK,IAAC,KAAK,EAAC,uBAAuB,YAAE,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAS,EACnF,KAAC,KAAK,IAAC,KAAK,EAAC,sBAAsB,YAChC,oBAAoB,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAC3C,EACR,KAAC,KAAK,IAAC,KAAK,EAAC,QAAQ,YAAE,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,GAAS,IAC5D,EAEP,QAAQ,IAAI,CACX,MAAC,GAAG,IAAC,SAAS,EAAC,SAAS,qBAAkB,GAAG,OAAO,OAAO,iBAAc,kBAAkB,aACzF,KAAC,UAAU,IAAC,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,EAAE,GAAG,OAAO,OAAO,EAAE,YAAY,mCAErE,EACZ,IAAI,IAAI,CACP,MAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,CAAC,EAAE,UAAU,QAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,aAC3E,KAAC,KAAK,IACJ,KAAK,EAAC,UAAU,EAChB,QAAQ,EAAE,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EACtE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,GACzB,EACF,KAAC,KAAK,IACJ,KAAK,EAAC,kBAAkB,EACxB,QAAQ,EAAE,UAAU,EAAE,QAAQ,IAAI,IAAI,EACtC,IAAI,EACF,UAAU;oDACR,CAAC,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,aAAa,CACnF,UAAU,CAAC,QAAQ,CACpB,GAAG;oDACN,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,GAE7C,IACI,CACT,EACD,MAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,CAAC,EAAE,UAAU,QAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,aACnE,IAAI,IAAI,CACP,8BACE,KAAC,KAAK,IAAC,KAAK,EAAC,6BAA6B,YAAE,kBAAkB,CAAC,IAAI,CAAC,GAAS,EAC7E,KAAC,KAAK,IAAC,KAAK,EAAC,kBAAkB,YAAE,YAAY,CAAC,IAAI,CAAC,GAAS,EAC5D,KAAC,KAAK,IAAC,KAAK,EAAC,aAAa,YAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,GAAS,IACpE,CACJ,EACA,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CACtC,KAAC,KAAK,IAAC,KAAK,EAAC,OAAO,YAClB,MAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAc,mBAAmB,aACjG,KAAC,cAAc,IAAC,KAAK,EAAE,KAAK,EAAE,UAAU,SAAG,EAC3C,yBAAO,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,GAAQ,IACxC,GACF,CACT,IACK,IACJ,CACP,EAED,MAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,CAAC,EAAE,UAAU,QAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,aACpE,KAAC,KAAK,IAAC,KAAK,EAAC,aAAa,YAAE,MAAM,CAAC,UAAU,IAAI,GAAG,GAAS,EAC7D,KAAC,KAAK,IAAC,KAAK,EAAC,iBAAiB,YAAE,MAAM,CAAC,WAAW,IAAI,GAAG,GAAS,EAClE,KAAC,KAAK,IAAC,KAAK,EAAC,iBAAiB,YAAE,MAAM,CAAC,aAAa,IAAI,GAAG,GAAS,IAC9D,EAEP,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACvB,MAAC,GAAG,eACF,KAAC,UAAU,IAAC,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,IAAI,EAAC,YAAY,kDAE9C,EACb,MAAC,KAAK,IAAC,IAAI,EAAC,OAAO,gBAAY,YAAY,aACzC,KAAC,SAAS,cACR,MAAC,QAAQ,eACP,KAAC,SAAS,wBAAkB,EAC5B,KAAC,SAAS,IAAC,KAAK,EAAC,OAAO,sBAAkB,IACjC,GACD,EACZ,KAAC,SAAS,cACP,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACvC,MAAC,QAAQ,eACP,KAAC,SAAS,IAAC,SAAS,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,YAClC,KAAK,GACI,EACZ,KAAC,SAAS,IAAC,KAAK,EAAC,OAAO,YAAE,IAAI,GAAa,KAJ9B,GAAG,CAKP,CACZ,CAAC,GACQ,IACN,IACJ,CACP,EAED,MAAC,GAAG,eACF,KAAC,UAAU,IAAC,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,IAAI,EAAC,YAAY,8DAE9C,EACb,MAAC,KAAK,IAAC,IAAI,EAAC,OAAO,gBAAY,eAAe,aAC5C,KAAC,SAAS,cACR,MAAC,QAAQ,eACP,KAAC,SAAS,0BAAoB,EAC9B,KAAC,SAAS,IAAC,KAAK,EAAC,OAAO,sBAAkB,IACjC,GACD,EACZ,KAAC,SAAS,cACP,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAC3C,MAAC,QAAQ,eACP,KAAC,SAAS,IAAC,SAAS,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,YAClC,KAAK,GACI,EACZ,KAAC,SAAS,IAAC,KAAK,EAAC,OAAO,YAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,GAAa,KAJ7D,GAAG,CAKP,CACZ,CAAC,GACQ,IACN,IACJ,IACA,CACT,EAEA,IAAI,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAClC,MAAC,GAAG,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,aAC7B,KAAC,UAAU,IAAC,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,IAAI,EAAC,EAAE,EAAE,GAAG,OAAO,eAAe,EAAE,YAAY,yDAE7E,EACb,KAAC,GAAG,IACF,SAAS,EAAC,IAAI,qBACG,GAAG,OAAO,eAAe,EAC1C,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,iBAC9B,mBAAmB,YAE9B,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CACtC,yBACG,GAAG,EACH,OAAO,KAAK,SAAS,IAAI,CACxB,MAAC,UAAU,IAAC,SAAS,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,gBAAgB,aAChE,GAAG,aACD,OAAO,IACC,CACd,KAPM,GAAG,CAQP,CACN,CAAC,GACE,IACF,CACP,EAEA,IAAI,IAAI,MAAM,IAAI,CACjB,KAAC,GAAG,IAAC,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YACxD,KAAC,MAAM,IAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,GAAI,GACjC,CACP,EAEA,IAAI,IAAI,WAAW,IAAI,CACtB,KAAC,GAAG,IAAC,SAAS,EAAC,SAAS,gBAAY,mBAAmB,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,YACnE,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,GAAI,GACvB,CACP,IACa,EAChB,KAAC,aAAa,cACZ,KAAC,MAAM,IAAC,OAAO,EAAE,OAAO,sBAAgB,GAC1B,IACT,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkersPage.d.ts","sourceRoot":"","sources":["../../../src/nodes/ui/WorkersPage.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0FG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAe1C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAQ/E,OAAO,KAAK,EAAE,gBAAgB,EAAuB,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkersPage.d.ts","sourceRoot":"","sources":["../../../src/nodes/ui/WorkersPage.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0FG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAe1C,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAQ/E,OAAO,KAAK,EAAE,gBAAgB,EAAuB,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAK9F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAO5D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,gBAAiB,SAAQ,aAAa,EAAE,UAAU,CAAC,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC3G,6CAA6C;IAC7C,MAAM,CAAC,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IACxC,gEAAgE;IAChE,WAAW,CAAC,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAC;CAClD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAwCD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,KAAK,GAAE,gBAAqB,GAAG,YAAY,CAmUtE"}
|
|
@@ -99,6 +99,7 @@ import { useDisplayTimeZone, usePlatformViewer, useTableSlotColumns } from '../.
|
|
|
99
99
|
import { WORKER_NODES_POLL_INTERVAL_MS, useNodeActions, useNodeCredentials, useVisiblePolling, useWorkerNodes, } from '../headless/index.js';
|
|
100
100
|
import { WORKER_NODES_PAGE_DESCRIPTION as PAGE_DESCRIPTION, WORKER_NODES_PAGE_TITLE as PAGE_TITLE } from './copy.js';
|
|
101
101
|
import { NodeCredentials } from './NodeCredentials.js';
|
|
102
|
+
import { NodeEventsTimeline } from './NodeEventsTimeline.js';
|
|
102
103
|
import { NodeVitalsDialog } from './NodeVitalsDialog.js';
|
|
103
104
|
import { DefaultPageHeader } from './PageHeader.js';
|
|
104
105
|
import { NodesTable as DataTable } from './table.js';
|
|
@@ -303,6 +304,6 @@ export function WorkersPage(props = {}) {
|
|
|
303
304
|
// query parameters at all and returns the whole fleet ordered by
|
|
304
305
|
// name. See `workersTable.tsx` on why a control the server cannot
|
|
305
306
|
// honour is worse than no control.
|
|
306
|
-
csvExport: { filename: 'worker-nodes' } }) }), _jsxs(Typography, { variant: "caption", color: "text.secondary", sx: { mt: 1, display: 'block' }, children: ["Ordered by name. Health is derived by the API from each node's last heartbeat. The fleet is re-read every ", WORKER_NODES_POLL_INTERVAL_MS / 1000, " seconds while this tab is in front."] })] }), credentialsError && (_jsx(Alert, { severity: "error", sx: { mt: 3 }, children: credentialsError })), _jsx(NodeVitalsDialog, { node: vitalsNode, now: renderedAt, onClose: () => setVitalsNodeId(null), VitalsPanel: slots?.VitalsPanel }), _jsx(NodeCredentials, { credentials: credentials, isLoading: credentialsLoading, canWrite: canWrite, isWorking: actions.isWorking, onCreate: actions.createCredential, onRevoke: actions.revokeCredential, now: renderedAt }), Sections && _jsx(Sections, { position: "bottom" }), AfterContent && _jsx(AfterContent, {}), _jsx(Snackbar, { open: notice !== null, autoHideDuration: 6000, onClose: () => setNotice(null), message: notice })] }) }));
|
|
307
|
+
csvExport: { filename: 'worker-nodes' } }) }), _jsxs(Typography, { variant: "caption", color: "text.secondary", sx: { mt: 1, display: 'block' }, children: ["Ordered by name. Health is derived by the API from each node's last heartbeat. The fleet is re-read every ", WORKER_NODES_POLL_INTERVAL_MS / 1000, " seconds while this tab is in front."] })] }), credentialsError && (_jsx(Alert, { severity: "error", sx: { mt: 3 }, children: credentialsError })), _jsx(NodeVitalsDialog, { node: vitalsNode, now: renderedAt, onClose: () => setVitalsNodeId(null), VitalsPanel: slots?.VitalsPanel, Events: NodeEventsTimeline }), _jsx(NodeCredentials, { credentials: credentials, isLoading: credentialsLoading, canWrite: canWrite, isWorking: actions.isWorking, onCreate: actions.createCredential, onRevoke: actions.revokeCredential, now: renderedAt }), Sections && _jsx(Sections, { position: "bottom" }), AfterContent && _jsx(AfterContent, {}), _jsx(Snackbar, { open: notice !== null, autoHideDuration: 6000, onClose: () => setNotice(null), message: notice })] }) }));
|
|
307
308
|
}
|
|
308
309
|
//# sourceMappingURL=WorkersPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkersPage.js","sourceRoot":"","sources":["../../../src/nodes/ui/WorkersPage.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"WorkersPage.js","sourceRoot":"","sources":["../../../src/nodes/ui/WorkersPage.tsx"],"names":[],"mappings":"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"}
|