@odigos/ui-kit 0.0.135 → 0.0.137

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.
@@ -6,6 +6,7 @@ export interface DataCardProps {
6
6
  id: string;
7
7
  title: string;
8
8
  label?: string;
9
+ withCopy?: boolean;
9
10
  badge?: BadgeProps;
10
11
  }[];
11
12
  }
@@ -2,22 +2,28 @@ import { type ReactNode, type FC } from 'react';
2
2
  import type { SVG } from '@/types';
3
3
  import { type BadgeProps } from '../../badge';
4
4
  import { type ButtonProps } from '../../button';
5
+ import { type DropDataProps } from '../../drop-data';
5
6
  export declare enum SectionCardSize {
6
7
  S = "small",
7
8
  M = "medium"
8
9
  }
9
10
  export declare enum SectionCardActionType {
10
- Button = "button"
11
+ Button = "button",
12
+ ButtonDropData = "button-drop-data"
11
13
  }
12
14
  export interface SectionCardProps {
13
15
  size?: SectionCardSize;
14
16
  icon: SVG;
15
17
  title: string;
18
+ withCopyTitle?: boolean;
16
19
  badge?: BadgeProps;
17
20
  actions?: {
18
21
  id: string;
19
22
  type: SectionCardActionType;
20
- props: ButtonProps;
23
+ buttonProps?: ButtonProps & {
24
+ onClick?: (id: string) => void;
25
+ };
26
+ dropDataItems?: DropDataProps['items'];
21
27
  }[];
22
28
  children?: ReactNode;
23
29
  }
@@ -0,0 +1,7 @@
1
+ import { type FC } from 'react';
2
+ export interface CliCommandProps {
3
+ value: string;
4
+ hideCopy?: boolean;
5
+ onDone?: () => void;
6
+ }
7
+ export declare const CliCommand: FC<CliCommandProps>;
@@ -0,0 +1,18 @@
1
+ import { type FC } from 'react';
2
+ import type { SVG } from '@/types';
3
+ import { type ButtonProps } from '../button';
4
+ interface DropDataOption {
5
+ id: string;
6
+ label: string;
7
+ icon?: SVG;
8
+ withCheckbox?: boolean;
9
+ }
10
+ export interface DropDataProps {
11
+ items: DropDataOption[];
12
+ selectedId: DropDataOption['id'];
13
+ onSelect: (optionId: DropDataOption['id']) => void;
14
+ defaultOpen?: boolean;
15
+ buttonProps?: ButtonProps;
16
+ }
17
+ export declare const DropData: FC<DropDataProps>;
18
+ export {};
@@ -1,4 +1,4 @@
1
- import { type FC } from 'react';
1
+ import { type MouseEventHandler, type FC } from 'react';
2
2
  import type { SVG } from '@/types';
3
3
  export declare enum IconButtonSize {
4
4
  XS = 16,
@@ -9,6 +9,6 @@ export declare enum IconButtonSize {
9
9
  export interface IconButtonProps {
10
10
  icon: SVG;
11
11
  size?: IconButtonSize;
12
- onClick: () => void;
12
+ onClick?: MouseEventHandler;
13
13
  }
14
14
  export declare const IconButton: FC<IconButtonProps>;
@@ -5,7 +5,9 @@ export * from './button-tab-list';
5
5
  export * from './cards';
6
6
  export * from './checkbox';
7
7
  export * from './checkbox-list';
8
+ export * from './cli-command';
8
9
  export * from './drawer';
10
+ export * from './drop-data';
9
11
  export * from './header';
10
12
  export * from './icon-button';
11
13
  export * from './input';
@@ -1 +1 @@
1
- export{j as Badge,o as Button,B as ButtonSize,cY as ButtonTab,cZ as ButtonTabList,h as ButtonVariants,d0 as Checkbox,d2 as CheckboxList,d1 as CheckboxListDirection,c$ as CheckboxSize,d as DataCard,D as Drawer,d3 as Header,I as IconButton,d4 as IconButtonSize,d5 as Input,d6 as Modal,d7 as Navbar,d8 as Note,da as Radio,dc as RadioGroup,db as RadioGroupDirection,d9 as RadioSize,S as SectionCard,f as SectionCardActionType,c_ as SectionCardSize,n as Segment,p as StatusCard,k as Table,dd as Tag,q as TextCard,e as Typography,m as TypographySize,de as TypographyVariants}from"../chunks/ui-components-c87427ab.js";import"../icons.js";import"react";import"zustand";import"javascript-time-ago";import"../chunks/vendor-55cc654c.js";import"react-dom";import"styled-components";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
1
+ export{n as Badge,r as Button,B as ButtonSize,c$ as ButtonTab,d0 as ButtonTabList,i as ButtonVariants,d3 as Checkbox,d5 as CheckboxList,d4 as CheckboxListDirection,d2 as CheckboxSize,f as CliCommand,d as DataCard,D as Drawer,d6 as DropData,d7 as Header,I as IconButton,c2 as IconButtonSize,d8 as Input,d9 as Modal,da as Navbar,db as Note,dd as Radio,df as RadioGroup,de as RadioGroupDirection,dc as RadioSize,S as SectionCard,h as SectionCardActionType,d1 as SectionCardSize,q as Segment,s as StatusCard,k as Table,dg as Tag,t as TextCard,e as Typography,p as TypographySize,dh as TypographyVariants}from"../chunks/ui-components-a8941c5a.js";import"../icons.js";import"react";import"zustand";import"javascript-time-ago";import"../chunks/vendor-55cc654c.js";import"react-dom";import"styled-components";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
package/lib/components.js CHANGED
@@ -1 +1 @@
1
- export{aj as AutocompleteInput,aE as Badge,aH as Button,a4 as CancelWarning,C as CenterThis,w as Checkbox,i as Code,aa as ConditionDetails,ab as DataCard,t as DataCardFieldTypes,bs as DataCardFields,cM as DataFinger,aK as DataTab,a3 as DeleteWarning,bP as DescribeRow,ak as Divider,V as DocsButton,a2 as Drawer,cO as DrawerFooter,cN as DrawerHeader,b5 as Dropdown,cP as ErrorBoundary,be as ExtendArrow,F as FadeLoader,x as FieldError,v as FieldLabel,c as FlexColumn,l as FlexRow,cQ as Header,bd as IconButton,bY as IconGroup,ay as IconTitleBadge,at as IconWrapped,bL as IconsNav,cR as ImageControlled,z as Input,M as InputList,H as InputTable,aB as InteractiveTable,L as KeyValueInputsList,aG as LoadingText,ae as Modal,ag as ModalBody,X as MonitorsCheckboxes,av as MonitorsIcons,af as NavigationButtons,aC as NoDataFound,ah as NotificationNote,cX as Overlay,P as PageContent,b0 as Popup,c0 as PopupForm,c5 as ScrollX,aO as ScrollY,U as SectionTitle,R as Segment,b1 as SelectionButton,aS as SkeletonLoader,am as Status,br as Stepper,cS as TabList,aw as TableContainer,ax as TableTitleWrap,aA as TableWrap,bB as Tag,Q as Text,Y as TextArea,J as Toggle,c3 as ToggleCodeComponent,ao as Tooltip,aD as TraceLoader,b2 as VerticalScroll,cW as WarningModal,cT as getLinksFromText,cU as getStrongsFromText,cV as renderText}from"./chunks/ui-components-c87427ab.js";import"./icons.js";import"react";import"zustand";import"javascript-time-ago";import"./chunks/vendor-55cc654c.js";import"react-dom";import"styled-components";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
1
+ export{am as AutocompleteInput,aG as Badge,aJ as Button,a7 as CancelWarning,C as CenterThis,y as Checkbox,j as Code,ad as ConditionDetails,ae as DataCard,w as DataCardFieldTypes,bu as DataCardFields,cP as DataFinger,aM as DataTab,a6 as DeleteWarning,bR as DescribeRow,an as Divider,Z as DocsButton,a5 as Drawer,cR as DrawerFooter,cQ as DrawerHeader,b7 as Dropdown,cS as ErrorBoundary,bg as ExtendArrow,F as FadeLoader,z as FieldError,x as FieldLabel,c as FlexColumn,o as FlexRow,cT as Header,bf as IconButton,b_ as IconGroup,aB as IconTitleBadge,aw as IconWrapped,bN as IconsNav,cU as ImageControlled,G as Input,R as InputList,L as InputTable,aE as InteractiveTable,Q as KeyValueInputsList,aI as LoadingText,ah as Modal,aj as ModalBody,_ as MonitorsCheckboxes,ay as MonitorsIcons,ai as NavigationButtons,N as NoDataFound,ak as NotificationNote,c_ as Overlay,P as PageContent,b2 as Popup,c3 as PopupForm,c8 as ScrollX,aQ as ScrollY,Y as SectionTitle,X as Segment,b3 as SelectionButton,aU as SkeletonLoader,ap as Status,bt as Stepper,cV as TabList,az as TableContainer,aA as TableTitleWrap,aD as TableWrap,bD as Tag,V as Text,$ as TextArea,M as Toggle,c6 as ToggleCodeComponent,ar as Tooltip,aF as TraceLoader,b4 as VerticalScroll,cZ as WarningModal,cW as getLinksFromText,cX as getStrongsFromText,cY as renderText}from"./chunks/ui-components-a8941c5a.js";import"./icons.js";import"react";import"zustand";import"javascript-time-ago";import"./chunks/vendor-55cc654c.js";import"react-dom";import"styled-components";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
package/lib/constants.js CHANGED
@@ -1 +1 @@
1
- export{a8 as ACTION_OPTIONS,a1 as BUTTON_TEXTS,bc as DEFAULT_DATA_STREAM_NAME,bp as DESTINATION_CATEGORIES,b6 as DISPLAY_LANGUAGES,s as DISPLAY_TITLES,ai as FORM_ALERTS,bE as INSTRUMENTATION_RULE_OPTIONS,cF as LANGUAGE_OPTIONS,b7 as MONITORS_OPTIONS,b8 as STORAGE_KEYS,cG as TOKEN_ABOUT_TO_EXPIRE}from"./chunks/ui-components-c87427ab.js";import"./icons.js";import"react";import"zustand";import"javascript-time-ago";import"./chunks/vendor-55cc654c.js";import"react-dom";import"styled-components";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
1
+ export{ab as ACTION_OPTIONS,a4 as BUTTON_TEXTS,be as DEFAULT_DATA_STREAM_NAME,br as DESTINATION_CATEGORIES,b8 as DISPLAY_LANGUAGES,v as DISPLAY_TITLES,al as FORM_ALERTS,bG as INSTRUMENTATION_RULE_OPTIONS,cI as LANGUAGE_OPTIONS,b9 as MONITORS_OPTIONS,ba as STORAGE_KEYS,cJ as TOKEN_ABOUT_TO_EXPIRE}from"./chunks/ui-components-a8941c5a.js";import"./icons.js";import"react";import"zustand";import"javascript-time-ago";import"./chunks/vendor-55cc654c.js";import"react-dom";import"styled-components";import"@xyflow/react";import"prism-react-renderer";import"react-error-boundary";import"lottie-react";
@@ -3,6 +3,7 @@ import { type SectionCardProps, type StatusCardProps, type TextCardProps } from
3
3
  export interface GeneralInfoProps extends SectionCardProps {
4
4
  statusCard: StatusCardProps;
5
5
  textCards: TextCardProps[];
6
- yaml: string;
6
+ manifestYaml: string;
7
+ configMapYaml: string;
7
8
  }
8
9
  export declare const GeneralInfo: FC<GeneralInfoProps>;
@@ -1,5 +1,5 @@
1
1
  import { type FC, type CSSProperties } from 'react';
2
- import type { GetExtendedPodInfo, PodInfo } from '@/types';
2
+ import { type GetExtendedPodInfo, type PodInfo } from '@/types';
3
3
  export interface PodsInfoProps {
4
4
  isLoading?: boolean;
5
5
  tableRowsMaxHeight: CSSProperties['maxHeight'];
@@ -1,4 +1,4 @@
1
- import e,{useState as a,useEffect as l,useMemo as t,useCallback as i}from"react";import{T as s,u as o,a as n,g as r,b as d,D as c,C as u,F as g,S as b,c as p,d as m,e as y,I as k,f as C,B as w,h as v,i as f,j as h,k as L,l as x,m as P,n as R,o as I,p as D,q as M,r as $,O as A,W as N,P as S}from"../chunks/ui-components-c87427ab.js";import T from"styled-components";import{PodIcon as V,ChevronUpIcon as z,ChevronDownIcon as j,YamlIcon as O,VIcon as U,CopyIcon as E,PipelineCollectorIcon as H,DownloadIcon as q,RefreshIcon as G,GatewayIcon as Y}from"../icons.js";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 F=T.div`
1
+ import e,{useState as a,useEffect as t,useMemo as l,useCallback as i}from"react";import{T as o,u as s,a as n,g as r,b as d,D as c,C as u,F as g,S as b,c as m,d as p,e as y,I as k,f,h as C,B as v,i as w,j as h,k as L,l as x,m as P,n as R,o as $,p as I,q as M,r as D,N as A,s as N,t as S,O as T,W as z,P as V}from"../chunks/ui-components-a8941c5a.js";import Y,{useTheme as j}from"styled-components";import{PodIcon as O,ChevronUpIcon as U,ChevronDownIcon as E,TerminalIcon as H,YamlIcon as q,VIcon as G,CopyIcon as F,VSquareIcon as W,XSquareIcon as B,PipelineCollectorIcon as K,DownloadIcon as J,RefreshIcon as Q,GatewayIcon as X}from"../icons.js";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 Z=Y.div`
2
2
  display: flex;
3
3
  align-items: center;
4
4
  justify-content: space-between;
@@ -6,10 +6,14 @@ import e,{useState as a,useEffect as l,useMemo as t,useCallback as i}from"react"
6
6
  padding: 8px 12px;
7
7
  border-radius: 12px;
8
8
  background-color: ${({theme:e})=>e.v2.colors.silver[800]};
9
- `,W=T.div`
10
- animation-name: ${s.animations.fade.in};
11
- `,B=({pod:i,getExtendedPodInfo:s,onClose:h})=>{const{formatTimeAgo:L}=o(),{clickCopy:x,isCopied:P}=n(),[R,I]=a(null),[D,M]=a(!1);l(()=>{i?s(i.namespace,i.name).then(e=>I(e??null)):(I(null),M(!1))},[i]);const $=t(()=>[{id:r(),title:"Node",label:R?.node??"-"},{id:r(),title:"Role",label:R?.role??"-"},{id:r(),title:"Status",badge:{status:d(R?.status),label:R?.status??"-"}}],[R]),A=t(()=>R?.containers?.map(e=>({id:r(),items:[{id:r(),title:"Container",label:e.name??"-"},{id:r(),title:"Status",badge:{status:d(e.status),label:e.status??"-"},label:e.startedAt?`(since ${L(e.startedAt)})`:""},{id:r(),title:"Image Version",label:e.image?.split(":")?.[1]??"-"},{id:r(),title:"Image Repository",label:e.image?.split(":")?.[0]??"-"},{id:r(),title:"Restarts",label:e.restarts.toString()},{id:r(),title:"State Reason",label:e.stateReason??"-"},{id:r(),title:"Resource Requests",label:`CPU ${e.resources.requests.cpu} • Memory ${e.resources.requests.memory}`},{id:r(),title:"Resource Limits",label:`CPU ${e.resources.limits.cpu} • Memory ${e.resources.limits.memory}`}]}))||[],[R]);return e.createElement(c,{isOpen:!!i,header:{icon:V,title:"Pod Information",onClose:h}},R?null:e.createElement(u,null,e.createElement(g,null)),R?e.createElement(e.Fragment,null,e.createElement(b,{icon:V,title:R.name},e.createElement(p,{$gap:24},e.createElement(m,{cellsPerRow:3,items:$}),A.length>0&&e.createElement(p,{$gap:12},e.createElement(F,null,e.createElement(y,null,"Containers Overview"),e.createElement(k,{icon:D?z:j,onClick:()=>M(e=>!e)})),D&&A.map(({id:a,items:l})=>e.createElement(W,{key:a},e.createElement(m,{cellsPerRow:2,items:l})))))),e.createElement(b,{icon:O,title:"YAML",actions:[{id:r(),type:C.Button,props:{label:"",leftIcon:P?U:E,onClick:()=>x(R.manifestYAML),disabled:P,size:w.S,variant:v.Secondary}}]},e.createElement("div",{style:{padding:"0 12px"}},e.createElement(f,{code:R.manifestYAML,language:"yaml",theme:"duotoneDark"})))):null)};var J;!function(e){e.PodName="podName",e.Ready="ready",e.Status="status",e.Restarts="restarts",e.NodeName="nodeName",e.Age="age",e.DockerImage="dockerImage"}(J||(J={}));const K=[{key:J.PodName,label:"Pod Name",sortable:!0},{key:J.Ready,label:"Ready",sortable:!0,textAlign:"right"},{key:J.Status,label:"Status",sortable:!0},{key:J.Restarts,label:"Restarts",sortable:!0,textAlign:"right"},{key:J.NodeName,label:"Node Name",sortable:!0},{key:J.Age,label:"Age",sortable:!0,textAlign:"right"},{key:J.DockerImage,label:"Docker Image",sortable:!0,textAlign:"right"}],Q=({isLoading:l,tableRowsMaxHeight:i,pods:s,getExtendedPodInfo:n})=>{const{formatTimeAgo:r}=o(),[c,u]=a(null),g=t(()=>s.map(a=>({onClick:()=>u(a),cells:[{key:J.PodName,rawValue:a.name},{key:J.Ready,rawValue:a.ready},{key:J.Status,rawValue:a.status??"-",component:a.status?()=>e.createElement(h,{status:d(a.status),label:a.status}):void 0},{key:J.Restarts,rawValue:a.restartsCount},{key:J.NodeName,rawValue:a.nodeName},{key:J.Age,rawValue:r(a.creationTimestamp)},{key:J.DockerImage,rawValue:a.image}]})),[s]);return e.createElement(b,{icon:V,title:"Pods"},e.createElement(L,{maxHeight:i,isLoading:l,columns:K,rows:g}),e.createElement(B,{pod:c,getExtendedPodInfo:n,onClose:()=>u(null)}))};var X;!function(e){e.Gateway="gateway",e.Node="node"}(X||(X={}));const Z=[{value:X.Gateway,label:"Gateway"},{value:X.Node,label:"Node Collector"}],_=T.div`
9
+ cursor: pointer;
10
+ &:hover {
11
+ background: ${({theme:e})=>e.v2.colors.silver[700]};
12
+ }
13
+ `,_=Y.div`
14
+ animation-name: ${o.animations.fade.in};
15
+ `,ee=({pod:i,getExtendedPodInfo:o,onClose:L})=>{const{formatTimeAgo:x}=s(),{clickCopy:P,isCopied:R}=n(),[$,I]=a(null),[M,D]=a(!1);t(()=>{i?o(i.namespace,i.name).then(e=>I(e??null)):(I(null),D(!1))},[i]);const A=l(()=>[{id:r(),title:"Node",label:$?.node??"-",withCopy:!0},{id:r(),title:"Status",badge:{status:d($?.status),label:$?.status??"-"}}],[$]),N=l(()=>$?.containers?.map(e=>({id:r(),items:[{id:r(),title:"Container",label:e.name??"-"},{id:r(),title:"Status",badge:{status:d(e.status),label:e.status??"-"},label:e.startedAt?`(since ${x(e.startedAt)})`:""},{id:r(),title:"Image Version",label:e.image?.split(":")?.[1]??"-"},{id:r(),title:"Image Repository",label:e.image?.split(":")?.[0]??"-"},{id:r(),title:"Restarts",label:e.restarts.toString()},{id:r(),title:"State Reason",label:e.stateReason??"-"},{id:r(),title:"Resource Requests",label:`CPU ${e.resources.requests.cpu} • Memory ${e.resources.requests.memory}`},{id:r(),title:"Resource Limits",label:`CPU ${e.resources.limits.cpu} • Memory ${e.resources.limits.memory}`}]}))||[],[$]);return e.createElement(c,{isOpen:!!i,header:{icon:O,title:"Pod Information",onClose:L}},$?null:e.createElement(u,null,e.createElement(g,null)),$?e.createElement(e.Fragment,null,e.createElement(b,{icon:O,title:$.name,withCopyTitle:!0},e.createElement(m,{$gap:24},e.createElement(p,{cellsPerRow:2,items:A}),N.length>0&&e.createElement(m,{$gap:12},e.createElement(Z,{onClick:()=>D(e=>!e)},e.createElement(y,null,"Containers Overview"),e.createElement(k,{icon:M?U:E})),M&&N.map(({id:a,items:t})=>e.createElement(_,{key:a},e.createElement(p,{cellsPerRow:2,items:t})))))),e.createElement(b,{icon:H,title:"Kubectl Commands"},e.createElement(m,{$gap:12},e.createElement(f,{value:`kubectl get pod ${$.name} -n ${$.namespace} -o yaml`}),e.createElement(f,{value:`kubectl describe pod ${$.name} -n ${$.namespace}`}),e.createElement(f,{value:`kubectl logs ${$.name} -n ${$.namespace}`}))),e.createElement(b,{icon:q,title:"YAML",actions:[{id:r(),type:C.Button,buttonProps:{label:"",leftIcon:R?G:F,onClick:()=>P($.manifestYAML),disabled:R,size:v.S,variant:w.Secondary}}]},e.createElement("div",{style:{padding:"0 12px"}},e.createElement(h,{code:$.manifestYAML,language:"yaml",theme:"duotoneDark"})))):null)};var ae;!function(e){e.PodName="podName",e.Ready="ready",e.Started="started",e.Status="status",e.Restarts="restarts",e.NodeName="nodeName",e.Age="age",e.DockerImage="dockerImage"}(ae||(ae={}));const te=[{key:ae.PodName,label:"Pod Name",sortable:!0},{key:ae.Ready,label:"Ready",sortable:!0,textAlign:"right"},{key:ae.Started,label:"Started",sortable:!0,textAlign:"right"},{key:ae.Status,label:"Status",sortable:!0},{key:ae.Restarts,label:"Restarts",sortable:!0,textAlign:"right"},{key:ae.NodeName,label:"Node Name",sortable:!0},{key:ae.Age,label:"Age",sortable:!0,textAlign:"right"},{key:ae.DockerImage,label:"Docker Image",sortable:!0,textAlign:"right"}],le=({isLoading:t,tableRowsMaxHeight:i,pods:o,getExtendedPodInfo:n})=>{const r=j(),{formatTimeAgo:c}=s(),[u,g]=a(null),m=l(()=>{const a=a=>a?e.createElement(W,{fill:x(r,P.Success,"500"),size:20}):e.createElement(B,{fill:x(r,P.Error,"500"),size:20});return o.map(t=>({onClick:()=>g(t),cells:[{key:ae.PodName,rawValue:t.name},{key:ae.Ready,rawValue:t.ready,component:()=>a(t.ready)},{key:ae.Started,rawValue:t.started,component:()=>a(t.started)},{key:ae.Status,rawValue:t.status,component:()=>{return a=t.status,e.createElement(R,{status:d(a),label:a});var a}},{key:ae.Restarts,rawValue:t.restartsCount.toString()},{key:ae.NodeName,rawValue:t.nodeName},{key:ae.Age,rawValue:c(t.creationTimestamp)},{key:ae.DockerImage,rawValue:t.image}]}))},[o,r]);return e.createElement(b,{icon:O,title:"Pods"},e.createElement(L,{maxHeight:i,isLoading:t,columns:te,rows:m}),e.createElement(ee,{pod:u,getExtendedPodInfo:n,onClose:()=>g(null)}))};var ie;!function(e){e.Gateway="gateway",e.Node="node"}(ie||(ie={}));const oe=[{value:ie.Gateway,label:"Gateway"},{value:ie.Node,label:"Node Collector"}],se=Y.div`
12
16
  display: flex;
13
17
  align-items: center;
14
18
  justify-content: space-between;
15
- `,ee=({selectedTab:a,setSelectedTab:l,onClickDownloadDiagnose:t,onClickRefresh:i,isLoading:s})=>e.createElement(_,null,e.createElement(x,{$gap:12},e.createElement(x,{$gap:8},e.createElement(H,{size:32}),e.createElement(y,{size:P.M,weight:500},"Pipeline Collectors")),e.createElement(R,{options:Z,selected:a,setSelected:l})),e.createElement(x,{$gap:8},t&&e.createElement(I,{label:"Download Diagnose",leftIcon:q,size:w.S,variant:v.Text,onClick:t}),i&&e.createElement(I,{label:"Refresh",leftIcon:G,size:w.S,variant:v.Text,onClick:i,loading:s}))),ae=({isOpen:a,onClose:l,title:t,yaml:i})=>{const{clickCopy:s,isCopied:o}=n();return e.createElement(c,{isOpen:a,header:{icon:Y,title:t,onClose:l}},e.createElement(b,{icon:O,title:"YAML",actions:[{id:r(),type:C.Button,props:{label:"",leftIcon:o?U:E,onClick:()=>s(i),disabled:o,size:w.S,variant:v.Secondary}}]},e.createElement("div",{style:{padding:"0 12px"}},e.createElement(f,{code:i,language:"yaml",theme:"duotoneDark"}))))},le=({icon:l,title:t,badge:i,statusCard:s,textCards:o,yaml:n})=>{const[d,c]=a(!1);return e.createElement(b,{icon:l,title:t,badge:i,actions:[{id:r(),type:C.Button,props:{variant:v.Secondary,size:w.S,leftIcon:O,label:"View YAML",onClick:()=>c(!0)}}]},e.createElement(x,{$gap:16},e.createElement(D,{...s}),o.map(a=>e.createElement(M,{key:a.title,...a}))),e.createElement(ae,{isOpen:d,onClose:()=>c(!1),title:t,yaml:n}))},te=e=>{switch(e){case N.Healthy:return"All desired replicas are updated, available, and ready";case N.Updating:return"Workload is progressing towards desired state (e.g., updating pods)";case N.Degraded:return"Progressing but with availability issues (e.g., not enough available replicas)";case N.Failed:return"Progress deadline exceeded or an unrecoverable error occurred";case N.Down:return"No available replicas";case N.Unknown:return"Status cannot be determined from current signals";default:return"Status unknown"}},ie=({tableRowsMaxHeight:s,getGatewayInfo:n,getGatewayPods:r,getNodeCollectorInfo:c,getNodeCollectorPods:u,getExtendedPodInfo:g})=>{const{formatTimeAgo:b}=o(),[p,m]=a(!1),[y,k]=a(X.Gateway),[C,w]=a(null),[v,f]=a([]),[h,L]=a(null),[x,P]=a([]),R=i(async()=>{switch(m(!0),y){case X.Gateway:w(await n()??null),f(await r()??[]);break;case X.Node:L(await c()??null),P(await u()??[])}m(!1)},[y]);l(()=>{R().catch(e=>{})},[R]);const I=t(()=>(e=>{const a=Z.find(a=>a.value===e);return a?.label??"Pipeline Collectors"})(y),[y]),D=t(()=>((e,a,l,t)=>{const i={status:A.Disabled,label:"No rollouts yet"};let s=!1,o=null;switch(e){case X.Gateway:s=a?.rolloutInProgress??!1,o=a?.lastRolloutAt??null;break;case X.Node:s=l?.rolloutInProgress??!1,o=l?.lastRolloutAt??null;break;default:return i}return s?{status:$.Info,label:"Rollout in progress",rightIcon:G,useSecondaryTone:!0}:o?{status:A.Disabled,label:`Last Rollout: ${t(o)}`}:i})(y,C,h,b),[C,h,y,b]),M=t(()=>((e,a,l,t)=>{if(t)return{status:$.Info,title:"Loading",description:"Fetching data..."};let i=A.Unknown,s=N.Unknown,o=te(N.Unknown);switch(e){case X.Gateway:i=d(a?.status),s=a?.status??s,o=a?.status?te(a.status):o;break;case X.Node:i=d(a?.status),s=l?.status??s,o=l?.status?te(l.status):o}return{status:i,title:s,description:o}})(y,C,h,p),[C,h,y,p]),T=t(()=>((e,a,l,t)=>{switch(e){case X.Gateway:return[{title:"HPA Spec (Replicas)",cells:[{label:"Min.",value:a?.hpa.min.toString()??"-",isLoading:t},{label:"Max.",value:a?.hpa.max.toString()??"-",isLoading:t},{label:"Current",value:a?.hpa.current.toString()??"-",isLoading:t},{label:"Desired",value:a?.hpa.desired.toString()??"-",isLoading:t}]},{title:"Requests",cells:[{label:"CPU",value:a?.resources.requests.cpu??"-",isLoading:t},{label:"Memory",value:a?.resources.requests.memory??"-",isLoading:t}]},{title:"Limits",cells:[{label:"CPU",value:a?.resources.limits.cpu??"-",isLoading:t},{label:"Memory",value:a?.resources.limits.memory??"-",isLoading:t}]},{title:"Docker Image",cells:[{value:a?.imageVersion??"-",isLoading:t}]}];case X.Node:return[{title:"Nodes",cells:[{label:"Desired",value:l?.nodes.desired.toString()??"-",isLoading:t},{label:"Ready",value:l?.nodes.ready.toString()??"-",isLoading:t}]},{title:"Requests",cells:[{label:"CPU",value:l?.resources.requests.cpu??"-",isLoading:t},{label:"Memory",value:l?.resources.requests.memory??"-",isLoading:t}]},{title:"Limits",cells:[{label:"CPU",value:l?.resources.limits.cpu??"-",isLoading:t},{label:"Memory",value:l?.resources.limits.memory??"-",isLoading:t}]},{title:"Docker Image",cells:[{value:l?.imageVersion??"-",isLoading:t}]}];default:return[]}})(y,C,h,p),[C,h,y,p]),V=t(()=>(y===X.Gateway?C?.manifestYAML:h?.manifestYAML)??"",[C,h,y]),z=t(()=>y===X.Gateway?v:x,[v,x,y]);return e.createElement(S,null,e.createElement(ee,{isLoading:p,selectedTab:y,setSelectedTab:k,onClickDownloadDiagnose:void 0,onClickRefresh:R}),e.createElement(le,{icon:Y,title:I,badge:D,statusCard:M,textCards:T,yaml:V}),e.createElement(Q,{isLoading:p,tableRowsMaxHeight:s,pods:z,getExtendedPodInfo:g}))};export{ie as PipelineCollectors};
19
+ `,ne=({selectedTab:a,setSelectedTab:t,onClickDownloadDiagnose:l,onClickRefresh:i,isLoading:o})=>e.createElement(se,null,e.createElement($,{$gap:12},e.createElement($,{$gap:8},e.createElement(K,{size:32}),e.createElement(y,{size:I.M,weight:500},"Pipeline Collectors")),e.createElement(M,{options:oe,selected:a,setSelected:t})),e.createElement($,{$gap:8},l&&e.createElement(D,{label:"Download Diagnose",leftIcon:J,size:v.S,variant:w.Text,onClick:l}),i&&e.createElement(D,{label:"Refresh",leftIcon:Q,size:v.S,variant:w.Text,onClick:i,loading:o}))),re=({isOpen:a,onClose:t,title:l,yaml:i})=>{const{clickCopy:o,isCopied:s}=n();return e.createElement(c,{isOpen:a,header:{icon:X,title:l,onClose:t}},i?e.createElement(b,{icon:q,title:"YAML",actions:[{id:r(),type:C.Button,buttonProps:{label:"",leftIcon:s?G:F,onClick:()=>o(i),disabled:s,size:v.S,variant:w.Secondary}}]},e.createElement("div",{style:{padding:"0 12px"}},e.createElement(h,{code:i,language:"yaml",theme:"duotoneDark"}))):e.createElement(A,{title:"No YAML found",subTitle:"The YAML for this resource is not available"}))};var de;!function(e){e.ManifestYaml="manifest-yaml",e.ConfigMapYaml="configmap-yaml"}(de||(de={}));const ce=({icon:t,title:l,badge:i,statusCard:o,textCards:s,manifestYaml:n,configMapYaml:d})=>{const[c,u]=a(null);return e.createElement(b,{icon:t,title:l,badge:i,actions:[{id:r(),type:C.ButtonDropData,buttonProps:{variant:w.Secondary,size:v.S,label:"View YAML",onClick:e=>u(e)},dropDataItems:[{id:de.ManifestYaml,label:l,icon:q},{id:de.ConfigMapYaml,label:"ConfigMap",icon:q}]}]},e.createElement($,{$gap:16},e.createElement(N,{...o}),s.map(a=>e.createElement(S,{key:a.title,...a}))),e.createElement(re,{isOpen:c===de.ManifestYaml,onClose:()=>u(null),title:l,yaml:n}),e.createElement(re,{isOpen:c===de.ConfigMapYaml,onClose:()=>u(null),title:"ConfigMap",yaml:d}))},ue=e=>{switch(e){case z.Healthy:return"All desired replicas are updated, available, and ready";case z.Updating:return"Workload is progressing towards desired state (e.g., updating pods)";case z.Degraded:return"Progressing but with availability issues (e.g., not enough available replicas)";case z.Failed:return"Progress deadline exceeded or an unrecoverable error occurred";case z.Down:return"No available replicas";case z.Unknown:return"Status cannot be determined from current signals";default:return"Status unknown"}},ge=({tableRowsMaxHeight:o,getGatewayInfo:n,getGatewayPods:r,getNodeCollectorInfo:c,getNodeCollectorPods:u,getExtendedPodInfo:g})=>{const{formatTimeAgo:b}=s(),[m,p]=a(!1),[y,k]=a(ie.Gateway),[f,C]=a(null),[v,w]=a([]),[h,L]=a(null),[x,R]=a([]),$=i(async()=>{switch(p(!0),y){case ie.Gateway:C(await n()??null),w(await r()??[]);break;case ie.Node:L(await c()??null),R(await u()??[])}p(!1)},[y]);t(()=>{$().catch(e=>{})},[$]);const I=l(()=>(e=>{switch(e){case ie.Gateway:return"Deployment";case ie.Node:return"DaemonSet";default:return"Pipeline Collectors"}})(y),[y]),M=l(()=>((e,a,t,l)=>{const i={status:T.Disabled,label:"No rollouts yet"};let o=!1,s=null;switch(e){case ie.Gateway:o=a?.rolloutInProgress??!1,s=a?.lastRolloutAt??null;break;case ie.Node:o=t?.rolloutInProgress??!1,s=t?.lastRolloutAt??null;break;default:return i}return o?{status:P.Info,label:"Rollout in progress",rightIcon:Q,useSecondaryTone:!0}:s?{status:T.Disabled,label:`Last Rollout: ${l(s)}`}:i})(y,f,h,b),[f,h,y,b]),D=l(()=>((e,a,t,l)=>{let i=l?P.Info:T.Unknown,o=l?"Loading":z.Unknown,s=l?"Fetching data...":ue(z.Unknown);switch(e){case ie.Gateway:i=a?.status?d(a?.status):i,o=a?.status??o,s=a?.status?ue(a.status):s;break;case ie.Node:i=t?.status?d(t?.status):i,o=t?.status??o,s=t?.status?ue(t.status):s}return{status:i,title:o,description:s}})(y,f,h,m),[f,h,y,m]),A=l(()=>((e,a,t,l)=>{switch(e){case ie.Gateway:return[{title:"HPA Spec (Replicas)",cells:[{label:"Min.",value:a?.hpa?.min.toString()??"-",isLoading:l},{label:"Max.",value:a?.hpa?.max.toString()??"-",isLoading:l},{label:"Current",value:a?.hpa?.current.toString()??"-",isLoading:l},{label:"Desired",value:a?.hpa?.desired.toString()??"-",isLoading:l}]},{title:"Requests",cells:[{label:"CPU",value:a?.resources?.requests.cpu??"-",isLoading:l},{label:"Memory",value:a?.resources?.requests.memory??"-",isLoading:l}]},{title:"Limits",cells:[{label:"CPU",value:a?.resources?.limits.cpu??"-",isLoading:l},{label:"Memory",value:a?.resources?.limits.memory??"-",isLoading:l}]},{title:"Docker Image",cells:[{value:a?.imageVersion??"-",isLoading:l}]}];case ie.Node:return[{title:"Nodes",cells:[{label:"Desired",value:t?.nodes?.desired.toString()??"-",isLoading:l},{label:"Ready",value:t?.nodes?.ready.toString()??"-",isLoading:l}]},{title:"Requests",cells:[{label:"CPU",value:t?.resources?.requests.cpu??"-",isLoading:l},{label:"Memory",value:t?.resources?.requests.memory??"-",isLoading:l}]},{title:"Limits",cells:[{label:"CPU",value:t?.resources?.limits.cpu??"-",isLoading:l},{label:"Memory",value:t?.resources?.limits.memory??"-",isLoading:l}]},{title:"Docker Image",cells:[{value:t?.imageVersion??"-",isLoading:l}]}];default:return[]}})(y,f,h,m),[f,h,y,m]),N=l(()=>(y===ie.Gateway?f?.manifestYAML:h?.manifestYAML)??"",[f,h,y]),S=l(()=>(y===ie.Gateway?f?.configMapYAML:h?.configMapYAML)??"",[f,h,y]),Y=l(()=>y===ie.Gateway?v:x,[v,x,y]);return e.createElement(V,null,e.createElement(ne,{isLoading:m,selectedTab:y,setSelectedTab:k,onClickDownloadDiagnose:void 0,onClickRefresh:$}),e.createElement(ce,{icon:X,title:I,badge:M,statusCard:D,textCards:A,manifestYaml:N,configMapYaml:S}),e.createElement(le,{isLoading:m,tableRowsMaxHeight:o,pods:Y,getExtendedPodInfo:g}))};export{ge as PipelineCollectors};