@odigos/ui-kit 0.0.238 → 0.0.239
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 +14 -0
- package/lib/chunks/{index-D6SlbWIi.js → index-B5PgIL40.js} +1 -1
- package/lib/chunks/index-Dy4pkeq6.js +145 -0
- package/lib/chunks/index-uXyrp4Xe.js +41 -0
- package/lib/chunks/ui-components-BPdnIOmj.js +2248 -0
- package/lib/components/_v2/cards/data-card/index.d.ts +6 -1
- package/lib/components/_v2/drawer/header/index.d.ts +2 -0
- package/lib/components/_v2/drawer/index.d.ts +1 -1
- package/lib/components/_v2/drop-data/index.d.ts +1 -2
- package/lib/components/_v2/icon-group/index.d.ts +10 -0
- package/lib/components/_v2/index.d.ts +1 -0
- package/lib/components/_v2/tag/index.d.ts +10 -0
- package/lib/components/_v2/typography/index.d.ts +2 -0
- package/lib/components/v2.js +1 -1
- package/lib/components.js +1 -1
- package/lib/constants/sources/index.d.ts +5 -0
- package/lib/constants/strings/index.d.ts +89 -0
- package/lib/constants.js +1 -1
- package/lib/containers/_v2/_drawers/edit-source-drawer/common/index.d.ts +1 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/common/pods-header.d.ts +8 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/helpers.d.ts +12 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/index.d.ts +19 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/containers-card/distro-override.d.ts +11 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/containers-card/index.d.ts +7 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/containers-card/popup-form.d.ts +15 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/containers-card/runtime-override.d.ts +10 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/health-card.d.ts +6 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/index.d.ts +10 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/main-card.d.ts +6 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/pods-card/index.d.ts +6 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/pods-card/pods-list/container-row.d.ts +9 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/pods-card/pods-list/helpers.d.ts +16 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/pods-card/pods-list/index.d.ts +12 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/pods-card/pods-list/pod-row.d.ts +8 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/pods-card/pods-list/process-row.d.ts +10 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/pods-card/pods-list/row-header.d.ts +13 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/pods-card/pods-list/types.d.ts +18 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/overview/statuses-card.d.ts +8 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/peers/index.d.ts +11 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/pods/containers-card/index.d.ts +7 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/pods/containers-card/process-card.d.ts +3 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/pods/debug-commands.d.ts +6 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/pods/index.d.ts +7 -0
- package/lib/containers/_v2/_drawers/edit-source-drawer/pods/pod-card.d.ts +8 -0
- package/lib/containers/_v2/_drawers/index.d.ts +1 -0
- package/lib/containers/_v2/_forms/edit-source-form/index.d.ts +2 -0
- package/lib/containers/_v2/_forms/index.d.ts +1 -0
- package/lib/containers/_v2/_modals/index.d.ts +1 -0
- package/lib/containers/_v2/_modals/onboarding-done/background.d.ts +5 -0
- package/lib/containers/_v2/_modals/onboarding-done/index.d.ts +3 -0
- package/lib/containers/_v2/overview/drawers/index.d.ts +1 -3
- package/lib/containers/source-drawer/index.d.ts +1 -1
- package/lib/containers/v2.js +226 -121
- package/lib/containers.js +49 -19
- package/lib/contexts/action-form-context.d.ts +0 -1
- package/lib/contexts/destination-form-context.d.ts +0 -1
- package/lib/contexts/index.d.ts +1 -0
- package/lib/contexts/rule-form-context.d.ts +0 -1
- package/lib/contexts/source-edit-form-context.d.ts +17 -0
- package/lib/contexts.js +1 -1
- package/lib/functions/get-containers-icons/index.d.ts +3 -1
- package/lib/functions/get-virtual-service-icon/index.d.ts +1 -1
- package/lib/functions/get-workload-id/index.d.ts +2 -2
- package/lib/functions/index.d.ts +2 -0
- package/lib/functions/is-pod-injected-with-agent/index.d.ts +3 -0
- package/lib/functions/map-desired-status-to-condition-status/index.d.ts +2 -0
- package/lib/functions.js +1 -1
- package/lib/hooks.js +1 -1
- package/lib/icons/brand/index.d.ts +3 -0
- package/lib/icons/brand/odigos-logo-text-colored-central/index.d.ts +2 -0
- package/lib/icons/brand/odigos-logo-text-colored-community/index.d.ts +2 -0
- package/lib/icons/brand/odigos-logo-text-colored-enterprise/index.d.ts +2 -0
- package/lib/icons.js +1 -1
- package/lib/mock-data/profiling/index.d.ts +1 -1
- package/lib/mock-data/service-map/index.d.ts +1 -1
- package/lib/mock-data/sources/index.d.ts +1 -1
- package/lib/snippets/_v2/odigos-logo-text-by-tier/index.d.ts +2 -0
- package/lib/snippets/_v2/rich-title/index.d.ts +5 -0
- package/lib/snippets/_v2/wide-drawer/index.d.ts +7 -1
- package/lib/snippets/source-container/index.d.ts +1 -2
- package/lib/snippets/v2.js +1 -1
- package/lib/snippets.js +1 -1
- package/lib/store.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/types/common/index.d.ts +28 -0
- package/lib/types/service-map/index.d.ts +2 -2
- package/lib/types/sources/index.d.ts +7 -3
- package/lib/types/workload/index.d.ts +178 -1
- package/lib/types.js +1 -1
- package/lib/visuals.js +1 -1
- package/package.json +1 -1
- package/lib/chunks/index-CCaTS6aq.js +0 -145
- package/lib/chunks/index-ChkHWnzu.js +0 -77
- package/lib/chunks/ui-components-rpRyPe3l.js +0 -2235
- /package/lib/containers/{source-drawer → _v2/_drawers/edit-source-drawer}/profiling/flame-graph-canvas.d.ts +0 -0
- /package/lib/containers/{source-drawer → _v2/_drawers/edit-source-drawer}/profiling/flamebearer.d.ts +0 -0
- /package/lib/containers/{source-drawer → _v2/_drawers/edit-source-drawer}/profiling/index.d.ts +0 -0
- /package/lib/containers/{source-drawer → _v2/_drawers/edit-source-drawer}/profiling/symbol-table.d.ts +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ProfilingProps } from '@/containers/source-drawer/profiling';
|
|
1
|
+
import type { ProfilingProps } from '@/containers/_v2/_drawers/edit-source-drawer/profiling';
|
|
2
2
|
type ProfilingSlots = Awaited<ReturnType<ProfilingProps['fetchProfilingSlots']>>;
|
|
3
3
|
type EnableProfilingResult = Awaited<ReturnType<ProfilingProps['enableProfiling']>>;
|
|
4
4
|
type SourceProfilingResult = Awaited<ReturnType<ProfilingProps['fetchSourceProfiling']>>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { PeerSources, ServiceMapSources } from '@/types';
|
|
2
|
-
/** Peer graph for the default SourceDrawer story (`
|
|
2
|
+
/** Peer graph for the default SourceDrawer story (`frontend` workload). */
|
|
3
3
|
export declare const MOCK_PEER_SOURCES: PeerSources;
|
|
4
4
|
export declare const MOCK_SERVICE_MAP: ServiceMapSources;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Source } from '@/types';
|
|
2
2
|
export declare const MOCK_SOURCES_OTHER: Source[];
|
|
3
|
-
export declare const MOCK_SOURCES_SIMPLE_DEMO: Source[];
|
|
4
3
|
export declare const MOCK_SOURCES_GOOGLE: Source[];
|
|
5
4
|
export declare const MOCK_SOURCES_ERROR: Source[];
|
|
6
5
|
export declare const MOCK_SOURCE_JAEGER: Source;
|
|
6
|
+
export declare const MOCK_SOURCES_SIMPLE_DEMO: Source[];
|
|
7
7
|
export declare const MOCK_SOURCES: Source[];
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import { ReactNode, type FC } from 'react';
|
|
2
2
|
import type { SVG } from '@/types';
|
|
3
3
|
import { type BadgeProps } from '@/components/_v2/badge';
|
|
4
|
+
import { TypographySize } from '@/components/_v2/typography';
|
|
4
5
|
export interface RichTitleProps {
|
|
5
6
|
icon?: SVG;
|
|
7
|
+
iconWithWrapper?: boolean;
|
|
6
8
|
title?: string;
|
|
9
|
+
titleSize?: TypographySize;
|
|
7
10
|
subTitle?: string;
|
|
11
|
+
subTitleSize?: TypographySize;
|
|
12
|
+
tooltip?: string;
|
|
8
13
|
withCopy?: boolean;
|
|
9
14
|
badge?: BadgeProps;
|
|
10
15
|
gap?: number;
|
|
@@ -11,9 +11,15 @@ export interface WideDrawerProps {
|
|
|
11
11
|
onBack?: () => void;
|
|
12
12
|
onNext?: () => void;
|
|
13
13
|
nextIsSkip?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Persist the form. Resolve with `{ error }` to surface a save error in the footer note,
|
|
16
|
+
* `false` to keep the drawer open without showing any error (e.g. when the caller has
|
|
17
|
+
* already gated on form validation and the inline field messages are enough), or
|
|
18
|
+
* `undefined` on success — the drawer closes itself in that case.
|
|
19
|
+
*/
|
|
14
20
|
onSave: () => Promise<{
|
|
15
21
|
error?: string;
|
|
16
|
-
} | undefined>;
|
|
22
|
+
} | false | undefined>;
|
|
17
23
|
disableSave?: boolean;
|
|
18
24
|
connectionIds?: {
|
|
19
25
|
value: string[];
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type FC } from 'react';
|
|
2
2
|
import { SourceContainer as SourceContainerType, SourceFormData } from '@/types';
|
|
3
|
-
interface SourceContainerProps extends SourceContainerType {
|
|
3
|
+
export interface SourceContainerProps extends SourceContainerType {
|
|
4
4
|
callbackRuntimeOverride?: (payload: Pick<SourceFormData, 'containerName' | 'language' | 'version' | 'otelDistroName'>) => Promise<void>;
|
|
5
5
|
}
|
|
6
6
|
export declare const SourceContainer: FC<SourceContainerProps>;
|
|
7
|
-
export {};
|
package/lib/snippets/v2.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{A as ActionType,
|
|
1
|
+
export{A as ActionType,e9 as Actions,cr as ColoredSpan,fr as ColoredSpanVariant,e8 as RichTitle}from"../chunks/ui-components-BPdnIOmj.js";export{C as CancelModal,j as DURATION_OPTIONS,g as DeleteModal,e as DurationErrorsSection,D as DynamicField,N as NOISY_PERCENTAGE_OPTIONS,h as OdigosLogoTextByTier,O as OperationSection,a as PERCENTAGE_OPTIONS,f as PercentageSection,P as PresetWithCustomInput,R as RuleInfoSection,d as RuleTypeSection,b as SamplingPreviewSection,S as SignalsCheckboxList,c as SourceScopeSection,U as UpgradeModal,i as WIDE_DRAWER_WIDTH,W as WideDrawer}from"../chunks/index-Dy4pkeq6.js";export{Y as YamlSectionCard}from"../chunks/index-B5PgIL40.js";import"react/jsx-runtime";import"styled-components";import"../icons.js";import"zustand";import"react";import"javascript-time-ago";import"../chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"virtua";
|
package/lib/snippets.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{g$ as AddButton,ab as CopyText,a3 as Flow,h0 as MapItemNode,h1 as NoDataNode,ad as PodContainer,ar as SourceContainer}from"./chunks/ui-components-BPdnIOmj.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"virtua";
|
package/lib/store.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{bx as ProgressKeys,a2 as useActiveNodeStore,gM as useDarkMode,al as useDataStreamStore,J as useDrawerStore,a1 as useEntityStore,dP as useFilterStore,co as useModalStore,r as useNotificationStore,bv as useProgressStore,dX as useSelectedStore,e5 as useSetupStore}from"./chunks/ui-components-BPdnIOmj.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"virtua";
|
package/lib/theme.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{gN as Provider,gO as animations,gP as opacity,gQ as palettes}from"./chunks/ui-components-BPdnIOmj.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"virtua";
|
|
@@ -129,9 +129,37 @@ export declare enum OtherStatusType {
|
|
|
129
129
|
export interface Condition {
|
|
130
130
|
status: StatusType | OtherStatus;
|
|
131
131
|
type: string;
|
|
132
|
+
name?: string;
|
|
132
133
|
reason?: string | null;
|
|
133
134
|
message?: string | null;
|
|
134
135
|
}
|
|
136
|
+
export declare enum ConditionType {
|
|
137
|
+
MarkedForInstrumentation = "MarkedForInstrumentation",
|
|
138
|
+
RuntimeDetection = "RuntimeDetection",
|
|
139
|
+
AgentEnabled = "AgentEnabled",
|
|
140
|
+
AgentInjected = "AgentInjected",
|
|
141
|
+
WorkloadRollout = "WorkloadRollout",
|
|
142
|
+
ProcessesHealthStatus = "ProcessesHealthStatus",
|
|
143
|
+
ExpectingTelemetry = "ExpectingTelemetry",
|
|
144
|
+
WorkloadOdigosHealth = "WorkloadOdigosHealth"
|
|
145
|
+
}
|
|
146
|
+
export declare enum WorkloadRolloutReason {
|
|
147
|
+
TriggeredSuccessfully = "RolloutTriggeredSuccessfully",
|
|
148
|
+
RolloutFinished = "RolloutFinished",
|
|
149
|
+
PreviousRolloutOngoing = "PreviousRolloutOngoing",
|
|
150
|
+
Disabled = "Disabled",
|
|
151
|
+
NotRequired = "NotRequired",
|
|
152
|
+
WaitingForRestart = "WaitingForRestart",
|
|
153
|
+
WorkloadNotSupporting = "WorkloadNotSupporting",
|
|
154
|
+
WaitingInQueue = "WaitingInQueue",
|
|
155
|
+
FailedToPatch = "FailedToPatch"
|
|
156
|
+
}
|
|
157
|
+
export declare enum AgentInjectedReason {
|
|
158
|
+
SuccessfullyInjected = "SuccessfullyInjected",
|
|
159
|
+
NoAgentInjected = "NoAgentInjected",
|
|
160
|
+
SomePodsAgentNotInjectedRolloutNeeded = "SomePodsAgentNotInjectedRolloutNeeded",
|
|
161
|
+
AgentInjectedAndDataSent = "AgentInjectedAndDataSent"
|
|
162
|
+
}
|
|
135
163
|
export interface Notification {
|
|
136
164
|
id: string;
|
|
137
165
|
type: StatusType;
|
|
@@ -4,8 +4,8 @@ export interface ServiceMapFromSource {
|
|
|
4
4
|
services: ServiceMapToSource[];
|
|
5
5
|
}
|
|
6
6
|
export interface ServiceMapToSource {
|
|
7
|
-
nodeId
|
|
8
|
-
isVirtual
|
|
7
|
+
nodeId?: string;
|
|
8
|
+
isVirtual?: boolean;
|
|
9
9
|
serviceName: string;
|
|
10
10
|
requests: number;
|
|
11
11
|
dateTime: string;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { K8sResourceKind, OtelDistroName } from '../enum';
|
|
2
1
|
import type { DescribeSource } from '../describe';
|
|
3
2
|
import type { PeerSources } from '../service-map';
|
|
3
|
+
import { K8sResourceKind, OtelDistroName } from '../enum';
|
|
4
4
|
import { type Condition, ProgrammingLanguages } from '../common';
|
|
5
|
-
import type { DesiredConditionStatus, WorkloadId } from '../workload';
|
|
6
|
-
import type { InstrumentationInstanceComponent } from '../instrumentation-instances';
|
|
7
5
|
import type { NamespaceSelectionFormData, SourceSelectionFormData } from '@/store';
|
|
6
|
+
import type { InstrumentationInstanceComponent } from '../instrumentation-instances';
|
|
7
|
+
import type { DesiredConditionStatus, K8sWorkloadPod, Workload, WorkloadId } from '../workload';
|
|
8
8
|
export interface PersistSourceInput {
|
|
9
9
|
[clusterId: string]: {
|
|
10
10
|
namespace: string;
|
|
@@ -30,6 +30,7 @@ export interface SourceContainerAgentEnabled {
|
|
|
30
30
|
}
|
|
31
31
|
export interface SourceContainerOverrides {
|
|
32
32
|
containerName: string;
|
|
33
|
+
otelDistroName: OtelDistroName | null;
|
|
33
34
|
runtimeInfo: SourceContainerRuntimeInfo | null;
|
|
34
35
|
}
|
|
35
36
|
export interface SourceContainer {
|
|
@@ -48,9 +49,12 @@ export interface Source extends WorkloadId {
|
|
|
48
49
|
workloadOdigosHealthStatus?: DesiredConditionStatus | null;
|
|
49
50
|
detectedLanguages?: ProgrammingLanguages[] | null;
|
|
50
51
|
podsAgentInjectionStatus?: DesiredConditionStatus | null;
|
|
52
|
+
podsHealthStatus?: DesiredConditionStatus | null;
|
|
53
|
+
pods?: K8sWorkloadPod[] | null;
|
|
51
54
|
rollbackOccurred?: boolean;
|
|
52
55
|
manifestYAML?: string | null;
|
|
53
56
|
instrumentationConfigYAML?: string | null;
|
|
57
|
+
telemetryMetrics?: Workload['telemetryMetrics'] | null;
|
|
54
58
|
}
|
|
55
59
|
export interface SourceFormData {
|
|
56
60
|
otelServiceName?: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ProgrammingLanguages } from '../common';
|
|
2
|
+
import { K8sResourceKind, OtelDistroName, DesiredStateProgress } from '../enum';
|
|
2
3
|
export interface WorkloadId {
|
|
3
4
|
namespace: string;
|
|
4
5
|
name: string;
|
|
@@ -21,9 +22,185 @@ export interface NamespaceWorkload {
|
|
|
21
22
|
dataStreamNames: string[];
|
|
22
23
|
numberOfInstances: number | null;
|
|
23
24
|
}
|
|
25
|
+
export interface K8sWorkloadMarkedForInstrumentation {
|
|
26
|
+
markedForInstrumentation: boolean | null;
|
|
27
|
+
decisionEnum: string;
|
|
28
|
+
message: string;
|
|
29
|
+
}
|
|
30
|
+
export interface EnvVar {
|
|
31
|
+
name: string;
|
|
32
|
+
value: string;
|
|
33
|
+
}
|
|
34
|
+
export interface K8sWorkloadRuntimeInfoContainer {
|
|
35
|
+
containerName: string;
|
|
36
|
+
language: ProgrammingLanguages;
|
|
37
|
+
runtimeVersion?: string | null;
|
|
38
|
+
processEnvVars: EnvVar[];
|
|
39
|
+
containerRuntimeEnvVars?: EnvVar[] | null;
|
|
40
|
+
criErrorMessage?: string | null;
|
|
41
|
+
libcType?: string | null;
|
|
42
|
+
secureExecutionMode?: boolean | null;
|
|
43
|
+
otherAgentName?: string | null;
|
|
44
|
+
}
|
|
45
|
+
export interface K8sWorkloadRuntimeInfo {
|
|
46
|
+
completed: boolean;
|
|
47
|
+
completedStatus: DesiredConditionStatus;
|
|
48
|
+
detectedLanguages?: ProgrammingLanguages[] | null;
|
|
49
|
+
containers?: K8sWorkloadRuntimeInfoContainer[] | null;
|
|
50
|
+
}
|
|
51
|
+
export interface DistroParam {
|
|
52
|
+
name: string;
|
|
53
|
+
value: string;
|
|
54
|
+
}
|
|
55
|
+
export interface K8sWorkloadAgentEnabledContainerTraces {
|
|
56
|
+
enabled: boolean;
|
|
57
|
+
}
|
|
58
|
+
export interface K8sWorkloadAgentEnabledContainerMetrics {
|
|
59
|
+
enabled: boolean;
|
|
60
|
+
}
|
|
61
|
+
export interface K8sWorkloadAgentEnabledContainerLogs {
|
|
62
|
+
enabled: boolean;
|
|
63
|
+
}
|
|
64
|
+
export interface K8sWorkloadAgentEnabledContainer {
|
|
65
|
+
containerName: string;
|
|
66
|
+
agentEnabled: boolean;
|
|
67
|
+
agentEnabledStatus: DesiredConditionStatus;
|
|
68
|
+
otelDistroName?: OtelDistroName | null;
|
|
69
|
+
envInjectionMethod?: string | null;
|
|
70
|
+
distroParams?: DistroParam[] | null;
|
|
71
|
+
traces?: K8sWorkloadAgentEnabledContainerTraces | null;
|
|
72
|
+
metrics?: K8sWorkloadAgentEnabledContainerMetrics | null;
|
|
73
|
+
logs?: K8sWorkloadAgentEnabledContainerLogs | null;
|
|
74
|
+
}
|
|
75
|
+
export interface K8sWorkloadAgentEnabled {
|
|
76
|
+
agentEnabled: boolean;
|
|
77
|
+
enabledStatus: DesiredConditionStatus;
|
|
78
|
+
containers?: K8sWorkloadAgentEnabledContainer[] | null;
|
|
79
|
+
}
|
|
80
|
+
export interface K8sWorkloadRollout {
|
|
81
|
+
rolloutStatus: DesiredConditionStatus;
|
|
82
|
+
}
|
|
83
|
+
export interface K8sWorkloadContainerOverrides {
|
|
84
|
+
containerName: string;
|
|
85
|
+
otelDistroName?: OtelDistroName | null;
|
|
86
|
+
runtimeInfo?: K8sWorkloadRuntimeInfoContainer | null;
|
|
87
|
+
}
|
|
88
|
+
export declare enum K8sWorkloadContainerAgentConfigTracesHeadSamplingCheckConditionOperator {
|
|
89
|
+
Equals = "equals",
|
|
90
|
+
NotEquals = "notEquals",
|
|
91
|
+
EndWith = "endWith",
|
|
92
|
+
StartWith = "startWith"
|
|
93
|
+
}
|
|
94
|
+
export interface K8sWorkloadContainerAgentConfigTracesHeadSamplingCheckCondition {
|
|
95
|
+
key: string;
|
|
96
|
+
operator: K8sWorkloadContainerAgentConfigTracesHeadSamplingCheckConditionOperator;
|
|
97
|
+
value: string;
|
|
98
|
+
}
|
|
99
|
+
export interface K8sWorkloadContainerAgentConfigTracesHeadSamplingCheck {
|
|
100
|
+
conditions?: K8sWorkloadContainerAgentConfigTracesHeadSamplingCheckCondition[] | null;
|
|
101
|
+
percentage: number;
|
|
102
|
+
}
|
|
103
|
+
export interface K8sWorkloadContainerAgentConfigTracesHeadSampling {
|
|
104
|
+
checks?: K8sWorkloadContainerAgentConfigTracesHeadSamplingCheck[] | null;
|
|
105
|
+
fallbackPercentage: number;
|
|
106
|
+
}
|
|
107
|
+
export interface K8sWorkloadContainerAgentConfigTraces {
|
|
108
|
+
headSampling?: K8sWorkloadContainerAgentConfigTracesHeadSampling | null;
|
|
109
|
+
}
|
|
110
|
+
export interface K8sWorkloadContainerAgentConfig {
|
|
111
|
+
traces?: K8sWorkloadContainerAgentConfigTraces | null;
|
|
112
|
+
}
|
|
113
|
+
export interface K8sWorkloadPodContainerProcessAttribute {
|
|
114
|
+
name: string;
|
|
115
|
+
value: string;
|
|
116
|
+
}
|
|
117
|
+
export interface K8sWorkloadPodContainerProcessInstrumentation {
|
|
118
|
+
name: string;
|
|
119
|
+
type?: string | null;
|
|
120
|
+
healthy?: boolean | null;
|
|
121
|
+
message?: string | null;
|
|
122
|
+
lastStatusTime?: string | null;
|
|
123
|
+
isStandardLibrary?: boolean | null;
|
|
124
|
+
nonIdentifyingAttributes?: {
|
|
125
|
+
key: string;
|
|
126
|
+
value: string;
|
|
127
|
+
}[] | null;
|
|
128
|
+
}
|
|
129
|
+
export interface K8sWorkloadContainer {
|
|
130
|
+
containerName: string;
|
|
131
|
+
runtimeInfo?: K8sWorkloadRuntimeInfoContainer | null;
|
|
132
|
+
agentEnabled?: K8sWorkloadAgentEnabledContainer | null;
|
|
133
|
+
overrides?: K8sWorkloadContainerOverrides | null;
|
|
134
|
+
agentConfig?: K8sWorkloadContainerAgentConfig | null;
|
|
135
|
+
instrumentations?: K8sWorkloadPodContainerProcessInstrumentation[] | null;
|
|
136
|
+
}
|
|
137
|
+
export interface K8sWorkloadPodContainerProcess {
|
|
138
|
+
healthy?: boolean | null;
|
|
139
|
+
healthStatus: DesiredConditionStatus;
|
|
140
|
+
identifyingAttributes?: K8sWorkloadPodContainerProcessAttribute[] | null;
|
|
141
|
+
instrumentations?: K8sWorkloadPodContainerProcessInstrumentation[] | null;
|
|
142
|
+
}
|
|
143
|
+
export interface K8sWorkloadPodContainer {
|
|
144
|
+
containerName: string;
|
|
145
|
+
odigosInstrumentationDeviceName?: string | null;
|
|
146
|
+
otelDistroName?: OtelDistroName | null;
|
|
147
|
+
started?: boolean | null;
|
|
148
|
+
ready?: boolean | null;
|
|
149
|
+
isCrashLoop?: boolean | null;
|
|
150
|
+
restartCount?: number | null;
|
|
151
|
+
runningStartedTime?: string | null;
|
|
152
|
+
waitingReasonEnum?: string | null;
|
|
153
|
+
waitingMessage?: string | null;
|
|
154
|
+
healthStatus: DesiredConditionStatus;
|
|
155
|
+
processes?: K8sWorkloadPodContainerProcess[] | null;
|
|
156
|
+
}
|
|
157
|
+
export interface K8sWorkloadPod {
|
|
158
|
+
podName: string;
|
|
159
|
+
nodeName: string;
|
|
160
|
+
startTime: string;
|
|
161
|
+
agentInjected: boolean;
|
|
162
|
+
startedPostAgentMetaHashChange?: boolean | null;
|
|
163
|
+
agentInjectedStatus: DesiredConditionStatus;
|
|
164
|
+
runningLatestWorkloadRevision?: string | null;
|
|
165
|
+
podHealthStatus: DesiredConditionStatus;
|
|
166
|
+
containers?: K8sWorkloadPodContainer[] | null;
|
|
167
|
+
}
|
|
168
|
+
export interface K8sWorkloadTelemetryMetricsExpectingTelemetryStatus {
|
|
169
|
+
isExpectingTelemetry?: boolean | null;
|
|
170
|
+
telemetryObservedStatus: DesiredConditionStatus;
|
|
171
|
+
}
|
|
172
|
+
export interface K8sWorkloadTelemetryMetrics {
|
|
173
|
+
totalDataSentBytes?: number | null;
|
|
174
|
+
throughputBytes?: number | null;
|
|
175
|
+
expectingTelemetry: K8sWorkloadTelemetryMetricsExpectingTelemetryStatus;
|
|
176
|
+
}
|
|
177
|
+
export interface K8sWorkloadConditions {
|
|
178
|
+
runtimeDetection?: DesiredConditionStatus | null;
|
|
179
|
+
agentInjectionEnabled?: DesiredConditionStatus | null;
|
|
180
|
+
rollout?: DesiredConditionStatus | null;
|
|
181
|
+
agentInjected?: DesiredConditionStatus | null;
|
|
182
|
+
processesAgentHealth?: DesiredConditionStatus | null;
|
|
183
|
+
expectingTelemetry?: DesiredConditionStatus | null;
|
|
184
|
+
}
|
|
24
185
|
export interface Workload {
|
|
25
186
|
id: WorkloadId;
|
|
187
|
+
serviceName?: string | null;
|
|
188
|
+
workloadOdigosHealthStatus: DesiredConditionStatus;
|
|
189
|
+
conditions: K8sWorkloadConditions;
|
|
190
|
+
markedForInstrumentation: K8sWorkloadMarkedForInstrumentation;
|
|
191
|
+
runtimeInfo?: K8sWorkloadRuntimeInfo | null;
|
|
192
|
+
agentEnabled?: K8sWorkloadAgentEnabled | null;
|
|
193
|
+
rollout?: K8sWorkloadRollout | null;
|
|
194
|
+
containers?: K8sWorkloadContainer[] | null;
|
|
195
|
+
pods?: K8sWorkloadPod[] | null;
|
|
26
196
|
podsAgentInjectionStatus: DesiredConditionStatus;
|
|
197
|
+
podsHealthStatus: DesiredConditionStatus;
|
|
198
|
+
workloadHealthStatus?: DesiredConditionStatus | null;
|
|
199
|
+
processesHealthStatus: DesiredConditionStatus;
|
|
200
|
+
telemetryMetrics: K8sWorkloadTelemetryMetrics[];
|
|
201
|
+
dataStreamNames: string[];
|
|
202
|
+
numberOfInstances?: number | null;
|
|
203
|
+
rollbackOccurred: boolean;
|
|
27
204
|
}
|
|
28
205
|
export type GetWorkloads = (filter: WorkloadFilter) => Promise<{
|
|
29
206
|
workloads: Workload[];
|
package/lib/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{fK as ActionCategory,au as ActionKeyTypes,aF as ActionType,fL as AddNodeTypes,bY as AgentInjectedReason,fM as BooleanOperation,aQ as CodeAttributesKeyTypes,bW as ConditionType,z as Crud,aV as CustomInstrumentationsKeyTypes,bN as DesiredStateProgress,fN as DestinationTypes,fO as EdgeTypes,U as EntityTypes,aE as FieldTypes,aT as GolangCustomProbe,aR as HeadersCollectionKeyTypes,az as InputTypes,fP as InstallationMethod,aW as InstrumentationRuleType,fQ as IntrumentationStatus,aU as JavaCustomProbe,fR as JsonOperation,aC as K8sAttributesFrom,ap as K8sResourceKind,fS as K8sWorkloadContainerAgentConfigTracesHeadSamplingCheckConditionOperator,fT as ListDirection,W as NodeTypes,fU as NumberOperation,fV as OtelDistroName,fW as OtherEntityTypes,a7 as OtherStatus,bq as OtherStatusType,aS as PayloadCollectionKeyTypes,fX as PlatformType,fY as PodContainerLifecycleStatus,fZ as PodContainerStatus,f_ as PodPhase,f$ as Profile,P as ProgrammingLanguages,g0 as SIGNAL_KEY_TO_TYPE,g1 as SIGNAL_TYPE_TO_KEY,g2 as SignalKey,aM as SignalType,g3 as SortDirection,E as StatusType,g4 as StringOperation,br as Tier,bX as WorkloadRolloutReason,eb as WorkloadRolloutStatus}from"./chunks/ui-components-BPdnIOmj.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"virtua";
|
package/lib/visuals.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{g5 as VISUAL_ODIGOS_LOGO_HEIGHT,g6 as VISUAL_ODIGOS_LOGO_WIDTH,fJ as VisualGreenRings,g7 as VisualOdigosLogo,cB as VisualPurpleRings}from"./chunks/ui-components-BPdnIOmj.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"virtua";
|
package/package.json
CHANGED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import{a$ as e,a,aE as t,a3 as l,a5 as r,ex as i,aw as s,bg as n,aI as o,aB as d,bl as c,aD as u,ay as p,az as h,ak as g,bq as m,j as v,F as f,av as b,ab as y,ad as x,ba as S,ey as C,ez as k,a4 as T,eA as w,a7 as $,eB as P,a8 as M,a9 as A,eC as O,eD as L,eE as z,eF as D,eG as I,eH as X,eI as R,cP as N,eJ as E,eK as H,eL as B,eM as V,eN as j,c1 as q,B as U,eO as G,eP as J,eQ as K,eR as W,eS as F,eT as Z,eU as Y,eV as Q,eW as _,eX as ee,eY as ae,bb as te,eZ as le,e_ as re,e$ as ie,f0 as se,f1 as ne,f2 as oe,bR as de,f3 as ce,f4 as ue,f5 as pe,f6 as he,f7 as ge,f8 as me,f9 as ve,fa as fe,fb as be,c5 as ye,a6 as xe,fc as Se,fd as Ce,fe as ke,ff as Te,fg as we,fh as $e,fi as Pe,fj as Me,fk as Ae,fl as Oe,fm as Le,aL as ze,fn as De,S as Ie,fo as Xe,fp as Re,fq as Ne,fr as Ee,fs as He,dD as Be,aZ as Ve,ae as je,a0 as qe,dx as Ue,ax as Ge,ft as Je,dI as Ke,b as We,N as Fe,r as Ze,ah as Ye,dT as Qe,ai as _e}from"./ui-components-rpRyPe3l.js";import{jsx as ea,jsxs as aa,Fragment as ta}from"react/jsx-runtime";import{OdigosLogoTextEnterprise as la,OdigosLogoTextCommunity as ra,EditIcon as ia,ArrowLeftIcon as sa,ArrowRightIcon as na,VSquareIcon as oa}from"../icons.js";import{useCallback as da,useMemo as ca,useState as ua,useRef as pa,useEffect as ha,forwardRef as ga,useImperativeHandle as ma}from"react";import va from"styled-components";import"./index-D6SlbWIi.js";const fa=({isOpen:t,onClose:l,onDeny:r,onApprove:i})=>ea(e,{title:"Discard changes?",description:"You have unsaved changes.\nIf you cancel now, your changes won't be saved.",isOpen:t,onClose:l,denyButton:{label:"Keep editing",variant:a.Secondary,onClick:()=>{r?.(),l()}},approveButton:{label:"Discard changes",variant:a.Primary,onClick:()=>{i?.(),l()}}}),ba=({isOpen:t,onClose:l,onDeny:r,onApprove:i,action:s="delete",target:n})=>{const o=s.charAt(0).toUpperCase()+s.substring(1),d=n?.endsWith("s")?"these":"this";return ea(e,{title:`${o}${n?` ${n}`:""}?`,description:`Are you sure you want to ${s}${n?` ${d} ${n}`:""}?`,isOpen:t,onClose:l,denyButton:{label:"Go back",variant:a.Secondary,onClick:()=>{r?.(),l()}},approveButton:{label:o,variant:a.Primary,onClick:()=>{i?.(),l()}}})},ya=({componentType:e,inputType:a,name:g,label:m,tooltip:v,badge:f,placeholder:b,required:y,disabled:x,value:S,setValue:C,errorMessage:k,warnMessage:T,helpMessage:w,dropdownOptions:$,dropdownNoSearch:P,dropdownNoCheckbox:M,timeUnits:A,timeDefaultUnit:O})=>{switch(e){case t.Input:return ea(p,{name:g,type:a,label:m,tooltip:v,badge:f,placeholder:b,required:y,disabled:x,value:S??"",onChange:e=>{const t=e.target.value;C(a===h.Number?""===t?null:Number(t):t)},errorMessage:k,warnMessage:T,helpMessage:w},g);case t.MultiInput:return ea(u,{name:g,label:m,tooltip:v,badge:f,placeholder:b,required:y,disabled:x,values:Array.isArray(S)?S:c(S,[]),setValues:e=>C(e),errorMessage:k,warnMessage:T,helpMessage:w},g);case t.KeyValuePair:return ea(d,{name:g,label:m,tooltip:v,badge:f,required:y,disabled:x,limitFieldsPerRow:2,columns:[{keyName:"key",label:"Key"},{keyName:"value",label:"Value"}],values:Array.isArray(S)?S:c(S,[]),setValues:e=>C(e),errorMessage:k,warnMessage:T,helpMessage:w},g);case t.TextArea:return ea(o,{name:g,label:m,tooltip:v,badge:f,required:y,disabled:x,placeholder:b,value:S??"",onChange:e=>C(e.target.value),errorMessage:k,warnMessage:T,helpMessage:w},g);case t.Dropdown:return ea(n,{name:g,label:m,tooltip:v,badge:f,placeholder:b,required:y,disabled:x,withSearch:!P,options:$?.map(e=>({id:e.id||"",label:e.value||"",withCheckbox:!M}))||[],values:S?[String(S)]:[],setValues:e=>C(e[0]),errorMessage:k,warnMessage:T,helpMessage:w},g);case t.Checkbox:return ea(s,{name:g,label:m,tooltip:v,badge:f,value:!0===S||"true"===S,onChange:e=>C(e),disabled:x,errorMessage:k,warnMessage:T,helpMessage:w},g);case t.Time:return ea(i,{name:g,label:m,tooltip:v,badge:f,placeholder:b,required:y,disabled:x,value:S??"",setValue:e=>C(e),units:A,defaultUnit:O,errorMessage:k,warnMessage:T,helpMessage:w},g);case t.Toggle:return ea(l,{name:g,labelAlign:r.Right,label:m,tooltip:v,badge:f,value:!0===S||"true"===S,onChange:e=>C(e),disabled:x,errorMessage:k,warnMessage:T,helpMessage:w},g);default:return null}},xa=({size:e=200})=>{const{tier:a}=g();return a===m.Onprem?ea(la,{size:e}):ea(ra,{size:e})},Sa=[{value:"50",label:"50%"},{value:"25",label:"25%"},{value:"10",label:"10%"},{value:"1",label:"1%"},{value:"custom",label:"Custom"}],Ca=[{value:"10",label:"10%"},{value:"1",label:"1%"},{value:"0.5",label:"0.5%"},{value:"0.1",label:"0.1%"},{value:"custom",label:"Custom"}],ka=[{value:"5000",label:"5s"},{value:"1000",label:"1s"},{value:"500",label:"500ms"},{value:"100",label:"100ms"},{value:"50",label:"50ms"},{value:"custom",label:"Custom"}],Ta=({description:e,options:a,selected:t,onSelect:l,customName:r,customLabel:i,customPlaceholder:s,customValue:n,onCustomChange:o,customInputType:d=h.Number,customMin:c,customMax:u})=>aa(v,{$gap:16,$alignItems:"flex-end",children:[aa(f,{$gap:6,children:[ea(b,{label:e}),ea(y,{size:x.S,options:a,selected:t,setSelected:l})]}),"custom"===t&&ea(p,{name:r,label:i,placeholder:s,type:d,value:n,onChange:o,width:160,min:c,max:u})]}),wa=()=>{},$a=e=>e.readOnly?ea(Pa,{rule:e.rule}):ea(Ma,{ruleType:e.ruleType,formState:e.formState,onChange:e.onChange}),Pa=({rule:e})=>{const a=null!=e.durationAtLeastMs;return e.error?ea(S,{richTitle:{title:C},children:ea(l,{name:"sampling-view-toggle-keep-errors",onChange:wa,value:!0,size:T.S,label:k,labelAlign:r.Right})}):a?ea(S,{richTitle:{title:w},children:aa("div",{children:[ea($,{size:A.XXXS,color:M.Secondary,children:P}),ea($,{size:A.XS,children:`${e.durationAtLeastMs}ms`})]})}):null},Ma=({ruleType:e,formState:a,onChange:t})=>{const i=da(e=>t({durationPreset:e}),[t]),s=da(e=>t({customDurationMs:e.target.value}),[t]);return"Error"===e?ea(S,{richTitle:{title:C,subTitle:O},children:ea(l,{name:"sampling-toggle-keep-errors",value:!0,onChange:wa,size:T.S,label:k,labelAlign:r.Right})}):"Duration"===e?ea(S,{richTitle:{title:w,subTitle:L},children:ea(Ta,{description:P,options:ka,selected:a.durationPreset,onSelect:i,customName:"sampling-input-custom-duration",customLabel:z,customPlaceholder:"200ms",customValue:a.customDurationMs,onCustomChange:s})}):null},Aa=va.div`
|
|
2
|
-
display: flex;
|
|
3
|
-
gap: 32px;
|
|
4
|
-
`,Oa=va.div`
|
|
5
|
-
display: flex;
|
|
6
|
-
flex-direction: column;
|
|
7
|
-
gap: 4px;
|
|
8
|
-
`,La=va.div`
|
|
9
|
-
display: flex;
|
|
10
|
-
flex-wrap: wrap;
|
|
11
|
-
align-items: flex-end;
|
|
12
|
-
gap: 16px;
|
|
13
|
-
`,za=va.div`
|
|
14
|
-
display: flex;
|
|
15
|
-
align-items: flex-end;
|
|
16
|
-
gap: 16px;
|
|
17
|
-
padding: 12px 16px;
|
|
18
|
-
border-radius: 8px;
|
|
19
|
-
background-color: ${({theme:e})=>e.v2.colors.black[500]};
|
|
20
|
-
`,Da=va.div`
|
|
21
|
-
display: flex;
|
|
22
|
-
align-items: flex-end;
|
|
23
|
-
gap: 10px;
|
|
24
|
-
flex: 1;
|
|
25
|
-
`,Ia=va.div`
|
|
26
|
-
display: flex;
|
|
27
|
-
align-items: center;
|
|
28
|
-
height: 32px;
|
|
29
|
-
`,Xa=va.div`
|
|
30
|
-
display: flex;
|
|
31
|
-
align-items: flex-end;
|
|
32
|
-
gap: 16px;
|
|
33
|
-
margin-bottom: 12px;
|
|
34
|
-
`,Ra="Any",Na="Kafka topic",Ea=()=>ea("div",{style:{marginBottom:"8px"},children:ea($,{size:A.XS,weight:500,children:"And"})}),Ha=[{value:"all",label:"All Operations"},{value:"httpServer",label:"HTTP Server"},{value:"httpClient",label:"HTTP Client"}],Ba=[{value:"all",label:"All Operations"},{value:"httpServer",label:"HTTP Server"},{value:"kafkaConsumer",label:"Kafka Consumer"},{value:"kafkaProducer",label:"Kafka Producer"}],Va=[{id:"",label:Ra},{id:"GET",label:"GET"},{id:"POST",label:"POST"},{id:"PUT",label:"PUT"},{id:"DELETE",label:"DELETE"},{id:"PATCH",label:"PATCH"}];const ja=e=>e.readOnly?ea(qa,{data:e.data}):ea(Ua,{category:e.category,formState:e.formState,onChange:e.onChange}),qa=({data:e})=>{const a=ca(()=>function(e){if("noisy"===e.category){const a=e.rule.operation;if(a?.httpServer)return[{id:"type",title:W,value:K},{id:"route",title:B,value:a.httpServer.route||a.httpServer.routePrefix||F},{id:"method",title:G,value:a.httpServer.method||Ra}];if(a?.httpClient){const e=[{id:"type",title:W,value:Z}];return a.httpClient.serverAddress&&e.push({id:"serverAddress",title:"Server address",value:a.httpClient.serverAddress}),e.push({id:"route",title:B,value:a.httpClient.templatedPath||a.httpClient.templatedPathPrefix||F}),e.push({id:"method",title:G,value:a.httpClient.method||Ra}),e}return[{id:"type",title:W,value:Y}]}const a=e.rule.operation;return a?.httpServer?[{id:"type",title:W,value:K},{id:"route",title:B,value:a.httpServer.route||a.httpServer.routePrefix||F},{id:"method",title:G,value:a.httpServer.method||Ra}]:a?.kafkaConsumer?[{id:"type",title:W,value:Q},{id:"topic",title:Na,value:a.kafkaConsumer.kafkaTopic||F}]:a?.kafkaProducer?[{id:"type",title:W,value:_},{id:"topic",title:Na,value:a.kafkaProducer.kafkaTopic||F}]:[{id:"type",title:W,value:Y}]}(e),[e]);return ea(S,{richTitle:{title:D},children:ea(Aa,{children:a.map(({id:e,title:a,value:t})=>aa(Oa,{children:[ea($,{size:A.XXXS,color:M.Secondary,nowrap:!0,children:a}),ea($,{size:A.XS,nowrap:!0,children:t})]},e))})})},Ua=({category:e,formState:t,onChange:l})=>{const r=ca(()=>"noisy"===e?Ha:Ba,[e]),i=da(e=>l({operationType:e,route:"",serverAddress:"",method:"",kafkaTopic:""}),[l]),s=da(e=>a=>{a&&l({routeType:e,route:""})},[l]),n=da(e=>l({route:e.target.value}),[l]),o=da(e=>l({serverAddress:e.target.value}),[l]),d=da(e=>l({method:e[0]||""}),[l]),c=da(e=>l({kafkaTopic:e.target.value}),[l]),u="httpServer"===t.operationType||"httpClient"===t.operationType,h="kafkaConsumer"===t.operationType||"kafkaProducer"===t.operationType,g="httpClient"===t.operationType?H:B,m="httpClient"===t.operationType?V:j;return aa(S,{richTitle:{title:`2. ${D}`,subTitle:I},children:[ea(f,{$alignItems:"flex-start",children:ea(y,{size:x.S,options:r,selected:t.operationType,setSelected:i})}),u&&aa(La,{children:["httpClient"===t.operationType&&aa(Xa,{children:[ea(p,{name:"sampling-input-server-address",label:R,placeholder:X,value:t.serverAddress,onChange:o}),ea(Ea,{})]}),aa(za,{children:[aa(Da,{children:[ea(Ia,{children:ea(N,{"data-id":"sampling-radio-route",value:"route"===t.routeType,onChange:s("route")})}),ea(p,{name:"sampling-input-route",label:g,placeholder:E,value:"route"===t.routeType?t.route:"",onChange:n,disabled:"route"!==t.routeType})]}),aa(Da,{children:[ea(Ia,{children:ea(N,{"data-id":"sampling-radio-route-prefix",value:"routePrefix"===t.routeType,onChange:s("routePrefix")})}),ea(p,{name:"sampling-input-route-prefix",label:m,placeholder:E,value:"routePrefix"===t.routeType?t.route:"",onChange:n,disabled:"routePrefix"!==t.routeType})]})]}),aa(Xa,{children:[ea(Ea,{}),ea(q,{label:G,items:Va,selectedIds:[t.method||""],setSelectedIds:e=>d(e),buttonProps:{"data-id":"sampling-btn-method",label:Va.find(e=>e.id===t.method)?.label||Ra,size:U.S,variant:a.Secondary}})]})]}),h&&ea(p,{name:"sampling-input-kafka-topic",label:J,placeholder:"Type kafka topic",value:t.kafkaTopic,onChange:c,width:"320px"})]})},Ga=[{value:"all",label:"Drop All"},{value:"sample",label:"Sample"}],Ja=[{value:"all",label:"Keep All"},{value:"sample",label:"Sample"}];const Ka=e=>e.readOnly?ea(Wa,{data:e.data}):ea(Fa,{category:e.category,formState:e.formState,onChange:e.onChange}),Wa=({data:e})=>{const a=ca(()=>function(e){switch(e.category){case"highlyRelevant":return null!=e.rule.percentageAtLeast?{title:ae,method:ie,description:le,value:`${e.rule.percentageAtLeast}%`}:{title:ae,method:oe,description:null,value:null};case"noisy":return se(e.rule.percentageAtMost)?{title:ae,method:ne,description:null,value:null}:{title:ae,method:ie,description:re,value:`${e.rule.percentageAtMost}%`};case"costReduction":return{title:ae,method:ie,description:re,value:`${e.rule.percentageAtMost}%`}}}(e),[e]),t=[{id:"method",title:G,value:a.method},...null!=a.description?[{id:"value",title:a.description,value:a.value}]:[]];return ea(S,{richTitle:{title:a.title},children:ea(Aa,{children:t.map(({id:e,title:a,value:t})=>aa(Oa,{children:[ea($,{size:A.XXXS,color:M.Secondary,nowrap:!0,children:a}),ea($,{size:A.XS,nowrap:!0,children:t})]},e))})})},Fa=({category:e,formState:a,onChange:t})=>{const l="highlyRelevant"===e,r=l?Ja:Ga,i=`${l?4:3}. ${ae}`,s=ee[e],n=l?le:re,o="noisy"===e?Ca:Sa,d=da(e=>t({percentageMode:e}),[t]),c=da(e=>t({percentagePreset:e}),[t]),u=da(e=>t({customPercentage:e.target.value}),[t]);return aa(S,{richTitle:{title:i,subTitle:s},children:["costReduction"!==e&&ea(f,{$alignItems:"flex-start",children:ea(y,{size:x.S,options:r,selected:a.percentageMode,setSelected:d})}),("costReduction"===e||"sample"===a.percentageMode)&&ea(Ta,{description:n,options:o,selected:a.percentagePreset,onSelect:c,customName:"sampling-input-custom-percentage",customLabel:te,customPlaceholder:"5%",customValue:a.customPercentage,onCustomChange:u,customInputType:h.Decimal,customMin:0,customMax:100})]})},Za=va.div`
|
|
35
|
-
display: flex;
|
|
36
|
-
align-items: flex-end;
|
|
37
|
-
gap: 16px;
|
|
38
|
-
`,Ya=va.div`
|
|
39
|
-
width: 280px;
|
|
40
|
-
flex-shrink: 0;
|
|
41
|
-
`,Qa=va.div`
|
|
42
|
-
flex: 1;
|
|
43
|
-
min-width: 0;
|
|
44
|
-
`;function _a(e){return"highlyRelevant"===e.category?e.rule.error?"Error":null!=e.rule.durationAtLeastMs?"Duration":"Relevance":ve[e.category]}const et=e=>e.readOnly?ea(at,{data:e.data}):ea(tt,{formState:e.formState,onChange:e.onChange}),at=({data:e})=>{const a=ca(()=>[{id:"name",title:ce,value:e.rule.name||de},{id:"type",title:ue,value:_a(e)}],[e]),t=e.rule.notes||F;return aa(S,{children:[ea(Aa,{children:a.map(({id:e,title:a,value:t})=>aa(Oa,{children:[ea($,{size:A.XXXS,color:M.Secondary,nowrap:!0,children:a}),ea($,{size:A.XS,nowrap:!0,children:t})]},e))}),aa(Oa,{children:[ea($,{size:A.XXXS,color:M.Secondary,children:pe}),ea($,{size:A.XS,children:t})]})]})},tt=({formState:e,onChange:a})=>{const t=da(e=>a({name:e.target.value}),[a]),l=da(e=>a({notes:e.target.value}),[a]);return ea(S,{children:aa(Za,{children:[ea(Ya,{children:ea(p,{name:"sampling-input-rule-name",label:ce,tooltip:"Optional. Give this rule a name for easier identification.",placeholder:he,value:e.name,onChange:t})}),ea(Qa,{children:ea(p,{name:"sampling-input-note",label:pe,tooltip:me,placeholder:ge,value:e.notes,onChange:l})})]})})},lt=[{value:"Relevance",label:"Relevance"},{value:"Error",label:"Error"},{value:"Duration",label:"Duration"}],rt=({formState:e,onChange:a})=>{const t=da(e=>a({ruleType:e,keepErrors:"Error"===e}),[a]);return ea(S,{richTitle:{title:`3. ${ue}`,subTitle:fe},children:ea(f,{$alignItems:"flex-start",children:ea(y,{size:x.S,options:lt,selected:e.ruleType,setSelected:t})})})},it=va.div`
|
|
45
|
-
display: flex;
|
|
46
|
-
align-items: center;
|
|
47
|
-
gap: 24px;
|
|
48
|
-
padding: 8px 16px;
|
|
49
|
-
border-radius: 12px;
|
|
50
|
-
background-color: ${({theme:e})=>e.v2.colors.silver[800]};
|
|
51
|
-
`,st=va.div`
|
|
52
|
-
flex: 1;
|
|
53
|
-
min-width: 0;
|
|
54
|
-
white-space: pre;
|
|
55
|
-
overflow-x: auto;
|
|
56
|
-
`,nt=({title:e,summary:t,onEdit:l,renderAction:r})=>{const i=ca(()=>{const a=[];return e&&(a.push({text:e,variant:be.Default}),a.push({text:" - ",variant:be.Default})),a.push(...t),a},[e,t]);return aa(it,{children:[ea(st,{children:ea(ye,{parts:i})}),r&&r(),l&&ea(xe,{"data-id":"sampling-btn-edit-auto-rule",label:Se,rightIcon:ia,variant:a.Text,size:U.S,onClick:l})]})},ot=e=>{const a=ca(()=>{if(e.readOnly)return e.summary;switch(e.category){case"noisy":return Te(Ae(e.formState));case"highlyRelevant":return ke(Me(e.formState));case"costReduction":return Ce(Pe(e.formState))}},[e]);if(e.readOnly)return ea(nt,{title:we,summary:a,renderAction:e.renderAction});const t=1===a.length&&"default"===a[0].variant;return ea(nt,{title:t?$e:we,summary:t?[]:a,renderAction:e.renderAction})},dt=va.div`
|
|
57
|
-
display: flex;
|
|
58
|
-
flex-wrap: wrap;
|
|
59
|
-
gap: 8px;
|
|
60
|
-
`,ct=va.div`
|
|
61
|
-
display: flex;
|
|
62
|
-
align-items: center;
|
|
63
|
-
gap: 8px;
|
|
64
|
-
padding: 8px 12px;
|
|
65
|
-
border-radius: 8px;
|
|
66
|
-
cursor: pointer;
|
|
67
|
-
background: ${({theme:e,$selected:a})=>a?e.v2.colors.silver[700]:e.v2.colors.silver[900]};
|
|
68
|
-
border: 1px solid ${({theme:e,$selected:a})=>a?e.v2.colors.silver[500]:e.v2.colors.silver[800]};
|
|
69
|
-
|
|
70
|
-
&:hover {
|
|
71
|
-
background: ${({theme:e})=>e.v2.colors.silver[700]};
|
|
72
|
-
}
|
|
73
|
-
`,ut=va.div`
|
|
74
|
-
display: flex;
|
|
75
|
-
width: 32px;
|
|
76
|
-
height: 32px;
|
|
77
|
-
justify-content: center;
|
|
78
|
-
align-items: center;
|
|
79
|
-
flex-shrink: 0;
|
|
80
|
-
`,pt=va.div`
|
|
81
|
-
display: flex;
|
|
82
|
-
flex-direction: column;
|
|
83
|
-
gap: 4px;
|
|
84
|
-
`,ht=va.div`
|
|
85
|
-
display: flex;
|
|
86
|
-
align-items: center;
|
|
87
|
-
gap: 8px;
|
|
88
|
-
padding: 8px;
|
|
89
|
-
border-radius: 8px;
|
|
90
|
-
background-color: ${({theme:e})=>e.v2.colors.silver[900]};
|
|
91
|
-
`,gt=va.div`
|
|
92
|
-
display: flex;
|
|
93
|
-
width: 24px;
|
|
94
|
-
height: 24px;
|
|
95
|
-
justify-content: center;
|
|
96
|
-
align-items: center;
|
|
97
|
-
flex-shrink: 0;
|
|
98
|
-
`,mt={[je.JavaScript]:"Node.js",[je.DotNet]:".NET",[je.Php]:"PHP",[je.Java]:"Java",[je.Go]:"Go",[je.Python]:"Python",[je.Ruby]:"Ruby",[je.Rust]:"Rust"},vt=[je.Python,je.Java,je.JavaScript,je.DotNet,je.Php,je.Ruby,je.Go].map(e=>({id:e,label:mt[e]??e.charAt(0).toUpperCase()+e.slice(1),Icon:Ve(e)})),ft=[{value:"all",label:"Entire Cluster"},{value:"source",label:"Specific Source"},{value:"namespace",label:"Specific Namespace"},{value:"language",label:"Specific Programming Language"}];function bt(e){const a=mt[e];return a||e.charAt(0).toUpperCase()+e.slice(1)}const yt=e=>e.readOnly?ea(xt,{scopes:e.scopes}):ea(St,{formState:e.formState,onChange:e.onChange,sourceOptions:e.sourceOptions,namespaceOptions:e.namespaceOptions}),xt=({scopes:e})=>{if(Oe(e))return ea(S,{richTitle:{title:Le},children:ea(ze,{status:Ie.Default,message:De,fullWidth:!0})});const a=e.sources??[],t=e.namespaces??[],l=e.languages??[];return ea(S,{richTitle:{title:Le},children:aa(pt,{children:[a.map((e,a)=>{const t=[e.namespace,e.kind,e.name].filter(Boolean),l=t.length?t.join(" / "):Xe;return ea(ht,{children:ea($,{size:A.XS,color:M.Primary,children:l})},`src-${a}`)}),t.map((e,a)=>ea(ht,{children:ea($,{size:A.XS,color:M.Primary,children:e})},`ns-${a}`)),l.map((e,a)=>{const t=Ve(e);return aa(ht,{children:[t&&ea(gt,{children:ea(t,{size:18})}),ea($,{size:A.XS,color:M.Primary,children:bt(e)})]},`lang-${a}`)})]})})},St=({formState:e,onChange:a,sourceOptions:t=[],namespaceOptions:l=[]})=>{const[r,i]=ua(()=>{return(a=e.sourceScopes).sources.length>0?"source":a.namespaces.length>0?"namespace":a.languages.length>0?"language":"all";var a}),{sources:n,namespaces:o,languages:d}=e.sourceScopes,c=n.length>0||o.length>0||d.length>0,u=ca(()=>ft.map(e=>({...e,disabled:"all"===e.value&&c})),[c]),p=ca(()=>n.map(e=>{return a=e.namespace,t=e.kind,l=e.name,`${a}/${t}/${l}`;var a,t,l}),[n]),h=ca(()=>[...o],[o]),g=ca(()=>new Set(d),[d]),m=da(e=>{i(e)},[]),v=da(t=>{const l=t.map(e=>function(e){const a=e.split("/");return 3!==a.length?null:{namespace:a[0],kind:a[1],name:a[2]}}(e)).filter(e=>null!==e).map(e=>({namespace:e.namespace,kind:e.kind,name:e.name}));a({sourceScopes:{...e.sourceScopes,sources:l}})},[e.sourceScopes,a]),b=da(t=>{a({sourceScopes:{...e.sourceScopes,namespaces:t}})},[e.sourceScopes,a]),C=da(t=>{const l=e.sourceScopes.languages,r=l.includes(t)?l.filter(e=>e!==t):[...l,t];a({sourceScopes:{...e.sourceScopes,languages:r}})},[e.sourceScopes,a]);return aa(S,{richTitle:{title:`1. ${Le}`,subTitle:Re},children:[ea(ze,!c&&"all"===r?{status:Ie.Default,message:De,fullWidth:!0,smallIcon:!0}:{status:Ie.Info,message:Ne,fullWidth:!0,smallIcon:!0}),ea(f,{$alignItems:"flex-start",children:ea(y,{size:x.S,options:u,selected:r,setSelected:m})}),"source"===r&&ea(Ee,{multiple:!0,"data-id":"sampling-autocomplete-source",options:t,value:p,onSelect:v,placeholder:He}),"namespace"===r&&ea(Ee,{multiple:!0,"data-id":"sampling-autocomplete-namespace",options:l,value:h,onSelect:b,placeholder:"Search namespace"}),"language"===r&&ea(dt,{children:vt.map(({id:e,label:a,Icon:t})=>{const l=g.has(e);return aa(ct,{$selected:l,onClick:()=>C(e),children:[ea(s,{name:`sampling-scope-lang-${e}`,size:Be.S,value:l,onChange:()=>C(e)}),ea(ut,{children:ea(t,{size:20})}),ea($,{size:A.XS,nowrap:!0,children:a})]},e)})})]})},Ct=(e,a)=>!a?.length||!!a?.find(a=>a===e),kt=({title:e="Signals",required:a,errorMessage:t,allowedSignals:l,selectedSignals:r,setSelectedSignals:i,disabled:n})=>{const[o,d]=ua(1===r.length),c=pa(JSON.stringify(r));ha(()=>{let e=qe(r).filter(e=>Ct(e,l));e.length||(e=Ue.filter(({id:e})=>Ct(e,l)).map(({id:e})=>e));const a=JSON.stringify(e);c.current!==a&&(c.current=a,i(e),d(1===e.length))},[l,r]);return aa(f,{$gap:12,children:[ea(b,{label:e,required:a}),ea(v,{$gap:12,children:Ue.map(e=>{const a=Ct(e.id,l),t=((e,a)=>!!a?.find(a=>a===e))(e.id,r);return a?ea(s,{label:e.value,disabled:n||!a||o&&t,value:t,onChange:a=>((e,a)=>{const t=e,l=a?[...r,t]:r.filter(e=>e!==t);i(l),d(1===l.length)})(e.id,a)},e.id):null})}),ea(Ge,{errorMessage:t})]})},Tt=({minSupportedVersion:a,currentVersion:t})=>ea(e,{isOpen:!0,onClose:()=>{},relativeToParent:!0,visual:()=>ea(Je,{scale:2.4,icon:()=>ea("svg",{xmlns:"http://www.w3.org/2000/svg",width:"22",height:"21",viewBox:"0 0 22 21",fill:"none",children:ea("path",{fill:"#151618",d:"M9.4844 0.730003C9.99694 -0.243259 11.4076 -0.24341 11.92 0.730003L11.9685 0.831353L14.3039 6.22012L20.153 6.77755C21.3553 6.89211 21.841 8.38683 20.9358 9.18621L16.5314 13.0731L17.8091 18.8079C18.0716 19.9868 16.8005 20.9109 15.7605 20.2969L10.7017 17.3093L5.64282 20.2969C4.60289 20.9104 3.33173 19.9866 3.59427 18.8079L4.87192 13.0741L0.468608 9.18621C-0.43662 8.38693 0.0482932 6.8924 1.25029 6.77755L7.09837 6.22012L9.43588 0.831353L9.4844 0.730003ZM8.55284 7.02876C8.35287 7.48992 7.9179 7.80589 7.41751 7.85357L2.03952 8.36571L6.09027 11.941C6.46691 12.2737 6.63296 12.7852 6.5237 13.2758L5.34956 18.5459L10.0008 15.8009L10.1669 15.7179C10.5087 15.574 10.8945 15.5741 11.2364 15.7179L11.4036 15.8009L16.0538 18.5459L14.8807 13.2758C14.7714 12.7851 14.9374 12.2737 15.3141 11.941L19.3627 8.36571L13.9858 7.85357C13.4855 7.80587 13.0505 7.4899 12.8505 7.02876L10.7017 2.07342L8.55284 7.02876Z"})})}),title:"Upgrade Required",description:`To use this feature, please upgrade to Odigos v${a} or later.\nCurrent version: ${t}.`}),wt=va.div`
|
|
99
|
-
display: flex;
|
|
100
|
-
flex-direction: column;
|
|
101
|
-
justify-content: flex-end;
|
|
102
|
-
width: ${({$width:e})=>e};
|
|
103
|
-
gap: ${({$columnHasHeader:e})=>e?"0":"12px"};
|
|
104
|
-
`,$t=va.div`
|
|
105
|
-
display: flex;
|
|
106
|
-
align-items: center;
|
|
107
|
-
min-height: 24px;
|
|
108
|
-
padding: 12px;
|
|
109
|
-
border-radius: 16px 16px 0 0;
|
|
110
|
-
background-color: ${({theme:e})=>e.v2.colors.silver[800]};
|
|
111
|
-
`,Pt=va.div`
|
|
112
|
-
display: flex;
|
|
113
|
-
flex-direction: column;
|
|
114
|
-
gap: ${({$gap:e})=>e}px;
|
|
115
|
-
padding: 12px 12px 0 12px;
|
|
116
|
-
width: calc(100% - 24px);
|
|
117
|
-
height: ${({$heightOffset:e,$columnHasHeader:a})=>`calc(100vh - 180px - ${e}px ${a?"- 48px":""})`};
|
|
118
|
-
border-radius: ${({$columnHasHeader:e,$isLeft:a,$isRight:t})=>e?a?"0 0 0 16px":t?"0 16px 0 0":"0":a?"16px 0 0 16px":t?"0 16px 16px 0":"16px"};
|
|
119
|
-
background-color: ${({theme:e})=>e.v2.colors.silver[900]};
|
|
120
|
-
overflow-y: auto;
|
|
121
|
-
overflow-x: hidden;
|
|
122
|
-
`,Mt=({isLeft:e,isRight:a,heightOffset:t=0,width:l,header:r,list:i})=>aa(wt,{$width:l,$columnHasHeader:!!r,children:[r&&ea($t,{children:r}),ea(Pt,{$gap:8,$isLeft:e,$isRight:a,$heightOffset:t,$columnHasHeader:!!r,children:i.length?i.length>1?ea(Ke,{gap:8,elements:i}):ea(ta,{children:i[0]}):ea(We,{$height:"100%",children:ea(Fe,{})})})]}),At="75vw",Ot=va.div`
|
|
123
|
-
display: flex;
|
|
124
|
-
flex-direction: column;
|
|
125
|
-
border-radius: 16px;
|
|
126
|
-
background-color: ${({theme:e})=>e.v2.colors.silver[1e3]};
|
|
127
|
-
overflow: hidden;
|
|
128
|
-
`,Lt=va.div`
|
|
129
|
-
display: flex;
|
|
130
|
-
gap: 12px;
|
|
131
|
-
padding: 16px 16px 0 16px;
|
|
132
|
-
background-color: ${({theme:e})=>e.v2.colors.silver[1e3]};
|
|
133
|
-
position: sticky;
|
|
134
|
-
top: 0;
|
|
135
|
-
`,zt=va.div`
|
|
136
|
-
padding: 12px 12px 0 12px;
|
|
137
|
-
`,Dt=va.div`
|
|
138
|
-
display: flex;
|
|
139
|
-
gap: 12px;
|
|
140
|
-
padding: 16px;
|
|
141
|
-
`,It=va.div`
|
|
142
|
-
padding: 5vh 10vw;
|
|
143
|
-
border-radius: 12px;
|
|
144
|
-
background-color: ${({theme:e})=>e.v2.colors.silver[800]};
|
|
145
|
-
`,Xt=ga(({isOpen:t,withOverlay:l,disableAnimation:r,onClose:i,onBack:s,onNext:n,nextIsSkip:o,onSave:d,disableSave:c,connectionIds:u,header:p,subHeader:h,leftColumn:g,rightColumn:m,search:v,filters:f,errorMessage:b,isFormDirty:y,hideDirtyNote:x,isFetching:S,progress:C},k)=>{const[T,w]=ua(!1),[$,P]=ua(!1),[M,O]=ua(void 0);ma(k,()=>({clearErrors:()=>O(void 0)}));const L=$,z=da(()=>{y&&!T?w(!0):(w(!1),i?.())},[y,T,i]),D=c||$||"boolean"==typeof y&&!y,I=da(async()=>{P(!0);const e=await d();P(!1),e?.error?O(e.error):(u?.setValue([]),i?.())},[d,u,i]),X=!!v||!!u||!!f,R=!!h,N=(X?48:0)+(R?50:0),E=ca(()=>S?{status:Ie.Info,message:"Fetching Data..."}:$&&!C?{status:Ie.Info,message:"Saving Changes..."}:M||b?{status:Ie.Error,message:M||b}:"boolean"==typeof y&&y&&!x?{status:Ie.Info,message:'The values don\'t reflect the current configurations of the selected clusters.\n"Save" will override the current configurations.'}:"boolean"!=typeof y||y||x?void 0:{status:Ie.Success,message:"The values reflect the current configuration of the selected cluster."},[S,$,C,M,b,y,x]),H=ca(()=>s?{label:"Back",leftIcon:sa,variant:a.Secondary,onClick:s}:{label:"Cancel",variant:a.Secondary,onClick:z,disabled:L},[s,z,L]),[B,V]=ua(!1),j=ca(()=>n?o?{"data-id":"wide-drawer-skip",label:"Skip",rightIcon:na,variant:a.Secondary,onClick:()=>V(!0)}:{"data-id":"wide-drawer-next",label:"Next",rightIcon:na,variant:a.Primary,onClick:n}:{"data-id":"wide-drawer-save",label:"Save",variant:a.Primary,onClick:I,disabled:D},[n,o,I,D]);return aa(Ze,{width:At,isOpen:t,disableAnimation:r,hideOverlay:!$&&!l,header:{...p,onClose:i?z:void 0,onCloseDisabled:L},footer:{note:E,actions:[H,j]},children:[$?ea(We,{$height:"calc(100vh - 136px)",children:ea(It,{children:ea(Ye,{titleSize:A.S,subTitleSize:A.XXXS,withGradient:!0,withSpinner:!0,...C})})}):aa(Ot,{children:[X&&aa(Lt,{children:[u&&ea(Qe,{icon:oa,title:"Selected Clusters",badge:{label:u.value.length}}),v&&ea(_e,{width:"100%",...v}),f]}),R&&ea(zt,{children:ea(Qe,{icon:h.icon,title:h.title,subTitle:h.description,badge:h.badge})}),aa(Dt,{children:[ea(Mt,{isLeft:!0,heightOffset:N,...g}),ea(Mt,{isRight:!0,heightOffset:N,...m})]})]}),ea(fa,{isOpen:T,onClose:()=>w(!1),onApprove:z}),ea(e,{title:"Skip setup?",description:"Without completing setup, Odigos won't be able to collect and send your telemetry data. This may interrupt your data flow and limit the platform's ability to provide value.",isOpen:B,onClose:()=>V(!1),denyButton:{label:"Go Back",variant:a.Secondary,onClick:()=>V(!1)},approveButton:{label:"Skip",variant:a.Primary,onClick:()=>{n?.(),V(!1)}}})]})});Xt.displayName=Xt.name;export{nt as A,fa as C,ya as D,Ca as N,ja as O,Ta as P,et as R,kt as S,Tt as U,Xt as W,Sa as a,ot as b,yt as c,rt as d,$a as e,Ka as f,ba as g,At as h,xa as i,ka as j};
|