@odigos/ui-kit 0.0.209 → 0.0.210

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.0.210](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.209...ui-kit-v0.0.210) (2026-03-22)
4
+
5
+
6
+ ### Features
7
+
8
+ * enhance Diagnose component with progress tracking for download ([#738](https://github.com/odigos-io/ui-kit/issues/738)) ([bc4aea9](https://github.com/odigos-io/ui-kit/commit/bc4aea9dbc9b325b6e5550cb3812499c53c2dbb2))
9
+
3
10
  ## [0.0.209](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.208...ui-kit-v0.0.209) (2026-03-19)
4
11
 
5
12
 
@@ -1,3 +1,3 @@
1
- import{jsx as t}from"react/jsx-runtime";import{useState as o,useMemo as e}from"react";import i from"styled-components";import{as as a,h as s,j as n,aE as r,aC as c,aw as l,cP as p,n as m,N as d}from"./ui-components-CwVshImz.js";import{VIcon as u,CopyIcon as f,ChevronUpIcon as h,ChevronDownIcon as y,YamlIcon as b}from"../icons.js";const C=i.div`
1
+ import{jsx as t}from"react/jsx-runtime";import{useState as o,useMemo as e}from"react";import i from"styled-components";import{as as a,h as s,j as n,aE as r,aC as c,aw as l,cP as p,n as m,N as d}from"./ui-components-CxdeQcW1.js";import{VIcon as u,CopyIcon as f,ChevronUpIcon as h,ChevronDownIcon as y,YamlIcon as b}from"../icons.js";const C=i.div`
2
2
  padding: 0 12px;
3
3
  `,j=({title:i="YAML",yaml:j,defaultOpen:k})=>{const{clickCopy:Y,isCopied:g}=a(),[v,x]=o(k??!1),A=e(()=>j?[{id:c(),type:r.Button,buttonProps:{variant:n.Secondary,size:s.S,leftIcon:g?u:f,onClick:()=>Y(j||""),disabled:g}},{id:c(),type:r.Button,buttonProps:{variant:n.Secondary,size:s.S,leftIcon:v?h:y,onClick:()=>x(t=>!t)}}]:[],[j,g,v]);return t(l,{richTitle:{icon:b,title:i},actions:A,children:v&&t(C,{children:j?t(p,{code:j,language:"yaml",theme:"duotoneDark"}):t(m,{children:t(d,{title:"YAML not found",subTitle:"The YAML for this resource is not available"})})})})};export{j as Y};
@@ -143,7 +143,7 @@ import{SamplerIcon as e,PiiMaskingIcon as t,ActionIcon as i,RenameAttributeIcon
143
143
  margin: 4px 0 0 0;
144
144
  list-style: none;
145
145
  width: 100%;
146
- `,zo=(e,t)=>t?e.reduce((e,i)=>{if(i.items){const n=zo(i.items,t);n.length&&e.push({...i,items:n})}else i.label.toLowerCase().includes(t.toLowerCase())&&e.push(i);return e},[]):e,Fo=({placeholder:e="Type to search...",options:t,selectedOption:i,onOptionSelect:n,defaultText:o,onTextChange:r,style:a,disabled:s,errorMessage:l,...c})=>{const[d,p]=Ct(i?.label||o||""),[u,h]=Ct(zo(t,d)),[m,g]=Ct(!1);Ct(-1),kt(()=>h(zo(t,d)),[t]);const $=i?.icon,x=e=>{e&&(p(e.label),r?.(e.label)),g(!e),n?.(e)};return bt(wo,{style:a,children:[bt(vo,{$hasError:!!l,children:[$&&ft($,{}),ft(Co,{type:"text",value:d,placeholder:e,onChange:e=>{e.stopPropagation();const i=e.target.value,n=zo(t,i),o=1===n.length&&n[0].label===i?n[0]:void 0;p(i),r?.(i),h(n),x(o)},onKeyDown:e=>{["Enter"].includes(e.key)||e.stopPropagation()},disabled:s,onBlur:()=>!s&&g(!1),onFocus:()=>!s&&g(!0),...c})]}),m&&u.length?ft(ko,{children:u.map(e=>ft(_o,{option:e,onClick:x},e.type||e.label))}):null,l&&ft(yo,{children:l})]})},_o=({option:e,renderIcon:t=!0,onClick:i})=>{const n=!!e.items&&e.items.length>0,o=e.icon;return bt(So,{"data-id":`option-${e.type||e.label}`,$isList:n,onMouseDown:()=>n?null:i(e),children:[o&&t&&ft(o,{}),bt(Eo,{children:[bt(Do,{children:[ft(Io,{children:e.label}),ft(No,{children:e.description})]}),n&&ft(Oo,{children:e.items?.map(e=>bt(Ao,{children:[ft(To,{}),ft(_o,{option:e,renderIcon:!1,onClick:i})]},e.type||e.label))})]})]})},Ro=xt(e=>({activeNodeType:null,activeNodeId:null,setActiveNodeType:t=>e({activeNodeType:t}),setActiveNodeId:t=>e({activeNodeId:t})})),Bo=[{type:si.K8sAttributes,icon:pn(si.K8sAttributes),label:"Kubernetes Attributes",description:"Add dynamic k8s resource attributes to your data.",allowedSignals:[qi.Traces,qi.Metrics,qi.Logs],docsEndpoint:"/pipeline/actions/attributes/k8sattributes",docsDescription:"This action adds kubernetes related resource attributes to spans, metrics data points and log records."},{type:si.AddClusterInfo,icon:pn(si.AddClusterInfo),label:"Add Cluster Info",description:"Add static cluster-scoped attributes to your data.",allowedSignals:[qi.Traces,qi.Metrics,qi.Logs],docsEndpoint:"/pipeline/actions/attributes/addclusterinfo",docsDescription:"This action adds static resource attributes to spans, metrics data points and log records. It is useful to add cluster-wide attributes to all telemetry signals."},{type:si.DeleteAttributes,icon:pn(si.DeleteAttributes),label:"Delete Attribute",description:"Delete attributes from logs, metrics, and traces.",allowedSignals:[qi.Traces,qi.Metrics,qi.Logs],docsEndpoint:"/pipeline/actions/attributes/deleteattribute",docsDescription:"This action will delete the specified attributes from all telemetry signals that are specified in the signals field, regardless of the source, or any other condition."},{type:si.RenameAttributes,icon:pn(si.RenameAttributes),label:"Rename Attribute",description:"Rename attributes in logs, metrics, and traces.",allowedSignals:[qi.Traces,qi.Metrics,qi.Logs],docsEndpoint:"/pipeline/actions/attributes/renameattribute",docsDescription:"This action will rename the specified attributes from all telemetry signals that are specified in the signals field, regardless of the source, or any other condition."},{type:si.PiiMasking,icon:pn(si.PiiMasking),label:"PII Masking",description:"Mask PII data in your traces.",allowedSignals:[qi.Traces],docsEndpoint:"/pipeline/actions/attributes/piimasking",docsDescription:"This action processes a list of PII categories to be masked from the traces."},{type:si.URLTemplatization,icon:pn(si.URLTemplatization),label:"URL Templatization",description:"Replace dynamic URL path segments with named placeholders to reduce span cardinality.",allowedSignals:[qi.Traces],docsEndpoint:"/pipeline/actions/attributes/urltemplatization",docsDescription:"Normalizes HTTP URL paths by replacing dynamic segments (IDs, UUIDs, dates) with named placeholders (e.g. /user/1234 → /user/{id}). Reduces cardinality of http.route and span names, improving usability in telemetry backends.",minVersion:ro("v1.21.0")}],Mo=[{type:si.ErrorSampler,icon:pn(ai.Samplers),label:"Error Sampler",description:"Sample errors based on percentage.",allowedSignals:[qi.Traces],docsEndpoint:"/pipeline/actions/sampling/errorsampler",docsDescription:"This action is a Global Action that supports error sampling by filtering out non-error traces."},{type:si.LatencySampler,icon:pn(ai.Samplers),label:"Latency Sampler",description:"Add latency to your traces.",allowedSignals:[qi.Traces],docsEndpoint:"/pipeline/actions/sampling/latencysampler",docsDescription:"This action is an Endpoint Action that samples traces based on their duration for a specific service and endpoint (HTTP route) filter."},{type:si.ProbabilisticSampler,icon:pn(ai.Samplers),label:"Probabilistic Sampler",description:"Sample traces based on percentage.",allowedSignals:[qi.Traces],docsEndpoint:"/pipeline/actions/sampling/probabilisticsampler",docsDescription:"This action supports probabilistic sampling based on a configured sampling percentage applied to the TraceID."},{type:si.ServiceNameSampler,icon:pn(ai.Samplers),label:"Service Name Sampler",description:"Sample traces based on the presence of specified services within a trace.",allowedSignals:[qi.Traces],docsEndpoint:"/pipeline/actions/sampling/servicenamesampler",docsDescription:"This action supports service name sampling based on the presence of specified services within a trace."},{type:si.SpanAttributeSampler,icon:pn(ai.Samplers),label:"Span Attributes Sampler",description:"Sample traces based on the presence or value of specific attributes within a trace.",allowedSignals:[qi.Traces],docsEndpoint:"/pipeline/actions/sampling/spanattributesampler",docsDescription:"This action supports service name sampling based on the presence or value of specific attributes within a trace."}],Lo=[{label:"Attributes",icon:pn(ai.Attributes),items:Bo},{label:"Samplers",icon:pn(ai.Samplers),items:Mo}];var Po;!function(e){e.ALL="all",e.EXISTS="exists",e.DETECTED="detected",e.SELF_HOSTED="self-hosted",e.MANAGED="managed"}(Po||(Po={}));const jo={[Po.ALL]:{TITLE:"All",DESCRIPTION:"All destinations"},[Po.EXISTS]:{TITLE:"Already configured",DESCRIPTION:"These are destinations that you have already configured in other data-streams and can reuse them."},[Po.DETECTED]:{TITLE:"Detected by system",DESCRIPTION:"Odigos found these destinations in your cluster and pre-filled their details. Review and enable them to start sending data."},[Po.SELF_HOSTED]:{TITLE:"Self hosted",DESCRIPTION:"Full control and customization for advanced application monitoring."},[Po.MANAGED]:{TITLE:"Managed",DESCRIPTION:"Effortless monitoring with scalable performance management."}},Uo=[{type:Bi.CodeAttributes,icon:Cn(Bi.CodeAttributes),label:"Code Attributes",description:"Collect code attributes containing payload data to traces.",docsEndpoint:"/pipeline/rules/codeattributes",docsDescription:'The "Code Attributes" rule can be used to add code attributes containing payload data to traces.',supportedLanguages:[bi.Go,bi.Python]},{type:Bi.CustomInstrumentation,icon:Cn(Bi.CustomInstrumentation),label:"Custom Instrumentation",description:"Define custom instrumentation for specific class and methods (i.e. for Java) or explicit symbol (i.e. for Golang).",docsEndpoint:"/pipeline/rules/custominstrumentation",docsDescription:'The "Custom Instrumentation" rule can be used to instrument a specific symbol (i.e. for Golang), or a class and method combination (i.e. for Java) for detailed tracing.',supportedLanguages:[bi.Go,bi.Java]},{type:Bi.HeadersCollection,icon:Cn(Bi.HeadersCollection),label:"Headers Collection",description:"Collect span attributes containing HTTP Headers data to traces.",docsEndpoint:"/pipeline/rules/headerscollection",docsDescription:'The "Headers Collection" rule can be used to add span attributes containing HTTP Headers data to traces.',supportedLanguages:[bi.Go,bi.Java,bi.JavaScript]},{type:Bi.PayloadCollection,icon:Cn(Bi.PayloadCollection),label:"Payload Collection",description:"Collect span attributes containing payload data to traces.",docsEndpoint:"/pipeline/rules/payloadcollection",docsDescription:'The "Payload Collection" rule can be used to add span attributes containing payload data to traces.',supportedLanguages:[bi.Go]}],Wo=[{id:qi.Logs,value:"Logs"},{id:qi.Metrics,value:"Metrics"},{id:qi.Traces,value:"Traces"}],Vo={[bi.Go]:"Go",[bi.Java]:"Java",[bi.JavaScript]:"Node.js",[bi.Python]:"Python",[bi.DotNet]:".NET",[bi.CSharp]:"C#",[bi.CPlusPlus]:"C++",[bi.Php]:"PHP",[bi.Ruby]:"Ruby",[bi.Rust]:"Rust",[bi.Swift]:"Swift",[bi.Elixir]:"Elixir",[bi.MySql]:"MySQL",[bi.Nginx]:"Nginx",[bi.Postgres]:"PostgreSQL",[bi.Redis]:"Redis",[bi.Kafka]:"Kafka",[bi.Ignored]:"Ignored",[bi.Unknown]:"Unknown",[bi.Processing]:"Processing",[bi.NoContainers]:"No Containers",[bi.NoRunningPods]:"No Running Pods"},Go=[{id:bi.Go,value:Vo[bi.Go],icon:mn(bi.Go)},{id:bi.Java,value:Vo[bi.Java],icon:mn(bi.Java)},{id:bi.JavaScript,value:Vo[bi.JavaScript],icon:mn(bi.JavaScript)},{id:bi.Python,value:Vo[bi.Python],icon:mn(bi.Python)},{id:bi.Php,value:Vo[bi.Php],icon:mn(bi.Php)},{id:bi.Ruby,value:Vo[bi.Ruby],icon:mn(bi.Ruby)},{id:bi.Rust,value:Vo[bi.Rust],icon:mn(bi.Rust)},{id:bi.DotNet,value:Vo[bi.DotNet],icon:mn(bi.DotNet)},{id:bi.CSharp,value:Vo[bi.CSharp],icon:mn(bi.CSharp)},{id:bi.CPlusPlus,value:Vo[bi.CPlusPlus],icon:mn(bi.CPlusPlus)},{id:bi.Swift,value:Vo[bi.Swift],icon:mn(bi.Swift)},{id:bi.Elixir,value:Vo[bi.Elixir],icon:mn(bi.Elixir)}],qo={[bi.Go]:{community:[{id:_i.GolangCommunity,value:_i.GolangCommunity,icon:mn(bi.Go)}],enterprise:[{id:_i.GolangEnterprise,value:_i.GolangEnterprise,icon:mn(bi.Go)}]},[bi.JavaScript]:{community:[{id:_i.NodejsCommunity,value:_i.NodejsCommunity,icon:mn(bi.JavaScript)}],enterprise:[{id:_i.NodejsEnterprise,value:_i.NodejsEnterprise,icon:mn(bi.JavaScript)}]},[bi.Python]:{community:[{id:_i.PythonCommunity,value:_i.PythonCommunity,icon:mn(bi.Python)}],enterprise:[{id:_i.PythonEnterprise,value:_i.PythonEnterprise,icon:mn(bi.Python)}]},[bi.Java]:{community:[{id:_i.JavaCommunity,value:_i.JavaCommunity,icon:mn(bi.Java)}],enterprise:[{id:_i.JavaEnterprise,value:_i.JavaEnterprise,icon:mn(bi.Java)},{id:_i.JavaEbpfInstrumentations,value:_i.JavaEbpfInstrumentations,icon:mn(bi.Java)}]},[bi.DotNet]:{community:[{id:_i.DotNetCommunity,value:_i.DotNetCommunity,icon:mn(bi.DotNet)}],enterprise:[{id:_i.DotNetEnterprise,value:_i.DotNetEnterprise,icon:mn(bi.DotNet)}]},[bi.Ruby]:{community:[{id:_i.RubyCommunity,value:_i.RubyCommunity,icon:mn(bi.Ruby)}],enterprise:[{id:_i.RubyEnterprise,value:_i.RubyEnterprise,icon:mn(bi.Ruby)}]},[bi.Php]:{community:[{id:_i.PhpCommunity,value:_i.PhpCommunity,icon:mn(bi.Php)}],enterprise:[]},[bi.CSharp]:{community:[],enterprise:[{id:_i.CPlusPlusEnterprise,value:_i.CPlusPlusEnterprise,icon:mn(bi.CSharp)}]},[bi.MySql]:{community:[],enterprise:[{id:_i.MySqlEnterprise,value:_i.MySqlEnterprise,icon:mn(bi.MySql)}]},[bi.CPlusPlus]:{community:[],enterprise:[]},[bi.Rust]:{community:[],enterprise:[]},[bi.Swift]:{community:[],enterprise:[]},[bi.Elixir]:{community:[],enterprise:[]},[bi.Nginx]:{community:[],enterprise:[]},[bi.Postgres]:{community:[],enterprise:[]},[bi.Redis]:{community:[],enterprise:[]},[bi.Kafka]:{community:[],enterprise:[]},[bi.Ignored]:{community:[],enterprise:[]},[bi.Unknown]:{community:[],enterprise:[]},[bi.Processing]:{community:[],enterprise:[]},[bi.NoContainers]:{community:[],enterprise:[]},[bi.NoRunningPods]:{community:[],enterprise:[]}},Ho=6048e5,Ko=xt()(Ot(e=>({darkMode:!0,setDarkMode:t=>e({darkMode:t})}),{name:tn.DARK_MODE,storage:"undefined"!=typeof window?zt(()=>localStorage):void 0})),Yo={dataStreamsLoading:!1,dataStreams:[],selectedStreamName:""},Jo=xt(e=>({...Yo,setDataStreamsLoading:t=>e({dataStreamsLoading:t}),setDataStreams:t=>e({dataStreams:t}),addDataStreams:t=>e(e=>{const i=[...e.dataStreams,...t].map(e=>[e.name,e]);return{dataStreams:Array.from(new Map(i).values())}}),removeDataStreams:t=>e(e=>({dataStreams:e.dataStreams.filter(e=>!t.find(t=>t.name===e.name))})),setSelectedStreamName:t=>e({selectedStreamName:t}),resetDataStreamStore:()=>e(Yo)})),Xo=xt(e=>({drawerType:null,drawerEntityId:null,setDrawerType:t=>e({drawerType:t}),setDrawerEntityId:t=>e({drawerEntityId:t})})),Zo=xt(e=>({namespacesLoading:!1,namespaces:[],sourcesLoading:!1,sources:[],destinationsLoading:!1,destinations:[],actionsLoading:!1,actions:[],instrumentationRulesLoading:!1,instrumentationRules:[],setEntitiesLoading:(t,i)=>{const n=t===wi.Namespace?"namespacesLoading":t===wi.Source?"sourcesLoading":t===wi.Destination?"destinationsLoading":t===wi.Action?"actionsLoading":t===wi.InstrumentationRule?"instrumentationRulesLoading":"NONE";"NONE"!==n&&e({[n]:i})},setEntities:(t,i)=>{const n=t===wi.Namespace?"namespaces":t===wi.Source?"sources":t===wi.Destination?"destinations":t===wi.Action?"actions":t===wi.InstrumentationRule?"instrumentationRules":"NONE";"NONE"!==n&&e({[n]:i})},addEntities:(t,i)=>{const n=t===wi.Namespace?"namespaces":t===wi.Source?"sources":t===wi.Destination?"destinations":t===wi.Action?"actions":t===wi.InstrumentationRule?"instrumentationRules":"NONE";"NONE"!==n&&e(e=>{const t=[...e[n]],o=new Map;return t.forEach((e,t)=>{o.set(JSON.stringify(yn(e)),t)}),i.forEach(e=>{const i=JSON.stringify(yn(e)),n=o.get(i);void 0!==n?t[n]={...t[n],...e}:(o.set(i,t.length),t.push(e))}),{[n]:t}})},removeEntities:(t,i)=>{const n=t===wi.Namespace?"namespaces":t===wi.Source?"sources":t===wi.Destination?"destinations":t===wi.Action?"actions":t===wi.InstrumentationRule?"instrumentationRules":"NONE";"NONE"!==n&&e(e=>{const o=new Set;i.forEach(e=>{const i=t===wi.Source?JSON.stringify(yn(e)):String(e);o.add(i)});const r=e[n].filter(e=>{const i=t===wi.Source?JSON.stringify(yn(e)):String(yn(e));return!o.has(i)});return{[n]:r}})},resetEntityStore:()=>{e({namespacesLoading:!1,namespaces:[],sourcesLoading:!1,sources:[],destinationsLoading:!1,destinations:[],actionsLoading:!1,actions:[],instrumentationRulesLoading:!1,instrumentationRules:[]})}})),Qo=()=>({searchText:"",statuses:[],platformTypes:[],namespaces:[],kinds:[],monitors:[],languages:[],conditions:[],podsAgentInjectionStatus:[],errors:[],onlyErrors:!1}),er=xt(e=>({searchText:"",setSearchText:t=>e({searchText:t}),statuses:[],setStatuses:t=>e({statuses:t}),platformTypes:[],setPlatformTypes:t=>e({platformTypes:t}),namespaces:[],setNamespaces:t=>e({namespaces:t}),kinds:[],setKinds:t=>e({kinds:t}),monitors:[],setMonitors:t=>e({monitors:t}),languages:[],setLanguages:t=>e({languages:t}),conditions:[],setConditions:t=>e({conditions:t}),podsAgentInjectionStatus:[],setPodsAgentInjectionStatus:t=>e({podsAgentInjectionStatus:t}),errors:[],setErrors:t=>e({errors:t}),onlyErrors:!1,setOnlyErrors:t=>e({onlyErrors:t}),setAll:t=>e(t),clearAll:()=>e({searchText:"",statuses:[],platformTypes:[],namespaces:[],kinds:[],monitors:[],languages:[],conditions:[],podsAgentInjectionStatus:[],errors:[],onlyErrors:!1}),getEmptyState:Qo})),tr=xt(e=>({currentModal:"",setCurrentModal:t=>e({currentModal:t})})),ir=xt((e,t)=>({notifications:[],addNotification:i=>{const n=new Date,o=`${n.getTime().toString()}${i.target?`#${i.target}`:""}`,{notifications:r}=t();r.some(e=>e.type===i.type&&e.title===i.title&&e.message===i.message&&!e.dismissed)||e(e=>({notifications:[{...i,id:o,time:n.toISOString(),dismissed:!1,seen:!1},...e.notifications]}))},markAsDismissed:t=>{e(e=>{const i=e.notifications.findIndex(e=>e.id===t);return-1!==i&&(e.notifications[i].dismissed=!0),{notifications:e.notifications}})},markAsSeen:t=>{e(e=>{const i=e.notifications.findIndex(e=>e.id===t);return-1!==i&&(e.notifications[i].seen=!0),{notifications:e.notifications}})},removeNotification:t=>{e(e=>{const i=e.notifications.findIndex(e=>e.id===t);return-1!==i&&e.notifications.splice(i,1),{notifications:e.notifications}})},removeNotifications:t=>{t&&e(e=>({notifications:e.notifications.filter(e=>e.id.split("#")[1]!==t)}))}}));var nr;!function(e){e.Instrumenting="instrumenting",e.Uninstrumenting="uninstrumenting",e.BulkInstrumenting="bulk-instrumenting",e.BulkUninstrumenting="bulk-uninstrumenting"}(nr||(nr={}));const or=(e,t)=>({...t?.[e]||{total:0,current:0,percentage:0}}),rr=e=>(e.total<e.current&&(e.total=e.current+1),e.percentage=Math.round(e.current/e.total*100),e),ar=xt((e,t)=>({progress:{},setProgress:(i,n)=>{const o=t(),r=or();return"number"==typeof n.total&&(r.total=n.total),"number"==typeof n.current&&(r.current=n.current),e({progress:{...o.progress,[i]:rr(r)}})},addProgress:(i,n)=>{const o=t(),r=or(i,o.progress);return r.current+=n,e({progress:{...o.progress,[i]:rr(r)}})},resetProgress:t=>e({progress:{[t]:void 0}})})),sr=xt(e=>({selectedSources:{},setSelectedSources:t=>e({selectedSources:t}),resetSelectedState:()=>e(()=>({selectedSources:{},selectedConnection:null}))})),lr={configuredSources:{},configuredFutureApps:{},configuredDestinations:[],configuredDestinationsUpdateOnly:[]},cr=(e,t)=>e.destinationType.type!==t.destinationType.type,dr=xt(e=>({...lr,setConfiguredSources:t=>e({configuredSources:t}),setConfiguredFutureApps:t=>e({configuredFutureApps:t}),setConfiguredDestinations:t=>e({configuredDestinations:t}),addConfiguredDestination:t=>e(e=>({configuredDestinations:[...e.configuredDestinations,t]})),removeConfiguredDestination:t=>e(e=>({configuredDestinations:e.configuredDestinations.filter(e=>cr(e,t))})),setConfiguredDestinationsUpdateOnly:t=>e({configuredDestinationsUpdateOnly:t}),addConfiguredDestinationUpdateOnly:t=>e(e=>{const i=[...e.configuredDestinationsUpdateOnly,t].map(e=>[e.id,e]);return{configuredDestinationsUpdateOnly:Array.from(new Map(i).values())}}),removeConfiguredDestinationUpdateOnly:t=>e(e=>({configuredDestinationsUpdateOnly:e.configuredDestinationsUpdateOnly.filter(e=>cr(e,t))})),clearStore:()=>e(()=>({...lr}))})),pr={v2:{text:{size:{xxxs:10,xxs:12,xs:14,s:16,m:20,l:24,xl:32,xxl:40,xxxl:48}},colors:{black:{500:"#151618"},white:{500:"#FFFFFF"},purple:{100:"#E1D4FF",200:"#C3AAFF",300:"#A57FFF",400:"#8854FF",500:"#6A2AFF",600:"#5925D0",700:"#4822A2",800:"#371E73",900:"#271A45"},green:{100:"#DCFDFA",200:"#B9FBF6",300:"#96FAF1",400:"#73F8ED",500:"#50F6E8",600:"#44C9BE",700:"#399D94",800:"#2D6F6A",900:"#224340"},grey:{25:"#F6F6F6",50:"#ECECED",100:"#DADADB",150:"#B8B8B8",200:"#B4B5B7",300:"#8F9093",400:"#696B6F",500:"#44464B",600:"#3A3C40",700:"#313236",800:"#282A2E",900:"#1B1B1C"},silver:{25:"#F6F6F7",50:"#EDEDEE",100:"#DADCDE",200:"#B6B8BD",300:"#91959C",400:"#6D717B",500:"#484E5A",600:"#3E424C",700:"#34383F",750:"#2C2F36",800:"#26292F",900:"#1F2125",1e3:"#1B1C1D"},red:{100:"#FFE5E7",200:"#FFCBD0",300:"#FFB0B8",400:"#FF96A1",500:"#FF7C89",600:"#D06772",700:"#A2535B",800:"#733F44",900:"#452B2D",1e3:"#2E2022"},blue:{100:"#EBF0FA",200:"#D6E1F4",300:"#ADC3EA",400:"#84A4DF",500:"#5C86D5",600:"#3368CA",700:"#2D57A6",800:"#274782",900:"#21375E",1e3:"#1C273A"},yellow:{100:"#FFFBF1",200:"#FFF7E2",300:"#FFEFC6",400:"#FFE7A9",500:"#FFDF8D",600:"#FFD770",700:"#D0B05E",800:"#A28A4C",900:"#73633A",1e3:"#453D28"},beige:{600:"#EEC990"},pink:{600:"#F576A2"},orange:{600:"#F29142"}}},colors:{majestic_blue:"#444AD9",majestic_blue_soft:"#6C7AE8",orange_og:"#FE9239",orange_soft:"#FFB160",dark_red:"#802828",darker_red:"#611F1F",darkest_red:"#281515",darkest_red_hover:"#351515",dark_green:"#2D4323"},text:{},font_family:{primary:"Inter, sans-serif",secondary:"Kode Mono, sans-serif",code:"IBM Plex Mono, monospace"}},ur={v2:pr.v2,darkMode:!0,colors:{...pr.colors,primary:"#111111",secondary:"#F9F9F9",border:"#525252",dark_grey:"#151515",translucent_bg:"#1A1A1A",dropdown_bg:"#242424",dropdown_bg_2:"#333333",warning:"#472300",error:"#431919",success:"#172013",info:"#242424",default:"#181944"},text:{white:"#FFFFFF",primary:"#111111",secondary:"#F9F9F9",grey:"#B8B8B8",dark_grey:"#8F8F8F",darker_grey:"#7A7A7A",light_grey:"#CCD0D2",dark_button:"#0A1824",warning:"#E9CF35",warning_secondary:"#FFA349",error:"#EF7676",error_secondary:"#DB5151",success:"#81AF65",success_secondary:"#51DB51",info:"#B8B8B8",info_secondary:"#CCDDDD",default:"#AABEF7",default_secondary:"#8CBEFF"},font_family:pr.font_family},hr={v2:pr.v2,darkMode:!1,colors:{...pr.colors,primary:"#EEEEEE",secondary:"#060606",border:"#ADADAD",dark_grey:"#EAEAEA",translucent_bg:"#E5E5E5",dropdown_bg:"#DBDBDB",dropdown_bg_2:"#CCCCCC",warning:"#F6F092",error:"#FACECE",success:"#C8DEB8",info:"#E0E0E0",default:"#CAD9FB"},text:{white:"#FFFFFF",primary:"#EEEEEE",secondary:"#060606",grey:"#474747",dark_grey:"#707070",darker_grey:"#858585",light_grey:"#332F2D",dark_button:"#F5E7DB",warning:"#A56F12",warning_secondary:"#CA9416",error:"#B63A3A",error_secondary:"#DB5151",success:"#4E763A",success_secondary:"#67964C",info:"#525252",info_secondary:"#7A7A7A",default:"#444AD9",default_secondary:"#6C7AE8"},font_family:pr.font_family},mr=e=>e?ur:hr;var gr=Object.freeze({__proto__:null,baseTheme:pr,darkModeTheme:ur,getTheme:mr,lightModeTheme:hr});Ft('@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Kode+Mono:wght@100;200;300;400;500;600;700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Inter+Tight:wght@400;700&display=swap");@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap");*{-ms-overflow-style:none;scrollbar-width:none}::-webkit-scrollbar{display:none}*{animation-duration:.3s;animation-fill-mode:forwards;transition:all .3s}input{all:unset}input:-webkit-autofill,input:-webkit-autofill:active,input:-webkit-autofill:focus,input:-webkit-autofill:hover{-webkit-transition:all 50000s ease-in-out 0s;transition:all 50000s ease-in-out 0s}');const $r=({children:e})=>{const{darkMode:t}=Ko();return ft(Lt,{theme:mr(t),children:e})},xr={100:"FF","099":"FC","098":"FA","097":"F7","096":"F5","095":"F2","094":"F0","093":"ED","092":"EB","091":"E8","090":"E6","089":"E3","088":"E0","087":"DE","086":"DB","085":"D9","084":"D6","083":"D4","082":"D1","081":"CF","080":"CC","079":"C9","078":"C7","077":"C4","076":"C2","075":"BF","074":"BD","073":"BA","072":"B8","071":"B5","070":"B3","069":"B0","068":"AD","067":"AB","066":"A8","065":"A6","064":"A3","063":"A1","062":"9E","061":"9C","060":"99","059":"96","058":"94","057":"91","056":"8F","055":"8C","054":"8A","053":"87","052":"85","051":"82","050":"80","049":"7D","048":"7A","047":"78","046":"75","045":"73","044":"70","043":"6E","042":"6B","041":"69","040":"66","039":"63","038":"61","037":"5E","036":"5C","035":"59","034":"57","033":"54","032":"52","031":"4F","030":"4D","029":"4A","028":"47","027":"45","026":"42","025":"40","024":"3D","023":"3B","022":"38","021":"36","020":"33","019":"30","018":"2E","017":"2B","016":"29","015":"26","014":"24","013":"21","012":"1F","011":"1C","010":"1A","009":"17","008":"14","007":"12","006":"0F","005":"0D","004":"0A","003":"08","002":"05","001":"03","000":"00"};var fr=Object.freeze({__proto__:null,hex:xr});const br={in:{left:Pt`
146
+ `,zo=(e,t)=>t?e.reduce((e,i)=>{if(i.items){const n=zo(i.items,t);n.length&&e.push({...i,items:n})}else i.label.toLowerCase().includes(t.toLowerCase())&&e.push(i);return e},[]):e,Fo=({placeholder:e="Type to search...",options:t,selectedOption:i,onOptionSelect:n,defaultText:o,onTextChange:r,style:a,disabled:s,errorMessage:l,...c})=>{const[d,p]=Ct(i?.label||o||""),[u,h]=Ct(zo(t,d)),[m,g]=Ct(!1);Ct(-1),kt(()=>h(zo(t,d)),[t]);const $=i?.icon,x=e=>{e&&(p(e.label),r?.(e.label)),g(!e),n?.(e)};return bt(wo,{style:a,children:[bt(vo,{$hasError:!!l,children:[$&&ft($,{}),ft(Co,{type:"text",value:d,placeholder:e,onChange:e=>{e.stopPropagation();const i=e.target.value,n=zo(t,i),o=1===n.length&&n[0].label===i?n[0]:void 0;p(i),r?.(i),h(n),x(o)},onKeyDown:e=>{["Enter"].includes(e.key)||e.stopPropagation()},disabled:s,onBlur:()=>!s&&g(!1),onFocus:()=>!s&&g(!0),...c})]}),m&&u.length?ft(ko,{children:u.map(e=>ft(_o,{option:e,onClick:x},e.type||e.label))}):null,l&&ft(yo,{children:l})]})},_o=({option:e,renderIcon:t=!0,onClick:i})=>{const n=!!e.items&&e.items.length>0,o=e.icon;return bt(So,{"data-id":`option-${e.type||e.label}`,$isList:n,onMouseDown:()=>n?null:i(e),children:[o&&t&&ft(o,{}),bt(Eo,{children:[bt(Do,{children:[ft(Io,{children:e.label}),ft(No,{children:e.description})]}),n&&ft(Oo,{children:e.items?.map(e=>bt(Ao,{children:[ft(To,{}),ft(_o,{option:e,renderIcon:!1,onClick:i})]},e.type||e.label))})]})]})},Ro=xt(e=>({activeNodeType:null,activeNodeId:null,setActiveNodeType:t=>e({activeNodeType:t}),setActiveNodeId:t=>e({activeNodeId:t})})),Bo=[{type:si.K8sAttributes,icon:pn(si.K8sAttributes),label:"Kubernetes Attributes",description:"Add dynamic k8s resource attributes to your data.",allowedSignals:[qi.Traces,qi.Metrics,qi.Logs],docsEndpoint:"/pipeline/actions/attributes/k8sattributes",docsDescription:"This action adds kubernetes related resource attributes to spans, metrics data points and log records."},{type:si.AddClusterInfo,icon:pn(si.AddClusterInfo),label:"Add Cluster Info",description:"Add static cluster-scoped attributes to your data.",allowedSignals:[qi.Traces,qi.Metrics,qi.Logs],docsEndpoint:"/pipeline/actions/attributes/addclusterinfo",docsDescription:"This action adds static resource attributes to spans, metrics data points and log records. It is useful to add cluster-wide attributes to all telemetry signals."},{type:si.DeleteAttributes,icon:pn(si.DeleteAttributes),label:"Delete Attribute",description:"Delete attributes from logs, metrics, and traces.",allowedSignals:[qi.Traces,qi.Metrics,qi.Logs],docsEndpoint:"/pipeline/actions/attributes/deleteattribute",docsDescription:"This action will delete the specified attributes from all telemetry signals that are specified in the signals field, regardless of the source, or any other condition."},{type:si.RenameAttributes,icon:pn(si.RenameAttributes),label:"Rename Attribute",description:"Rename attributes in logs, metrics, and traces.",allowedSignals:[qi.Traces,qi.Metrics,qi.Logs],docsEndpoint:"/pipeline/actions/attributes/renameattribute",docsDescription:"This action will rename the specified attributes from all telemetry signals that are specified in the signals field, regardless of the source, or any other condition."},{type:si.PiiMasking,icon:pn(si.PiiMasking),label:"PII Masking",description:"Mask PII data in your traces.",allowedSignals:[qi.Traces],docsEndpoint:"/pipeline/actions/attributes/piimasking",docsDescription:"This action processes a list of PII categories to be masked from the traces."},{type:si.URLTemplatization,icon:pn(si.URLTemplatization),label:"URL Templatization",description:"Replace dynamic URL path segments with named placeholders to reduce span cardinality.",allowedSignals:[qi.Traces],docsEndpoint:"/pipeline/actions/attributes/urltemplatization",docsDescription:"Normalizes HTTP URL paths by replacing dynamic segments (IDs, UUIDs, dates) with named placeholders (e.g. /user/1234 → /user/{id}). Reduces cardinality of http.route and span names, improving usability in telemetry backends.",minVersion:ro("v1.21.0")}],Mo=[{type:si.ErrorSampler,icon:pn(ai.Samplers),label:"Error Sampler",description:"Sample errors based on percentage.",allowedSignals:[qi.Traces],docsEndpoint:"/pipeline/actions/sampling/errorsampler",docsDescription:"This action is a Global Action that supports error sampling by filtering out non-error traces."},{type:si.LatencySampler,icon:pn(ai.Samplers),label:"Latency Sampler",description:"Add latency to your traces.",allowedSignals:[qi.Traces],docsEndpoint:"/pipeline/actions/sampling/latencysampler",docsDescription:"This action is an Endpoint Action that samples traces based on their duration for a specific service and endpoint (HTTP route) filter."},{type:si.ProbabilisticSampler,icon:pn(ai.Samplers),label:"Probabilistic Sampler",description:"Sample traces based on percentage.",allowedSignals:[qi.Traces],docsEndpoint:"/pipeline/actions/sampling/probabilisticsampler",docsDescription:"This action supports probabilistic sampling based on a configured sampling percentage applied to the TraceID."},{type:si.ServiceNameSampler,icon:pn(ai.Samplers),label:"Service Name Sampler",description:"Sample traces based on the presence of specified services within a trace.",allowedSignals:[qi.Traces],docsEndpoint:"/pipeline/actions/sampling/servicenamesampler",docsDescription:"This action supports service name sampling based on the presence of specified services within a trace."},{type:si.SpanAttributeSampler,icon:pn(ai.Samplers),label:"Span Attributes Sampler",description:"Sample traces based on the presence or value of specific attributes within a trace.",allowedSignals:[qi.Traces],docsEndpoint:"/pipeline/actions/sampling/spanattributesampler",docsDescription:"This action supports service name sampling based on the presence or value of specific attributes within a trace."}],Lo=[{label:"Attributes",icon:pn(ai.Attributes),items:Bo},{label:"Samplers",icon:pn(ai.Samplers),items:Mo}];var Po;!function(e){e.ALL="all",e.EXISTS="exists",e.DETECTED="detected",e.SELF_HOSTED="self-hosted",e.MANAGED="managed"}(Po||(Po={}));const jo={[Po.ALL]:{TITLE:"All",DESCRIPTION:"All destinations"},[Po.EXISTS]:{TITLE:"Already configured",DESCRIPTION:"These are destinations that you have already configured in other data-streams and can reuse them."},[Po.DETECTED]:{TITLE:"Detected by system",DESCRIPTION:"Odigos found these destinations in your cluster and pre-filled their details. Review and enable them to start sending data."},[Po.SELF_HOSTED]:{TITLE:"Self hosted",DESCRIPTION:"Full control and customization for advanced application monitoring."},[Po.MANAGED]:{TITLE:"Managed",DESCRIPTION:"Effortless monitoring with scalable performance management."}},Uo=[{type:Bi.CodeAttributes,icon:Cn(Bi.CodeAttributes),label:"Code Attributes",description:"Collect code attributes containing payload data to traces.",docsEndpoint:"/pipeline/rules/codeattributes",docsDescription:'The "Code Attributes" rule can be used to add code attributes containing payload data to traces.',supportedLanguages:[bi.Go,bi.Python]},{type:Bi.CustomInstrumentation,icon:Cn(Bi.CustomInstrumentation),label:"Custom Instrumentation",description:"Define custom instrumentation for specific class and methods (i.e. for Java) or explicit symbol (i.e. for Golang).",docsEndpoint:"/pipeline/rules/custominstrumentation",docsDescription:'The "Custom Instrumentation" rule can be used to instrument a specific symbol (i.e. for Golang), or a class and method combination (i.e. for Java) for detailed tracing.',supportedLanguages:[bi.Go,bi.Java]},{type:Bi.HeadersCollection,icon:Cn(Bi.HeadersCollection),label:"Headers Collection",description:"Collect span attributes containing HTTP Headers data to traces.",docsEndpoint:"/pipeline/rules/headerscollection",docsDescription:'The "Headers Collection" rule can be used to add span attributes containing HTTP Headers data to traces.',supportedLanguages:[bi.Go,bi.Java,bi.JavaScript]},{type:Bi.PayloadCollection,icon:Cn(Bi.PayloadCollection),label:"Payload Collection",description:"Collect span attributes containing payload data to traces.",docsEndpoint:"/pipeline/rules/payloadcollection",docsDescription:'The "Payload Collection" rule can be used to add span attributes containing payload data to traces.',supportedLanguages:[bi.Go]}],Wo=[{id:qi.Logs,value:"Logs"},{id:qi.Metrics,value:"Metrics"},{id:qi.Traces,value:"Traces"}],Vo={[bi.Go]:"Go",[bi.Java]:"Java",[bi.JavaScript]:"Node.js",[bi.Python]:"Python",[bi.DotNet]:".NET",[bi.CSharp]:"C#",[bi.CPlusPlus]:"C++",[bi.Php]:"PHP",[bi.Ruby]:"Ruby",[bi.Rust]:"Rust",[bi.Swift]:"Swift",[bi.Elixir]:"Elixir",[bi.MySql]:"MySQL",[bi.Nginx]:"Nginx",[bi.Postgres]:"PostgreSQL",[bi.Redis]:"Redis",[bi.Kafka]:"Kafka",[bi.Ignored]:"Ignored",[bi.Unknown]:"Unknown",[bi.Processing]:"Processing",[bi.NoContainers]:"No Containers",[bi.NoRunningPods]:"No Running Pods"},Go=[{id:bi.Go,value:Vo[bi.Go],icon:mn(bi.Go)},{id:bi.Java,value:Vo[bi.Java],icon:mn(bi.Java)},{id:bi.JavaScript,value:Vo[bi.JavaScript],icon:mn(bi.JavaScript)},{id:bi.Python,value:Vo[bi.Python],icon:mn(bi.Python)},{id:bi.Php,value:Vo[bi.Php],icon:mn(bi.Php)},{id:bi.Ruby,value:Vo[bi.Ruby],icon:mn(bi.Ruby)},{id:bi.Rust,value:Vo[bi.Rust],icon:mn(bi.Rust)},{id:bi.DotNet,value:Vo[bi.DotNet],icon:mn(bi.DotNet)},{id:bi.CSharp,value:Vo[bi.CSharp],icon:mn(bi.CSharp)},{id:bi.CPlusPlus,value:Vo[bi.CPlusPlus],icon:mn(bi.CPlusPlus)},{id:bi.Swift,value:Vo[bi.Swift],icon:mn(bi.Swift)},{id:bi.Elixir,value:Vo[bi.Elixir],icon:mn(bi.Elixir)}],qo={[bi.Go]:{community:[{id:_i.GolangCommunity,value:_i.GolangCommunity,icon:mn(bi.Go)}],enterprise:[{id:_i.GolangEnterprise,value:_i.GolangEnterprise,icon:mn(bi.Go)}]},[bi.JavaScript]:{community:[{id:_i.NodejsCommunity,value:_i.NodejsCommunity,icon:mn(bi.JavaScript)}],enterprise:[{id:_i.NodejsEnterprise,value:_i.NodejsEnterprise,icon:mn(bi.JavaScript)}]},[bi.Python]:{community:[{id:_i.PythonCommunity,value:_i.PythonCommunity,icon:mn(bi.Python)}],enterprise:[{id:_i.PythonEnterprise,value:_i.PythonEnterprise,icon:mn(bi.Python)}]},[bi.Java]:{community:[{id:_i.JavaCommunity,value:_i.JavaCommunity,icon:mn(bi.Java)}],enterprise:[{id:_i.JavaEnterprise,value:_i.JavaEnterprise,icon:mn(bi.Java)},{id:_i.JavaEbpfInstrumentations,value:_i.JavaEbpfInstrumentations,icon:mn(bi.Java)}]},[bi.DotNet]:{community:[{id:_i.DotNetCommunity,value:_i.DotNetCommunity,icon:mn(bi.DotNet)}],enterprise:[{id:_i.DotNetEnterprise,value:_i.DotNetEnterprise,icon:mn(bi.DotNet)}]},[bi.Ruby]:{community:[{id:_i.RubyCommunity,value:_i.RubyCommunity,icon:mn(bi.Ruby)}],enterprise:[{id:_i.RubyEnterprise,value:_i.RubyEnterprise,icon:mn(bi.Ruby)}]},[bi.Php]:{community:[{id:_i.PhpCommunity,value:_i.PhpCommunity,icon:mn(bi.Php)}],enterprise:[]},[bi.CSharp]:{community:[],enterprise:[{id:_i.CPlusPlusEnterprise,value:_i.CPlusPlusEnterprise,icon:mn(bi.CSharp)}]},[bi.MySql]:{community:[],enterprise:[{id:_i.MySqlEnterprise,value:_i.MySqlEnterprise,icon:mn(bi.MySql)}]},[bi.CPlusPlus]:{community:[],enterprise:[]},[bi.Rust]:{community:[],enterprise:[]},[bi.Swift]:{community:[],enterprise:[]},[bi.Elixir]:{community:[],enterprise:[]},[bi.Nginx]:{community:[],enterprise:[]},[bi.Postgres]:{community:[],enterprise:[]},[bi.Redis]:{community:[],enterprise:[]},[bi.Kafka]:{community:[],enterprise:[]},[bi.Ignored]:{community:[],enterprise:[]},[bi.Unknown]:{community:[],enterprise:[]},[bi.Processing]:{community:[],enterprise:[]},[bi.NoContainers]:{community:[],enterprise:[]},[bi.NoRunningPods]:{community:[],enterprise:[]}},Ho=6048e5,Ko=xt()(Ot(e=>({darkMode:!0,setDarkMode:t=>e({darkMode:t})}),{name:tn.DARK_MODE,storage:"undefined"!=typeof window?zt(()=>localStorage):void 0})),Yo={dataStreamsLoading:!1,dataStreams:[],selectedStreamName:""},Jo=xt(e=>({...Yo,setDataStreamsLoading:t=>e({dataStreamsLoading:t}),setDataStreams:t=>e({dataStreams:t}),addDataStreams:t=>e(e=>{const i=[...e.dataStreams,...t].map(e=>[e.name,e]);return{dataStreams:Array.from(new Map(i).values())}}),removeDataStreams:t=>e(e=>({dataStreams:e.dataStreams.filter(e=>!t.find(t=>t.name===e.name))})),setSelectedStreamName:t=>e({selectedStreamName:t}),resetDataStreamStore:()=>e(Yo)})),Xo=xt(e=>({drawerType:null,drawerEntityId:null,setDrawerType:t=>e({drawerType:t}),setDrawerEntityId:t=>e({drawerEntityId:t})})),Zo=xt(e=>({namespacesLoading:!1,namespaces:[],sourcesLoading:!1,sources:[],destinationsLoading:!1,destinations:[],actionsLoading:!1,actions:[],instrumentationRulesLoading:!1,instrumentationRules:[],setEntitiesLoading:(t,i)=>{const n=t===wi.Namespace?"namespacesLoading":t===wi.Source?"sourcesLoading":t===wi.Destination?"destinationsLoading":t===wi.Action?"actionsLoading":t===wi.InstrumentationRule?"instrumentationRulesLoading":"NONE";"NONE"!==n&&e({[n]:i})},setEntities:(t,i)=>{const n=t===wi.Namespace?"namespaces":t===wi.Source?"sources":t===wi.Destination?"destinations":t===wi.Action?"actions":t===wi.InstrumentationRule?"instrumentationRules":"NONE";"NONE"!==n&&e({[n]:i})},addEntities:(t,i)=>{const n=t===wi.Namespace?"namespaces":t===wi.Source?"sources":t===wi.Destination?"destinations":t===wi.Action?"actions":t===wi.InstrumentationRule?"instrumentationRules":"NONE";"NONE"!==n&&e(e=>{const t=[...e[n]],o=new Map;return t.forEach((e,t)=>{o.set(JSON.stringify(yn(e)),t)}),i.forEach(e=>{const i=JSON.stringify(yn(e)),n=o.get(i);void 0!==n?t[n]={...t[n],...e}:(o.set(i,t.length),t.push(e))}),{[n]:t}})},removeEntities:(t,i)=>{const n=t===wi.Namespace?"namespaces":t===wi.Source?"sources":t===wi.Destination?"destinations":t===wi.Action?"actions":t===wi.InstrumentationRule?"instrumentationRules":"NONE";"NONE"!==n&&e(e=>{const o=new Set;i.forEach(e=>{const i=t===wi.Source?JSON.stringify(yn(e)):String(e);o.add(i)});const r=e[n].filter(e=>{const i=t===wi.Source?JSON.stringify(yn(e)):String(yn(e));return!o.has(i)});return{[n]:r}})},resetEntityStore:()=>{e({namespacesLoading:!1,namespaces:[],sourcesLoading:!1,sources:[],destinationsLoading:!1,destinations:[],actionsLoading:!1,actions:[],instrumentationRulesLoading:!1,instrumentationRules:[]})}})),Qo=()=>({searchText:"",statuses:[],platformTypes:[],namespaces:[],kinds:[],monitors:[],languages:[],conditions:[],podsAgentInjectionStatus:[],errors:[],onlyErrors:!1}),er=xt(e=>({searchText:"",setSearchText:t=>e({searchText:t}),statuses:[],setStatuses:t=>e({statuses:t}),platformTypes:[],setPlatformTypes:t=>e({platformTypes:t}),namespaces:[],setNamespaces:t=>e({namespaces:t}),kinds:[],setKinds:t=>e({kinds:t}),monitors:[],setMonitors:t=>e({monitors:t}),languages:[],setLanguages:t=>e({languages:t}),conditions:[],setConditions:t=>e({conditions:t}),podsAgentInjectionStatus:[],setPodsAgentInjectionStatus:t=>e({podsAgentInjectionStatus:t}),errors:[],setErrors:t=>e({errors:t}),onlyErrors:!1,setOnlyErrors:t=>e({onlyErrors:t}),setAll:t=>e(t),clearAll:()=>e({searchText:"",statuses:[],platformTypes:[],namespaces:[],kinds:[],monitors:[],languages:[],conditions:[],podsAgentInjectionStatus:[],errors:[],onlyErrors:!1}),getEmptyState:Qo})),tr=xt(e=>({currentModal:"",setCurrentModal:t=>e({currentModal:t})})),ir=xt((e,t)=>({notifications:[],addNotification:i=>{const n=new Date,o=`${n.getTime().toString()}${i.target?`#${i.target}`:""}`,{notifications:r}=t();r.some(e=>e.type===i.type&&e.title===i.title&&e.message===i.message&&!e.dismissed)||e(e=>({notifications:[{...i,id:o,time:n.toISOString(),dismissed:!1,seen:!1},...e.notifications]}))},markAsDismissed:t=>{e(e=>{const i=e.notifications.findIndex(e=>e.id===t);return-1!==i&&(e.notifications[i].dismissed=!0),{notifications:e.notifications}})},markAsSeen:t=>{e(e=>{const i=e.notifications.findIndex(e=>e.id===t);return-1!==i&&(e.notifications[i].seen=!0),{notifications:e.notifications}})},removeNotification:t=>{e(e=>{const i=e.notifications.findIndex(e=>e.id===t);return-1!==i&&e.notifications.splice(i,1),{notifications:e.notifications}})},removeNotifications:t=>{t&&e(e=>({notifications:e.notifications.filter(e=>e.id.split("#")[1]!==t)}))}}));var nr;!function(e){e.Instrumenting="instrumenting",e.Uninstrumenting="uninstrumenting",e.BulkInstrumenting="bulk-instrumenting",e.BulkUninstrumenting="bulk-uninstrumenting",e.DownloadingDiagnose="downloading-diagnose"}(nr||(nr={}));const or=(e,t)=>({...t?.[e]||{total:0,current:0,percentage:0}}),rr=e=>(e.total<e.current&&(e.total=e.current+1),e.percentage=Math.round(e.current/e.total*100),e),ar=xt((e,t)=>({progress:{},setProgress:(i,n)=>{const o=t(),r=or();return"number"==typeof n.total&&(r.total=n.total),"number"==typeof n.current&&(r.current=n.current),Array.isArray(n.list)&&(r.list=n.list),e({progress:{...o.progress,[i]:rr(r)}})},addProgress:(i,n,o)=>{const r=t(),a=or(i,r.progress);return a.current+=n,o&&(a.list=a.list?.map(e=>e.label===o.label?{...e,status:o.status}:e)),e({progress:{...r.progress,[i]:rr(a)}})},resetProgress:t=>e({progress:{[t]:void 0}})})),sr=xt(e=>({selectedSources:{},setSelectedSources:t=>e({selectedSources:t}),resetSelectedState:()=>e(()=>({selectedSources:{},selectedConnection:null}))})),lr={configuredSources:{},configuredFutureApps:{},configuredDestinations:[],configuredDestinationsUpdateOnly:[]},cr=(e,t)=>e.destinationType.type!==t.destinationType.type,dr=xt(e=>({...lr,setConfiguredSources:t=>e({configuredSources:t}),setConfiguredFutureApps:t=>e({configuredFutureApps:t}),setConfiguredDestinations:t=>e({configuredDestinations:t}),addConfiguredDestination:t=>e(e=>({configuredDestinations:[...e.configuredDestinations,t]})),removeConfiguredDestination:t=>e(e=>({configuredDestinations:e.configuredDestinations.filter(e=>cr(e,t))})),setConfiguredDestinationsUpdateOnly:t=>e({configuredDestinationsUpdateOnly:t}),addConfiguredDestinationUpdateOnly:t=>e(e=>{const i=[...e.configuredDestinationsUpdateOnly,t].map(e=>[e.id,e]);return{configuredDestinationsUpdateOnly:Array.from(new Map(i).values())}}),removeConfiguredDestinationUpdateOnly:t=>e(e=>({configuredDestinationsUpdateOnly:e.configuredDestinationsUpdateOnly.filter(e=>cr(e,t))})),clearStore:()=>e(()=>({...lr}))})),pr={v2:{text:{size:{xxxs:10,xxs:12,xs:14,s:16,m:20,l:24,xl:32,xxl:40,xxxl:48}},colors:{black:{500:"#151618"},white:{500:"#FFFFFF"},purple:{100:"#E1D4FF",200:"#C3AAFF",300:"#A57FFF",400:"#8854FF",500:"#6A2AFF",600:"#5925D0",700:"#4822A2",800:"#371E73",900:"#271A45"},green:{100:"#DCFDFA",200:"#B9FBF6",300:"#96FAF1",400:"#73F8ED",500:"#50F6E8",600:"#44C9BE",700:"#399D94",800:"#2D6F6A",900:"#224340"},grey:{25:"#F6F6F6",50:"#ECECED",100:"#DADADB",150:"#B8B8B8",200:"#B4B5B7",300:"#8F9093",400:"#696B6F",500:"#44464B",600:"#3A3C40",700:"#313236",800:"#282A2E",900:"#1B1B1C"},silver:{25:"#F6F6F7",50:"#EDEDEE",100:"#DADCDE",200:"#B6B8BD",300:"#91959C",400:"#6D717B",500:"#484E5A",600:"#3E424C",700:"#34383F",750:"#2C2F36",800:"#26292F",900:"#1F2125",1e3:"#1B1C1D"},red:{100:"#FFE5E7",200:"#FFCBD0",300:"#FFB0B8",400:"#FF96A1",500:"#FF7C89",600:"#D06772",700:"#A2535B",800:"#733F44",900:"#452B2D",1e3:"#2E2022"},blue:{100:"#EBF0FA",200:"#D6E1F4",300:"#ADC3EA",400:"#84A4DF",500:"#5C86D5",600:"#3368CA",700:"#2D57A6",800:"#274782",900:"#21375E",1e3:"#1C273A"},yellow:{100:"#FFFBF1",200:"#FFF7E2",300:"#FFEFC6",400:"#FFE7A9",500:"#FFDF8D",600:"#FFD770",700:"#D0B05E",800:"#A28A4C",900:"#73633A",1e3:"#453D28"},beige:{600:"#EEC990"},pink:{600:"#F576A2"},orange:{600:"#F29142"}}},colors:{majestic_blue:"#444AD9",majestic_blue_soft:"#6C7AE8",orange_og:"#FE9239",orange_soft:"#FFB160",dark_red:"#802828",darker_red:"#611F1F",darkest_red:"#281515",darkest_red_hover:"#351515",dark_green:"#2D4323"},text:{},font_family:{primary:"Inter, sans-serif",secondary:"Kode Mono, sans-serif",code:"IBM Plex Mono, monospace"}},ur={v2:pr.v2,darkMode:!0,colors:{...pr.colors,primary:"#111111",secondary:"#F9F9F9",border:"#525252",dark_grey:"#151515",translucent_bg:"#1A1A1A",dropdown_bg:"#242424",dropdown_bg_2:"#333333",warning:"#472300",error:"#431919",success:"#172013",info:"#242424",default:"#181944"},text:{white:"#FFFFFF",primary:"#111111",secondary:"#F9F9F9",grey:"#B8B8B8",dark_grey:"#8F8F8F",darker_grey:"#7A7A7A",light_grey:"#CCD0D2",dark_button:"#0A1824",warning:"#E9CF35",warning_secondary:"#FFA349",error:"#EF7676",error_secondary:"#DB5151",success:"#81AF65",success_secondary:"#51DB51",info:"#B8B8B8",info_secondary:"#CCDDDD",default:"#AABEF7",default_secondary:"#8CBEFF"},font_family:pr.font_family},hr={v2:pr.v2,darkMode:!1,colors:{...pr.colors,primary:"#EEEEEE",secondary:"#060606",border:"#ADADAD",dark_grey:"#EAEAEA",translucent_bg:"#E5E5E5",dropdown_bg:"#DBDBDB",dropdown_bg_2:"#CCCCCC",warning:"#F6F092",error:"#FACECE",success:"#C8DEB8",info:"#E0E0E0",default:"#CAD9FB"},text:{white:"#FFFFFF",primary:"#EEEEEE",secondary:"#060606",grey:"#474747",dark_grey:"#707070",darker_grey:"#858585",light_grey:"#332F2D",dark_button:"#F5E7DB",warning:"#A56F12",warning_secondary:"#CA9416",error:"#B63A3A",error_secondary:"#DB5151",success:"#4E763A",success_secondary:"#67964C",info:"#525252",info_secondary:"#7A7A7A",default:"#444AD9",default_secondary:"#6C7AE8"},font_family:pr.font_family},mr=e=>e?ur:hr;var gr=Object.freeze({__proto__:null,baseTheme:pr,darkModeTheme:ur,getTheme:mr,lightModeTheme:hr});Ft('@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Kode+Mono:wght@100;200;300;400;500;600;700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Inter+Tight:wght@400;700&display=swap");@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap");*{-ms-overflow-style:none;scrollbar-width:none}::-webkit-scrollbar{display:none}*{animation-duration:.3s;animation-fill-mode:forwards;transition:all .3s}input{all:unset}input:-webkit-autofill,input:-webkit-autofill:active,input:-webkit-autofill:focus,input:-webkit-autofill:hover{-webkit-transition:all 50000s ease-in-out 0s;transition:all 50000s ease-in-out 0s}');const $r=({children:e})=>{const{darkMode:t}=Ko();return ft(Lt,{theme:mr(t),children:e})},xr={100:"FF","099":"FC","098":"FA","097":"F7","096":"F5","095":"F2","094":"F0","093":"ED","092":"EB","091":"E8","090":"E6","089":"E3","088":"E0","087":"DE","086":"DB","085":"D9","084":"D6","083":"D4","082":"D1","081":"CF","080":"CC","079":"C9","078":"C7","077":"C4","076":"C2","075":"BF","074":"BD","073":"BA","072":"B8","071":"B5","070":"B3","069":"B0","068":"AD","067":"AB","066":"A8","065":"A6","064":"A3","063":"A1","062":"9E","061":"9C","060":"99","059":"96","058":"94","057":"91","056":"8F","055":"8C","054":"8A","053":"87","052":"85","051":"82","050":"80","049":"7D","048":"7A","047":"78","046":"75","045":"73","044":"70","043":"6E","042":"6B","041":"69","040":"66","039":"63","038":"61","037":"5E","036":"5C","035":"59","034":"57","033":"54","032":"52","031":"4F","030":"4D","029":"4A","028":"47","027":"45","026":"42","025":"40","024":"3D","023":"3B","022":"38","021":"36","020":"33","019":"30","018":"2E","017":"2B","016":"29","015":"26","014":"24","013":"21","012":"1F","011":"1C","010":"1A","009":"17","008":"14","007":"12","006":"0F","005":"0D","004":"0A","003":"08","002":"05","001":"03","000":"00"};var fr=Object.freeze({__proto__:null,hex:xr});const br={in:{left:Pt`
147
147
  from { transform: translateX(-100%); }
148
148
  to { transform: translateX(0); }
149
149
  `,right:Pt`
@@ -2124,7 +2124,7 @@ import{SamplerIcon as e,PiiMaskingIcon as t,ActionIcon as i,RenameAttributeIcon
2124
2124
  background-clip: text;
2125
2125
  color: transparent;
2126
2126
  animation: ${Sh} 1s reverse linear infinite;
2127
- `,Ah=e=>{const t=Math.max(0,Date.now()-e),i=Math.floor(t/1e3),n=Math.floor(i/60),o=i%60;return`${String(n).padStart(2,"0")}:${String(o).padStart(2,"0")}`},Th=({icon:e,title:t,titleColor:i,titleSize:n=so.S,subTitle:o,subTitleColor:r,subTitleSize:a=so.XXXS,startedAt:s,withGradient:l,gradientColor:c,withSpinner:d,withSpinnerOld:p,percentage:u,withVisual:h,visualIcon:m=mt})=>{const g=Mt(),[$,x]=Ct(()=>s?Ah(s):"");kt(()=>{if(!s)return;x(Ah(s));const e=setInterval(()=>x(Ah(s)),1e3);return()=>clearInterval(e)},[s]);const f=i||g.v2.colors.white[500],b=r||g.v2.colors.silver[200],y=c||g.v2.colors.black[500];return bt(fa,{$gap:16,$alignItems:"center",children:[h?ft(bh,{scale:1.7,icon:m}):d?ft(uh,{percentage:u}):p?ft(xh,{scale:1}):null,(t||o||s||e)&&bt(fa,{$gap:8,$alignItems:"center",children:[bt(xa,{$gap:4,children:[e&&ft(e,{}),l?ft(Eh,{align:"center",size:n,$titleColor:f,$gradientColor:y,children:t}):ft(co,{align:"center",size:n,color:f,children:t})]}),o?ft(co,{align:"center",size:a,color:b,children:o}):null,$?ft(co,{align:"center",size:a,color:f,children:$}):null]})]})},Dh=Rt.div`
2127
+ `,Ah=e=>{const t=Math.max(0,Date.now()-e),i=Math.floor(t/1e3),n=Math.floor(i/60),o=i%60;return`${String(n).padStart(2,"0")}:${String(o).padStart(2,"0")}`},Th=({icon:e,title:t,titleColor:i,titleSize:n=so.S,subTitle:o,subTitleColor:r,subTitleSize:a=so.XXXS,startedAt:s,withGradient:l,gradientColor:c,withSpinner:d,withSpinnerOld:p,scaleSpinnerOld:u=1,percentage:h,withVisual:m,visualIcon:g=mt})=>{const $=Mt(),[x,f]=Ct(()=>s?Ah(s):"");kt(()=>{if(!s)return;f(Ah(s));const e=setInterval(()=>f(Ah(s)),1e3);return()=>clearInterval(e)},[s]);const b=i||$.v2.colors.white[500],y=r||$.v2.colors.silver[200],w=c||$.v2.colors.black[500];return bt(fa,{$gap:16,$alignItems:"center",children:[m?ft(bh,{scale:1.7,icon:g}):d?ft(uh,{percentage:h}):p?ft(xh,{scale:u}):null,(t||o||s||e)&&bt(fa,{$gap:8,$alignItems:"center",children:[bt(xa,{$gap:4,children:[e&&ft(e,{}),l?ft(Eh,{align:"center",size:n,$titleColor:b,$gradientColor:w,children:t}):ft(co,{align:"center",size:n,color:b,children:t})]}),o?ft(co,{align:"center",size:a,color:y,children:o}):null,x?ft(co,{align:"center",size:a,color:b,children:x}):null]})]})},Dh=Rt.div`
2128
2128
  position: ${({$relativeToParent:e})=>e?"absolute":"fixed"};
2129
2129
  top: 50%;
2130
2130
  left: 50%;
@@ -14,6 +14,7 @@ export interface LoaderProps {
14
14
  gradientColor?: string;
15
15
  withSpinner?: boolean;
16
16
  withSpinnerOld?: boolean;
17
+ scaleSpinnerOld?: number;
17
18
  percentage?: number;
18
19
  withVisual?: boolean;
19
20
  visualIcon?: SVG;
@@ -1 +1 @@
1
- export{_ as Badge,B as Button,h as ButtonSize,dW as ButtonTab,dX as ButtonTabList,j as ButtonVariants,C as Checkbox,dY as CheckboxList,dZ as CheckboxSize,aM as CliCommand,aB as DataCard,o as Drawer,ay as DropData,aA as DropDataAlignX,az as DropDataAlignY,y as DropDown,b as FieldMessage,a as FieldTitle,d_ as Header,cy as HoverActions,a7 as IconButton,a8 as IconButtonSize,I as Input,f as InputList,d as InputTable,aJ as Island,L as Loader,d$ as Modal,e0 as Navbar,N as NoData,r as Note,e1 as Radio,e2 as RadioGroup,e3 as RadioSize,q as Search,aw as SectionCard,e4 as SectionCardSize,v as Segment,ac as SegmentSize,aP as StatusCard,aH as Table,aI as TableVariant,e5 as Tag,w as TextArea,aQ as TextCard,T as Toggle,e as ToggleLabelAlign,e6 as ToggleList,ak as ToggleSize,e7 as ToggleVariant,t as Typography,p as TypographySize,al as TypographyVariants,W as WarningModal}from"../chunks/ui-components-CwVshImz.js";import"../icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
1
+ export{_ as Badge,B as Button,h as ButtonSize,dW as ButtonTab,dX as ButtonTabList,j as ButtonVariants,C as Checkbox,dY as CheckboxList,dZ as CheckboxSize,aM as CliCommand,aB as DataCard,o as Drawer,ay as DropData,aA as DropDataAlignX,az as DropDataAlignY,y as DropDown,b as FieldMessage,a as FieldTitle,d_ as Header,cy as HoverActions,a7 as IconButton,a8 as IconButtonSize,I as Input,f as InputList,d as InputTable,aJ as Island,L as Loader,d$ as Modal,e0 as Navbar,N as NoData,r as Note,e1 as Radio,e2 as RadioGroup,e3 as RadioSize,q as Search,aw as SectionCard,e4 as SectionCardSize,v as Segment,ac as SegmentSize,aP as StatusCard,aH as Table,aI as TableVariant,e5 as Tag,w as TextArea,aQ as TextCard,T as Toggle,e as ToggleLabelAlign,e6 as ToggleList,ak as ToggleSize,e7 as ToggleVariant,t as Typography,p as TypographySize,al as TypographyVariants,W as WarningModal}from"../chunks/ui-components-CxdeQcW1.js";import"../icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
package/lib/components.js CHANGED
@@ -1 +1 @@
1
- export{bo as AutocompleteInput,bI as Badge,bK as Button,bb as CancelWarning,n as CenterThis,aV as Checkbox,cP as Code,bf as ConditionDetails,bg as DataCard,aT as DataCardFieldTypes,cg as DataCardFields,dG as DataFinger,bM as DataTab,ba as DeleteWarning,cw as DescribeRow,D as Divider,b4 as DocsButton,b9 as Drawer,dH as DrawerFooter,dI as DrawerHeader,c2 as Dropdown,dJ as ErrorBoundary,c7 as ExtendArrow,aL as FadeLoader,aW as FieldError,aU as FieldLabel,F as FlexColumn,g as FlexRow,dK as Header,b0 as IconButton,cH as IconGroup,bC as IconTitleBadge,bx as IconWrapped,cs as IconsNav,dL as ImageControlled,aX as Input,a$ as InputList,aY as InputTable,bF as InteractiveTable,a_ as KeyValueInputsList,dM as LoadingText,bl as Modal,bm as ModalBody,b5 as MonitorsCheckboxes,bz as MonitorsIcons,bp as NavigationButtons,bG as NoDataFound,bn as NotificationNote,dN as Overlay,aG as PageContent,bZ as Popup,cJ as PopupForm,cO as ScrollX,S as ScrollY,b3 as SectionTitle,b2 as Segment,b$ as SelectionButton,bR as SkeletonLoader,br as Status,cf as Stepper,dO as TabList,bA as TableContainer,bB as TableTitleWrap,bE as TableWrap,ci as Tag,b7 as Text,b6 as TextArea,aZ as Toggle,cM as ToggleCodeComponent,O as Tooltip,bH as TraceLoader,aS as UpgradeRequiredWrapper,b_ as VerticalScroll,cl as WarningModal,dP as WhiteSpace,dQ as getLinksFromText,dR as getStrongsFromText,dS as renderText}from"./chunks/ui-components-CwVshImz.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
1
+ export{bo as AutocompleteInput,bI as Badge,bK as Button,bb as CancelWarning,n as CenterThis,aV as Checkbox,cP as Code,bf as ConditionDetails,bg as DataCard,aT as DataCardFieldTypes,cg as DataCardFields,dG as DataFinger,bM as DataTab,ba as DeleteWarning,cw as DescribeRow,D as Divider,b4 as DocsButton,b9 as Drawer,dH as DrawerFooter,dI as DrawerHeader,c2 as Dropdown,dJ as ErrorBoundary,c7 as ExtendArrow,aL as FadeLoader,aW as FieldError,aU as FieldLabel,F as FlexColumn,g as FlexRow,dK as Header,b0 as IconButton,cH as IconGroup,bC as IconTitleBadge,bx as IconWrapped,cs as IconsNav,dL as ImageControlled,aX as Input,a$ as InputList,aY as InputTable,bF as InteractiveTable,a_ as KeyValueInputsList,dM as LoadingText,bl as Modal,bm as ModalBody,b5 as MonitorsCheckboxes,bz as MonitorsIcons,bp as NavigationButtons,bG as NoDataFound,bn as NotificationNote,dN as Overlay,aG as PageContent,bZ as Popup,cJ as PopupForm,cO as ScrollX,S as ScrollY,b3 as SectionTitle,b2 as Segment,b$ as SelectionButton,bR as SkeletonLoader,br as Status,cf as Stepper,dO as TabList,bA as TableContainer,bB as TableTitleWrap,bE as TableWrap,ci as Tag,b7 as Text,b6 as TextArea,aZ as Toggle,cM as ToggleCodeComponent,O as Tooltip,bH as TraceLoader,aS as UpgradeRequiredWrapper,b_ as VerticalScroll,cl as WarningModal,dP as WhiteSpace,dQ as getLinksFromText,dR as getStrongsFromText,dS as renderText}from"./chunks/ui-components-CxdeQcW1.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
package/lib/constants.js CHANGED
@@ -1 +1 @@
1
- export{a2 as ACTION_ATTRIBUTE_OPTIONS,be as ACTION_OPTIONS,a3 as ACTION_SAMPLER_OPTIONS,aF as BUTTON_TEXTS,ap as DEFAULT_DATA_STREAM_NAME,aa as DESTINATION_CATEGORIES,$ as DISPLAY_LANGUAGES,a5 as DISPLAY_TITLES,u as DOCS_BASE_URL,a9 as DestinationCategoryTypes,a6 as FORM_ALERTS,ae as INSTRUMENTATION_RULE_OPTIONS,ds as LANGUAGE_OPTIONS,M as MONITORS_OPTIONS,dt as OTEL_DISTRO_NAME_OPTIONS,c3 as STORAGE_KEYS,du as TOKEN_ABOUT_TO_EXPIRE}from"./chunks/ui-components-CwVshImz.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
1
+ export{a2 as ACTION_ATTRIBUTE_OPTIONS,be as ACTION_OPTIONS,a3 as ACTION_SAMPLER_OPTIONS,aF as BUTTON_TEXTS,ap as DEFAULT_DATA_STREAM_NAME,aa as DESTINATION_CATEGORIES,$ as DISPLAY_LANGUAGES,a5 as DISPLAY_TITLES,u as DOCS_BASE_URL,a9 as DestinationCategoryTypes,a6 as FORM_ALERTS,ae as INSTRUMENTATION_RULE_OPTIONS,ds as LANGUAGE_OPTIONS,M as MONITORS_OPTIONS,dt as OTEL_DISTRO_NAME_OPTIONS,c3 as STORAGE_KEYS,du as TOKEN_ABOUT_TO_EXPIRE}from"./chunks/ui-components-CxdeQcW1.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
@@ -1,4 +1,4 @@
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-CwVshImz.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-pLAVCKXo.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 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-CxdeQcW1.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-C27kJv0Y.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`
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  justify-content: flex-end;
@@ -120,12 +120,14 @@ import{jsxs as e,jsx as t,Fragment as l}from"react/jsx-runtime";import{useEffect
120
120
  background-color: ${({theme:e,$isExpired:t})=>t?e.v2.colors.red[1e3]:e.v2.colors.silver[800]};
121
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`
122
122
  display: flex;
123
+ flex-direction: column;
123
124
  align-items: center;
124
125
  justify-content: center;
126
+ gap: 12px;
125
127
  padding: 12px 24px;
126
128
  border-radius: 8px;
127
129
  background-color: ${({theme:e})=>e.v2.colors.silver[800]};
128
- `,ka=({downloadDiagnose:l})=>{const a=h(),{namespaces:n}=Ge(),[i,r]=o(null),{formData:s,handleFormChange:c,resetFormData:d}=Ce({includeProfiles:!0,includeMetrics:!0,includeSourceWorkloads:!1,sourceWorkloadNamespaces:[]});return t(_e,{richTitle:{icon:zt,title:"Diagnose"},children:i?t(va,{children:t(H,{title:"Creating file...",subTitle:"This may take a few moments. Do not refresh the page.",startedAt:i,withGradient:!0,withVisual:!0,visualIcon:jt})}):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:s.includeProfiles,onChange:e=>c("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:s.includeMetrics,onChange:e=>c("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:s.includeSourceWorkloads,onChange:e=>{c("includeSourceWorkloads",e),e&&c("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:n.map(e=>({id:e.name,label:e.name,withCheckbox:!0})),selectedIds:s.sourceWorkloadNamespaces,setSelectedIds:e=>c("sourceWorkloadNamespaces",e),withMultiSelect:!0,withSearch:!0,fullWidth:!0,buttonProps:{label:(s.sourceWorkloadNamespaces.length?"Selected":"Select")+" Namespaces",variant:O.Secondary,disabled:s.includeSourceWorkloads,leftIcon:s.sourceWorkloadNamespaces.length?()=>t(pe,{label:s.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()=>{r(Date.now()),await l(s),r(null),d()},disabled:null!==i})})]})})},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`
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`
129
131
  display: flex;
130
132
  align-items: center;
131
133
  justify-content: space-between;
package/lib/containers.js CHANGED
@@ -1,4 +1,4 @@
1
- import{jsxs as e,jsx as t,Fragment as i}from"react/jsx-runtime";import{useState as n,useEffect as o,Fragment as a,forwardRef as r,useRef as l,useImperativeHandle as s,useMemo as c,useCallback as d,Children as u}from"react";import p,{css as h,useTheme as m}from"styled-components";import{a5 as g,aT as y,l as v,K as f,A as b,aU as x,aV as $,aW as S,aX as C,c as k,i as w,aY as D,aZ as T,a_ as N,a$ as E,D as A,F,g as O,b0 as I,b1 as M,k as R,b2 as P,a1 as L,b3 as K,b4 as j,b5 as z,b6 as q,b7 as B,b8 as V,at as H,aF as W,b9 as _,ba as J,bb as U,aq as G,ax as Y,bc as X,bd as Z,be as Q,bf as ee,bg as te,bh as ie,bi as ne,af as oe,bj as ae,bk as re,bl as le,bm as se,bn as ce,s as de,a6 as ue,bo as pe,bp as he,bq as me,br as ge,bs as ye,bt as ve,O as fe,bu as be,bv as xe,bw as $e,bx as Se,by as Ce,bz as ke,bA as we,bB as De,bC as Te,bD as Ne,bE as Ee,bF as Ae,n as Fe,bG as Oe,bH as Ie,bI as Me,bJ as Re,aL as Pe,bK as Le,bL as Ke,bM as je,bN as ze,S as qe,H as Be,bO as Ve,bP as He,ab as We,bQ as _e,ao as Je,ar as Ue,bR as Ge,ad as Ye,bS as Xe,bT as Ze,bU as Qe,bV as et,bW as tt,bX as it,bY as nt,bZ as ot,b_ as at,b$ as rt,c0 as lt,c1 as st,c2 as ct,$ as dt,M as ut,c3 as pt,c4 as ht,c5 as mt,c6 as gt,ap as yt,c7 as vt,c8 as ft,c9 as bt,ca as xt,x as $t,z as St,G as Ct,cb as kt,cc as wt,cd as Dt,E as Tt,a9 as Nt,m as Et,aa as At,ce as Ft,cf as Ot,cg as It,ch as Mt,P as Rt,X as Pt,Y as Lt,U as Kt,J as jt,Q as zt,Z as qt,ci as Bt,a0 as Vt,cj as Ht,ck as Wt,ae as _t,aj as Jt,cl as Ut,cm as Gt,cn as Yt,au as Xt,co as Zt,cp as Qt,cq as ei,ah as ti,cr as ii,cs as ni,ct as oi,cu as ai,cv as ri,cw as li,cx as si,cy as ci,aC as di,cz as ui,cA as pi,cB as hi,cC as mi,cD as gi,cE as yi,cF as vi,cG as fi,cH as bi,cI as xi,av as $i,as as Si,a4 as Ci,a8 as ki,cJ as wi,cK as Di,cL as Ti,cM as Ni,cN as Ei,cO as Ai}from"./chunks/ui-components-CwVshImz.js";import{TrashIcon as Fi,VSquareIcon as Oi,XSquareIcon as Ii,EditIcon as Mi,OdigosLogoText as Ri,PlusIcon as Pi,RefreshIcon as Li,SearchIcon as Ki,FilterIcon as ji,DataStreamIcon as zi,VIcon as qi,OdigosLogo as Bi,ArrowIcon as Vi,RefreshLeftArrowIcon as Hi,NotificationIcon as Wi,UserIcon as _i,ImageErrorIcon as Ji,OverviewIcon as Ui,SourceIcon as Gi,DestinationIcon as Yi,InstrumentationRuleIcon as Xi,ActionIcon as Zi,SlackLogo as Qi,KeyIcon as en,TerminalIcon as tn,ExclamationTriangleIcon as nn,TraceViewIcon as on}from"./icons.js";import{MarkerType as an,useNodesState as rn,useEdgesState as ln}from"@xyflow/react";import{E as sn}from"./chunks/vendor-D99eCWta.js";import{Y as cn}from"./chunks/index-pLAVCKXo.js";import"zustand";import"javascript-time-ago";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";const dn=e=>{const{type:t,name:i,notes:n,signals:o,disabled:a,fields:{collectContainerAttributes:r,collectReplicaSetAttributes:l,collectWorkloadId:s,collectClusterId:c,labelsAttributes:d,annotationsAttributes:u,clusterAttributes:p,overwriteExistingValues:h,attributeNamesToDelete:m,renames:b,piiCategories:x,fallbackSamplingRatio:$,samplingPercentage:S,endpointsFilters:C,servicesNameFilters:k,attributeFilters:w,urlTemplatizationRulesGroups:D}}=e,T=[{title:g.TYPE,value:t},{type:y.ActiveStatus,title:g.STATUS,value:String(!a)},{type:y.Monitors,title:g.SIGNALS_FOR_PROCESSING,value:o?.join(", ")||""},{title:g.NAME,value:i||""},{title:g.NOTES,value:n||""},{type:y.Divider}];if(t===v.K8sAttributes&&(T.push({title:"Collect Container Attributes",value:String(r)}),T.push({title:"Collect ReplicaSet Attributes",value:String(l)}),T.push({title:"Collect Workload ID",value:String(s)}),T.push({title:"Collect Cluster ID",value:String(c)}),d?.length&&T.push({type:y.Divider}),d?.forEach(({labelKey:e,attributeKey:t,from:i,fromSources:n},o)=>{let a="";a+=`Label Key: ${e}\n`,a+=`Attribute Key: ${t}\n`,a+=`From: ${n?.length?n.join(", "):i||f.Pod}\n`,T.push({title:"Label"+(d.length>1?` #${o+1}`:""),value:a})}),u?.length&&T.push({type:y.Divider}),u?.forEach(({annotationKey:e,attributeKey:t,from:i,fromSources:n},o)=>{let a="";a+=`Annotation Key: ${e}\n`,a+=`Attribute Key: ${t}\n`,a+=`From: ${n?.length?n.join(", "):i||f.Pod}\n`,T.push({title:"Annotation"+(u.length>1?` #${o+1}`:""),value:a})})),t===v.AddClusterInfo){T.push({title:"Overwrite Existing Values",value:String(h||!1)});let e="";p?.forEach(({attributeName:t,attributeStringValue:i},n)=>{e+=`${t}: ${i}`,n<p.length-1&&(e+=", ")}),T.push({title:"Attributes",value:e})}if(t===v.DeleteAttributes){let e="";m?.forEach((t,i)=>{e+=t,i<m.length-1&&(e+=", ")}),T.push({title:"Attributes",value:e})}if(t===v.RenameAttributes){let e="";const t=Object.entries(b||{});t.forEach(([i,n],o)=>{e+=`${i}: ${n}`,o<t.length-1&&(e+=", ")}),T.push({title:"Attributes",value:e})}if(t===v.PiiMasking){let e="";x?.forEach((t,i)=>{e+=t,i<x.length-1&&(e+=", ")}),T.push({title:"Categories",value:e})}return t===v.ErrorSampler&&T.push({title:"Sampling Ratio",value:String($)}),t===v.ProbabilisticSampler&&T.push({title:"Sampling Percentage",value:String(S)}),t===v.LatencySampler&&C?.forEach(({serviceName:e,httpRoute:t,minimumLatencyThreshold:i,fallbackSamplingRatio:n},o)=>{let a="";a+=`Service Name: ${e}\n`,a+=`HTTP Route: ${t}\n`,a+=`Min. Latency: ${i}\n`,a+=`Fallback Sampling Ratio: ${n}`,T.push({title:"Endpoint"+(C.length>1?` #${o+1}`:""),value:a})}),t===v.ServiceNameSampler&&k?.forEach(({serviceName:e,samplingRatio:t,fallbackSamplingRatio:i},n)=>{let o="";o+=`Service Name: ${e}\n`,o+=`Sampling Ratio: ${t}\n`,o+=`Fallback Sampling Ratio: ${i}`,T.push({title:"Filter"+(k.length>1?` #${n+1}`:""),value:o})}),t===v.SpanAttributeSampler&&w?.forEach(({serviceName:e,attributeKey:t,fallbackSamplingRatio:i,condition:n},o)=>{let a="";a+=`Service Name: ${e}\n`,a+=`Attribute Key: ${t}\n`,a+=`Fallback Sampling Ratio: ${i}\n`;const r=Object.keys(n)[0];a+=`Condition: ${r}\n`,a+=`Operation: ${n[r]?.operation}\n`,a+=`Expected Value: ${n[r]?.expectedValue}`,"jsonCondition"===r&&(a+=`\nJSON Path: ${n[r].jsonPath}`),T.push({title:"Filter"+(w.length>1?` #${o+1}`:""),value:a})}),t===v.URLTemplatization&&D?.forEach((e,t)=>{let i="";e.filterK8sNamespace&&(i+=`Namespace: ${e.filterK8sNamespace}\n`),e.workloadFilters?.length&&e.workloadFilters.forEach(e=>{const t=[e.kind,e.name].filter(Boolean).join("/");t&&(i+=`Workload: ${t}\n`)});const n=e.templatizationRules?.map(e=>e.template).filter(Boolean).join(", ");i+=`Templates: ${n}`,e.notes&&(i+=`\nNotes: ${e.notes}`),T.push({title:"Group"+(D.length>1?` #${t+1}`:""),value:i})}),T},un=b.PiiCategories,pn=p.div`
1
+ import{jsxs as e,jsx as t,Fragment as i}from"react/jsx-runtime";import{useState as n,useEffect as o,Fragment as a,forwardRef as r,useRef as l,useImperativeHandle as s,useMemo as c,useCallback as d,Children as u}from"react";import p,{css as h,useTheme as m}from"styled-components";import{a5 as g,aT as y,l as v,K as f,A as b,aU as x,aV as $,aW as S,aX as C,c as k,i as w,aY as D,aZ as T,a_ as N,a$ as E,D as A,F,g as O,b0 as I,b1 as M,k as R,b2 as P,a1 as L,b3 as K,b4 as j,b5 as z,b6 as q,b7 as B,b8 as V,at as H,aF as W,b9 as _,ba as J,bb as U,aq as G,ax as Y,bc as X,bd as Z,be as Q,bf as ee,bg as te,bh as ie,bi as ne,af as oe,bj as ae,bk as re,bl as le,bm as se,bn as ce,s as de,a6 as ue,bo as pe,bp as he,bq as me,br as ge,bs as ye,bt as ve,O as fe,bu as be,bv as xe,bw as $e,bx as Se,by as Ce,bz as ke,bA as we,bB as De,bC as Te,bD as Ne,bE as Ee,bF as Ae,n as Fe,bG as Oe,bH as Ie,bI as Me,bJ as Re,aL as Pe,bK as Le,bL as Ke,bM as je,bN as ze,S as qe,H as Be,bO as Ve,bP as He,ab as We,bQ as _e,ao as Je,ar as Ue,bR as Ge,ad as Ye,bS as Xe,bT as Ze,bU as Qe,bV as et,bW as tt,bX as it,bY as nt,bZ as ot,b_ as at,b$ as rt,c0 as lt,c1 as st,c2 as ct,$ as dt,M as ut,c3 as pt,c4 as ht,c5 as mt,c6 as gt,ap as yt,c7 as vt,c8 as ft,c9 as bt,ca as xt,x as $t,z as St,G as Ct,cb as kt,cc as wt,cd as Dt,E as Tt,a9 as Nt,m as Et,aa as At,ce as Ft,cf as Ot,cg as It,ch as Mt,P as Rt,X as Pt,Y as Lt,U as Kt,J as jt,Q as zt,Z as qt,ci as Bt,a0 as Vt,cj as Ht,ck as Wt,ae as _t,aj as Jt,cl as Ut,cm as Gt,cn as Yt,au as Xt,co as Zt,cp as Qt,cq as ei,ah as ti,cr as ii,cs as ni,ct as oi,cu as ai,cv as ri,cw as li,cx as si,cy as ci,aC as di,cz as ui,cA as pi,cB as hi,cC as mi,cD as gi,cE as yi,cF as vi,cG as fi,cH as bi,cI as xi,av as $i,as as Si,a4 as Ci,a8 as ki,cJ as wi,cK as Di,cL as Ti,cM as Ni,cN as Ei,cO as Ai}from"./chunks/ui-components-CxdeQcW1.js";import{TrashIcon as Fi,VSquareIcon as Oi,XSquareIcon as Ii,EditIcon as Mi,OdigosLogoText as Ri,PlusIcon as Pi,RefreshIcon as Li,SearchIcon as Ki,FilterIcon as ji,DataStreamIcon as zi,VIcon as qi,OdigosLogo as Bi,ArrowIcon as Vi,RefreshLeftArrowIcon as Hi,NotificationIcon as Wi,UserIcon as _i,ImageErrorIcon as Ji,OverviewIcon as Ui,SourceIcon as Gi,DestinationIcon as Yi,InstrumentationRuleIcon as Xi,ActionIcon as Zi,SlackLogo as Qi,KeyIcon as en,TerminalIcon as tn,ExclamationTriangleIcon as nn,TraceViewIcon as on}from"./icons.js";import{MarkerType as an,useNodesState as rn,useEdgesState as ln}from"@xyflow/react";import{E as sn}from"./chunks/vendor-D99eCWta.js";import{Y as cn}from"./chunks/index-C27kJv0Y.js";import"zustand";import"javascript-time-ago";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";import"virtua";const dn=e=>{const{type:t,name:i,notes:n,signals:o,disabled:a,fields:{collectContainerAttributes:r,collectReplicaSetAttributes:l,collectWorkloadId:s,collectClusterId:c,labelsAttributes:d,annotationsAttributes:u,clusterAttributes:p,overwriteExistingValues:h,attributeNamesToDelete:m,renames:b,piiCategories:x,fallbackSamplingRatio:$,samplingPercentage:S,endpointsFilters:C,servicesNameFilters:k,attributeFilters:w,urlTemplatizationRulesGroups:D}}=e,T=[{title:g.TYPE,value:t},{type:y.ActiveStatus,title:g.STATUS,value:String(!a)},{type:y.Monitors,title:g.SIGNALS_FOR_PROCESSING,value:o?.join(", ")||""},{title:g.NAME,value:i||""},{title:g.NOTES,value:n||""},{type:y.Divider}];if(t===v.K8sAttributes&&(T.push({title:"Collect Container Attributes",value:String(r)}),T.push({title:"Collect ReplicaSet Attributes",value:String(l)}),T.push({title:"Collect Workload ID",value:String(s)}),T.push({title:"Collect Cluster ID",value:String(c)}),d?.length&&T.push({type:y.Divider}),d?.forEach(({labelKey:e,attributeKey:t,from:i,fromSources:n},o)=>{let a="";a+=`Label Key: ${e}\n`,a+=`Attribute Key: ${t}\n`,a+=`From: ${n?.length?n.join(", "):i||f.Pod}\n`,T.push({title:"Label"+(d.length>1?` #${o+1}`:""),value:a})}),u?.length&&T.push({type:y.Divider}),u?.forEach(({annotationKey:e,attributeKey:t,from:i,fromSources:n},o)=>{let a="";a+=`Annotation Key: ${e}\n`,a+=`Attribute Key: ${t}\n`,a+=`From: ${n?.length?n.join(", "):i||f.Pod}\n`,T.push({title:"Annotation"+(u.length>1?` #${o+1}`:""),value:a})})),t===v.AddClusterInfo){T.push({title:"Overwrite Existing Values",value:String(h||!1)});let e="";p?.forEach(({attributeName:t,attributeStringValue:i},n)=>{e+=`${t}: ${i}`,n<p.length-1&&(e+=", ")}),T.push({title:"Attributes",value:e})}if(t===v.DeleteAttributes){let e="";m?.forEach((t,i)=>{e+=t,i<m.length-1&&(e+=", ")}),T.push({title:"Attributes",value:e})}if(t===v.RenameAttributes){let e="";const t=Object.entries(b||{});t.forEach(([i,n],o)=>{e+=`${i}: ${n}`,o<t.length-1&&(e+=", ")}),T.push({title:"Attributes",value:e})}if(t===v.PiiMasking){let e="";x?.forEach((t,i)=>{e+=t,i<x.length-1&&(e+=", ")}),T.push({title:"Categories",value:e})}return t===v.ErrorSampler&&T.push({title:"Sampling Ratio",value:String($)}),t===v.ProbabilisticSampler&&T.push({title:"Sampling Percentage",value:String(S)}),t===v.LatencySampler&&C?.forEach(({serviceName:e,httpRoute:t,minimumLatencyThreshold:i,fallbackSamplingRatio:n},o)=>{let a="";a+=`Service Name: ${e}\n`,a+=`HTTP Route: ${t}\n`,a+=`Min. Latency: ${i}\n`,a+=`Fallback Sampling Ratio: ${n}`,T.push({title:"Endpoint"+(C.length>1?` #${o+1}`:""),value:a})}),t===v.ServiceNameSampler&&k?.forEach(({serviceName:e,samplingRatio:t,fallbackSamplingRatio:i},n)=>{let o="";o+=`Service Name: ${e}\n`,o+=`Sampling Ratio: ${t}\n`,o+=`Fallback Sampling Ratio: ${i}`,T.push({title:"Filter"+(k.length>1?` #${n+1}`:""),value:o})}),t===v.SpanAttributeSampler&&w?.forEach(({serviceName:e,attributeKey:t,fallbackSamplingRatio:i,condition:n},o)=>{let a="";a+=`Service Name: ${e}\n`,a+=`Attribute Key: ${t}\n`,a+=`Fallback Sampling Ratio: ${i}\n`;const r=Object.keys(n)[0];a+=`Condition: ${r}\n`,a+=`Operation: ${n[r]?.operation}\n`,a+=`Expected Value: ${n[r]?.expectedValue}`,"jsonCondition"===r&&(a+=`\nJSON Path: ${n[r].jsonPath}`),T.push({title:"Filter"+(w.length>1?` #${o+1}`:""),value:a})}),t===v.URLTemplatization&&D?.forEach((e,t)=>{let i="";e.filterK8sNamespace&&(i+=`Namespace: ${e.filterK8sNamespace}\n`),e.workloadFilters?.length&&e.workloadFilters.forEach(e=>{const t=[e.kind,e.name].filter(Boolean).join("/");t&&(i+=`Workload: ${t}\n`)});const n=e.templatizationRules?.map(e=>e.template).filter(Boolean).join(", ");i+=`Templates: ${n}`,e.notes&&(i+=`\nNotes: ${e.notes}`),T.push({title:"Group"+(D.length>1?` #${t+1}`:""),value:i})}),T},un=b.PiiCategories,pn=p.div`
2
2
  display: flex;
3
3
  flex-direction: row;
4
4
  gap: 32px;
package/lib/contexts.js CHANGED
@@ -1 +1 @@
1
- export{dA as OdigosProvider,dB as StorybookProvider,aD as checkVersionSupport,af as useOdigos,dC as useStorybook}from"./chunks/ui-components-CwVshImz.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
1
+ export{dA as OdigosProvider,dB as StorybookProvider,aD as checkVersionSupport,af as useOdigos,dC as useStorybook}from"./chunks/ui-components-CxdeQcW1.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
package/lib/functions.js CHANGED
@@ -1 +1 @@
1
- export{cd as capitalizeFirstLetter,d8 as cleanObjectEmptyStringsValues,x as compareCondition,m as deepClone,bw as filterActions,bW as filterDestinations,bU as filterDestinationsByStream,bV as filterSources,bT as filterSourcesByStream,d9 as flattenObjectKeys,bO as formatBytes,cL as formatDuration,aC as generateId,bh as getActionIcon,bq as getConditionsBooleans,cF as getContainersIcons,cI as getContainersInstrumentedCount,ab as getDestinationIcon,da as getDetectedLanguageIcons,bD as getEntityIcon,bd as getEntityId,by as getEntityLabel,db as getIdFromSseTarget,bP as getInstrumentationRuleIcon,dc as getMainContainerLanguage,ch as getMetricForEntity,dd as getMonitorIcon,de as getPlatformIcon,df as getPlatformLabel,a0 as getProgrammingLanguageIcon,cN as getRecursiveValues,bQ as getSourceLanguageIcons,dg as getSseTargetFromId,dh as getStatusColor,aK as getStatusFromPodStatus,bu as getStatusIcon,ct as getStatusTypeFromOdigosHealth,di as getValueForRange,cn as getWorkloadId,cc as getYamlFieldsForDestination,cu as hasUnhealthyInstances,i as isEmpty,dj as isLegalK8sLabel,av as isOverTime,cz as isStringABoolean,dk as isTimeElapsed,dl as isValidVersion,bt as mapConditions,ca as mapDestinationFieldsForDisplay,H as mapExportedSignals,E as mapSupportedSignals,dm as numbersOnly,cA as parseBooleanFromString,dn as parseJsonStringToPrettyString,dp as removeEmptyValuesFromObject,z as safeJsonParse,dq as safeJsonStringify,bJ as sleep,c1 as splitCamelString,dr as stringifyNonStringValues,bk as trimVersion}from"./chunks/ui-components-CwVshImz.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
1
+ export{cd as capitalizeFirstLetter,d8 as cleanObjectEmptyStringsValues,x as compareCondition,m as deepClone,bw as filterActions,bW as filterDestinations,bU as filterDestinationsByStream,bV as filterSources,bT as filterSourcesByStream,d9 as flattenObjectKeys,bO as formatBytes,cL as formatDuration,aC as generateId,bh as getActionIcon,bq as getConditionsBooleans,cF as getContainersIcons,cI as getContainersInstrumentedCount,ab as getDestinationIcon,da as getDetectedLanguageIcons,bD as getEntityIcon,bd as getEntityId,by as getEntityLabel,db as getIdFromSseTarget,bP as getInstrumentationRuleIcon,dc as getMainContainerLanguage,ch as getMetricForEntity,dd as getMonitorIcon,de as getPlatformIcon,df as getPlatformLabel,a0 as getProgrammingLanguageIcon,cN as getRecursiveValues,bQ as getSourceLanguageIcons,dg as getSseTargetFromId,dh as getStatusColor,aK as getStatusFromPodStatus,bu as getStatusIcon,ct as getStatusTypeFromOdigosHealth,di as getValueForRange,cn as getWorkloadId,cc as getYamlFieldsForDestination,cu as hasUnhealthyInstances,i as isEmpty,dj as isLegalK8sLabel,av as isOverTime,cz as isStringABoolean,dk as isTimeElapsed,dl as isValidVersion,bt as mapConditions,ca as mapDestinationFieldsForDisplay,H as mapExportedSignals,E as mapSupportedSignals,dm as numbersOnly,cA as parseBooleanFromString,dn as parseJsonStringToPrettyString,dp as removeEmptyValuesFromObject,z as safeJsonParse,dq as safeJsonStringify,bJ as sleep,c1 as splitCamelString,dr as stringifyNonStringValues,bk as trimVersion}from"./chunks/ui-components-CxdeQcW1.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
package/lib/hooks.js CHANGED
@@ -1 +1 @@
1
- export{bc as useActionFormData,dD as useBodyScroll,bX as useClickNode,co as useClickNotification,bS as useContainerSize,as as useCopy,c5 as useDataStreamFormData,cb as useDestinationFormData,a4 as useGenericForm,ck as useInstrumentationRuleFormData,at as useKeyDown,c0 as useOnClickOutside,bY as usePopup,c4 as useSessionStorage,cB as useSourceFormData,cG as useSourceSelectionFormData,au as useTimeAgo}from"./chunks/ui-components-CwVshImz.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
1
+ export{bc as useActionFormData,dD as useBodyScroll,bX as useClickNode,co as useClickNotification,bS as useContainerSize,as as useCopy,c5 as useDataStreamFormData,cb as useDestinationFormData,a4 as useGenericForm,ck as useInstrumentationRuleFormData,at as useKeyDown,c0 as useOnClickOutside,bY as usePopup,c4 as useSessionStorage,cB as useSourceFormData,cG as useSourceSelectionFormData,au as useTimeAgo}from"./chunks/ui-components-CxdeQcW1.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
package/lib/snippets.js CHANGED
@@ -1 +1 @@
1
- export{b1 as AddButton,cv as CopyText,cr as EditButton,cq as Flow,dE as MapItemNode,dF as NoDataNode,c8 as NoteBackToSummary,cx as PodContainer,cE as SourceContainer}from"./chunks/ui-components-CwVshImz.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
1
+ export{b1 as AddButton,cv as CopyText,cr as EditButton,cq as Flow,dE as MapItemNode,dF as NoDataNode,c8 as NoteBackToSummary,cx as PodContainer,cE as SourceContainer}from"./chunks/ui-components-CxdeQcW1.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
@@ -1,21 +1,28 @@
1
+ import { OtherStatusType, StatusType } from '@/types';
1
2
  export declare enum ProgressKeys {
2
3
  Instrumenting = "instrumenting",
3
4
  Uninstrumenting = "uninstrumenting",
4
5
  BulkInstrumenting = "bulk-instrumenting",
5
- BulkUninstrumenting = "bulk-uninstrumenting"
6
+ BulkUninstrumenting = "bulk-uninstrumenting",
7
+ DownloadingDiagnose = "downloading-diagnose"
6
8
  }
7
9
  type ProgressKey = ProgressKeys | string;
10
+ interface ProgressListItem {
11
+ label: string;
12
+ status: StatusType | OtherStatusType;
13
+ }
8
14
  interface ProgressValues {
9
15
  total: number;
10
16
  current: number;
11
17
  percentage: number;
18
+ list?: ProgressListItem[];
12
19
  }
13
20
  interface Store {
14
21
  progress: {
15
22
  [key: ProgressKey]: ProgressValues | undefined;
16
23
  };
17
24
  setProgress: (k: ProgressKey, v: Partial<ProgressValues>) => void;
18
- addProgress: (k: ProgressKey, addToCurrent: number) => void;
25
+ addProgress: (k: ProgressKey, addToCurrent: number, mutateList?: ProgressListItem) => void;
19
26
  resetProgress: (k: ProgressKey) => void;
20
27
  }
21
28
  export declare const useProgressStore: import("zustand").UseBoundStore<import("zustand").StoreApi<Store>>;
package/lib/store.js CHANGED
@@ -1 +1 @@
1
- export{ar as ProgressKeys,dv as useActiveNodeStore,cK as useDarkMode,ad as useDataStreamStore,b8 as useDrawerStore,ax as useEntityStore,bv as useFilterStore,bj as useModalStore,cj as useNotificationStore,ao as useProgressStore,bL as useSelectedStore,c6 as useSetupStore}from"./chunks/ui-components-CwVshImz.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
1
+ export{ar as ProgressKeys,dv as useActiveNodeStore,cK as useDarkMode,ad as useDataStreamStore,b8 as useDrawerStore,ax as useEntityStore,bv as useFilterStore,bj as useModalStore,cj as useNotificationStore,ao as useProgressStore,bL as useSelectedStore,c6 as useSetupStore}from"./chunks/ui-components-CxdeQcW1.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
package/lib/theme.js CHANGED
@@ -1 +1 @@
1
- export{dw as Provider,dx as animations,dy as opacity,dz as palettes}from"./chunks/ui-components-CwVshImz.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
1
+ export{dw as Provider,dx as animations,dy as opacity,dz as palettes}from"./chunks/ui-components-CxdeQcW1.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
package/lib/types.js CHANGED
@@ -1 +1 @@
1
- export{cQ as ActionCategory,A as ActionKeyTypes,l as ActionType,cR as AddNodeTypes,cS as BooleanOperation,J as CodeAttributesKeyTypes,bi as Crud,Y as CustomInstrumentationsKeyTypes,bN as DesiredStateProgress,cT as DestinationTypes,cU as EdgeTypes,aq as EntityTypes,k as FieldTypes,U as GolangCustomProbe,P as HeadersCollectionKeyTypes,c as InputTypes,cV as InstallationMethod,Z as InstrumentationRuleType,cW as IntrumentationStatus,X as JavaCustomProbe,cX as JsonOperation,K as K8sAttributesFrom,cC as K8sResourceKind,cY as ListDirection,cp as NodeTypes,cZ as NumberOperation,c_ as OtelDistroName,c9 as OtherEntityTypes,bs as OtherStatus,ai as OtherStatusType,Q as PayloadCollectionKeyTypes,c$ as PlatformType,d0 as PodContainerLifecycleStatus,d1 as PodContainerStatus,d2 as PodPhase,d3 as Profile,cD as ProgrammingLanguages,d4 as SIGNAL_KEY_TO_TYPE,ce as SIGNAL_TYPE_TO_KEY,d5 as SignalKey,G as SignalType,d6 as SortDirection,s as StatusType,d7 as StringOperation,aj as Tier,aR as WorkloadRolloutStatus}from"./chunks/ui-components-CwVshImz.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
1
+ export{cQ as ActionCategory,A as ActionKeyTypes,l as ActionType,cR as AddNodeTypes,cS as BooleanOperation,J as CodeAttributesKeyTypes,bi as Crud,Y as CustomInstrumentationsKeyTypes,bN as DesiredStateProgress,cT as DestinationTypes,cU as EdgeTypes,aq as EntityTypes,k as FieldTypes,U as GolangCustomProbe,P as HeadersCollectionKeyTypes,c as InputTypes,cV as InstallationMethod,Z as InstrumentationRuleType,cW as IntrumentationStatus,X as JavaCustomProbe,cX as JsonOperation,K as K8sAttributesFrom,cC as K8sResourceKind,cY as ListDirection,cp as NodeTypes,cZ as NumberOperation,c_ as OtelDistroName,c9 as OtherEntityTypes,bs as OtherStatus,ai as OtherStatusType,Q as PayloadCollectionKeyTypes,c$ as PlatformType,d0 as PodContainerLifecycleStatus,d1 as PodContainerStatus,d2 as PodPhase,d3 as Profile,cD as ProgrammingLanguages,d4 as SIGNAL_KEY_TO_TYPE,ce as SIGNAL_TYPE_TO_KEY,d5 as SignalKey,G as SignalType,d6 as SortDirection,s as StatusType,d7 as StringOperation,aj as Tier,aR as WorkloadRolloutStatus}from"./chunks/ui-components-CxdeQcW1.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
package/lib/visuals.js CHANGED
@@ -1 +1 @@
1
- export{dT as VISUAL_ODIGOS_LOGO_HEIGHT,dU as VISUAL_ODIGOS_LOGO_WIDTH,V as VisualGreenRings,dV as VisualOdigosLogo}from"./chunks/ui-components-CwVshImz.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
1
+ export{dT as VISUAL_ODIGOS_LOGO_HEIGHT,dU as VISUAL_ODIGOS_LOGO_WIDTH,V as VisualGreenRings,dV as VisualOdigosLogo}from"./chunks/ui-components-CxdeQcW1.js";import"./icons.js";import"react/jsx-runtime";import"styled-components";import"zustand";import"react";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";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odigos/ui-kit",
3
- "version": "0.0.209",
3
+ "version": "0.0.210",
4
4
  "author": "Odigos",
5
5
  "license": "MIT",
6
6
  "repository": {