@odigos/ui-kit 0.0.211 → 0.0.212

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 (49) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/lib/chunks/index-CTFaJvLO.js +3 -0
  3. package/lib/chunks/ui-components-DQ5eBxQh.js +2387 -0
  4. package/lib/chunks/vendor-C150cdxb.js +1 -0
  5. package/lib/components/_v2/index.d.ts +1 -0
  6. package/lib/components/_v2/stepper/index.d.ts +11 -0
  7. package/lib/components/v2.js +1 -1
  8. package/lib/components.js +1 -1
  9. package/lib/constants/destinations/index.d.ts +5 -0
  10. package/lib/constants/strings/index.d.ts +12 -0
  11. package/lib/constants.js +1 -1
  12. package/lib/containers/_v2/_drawers/add-action-drawer/index.d.ts +2 -2
  13. package/lib/containers/_v2/_drawers/add-destination-drawer/form-column/index.d.ts +4 -7
  14. package/lib/containers/_v2/_drawers/add-destination-drawer/helpers.d.ts +1 -9
  15. package/lib/containers/_v2/_drawers/add-destination-drawer/index.d.ts +10 -5
  16. package/lib/containers/_v2/_drawers/add-destination-drawer/lists-column/index.d.ts +3 -5
  17. package/lib/containers/_v2/_drawers/add-destination-drawer/types.d.ts +1 -6
  18. package/lib/containers/_v2/_drawers/add-rule-drawer/index.d.ts +2 -2
  19. package/lib/containers/_v2/_drawers/add-source-drawer/index.d.ts +10 -5
  20. package/lib/containers/_v2/_drawers/add-source-drawer/namespaces-column/list/index.d.ts +1 -0
  21. package/lib/containers/_v2/_forms/add-destination-form/context.d.ts +36 -0
  22. package/lib/containers/_v2/_forms/add-destination-form/dynamic-fields/index.d.ts +1 -0
  23. package/lib/containers/_v2/_forms/add-destination-form/index.d.ts +4 -5
  24. package/lib/containers/_v2/central-connections/index.d.ts +2 -1
  25. package/lib/containers/_v2/index.d.ts +1 -0
  26. package/lib/containers/_v2/onboarding/background/index.d.ts +7 -0
  27. package/lib/containers/_v2/onboarding/get-started/index.d.ts +5 -0
  28. package/lib/containers/_v2/onboarding/index.d.ts +14 -0
  29. package/lib/containers/_v2/onboarding/summary/index.d.ts +12 -0
  30. package/lib/containers/_v2/pipeline-collectors/general-info/yaml-drawer/index.d.ts +1 -1
  31. package/lib/containers/v2.js +91 -30
  32. package/lib/containers.js +131 -131
  33. package/lib/contexts.js +1 -1
  34. package/lib/functions.js +1 -1
  35. package/lib/hooks.js +1 -1
  36. package/lib/icons.js +1 -1
  37. package/lib/snippets/_v2/index.d.ts +1 -0
  38. package/lib/snippets/_v2/odigos-logo-text-by-tier/index.d.ts +5 -0
  39. package/lib/snippets.js +1 -1
  40. package/lib/store.js +1 -1
  41. package/lib/theme.js +1 -1
  42. package/lib/types/destinations/index.d.ts +9 -8
  43. package/lib/types/snapshot/index.d.ts +4 -4
  44. package/lib/types.js +1 -1
  45. package/lib/visuals.js +1 -1
  46. package/package.json +26 -26
  47. package/lib/chunks/index-BURQQLWb.js +0 -3
  48. package/lib/chunks/ui-components-B5U474B5.js +0 -2387
  49. package/lib/chunks/vendor-D99eCWta.js +0 -1
@@ -1,96 +1,103 @@
1
- import{jsxs as e,jsx as t,Fragment as l}from"react/jsx-runtime";import{useEffect as a,Fragment as n,useState as o,useRef as i,forwardRef as r,useImperativeHandle as s,useMemo as c,Children as d,useCallback as u}from"react";import p,{useTheme as h}from"styled-components";import{A as m,F as g,a as b,C as f,b as C,I as y,c as v,i as k,d as w,K as S,T as $,e as x,f as I,D as N,g as T,B as A,h as D,j as O,k as V,l as F,W as R,m as M,M as P,V as L,S as E,n as z,N as j,o as q,L as H,p as K,R as B,q as W,r as _,s as G,t as J,u as U,v as Y,w as X,x as Z,y as Q,z as ee,E as te,G as le,H as ae,J as ne,O as oe,P as ie,Q as re,U as se,X as ce,Y as de,Z as ue,_ as pe,$ as he,a0 as me,a1 as ge,a2 as be,a3 as fe,a4 as Ce,a5 as ye,a6 as ve,a7 as ke,a8 as we,a9 as Se,aa as $e,ab as xe,ac as Ie,ad as Ne,ae as Te,af as Ae,ag as De,ah as Oe,ai as Ve,aj as Fe,ak as Re,al as Me,am as Pe,an as Le,ao as Ee,ap as ze,aq as je,ar as qe,as as He,at as Ke,au as Be,av as We,aw as _e,ax as Ge,ay as Je,az as Ue,aA as Ye,aB as Xe,aC as Ze,aD as Qe,aE as et,aF as tt,aG as lt,aH as at,aI as nt,aJ as ot,aK as it,aL as rt,aM as st,aN as ct,aO as dt,aP as ut,aQ as pt,aR as ht,aS as mt}from"../chunks/ui-components-B5U474B5.js";import{TrashIcon as gt,PlusIcon as bt,VSquareIcon as ft,OdigosLogo as Ct,ArrowLeftIcon as yt,ArrowRightIcon as vt,BookIcon as kt,XSquareIcon as wt,GoLogo as St,JavaLogo as $t,ChevronRightIcon as xt,ActionIcon as It,DestinationIcon as Nt,ChevronUpIcon as Tt,ChevronDownIcon as At,InstrumentationRuleIcon as Dt,SourceIcon as Ot,SettingsIcon as Vt,XIcon as Ft,VIcon as Rt,EditIcon as Mt,ExclamationTriangleIcon as Pt,ExclamationCircleIcon as Lt,KeyIcon as Et,DiagnoseIcon as zt,DownloadIcon as jt,TerminalIcon as qt,DeleteIcon as Ht,RefreshIcon as Kt,ConnectionsIcon as Bt,PodIcon as Wt,ArrowDownSquareIcon as _t,ArrowUpSquareIcon as Gt,PipelineCollectorIcon as Jt,GatewayIcon as Ut,YamlIcon as Yt}from"../icons.js";import{Y as Xt}from"../chunks/index-BURQQLWb.js";import"zustand";import"javascript-time-ago";import"../chunks/vendor-D99eCWta.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";const Zt=[{id:"CREDIT_CARD",label:"Credit card"}],Qt=[{id:m.CollectContainerAttributes,label:"Collect container attributes"},{id:m.CollectReplicaSetAttributes,label:"Collect ReplicaSet attributes"},{id:m.CollectWorkloadId,label:"Collect workload ID"},{id:m.CollectClusterId,label:"Collect cluster ID"}],el=[{id:S.Pod,label:S.Pod},{id:S.Namespace,label:S.Namespace},{id:S.Node,label:S.Node}],tl=[{label:"Label key",keyName:"labelKey",placeholder:"app.kubernetes.io/name"},{label:"Attribute key",keyName:"attributeKey",placeholder:"app.kubernetes.name"},{label:"From sources",keyName:"fromSources",placeholder:"pod, namespace",tooltip:"Select multiple sources. Higher precedence sources (pod > namespace > node) will override lower ones.",componentType:"multi-dropdown",options:el}],ll=[{label:"Annotation key",keyName:"annotationKey",placeholder:"kubectl.kubernetes.io/restartedAt"},{label:"Attribute key",keyName:"attributeKey",placeholder:"kubectl.kubernetes.restartedAt"},{label:"From sources",keyName:"fromSources",placeholder:"pod, namespace",tooltip:"Select multiple sources. Higher precedence sources (pod > namespace > node) will override lower ones.",componentType:"multi-dropdown",options:el}],al=[{label:"Service",keyName:"serviceName",placeholder:"e.g. my-service",tooltip:"Service name: The rule applies to a specific service name. Only traces originating from this service’s root span will be considered."},{label:"HTTP route",keyName:"httpRoute",placeholder:"e.g. /api/v1/users",tooltip:"HTTP route: The specific HTTP route prefix to match for sampling. Only traces with routes beginning with this prefix will be considered. For instance, configuring /buy will also match /buy/product."},{label:"Threshold",keyName:"minimumLatencyThreshold",placeholder:"e.g. 1000",tooltip:"Minimum latency threshold (ms): Specifies the minimum latency in milliseconds; traces with latency below this threshold are ignored.",inputType:v.Number},{label:"Fallback",keyName:"fallbackSamplingRatio",placeholder:"e.g. 100",tooltip:"Fallback sampling ratio: Specifies the percentage of traces that meet the service/http_route filter but fall below the threshold that you still want to retain. For example, if a rule is set for service A and http_route B with a minimum latency threshold of 1 second, you might still want to keep some traces below this threshold. Setting the ratio to 20% ensures that 20% of these traces will be retained.",inputType:v.Number}],nl=m.UrlTemplatizationRulesGroups,ol=[{keyName:"kind",label:"Kind",placeholder:"Any kind",componentType:"dropdown",options:[{id:"Deployment",label:"Deployment"},{id:"StatefulSet",label:"StatefulSet"},{id:"DaemonSet",label:"DaemonSet"}]},{keyName:"name",label:"Name",placeholder:"Any name"}],il=[{label:"Service name",keyName:"serviceName",placeholder:"e.g. my-service",tooltip:"Specifies the service name to search within the trace (Across all available spans)."},{label:"Sampling ratio",keyName:"samplingRatio",placeholder:"e.g. 10",tooltip:"Specifies the sample rate for all traces.",inputType:v.Number},{label:"Fallback sampling ratio",keyName:"fallbackSamplingRatio",placeholder:"e.g. 100",tooltip:"Specifies the percentage of traces that don’t meet the service name filter and that you still like to retain.",inputType:v.Number}],rl=[{label:"Service name",keyName:"serviceName",placeholder:"e.g. my-service",tooltip:"Specifies the service name to search within the trace (across all available spans)."},{label:"Attribute key",keyName:"attributeKey",placeholder:"e.g. http.request.method",tooltip:"Specifies the attribute key inside of the span."},{label:"Fallback sampling ratio",keyName:"fallbackSamplingRatio",placeholder:"e.g. 100",tooltip:"Specifies the percentage of traces that don’t meet the service name filter and that you still like to retain.",inputType:v.Number},{label:"Condition",keyName:"condition",tooltip:"An object representing the filters for span attributes filters.",componentType:V.Dropdown,options:[{id:"stringCondition",label:"String condition"},{id:"numberCondition",label:"Number condition"},{id:"booleanCondition",label:"Boolean condition"},{id:"jsonCondition",label:"JSON condition"}]},{label:"Operation",keyName:"operation",tooltip:"Specifies the operation to run against the attribute.",componentType:V.Dropdown,options:[{id:"exists",label:"Exists"},{id:"equals",label:"Equals"},{id:"not_equals",label:"Not equals"},{id:"contains",label:"Contains"},{id:"not_contains",label:"Not contains"},{id:"regex",label:"Regex"},{id:"greater_than",label:"Greater than"},{id:"less_than",label:"Less than"},{id:"greater_than_or_equal",label:"Greater than or equal"},{id:"less_than_or_equal",label:"Less than or equal"},{id:"is_valid_json",label:"Is valid JSON"},{id:"is_invalid_json",label:"Is invalid JSON"},{id:"jsonpath_exists",label:"JSON path exists"},{id:"key_equals",label:"Key equals"},{id:"key_not_equals",label:"Key not equals"}]},{label:"Expected value",keyName:"expectedValue",placeholder:"e.g. GET",tooltip:"The values to test the attribute against."},{label:"JSON path",keyName:"jsonPath",placeholder:"e.g. $.user.role",tooltip:"An expression used to navigate the JSON structure.",renderCondition:e=>"jsonCondition"===e.condition}],sl={[F.K8sAttributes]:({value:n,setValue:o,formErrors:i})=>(a(()=>{n[m.CollectContainerAttributes]||n[m.CollectReplicaSetAttributes]||n[m.CollectWorkloadId]||n[m.CollectClusterId]||n[m.LabelsAttributes]?.length||n[m.AnnotationsAttributes]?.length||(o(m.CollectContainerAttributes,!0),o(m.CollectReplicaSetAttributes,!0),o(m.CollectWorkloadId,!0),o(m.CollectClusterId,!0),o(m.LabelsAttributes,[]),o(m.AnnotationsAttributes,[]))},[]),e(l,{children:[t(g,{$gap:6,children:Qt.map(({id:l,label:a})=>e(g,{children:[t(f,{label:a,value:n[l]||!1,onChange:e=>o(l,e)}),t(C,{errorMessage:i[l]})]},l))}),t(w,{label:"Label attributes",limitFieldsPerRow:2,columns:tl,values:n[m.LabelsAttributes]||[],setValues:e=>o(m.LabelsAttributes,e),errorMessage:i[m.LabelsAttributes]}),t(w,{label:"Annotation attributes",limitFieldsPerRow:2,columns:ll,values:n[m.AnnotationsAttributes]||[],setValues:e=>o(m.AnnotationsAttributes,e),errorMessage:i[m.AnnotationsAttributes]})]})),[F.AddClusterInfo]:({value:a,setValue:n,formErrors:o})=>{const i=h();return e(l,{children:[t($,{label:"Overwrite existing values",labelAlign:x.Left,labelColor:i.v2.colors.silver[200],tooltip:"If enabled, the resource attributes will overwrite any existing attributes with the same name.",value:a[m.OverwriteExistingValues]||!1,onChange:e=>n(m.OverwriteExistingValues,e)}),t(w,{label:"Resource attributes",limitFieldsPerRow:2,columns:[{keyName:"attributeName",label:"Attribute name"},{keyName:"attributeStringValue",label:"Attribute value"}],values:a[m.ClusterAttributes]||[],setValues:e=>n(m.ClusterAttributes,e),errorMessage:o[m.ClusterAttributes]})]})},[F.DeleteAttributes]:({value:e,setValue:l,formErrors:a})=>t(I,{label:"Attributes to delete",values:e[m.AttributeNamesToDelete]||[],setValues:e=>l(m.AttributeNamesToDelete,e),errorMessage:a[m.AttributeNamesToDelete]}),[F.RenameAttributes]:({value:e,setValue:l,formErrors:a})=>t(w,{label:"Attributes to rename",limitFieldsPerRow:2,columns:[{keyName:"oldKey",label:"Old key"},{keyName:"newKey",label:"New key"}],values:Object.entries(e[m.Renames]||{}).map(([e,t])=>({oldKey:e,newKey:t})),setValues:e=>{const t={};e.forEach(e=>t[e.oldKey]=e.newKey),l(m.Renames,t)},errorMessage:a[m.Renames]}),[F.PiiMasking]:({value:l,setValue:n,formErrors:o})=>(a(()=>{l[m.PiiCategories]?.length||n(m.PiiCategories,Zt.map(({id:e})=>e))},[]),e(g,{$gap:12,children:[t(b,{label:"Attributes to mask"}),t(g,{$gap:6,children:Zt.map(({id:e,label:a})=>t(f,{label:a,value:l[m.PiiCategories]?.includes(e)||!1,onChange:t=>{const a=l[m.PiiCategories]||[],o=t?[...a,e]:a.filter(t=>t!==e);n(m.PiiCategories,o)}},e))}),t(C,{errorMessage:o[m.PiiCategories]})]})),[F.ErrorSampler]:({value:e,setValue:l,formErrors:a})=>{const n=a[m.FallbackSamplingRatio],o=k(e[m.FallbackSamplingRatio])?"":String(e[m.FallbackSamplingRatio]);return t(y,{label:"Fallback sampling ratio",type:v.Number,min:0,max:100,value:o,placeholder:"0-100",onChange:e=>{return t=e.target.value,l(m.FallbackSamplingRatio,Math.max(0,Math.min(Number(t),100))||0);var t},errorMessage:n})},[F.ProbabilisticSampler]:({value:e,setValue:l,formErrors:a})=>{const n=a[m.SamplingPercentage],o=k(e[m.SamplingPercentage])?"":String(e[m.SamplingPercentage]);return t(y,{label:"Sampling percentage",type:v.Number,min:0,max:100,value:o,placeholder:"0-100",onChange:e=>{return t=e.target.value,l(m.SamplingPercentage,Math.max(0,Math.min(Number(t),100))||0);var t},errorMessage:n})},[F.LatencySampler]:({value:e,setValue:l,formErrors:a})=>{const n=a[m.EndpointsFilters],o=e[m.EndpointsFilters]||[];return t(w,{limitFieldsPerRow:2,columns:al,values:o,setValues:e=>{l(m.EndpointsFilters,e.map(({serviceName:e,httpRoute:t,minimumLatencyThreshold:l,fallbackSamplingRatio:a})=>({serviceName:e,httpRoute:t,minimumLatencyThreshold:Number(l),fallbackSamplingRatio:Number(a)})))},errorMessage:n})},[F.ServiceNameSampler]:({value:e,setValue:l,formErrors:a})=>{const n=a[m.ServicesNameFilters],o=e[m.ServicesNameFilters]||[];return t(w,{limitFieldsPerRow:2,columns:il,values:o,setValues:e=>{l(m.ServicesNameFilters,e.map(({serviceName:e,samplingRatio:t,fallbackSamplingRatio:l})=>({serviceName:e,samplingRatio:Number(t),fallbackSamplingRatio:Number(l)})))},errorMessage:n})},[F.SpanAttributeSampler]:({value:e,setValue:l,formErrors:a})=>{const n=a[m.AttributeFilters],o=(e[m.AttributeFilters]||[]).map(({serviceName:e,attributeKey:t,fallbackSamplingRatio:l,condition:a})=>{const n=Object.entries(a).filter(([e,t])=>t)[0][0];return{serviceName:e,attributeKey:t,fallbackSamplingRatio:l,condition:n,operation:a[n]?.operation,expectedValue:a[n]?.expectedValue,jsonPath:a[n]?.jsonPath}});return t(w,{limitFieldsPerRow:2,columns:rl,values:o,setValues:e=>{l(m.AttributeFilters,e.map(({serviceName:e,attributeKey:t,fallbackSamplingRatio:l,condition:a,operation:n,expectedValue:o,jsonPath:i})=>{const r={serviceName:e,attributeKey:t,fallbackSamplingRatio:Number(l),condition:{[a]:{operation:n,expectedValue:o}}};return i&&(r.condition[a].jsonPath=i),r}))},errorMessage:n})},[F.URLTemplatization]:({value:a,setValue:o,formErrors:i})=>{const r=h(),s=a[nl]||[{filterK8sNamespace:"",workloadFilters:[],templatizationRules:[{template:""}],notes:""}],c=e=>o(nl,e),d=(e,t)=>c(s.map((l,a)=>a===e?{...l,...t}:l));return e(l,{children:[s.map((l,a)=>e(n,{children:[t(N,{}),e(g,{$gap:12,children:[e(T,{$justifyContent:"space-between",$alignItems:"center",children:[t(b,{label:`Rule Group ${a+1}`}),t(A,{leftIcon:()=>t(gt,{fill:r.v2.colors.red[500]}),variant:O.Secondary,size:D.S,onClick:()=>{return e=a,c(s.filter((t,l)=>l!==e));var e},disabled:1===s.length})]}),t(y,{label:"Namespace",placeholder:"All namespaces",tooltip:"Filter rules to a specific Kubernetes namespace.",value:l.filterK8sNamespace||"",onChange:e=>d(a,{filterK8sNamespace:e.target.value})}),t(w,{label:"Workload filters",tooltip:"Optionally scope templates to specific workloads.",columns:ol,values:l.workloadFilters||[],setValues:e=>d(a,{workloadFilters:e})}),t(I,{label:"Templates",required:!0,placeholder:"e.g. /user/{id}",values:l.templatizationRules.map(e=>e.template),setValues:e=>d(a,{templatizationRules:e.map(e=>({template:e}))})})]}),t(C,{errorMessage:i[nl]})]},`url-templatization-group-${a}`)),t(A,{variant:O.Secondary,label:"Add rule group",leftIcon:bt,onClick:()=>c([...s,{filterK8sNamespace:"",workloadFilters:[],templatizationRules:[{template:""}],notes:""}])}),t(N,{})]})}},cl=({actionType:e,value:l,setValue:a,formErrors:n})=>{if(!e)return null;const o=sl[e];return o?t(o,{value:l,setValue:a,formErrors:n}):null},dl=({isOpen:e,onClose:l,onDeny:a,onApprove:n})=>t(R,{title:"Discard changes?",description:"You have unsaved changes.\nIf you cancel now, your changes won't be saved.",isOpen:e,onClose:l,onDeny:a,denyLabel:"Keep editing",onApprove:n,approveLabel:"Discard changes"}),ul=({isOpen:e,onClose:l,onDeny:a,onApprove:n,action:o="delete",target:i})=>{const r=o.charAt(0).toUpperCase()+o.substring(1),s=i?.endsWith("s")?"these":"this";return t(R,{title:`${r}${i?` ${i}`:""}?`,description:`Are you sure you want to ${o}${i?` ${s} ${i}`:""}?`,isOpen:e,onClose:l,onDeny:a,denyLabel:"Go back",onApprove:n,approveLabel:r})},pl=(e,t)=>!t?.length||!!t?.find(t=>t===e),hl=({title:l="Signals",required:n,errorMessage:r,allowedSignals:s,selectedSignals:c,setSelectedSignals:d,disabled:u})=>{const[p,h]=o(1===c.length),m=i(JSON.stringify(c));return a(()=>{const e=M(c);e.length||P.forEach(({id:t})=>{pl(t,s)&&e.push(t)});const t=JSON.stringify(e);m.current!==t&&(m.current=t,d(e),h(1===e.length))},[s,c]),e(g,{$gap:12,children:[t(b,{label:l,required:n}),t(T,{$gap:12,children:P.map(e=>{const l=pl(e.id,s),a=((e,t)=>!!t?.find(t=>t===e))(e.id,c);return l?t(f,{label:e.value,disabled:u||!l||p&&a,value:a,onChange:t=>((e,t)=>{const l=e,a=t?[...c,l]:c.filter(e=>e!==l);d(a),h(1===a.length)})(e.id,t)},e.id):null})}),t(C,{errorMessage:r})]})},ml=({minSupportedVersion:e,currentVersion:l})=>t(R,{isOpen:!0,onClose:()=>{},relativeToParent:!0,visual:()=>t(L,{scale:2.4,icon:()=>t("svg",{xmlns:"http://www.w3.org/2000/svg",width:"22",height:"21",viewBox:"0 0 22 21",fill:"none",children:t("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${e} or later.\nCurrent version: ${l}.`}),gl=p.div`
1
+ import{jsxs as e,jsx as t,Fragment as a}from"react/jsx-runtime";import{useEffect as n,Fragment as l,useState as o,useRef as i,forwardRef as s,useImperativeHandle as r,useMemo as c,useCallback as d,useContext as u,createContext as p,Children as m}from"react";import h,{useTheme as g}from"styled-components";import{A as b,F as f,a as v,C,b as y,I as S,c as k,i as w,d as D,K as I,T as N,e as T,f as A,D as x,g as $,B as E,h as R,j as O,k as F,l as L,W as M,u as P,m as V,n as _,M as U,V as z,S as B,o as X,N as j,p as G,L as H,q as W,R as q,r as K,s as Y,t as J,v as Q,w as Z,x as ee,y as te,z as ae,E as ne,G as le,H as oe,J as ie,O as se,P as re,Q as ce,U as de,X as ue,Y as pe,Z as me,_ as he,$ as ge,a0 as be,a1 as fe,a2 as ve,a3 as Ce,a4 as ye,a5 as Se,a6 as ke,a7 as we,a8 as De,a9 as Ie,aa as Ne,ab as Te,ac as Ae,ad as xe,ae as $e,af as Ee,ag as Re,ah as Oe,ai as Fe,aj as Le,ak as Me,al as Pe,am as Ve,an as _e,ao as Ue,ap as ze,aq as Be,ar as Xe,as as je,at as Ge,au as He,av as We,aw as qe,ax as Ke,ay as Ye,az as Je,aA as Qe,aB as Ze,aC as et,aD as tt,aE as at,aF as nt,aG as lt,aH as ot,aI as it,aJ as st,aK as rt,aL as ct,aM as dt,aN as ut,aO as pt,aP as mt,aQ as ht,aR as gt,aS as bt,aT as ft,aU as vt}from"../chunks/ui-components-DQ5eBxQh.js";import{TrashIcon as Ct,PlusIcon as yt,OdigosLogoTextEnterprise as St,OdigosLogoTextCommunity as kt,VSquareIcon as wt,OdigosLogo as Dt,ArrowLeftIcon as It,ArrowRightIcon as Nt,BookIcon as Tt,XSquareIcon as At,DeleteIcon as xt,EditIcon as $t,GoLogo as Et,JavaLogo as Rt,ChevronRightIcon as Ot,ActionIcon as Ft,DestinationIcon as Lt,ChevronUpIcon as Mt,ChevronDownIcon as Pt,VIcon as Vt,XIcon as _t,InstrumentationRuleIcon as Ut,SourceIcon as zt,SettingsIcon as Bt,ExclamationTriangleIcon as Xt,ExclamationCircleIcon as jt,KeyIcon as Gt,DiagnoseIcon as Ht,DownloadIcon as Wt,TerminalIcon as qt,RefreshIcon as Kt,ConnectionsIcon as Yt,PodIcon as Jt,ArrowDownSquareIcon as Qt,ArrowUpSquareIcon as Zt,PipelineCollectorIcon as ea,GatewayIcon as ta,YamlIcon as aa}from"../icons.js";import{Y as na}from"../chunks/index-CTFaJvLO.js";import"zustand";import"javascript-time-ago";import"../chunks/vendor-C150cdxb.js";import"@xyflow/react";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";const la=[{id:"CREDIT_CARD",label:"Credit card"}],oa=[{id:b.CollectContainerAttributes,label:"Collect container attributes"},{id:b.CollectReplicaSetAttributes,label:"Collect ReplicaSet attributes"},{id:b.CollectWorkloadId,label:"Collect workload ID"},{id:b.CollectClusterId,label:"Collect cluster ID"}],ia=[{id:I.Pod,label:I.Pod},{id:I.Namespace,label:I.Namespace},{id:I.Node,label:I.Node}],sa=[{label:"Label key",keyName:"labelKey",placeholder:"app.kubernetes.io/name"},{label:"Attribute key",keyName:"attributeKey",placeholder:"app.kubernetes.name"},{label:"From sources",keyName:"fromSources",placeholder:"pod, namespace",tooltip:"Select multiple sources. Higher precedence sources (pod > namespace > node) will override lower ones.",componentType:"multi-dropdown",options:ia}],ra=[{label:"Annotation key",keyName:"annotationKey",placeholder:"kubectl.kubernetes.io/restartedAt"},{label:"Attribute key",keyName:"attributeKey",placeholder:"kubectl.kubernetes.restartedAt"},{label:"From sources",keyName:"fromSources",placeholder:"pod, namespace",tooltip:"Select multiple sources. Higher precedence sources (pod > namespace > node) will override lower ones.",componentType:"multi-dropdown",options:ia}],ca=[{label:"Service",keyName:"serviceName",placeholder:"e.g. my-service",tooltip:"Service name: The rule applies to a specific service name. Only traces originating from this service’s root span will be considered."},{label:"HTTP route",keyName:"httpRoute",placeholder:"e.g. /api/v1/users",tooltip:"HTTP route: The specific HTTP route prefix to match for sampling. Only traces with routes beginning with this prefix will be considered. For instance, configuring /buy will also match /buy/product."},{label:"Threshold",keyName:"minimumLatencyThreshold",placeholder:"e.g. 1000",tooltip:"Minimum latency threshold (ms): Specifies the minimum latency in milliseconds; traces with latency below this threshold are ignored.",inputType:k.Number},{label:"Fallback",keyName:"fallbackSamplingRatio",placeholder:"e.g. 100",tooltip:"Fallback sampling ratio: Specifies the percentage of traces that meet the service/http_route filter but fall below the threshold that you still want to retain. For example, if a rule is set for service A and http_route B with a minimum latency threshold of 1 second, you might still want to keep some traces below this threshold. Setting the ratio to 20% ensures that 20% of these traces will be retained.",inputType:k.Number}],da=b.UrlTemplatizationRulesGroups,ua=[{keyName:"kind",label:"Kind",placeholder:"Any kind",componentType:"dropdown",options:[{id:"Deployment",label:"Deployment"},{id:"StatefulSet",label:"StatefulSet"},{id:"DaemonSet",label:"DaemonSet"}]},{keyName:"name",label:"Name",placeholder:"Any name"}],pa=[{label:"Service name",keyName:"serviceName",placeholder:"e.g. my-service",tooltip:"Specifies the service name to search within the trace (Across all available spans)."},{label:"Sampling ratio",keyName:"samplingRatio",placeholder:"e.g. 10",tooltip:"Specifies the sample rate for all traces.",inputType:k.Number},{label:"Fallback sampling ratio",keyName:"fallbackSamplingRatio",placeholder:"e.g. 100",tooltip:"Specifies the percentage of traces that don’t meet the service name filter and that you still like to retain.",inputType:k.Number}],ma=[{label:"Service name",keyName:"serviceName",placeholder:"e.g. my-service",tooltip:"Specifies the service name to search within the trace (across all available spans)."},{label:"Attribute key",keyName:"attributeKey",placeholder:"e.g. http.request.method",tooltip:"Specifies the attribute key inside of the span."},{label:"Fallback sampling ratio",keyName:"fallbackSamplingRatio",placeholder:"e.g. 100",tooltip:"Specifies the percentage of traces that don’t meet the service name filter and that you still like to retain.",inputType:k.Number},{label:"Condition",keyName:"condition",tooltip:"An object representing the filters for span attributes filters.",componentType:F.Dropdown,options:[{id:"stringCondition",label:"String condition"},{id:"numberCondition",label:"Number condition"},{id:"booleanCondition",label:"Boolean condition"},{id:"jsonCondition",label:"JSON condition"}]},{label:"Operation",keyName:"operation",tooltip:"Specifies the operation to run against the attribute.",componentType:F.Dropdown,options:[{id:"exists",label:"Exists"},{id:"equals",label:"Equals"},{id:"not_equals",label:"Not equals"},{id:"contains",label:"Contains"},{id:"not_contains",label:"Not contains"},{id:"regex",label:"Regex"},{id:"greater_than",label:"Greater than"},{id:"less_than",label:"Less than"},{id:"greater_than_or_equal",label:"Greater than or equal"},{id:"less_than_or_equal",label:"Less than or equal"},{id:"is_valid_json",label:"Is valid JSON"},{id:"is_invalid_json",label:"Is invalid JSON"},{id:"jsonpath_exists",label:"JSON path exists"},{id:"key_equals",label:"Key equals"},{id:"key_not_equals",label:"Key not equals"}]},{label:"Expected value",keyName:"expectedValue",placeholder:"e.g. GET",tooltip:"The values to test the attribute against."},{label:"JSON path",keyName:"jsonPath",placeholder:"e.g. $.user.role",tooltip:"An expression used to navigate the JSON structure.",renderCondition:e=>"jsonCondition"===e.condition}],ha={[L.K8sAttributes]:({value:l,setValue:o,formErrors:i})=>(n(()=>{l[b.CollectContainerAttributes]||l[b.CollectReplicaSetAttributes]||l[b.CollectWorkloadId]||l[b.CollectClusterId]||l[b.LabelsAttributes]?.length||l[b.AnnotationsAttributes]?.length||(o(b.CollectContainerAttributes,!0),o(b.CollectReplicaSetAttributes,!0),o(b.CollectWorkloadId,!0),o(b.CollectClusterId,!0),o(b.LabelsAttributes,[]),o(b.AnnotationsAttributes,[]))},[]),e(a,{children:[t(f,{$gap:6,children:oa.map(({id:a,label:n})=>e(f,{children:[t(C,{label:n,value:l[a]||!1,onChange:e=>o(a,e)}),t(y,{errorMessage:i[a]})]},a))}),t(D,{label:"Label attributes",limitFieldsPerRow:2,columns:sa,values:l[b.LabelsAttributes]||[],setValues:e=>o(b.LabelsAttributes,e),errorMessage:i[b.LabelsAttributes]}),t(D,{label:"Annotation attributes",limitFieldsPerRow:2,columns:ra,values:l[b.AnnotationsAttributes]||[],setValues:e=>o(b.AnnotationsAttributes,e),errorMessage:i[b.AnnotationsAttributes]})]})),[L.AddClusterInfo]:({value:n,setValue:l,formErrors:o})=>{const i=g();return e(a,{children:[t(N,{label:"Overwrite existing values",labelAlign:T.Left,labelColor:i.v2.colors.silver[200],tooltip:"If enabled, the resource attributes will overwrite any existing attributes with the same name.",value:n[b.OverwriteExistingValues]||!1,onChange:e=>l(b.OverwriteExistingValues,e)}),t(D,{label:"Resource attributes",limitFieldsPerRow:2,columns:[{keyName:"attributeName",label:"Attribute name"},{keyName:"attributeStringValue",label:"Attribute value"}],values:n[b.ClusterAttributes]||[],setValues:e=>l(b.ClusterAttributes,e),errorMessage:o[b.ClusterAttributes]})]})},[L.DeleteAttributes]:({value:e,setValue:a,formErrors:n})=>t(A,{label:"Attributes to delete",values:e[b.AttributeNamesToDelete]||[],setValues:e=>a(b.AttributeNamesToDelete,e),errorMessage:n[b.AttributeNamesToDelete]}),[L.RenameAttributes]:({value:e,setValue:a,formErrors:n})=>t(D,{label:"Attributes to rename",limitFieldsPerRow:2,columns:[{keyName:"oldKey",label:"Old key"},{keyName:"newKey",label:"New key"}],values:Object.entries(e[b.Renames]||{}).map(([e,t])=>({oldKey:e,newKey:t})),setValues:e=>{const t={};e.forEach(e=>t[e.oldKey]=e.newKey),a(b.Renames,t)},errorMessage:n[b.Renames]}),[L.PiiMasking]:({value:a,setValue:l,formErrors:o})=>(n(()=>{a[b.PiiCategories]?.length||l(b.PiiCategories,la.map(({id:e})=>e))},[]),e(f,{$gap:12,children:[t(v,{label:"Attributes to mask"}),t(f,{$gap:6,children:la.map(({id:e,label:n})=>t(C,{label:n,value:a[b.PiiCategories]?.includes(e)||!1,onChange:t=>{const n=a[b.PiiCategories]||[],o=t?[...n,e]:n.filter(t=>t!==e);l(b.PiiCategories,o)}},e))}),t(y,{errorMessage:o[b.PiiCategories]})]})),[L.ErrorSampler]:({value:e,setValue:a,formErrors:n})=>{const l=n[b.FallbackSamplingRatio],o=w(e[b.FallbackSamplingRatio])?"":String(e[b.FallbackSamplingRatio]);return t(S,{label:"Fallback sampling ratio",type:k.Number,min:0,max:100,value:o,placeholder:"0-100",onChange:e=>{return t=e.target.value,a(b.FallbackSamplingRatio,Math.max(0,Math.min(Number(t),100))||0);var t},errorMessage:l})},[L.ProbabilisticSampler]:({value:e,setValue:a,formErrors:n})=>{const l=n[b.SamplingPercentage],o=w(e[b.SamplingPercentage])?"":String(e[b.SamplingPercentage]);return t(S,{label:"Sampling percentage",type:k.Number,min:0,max:100,value:o,placeholder:"0-100",onChange:e=>{return t=e.target.value,a(b.SamplingPercentage,Math.max(0,Math.min(Number(t),100))||0);var t},errorMessage:l})},[L.LatencySampler]:({value:e,setValue:a,formErrors:n})=>{const l=n[b.EndpointsFilters],o=e[b.EndpointsFilters]||[];return t(D,{limitFieldsPerRow:2,columns:ca,values:o,setValues:e=>{a(b.EndpointsFilters,e.map(({serviceName:e,httpRoute:t,minimumLatencyThreshold:a,fallbackSamplingRatio:n})=>({serviceName:e,httpRoute:t,minimumLatencyThreshold:Number(a),fallbackSamplingRatio:Number(n)})))},errorMessage:l})},[L.ServiceNameSampler]:({value:e,setValue:a,formErrors:n})=>{const l=n[b.ServicesNameFilters],o=e[b.ServicesNameFilters]||[];return t(D,{limitFieldsPerRow:2,columns:pa,values:o,setValues:e=>{a(b.ServicesNameFilters,e.map(({serviceName:e,samplingRatio:t,fallbackSamplingRatio:a})=>({serviceName:e,samplingRatio:Number(t),fallbackSamplingRatio:Number(a)})))},errorMessage:l})},[L.SpanAttributeSampler]:({value:e,setValue:a,formErrors:n})=>{const l=n[b.AttributeFilters],o=(e[b.AttributeFilters]||[]).map(({serviceName:e,attributeKey:t,fallbackSamplingRatio:a,condition:n})=>{const l=Object.entries(n).filter(([e,t])=>t)[0][0];return{serviceName:e,attributeKey:t,fallbackSamplingRatio:a,condition:l,operation:n[l]?.operation,expectedValue:n[l]?.expectedValue,jsonPath:n[l]?.jsonPath}});return t(D,{limitFieldsPerRow:2,columns:ma,values:o,setValues:e=>{a(b.AttributeFilters,e.map(({serviceName:e,attributeKey:t,fallbackSamplingRatio:a,condition:n,operation:l,expectedValue:o,jsonPath:i})=>{const s={serviceName:e,attributeKey:t,fallbackSamplingRatio:Number(a),condition:{[n]:{operation:l,expectedValue:o}}};return i&&(s.condition[n].jsonPath=i),s}))},errorMessage:l})},[L.URLTemplatization]:({value:n,setValue:o,formErrors:i})=>{const s=g(),r=n[da]||[{filterK8sNamespace:"",workloadFilters:[],templatizationRules:[{template:""}],notes:""}],c=e=>o(da,e),d=(e,t)=>c(r.map((a,n)=>n===e?{...a,...t}:a));return e(a,{children:[r.map((a,n)=>e(l,{children:[t(x,{}),e(f,{$gap:12,children:[e($,{$justifyContent:"space-between",$alignItems:"center",children:[t(v,{label:`Rule Group ${n+1}`}),t(E,{leftIcon:()=>t(Ct,{fill:s.v2.colors.red[500]}),variant:O.Secondary,size:R.S,onClick:()=>{return e=n,c(r.filter((t,a)=>a!==e));var e},disabled:1===r.length})]}),t(S,{label:"Namespace",placeholder:"All namespaces",tooltip:"Filter rules to a specific Kubernetes namespace.",value:a.filterK8sNamespace||"",onChange:e=>d(n,{filterK8sNamespace:e.target.value})}),t(D,{label:"Workload filters",tooltip:"Optionally scope templates to specific workloads.",columns:ua,values:a.workloadFilters||[],setValues:e=>d(n,{workloadFilters:e})}),t(A,{label:"Templates",required:!0,placeholder:"e.g. /user/{id}",values:a.templatizationRules.map(e=>e.template),setValues:e=>d(n,{templatizationRules:e.map(e=>({template:e}))})})]}),t(y,{errorMessage:i[da]})]},`url-templatization-group-${n}`)),t(E,{variant:O.Secondary,label:"Add rule group",leftIcon:yt,onClick:()=>c([...r,{filterK8sNamespace:"",workloadFilters:[],templatizationRules:[{template:""}],notes:""}])}),t(x,{})]})}},ga=({actionType:e,value:a,setValue:n,formErrors:l})=>{if(!e)return null;const o=ha[e];return o?t(o,{value:a,setValue:n,formErrors:l}):null},ba=({isOpen:e,onClose:a,onDeny:n,onApprove:l})=>t(M,{title:"Discard changes?",description:"You have unsaved changes.\nIf you cancel now, your changes won't be saved.",isOpen:e,onClose:a,onDeny:n,denyLabel:"Keep editing",onApprove:l,approveLabel:"Discard changes"}),fa=({isOpen:e,onClose:a,onDeny:n,onApprove:l,action:o="delete",target:i})=>{const s=o.charAt(0).toUpperCase()+o.substring(1),r=i?.endsWith("s")?"these":"this";return t(M,{title:`${s}${i?` ${i}`:""}?`,description:`Are you sure you want to ${o}${i?` ${r} ${i}`:""}?`,isOpen:e,onClose:a,onDeny:n,denyLabel:"Go back",onApprove:l,approveLabel:s})},va=({size:e=200})=>{const{tier:a}=P();return a===V.Onprem?t(St,{size:e}):t(kt,{size:e})},Ca=(e,t)=>!t?.length||!!t?.find(t=>t===e),ya=({title:a="Signals",required:l,errorMessage:s,allowedSignals:r,selectedSignals:c,setSelectedSignals:d,disabled:u})=>{const[p,m]=o(1===c.length),h=i(JSON.stringify(c));n(()=>{const e=_(c);e.length||U.forEach(({id:t})=>{Ca(t,r)&&e.push(t)});const t=JSON.stringify(e);h.current!==t&&(h.current=t,d(e),m(1===e.length))},[r,c]);return e(f,{$gap:12,children:[t(v,{label:a,required:l}),t($,{$gap:12,children:U.map(e=>{const a=Ca(e.id,r),n=((e,t)=>!!t?.find(t=>t===e))(e.id,c);return a?t(C,{label:e.value,disabled:u||!a||p&&n,value:n,onChange:t=>((e,t)=>{const a=e,n=t?[...c,a]:c.filter(e=>e!==a);d(n),m(1===n.length)})(e.id,t)},e.id):null})}),t(y,{errorMessage:s})]})},Sa=({minSupportedVersion:e,currentVersion:a})=>t(M,{isOpen:!0,onClose:()=>{},relativeToParent:!0,visual:()=>t(z,{scale:2.4,icon:()=>t("svg",{xmlns:"http://www.w3.org/2000/svg",width:"22",height:"21",viewBox:"0 0 22 21",fill:"none",children:t("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${e} or later.\nCurrent version: ${a}.`}),ka=h.div`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  justify-content: flex-end;
5
5
  width: ${({$width:e})=>e};
6
6
  gap: ${({$columnHasHeader:e})=>e?"0":"12px"};
7
- `,bl=p.div`
7
+ `,wa=h.div`
8
8
  display: flex;
9
9
  align-items: center;
10
10
  min-height: 24px;
11
11
  padding: 12px;
12
12
  border-radius: 16px 16px 0 0;
13
13
  background-color: ${({theme:e})=>e.v2.colors.silver[800]};
14
- `,fl=p.div`
14
+ `,Da=h.div`
15
15
  display: flex;
16
16
  flex-direction: column;
17
17
  gap: ${({$gap:e})=>e}px;
18
18
  padding: 12px 12px 0 12px;
19
19
  width: calc(100% - 24px);
20
20
  height: ${({$heightOffset:e,$columnHasHeader:t})=>`calc(100vh - 180px - ${e}px ${t?"- 48px":""})`};
21
- border-radius: ${({$columnHasHeader:e,$isLeft:t,$isRight:l})=>e?t?"0 0 0 16px":l?"0 16px 0 0":"0":t?"16px 0 0 16px":l?"0 16px 16px 0":"16px"};
21
+ border-radius: ${({$columnHasHeader:e,$isLeft:t,$isRight:a})=>e?t?"0 0 0 16px":a?"0 16px 0 0":"0":t?"16px 0 0 16px":a?"0 16px 16px 0":"16px"};
22
22
  background-color: ${({theme:e})=>e.v2.colors.silver[900]};
23
23
  overflow-y: auto;
24
24
  overflow-x: hidden;
25
- `,Cl=({isLeft:a,isRight:n,heightOffset:o=0,width:i,header:r,list:s})=>e(gl,{$width:i,$columnHasHeader:!!r,children:[r&&t(bl,{children:r}),t(fl,{$gap:8,$isLeft:a,$isRight:n,$heightOffset:o,$columnHasHeader:!!r,children:s.length?s.length>1?t(E,{gap:8,elements:s}):t(l,{children:s[0]}):t(z,{$height:"100%",children:t(j,{})})})]}),yl="75vw",vl=p.div`
25
+ `,Ia=({isLeft:n,isRight:l,heightOffset:o=0,width:i,header:s,list:r})=>e(ka,{$width:i,$columnHasHeader:!!s,children:[s&&t(wa,{children:s}),t(Da,{$gap:8,$isLeft:n,$isRight:l,$heightOffset:o,$columnHasHeader:!!s,children:r.length?r.length>1?t(B,{gap:8,elements:r}):t(a,{children:r[0]}):t(X,{$height:"100%",children:t(j,{})})})]}),Na="75vw",Ta=h.div`
26
26
  display: flex;
27
27
  flex-direction: column;
28
28
  border-radius: 16px;
29
29
  background-color: ${({theme:e})=>e.v2.colors.silver[1e3]};
30
30
  overflow: hidden;
31
- `,kl=p.div`
31
+ `,Aa=h.div`
32
32
  display: flex;
33
33
  gap: 12px;
34
34
  padding: 16px 16px 0 16px;
35
35
  background-color: ${({theme:e})=>e.v2.colors.silver[1e3]};
36
36
  position: sticky;
37
37
  top: 0;
38
- `,wl=p.div`
38
+ `,xa=h.div`
39
39
  padding: 12px 12px 0 12px;
40
- `,Sl=p.div`
40
+ `,$a=h.div`
41
41
  display: flex;
42
42
  gap: 12px;
43
43
  padding: 16px;
44
- `,$l=p.div`
44
+ `,Ea=h.div`
45
45
  padding: 5vh 10vw;
46
46
  border-radius: 12px;
47
47
  background-color: ${({theme:e})=>e.v2.colors.silver[800]};
48
- `,xl=p.div`
48
+ `,Ra=h.div`
49
49
  display: flex;
50
50
  align-items: center;
51
51
  justify-content: flex-end;
52
52
  gap: 16px;
53
53
  padding: 0 12px;
54
54
  margin-top: auto;
55
- `,Il=r(({isOpen:l,onClose:a,onBack:n,onNext:i,nextIsSkip:r,onSave:c,disableSave:d,connectionIds:u,header:p,subHeader:h,leftColumn:m,rightColumn:g,search:b,filters:f,errorMessage:C,isFormDirty:y,hideDirtyNote:v,isFetching:k,progress:w},S)=>{const[$,x]=o(!1),[I,N]=o(!1),[D,V]=o(void 0);s(S,()=>({clearErrors:()=>V(void 0)}));const F=I,R=()=>{y&&!$?x(!0):(x(!1),a?.())},M=d||I||"boolean"==typeof y&&!y,P=!!b||!!u||!!f,L=!!h,E=(P?48:0)+(L?50:0);return e(q,{width:yl,isOpen:l,hideOverlay:!I,header:{...p,onClose:a?R:void 0,onCloseDisabled:F},children:[I?t(z,{$height:"calc(100vh - 136px)",children:t($l,{children:t(H,{titleSize:K.S,subTitleSize:K.XXXS,withGradient:!0,withSpinner:!0,...w})})}):e(vl,{children:[P&&e(kl,{children:[u&&t(B,{icon:ft,title:"Selected Clusters",badge:{label:u.value.length}}),b&&t(W,{width:"100%",...b}),f]}),L&&t(wl,{children:t(B,{icon:h.icon,title:h.title,subTitle:h.description,badge:h.badge})}),e(Sl,{children:[t(Cl,{isLeft:!0,heightOffset:E,...m}),t(Cl,{isRight:!0,heightOffset:E,...g})]})]}),e(xl,{children:[k?t(H,{icon:Ct,title:"Fetching Data...",titleSize:K.XXS,withGradient:!0}):I?w?null:t(H,{icon:Ct,title:"Saving Changes...",titleSize:K.XXS,withGradient:!0}):D||C?t(_,{fullWidth:!0,status:G.Error,message:D||C}):"boolean"==typeof y&&y&&!v?t(_,{fullWidth:!0,status:G.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||v?null:t(_,{fullWidth:!0,status:G.Success,message:"The values reflect the current configuration of the selected cluster."}),e(T,{$gap:8,children:[t("div",n?{style:{width:"150px"},children:t(A,{fullWidth:!0,variant:O.Secondary,label:"Back",leftIcon:yt,onClick:n})}:{style:{width:"150px"},children:t(A,{fullWidth:!0,variant:O.Secondary,label:"Cancel",onClick:R,disabled:F})}),t("div",i?{style:{width:"150px"},children:t(A,r?{fullWidth:!0,variant:O.Secondary,label:"Skip",rightIcon:vt,onClick:i}:{fullWidth:!0,variant:O.Primary,label:"Next",rightIcon:vt,onClick:i})}:{style:{width:"150px"},children:t(A,{fullWidth:!0,variant:O.Primary,label:"Save",onClick:async()=>{N(!0);const e=await c();N(!1),e?.error?V(e.error):(u?.setValue([]),a?.())},disabled:M})})]})]}),t(dl,{isOpen:$,onClose:()=>x(!1),onApprove:R})]})});Il.displayName=Il.name;const Nl=({option:l,formData:a,handleFormChange:n,formErrors:o})=>{const i=h();return e(g,{$gap:24,children:[e(T,{$gap:12,$justifyContent:"space-between",children:[t(J,{size:K.XXS,children:l.docsDescription}),t(A,{label:"Docs",leftIcon:kt,variant:O.Text,size:D.S,onClick:()=>window.open(`${U}${l.docsEndpoint}`,"_blank","noopener noreferrer")})]}),t(Y,{options:[{icon:ft,label:"Enabled",value:!1,selectedBgColor:i.v2.colors.green[800]},{icon:wt,label:"Disabled",value:!0,selectedBgColor:i.v2.colors.red[800]}],selected:a.disabled,setSelected:e=>n("disabled",e)}),t(hl,{title:"Signals for processing",allowedSignals:l.allowedSignals,selectedSignals:a.signals||[],setSelectedSignals:e=>n("signals",e),errorMessage:o.signals}),t(y,{label:"Action name",placeholder:"Use a name that describes the action...",value:a.name||"",onChange:({target:{value:e}})=>n("name",e),errorMessage:o.name}),t(cl,{actionType:l.type,value:a.fields,setValue:(e,t)=>n(`fields.${e}`,t),formErrors:o}),t(X,{label:"Notes",placeholder:"Your personal notes...",value:a.notes||"",onChange:({target:{value:e}})=>n("notes",e),errorMessage:o.notes})]})},Tl=({signals:l,fields:a,formData:n,handleFormChange:o,formErrors:i})=>a?.map(({renderCondition:a,componentType:r,type:s,name:c,title:d,tooltip:u,placeholder:p,value:h,required:m,options:b})=>{if(a&&!Z(a,l,n.fields))return null;const v=c,k=n.fields.find(e=>e.key===v),S=k?k.value:h;switch(r){case V.Input:return t(y,{name:v,type:s,label:d,tooltip:u,required:m,placeholder:p,value:S,onChange:e=>o(v,e.target.value),errorMessage:i[v]},v);case V.MultiInput:return t(I,{label:d,tooltip:u,required:m,placeholder:p,values:ee(S,[]),setValues:e=>o(v,JSON.stringify(e)),errorMessage:i[v]},v);case V.KeyValuePair:return t(w,{label:d,tooltip:u,required:m,limitFieldsPerRow:2,columns:[{keyName:"key",label:"Key"},{keyName:"value",label:"Value"}],values:ee(S,[]),setValues:e=>o(v,JSON.stringify(e)),errorMessage:i[v]},v);case V.TextArea:return t(X,{name:v,label:d,tooltip:u,required:m,placeholder:p,value:S,onChange:e=>o(v,e.target.value),errorMessage:i[v]},v);case V.Checkbox:return e(g,{children:[t(f,{label:d,value:"true"==S,onChange:e=>o(v,e.toString())}),t(C,{errorMessage:i[v]})]},v);case V.Dropdown:return t(Q,{name:v,label:d,withSearch:!0,values:S?[S]:[],options:b?.map(e=>({id:e.id||"",label:e.value||""}))||[],setValues:e=>o(v,e[0]),errorMessage:i[v]},v);default:return null}}),Al=({option:l,dynamicFields:n,formData:o,handleFormChange:i,formErrors:r})=>{const s=h();return a(()=>{const e=n.map(e=>({key:e.name,value:e.value}));i("fields",e);const t=te(l.supportedSignals),a={logs:t.includes(le.Logs),metrics:t.includes(le.Metrics),traces:t.includes(le.Traces)};i("exportedSignals",a)},[n]),e(g,{$gap:24,children:[e(T,{$gap:12,$justifyContent:"space-between",children:[t("div",{}),t(A,{label:"Docs",leftIcon:kt,variant:O.Text,size:D.S,onClick:()=>window.open(`${U}/backends/${l.type}`,"_blank","noopener noreferrer")})]}),t(Y,{options:[{icon:ft,label:"Enabled",value:!1,selectedBgColor:s.v2.colors.green[800]},{icon:wt,label:"Disabled",value:!0,selectedBgColor:s.v2.colors.red[800]}],selected:o.disabled,setSelected:e=>i("disabled",e)}),t(hl,{title:"This connection will monitor:",allowedSignals:te(l.supportedSignals),selectedSignals:ae(o.exportedSignals),setSelectedSignals:e=>i("exportedSignals",{logs:e.includes(le.Logs),metrics:e.includes(le.Metrics),traces:e.includes(le.Traces)}),errorMessage:r.exportedSignals}),t(y,{label:"Destination name",placeholder:"Use a name that describes the destination...",value:o.name,onChange:({target:{value:e}})=>i("name",e),errorMessage:r.name}),t(Tl,{signals:ae(o.exportedSignals),fields:n,formData:o,handleFormChange:(e,t)=>{i("fields",o.fields.map(l=>l.key===e?{...l,value:t}:l))},formErrors:r})]})},Dl=[{id:ne.FilePath,label:"Collect file path",tooltip:"Indicates whether to record the `code.filepath` attribute."},{id:ne.Function,label:"Collect function",tooltip:"Indicates whether to record the `code.function` attribute."},{id:ne.LineNumber,label:"Collect line number",tooltip:"Indicates whether to record the `code.lineno` attribute."}],Ol=[{id:ne.Column,label:"Collect column",tooltip:"Indicates whether to record the `code.column` attribute."},{id:ne.Namespace,label:"Collect namespace",tooltip:"Indicates whether to record the `code.namespace` attribute."},{id:ne.StackTrace,label:"Collect stacktrace",tooltip:"Indicates whether to record the `code.stacktrace` attribute."}],Vl=["*"],Fl=[{id:re.HttpRequest,label:"Collect HTTP request",tooltip:""},{id:re.HttpResponse,label:"Collect HTTP response",tooltip:""},{id:re.DbQuery,label:"Collect DB query",tooltip:""},{id:re.Messaging,label:"Collect messaging",tooltip:""}],Rl={[de.Java]:[new ce("","")],[de.Golang]:[new se("")]},Ml={[ue.CodeAttributes]:({value:n,setValue:o,formErrors:i})=>{const r=h(),s=i.codeAttributes,d=c(()=>Object.entries(n.codeAttributes||{}).filter(([e,t])=>!!t).map(([e])=>e),[n]);a(()=>{if(!d.length&&!s){const e={[ne.FilePath]:!0,[ne.Function]:!0,[ne.LineNumber]:!0,[ne.Column]:null,[ne.Namespace]:null,[ne.StackTrace]:null};o("codeAttributes",e)}},[]);const u=(e,t)=>{const l=t?[...d,e]:d.filter(t=>t!==e),a=Object.values(ne).reduce((e,t)=>(e[t]=!!l.includes(t)||null,e),{});o("codeAttributes",a)};return e(l,{children:[e(g,{$gap:12,children:[t(J,{size:K.XS,color:r.v2.colors.silver[200],nowrap:!0,children:"Recommended data to collect"}),t(g,{$gap:6,children:Dl.map(({id:e,label:l,tooltip:a})=>t(oe,{text:a,withIcon:!0,children:t(f,{label:l,value:d.includes(e),onChange:t=>u(e,t)})},e))}),t(C,{errorMessage:s})]}),e(g,{$gap:12,children:[t(J,{size:K.XS,color:r.v2.colors.silver[200],nowrap:!0,children:"Verbose data to collect"}),t(g,{$gap:6,children:Ol.map(({id:e,label:l,tooltip:a})=>t(oe,{text:a,withIcon:!0,children:t(f,{label:l,value:d.includes(e),onChange:t=>u(e,t)})},e))}),t(C,{errorMessage:s})]})]})},[ue.CustomInstrumentation]:({value:n,setValue:o,formErrors:i})=>{const r=i.customInstrumentations,s=c(()=>(n?.customInstrumentations?.[de.Golang]||[]).map(e=>new se(e.packageName,e.functionName,e.receiverName,e.receiverMethodName)),[n]),d=c(()=>(n?.customInstrumentations?.[de.Java]||[]).map(e=>new ce(e.className,e.methodName)),[n]);return a(()=>{n?.customInstrumentations||r||o("customInstrumentations",{[de.Golang]:Rl[de.Golang],[de.Java]:Rl[de.Java]})},[]),e(l,{children:[e(g,{children:[e(T,{$gap:8,children:[t(St,{}),t(b,{label:"Golang custom probes"})]}),t(w,{columns:[{keyName:"packageName",label:"Package name",placeholder:"e.g. github.com/my-org/my-package",tooltip:"The full import path of the package containing the function or method to be instrumented."},{keyName:"functionName",label:"Function name",placeholder:"e.g. myFunction",tooltip:"The name of the function to be instrumented. Leave empty if instrumenting a receiver method."},{keyName:"receiverName",label:"Receiver name",placeholder:"e.g. myReceiver",tooltip:"The name of the receiver type if instrumenting a method. Leave empty if instrumenting a standalone function."},{keyName:"receiverMethodName",label:"Receiver method name",placeholder:"e.g. myMethod",tooltip:"The name of the method to be instrumented. Leave empty if instrumenting a standalone function."}],values:s,setValues:e=>{const t={};t[de.Golang]=e.map(e=>new se(e.packageName,e.functionName,e.receiverName,e.receiverMethodName)),t[de.Java]=d,o("customInstrumentations",t)},errorMessage:r,limitFieldsPerRow:2})]}),e(g,{children:[e(T,{$gap:8,children:[t($t,{}),t(b,{label:"Java custom probes"})]}),t(w,{columns:[{keyName:"className",label:"Class name",placeholder:"e.g. com.example.MyClass",tooltip:"The name of the class to be instrumented."},{keyName:"methodName",label:"Method name",placeholder:"e.g. myMethod",tooltip:"The name of the method to be instrumented."}],values:d,setValues:e=>{const t={};t[de.Golang]=s,t[de.Java]=e.map(e=>new ce(e.className,e.methodName)),o("customInstrumentations",t)},errorMessage:r,limitFieldsPerRow:2})]})]})},[ue.HeadersCollection]:({value:e,setValue:l,formErrors:n})=>{const o=n.headersCollection,i=c(()=>e?.headersCollection?.[ie.HeaderKeys]||[],[e]),r=e=>{const t={[ie.HeaderKeys]:e};l("headersCollection",t)};return a(()=>{i.length||o||r(Vl)},[]),t(I,{label:"Header keys",tooltip:"Specify which headers you want to collect",helpMessage:"Asterisk (*) will collect all headers",values:i,setValues:r,errorMessage:o})},[ue.PayloadCollection]:({value:l,setValue:n,formErrors:o})=>{const i=h(),r=o.payloadCollection,s=c(()=>Object.entries(l.payloadCollection||{}).filter(([e,t])=>!!t).map(([e])=>e),[l]);return a(()=>{if(!s.length&&!r){const e={[re.HttpRequest]:{},[re.HttpResponse]:{},[re.DbQuery]:{},[re.Messaging]:{}};n("payloadCollection",e)}},[]),e(g,{$gap:12,children:[t(J,{size:K.XS,color:i.v2.colors.silver[200],nowrap:!0,children:"Type of data to collect"}),t(g,{$gap:6,children:Fl.map(({id:e,label:l,tooltip:a})=>t(oe,{text:a,withIcon:!0,children:t(f,{label:l,value:s.includes(e),onChange:t=>((e,t)=>{const l=t?[...s,e]:s.filter(t=>t!==e),a={[re.HttpRequest]:l.includes(re.HttpRequest)?{}:null,[re.HttpResponse]:l.includes(re.HttpResponse)?{}:null,[re.DbQuery]:l.includes(re.DbQuery)?{}:null,[re.Messaging]:l.includes(re.Messaging)?{}:null};n("payloadCollection",a)})(e,t)})},e))}),t(C,{errorMessage:r})]})},[ue.UnknownType]:null},Pl=({ruleType:e,value:l,setValue:a,formErrors:n})=>{if(!e)return null;const o=Ml[e];return o?t(o,{value:l,setValue:a,formErrors:n}):null},Ll=({option:l,formData:a,handleFormChange:n,formErrors:o})=>{const i=h();return e(g,{$gap:24,children:[e(T,{$gap:12,$justifyContent:"space-between",children:[t(J,{size:K.XXS,children:l.docsDescription}),t(A,{label:"Docs",leftIcon:kt,variant:O.Text,size:D.S,onClick:()=>window.open(`${U}${l.docsEndpoint}`,"_blank","noopener noreferrer")})]}),e(T,{$gap:12,children:[t(J,{size:K.XS,color:i.v2.colors.silver[200],nowrap:!0,children:"Supported Languages:"}),l.supportedLanguages.map(e=>t(pe,{label:he[e],leftIcon:me(e),status:G.Default,useSecondaryTone:!0},e))]}),t(Y,{options:[{icon:ft,label:"Enabled",value:!1,selectedBgColor:i.v2.colors.green[800]},{icon:wt,label:"Disabled",value:!0,selectedBgColor:i.v2.colors.red[800]}],selected:a.disabled,setSelected:e=>n("disabled",e)}),t(y,{label:"Rule name",placeholder:"Use a name that describes the rule...",value:a.ruleName,onChange:({target:{value:e}})=>n("ruleName",e),errorMessage:o.ruleName}),t(Pl,{ruleType:l.type,value:a,setValue:(e,t)=>n(e,t),formErrors:o}),t(X,{label:"Notes",placeholder:"Your personal notes...",value:a.notes,onChange:({target:{value:e}})=>n("notes",e),errorMessage:o.notes})]})},El={type:"",disabled:!1,name:"",notes:"",signals:[],fields:{}},zl=p.div`
55
+ `,Oa=s(({isOpen:a,onClose:n,onBack:l,onNext:i,nextIsSkip:s,onSave:c,disableSave:d,connectionIds:u,header:p,subHeader:m,leftColumn:h,rightColumn:g,search:b,filters:f,errorMessage:v,isFormDirty:C,hideDirtyNote:y,isFetching:S,progress:k},w)=>{const[D,I]=o(!1),[N,T]=o(!1),[A,x]=o(void 0);r(w,()=>({clearErrors:()=>x(void 0)}));const R=N,F=()=>{C&&!D?I(!0):(I(!1),n?.())},L=d||N||"boolean"==typeof C&&!C,M=!!b||!!u||!!f,P=!!m,V=(M?48:0)+(P?50:0);return e(G,{width:Na,isOpen:a,hideOverlay:!N,header:{...p,onClose:n?F:void 0,onCloseDisabled:R},children:[N?t(X,{$height:"calc(100vh - 136px)",children:t(Ea,{children:t(H,{titleSize:W.S,subTitleSize:W.XXXS,withGradient:!0,withSpinner:!0,...k})})}):e(Ta,{children:[M&&e(Aa,{children:[u&&t(q,{icon:wt,title:"Selected Clusters",badge:{label:u.value.length}}),b&&t(K,{width:"100%",...b}),f]}),P&&t(xa,{children:t(q,{icon:m.icon,title:m.title,subTitle:m.description,badge:m.badge})}),e($a,{children:[t(Ia,{isLeft:!0,heightOffset:V,...h}),t(Ia,{isRight:!0,heightOffset:V,...g})]})]}),e(Ra,{children:[S?t(H,{icon:Dt,title:"Fetching Data...",titleSize:W.XXS,withGradient:!0}):N?k?null:t(H,{icon:Dt,title:"Saving Changes...",titleSize:W.XXS,withGradient:!0}):A||v?t(Y,{fullWidth:!0,status:J.Error,message:A||v}):"boolean"==typeof C&&C&&!y?t(Y,{fullWidth:!0,status:J.Info,message:'The values don\'t reflect the current configurations of the selected clusters.\n"Save" will override the current configurations.'}):"boolean"!=typeof C||C||y?null:t(Y,{fullWidth:!0,status:J.Success,message:"The values reflect the current configuration of the selected cluster."}),e($,{$gap:8,children:[t("div",l?{style:{width:"150px"},children:t(E,{fullWidth:!0,variant:O.Secondary,label:"Back",leftIcon:It,onClick:l})}:{style:{width:"150px"},children:t(E,{fullWidth:!0,variant:O.Secondary,label:"Cancel",onClick:F,disabled:R})}),t("div",i?{style:{width:"150px"},children:t(E,s?{fullWidth:!0,variant:O.Secondary,label:"Skip",rightIcon:Nt,onClick:i}:{fullWidth:!0,variant:O.Primary,label:"Next",rightIcon:Nt,onClick:i})}:{style:{width:"150px"},children:t(E,{fullWidth:!0,variant:O.Primary,label:"Save",onClick:async()=>{T(!0);const e=await c();T(!1),e?.error?x(e.error):(u?.setValue([]),n?.())},disabled:L})})]})]}),t(ba,{isOpen:D,onClose:()=>I(!1),onApprove:F})]})});Oa.displayName=Oa.name;const Fa=({option:a,formData:n,handleFormChange:l,formErrors:o})=>{const i=g();return e(f,{$gap:24,children:[e($,{$gap:12,$justifyContent:"space-between",children:[t(Q,{size:W.XXS,children:a.docsDescription}),t(E,{label:"Docs",leftIcon:Tt,variant:O.Text,size:R.S,onClick:()=>window.open(`${Z}${a.docsEndpoint}`,"_blank","noopener noreferrer")})]}),t(ee,{options:[{icon:wt,label:"Enabled",value:!1,selectedBgColor:i.v2.colors.green[800]},{icon:At,label:"Disabled",value:!0,selectedBgColor:i.v2.colors.red[800]}],selected:n.disabled,setSelected:e=>l("disabled",e)}),t(ya,{title:"Signals for processing",allowedSignals:a.allowedSignals,selectedSignals:n.signals||[],setSelectedSignals:e=>l("signals",e),errorMessage:o.signals}),t(S,{label:"Action name",placeholder:"Use a name that describes the action...",value:n.name||"",onChange:({target:{value:e}})=>l("name",e),errorMessage:o.name}),t(ga,{actionType:a.type,value:n.fields,setValue:(e,t)=>l(`fields.${e}`,t),formErrors:o}),t(te,{label:"Notes",placeholder:"Your personal notes...",value:n.notes||"",onChange:({target:{value:e}})=>l("notes",e),errorMessage:o.notes})]})},La=({signals:a,fields:n,disabled:l,formData:o,handleFormChange:i,formErrors:s})=>n?.map(({renderCondition:n,componentType:r,type:c,name:d,title:u,tooltip:p,placeholder:m,value:h,required:g,options:b})=>{if(!(!n||ae(n,a,o.fields)))return null;const v=d,k=o.fields.find(e=>e.key===v),w=k?k.value:h;switch(r){case F.Input:return t(S,{name:v,type:c,label:u,tooltip:p,required:g,placeholder:m,value:w,onChange:e=>i(v,e.target.value),disabled:l,errorMessage:s[v]},v);case F.MultiInput:return t(A,{label:u,tooltip:p,required:g,placeholder:m,values:le(w,[]),setValues:e=>i(v,JSON.stringify(e)),disabled:l,errorMessage:s[v]},v);case F.KeyValuePair:return t(D,{label:u,tooltip:p,required:g,limitFieldsPerRow:2,columns:[{keyName:"key",label:"Key"},{keyName:"value",label:"Value"}],values:le(w,[]),setValues:e=>i(v,JSON.stringify(e)),disabled:l,errorMessage:s[v]},v);case F.TextArea:return t(te,{name:v,label:u,tooltip:p,required:g,placeholder:m,value:w,onChange:e=>i(v,e.target.value),disabled:l,errorMessage:s[v]},v);case F.Checkbox:return e(f,{children:[t(C,{label:u,value:"true"==w,onChange:e=>i(v,e.toString()),disabled:l}),t(y,{errorMessage:s[v]})]},v);case F.Dropdown:return t(ne,{name:v,label:u,withSearch:!0,values:w?[w]:[],options:b?.map(e=>({id:e.id||"",label:e.value||""}))||[],setValues:e=>i(v,e[0]),disabled:l,errorMessage:s[v]},v);default:return null}}),Ma={type:"",name:"",currentStreamName:"",disabled:!1,exportedSignals:{logs:!1,metrics:!1,traces:!1},fields:[]},Pa={activeForm:null,onChangeActiveForm:()=>{},genericForm:void 0,validateFormData:()=>({isOk:!1,preparedFormData:_(Ma)}),unsavedDestinations:[],thisUnsavedDestination:void 0,setUnsavedDestinations:()=>{},addUnsavedDestination:()=>{},updateUnsavedDestination:()=>{},deleteUnsavedDestination:()=>{}},Va=p(Pa),_a=({children:e})=>{const{selectedStreamName:a}=oe(),[l,i]=o(null),[s,r]=o(Pa.unsavedDestinations),u=c(()=>"number"==typeof l?.unsavedIdx?s[l.unsavedIdx]:void 0,[l,s]),p=d(e=>{l&&(r(t=>[...t,{...e,option:l.option}]),i(null))},[l]),m=d((e,t)=>{l&&(r(a=>a.map((a,n)=>n===e?{...a,...t,option:l.option}:a)),i(null))},[l]),h=d(e=>{r(t=>t.filter((t,a)=>a!==e)),i(null)},[]),g=ie({...Ma,currentStreamName:a});n(()=>{if(l)if(u)g.handleFormChange(void 0,void 0,u.formData);else{g.handleFormChange("type",l.option.type),g.handleFormChange("name",l.option.displayName),g.handleFormChange("disabled",!1);const e=se(l.option.supportedSignals);g.handleFormChange("exportedSignals",{logs:e.includes(re.Logs),metrics:e.includes(re.Metrics),traces:e.includes(re.Traces)}),g.handleFormChange("fields",l.dynamicFields.map(e=>({key:e.name,value:e.value})))}},[l,u]);const b=d(e=>{var t;g.resetFormData(),g.handleErrorChange(void 0,void 0,{}),i(e?{...e,dynamicFields:e.option?.fields?(t=e.option.fields,t.filter(e=>!!e).map(e=>{const{name:t,componentType:a,componentProperties:n,displayName:l,initialValue:o,renderCondition:i}=e,s=a===F.Dropdown,r=le(n,{});return{componentType:a,renderCondition:i,name:t,title:l,value:o,placeholder:r.placeholder||(s?"Select an option":void 0),options:s&&Array.isArray(r.values)?r.values.map(e=>({id:e,value:e})):void 0,...r}})):[]}:null)},[]),f=d(()=>{const e=_(g.formData),t={};l?.dynamicFields.forEach(({name:a,required:n})=>{if(n){const n=e.fields.find(e=>e.key===a)?.value;w(n)&&(t[a]=de.FIELD_IS_REQUIRED)}});ce(e.exportedSignals).length||(t.exportedSignals=de.FIELD_IS_REQUIRED);const a=0===Object.keys(t).length?void 0:"Invalid form values";return g.handleErrorChange(void 0,void 0,t),i(e=>e?{...e,errorMessage:a}:null),{errorMessage:a,preparedFormData:e}},[g,l]);return t(Va.Provider,{value:{activeForm:l,onChangeActiveForm:b,genericForm:g,validateFormData:f,unsavedDestinations:s,thisUnsavedDestination:u,setUnsavedDestinations:r,addUnsavedDestination:p,updateUnsavedDestination:m,deleteUnsavedDestination:h},children:e})},Ua=()=>u(Va),za=h($)`
56
+ position: sticky;
57
+ bottom: 0;
58
+ margin-top: auto;
59
+ padding: 12px 0;
60
+ background-color: ${({theme:e})=>e.v2.colors.silver[900]};
61
+ z-index: 1;
62
+ `,Ba=({testConnection:a})=>{const l=g(),{activeForm:i,genericForm:s,validateFormData:r,thisUnsavedDestination:c,addUnsavedDestination:d,updateUnsavedDestination:u,deleteUnsavedDestination:p}=Ua(),[m,h]=o(c?.testResult),[b,v]=o(!!c||!1);if(n(()=>{c?(h(c.testResult),v(!0)):(h(void 0),v(!1))},[c]),!s||!i)return t(j,{title:"No active form"});const C=async()=>{const e=await a(s.formData);return h(e),e};return e(f,{$gap:24,style:{minHeight:"100%"},children:[e($,{$gap:12,$justifyContent:"space-between",children:[m?m.succeeded?t(Y,{status:J.Success,message:m.message||"Connection OK",fullWidth:!0,smallIcon:!0}):t(Y,{status:J.Error,message:m.message||"Connection Failed",fullWidth:!0,smallIcon:!0}):t("div",{}),t(E,{label:"Docs",leftIcon:Tt,variant:O.Text,size:R.S,onClick:()=>window.open(`${Z}/backends/${i.option.type}`,"_blank","noopener noreferrer")})]}),t(ee,{options:[{icon:wt,label:"Enabled",value:!1,selectedBgColor:l.v2.colors.green[800]},{icon:At,label:"Disabled",value:!0,selectedBgColor:l.v2.colors.red[800]}],selected:s.formData.disabled,setSelected:e=>s.handleFormChange("disabled",e),disabled:b}),t(ya,{title:"This connection will monitor:",allowedSignals:se(i.option.supportedSignals),selectedSignals:ce(s.formData.exportedSignals),setSelectedSignals:e=>s.handleFormChange("exportedSignals",{logs:e.includes(re.Logs),metrics:e.includes(re.Metrics),traces:e.includes(re.Traces)}),disabled:b,errorMessage:s.formErrors.exportedSignals}),t(S,{label:"Destination name",placeholder:"Use a name that describes the destination...",value:s.formData.name,onChange:({target:{value:e}})=>s.handleFormChange("name",e),disabled:b,errorMessage:s.formErrors.name}),t(La,{signals:ce(s.formData.exportedSignals),fields:i.dynamicFields,disabled:b,formData:s.formData,handleFormChange:(e,t)=>{s.handleFormChange("fields",s.formData.fields.map(a=>a.key===e?{...a,value:t}:a))},formErrors:s.formErrors}),e(za,{$gap:8,$justifyContent:"flex-end",children:[c&&t("div",{style:{width:"150px"},children:t(E,{fullWidth:!0,label:"Delete",rightIcon:xt,variant:O.Secondary,textColor:l.v2.colors.red[500],onClick:()=>p(i.unsavedIdx)})}),(!c||c&&!b)&&t("div",{style:{width:"150px"},children:t(E,{fullWidth:!0,label:"Test Connection",variant:O.Secondary,onClick:C})}),c&&t("div",b?{style:{width:"150px"},children:t(E,{fullWidth:!0,label:"Edit",rightIcon:$t,variant:O.Secondary,onClick:()=>v(!1)})}:{style:{width:"150px"},children:t(E,{fullWidth:!0,label:"Save Changes",variant:O.Primary,onClick:async()=>{const{errorMessage:e,preparedFormData:t}=r();if(!e){const e=await C();u(i.unsavedIdx,{formData:t,testResult:e})}}})}),!c&&t("div",{style:{width:"150px"},children:t(E,{fullWidth:!0,label:"Add Destination",variant:O.Primary,onClick:async()=>{const{errorMessage:e,preparedFormData:t}=r();if(!e){const e=await C();d({formData:t,testResult:e})}}})})]})]})},Xa=[{id:ue.FilePath,label:"Collect file path",tooltip:"Indicates whether to record the `code.filepath` attribute."},{id:ue.Function,label:"Collect function",tooltip:"Indicates whether to record the `code.function` attribute."},{id:ue.LineNumber,label:"Collect line number",tooltip:"Indicates whether to record the `code.lineno` attribute."}],ja=[{id:ue.Column,label:"Collect column",tooltip:"Indicates whether to record the `code.column` attribute."},{id:ue.Namespace,label:"Collect namespace",tooltip:"Indicates whether to record the `code.namespace` attribute."},{id:ue.StackTrace,label:"Collect stacktrace",tooltip:"Indicates whether to record the `code.stacktrace` attribute."}],Ga=["*"],Ha=[{id:he.HttpRequest,label:"Collect HTTP request",tooltip:""},{id:he.HttpResponse,label:"Collect HTTP response",tooltip:""},{id:he.DbQuery,label:"Collect DB query",tooltip:""},{id:he.Messaging,label:"Collect messaging",tooltip:""}],Wa={[fe.Java]:[new be("","")],[fe.Golang]:[new ge("")]},qa={[ve.CodeAttributes]:({value:l,setValue:o,formErrors:i})=>{const s=g(),r=i.codeAttributes,d=c(()=>Object.entries(l.codeAttributes||{}).filter(([e,t])=>!!t).map(([e])=>e),[l]);n(()=>{if(!d.length&&!r){const e={[ue.FilePath]:!0,[ue.Function]:!0,[ue.LineNumber]:!0,[ue.Column]:null,[ue.Namespace]:null,[ue.StackTrace]:null};o("codeAttributes",e)}},[]);const u=(e,t)=>{const a=t?[...d,e]:d.filter(t=>t!==e),n=Object.values(ue).reduce((e,t)=>(e[t]=!!a.includes(t)||null,e),{});o("codeAttributes",n)};return e(a,{children:[e(f,{$gap:12,children:[t(Q,{size:W.XS,color:s.v2.colors.silver[200],nowrap:!0,children:"Recommended data to collect"}),t(f,{$gap:6,children:Xa.map(({id:e,label:a,tooltip:n})=>t(pe,{text:n,withIcon:!0,children:t(C,{label:a,value:d.includes(e),onChange:t=>u(e,t)})},e))}),t(y,{errorMessage:r})]}),e(f,{$gap:12,children:[t(Q,{size:W.XS,color:s.v2.colors.silver[200],nowrap:!0,children:"Verbose data to collect"}),t(f,{$gap:6,children:ja.map(({id:e,label:a,tooltip:n})=>t(pe,{text:n,withIcon:!0,children:t(C,{label:a,value:d.includes(e),onChange:t=>u(e,t)})},e))}),t(y,{errorMessage:r})]})]})},[ve.CustomInstrumentation]:({value:l,setValue:o,formErrors:i})=>{const s=i.customInstrumentations,r=c(()=>(l?.customInstrumentations?.[fe.Golang]||[]).map(e=>new ge(e.packageName,e.functionName,e.receiverName,e.receiverMethodName)),[l]),d=c(()=>(l?.customInstrumentations?.[fe.Java]||[]).map(e=>new be(e.className,e.methodName)),[l]);return n(()=>{l?.customInstrumentations||s||o("customInstrumentations",{[fe.Golang]:Wa[fe.Golang],[fe.Java]:Wa[fe.Java]})},[]),e(a,{children:[e(f,{children:[e($,{$gap:8,children:[t(Et,{}),t(v,{label:"Golang custom probes"})]}),t(D,{columns:[{keyName:"packageName",label:"Package name",placeholder:"e.g. github.com/my-org/my-package",tooltip:"The full import path of the package containing the function or method to be instrumented."},{keyName:"functionName",label:"Function name",placeholder:"e.g. myFunction",tooltip:"The name of the function to be instrumented. Leave empty if instrumenting a receiver method."},{keyName:"receiverName",label:"Receiver name",placeholder:"e.g. myReceiver",tooltip:"The name of the receiver type if instrumenting a method. Leave empty if instrumenting a standalone function."},{keyName:"receiverMethodName",label:"Receiver method name",placeholder:"e.g. myMethod",tooltip:"The name of the method to be instrumented. Leave empty if instrumenting a standalone function."}],values:r,setValues:e=>{const t={};t[fe.Golang]=e.map(e=>new ge(e.packageName,e.functionName,e.receiverName,e.receiverMethodName)),t[fe.Java]=d,o("customInstrumentations",t)},errorMessage:s,limitFieldsPerRow:2})]}),e(f,{children:[e($,{$gap:8,children:[t(Rt,{}),t(v,{label:"Java custom probes"})]}),t(D,{columns:[{keyName:"className",label:"Class name",placeholder:"e.g. com.example.MyClass",tooltip:"The name of the class to be instrumented."},{keyName:"methodName",label:"Method name",placeholder:"e.g. myMethod",tooltip:"The name of the method to be instrumented."}],values:d,setValues:e=>{const t={};t[fe.Golang]=r,t[fe.Java]=e.map(e=>new be(e.className,e.methodName)),o("customInstrumentations",t)},errorMessage:s,limitFieldsPerRow:2})]})]})},[ve.HeadersCollection]:({value:e,setValue:a,formErrors:l})=>{const o=l.headersCollection,i=c(()=>e?.headersCollection?.[me.HeaderKeys]||[],[e]),s=e=>{const t={[me.HeaderKeys]:e};a("headersCollection",t)};return n(()=>{i.length||o||s(Ga)},[]),t(A,{label:"Header keys",tooltip:"Specify which headers you want to collect",helpMessage:"Asterisk (*) will collect all headers",values:i,setValues:s,errorMessage:o})},[ve.PayloadCollection]:({value:a,setValue:l,formErrors:o})=>{const i=g(),s=o.payloadCollection,r=c(()=>Object.entries(a.payloadCollection||{}).filter(([e,t])=>!!t).map(([e])=>e),[a]);n(()=>{if(!r.length&&!s){const e={[he.HttpRequest]:{},[he.HttpResponse]:{},[he.DbQuery]:{},[he.Messaging]:{}};l("payloadCollection",e)}},[]);return e(f,{$gap:12,children:[t(Q,{size:W.XS,color:i.v2.colors.silver[200],nowrap:!0,children:"Type of data to collect"}),t(f,{$gap:6,children:Ha.map(({id:e,label:a,tooltip:n})=>t(pe,{text:n,withIcon:!0,children:t(C,{label:a,value:r.includes(e),onChange:t=>((e,t)=>{const a=t?[...r,e]:r.filter(t=>t!==e),n={[he.HttpRequest]:a.includes(he.HttpRequest)?{}:null,[he.HttpResponse]:a.includes(he.HttpResponse)?{}:null,[he.DbQuery]:a.includes(he.DbQuery)?{}:null,[he.Messaging]:a.includes(he.Messaging)?{}:null};l("payloadCollection",n)})(e,t)})},e))}),t(y,{errorMessage:s})]})},[ve.UnknownType]:null},Ka=({ruleType:e,value:a,setValue:n,formErrors:l})=>{if(!e)return null;const o=qa[e];return o?t(o,{value:a,setValue:n,formErrors:l}):null},Ya=({option:a,formData:n,handleFormChange:l,formErrors:o})=>{const i=g();return e(f,{$gap:24,children:[e($,{$gap:12,$justifyContent:"space-between",children:[t(Q,{size:W.XXS,children:a.docsDescription}),t(E,{label:"Docs",leftIcon:Tt,variant:O.Text,size:R.S,onClick:()=>window.open(`${Z}${a.docsEndpoint}`,"_blank","noopener noreferrer")})]}),e($,{$gap:12,children:[t(Q,{size:W.XS,color:i.v2.colors.silver[200],nowrap:!0,children:"Supported Languages:"}),a.supportedLanguages.map(e=>t(Ce,{label:ye[e],leftIcon:Se(e),status:J.Default,useSecondaryTone:!0},e))]}),t(ee,{options:[{icon:wt,label:"Enabled",value:!1,selectedBgColor:i.v2.colors.green[800]},{icon:At,label:"Disabled",value:!0,selectedBgColor:i.v2.colors.red[800]}],selected:n.disabled,setSelected:e=>l("disabled",e)}),t(S,{label:"Rule name",placeholder:"Use a name that describes the rule...",value:n.ruleName,onChange:({target:{value:e}})=>l("ruleName",e),errorMessage:o.ruleName}),t(Ka,{ruleType:a.type,value:n,setValue:(e,t)=>l(e,t),formErrors:o}),t(te,{label:"Notes",placeholder:"Your personal notes...",value:n.notes,onChange:({target:{value:e}})=>l("notes",e),errorMessage:o.notes})]})},Ja={type:"",disabled:!1,name:"",notes:"",signals:[],fields:{}},Qa=(e,t)=>{if(!e)return{isOk:!1,preparedFormData:_(Ja)};const a=(n=t.formData,_(n));var n;const l={};return t.handleErrorChange(void 0,void 0,l),{isOk:0===Object.keys(l).length,preparedFormData:a}},Za=h.div`
56
63
  display: flex;
57
64
  align-items: center;
58
65
  justify-content: space-between;
59
66
  gap: 12px;
60
67
  padding: 8px 12px;
61
68
  border-radius: 12px;
62
- background-color: ${({$isSelected:e,$purpleColors:t,theme:l})=>e?t?l.v2.colors.purple[800]:l.v2.colors.silver[600]:t?l.v2.colors.purple[900]:"transparent"};
69
+ background-color: ${({$isSelected:e,$purpleColors:t,theme:a})=>e?t?a.v2.colors.purple[800]:a.v2.colors.silver[600]:t?a.v2.colors.purple[900]:"transparent"};
63
70
  cursor: ${({$disabled:e})=>e?"not-allowed":"pointer"};
64
71
  opacity: ${({$disabled:e})=>e?.5:1};
65
72
  &:hover {
66
- background-color: ${({$isSelected:e,$purpleColors:t,theme:l})=>e?t?l.v2.colors.purple[700]:l.v2.colors.silver[600]:t?l.v2.colors.purple[800]:l.v2.colors.silver[700]};
73
+ background-color: ${({$isSelected:e,$purpleColors:t,theme:a})=>e?t?a.v2.colors.purple[700]:a.v2.colors.silver[600]:t?a.v2.colors.purple[800]:a.v2.colors.silver[700]};
67
74
  }
68
- `,jl=p.div`
75
+ `,en=h.div`
69
76
  display: flex;
70
77
  align-items: center;
71
78
  justify-content: center;
72
79
  padding: 8px;
73
80
  border-radius: 8px;
74
- background-color: ${({theme:e})=>e.v2.colors.white[500]+ge["004"]};
75
- `,ql=({icon:l,title:a,description:n,withCarret:o,purpleColors:i,disabled:r,children:s,isSelected:c,onClick:d,isChecked:u,isPartiallyChecked:p,onCheckboxChange:m})=>{const b=h();return e(zl,{$isSelected:c,$purpleColors:i,$disabled:r,onClick:()=>!c&&!r&&d(),children:[e(g,{$gap:4,children:[e(T,{$gap:12,children:[m&&t(f,{partiallyChecked:p||!1,value:u||!1,onChange:e=>m(e)}),l&&t(jl,{children:t(l,{size:20})}),t(J,{size:K.XS,children:a})]}),n&&t(J,{size:K.XXXS,color:b.v2.colors.silver[200],children:n})]}),(o||s)&&e(T,{$gap:8,children:[s,o&&t(xt,{size:18})]})]})},Hl=p.div`
81
+ background-color: ${({theme:e})=>e.v2.colors.white[500]+ke["004"]};
82
+ `,tn=({icon:a,title:n,description:l,withCarret:o,purpleColors:i,disabled:s,children:r,isSelected:c,onClick:d,isChecked:u,isPartiallyChecked:p,onCheckboxChange:m})=>{const h=g();return e(Za,{$isSelected:c,$purpleColors:i,$disabled:s,onClick:()=>!c&&!s&&d(),children:[e(f,{$gap:4,children:[e($,{$gap:12,children:[m&&t(C,{partiallyChecked:p||!1,value:u||!1,onChange:e=>m(e)}),a&&t(en,{children:t(a,{size:20})}),t(Q,{size:W.XS,children:n})]}),l&&t(Q,{size:W.XXXS,color:h.v2.colors.silver[200],children:l})]}),(o||r)&&e($,{$gap:8,children:[r,o&&t(Ot,{size:18})]})]})},an=h.div`
76
83
  display: flex;
77
84
  align-items: center;
78
85
  gap: 8px;
79
86
  padding: 8px;
80
- `,Kl=({onClose:l,selectedConnectionIds:a,setSelectedConnectionIds:n,createAction:r})=>{const s=h(),[d,u]=o(""),[p,m]=o(null),g=c(()=>(d?be.filter(e=>e?.label?.toLowerCase().includes(d.toLowerCase())):be).filter(e=>!!e),[d]),b=c(()=>(d?fe.filter(e=>e?.label?.toLowerCase().includes(d.toLowerCase())):fe).filter(e=>!!e),[d]),f=Ce(El),C=i(null),y=c(()=>{const l=(l,a)=>e(Hl,{children:[t(J,{size:K.XS,color:s.v2.colors.silver[200],children:l}),t(pe,{label:a.toString()})]},l),a=e=>{const l=p?.type===e.type;return t(ql,{title:e.label,description:e.description,withCarret:!0,isSelected:l,onClick:()=>{C.current?.clearErrors(),f.resetFormData(),f.handleFormChange("type",e.type),m(e)}},e.type)};return[l("Attributes",g.length),...g.map(a),l("Samplers",b.length),...b.map(a)]},[s,p?.type,g.length,b.length,f]),v=c(()=>p?[t(Nl,{option:p,...f},p?.type)]:[t(z,{$height:"100%",children:t(j,{icon:It,title:"Action not selected",subTitle:"Please select an action to add"})},"no-data")],[p,f]);return t(Il,{ref:C,isOpen:!0,onClose:l,onSave:async()=>{const{isOk:e,preparedFormData:t}=((e,t)=>{if(!e)return{isOk:!1,preparedFormData:M(El)};const l=(a=t.formData,M(a));var a;const n={};return t.handleErrorChange(void 0,void 0,n),{isOk:0===Object.keys(n).length,preparedFormData:l}})(p,f);return e?await r(t):Promise.resolve({error:"Invalid form values"})},disableSave:!p||!f.isFormDirty,isFormDirty:f.isFormDirty,hideDirtyNote:!0,progress:{title:ye.CREATING_ACTION,subTitle:ye.CREATING_ACTION_SUBTITLE},header:{icon:It,title:ye.ADD_ACTION,subTitle:ye.ADD_ACTION_DESCRIPTION},connectionIds:{value:a,setValue:n},search:{value:d,onChange:u},leftColumn:{width:"40%",list:y},rightColumn:{width:"60%",list:v}})},Bl=({selectedArea:e,genericForm:l})=>({width:"60%",list:e?[t(Al,{option:e.option,dynamicFields:e.dynamicFields,...l},e?.option.type)]:[t(z,{$height:"100%",children:t(j,{icon:Nt,title:"Select destination from the list",subTitle:"Add destination so your data has somewhere to go."})},"no-data")]});var Wl;!function(e){e.SELF_HOSTED="self hosted",e.MANAGED="managed"}(Wl||(Wl={}));const _l=e=>({type:"",disabled:!1,name:"",currentStreamName:e,exportedSignals:{logs:!1,metrics:!1,traces:!1},fields:[]}),Gl=p.div`
87
+ `,nn=({onClose:a,selectedConnectionIds:n,setSelectedConnectionIds:l,createAction:s})=>{const r=g(),[d,u]=o(""),[p,m]=o(null),h=c(()=>(d?we.filter(e=>e?.label?.toLowerCase().includes(d.toLowerCase())):we).filter(e=>!!e),[d]),b=c(()=>(d?De.filter(e=>e?.label?.toLowerCase().includes(d.toLowerCase())):De).filter(e=>!!e),[d]),f=ie(Ja),v=i(null),C=c(()=>{const a=(a,n)=>e(an,{children:[t(Q,{size:W.XS,color:r.v2.colors.silver[200],children:a}),t(Ce,{label:n.toString()})]},a),n=e=>{const a=p?.type===e.type;return t(tn,{title:e.label,description:e.description,withCarret:!0,isSelected:a,onClick:()=>{v.current?.clearErrors(),f.resetFormData(),f.handleFormChange("type",e.type),m(e)}},e.type)};return[a("Attributes",h.length),...h.map(n),a("Samplers",b.length),...b.map(n)]},[r,p?.type,h.length,b.length,f]),y=c(()=>p?[t(Fa,{option:p,...f},p?.type)]:[t(X,{$height:"100%",children:t(j,{icon:Ft,title:"Action not selected",subTitle:"Please select an action to add"})},"no-data")],[p,f]);return t(Oa,{ref:v,isOpen:!0,onClose:a,onSave:async()=>{const{isOk:e,preparedFormData:t}=Qa(p,f);return e?await s(t):Promise.resolve({error:"Invalid form values"})},disableSave:!p||!f.isFormDirty,isFormDirty:f.isFormDirty,hideDirtyNote:!0,progress:{title:Ie.CREATING_ACTION,subTitle:Ie.CREATING_ACTION_SUBTITLE},header:{icon:Ft,title:Ie.ADD_ACTION,subTitle:Ie.ADD_ACTION_DESCRIPTION},connectionIds:n&&l?{value:n,setValue:l}:void 0,search:{value:d,onChange:u},leftColumn:{width:"40%",list:C},rightColumn:{width:"60%",list:y}})},ln=({testConnection:e})=>{const{activeForm:a}=Ua();return{width:"60%",list:a?[t(Ba,{testConnection:e},a.option.type)]:[t(X,{$height:"100%",children:t(j,{icon:Lt,title:"Select destination from the list",subTitle:"Add destination so your data has somewhere to go."})},"no-data")]}},on=h.div`
81
88
  display: flex;
82
89
  flex-direction: column;
83
90
  padding: 8px;
84
91
  border-radius: 16px;
85
92
  border: ${({$purpleColors:e,theme:t})=>e?`1px solid ${t.v2.colors.purple[500]}`:"1px solid transparent"};
86
- background-color: ${({$noBgColor:e,$purpleColors:t,theme:l})=>e?"transparent":t?l.v2.colors.purple[900]:l.v2.colors.silver[800]};
87
- `,Jl=p.div`
93
+ background-color: ${({$noBgColor:e,$purpleColors:t,theme:a})=>e?"transparent":t?a.v2.colors.purple[900]:a.v2.colors.silver[800]};
94
+ `,sn=h.div`
88
95
  display: flex;
89
96
  align-items: center;
90
97
  justify-content: space-between;
91
98
  gap: 12px;
92
99
  padding: ${({$isOpen:e})=>e?"2px 12px 8px 12px":"2px 12px"};
93
- `,Ul=({title:l,tooltip:a,list:n,noBgColor:i,purpleColors:r})=>{const[s,c]=o(!0);return e(Gl,{$noBgColor:i,$purpleColors:r,children:[e(Jl,{$isOpen:s,children:[e(T,{$gap:10,children:[t(J,{size:K.XS,children:l}),a&&t(oe,{text:a,withIcon:!0}),t(pe,{label:n.length,status:r?G.Default:void 0})]}),t(ke,{icon:s?Tt:At,size:we.M,onClick:()=>c(e=>!e)})]}),s?t(g,{children:n.length?d.toArray(n):t(z,{$padding:"12px 0",children:t(j,{})})}):null]})},Yl=(e,t,l)=>t||l.signalType?e.filter(e=>e.displayName.toLowerCase().includes(t.toLowerCase())&&(!l.signalType||te(e.supportedSignals).includes(l.signalType))):e,Xl=({listType:e,dest:l,isSelected:a,onSelect:n})=>t(ql,{icon:xe(l.type).icon,title:l.displayName,withCarret:!0,isSelected:a,onClick:()=>{n()}},`${e}-${l.type}`),Zl=({listType:e,destinations:l,selectedArea:a,onSelect:n})=>t(Ul,{title:$e[e].TITLE,tooltip:$e[e].DESCRIPTION,list:l.map(l=>t(Xl,{listType:e,dest:l,isSelected:a?.option.type===l.type&&a?.listType===e,onSelect:()=>{return n({listType:e,option:l,dynamicFields:(t=l.fields,t.filter(e=>!!e).map(e=>{const{name:t,componentType:l,componentProperties:a,displayName:n,initialValue:o,renderCondition:i}=e,r=l===V.Dropdown,s=ee(a,{});return{componentType:l,renderCondition:i,name:t,title:n,value:o,placeholder:s.placeholder||(r?"Select an option":void 0),options:r&&Array.isArray(s.values)?s.values.map(e=>({id:e,value:e})):void 0,...s}}))});var t}},`${e}-${l.type}`))},e),Ql=({isFetching:e,destinationsByCategory:l,searchText:a,filters:n,selectedArea:o,onSelect:i})=>{const r=c(()=>{const e=[];for(const r of Object.values(Se)){if(n.categoryType&&n.categoryType!==r)continue;const s=Yl(l[r],a,n);s.length&&e.push(t(Zl,{listType:r,destinations:s,selectedArea:o,onSelect:i},r))}return e},[l,a,n,o,i]);return{width:"40%",list:r.length?r:e?[t(z,{$height:"100%",children:t(H,{title:"Fetching destinations",subTitle:"Please wait while we fetch the destinations",withSpinner:!0})},"loading")]:[]}},ea=({destinationsByCategory:a,filters:n,setFilters:o})=>{const i=c(()=>Object.values(Se).map(e=>({id:e,label:e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()})).filter(e=>a[e.id]?.length),[a]),r=c(()=>{const e=Object.values(le).map(e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}));return e.unshift({value:null,label:"All"}),e},[]);return e(l,{children:[t(Q,{placeholder:"Select category",options:i,values:n.categoryType?[n.categoryType]:[],setValues:e=>o({...n,categoryType:n.categoryType===e[0]?null:e[0]})}),t(Y,{size:Ie.S,options:r,selected:n.signalType,setSelected:e=>o({...n,signalType:e})})]})},ta=({onClose:e,selectedConnectionIds:l,setSelectedConnectionIds:n,getDestinationCategories:r,getPotentialDestinations:s,createDestination:c})=>{const[d,p]=o(""),[h,m]=o({categoryType:null,signalType:null}),[g,b]=o(null),[f,C]=o(!0),[y,v]=o({[Se.ALL]:[],[Se.EXISTS]:[],[Se.DETECTED]:[],[Se.SELF_HOSTED]:[],[Se.MANAGED]:[]}),w=u(async()=>{try{C(!0);const[e,t]=await Promise.all([r(),s()]),{detectedDestinations:l,selfHostedDestinations:a,managedDestinations:n}=((e,t)=>{const l=[],a=[],n=[];return e&&e.destinationCategories.categories.forEach(e=>{e.name===Wl.SELF_HOSTED?a.push(...e.items):e.name===Wl.MANAGED&&n.push(...e.items)}),t&&t?.potentialDestinations.forEach(t=>{for(const a of e?.destinationCategories?.categories||[]){const e=M(a),n=e.items.findIndex(e=>e.type===t.type);if(-1!==n){const a=ee(t.fields,[]);a.length&&(e.items[n].fields=e.items[n].fields.map(e=>{const t=a.find(t=>t.name===e.name)?.initialValue;return{...e,initialValue:t}}),l.push(e.items[n]))}}}),{detectedDestinations:l,selfHostedDestinations:a,managedDestinations:n}})(e,t);v(e=>({...e,[Se.DETECTED]:l,[Se.SELF_HOSTED]:a,[Se.MANAGED]:n}))}catch(e){}finally{C(!1)}},[]);a(()=>{w()},[]);const{selectedStreamName:S}=Ne(),$=Ce(_l(S)),x=i(null);return t(Il,{ref:x,isOpen:!0,onClose:e,onSave:async()=>{const{isOk:e,preparedFormData:t}=((e,t)=>{if(!e)return{isOk:!1,preparedFormData:M(_l(t.formData.currentStreamName))};const l=M(t.formData),a={};return e.dynamicFields.forEach(({name:e,required:t})=>{if(t){const t=l.fields.find(t=>t.key===e)?.value;k(t)&&(a[e]=ve.FIELD_IS_REQUIRED)}}),ae(l.exportedSignals).length||(a.exportedSignals=ve.FIELD_IS_REQUIRED),t.handleErrorChange(void 0,void 0,a),{isOk:0===Object.keys(a).length,preparedFormData:l}})(g,$);return e?await c(t):Promise.resolve({error:"Invalid form values"})},disableSave:!g,isFetching:f,isFormDirty:$.isFormDirty,hideDirtyNote:!0,progress:{title:ye.CREATING_DESTINATION,subTitle:ye.CREATING_DESTINATION_SUBTITLE},header:{icon:Nt,title:ye.ADD_DESTINATIONS,subTitle:ye.ADD_DESTINATION_DRAWER_DESCRIPTION},connectionIds:{value:l,setValue:n},search:{value:d,onChange:p},filters:t(ea,{destinationsByCategory:y,filters:h,setFilters:m}),leftColumn:Ql({isFetching:f,destinationsByCategory:y,searchText:d,filters:h,selectedArea:g,onSelect:e=>{$.resetFormData(),x.current?.clearErrors(),b(e)}}),rightColumn:Bl({selectedArea:g,genericForm:$})})},la={disabled:!1,ruleName:"",notes:"",workloads:null,instrumentationLibraries:null,payloadCollection:null,codeAttributes:null,headersCollection:null,customInstrumentations:null},aa=({onClose:e,selectedConnectionIds:l,setSelectedConnectionIds:a,createInstrumentationRule:n})=>{const[r,s]=o(""),[d,u]=o(null),p=c(()=>r?Te.filter(e=>e.label.toLowerCase().includes(r.toLowerCase())):Te,[r]),h=Ce(la),m=i(null),g=c(()=>p.map(e=>{const l=d?.type===e.type;return t(ql,{title:e.label,description:e.description,withCarret:!0,isSelected:l,onClick:()=>{h.resetFormData(),m.current?.clearErrors(),u(e)}},e.type)}),[d,p.length,h]),b=c(()=>d?[t(Ll,{option:d,...h},d?.type)]:[t(z,{$height:"100%",children:t(j,{icon:Dt,title:"Instrumentation rule not selected",subTitle:"Please select an instrumentation rule to add"})},"no-data")],[d,h]);return t(Il,{ref:m,isOpen:!0,onClose:e,onSave:async()=>{const{isOk:e,preparedFormData:t}=((e,t)=>{if(!e)return{isOk:!1,preparedFormData:M(la)};const l=(e=>{const t=M(e);return t.headersCollection?.[ie.HeaderKeys]?.length&&(t.headersCollection[ie.HeaderKeys]=t.headersCollection[ie.HeaderKeys].map(e=>e.trim()).filter(e=>e)),t.customInstrumentations?.[de.Golang]?.length&&(t.customInstrumentations[de.Golang]=t.customInstrumentations[de.Golang].map(e=>new se(e.packageName,e.functionName,e.receiverName,e.receiverMethodName)).filter(e=>e.Verify())),t.customInstrumentations?.[de.Java]?.length&&(t.customInstrumentations[de.Java]=t.customInstrumentations[de.Java].map(e=>new ce(e.className,e.methodName)).filter(e=>e.Verify())),t})(t.formData),a={};switch(e.type){case ue.CodeAttributes:Object.values(l.codeAttributes||{}).some(e=>null!=e)||(a.codeAttributes="Code attributes are required");break;case ue.PayloadCollection:Object.values(l.payloadCollection||{}).some(e=>null!=e)||(a.payloadCollection="Payload collection are required");break;case ue.HeadersCollection:l.headersCollection?.[ie.HeaderKeys]?.length||(a.headersCollection="Header keys are required");break;case ue.CustomInstrumentation:l.customInstrumentations?.[de.Golang]?.length||l.customInstrumentations?.[de.Java]?.length||(a.customInstrumentations="Custom instrumentation are required")}return t.handleErrorChange(void 0,void 0,a),{isOk:0===Object.keys(a).length,preparedFormData:l}})(d,h);return e?await n(t):Promise.resolve({error:"Invalid form values"})},disableSave:!d||!h.isFormDirty,isFormDirty:h.isFormDirty,hideDirtyNote:!0,progress:{title:ye.CREATING_INSTRUMENTATION_RULE,subTitle:ye.CREATING_INSTRUMENTATION_RULE_SUBTITLE},header:{icon:Dt,title:ye.ADD_INSTRUMENTATION_RULE,subTitle:ye.ADD_INSTRUMENTATION_RULE_DESCRIPTION},connectionIds:{value:l,setValue:a},search:{value:r,onChange:s},leftColumn:{width:"40%",list:g},rightColumn:{width:"60%",list:b}})},na=p.div``,oa=p.div`
100
+ `,rn=({title:a,tooltip:n,list:l,noBgColor:i,purpleColors:s})=>{const[r,c]=o(!0);return e(on,{$noBgColor:i,$purpleColors:s,children:[e(sn,{$isOpen:r,children:[e($,{$gap:10,children:[t(Q,{size:W.XS,children:a}),n&&t(pe,{text:n,withIcon:!0}),t(Ce,{label:l.length,status:s?J.Default:void 0})]}),t(Ne,{icon:r?Mt:Pt,size:Te.M,onClick:()=>c(e=>!e)})]}),r?t(f,{children:l.length?m.toArray(l):t(X,{$padding:"12px 0",children:t(j,{})})}):null]})},cn=(e,t,a)=>t||a.signalType?e.filter(e=>e.displayName.toLowerCase().includes(t.toLowerCase())&&(!a.signalType||se(e.supportedSignals).includes(a.signalType))):e,dn=({option:e,formData:a,testResult:n,isSelected:l,onSelect:o})=>t(tn,{icon:$e(e.type).icon,title:a?.name||e.displayName,withCarret:!0,purpleColors:!!a,isSelected:l,onClick:()=>o(),children:n&&t(Ce,{status:n.succeeded?J.Success:J.Error,leftIcon:n.succeeded?Vt:_t})}),un=({listType:e,destinationOptions:a,unsavedDestinations:n})=>{const{activeForm:l,onChangeActiveForm:o}=Ua();return a?.length?t(rn,{title:xe[e].TITLE,tooltip:xe[e].DESCRIPTION,list:a.map(a=>t(dn,{option:a,isSelected:l?.option.type===a.type&&l?.listType===e,onSelect:()=>o({listType:e,option:a})},`${e}-${a.type}`))}):n?.length?t(rn,{purpleColors:!0,title:xe[e].TITLE,tooltip:xe[e].DESCRIPTION,list:n.map(({option:a,formData:n,testResult:i},s)=>t(dn,{option:a,formData:n,testResult:i,isSelected:l?.unsavedIdx===s&&l?.listType===e,onSelect:()=>o({listType:e,option:a,unsavedIdx:s})},`${e}-${s}`))},e):void 0},pn=({isFetching:e,destinationsByCategory:a,searchText:n,filters:l})=>{const{unsavedDestinations:o}=Ua(),i=c(()=>{const e=[];o.length&&e.push(t(un,{listType:Ae.UNSAVED,unsavedDestinations:o},"unsaved"));for(const o of Object.values(Ae)){if(l.categoryType&&l.categoryType!==o)continue;const i=cn(a[o],n,l);i.length&&e.push(t(un,{listType:o,destinationOptions:i},o))}return e},[o,a,n,l]);return{width:"40%",list:i.length?i:e?[t(X,{$height:"100%",children:t(H,{title:"Fetching destinations",subTitle:"Please wait while we fetch the destinations",withSpinner:!0})},"loading")]:[]}},mn=({destinationsByCategory:n,filters:l,setFilters:o})=>{const i=c(()=>Object.values(Ae).map(e=>({id:e,label:e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()})).filter(e=>n[e.id]?.length),[n]),s=c(()=>{const e=Object.values(re).map(e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}));return e.unshift({value:null,label:"All"}),e},[]);return e(a,{children:[t(ne,{placeholder:"Select category",options:i,values:l.categoryType?[l.categoryType]:[],setValues:e=>o({...l,categoryType:l.categoryType===e[0]?null:e[0]})}),t(ee,{size:Ee.S,options:s,selected:l.signalType,setSelected:e=>o({...l,signalType:e})})]})};var hn;!function(e){e.SELF_HOSTED="self hosted",e.MANAGED="managed"}(hn||(hn={}));const gn=({onClose:e,onBack:a,onNext:l,selectedConnectionIds:i,setSelectedConnectionIds:s,getDestinationCategories:r,getPotentialDestinations:c,initialInputs:u,testConnection:p,createDestination:m})=>{const[h,g]=o(""),[b,f]=o({categoryType:null,signalType:null}),{activeForm:v,genericForm:C,unsavedDestinations:y,setUnsavedDestinations:S}=Ua();n(()=>{u&&S(u)},[u]);const[k,w]=o(!0),[D,I]=o({[Ae.ALL]:[],[Ae.UNSAVED]:[],[Ae.EXISTS]:[],[Ae.DETECTED]:[],[Ae.SELF_HOSTED]:[],[Ae.MANAGED]:[]}),N=d(async()=>{try{w(!0);const[e,t]=await Promise.all([r(),c()]),{detectedDestinations:a,selfHostedDestinations:n,managedDestinations:l}=((e,t)=>{const a=[],n=[],l=[];return e&&e.destinationCategories.categories.forEach(e=>{e.name===hn.SELF_HOSTED?n.push(...e.items):e.name===hn.MANAGED&&l.push(...e.items)}),t&&t?.potentialDestinations.forEach(t=>{for(const n of e?.destinationCategories?.categories||[]){const e=_(n),l=e.items.findIndex(e=>e.type===t.type);if(-1!==l){const n=le(t.fields,[]);n.length&&(e.items[l].fields=e.items[l].fields.map(e=>{const t=n.find(t=>t.name===e.name)?.initialValue;return{...e,initialValue:t}}),a.push(e.items[l]))}}}),{detectedDestinations:a,selfHostedDestinations:n,managedDestinations:l}})(e,t);I(e=>({...e,[Ae.DETECTED]:a,[Ae.SELF_HOSTED]:n,[Ae.MANAGED]:l}))}catch(e){}finally{w(!1)}},[]);n(()=>{N()},[]);const T=d(async()=>{const e=(await Promise.all(y.map(({formData:e})=>m(e,i)))).filter(e=>e?.error);if(e.length)return{error:e.map(e=>e?.error).join("\n")}},[y,i,m]);return t(Oa,{isOpen:!0,onClose:e,onBack:a?()=>a(y):void 0,onNext:l?()=>l(y):void 0,nextIsSkip:!y.length,onSave:T,disableSave:!v,isFetching:k,errorMessage:v?.errorMessage,isFormDirty:C?.isFormDirty,hideDirtyNote:!0,progress:{title:Ie.CREATING_DESTINATION,subTitle:Ie.CREATING_DESTINATION_SUBTITLE},header:{icon:Lt,title:Ie.ADD_DESTINATIONS,subTitle:Ie.ADD_DESTINATION_DRAWER_DESCRIPTION},connectionIds:i&&s?{value:i,setValue:s}:void 0,search:{value:h,onChange:g},filters:t(mn,{destinationsByCategory:D,filters:b,setFilters:f}),leftColumn:pn({isFetching:k,destinationsByCategory:D,searchText:h,filters:b}),rightColumn:ln({testConnection:p})})},bn={disabled:!1,ruleName:"",notes:"",workloads:null,instrumentationLibraries:null,payloadCollection:null,codeAttributes:null,headersCollection:null,customInstrumentations:null},fn=(e,t)=>{if(!e)return{isOk:!1,preparedFormData:_(bn)};const a=(e=>{const t=_(e);return t.headersCollection?.[me.HeaderKeys]?.length&&(t.headersCollection[me.HeaderKeys]=t.headersCollection[me.HeaderKeys].map(e=>e.trim()).filter(e=>e)),t.customInstrumentations?.[fe.Golang]?.length&&(t.customInstrumentations[fe.Golang]=t.customInstrumentations[fe.Golang].map(e=>new ge(e.packageName,e.functionName,e.receiverName,e.receiverMethodName)).filter(e=>e.Verify())),t.customInstrumentations?.[fe.Java]?.length&&(t.customInstrumentations[fe.Java]=t.customInstrumentations[fe.Java].map(e=>new be(e.className,e.methodName)).filter(e=>e.Verify())),t})(t.formData),n={};switch(e.type){case ve.CodeAttributes:Object.values(a.codeAttributes||{}).some(e=>null!=e)||(n.codeAttributes="Code attributes are required");break;case ve.PayloadCollection:Object.values(a.payloadCollection||{}).some(e=>null!=e)||(n.payloadCollection="Payload collection are required");break;case ve.HeadersCollection:a.headersCollection?.[me.HeaderKeys]?.length||(n.headersCollection="Header keys are required");break;case ve.CustomInstrumentation:a.customInstrumentations?.[fe.Golang]?.length||a.customInstrumentations?.[fe.Java]?.length||(n.customInstrumentations="Custom instrumentation are required")}return t.handleErrorChange(void 0,void 0,n),{isOk:0===Object.keys(n).length,preparedFormData:a}},vn=({onClose:e,selectedConnectionIds:a,setSelectedConnectionIds:n,createInstrumentationRule:l})=>{const[s,r]=o(""),[d,u]=o(null),p=c(()=>s?Re.filter(e=>e.label.toLowerCase().includes(s.toLowerCase())):Re,[s]),m=ie(bn),h=i(null),g=c(()=>p.map(e=>{const a=d?.type===e.type;return t(tn,{title:e.label,description:e.description,withCarret:!0,isSelected:a,onClick:()=>{m.resetFormData(),h.current?.clearErrors(),u(e)}},e.type)}),[d,p.length,m]),b=c(()=>d?[t(Ya,{option:d,...m},d?.type)]:[t(X,{$height:"100%",children:t(j,{icon:Ut,title:"Instrumentation rule not selected",subTitle:"Please select an instrumentation rule to add"})},"no-data")],[d,m]);return t(Oa,{ref:h,isOpen:!0,onClose:e,onSave:async()=>{const{isOk:e,preparedFormData:t}=fn(d,m);return e?await l(t):Promise.resolve({error:"Invalid form values"})},disableSave:!d||!m.isFormDirty,isFormDirty:m.isFormDirty,hideDirtyNote:!0,progress:{title:Ie.CREATING_INSTRUMENTATION_RULE,subTitle:Ie.CREATING_INSTRUMENTATION_RULE_SUBTITLE},header:{icon:Ut,title:Ie.ADD_INSTRUMENTATION_RULE,subTitle:Ie.ADD_INSTRUMENTATION_RULE_DESCRIPTION},connectionIds:a&&n?{value:a,setValue:n}:void 0,search:{value:s,onChange:r},leftColumn:{width:"40%",list:g},rightColumn:{width:"60%",list:b}})},Cn=h.div``,yn=h.div`
94
101
  visibility: hidden;
95
102
 
96
103
  transition: visibility 0s;
@@ -98,19 +105,19 @@ import{jsxs as e,jsx as t,Fragment as l}from"react/jsx-runtime";import{useEffect
98
105
  transition-duration: 0s;
99
106
  }
100
107
 
101
- ${na}:hover & {
108
+ ${Cn}:hover & {
102
109
  visibility: visible;
103
110
  }
104
- `,ia=({workloadName:e,workloadKind:l,isChecked:a,onToggle:n,disabled:o,disabledReason:i})=>{const r=h(),s=()=>{};return t(na,{children:t(ql,{title:e,disabled:o,onClick:o?s:n,isChecked:a,onCheckboxChange:o?s:n,children:o&&i?t(pe,{label:i,status:G.Default,textSize:K.XXXS}):t(oa,{children:t(pe,{label:l,status:G.Info,textSize:K.XXXS,backgroundColor:r.v2.colors.blue[900]})})})})},ra=({formData:l,handleSourceChange:a,handleSelectAll:n,selectedArea:o,searchText:i,filters:r})=>{const{tier:s}=Ae(),d=s===Fe.Onprem,u=c(()=>o.value.clusterId&&o.value.namespaceName?l.find(({clusterId:e})=>e===o.value.clusterId)?.namespaces.find(({name:e})=>e===o.value.namespaceName):void 0,[l,o.value.clusterId,o.value.namespaceName]),p=c(()=>u?[...u.workloads].sort((e,t)=>e.name.localeCompare(t.name)).filter(e=>De(e,i,r)):[],[u,i,r]),h=c(()=>!!p.length&&p.every(({selected:e})=>e),[p]),m=c(()=>{if(!u)return[];const{clusterId:e}=o.value,{name:l}=u;return p.map(({name:n,selected:o,kind:i})=>{const r=!d&&Oe.has(i);return t(ia,{workloadName:n,workloadKind:i,isChecked:!r&&(o||!1),onToggle:()=>a({clusterId:e,workloadId:{namespace:l,name:n,kind:i}}),disabled:r,disabledReason:"Enterprise only"},`${e}#${l}#${n}#${i}`)})},[p,u,o.value.clusterId]),{withFilterCount:g,filteredCount:b,totalCount:f}=c(()=>{const e=u?.workloads.length??0;return{withFilterCount:p.length!==e,filteredCount:p.length,totalCount:e}},[p,u]);return{width:"40%",header:e(T,{$width:"100%",$gap:12,$justifyContent:"space-between",children:[e(T,{$gap:8,children:[t(J,{size:K.XS,nowrap:!0,children:o.value.namespaceName?`${o.value.namespaceName} > Workloads`:"Workloads"}),t(oe,{text:g?ye.FILTERED_COUNT_TOOLTIP:void 0,children:t(pe,{label:`${g?`${b} / ${f}`:f}`,status:Ve.Unknown})})]}),t(J,{onClick:()=>n({clusterId:o.value.clusterId,namespaceName:o.value.namespaceName,boolean:!h}),disabled:!m.length,size:K.XS,children:(h?"Unselect":"Select")+" all"})]}),list:u?m:[t(z,{$height:"100%",children:t(j,{icon:Ot,title:ye.SELECT_NAMESPACE,subTitle:ye.SELECT_NAMESPACE_SUBTITLE})},"no-data")]}},sa=p.div``,ca=p.div`
111
+ `,Sn=({workloadName:e,workloadKind:a,isChecked:n,onToggle:l,disabled:o,disabledReason:i})=>{const s=g(),r=()=>{};return t(Cn,{children:t(tn,{title:e,disabled:o,onClick:o?r:l,isChecked:n,onCheckboxChange:o?r:l,children:o&&i?t(Ce,{label:i,status:J.Default,textSize:W.XXXS}):t(yn,{children:t(Ce,{label:a,status:J.Info,textSize:W.XXXS,backgroundColor:s.v2.colors.blue[900]})})})})},kn=({formData:a,handleSourceChange:n,handleSelectAll:l,selectedArea:o,searchText:i,filters:s})=>{const{tier:r}=P(),d=r===V.Onprem,u=c(()=>o.value.namespaceName?a.find(({clusterId:e})=>e===o.value.clusterId)?.namespaces.find(({name:e})=>e===o.value.namespaceName):void 0,[a,o.value.clusterId,o.value.namespaceName]),p=c(()=>u?[...u.workloads].sort((e,t)=>e.name.localeCompare(t.name)).filter(e=>Oe(e,i,s)):[],[u,i,s]),m=c(()=>!!p.length&&p.every(({selected:e})=>e),[p]),h=c(()=>{if(!u)return[];const{clusterId:e}=o.value,{name:a}=u;return p.map(({name:l,selected:o,kind:i})=>{const s=!d&&Fe.has(i);return t(Sn,{workloadName:l,workloadKind:i,isChecked:!s&&(o||!1),onToggle:()=>n({clusterId:e,workloadId:{namespace:a,name:l,kind:i}}),disabled:s,disabledReason:"Enterprise only"},`${e}#${a}#${l}#${i}`)})},[p,u,o.value.clusterId]),{withFilterCount:g,filteredCount:b,totalCount:f}=c(()=>{const e=u?.workloads.length??0;return{withFilterCount:p.length!==e,filteredCount:p.length,totalCount:e}},[p,u]);return{width:"40%",header:e($,{$width:"100%",$gap:12,$justifyContent:"space-between",children:[e($,{$gap:8,children:[t(Q,{size:W.XS,nowrap:!0,children:o.value.namespaceName?`${o.value.namespaceName} > Workloads`:"Workloads"}),t(pe,{text:g?Ie.FILTERED_COUNT_TOOLTIP:void 0,children:t(Ce,{label:`${g?`${b} / ${f}`:f}`,status:Le.Unknown})})]}),t(Q,{onClick:()=>l({clusterId:o.value.clusterId,namespaceName:o.value.namespaceName,boolean:!m}),disabled:!h.length,size:W.XS,children:(m?"Unselect":"Select")+" all"})]}),list:u?h:[t(X,{$height:"100%",children:t(j,{icon:zt,title:Ie.SELECT_NAMESPACE,subTitle:Ie.SELECT_NAMESPACE_SUBTITLE})},"no-data")]}},wn=h.div``,Dn=h.div`
105
112
  visibility: ${({$visible:e})=>e?"visible":"hidden"};
106
113
 
107
114
  transition: visibility 0s;
108
115
  ${({$visible:e})=>!e&&"& * {\n transition-duration: 0s !important;\n }"}
109
116
 
110
- ${sa}:hover & {
117
+ ${wn}:hover & {
111
118
  visibility: visible;
112
119
  }
113
- `,da=({clusterId:l,namespaceName:a,checkbox:n,isFutureApps:o,selectedCounts:i,isActive:r,onActive:s,handleSourceChange:c})=>{const d=h(),u=e=>{s(),c({clusterId:l,workloadId:{namespace:a},auto:e.auto,selected:e.all})};return t(sa,{children:t(ql,{title:a,isSelected:r,onClick:s,isPartiallyChecked:n.partial,isChecked:n.all,onCheckboxChange:e=>u({auto:e,all:e}),children:e(T,{$gap:12,children:[t(ca,{$visible:r||o,children:t(oe,{text:"Automatically instrument all workloads currently in the namespace, and all workloads that will be deployed to this namespace in the future",children:t($,{label:"Auto",size:Re.S,value:o,onChange:e=>u({auto:e,all:e||void 0})})})}),e(T,{$gap:8,children:[t(J,{variant:Me.Span,size:K.XXXS,color:d.v2.colors.silver[200],align:"right",children:"Selected"}),t(pe,{label:`${i.sourced}/${i.total}`,status:r?G.Default:Ve.Unknown,minWidth:"42px"})]})]})})})},ua=({clusterId:e,clusterName:l,namespaces:a,selectedArea:n,setSelectedArea:o,handleSourceChange:i})=>{const r=c(()=>a.map(({name:a,totalWorkloads:r,selectedCount:s,isAllSourced:c,isSomeSourced:d,isFutureApps:u})=>t(da,{clusterId:e,namespaceName:a,isFutureApps:u,checkbox:{all:c,partial:d},selectedCounts:{sourced:s,total:r},isActive:n.clusterId===e&&n.namespaceName===a,onActive:()=>o({clusterId:e,clusterName:l,namespaceName:a}),handleSourceChange:i},`${e}#${a}`)),[e,l,a,n]);return t(Ul,{title:l,list:r,noBgColor:!0})},pa=({isFetching:l,formData:a,handleSourceChange:n,handleSelectAll:o,selectedArea:i,setSelectedArea:r,searchText:s,filters:d})=>{const u=c(()=>a.map(e=>{const t=[...e.namespaces].sort((e,t)=>e.name.localeCompare(t.name)).filter(e=>Pe(e,s,d)).map(e=>({name:e.name,totalWorkloads:e.workloads.length,...Le(e)}));return{clusterId:e.clusterId,clusterName:e.clusterName,visibleNamespaces:t}}),[a,s,d]),p=c(()=>{let e=!1;for(const{visibleNamespaces:t}of u)for(const{totalWorkloads:l,selectedCount:a}of t)if(e=!0,a!==l)return!1;return e},[u]),{list:h,withFilterCount:m,filteredCount:g,totalCount:b}=c(()=>{const e=u.map(({clusterId:e,clusterName:l,visibleNamespaces:a})=>a.length?t(ua,{clusterId:e,clusterName:l,namespaces:a,selectedArea:i,setSelectedArea:r,handleSourceChange:n},e):null),l=e.filter(e=>null!==e);return{list:l,withFilterCount:l.length!==e.length,filteredCount:l.length,totalCount:e.length}},[u,i]);return{width:"60%",header:e(T,{$width:"100%",$gap:12,$justifyContent:"space-between",children:[e(T,{$gap:8,children:[t(J,{size:K.XS,nowrap:!0,children:"Namespaces"}),t(oe,{text:m?ye.FILTERED_COUNT_TOOLTIP:void 0,children:t(pe,{label:`${m?`${g} / ${b}`:b}`,status:Ve.Unknown})})]}),t(J,{onClick:()=>o({boolean:!p}),disabled:!h.length,size:K.XS,children:(p?"Unselect":"Select")+" all"})]}),list:h.length?h:l?[t(z,{$height:"100%",children:t(H,{title:ye.FETCHING_NAMESPACES,subTitle:ye.FETCHING_NAMESPACES_SUBTITLE,withSpinner:!0})},"loading")]:[]}},ha=({onClose:l,selectedConnectionIds:n,setSelectedConnectionIds:i,getAllClusterSnapshots:r,persistSources:s})=>{const d=h(),{tier:p}=Ae(),m=p===Fe.Onprem,{selectedStreamName:g}=Ne(),{progress:b,resetProgress:f}=Ee(),C=c(()=>g||ze,[g]),[y,v]=o(!1),[k,w]=o(null),S=u(async()=>{try{v(!0),w(await r()??null)}catch(e){}finally{v(!1)}},[]);a(()=>{S()},[]);const[x,I]=o(""),[N,A]=o(je.Namespace),[D,O]=o({showOnlySelected:!1}),[V,F]=o({clusterId:"",clusterName:"",namespaceName:""}),[R,P]=o([]);a(()=>{k&&P(e=>{const t=((e,t)=>M(((e,t)=>e.clusters.filter(({clusterId:e})=>t.includes(e)))(e,t)))(k,n);return t.map(t=>{const l=e?.find(e=>e.clusterId===t.clusterId);return l??t})})},[k,n]);const{formDiff:L,isFormDirty:E}=c(()=>{const e=((e,t,l)=>{const a={};return e.forEach(e=>{e.namespaces.forEach(n=>{const o=t.find(t=>t.clusterId===e.clusterId)?.namespaces.find(e=>e.name===n.name),i=n.selected||!1,r=i!==o?.selected;if(r&&(a[e.clusterId]||(a[e.clusterId]=[]),a[e.clusterId].push({namespace:n.name,selected:i,currentStreamName:l}),i&&(a[e.clusterId]=a[e.clusterId].filter(e=>e.namespace!==n.name||e.namespace===n.name&&(!e.name||!e.kind)))),!r||!i){const t=((e,t,l)=>{const a=[];return t.workloads.forEach(n=>{const o=e?.workloads.find(e=>e.name===n.name&&e.kind===n.kind);n.selected!==o?.selected&&a.push({namespace:t.name,name:n.name,kind:n.kind,selected:n.selected||!1,currentStreamName:l})}),a})(o,n,l);t.length>0&&(a[e.clusterId]||(a[e.clusterId]=[]),a[e.clusterId].push(...t))}})}),a})(R,k?.clusters||[],C);return{formDiff:e,isFormDirty:Object.keys(e).length>0}},[R,k,C]),z=u(e=>!m&&Oe.has(e),[m]),j=u(({clusterId:e,workloadId:t,selected:l,auto:a})=>{P(n=>{const o=M(n),i=o.findIndex(t=>t.clusterId===e);if(-1===i)return o;const r=o[i].namespaces.findIndex(e=>e.name===t.namespace);if(-1===r)return o;if(t.kind&&t.name){const e=o[i].namespaces[r].workloads.findIndex(e=>e.name===t.name&&e.kind===t.kind);if(-1===e)return o;const a="boolean"==typeof l?l:!o[i].namespaces[r].workloads[e].selected;o[i].namespaces[r].workloads[e].selected=a,a?o[i].namespaces[r].workloads.filter(e=>!z(e.kind)).every(e=>e.selected)&&(o[i].namespaces[r].selected=!0):o[i].namespaces[r].selected=!1}else{const e="boolean"==typeof a?a:!o[i].namespaces[r].selected;o[i].namespaces[r].selected=e,e?o[i].namespaces[r].workloads.forEach(e=>{z(e.kind)||(e.selected=!0)}):"boolean"!=typeof l||l||o[i].namespaces[r].workloads.forEach(e=>{e.selected=!1})}return o})},[z]),q=u(({clusterId:e,namespaceName:t,boolean:l})=>{P(a=>{const n=M(a),o=N===je.Namespace?x:"",i=N===je.Source?x:"",r=!!o||!!i||!!D?.showOnlySelected;return n.forEach((a,s)=>{e&&a.clusterId!==e||a.namespaces.forEach(({name:e,workloads:a},c)=>{if(!t||e===t)if(r)if(t){a.forEach((e,t)=>{l&&z(e.kind)||De(e,i,D)&&(n[s].namespaces[c].workloads[t].selected=l)});const e=n[s].namespaces[c].workloads.filter(e=>!z(e.kind)).every(e=>e.selected);n[s].namespaces[c].selected=e}else{if(!Pe(n[s].namespaces[c],o,D))return;n[s].namespaces[c].selected=l,a.forEach((e,t)=>{l&&z(e.kind)||(n[s].namespaces[c].workloads[t].selected=l)})}else n[s].namespaces[c].selected=l,a.forEach((e,t)=>{l&&z(e.kind)||(n[s].namespaces[c].workloads[t].selected=l)})})}),n})},[N,x,D,z]);return t(Il,{isOpen:!0,onClose:()=>{f(qe.BulkInstrumenting),l()},onSave:()=>s(L),header:{icon:Ot,title:ye.ADD_SOURCE,subTitle:ye.ADD_SOURCES_DESCRIPTION},connectionIds:{value:n,setValue:i},search:{value:x,onChange:e=>{I(e),N===je.Namespace&&F({clusterId:"",clusterName:"",namespaceName:""})},segment:{options:[{label:"Namespace",value:je.Namespace},{label:"Source",value:je.Source}],selected:N,setSelected:A}},filters:e(T,{$gap:8,children:[t(J,{size:K.XXXS,color:d.v2.colors.silver[200],nowrap:!0,children:"Show only:"}),t($,{size:Re.S,label:"Selected",value:D.showOnlySelected,onChange:e=>O(t=>({...t,showOnlySelected:e}))})]}),isFormDirty:E,isFetching:y,progress:{title:ye.CREATING_SOURCES,subTitle:ye.CREATING_SOURCES_SUBTITLE,percentage:b[qe.BulkInstrumenting]?.percentage||0},leftColumn:pa({isFetching:y,formData:R,handleSourceChange:j,handleSelectAll:q,selectedArea:V,setSelectedArea:F,searchText:N===je.Namespace?x:"",filters:D}),rightColumn:ra({formData:R,handleSourceChange:j,handleSelectAll:q,selectedArea:{value:V},searchText:N===je.Source?x:"",filters:D})})},ma=({onClose:l,connections:n,selectedConnectionIds:i,setSelectedConnectionIds:r,getEffectiveConfig:s,onApply:d})=>{const u=h(),[p,m]=o(""),[g,b]=o({showOnlySelected:!1}),f=c(()=>n.filter(e=>{const t=!p||e.name.toLowerCase().includes(p.toLowerCase()),l=!g.showOnlySelected||g.showOnlySelected&&i.includes(e.id);return t&&l}),[n.length,i.length,p,g]),C=e=>{r(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[y,v]=o(!1),[k,w]=o(void 0),{formData:S,handleFormChange:x,areFormValuesEqual:I,resetFormData:N}=Ce(k||{rollout:{automaticRolloutDisabled:!1}}),A=c(()=>i.length>1||void 0!==k&&!I(k,S),[i.length,k,S]);return a(()=>{1===i.length?(async e=>{if(y)return;v(!0);const t=await s(e);if(t){const e={rollout:{automaticRolloutDisabled:t.rollout?.automaticRolloutDisabled||!1}};w(e),N(e)}v(!1)})(i[0]):w(void 0)},[i.length]),t(Il,{isOpen:!0,onClose:l,onSave:()=>d(S,i),header:{icon:Vt,title:"Cluster Configuration"},connectionIds:{value:i,setValue:r},search:{placeholder:"Search by cluster name",value:p,onChange:m},filters:e(T,{$gap:8,children:[t(J,{size:K.XXXS,color:u.v2.colors.silver[200],nowrap:!0,children:"Show only:"}),t($,{size:Re.S,label:"Selected",value:g.showOnlySelected,onChange:e=>b(t=>({...t,showOnlySelected:e}))})]}),isFormDirty:A,isFetching:y,leftColumn:{width:"35%",header:e(T,{$width:"100%",$gap:12,$justifyContent:"space-between",children:[e(T,{$gap:8,children:[t(J,{size:K.XS,children:"Clusters"}),t(pe,{label:f.length,status:Ve.Unknown})]}),e(T,{$gap:8,children:[t(J,{size:K.XXXS,color:u.v2.colors.silver[200],align:"right",children:"Selected clusters"}),t(pe,{label:`${i.length}/${f.length}`,status:Ve.Unknown})]})]}),list:f.map(e=>t(ql,{title:e.name,isChecked:i.includes(e.id),onClick:()=>C(e.id),onCheckboxChange:()=>C(e.id)},e.id))},rightColumn:{width:"65%",header:t(J,{size:K.XS,children:"Configurations"}),list:[t($,{label:"Automatic rollout disabled",tooltip:"Odigos automatically triggers a one-time rollout for workloads when instrumenting or uninstrumenting, ensuring that changes are applied without requiring manual intervention. When automatic rollout is disabled, Odigos will not restart workloads, and users will need to manually trigger rollouts after adding or removing sources.",value:S.rollout?.automaticRolloutDisabled||!1,onChange:e=>x("rollout.automaticRolloutDisabled",e)},"automatic-rollout-disabled")]}})},ga=({token:a,isLoading:n,isEditing:o,onEdit:i,onCancel:r,onSave:s,formData:c,handleFormChange:d,handleErrorChange:u,formErrors:p})=>{const{CopyButton:h}=He(),m=!o||n||!c.newToken;return Ke({key:"Enter",active:!m},s),e(T,o?{$justifyContent:"space-between",$alignItems:"flex-start",$gap:12,children:[t(y,{type:"password",value:c.newToken,onChange:e=>{d("newToken",e.target.value),u("newToken",void 0)},width:"430px",autoFocus:!0,errorMessage:p.newToken}),t(T,{$margin:n?"8px 0 0 0":"2px 0 0 0",$alignItems:"center",children:n?t(H,{title:"Saving...",withGradient:!0}):e(l,{children:[t(A,{variant:O.Secondary,size:D.S,leftIcon:Ft,onClick:r,disabled:n}),t(A,{variant:O.Primary,size:D.S,leftIcon:Rt,onClick:s,disabled:m})]})})]}:{$justifyContent:"space-between",$gap:12,children:[t(J,{size:K.XS,children:new Array(55).fill("•").join("")}),e(T,{$alignItems:"center",$justifyContent:"space-between",children:[t(h,{value:a}),t(ke,{icon:Mt,onClick:i})]})]})},ba=({expiresAt:e,callbackValid:l,callbackExpired:n})=>{const{formatTimeAgo:o}=Be(),i=c(()=>o(e),[e]),r=c(()=>new Date(e).toDateString().split(" ").slice(1).join(" "),[e]),s=c(()=>We(e,0)?G.Error:We(e,2592e6)?G.Warning:G.Success,[e]),d=c(()=>s===G.Success?Rt:s===G.Warning?Pt:Lt,[s]);return a(()=>{s===G.Success?l():s===G.Error&&n()},[s]),t(oe,{text:r,children:t(pe,{leftIcon:d,label:i,status:s,invertColors:!0,useSecondaryTone:!0})})},fa=p.div`
120
+ `,In=({clusterId:a,namespaceName:n,checkbox:l,isFutureApps:o,selectedCounts:i,isActive:s,onActive:r,handleSourceChange:c})=>{const d=g(),u=e=>{r(),c({clusterId:a,workloadId:{namespace:n},auto:e.auto,selected:e.all})};return t(wn,{children:t(tn,{withCarret:!0,title:n,isSelected:s,onClick:r,isPartiallyChecked:l.partial,isChecked:l.all,onCheckboxChange:e=>u({auto:e,all:e}),children:e($,{$gap:12,children:[t(Dn,{$visible:s||o,children:t(pe,{text:"Automatically instrument all workloads currently in the namespace, and all workloads that will be deployed to this namespace in the future",children:t(N,{label:"Auto",size:Me.S,value:o,onChange:e=>u({auto:e,all:e||void 0})})})}),e($,{$gap:8,children:[t(Q,{variant:Pe.Span,size:W.XXXS,color:d.v2.colors.silver[200],align:"right",children:"Selected"}),t(Ce,{label:`${i.sourced}/${i.total}`,status:s?J.Default:Le.Unknown,minWidth:"42px"})]})]})})})},Nn=({withCollapse:e,clusterId:a,clusterName:n,namespaces:l,selectedArea:o,setSelectedArea:i,handleSourceChange:s})=>{const r=c(()=>l.map(({name:e,totalWorkloads:l,selectedCount:r,isAllSourced:c,isSomeSourced:d,isFutureApps:u})=>t(In,{clusterId:a,namespaceName:e,isFutureApps:u,checkbox:{all:c,partial:d},selectedCounts:{sourced:r,total:l},isActive:o.clusterId===a&&o.namespaceName===e,onActive:()=>i({clusterId:a,clusterName:n,namespaceName:e}),handleSourceChange:s},`${a}#${e}`)),[a,n,l,o]);return e?t(rn,{title:n,list:r,noBgColor:!0}):r},Tn=({isFetching:a,formData:n,handleSourceChange:l,handleSelectAll:o,selectedArea:i,setSelectedArea:s,searchText:r,filters:d})=>{const u=c(()=>n.map(e=>{const t=[...e.namespaces].sort((e,t)=>e.name.localeCompare(t.name)).filter(e=>Ve(e,r,d)).map(e=>({name:e.name,totalWorkloads:e.workloads.length,..._e(e)}));return{clusterId:e.clusterId,clusterName:e.clusterName,visibleNamespaces:t}}),[n,r,d]),p=c(()=>{let e=!1;for(const{visibleNamespaces:t}of u)for(const{totalWorkloads:a,selectedCount:n}of t)if(e=!0,n!==a)return!1;return e},[u]),{list:m,withFilterCount:h,filteredCount:g,totalCount:b}=c(()=>{const e=u.map(({clusterId:e,clusterName:a,visibleNamespaces:n})=>n.length?t(Nn,{withCollapse:u.length>1,clusterId:e,clusterName:a,namespaces:n,selectedArea:i,setSelectedArea:s,handleSourceChange:l},e):null),a=e.filter(e=>null!==e);return{list:a,withFilterCount:a.length!==e.length,filteredCount:a.length,totalCount:e.length}},[u,i]);return{width:"60%",header:e($,{$width:"100%",$gap:12,$justifyContent:"space-between",children:[e($,{$gap:8,children:[t(Q,{size:W.XS,nowrap:!0,children:"Namespaces"}),t(pe,{text:h?Ie.FILTERED_COUNT_TOOLTIP:void 0,children:t(Ce,{label:`${h?`${g} / ${b}`:b}`,status:Le.Unknown})})]}),t(Q,{onClick:()=>o({boolean:!p}),disabled:!m.length,size:W.XS,children:(p?"Unselect":"Select")+" all"})]}),list:m.length?m:a?[t(X,{$height:"100%",children:t(H,{title:Ie.FETCHING_NAMESPACES,subTitle:Ie.FETCHING_NAMESPACES_SUBTITLE,withSpinner:!0})},"loading")]:[]}},An=({onClose:a,onBack:l,onNext:i,selectedConnectionIds:s,setSelectedConnectionIds:r,getAllClusterSnapshots:u,fetchNamespacesWithWorkloads:p,initialInputs:m,persistSources:h})=>{const b=g(),{tier:f}=P(),v=f===V.Onprem,{selectedStreamName:C}=oe(),{progress:y,resetProgress:S}=Ue(),[k,w]=o(!1),[D,I]=o(null),T=d(async()=>{try{if(w(!0),u){const e=await u();e&&I(e)}else if(p){const e=await p();e.data?.length&&I({clusters:[{clusterId:Be,clusterName:ze,namespaces:e.data.map(e=>({name:e.name,selected:e.selected,workloads:e.sources?.map(e=>({namespace:e.namespace,name:e.name,kind:e.kind,selected:e.selected}))||[]}))}]})}}catch(e){}finally{w(!1)}},[]);n(()=>{T()},[]);const[A,x]=o(""),[E,R]=o(Xe.Namespace),[O,F]=o({showOnlySelected:!1}),[L,M]=o({clusterId:"",clusterName:"",namespaceName:""}),[U,z]=o([]);n(()=>{D&&z(e=>{const t=((e,t)=>_(((e,t)=>e.clusters.filter(({clusterId:e})=>!t||t.includes(e)))(e,t)))(D,s);return t.map(t=>{const a=e?.find(e=>e.clusterId===t.clusterId),n=a??t;if(m?.[t.clusterId]){const e=m[t.clusterId],a=_(n);return e.forEach(e=>{const t=a.namespaces.find(t=>t.name===e.namespace);if(t)if(e.name&&e.kind){const a=t.workloads.find(t=>t.name===e.name&&t.kind===e.kind);a&&(a.selected=e.selected)}else t.selected=e.selected,e.selected&&t.workloads.forEach(e=>{Fe.has(e.kind)&&!v||(e.selected=!0)})}),a}return n})})},[D,s,m]);const{formDiff:B,isFormDirty:X}=c(()=>{const e=((e,t,a)=>{const n={};return e.forEach(e=>{e.namespaces.forEach(l=>{const o=t.find(t=>t.clusterId===e.clusterId)?.namespaces.find(e=>e.name===l.name),i=l.selected||!1,s=i!==o?.selected;if(s&&(n[e.clusterId]||(n[e.clusterId]=[]),n[e.clusterId].push({namespace:l.name,selected:i,currentStreamName:a}),i&&(n[e.clusterId]=n[e.clusterId].filter(e=>e.namespace!==l.name||e.namespace===l.name&&(!e.name||!e.kind)))),!s||!i){const t=((e,t,a)=>{const n=[];return t.workloads.forEach(l=>{const o=e?.workloads.find(e=>e.name===l.name&&e.kind===l.kind);l.selected!==o?.selected&&n.push({namespace:t.name,name:l.name,kind:l.kind,selected:l.selected||!1,currentStreamName:a})}),n})(o,l,a);t.length>0&&(n[e.clusterId]||(n[e.clusterId]=[]),n[e.clusterId].push(...t))}})}),n})(U,D?.clusters||[],C);return{formDiff:e,isFormDirty:Object.keys(e).length>0}},[U,D,C]),j=d(e=>!v&&Fe.has(e),[v]),G=d(({clusterId:e,workloadId:t,selected:a,auto:n})=>{z(l=>{const o=_(l),i=o.findIndex(t=>t.clusterId===e);if(-1===i)return o;const s=o[i].namespaces.findIndex(e=>e.name===t.namespace);if(-1===s)return o;if(t.kind&&t.name){const e=o[i].namespaces[s].workloads.findIndex(e=>e.name===t.name&&e.kind===t.kind);if(-1===e)return o;const n="boolean"==typeof a?a:!o[i].namespaces[s].workloads[e].selected;if(o[i].namespaces[s].workloads[e].selected=n,n){o[i].namespaces[s].workloads.filter(e=>!j(e.kind)).every(e=>e.selected)&&(o[i].namespaces[s].selected=!0)}else o[i].namespaces[s].selected=!1}else{const e="boolean"==typeof n?n:!o[i].namespaces[s].selected;o[i].namespaces[s].selected=e,e?o[i].namespaces[s].workloads.forEach(e=>{j(e.kind)||(e.selected=!0)}):"boolean"!=typeof a||a||o[i].namespaces[s].workloads.forEach(e=>{e.selected=!1})}return o})},[j]),H=d(({clusterId:e,namespaceName:t,boolean:a})=>{z(n=>{const l=_(n),o=E===Xe.Namespace?A:"",i=E===Xe.Source?A:"",s=!!o||!!i||!!O?.showOnlySelected;return l.forEach((n,r)=>{e&&n.clusterId!==e||n.namespaces.forEach(({name:e,workloads:n},c)=>{if(!t||e===t)if(s)if(t){n.forEach((e,t)=>{a&&j(e.kind)||Oe(e,i,O)&&(l[r].namespaces[c].workloads[t].selected=a)});const e=l[r].namespaces[c].workloads.filter(e=>!j(e.kind)).every(e=>e.selected);l[r].namespaces[c].selected=e}else{if(!Ve(l[r].namespaces[c],o,O))return;l[r].namespaces[c].selected=a,n.forEach((e,t)=>{a&&j(e.kind)||(l[r].namespaces[c].workloads[t].selected=a)})}else l[r].namespaces[c].selected=a,n.forEach((e,t)=>{a&&j(e.kind)||(l[r].namespaces[c].workloads[t].selected=a)})})}),l})},[E,A,O,j]);return t(Oa,{isOpen:!0,onClose:a?()=>{S(je.BulkInstrumenting),a()}:void 0,onBack:l?()=>l(B):void 0,onNext:i?()=>i(B):void 0,nextIsSkip:!X,onSave:()=>h(B),header:{icon:zt,title:Ie.ADD_SOURCE,subTitle:Ie.ADD_SOURCES_DESCRIPTION},connectionIds:s&&r?{value:s,setValue:r}:void 0,search:{value:A,onChange:e=>{x(e),E===Xe.Namespace&&M({clusterId:"",clusterName:"",namespaceName:""})},segment:{options:[{label:"Namespace",value:Xe.Namespace},{label:"Source",value:Xe.Source}],selected:E,setSelected:R}},filters:e($,{$gap:8,children:[t(Q,{size:W.XXXS,color:b.v2.colors.silver[200],nowrap:!0,children:"Show only:"}),t(N,{size:Me.S,label:"Selected",value:O.showOnlySelected,onChange:e=>F(t=>({...t,showOnlySelected:e}))})]}),isFormDirty:X,isFetching:k,progress:{title:Ie.CREATING_SOURCES,subTitle:Ie.CREATING_SOURCES_SUBTITLE,percentage:y[je.BulkInstrumenting]?.percentage||0},leftColumn:Tn({isFetching:k,formData:U,handleSourceChange:G,handleSelectAll:H,selectedArea:L,setSelectedArea:M,searchText:E===Xe.Namespace?A:"",filters:O}),rightColumn:kn({formData:U,handleSourceChange:G,handleSelectAll:H,selectedArea:{value:L},searchText:E===Xe.Source?A:"",filters:O})})},xn=({onClose:a,connections:l,selectedConnectionIds:i,setSelectedConnectionIds:s,getEffectiveConfig:r,onApply:d})=>{const u=g(),[p,m]=o(""),[h,b]=o({showOnlySelected:!1}),f=c(()=>l.filter(e=>{const t=!p||e.name.toLowerCase().includes(p.toLowerCase()),a=!h.showOnlySelected||h.showOnlySelected&&i.includes(e.id);return t&&a}),[l.length,i.length,p,h]),v=e=>{s(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[C,y]=o(!1),[S,k]=o(void 0),{formData:w,handleFormChange:D,areFormValuesEqual:I,resetFormData:T}=ie(S||{rollout:{automaticRolloutDisabled:!1}}),A=c(()=>i.length>1||void 0!==S&&!I(S,w),[i.length,S,w]);return n(()=>{1===i.length?(async e=>{if(C)return;y(!0);const t=await r(e);if(t){const e={rollout:{automaticRolloutDisabled:t.rollout?.automaticRolloutDisabled||!1}};k(e),T(e)}y(!1)})(i[0]):k(void 0)},[i.length]),t(Oa,{isOpen:!0,onClose:a,onSave:()=>d(w,i),header:{icon:Bt,title:"Cluster Configuration"},connectionIds:{value:i,setValue:s},search:{placeholder:"Search by cluster name",value:p,onChange:m},filters:e($,{$gap:8,children:[t(Q,{size:W.XXXS,color:u.v2.colors.silver[200],nowrap:!0,children:"Show only:"}),t(N,{size:Me.S,label:"Selected",value:h.showOnlySelected,onChange:e=>b(t=>({...t,showOnlySelected:e}))})]}),isFormDirty:A,isFetching:C,leftColumn:{width:"35%",header:e($,{$width:"100%",$gap:12,$justifyContent:"space-between",children:[e($,{$gap:8,children:[t(Q,{size:W.XS,children:"Clusters"}),t(Ce,{label:f.length,status:Le.Unknown})]}),e($,{$gap:8,children:[t(Q,{size:W.XXXS,color:u.v2.colors.silver[200],align:"right",children:"Selected clusters"}),t(Ce,{label:`${i.length}/${f.length}`,status:Le.Unknown})]})]}),list:f.map(e=>t(tn,{title:e.name,isChecked:i.includes(e.id),onClick:()=>v(e.id),onCheckboxChange:()=>v(e.id)},e.id))},rightColumn:{width:"65%",header:t(Q,{size:W.XS,children:"Configurations"}),list:[t(N,{label:"Automatic rollout disabled",tooltip:"Odigos automatically triggers a one-time rollout for workloads when instrumenting or uninstrumenting, ensuring that changes are applied without requiring manual intervention. When automatic rollout is disabled, Odigos will not restart workloads, and users will need to manually trigger rollouts after adding or removing sources.",value:w.rollout?.automaticRolloutDisabled||!1,onChange:e=>D("rollout.automaticRolloutDisabled",e)},"automatic-rollout-disabled")]}})},$n=({token:n,isLoading:l,isEditing:o,onEdit:i,onCancel:s,onSave:r,formData:c,handleFormChange:d,handleErrorChange:u,formErrors:p})=>{const{CopyButton:m}=Ge(),h=!o||l||!c.newToken;return He({key:"Enter",active:!h},r),e($,o?{$justifyContent:"space-between",$alignItems:"flex-start",$gap:12,children:[t(S,{type:"password",value:c.newToken,onChange:e=>{d("newToken",e.target.value),u("newToken",void 0)},width:"430px",autoFocus:!0,errorMessage:p.newToken}),t($,{$margin:l?"8px 0 0 0":"2px 0 0 0",$alignItems:"center",children:l?t(H,{title:"Saving...",withGradient:!0}):e(a,{children:[t(E,{variant:O.Secondary,size:R.S,leftIcon:_t,onClick:s,disabled:l}),t(E,{variant:O.Primary,size:R.S,leftIcon:Vt,onClick:r,disabled:h})]})})]}:{$justifyContent:"space-between",$gap:12,children:[t(Q,{size:W.XS,children:new Array(55).fill("•").join("")}),e($,{$alignItems:"center",$justifyContent:"space-between",children:[t(m,{value:n}),t(Ne,{icon:$t,onClick:i})]})]})},En=({expiresAt:e,callbackValid:a,callbackExpired:l})=>{const{formatTimeAgo:o}=We(),i=c(()=>o(e),[e]),s=c(()=>new Date(e).toDateString().split(" ").slice(1).join(" "),[e]),r=c(()=>qe(e,0)?J.Error:qe(e,2592e6)?J.Warning:J.Success,[e]),d=c(()=>r===J.Success?Vt:r===J.Warning?Xt:jt,[r]);return n(()=>{r===J.Success?a():r===J.Error&&l()},[r]),t(pe,{text:s,children:t(Ce,{leftIcon:d,label:i,status:r,invertColors:!0,useSecondaryTone:!0})})},Rn=h.div`
114
121
  display: flex;
115
122
  flex-direction: column;
116
123
  gap: 12px;
@@ -118,7 +125,7 @@ import{jsxs as e,jsx as t,Fragment as l}from"react/jsx-runtime";import{useEffect
118
125
  border-radius: 12px;
119
126
  border: 1px solid ${({theme:e,$isExpired:t})=>t?e.v2.colors.red[500]:e.v2.colors.silver[600]};
120
127
  background-color: ${({theme:e,$isExpired:t})=>t?e.v2.colors.red[1e3]:e.v2.colors.silver[800]};
121
- `,Ca=({children:e})=>{const l=h();return t(J,{size:K.XXXS,color:l.v2.colors.grey[150],children:e})},ya=({token:l,updateToken:a})=>{const[n,i]=o(!1),[r,s]=o(!1),[c,d]=o(!1),{formData:u,handleFormChange:p,formErrors:h,handleErrorChange:m,resetFormData:b}=Ce({newToken:""});return t(_e,{richTitle:{icon:Et,title:"Odigos Pro Token"},children:e(fa,{$isExpired:c,children:[e(T,{$justifyContent:"space-between",children:[e(g,{$gap:4,children:[t(Ca,{children:"Issued for"}),t(J,{size:K.XS,children:l.name||"N/A"})]}),e(g,{$gap:4,children:[t(Ca,{children:"Expiration"}),t(ba,{expiresAt:l.expiresAt,callbackValid:()=>d(!1),callbackExpired:()=>d(!0)})]}),t(g,{})]}),t(T,{children:e(g,{children:[t(Ca,{children:"Token"}),t(ga,{token:l.token,newToken:u.newToken,isLoading:r,isEditing:n,onEdit:()=>i(!0),onCancel:()=>(i(!1),s(!1),void p("newToken","")),onSave:()=>(async()=>{s(!0);const e=await a(u.newToken.trim());s(!1),e?.error?m("newToken",e.error):(i(!1),b())})(),formData:u,handleFormChange:p,handleErrorChange:m,formErrors:h})]})})]})})},va=p.div`
128
+ `,On=({children:e})=>{const a=g();return t(Q,{size:W.XXXS,color:a.v2.colors.grey[150],children:e})},Fn=({token:a,updateToken:n})=>{const[l,i]=o(!1),[s,r]=o(!1),[c,d]=o(!1),{formData:u,handleFormChange:p,formErrors:m,handleErrorChange:h,resetFormData:g}=ie({newToken:""});return t(Ke,{richTitle:{icon:Gt,title:"Odigos Pro Token"},children:e(Rn,{$isExpired:c,children:[e($,{$justifyContent:"space-between",children:[e(f,{$gap:4,children:[t(On,{children:"Issued for"}),t(Q,{size:W.XS,children:a.name||"N/A"})]}),e(f,{$gap:4,children:[t(On,{children:"Expiration"}),t(En,{expiresAt:a.expiresAt,callbackValid:()=>d(!1),callbackExpired:()=>d(!0)})]}),t(f,{})]}),t($,{children:e(f,{children:[t(On,{children:"Token"}),t($n,{token:a.token,newToken:u.newToken,isLoading:s,isEditing:l,onEdit:()=>i(!0),onCancel:()=>(i(!1),r(!1),void p("newToken","")),onSave:()=>(async()=>{r(!0);const e=await n(u.newToken.trim());r(!1),e?.error?h("newToken",e.error):(i(!1),g())})(),formData:u,handleFormChange:p,handleErrorChange:h,formErrors:m})]})})]})})},Ln=h.div`
122
129
  display: flex;
123
130
  flex-direction: column;
124
131
  align-items: center;
@@ -127,7 +134,61 @@ import{jsxs as e,jsx as t,Fragment as l}from"react/jsx-runtime";import{useEffect
127
134
  padding: 12px 24px;
128
135
  border-radius: 8px;
129
136
  background-color: ${({theme:e})=>e.v2.colors.silver[800]};
130
- `,ka=({downloadDiagnose:l})=>{const a=h(),{progress:n}=Ee(),{namespaces:i}=Ge(),[r,s]=o(null),{formData:c,handleFormChange:d,resetFormData:u}=Ce({includeProfiles:!0,includeMetrics:!0,includeSourceWorkloads:!1,sourceWorkloadNamespaces:[]});return t(_e,{richTitle:{icon:zt,title:"Diagnose"},children:r?e(va,{children:[t(H,{title:"Creating file...",subTitle:"This may take a few moments. Do not refresh the page.",withGradient:!0,withSpinner:"number"==typeof n[qe.DownloadingDiagnose]?.percentage,percentage:n[qe.DownloadingDiagnose]?.percentage,withVisual:"number"!=typeof n[qe.DownloadingDiagnose]?.percentage,visualIcon:jt,startedAt:r}),n[qe.DownloadingDiagnose]?.list?.length&&t(g,{$width:"100%",children:n[qe.DownloadingDiagnose].list.map(l=>e(T,{$gap:4,$alignItems:"center",children:[l.status===G.Success?t(Rt,{size:16}):l.status===G.Error?t(Ft,{size:16}):t(H,{withSpinnerOld:!0,scaleSpinnerOld:.7}),t(J,{size:K.XXXS,color:a.v2.colors.silver[200],children:l.label})]},l.label))})]}):e(g,{$gap:24,children:[t(J,{size:K.XXS,color:a.v2.colors.silver[200],children:"Download a tar.gz file with diagnostics from this cluster. Select which data to include before downloading, and share the file with the Odigos support team for troubleshooting."}),e(g,{$gap:16,children:[e(T,{$gap:8,children:[t(f,{label:"Profiles",value:c.includeProfiles,onChange:e=>d("includeProfiles",e),tooltip:"Note: Adds 30s to diagnose download time to collect Profiles"}),t(J,{size:K.XXXS,color:a.v2.colors.silver[200],children:"Include pprof profiles"})]}),e(T,{$gap:8,children:[t(f,{label:"Metrics",value:c.includeMetrics,onChange:e=>d("includeMetrics",e)}),t(J,{size:K.XXXS,color:a.v2.colors.silver[200],children:"Include Prometheus metrics"})]}),e(T,{$gap:8,children:[t(f,{label:"Source Workloads",value:c.includeSourceWorkloads,onChange:e=>{d("includeSourceWorkloads",e),e&&d("sourceWorkloadNamespaces",[])}}),t(J,{size:K.XXXS,color:a.v2.colors.silver[200],children:"Include workload and pod manifests for instrumented sources"})]})]}),t(Je,{alignX:Ye.Left,alignY:Ue.Bottom,items:i.map(e=>({id:e.name,label:e.name,withCheckbox:!0})),selectedIds:c.sourceWorkloadNamespaces,setSelectedIds:e=>d("sourceWorkloadNamespaces",e),withMultiSelect:!0,withSearch:!0,fullWidth:!0,buttonProps:{label:(c.sourceWorkloadNamespaces.length?"Selected":"Select")+" Namespaces",variant:O.Secondary,disabled:c.includeSourceWorkloads,leftIcon:c.sourceWorkloadNamespaces.length?()=>t(pe,{label:c.sourceWorkloadNamespaces.length,status:G.Default}):void 0}}),t(T,{$justifyContent:"flex-end",children:t(A,{label:"Download Diagnose",rightIcon:jt,variant:O.Primary,onClick:async()=>{s(Date.now()),await l(c),s(null),u()},disabled:null!==r})})]})})},wa=({fetchDescribeOdigos:e})=>{const{platformType:l,version:n,tier:i}=Ae(),[r,s]=o(null);return a(()=>{e().then(({data:e})=>s(e?.describeOdigos||null))},[]),t(_e,{richTitle:{icon:qt,title:"General Information"},children:t(Xe,{cellsPerRow:2,items:[{id:Ze(),title:"Odigos Version",label:n},{id:Ze(),title:`${l.toUpperCase()} Version`,label:r?.kubernetesVersion?.value||"-"},{id:Ze(),title:"Installation Method",label:r?.installationMethod?.value||"-"},{id:Ze(),title:"Tier",label:i}]})})},Sa=({isOpen:l,onClose:a,token:n,updateToken:o,fetchDescribeOdigos:i,downloadDiagnose:r})=>e(q,{isOpen:l,header:{icon:qt,title:"System Overview",onClose:a},children:[i&&t(wa,{fetchDescribeOdigos:i}),o&&n&&t(ya,{token:n,updateToken:o}),r&&t(ka,{downloadDiagnose:r})]});var $a,xa;!function(e){e.BulkConfig="bulk-config",e.BulkSource="bulk-source",e.BulkDestination="bulk-destination",e.BulkAction="bulk-action",e.BulkInstrumentationRule="bulk-instrumentation-rule",e.Delete="delete"}($a||($a={})),function(e){e.Id="id",e.Name="name",e.Type="type",e.Status="status",e.OdigosVersion="odigosVersion",e.ConnectedSince="connectedSince",e.LastActivity="lastActivity"}(xa||(xa={}));const Ia=[{key:xa.Name,label:"Name"},{key:xa.Type,label:"Type",textAlign:"right"},{key:xa.Status,label:"Status"},{key:xa.OdigosVersion,label:"Odigos Version"},{key:xa.ConnectedSince,label:"Connected Since"},{key:xa.LastActivity,label:"Last Activity"}],Na=(e,t)=>{const l=e.find(e=>e.key===xa.Id)?.rawValue;return t(l?.toString()||"")},Ta=({tableRowsMaxHeight:l,connections:n,getConnections:i,onClickConnection:r,deleteConnection:s,configMinSupportedVersion:d=0,getEffectiveConfig:p,applyConfigurations:m,snapshotMinSupportedVersion:g=0,getAllClusterSnapshots:b,persistSources:f,getDestinationCategories:C,getPotentialDestinations:y,createDestination:v,createAction:k,createInstrumentationRule:w})=>{const S=h(),{isVm:$}=Ae(),{formatTimeAgo:x}=Be(),[I,N]=o(!1),[T,A]=o(n||[]),V=u(async()=>{try{N(!0),A(await i()??[])}catch(e){}finally{N(!1)}},[]);a(()=>{T.length||V()},[]);const[F,R]=o(""),[M,P]=o(null),[L,E]=o([]),z=c(()=>M===$a.BulkConfig?d:M===$a.BulkSource?g:0,[M,d,g]),{supportedConnections:j,supportedConnectionIds:q}=c(()=>{const e=((e,t)=>e.filter(e=>{const l=e.status===G.Success,a=Qe(e.odigosVersion,t);return l&&a}))(T,z);return{supportedConnections:e,supportedConnectionIds:e.map(e=>e.id)}},[T.length,z]);a(()=>{if(!M||M===$a.Delete)return;const e=L.filter(e=>!q.includes(e));e.length&&E(t=>t.filter(t=>!e.includes(t)))},[M,L.length,q.length]);const H=c(()=>T.filter(e=>!F||e.name.toLowerCase().includes(F.toLowerCase())).map(e=>({cells:[{key:xa.Id,rawValue:e.id},{key:xa.Name,rawValue:e.name},{key:xa.Type,rawValue:e.type},{key:xa.Status,rawValue:e.status,component:()=>(e=>{const l=e===G.Success?"Connection live":"Connection lost",a=e===G.Success?Rt:Ft;return t(pe,{status:e,label:l,leftIcon:a})})(e.status)},{key:xa.OdigosVersion,rawValue:e.odigosVersion},{key:xa.ConnectedSince,rawValue:e.connectedAt?x(e.connectedAt):"-"},{key:xa.LastActivity,rawValue:e.lastSeenAt?x(e.lastSeenAt):"-"}],onClick:e.status!==G.Success||M?void 0:()=>r(e),isSelected:L.includes(e.id),onSelect:()=>E(t=>Array.from(new Set([...t,e.id]))),onDeselect:()=>E(t=>t.filter(t=>t!==e.id)),hideCheckbox:e.status!==G.Success||M===$a.BulkConfig&&!Qe(e.odigosVersion,d)||M===$a.BulkSource&&!Qe(e.odigosVersion,g)})),[T,L,F,M,d,g]),K=c(()=>{const e=(e,t)=>{E([e]),P(t)};return(e=>{const{connections:t,configMinSupportedVersion:l,snapshotMinSupportedVersion:a,onDelete:n,onAddSource:o,onAddDestination:i,onAddAction:r,onAddInstrumentationRule:s,onEditConfiguration:c}=e;return({cells:e})=>{if(!(e=>e.find(e=>e.key===xa.Status)?.rawValue===G.Success)(e))return[{id:Ze(),label:"Delete Connection",rightIcon:Ht,onClick:()=>Na(e,n)}];const d=Na(e,e=>{const a=t.find(t=>t.id===e);return!!a&&Qe(a.odigosVersion,l)}),u=Na(e,e=>{const l=t.find(t=>t.id===e);return!!l&&Qe(l.odigosVersion,a)}),p=[];return o&&p.push({id:Ze(),tooltip:u?ye.ADD_SOURCE:`To use this feature, please upgrade to Odigos v${a} or later.`,rightIcon:Ot,disabled:!u,onClick:()=>Na(e,o)}),i&&p.push({id:Ze(),tooltip:ye.ADD_DESTINATION,rightIcon:Nt,onClick:()=>Na(e,i)}),r&&p.push({id:Ze(),tooltip:ye.ADD_ACTION,rightIcon:It,onClick:()=>Na(e,r)}),s&&p.push({id:Ze(),tooltip:ye.ADD_INSTRUMENTATION_RULE,rightIcon:Dt,onClick:()=>Na(e,s)}),c&&p.push({id:Ze(),tooltip:d?"Edit Configuration":`To use this feature, please upgrade to Odigos v${l} or later.`,rightIcon:Vt,disabled:!d,onClick:()=>Na(e,c)}),p}})({connections:T,configMinSupportedVersion:d,snapshotMinSupportedVersion:g,onDelete:t=>e(t,$a.Delete),onAddSource:!$&&b&&f?t=>e(t,$a.BulkSource):void 0,onAddDestination:!$&&C&&y&&v?t=>e(t,$a.BulkDestination):void 0,onAddAction:!$&&k?t=>e(t,$a.BulkAction):void 0,onAddInstrumentationRule:!$&&w?t=>e(t,$a.BulkInstrumentationRule):void 0,onEditConfiguration:!$&&p&&m?t=>e(t,$a.BulkConfig):void 0})},[$,T,d,p,m,g,b,f,C,y,v,k,w]),B=c(()=>(e=>{const{onCancel:t,onAddSource:l,onAddDestination:a,onAddAction:n,onAddInstrumentationRule:o,onManageConfigurations:i}=e,r=[];l&&r.push({id:Ze(),type:et.Button,buttonProps:{variant:O.Primary,size:D.S,label:"Add Sources",rightIcon:Ot,onClick:l}});const s=[a?{id:$a.BulkDestination,label:ye.ADD_DESTINATION,icon:Nt}:null,n?{id:$a.BulkAction,label:ye.ADD_ACTION,icon:It}:null,o?{id:$a.BulkInstrumentationRule,label:ye.ADD_INSTRUMENTATION_RULE,icon:Dt}:null,i?{id:$a.BulkConfig,label:"Manage Configurations",icon:Vt}:null];return s.some(Boolean)&&r.push({id:Ze(),type:et.ButtonDropData,buttonProps:{variant:O.Secondary,size:D.S,label:"Bulk Operations",onClick:e=>{e===$a.BulkSource?l?.():e===$a.BulkDestination?a?.():e===$a.BulkAction?n?.():e===$a.BulkInstrumentationRule?o?.():e===$a.BulkConfig&&i?.()}},dropDataProps:{alignX:Ye.Left,items:s}}),r.push({id:Ze(),type:et.Button,buttonProps:{variant:O.Text,size:D.S,label:tt.CANCEL,onClick:t}}),r})({onCancel:()=>E([]),onAddSource:!$&&b&&f?()=>P($a.BulkSource):void 0,onAddDestination:!$&&C&&y&&v?()=>P($a.BulkDestination):void 0,onAddAction:!$&&k?()=>P($a.BulkAction):void 0,onAddInstrumentationRule:!$&&w?()=>P($a.BulkInstrumentationRule):void 0,onManageConfigurations:!$&&p&&m?()=>P($a.BulkConfig):void 0}),[$,p,m,b,f,C,y,v,k,w]);return t(lt,{children:e(_e,{richTitle:{icon:Bt,title:ye.CONNECTIONS,badge:{label:T.length.toString(),status:Ve.Unknown}},search:{placeholder:"Search by cluster name",value:F,onChange:e=>R(e),width:"300px"},actions:[{id:Ze(),type:et.Button,buttonProps:{variant:O.Secondary,size:D.S,leftIcon:Kt,onClick:V,disabled:I}}],children:[t(at,{variant:nt.Pretty,maxHeight:l,headerBackgroundColor:S.v2.colors.silver[1e3],isLoading:I,withCheckboxes:!0,columns:Ia,rows:H,rowActionsPushRightPosition:M?`calc(${yl} - 24px)`:void 0,getRowActions:K}),M===$a.BulkConfig&&p&&m&&t(ma,{onClose:()=>P(null),connections:j,selectedConnectionIds:L,setSelectedConnectionIds:E,getEffectiveConfig:p,onApply:m}),M===$a.BulkSource&&b&&f&&t(ha,{onClose:()=>P(null),selectedConnectionIds:L,setSelectedConnectionIds:E,getAllClusterSnapshots:b,persistSources:async e=>await(f?.(e))}),M===$a.BulkDestination&&C&&y&&v&&t(ta,{onClose:()=>P(null),selectedConnectionIds:L,setSelectedConnectionIds:E,getDestinationCategories:C,getPotentialDestinations:y,createDestination:e=>v(e,L)}),M===$a.BulkAction&&k&&t(Kl,{onClose:()=>P(null),selectedConnectionIds:L,setSelectedConnectionIds:E,createAction:e=>k(e,L)}),M===$a.BulkInstrumentationRule&&w&&t(aa,{onClose:()=>P(null),selectedConnectionIds:L,setSelectedConnectionIds:E,createInstrumentationRule:e=>w(e,L)}),t(ul,{target:"connection",isOpen:M===$a.Delete,onClose:()=>{E([]),P(null)},onApprove:async()=>{const e=L[0];e&&(await s(e),await V())}}),t(ot,{isOpen:!!L.length&&!M,richTitle:{icon:ft,title:"Selected Clusters",badge:{label:L.length}},actions:B})]})})},Aa=p.div`
137
+ `,Mn=({downloadDiagnose:a})=>{const n=g(),{progress:l}=Ue(),{namespaces:i}=Ye(),[s,r]=o(null),{formData:c,handleFormChange:d,resetFormData:u}=ie({includeProfiles:!0,includeMetrics:!0,includeSourceWorkloads:!1,sourceWorkloadNamespaces:[]});return t(Ke,{richTitle:{icon:Ht,title:"Diagnose"},children:s?e(Ln,{children:[t(H,{title:"Creating file...",subTitle:"This may take a few moments. Do not refresh the page.",withGradient:!0,withSpinner:"number"==typeof l[je.DownloadingDiagnose]?.percentage,percentage:l[je.DownloadingDiagnose]?.percentage,withVisual:"number"!=typeof l[je.DownloadingDiagnose]?.percentage,visualIcon:Wt,startedAt:s}),l[je.DownloadingDiagnose]?.list?.length&&t(f,{$width:"100%",children:l[je.DownloadingDiagnose].list.map(a=>e($,{$gap:4,$alignItems:"center",children:[a.status===J.Success?t(Vt,{size:16}):a.status===J.Error?t(_t,{size:16}):t(H,{withSpinnerOld:!0,scaleSpinnerOld:.7}),t(Q,{size:W.XXXS,color:n.v2.colors.silver[200],children:a.label})]},a.label))})]}):e(f,{$gap:24,children:[t(Q,{size:W.XXS,color:n.v2.colors.silver[200],children:"Download a tar.gz file with diagnostics from this cluster. Select which data to include before downloading, and share the file with the Odigos support team for troubleshooting."}),e(f,{$gap:16,children:[e($,{$gap:8,children:[t(C,{label:"Profiles",value:c.includeProfiles,onChange:e=>d("includeProfiles",e),tooltip:"Note: Adds 30s to diagnose download time to collect Profiles"}),t(Q,{size:W.XXXS,color:n.v2.colors.silver[200],children:"Include pprof profiles"})]}),e($,{$gap:8,children:[t(C,{label:"Metrics",value:c.includeMetrics,onChange:e=>d("includeMetrics",e)}),t(Q,{size:W.XXXS,color:n.v2.colors.silver[200],children:"Include Prometheus metrics"})]}),e($,{$gap:8,children:[t(C,{label:"Source Workloads",value:c.includeSourceWorkloads,onChange:e=>{d("includeSourceWorkloads",e),e&&d("sourceWorkloadNamespaces",[])}}),t(Q,{size:W.XXXS,color:n.v2.colors.silver[200],children:"Include workload and pod manifests for instrumented sources"})]})]}),t(Je,{alignX:Ze.Left,alignY:Qe.Bottom,items:i.map(e=>({id:e.name,label:e.name,withCheckbox:!0})),selectedIds:c.sourceWorkloadNamespaces,setSelectedIds:e=>d("sourceWorkloadNamespaces",e),withMultiSelect:!0,withSearch:!0,fullWidth:!0,buttonProps:{label:(c.sourceWorkloadNamespaces.length?"Selected":"Select")+" Namespaces",variant:O.Secondary,disabled:c.includeSourceWorkloads,leftIcon:c.sourceWorkloadNamespaces.length?()=>t(Ce,{label:c.sourceWorkloadNamespaces.length,status:J.Default}):void 0}}),t($,{$justifyContent:"flex-end",children:t(E,{label:"Download Diagnose",rightIcon:Wt,variant:O.Primary,onClick:async()=>{r(Date.now()),await a(c),r(null),u()},disabled:null!==s})})]})})},Pn=({fetchDescribeOdigos:e})=>{const{platformType:a,version:l,tier:i}=P(),[s,r]=o(null);return n(()=>{e().then(({data:e})=>r(e?.describeOdigos||null))},[]),t(Ke,{richTitle:{icon:qt,title:"General Information"},children:t(et,{cellsPerRow:2,items:[{id:tt(),title:"Odigos Version",label:l},{id:tt(),title:`${a.toUpperCase()} Version`,label:s?.kubernetesVersion?.value||"-"},{id:tt(),title:"Installation Method",label:s?.installationMethod?.value||"-"},{id:tt(),title:"Tier",label:i}]})})},Vn=({isOpen:a,onClose:n,token:l,updateToken:o,fetchDescribeOdigos:i,downloadDiagnose:s})=>e(G,{isOpen:a,header:{icon:qt,title:"System Overview",onClose:n},children:[i&&t(Pn,{fetchDescribeOdigos:i}),o&&l&&t(Fn,{token:l,updateToken:o}),s&&t(Mn,{downloadDiagnose:s})]});var _n,Un;!function(e){e.BulkConfig="bulk-config",e.BulkSource="bulk-source",e.BulkDestination="bulk-destination",e.BulkAction="bulk-action",e.BulkInstrumentationRule="bulk-instrumentation-rule",e.Delete="delete"}(_n||(_n={})),function(e){e.Id="id",e.Name="name",e.Type="type",e.Status="status",e.OdigosVersion="odigosVersion",e.ConnectedSince="connectedSince",e.LastActivity="lastActivity"}(Un||(Un={}));const zn=[{key:Un.Name,label:"Name"},{key:Un.Type,label:"Type",textAlign:"right"},{key:Un.Status,label:"Status"},{key:Un.OdigosVersion,label:"Odigos Version"},{key:Un.ConnectedSince,label:"Connected Since"},{key:Un.LastActivity,label:"Last Activity"}],Bn=(e,t)=>{const a=e.find(e=>e.key===Un.Id)?.rawValue;return t(a?.toString()||"")},Xn=e=>{const{connections:t,configMinSupportedVersion:a,snapshotMinSupportedVersion:n,onDelete:l,onAddSource:o,onAddDestination:i,onAddAction:s,onAddInstrumentationRule:r,onEditConfiguration:c}=e;return({cells:e})=>{if(!(e=>e.find(e=>e.key===Un.Status)?.rawValue===J.Success)(e))return[{id:tt(),label:"Delete Connection",rightIcon:xt,onClick:()=>Bn(e,l)}];const d=Bn(e,e=>{const n=t.find(t=>t.id===e);return!!n&&at(n.odigosVersion,a)}),u=Bn(e,e=>{const a=t.find(t=>t.id===e);return!!a&&at(a.odigosVersion,n)}),p=[];return o&&p.push({id:tt(),tooltip:u?Ie.ADD_SOURCE:`To use this feature, please upgrade to Odigos v${n} or later.`,rightIcon:zt,disabled:!u,onClick:()=>Bn(e,o)}),i&&p.push({id:tt(),tooltip:Ie.ADD_DESTINATION,rightIcon:Lt,onClick:()=>Bn(e,i)}),s&&p.push({id:tt(),tooltip:Ie.ADD_ACTION,rightIcon:Ft,onClick:()=>Bn(e,s)}),r&&p.push({id:tt(),tooltip:Ie.ADD_INSTRUMENTATION_RULE,rightIcon:Ut,onClick:()=>Bn(e,r)}),c&&p.push({id:tt(),tooltip:d?"Edit Configuration":`To use this feature, please upgrade to Odigos v${a} or later.`,rightIcon:Bt,disabled:!d,onClick:()=>Bn(e,c)}),p}},jn=({tableRowsMaxHeight:a,connections:l,getConnections:i,onClickConnection:s,deleteConnection:r,configMinSupportedVersion:u=0,getEffectiveConfig:p,applyConfigurations:m,snapshotMinSupportedVersion:h=0,getAllClusterSnapshots:b,persistSources:f,getDestinationCategories:v,getPotentialDestinations:C,testConnection:y,createDestination:S,createAction:k,createInstrumentationRule:w})=>{const D=g(),{isVm:I}=P(),{formatTimeAgo:N}=We(),[T,A]=o(!1),[x,$]=o(l||[]),E=d(async()=>{try{A(!0),$(await i()??[])}catch(e){}finally{A(!1)}},[]);n(()=>{x.length||E()},[]);const[F,L]=o(""),[M,V]=o(null),[_,U]=o([]),z=c(()=>M===_n.BulkConfig?u:M===_n.BulkSource?h:0,[M,u,h]),{supportedConnections:B,supportedConnectionIds:X}=c(()=>{const e=((e,t)=>e.filter(e=>{const a=e.status===J.Success,n=at(e.odigosVersion,t);return a&&n}))(x,z);return{supportedConnections:e,supportedConnectionIds:e.map(e=>e.id)}},[x.length,z]);n(()=>{if(!M||M===_n.Delete)return;const e=_.filter(e=>!X.includes(e));e.length&&U(t=>t.filter(t=>!e.includes(t)))},[M,_.length,X.length]);const j=c(()=>x.filter(e=>!F||e.name.toLowerCase().includes(F.toLowerCase())).map(e=>({cells:[{key:Un.Id,rawValue:e.id},{key:Un.Name,rawValue:e.name},{key:Un.Type,rawValue:e.type},{key:Un.Status,rawValue:e.status,component:()=>(e=>{const a=e===J.Success?"Connection live":"Connection lost",n=e===J.Success?Vt:_t;return t(Ce,{status:e,label:a,leftIcon:n})})(e.status)},{key:Un.OdigosVersion,rawValue:e.odigosVersion},{key:Un.ConnectedSince,rawValue:e.connectedAt?N(e.connectedAt):"-"},{key:Un.LastActivity,rawValue:e.lastSeenAt?N(e.lastSeenAt):"-"}],onClick:e.status!==J.Success||M?void 0:()=>s(e),isSelected:_.includes(e.id),onSelect:()=>U(t=>Array.from(new Set([...t,e.id]))),onDeselect:()=>U(t=>t.filter(t=>t!==e.id)),hideCheckbox:e.status!==J.Success||M===_n.BulkConfig&&!at(e.odigosVersion,u)||M===_n.BulkSource&&!at(e.odigosVersion,h)})),[x,_,F,M,u,h]),G=c(()=>{const e=(e,t)=>{U([e]),V(t)};return Xn({connections:x,configMinSupportedVersion:u,snapshotMinSupportedVersion:h,onDelete:t=>e(t,_n.Delete),onAddSource:!I&&b&&f?t=>e(t,_n.BulkSource):void 0,onAddDestination:!I&&v&&C&&S?t=>e(t,_n.BulkDestination):void 0,onAddAction:!I&&k?t=>e(t,_n.BulkAction):void 0,onAddInstrumentationRule:!I&&w?t=>e(t,_n.BulkInstrumentationRule):void 0,onEditConfiguration:!I&&p&&m?t=>e(t,_n.BulkConfig):void 0})},[I,x,u,p,m,h,b,f,v,C,S,k,w]),H=c(()=>(e=>{const{onCancel:t,onAddSource:a,onAddDestination:n,onAddAction:l,onAddInstrumentationRule:o,onManageConfigurations:i}=e,s=[];a&&s.push({id:tt(),type:nt.Button,buttonProps:{variant:O.Primary,size:R.S,label:"Add Sources",rightIcon:zt,onClick:a}});const r=[n?{id:_n.BulkDestination,label:Ie.ADD_DESTINATION,icon:Lt}:null,l?{id:_n.BulkAction,label:Ie.ADD_ACTION,icon:Ft}:null,o?{id:_n.BulkInstrumentationRule,label:Ie.ADD_INSTRUMENTATION_RULE,icon:Ut}:null,i?{id:_n.BulkConfig,label:"Manage Configurations",icon:Bt}:null];return r.some(Boolean)&&s.push({id:tt(),type:nt.ButtonDropData,buttonProps:{variant:O.Secondary,size:R.S,label:"Bulk Operations",onClick:e=>{e===_n.BulkSource?a?.():e===_n.BulkDestination?n?.():e===_n.BulkAction?l?.():e===_n.BulkInstrumentationRule?o?.():e===_n.BulkConfig&&i?.()}},dropDataProps:{alignX:Ze.Left,items:r}}),s.push({id:tt(),type:nt.Button,buttonProps:{variant:O.Text,size:R.S,label:lt.CANCEL,onClick:t}}),s})({onCancel:()=>U([]),onAddSource:!I&&b&&f?()=>V(_n.BulkSource):void 0,onAddDestination:!I&&v&&C&&S?()=>V(_n.BulkDestination):void 0,onAddAction:!I&&k?()=>V(_n.BulkAction):void 0,onAddInstrumentationRule:!I&&w?()=>V(_n.BulkInstrumentationRule):void 0,onManageConfigurations:!I&&p&&m?()=>V(_n.BulkConfig):void 0}),[I,p,m,b,f,v,C,S,k,w]);return t(ot,{children:e(Ke,{richTitle:{icon:Yt,title:Ie.CONNECTIONS,badge:{label:x.length.toString(),status:Le.Unknown}},search:{placeholder:"Search by cluster name",value:F,onChange:e=>L(e),width:"300px"},actions:[{id:tt(),type:nt.Button,buttonProps:{variant:O.Secondary,size:R.S,leftIcon:Kt,onClick:E,disabled:T}}],children:[t(it,{variant:st.Pretty,maxHeight:a,headerBackgroundColor:D.v2.colors.silver[1e3],isLoading:T,withCheckboxes:!0,columns:zn,rows:j,rowActionsPushRightPosition:M?`calc(${Na} - 24px)`:void 0,getRowActions:G}),M===_n.BulkConfig&&p&&m&&t(xn,{onClose:()=>V(null),connections:B,selectedConnectionIds:_,setSelectedConnectionIds:U,getEffectiveConfig:p,onApply:m}),M===_n.BulkSource&&b&&f&&t(An,{onClose:()=>V(null),selectedConnectionIds:_,setSelectedConnectionIds:U,getAllClusterSnapshots:b,persistSources:async e=>await(f?.(e))}),M===_n.BulkDestination&&v&&C&&y&&S&&t(_a,{children:t(gn,{onClose:()=>V(null),selectedConnectionIds:_,setSelectedConnectionIds:U,getDestinationCategories:v,getPotentialDestinations:C,testConnection:e=>y(e,_),createDestination:e=>S(e,_)})}),M===_n.BulkAction&&k&&t(nn,{onClose:()=>V(null),selectedConnectionIds:_,setSelectedConnectionIds:U,createAction:e=>k(e,_)}),M===_n.BulkInstrumentationRule&&w&&t(vn,{onClose:()=>V(null),selectedConnectionIds:_,setSelectedConnectionIds:U,createInstrumentationRule:e=>w(e,_)}),t(fa,{target:"connection",isOpen:M===_n.Delete,onClose:()=>{U([]),V(null)},onApprove:async()=>{const e=_[0];e&&(await r(e),await E())}}),t(rt,{isOpen:!!_.length&&!M,richTitle:{icon:wt,title:"Selected Clusters",badge:{label:_.length}},actions:H})]})})},Gn=h.div`
138
+ display: flex;
139
+ align-items: center;
140
+ justify-content: space-between;
141
+ gap: 8px;
142
+ padding: 16px;
143
+ width: calc(100% - 32px);
144
+ border-radius: 16px;
145
+ background-color: ${({theme:e})=>e.v2.colors.silver[800]};
146
+ `,Hn=h.div`
147
+ display: flex;
148
+ align-items: center;
149
+ justify-content: center;
150
+ padding: 8px;
151
+ border-radius: 8px;
152
+ background-color: ${({theme:e})=>e.v2.colors.white[500]+ke["004"]};
153
+ `,Wn=({setStep:a,onSave:n,sourcesPayload:l,destinationsPayload:o})=>{const i=g(),s=()=>a(2),r=()=>a(3),d=c(()=>Object.values(l||{}).flatMap((a,n)=>a.map((a,l)=>{if(!a.selected)return null;const o=a.kind||Xe.Namespace,s=o===Xe.Namespace?a.namespace:`${a.namespace} → ${a.name}`;return e(Gn,{children:[t(Q,{nowrap:!0,children:s}),t(Ce,{label:o,status:J.Info,backgroundColor:i.v2.colors.blue[900]})]},`source-${n}-${l}`)})).filter(Boolean),[l]),u=c(()=>o?.map((a,n)=>{const l=$e(a.option.type).icon;return e(Gn,{children:[e($,{$gap:8,children:[l&&t(Hn,{children:t(l,{size:24})}),t(Q,{nowrap:!0,children:a.formData.name||a.option.displayName})]}),void 0!==a.testResult&&t(Ce,{status:a.testResult.succeeded?J.Success:J.Error,leftIcon:a.testResult.succeeded?Vt:_t})]},`destination-${n}`)})||[],[o]);return t(Oa,{isOpen:!0,onBack:()=>a(3),onSave:n,header:{icon:Dt,title:Ie.SUMMARY,subTitle:Ie.REVIEW_SETUP},leftColumn:{width:"50%",header:e($,{$width:"100%",$gap:12,$justifyContent:"space-between",children:[e($,{$gap:8,children:[t(zt,{size:24}),t(Q,{nowrap:!0,children:Ie.SELECTED_SOURCES}),t(Ce,{label:d.length})]}),t(E,{leftIcon:$t,variant:O.Secondary,size:R.S,onClick:s})]}),list:d.length?d:[t(X,{$height:"100%",children:t(j,{icon:zt,title:Ie.NO_SOURCES_SELECTED,subTitle:Ie.ADD_SOURCE_PROMPT,button:{leftIcon:yt,label:Ie.ADD_SOURCE,onClick:s}})},"no-sources-data")]},rightColumn:{width:"50%",header:e($,{$width:"100%",$gap:12,$justifyContent:"space-between",children:[e($,{$gap:8,children:[t(Lt,{size:24}),t(Q,{nowrap:!0,children:Ie.SELECTED_DESTINATIONS}),t(Ce,{label:u.length})]}),t(E,{leftIcon:$t,variant:O.Secondary,size:R.S,onClick:r})]}),list:u.length?u:[t(X,{$height:"100%",children:t(j,{icon:Lt,title:Ie.NO_DESTINATIONS_SELECTED,subTitle:Ie.ADD_DESTINATION_PROMPT,button:{leftIcon:yt,label:Ie.ADD_DESTINATIONS,onClick:r}})},"no-destinations-data")]}})},qn=h.div`
154
+ position: relative;
155
+ overflow: hidden;
156
+ width: calc(100vw - ${({$paddingXAxis:e})=>e});
157
+ height: calc(100vh - ${({$paddingYAxis:e})=>e});
158
+ box-sizing: border-box;
159
+ `,Kn=h.svg`
160
+ position: absolute;
161
+ top: 50%;
162
+ left: 50%;
163
+ transform: translate(-50%, -50%);
164
+ z-index: -1;
165
+ `,Yn=[{opacity:"0.1"},{offset:"0.31",opacity:"0.11"},{offset:"0.45",opacity:"0.14"},{offset:"0.56",opacity:"0.19"},{offset:"0.65",opacity:"0.26"},{offset:"0.73",opacity:"0.35"},{offset:"0.8",opacity:"0.46"},{offset:"0.86",opacity:"0.6"},{offset:"0.92",opacity:"0.76"},{offset:"0.98",opacity:"0.93"},{offset:"1"}],Jn=[{width:1440,height:900,pathOpacity:.1,path:"M719.992 1169.99C322.351 1169.99 0 847.64 0 450C0 52.3591 322.351 -269.992 719.992 -269.992C1117.63 -269.992 1439.98 52.3591 1439.98 450C1439.98 847.64 1117.63 1169.99 719.992 1169.99Z",gradientTransform:"translate(814.309 444.011) rotate(180) scale(718.904)",stops:[{opacity:"0.1"},{offset:"0.41",opacity:"0.11"},{offset:"0.56",opacity:"0.13"},{offset:"0.67",opacity:"0.18"},{offset:"0.75",opacity:"0.25"},{offset:"0.83",opacity:"0.33"},{offset:"0.89",opacity:"0.44"},{offset:"0.95",opacity:"0.56"},{offset:"1",opacity:"0.7"}]},{width:1343,height:900,pathOpacity:.3,path:"M671.344 1121.34C300.571 1121.34 0 820.773 0 450C0 79.2264 300.571 -221.345 671.344 -221.345C1042.12 -221.345 1342.69 79.2264 1342.69 450C1342.69 820.773 1042.12 1121.34 671.344 1121.34Z",gradientTransform:"translate(644.026 441.551) rotate(180) scale(581.31)",stops:Yn},{width:1163,height:900,pathOpacity:.5,path:"M581.31 1031.31C260.261 1031.31 0 771.048 0 449.999C0 128.951 260.261 -131.311 581.31 -131.311C902.358 -131.311 1162.62 128.951 1162.62 449.999C1162.62 771.048 902.358 1031.31 581.31 1031.31Z",gradientTransform:"translate(644.026 441.551) rotate(180) scale(581.31)",stops:Yn},{width:798,height:798,pathOpacity:.7,path:"M398.581 797.162C178.451 797.162 0 618.711 0 398.581C0 178.451 178.451 0 398.581 0C618.711 0 797.162 178.451 797.162 398.581C797.162 618.711 618.711 797.162 398.581 797.162Z",gradientTransform:"translate(445.003 392.441) rotate(180) scale(398.23)",stops:Yn}],Qn=({paddingXAxis:a="0px",paddingYAxis:l="0px",children:i})=>{const[s,r]=o(window.innerWidth),d=c(()=>s/Jn[0].width,[s]);return n(()=>{const e=()=>r(window.innerWidth);return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]),e(qn,{$paddingXAxis:a,$paddingYAxis:l,children:[Jn.map(({width:a,height:n,pathOpacity:l,path:o,gradientTransform:i,stops:s},r)=>{const c=`purple-ring-${r}`;return e(Kn,{width:a*d,height:"100%",viewBox:`0 0 ${a} ${n}`,fill:"none",children:[t("path",{opacity:l,d:o,fill:`url(#${c})`}),t("defs",{children:t("radialGradient",{id:c,cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:i,children:s.map(({offset:e,opacity:a},n)=>t("stop",{offset:e,stopColor:"#7C3BFF",stopOpacity:a},n))})})]},c)}),i]})},Zn=h.div`
166
+ display: flex;
167
+ flex-direction: column;
168
+ align-items: center;
169
+ justify-content: center;
170
+ gap: 32px;
171
+ padding: 32px;
172
+ max-width: 700px;
173
+ width: 50vw;
174
+ border-radius: 16px;
175
+ background: ${({theme:e})=>e.v2.colors.silver[900]};
176
+ `,el=h.div`
177
+ display: flex;
178
+ flex-direction: column;
179
+ align-items: center;
180
+ justify-content: center;
181
+ gap: 24px;
182
+ max-width: 500px;
183
+ & * {
184
+ text-align: center;
185
+ }
186
+ `,tl=({onStart:a})=>t(G,{width:"75vw",isOpen:!0,hideOverlay:!0,children:t(X,{$height:"100%",children:e(Zn,{children:[e(el,{children:[t(Q,{size:W.L,weight:500,children:Ie.GET_STARTED_WITH}),t(va,{size:260}),t(Q,{size:W.S,weight:400,children:Ie.GET_STARTED_DESCRIPTION})]}),t(E,{label:lt.GET_STARTED,rightIcon:Nt,size:R.L,onClick:a})]})})}),al=[{step:1,label:Ie.INSTALLATION,forceDoneBadge:!0},{step:2,label:Ie.SOURCES_SETUP},{step:3,label:Ie.DESTINATIONS_SETUP},{step:4,label:Ie.SUMMARY}],nl=h.div`
187
+ display: flex;
188
+ flex-direction: column;
189
+ gap: 32px;
190
+ padding: 64px;
191
+ `,ll=({pagePaddingXAxis:a,pagePaddingYAxis:n,fetchNamespacesWithWorkloads:l,persistSources:i,getDestinationCategories:s,getPotentialDestinations:r,testConnection:c,createDestination:d,onDone:u})=>{const[p,m]=o(1),[h,g]=o(!1),[b,f]=o(null),[v,C]=o(null),y=()=>m(e=>e+1),S=()=>m(e=>e-1);return e(Qn,{paddingXAxis:a,paddingYAxis:n,children:[e(nl,{children:[t(va,{}),t(ct,{currentStep:p,data:al,gap:32})]}),e(_a,{children:[1===p&&t(tl,{onStart:y}),2===p&&t(An,{onBack:e=>{f(e),S()},onNext:e=>{f(e),y()},fetchNamespacesWithWorkloads:l,initialInputs:b,persistSources:i}),3===p&&t(gn,{onBack:e=>{C(e),S()},onNext:e=>{C(e),y()},getDestinationCategories:s,getPotentialDestinations:r,initialInputs:v,testConnection:c,createDestination:d}),4===p&&t(Wn,{setStep:m,onSave:async()=>{if(!h){g(!0);try{const e=[];b&&e.push(i(b)),v&&e.push(...v.map(e=>d(e.formData)));const t=await Promise.allSettled(e),a=[];for(const e of t)"rejected"===e.status?a.push(e.reason?.message||String(e.reason)):e.value?.error&&a.push(e.value.error);if(a.length)return{error:a.join("\n")};u()}catch(e){return g(!1),{error:e instanceof Error?e.message:String(e)}}}},sourcesPayload:b,destinationsPayload:v})]})]})},ol=h.div`
131
192
  display: flex;
132
193
  align-items: center;
133
194
  justify-content: space-between;
@@ -139,10 +200,10 @@ import{jsxs as e,jsx as t,Fragment as l}from"react/jsx-runtime";import{useEffect
139
200
  &:hover {
140
201
  background: ${({theme:e})=>e.v2.colors.silver[700]};
141
202
  }
142
- `,Da=p.div`
143
- animation-name: ${ct.in};
144
- `,Oa=({pod:n,getExtendedPodInfo:i,onClose:r})=>{const{formatTimeAgo:s}=Be(),[d,u]=o(null),[p,h]=o(!1);a(()=>{n?i(n.namespace,n.name).then(e=>u(e??null)):(u(null),h(!1))},[n]);const m=c(()=>[{id:Ze(),title:"Node",label:d?.node??"-",withCopy:!0},{id:Ze(),title:"Status",badge:{status:it(d?.status),label:d?.status??"-"}}],[d]),b=c(()=>d?.containers?.map(e=>({id:Ze(),items:[{id:Ze(),title:"Container",label:e.name??"-"},{id:Ze(),title:"Status",label:e.startedAt?`${e.status} (since ${s(e.startedAt)})`:e.status},{id:Ze(),title:"Ready",badge:{status:e.ready?G.Success:G.Error,leftIcon:e.ready?ft:wt,label:e.ready?"True":"False",invertColors:!0}},{id:Ze(),title:"Started",badge:{status:e.started?G.Success:G.Error,leftIcon:e.started?ft:wt,label:e.started?"True":"False",invertColors:!0}},{id:Ze(),title:"Image Version",label:e.image?.split(":")?.[1]??"-"},{id:Ze(),title:"Image Repository",label:e.image?.split(":")?.[0]??"-"},{id:Ze(),title:"Restarts",label:e.restarts.toString()},{id:Ze(),title:"State Reason",label:e.stateReason??"-"},{id:Ze(),title:"Resource Requests",label:`CPU ${e.resources.requests.cpu} • Memory ${e.resources.requests.memory}`},{id:Ze(),title:"Resource Limits",label:`CPU ${e.resources.limits.cpu} • Memory ${e.resources.limits.memory}`}]}))||[],[d]);return e(q,{isOpen:!!n,header:{icon:Wt,title:"Pod Information",onClose:r},children:[d?null:t(z,{children:t(rt,{})}),d?e(l,{children:[t(_e,{richTitle:{icon:Wt,title:d.name,withCopy:!0},children:e(g,{$gap:24,children:[t(Xe,{cellsPerRow:2,items:m}),b.length>0&&e(g,{$gap:12,children:[e(Aa,{onClick:()=>h(e=>!e),children:[t(J,{children:"Containers Overview"}),t(ke,{icon:p?Tt:At})]}),p&&b.map(({id:e,items:l})=>t(Da,{children:t(Xe,{cellsPerRow:2,items:l})},e))]})]})}),t(_e,{richTitle:{icon:qt,title:"Kubectl Commands"},children:e(g,{$gap:12,children:[t(st,{value:`kubectl get pod ${d.name} -n ${d.namespace} -o yaml`}),t(st,{value:`kubectl describe pod ${d.name} -n ${d.namespace}`}),t(st,{value:`kubectl logs ${d.name} -n ${d.namespace}`})]})}),t(Xt,{yaml:d.manifestYAML,defaultOpen:!0})]}):null]})};var Va;!function(e){e.PodName="podName",e.Status="status",e.Restarts="restarts",e.NodeName="nodeName",e.SpanDropDrate="spanDropDrate",e.Age="age",e.DockerImage="dockerImage"}(Va||(Va={}));const Fa=[{key:Va.PodName,label:"Pod Name"},{key:Va.Status,label:"Status"},{key:Va.Restarts,label:"Restarts",textAlign:"right"},{key:Va.NodeName,label:"Node Name"},{key:Va.Age,label:"Age",textAlign:"right"},{key:Va.DockerImage,label:"Docker Image",textAlign:"right"}],Ra=({isLoading:l,tableRowsMaxHeight:a,pods:n,getExtendedPodInfo:i})=>{const r=h(),{formatTimeAgo:s}=Be(),[d,u]=o(null),p=c(()=>n.map(l=>({onClick:()=>u(l),cells:[{key:Va.PodName,rawValue:l.name},{key:Va.Status,rawValue:l.status,component:()=>{return e=l.status,t(pe,{status:it(e),label:e});var e}},{key:Va.Restarts,rawValue:l.restartsCount.toString()},{key:Va.NodeName,rawValue:l.nodeName},{key:Va.SpanDropDrate,rawValue:0,component:()=>{const{collectorMetrics:a}=l;if(!a)return t(J,{children:"-"});const n=(a?.metricsAcceptedRps??0)+(a?.metricsDroppedRps??0),o=n>0?Math.round((a?.metricsDroppedRps??0)/n*100):0,i=o>0?G.Error:G.Success,r=(a?.exporterSuccessRps??0)+(a?.exporterFailedRps??0),s=r>0?Math.round((a?.exporterFailedRps??0)/r*100):0,c=s>0?G.Error:G.Success;return e(T,{$gap:4,children:[t(oe,{text:`Accepted: ${a.metricsAcceptedRps.toLocaleString()}, Dropped: ${a.metricsDroppedRps.toLocaleString()}`,children:t(pe,{status:i,label:`Receiver ${o}%`,leftIcon:i===G.Error?_t:Gt,useSecondaryTone:!0,invertColors:!0})}),t(oe,{text:`Success: ${a.exporterSuccessRps.toLocaleString()}, Failed: ${a.exporterFailedRps.toLocaleString()}`,children:t(pe,{status:c,label:`Exporter ${s}%`,leftIcon:c===G.Error?_t:Gt,useSecondaryTone:!0,invertColors:!0})})]})}},{key:Va.Age,rawValue:s(l.creationTimestamp)},{key:Va.DockerImage,rawValue:l.image}]})),[n,r]);return e(_e,{richTitle:{icon:Wt,title:"Pods"},children:[t(at,{variant:nt.Data,maxHeight:a,isLoading:l,columns:Fa,rows:p}),t(Oa,{pod:d,getExtendedPodInfo:i,onClose:()=>u(null)})]})};var Ma;!function(e){e.Gateway="gateway",e.Node="node"}(Ma||(Ma={}));const Pa=[{value:Ma.Gateway,label:"Gateway"},{value:Ma.Node,label:"Node Collector"}],La=p.div`
203
+ `,il=h.div`
204
+ animation-name: ${mt.in};
205
+ `,sl=({pod:l,getExtendedPodInfo:i,onClose:s})=>{const{formatTimeAgo:r}=We(),[d,u]=o(null),[p,m]=o(!1);n(()=>{l?i(l.namespace,l.name).then(e=>u(e??null)):(u(null),m(!1))},[l]);const h=c(()=>[{id:tt(),title:"Node",label:d?.node??"-",withCopy:!0},{id:tt(),title:"Status",badge:{status:dt(d?.status),label:d?.status??"-"}}],[d]),g=c(()=>d?.containers?.map(e=>({id:tt(),items:[{id:tt(),title:"Container",label:e.name??"-"},{id:tt(),title:"Status",label:e.startedAt?`${e.status} (since ${r(e.startedAt)})`:e.status},{id:tt(),title:"Ready",badge:{status:e.ready?J.Success:J.Error,leftIcon:e.ready?wt:At,label:e.ready?"True":"False",invertColors:!0}},{id:tt(),title:"Started",badge:{status:e.started?J.Success:J.Error,leftIcon:e.started?wt:At,label:e.started?"True":"False",invertColors:!0}},{id:tt(),title:"Image Version",label:e.image?.split(":")?.[1]??"-"},{id:tt(),title:"Image Repository",label:e.image?.split(":")?.[0]??"-"},{id:tt(),title:"Restarts",label:e.restarts.toString()},{id:tt(),title:"State Reason",label:e.stateReason??"-"},{id:tt(),title:"Resource Requests",label:`CPU ${e.resources.requests.cpu} • Memory ${e.resources.requests.memory}`},{id:tt(),title:"Resource Limits",label:`CPU ${e.resources.limits.cpu} • Memory ${e.resources.limits.memory}`}]}))||[],[d]);return e(G,{isOpen:!!l,header:{icon:Jt,title:"Pod Information",onClose:s},children:[d?null:t(X,{children:t(ut,{})}),d?e(a,{children:[t(Ke,{richTitle:{icon:Jt,title:d.name,withCopy:!0},children:e(f,{$gap:24,children:[t(et,{cellsPerRow:2,items:h}),g.length>0&&e(f,{$gap:12,children:[e(ol,{onClick:()=>m(e=>!e),children:[t(Q,{children:"Containers Overview"}),t(Ne,{icon:p?Mt:Pt})]}),p&&g.map(({id:e,items:a})=>t(il,{children:t(et,{cellsPerRow:2,items:a})},e))]})]})}),t(Ke,{richTitle:{icon:qt,title:"Kubectl Commands"},children:e(f,{$gap:12,children:[t(pt,{value:`kubectl get pod ${d.name} -n ${d.namespace} -o yaml`}),t(pt,{value:`kubectl describe pod ${d.name} -n ${d.namespace}`}),t(pt,{value:`kubectl logs ${d.name} -n ${d.namespace}`})]})}),t(na,{yaml:d.manifestYAML,defaultOpen:!0})]}):null]})};var rl;!function(e){e.PodName="podName",e.Status="status",e.Restarts="restarts",e.NodeName="nodeName",e.SpanDropDrate="spanDropDrate",e.Age="age",e.DockerImage="dockerImage"}(rl||(rl={}));const cl=[{key:rl.PodName,label:"Pod Name"},{key:rl.Status,label:"Status"},{key:rl.Restarts,label:"Restarts",textAlign:"right"},{key:rl.NodeName,label:"Node Name"},{key:rl.Age,label:"Age",textAlign:"right"},{key:rl.DockerImage,label:"Docker Image",textAlign:"right"}],dl=({isLoading:a,tableRowsMaxHeight:n,pods:l,getExtendedPodInfo:i})=>{const s=g(),{formatTimeAgo:r}=We(),[d,u]=o(null),p=c(()=>l.map(a=>({onClick:()=>u(a),cells:[{key:rl.PodName,rawValue:a.name},{key:rl.Status,rawValue:a.status,component:()=>{return e=a.status,t(Ce,{status:dt(e),label:e});var e}},{key:rl.Restarts,rawValue:a.restartsCount.toString()},{key:rl.NodeName,rawValue:a.nodeName},{key:rl.SpanDropDrate,rawValue:0,component:()=>{const{collectorMetrics:n}=a;if(!n)return t(Q,{children:"-"});const l=(n?.metricsAcceptedRps??0)+(n?.metricsDroppedRps??0),o=l>0?Math.round((n?.metricsDroppedRps??0)/l*100):0,i=o>0?J.Error:J.Success,s=(n?.exporterSuccessRps??0)+(n?.exporterFailedRps??0),r=s>0?Math.round((n?.exporterFailedRps??0)/s*100):0,c=r>0?J.Error:J.Success;return e($,{$gap:4,children:[t(pe,{text:`Accepted: ${n.metricsAcceptedRps.toLocaleString()}, Dropped: ${n.metricsDroppedRps.toLocaleString()}`,children:t(Ce,{status:i,label:`Receiver ${o}%`,leftIcon:i===J.Error?Qt:Zt,useSecondaryTone:!0,invertColors:!0})}),t(pe,{text:`Success: ${n.exporterSuccessRps.toLocaleString()}, Failed: ${n.exporterFailedRps.toLocaleString()}`,children:t(Ce,{status:c,label:`Exporter ${r}%`,leftIcon:c===J.Error?Qt:Zt,useSecondaryTone:!0,invertColors:!0})})]})}},{key:rl.Age,rawValue:r(a.creationTimestamp)},{key:rl.DockerImage,rawValue:a.image}]})),[l,s]);return e(Ke,{richTitle:{icon:Jt,title:"Pods"},children:[t(it,{variant:st.Data,maxHeight:n,isLoading:a,columns:cl,rows:p}),t(sl,{pod:d,getExtendedPodInfo:i,onClose:()=>u(null)})]})};var ul;!function(e){e.Gateway="gateway",e.Node="node"}(ul||(ul={}));const pl=[{value:ul.Gateway,label:"Gateway"},{value:ul.Node,label:"Node Collector"}],ml=h.div`
145
206
  display: flex;
146
207
  align-items: center;
147
208
  justify-content: space-between;
148
- `,Ea=({selectedTab:l,setSelectedTab:a,onClickDownloadDiagnose:n,onClickRefresh:o,loading:i,disabled:r})=>{const s=c(()=>{const e=[];return n&&e.push({id:Ze(),type:et.Button,buttonProps:{label:"Download Diagnose",leftIcon:jt,size:D.S,variant:O.Text,onClick:n,disabled:r}}),o&&e.push({id:Ze(),type:et.Button,buttonProps:{label:"Refresh",leftIcon:Kt,size:D.S,variant:O.Text,onClick:o,disabled:r,loading:i}}),e},[n,o,r,i]);return e(La,{children:[e(T,{$gap:12,children:[e(T,{$gap:8,children:[t(Jt,{size:32}),t(J,{size:K.M,weight:500,children:"Pipeline Collectors"})]}),t(Y,{options:Pa,selected:l,setSelected:a,disabled:r})]}),t(dt,{actions:s})]})},za=({isOpen:e,onClose:l,title:a,yaml:n})=>t(q,{isOpen:e,header:{icon:Ut,title:a,onClose:l},children:t(Xt,{yaml:n,defaultOpen:!0})});var ja;!function(e){e.ManifestYaml="manifest-yaml",e.ConfigMapYaml="configmap-yaml"}(ja||(ja={}));const qa=({richTitle:l,statusCard:a,textCards:n,manifestYaml:i,configMapYaml:r})=>{const[s,c]=o(null);return e(_e,{richTitle:l,actions:[{id:Ze(),type:et.ButtonDropData,buttonProps:{variant:O.Secondary,size:D.S,label:"View YAML",onClick:e=>c(e)},dropDataProps:{items:[{id:ja.ManifestYaml,label:l.title,icon:Yt},{id:ja.ConfigMapYaml,label:"ConfigMap",icon:Yt}]}}],children:[e(T,{$gap:16,children:[t(ut,{...a}),n.map(e=>t(pt,{...e},e.title))]}),t(za,{isOpen:s===ja.ManifestYaml,onClose:()=>c(null),title:l.title,yaml:i}),t(za,{isOpen:s===ja.ConfigMapYaml,onClose:()=>c(null),title:"ConfigMap",yaml:r})]})},Ha=e=>{switch(e){case ht.Healthy:return"All desired replicas are updated, available, and ready";case ht.Updating:return"Workload is progressing towards desired state (e.g., updating pods)";case ht.Degraded:return"Progressing but with availability issues (e.g., not enough available replicas)";case ht.Failed:return"Progress deadline exceeded or an unrecoverable error occurred";case ht.Down:return"No available replicas";case ht.Unknown:return"Status cannot be determined from current signals";default:return"Status unknown"}},Ka=({minSupportedVersion:l=0,tableRowsMaxHeight:n,getGatewayInfo:i,getGatewayPods:r,getNodeCollectorInfo:s,getNodeCollectorPods:d,getExtendedPodInfo:p})=>{const{formatTimeAgo:h}=Be(),{isVersionSupported:m,version:g}=Ae(l),[b,f]=o(!1),[C,y]=o(Ma.Gateway),[v,k]=o(null),[w,S]=o([]),[$,x]=o(null),[I,N]=o([]),T=u(async()=>{f(!0);try{switch(C){case Ma.Gateway:k(await i()??null),S(await r()??[]);break;case Ma.Node:x(await s()??null),N(await d()??[])}}catch(e){}f(!1)},[C]);a(()=>{T()},[T]);const A=c(()=>(e=>{switch(e){case Ma.Gateway:return"Deployment";case Ma.Node:return"DaemonSet";default:return"Pipeline Collectors"}})(C),[C]),D=c(()=>((e,t,l,a)=>{const n={status:Ve.Disabled,label:"No rollouts yet"};let o=!1,i=null;switch(e){case Ma.Gateway:o=t?.rolloutInProgress??!1,i=t?.lastRolloutAt??null;break;case Ma.Node:o=l?.rolloutInProgress??!1,i=l?.lastRolloutAt??null;break;default:return n}return o?{status:G.Info,label:"Rollout in progress",rightIcon:Kt,useSecondaryTone:!0}:i?{status:Ve.Disabled,label:`Last Rollout: ${a(i)}`}:n})(C,v,$,h),[v,$,C,h]),O=c(()=>((e,t,l,a)=>{let n=a?G.Info:Ve.Unknown,o=a?"Loading":ht.Unknown,i=a?"Fetching data...":Ha(ht.Unknown);switch(e){case Ma.Gateway:n=t?.status?it(t?.status):n,o=t?.status??o,i=t?.status?Ha(t.status):i;break;case Ma.Node:n=l?.status?it(l?.status):n,o=l?.status??o,i=l?.status?Ha(l.status):i}return{status:n,title:o,description:i}})(C,v,$,b),[v,$,C,b]),V=c(()=>((e,t,l,a)=>{switch(e){case Ma.Gateway:return[{title:"HPA Spec (Replicas)",cells:[{label:"Min.",value:t?.hpa?.min.toString()??"-",isLoading:a},{label:"Max.",value:t?.hpa?.max.toString()??"-",isLoading:a},{label:"Current",value:t?.hpa?.current.toString()??"-",isLoading:a},{label:"Desired",value:t?.hpa?.desired.toString()??"-",isLoading:a}]},{title:"Requests",cells:[{label:"CPU",value:t?.resources?.requests.cpu??"-",isLoading:a},{label:"Memory",value:t?.resources?.requests.memory??"-",isLoading:a}]},{title:"Limits",cells:[{label:"CPU",value:t?.resources?.limits.cpu??"-",isLoading:a},{label:"Memory",value:t?.resources?.limits.memory??"-",isLoading:a}]},{title:"Docker Image",cells:[{value:t?.imageVersion??"-",isLoading:a}]}];case Ma.Node:return[{title:"Nodes",cells:[{label:"Desired",value:l?.nodes?.desired.toString()??"-",isLoading:a},{label:"Ready",value:l?.nodes?.ready.toString()??"-",isLoading:a}]},{title:"Requests",cells:[{label:"CPU",value:l?.resources?.requests.cpu??"-",isLoading:a},{label:"Memory",value:l?.resources?.requests.memory??"-",isLoading:a}]},{title:"Limits",cells:[{label:"CPU",value:l?.resources?.limits.cpu??"-",isLoading:a},{label:"Memory",value:l?.resources?.limits.memory??"-",isLoading:a}]},{title:"Docker Image",cells:[{value:l?.imageVersion??"-",isLoading:a}]}];default:return[]}})(C,v,$,b),[v,$,C,b]),F=c(()=>(C===Ma.Gateway?v?.manifestYAML:$?.manifestYAML)??"",[v,$,C]),R=c(()=>(C===Ma.Gateway?v?.configMapYAML:$?.configMapYAML)??"",[v,$,C]),M=c(()=>C===Ma.Gateway?w:I,[w,I,C]);return e(lt,{children:[t(Ea,{disabled:!m,loading:b,selectedTab:C,setSelectedTab:y,onClickDownloadDiagnose:void 0,onClickRefresh:T}),e(mt,{children:[t(qa,{richTitle:{icon:Ut,title:A,badge:D},statusCard:O,textCards:V,manifestYaml:F,configMapYaml:R}),t(Ra,{isLoading:b,tableRowsMaxHeight:n,pods:M,getExtendedPodInfo:p}),!m&&t(ml,{minSupportedVersion:l,currentVersion:g||""})]})]})};export{Kl as AddActionDrawer,Nl as AddActionForm,ta as AddDestinationDrawer,Al as AddDestinationForm,aa as AddRuleDrawer,Ll as AddRuleForm,ha as AddSourceDrawer,Ta as CentralConnections,ma as EditConfigDrawer,Ka as PipelineCollectors,Sa as SystemDrawer};
209
+ `,hl=({selectedTab:a,setSelectedTab:n,onClickDownloadDiagnose:l,onClickRefresh:o,loading:i,disabled:s})=>{const r=c(()=>{const e=[];return l&&e.push({id:tt(),type:nt.Button,buttonProps:{label:"Download Diagnose",leftIcon:Wt,size:R.S,variant:O.Text,onClick:l,disabled:s}}),o&&e.push({id:tt(),type:nt.Button,buttonProps:{label:"Refresh",leftIcon:Kt,size:R.S,variant:O.Text,onClick:o,disabled:s,loading:i}}),e},[l,o,s,i]);return e(ml,{children:[e($,{$gap:12,children:[e($,{$gap:8,children:[t(ea,{size:32}),t(Q,{size:W.M,weight:500,children:"Pipeline Collectors"})]}),t(ee,{options:pl,selected:a,setSelected:n,disabled:s})]}),t(ht,{actions:r})]})},gl=({isOpen:e,onClose:a,title:n,yaml:l})=>t(G,{isOpen:e,header:{icon:ta,title:n,onClose:a},children:t(na,{yaml:l,defaultOpen:!0})});var bl;!function(e){e.ManifestYaml="manifest-yaml",e.ConfigMapYaml="configmap-yaml"}(bl||(bl={}));const fl=({richTitle:a,statusCard:n,textCards:l,manifestYaml:i,configMapYaml:s})=>{const[r,c]=o(null);return e(Ke,{richTitle:a,actions:[{id:tt(),type:nt.ButtonDropData,buttonProps:{variant:O.Secondary,size:R.S,label:"View YAML",onClick:e=>c(e)},dropDataProps:{items:[{id:bl.ManifestYaml,label:a.title,icon:aa},{id:bl.ConfigMapYaml,label:"ConfigMap",icon:aa}]}}],children:[e($,{$gap:16,children:[t(gt,{...n}),l.map(e=>t(bt,{...e},e.title))]}),t(gl,{isOpen:r===bl.ManifestYaml,onClose:()=>c(null),title:a.title,yaml:i}),t(gl,{isOpen:r===bl.ConfigMapYaml,onClose:()=>c(null),title:"ConfigMap",yaml:s})]})},vl=e=>{switch(e){case ft.Healthy:return"All desired replicas are updated, available, and ready";case ft.Updating:return"Workload is progressing towards desired state (e.g., updating pods)";case ft.Degraded:return"Progressing but with availability issues (e.g., not enough available replicas)";case ft.Failed:return"Progress deadline exceeded or an unrecoverable error occurred";case ft.Down:return"No available replicas";case ft.Unknown:return"Status cannot be determined from current signals";default:return"Status unknown"}},Cl=({minSupportedVersion:a=0,tableRowsMaxHeight:l,getGatewayInfo:i,getGatewayPods:s,getNodeCollectorInfo:r,getNodeCollectorPods:u,getExtendedPodInfo:p})=>{const{formatTimeAgo:m}=We(),{isVersionSupported:h,version:g}=P(a),[b,f]=o(!1),[v,C]=o(ul.Gateway),[y,S]=o(null),[k,w]=o([]),[D,I]=o(null),[N,T]=o([]),A=d(async()=>{f(!0);try{switch(v){case ul.Gateway:S(await i()??null),w(await s()??[]);break;case ul.Node:I(await r()??null),T(await u()??[])}}catch(e){}f(!1)},[v]);n(()=>{A()},[A]);const x=c(()=>(e=>{switch(e){case ul.Gateway:return"Deployment";case ul.Node:return"DaemonSet";default:return"Pipeline Collectors"}})(v),[v]),$=c(()=>((e,t,a,n)=>{const l={status:Le.Disabled,label:"No rollouts yet"};let o=!1,i=null;switch(e){case ul.Gateway:o=t?.rolloutInProgress??!1,i=t?.lastRolloutAt??null;break;case ul.Node:o=a?.rolloutInProgress??!1,i=a?.lastRolloutAt??null;break;default:return l}return o?{status:J.Info,label:"Rollout in progress",rightIcon:Kt,useSecondaryTone:!0}:i?{status:Le.Disabled,label:`Last Rollout: ${n(i)}`}:l})(v,y,D,m),[y,D,v,m]),E=c(()=>((e,t,a,n)=>{let l=n?J.Info:Le.Unknown,o=n?"Loading":ft.Unknown,i=n?"Fetching data...":vl(ft.Unknown);switch(e){case ul.Gateway:l=t?.status?dt(t?.status):l,o=t?.status??o,i=t?.status?vl(t.status):i;break;case ul.Node:l=a?.status?dt(a?.status):l,o=a?.status??o,i=a?.status?vl(a.status):i}return{status:l,title:o,description:i}})(v,y,D,b),[y,D,v,b]),R=c(()=>((e,t,a,n)=>{switch(e){case ul.Gateway:return[{title:"HPA Spec (Replicas)",cells:[{label:"Min.",value:t?.hpa?.min.toString()??"-",isLoading:n},{label:"Max.",value:t?.hpa?.max.toString()??"-",isLoading:n},{label:"Current",value:t?.hpa?.current.toString()??"-",isLoading:n},{label:"Desired",value:t?.hpa?.desired.toString()??"-",isLoading:n}]},{title:"Requests",cells:[{label:"CPU",value:t?.resources?.requests.cpu??"-",isLoading:n},{label:"Memory",value:t?.resources?.requests.memory??"-",isLoading:n}]},{title:"Limits",cells:[{label:"CPU",value:t?.resources?.limits.cpu??"-",isLoading:n},{label:"Memory",value:t?.resources?.limits.memory??"-",isLoading:n}]},{title:"Docker Image",cells:[{value:t?.imageVersion??"-",isLoading:n}]}];case ul.Node:return[{title:"Nodes",cells:[{label:"Desired",value:a?.nodes?.desired.toString()??"-",isLoading:n},{label:"Ready",value:a?.nodes?.ready.toString()??"-",isLoading:n}]},{title:"Requests",cells:[{label:"CPU",value:a?.resources?.requests.cpu??"-",isLoading:n},{label:"Memory",value:a?.resources?.requests.memory??"-",isLoading:n}]},{title:"Limits",cells:[{label:"CPU",value:a?.resources?.limits.cpu??"-",isLoading:n},{label:"Memory",value:a?.resources?.limits.memory??"-",isLoading:n}]},{title:"Docker Image",cells:[{value:a?.imageVersion??"-",isLoading:n}]}];default:return[]}})(v,y,D,b),[y,D,v,b]),O=c(()=>(v===ul.Gateway?y?.manifestYAML:D?.manifestYAML)??"",[y,D,v]),F=c(()=>(v===ul.Gateway?y?.configMapYAML:D?.configMapYAML)??"",[y,D,v]),L=c(()=>v===ul.Gateway?k:N,[k,N,v]);return e(ot,{children:[t(hl,{disabled:!h,loading:b,selectedTab:v,setSelectedTab:C,onClickDownloadDiagnose:void 0,onClickRefresh:A}),e(vt,{children:[t(fl,{richTitle:{icon:ta,title:x,badge:$},statusCard:E,textCards:R,manifestYaml:O,configMapYaml:F}),t(dl,{isLoading:b,tableRowsMaxHeight:l,pods:L,getExtendedPodInfo:p}),!h&&t(Sa,{minSupportedVersion:a,currentVersion:g||""})]})]})};export{nn as AddActionDrawer,Fa as AddActionForm,gn as AddDestinationDrawer,Ba as AddDestinationForm,_a as AddDestinationFormContextProvider,vn as AddRuleDrawer,Ya as AddRuleForm,An as AddSourceDrawer,jn as CentralConnections,xn as EditConfigDrawer,ll as Onboarding,Cl as PipelineCollectors,Vn as SystemDrawer,Ua as useAddDestinationFormContext};