@odigos/ui-kit 0.0.148 → 0.0.150
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 +21 -0
- package/lib/chunks/index-13c41ca4.js +3 -0
- package/lib/chunks/index-64bb5a64.js +9 -0
- package/lib/chunks/{ui-components-51dfd29f.js → ui-components-82b524d5.js} +390 -367
- package/lib/components/_v2/modal/index.d.ts +2 -0
- package/lib/components/_v2/note/index.d.ts +6 -0
- package/lib/components/_v2/segment/index.d.ts +2 -1
- package/lib/components/_v2/typography/index.d.ts +1 -0
- package/lib/components/styled.d.ts +4 -1
- package/lib/components/v2.js +1 -1
- package/lib/components.js +1 -1
- package/lib/constants.js +1 -1
- package/lib/containers/_v2/central-connections/index.d.ts +1 -1
- package/lib/containers/_v2/pipeline-collectors/toolbar/index.d.ts +2 -1
- package/lib/containers/v2.js +14 -12
- package/lib/containers.js +20 -20
- package/lib/contexts/index.d.ts +1 -0
- package/lib/contexts/odigos-context.d.ts +13 -0
- package/lib/contexts.js +1 -0
- package/lib/functions/index.d.ts +1 -0
- package/lib/functions/trim-version/index.d.ts +1 -0
- package/lib/functions.js +1 -1
- package/lib/hooks/useActionFormData.d.ts +1 -1
- package/lib/hooks.js +1 -1
- package/lib/snippets/_v2/index.d.ts +1 -0
- package/lib/snippets/_v2/upgrade-required/index.d.ts +6 -0
- package/lib/snippets.js +1 -1
- package/lib/store.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/types.js +1 -1
- package/lib/visuals/index.d.ts +1 -0
- package/lib/visuals/visual-star/index.d.ts +2 -0
- package/lib/visuals.js +3 -3
- package/package.json +10 -5
- package/lib/chunks/index-1ba6021d.js +0 -3
package/lib/containers.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperativeHandle as o,useMemo as l,Fragment as r,useCallback as s,Children as c}from"react";import d,{css as u,useTheme as p}from"styled-components";import{
|
|
1
|
+
import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperativeHandle as o,useMemo as l,Fragment as r,useCallback as s,Children as c}from"react";import d,{css as u,useTheme as p}from"styled-components";import{E as m,G as h,H as g,K as y,J as v,Q as b,R as f,V as x,X as $,Y as k,Z as C,_ as S,$ as w,a0 as T,a1 as D,a2 as N,a3 as E,r as O,a4 as F,a5 as I,a6 as A,a7 as M,a8 as R,a9 as L,aa as P,ab as K,ac as j,ad as V,ae as q,af as z,ag as H,ah as B,q as W,ai as _,aj as J,ak as U,al as G,am as Y,an as X,ao as Z,F as Q,ap as ee,aq as te,ar as ie,as as ae,at as ne,au as oe,av as le,aw as re,ax as se,ay as ce,f as de,az as ue,aA as pe,aB as me,aC as he,aD as ge,aE as ye,aF as ve,aG as be,aH as fe,aI as xe,aJ as $e,aK as ke,aL as Ce,aM as Se,aN as we,c as Te,N as De,aO as Ne,aP as Ee,aQ as Oe,aR as Fe,aS as Ie,aT as Ae,aU as Me,aV as Re,t as Le,aW as Pe,aX as Ke,aY as je,aZ as Ve,a_ as qe,a$ as ze,b0 as He,b1 as Be,b2 as We,b3 as _e,b4 as Je,b5 as Ue,b6 as Ge,b7 as Ye,b8 as Xe,b9 as Ze,ba as Qe,bb as et,bc as tt,bd as it,be as at,bf as nt,bg as ot,bh as lt,bi as rt,bj as st,bk as ct,bl as dt,bm as ut,bn as pt,bo as mt,bp as ht,bq as gt,br as yt,bs as vt,bt,bu as ft,bv as xt,bw as $t,bx as kt,by as Ct,bz as St,bA as wt,bB as Tt,bC as Dt,bD as Nt,bE as Et,bF as Ot,bG as Ft,bH as It,bI as At,bJ as Mt,bK as Rt,bL as Lt,bM as Pt,bN as Kt,bO as jt,bP as Vt,bQ as qt,bR as zt,n as Ht,bS as Bt,bT as Wt,bU as _t,bV as Jt,bW as Ut,bX as Gt,bY as Yt,bZ as Xt,b_ as Zt,b$ as Qt,c0 as ei,g as ti,c1 as ii,c2 as ai,c3 as ni,c4 as oi,c5 as li,c6 as ri,c7 as si,c8 as ci,c9 as di,ca as ui,u as pi,d as mi,cb as hi,cc as gi,cd as yi,ce as vi,cf as bi,cg as fi,ch as xi}from"./chunks/ui-components-82b524d5.js";import{VSquareIcon as $i,XSquareIcon as ki,EditIcon as Ci,TrashIcon as Si,OdigosLogoText as wi,PlusIcon as Ti,SearchIcon as Di,FilterIcon as Ni,DataStreamIcon as Ei,VIcon as Oi,OdigosLogo as Fi,ArrowIcon as Ii,RefreshLeftArrowIcon as Ai,NotificationIcon as Mi,UserIcon as Ri,ImageErrorIcon as Li,OverviewIcon as Pi,InstrumentationRuleIcon as Ki,ActionIcon as ji,SourceIcon as Vi,DestinationIcon as qi,SlackLogo as zi,RefreshIcon as Hi,KeyIcon as Bi,TerminalIcon as Wi,ExclamationTriangleIcon as _i,TraceViewIcon as Ji}from"./icons.js";import{MarkerType as Ui,useNodesState as Gi,useEdgesState as Yi,applyNodeChanges as Xi}from"@xyflow/react";import{Y as Zi}from"./chunks/index-13c41ca4.js";import"zustand";import"javascript-time-ago";import"./chunks/vendor-55cc654c.js";import"react-dom";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";const Qi=e=>{const{type:t,name:i,notes:a,signals:n,disabled:o,fields:{collectContainerAttributes:l,collectReplicaSetAttributes:r,collectWorkloadId:s,collectClusterId:c,labelsAttributes:d,annotationsAttributes:u,clusterAttributes:p,overwriteExistingValues:v,attributeNamesToDelete:b,renames:f,piiCategories:x,fallbackSamplingRatio:$,samplingPercentage:k,endpointsFilters:C,servicesNameFilters:S,attributeFilters:w}}=e,T=[{title:m.TYPE,value:t},{type:h.ActiveStatus,title:m.STATUS,value:String(!o)},{type:h.Monitors,title:m.SIGNALS_FOR_PROCESSING,value:n?.map(e=>e.toLowerCase()).join(", ")||""},{title:m.NAME,value:i||""},{title:m.NOTES,value:a||""},{type:h.Divider}];if(t===g.K8sAttributes&&(T.push({title:"Collect Container Attributes",value:String(l)}),T.push({title:"Collect ReplicaSet Attributes",value:String(r)}),T.push({title:"Collect Workload ID",value:String(s)}),T.push({title:"Collect Cluster ID",value:String(c)}),d?.length&&T.push({type:h.Divider}),d?.forEach(({labelKey:e,attributeKey:t,from:i},a)=>{let n="";n+=`Label Key: ${e}\n`,n+=`Attribute Key: ${t}\n`,n+=`From: ${i||y.Pod}\n`,T.push({title:"Label"+(d.length>1?` #${a+1}`:""),value:n})}),u?.length&&T.push({type:h.Divider}),u?.forEach(({annotationKey:e,attributeKey:t,from:i},a)=>{let n="";n+=`Annotation Key: ${e}\n`,n+=`Attribute Key: ${t}\n`,n+=`From: ${i||y.Pod}\n`,T.push({title:"Annotation"+(u.length>1?` #${a+1}`:""),value:n})})),t===g.AddClusterInfo){T.push({title:"Overwrite Existing Values",value:String(v||!1)});let e="";p?.forEach(({attributeName:t,attributeStringValue:i},a)=>{e+=`${t}: ${i}`,a<p.length-1&&(e+=", ")}),T.push({title:"Attributes",value:e})}if(t===g.DeleteAttributes){let e="";b?.forEach((t,i)=>{e+=t,i<b.length-1&&(e+=", ")}),T.push({title:"Attributes",value:e})}if(t===g.RenameAttributes){let e="";const t=Object.entries(f||{});t.forEach(([i,a],n)=>{e+=`${i}: ${a}`,n<t.length-1&&(e+=", ")}),T.push({title:"Attributes",value:e})}if(t===g.PiiMasking){let e="";x?.forEach((t,i)=>{e+=t,i<x.length-1&&(e+=", ")}),T.push({title:"Categories",value:e})}return t===g.ErrorSampler&&T.push({title:"Sampling Ratio",value:String($)}),t===g.ProbabilisticSampler&&T.push({title:"Sampling Percentage",value:String(k)}),t===g.LatencySampler&&C?.forEach(({serviceName:e,httpRoute:t,minimumLatencyThreshold:i,fallbackSamplingRatio:a},n)=>{let o="";o+=`Service Name: ${e}\n`,o+=`HTTP Route: ${t}\n`,o+=`Min. Latency: ${i}\n`,o+=`Fallback Sampling Ratio: ${a}`,T.push({title:"Endpoint"+(C.length>1?` #${n+1}`:""),value:o})}),t===g.ServiceNameSampler&&S?.forEach(({serviceName:e,samplingRatio:t,fallbackSamplingRatio:i},a)=>{let n="";n+=`Service Name: ${e}\n`,n+=`Sampling Ratio: ${t}\n`,n+=`Fallback Sampling Ratio: ${i}`,T.push({title:"Filter"+(S.length>1?` #${a+1}`:""),value:n})}),t===g.SpanAttributeSampler&&w?.forEach(({serviceName:e,attributeKey:t,fallbackSamplingRatio:i,condition:a},n)=>{let o="";o+=`Service Name: ${e}\n`,o+=`Attribute Key: ${t}\n`,o+=`Fallback Sampling Ratio: ${i}\n`;const l=Object.keys(a)[0];o+=`Condition: ${l}\n`,o+=`Operation: ${a[l]?.operation}\n`,o+=`Expected Value: ${a[l]?.expectedValue}`,"jsonCondition"===l&&(o+=`\nJSON Path: ${a[l].jsonPath}`),T.push({title:"Filter"+(w.length>1?` #${n+1}`:""),value:o})}),T},ea=x.PiiCategories,ta=d.div`
|
|
2
2
|
display: flex;
|
|
3
3
|
flex-direction: row;
|
|
4
4
|
gap: 32px;
|
|
@@ -14,7 +14,7 @@ import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperative
|
|
|
14
14
|
padding: 4px;
|
|
15
15
|
`,fa=d(E)`
|
|
16
16
|
margin-bottom: 12px;
|
|
17
|
-
`,xa=({isUpdate:t,action:i,formData:a,formErrors:n,handleFormChange:o})=>{const l=O.useTheme();return e.createElement(ba,null,t&&e.createElement("div",null,e.createElement(fa,null,"Status"),e.createElement(F,{options:[{icon:$i,label:m.ENABLED,value:!1,selectedBgColor:l.text.success+O.opacity.hex["050"]},{icon:ki,label:m.DISABLED,value:!0,selectedBgColor:l.text.error+O.opacity.hex["050"]}],selected:a.disabled,setSelected:e=>o("disabled",e)})),!t&&e.createElement(I,{title:"",description:i.docsDescription,actionButton:e.createElement(A,{endpoint:i.docsEndpoint})}),e.createElement(M,{title:"Signals for Processing",required:!0,allowedSignals:i.allowedSignals,selectedSignals:a.signals||[],setSelectedSignals:e=>o("signals",e),errorMessage:n.signals}),!t&&e.createElement($,{title:"Action name",placeholder:"Use a name that describes the action",value:a.name||"",onChange:({target:{value:e}})=>o("name",e),errorMessage:n.name}),e.createElement(va,{actionType:i.type,value:a.fields,setValue:(e,t)=>o(`fields.${e}`,t),formErrors:n}),e.createElement(R,{title:"Notes",value:a.notes||"",onChange:({target:{value:e}})=>o("notes",e),errorMessage:n.notes}))},$a=a(({children:i,width:a=640,title:r,titleTooltip:s,hideEditTitleFromEdit:c,icons:d,iconSrcs:u,isEdit:p=!1,isFormDirty:m=!1,isLastItem:h=!1,onClose:g,onEdit:y,onSave:v,onDelete:b,onCancel:f,tabs:x,headerActionButtons:$},k)=>{const C=O.useTheme(),{isThisPending:S}=L(),{addNotification:w}=P(),{drawerType:T,drawerEntityId:D,setDrawerType:N,setDrawerEntityId:F}=K();j({key:"Enter",active:p},()=>Q());const[I,A]=t(!1),[M,R]=t(!1),_=n(null),
|
|
17
|
+
`,xa=({isUpdate:t,action:i,formData:a,formErrors:n,handleFormChange:o})=>{const l=O.useTheme();return e.createElement(ba,null,t&&e.createElement("div",null,e.createElement(fa,null,"Status"),e.createElement(F,{options:[{icon:$i,label:m.ENABLED,value:!1,selectedBgColor:l.text.success+O.opacity.hex["050"]},{icon:ki,label:m.DISABLED,value:!0,selectedBgColor:l.text.error+O.opacity.hex["050"]}],selected:a.disabled,setSelected:e=>o("disabled",e)})),!t&&e.createElement(I,{title:"",description:i.docsDescription,actionButton:e.createElement(A,{endpoint:i.docsEndpoint})}),e.createElement(M,{title:"Signals for Processing",required:!0,allowedSignals:i.allowedSignals,selectedSignals:a.signals||[],setSelectedSignals:e=>o("signals",e),errorMessage:n.signals}),!t&&e.createElement($,{title:"Action name",placeholder:"Use a name that describes the action",value:a.name||"",onChange:({target:{value:e}})=>o("name",e),errorMessage:n.name}),e.createElement(va,{actionType:i.type,value:a.fields,setValue:(e,t)=>o(`fields.${e}`,t),formErrors:n}),e.createElement(R,{title:"Notes",value:a.notes||"",onChange:({target:{value:e}})=>o("notes",e),errorMessage:n.notes}))},$a=a(({children:i,width:a=640,title:r,titleTooltip:s,hideEditTitleFromEdit:c,icons:d,iconSrcs:u,isEdit:p=!1,isFormDirty:m=!1,isLastItem:h=!1,onClose:g,onEdit:y,onSave:v,onDelete:b,onCancel:f,tabs:x,headerActionButtons:$},k)=>{const C=O.useTheme(),{isThisPending:S}=L(),{addNotification:w}=P(),{drawerType:T,drawerEntityId:D,setDrawerType:N,setDrawerEntityId:F}=K();j({key:"Enter",active:p},()=>Q());const[I,A]=t(!1),[M,R]=t(!1),_=n(null),J=T===B.Source,U=()=>{A(!1),R(!1)},G=()=>{U(),y&&y(!1),N(null),F(null),g?.()};o(k,()=>({closeDrawer:G}));const Y=()=>{_.current?.clearTitle(),f&&f(),U()},X=()=>{const e=_.current?.isTitleDirty();m||e?R(!0):Y()},Z=()=>{A(!0)},Q=()=>{v&&v(_.current?.getTitle()||"")},ee=l(()=>!!T&&S({entityType:T,entityId:D}),[T,D]),te=e=>{w({type:W.Warning,title:"Pending",message:`Cannot click ${e}, ${T} is pending`,hideFromHistory:!0})},ie=$||[];return y&&!p&&ie.push({"data-id":"drawer-edit",variant:"tertiary",onClick:ee?()=>te("edit"):()=>y(!0),children:e.createElement(e.Fragment,null,e.createElement(Ci,null),e.createElement(E,{size:14,family:"secondary",decoration:"underline"},"Edit"))}),b&&!p&&ie.push({"data-id":"drawer-delete",variant:"tertiary",onClick:ee?()=>te(J?"uninstrument":"delete"):Z,children:e.createElement(e.Fragment,null,e.createElement(Si,null),e.createElement(E,{color:C.text.error,size:14,family:"secondary",decoration:"underline"},J?V.UNINSTRUMENT:V.DELETE))}),e.createElement(e.Fragment,null,e.createElement(q,{isOpen:!0,onClose:p?X:G,closeOnEscape:!I&&!M,width:`${a+64}px`,header:{icons:d,iconSrcs:u,title:r,titleTooltip:s,replaceTitleWith:!c&&p?e.createElement(ka,{ref:_,title:r}):void 0,actionButtons:ie,tabs:x},footer:{isOpen:p,leftButtons:[{"data-id":"drawer-save",variant:"primary",onClick:Q,children:V.SAVE},{"data-id":"drawer-cancel",variant:"secondary",onClick:X,children:V.CANCEL}],rightButtons:b?[{"data-id":"drawer-delete",variant:"tertiary",onClick:Z,children:e.createElement(e.Fragment,null,e.createElement(Si,null),e.createElement(E,{size:14,color:C.text.error,family:"secondary",decoration:"underline"},V.DELETE))}]:[]}},i),e.createElement(z,{isOpen:I,noOverlay:!0,name:`${T}${r?` (${r})`:""}`,type:T,isLastItem:h,onApprove:()=>{b&&b(),U()},onDeny:U}),e.createElement(H,{isOpen:M,noOverlay:!0,name:"edit mode",onApprove:Y,onDeny:U}))}),ka=a(({title:a},n)=>{const[l,r]=t(a);return i(()=>{r(a)},[a]),o(n,()=>({getTitle:()=>l||a,isTitleDirty:()=>l!==a,clearTitle:()=>r(a)})),e.createElement($,{"data-id":"title",value:l,onChange:e=>r(e.target.value)})});ka.displayName=ka.name,$a.displayName=$a.name;const Ca=d.div`
|
|
18
18
|
width: 100%;
|
|
19
19
|
height: 100%;
|
|
20
20
|
max-height: calc(100vh - 220px);
|
|
@@ -24,10 +24,10 @@ import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperative
|
|
|
24
24
|
display: flex;
|
|
25
25
|
flex-direction: column;
|
|
26
26
|
gap: 12px;
|
|
27
|
-
`,wa=({updateAction:i,deleteAction:a})=>{const{actions:o}=_(),{drawerType:r,drawerEntityId:s}=K(),c=n(null),d=r
|
|
27
|
+
`,wa=({updateAction:i,deleteAction:a})=>{const{actions:o}=_(),{drawerType:r,drawerEntityId:s}=K(),c=n(null),d=r===B.Action,[u,p]=t(!1),[h,g]=t(!1),{formData:y,formErrors:v,handleFormChange:b,resetFormData:f,validateForm:x,loadFormWithDrawerItem:$}=J(),k=l(()=>{if(!d)return f();const e=o?.find(e=>e.id===s);return e?$(e):f(),e},[d,s,o]);if(!k)return null;const C=U.find(({type:e})=>e===k.type)||U.find(({label:e})=>"Attributes"===e)?.items?.find(({type:e})=>e===k.type)||U.find(({label:e})=>"Samplers"===e)?.items?.find(({type:e})=>e===k.type);return e.createElement($a,{ref:c,title:k.name||k.type,icons:[G(k.type)],isEdit:u,isFormDirty:h,onEdit:e=>{p("boolean"!=typeof e||e)},onSave:e=>{if(x({withAlert:!0,alertTitle:Z.Update})){const t=e!==k.type?e:"";b("name",t),i(s,{...y,name:t}),p(!1),g(!1)}},onDelete:()=>{a(s,k.type),p(!1),g(!1),c.current?.closeDrawer()},onCancel:()=>{p(!1),g(!1),$(k)}},u&&C?e.createElement(Ca,null,e.createElement(xa,{isUpdate:!0,action:C,formData:y,formErrors:v,handleFormChange:(...e)=>{g(!0),b(...e)}})):e.createElement(Sa,null,e.createElement(Y,{conditions:k.conditions||[]}),e.createElement(X,{title:m.ACTION_DETAILS,data:k?Qi(k):[]})))},Ta=d(Q)`
|
|
28
28
|
margin-top: 24px;
|
|
29
29
|
gap: 12px;
|
|
30
|
-
`,Da=({createAction:i})=>{const{currentModal:a,setCurrentModal:n}=ee(),o=a===B.Action,{formData:l,formErrors:r,handleFormChange:s,resetFormData:c,validateForm:d}=
|
|
30
|
+
`,Da=({createAction:i})=>{const{currentModal:a,setCurrentModal:n}=ee(),o=a===B.Action,{formData:l,formErrors:r,handleFormChange:s,resetFormData:c,validateForm:d}=J(),[u,p]=t(void 0),h=()=>{c(),p(void 0),n("")},g=()=>{if(!d({withAlert:!0,alertTitle:Z.Create}))return null;i(l),h()};return j({key:"Enter",active:o},()=>g()),e.createElement(te,{isOpen:o,onClose:h,header:{title:"Add Action"},actionComponent:e.createElement(ie,{buttons:[{variant:"primary",label:"DONE",onClick:g,disabled:!u}]})},e.createElement(ae,null,e.createElement(I,{title:"Select Action",description:"Select an action to modify telemetry data before it`s sent to destinations. Choose an action type and configure its details."}),e.createElement(Ta,null,e.createElement(ne,{type:W.Warning,message:oe.DEFINED_FOR_ALL_STREAMS(m.ACTIONS)}),e.createElement(le,{options:U,selectedOption:u,onOptionSelect:e=>{return t=e,c(),s("type",t?.type||""),void p(t);var t},autoFocus:!u?.type})),u?.type?e.createElement("div",null,e.createElement(re,{margin:"16px 0"}),e.createElement(xa,{action:u,formData:l,formErrors:r,handleFormChange:s})):null))},Na=e=>{const{type:t,fields:{collectContainerAttributes:i,collectReplicaSetAttributes:a,collectWorkloadId:n,collectClusterId:o,labelsAttributes:l,annotationsAttributes:r,clusterAttributes:s,overwriteExistingValues:c,attributeNamesToDelete:d,renames:u,piiCategories:p,fallbackSamplingRatio:m,samplingPercentage:h,endpointsFilters:v,attributeFilters:b,servicesNameFilters:f}}=e;let x="";if(t===g.K8sAttributes&&(i&&(x+="Container Attributes, "),a&&(x+="ReplicaSet Attributes, "),n&&(x+="Workload ID, "),o&&(x+="Cluster ID, "),l?.forEach(({labelKey:e,attributeKey:t,from:i},a)=>{x+=`Label: ${e} ${t} ${i||y.Pod} `,a===l.length-1&&(x+=", ")}),r?.forEach(({annotationKey:e,attributeKey:t,from:i},a)=>{x+=`Annotation: ${e} ${t} ${i||y.Pod} `,a===r.length-1&&(x+=", ")})),t===g.AddClusterInfo&&(x+=`Overwrite Existing: ${c}\n`,s?.forEach(({attributeName:e,attributeStringValue:t},i)=>{x+=`${e}: ${t}`,i<s.length-1&&(x+=", ")})),t===g.DeleteAttributes&&d?.forEach((e,t)=>{x+=e,t<d.length-1&&(x+=", ")}),t===g.RenameAttributes){const e=Object.entries(u||{});e.forEach(([t,i],a)=>{x+=`${t}: ${i}`,a<e.length-1&&(x+=", ")})}return t===g.PiiMasking&&p?.forEach((e,t)=>{x+=e,t<p.length-1&&(x+=", ")}),t===g.ErrorSampler&&(x+=String(m)),t===g.ProbabilisticSampler&&(x+=String(h),x+="%"),t===g.LatencySampler&&v?.forEach(({serviceName:e,httpRoute:t,minimumLatencyThreshold:i,fallbackSamplingRatio:a},n)=>{x+=`Endpoint${v.length>1?` #${n+1}`:""}=${e}${t}\n`,x+=` Latency=${i}`,x+=` Sampling=${a}`,n<v.length-1&&(x+=", ")}),t===g.ServiceNameSampler&&f?.forEach(({serviceName:e,samplingRatio:t,fallbackSamplingRatio:i})=>{x+=`Service Name: ${e}, `,x+=`Sampling Ratio: ${t}, `,x+=`Fallback Sampling Ratio: ${i}\n`}),t===g.SpanAttributeSampler&&b?.forEach(({serviceName:e,attributeKey:t,fallbackSamplingRatio:i})=>{x+=`Service Name: ${e}, `,x+=`Attribute Key: ${t}, `,x+=`Fallback Sampling Ratio: ${i}\n`}),x},Ea=({conditions:t,id:i})=>{const{errors:a,warnings:n,disableds:o,hasLoadings:r}=l(()=>se(t),[t]),s=a.length>0?a:n.length>0?n:o.length>0?o:[];if(s.length>0)return e.createElement("div",{style:{lineHeight:1}},e.createElement(Oa,{conditions:s,id:i}));const c=r?me.Loading:W.Success;return e.createElement("div",{style:{lineHeight:1}},e.createElement(ce,{status:c,title:c,withBorder:!0,withIcon:!0}))},Oa=({conditions:t,id:i})=>{const a=O.useTheme();return e.createElement(de,null,ue(t).map(({status:t,type:n,reason:o,message:l,lastTransitionTime:r},s)=>{"loading"!==t&&"disabled"!==t||(t=W.Info);const c=he(t,a);return e.createElement(pe,{key:`condition-${i}-${t}-${n}-${s}`,titleIcon:c,title:n,text:l||o||"",timestamp:r},e.createElement(ce,{status:t,title:o||n,withBorder:!0,withIcon:!0}))}))},Fa=({instrumentationRules:e,sources:t,actions:i,destinations:a,searchText:n,selectedCategory:o})=>{const l=n?e.filter(e=>e.type?.toLowerCase().includes(n)||e.ruleName?.toLowerCase().includes(n)):e,r=n?t.filter(e=>e.name?.toLowerCase().includes(n)||e.otelServiceName?.toLowerCase().includes(n)||e.namespace?.toLowerCase().includes(n)):t,s=n?i.filter(e=>e.type?.toLowerCase().includes(n)||e.name?.toLowerCase().includes(n)):i,c=n?a.filter(e=>e.destinationType.displayName?.toLowerCase().includes(n)||e.name?.toLowerCase().includes(n)):a,d=[{category:B.Source,label:"Sources",count:r.length,entities:[]},{category:B.Action,label:"Actions",count:s.length,entities:[]},{category:B.Destination,label:"Destinations",count:c.length,entities:[]},{category:B.InstrumentationRule,label:"Instrumentation Rules",count:l.length,entities:[]}];d.unshift({category:"all",label:"All",count:l.length+r.length+s.length+c.length,entities:[]});const u=d.filter(({count:e,category:t})=>!!e&&"all"!==t&&["all",t].includes(o)).map(e=>({...e,entities:e.category===B.InstrumentationRule?l:e.category===B.Source?r:e.category===B.Action?s:e.category===B.Destination?c:[]}));return{categories:d,searchResults:u}},Ia=[{key:"icon",title:""},{key:"name",title:m.NAME,sortable:!0},{key:"signals",title:m.MONITORS},{key:"active-status",title:m.STATUS},{key:"conditions",title:"Conditions"},{key:"type",title:m.TYPE,sortable:!0},{key:"spec",title:"Spec",sortable:!0},{key:"notes",title:m.NOTES,sortable:!0}],Aa=({maxHeight:t,maxWidth:i})=>{const a=O.useTheme(),n=ge(),{actions:o,actionsLoading:r}=_(),{setDrawerType:s,setDrawerEntityId:c}=K(),d=l(()=>Fa({instrumentationRules:[],sources:[],actions:ye(o,n),destinations:[],searchText:n.searchText,selectedCategory:B.Action}).searchResults.find(({category:e})=>e===B.Action)?.entities||[],[o,n]),u=l(()=>d.map(t=>{const{hasErrors:i,hasWarnings:n,hasDisableds:o}=se(t.conditions||[]);return{status:i?W.Error:n?W.Warning:void 0,faded:o,onClick:()=>{s(B.Action),c(t.id)},cells:[{columnKey:"icon",component:()=>e.createElement(ve,{icon:G(t.type)})},{columnKey:"name",value:be(t,B.Action,{prioritizeDisplayName:!0})},{columnKey:"type",value:t.type,textColor:a.text.info},{columnKey:"notes",value:t.notes,textColor:a.text.info,withTooltip:!0},{columnKey:"spec",value:Na(t),textColor:a.text.info,withTooltip:!0},{columnKey:"signals",component:()=>e.createElement(fe,{withLabels:!0,monitors:t.signals||[]})},{columnKey:"conditions",component:()=>e.createElement(Ea,{conditions:t.conditions||[],id:t.id})},{columnKey:"active-status",component:()=>e.createElement("div",{style:{lineHeight:1}},e.createElement(ce,{status:t.disabled?W.Error:W.Success,title:t.disabled?m.DISABLED:m.ENABLED,withIcon:!0,withBorder:!0}))}]}}),[d]),{badge:p,badgeTooltip:h}=l(()=>d.length!==o.length?{badge:`${d.length}/${o.length}`,badgeTooltip:m.FILTERED_COUNT_TOOLTIP}:{badge:o.length,badgeTooltip:void 0},[d,o]);return e.createElement(xe,{$maxWidth:i},e.createElement($e,null,e.createElement(ke,{icon:Ce(B.Action),title:m.ACTIONS,badge:p,badgeTooltip:h,loading:r})),e.createElement(Se,{$maxHeight:t},e.createElement(we,{columns:Ia,rows:u})),!d.length&&e.createElement(Te,{style:{marginTop:"2rem"}},e.createElement(De,null)))},Ma=d(Q)`
|
|
31
31
|
// width: 100vw;
|
|
32
32
|
// height: 100vh;
|
|
33
33
|
gap: 64px;
|
|
@@ -101,7 +101,7 @@ import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperative
|
|
|
101
101
|
align-items: center;
|
|
102
102
|
justify-content: center;
|
|
103
103
|
white-space: nowrap;
|
|
104
|
-
`,
|
|
104
|
+
`,Ja=({entityId:t,entityType:i,status:a,faded:n,title:o,subTitle:l,label:r,icon:s,icons:c,iconSrc:d,iconSrcs:u,monitors:p,isActive:m,raw:h})=>{const g=O.useTheme(),y=i===B.Source,v="boolean"==typeof m,{setDrawerType:b,setDrawerEntityId:f}=K(),{isThisPending:x}=L(),$=x({entityType:i,entityId:t}),{selectedSources:k,setSelectedSources:C}=Ae(),S={...k},{namespace:w,name:T,kind:D}=h;y&&!S[w]&&(S[w]=[]);const N=y?S[w].findIndex(e=>e.name===T&&e.kind===D):-1;return e.createElement(Re,{"data-id":i===B.Source?`${t.namespace}-${t.name}-${t.kind}`:t,title:o,subTitle:l,onClick:()=>{b(i),f(t)},renderActions:()=>{const t=y&&(!h.conditions?.length||h.conditions?.some(({status:e})=>"loading"===e)),i=v&&!m?he(W.Info,g):a?he(a,g):void 0,n=$||t?e.createElement(Le,{scale:.8}):i?e.createElement(i,{size:14}):null;return r?e.createElement(_a,{$isError:a===W.Error},e.createElement(pe,{text:"Heads up! The data-flow metrics you see are calculated over 10-second intervals."},r),n):n||null},iconProps:{icon:s,icons:c,iconSrc:d,iconSrcs:u},visualProps:{status:a,faded:n||v&&!m,monitors:p||void 0},checkboxProps:{withCheckbox:y,isChecked:-1!==N,onCheckboxChange:()=>{-1===N?S[w].push(h):S[w].splice(N,1),C(S)},isCheckboxDisabled:$}})},Ua=d.div`
|
|
105
105
|
height: calc(${({$height:e})=>e}px - 24px);
|
|
106
106
|
width: calc(100% - 24px);
|
|
107
107
|
padding: 12px;
|
|
@@ -124,7 +124,7 @@ import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperative
|
|
|
124
124
|
justify-content: center;
|
|
125
125
|
|
|
126
126
|
pointer-events: none;
|
|
127
|
-
`,Ya=({height:t,entityType:i,entities:a,metrics:n,isVm:o})=>{const r=l(()=>a.map(t=>{const a=Pe(t);if(!a)return null;const l=[B.Source,B.Destination].includes(i),r=[B.Destination,B.Action].includes(i),s=[B.Destination,B.Action,B.InstrumentationRule].includes(i),c=r?i==B.Destination?Ke(t.exportedSignals):t.signals:void 0,d=l?n?.[`${i.toLowerCase()}s`]?.find(e=>JSON.stringify(Pe(e))===JSON.stringify(a)):void 0,u=s?!t.disabled:void 0,p=be(t,i,{extended:i===B.Source,prioritizeDisplayName:i!==B.Source}),m=((e,t,i)=>{switch(e){case B.Source:return i?`${t.kind}`:`${t.namespace} • ${t.kind}`;case B.Destination:return t.destinationType.displayName;case B.Action:case B.InstrumentationRule:return t.type;default:return""}})(i,t,o),h=l?je(d?.throughput):void 0,{priorotizedStatus:g,hasDisableds:y}=se(t.conditions||[]),{icons:v,icon:b,iconSrc:f}=((e,t)=>{switch(e){case B.Source:return{icons:He(t.containers),icon:Ce(e)};case B.Destination:return ze(t.destinationType.type);case B.Action:return{icon:G(t.type)};case B.InstrumentationRule:return{icon:qe(t.type)};default:return{icon:Ce(e)}}})(i,t);return e.createElement(
|
|
127
|
+
`,Ya=({height:t,entityType:i,entities:a,metrics:n,isVm:o})=>{const r=l(()=>a.map(t=>{const a=Pe(t);if(!a)return null;const l=[B.Source,B.Destination].includes(i),r=[B.Destination,B.Action].includes(i),s=[B.Destination,B.Action,B.InstrumentationRule].includes(i),c=r?i==B.Destination?Ke(t.exportedSignals):t.signals:void 0,d=l?n?.[`${i.toLowerCase()}s`]?.find(e=>JSON.stringify(Pe(e))===JSON.stringify(a)):void 0,u=s?!t.disabled:void 0,p=be(t,i,{extended:i===B.Source,prioritizeDisplayName:i!==B.Source}),m=((e,t,i)=>{switch(e){case B.Source:return i?`${t.kind}`:`${t.namespace} • ${t.kind}`;case B.Destination:return t.destinationType.displayName;case B.Action:case B.InstrumentationRule:return t.type;default:return""}})(i,t,o),h=l?je(d?.throughput):void 0,{priorotizedStatus:g,hasDisableds:y}=se(t.conditions||[]),{icons:v,icon:b,iconSrc:f}=((e,t)=>{switch(e){case B.Source:return{icons:He(t.containers),icon:Ce(e)};case B.Destination:return ze(t.destinationType.type);case B.Action:return{icon:G(t.type)};case B.InstrumentationRule:return{icon:qe(t.type)};default:return{icon:Ce(e)}}})(i,t);return e.createElement(Ja,{key:JSON.stringify(a),entityType:i,entityId:a,raw:t,title:p,subTitle:m,faded:y,status:g,label:h,icons:v,icon:b,iconSrc:f,monitors:c,isActive:u})}),[a,i,n,o]);return e.createElement(Ua,{$height:t},e.createElement(Ve,{containerHeight:t-24,elementHeight:80,elements:r}),e.createElement(Ga,{$hide:!0}))},Xa=d.div`
|
|
128
128
|
width: ${({$isVm:e})=>e?"45vw":"22vw"};
|
|
129
129
|
|
|
130
130
|
display: flex;
|
|
@@ -137,7 +137,7 @@ import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperative
|
|
|
137
137
|
display: flex;
|
|
138
138
|
justify-content: space-evenly;
|
|
139
139
|
gap: 24px;
|
|
140
|
-
`,en=({height:a,metrics:n})=>{const{isVm:o}=We(),l=ge(),{selectedStreamName:r}=_e(),{containerRef:s,containerHeight:c}=
|
|
140
|
+
`,en=({height:a,metrics:n})=>{const{isVm:o}=We(),l=ge(),{selectedStreamName:r}=_e(),{containerRef:s,containerHeight:c}=Je(),{sources:d,sourcesLoading:u,destinations:p,destinationsLoading:m,actions:h,actionsLoading:g,instrumentationRules:y,instrumentationRulesLoading:v}=_(),[b,f]=t([]),[x,$]=t([]),[k,C]=t([]),[S,w]=t([]);return i(()=>{f(Ue(Ge(d,r),l))},[d,r,l]),i(()=>{$(Ye(Xe(p,r),l))},[p,r,l]),i(()=>{C(ye(h,l))},[h,l]),i(()=>{w(y)},[y]),e.createElement(Qa,{ref:s,$height:a},e.createElement(Za,{entityType:B.InstrumentationRule,entities:S,unfilteredCount:y.length,loading:v,maxHeight:c,isVm:o}),e.createElement(Za,{entityType:B.Source,entities:b,unfilteredCount:d.length,metrics:n,loading:u,maxHeight:c,isVm:o}),e.createElement(Za,{entityType:B.Action,entities:k,unfilteredCount:h.length,loading:g,maxHeight:c,isVm:o}),e.createElement(Za,{entityType:B.Destination,entities:x,unfilteredCount:p.length,metrics:n,loading:m,maxHeight:c,isVm:o}))},tn=d.div`
|
|
141
141
|
position: relative;
|
|
142
142
|
max-width: 200px;
|
|
143
143
|
`;d.div`
|
|
@@ -239,11 +239,11 @@ import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperative
|
|
|
239
239
|
display: flex;
|
|
240
240
|
flex-direction: column;
|
|
241
241
|
gap: 12px;
|
|
242
|
-
`,_n=({categories:i,updateDestination:a,deleteDestination:o,testConnection:r})=>{const{destinations:s}=_(),{selectedStreamName:c}=_e(),{drawerType:d,drawerEntityId:u}=K(),p=l(()=>Xe(s,c),[s,c]),h=n(null),g=d
|
|
242
|
+
`,_n=({categories:i,updateDestination:a,deleteDestination:o,testConnection:r})=>{const{destinations:s}=_(),{selectedStreamName:c}=_e(),{drawerType:d,drawerEntityId:u}=K(),p=l(()=>Xe(s,c),[s,c]),h=n(null),g=d===B.Destination,[y,v]=t(!1),[b,f]=t(!1),{formData:x,formErrors:$,handleFormChange:k,resetFormData:C,validateForm:S,loadFormWithDrawerItem:w,yamlFields:T,setYamlFields:D,dynamicFields:N,setDynamicFields:E}=kt({}),O=l(()=>{if(!g)return C();const e=p?.find(e=>e.id===u);return e?(w(e),D(Ct(i,e))):C(),e},[g,u,p]);if(!O)return null;const F=i.flatMap(e=>e.items).find(e=>e.type===O.destinationType.type),{icon:I,iconSrc:A}=F?ze(F?.type):{icon:void 0,iconSrc:void 0};return e.createElement($a,{ref:h,title:O.name||O.destinationType.displayName,icons:I?[I]:void 0,iconSrcs:A?[A]:void 0,isEdit:y,isFormDirty:b,onEdit:e=>{v("boolean"!=typeof e||e)},onSave:async e=>{if(S({withAlert:!0,alertTitle:Z.Update})){const t=e!==O.destinationType.displayName?e:"";k("name",t),a(u,{...x,name:t}),v(!1),f(!1)}},onDelete:async()=>{o(u),v(!1),f(!1),h.current?.closeDrawer()},onCancel:()=>{v(!1),f(!1),w(O)},isLastItem:1===p.length},y?e.createElement(Bn,null,e.createElement(Hn,{isUpdate:!0,categoryItem:F,formData:x,formErrors:$,handleFormChange:(...e)=>{f(!0),k(...e)},dynamicFields:N,setDynamicFields:(...e)=>{f(!0),E(...e)},validateForm:S,testConnection:r})):e.createElement(Wn,null,O.conditions?.length?e.createElement(Y,{conditions:O.conditions}):null,e.createElement(X,{title:m.DESTINATION_DETAILS,data:O?Rn(O,T):[]})))},Jn=d.div`
|
|
243
243
|
display: flex;
|
|
244
244
|
flex-direction: column;
|
|
245
245
|
gap: 12px;
|
|
246
|
-
`,
|
|
246
|
+
`,Un=({items:t,onSelectNew:i,onSelectConfigured:a,isLoadingForDestinationIds:n})=>{const{configuredDestinationsUpdateOnly:o}=ut();return t.map(t=>{const l=t.name===wt.EXISTS.TITLE;return e.createElement(Jn,{key:`category-${t.name}`},e.createElement(I,{size:"small",icon:t.icon,title:St(t.name),description:t.description}),t.items.map(r=>{const s=`select-${t.name.replaceAll(" ","")}-destination-${r.type}`,c=Object.keys(r.supportedSignals).filter(e=>r.supportedSignals[e].supported),{icon:d,iconSrc:u}=ze(r.type),p=r.selected||o.some(e=>e.id===r.id),m=!!n.find(e=>e===r.id),h=l?()=>a(r.id):()=>i(r);return e.createElement(Re,{key:s,"data-id":s,title:r.displayName,hoverText:V.SELECT,onClick:h,iconProps:{icon:d,iconSrc:u},visualProps:{monitors:c,monitorsWithLabels:!0},checkboxProps:{withCheckbox:l,isChecked:p,isLoading:m,onCheckboxChange:()=>a(r.id)}})}))})},Gn=d.div`
|
|
247
247
|
display: flex;
|
|
248
248
|
flex-direction: column;
|
|
249
249
|
gap: 24px;
|
|
@@ -267,7 +267,7 @@ import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperative
|
|
|
267
267
|
}
|
|
268
268
|
`,Qn=d(Gn)`
|
|
269
269
|
margin-top: 80px;
|
|
270
|
-
`,{MANAGED:eo,SELF_HOSTED:to,DETECTED:io,EXISTS:ao}=wt,no=[{value:"All types",id:"all"},{value:eo.TITLE,id:eo.TITLE},{value:to.TITLE,id:to.TITLE},{value:io.TITLE,id:io.TITLE},{value:ao.TITLE,id:ao.TITLE}],oo=no[0],lo=[$t.Logs,$t.Metrics,$t.Traces],ro=(e,t,i)=>e.map(e=>{const{type:a,displayName:n}=e.destinationType,o=e.dataStreamNames?.includes(t),l=i.has(e.id);return{id:e.id,type:a,displayName:n,selected:o||l,fields:[],testConnectionSupported:!1,supportedSignals:{[$t.Logs]:{supported:e.exportedSignals.logs},[$t.Metrics]:{supported:e.exportedSignals.metrics},[$t.Traces]:{supported:e.exportedSignals.traces}}}}),so=({hidden:i,categories:a,potentialDestinations:n,onSelectNew:o,onSelectConfigured:r,isLoadingForDestinationIds:s})=>{const{destinations:c}=_(),{selectedStreamName:d}=_e(),{configuredDestinations:u,configuredDestinationsUpdateOnly:p}=ut(),[m,h]=t(""),[g,y]=t(oo),[v,b]=t(lo),f=l(()=>{const e=Tt(a);return e.unshift({name:ao.TITLE,description:ao.DESCRIPTION,icon:Oi,items:ro(c,d,new Set(u.concat(p).map(e=>e.id)))}),e.unshift({name:io.TITLE,description:io.DESCRIPTION,icon:Fi,items:n}),e.map(e=>{const t=e.items.filter(t=>{const i=!m||t.displayName.toLowerCase().includes(m.toLowerCase()),a="all"===g.id||g.id===e.name,n=v.some(e=>t.supportedSignals[e.toLowerCase()]?.supported);return i&&a&&n});return{...e,items:t}}).filter(({items:e})=>!!e.length)},[a,n,c,m,g,v,d,u,p]);return i?null:e.createElement(Gn,null,e.createElement(I,{title:"Choose destination",description:"Add backend destination you want to connect with Odigos."}),e.createElement(Yn,null,e.createElement(Xn,null,e.createElement($,{placeholder:"Search...",icon:Di,value:m,onChange:({target:{value:e}})=>h(e)})),e.createElement(Xn,null,e.createElement(ot,{options:no,value:g,onSelect:y,onDeselect:()=>{}})),e.createElement(M,{title:"",selectedSignals:v,setSelectedSignals:b})),e.createElement(re,null),f.length?e.createElement(Zn,null,e.createElement(
|
|
270
|
+
`,{MANAGED:eo,SELF_HOSTED:to,DETECTED:io,EXISTS:ao}=wt,no=[{value:"All types",id:"all"},{value:eo.TITLE,id:eo.TITLE},{value:to.TITLE,id:to.TITLE},{value:io.TITLE,id:io.TITLE},{value:ao.TITLE,id:ao.TITLE}],oo=no[0],lo=[$t.Logs,$t.Metrics,$t.Traces],ro=(e,t,i)=>e.map(e=>{const{type:a,displayName:n}=e.destinationType,o=e.dataStreamNames?.includes(t),l=i.has(e.id);return{id:e.id,type:a,displayName:n,selected:o||l,fields:[],testConnectionSupported:!1,supportedSignals:{[$t.Logs]:{supported:e.exportedSignals.logs},[$t.Metrics]:{supported:e.exportedSignals.metrics},[$t.Traces]:{supported:e.exportedSignals.traces}}}}),so=({hidden:i,categories:a,potentialDestinations:n,onSelectNew:o,onSelectConfigured:r,isLoadingForDestinationIds:s})=>{const{destinations:c}=_(),{selectedStreamName:d}=_e(),{configuredDestinations:u,configuredDestinationsUpdateOnly:p}=ut(),[m,h]=t(""),[g,y]=t(oo),[v,b]=t(lo),f=l(()=>{const e=Tt(a);return e.unshift({name:ao.TITLE,description:ao.DESCRIPTION,icon:Oi,items:ro(c,d,new Set(u.concat(p).map(e=>e.id)))}),e.unshift({name:io.TITLE,description:io.DESCRIPTION,icon:Fi,items:n}),e.map(e=>{const t=e.items.filter(t=>{const i=!m||t.displayName.toLowerCase().includes(m.toLowerCase()),a="all"===g.id||g.id===e.name,n=v.some(e=>t.supportedSignals[e.toLowerCase()]?.supported);return i&&a&&n});return{...e,items:t}}).filter(({items:e})=>!!e.length)},[a,n,c,m,g,v,d,u,p]);return i?null:e.createElement(Gn,null,e.createElement(I,{title:"Choose destination",description:"Add backend destination you want to connect with Odigos."}),e.createElement(Yn,null,e.createElement(Xn,null,e.createElement($,{placeholder:"Search...",icon:Di,value:m,onChange:({target:{value:e}})=>h(e)})),e.createElement(Xn,null,e.createElement(ot,{options:no,value:g,onSelect:y,onDeselect:()=>{}})),e.createElement(M,{title:"",selectedSignals:v,setSelectedSignals:b})),e.createElement(re,null),f.length?e.createElement(Zn,null,e.createElement(Un,{items:f,onSelectNew:e=>o(e,v),onSelectConfigured:r,isLoadingForDestinationIds:s})):e.createElement(Qn,null,e.createElement(De,{title:"No destinations found"})))},co=d.div`
|
|
271
271
|
display: flex;
|
|
272
272
|
`,uo=d.div`
|
|
273
273
|
border-right: 1px solid ${({theme:e})=>e.colors.border};
|
|
@@ -331,7 +331,7 @@ import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperative
|
|
|
331
331
|
display: flex;
|
|
332
332
|
flex-direction: column;
|
|
333
333
|
gap: 12px;
|
|
334
|
-
`,Ro=({updateInstrumentationRule:i,deleteInstrumentationRule:a})=>{const{instrumentationRules:o}=_(),{addNotification:r}=P(),{drawerType:s,drawerEntityId:c}=K(),d=n(null),u=s
|
|
334
|
+
`,Ro=({updateInstrumentationRule:i,deleteInstrumentationRule:a})=>{const{instrumentationRules:o}=_(),{addNotification:r}=P(),{drawerType:s,drawerEntityId:c}=K(),d=n(null),u=s===B.InstrumentationRule,[p,m]=t(!1),[h,g]=t(!1),{formData:y,formErrors:v,handleFormChange:b,resetFormData:f,validateForm:x,loadFormWithDrawerItem:$}=jt(),k=l(()=>{if(!u)return f();const e=o?.find(e=>e.ruleId===c);return e?$(e):f(),e},[u,c,o]);if(!k)return null;const C=Vt.find(({type:e})=>e===k.type);return e.createElement($a,{ref:d,title:k.ruleName||k.type,icons:[qe(k.type)],isEdit:p,isFormDirty:h,onEdit:e=>{k.mutable||!e&&void 0!==e?m("boolean"!=typeof e||e):r({type:W.Warning,title:oe.FORBIDDEN,message:oe.CANNOT_EDIT_RULE,crdType:B.InstrumentationRule,target:c,hideFromHistory:!0})},onSave:e=>{if(x()){const t=e!==k.type?e:"";b("ruleName",t),i(c,{...y,ruleName:t}),m(!1),g(!1)}},onDelete:()=>{k.mutable?(a(c),m(!1),g(!1),d.current?.closeDrawer()):r({type:W.Warning,title:oe.FORBIDDEN,message:oe.CANNOT_DELETE_RULE,crdType:B.InstrumentationRule,target:c,hideFromHistory:!0})},onCancel:()=>{m(!1),g(!1),$(k)}},p&&C?e.createElement(Ao,null,e.createElement(Io,{isUpdate:!0,rule:C,formData:y,formErrors:v,handleFormChange:(...e)=>{g(!0),b(...e)}})):e.createElement(Mo,null,e.createElement(Y,{conditions:k.conditions||[]}),e.createElement(X,{title:"Instrumentation Rule Details",data:k?xo(k):[]})))},Lo=d(Q)`
|
|
335
335
|
margin-top: 24px;
|
|
336
336
|
gap: 12px;
|
|
337
337
|
`,Po=Vt,Ko=({isEnterprise:i,createInstrumentationRule:a})=>{const{currentModal:n,setCurrentModal:o}=ee(),l=n===B.InstrumentationRule,{formData:r,formErrors:s,handleFormChange:c,resetFormData:d,validateForm:u}=jt(),[p,h]=t(void 0),g=()=>{d(),h(void 0),o("")},y=()=>{if(!u())return null;a(r),g()};return j({key:"Enter",active:l},()=>y()),e.createElement(te,{isOpen:l,onClose:g,header:{title:"Add Instrumentation Rule"},actionComponent:e.createElement(ie,{buttons:[{variant:"primary",label:"DONE",onClick:y,disabled:!i||!p,tooltip:i?"":oe.ENTERPRISE_ONLY("Instrumentation Rules")}]})},e.createElement(ae,null,e.createElement(I,{title:"Select Instrumentation Rule",description:"Define how telemetry is recorded from your application. Choose a rule type and configure the details."}),e.createElement(Lo,null,i?e.createElement(ne,{type:W.Warning,message:oe.DEFINED_FOR_ALL_STREAMS(m.INSTRUMENTATION_RULES)}):e.createElement(ne,{type:W.Default,message:oe.ENTERPRISE_ONLY(m.INSTRUMENTATION_RULES)}),e.createElement(le,{options:Po,selectedOption:p,onOptionSelect:e=>{return t=e,d(),void h(t);var t},autoFocus:!p?.type})),p?.type?e.createElement("div",null,e.createElement(re,{margin:"16px 0"}),e.createElement(Io,{rule:p,formData:r,formErrors:s,handleFormChange:c})):null))},jo=e=>{const{payloadCollection:t,codeAttributes:i,customInstrumentations:a}=e;let n="";return t&&(n+=Object.entries(t).filter(([e,t])=>!!t).map(([e,t])=>e).join(", ")),i&&(n+=Object.entries(i).filter(([e,t])=>!!t).map(([e,t])=>e).join(", ")),a&&Object.values(It).forEach(e=>{const t=(a[e]||[]).filter(e=>e).join(", ");t&&(n+=n?`, ${t}`:t)}),n},Vo=[{key:"icon",title:""},{key:"name",title:m.NAME,sortable:!0},{key:"profile",title:m.MANAGED_BY_PROFILE,sortable:!0},{key:"active-status",title:m.STATUS},{key:"conditions",title:"Conditions"},{key:"source-count",title:"Applicable Source"},{key:"type",title:m.TYPE,sortable:!0},{key:"spec",title:"Spec",sortable:!0},{key:"notes",title:m.NOTES,sortable:!0}],qo=({maxHeight:t,maxWidth:i})=>{const a=p(),n=ge(),{setDrawerType:o,setDrawerEntityId:r}=K(),{instrumentationRules:s,instrumentationRulesLoading:c}=_(),d=l(()=>Fa({instrumentationRules:s,sources:[],actions:[],destinations:[],searchText:n.searchText,selectedCategory:B.InstrumentationRule}).searchResults.find(({category:e})=>e===B.InstrumentationRule)?.entities||[],[s,n]),u=l(()=>d.map(t=>{const{hasErrors:i,hasWarnings:n,hasDisableds:l}=se(t.conditions||[]);return{status:i?W.Error:n?W.Warning:void 0,faded:l,onClick:()=>{o(B.InstrumentationRule),r(t.ruleId)},cells:[{columnKey:"icon",component:()=>e.createElement(ve,{icon:qe(t.type)})},{columnKey:"name",value:be(t,B.InstrumentationRule,{prioritizeDisplayName:!0})},{columnKey:"type",value:t.type,textColor:a.text.info},{columnKey:"profile",value:t.profileName,textColor:a.text.info},{columnKey:"notes",value:t.notes,textColor:a.text.info,withTooltip:!0},{columnKey:"spec",value:jo(t),textColor:a.text.info,withTooltip:!0},{columnKey:"conditions",component:()=>e.createElement(Ea,{conditions:t.conditions||[],id:t.ruleId})},{columnKey:"active-status",component:()=>e.createElement("div",{style:{lineHeight:1}},e.createElement(ce,{status:t.disabled?W.Error:W.Success,title:t.disabled?m.DISABLED:m.ENABLED,withIcon:!0,withBorder:!0}))},{columnKey:"source-count",component:()=>e.createElement("div",{style:{lineHeight:1}},e.createElement(ce,{status:W.Info,title:"all sources",withBorder:!0}))}]}}),[d]),{badge:h,badgeTooltip:g}=l(()=>d.length!==s.length?{badge:`${d.length}/${s.length}`,badgeTooltip:m.FILTERED_COUNT_TOOLTIP}:{badge:s.length,badgeTooltip:void 0},[d,s]);return e.createElement(xe,{$maxWidth:i},e.createElement($e,null,e.createElement(ke,{icon:Ce(B.Action),title:m.INSTRUMENTATION_RULES,badge:h,badgeTooltip:g,loading:c})),e.createElement(Se,{$maxHeight:t},e.createElement(we,{columns:Vo,rows:u})),!d.length&&e.createElement(Te,{style:{marginTop:"2rem"}},e.createElement(De,null)))},zo=d.div`
|
|
@@ -357,7 +357,7 @@ import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperative
|
|
|
357
357
|
gap: 12px;
|
|
358
358
|
max-height: 400px;
|
|
359
359
|
overflow-y: auto;
|
|
360
|
-
`,
|
|
360
|
+
`,Jo=d.div`
|
|
361
361
|
position: absolute;
|
|
362
362
|
bottom: 0;
|
|
363
363
|
left: 0;
|
|
@@ -366,13 +366,13 @@ import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperative
|
|
|
366
366
|
border-radius: 0 0 24px 24px;
|
|
367
367
|
background: ${({theme:e})=>`linear-gradient(to top, ${e.colors.dropdown_bg}, transparent)`};
|
|
368
368
|
pointer-events: none;
|
|
369
|
-
`,
|
|
369
|
+
`,Uo=d(E)`
|
|
370
370
|
background-color: ${({theme:e})=>e.colors.orange_soft};
|
|
371
371
|
color: ${({theme:e})=>e.text.primary};
|
|
372
372
|
border-radius: 32px;
|
|
373
373
|
width: fit-content;
|
|
374
374
|
padding: 2px 8px;
|
|
375
|
-
`,Go=()=>{const t=O.useTheme(),{notifications:i,markAsSeen:a}=P(),n=i.filter(({hideFromHistory:e})=>!e),o=n.filter(({seen:e})=>!e),l=o.length,{popupRef:r,popupOpen:s,setPopupOpen:c,popupPosition:d,handlePosition:u}=Qe({defaultClientHeight:420,defaultClientwidth:400,onClickOutside:()=>{l&&o.forEach(({id:e})=>a(e))}});return e.createElement(Bo,null,e.createElement(mt,{onClick:()=>{u(0,0),c(e=>!e)},tooltip:"Notifications",withPing:!!l,pingColor:t.colors.orange_og},e.createElement(Mi,{size:18})),e.createElement(et,{ref:r,isOpen:s,right:d.left,maxWidth:"400px",header:e.createElement(Wo,null,e.createElement(E,{size:20},"Notifications"),!!l&&e.createElement(
|
|
375
|
+
`,Go=()=>{const t=O.useTheme(),{notifications:i,markAsSeen:a}=P(),n=i.filter(({hideFromHistory:e})=>!e),o=n.filter(({seen:e})=>!e),l=o.length,{popupRef:r,popupOpen:s,setPopupOpen:c,popupPosition:d,handlePosition:u}=Qe({defaultClientHeight:420,defaultClientwidth:400,onClickOutside:()=>{l&&o.forEach(({id:e})=>a(e))}});return e.createElement(Bo,null,e.createElement(mt,{onClick:()=>{u(0,0),c(e=>!e)},tooltip:"Notifications",withPing:!!l,pingColor:t.colors.orange_og},e.createElement(Mi,{size:18})),e.createElement(et,{ref:r,isOpen:s,right:d.left,maxWidth:"400px",header:e.createElement(Wo,null,e.createElement(E,{size:20},"Notifications"),!!l&&e.createElement(Uo,{size:12,family:"secondary"},l," new"))},e.createElement(_o,null,n.length?n.map(t=>e.createElement(tl,{key:`notification-${t.id}`,...t,onClick:()=>c(!1)})):e.createElement(De,{title:"No notifications",subTitle:""})),e.createElement(Jo,null)))},Yo=d.div`
|
|
376
376
|
display: flex;
|
|
377
377
|
align-items: flex-start;
|
|
378
378
|
gap: 12px;
|
|
@@ -406,7 +406,7 @@ import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperative
|
|
|
406
406
|
width: 100%;
|
|
407
407
|
height: ${({$heightToRemove:e})=>`calc(100vh - ${e}px)`};
|
|
408
408
|
position: relative;
|
|
409
|
-
`,ol={namespace:"",name:"",kind:"",otelServiceName:"user",selected:!0,numberOfInstances:0,dataStreamNames:[],containers:[],conditions:[]},ll=({heightToRemove:t,serviceMap:a})=>{const n=O.useTheme(),{sources:o,sourcesLoading:l}=_(),{containerRef:r,containerHeight:s,containerWidth:c}=
|
|
409
|
+
`,ol={namespace:"",name:"",kind:"",otelServiceName:"user",selected:!0,numberOfInstances:0,dataStreamNames:[],containers:[],conditions:[]},ll=({heightToRemove:t,serviceMap:a})=>{const n=O.useTheme(),{sources:o,sourcesLoading:l}=_(),{containerRef:r,containerHeight:s,containerWidth:c}=Je(),[d,u,p]=Gi([]),[h,g,y]=Yi([]);return i(()=>{if(s&&c){const t=(({sources:e,serviceMap:t,containerHeight:i,containerWidth:a})=>{const n=[],o=new Map,l=((e,t)=>{const i=new Map,a=new Map,n=new Map,o=new Set;e.forEach(e=>{o.add(e.serviceName),e.services.forEach(e=>{o.add(e.serviceName)})}),o.forEach(e=>{a.set(e,[]),n.set(e,0)}),e.forEach(e=>{e.services.forEach(t=>{a.get(e.serviceName)?.push(t.serviceName);const i=n.get(t.serviceName)||0;n.set(t.serviceName,i+1)})});const l=[],r=[];for(o.forEach(e=>{0===(n.get(e)||0)&&r.push(e)});r.length>0;){const e=[],t=r.length;for(let i=0;i<t;i++){const t=r.shift();e.push(t),a.get(t)?.forEach(e=>{const t=n.get(e)||0;n.set(e,t-1),t-1==0&&r.push(e)})}e.length>0&&l.push(e)}return o.forEach(e=>{l.flat().includes(e)||(0===l.length?l.push([e]):l[l.length-1].push(e))}),l.forEach((e,a)=>{const n=100+150*a,o=150*(e.length-1),l=(t-o)/2;e.forEach((e,t)=>{const a=l+150*t,o=n;i.set(e,{x:a,y:o})})}),i})(t,a);if(t.length&&e.length){t.forEach(t=>{const i=t.serviceName;if(n.find(e=>e.id===`${B.Source}-${i}-${Wt.MapItem}`))return;const a=e.find(e=>i===e.otelServiceName||i===e.name);o.set(i,t),t.services.forEach(e=>o.set(e.serviceName,{serviceName:e.serviceName,services:[]})),n.push({id:`${B.Source}-${i}-${Wt.MapItem}`,type:Wt.MapItem,position:l.get(i),data:il(t,a,al(a))})}),o.forEach((t,i)=>{if(n.find(e=>e.id===`${B.Source}-${i}-${Wt.MapItem}`))return;const a=e.find(e=>i===e.otelServiceName||i===e.name);n.push({id:`${B.Source}-${i}-${Wt.MapItem}`,type:Wt.MapItem,position:l.get(i),data:il(t,a,al(a))})});let i=50;e.forEach(e=>{const t=e.otelServiceName||e.name;n.find(e=>e.id===`${B.Source}-${t}-${Wt.MapItem}`)||(n.push({id:`${B.Source}-${t}-${Wt.MapItem}`,type:Wt.MapItem,position:{x:i,y:10},data:il(void 0,e,al(e))}),i+=110)})}else n.push({id:`${B.Source}-${Wt.NoData}`,type:Wt.NoData,position:{x:a/2-150,y:i/4},data:{subTitle:m.ARE_SERVICES_INSTRUMENTED_AND_PRODUCING_TRAFFIC}});return n})({serviceMap:a,sources:[ol].concat(o),sourcesLoading:l,containerHeight:s,containerWidth:c});d.length>1?(e=t,u(t=>{const i=e.map(e=>{const i=t.find(t=>t.id===e.id);return e.position=i?.position||e.position,{id:e.id,item:e,type:i?"replace":"add"}});return t.find(e=>e.id===`${B.Source}-${Wt.NoData}`)&&i.push({id:`${B.Source}-${Wt.NoData}`,type:"remove"}),Xi(i,t)})):u(t)}var e},[a,o,l,s,c]),i(()=>{g((({theme:e,nodes:t,serviceMap:i})=>{const a=[];return t.forEach(({id:t,data:{id:n,status:o}})=>{const{services:l}=i.find(e=>e.serviceName===n)||{services:[]};l.forEach(i=>{const n=t,l=`${B.Source}-${i.serviceName}-${Wt.MapItem}`,r=o===W.Error;a.push({id:`${n}-to-${l}`,source:n,target:l,markerEnd:{type:Ui.ArrowClosed},style:{stroke:r?e?.colors.dark_red:e?.colors.border}})})}),a})({theme:n,nodes:d,serviceMap:a}))},[n,d,a]),e.createElement(nl,{ref:r,$heightToRemove:t},e.createElement(_t,{nodes:d,edges:h,onNodesChange:p,onEdgesChange:y,zoomOnScroll:!0}))},rl=d.div`
|
|
410
410
|
display: flex;
|
|
411
411
|
flex-direction: column;
|
|
412
412
|
align-items: center;
|
|
@@ -461,7 +461,7 @@ import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperative
|
|
|
461
461
|
max-height: calc(100vh - 200px);
|
|
462
462
|
height: fit-content;
|
|
463
463
|
overflow-y: scroll;
|
|
464
|
-
`,fl=({onEditStream:t,onEditSources:i,onEditDestinations:a,categories:n})=>{const{selectedStreamName:o}=_e(),{configuredSources:r,configuredDestinations:s,configuredDestinationsUpdateOnly:c}=ut(),d=l(()=>Object.values(r).reduce((e,t)=>e+t.filter(e=>e.selected).length,0),[r]);return e.createElement(ae,{$isNotModal:!0},e.createElement(Q,{$gap:12},e.createElement(I,{title:m.SUMMARY,description:m.STREAM_CONFIRM}),e.createElement(bl,null,e.createElement(X,{title:m.STREAM_NAME,action:()=>e.createElement(
|
|
464
|
+
`,fl=({onEditStream:t,onEditSources:i,onEditDestinations:a,categories:n})=>{const{selectedStreamName:o}=_e(),{configuredSources:r,configuredDestinations:s,configuredDestinationsUpdateOnly:c}=ut(),d=l(()=>Object.values(r).reduce((e,t)=>e+t.filter(e=>e.selected).length,0),[r]);return e.createElement(ae,{$isNotModal:!0},e.createElement(Q,{$gap:12},e.createElement(I,{title:m.SUMMARY,description:m.STREAM_CONFIRM}),e.createElement(bl,null,e.createElement(X,{title:m.STREAM_NAME,action:()=>e.createElement(Jt,{onClick:t}),data:[{title:"",value:o}]}),e.createElement(X,{title:m.SELECTED_SOURCES,titleBadge:d,action:()=>e.createElement(Jt,{onClick:i})},e.createElement(yl,{filteredNamespacesAndSources:r,withInstances:!1})),e.createElement(X,{title:m.SELECTED_DESTINATIONS,titleBadge:s.length+c.length,action:()=>e.createElement(Jt,{onClick:a})},e.createElement(ho,{categories:n})))))};var xl;!function(e){e.Overview="overview",e.InstrumentationRules="InstrumentationRule",e.Sources="Source",e.Actions="Action",e.Destinations="Destination"}(xl||(xl={}));const $l=({onClickId:i,defaultSelectedId:a,extendedNavIcons:n})=>{const{isVm:o}=We(),[r,s]=t(a||""),c=l(()=>[{id:xl.Overview,icon:Pi,selected:r===xl.Overview,onClick:()=>{s(xl.Overview),i(xl.Overview)},tooltip:"Overview"},...(n||[]).map(e=>({...e,selected:r===e.id,onClick:()=>{s(e.id),e.onClick()}}))],[r]),d=l(()=>{const e=[{id:xl.Sources,icon:Vi,selected:r===xl.Sources,onClick:()=>{s(xl.Sources),i(xl.Sources)},tooltip:"Sources"},{id:xl.Destinations,icon:qi,selected:r===xl.Destinations,onClick:()=>{s(xl.Destinations),i(xl.Destinations)},tooltip:"Destinations"}];return o||(e.push({id:xl.InstrumentationRules,icon:Ki,selected:r===xl.InstrumentationRules,onClick:()=>{s(xl.InstrumentationRules),i(xl.InstrumentationRules)},tooltip:"Instrumentation Rules"}),e.push({id:xl.Actions,icon:ji,selected:r===xl.Actions,onClick:()=>{s(xl.Actions),i(xl.Actions)},tooltip:"Actions"})),e},[o,r]);return e.createElement(Ut,{orientation:"vertical",mainIcons:c,subIcons:d})},kl=({})=>e.createElement(mt,{onClick:()=>window.open("https://join.slack.com/t/odigos/shared_invite/zt-2wc6gm4j9-EhcVFYrLwHqvcIErO9sVzw","_blank","noopener noreferrer"),tooltip:"Join our Slack community"},e.createElement(zi,null)),Cl=(e,t)=>{const{name:i,kind:a,namespace:n}=e,o=[{title:m.KIND,value:a},{title:m.NAME,value:i,tooltip:"Resource name"}];return t||(o.unshift({title:m.NAMESPACE,value:n}),o.push({type:h.Divider}),o.push({type:h.CopyText,value:`kubectl get ${a} ${i} -n ${n}`.toLowerCase()})),o},Sl=d.div`
|
|
465
465
|
display: flex;
|
|
466
466
|
flex-direction: column;
|
|
467
467
|
gap: 24px;
|
|
@@ -483,13 +483,13 @@ import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperative
|
|
|
483
483
|
`,Rl=({persistSources:a,updateSource:o,restartWorkloads:r,fetchSourceById:s,fetchSourceDescribe:c,fetchSourceLibraries:d,restartPod:u})=>{const{isVm:p}=We(),{sources:h}=_(),{selectedStreamName:g}=_e(),{drawerType:y,drawerEntityId:v}=K(),b=l(()=>Ge(h,g),[h,g]),f=n(null),x=y===B.Source,[$,k]=t(!1),[C,S]=t(!1),[w,T]=t(Ol.Overview),[D,N]=t(null);i(()=>{x&&v&&s(v).then(e=>N(e||null))},[x,v]);const{formData:O,handleFormChange:F,resetFormData:I,loadFormWithDrawerItem:A}=ni(),M=l(()=>{if(!x)return I();const e=(D&&JSON.stringify(zt(D))===JSON.stringify(zt(v))?D:null)||b?.find(e=>e.namespace===v.namespace&&e.name===v.name&&e.kind===v.kind);return e?A(e):I(),e},[x,v,b,D]),R=l(()=>{const e=M?.conditions?.find(({type:e})=>"RuntimeDetection"===e);return{description:e?.message,isLoading:e?.status===me.Loading,containers:M?.containers||[]}},[M]),L=l(()=>{const e=[{label:Ol.Overview,onClick:()=>T(Ol.Overview),selected:w===Ol.Overview}];return Fl.includes(M?.kind)&&e.push({label:Ol.Pods,onClick:()=>T(Ol.Pods),selected:w===Ol.Pods}),M?.containers?.some(({language:e})=>Il.includes(e))&&e.push({label:Ol.Libraries,onClick:()=>T(Ol.Libraries),selected:w===Ol.Libraries}),e},[w,M]);return M?e.createElement($a,{ref:f,onClose:()=>{T(Ol.Overview),N(null)},title:M.otelServiceName||M.name,titleTooltip:"This attribute is used to identify the name of the service (service.name) that is generating telemetry data.",hideEditTitleFromEdit:!0,icons:He(M.containers),isEdit:$,isFormDirty:C,onEdit:w===Ol.Overview?e=>{k("boolean"!=typeof e||e)}:void 0,onSave:async()=>{const e=O.otelServiceName!==M.name?O.otelServiceName:"";F("otelServiceName",e),await o(v,{...O,otelServiceName:e}),N(null),S(!1),k(!1)},onDelete:w===Ol.Overview?async()=>{const{namespace:e}=M;a({[e]:[{...M,selected:!1,currentStreamName:g}]},{}),N(null),S(!1),k(!1),f.current?.closeDrawer()}:void 0,onCancel:()=>{S(!1),k(!1),F("otelServiceName",M.otelServiceName||M.name||"")},isLastItem:1===b.length,tabs:L,headerActionButtons:[{"data-id":"rollout-restart",variant:"tertiary",onClick:()=>r([v]),children:e.createElement(e.Fragment,null,e.createElement(Ai,null),e.createElement(E,{size:14,family:"secondary",decoration:"underline"},"Restart"))}]},w===Ol.Overview?$?e.createElement(Al,null,e.createElement(wl,{formData:O,handleFormChange:(...e)=>{S(!0),F(...e),F("currentStreamName",g)}})):e.createElement(Ml,null,e.createElement(Tl,{workloadOdigosHealthStatus:M.workloadOdigosHealthStatus}),e.createElement(Y,{conditions:M.conditions||[]}),e.createElement(X,{title:m.SOURCE_DETAILS,data:M?Cl(M,p):[]}),e.createElement(X,{title:p?m.DETECTED_PROCESSES:m.DETECTED_CONTAINERS,titleBadge:R.isLoading?me.Loading:R.containers.length,description:R.description||(p?m.DETECTED_PROCESSES_DESCRIPTION:m.DETECTED_CONTAINERS_DESCRIPTION)},R.containers.map(t=>e.createElement(oi,{key:`source-container-${t.containerName}`,...t,callbackRuntimeOverride:async e=>await o(v,e)}))),e.createElement(Zi,{yaml:M.manifestYAML})):w===Ol.Pods?e.createElement(Dl,{source:M,fetchSourceDescribe:c,restartPod:u}):e.createElement(El,{source:M,fetchSourceLibraries:d})):null},Ll=d.div`
|
|
484
484
|
max-width: ${({$fullWidth:e})=>e?"unset":"420px"};
|
|
485
485
|
width: 100%;
|
|
486
|
-
`,Pl=a(({isModal:t,fetchSingleNamespace:i,onClickSummary:a},n)=>{const l=O.useTheme(),{isVm:r}=We(),s=si({fetchSingleNamespace:i}),{selectedSources:c,fetchingNamespace:d,selectedAllNamespaces:u,onSelectAllNamespaces:p,getApiSourcesPayload:h,getApiFutureAppsPayload:g,searchText:y,setSearchText:v,searchBy:b,setSearchBy:f,showSelectedOnly:x,setShowSelectedOnly:k,showRunningOnly:C,setShowRunningOnly:S}=s;o(n,()=>({getFormValues:()=>({apps:h(),futureApps:g()})}));const T=Object.values(c).reduce((e,t)=>e+t.filter(e=>e.selected).length,0);return e.createElement(ae,{$isNotModal:!t},e.createElement(Q,{$gap:12},e.createElement(Q,{$gap:24},a&&e.createElement(yt,{onClick:a}),e.createElement(I,{title:m.SELECT_SOURCES,badgeLabel:T,description:m.SELECT_SOURCES_DESCRIPTION}),e.createElement(de,{$justifyContent:"space-between"},e.createElement(Ll,{$fullWidth:r},e.createElement($,{placeholder:b===B.Source?m.SEARCH_SOURCES:m.SEARCH_NAMESPACES,icon:Di,value:y,onChange:e=>v(e.target.value.toLowerCase())})),!r&&e.createElement(F,{options:[{label:m.SOURCE,value:B.Source,selectedBgColor:l.text.secondary,selectedTextColor:l.text.primary},{label:m.NAMESPACE,value:B.Namespace,selectedBgColor:l.text.secondary,selectedTextColor:l.text.primary}],selected:b,setSelected:f})),e.createElement(de,{$gap:36},e.createElement(w,{title:m.SELECT_ALL,initialValue:u,onChange:p,disabled:!!d}),e.createElement(w,{title:m.ONLY_SELECTED,initialValue:x,onChange:k}),e.createElement(w,{title:m.ONLY_RUNNING_INSTANCES,initialValue:C,onChange:S}))),e.createElement(re,null),e.createElement(yl,{isModal:t,...s})))});Pl.displayName=Pl.name;const Kl=({fetchSingleNamespace:t,persistSources:i})=>{const{currentModal:a,setCurrentModal:o}=ee(),l=a===B.Source,r=()=>{o("")},s=async()=>{if(c.current){const{apps:e,futureApps:t}=c.current.getFormValues();i(e,t),r()}},c=n(null);return j({key:"Enter",active:l},s),l?e.createElement(te,{isOpen:l,onClose:r,header:{title:"Add Source"},actionComponent:e.createElement(ie,{buttons:[{label:"DONE",variant:"primary",onClick:s}]})},e.createElement(Pl,{ref:c,isModal:!0,fetchSingleNamespace:t})):null},jl=e=>{const t=[{key:"checkbox-and-icon",title:""},{key:"name",title:m.NAME,sortable:!0},{key:"kind",title:"Kind",sortable:!0}];return e||t.push({key:"namespace",title:m.NAMESPACE,sortable:!0}),t.push({key:"containers",title:m.DETECTED_CONTAINERS}),t.push({key:"conditions",title:"Conditions"}),t.push({key:"throughput",title:"Throughput",sortable:!0}),t},Vl=({metrics:t,maxHeight:i,maxWidth:a})=>{const n=O.useTheme(),{isVm:o}=We(),r=ge(),{isThisPending:c}=L(),{selectedStreamName:d}=_e(),{sources:u,sourcesLoading:p}=_(),{setDrawerType:h,setDrawerEntityId:g}=K(),{selectedSources:y,setSelectedSources:v}=Ae(),{isAwaitingInstrumentation:f,sourcesToCreate:x,sourcesCreated:$,sourcesToDelete:k,sourcesDeleted:C}=Me(),S=l(()=>{const e=(e,t)=>e>0&&Math.floor(100/e*t)||1;return x?e(x,$):k?e(k,C):1},[x,$,k,C]),w=l(()=>Ge(u,d),[u,d]),T=l(()=>Fa({instrumentationRules:[],sources:
|
|
486
|
+
`,Pl=a(({isModal:t,fetchSingleNamespace:i,onClickSummary:a},n)=>{const l=O.useTheme(),{isVm:r}=We(),s=si({fetchSingleNamespace:i}),{selectedSources:c,fetchingNamespace:d,selectedAllNamespaces:u,onSelectAllNamespaces:p,getApiSourcesPayload:h,getApiFutureAppsPayload:g,searchText:y,setSearchText:v,searchBy:b,setSearchBy:f,showSelectedOnly:x,setShowSelectedOnly:k,showRunningOnly:C,setShowRunningOnly:S}=s;o(n,()=>({getFormValues:()=>({apps:h(),futureApps:g()})}));const T=Object.values(c).reduce((e,t)=>e+t.filter(e=>e.selected).length,0);return e.createElement(ae,{$isNotModal:!t},e.createElement(Q,{$gap:12},e.createElement(Q,{$gap:24},a&&e.createElement(yt,{onClick:a}),e.createElement(I,{title:m.SELECT_SOURCES,badgeLabel:T,description:m.SELECT_SOURCES_DESCRIPTION}),e.createElement(de,{$justifyContent:"space-between"},e.createElement(Ll,{$fullWidth:r},e.createElement($,{placeholder:b===B.Source?m.SEARCH_SOURCES:m.SEARCH_NAMESPACES,icon:Di,value:y,onChange:e=>v(e.target.value.toLowerCase())})),!r&&e.createElement(F,{options:[{label:m.SOURCE,value:B.Source,selectedBgColor:l.text.secondary,selectedTextColor:l.text.primary},{label:m.NAMESPACE,value:B.Namespace,selectedBgColor:l.text.secondary,selectedTextColor:l.text.primary}],selected:b,setSelected:f})),e.createElement(de,{$gap:36},e.createElement(w,{title:m.SELECT_ALL,initialValue:u,onChange:p,disabled:!!d}),e.createElement(w,{title:m.ONLY_SELECTED,initialValue:x,onChange:k}),e.createElement(w,{title:m.ONLY_RUNNING_INSTANCES,initialValue:C,onChange:S}))),e.createElement(re,null),e.createElement(yl,{isModal:t,...s})))});Pl.displayName=Pl.name;const Kl=({fetchSingleNamespace:t,persistSources:i})=>{const{currentModal:a,setCurrentModal:o}=ee(),l=a===B.Source,r=()=>{o("")},s=async()=>{if(c.current){const{apps:e,futureApps:t}=c.current.getFormValues();i(e,t),r()}},c=n(null);return j({key:"Enter",active:l},s),l?e.createElement(te,{isOpen:l,onClose:r,header:{title:"Add Source"},actionComponent:e.createElement(ie,{buttons:[{label:"DONE",variant:"primary",onClick:s}]})},e.createElement(Pl,{ref:c,isModal:!0,fetchSingleNamespace:t})):null},jl=e=>{const t=[{key:"checkbox-and-icon",title:""},{key:"name",title:m.NAME,sortable:!0},{key:"kind",title:"Kind",sortable:!0}];return e||t.push({key:"namespace",title:m.NAMESPACE,sortable:!0}),t.push({key:"containers",title:m.DETECTED_CONTAINERS}),t.push({key:"conditions",title:"Conditions"}),t.push({key:"throughput",title:"Throughput",sortable:!0}),t},Vl=({metrics:t,maxHeight:i,maxWidth:a})=>{const n=O.useTheme(),{isVm:o}=We(),r=ge(),{isThisPending:c}=L(),{selectedStreamName:d}=_e(),{sources:u,sourcesLoading:p}=_(),{setDrawerType:h,setDrawerEntityId:g}=K(),{selectedSources:y,setSelectedSources:v}=Ae(),{isAwaitingInstrumentation:f,sourcesToCreate:x,sourcesCreated:$,sourcesToDelete:k,sourcesDeleted:C}=Me(),S=l(()=>{const e=(e,t)=>e>0&&Math.floor(100/e*t)||1;return x?e(x,$):k?e(k,C):1},[x,$,k,C]),w=l(()=>Ge(u,d),[u,d]),T=l(()=>Fa({instrumentationRules:[],sources:Ue(w,r),actions:[],destinations:[],searchText:r.searchText,selectedCategory:B.Source}).searchResults.find(({category:e})=>e===B.Source)?.entities||[],[w,r]),[D,N]=l(()=>{let e=0;return Object.values(y).forEach(t=>{e+=t.length}),[0!==e,e]},[y]),F=s(e=>{if(e){const e={};T.forEach(t=>{const i={namespace:t.namespace,name:t.name,kind:t.kind};c({entityType:B.Source,entityId:i})||(e[t.namespace]?e[t.namespace].push(t):e[t.namespace]=[t])}),v(e)}else v({})},[T]),I=s(e=>{const{namespace:t,name:i,kind:a}=e,n={...y};n[t]||(n[t]=[]);const o=n[t].findIndex(e=>e.name===i&&e.kind===a);-1===o?n[t].push(e):n[t].splice(o,1),v(n)},[y]),A=l(()=>T.map(i=>{const a=zt(i),o=JSON.stringify(a),{hasErrors:l,hasWarnings:r,hasDisableds:s}=se(i.conditions||[]),d=c({entityType:B.Source,entityId:a}),u=!!y[a.namespace]?.find(e=>e.namespace===a.namespace&&e.name===a.name&&e.kind===a.kind);return{status:l?W.Error:r?W.Warning:void 0,faded:s,onClick:()=>{h(B.Source),g(a)},cells:[{columnKey:"checkbox-and-icon",component:()=>e.createElement(de,{$gap:16},e.createElement(b,{disabled:d,value:u,onChange:()=>I(i)}),e.createElement(ci,{icons:He(i.containers),id:o}))},{columnKey:"name",value:be(i,B.Source,{extended:!0})},{columnKey:"kind",value:i.kind,textColor:n.text.info},{columnKey:"namespace",value:i.namespace,textColor:n.text.info},{columnKey:"throughput",value:je(Et(t,B.Source,a).throughput),textColor:n.text.info},{columnKey:"conditions",component:()=>e.createElement(Ea,{conditions:i.conditions||[],id:o})},{columnKey:"containers",component:()=>e.createElement("div",{style:{lineHeight:1}},e.createElement(ce,{status:W.Info,title:di(i.containers),withBorder:!0}))}]}}),[T,y,t,I]),{badge:M,badgeTooltip:R}=l(()=>T.length!==w.length?{badge:`${T.length}/${w.length}`,badgeTooltip:m.FILTERED_COUNT_TOOLTIP}:{badge:w.length,badgeTooltip:void 0},[T,w]);return e.createElement(xe,{$maxWidth:a},e.createElement($e,null,e.createElement(b,{partiallyChecked:D&&T?.length!==N,value:D&&T?.length===N,onChange:F,disabled:!T?.length}),e.createElement(ke,{icon:Ce(B.Source),title:m.SOURCES,badge:M,badgeTooltip:R,loading:p||f})),e.createElement(Se,{$maxHeight:i},e.createElement(we,{columns:jl(o),rows:A})),f&&!A.length?e.createElement(Te,{style:{marginTop:"2rem",gap:"24px"}},e.createElement(Ne,{width:420}),e.createElement(de,{$gap:16},e.createElement(E,{color:n.text.info},x?"Instrumenting":"Uninstrumenting"," workloads..."),e.createElement(Ee,{label:`${S}%`}))):A.length?null:e.createElement(Te,{style:{marginTop:"2rem"}},e.createElement(De,null)))},ql=({expiresAt:t})=>{const i=O.useTheme(),{formatTimeAgo:a}=Ht(),n=a(t),o=new Date(t).toDateString().split(" ").slice(1).join(" "),l=ui(t,0)?i.text.error:ui(t,6048e5)?i.text.warning:i.text.success;return e.createElement(E,{size:14,color:l},n," (",o,")")},zl=d.div`
|
|
487
487
|
position: relative;
|
|
488
488
|
`,Hl=({token:i,saveToken:a})=>{const{CopyButton:n}=pi(),{formData:o,handleFormChange:l,resetFormData:r}=mi({token:i}),[s,c]=t(!1),d=()=>{c(!1),r()};return e.createElement(de,{$gap:0},e.createElement(n,{value:i,size:hi.L}),e.createElement(re,{orientation:"vertical",length:"12px"}),e.createElement(zl,null,e.createElement(mt,{size:32,onClick:()=>{c(!0)}},e.createElement(Ci,null)),s&&e.createElement(gi,{flipX:!0,clientX:36,isOpen:s,onClose:d,onSave:()=>{a(o.token).then(d)},title:"Enter a new API Token",titleTooltip:"Contact us to generate a new one"},e.createElement($,{placeholder:"API Token",type:"password",value:o.token,onChange:e=>l("token",e.target.value)}))))},Bl=({tokens:t,saveToken:i})=>e.createElement(X,{title:"Authorization Tokens",titleBadge:t.length,data:[{type:h.Table,value:{columns:[{key:"icon",title:""},{key:"name",title:"Name"},{key:"expires_at",title:"Expires"},{key:"token",title:"Token"},{key:"actions",title:""}],rows:t.map(({name:t,token:a,expiresAt:n})=>({cells:[{columnKey:"icon",icon:Bi},{columnKey:"name",value:t},{columnKey:"token",value:`${new Array(15).fill("•").join("")}`},{columnKey:"expires_at",component:()=>e.createElement(ql,{expiresAt:n})},{columnKey:"actions",component:()=>e.createElement(Hl,{token:a,saveToken:i})}]}))}}]}),Wl=({fetchDescribeOdigos:a})=>{const[n,o]=t(null);if(i(()=>{a().then(({data:e})=>{o(e?.describeOdigos||null)})},[a]),!n)return e.createElement(Te,null,e.createElement(Le,null));const l=t=>t?.name?[e.createElement(re,{key:`divider-${t.name}`}),e.createElement(Zt,{key:`describe-row-${t.name}`,title:t.name,subTitle:t.explain||void 0,value:{status:t.status||(ii(t.value)?ai(t.value)?W.Success:W.Error:W.Default),text:t.value}})]:[];return e.createElement(e.Fragment,null,e.createElement(X,{title:"General Information",withExtend:!0,initialExtended:!0,data:[{title:n?.odigosVersion?.name,value:n?.odigosVersion?.value},{title:n?.kubernetesVersion?.name,value:n?.kubernetesVersion?.value},{title:n?.installationMethod?.name,value:n?.installationMethod?.value},{title:n?.tier?.name,value:n?.tier?.value},{title:"# of sources",value:n?.numberOfSources?.toString()},{title:"# of destinations",value:n?.numberOfDestinations?.toString()}]}),e.createElement(X,{title:"Cluster Collector",withExtend:!0},Object.values(n?.clusterCollector||{}).map(l)),e.createElement(X,{title:"Node Collector",withExtend:!0},Object.values(n?.nodeCollector||{}).map(l)))},_l=d.div`
|
|
489
489
|
display: flex;
|
|
490
490
|
flex-direction: column;
|
|
491
491
|
gap: 12px;
|
|
492
|
-
`,
|
|
492
|
+
`,Jl="System Overview",Ul=({tokens:i,saveToken:a,fetchDescribeOdigos:n})=>{const[o,l]=t(!1),r=()=>l(e=>!e);return e.createElement(e.Fragment,null,e.createElement(mt,{key:Jl,onClick:r,tooltip:Jl},e.createElement(Wi,{size:18})),e.createElement(q,{width:"750px",isOpen:o,onClose:r,header:{icons:[Wi],title:Jl},footer:{isOpen:!1}},e.createElement(_l,null,!!i?.length&&e.createElement(Bl,{tokens:i,saveToken:a}),e.createElement(Wl,{fetchDescribeOdigos:n}))))},Gl=d.div`
|
|
493
493
|
position: fixed;
|
|
494
494
|
bottom: 12px;
|
|
495
495
|
left: 12px;
|
|
@@ -533,7 +533,7 @@ import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperative
|
|
|
533
533
|
gap: 12px;
|
|
534
534
|
max-height: 100vh;
|
|
535
535
|
overflow-y: auto;
|
|
536
|
-
`,rr=({span:i,process:a,onClose:n})=>{const[o,l]=t(!0),[r,s]=t(!0);return e.createElement(q,{width:"750px",isOpen:!0,onClose:n,header:{icons:[
|
|
536
|
+
`,rr=({span:i,process:a,onClose:n})=>{const[o,l]=t(!0),[r,s]=t(!0);return e.createElement(q,{width:"750px",isOpen:!0,onClose:n,header:{icons:[Ji],title:i.operationName},footer:{isOpen:!1}},e.createElement(lr,null,e.createElement(X,{title:"Details",data:nr(i)}),i.logs.length>0&&e.createElement(X,{title:"Errors",titleBadge:i.logs.length,titleIcon:_i,data:ar(i)}),e.createElement(X,{title:"Tags",data:ir(i,o),action:e.createElement(bi,{isPrettyMode:o,setIsPrettyMode:l})}),a&&e.createElement(X,{title:`Process (${a.serviceName})`,data:or(a,r),action:e.createElement(bi,{isPrettyMode:r,setIsPrettyMode:s})})))},sr=370,cr=["#33DCA7","#50F6E8","#444AD9","#8B55FF","#FF7CA9"].reverse(),dr=d.div`
|
|
537
537
|
display: flex;
|
|
538
538
|
align-items: center;
|
|
539
539
|
width: ${sr}px;
|
|
@@ -598,4 +598,4 @@ import e,{useState as t,useEffect as i,forwardRef as a,useRef as n,useImperative
|
|
|
598
598
|
padding-top: 12px;
|
|
599
599
|
padding-left: 12px;
|
|
600
600
|
white-space: nowrap;
|
|
601
|
-
`,kr=({heightToRemove:i,traces:a,isLoading:n})=>{const[o,r]=t([]),[s,c]=t(null),d=l(()=>Tt(a).sort((e,t)=>t.spans[0].startTime-e.spans[0].startTime).map(e=>({...e,spans:tr(e)})),[a]),u=l(()=>d.reduce((e,t)=>Math.max(e,t.spans.reduce((e,t)=>e+t.duration,0)),0),[d]),p=l(()=>{const e=d.find(e=>e.spans.some(e=>e.spanID===s?.spanID)),t=e?.processes.find(e=>e.serviceName===s?.processID);return t},[d,s]);return e.createElement(e.Fragment,null,e.createElement(vr,{$heightToRemove:i},n?e.createElement(Te,{$height:"50vh"},e.createElement(Le,{scale:1.5})):d.length?e.createElement(br,{$heightToRemove:i},e.createElement(fr,null,e.createElement(E,null,"Service & operation")),new Array(5).fill(null).map((t,a)=>e.createElement(xr,{key:`${a}-divider`,$heightToRemove:i,index:a},e.createElement($r,null,vi(u/5*a)))),d.map((t,i)=>{const{spans:a}=t,n=a.reduce((e,t)=>Math.min(e,t.startTime),Number.MAX_SAFE_INTEGER),l=a.reduce((e,t)=>Math.max(e,t.startTime+t.duration),0);return e.createElement(yr,{key:`recursive-spans-${t.traceID}`,spans:a,logs:[],depth:1,indexInMatrix:i,maxDuration:u,minStartTime:n,maxEndTime:l,openSpanIdsState:{value:o,set:r},selectedSpanState:{value:s,set:c}})})):e.createElement(Te,{$height:"50vh"},e.createElement(De,{title:m.NO_TRACES_FOUND,subTitle:m.ARE_SERVICES_INSTRUMENTED_AND_PRODUCING_TRAFFIC}))),s&&e.createElement(rr,{span:s,process:p,onClose:()=>c(null)}))};export{wa as ActionDrawer,xa as ActionForm,Da as ActionModal,Aa as ActionTable,Ka as AwaitPipeline,ln as ConditionDropdown,en as DataFlow,Fn as DataFlowActionsMenu,$n as DataStreamDrawer,fn as DataStreamForm,An as DataStreamModal,In as DataStreamSelectionForm,_n as DestinationDrawer,Hn as DestinationForm,po as DestinationModal,vo as DestinationSelectionForm,fo as DestinationTable,rn as ErrorDropdown,Ro as InstrumentationRuleDrawer,Io as InstrumentationRuleForm,Ko as InstrumentationRuleModal,qo as InstrumentationRuleTable,un as KindDropdown,sn as LanguageDropdown,cn as MonitorDropdown,Ho as MultiSourceControl,dn as NamespaceDropdown,xl as NavIconIds,Go as NotificationManager,$a as OverviewDrawer,ll as ServiceMap,fl as SetupSummary,$l as SideNav,kl as SlackInvite,Rl as SourceDrawer,wl as SourceForm,Kl as SourceModal,Pl as SourceSelectionForm,Vl as SourceTable,
|
|
601
|
+
`,kr=({heightToRemove:i,traces:a,isLoading:n})=>{const[o,r]=t([]),[s,c]=t(null),d=l(()=>Tt(a).sort((e,t)=>t.spans[0].startTime-e.spans[0].startTime).map(e=>({...e,spans:tr(e)})),[a]),u=l(()=>d.reduce((e,t)=>Math.max(e,t.spans.reduce((e,t)=>e+t.duration,0)),0),[d]),p=l(()=>{const e=d.find(e=>e.spans.some(e=>e.spanID===s?.spanID)),t=e?.processes.find(e=>e.serviceName===s?.processID);return t},[d,s]);return e.createElement(e.Fragment,null,e.createElement(vr,{$heightToRemove:i},n?e.createElement(Te,{$height:"50vh"},e.createElement(Le,{scale:1.5})):d.length?e.createElement(br,{$heightToRemove:i},e.createElement(fr,null,e.createElement(E,null,"Service & operation")),new Array(5).fill(null).map((t,a)=>e.createElement(xr,{key:`${a}-divider`,$heightToRemove:i,index:a},e.createElement($r,null,vi(u/5*a)))),d.map((t,i)=>{const{spans:a}=t,n=a.reduce((e,t)=>Math.min(e,t.startTime),Number.MAX_SAFE_INTEGER),l=a.reduce((e,t)=>Math.max(e,t.startTime+t.duration),0);return e.createElement(yr,{key:`recursive-spans-${t.traceID}`,spans:a,logs:[],depth:1,indexInMatrix:i,maxDuration:u,minStartTime:n,maxEndTime:l,openSpanIdsState:{value:o,set:r},selectedSpanState:{value:s,set:c}})})):e.createElement(Te,{$height:"50vh"},e.createElement(De,{title:m.NO_TRACES_FOUND,subTitle:m.ARE_SERVICES_INSTRUMENTED_AND_PRODUCING_TRAFFIC}))),s&&e.createElement(rr,{span:s,process:p,onClose:()=>c(null)}))};export{wa as ActionDrawer,xa as ActionForm,Da as ActionModal,Aa as ActionTable,Ka as AwaitPipeline,ln as ConditionDropdown,en as DataFlow,Fn as DataFlowActionsMenu,$n as DataStreamDrawer,fn as DataStreamForm,An as DataStreamModal,In as DataStreamSelectionForm,_n as DestinationDrawer,Hn as DestinationForm,po as DestinationModal,vo as DestinationSelectionForm,fo as DestinationTable,rn as ErrorDropdown,Ro as InstrumentationRuleDrawer,Io as InstrumentationRuleForm,Ko as InstrumentationRuleModal,qo as InstrumentationRuleTable,un as KindDropdown,sn as LanguageDropdown,cn as MonitorDropdown,Ho as MultiSourceControl,dn as NamespaceDropdown,xl as NavIconIds,Go as NotificationManager,$a as OverviewDrawer,ll as ServiceMap,fl as SetupSummary,$l as SideNav,kl as SlackInvite,Rl as SourceDrawer,wl as SourceForm,Kl as SourceModal,Pl as SourceSelectionForm,Vl as SourceTable,Ul as SystemOverview,Ea as TableCellConditions,Yl as ToastList,er as ToggleDarkMode,kr as TraceView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './odigos-context';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React, { type PropsWithChildren } from 'react';
|
|
2
|
+
import { Tier } from '@/types';
|
|
3
|
+
interface ContextProps extends PropsWithChildren {
|
|
4
|
+
tier?: Tier;
|
|
5
|
+
version?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const OdigosProvider: ({ children, tier, version }: ContextProps) => React.JSX.Element;
|
|
8
|
+
export declare const useOdigos: (minSupportedVersion?: number) => {
|
|
9
|
+
isVersionSupported: boolean | "" | undefined;
|
|
10
|
+
tier?: Tier;
|
|
11
|
+
version?: string;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
package/lib/contexts.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import r,{createContext as o,useMemo as t,useContext as i}from"react";import{ci as e}from"./chunks/ui-components-82b524d5.js";import"./icons.js";import"styled-components";import"zustand";import"javascript-time-ago";import"./chunks/vendor-55cc654c.js";import"react-dom";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";const s=o({tier:void 0,version:void 0,isVersionSupported:!1}),n=({children:o,tier:i,version:e})=>{const n=t(()=>({tier:i,version:e}),[i,e]);return r.createElement(s.Provider,{value:n},o)},p=r=>{const o=i(s),t=!r||o.version&&e(o.version)>=e(r);return{...o,isVersionSupported:t}};export{n as OdigosProvider,p as useOdigos};
|
package/lib/functions/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const trimVersion: (v: string | number) => number;
|
package/lib/functions.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{bz as capitalizeFirstLetter,cC as cleanObjectEmptyStringsValues,bu as compareCondition,bB as deepClone,aE as filterActions,b7 as filterDestinations,b8 as filterDestinationsByStream,b5 as filterSources,b6 as filterSourcesByStream,cD as flattenObjectKeys,aY as formatBytes,ce as formatDuration,g as generateId,al as getActionIcon,ax as getConditionsBooleans,b0 as getContainersIcons,c9 as getContainersInstrumentedCount,a$ as getDestinationIcon,aL as getEntityIcon,aW as getEntityId,aG as getEntityLabel,cE as getIdFromSseTarget,a_ as getInstrumentationRuleIcon,cF as getMainContainerLanguage,bE as getMetricForEntity,cG as getMonitorIcon,cH as getPlatformIcon,cI as getPlatformLabel,bN as getProgrammingLanguageIcon,cg as getRecursiveValues,cJ as getSseTargetFromId,x as getStatusColor,s as getStatusFromPodStatus,aC as getStatusIcon,bX as getStatusTypeFromOdigosHealth,cK as getValueForRange,bR as getWorkloadId,by as getYamlFieldsForDestination,bY as hasUnhealthyInstances,Z as isEmpty,cL as isLegalK8sLabel,ca as isOverTime,c1 as isStringABoolean,cM as isTimeElapsed,cN as isValidVersion,az as mapConditions,bt as mapDestinationFieldsForDisplay,aX as mapExportedSignals,cO as numbersOnly,c2 as parseBooleanFromString,cP as parseJsonStringToPrettyString,cQ as removeEmptyValuesFromObject,bv as safeJsonParse,cR as safeJsonStringify,aQ as sleep,bf as splitCamelString,cS as stringifyNonStringValues,ci as trimVersion}from"./chunks/ui-components-82b524d5.js";import"./icons.js";import"react";import"styled-components";import"zustand";import"javascript-time-ago";import"./chunks/vendor-55cc654c.js";import"react-dom";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
|
package/lib/hooks.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{aj as useActionFormData,cW as useBodyScroll,b9 as useClickNode,bS as useClickNotification,b2 as useConnection,b4 as useContainerSize,u as useCopy,bl as useDataStreamFormData,bx as useDestinationFormData,d as useGenericForm,cX as useInfiniteScroll,bO as useInstrumentationRuleFormData,ac as useKeyDown,be as useOnClickOutside,ba as usePopup,bk as useSessionStorage,c3 as useSourceFormData,c7 as useSourceSelectionFormData,n as useTimeAgo,bQ as useTransition}from"./chunks/ui-components-82b524d5.js";import"./icons.js";import"react";import"styled-components";import"zustand";import"javascript-time-ago";import"./chunks/vendor-55cc654c.js";import"react-dom";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
|
package/lib/snippets.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{bq as AddButton,bZ as CopyText,bV as EditButton,bU as Flow,cY as MapItemNode,cZ as NoDataNode,br as NoteBackToSummary,b$ as PodContainer,c4 as SourceContainer}from"./chunks/ui-components-82b524d5.js";import"./icons.js";import"react";import"styled-components";import"zustand";import"javascript-time-ago";import"./chunks/vendor-55cc654c.js";import"react-dom";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
|
package/lib/store.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{cV as useActiveNodeStore,cd as useDarkMode,b3 as useDataStreamStore,ab as useDrawerStore,ai as useEntityStore,aD as useFilterStore,aU as useInstrumentStore,ap as useModalStore,aa as useNotificationStore,a9 as usePendingStore,aT as useSelectedStore,bm as useSetupStore}from"./chunks/ui-components-82b524d5.js";import"./icons.js";import"react";import"styled-components";import"zustand";import"javascript-time-ago";import"./chunks/vendor-55cc654c.js";import"react-dom";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
|
package/lib/theme.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{r as default}from"./chunks/ui-components-82b524d5.js";import"styled-components";import"./icons.js";import"react";import"zustand";import"javascript-time-ago";import"./chunks/vendor-55cc654c.js";import"react-dom";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
|
package/lib/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{cj as ActionCategory,V as ActionKeyTypes,H as ActionType,cw as AddNodeTypes,cm as BooleanOperation,bJ as CodeAttributesKeyTypes,ao as Crud,bH as CustomInstrumentationsKeyTypes,cx as DestinationTypes,cv as EdgeTypes,ah as EntityTypes,a2 as FieldTypes,bI as GolangCustomProbe,bF as HeadersCollectionKeyTypes,Y as InputTypes,cs as InstallationMethod,bL as InstrumentationRuleType,ct as IntrumentationStatus,bG as JavaCustomProbe,cn as JsonOperation,K as K8sAttributesFrom,c5 as K8sResourceKind,co as ListDirection,bT as NodeTypes,cl as NumberOperation,cB as OdigosHealthStatus,bs as OtherEntityTypes,aB as OtherStatus,O as OtherStatusType,bK as PayloadCollectionKeyTypes,cr as PlatformType,cA as PodContainerLifecycleStatus,cz as PodContainerStatus,cy as PodPhase,cu as Profile,c6 as ProgrammingLanguages,bw as SignalType,cp as SortDirection,q as StatusType,ck as StringOperation,cq as Tier,W as WorkloadRolloutStatus}from"./chunks/ui-components-82b524d5.js";import"./icons.js";import"react";import"styled-components";import"zustand";import"javascript-time-ago";import"./chunks/vendor-55cc654c.js";import"react-dom";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
|
package/lib/visuals/index.d.ts
CHANGED
package/lib/visuals.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import o from"react";import t from"styled-components";import{OdigosLogo as s}from"./icons.js";const p=434,
|
|
1
|
+
import o from"react";import t from"styled-components";import{OdigosLogo as s}from"./icons.js";export{V as VisualStar}from"./chunks/index-64bb5a64.js";const p=434,i=635,C=t.div`
|
|
2
2
|
width: ${434}px;
|
|
3
3
|
height: ${635}px;
|
|
4
4
|
display: flex;
|
|
@@ -13,7 +13,7 @@ import o from"react";import t from"styled-components";import{OdigosLogo as s}fro
|
|
|
13
13
|
top: 50%;
|
|
14
14
|
left: 50%;
|
|
15
15
|
transform: translate(-50%, -50%);
|
|
16
|
-
`,l=()=>o.createElement(
|
|
16
|
+
`,l=()=>o.createElement(C,null,o.createElement(a,null,o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"464",height:"464",viewBox:"0 0 464 464",fill:"none"},o.createElement("path",{opacity:"0.1",d:"M231.567 463.134C359.458 463.134 463.134 359.458 463.134 231.567C463.134 103.676 359.458 0 231.567 0C103.676 0 0 103.676 0 231.567C0 359.458 103.676 463.134 231.567 463.134Z",fill:"url(#paint0_radial_164_65835)"}),o.createElement("defs",null,o.createElement("radialGradient",{id:"paint0_radial_164_65835",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(201.232 229.641) scale(231.217)"},o.createElement("stop",{stopColor:"#7C3BFF",stopOpacity:"0.1"}),o.createElement("stop",{offset:"0.41",stopColor:"#7C3BFF",stopOpacity:"0.11"}),o.createElement("stop",{offset:"0.56",stopColor:"#7C3BFF",stopOpacity:"0.13"}),o.createElement("stop",{offset:"0.67",stopColor:"#7C3BFF",stopOpacity:"0.18"}),o.createElement("stop",{offset:"0.75",stopColor:"#7C3BFF",stopOpacity:"0.25"}),o.createElement("stop",{offset:"0.83",stopColor:"#7C3BFF",stopOpacity:"0.33"}),o.createElement("stop",{offset:"0.89",stopColor:"#7C3BFF",stopOpacity:"0.44"}),o.createElement("stop",{offset:"0.95",stopColor:"#7C3BFF",stopOpacity:"0.56"}),o.createElement("stop",{offset:"1",stopColor:"#7C3BFF",stopOpacity:"0.7"}))))),o.createElement(a,null,o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"432",height:"432",viewBox:"0 0 432 432",fill:"none"},o.createElement("path",{opacity:"0.3",d:"M215.921 431.841C335.17 431.841 431.841 335.17 431.841 215.921C431.841 96.6709 335.17 0 215.921 0C96.6709 0 0 96.6709 0 215.921C0 335.17 96.6709 431.841 215.921 431.841Z",fill:"url(#paint0_radial_164_65836)"}),o.createElement("defs",null,o.createElement("radialGradient",{id:"paint0_radial_164_65836",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(204.229 214.376) scale(216.276)"},o.createElement("stop",{stopColor:"#7C3BFF",stopOpacity:"0.1"}),o.createElement("stop",{offset:"0.38",stopColor:"#7C3BFF",stopOpacity:"0.11"}),o.createElement("stop",{offset:"0.52",stopColor:"#7C3BFF",stopOpacity:"0.13"}),o.createElement("stop",{offset:"0.62",stopColor:"#7C3BFF",stopOpacity:"0.18"}),o.createElement("stop",{offset:"0.69",stopColor:"#7C3BFF",stopOpacity:"0.25"}),o.createElement("stop",{offset:"0.76",stopColor:"#7C3BFF",stopOpacity:"0.33"}),o.createElement("stop",{offset:"0.82",stopColor:"#7C3BFF",stopOpacity:"0.44"}),o.createElement("stop",{offset:"0.88",stopColor:"#7C3BFF",stopOpacity:"0.57"}),o.createElement("stop",{offset:"0.93",stopColor:"#7C3BFF",stopOpacity:"0.72"}),o.createElement("stop",{offset:"0.97",stopColor:"#7C3BFF",stopOpacity:"0.88"}),o.createElement("stop",{offset:"1",stopColor:"#7C3BFF"}))))),o.createElement(a,null,o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"374",height:"374",viewBox:"0 0 374 374",fill:"none"},o.createElement("path",{opacity:"0.5",d:"M186.963 373.927C290.22 373.927 373.927 290.22 373.927 186.963C373.927 83.7063 290.22 0 186.963 0C83.7063 0 0 83.7063 0 186.963C0 290.22 83.7063 373.927 186.963 373.927Z",fill:"url(#paint0_radial_164_65837)"}),o.createElement("defs",null,o.createElement("radialGradient",{id:"paint0_radial_164_65837",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(166.792 184.246) scale(186.963)"},o.createElement("stop",{stopColor:"#7C3BFF",stopOpacity:"0.1"}),o.createElement("stop",{offset:"0.31",stopColor:"#7C3BFF",stopOpacity:"0.11"}),o.createElement("stop",{offset:"0.45",stopColor:"#7C3BFF",stopOpacity:"0.14"}),o.createElement("stop",{offset:"0.56",stopColor:"#7C3BFF",stopOpacity:"0.19"}),o.createElement("stop",{offset:"0.65",stopColor:"#7C3BFF",stopOpacity:"0.26"}),o.createElement("stop",{offset:"0.73",stopColor:"#7C3BFF",stopOpacity:"0.35"}),o.createElement("stop",{offset:"0.8",stopColor:"#7C3BFF",stopOpacity:"0.46"}),o.createElement("stop",{offset:"0.86",stopColor:"#7C3BFF",stopOpacity:"0.6"}),o.createElement("stop",{offset:"0.92",stopColor:"#7C3BFF",stopOpacity:"0.76"}),o.createElement("stop",{offset:"0.98",stopColor:"#7C3BFF",stopOpacity:"0.93"}),o.createElement("stop",{offset:"1",stopColor:"#7C3BFF"}))))),o.createElement(a,null,o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"257",height:"257",viewBox:"0 0 257 257",fill:"none"},o.createElement("path",{opacity:"0.7",d:"M128.193 256.387C198.992 256.387 256.387 198.992 256.387 128.193C256.387 57.3941 198.992 0 128.193 0C57.3941 0 0 57.3941 0 128.193C0 198.992 57.3941 256.387 128.193 256.387Z",fill:"url(#paint0_radial_164_65838)"}),o.createElement("defs",null,o.createElement("radialGradient",{id:"paint0_radial_164_65838",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(113.263 126.219) scale(128.08)"},o.createElement("stop",{stopColor:"#7C3BFF",stopOpacity:"0.1"}),o.createElement("stop",{offset:"0.31",stopColor:"#7C3BFF",stopOpacity:"0.11"}),o.createElement("stop",{offset:"0.45",stopColor:"#7C3BFF",stopOpacity:"0.14"}),o.createElement("stop",{offset:"0.56",stopColor:"#7C3BFF",stopOpacity:"0.19"}),o.createElement("stop",{offset:"0.65",stopColor:"#7C3BFF",stopOpacity:"0.26"}),o.createElement("stop",{offset:"0.73",stopColor:"#7C3BFF",stopOpacity:"0.35"}),o.createElement("stop",{offset:"0.8",stopColor:"#7C3BFF",stopOpacity:"0.46"}),o.createElement("stop",{offset:"0.86",stopColor:"#7C3BFF",stopOpacity:"0.6"}),o.createElement("stop",{offset:"0.92",stopColor:"#7C3BFF",stopOpacity:"0.76"}),o.createElement("stop",{offset:"0.98",stopColor:"#7C3BFF",stopOpacity:"0.93"}),o.createElement("stop",{offset:"1",stopColor:"#7C3BFF"}))))),o.createElement(a,null,o.createElement(s,{size:112}))),r=t.div`
|
|
17
17
|
width: ${({$size:o})=>o}px;
|
|
18
18
|
height: ${({$size:o})=>o}px;
|
|
19
19
|
border-radius: 100%;
|
|
@@ -21,4 +21,4 @@ import o from"react";import t from"styled-components";import{OdigosLogo as s}fro
|
|
|
21
21
|
display: flex;
|
|
22
22
|
align-items: center;
|
|
23
23
|
justify-content: center;
|
|
24
|
-
`,e=()=>o.createElement(r,{$size:126,$color:"rgba(80, 246, 232, 0.10)"},o.createElement(r,{$size:121,$color:"rgba(80, 246, 232, 0.20)"},o.createElement(r,{$size:111,$color:"rgba(80, 246, 232, 0.40)"},o.createElement(r,{$size:95,$color:"rgba(80, 246, 232, 0.60)"},o.createElement(r,{$size:67,$color:"#50F6E8"},o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"46",height:"46",viewBox:"0 0 46 46",fill:"none"},o.createElement("path",{fill:"#151618",d:"M36.0211 22.2763C36.0211 19.9012 36.0207 18.1909 35.9286 16.8405C35.8373 15.5029 35.6613 14.6218 35.3602 13.8949C34.4783 11.766 32.7865 10.0742 30.6576 9.19229C29.9307 8.89119 29.0496 8.71517 27.712 8.6239C26.3615 8.53176 24.6513 8.53133 22.2762 8.53133C19.9011 8.53133 18.1909 8.53176 16.8404 8.6239C15.5028 8.71517 14.6218 8.89119 13.8948 9.19229C11.7659 10.0742 10.0741 11.766 9.19223 13.8949C8.89113 14.6218 8.71512 15.5029 8.62385 16.8405C8.53171 18.1909 8.53128 19.9012 8.53128 22.2763C8.53128 24.6513 8.53171 26.3616 8.62385 27.712C8.71512 29.0496 8.89113 29.9307 9.19223 30.6576C10.0741 32.7865 11.7659 34.4783 13.8948 35.3602C14.6218 35.6613 15.5028 35.8373 16.8404 35.9286C18.1909 36.0207 19.9011 36.0212 22.2762 36.0212C24.6513 36.0212 26.3615 36.0207 27.712 35.9286C29.0496 35.8373 29.9306 35.6613 30.6576 35.3602C32.7865 34.4783 34.4783 32.7865 35.3602 30.6576C35.6613 29.9307 35.8373 29.0496 35.9286 27.712C36.0207 26.3616 36.0211 24.6513 36.0211 22.2763ZM28.8543 16.2147C29.4095 15.66 30.3097 15.66 30.8649 16.2147C31.4201 16.7699 31.4198 17.67 30.8649 18.2254L20.7543 28.3378C20.1992 28.8929 19.299 28.8925 18.7437 28.3378L14.5299 24.124C13.9747 23.5687 13.9746 22.6686 14.5299 22.1133C15.0851 21.5582 15.9852 21.5582 16.5405 22.1133L19.7472 25.32L28.8543 16.2147ZM38.8649 22.2763C38.8649 24.612 38.8651 26.435 38.7649 27.9046C38.6638 29.387 38.4559 30.6151 37.9873 31.7463C36.8168 34.5717 34.5716 36.8169 31.7462 37.9874C30.615 38.4559 29.387 38.6638 27.9045 38.765C26.435 38.8652 24.6119 38.865 22.2762 38.865C19.9405 38.865 18.1174 38.8652 16.6479 38.765C15.1654 38.6638 13.9374 38.4559 12.8062 37.9874C9.98077 36.8169 7.7356 34.5717 6.56507 31.7463C6.09651 30.6151 5.88862 29.387 5.78748 27.9046C5.68726 26.435 5.6875 24.612 5.6875 22.2763C5.6875 19.9405 5.68726 18.1175 5.78748 16.6479C5.88862 15.1655 6.09651 13.9375 6.56507 12.8063C7.7356 9.98082 9.98077 7.73565 12.8062 6.56513C13.9374 6.09656 15.1654 5.88868 16.6479 5.78753C18.1174 5.68731 19.9405 5.68755 22.2762 5.68755C24.6119 5.68755 26.435 5.68731 27.9045 5.78753C29.387 5.88868 30.615 6.09656 31.7462 6.56513C34.5716 7.73565 36.8168 9.98082 37.9873 12.8063C38.4559 13.9375 38.6638 15.1655 38.7649 16.6479C38.8651 18.1175 38.8649 19.9405 38.8649 22.2763Z"})))))));export{
|
|
24
|
+
`,e=()=>o.createElement(r,{$size:126,$color:"rgba(80, 246, 232, 0.10)"},o.createElement(r,{$size:121,$color:"rgba(80, 246, 232, 0.20)"},o.createElement(r,{$size:111,$color:"rgba(80, 246, 232, 0.40)"},o.createElement(r,{$size:95,$color:"rgba(80, 246, 232, 0.60)"},o.createElement(r,{$size:67,$color:"#50F6E8"},o.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"46",height:"46",viewBox:"0 0 46 46",fill:"none"},o.createElement("path",{fill:"#151618",d:"M36.0211 22.2763C36.0211 19.9012 36.0207 18.1909 35.9286 16.8405C35.8373 15.5029 35.6613 14.6218 35.3602 13.8949C34.4783 11.766 32.7865 10.0742 30.6576 9.19229C29.9307 8.89119 29.0496 8.71517 27.712 8.6239C26.3615 8.53176 24.6513 8.53133 22.2762 8.53133C19.9011 8.53133 18.1909 8.53176 16.8404 8.6239C15.5028 8.71517 14.6218 8.89119 13.8948 9.19229C11.7659 10.0742 10.0741 11.766 9.19223 13.8949C8.89113 14.6218 8.71512 15.5029 8.62385 16.8405C8.53171 18.1909 8.53128 19.9012 8.53128 22.2763C8.53128 24.6513 8.53171 26.3616 8.62385 27.712C8.71512 29.0496 8.89113 29.9307 9.19223 30.6576C10.0741 32.7865 11.7659 34.4783 13.8948 35.3602C14.6218 35.6613 15.5028 35.8373 16.8404 35.9286C18.1909 36.0207 19.9011 36.0212 22.2762 36.0212C24.6513 36.0212 26.3615 36.0207 27.712 35.9286C29.0496 35.8373 29.9306 35.6613 30.6576 35.3602C32.7865 34.4783 34.4783 32.7865 35.3602 30.6576C35.6613 29.9307 35.8373 29.0496 35.9286 27.712C36.0207 26.3616 36.0211 24.6513 36.0211 22.2763ZM28.8543 16.2147C29.4095 15.66 30.3097 15.66 30.8649 16.2147C31.4201 16.7699 31.4198 17.67 30.8649 18.2254L20.7543 28.3378C20.1992 28.8929 19.299 28.8925 18.7437 28.3378L14.5299 24.124C13.9747 23.5687 13.9746 22.6686 14.5299 22.1133C15.0851 21.5582 15.9852 21.5582 16.5405 22.1133L19.7472 25.32L28.8543 16.2147ZM38.8649 22.2763C38.8649 24.612 38.8651 26.435 38.7649 27.9046C38.6638 29.387 38.4559 30.6151 37.9873 31.7463C36.8168 34.5717 34.5716 36.8169 31.7462 37.9874C30.615 38.4559 29.387 38.6638 27.9045 38.765C26.435 38.8652 24.6119 38.865 22.2762 38.865C19.9405 38.865 18.1174 38.8652 16.6479 38.765C15.1654 38.6638 13.9374 38.4559 12.8062 37.9874C9.98077 36.8169 7.7356 34.5717 6.56507 31.7463C6.09651 30.6151 5.88862 29.387 5.78748 27.9046C5.68726 26.435 5.6875 24.612 5.6875 22.2763C5.6875 19.9405 5.68726 18.1175 5.78748 16.6479C5.88862 15.1655 6.09651 13.9375 6.56507 12.8063C7.7356 9.98082 9.98077 7.73565 12.8062 6.56513C13.9374 6.09656 15.1654 5.88868 16.6479 5.78753C18.1174 5.68731 19.9405 5.68755 22.2762 5.68755C24.6119 5.68755 26.435 5.68731 27.9045 5.78753C29.387 5.88868 30.615 6.09656 31.7462 6.56513C34.5716 7.73565 36.8168 9.98082 37.9873 12.8063C38.4559 13.9375 38.6638 15.1655 38.7649 16.6479C38.8651 18.1175 38.8649 19.9405 38.8649 22.2763Z"})))))));export{i as VISUAL_ODIGOS_LOGO_HEIGHT,p as VISUAL_ODIGOS_LOGO_WIDTH,l as VisualOdigosLogo,e as VisualSuccess};
|