@odigos/ui-kit 0.0.253 → 0.0.255
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 +22 -0
- package/docs/api-context.md +1 -1
- package/lib/chunks/connections-scope-DATTj_XG.js +1 -0
- package/lib/chunks/consts-D6GCMJ6c.js +1 -0
- package/lib/chunks/{helpers-BEkhis3j.js → helpers-CUmUiA_l.js} +1 -1
- package/lib/chunks/index-hiRPXsEi.js +155 -0
- package/lib/chunks/{source-instrument-form-context-6ViZM1Z_.js → source-instrument-form-context-DY-QjJ0l.js} +1 -1
- package/lib/chunks/{ui-components-TeG65JGy.js → ui-components-B1TCLO_N.js} +225 -233
- package/lib/chunks/use-odigos-api-FiChYL7A.js +5 -0
- package/lib/components/_v2/icon-group/index.d.ts +4 -3
- package/lib/components/_v2/no-data/index.d.ts +2 -2
- package/lib/components/v2.js +1 -1
- package/lib/components.js +1 -1
- package/lib/constants/strings/index.d.ts +3 -1
- package/lib/constants.js +1 -1
- package/lib/containers/service-map/helpers/build-edges.d.ts +1 -1
- package/lib/containers/service-map/helpers/build-map-nodes.d.ts +2 -3
- package/lib/containers/service-map/helpers/consts.d.ts +1 -0
- package/lib/containers/service-map/helpers/elk-layout.d.ts +4 -3
- package/lib/containers/service-map/helpers/types.d.ts +21 -0
- package/lib/containers/service-map/index.d.ts +2 -10
- package/lib/containers/service-map/react-flow/edges/animated-traffic-edge.d.ts +6 -0
- package/lib/containers/service-map/react-flow/flow.d.ts +7 -0
- package/lib/containers/service-map/react-flow/index.d.ts +1 -0
- package/lib/containers/service-map/react-flow/nodes/map-item-node.d.ts +6 -0
- package/lib/containers/service-map/react-flow/nodes/no-data-node.d.ts +6 -0
- package/lib/containers/service-map/react-flow/search-and-select-nodes.d.ts +3 -0
- package/lib/containers/service-map/service-map-context.d.ts +24 -0
- package/lib/containers/v2.js +138 -138
- package/lib/containers.js +76 -20
- package/lib/contexts/odigos-api/capabilities.d.ts +1 -0
- package/lib/contexts/odigos-api/index.d.ts +2 -1
- package/lib/contexts/odigos-api/platform-helpers.d.ts +4 -2
- package/lib/contexts/odigos-api/types.d.ts +29 -5
- package/lib/contexts/odigos-api.js +1 -1
- package/lib/contexts.js +1 -1
- package/lib/functions/get-nearest-typography-size/index.d.ts +3 -0
- package/lib/functions/index.d.ts +1 -0
- package/lib/functions.js +1 -1
- package/lib/hooks.js +1 -1
- package/lib/snippets/index.d.ts +1 -1
- package/lib/snippets/v2.js +1 -1
- package/lib/snippets.js +1 -1
- package/lib/store/index.d.ts +0 -1
- package/lib/store/useDrawerStore.d.ts +2 -1
- package/lib/store.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/types/index.d.ts +0 -1
- package/lib/types.js +1 -1
- package/lib/visuals.js +1 -1
- package/package.json +1 -1
- package/lib/chunks/connections-scope-h3bbPbRd.js +0 -1
- package/lib/chunks/flow-BnkrFBJL.js +0 -49
- package/lib/chunks/index-DIVbcB6F.js +0 -155
- package/lib/chunks/use-odigos-api-li2VrVHH.js +0 -5
- package/lib/containers/service-map/service-map-drawer.d.ts +0 -17
- package/lib/snippets/react-flow/flow.d.ts +0 -17
- package/lib/snippets/react-flow/index.d.ts +0 -3
- package/lib/snippets/react-flow/nodes/map-item-node.d.ts +0 -13
- package/lib/snippets/react-flow/nodes/no-data-node.d.ts +0 -9
- package/lib/store/useActiveNodeStore.d.ts +0 -11
- package/lib/types/data-flow/index.d.ts +0 -21
package/lib/containers.js
CHANGED
|
@@ -1,34 +1,90 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t,Fragment as
|
|
2
|
-
padding:
|
|
3
|
-
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as i}from"react/jsx-runtime";import o,{useTheme as r}from"styled-components";import{memo as a,useState as s,useCallback as n,useEffect as d,useMemo as l,createContext as c,useContext as p,useRef as u}from"react";import{U as m}from"./chunks/consts-D6GCMJ6c.js";import{MarkerType as g,useNodesState as h,useEdgesState as f,Handle as v,Position as y,getSmoothStepPath as N,BaseEdge as S,EdgeLabelRenderer as b,ReactFlowProvider as x,ReactFlow as w,Background as k,Controls as M,ControlButton as T,useReactFlow as C}from"@xyflow/react";import{N as I,o as $,p as E,q as K,r as V,v as _,w as z,b as A,c as L,x as R,y as X,B as j,z as D,L as P,M as q,O as G,Q as F,R as H}from"./chunks/ui-components-B1TCLO_N.js";import{UserIcon as O,ImageErrorIcon as B,RefreshIcon as U}from"./icons.js";import Y from"elkjs/lib/elk.bundled.js";import{d as W}from"./chunks/use-odigos-api-FiChYL7A.js";import"@xyflow/react/dist/style.css";import"zustand";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";import"@apollo/client";import"@apollo/client/link/error";import"@apollo/client/link/context";import"@apollo/client/utilities";const Z=o.div`
|
|
2
|
+
padding: 12px;
|
|
3
|
+
border-radius: 12px;
|
|
4
|
+
background-color: ${({theme:e})=>e.v2.colors.silver[750]};
|
|
5
|
+
`,Q=a(({id:t,data:i})=>e(Z,{"data-id":t,children:e(I,{...i})}));Q.displayName=Q.name;var J,ee;!function(e){e.MapItem="map-item",e.NoData="no-data"}(J||(J={})),function(e){e.AnimatedTraffic="animated-traffic"}(ee||(ee={}));const te=(e,t,i)=>{if(i)return{icons:[O],selected:!0};const o=e.isVirtual,r=o?[K(e)]:t?V(t):[B],{priorotizedStatus:a}=o?{priorotizedStatus:void 0}:_(t?.conditions||[]);return{icons:r,status:a,isVirtual:o,aggService:e,selected:!0}},ie=e=>!(!e||e.serviceName!==m||e.id.namespace||e.id.name||e.id.kind),oe=new Y,re={"elk.algorithm":"layered","elk.direction":"RIGHT","elk.layered.spacing.nodeNodeBetweenLayers":"150","elk.spacing.nodeNode":"120","elk.layered.nodePlacement.strategy":"NETWORK_SIMPLEX","elk.layered.spacing.edgeEdgeBetweenLayers":"30","elk.layered.spacing.edgeNodeBetweenLayers":"40"},ae=e=>{const t=e.lastIndexOf("|");return-1===t?{graphKey:e,detail:""}:{graphKey:e.substring(0,t),detail:e.substring(t+1)}},se={id:{namespace:"",name:"",kind:""},serviceName:m,markedForInstrumentation:{markedForInstrumentation:!0}},ne=c(null),de=()=>{const e=p(ne);if(!e)throw new Error("useServiceMapContext must be used within a ServiceMapProvider");return e},le=({serviceMap:t,children:i})=>{const o=r(),{sourcesApi:a}=W(),{items:c}=a.useSources(),[p,u,v]=h([]),[y,N,S]=f([]),[b,x]=s(0),w=n(()=>x(e=>e+1),[]),[k,M]=s(""),[T,C]=s(null),[I,K]=s(null),V=n(e=>{K(t=>t===e?null:e)},[]),_=n((e,t)=>{const i=new Set(e);u(e=>e.map(e=>e.type===J.MapItem&&i.has(e.id)?{...e,data:{...e.data,selected:t}}:e))},[u]),z=n(()=>{K(null)},[]);d(()=>{let e=!1;const i=(e=>{const t=new Map,i=new Set,o=(e,i,o=!1)=>{let r=t.get(e);return r||(r={serviceName:i,isVirtual:o,attributes:{},connectionMap:new Map},t.set(e,r)),r},r=(e,t)=>{if(t)for(const{key:i,value:o}of t)i in e||(e[i]=o)};for(const t of e){const{graphKey:e}=ae(t.nodeId),a=o(e,t.serviceName);a.isVirtual=!1;for(const e of t.services){const{graphKey:t,detail:s}=ae(e?.nodeId??"");e.isVirtual&&(i.add(t),r(o(t,e.serviceName,!0).attributes,e.nodeAttributes));let n=a.connectionMap.get(t);if(n||(n={targetGraphKey:t,targetServiceName:e.serviceName,totalRequests:0,lastDateTime:e.dateTime,details:[]},a.connectionMap.set(t,n)),n.totalRequests+=e.requests,e.dateTime>n.lastDateTime&&(n.lastDateTime=e.dateTime),s){const t=n.details.find(e=>e.value===s);t?(t.requests+=e.requests,e.dateTime>t.dateTime&&(t.dateTime=e.dateTime)):n.details.push({value:s,requests:e.requests,dateTime:e.dateTime})}}}const a=[...t.entries()];for(const[,{connectionMap:e}]of a)for(const[r,a]of e)t.has(r)||o(r,a.targetServiceName,i.has(r));const s=[];for(const[e,{serviceName:i,isVirtual:o,attributes:r,connectionMap:a}]of t){const t=[...a.values()];t.sort((e,t)=>e.targetGraphKey.localeCompare(t.targetGraphKey)),s.push({graphKey:e,serviceName:i,isVirtual:o,connections:t,attributes:r})}return s.sort((e,t)=>e.graphKey.localeCompare(t.graphKey)),s})(t),r=(({sources:e,aggregatedServiceMap:t})=>{const i=[],o={x:0,y:0};if(t.length&&e.length)for(const r of t){const t=e.find(e=>r.serviceName===e.serviceName||r.serviceName===e.id.name),a=ie(t);i.push({id:r.graphKey,type:J.MapItem,position:o,data:te(r,t,a),measured:{width:80,height:80}})}else i.push({id:J.NoData,type:J.NoData,position:o,data:{subTitle:E.ARE_SERVICES_INSTRUMENTED_AND_PRODUCING_TRAFFIC}});return i})({aggregatedServiceMap:i,sources:[se].concat(c)});if(1===r.length&&r[0].id===J.NoData)return u(r),N([]),M(""),void w();const a=(({theme:e,nodes:t,aggregatedServiceMap:i})=>{const o=[],r=new Map(t.map(e=>[e.id,e]));for(const t of i){const i=t.graphKey,a=r.get(i);if(!a)continue;const s=a.data?.status===$.Error;for(const a of t.connections){const n=a.targetGraphKey;r.has(n)&&o.push({id:`${i}-to-${n}`,type:"smoothstep",source:i,target:n,data:{sourceGraphKey:t.graphKey,targetGraphKey:a.targetGraphKey},markerEnd:{type:g.ArrowClosed},style:{stroke:s?e?.colors.dark_red:e?.colors.border}})}}return o})({theme:o,nodes:r,aggregatedServiceMap:i});N(a);const s=r.map(e=>e.id).sort().join("|");if(s!==k)return(async(e,t,i={})=>{const o={id:"root",layoutOptions:{...re,...i},children:e.map(e=>({id:e.id,width:80,height:80,...e.id===m?{layoutOptions:{"elk.layered.layering.layerConstraint":"FIRST","elk.alignment":"CENTER"}}:{}})),edges:t.map(e=>({id:e.id,sources:[e.source],targets:[e.target]}))},r=await oe.layout(o),a=new Map;return r.children?.forEach(e=>{a.set(e.id,{x:e.x??0,y:e.y??0})}),{nodes:e.map(e=>({...e,position:a.get(e.id)??e.position})),edges:t}})(r,a).then(({nodes:t})=>{e||(u(t),M(s),w())}),()=>{e=!0};u(e=>{const t=new Map(e.map(e=>[e.id,e]));return r.map(e=>{const i=t.get(e.id);return i?e.type===J.MapItem&&i.type===J.MapItem?{...e,position:i.position,data:{...e.data,selected:i.data.selected}}:{...e,position:i.position}:e})})},[o,t,c,k]);const A=l(()=>T||I?y.map(e=>{if(e.source===T||e.target===T||e.source===I||e.target===I)return{...e,type:ee.AnimatedTraffic};const t={opacity:.3};return{...e,style:{...e.style,...t},labelStyle:{...e.labelStyle,...t},labelBgStyle:{...e.labelBgStyle,...t}}}):y,[y,T,I]),L=l(()=>({nodes:p,edges:A,onNodesChange:v,onEdgesChange:S,setNodesSelected:_,fitViewTrigger:b,hoveredNodeId:T,setHoveredNodeId:C,selectedNodeId:I,toggleSelectedNode:V,resetSelectedNode:z}),[p,A,v,S,_,b,T,I,V,z]);return e(ne.Provider,{value:L,children:i})},ce=o.div`
|
|
6
|
+
border: 1px ${({theme:e,$isSelected:t,$isVirtual:i})=>t?`solid ${e.v2.colors.blue[300]}`:i?`dashed ${e.v2.colors.silver[300]}`:"solid transparent"};
|
|
7
|
+
border-radius: 8px;
|
|
8
|
+
cursor: pointer;
|
|
9
|
+
opacity: ${({$isVirtual:e})=>e?.8:1};
|
|
10
|
+
`,pe=o.div`
|
|
11
|
+
position: relative;
|
|
12
|
+
`,ue=o.div`
|
|
13
|
+
position: absolute;
|
|
14
|
+
top: 100%;
|
|
15
|
+
left: 50%;
|
|
16
|
+
transform: translateX(-50%);
|
|
4
17
|
display: flex;
|
|
5
|
-
gap: 12px;
|
|
6
18
|
align-items: center;
|
|
7
|
-
|
|
8
|
-
|
|
19
|
+
gap: 4px;
|
|
20
|
+
margin-top: 4px;
|
|
21
|
+
`,me=a(({id:o,data:a})=>{const{icons:s,status:n,isVirtual:d}=a,c=r(),{selectedNodeId:p,hoveredNodeId:u}=de(),{isUserSource:g,isNodeSelected:h,isHovered:f}=l(()=>({isUserSource:o===m,isNodeSelected:p===o,isHovered:u===o}),[o,p,u,o]),{isSelected:N,isHighlighted:S}=l(()=>({isSelected:h||g,isHighlighted:h||f||g}),[h,f,g]),b=n?R(n,c):null;return t(i,{children:[e(v,{type:"source",position:y.Right,style:{visibility:"hidden"}}),e(v,{type:"target",position:y.Left,style:{visibility:"hidden"}}),t(pe,{"data-id":o,children:[e(ce,{$isSelected:N,$isVirtual:d,children:e(z,{padding:12,icons:s,status:S?$.Info:n})}),t(ue,{children:[b&&e(b,{}),e(A,{size:L.XXS,nowrap:!0,children:o})]})]})]})});me.displayName=me.name;const ge=o.div`
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-direction: column;
|
|
24
|
+
gap: 12px;
|
|
25
|
+
height: calc(100% - 32px);
|
|
26
|
+
width: ${358}px;
|
|
27
|
+
padding: 12px 16px;
|
|
28
|
+
border-radius: 16px;
|
|
29
|
+
background-color: ${({theme:e})=>e.v2.colors.silver[1e3]};
|
|
30
|
+
position: absolute;
|
|
31
|
+
top: 16px;
|
|
32
|
+
left: 8px;
|
|
33
|
+
z-index: ${({theme:e})=>e.v2.zIndex.drawer};
|
|
34
|
+
`,he=o.div`
|
|
35
|
+
flex: 1 1 auto;
|
|
36
|
+
min-height: 0;
|
|
37
|
+
`,fe=({})=>{const{nodes:i,setNodesSelected:o,resetSelectedNode:r}=de(),[a,d]=s(""),c=l(()=>i.filter(e=>e.type===J.MapItem).sort((e,t)=>e.id.localeCompare(t.id)),[i]),p=l(()=>c.filter(e=>e.data.selected),[c]),u=l(()=>c.filter(e=>e.id.toLowerCase().includes(a.toLowerCase())),[c,a]),m=l(()=>u.every(e=>e.data.selected),[u]),g=n(()=>{const e=!m;o(u.map(e=>e.id),e),e||r()},[u,m,o,r]);return c.length?t(ge,{children:[t(X,{$width:"100%",$gap:8,children:[e(A,{size:L.XS,children:"Services"}),e(j,{label:c.length})]}),e(D,{width:"100%",value:a,onChange:d}),t(X,{$width:"100%",$justifyContent:"space-between",children:[e(A,{size:L.XXXS,children:`Showing ${p.length} out of ${c.length}`}),e(A,{"data-id":"namespaces-select-all",onClick:g,disabled:!u.length,size:L.XS,children:m?E.UNSELECT_ALL:E.SELECT_ALL})]}),e(he,{children:e(P,{gap:4,elements:u.map(t=>e(ye,{node:t},t.id))})})]}):null},ve=o.div`
|
|
9
38
|
display: flex;
|
|
10
39
|
align-items: center;
|
|
11
|
-
gap:
|
|
12
|
-
|
|
13
|
-
border:
|
|
40
|
+
gap: 8px;
|
|
41
|
+
padding: 8px;
|
|
42
|
+
border-radius: 8px;
|
|
43
|
+
background-color: ${({theme:e})=>e.v2.colors.silver[900]};
|
|
14
44
|
cursor: pointer;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
45
|
+
`,ye=({node:i})=>{const{setNodesSelected:o,selectedNodeId:r,resetSelectedNode:a}=de(),s=n(()=>{const e=!i.data.selected,t=r===i.id;o([i.id],e),!e&&t&&a()},[i,r,o,a]);return t(ve,{onClick:s,children:[e(q,{value:i.data.selected||!1,onChange:s}),e(z,{icons:i.data.icons}),e(A,{size:L.XXS,children:i.id})]},i.id)},Ne="0;0.5;1",Se=a(({id:o,sourceX:a,sourceY:s,targetX:n,targetY:d,sourcePosition:l,targetPosition:c,markerEnd:p})=>{const u=r(),[m]=N({sourceX:a,sourceY:s,targetX:n,targetY:d,sourcePosition:l,targetPosition:c}),g=`${o}__animated-traffic-motion`,h=u.v2.colors.blue[700],f=u.v2.colors.blue[900],v=u.v2.colors.blue[500],y="4s";return t(i,{children:[e(S,{id:o,path:m,markerEnd:p,style:{stroke:h,strokeWidth:1}}),e(b,{children:t("svg",{style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"visible",pointerEvents:"none"},children:[e("path",{id:g,d:m,fill:"none",stroke:"none"}),Array.from({length:5}).map((i,o)=>{const r=`-${(.8*o).toFixed(3)}s`;return t("circle",{r:0,fill:f,children:[e("animateMotion",{dur:y,begin:r,repeatCount:"indefinite",children:e("mpath",{href:`#${g}`})}),e("animate",{attributeName:"r",dur:y,begin:r,repeatCount:"indefinite",keyTimes:Ne,values:"0;3.5;3.5"}),e("animate",{attributeName:"fill",dur:y,begin:r,repeatCount:"indefinite",keyTimes:Ne,values:`${f};${v};${v}`})]},o)})]})})]})});Se.displayName=Se.name;const be=o.div`
|
|
46
|
+
position: relative;
|
|
47
|
+
height: 100%;
|
|
48
|
+
.react-flow__attribution {
|
|
49
|
+
visibility: hidden;
|
|
50
|
+
}
|
|
51
|
+
* {
|
|
52
|
+
transition: none;
|
|
53
|
+
}
|
|
54
|
+
`,xe=o.div`
|
|
55
|
+
.react-flow__controls {
|
|
56
|
+
display: flex;
|
|
57
|
+
align-items: center;
|
|
58
|
+
justify-content: center;
|
|
59
|
+
gap: 8px;
|
|
60
|
+
padding: 8px;
|
|
61
|
+
border-radius: 8px;
|
|
62
|
+
background-color: ${({theme:e})=>e.v2.colors.silver[1e3]};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.react-flow__controls-button {
|
|
66
|
+
padding: 8px;
|
|
67
|
+
border-radius: 6px;
|
|
68
|
+
border: none !important;
|
|
69
|
+
background-color: ${({theme:e})=>e.v2.colors.silver[750]};
|
|
70
|
+
&:hover {
|
|
71
|
+
background-color: ${({theme:e})=>e.v2.colors.silver[600]};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
svg {
|
|
75
|
+
path {
|
|
76
|
+
fill: ${({theme:e})=>e.v2.colors.white[500]};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
21
79
|
}
|
|
22
|
-
`,
|
|
23
|
-
padding: 4px 0 8px;
|
|
24
|
-
`,W=({conn:r,onToggle:i,isExpanded:n})=>{const a=r.details.length>0;return e(B,{children:t(S,{$justifyContent:"space-between",$alignItems:"center",children:[e(v,{size:14,weight:500,children:r.targetServiceName}),a&&t(L,{onClick:i,children:[e(n?T:I,{size:12}),n?"hide attributes":`${r.details.length} attribute${r.details.length>1?"s":""}`]})]})})},U=({conn:t})=>{const i=z();return e(r,{children:t.details.map(t=>e(F,{children:e(v,{size:12,color:i.text.secondary,style:{flex:1},children:t.value})},t.value))})},H=({connections:n,isVirtual:a,attributes:o})=>{const[s,c]=i(new Set),l=z();if(a){const i=Object.entries(o||{});return t(r,{children:[e(v,{size:12,color:l.text.info,children:"This service is not instrumented. It was detected from client-side spans of services that communicate with it."}),i.length>0&&t(r,{children:[e(P,{style:{paddingTop:16},children:e(v,{size:11,color:l.text.info,children:"Attributes"})}),i.map(([r,i])=>t(F,{children:[e(v,{size:12,color:l.text.secondary,children:r}),e(v,{size:12,children:i})]},r))]})]})}return n.length?t(r,{children:[e(P,{children:e(v,{size:11,color:l.text.info,children:"Connected services"})}),n.map(r=>t("div",{children:[e(W,{conn:r,isExpanded:s.has(r.targetGraphKey),onToggle:()=>{return e=r.targetGraphKey,void c(t=>{const r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r});var e}}),s.has(r.targetGraphKey)&&e(U,{conn:r}),e(x,{})]},r.targetGraphKey))]}):e(v,{size:12,color:l.text.info,children:"No outgoing connections"})},X=({conn:i})=>{const n=z();return i?e(r,{children:i.details.length>0?t(r,{children:[e(P,{children:e(v,{size:11,color:n.text.info,children:"Attribute breakdown"})}),i.details.map(t=>e(F,{children:e(v,{size:12,style:{flex:1},children:t.value})},t.value))]}):e(v,{size:12,color:n.text.info,style:{padding:"8px 0"},children:"No attribute breakdown"})}):e(v,{size:12,color:n.text.info,children:"No data for this connection"})},J=({drawerState:t,aggregatedData:r,onClose:i})=>{if(!t)return null;const n=new Map(r.map(e=>[e.graphKey,e]));let a="",o="",s=null;if("node"===t.type){const r=n.get(t.graphKey);a=r?.serviceName||t.graphKey,o=r?.isVirtual?"Virtual service (uninstrumented)":"Outgoing connections",s=e(H,{connections:r?.connections||[],isVirtual:r?.isVirtual,attributes:r?.attributes})}else{const r=n.get(t.sourceKey),i=r?.connections.find(e=>e.targetGraphKey===t.targetKey);a=`${r?.serviceName||t.sourceKey} → ${i?.targetServiceName||t.targetKey}`,o="Connection details",s=e(X,{conn:i})}return e(f,{isOpen:!0,width:"420px",position:"right",header:{title:a,subTitle:o,onClose:i},children:s})},Q=[],Y=$.div`
|
|
80
|
+
`,we={[J.MapItem]:me,[J.NoData]:Q},ke={[ee.AnimatedTraffic]:Se},Me={duration:300,padding:.1,includeHiddenNodes:!0,maxZoom:1},Te=({trigger:e})=>{const{fitView:t}=C(),i=u(!0);return d(()=>{i.current?i.current=!1:e>0&&requestAnimationFrame(()=>t(Me))},[e,t]),null},Ce=({onRefresh:i})=>{const{nodes:o,edges:r,fitViewTrigger:a,onNodesChange:s,onEdgesChange:n,setHoveredNodeId:d,toggleSelectedNode:c}=de(),p=l(()=>{const e=new Set(o.filter(e=>e.type===J.MapItem&&e.data.selected).map(e=>e.id)),t=new Set;for(const i of r)e.has(i.source)&&t.add(i.target),e.has(i.target)&&t.add(i.source);return o.filter(e=>e.type!==J.MapItem||e.data.selected||t.has(e.id))},[o,r]);return t(w,{zoomOnScroll:!0,nodes:p,nodeTypes:we,edges:r,edgeTypes:ke,onNodeClick:(e,t)=>c(t.id),onNodeMouseEnter:(e,t)=>d(t.id),onNodeMouseLeave:()=>d(null),onNodesChange:s,onEdgesChange:n,children:[e(k,{}),e(Te,{trigger:a}),e(xe,{children:e(M,{position:"top-right",orientation:"horizontal",showInteractive:!1,showZoom:!0,showFitView:!0,fitViewOptions:Me,children:e(T,{onClick:i,children:e(U,{})})})})]})},Ie=i=>e(x,{children:t(be,{children:[e(fe,{}),e(Ce,{...i})]})}),$e=o.div`
|
|
25
81
|
width: 100%;
|
|
26
82
|
flex: 1;
|
|
27
83
|
align-self: stretch;
|
|
28
84
|
min-height: 0;
|
|
29
85
|
height: 100%;
|
|
30
86
|
position: relative;
|
|
31
|
-
`,
|
|
87
|
+
`,Ee=()=>{const{serviceMapApi:t}=W(),{data:i,refetch:o}=t.useServiceMap({pollInterval:5e3,fetchPolicy:"cache-and-network"});return e(le,{serviceMap:i?.serviceMap??[],children:e($e,{children:e(Ie,{onRefresh:o})})})},Ke=o.div`
|
|
32
88
|
position: fixed;
|
|
33
89
|
bottom: 12px;
|
|
34
90
|
left: 12px;
|
|
@@ -37,4 +93,4 @@ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{useState
|
|
|
37
93
|
flex-direction: column-reverse;
|
|
38
94
|
gap: 6px;
|
|
39
95
|
max-width: 600px;
|
|
40
|
-
`,
|
|
96
|
+
`,Ve=()=>{const{notifications:t,markAsDismissed:i,markAsSeen:o}=G(),{onClickNotification:r}=F(),a=t.filter(({dismissed:e})=>!e);return e(Ke,{children:a.map(({id:t,type:s,title:n,message:d,crdType:l,target:c},p)=>{const u=d||n;if(!u)return null;const m=a.length-p;return e(H,{status:s,message:u,action:l&&c?{label:"go to details",onClick:()=>r({id:t,crdType:l,target:c},{dismissToast:!0})}:void 0,onClose:({asSeen:e})=>(({id:e,asSeen:t})=>{i(e),t&&o(e)})({id:t,asSeen:e}),zIndex:m},`toast-${t}`)})})};export{Ee as ServiceMap,Ve as ToastList};
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
import type { OdigosApiOperations, OperationContext } from './types';
|
|
15
15
|
export interface Capabilities {
|
|
16
16
|
canBulkPersistSources: boolean;
|
|
17
|
+
canInstrumentNamespaces: boolean;
|
|
17
18
|
canFetchSnapshots: boolean;
|
|
18
19
|
canRecoverFromRollback: boolean;
|
|
19
20
|
canRestartWorkloads: boolean;
|
|
@@ -13,10 +13,11 @@
|
|
|
13
13
|
export { OdigosApiProvider } from './provider';
|
|
14
14
|
export { OdigosApiConnectionsScope } from './connections-scope';
|
|
15
15
|
export { useOdigosApi, type UseOdigosApiReturn } from './use-odigos-api';
|
|
16
|
+
export { useApiQuery, useApiLazyQuery, useApiMutation } from './use-api-query';
|
|
16
17
|
export { useApiForConnections, type ApiForConnections } from './use-api-for-connections';
|
|
17
18
|
export type { UseApiQueryOptions, UseApiQueryResult, UseApiLazyQueryResult, UseApiMutationOptions, UseApiMutationResult, UseApiMutationTuple } from './use-api-query';
|
|
18
19
|
export { pickByPlatform, versionedDocument, vmDialectMap, type VersionedDocumentMap } from './platform-helpers';
|
|
19
|
-
export type { ApolloConfig, CreateActionResult, CreateActionVars, CreateCostReductionRuleResult, CreateDataStreamResult, CreateDataStreamVars, CreateDestinationResult, CreateDestinationVars, CreateHighlyRelevantOperationRuleResult, CreateInstrumentationRuleResult, CreateInstrumentationRuleVars, CreateNoisyOperationRuleResult, DeleteActionResult, DeleteActionVars, DeleteCostReductionRuleResult, DeleteDataStreamResult, DeleteDataStreamVars, DeleteDestinationResult, DeleteDestinationVars, DeleteHighlyRelevantOperationRuleResult, DeleteInstrumentationRuleResult, DeleteInstrumentationRuleVars, DeleteNoisyOperationRuleResult, DescribeOdigosData, DescribeSourceData, DestinationWireInput, DiagnoseResult, DiagnoseVars, GetActionsData, GetAllClusterSnapshotsData, GetClusterSnapshotData, GetClusterSnapshotVars, GetCollectorPodInfoData, GetCollectorPodInfoVars, GetConfigYamlsData, GetDataStreamsData, GetDestinationsData, GetEffectiveConfigVars, GetGatewayInfoData, GetGatewayPodsData, GetInstrumentationRulesData, GetK8sManifestData, GetK8sManifestVars, GetMetricsData, GetNamespacesWithWorkloadsData, GetNodeCollectorInfoData, GetNodeCollectorPodsData, GetPeerSourcesVars, GetProfilingSlotsData, GetSamplingRulesData, GetServiceMapData, GetSourceLibrariesData, GetSourceLibrariesVars, GetSourceProfilingData, GetTokensData, GetWorkloadsByIdsData, GetWorkloadsByIdsVars, GetWorkloadsData, GetWorkloadsVars, MultiFetchGroup, MultiFetchResponse, MultiFetchResult, OdigosApiOperations, OdigosApiProviderProps, Operation, OperationContext, PersistNamespacesResult, PersistNamespacesVars, PersistSourcesResult, PersistSourcesVars, RecoverFromRollbackVars, ResetLocalUiConfigResult, RestartPodVars, RestartWorkloadsVars, SamplingK8sHealthConfigInput, SamplingK8sHealthConfigVars, SamplingRuleCreateVars, SamplingRuleDeleteVars, SamplingRuleUpdateVars, TestDestinationConnectionVars, UpdateActionResult, UpdateActionVars, UpdateCostReductionRuleResult, UpdateDataStreamResult, UpdateDataStreamVars, UpdateDestinationData, UpdateDestinationVars, UpdateHighlyRelevantOperationRuleResult, UpdateInstrumentationRuleResult, UpdateInstrumentationRuleVars, UpdateLocalUiConfigResult, UpdateLocalUiConfigVars, UpdateLocalUiSamplingConfigResult, UpdateLocalUiSamplingConfigVars, UpdateNoisyOperationRuleResult, UpdateRemoteConfigResult, UpdateRemoteConfigVars, UpdateSourceVars, UpdateTokenResult, UpdateTokenVars, } from './types';
|
|
20
|
+
export type { ApolloConfig, CreateActionResult, CreateActionVars, CreateCostReductionRuleResult, CreateDataStreamResult, CreateDataStreamVars, CreateDestinationResult, CreateDestinationVars, CreateHighlyRelevantOperationRuleResult, CreateInstrumentationRuleResult, CreateInstrumentationRuleVars, CreateNoisyOperationRuleResult, DeleteActionResult, DeleteActionVars, DeleteCostReductionRuleResult, DeleteDataStreamResult, DeleteDataStreamVars, DeleteDestinationResult, DeleteDestinationVars, DeleteHighlyRelevantOperationRuleResult, DeleteInstrumentationRuleResult, DeleteInstrumentationRuleVars, DeleteNoisyOperationRuleResult, DescribeOdigosData, DescribeSourceData, DestinationWireInput, DiagnoseResult, DiagnoseVars, GetActionsData, GetAllClusterSnapshotsData, GetClusterSnapshotData, GetClusterSnapshotVars, GetCollectorPodInfoData, GetCollectorPodInfoVars, GetConfigYamlsData, GetDataStreamsData, GetDestinationsData, GetEffectiveConfigVars, GetGatewayInfoData, GetGatewayPodsData, GetInstrumentationRulesData, GetK8sManifestData, GetK8sManifestVars, GetMetricsData, GetNamespacesWithWorkloadsData, GetNodeCollectorInfoData, GetNodeCollectorPodsData, GetPeerSourcesVars, GetProfilingSlotsData, GetSamplingRulesData, GetServiceMapData, GetSourceLibrariesData, GetSourceLibrariesVars, GetSourceProfilingData, GetTokensData, GetWorkloadsByIdsData, GetWorkloadsByIdsVars, GetWorkloadsData, GetWorkloadsVars, MultiFetchGroup, MultiFetchResponse, MultiFetchResult, OdigosApiOperations, OdigosApiProviderProps, Operation, OperationContext, PersistNamespacesResult, PersistNamespacesVars, PersistSourcesResult, PersistSourcesVars, RecoverFromRollbackVars, ResetLocalUiConfigResult, RestartPodVars, RestartWorkloadsVars, SamplingConfigInputWire, SamplingK8sHealthConfigInput, SamplingK8sHealthConfigVars, SamplingRuleCreateVars, SamplingRuleDeleteVars, SamplingRuleUpdateVars, TestDestinationConnectionVars, UpdateActionResult, UpdateActionVars, UpdateCostReductionRuleResult, UpdateDataStreamResult, UpdateDataStreamVars, UpdateDestinationData, UpdateDestinationVars, UpdateHighlyRelevantOperationRuleResult, UpdateInstrumentationRuleResult, UpdateInstrumentationRuleVars, UpdateLocalUiConfigResult, UpdateLocalUiConfigVars, UpdateLocalUiSamplingConfigResult, UpdateLocalUiSamplingConfigVars, UpdateNoisyOperationRuleResult, UpdateRemoteConfigResult, UpdateRemoteConfigVars, UpdateSourceVars, UpdateTokenResult, UpdateTokenVars, } from './types';
|
|
20
21
|
export type { Capabilities } from './capabilities';
|
|
21
22
|
export type { ConfigApi } from './hooks/use-config-api';
|
|
22
23
|
export type { TokensApi } from './hooks/use-tokens-api';
|
|
@@ -52,8 +52,10 @@ export type VersionedDocumentMap = {
|
|
|
52
52
|
* 1. Pick the platform branch matching `ctx.platformType`.
|
|
53
53
|
* 2. Sort that branch's versions descending (numeric-aware via
|
|
54
54
|
* `trimVersion`).
|
|
55
|
-
* 3. Return the highest version that's `<= ctx.version`.
|
|
56
|
-
*
|
|
55
|
+
* 3. Return the highest version that's `<= ctx.schemaVersion ?? ctx.version`.
|
|
56
|
+
* VM proxies report a GraphQL schema version distinct from their agent
|
|
57
|
+
* binary version, so we floor by the schema version when present. This
|
|
58
|
+
* "floor to the matching bucket" rule keeps older proxies/agents from
|
|
57
59
|
* receiving documents whose schemas they don't understand yet.
|
|
58
60
|
* 4. If no bucket fits (or the platform is missing), return undefined
|
|
59
61
|
* → the runner short-circuits with "Operation not supported in
|
|
@@ -32,8 +32,22 @@ export interface OperationContext {
|
|
|
32
32
|
platformType: PlatformType;
|
|
33
33
|
/** community | onprem — used to gate enterprise-only capabilities. */
|
|
34
34
|
tier: Tier;
|
|
35
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Agent / proxy version — the version users see as "the installed agent"
|
|
37
|
+
* (e.g. the odigos proxy version on k8s, or the vm-agent binary version on
|
|
38
|
+
* VM). Used for display and for capability/legacy gating. Hosts that don't
|
|
39
|
+
* have proxies (odigos standalone) pass the local backend version.
|
|
40
|
+
*/
|
|
36
41
|
version: string;
|
|
42
|
+
/**
|
|
43
|
+
* GraphQL dialect/schema version, when it differs from `version`. VM proxies
|
|
44
|
+
* report their agents-api schema version separately from the vm-agent binary
|
|
45
|
+
* `version`, so the UI can keep showing which agent is installed while
|
|
46
|
+
* talking to it in the right dialect. Version-bucket selection
|
|
47
|
+
* (`versionedDocument`) floors by `schemaVersion ?? version`; k8s hosts that
|
|
48
|
+
* never set it keep using `version` unchanged.
|
|
49
|
+
*/
|
|
50
|
+
schemaVersion?: string;
|
|
37
51
|
/** Currently selected proxy id (central-ui only). Undefined when not applicable. */
|
|
38
52
|
proxyID?: string;
|
|
39
53
|
/**
|
|
@@ -535,13 +549,22 @@ export interface SamplingRuleDeleteVars {
|
|
|
535
549
|
ruleId: string;
|
|
536
550
|
}
|
|
537
551
|
/**
|
|
538
|
-
* The
|
|
539
|
-
*
|
|
552
|
+
* The inner k8s-health-probes config payload — nested under
|
|
553
|
+
* `SamplingConfigInput.k8sHealthProbesSampling` on the wire.
|
|
540
554
|
*/
|
|
541
555
|
export interface SamplingK8sHealthConfigInput {
|
|
542
556
|
enabled: boolean;
|
|
543
557
|
keepPercentage: number;
|
|
544
558
|
}
|
|
559
|
+
/**
|
|
560
|
+
* The wire `SamplingConfigInput` shape that
|
|
561
|
+
* `UpdateLocalUiSamplingConfigVars.config` carries. As of the schema
|
|
562
|
+
* restructure, the health-probe fields are nested under
|
|
563
|
+
* `k8sHealthProbesSampling` (previously they were flat on `config`).
|
|
564
|
+
*/
|
|
565
|
+
export interface SamplingConfigInputWire {
|
|
566
|
+
k8sHealthProbesSampling?: SamplingK8sHealthConfigInput;
|
|
567
|
+
}
|
|
545
568
|
/**
|
|
546
569
|
* @deprecated alias retained for any host code that imported the old
|
|
547
570
|
* inner-config name. Prefer `SamplingK8sHealthConfigInput` for the
|
|
@@ -557,10 +580,11 @@ export interface UpdateLocalUiConfigVars {
|
|
|
557
580
|
}
|
|
558
581
|
/**
|
|
559
582
|
* Variables for `UPDATE_LOCAL_UI_SAMPLING_CONFIG` — wire mutation
|
|
560
|
-
* requires the input wrapped under `$config: SamplingConfigInput
|
|
583
|
+
* requires the input wrapped under `$config: SamplingConfigInput`,
|
|
584
|
+
* with the health-probe fields nested under `k8sHealthProbesSampling`.
|
|
561
585
|
*/
|
|
562
586
|
export interface UpdateLocalUiSamplingConfigVars {
|
|
563
|
-
config:
|
|
587
|
+
config: SamplingConfigInputWire;
|
|
564
588
|
}
|
|
565
589
|
export interface GetClusterSnapshotVars {
|
|
566
590
|
clusterId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{e as o,r,f as t}from"../chunks/use-odigos-api-FiChYL7A.js";export{O as OdigosApiProvider,p as prepareNamespacePayloads,a as prepareSourcePayloads,u as useApiLazyQuery,b as useApiMutation,c as useApiQuery,d as useOdigosApi}from"../chunks/use-odigos-api-FiChYL7A.js";export{O as OdigosApiConnectionsScope}from"../chunks/connections-scope-DATTj_XG.js";import{useApolloClient as e}from"@apollo/client";import{P as s,t as i}from"../chunks/ui-components-B1TCLO_N.js";import"react";import"react/jsx-runtime";import"@apollo/client/link/error";import"@apollo/client/link/context";import"@apollo/client/utilities";import"styled-components";import"../icons.js";import"zustand";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"../chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";const n=()=>{const s=e(),{operations:i,context:n}=o();return{multiFetch:async(o,r,e)=>{const a=i[o];return a?t(s,a,r,e,n):{results:[],allSucceeded:!1,anySucceeded:!1,successCount:0,failureCount:r.length,error:`Operation ${String(o)} not configured`}},bulkPersistSources:async(o,t)=>{const e=[];for(const a of o){const o={...n,proxyID:a},{error:c}=await r(s,i.PERSIST_SOURCES,t,o);c&&e.push(`${a}: ${c}`)}return e.length?{error:e.join(", ")}:void 0},applyConfigurations:async(o,t)=>{if(!i.UPDATE_REMOTE_CONFIG)return{error:"UPDATE_REMOTE_CONFIG not configured"};const{error:e}=await r(s,i.UPDATE_REMOTE_CONFIG,{formData:t,connectionIds:o},n);return e?{error:e}:void 0}}},m=(o,r)=>o.platformType===s.K8s?r.K8s:o.platformType===s.Vm?r.Vm:void 0,l=o=>r=>{const t=o[r.platformType];if(!t)return;const e=Object.keys(t);if(0===e.length)return;const s=i(r.schemaVersion??r.version),n=[...e].sort((o,r)=>i(r)-i(o)).find(o=>s>=i(o));return n?t[n]:void 0},f=(o,r)=>{const t={};for(const e of Object.keys(o))t[e]=r(o[e]);return t};export{m as pickByPlatform,n as useApiForConnections,l as versionedDocument,f as vmDialectMap};
|
package/lib/contexts.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{A as ActionFormContextProvider,D as DataStreamFormContextProvider,a as DestinationFormContextProvider,R as RuleFormContextProvider,S as SamplingRuleFormType,b as SamplingRulesFormProvider,c as SourceEditFormContextProvider,d as SourceInstrumentFormContextProvider,u as useActionFormContext,e as useDataStreamFormContext,f as useDestinationFormContext,g as useRuleFormContext,h as useSamplingRulesFormContext,i as useSourceEditFormContext,j as useSourceInstrumentFormContext}from"./chunks/source-instrument-form-context-
|
|
1
|
+
export{A as ActionFormContextProvider,D as DataStreamFormContextProvider,a as DestinationFormContextProvider,R as RuleFormContextProvider,S as SamplingRuleFormType,b as SamplingRulesFormProvider,c as SourceEditFormContextProvider,d as SourceInstrumentFormContextProvider,u as useActionFormContext,e as useDataStreamFormContext,f as useDestinationFormContext,g as useRuleFormContext,h as useSamplingRulesFormContext,i as useSourceEditFormContext,j as useSourceInstrumentFormContext}from"./chunks/source-instrument-form-context-DY-QjJ0l.js";export{O as OdigosProvider,c as checkVersionSupport,u as useOdigos}from"./chunks/helpers-CUmUiA_l.js";import{jsx as o}from"react/jsx-runtime";import{useMemo as r,useContext as t,createContext as s}from"react";export{O as OdigosApiConnectionsScope}from"./chunks/connections-scope-DATTj_XG.js";export{O as OdigosApiProvider,p as prepareNamespacePayloads,a as prepareSourcePayloads,u as useApiLazyQuery,b as useApiMutation,c as useApiQuery,d as useOdigosApi}from"./chunks/use-odigos-api-FiChYL7A.js";export{pickByPlatform,useApiForConnections,versionedDocument,vmDialectMap}from"./contexts/odigos-api.js";import"./chunks/ui-components-B1TCLO_N.js";import"styled-components";import"./icons.js";import"zustand";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";import"@apollo/client";import"@apollo/client/link/error";import"@apollo/client/link/context";import"@apollo/client/utilities";const n=s({formType:void 0}),m=({children:e,formType:t})=>{const s=r(()=>({formType:t}),[t]);return o(n.Provider,{value:s,children:e})},l=()=>t(n);export{m as StorybookProvider,l as useStorybook};
|
package/lib/functions/index.d.ts
CHANGED
|
@@ -27,6 +27,7 @@ export * from './get-instrumentation-rule-icon';
|
|
|
27
27
|
export * from './get-main-container-language';
|
|
28
28
|
export * from './get-metric-for-entity';
|
|
29
29
|
export * from './get-monitor-icon';
|
|
30
|
+
export * from './get-nearest-typography-size';
|
|
30
31
|
export * from './get-platform-icon';
|
|
31
32
|
export * from './get-platform-label';
|
|
32
33
|
export * from './get-programming-language-icon';
|
package/lib/functions.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{a0 as adaptInstrumentationRuleFromWire,$ as adaptInstrumentationRuleInputForWire,b7 as buildBadgeForDesiredStatus,f8 as capitalizeFirstLetter,f9 as cleanObjectEmptyStringsValues,ar as compareCondition,fa as decimalsOnly,e as deepClone,dh as entityIdKey,dm as filterActions,dl as filterDestinations,b0 as filterDestinationsByStream,dk as filterSources,d9 as filterSourcesByStream,fb as flattenObjectKeys,bk as formatBytes,fc as formatDuration,bT as generateId,a_ as getActionIcon,v as getConditionsBooleans,bw as getContainersIcons,fd as getContainersInstrumentedCount,fe as getDeepValue,aQ as getDestinationIcon,ff as getDetectedLanguageIcons,bc as getEffectiveLanguage,br as getEffectiveRuntimeVersion,di as getEntityIcon,_ as getEntityId,df as getEntityIdKey,dg as getEntityLabel,fg as getHealthBadgeLabel,Z as getIdFromSseTarget,b4 as getInstrumentationRuleIcon,fh as getMainContainerLanguage,fi as getMetricForEntity,fj as getMonitorIcon,fk as getNearestTypographySize,fl as getPlatformIcon,fm as getPlatformLabel,ax as getProgrammingLanguageIcon,fn as getRecursiveValues,r as getSourceLanguageIcons,U as getSseTargetFromId,fo as getStatusColor,ds as getStatusFromPodStatus,x as getStatusIcon,bm as getStatusTypeFromOdigosHealth,fp as getValueForRange,q as getVirtualServiceIcon,bi as getWorkloadId,b1 as getYamlFieldsForDestination,fq as hasUnhealthyInstances,fr as instrumentationRuleSourceScopesFromWire,fs as instrumentationRuleSourceScopesToWire,i as isEmpty,j as isLegalK8sLabel,bP as isOverTime,ft as isStringABoolean,fu as isTimeElapsed,bq as isValidVersion,fv as mapConditions,ba as mapDesiredStatusToConditionStatus,a$ as mapDestinationFieldsForDisplay,k as mapExportedSignals,m as mapSupportedSignals,fw as numbersOnly,fx as parseBooleanFromString,fy as parseJsonStringToPrettyString,as as prepareDestinationFormData,fz as removeEmptyValuesFromObject,s as safeJsonParse,fA as safeJsonStringify,fB as setDeepValue,fC as sleep,b2 as splitCamelString,fD as stringifyNonStringValues,t as trimVersion}from"./chunks/ui-components-B1TCLO_N.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
|
package/lib/hooks.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{fO as IGNORE_OUTSIDE_CLICK_ATTR,fP as useActionFormData,fQ as useBodyScroll,dn as useClickNode,Q as useClickNotification,dj as useContainerSize,bl as useCopy,fR as useDataStreamFormData,fS as useDestinationFormData,d as useGenericForm,fT as useInstrumentationRuleFormData,bO as useKeyDown,bn as useOnClickOutside,fU as useOverflow,u as usePopup,b6 as useScrollIntoViewWhen,dO as useScrollTo,dc as useSessionStorage,fV as useSourceFormData,b5 as useTimeAgo}from"./chunks/ui-components-B1TCLO_N.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
|
package/lib/snippets/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './_v2';
|
package/lib/snippets/v2.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{bg as ActionType,dr as Actions,dq as RichTitle}from"../chunks/ui-components-B1TCLO_N.js";export{C as CancelModal,j as DURATION_OPTIONS,g as DeleteModal,e as DurationErrorsSection,D as DynamicField,I as InstrumentationPreviewSection,N as NOISY_PERCENTAGE_OPTIONS,h as OdigosLogoTextByTier,O as OperationSection,b as PERCENTAGE_OPTIONS,f as PercentageSection,P as PresetWithCustomInput,R as RuleInfoSection,d as RuleTypeSection,c as SamplingPreviewSection,S as SignalsCheckboxList,a as SourceScopeSection,U as UpgradeModal,i as WIDE_DRAWER_WIDTH,W as WideDrawer,Y as YamlSectionCard}from"../chunks/index-hiRPXsEi.js";export{C as ColoredSpan,D as ColoredSpanVariant}from"../chunks/helpers-CUmUiA_l.js";import"react/jsx-runtime";import"styled-components";import"../icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"../chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
|
package/lib/snippets.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{bg as ActionType,dr as Actions,dq as RichTitle}from"./chunks/ui-components-B1TCLO_N.js";export{C as CancelModal,j as DURATION_OPTIONS,g as DeleteModal,e as DurationErrorsSection,D as DynamicField,I as InstrumentationPreviewSection,N as NOISY_PERCENTAGE_OPTIONS,h as OdigosLogoTextByTier,O as OperationSection,b as PERCENTAGE_OPTIONS,f as PercentageSection,P as PresetWithCustomInput,R as RuleInfoSection,d as RuleTypeSection,c as SamplingPreviewSection,S as SignalsCheckboxList,a as SourceScopeSection,U as UpgradeModal,i as WIDE_DRAWER_WIDTH,W as WideDrawer,Y as YamlSectionCard}from"./chunks/index-hiRPXsEi.js";export{C as ColoredSpan,D as ColoredSpanVariant}from"./chunks/helpers-CUmUiA_l.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
|
package/lib/store/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { type NodeTypes } from '@/containers/service-map/helpers/types';
|
|
1
2
|
import { EntityTypes, type SamplingRuleCategory, type WorkloadId } from '@/types';
|
|
2
3
|
export interface DrawerStoreState {
|
|
3
|
-
drawerType: EntityTypes | null;
|
|
4
|
+
drawerType: NodeTypes | EntityTypes | null;
|
|
4
5
|
drawerEntityId: string | WorkloadId | null;
|
|
5
6
|
pendingViewSamplingRule: {
|
|
6
7
|
ruleId: string;
|
package/lib/store.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{Y as ProgressKeys,fN as useDarkMode,h as useDataStreamStore,bh as useDrawerStore,d8 as useFilterStore,bU as useModalStore,O as useNotificationStore,W as useProgressStore,de as useSelectedStore,X as useSetupStore}from"./chunks/ui-components-B1TCLO_N.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
|
package/lib/theme.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{fW as Provider,fX as animations,fY as opacity,fZ as palettes}from"./chunks/ui-components-B1TCLO_N.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
|
package/lib/types/index.d.ts
CHANGED
package/lib/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{f as ActionKeyTypes,g as ActionType,eK as AgentInjectedReason,eL as BooleanOperation,at as CodeAttributesKeyTypes,eM as ConditionType,V as Crud,C as CustomInstrumentationsKeyTypes,b8 as DesiredStateProgress,eN as DestinationTypes,E as EntityTypes,ah as ExtractionDataFormat,l as FieldTypes,G as GolangCustomProbe,H as HeadersCollectionKeyTypes,dQ as InputTypes,eO as InstallationMethod,eP as InstallationStatus,n as InstrumentationRuleType,eQ as IntrumentationStatus,J as JavaCustomProbe,eR as JsonOperation,a5 as K8sAttributesFrom,K as K8sResourceKind,eS as K8sWorkloadContainerAgentConfigTracesHeadSamplingSpanMetricsMode,eT as ListDirection,eU as NumberOperation,eV as OtelDistroName,eW as OtherEntityTypes,bd as OtherStatus,aR as OtherStatusType,av as PayloadCollectionKeyTypes,P as PlatformType,eX as PodContainerLifecycleStatus,eY as PodContainerStatus,eZ as PodPhase,e_ as Profile,bt as ProgrammingLanguages,e$ as SIGNAL_KEY_TO_TYPE,f0 as SIGNAL_TYPE_TO_KEY,f1 as SignalKey,S as SignalType,f2 as SortDirection,o as StatusType,f3 as StringOperation,T as Tier,f4 as WorkloadRolloutReason,dt as WorkloadRolloutStatus}from"./chunks/ui-components-B1TCLO_N.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
|
package/lib/visuals.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{f5 as VISUAL_ODIGOS_LOGO_HEIGHT,f6 as VISUAL_ODIGOS_LOGO_WIDTH,eI as VisualGreenRings,f7 as VisualOdigosLogo,c3 as VisualPurpleRings}from"./chunks/ui-components-B1TCLO_N.js";import"react/jsx-runtime";import"styled-components";import"./icons.js";import"zustand";import"react";import"javascript-time-ago";import"javascript-time-ago/locale/en";import"prism-react-renderer";import"./chunks/vendor-BFqT13Me.js";import"zustand/middleware";import"react-error-boundary";import"react-dom";import"virtua";
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as o}from"react/jsx-runtime";import{useMemo as n}from"react";import{b as t,_ as r}from"./use-odigos-api-li2VrVHH.js";const e=({connectionIds:e,children:i})=>{const s=t(),a=n(()=>({operations:s.operations,context:{...s.context,connectionIds:e},apolloConfig:s.apolloConfig}),[s.operations,s.context,s.apolloConfig,e.join(",")]);return o(r.Provider,{value:a,children:i})};export{e as O};
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import{jsx as e,jsxs as o,Fragment as t}from"react/jsx-runtime";import{memo as i,useRef as r,useEffect as n}from"react";import"@xyflow/react/dist/style.css";import d,{useTheme as s}from"styled-components";import{N as a,F as l,I as c,T as p,S as h,g as m,u,a as g,b}from"./ui-components-TeG65JGy.js";import{Handle as x,Position as f,ReactFlowProvider as y,ReactFlow as w,Controls as v,ControlButton as N,useReactFlow as k}from"@xyflow/react";import{RefreshIcon as $}from"../icons.js";const C=d(l)`
|
|
2
|
-
max-width: 300px;
|
|
3
|
-
padding: 12px;
|
|
4
|
-
border-radius: 12px;
|
|
5
|
-
background-color: ${({theme:e})=>e.colors.dropdown_bg};
|
|
6
|
-
justify-content: center;
|
|
7
|
-
`,E=i(({id:o,data:t})=>{const{title:i,subTitle:r}=t;return e(C,{"data-id":o,children:e(a,{title:i,subTitle:r})})});E.displayName=E.name;const V=d.div`
|
|
8
|
-
padding: 6px;
|
|
9
|
-
border-radius: 12px;
|
|
10
|
-
background-color: ${({theme:e})=>e.colors.dropdown_bg};
|
|
11
|
-
cursor: pointer;
|
|
12
|
-
${({$isVirtual:e,theme:o})=>e&&`\n border: 1px dashed ${o.colors.border};\n opacity: 0.8;\n `}
|
|
13
|
-
`,_=d.div`
|
|
14
|
-
position: relative;
|
|
15
|
-
`,M=d.div`
|
|
16
|
-
position: absolute;
|
|
17
|
-
top: 100%;
|
|
18
|
-
margin-top: 4px;
|
|
19
|
-
left: 50%;
|
|
20
|
-
transform: translateX(-50%);
|
|
21
|
-
display: flex;
|
|
22
|
-
flex-direction: column;
|
|
23
|
-
align-items: center;
|
|
24
|
-
gap: 2px;
|
|
25
|
-
width: 140px;
|
|
26
|
-
text-align: center;
|
|
27
|
-
`,T=i(({id:i,data:r})=>{const{id:n,status:d,title:a,icons:l,isVirtual:u}=r,g=s(),b=u||d!==h.Error?null:m(d,g);return o(t,{children:[e(x,{type:"source",position:f.Right,style:{visibility:"hidden"}}),e(x,{type:"target",position:f.Left,style:{visibility:"hidden"}}),o(_,{"data-id":i,children:[e(V,{$isVirtual:u,children:e(c,{id:n,icons:l,status:u?void 0:d})}),o(M,{children:[b&&e(b,{}),e(p,{size:12,style:{textAlign:"center",wordBreak:"break-word",lineHeight:"1.3"},children:a})]})]})]})});T.displayName=T.name;const z={duration:300,padding:.1,includeHiddenNodes:!0},j=d.div`
|
|
28
|
-
height: 100%;
|
|
29
|
-
.react-flow__attribution {
|
|
30
|
-
visibility: hidden;
|
|
31
|
-
}
|
|
32
|
-
`,A=d.div`
|
|
33
|
-
button {
|
|
34
|
-
padding: 8px;
|
|
35
|
-
margin: 8px;
|
|
36
|
-
border-radius: 8px;
|
|
37
|
-
border: 1px solid ${({theme:e})=>e.colors.border} !important;
|
|
38
|
-
background-color: ${({theme:e})=>e.colors.dropdown_bg};
|
|
39
|
-
path {
|
|
40
|
-
fill: ${({theme:e})=>e.text.secondary};
|
|
41
|
-
}
|
|
42
|
-
&:hover {
|
|
43
|
-
background-color: ${({theme:e})=>e.colors.dropdown_bg_2};
|
|
44
|
-
}
|
|
45
|
-
&:last-child svg {
|
|
46
|
-
transform: scale(1.4);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
`,F={[b.MapItem]:T,[b.NoData]:E},I=({trigger:e})=>{const{fitView:o}=k(),t=r(!0);return n(()=>{t.current?t.current=!1:e>0&&requestAnimationFrame(()=>o(z))},[e,o]),null},L=({nodes:t,edges:i,onNodesChange:r,onEdgesChange:n,fitViewTrigger:d=0,zoomOnScroll:s=!1,onEdgeClick:a,onNodeMouseEnter:l,onNodeMouseLeave:c,onRefresh:p})=>{const{onClickNode:h}=u(),{setActiveNodeType:m,setActiveNodeId:b}=g();return o(w,{zoomOnScroll:s,nodes:t,nodeTypes:F,edges:i,onNodeClick:h,onEdgeClick:a,onNodeMouseEnter:l,onNodeMouseLeave:c,onNodesChange:r,onEdgesChange:n,onBlur:()=>{m(null),b(null)},children:[e(I,{trigger:d}),e(A,{children:e(v,{position:"bottom-right",orientation:"horizontal",showInteractive:!1,showZoom:!0,showFitView:!0,fitViewOptions:z,children:p&&e(N,{onClick:p,children:e($,{size:20})})})})]})},O=o=>e(j,{children:e(y,{children:e(L,{...o})})});export{O as F,T as M,E as N};
|