@odigos/ui-kit 0.0.239 → 0.0.240

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.
Files changed (123) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/lib/chunks/helpers-D-6cJlOn.js +19 -0
  3. package/lib/chunks/index-RUJS9Blu.js +147 -0
  4. package/lib/chunks/source-instrument-form-context-CEgbaSRi.js +1 -0
  5. package/lib/chunks/ui-components-B0BVzW_z.js +1570 -0
  6. package/lib/chunks/{vendor-C150cdxb.js → vendor-Be0cOokr.js} +1 -1
  7. package/lib/components/_v2/button/index.d.ts +1 -1
  8. package/lib/components/_v2/condition/index.d.ts +1 -0
  9. package/lib/components/_v2/drop-data/index.d.ts +2 -2
  10. package/lib/components/_v2/input-table/types.d.ts +2 -0
  11. package/lib/components/index.d.ts +0 -22
  12. package/lib/components/v2.js +1 -1
  13. package/lib/components.js +1 -1
  14. package/lib/constants/sources/index.d.ts +5 -5
  15. package/lib/constants/strings/index.d.ts +3 -0
  16. package/lib/constants.js +1 -1
  17. package/lib/containers/_v2/_drawers/add-source-drawer/strings.d.ts +54 -0
  18. package/lib/containers/_v2/_drawers/edit-source-drawer/helpers.d.ts +3 -3
  19. package/lib/containers/_v2/_drawers/edit-source-drawer/index.d.ts +3 -3
  20. package/lib/containers/_v2/_drawers/edit-source-drawer/overview/containers-card/index.d.ts +2 -2
  21. package/lib/containers/_v2/_drawers/edit-source-drawer/overview/health-card.d.ts +2 -2
  22. package/lib/containers/_v2/_drawers/edit-source-drawer/overview/index.d.ts +3 -2
  23. package/lib/containers/_v2/_drawers/edit-source-drawer/overview/main-card.d.ts +2 -2
  24. package/lib/containers/_v2/_drawers/edit-source-drawer/overview/pods-card/index.d.ts +2 -2
  25. package/lib/containers/_v2/_drawers/edit-source-drawer/overview/pods-card/pods-list/helpers.d.ts +5 -2
  26. package/lib/containers/_v2/_drawers/edit-source-drawer/overview/pods-card/pods-list/process-row.d.ts +1 -0
  27. package/lib/containers/_v2/_drawers/edit-source-drawer/overview/statuses-card.d.ts +3 -2
  28. package/lib/containers/_v2/_drawers/edit-source-drawer/peers/index.d.ts +2 -2
  29. package/lib/containers/_v2/_drawers/edit-source-drawer/pods/containers-card/index.d.ts +2 -2
  30. package/lib/containers/_v2/_drawers/edit-source-drawer/pods/containers-card/process-card.d.ts +3 -1
  31. package/lib/containers/_v2/_drawers/edit-source-drawer/pods/index.d.ts +2 -2
  32. package/lib/containers/_v2/_drawers/edit-source-drawer/profiling/index.d.ts +2 -2
  33. package/lib/containers/_v2/overview/columns/column/index.d.ts +2 -2
  34. package/lib/containers/_v2/overview/columns/column/list-item.d.ts +2 -2
  35. package/lib/containers/_v2/overview/columns/column/source-visual-state.d.ts +3 -3
  36. package/lib/containers/_v2/overview/drawers/index.d.ts +1 -1
  37. package/lib/containers/_v2/overview/search/builder.d.ts +4 -4
  38. package/lib/containers/index.d.ts +0 -3
  39. package/lib/containers/service-map/helpers/build-map-nodes.d.ts +2 -2
  40. package/lib/containers/v2.js +162 -122
  41. package/lib/containers.js +19 -49
  42. package/lib/contexts/source-edit-form-context.d.ts +2 -2
  43. package/lib/contexts.js +1 -1
  44. package/lib/functions/filter-sources/index.d.ts +2 -2
  45. package/lib/functions/filter-sources-by-stream/index.d.ts +2 -2
  46. package/lib/functions/get-conditions-booleans/index.d.ts +5 -3
  47. package/lib/functions/get-containers-counts/index.d.ts +2 -2
  48. package/lib/functions/get-containers-icons/index.d.ts +5 -5
  49. package/lib/functions/get-entity-id/index.d.ts +8 -4
  50. package/lib/functions/get-main-container-language/index.d.ts +2 -2
  51. package/lib/functions/get-workload-id/index.d.ts +2 -2
  52. package/lib/functions/is-pod-injected-with-agent/index.d.ts +1 -0
  53. package/lib/functions/map-desired-status-to-condition-status/index.d.ts +1 -1
  54. package/lib/functions.js +1 -1
  55. package/lib/hooks/index.d.ts +0 -1
  56. package/lib/hooks/useActionFormData.d.ts +1 -1
  57. package/lib/hooks/useSourceFormData.d.ts +2 -2
  58. package/lib/hooks/useTimeAgo.d.ts +11 -0
  59. package/lib/hooks.js +1 -1
  60. package/lib/mock-data/index.d.ts +0 -1
  61. package/lib/mock-data/sources/index.d.ts +4 -7
  62. package/lib/snippets/_v2/delete-modal/index.d.ts +3 -0
  63. package/lib/snippets/_v2/dynamic-field/index.d.ts +2 -3
  64. package/lib/snippets/index.d.ts +0 -4
  65. package/lib/snippets/v2.js +1 -1
  66. package/lib/snippets.js +49 -1
  67. package/lib/store/useEntityStore.d.ts +2 -2
  68. package/lib/store/useFilterStore.d.ts +8 -14
  69. package/lib/store/useSelectedStore.d.ts +2 -2
  70. package/lib/store/useSetupStore.d.ts +10 -15
  71. package/lib/store.js +1 -1
  72. package/lib/theme.js +1 -1
  73. package/lib/types/destinations/index.d.ts +3 -3
  74. package/lib/types/namespaces/index.d.ts +3 -3
  75. package/lib/types/sources/index.d.ts +3 -44
  76. package/lib/types/workload/index.d.ts +16 -51
  77. package/lib/types.js +1 -1
  78. package/lib/visuals.js +1 -1
  79. package/package.json +1 -1
  80. package/lib/chunks/index-B5PgIL40.js +0 -3
  81. package/lib/chunks/index-Dy4pkeq6.js +0 -145
  82. package/lib/chunks/index-uXyrp4Xe.js +0 -41
  83. package/lib/chunks/ui-components-BPdnIOmj.js +0 -2248
  84. package/lib/components/badge/index.d.ts +0 -11
  85. package/lib/components/button/index.d.ts +0 -6
  86. package/lib/components/cancel-warning/index.d.ts +0 -10
  87. package/lib/components/checkbox/index.d.ts +0 -15
  88. package/lib/components/condition-details/index.d.ts +0 -10
  89. package/lib/components/data-card/data-card-fields/index.d.ts +0 -23
  90. package/lib/components/data-card/index.d.ts +0 -17
  91. package/lib/components/data-tab/index.d.ts +0 -43
  92. package/lib/components/delete-warning/index.d.ts +0 -13
  93. package/lib/components/describe-row/index.d.ts +0 -13
  94. package/lib/components/drawer/drawer-footer/index.d.ts +0 -16
  95. package/lib/components/drawer/drawer-header/index.d.ts +0 -24
  96. package/lib/components/drawer/index.d.ts +0 -15
  97. package/lib/components/dropdown/index.d.ts +0 -25
  98. package/lib/components/extend-arrow/index.d.ts +0 -8
  99. package/lib/components/field-error/index.d.ts +0 -4
  100. package/lib/components/field-label/index.d.ts +0 -11
  101. package/lib/components/input/index.d.ts +0 -15
  102. package/lib/components/modal/index.d.ts +0 -14
  103. package/lib/components/monitors-icons/index.d.ts +0 -11
  104. package/lib/components/no-data-found/index.d.ts +0 -6
  105. package/lib/components/popup-form/index.d.ts +0 -18
  106. package/lib/components/status/index.d.ts +0 -17
  107. package/lib/components/tab-list/index.d.ts +0 -18
  108. package/lib/components/warning-modal/index.d.ts +0 -24
  109. package/lib/containers/overview-drawer/index.d.ts +0 -27
  110. package/lib/containers/source-drawer/build-card.d.ts +0 -3
  111. package/lib/containers/source-drawer/describe/index.d.ts +0 -13
  112. package/lib/containers/source-drawer/index.d.ts +0 -23
  113. package/lib/containers/source-drawer/libraries/index.d.ts +0 -12
  114. package/lib/containers/source-drawer/odigos-health/index.d.ts +0 -5
  115. package/lib/containers/source-drawer/peers/index.d.ts +0 -12
  116. package/lib/containers/source-form/index.d.ts +0 -8
  117. package/lib/hooks/useSourceSelectionFormData.d.ts +0 -32
  118. package/lib/mock-data/workload/index.d.ts +0 -2
  119. package/lib/snippets/add-button/index.d.ts +0 -9
  120. package/lib/snippets/copy-text/index.d.ts +0 -7
  121. package/lib/snippets/pod-container/index.d.ts +0 -5
  122. package/lib/snippets/source-container/index.d.ts +0 -6
  123. package/lib/snippets/source-container/override-runtime.d.ts +0 -10
@@ -1,21 +1,16 @@
1
- import type { Destination, Source } from '@/types';
2
- export type AvailableSource = Pick<Source, 'namespace' | 'name' | 'kind' | 'selected' | 'numberOfInstances'>;
3
- export interface AvailableSourcesByNamespace {
4
- [namespace: string]: AvailableSource[];
5
- }
6
- export type SelectedSource = AvailableSource & {
7
- currentStreamName: string;
8
- };
1
+ import type { Destination, Workload } from '@/types';
9
2
  export interface SourceSelectionFormData {
10
- [namespace: string]: SelectedSource[];
3
+ [namespace: string]: (Pick<Workload, 'id' | 'numberOfInstances'> & {
4
+ selected: boolean;
5
+ currentStreamName: string;
6
+ })[];
11
7
  }
12
- export type SelectedNamespace = {
13
- namespace: string;
14
- selected: boolean;
15
- currentStreamName: string;
16
- };
17
8
  export interface NamespaceSelectionFormData {
18
- [namespace: string]: SelectedNamespace;
9
+ [namespace: string]: {
10
+ namespace: string;
11
+ selected: boolean;
12
+ currentStreamName: string;
13
+ };
19
14
  }
20
15
  export interface ISetupState {
21
16
  configuredSources: SourceSelectionFormData;
package/lib/store.js CHANGED
@@ -1 +1 @@
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";
1
+ export{aL as ProgressKeys,r as useActiveNodeStore,fK as useDarkMode,H as useDataStreamStore,ba as useDrawerStore,q as useEntityStore,d5 as useFilterStore,bP as useModalStore,d as useNotificationStore,aK as useProgressStore,de as useSelectedStore,dn as useSetupStore}from"./chunks/ui-components-B0BVzW_z.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-Be0cOokr.js";import"prism-react-renderer";import"react-error-boundary";import"react-dom";import"virtua";
package/lib/theme.js CHANGED
@@ -1 +1 @@
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";
1
+ export{fS as Provider,fT as animations,fU as opacity,fV as palettes}from"./chunks/ui-components-B0BVzW_z.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-Be0cOokr.js";import"prism-react-renderer";import"react-error-boundary";import"react-dom";import"virtua";
@@ -1,5 +1,5 @@
1
- import type { DropdownProps } from '@/components';
2
- import { type Condition, FieldTypes, SVG, InputTypes } from '../common';
1
+ import { type DropDataOption } from '@/components/_v2';
2
+ import { type Condition, FieldTypes, type SVG, InputTypes } from '../common';
3
3
  export declare enum DestinationTypes {
4
4
  Alauda = "alauda",
5
5
  AlibabaCloud = "alibabacloud",
@@ -146,7 +146,7 @@ export interface DestinationDynamicField {
146
146
  required?: boolean;
147
147
  tooltip?: string;
148
148
  placeholder?: string;
149
- options?: DropdownProps['options'];
149
+ options?: DropDataOption[];
150
150
  }
151
151
  export interface GetDestinationCategoriesResult {
152
152
  destinationCategories: {
@@ -1,9 +1,9 @@
1
- import type { Source } from '../sources';
1
+ import type { Workload } from '../workload';
2
2
  export interface Namespace {
3
3
  name: string;
4
- selected: boolean;
4
+ markedForInstrumentation: boolean;
5
5
  dataStreamNames: string[];
6
- sources?: Source[];
6
+ workloads?: Pick<Workload, 'id' | 'markedForInstrumentation' | 'dataStreamNames' | 'numberOfInstances'>[];
7
7
  }
8
8
  export type FetchNamespacesWithWorkloads = () => Promise<{
9
9
  loading: boolean;
@@ -1,10 +1,9 @@
1
+ import { ProgrammingLanguages } from '../common';
1
2
  import type { DescribeSource } from '../describe';
2
3
  import type { PeerSources } from '../service-map';
4
+ import type { Workload, WorkloadId } from '../workload';
3
5
  import { K8sResourceKind, OtelDistroName } from '../enum';
4
- import { type Condition, ProgrammingLanguages } from '../common';
5
- import type { NamespaceSelectionFormData, SourceSelectionFormData } from '@/store';
6
6
  import type { InstrumentationInstanceComponent } from '../instrumentation-instances';
7
- import type { DesiredConditionStatus, K8sWorkloadPod, Workload, WorkloadId } from '../workload';
8
7
  export interface PersistSourceInput {
9
8
  [clusterId: string]: {
10
9
  namespace: string;
@@ -17,45 +16,6 @@ export interface PersistSourceInput {
17
16
  export type PersistSourcesFunc = (payload: PersistSourceInput) => Promise<{
18
17
  error?: string;
19
18
  } | undefined>;
20
- export interface SourceContainerRuntimeInfo {
21
- language: ProgrammingLanguages;
22
- runtimeVersion: string | null;
23
- }
24
- export interface SourceContainerAgentEnabled {
25
- agentEnabled: boolean;
26
- agentEnabledStatus: {
27
- message: string;
28
- };
29
- otelDistroName: OtelDistroName | null;
30
- }
31
- export interface SourceContainerOverrides {
32
- containerName: string;
33
- otelDistroName: OtelDistroName | null;
34
- runtimeInfo: SourceContainerRuntimeInfo | null;
35
- }
36
- export interface SourceContainer {
37
- containerName: string;
38
- runtimeInfo: SourceContainerRuntimeInfo | null;
39
- agentEnabled: SourceContainerAgentEnabled | null;
40
- overrides: SourceContainerOverrides | null;
41
- }
42
- export interface Source extends WorkloadId {
43
- selected: boolean;
44
- otelServiceName: string;
45
- numberOfInstances?: number;
46
- dataStreamNames: string[];
47
- containers: SourceContainer[] | null;
48
- conditions: Condition[] | null;
49
- workloadOdigosHealthStatus?: DesiredConditionStatus | null;
50
- detectedLanguages?: ProgrammingLanguages[] | null;
51
- podsAgentInjectionStatus?: DesiredConditionStatus | null;
52
- podsHealthStatus?: DesiredConditionStatus | null;
53
- pods?: K8sWorkloadPod[] | null;
54
- rollbackOccurred?: boolean;
55
- manifestYAML?: string | null;
56
- instrumentationConfigYAML?: string | null;
57
- telemetryMetrics?: Workload['telemetryMetrics'] | null;
58
- }
59
19
  export interface SourceFormData {
60
20
  otelServiceName?: string;
61
21
  currentStreamName?: string;
@@ -64,9 +24,8 @@ export interface SourceFormData {
64
24
  version?: string;
65
25
  otelDistroName?: OtelDistroName | null;
66
26
  }
67
- export type PersistSources = (selectAppsList: SourceSelectionFormData, futureSelectAppsList: NamespaceSelectionFormData) => void;
68
27
  export type UpdateSourceFunc = (sourceId: WorkloadId, payload: SourceFormData) => Promise<void>;
69
- export type FetchSourceByIdFunc = (id: WorkloadId, bypassPaginationLoader?: boolean) => Promise<Source | undefined>;
28
+ export type FetchSourceByIdFunc = (id: WorkloadId, bypassPaginationLoader?: boolean) => Promise<Workload | undefined>;
70
29
  export type FetchSourceDescribeFunc = (req: WorkloadId) => Promise<{
71
30
  data?: {
72
31
  describeSource: DescribeSource;
@@ -10,7 +10,7 @@ interface WorkloadFilter extends Partial<WorkloadId> {
10
10
  }
11
11
  export interface DesiredConditionStatus {
12
12
  name?: string;
13
- status: DesiredStateProgress;
13
+ status?: DesiredStateProgress;
14
14
  reasonEnum?: string | null;
15
15
  message: string;
16
16
  }
@@ -24,29 +24,17 @@ export interface NamespaceWorkload {
24
24
  }
25
25
  export interface K8sWorkloadMarkedForInstrumentation {
26
26
  markedForInstrumentation: boolean | null;
27
- decisionEnum: string;
28
- message: string;
29
27
  }
30
28
  export interface EnvVar {
31
29
  name: string;
32
30
  value: string;
33
31
  }
34
32
  export interface K8sWorkloadRuntimeInfoContainer {
35
- containerName: string;
36
33
  language: ProgrammingLanguages;
37
34
  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
35
  }
45
36
  export interface K8sWorkloadRuntimeInfo {
46
- completed: boolean;
47
- completedStatus: DesiredConditionStatus;
48
37
  detectedLanguages?: ProgrammingLanguages[] | null;
49
- containers?: K8sWorkloadRuntimeInfoContainer[] | null;
50
38
  }
51
39
  export interface DistroParam {
52
40
  name: string;
@@ -62,15 +50,9 @@ export interface K8sWorkloadAgentEnabledContainerLogs {
62
50
  enabled: boolean;
63
51
  }
64
52
  export interface K8sWorkloadAgentEnabledContainer {
65
- containerName: string;
66
53
  agentEnabled: boolean;
67
- agentEnabledStatus: DesiredConditionStatus;
54
+ agentEnabledStatus?: DesiredConditionStatus | null;
68
55
  otelDistroName?: OtelDistroName | null;
69
- envInjectionMethod?: string | null;
70
- distroParams?: DistroParam[] | null;
71
- traces?: K8sWorkloadAgentEnabledContainerTraces | null;
72
- metrics?: K8sWorkloadAgentEnabledContainerMetrics | null;
73
- logs?: K8sWorkloadAgentEnabledContainerLogs | null;
74
56
  }
75
57
  export interface K8sWorkloadAgentEnabled {
76
58
  agentEnabled: boolean;
@@ -78,7 +60,7 @@ export interface K8sWorkloadAgentEnabled {
78
60
  containers?: K8sWorkloadAgentEnabledContainer[] | null;
79
61
  }
80
62
  export interface K8sWorkloadRollout {
81
- rolloutStatus: DesiredConditionStatus;
63
+ rolloutStatus?: DesiredConditionStatus | null;
82
64
  }
83
65
  export interface K8sWorkloadContainerOverrides {
84
66
  containerName: string;
@@ -116,33 +98,24 @@ export interface K8sWorkloadPodContainerProcessAttribute {
116
98
  }
117
99
  export interface K8sWorkloadPodContainerProcessInstrumentation {
118
100
  name: string;
119
- type?: string | null;
120
101
  healthy?: boolean | null;
121
102
  message?: string | null;
122
- lastStatusTime?: string | null;
123
103
  isStandardLibrary?: boolean | null;
124
- nonIdentifyingAttributes?: {
125
- key: string;
126
- value: string;
127
- }[] | null;
128
104
  }
129
105
  export interface K8sWorkloadContainer {
130
106
  containerName: string;
131
107
  runtimeInfo?: K8sWorkloadRuntimeInfoContainer | null;
132
108
  agentEnabled?: K8sWorkloadAgentEnabledContainer | null;
133
109
  overrides?: K8sWorkloadContainerOverrides | null;
134
- agentConfig?: K8sWorkloadContainerAgentConfig | null;
135
- instrumentations?: K8sWorkloadPodContainerProcessInstrumentation[] | null;
136
110
  }
137
111
  export interface K8sWorkloadPodContainerProcess {
138
112
  healthy?: boolean | null;
139
- healthStatus: DesiredConditionStatus;
113
+ healthStatus?: DesiredConditionStatus | null;
140
114
  identifyingAttributes?: K8sWorkloadPodContainerProcessAttribute[] | null;
141
115
  instrumentations?: K8sWorkloadPodContainerProcessInstrumentation[] | null;
142
116
  }
143
117
  export interface K8sWorkloadPodContainer {
144
118
  containerName: string;
145
- odigosInstrumentationDeviceName?: string | null;
146
119
  otelDistroName?: OtelDistroName | null;
147
120
  started?: boolean | null;
148
121
  ready?: boolean | null;
@@ -151,7 +124,7 @@ export interface K8sWorkloadPodContainer {
151
124
  runningStartedTime?: string | null;
152
125
  waitingReasonEnum?: string | null;
153
126
  waitingMessage?: string | null;
154
- healthStatus: DesiredConditionStatus;
127
+ healthStatus?: DesiredConditionStatus | null;
155
128
  processes?: K8sWorkloadPodContainerProcess[] | null;
156
129
  }
157
130
  export interface K8sWorkloadPod {
@@ -159,20 +132,16 @@ export interface K8sWorkloadPod {
159
132
  nodeName: string;
160
133
  startTime: string;
161
134
  agentInjected: boolean;
162
- startedPostAgentMetaHashChange?: boolean | null;
163
- agentInjectedStatus: DesiredConditionStatus;
164
- runningLatestWorkloadRevision?: string | null;
165
- podHealthStatus: DesiredConditionStatus;
135
+ agentInjectedStatus?: DesiredConditionStatus | null;
136
+ podHealthStatus?: DesiredConditionStatus | null;
166
137
  containers?: K8sWorkloadPodContainer[] | null;
167
138
  }
168
139
  export interface K8sWorkloadTelemetryMetricsExpectingTelemetryStatus {
169
140
  isExpectingTelemetry?: boolean | null;
170
- telemetryObservedStatus: DesiredConditionStatus;
141
+ telemetryObservedStatus?: DesiredConditionStatus | null;
171
142
  }
172
143
  export interface K8sWorkloadTelemetryMetrics {
173
- totalDataSentBytes?: number | null;
174
144
  throughputBytes?: number | null;
175
- expectingTelemetry: K8sWorkloadTelemetryMetricsExpectingTelemetryStatus;
176
145
  }
177
146
  export interface K8sWorkloadConditions {
178
147
  runtimeDetection?: DesiredConditionStatus | null;
@@ -185,22 +154,18 @@ export interface K8sWorkloadConditions {
185
154
  export interface Workload {
186
155
  id: WorkloadId;
187
156
  serviceName?: string | null;
188
- workloadOdigosHealthStatus: DesiredConditionStatus;
189
- conditions: K8sWorkloadConditions;
190
- markedForInstrumentation: K8sWorkloadMarkedForInstrumentation;
157
+ workloadOdigosHealthStatus?: DesiredConditionStatus | null;
158
+ conditions?: K8sWorkloadConditions | null;
159
+ markedForInstrumentation?: K8sWorkloadMarkedForInstrumentation | null;
191
160
  runtimeInfo?: K8sWorkloadRuntimeInfo | null;
192
- agentEnabled?: K8sWorkloadAgentEnabled | null;
193
- rollout?: K8sWorkloadRollout | null;
194
161
  containers?: K8sWorkloadContainer[] | null;
195
162
  pods?: K8sWorkloadPod[] | null;
196
- podsAgentInjectionStatus: DesiredConditionStatus;
197
- podsHealthStatus: DesiredConditionStatus;
198
- workloadHealthStatus?: DesiredConditionStatus | null;
199
- processesHealthStatus: DesiredConditionStatus;
200
- telemetryMetrics: K8sWorkloadTelemetryMetrics[];
201
- dataStreamNames: string[];
163
+ podsAgentInjectionStatus?: DesiredConditionStatus | null;
164
+ podsHealthStatus?: DesiredConditionStatus | null;
165
+ telemetryMetrics?: K8sWorkloadTelemetryMetrics[] | null;
166
+ dataStreamNames?: string[] | null;
202
167
  numberOfInstances?: number | null;
203
- rollbackOccurred: boolean;
168
+ rollbackOccurred?: boolean | null;
204
169
  }
205
170
  export type GetWorkloads = (filter: WorkloadFilter) => Promise<{
206
171
  workloads: Workload[];
package/lib/types.js CHANGED
@@ -1 +1 @@
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";
1
+ export{eG as ActionCategory,y as ActionKeyTypes,z as ActionType,eH as AddNodeTypes,bh as AgentInjectedReason,eI as BooleanOperation,aj as CodeAttributesKeyTypes,eJ as ConditionType,C as Crud,W as CustomInstrumentationsKeyTypes,b0 as DesiredStateProgress,eK as DestinationTypes,eL as EdgeTypes,E as EntityTypes,R as FieldTypes,X as GolangCustomProbe,V as HeadersCollectionKeyTypes,a3 as InputTypes,eM as InstallationMethod,Z as InstrumentationRuleType,eN as IntrumentationStatus,Y as JavaCustomProbe,eO as JsonOperation,a5 as K8sAttributesFrom,_ as K8sResourceKind,eP as K8sWorkloadContainerAgentConfigTracesHeadSamplingCheckConditionOperator,eQ as ListDirection,k as NodeTypes,eR as NumberOperation,eS as OtelDistroName,eT as OtherEntityTypes,b5 as OtherStatus,aH as OtherStatusType,al as PayloadCollectionKeyTypes,P as PlatformType,eU as PodContainerLifecycleStatus,eV as PodContainerStatus,eW as PodPhase,eX as Profile,bo as ProgrammingLanguages,eY as SIGNAL_KEY_TO_TYPE,eZ as SIGNAL_TYPE_TO_KEY,e_ as SignalKey,M as SignalType,e$ as SortDirection,S as StatusType,f0 as StringOperation,T as Tier,bg as WorkloadRolloutReason,dt as WorkloadRolloutStatus}from"./chunks/ui-components-B0BVzW_z.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-Be0cOokr.js";import"prism-react-renderer";import"react-error-boundary";import"react-dom";import"virtua";
package/lib/visuals.js CHANGED
@@ -1 +1 @@
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";
1
+ export{f1 as VISUAL_ODIGOS_LOGO_HEIGHT,f2 as VISUAL_ODIGOS_LOGO_WIDTH,eD as VisualGreenRings,f3 as VisualOdigosLogo,b_ as VisualPurpleRings}from"./chunks/ui-components-B0BVzW_z.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"./chunks/vendor-Be0cOokr.js";import"prism-react-renderer";import"react-error-boundary";import"react-dom";import"virtua";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odigos/ui-kit",
3
- "version": "0.0.239",
3
+ "version": "0.0.240",
4
4
  "author": "Odigos",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,3 +0,0 @@
1
- import{jsx as t}from"react/jsx-runtime";import{useMemo as e}from"react";import i from"styled-components";import{u as o,B as s,a,A as n,g as l,D as r,C as c,b as p,N as m}from"./ui-components-BPdnIOmj.js";import{VIcon as d,CopyIcon as u,YamlIcon as f}from"../icons.js";const h=i.div`
2
- padding: 0 12px;
3
- `,g=({title:i="YAML",yaml:g,defaultOpen:b,fullHeight:T,bgTint:y="1000"})=>{const{clickCopy:C,isCopied:x}=o(),A=e(()=>g?[{id:l(),type:n.Button,buttonProps:{variant:a.Text,size:s.S,leftIcon:x?d:u,onClick:()=>C(g||""),disabled:x}}]:[],[g,x]);return t(r,{bgTint:y,richTitle:{icon:f,title:i},actions:A,withCollapse:!0,collapseIsDefaultOpen:b,fullHeight:T,children:t(h,{children:g?t(c,{code:g,language:"yaml",theme:"duotoneDark"}):t(p,{children:t(m,{title:"YAML not found",subTitle:"The YAML for this resource is not available"})})})})};export{g as Y};
@@ -1,145 +0,0 @@
1
- import{a$ as e,a,aE as t,T as l,d as r,eN as i,aw as s,bh as n,aI as o,aB as d,bm as c,aD as u,ay as p,az as h,ak as g,br as m,F as v,q as f,av as b,S as y,l as x,bb as S,eO as C,eP as k,c as w,eQ as T,f as $,eR as P,h as M,i as A,eS as O,eT as L,eU as z,eV as D,eW as I,eX as X,eY as R,d9 as N,eZ as E,e_ as H,e$ as B,f0 as V,f1 as q,cl as j,B as U,f2 as G,f3 as J,f4 as W,f5 as K,f6 as F,f7 as Z,f8 as Y,f9 as Q,fa as _,fb as ee,fc as ae,bc as te,fd as le,fe as re,ff as ie,fg as se,fh as ne,fi as oe,c9 as de,fj as ce,fk as ue,fl as pe,fm as he,fn as ge,fo as me,fp as ve,fq as fe,fr as be,cr as ye,e as xe,fs as Se,ft as Ce,fu as ke,fv as we,fw as Te,fx as $e,fy as Pe,fz as Me,fA as Ae,fB as Oe,fC as Le,aL as ze,fD as De,E as Ie,fE as Xe,fF as Re,fG as Ne,fH as Ee,fI as He,dW as Be,aZ as Ve,P as qe,ag as je,dR as Ue,ax as Ge,fJ as Je,bT as We,b as Ke,N as Fe,$ as Ze,L as Ye,e8 as Qe,o as _e}from"./ui-components-BPdnIOmj.js";import{jsx as ea,jsxs as aa,Fragment as ta}from"react/jsx-runtime";import{OdigosLogoTextCentral as la,OdigosLogoTextEnterprise as ra,OdigosLogoTextCommunity as ia,OdigosLogoTextColoredCentral as sa,OdigosLogoTextColoredEnterprise as na,OdigosLogoTextColoredCommunity as oa,EditIcon as da,ArrowLeftIcon as ca,ArrowRightIcon as ua,VSquareIcon as pa}from"../icons.js";import{useCallback as ha,useMemo as ga,useState as ma,useRef as va,useEffect as fa,forwardRef as ba,useImperativeHandle as ya}from"react";import xa from"styled-components";import"./index-B5PgIL40.js";const Sa=({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()}}}),Ca=({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()}}})},ka=({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:w,helpMessage:T,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:w,helpMessage:T},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:w,helpMessage:T},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:w,helpMessage:T},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:w,helpMessage:T},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:w,helpMessage:T},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:w,helpMessage:T},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:w,helpMessage:T},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:w,helpMessage:T},g);default:return null}},wa=({size:e=200,central:a=!1,useInline:t=!1})=>{const{tier:l}=g();if(t){if(a)return ea(la,{size:e});switch(l){case m.Community:return ea(ia,{size:e});case m.Onprem:return ea(ra,{size:e});default:return null}}if(a)return ea(sa,{size:e});switch(l){case m.Community:return ea(oa,{size:e});case m.Onprem:return ea(na,{size:e});default:return null}},Ta=[{value:"50",label:"50%"},{value:"25",label:"25%"},{value:"10",label:"10%"},{value:"1",label:"1%"},{value:"custom",label:"Custom"}],$a=[{value:"10",label:"10%"},{value:"1",label:"1%"},{value:"0.5",label:"0.5%"},{value:"0.1",label:"0.1%"},{value:"custom",label:"Custom"}],Pa=[{value:"5000",label:"5s"},{value:"1000",label:"1s"},{value:"500",label:"500ms"},{value:"100",label:"100ms"},{value:"50",label:"50ms"},{value:"custom",label:"Custom"}],Ma=({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})]}),Aa=()=>{},Oa=e=>e.readOnly?ea(La,{rule:e.rule}):ea(za,{ruleType:e.ruleType,formState:e.formState,onChange:e.onChange}),La=({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:Aa,value:!0,size:w.S,label:k,labelAlign:r.Right})}):a?ea(S,{richTitle:{title:T},children:aa("div",{children:[ea($,{size:A.XXXS,color:M.Secondary,children:P}),ea($,{size:A.XS,children:`${e.durationAtLeastMs}ms`})]})}):null},za=({ruleType:e,formState:a,onChange:t})=>{const i=ha(e=>t({durationPreset:e}),[t]),s=ha(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:Aa,size:w.S,label:k,labelAlign:r.Right})}):"Duration"===e?ea(S,{richTitle:{title:T,subTitle:L},children:ea(Ma,{description:P,options:Pa,selected:a.durationPreset,onSelect:i,customName:"sampling-input-custom-duration",customLabel:z,customPlaceholder:"200ms",customValue:a.customDurationMs,onCustomChange:s})}):null},Da=xa.div`
2
- display: flex;
3
- gap: 32px;
4
- `,Ia=xa.div`
5
- display: flex;
6
- flex-direction: column;
7
- gap: 4px;
8
- `,Xa=xa.div`
9
- display: flex;
10
- flex-wrap: wrap;
11
- align-items: flex-end;
12
- gap: 16px;
13
- `,Ra=xa.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
- `,Na=xa.div`
21
- display: flex;
22
- align-items: flex-end;
23
- gap: 10px;
24
- flex: 1;
25
- `,Ea=xa.div`
26
- display: flex;
27
- align-items: center;
28
- height: 32px;
29
- `,Ha=xa.div`
30
- display: flex;
31
- align-items: flex-end;
32
- gap: 16px;
33
- margin-bottom: 12px;
34
- `,Ba="Any",Va="Kafka topic",qa=()=>ea("div",{style:{marginBottom:"8px"},children:ea($,{size:A.XS,weight:500,children:"And"})}),ja=[{value:"all",label:"All Operations"},{value:"httpServer",label:"HTTP Server"},{value:"httpClient",label:"HTTP Client"}],Ua=[{value:"all",label:"All Operations"},{value:"httpServer",label:"HTTP Server"},{value:"kafkaConsumer",label:"Kafka Consumer"},{value:"kafkaProducer",label:"Kafka Producer"}],Ga=[{id:"",label:Ba},{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(Wa,{data:e.data}):ea(Ka,{category:e.category,formState:e.formState,onChange:e.onChange}),Wa=({data:e})=>{const a=ga(()=>function(e){if("noisy"===e.category){const a=e.rule.operation;if(a?.httpServer)return[{id:"type",title:K,value:W},{id:"route",title:B,value:a.httpServer.route||a.httpServer.routePrefix||F},{id:"method",title:G,value:a.httpServer.method||Ba}];if(a?.httpClient){const e=[{id:"type",title:K,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||Ba}),e}return[{id:"type",title:K,value:Y}]}const a=e.rule.operation;return a?.httpServer?[{id:"type",title:K,value:W},{id:"route",title:B,value:a.httpServer.route||a.httpServer.routePrefix||F},{id:"method",title:G,value:a.httpServer.method||Ba}]:a?.kafkaConsumer?[{id:"type",title:K,value:Q},{id:"topic",title:Va,value:a.kafkaConsumer.kafkaTopic||F}]:a?.kafkaProducer?[{id:"type",title:K,value:_},{id:"topic",title:Va,value:a.kafkaProducer.kafkaTopic||F}]:[{id:"type",title:K,value:Y}]}(e),[e]);return ea(S,{richTitle:{title:D},children:ea(Da,{children:a.map(({id:e,title:a,value:t})=>aa(Ia,{children:[ea($,{size:A.XXXS,color:M.Secondary,nowrap:!0,children:a}),ea($,{size:A.XS,nowrap:!0,children:t})]},e))})})},Ka=({category:e,formState:t,onChange:l})=>{const r=ga(()=>"noisy"===e?ja:Ua,[e]),i=ha(e=>l({operationType:e,route:"",serverAddress:"",method:"",kafkaTopic:""}),[l]),s=ha(e=>a=>{a&&l({routeType:e,route:""})},[l]),n=ha(e=>l({route:e.target.value}),[l]),o=ha(e=>l({serverAddress:e.target.value}),[l]),d=ha(e=>l({method:e[0]||""}),[l]),c=ha(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:q;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(Xa,{children:["httpClient"===t.operationType&&aa(Ha,{children:[ea(p,{name:"sampling-input-server-address",label:R,placeholder:X,value:t.serverAddress,onChange:o}),ea(qa,{})]}),aa(Ra,{children:[aa(Na,{children:[ea(Ea,{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(Na,{children:[ea(Ea,{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(Ha,{children:[ea(qa,{}),ea(j,{label:G,items:Ga,selectedIds:[t.method||""],setSelectedIds:e=>d(e),buttonProps:{"data-id":"sampling-btn-method",label:Ga.find(e=>e.id===t.method)?.label||Ba,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"})]})},Fa=[{value:"all",label:"Drop All"},{value:"sample",label:"Sample"}],Za=[{value:"all",label:"Keep All"},{value:"sample",label:"Sample"}];const Ya=e=>e.readOnly?ea(Qa,{data:e.data}):ea(_a,{category:e.category,formState:e.formState,onChange:e.onChange}),Qa=({data:e})=>{const a=ga(()=>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(Da,{children:t.map(({id:e,title:a,value:t})=>aa(Ia,{children:[ea($,{size:A.XXXS,color:M.Secondary,nowrap:!0,children:a}),ea($,{size:A.XS,nowrap:!0,children:t})]},e))})})},_a=({category:e,formState:a,onChange:t})=>{const l="highlyRelevant"===e,r=l?Za:Fa,i=`${l?4:3}. ${ae}`,s=ee[e],n=l?le:re,o="noisy"===e?$a:Ta,d=ha(e=>t({percentageMode:e}),[t]),c=ha(e=>t({percentagePreset:e}),[t]),u=ha(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(Ma,{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})]})},et=xa.div`
35
- display: flex;
36
- align-items: flex-end;
37
- gap: 16px;
38
- `,at=xa.div`
39
- width: 280px;
40
- flex-shrink: 0;
41
- `,tt=xa.div`
42
- flex: 1;
43
- min-width: 0;
44
- `;function lt(e){return"highlyRelevant"===e.category?e.rule.error?"Error":null!=e.rule.durationAtLeastMs?"Duration":"Relevance":ve[e.category]}const rt=e=>e.readOnly?ea(it,{data:e.data}):ea(st,{formState:e.formState,onChange:e.onChange}),it=({data:e})=>{const a=ga(()=>[{id:"name",title:ce,value:e.rule.name||de},{id:"type",title:ue,value:lt(e)}],[e]),t=e.rule.notes||F;return aa(S,{children:[ea(Da,{children:a.map(({id:e,title:a,value:t})=>aa(Ia,{children:[ea($,{size:A.XXXS,color:M.Secondary,nowrap:!0,children:a}),ea($,{size:A.XS,nowrap:!0,children:t})]},e))}),aa(Ia,{children:[ea($,{size:A.XXXS,color:M.Secondary,children:pe}),ea($,{size:A.XS,children:t})]})]})},st=({formState:e,onChange:a})=>{const t=ha(e=>a({name:e.target.value}),[a]),l=ha(e=>a({notes:e.target.value}),[a]);return ea(S,{children:aa(et,{children:[ea(at,{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(tt,{children:ea(p,{name:"sampling-input-note",label:pe,tooltip:me,placeholder:ge,value:e.notes,onChange:l})})]})})},nt=[{value:"Relevance",label:"Relevance"},{value:"Error",label:"Error"},{value:"Duration",label:"Duration"}],ot=({formState:e,onChange:a})=>{const t=ha(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:nt,selected:e.ruleType,setSelected:t})})})},dt=xa.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
- `,ct=xa.div`
52
- flex: 1;
53
- min-width: 0;
54
- white-space: pre;
55
- overflow-x: auto;
56
- `,ut=({title:e,summary:t,onEdit:l,renderAction:r})=>{const i=ga(()=>{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(dt,{children:[ea(ct,{children:ea(ye,{parts:i})}),r&&r(),l&&ea(xe,{"data-id":"sampling-btn-edit-auto-rule",label:Se,rightIcon:da,variant:a.Text,size:U.S,onClick:l})]})},pt=e=>{const a=ga(()=>{if(e.readOnly)return e.summary;switch(e.category){case"noisy":return we(Ae(e.formState));case"highlyRelevant":return ke(Me(e.formState));case"costReduction":return Ce(Pe(e.formState))}},[e]);if(e.readOnly)return ea(ut,{title:Te,summary:a,renderAction:e.renderAction});const t=1===a.length&&"default"===a[0].variant;return ea(ut,{title:t?$e:Te,summary:t?[]:a,renderAction:e.renderAction})},ht=xa.div`
57
- display: flex;
58
- flex-wrap: wrap;
59
- gap: 8px;
60
- `,gt=xa.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
- `,mt=xa.div`
74
- display: flex;
75
- width: 32px;
76
- height: 32px;
77
- justify-content: center;
78
- align-items: center;
79
- flex-shrink: 0;
80
- `,vt=xa.div`
81
- display: flex;
82
- flex-direction: column;
83
- gap: 4px;
84
- `,ft=xa.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
- `,bt=xa.div`
92
- display: flex;
93
- width: 24px;
94
- height: 24px;
95
- justify-content: center;
96
- align-items: center;
97
- flex-shrink: 0;
98
- `,yt={[qe.JavaScript]:"Node.js",[qe.DotNet]:".NET",[qe.Php]:"PHP",[qe.Java]:"Java",[qe.Go]:"Go",[qe.Python]:"Python",[qe.Ruby]:"Ruby",[qe.Rust]:"Rust"},xt=[qe.Python,qe.Java,qe.JavaScript,qe.DotNet,qe.Php,qe.Ruby,qe.Go].map(e=>({id:e,label:yt[e]??e.charAt(0).toUpperCase()+e.slice(1),Icon:Ve(e)})),St=[{value:"all",label:"Entire Cluster"},{value:"source",label:"Specific Source"},{value:"namespace",label:"Specific Namespace"},{value:"language",label:"Specific Programming Language"}];function Ct(e){const a=yt[e];return a||e.charAt(0).toUpperCase()+e.slice(1)}const kt=e=>e.readOnly?ea(wt,{scopes:e.scopes}):ea(Tt,{formState:e.formState,onChange:e.onChange,sourceOptions:e.sourceOptions,namespaceOptions:e.namespaceOptions}),wt=({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(vt,{children:[a.map((e,a)=>{const t=[e.namespace,e.kind,e.name].filter(Boolean),l=t.length?t.join(" / "):Xe;return ea(ft,{children:ea($,{size:A.XS,color:M.Primary,children:l})},`src-${a}`)}),t.map((e,a)=>ea(ft,{children:ea($,{size:A.XS,color:M.Primary,children:e})},`ns-${a}`)),l.map((e,a)=>{const t=Ve(e);return aa(ft,{children:[t&&ea(bt,{children:ea(t,{size:18})}),ea($,{size:A.XS,color:M.Primary,children:Ct(e)})]},`lang-${a}`)})]})})},Tt=({formState:e,onChange:a,sourceOptions:t=[],namespaceOptions:l=[]})=>{const[r,i]=ma(()=>{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=ga(()=>St.map(e=>({...e,disabled:"all"===e.value&&c})),[c]),p=ga(()=>n.map(e=>{return a=e.namespace,t=e.kind,l=e.name,`${a}/${t}/${l}`;var a,t,l}),[n]),h=ga(()=>[...o],[o]),g=ga(()=>new Set(d),[d]),m=ha(e=>{i(e)},[]),v=ha(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=ha(t=>{a({sourceScopes:{...e.sourceScopes,namespaces:t}})},[e.sourceScopes,a]),C=ha(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(ht,{children:xt.map(({id:e,label:a,Icon:t})=>{const l=g.has(e);return aa(gt,{$selected:l,onClick:()=>C(e),children:[ea(s,{name:`sampling-scope-lang-${e}`,size:Be.S,value:l,onChange:()=>C(e)}),ea(mt,{children:ea(t,{size:20})}),ea($,{size:A.XS,nowrap:!0,children:a})]},e)})})]})},$t=(e,a)=>!a?.length||!!a?.find(a=>a===e),Pt=({title:e="Signals",required:a,errorMessage:t,allowedSignals:l,selectedSignals:r,setSelectedSignals:i,disabled:n})=>{const[o,d]=ma(1===r.length),c=va(JSON.stringify(r));fa(()=>{let e=je(r).filter(e=>$t(e,l));e.length||(e=Ue.filter(({id:e})=>$t(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=$t(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})]})},Mt=({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}.`}),At=xa.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
- `,Ot=xa.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
- `,Lt=xa.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
- `,zt=({isLeft:e,isRight:a,heightOffset:t=0,width:l,header:r,list:i})=>aa(At,{$width:l,$columnHasHeader:!!r,children:[r&&ea(Ot,{children:r}),ea(Lt,{$gap:8,$isLeft:e,$isRight:a,$heightOffset:t,$columnHasHeader:!!r,children:i.length?i.length>1?ea(We,{gap:8,elements:i}):ea(ta,{children:i[0]}):ea(Ke,{$height:"100%",children:ea(Fe,{})})})]}),Dt="75vw",It=xa.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
- `,Xt=xa.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
- `,Rt=xa.div`
136
- padding: 12px 12px 0 12px;
137
- `,Nt=xa.div`
138
- display: flex;
139
- gap: 12px;
140
- padding: 16px;
141
- `,Et=xa.div`
142
- padding: 5vh 10vw;
143
- border-radius: 12px;
144
- background-color: ${({theme:e})=>e.v2.colors.silver[800]};
145
- `,Ht=ba(({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[w,T]=ma(!1),[$,P]=ma(!1),[M,O]=ma(void 0);ya(k,()=>({clearErrors:()=>O(void 0)}));const L=$,z=ha(()=>{y&&!w?T(!0):(T(!1),i?.())},[y,w,i]),D=c||$||"boolean"==typeof y&&!y,I=ha(async()=>{P(!0);const e=await d();P(!1),!1!==e&&(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=ga(()=>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=ga(()=>s?{label:"Back",leftIcon:ca,variant:a.Secondary,onClick:s}:{label:"Cancel",variant:a.Secondary,onClick:z,disabled:L},[s,z,L]),[B,V]=ma(!1),q=ga(()=>n?o?{"data-id":"wide-drawer-skip",label:"Skip",rightIcon:ua,variant:a.Secondary,onClick:()=>V(!0)}:{"data-id":"wide-drawer-next",label:"Next",rightIcon:ua,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:Dt,isOpen:t,disableAnimation:r,hideOverlay:!$&&!l,header:{...p,onClose:i?z:void 0,onCloseDisabled:L},footer:{note:E,actions:[H,q]},children:[$?ea(Ke,{$height:"calc(100vh - 136px)",children:ea(Et,{children:ea(Ye,{titleSize:A.S,subTitleSize:A.XXXS,withGradient:!0,withSpinner:!0,...C})})}):aa(It,{children:[X&&aa(Xt,{children:[u&&ea(Qe,{icon:pa,title:"Selected Clusters",badge:{label:u.value.length}}),v&&ea(_e,{width:"100%",...v}),f]}),R&&ea(Rt,{children:ea(Qe,{icon:h.icon,title:h.title,subTitle:h.description,badge:h.badge})}),aa(Nt,{children:[ea(zt,{isLeft:!0,heightOffset:N,...g}),ea(zt,{isRight:!0,heightOffset:N,...m})]})]}),ea(Sa,{isOpen:w,onClose:()=>T(!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)}}})]})});Ht.displayName=Ht.name;export{ut as A,Sa as C,ka as D,$a as N,Ja as O,Ma as P,rt as R,Pt as S,Mt as U,Ht as W,Ta as a,pt as b,kt as c,ot as d,Oa as e,Ya as f,Ca as g,wa as h,Dt as i,Pa as j};
@@ -1,41 +0,0 @@
1
- import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useRef as l,useState as n,useEffect as i,useLayoutEffect as o,useMemo as r,useCallback as s,Fragment as a}from"react";import c,{useTheme as f}from"styled-components";import{F as u,T as h,c as d,d as m,e as p,B as g,a as v,f as x,h as b,i as y,j as w,S,k,l as $,P as z,m as T,n as F,b as C,L as I,o as M,N as R,p as X,q as B}from"./ui-components-BPdnIOmj.js";import{SearchIcon as P,MinusIcon as W,PlusIcon as L,XIcon as O,ExpandIcon as A,CopyIcon as V,DotIcon as j,DownloadIcon as N,RefreshIcon as H}from"../icons.js";function U(e,t){const l=e.names[t];if(null==l)return"";if("string"==typeof l)return l;if("object"==typeof l&&"name"in l){const e=l.name;if("string"==typeof e)return e}return"number"==typeof l||"boolean"==typeof l?String(l):""}function J(e){const t=Math.abs(e);return t>=1e9?`${D(e/1e9)}s`:t>=1e6?`${D(e/1e6)}ms`:t>=1e3?`${D(e/1e3)}μs`:String(Math.round(e))}function D(e){return e.toFixed(2).replace(/\.?0+$/,"")}function K(e){const t=[];for(let l=0;l<e.levels.length;l++){const n=e.levels[l];let i=0;for(let e=0;e+3<n.length;e+=4){const o=n[e],r=n[e+1],s=n[e+2],a=n[e+3],c=i+o;t.push({level:l,offset:c,size:r,self:s,nameIndex:a}),i=c+r}}return t}function Y(e){return`${e.level}:${e.offset}:${e.size}:${e.nameIndex}`}function Z(e,t){const l=t.trim().toLowerCase();return!l||e.toLowerCase().includes(l)}function E(e,t,l,n,i,o={}){if(0===e.levels.length||t<2||l<2)return null;const{zoomRoot:r=null,shouldKeepName:s,collapseRecursive:a=!1}=o,c=K(e);let f=r?function(e,t){const l=e.reduce((e,t)=>Math.max(e,t.level),t.level),n=new Map;for(const t of e){const e=n.get(t.level);e?e.push(t):n.set(t.level,[t])}const i=[t];for(let e=t.level+1;e<=l;e++){const t=i.filter(t=>t.level===e-1);if(0===t.length)break;const l=n.get(e);if(l?.length)for(const e of l)for(const l of t)if(e.offset>=l.offset&&e.offset+e.size<=l.offset+l.size){i.push(e);break}}return i}(c,r):c;if(0===f.length)return null;if(s&&(f=f.filter(t=>s(U(e,t.nameIndex))),0===f.length))return null;if(a&&(f=function(e,t){if(0===t.length)return t;const l=[...t].sort((e,t)=>e.level-t.level||e.offset-t.offset),n=new Map;for(const e of l){const t=n.get(e.level);t?t.push(e):n.set(e.level,[e])}const i=new Set;for(const t of l){const l=n.get(t.level+1);if(!l)continue;const o=l.filter(e=>e.offset>=t.offset&&e.offset+e.size<=t.offset+t.size);if(1!==o.length)continue;const r=o[0];r.size===t.size&&U(e,r.nameIndex)===U(e,t.nameIndex)&&i.add(Y(r))}if(0===i.size)return l;const o=[];for(const e of l){if(i.has(Y(e)))continue;let t=0;for(let l=0;l<e.level;l++){const o=n.get(l);if(!o)continue;const r=o.find(t=>e.offset>=t.offset&&e.offset+e.size<=t.offset+t.size);r&&i.has(Y(r))&&t++}o.push({...e,level:e.level-t})}return o}(e,f),0===f.length))return null;const u=r?.level??0,h=r?.offset??0,d=r?.size??e.numTicks;if(d<=0)return null;const m=f.reduce((e,t)=>Math.max(e,t.level-u),0)+1,p=n??Number.POSITIVE_INFINITY,g=Math.max(1,Math.min(l/m,p)),v=i.trim(),x=g>8?1:0;return f.map(l=>{const n=l.level-u,i=(l.offset-h)/d*t,o=Math.max(l.size/d*t,1),r=n*g,s=Math.max(g-x,1),a=U(e,l.nameIndex);return{...l,x:i,y:r,w:o,h:s,name:a,matchesSearch:Z(a,v)}})}function _(e,t){let l=0;for(let t=0;t<e.length;t++)l=31*l+e.charCodeAt(t)>>>0;const n=t.v2.colors.black[500],i=[{fill:t.v2.colors.purple[300],text:n},{fill:t.v2.colors.green[300],text:n},{fill:t.v2.colors.red[300],text:n},{fill:t.v2.colors.blue[300],text:n},{fill:t.v2.colors.yellow[300],text:n}];return i[l%i.length]}var q,Q;!function(e){e[e.Fit=1]="Fit",e[e.X10=10]="X10"}(q||(q={})),function(e){e[e.Fit=1]="Fit",e[e.X10=10]="X10"}(Q||(Q={}));function G(e,t){return t<=0?"0":(100*e/t).toFixed(e/t<.001?2:1)}function ee(e,t,l){for(const n of l)if(e>=n.x&&e<n.x+n.w&&t>=n.y&&t<n.y+n.h)return n;return null}function te(e){return e>=1073741824?`${(e/1073741824).toFixed(1)} GiB`:e>=1048576?`${(e/1048576).toFixed(1)} MiB`:e>=1024?`${(e/1024).toFixed(1)} KiB`:`${e} B`}const le=({flamebearer:a,maxRowPx:c,searchQuery:z="",shouldKeepName:T,minHostHeight:F=200,onFullscreenChange:C,profilingSlots:I})=>{const M=f(),R=l(null),X=l(null),B=l({x:0,y:0}),V=l(a.numTicks),[j,N]=n({w:0,h:0}),[H,D]=n(""),[Z,le]=n(null),[ne,ie]=n([]),[oe,re]=n(!1),[se,ae]=n(q.Fit),[ce,fe]=n(Q.Fit),[ue,he]=n(!1),de=Math.max(1,Math.min(Math.floor(j.w*se),8192)),me=Math.max(1,Math.min(Math.floor(j.h*ce),8192)),pe=ne.length>0?ne[ne.length-1]:null,ge=pe?.size??a.numTicks;i(()=>{V.current!==a.numTicks&&(V.current=a.numTicks,ie([]))},[a.numTicks]),o(()=>{const e=R.current;if(!e)return;const t=new ResizeObserver(()=>{const t=e.getBoundingClientRect();N({w:Math.floor(t.width),h:Math.floor(t.height)})});return t.observe(e),()=>t.disconnect()},[]),i(()=>{if(!oe)return;const e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}},[oe]),i(()=>(C?.(oe),()=>{oe&&C?.(!1)}),[oe,C]);const ve=r(()=>E(a,de,me,c,z,{zoomRoot:pe,shouldKeepName:T,collapseRecursive:ue}),[a,c,z,me,de,pe,T,ue]),xe=r(()=>function(e){return[...e].sort((e,t)=>t.level-e.level)}(ve?.length?z.trim()?ve.filter(e=>e.matchesSearch):ve:[]),[ve,z]),be=s(e=>{if(de<2||me<2)return;const t=e.currentTarget.getBoundingClientRect();if(t.width<1||t.height<1)return;const l=ee((e.clientX-t.left)/t.width*de,(e.clientY-t.top)/t.height*me,xe);if(l){const e=Y(l);le(e);const t=ge>0?(100*l.size/ge).toFixed(1):"0",n=a.numTicks>0?(100*l.size/a.numTicks).toFixed(1):"0";D(`${l.name}\ntotal ${J(l.size)} (${t}% of view, ${n}% of profile) · self ${J(l.self)}`)}else le(null),D("")},[xe,a.numTicks,me,de,ge]),ye=s(e=>{be(e)},[be]),we=s(()=>{le(null),D("")},[]),Se=s(e=>{B.current={x:e.clientX,y:e.clientY}},[]),ke=s(e=>{const{x:t,y:l}=B.current;if(Math.abs(e.clientX-t)>3||Math.abs(e.clientY-l)>3)return;if(de<2||me<2)return;const n=e.currentTarget.getBoundingClientRect();if(n.width<1||n.height<1)return;const i=ee((e.clientX-n.left)/n.width*de,(e.clientY-n.top)/n.height*me,xe);if(!i)return;const o=function(e){return{level:e.level,offset:e.offset,size:e.size,self:e.self,nameIndex:e.nameIndex}}(i);ie(e=>{const t=e.length>0?e[e.length-1]:null;return t&&function(e,t){return e.level===t.level&&e.offset===t.offset&&e.size===t.size&&e.nameIndex===t.nameIndex}(o,t)?e.slice(0,-1):[...e,o]})},[xe,me,de]);o(()=>{const e=X.current;if(!e||de<2||me<2)return;const t="undefined"!=typeof window&&window.devicePixelRatio||1,l=Math.max(de,me),n=Math.min(t,16384/l);e.width=Math.floor(de*n),e.height=Math.floor(me*n),e.style.width=`${de}px`,e.style.height=`${me}px`;const i=e.getContext("2d");i&&(i.setTransform(n,0,0,n,0,0),i.clearRect(0,0,de,me),ve?.length?function(e,t,l,n,i,o,r,s){const a=o.v2.colors.silver[900];e.fillStyle=a,e.fillRect(0,0,t,l);const c=i.trim().length>0;e.textRendering="optimizeLegibility";for(const t of n){const{x:l,y:n,w:i,h:r,name:a,size:f,matchesSearch:u}=t;if(c&&!u)continue;const{fill:h,text:d}=_(a,o);e.fillStyle=h,e.fillRect(l,n,i,r),e.strokeStyle="rgba(255,255,255,0.14)",e.lineWidth=1,e.beginPath(),e.moveTo(l+.5,n+.5),e.lineTo(l+i-.5,n+.5),e.stroke(),e.strokeStyle="rgba(0,0,0,0.45)",e.lineWidth=1,e.strokeRect(l+.5,n+.5,Math.max(i-1,0),Math.max(r-1,0));const m=G(f,s),p=`${a} (${J(f)}, ${m}%)`,g=o.v2.text.size.xs,v=8,x=5,b=26,y=Math.min(g,Math.floor(r-2));if(i>=b&&y>=v){e.font=`${y}px ${o.font_family.primary}, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif`,e.textBaseline="middle",e.textAlign="left";let t=p;for(;t.length>2&&e.measureText(t).width>i-2*x;)t=`${t.slice(0,-2)}…`;e.measureText(t).width<=i-2*x&&(e.lineWidth=1,e.strokeStyle="rgba(0, 0, 0, 0.5)",e.lineJoin="round",e.miterLimit=1,e.strokeText(t,l+x,n+r/2),e.fillStyle=d,e.fillText(t,l+x,n+r/2))}}if(r)for(const t of n){if(Y(t)!==r)continue;if(c&&!t.matchesSearch)continue;const{x:l,y:n,w:i,h:o}=t;e.strokeStyle="rgba(255,255,255,0.88)",e.lineWidth=2,e.strokeRect(l+1,n+1,Math.max(i-2,0),Math.max(o-2,0));break}}(i,de,me,ve,z,M,Z,a.numTicks):(i.fillStyle=M.v2.colors.silver[900],i.fillRect(0,0,de,me)))},[ve,a.numTicks,Z,z,me,de,M]);const $e=s(()=>re(e=>!e),[]),ze=a.numTicks>0?Math.max(0,Math.min(100,Math.round(ge/a.numTicks*100))):100,Te=r(()=>function(e,t){const l=K(e),n=t?.offset??0,i=n+(t?.size??e.numTicks),o=(t?.level??-1)+1,r=t?.size??e.numTicks;let s=null;for(const e of l)e.level<o||e.offset<n||e.offset+e.size>i||e.size>=r||(!s||e.size>s.size||e.size===s.size&&e.level<s.level)&&(s=e);return s}(a,pe),[a,pe]),Fe=null!==Te,Ce=ne.length>0,Ie=pe?U(a,pe.nameIndex):"",Me=s(()=>ie([]),[]),Re=s(()=>ie(e=>e.slice(0,-1)),[]),Xe=s(()=>{Te&&ie(e=>[...e,Te])},[Te]);return e("div",{style:oe?{position:"fixed",inset:0,zIndex:9999,display:"flex",flexDirection:"column",gap:8,padding:16,background:M.v2.colors.silver[900]}:{flex:1,minHeight:F,minWidth:0,width:"100%",display:"flex",flexDirection:"column",gap:8,position:"relative"},children:[e(u,{$gap:8,$wrap:"nowrap",$justifyContent:"space-between",children:[t(h,{label:"Collapse recursive",tooltip:"Collapse straight-line recursion (parent → single same-name child of equal width) into a single bar. Helps deep recursive call chains fit on screen.",labelAlign:m.Left,size:d.S,value:ue,onChange:he}),e(u,{$gap:8,children:[e(u,{children:[t(p,{variant:v.Secondary,size:g.S,label:"Reset zoom",leftIcon:P,onClick:Me,disabled:!ne.length}),t(p,{variant:v.Secondary,size:g.S,iconSize:20,leftIcon:W,tooltip:"Zoom out",hideTooltipIcon:!0,disabled:!Ce,onClick:Re}),t("div",{style:{minWidth:36,textAlign:"center",fontVariantNumeric:"tabular-nums"},children:t(x,{size:y.XXS,color:b.Secondary,nowrap:!0,align:"center",children:`${ze}%`})}),t(p,{variant:v.Secondary,size:g.S,iconSize:20,leftIcon:L,tooltip:"Zoom in",hideTooltipIcon:!0,disabled:!Fe,onClick:Xe})]}),e(u,{children:[t(w,{text:"Horizontal width: stretch the canvas wider than the viewport so narrow stacks become hoverable / readable.",children:t(S,{size:$.S,variant:k.Filled,options:[{value:q.Fit,label:"W: Fit"},{value:q.X10,label:"10x"}],selected:se,setSelected:ae})}),t(w,{text:"Vertical height: scale rows taller than the viewport for deep call stacks. Scroll vertically to navigate.",children:t(S,{size:$.S,variant:k.Filled,options:[{value:Q.Fit,label:"H: Fit"},{value:Q.X10,label:"10x"}],selected:ce,setSelected:fe})})]}),t(p,{variant:v.Secondary,size:g.S,iconSize:24,leftIcon:oe?O:A,tooltip:oe?"Exit fullscreen (Esc)":"Fullscreen",hideTooltipIcon:!0,onClick:$e})]})]}),t(w,{fullWidth:!0,keepAlive:!0,text:H,children:t("div",{ref:R,style:{flex:1,minWidth:0,width:"100%",height:oe?"calc(100vh - 80px)":"calc(100vh - 364px)",position:"relative",overflowX:se>1?"auto":"hidden",overflowY:ce>1?"auto":"hidden"},children:t("div",{style:{width:de||"100%",height:me||"100%",position:"relative"},children:t("canvas",{ref:X,style:{display:"block",position:"absolute",left:0,top:0,width:"100%",height:"100%",borderRadius:8,cursor:Z?"pointer":"default"},onPointerDown:Se,onPointerMove:ye,onPointerLeave:we,onClick:ke})})})}),e(u,{$justifyContent:"space-between",children:[t(x,pe?{size:y.XXXS,color:M.v2.colors.silver[300],children:`Zoomed: ${Ie} • ${J(ge)} samples in view`}:{size:y.XXXS,color:M.v2.colors.silver[300],children:"Click a frame to zoom into its subtree (pprof-style)."}),I&&t(x,{size:y.XXXS,color:M.v2.colors.silver[300],children:`${I.activeKeys.length} / ${I.maxSlots} profiling slots · ${te(I.totalBytesUsed)} / ${te(I.maxTotalBytesBudget)} budget · TTL ${I.slotTtlSeconds}s`})]})]})};var ne,ie;!function(e){e.Symbol="symbol",e.Self="self",e.Total="total"}(ne||(ne={})),function(e){e.FilterOutVoid="filter-out-void",e.OnlyWithReturnValues="only-with-return-values"}(ie||(ie={}));const oe=/^[A-Za-z_$][A-Za-z0-9_$]*(\[\])*$/;function re(e,t){const l=function(e){return e.split(" ")[0]??""}(e);if(t.includes(ie.FilterOutVoid)&&"void"===l)return!1;if(t.includes(ie.OnlyWithReturnValues)){if(!(e.includes(" ")&&"void"!==l&&oe.test(l)))return!1}return!0}const se={options:[{id:ie.FilterOutVoid,label:"Filter out void symbols"},{id:ie.OnlyWithReturnValues,label:"Only show functions with return values"}],filterRow:(e,t)=>re(e.cells.find(e=>e.key===ne.Symbol)?.rawValue?.toString()??"",t)},ae=({rows:e,languages:l,filters:n,onFiltersChange:i})=>{const o=r(()=>[{key:ne.Symbol,label:"Symbol",flex:"0 0 160px",filterOverride:l?.includes(z.Java)?se:void 0,noFilter:!l?.includes(z.Java)},{key:ne.Self,label:"Self",tooltip:"Time spent in this function itself, excluding time in functions it calls.",textAlign:"right",noFilter:!0},{key:ne.Total,label:"Total",tooltip:"Time spent in this function and all functions it calls (inclusive).",textAlign:"right",noFilter:!0}],[l]),s=r(()=>e.map(e=>({cells:[{key:ne.Symbol,rawValue:e.name},{key:ne.Self,rawValue:J(e.self)},{key:ne.Total,rawValue:J(e.total)}]})),[e]);return t(T,{variant:F.Data,maxHeight:"calc(100vh - 306px)",columns:o,rows:s,filters:n,onFiltersChange:i,rowActionsPushLeftPosition:"12px",getRowActions:e=>[{id:`copy-${e.cells[0].rawValue}`,label:"",rightIcon:V,onClick:()=>{navigator.clipboard.writeText(e.cells[0].rawValue)}}]})};var ce;!function(e){e.Table="table",e.Flame="flame",e.Both="both"}(ce||(ce={}));const fe=c(B)`
2
- width: 100%;
3
- flex: 1;
4
- border-radius: 16px;
5
- overflow: hidden;
6
- background: ${({theme:e})=>e.v2.colors.silver[800]};
7
- box-shadow: 0 2px 14.1px 0 rgba(0, 0, 0, 0.25);
8
- `,ue=c.div`
9
- display: flex;
10
- align-items: center;
11
- gap: 10px;
12
- flex-wrap: wrap;
13
- padding: 12px 12px 8px;
14
- background: ${({theme:e})=>e.v2.colors.silver[800]};
15
- border-radius: 16px 16px 0 0;
16
- `,he=c(u)`
17
- flex-shrink: 0;
18
- align-items: center;
19
- gap: 4px;
20
- `,de=c.div`
21
- flex: 1;
22
- display: flex;
23
- align-items: stretch;
24
- gap: ${({$gap:e})=>e}px;
25
- padding: 16px;
26
- background: ${({theme:e})=>e.v2.colors.silver[800]};
27
- border-radius: 0 0 16px 16px;
28
- `,me=c(B)`
29
- flex: ${({$splitWithFlame:e})=>e?"0 0 min(413px, 42%)":"1 1 auto"};
30
- width: ${({$splitWithFlame:e})=>e?"auto":"100%"};
31
- max-width: ${({$splitWithFlame:e})=>e?"none":"100%"};
32
- gap: 10px;
33
- `,pe=c(B)`
34
- flex: ${({$splitWithTable:e})=>e?"1":"1 1 auto"};
35
- width: ${({$splitWithTable:e})=>e?"auto":"100%"};
36
- gap: 10px;
37
- `,ge=c(u)`
38
- width: 100%;
39
- min-height: 32px;
40
- flex-shrink: 0;
41
- `,ve=({source:o,fetchProfilingSlots:c,enableProfiling:T,fetchSourceProfiling:F,onFlameFullscreenChange:B})=>{const P=f(),W=r(()=>({namespace:o.namespace,kind:o.kind,name:o.name}),[o.namespace,o.kind,o.name]),[L,O]=n(!0),[A,V]=n(null),[D,K]=n(null),[Y,Z]=n(0),[E,_]=n(ce.Both),[q,Q]=n(""),[G,ee]=n({}),te=l(null),ie=s(async()=>{try{const e=[c()];L&&e.push(F(W));const[t,l]=await Promise.all(e);t&&V(t),l?.profileJson&&K(l.profileJson)}finally{Z(e=>e+1)}},[c,F,W]);i(()=>{let e=!1;return(async()=>{await T(W),e||(await ie(),e||(te.current=setInterval(ie,3e3)))})(),()=>{e=!0,te.current&&clearInterval(te.current)}},[T,ie,W]);const oe=r(()=>function(e){if(!e?.trim())return null;try{const t=JSON.parse(e),l=t.flamebearer;return!l?.names?.length||!Array.isArray(l.levels)||"number"!=typeof l.numTicks||l.numTicks<=0?null:{flamebearer:l,units:t.metadata?.units}}catch{return null}}(D),[D]),se=r(()=>oe?function(e){const t=new Map;for(let l=0;l<e.levels.length;l++){const n=e.levels[l];for(let l=0;l+3<n.length;l+=4){const i=n[l+1],o=n[l+2],r=U(e,n[l+3]);if(!r)continue;const s=t.get(r);(!s||i>s.total)&&t.set(r,{self:o,total:i})}}return[...t.entries()].map(([e,t])=>({name:e,self:t.self,total:t.total})).sort((e,t)=>t.self-e.self)}(oe.flamebearer):[],[oe]),ve=r(()=>{const e=q.trim().toLowerCase();return e?se.filter(t=>t.name.toLowerCase().includes(e)):se},[se,q]),xe=E===ce.Table||E===ce.Both,be=E===ce.Flame||E===ce.Both,ye=xe&&be,we=o.detectedLanguages||o.containers?.map(e=>e.overrides?.runtimeInfo?.language??e.runtimeInfo?.language??""),Se=r(()=>function(e,t){if(!t?.includes(z.Java))return;const l=e?.[ne.Symbol]?.filter(Boolean)??[];return 0!==l.length?e=>re(e,l):void 0}(G,we),[G,we]);return!D&&Y<2?t(C,{$height:"70vh",children:t(I,{withSpinner:!0})}):e(fe,{$gap:0,$width:"100%",children:[e(ue,{children:[t(w,{text:"Live CPU profile collected from the workload agent. Search symbols, switch between the table and flame graph, or download a JSON snapshot.",withIcon:!0,children:t(he,{children:t(x,{size:y.S,weight:500,color:b.Primary,nowrap:!0,children:"CPU Profiling"})})}),e(u,{style:{flex:1,minWidth:200,gap:10,alignItems:"center",flexWrap:"wrap"},children:[t("div",{style:{flex:"1 1 220px",minWidth:180},children:t(M,{value:q,onChange:Q,placeholder:"Search by symbol name",width:"100%",idleBackgroundColor:P.v2.colors.silver[900],emphasizeBackgroundColor:P.v2.colors.silver[800]})}),t(S,{size:$.S,variant:k.Filled,options:[{value:ce.Table,label:"Top table"},{value:ce.Flame,label:"Flame graph"},{value:ce.Both,label:"Both"}],selected:E,setSelected:_}),t(p,L?{variant:v.Secondary,size:g.S,label:"Live",tooltip:"Odigos profiler works in-memory and doesn't store any data on disk, to keep minimum memory footprint we store only last 10 minutes of data on demand",leftIcon:e=>t(j,{...e,size:8,fill:P.v2.colors.green[500]})}:{variant:v.Secondary,size:g.S,label:"Paused",tooltip:"Odigos profiler is still collecting data, but the UI is not updating in real time",leftIcon:e=>t(j,{...e,size:8,fill:P.v2.colors.red[500]})})]})]}),t(de,{$gap:xe&&be?16:0,children:oe?e(a,{children:[xe&&e(me,{$splitWithFlame:ye,children:[t(ge,{$justifyContent:"flex-end",children:t(p,{variant:v.Secondary,size:g.S,label:"Download snapshot",rightIcon:N,onClick:()=>{if(!D)return;const e=new Blob([D],{type:"application/json"}),t=URL.createObjectURL(e),l=document.createElement("a");l.href=t,l.download=`cpu-profile-${o.namespace}-${o.kind}-${o.name}.json`,l.click(),URL.revokeObjectURL(t)},disabled:!D})}),t(ae,{rows:ve,languages:we,filters:G,onFiltersChange:ee})]}),be&&e(pe,{$splitWithTable:ye,children:[e(ge,{$justifyContent:"space-between",children:[t(X,{label:oe?`Total in view ${J(oe.flamebearer.numTicks)}`:"No profile sample yet",backgroundColor:P.v2.colors.silver[750],textColor:P.v2.colors.silver[200],textSize:y.XXS}),e(u,{$gap:12,children:[!L&&t(p,{variant:v.Secondary,size:g.S,label:"Refresh",leftIcon:H,onClick:ie}),t(h,{label:"Auto refresh",labelAlign:m.Left,size:d.S,value:L,onChange:O})]})]}),t(le,{flamebearer:oe.flamebearer,maxRowPx:24,searchQuery:q,shouldKeepName:Se,minHostHeight:280,onFullscreenChange:B,profilingSlots:A},E)]})]}):t(C,{children:t(R,{title:"No profile samples yet",subTitle:"Dynamically collecting profiling samples — keep this tab open while the agent sends OTLP profiles."})})})]})};export{ve as P};