@odigos/ui-kit 0.0.95 → 0.0.97
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 +15 -0
- package/lib/components/data-card/data-card-fields/index.d.ts +2 -1
- package/lib/components/data-card/index.d.ts +2 -1
- package/lib/components/drawer/drawer-header/index.d.ts +2 -1
- package/lib/components/drawer/index.d.ts +2 -2
- package/lib/components/text/index.d.ts +2 -1
- package/lib/components.js +3 -3
- package/lib/containers/trace-view/index.d.ts +1 -0
- package/lib/containers/trace-view/span/index.d.ts +5 -0
- package/lib/containers/trace-view/span-drawer/build-details-card.d.ts +3 -0
- package/lib/containers/trace-view/span-drawer/build-logs-card.d.ts +3 -0
- package/lib/containers/trace-view/span-drawer/build-process-card.d.ts +3 -0
- package/lib/containers/trace-view/span-drawer/build-tags-card.d.ts +3 -0
- package/lib/containers/trace-view/span-drawer/index.d.ts +9 -0
- package/lib/containers.js +162 -43
- package/lib/icons.js +2 -9
- package/lib/{index-a53852b3.js → index-57d03703.js} +8 -1
- package/lib/{index-9a7beddb.js → index-5d1b3a92.js} +1 -1
- package/lib/{index-c529b896.js → index-a8da9518.js} +25 -16
- package/lib/snippets.js +2 -2
- package/lib/types/traces/index.d.ts +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.0.97](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.96...ui-kit-v0.0.97) (2025-08-26)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* release of 0.0.97 ([#359](https://github.com/odigos-io/ui-kit/issues/359)) ([67659cc](https://github.com/odigos-io/ui-kit/commit/67659cc785acbf6934293098be331274b9d0fa13))
|
|
9
|
+
|
|
10
|
+
## [0.0.96](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.95...ui-kit-v0.0.96) (2025-08-26)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* **trace-view:** add loading state to TraceView component ([#356](https://github.com/odigos-io/ui-kit/issues/356)) ([12d811c](https://github.com/odigos-io/ui-kit/commit/12d811c6b3bd4ae0b5773d4f8aa488f88a08322e))
|
|
16
|
+
* **trace-view:** add SpanDrawer with detailed span and process information ([#358](https://github.com/odigos-io/ui-kit/issues/358)) ([861635e](https://github.com/odigos-io/ui-kit/commit/861635ea0de73535a778b4a54d0cac2ed5cf8594))
|
|
17
|
+
|
|
3
18
|
## [0.0.95](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.94...ui-kit-v0.0.95) (2025-08-26)
|
|
4
19
|
|
|
5
20
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type FC } from 'react';
|
|
2
|
-
import { AnyObj } from '@/types';
|
|
2
|
+
import { AnyObj, SVG } from '@/types';
|
|
3
3
|
declare enum DataCardFieldTypes {
|
|
4
4
|
Code = "code",
|
|
5
5
|
Table = "table",
|
|
@@ -13,6 +13,7 @@ declare enum DataCardFieldTypes {
|
|
|
13
13
|
interface DataCardField {
|
|
14
14
|
type?: DataCardFieldTypes;
|
|
15
15
|
title?: string;
|
|
16
|
+
titleIcon?: SVG;
|
|
16
17
|
tooltip?: string;
|
|
17
18
|
value?: string | AnyObj;
|
|
18
19
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type ReactNode, type FC, type PropsWithChildren } from 'react';
|
|
2
|
-
import { OtherStatus } from '@/types';
|
|
2
|
+
import { OtherStatus, SVG } from '@/types';
|
|
3
3
|
import { DataCardFields, type DataCardFieldsProps, DataCardFieldTypes } from './data-card-fields';
|
|
4
4
|
interface DataCardProps extends PropsWithChildren {
|
|
5
5
|
title?: string;
|
|
6
6
|
titleBadge?: string | number | OtherStatus.Loading;
|
|
7
|
+
titleIcon?: SVG;
|
|
7
8
|
description?: string;
|
|
8
9
|
action?: ReactNode | (() => ReactNode);
|
|
9
10
|
withExtend?: boolean;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { type FC, type ReactNode } from 'react';
|
|
1
|
+
import { CSSProperties, type FC, type ReactNode } from 'react';
|
|
2
2
|
import type { SVG } from '@/types';
|
|
3
3
|
import { type ButtonProps } from '@/components/button';
|
|
4
4
|
interface DrawerHeaderProps {
|
|
5
5
|
onClose: () => void;
|
|
6
|
+
width?: CSSProperties['width'];
|
|
6
7
|
icons?: SVG[];
|
|
7
8
|
iconSrcs?: string[];
|
|
8
9
|
title?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ReactNode, type FC } from 'react';
|
|
1
|
+
import { type ReactNode, type FC, CSSProperties } from 'react';
|
|
2
2
|
import { DrawerHeader, DrawerHeaderProps } from './drawer-header';
|
|
3
3
|
import { DrawerFooter, DrawerFooterProps } from './drawer-footer';
|
|
4
4
|
interface DrawerProps {
|
|
@@ -6,7 +6,7 @@ interface DrawerProps {
|
|
|
6
6
|
onClose: () => void;
|
|
7
7
|
closeOnEscape?: boolean;
|
|
8
8
|
position?: 'right' | 'left';
|
|
9
|
-
width?:
|
|
9
|
+
width?: CSSProperties['width'];
|
|
10
10
|
children: ReactNode;
|
|
11
11
|
header: Omit<DrawerHeaderProps, 'onClose'>;
|
|
12
12
|
footer: DrawerFooterProps;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type DetailedHTMLProps, type FC, type HTMLAttributes, type ReactNode } from 'react';
|
|
1
|
+
import { type DetailedHTMLProps, type FC, type HTMLAttributes, type ReactNode, CSSProperties } from 'react';
|
|
2
2
|
import { DefaultTheme } from 'styled-components';
|
|
3
3
|
interface TextProps extends DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement> {
|
|
4
4
|
children?: ReactNode;
|
|
@@ -9,6 +9,7 @@ interface TextProps extends DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HT
|
|
|
9
9
|
family?: 'primary' | 'secondary';
|
|
10
10
|
opacity?: number;
|
|
11
11
|
decoration?: string;
|
|
12
|
+
transform?: CSSProperties['textTransform'];
|
|
12
13
|
}
|
|
13
14
|
declare const getLinksFromText: (text: string) => {
|
|
14
15
|
original: string;
|
package/lib/components.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { B as Button } from './index-
|
|
2
|
-
export { A as AutocompleteInput, a as Badge, a9 as CenterThis, C as Checkbox, b as Code, c as ConditionDetails, D as DataCard, e as DataCardFieldTypes, d as DataCardFields, f as DataFinger, g as DataTab, h as DescribeRow, i as Divider, j as DocsButton, k as Drawer, m as DrawerFooter, l as DrawerHeader, n as Dropdown, E as ExtendArrow, F as FadeLoader, o as FieldError, p as FieldLabel, a8 as FlexColumn, a7 as FlexRow, H as Header, I as IconButton, q as IconGroup, r as IconTitleBadge, s as IconWrapped, t as IconsNav, u as ImageControlled, v as Input, w as InputList, x as InputTable, y as InteractiveTable, K as KeyValueInputsList, M as Modal, ac as ModalBody, z as MonitorsCheckboxes, G as MonitorsIcons, N as NavigationButtons, J as NoDataFound, L as NotificationNote, ab as Overlay, P as Popup, O as PopupForm, S as ScrollX, Q as SectionTitle, R as Segment, U as SelectionButton, V as SkeletonLoader, W as Status, X as Stepper, Y as TabList, ad as TableContainer, ae as TableTitleWrap, af as TableWrap, Z as Tag, _ as Text, a2 as TextArea, a3 as Toggle, T as ToggleCodeComponent, a4 as Tooltip, a5 as TraceLoader, aa as VerticalScroll, a6 as WarningModal, $ as getLinksFromText, a0 as getStrongsFromText, a1 as renderText } from './index-
|
|
3
|
-
export { C as CancelWarning, D as DeleteWarning } from './index-
|
|
1
|
+
import { B as Button } from './index-a8da9518.js';
|
|
2
|
+
export { A as AutocompleteInput, a as Badge, a9 as CenterThis, C as Checkbox, b as Code, c as ConditionDetails, D as DataCard, e as DataCardFieldTypes, d as DataCardFields, f as DataFinger, g as DataTab, h as DescribeRow, i as Divider, j as DocsButton, k as Drawer, m as DrawerFooter, l as DrawerHeader, n as Dropdown, E as ExtendArrow, F as FadeLoader, o as FieldError, p as FieldLabel, a8 as FlexColumn, a7 as FlexRow, H as Header, I as IconButton, q as IconGroup, r as IconTitleBadge, s as IconWrapped, t as IconsNav, u as ImageControlled, v as Input, w as InputList, x as InputTable, y as InteractiveTable, K as KeyValueInputsList, M as Modal, ac as ModalBody, z as MonitorsCheckboxes, G as MonitorsIcons, N as NavigationButtons, J as NoDataFound, L as NotificationNote, ab as Overlay, P as Popup, O as PopupForm, S as ScrollX, Q as SectionTitle, R as Segment, U as SelectionButton, V as SkeletonLoader, W as Status, X as Stepper, Y as TabList, ad as TableContainer, ae as TableTitleWrap, af as TableWrap, Z as Tag, _ as Text, a2 as TextArea, a3 as Toggle, T as ToggleCodeComponent, a4 as Tooltip, a5 as TraceLoader, aa as VerticalScroll, a6 as WarningModal, $ as getLinksFromText, a0 as getStrongsFromText, a1 as renderText } from './index-a8da9518.js';
|
|
3
|
+
export { C as CancelWarning, D as DeleteWarning } from './index-5d1b3a92.js';
|
|
4
4
|
import React, { createContext, Component, createElement } from 'react';
|
|
5
5
|
import { T as Theme } from './index-40dfa720.js';
|
|
6
6
|
import 'styled-components';
|
|
@@ -13,6 +13,7 @@ interface SpanProps {
|
|
|
13
13
|
isOpen?: boolean;
|
|
14
14
|
withToggle?: boolean;
|
|
15
15
|
onToggleOpen?: () => void;
|
|
16
|
+
onSelect: () => void;
|
|
16
17
|
}
|
|
17
18
|
interface RecursiveSpansProps {
|
|
18
19
|
spans: TraceSpan[];
|
|
@@ -26,6 +27,10 @@ interface RecursiveSpansProps {
|
|
|
26
27
|
value: string[];
|
|
27
28
|
set: React.Dispatch<React.SetStateAction<string[]>>;
|
|
28
29
|
};
|
|
30
|
+
selectedSpanState: {
|
|
31
|
+
value: TraceSpan | null;
|
|
32
|
+
set: React.Dispatch<React.SetStateAction<TraceSpan | null>>;
|
|
33
|
+
};
|
|
29
34
|
}
|
|
30
35
|
export declare const LEFT_MAX_WIDTH = 370;
|
|
31
36
|
declare const Span: FC<SpanProps>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
import { TraceProcess, type TraceSpan } from '@/types';
|
|
3
|
+
interface SpanDrawerProps {
|
|
4
|
+
span: TraceSpan;
|
|
5
|
+
process?: TraceProcess;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
}
|
|
8
|
+
declare const SpanDrawer: FC<SpanDrawerProps>;
|
|
9
|
+
export { SpanDrawer, type SpanDrawerProps };
|
package/lib/containers.js
CHANGED
|
@@ -2,16 +2,16 @@ import React, { useState, useEffect, forwardRef, useRef, useImperativeHandle, us
|
|
|
2
2
|
import styled, { css } from 'styled-components';
|
|
3
3
|
import { b as DISPLAY_TITLES, T as Theme, V as usePendingStore, W as useNotificationStore, Q as useDrawerStore, B as BUTTON_TEXTS, X as useEntityStore, A as ACTION_OPTIONS, g as getActionIcon, O as useModalStore, F as FORM_ALERTS, Y as useFilterStore, e as getInstrumentationRuleIcon, Z as useDataStreamStore, _ as useInstrumentStore, d as getEntityId, D as DISPLAY_LANGUAGES, M as MONITORS_OPTIONS, S as STORAGE_KEYS, a as DEFAULT_DATA_STREAM_NAME, c as compareCondition, $ as useSetupStore, f as getProgrammingLanguageIcon, I as INSTRUMENTATION_RULE_OPTIONS, a0 as useSelectedStore, l as ImageErrorIcon, a1 as useDarkMode } from './index-40dfa720.js';
|
|
4
4
|
import { ActionType, ActionKeyTypes, InputTypes, FieldTypes, EntityTypes, StatusType, Crud, OtherStatus, NodeTypes, EdgeTypes, AddNodeTypes, SignalType, HeadersCollectionKeyTypes, CustomInstrumentationsKeyTypes, CodeAttributesKeyTypes, PayloadCollectionKeyTypes, InstrumentationRuleType, K8sResourceKind, ProgrammingLanguages, MountMethod, AgentEnvVarsInjectionMethod, Profile, InstallationMethod } from './types.js';
|
|
5
|
-
import { e as DataCardFieldTypes, p as FieldLabel, C as Checkbox, o as FieldError, v as Input, x as InputTable, a3 as Toggle, K as KeyValueInputsList, w as InputList, _ as Text, R as Segment, Q as SectionTitle, j as DocsButton, z as MonitorsCheckboxes, a2 as TextArea, k as Drawer, c as ConditionDetails, D as DataCard, a8 as FlexColumn, M as Modal, N as NavigationButtons, ac as ModalBody, L as NotificationNote, A as AutocompleteInput, i as Divider, W as Status, a7 as FlexRow, a4 as Tooltip, s as IconWrapped, G as MonitorsIcons, ad as TableContainer, ae as TableTitleWrap, r as IconTitleBadge, af as TableWrap, y as InteractiveTable, a9 as CenterThis, J as NoDataFound, a5 as TraceLoader, a as Badge, ag as nodeConfig, ah as useNodesState, ai as useEdgesState, aj as Flow, ak as applyNodeChanges, P as Popup, U as SelectionButton, aa as VerticalScroll, n as Dropdown, B as Button, I as IconButton, E as ExtendArrow, al as AddButton, F as FadeLoader, g as DataTab, X as Stepper, d as DataCardFields, Z as Tag, am as MarkerType, t as IconsNav, an as CopyText, h as DescribeRow, ao as PodContainer, ap as SourceContainer, q as IconGroup, O as PopupForm, S as ScrollX } from './index-
|
|
5
|
+
import { e as DataCardFieldTypes, p as FieldLabel, C as Checkbox, o as FieldError, v as Input, x as InputTable, a3 as Toggle, K as KeyValueInputsList, w as InputList, _ as Text, R as Segment, Q as SectionTitle, j as DocsButton, z as MonitorsCheckboxes, a2 as TextArea, k as Drawer, c as ConditionDetails, D as DataCard, a8 as FlexColumn, M as Modal, N as NavigationButtons, ac as ModalBody, L as NotificationNote, A as AutocompleteInput, i as Divider, W as Status, a7 as FlexRow, a4 as Tooltip, s as IconWrapped, G as MonitorsIcons, ad as TableContainer, ae as TableTitleWrap, r as IconTitleBadge, af as TableWrap, y as InteractiveTable, a9 as CenterThis, J as NoDataFound, a5 as TraceLoader, a as Badge, ag as nodeConfig, ah as useNodesState, ai as useEdgesState, aj as Flow, ak as applyNodeChanges, P as Popup, U as SelectionButton, aa as VerticalScroll, n as Dropdown, B as Button, I as IconButton, E as ExtendArrow, al as AddButton, F as FadeLoader, g as DataTab, X as Stepper, d as DataCardFields, Z as Tag, am as MarkerType, t as IconsNav, an as CopyText, h as DescribeRow, ao as PodContainer, ap as SourceContainer, q as IconGroup, O as PopupForm, T as ToggleCodeComponent, S as ScrollX } from './index-a8da9518.js';
|
|
6
6
|
import { i as isEmpty, s as safeJsonParse, d as deepClone } from './index-5e5f7bda.js';
|
|
7
|
-
import { C as CheckCircledIcon, O as OdigosLogo, E as ErrorTriangleIcon } from './index-eff01b3d.js';
|
|
8
|
-
import { C as CrossCircledIcon, O as OdigosLogoText, F as FilterIcon, D as DataStreamsIcon, A as ArrowIcon, R as RefreshLeftArrowIcon, N as NotificationIcon, U as UserIcon, a as OverviewIcon, S as SlackLogo, K as KeyIcon, T as TerminalIcon, G as GearIcon } from './index-
|
|
7
|
+
import { C as CheckCircledIcon, O as OdigosLogo, W as WarningTriangleIcon, E as ErrorTriangleIcon } from './index-eff01b3d.js';
|
|
8
|
+
import { C as CrossCircledIcon, O as OdigosLogoText, F as FilterIcon, D as DataStreamsIcon, A as ArrowIcon, R as RefreshLeftArrowIcon, N as NotificationIcon, U as UserIcon, a as OverviewIcon, S as SlackLogo, K as KeyIcon, T as TerminalIcon, G as GearIcon, b as TraceViewIcon } from './index-57d03703.js';
|
|
9
9
|
import { useActionFormData, useSessionStorage, useDataStreamFormData, useDestinationFormData, useClickNotification, useSourceFormData, useSourceSelectionFormData } from './hooks.js';
|
|
10
10
|
import { u as useKeyDown, a as useContainerSize, b as useClickNode, c as usePopup, d as useOnClickOutside, e as useInstrumentationRuleFormData, f as useTransition, g as useTimeAgo, h as useCopy, i as useGenericForm } from './useTransition-2df374a9.js';
|
|
11
11
|
import { E as EditIcon, T as TrashIcon, S as SearchIcon, h as CheckIcon, P as PlusIcon, a as CopyIcon } from './index-1bc2b507.js';
|
|
12
|
-
import { D as DeleteWarning, C as CancelWarning } from './index-
|
|
12
|
+
import { D as DeleteWarning, C as CancelWarning } from './index-5d1b3a92.js';
|
|
13
13
|
import { g as getConditionsBooleans, m as mapConditions, b as getStatusIcon, h as splitCamelString, c as capitalizeFirstLetter, i as isStringABoolean, p as parseBooleanFromString } from './index-d92ef50b.js';
|
|
14
|
-
import { f as filterActions, l as getEntityLabel, k as getEntityIcon, u as sleep, e as formatBytes, i as getContainersIcons, o as getValueForRange, j as getDestinationIcon, d as filterSourcesByStream, c as filterSources, b as filterDestinationsByStream, a as filterDestinations, t as mapDestinationFieldsForDisplay, q as getYamlFieldsForDestination, m as getMetricForEntity, p as getWorkloadId, r as hasUnhealthyInstances, h as getContainersInstrumentedCount, s as isOverTime,
|
|
14
|
+
import { f as filterActions, l as getEntityLabel, k as getEntityIcon, u as sleep, e as formatBytes, i as getContainersIcons, o as getValueForRange, j as getDestinationIcon, d as filterSourcesByStream, c as filterSources, b as filterDestinationsByStream, a as filterDestinations, t as mapDestinationFieldsForDisplay, q as getYamlFieldsForDestination, m as getMetricForEntity, p as getWorkloadId, r as hasUnhealthyInstances, h as getContainersInstrumentedCount, s as isOverTime, g as formatDuration, n as getRecursiveValues } from './index-bf427e64.js';
|
|
15
15
|
import { m as mapExportedSignals } from './index-6a6bea6e.js';
|
|
16
16
|
import { NoteBackToSummary, EditButton } from './snippets.js';
|
|
17
17
|
import { D as DESTINATION_CATEGORIES } from './index-1cb4f9e2.js';
|
|
@@ -677,7 +677,7 @@ const FormContainer$4 = styled.div `
|
|
|
677
677
|
overflow: overlay;
|
|
678
678
|
overflow-y: auto;
|
|
679
679
|
`;
|
|
680
|
-
const DataContainer$
|
|
680
|
+
const DataContainer$5 = styled.div `
|
|
681
681
|
display: flex;
|
|
682
682
|
flex-direction: column;
|
|
683
683
|
gap: 12px;
|
|
@@ -732,7 +732,7 @@ const ActionDrawer = ({ updateAction, deleteAction }) => {
|
|
|
732
732
|
React.createElement(ActionForm, { isUpdate: true, action: thisOptionType, formData: formData, formErrors: formErrors, handleFormChange: (...params) => {
|
|
733
733
|
setIsFormDirty(true);
|
|
734
734
|
handleFormChange(...params);
|
|
735
|
-
} }))) : (React.createElement(DataContainer$
|
|
735
|
+
} }))) : (React.createElement(DataContainer$5, null,
|
|
736
736
|
React.createElement(ConditionDetails, { conditions: thisItem.conditions || [] }),
|
|
737
737
|
React.createElement(DataCard, { title: DISPLAY_TITLES.ACTION_DETAILS, data: !!thisItem ? buildCard$3(thisItem) : [] })))));
|
|
738
738
|
};
|
|
@@ -2373,7 +2373,7 @@ const FormContainer$2 = styled.div `
|
|
|
2373
2373
|
overflow: overlay;
|
|
2374
2374
|
overflow-y: auto;
|
|
2375
2375
|
`;
|
|
2376
|
-
const DataContainer$
|
|
2376
|
+
const DataContainer$4 = styled.div `
|
|
2377
2377
|
display: flex;
|
|
2378
2378
|
flex-direction: column;
|
|
2379
2379
|
gap: 12px;
|
|
@@ -2438,7 +2438,7 @@ const DestinationDrawer = ({ categories, updateDestination, deleteDestination, t
|
|
|
2438
2438
|
}, dynamicFields: dynamicFields, setDynamicFields: (...params) => {
|
|
2439
2439
|
setIsFormDirty(true);
|
|
2440
2440
|
setDynamicFields(...params);
|
|
2441
|
-
}, validateForm: validateForm, testConnection: testConnection }))) : (React.createElement(DataContainer$
|
|
2441
|
+
}, validateForm: validateForm, testConnection: testConnection }))) : (React.createElement(DataContainer$4, null,
|
|
2442
2442
|
thisItem.conditions?.length ? React.createElement(ConditionDetails, { conditions: thisItem.conditions }) : null,
|
|
2443
2443
|
React.createElement(DataCard, { title: DISPLAY_TITLES.DESTINATION_DETAILS, data: !!thisItem ? buildCard$2(thisItem, yamlFields) : [] })))));
|
|
2444
2444
|
};
|
|
@@ -4250,7 +4250,7 @@ const FormContainer = styled.div `
|
|
|
4250
4250
|
overflow: overlay;
|
|
4251
4251
|
overflow-y: auto;
|
|
4252
4252
|
`;
|
|
4253
|
-
const DataContainer$
|
|
4253
|
+
const DataContainer$3 = styled.div `
|
|
4254
4254
|
display: flex;
|
|
4255
4255
|
flex-direction: column;
|
|
4256
4256
|
gap: 12px;
|
|
@@ -4359,7 +4359,7 @@ const SourceDrawer = ({ persistSources, updateSource, restartWorkloads, fetchSou
|
|
|
4359
4359
|
setIsFormDirty(true);
|
|
4360
4360
|
handleFormChange(...params);
|
|
4361
4361
|
handleFormChange('currentStreamName', selectedStreamName);
|
|
4362
|
-
} }))) : (React.createElement(DataContainer$
|
|
4362
|
+
} }))) : (React.createElement(DataContainer$3, null,
|
|
4363
4363
|
React.createElement(ConditionDetails, { conditions: thisItem.conditions || [] }),
|
|
4364
4364
|
React.createElement(DataCard, { title: DISPLAY_TITLES.SOURCE_DETAILS, data: !!thisItem ? buildCard(thisItem) : [] }),
|
|
4365
4365
|
React.createElement(DataCard, { title: DISPLAY_TITLES.DETECTED_CONTAINERS, titleBadge: containersData.isLoading ? OtherStatus.Loading : containersData.containers.length, description: containersData.description || DISPLAY_TITLES.DETECTED_CONTAINERS_DESCRIPTION }, containersData.containers.map((container) => (React.createElement(SourceContainer, { key: `source-container-${container.containerName}`, ...container, callbackRuntimeOverride: async (payload) => await updateSource(drawerEntityId, payload) }))))))) : selectedTab === Tabs.Pods ? (React.createElement(Describe$1, { source: thisItem, fetchSourceDescribe: fetchSourceDescribe })) : (React.createElement(Libraries, { source: thisItem, fetchSourceLibraries: fetchSourceLibraries }))));
|
|
@@ -4690,12 +4690,12 @@ const Describe = ({ fetchDescribeOdigos }) => {
|
|
|
4690
4690
|
React.createElement(DataCard, { title: 'Node Collector', withExtend: true }, Object.values(describe?.nodeCollector || {}).map(mapObjectToCardChildren))));
|
|
4691
4691
|
};
|
|
4692
4692
|
|
|
4693
|
-
const DataContainer$
|
|
4693
|
+
const DataContainer$2 = styled.div `
|
|
4694
4694
|
display: flex;
|
|
4695
4695
|
flex-direction: column;
|
|
4696
4696
|
gap: 12px;
|
|
4697
4697
|
`;
|
|
4698
|
-
const DRAWER_WIDTH$
|
|
4698
|
+
const DRAWER_WIDTH$2 = '750px';
|
|
4699
4699
|
const TITLE_TEXT$1 = 'System Overview';
|
|
4700
4700
|
const SystemOverview = ({ tokens, saveToken, fetchDescribeOdigos }) => {
|
|
4701
4701
|
const [isOpen, setIsOpen] = useState(false);
|
|
@@ -4703,13 +4703,13 @@ const SystemOverview = ({ tokens, saveToken, fetchDescribeOdigos }) => {
|
|
|
4703
4703
|
return (React.createElement(React.Fragment, null,
|
|
4704
4704
|
React.createElement(IconButton, { key: TITLE_TEXT$1, onClick: toggleOpen, tooltip: TITLE_TEXT$1 },
|
|
4705
4705
|
React.createElement(TerminalIcon, { size: 18 })),
|
|
4706
|
-
React.createElement(Drawer, { width: DRAWER_WIDTH$
|
|
4706
|
+
React.createElement(Drawer, { width: DRAWER_WIDTH$2, isOpen: isOpen, onClose: toggleOpen, header: {
|
|
4707
4707
|
icons: [TerminalIcon],
|
|
4708
4708
|
title: TITLE_TEXT$1,
|
|
4709
4709
|
}, footer: {
|
|
4710
4710
|
isOpen: false,
|
|
4711
4711
|
} },
|
|
4712
|
-
React.createElement(DataContainer$
|
|
4712
|
+
React.createElement(DataContainer$2, null,
|
|
4713
4713
|
!!tokens?.length && React.createElement(Tokens, { tokens: tokens, saveToken: saveToken }),
|
|
4714
4714
|
React.createElement(Describe, { fetchDescribeOdigos: fetchDescribeOdigos })))));
|
|
4715
4715
|
};
|
|
@@ -4952,7 +4952,7 @@ const CollectorGatewaySettings = forwardRef(({ isAdvanced, formData, handleFormC
|
|
|
4952
4952
|
});
|
|
4953
4953
|
CollectorGatewaySettings.displayName = CollectorGatewaySettings.name;
|
|
4954
4954
|
|
|
4955
|
-
const DataContainer = styled.div `
|
|
4955
|
+
const DataContainer$1 = styled.div `
|
|
4956
4956
|
display: flex;
|
|
4957
4957
|
flex-direction: column;
|
|
4958
4958
|
gap: 12px;
|
|
@@ -4962,7 +4962,7 @@ const DataContainer = styled.div `
|
|
|
4962
4962
|
const Relative = styled.div `
|
|
4963
4963
|
position: relative;
|
|
4964
4964
|
`;
|
|
4965
|
-
const DRAWER_WIDTH = '750px';
|
|
4965
|
+
const DRAWER_WIDTH$1 = '750px';
|
|
4966
4966
|
const TITLE_TEXT = 'System Settings';
|
|
4967
4967
|
const SystemSettings = ({ installationMethod, fetchSettings, onSave }) => {
|
|
4968
4968
|
const [settings, setSettings] = useState(undefined);
|
|
@@ -5048,7 +5048,7 @@ const SystemSettings = ({ installationMethod, fetchSettings, onSave }) => {
|
|
|
5048
5048
|
return (React.createElement(React.Fragment, null,
|
|
5049
5049
|
React.createElement(IconButton, { key: TITLE_TEXT, onClick: toggleOpen, tooltip: TITLE_TEXT },
|
|
5050
5050
|
React.createElement(GearIcon, { size: 18 })),
|
|
5051
|
-
React.createElement(Drawer, { width: DRAWER_WIDTH, isOpen: isOpen, onClose: () => handleWithCancelWarning(toggleOpen), header: {
|
|
5051
|
+
React.createElement(Drawer, { width: DRAWER_WIDTH$1, isOpen: isOpen, onClose: () => handleWithCancelWarning(toggleOpen), header: {
|
|
5052
5052
|
icons: [GearIcon],
|
|
5053
5053
|
title: TITLE_TEXT,
|
|
5054
5054
|
tabs: tabsArray.map((tab) => ({
|
|
@@ -5079,7 +5079,7 @@ const SystemSettings = ({ installationMethod, fetchSettings, onSave }) => {
|
|
|
5079
5079
|
children: BUTTON_TEXTS.SAVE,
|
|
5080
5080
|
},
|
|
5081
5081
|
],
|
|
5082
|
-
} }, formData?.imagePrefix !== undefined && !isSaving ? (React.createElement(DataContainer, { ref: scrollContainerRef },
|
|
5082
|
+
} }, formData?.imagePrefix !== undefined && !isSaving ? (React.createElement(DataContainer$1, { ref: scrollContainerRef },
|
|
5083
5083
|
installationMethod === InstallationMethod.Helm && React.createElement(NotificationNote, { type: StatusType.Warning, title: 'Helm', message: "Changes won't persist unless you update the `values.yaml` file" }),
|
|
5084
5084
|
React.createElement(GeneralSettings, { ref: generalRef, isAdvanced: isAdvanced, formData: formData, handleFormChange: handleFormChange }),
|
|
5085
5085
|
React.createElement(UiSettings, { ref: uiRef, isAdvanced: isAdvanced, formData: formData, handleFormChange: handleFormChange }),
|
|
@@ -5228,6 +5228,100 @@ const buildSpans = (trace) => {
|
|
|
5228
5228
|
return rootSpans.sort((a, b) => a.startTime - b.startTime);
|
|
5229
5229
|
};
|
|
5230
5230
|
|
|
5231
|
+
const buildTagsCard = (span, isPrettyMode) => {
|
|
5232
|
+
const { tags } = span;
|
|
5233
|
+
const jsonTags = {};
|
|
5234
|
+
const arr = [];
|
|
5235
|
+
tags.forEach((tag) => {
|
|
5236
|
+
jsonTags[tag.key] = tag.value;
|
|
5237
|
+
});
|
|
5238
|
+
arr.push({
|
|
5239
|
+
type: DataCardFieldTypes.Code,
|
|
5240
|
+
value: {
|
|
5241
|
+
language: 'json',
|
|
5242
|
+
code: JSON.stringify(jsonTags, null, 2),
|
|
5243
|
+
pretty: isPrettyMode,
|
|
5244
|
+
},
|
|
5245
|
+
});
|
|
5246
|
+
return arr;
|
|
5247
|
+
};
|
|
5248
|
+
|
|
5249
|
+
const buildLogsCard = (span) => {
|
|
5250
|
+
const { logs } = span;
|
|
5251
|
+
const arr = [];
|
|
5252
|
+
logs.forEach((log, i) => {
|
|
5253
|
+
log.fields.forEach((field) => {
|
|
5254
|
+
arr.push({
|
|
5255
|
+
title: field.key,
|
|
5256
|
+
value: field.value,
|
|
5257
|
+
});
|
|
5258
|
+
});
|
|
5259
|
+
if (i !== logs.length - 1) {
|
|
5260
|
+
arr.push({ type: DataCardFieldTypes.Divider });
|
|
5261
|
+
}
|
|
5262
|
+
});
|
|
5263
|
+
return arr;
|
|
5264
|
+
};
|
|
5265
|
+
|
|
5266
|
+
const buildDetailsCard = (span) => {
|
|
5267
|
+
const { traceID, spanID, processID, operationName, duration, startTime, warnings } = span;
|
|
5268
|
+
const arr = [];
|
|
5269
|
+
arr.push({ type: DataCardFieldTypes.CopyText, title: 'Trace ID', value: traceID });
|
|
5270
|
+
arr.push({ type: DataCardFieldTypes.CopyText, title: 'Span ID', value: spanID });
|
|
5271
|
+
arr.push({ type: DataCardFieldTypes.Divider });
|
|
5272
|
+
arr.push({ title: 'Service', value: processID });
|
|
5273
|
+
arr.push({ title: 'Operation', value: operationName });
|
|
5274
|
+
arr.push({ title: 'Duration', value: formatDuration(duration) });
|
|
5275
|
+
arr.push({ title: 'Start time', value: new Date(startTime / 1000).toLocaleString() });
|
|
5276
|
+
if (warnings.length) {
|
|
5277
|
+
arr.push({ type: DataCardFieldTypes.Divider });
|
|
5278
|
+
arr.push({ title: 'Warnings', titleIcon: WarningTriangleIcon, value: warnings });
|
|
5279
|
+
}
|
|
5280
|
+
return arr;
|
|
5281
|
+
};
|
|
5282
|
+
|
|
5283
|
+
const buildProcessCard = (process, isPrettyMode) => {
|
|
5284
|
+
const { tags } = process;
|
|
5285
|
+
const jsonTags = {};
|
|
5286
|
+
const arr = [];
|
|
5287
|
+
tags.forEach((tag) => {
|
|
5288
|
+
jsonTags[tag.key] = tag.value;
|
|
5289
|
+
});
|
|
5290
|
+
arr.push({
|
|
5291
|
+
type: DataCardFieldTypes.Code,
|
|
5292
|
+
value: {
|
|
5293
|
+
language: 'json',
|
|
5294
|
+
code: JSON.stringify(jsonTags, null, 2),
|
|
5295
|
+
pretty: isPrettyMode,
|
|
5296
|
+
},
|
|
5297
|
+
});
|
|
5298
|
+
return arr;
|
|
5299
|
+
};
|
|
5300
|
+
|
|
5301
|
+
const DataContainer = styled.div `
|
|
5302
|
+
display: flex;
|
|
5303
|
+
flex-direction: column;
|
|
5304
|
+
gap: 12px;
|
|
5305
|
+
max-height: 100vh;
|
|
5306
|
+
overflow-y: auto;
|
|
5307
|
+
`;
|
|
5308
|
+
const DRAWER_WIDTH = '750px';
|
|
5309
|
+
const SpanDrawer = ({ span, process, onClose }) => {
|
|
5310
|
+
const [isTagsCodePretty, setIsTagsCodePretty] = useState(true);
|
|
5311
|
+
const [isProcessCodePretty, setIsProcessCodePretty] = useState(true);
|
|
5312
|
+
return (React.createElement(Drawer, { width: DRAWER_WIDTH, isOpen: true, onClose: onClose, header: {
|
|
5313
|
+
icons: [TraceViewIcon],
|
|
5314
|
+
title: span.operationName,
|
|
5315
|
+
}, footer: {
|
|
5316
|
+
isOpen: false,
|
|
5317
|
+
} },
|
|
5318
|
+
React.createElement(DataContainer, null,
|
|
5319
|
+
React.createElement(DataCard, { title: 'Details', data: buildDetailsCard(span) }),
|
|
5320
|
+
span.logs.length > 0 && React.createElement(DataCard, { title: 'Errors', titleBadge: span.logs.length, titleIcon: ErrorTriangleIcon, data: buildLogsCard(span) }),
|
|
5321
|
+
React.createElement(DataCard, { title: 'Tags', data: buildTagsCard(span, isTagsCodePretty), action: React.createElement(ToggleCodeComponent, { isPrettyMode: isTagsCodePretty, setIsPrettyMode: setIsTagsCodePretty }) }),
|
|
5322
|
+
process && (React.createElement(DataCard, { title: `Process (${process.serviceName})`, data: buildProcessCard(process, isProcessCodePretty), action: React.createElement(ToggleCodeComponent, { isPrettyMode: isProcessCodePretty, setIsPrettyMode: setIsProcessCodePretty }) })))));
|
|
5323
|
+
};
|
|
5324
|
+
|
|
5231
5325
|
const LEFT_MAX_WIDTH = 370;
|
|
5232
5326
|
const DURATION_COLORS = ['#33DCA7', '#50F6E8', '#444AD9', '#8B55FF', '#FF7CA9'].reverse();
|
|
5233
5327
|
const Container$1 = styled.div `
|
|
@@ -5235,6 +5329,10 @@ const Container$1 = styled.div `
|
|
|
5235
5329
|
align-items: center;
|
|
5236
5330
|
width: ${LEFT_MAX_WIDTH}px;
|
|
5237
5331
|
background-color: ${({ $withErrors, theme }) => ($withErrors ? theme.colors.error + Theme.opacity.hex['042'] : theme.colors.dark_grey)};
|
|
5332
|
+
&:hover {
|
|
5333
|
+
${({ $withErrors, $preventHover, theme }) => !$preventHover && `background-color: ${$withErrors ? theme.colors.error : theme.colors.secondary + Theme.opacity.hex['010']};`}
|
|
5334
|
+
cursor: ${({ $preventHover }) => ($preventHover ? 'default' : 'pointer')};
|
|
5335
|
+
}
|
|
5238
5336
|
`;
|
|
5239
5337
|
const Left = styled(FlexRow) `
|
|
5240
5338
|
align-items: center;
|
|
@@ -5266,8 +5364,9 @@ const DurationText = styled(Text) `
|
|
|
5266
5364
|
font-family: ${({ theme }) => theme.font_family.secondary};
|
|
5267
5365
|
white-space: nowrap;
|
|
5268
5366
|
`;
|
|
5269
|
-
const Span = ({ span, depth, indexInMatrix, maxDuration, minStartTime, maxEndTime, withErrors, errorTooltip, isOpen, withToggle, onToggleOpen }) => {
|
|
5367
|
+
const Span = ({ span, depth, indexInMatrix, maxDuration, minStartTime, maxEndTime, withErrors, errorTooltip, isOpen, withToggle, onToggleOpen, onSelect }) => {
|
|
5270
5368
|
const theme = Theme.useTheme();
|
|
5369
|
+
const [isButtonHovered, setIsButtonHovered] = useState(false);
|
|
5271
5370
|
const textMaxWidth = LEFT_MAX_WIDTH -
|
|
5272
5371
|
// 12px times depth is the left padding, 12px is the right padding
|
|
5273
5372
|
12 * depth -
|
|
@@ -5276,11 +5375,15 @@ const Span = ({ span, depth, indexInMatrix, maxDuration, minStartTime, maxEndTim
|
|
|
5276
5375
|
// 16px is the width of the error icon, 4px is the gap between the text and the error icon
|
|
5277
5376
|
(withErrors ? 16 - 4 : 0);
|
|
5278
5377
|
const withErrorIcon = withErrors && (depth === 1 || span.logs.length > 0);
|
|
5279
|
-
return (React.createElement(Container$1, { className: 'span-container', "$withErrors": withErrors },
|
|
5378
|
+
return (React.createElement(Container$1, { className: 'span-container', "$withErrors": withErrors, "$preventHover": isButtonHovered, onClick: onSelect },
|
|
5280
5379
|
React.createElement(Left, { "$depth": depth, className: 'span-left' },
|
|
5281
5380
|
React.createElement(FlexRow, { "$gap": 4, "$alignItems": 'center' },
|
|
5282
|
-
withToggle ? (React.createElement(
|
|
5283
|
-
React.createElement(
|
|
5381
|
+
withToggle ? (React.createElement("div", { onMouseEnter: () => setIsButtonHovered(true), onMouseLeave: () => setIsButtonHovered(false) },
|
|
5382
|
+
React.createElement(IconButton, { onClick: (e) => {
|
|
5383
|
+
e.stopPropagation();
|
|
5384
|
+
onToggleOpen?.();
|
|
5385
|
+
}, size: 24 },
|
|
5386
|
+
React.createElement(ExtendArrow, { extend: isOpen ?? false })))) : (React.createElement("div", { style: { width: '24px' } })),
|
|
5284
5387
|
React.createElement(ScrollX, { maxWidth: textMaxWidth / 2, text: span.processID, textSize: 14 }),
|
|
5285
5388
|
React.createElement(Text, { size: 12, color: theme.text.darker_grey }, "\u2022"),
|
|
5286
5389
|
React.createElement(ScrollX, { maxWidth: textMaxWidth / 2, text: span.operationName, textSize: 12, textColor: theme.text.darker_grey })),
|
|
@@ -5293,7 +5396,7 @@ const Span = ({ span, depth, indexInMatrix, maxDuration, minStartTime, maxEndTim
|
|
|
5293
5396
|
React.createElement(DurationBar, { "$indexInMatrix": indexInMatrix, "$duration": span.duration, "$maxDuration": maxDuration, "$startTime": span.startTime, "$minStartTime": minStartTime, "$maxEndTime": maxEndTime },
|
|
5294
5397
|
React.createElement(DurationText, null, formatDuration(span.duration))))));
|
|
5295
5398
|
};
|
|
5296
|
-
const RecursiveSpans = ({ spans, logs, depth, indexInMatrix, maxDuration, minStartTime, maxEndTime, openSpanIdsState }) => {
|
|
5399
|
+
const RecursiveSpans = ({ spans, logs, depth, indexInMatrix, maxDuration, minStartTime, maxEndTime, openSpanIdsState, selectedSpanState }) => {
|
|
5297
5400
|
const theme = Theme.useTheme();
|
|
5298
5401
|
return spans.map((span, i) => {
|
|
5299
5402
|
const id = span.spanID;
|
|
@@ -5313,8 +5416,12 @@ const RecursiveSpans = ({ spans, logs, depth, indexInMatrix, maxDuration, minSta
|
|
|
5313
5416
|
if (alreadyOpen)
|
|
5314
5417
|
return prev.filter((st) => st != id);
|
|
5315
5418
|
return [...prev, id, ...getRecursiveValues(span, 'spans', 'spanID')];
|
|
5419
|
+
}), onSelect: () => selectedSpanState.set((prev) => {
|
|
5420
|
+
if (prev?.spanID === id)
|
|
5421
|
+
return null;
|
|
5422
|
+
return span;
|
|
5316
5423
|
}) }),
|
|
5317
|
-
isOpen && hasChildSpans ? (React.createElement(RecursiveSpans, { spans: span.spans || [], logs: allLogs, depth: depth + 1, indexInMatrix: indexInMatrix + i, maxDuration: maxDuration, minStartTime: minStartTime, maxEndTime: maxEndTime, openSpanIdsState: openSpanIdsState })) : null));
|
|
5424
|
+
isOpen && hasChildSpans ? (React.createElement(RecursiveSpans, { spans: span.spans || [], logs: allLogs, depth: depth + 1, indexInMatrix: indexInMatrix + i, maxDuration: maxDuration, minStartTime: minStartTime, maxEndTime: maxEndTime, openSpanIdsState: openSpanIdsState, selectedSpanState: selectedSpanState })) : null));
|
|
5318
5425
|
});
|
|
5319
5426
|
};
|
|
5320
5427
|
|
|
@@ -5354,8 +5461,9 @@ const DurationTitle = styled(Text) `
|
|
|
5354
5461
|
padding-left: 12px;
|
|
5355
5462
|
white-space: nowrap;
|
|
5356
5463
|
`;
|
|
5357
|
-
const TraceView = ({ heightToRemove, traces }) => {
|
|
5464
|
+
const TraceView = ({ heightToRemove, traces, isLoading }) => {
|
|
5358
5465
|
const [openSpanIds, setOpenSpanIds] = useState([]);
|
|
5466
|
+
const [selectedSpan, setSelectedSpan] = useState(null);
|
|
5359
5467
|
const finalTraces = useMemo(() => {
|
|
5360
5468
|
const sorted = deepClone(traces).sort((a, b) => b.spans[0].startTime - a.spans[0].startTime);
|
|
5361
5469
|
const mapped = sorted.map((trace) => ({ ...trace, spans: buildSpans(trace) }));
|
|
@@ -5366,23 +5474,34 @@ const TraceView = ({ heightToRemove, traces }) => {
|
|
|
5366
5474
|
return Math.max(max, trace.spans.reduce((max, span) => max + span.duration, 0));
|
|
5367
5475
|
}, 0);
|
|
5368
5476
|
}, [finalTraces]);
|
|
5369
|
-
|
|
5370
|
-
|
|
5371
|
-
|
|
5372
|
-
|
|
5373
|
-
|
|
5374
|
-
|
|
5375
|
-
|
|
5376
|
-
|
|
5377
|
-
|
|
5378
|
-
|
|
5379
|
-
|
|
5380
|
-
|
|
5381
|
-
|
|
5382
|
-
|
|
5383
|
-
}
|
|
5384
|
-
|
|
5385
|
-
|
|
5477
|
+
const selectedSpanProcess = useMemo(() => {
|
|
5478
|
+
const foundTrace = finalTraces.find((t) => t.spans.some((s) => s.spanID === selectedSpan?.spanID));
|
|
5479
|
+
const foundProcess = foundTrace?.processes.find((p) => p.serviceName === selectedSpan?.processID);
|
|
5480
|
+
return foundProcess;
|
|
5481
|
+
}, [finalTraces, selectedSpan]);
|
|
5482
|
+
return (React.createElement(React.Fragment, null,
|
|
5483
|
+
React.createElement(Container, { "$heightToRemove": heightToRemove }, isLoading ? (React.createElement(CenterThis, { "$height": '50vh' },
|
|
5484
|
+
React.createElement(FadeLoader, { scale: 1.5 }))) : !finalTraces.length ? (React.createElement(CenterThis, { "$height": '50vh' },
|
|
5485
|
+
React.createElement(NoDataFound, { title: DISPLAY_TITLES.NO_TRACES_FOUND, subTitle: DISPLAY_TITLES.ARE_SERVICES_INSTRUMENTED_AND_PRODUCING_TRAFFIC }))) : (React.createElement(ContainSpans, { "$heightToRemove": heightToRemove },
|
|
5486
|
+
React.createElement(ContainTitle, null,
|
|
5487
|
+
React.createElement(Text, null, "Service & operation")),
|
|
5488
|
+
new Array(NUM_OF_DURATION_DIVIDERS).fill(null).map((_, i) => (React.createElement(DurationDivider, { key: `${i}-divider`, "$heightToRemove": heightToRemove, index: i },
|
|
5489
|
+
React.createElement(DurationTitle, null, formatDuration((maxDuration / NUM_OF_DURATION_DIVIDERS) * i))))),
|
|
5490
|
+
finalTraces.map((trace, i) => {
|
|
5491
|
+
const { spans } = trace;
|
|
5492
|
+
// is equal CSS left: 0%;
|
|
5493
|
+
const minStartTime = spans.reduce((min, span) => Math.min(min, span.startTime), Number.MAX_SAFE_INTEGER);
|
|
5494
|
+
// is equal CSS left: 100%;
|
|
5495
|
+
const maxEndTime = spans.reduce((max, span) => Math.max(max, span.startTime + span.duration), 0);
|
|
5496
|
+
return (React.createElement(RecursiveSpans, { key: `recursive-spans-${trace.traceID}`, spans: spans, logs: [], depth: 1, indexInMatrix: i, maxDuration: maxDuration, minStartTime: minStartTime, maxEndTime: maxEndTime, openSpanIdsState: {
|
|
5497
|
+
value: openSpanIds,
|
|
5498
|
+
set: setOpenSpanIds,
|
|
5499
|
+
}, selectedSpanState: {
|
|
5500
|
+
value: selectedSpan,
|
|
5501
|
+
set: setSelectedSpan,
|
|
5502
|
+
} }));
|
|
5503
|
+
})))),
|
|
5504
|
+
selectedSpan && React.createElement(SpanDrawer, { span: selectedSpan, process: selectedSpanProcess, onClose: () => setSelectedSpan(null) })));
|
|
5386
5505
|
};
|
|
5387
5506
|
|
|
5388
5507
|
export { ActionDrawer, ActionForm, ActionModal, ActionTable, AwaitPipeline, ConditionDropdown, DataFlow, DataFlowActionsMenu, DataStreamDrawer, DataStreamForm, DataStreamSelectionForm, DestinationDrawer, DestinationForm, DestinationModal, DestinationSelectionForm, DestinationTable, ErrorDropdown, InstrumentationRuleDrawer, InstrumentationRuleForm, InstrumentationRuleModal, InstrumentationRuleTable, KindDropdown, LanguageDropdown, MonitorDropdown, MultiSourceControl, NamespaceDropdown, NavIconIds, NotificationManager, OverviewDrawer, ServiceMap, SetupSummary, SideNav, SlackInvite, SourceDrawer, SourceForm, SourceModal, SourceSelectionForm, SourceTable, SystemOverview, SystemSettings, TableCellConditions, ToastList, ToggleDarkMode, TraceView };
|
package/lib/icons.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { T as Theme } from './index-40dfa720.js';
|
|
2
2
|
export { i as AddClusterInfoIcon, o as CPlusPlusLogo, p as CSharpLogo, C as CodeAttributesIcon, m as CustomInstrumentationIcon, j as DeleteAttributeIcon, q as DotnetLogo, E as ElixirLogo, G as GoLogo, H as HeadersCollectionIcon, l as ImageErrorIcon, J as JavaLogo, K as K8sLogo, h as KafkaLogo, r as MysqlLogo, N as NginxLogo, s as NodejsLogo, n as PayloadCollectionIcon, t as PhpLogo, P as PiiMaskingIcon, u as PostgresLogo, v as PythonLogo, w as RedisLogo, R as RenameAttributeIcon, x as RubyLogo, y as RustLogo, k as SamplerIcon, z as SwiftLogo } from './index-40dfa720.js';
|
|
3
3
|
export { C as CheckCircledIcon, E as ErrorTriangleIcon, I as InfoIcon, L as LogsIcon, M as MetricsIcon, O as OdigosLogo, T as TracesIcon, W as WarningTriangleIcon } from './index-eff01b3d.js';
|
|
4
|
-
export { A as ArrowIcon, C as CrossCircledIcon, D as DataStreamsIcon, F as FilterIcon, G as GearIcon, K as KeyIcon, N as NotificationIcon, O as OdigosLogoText, a as OverviewIcon, R as RefreshLeftArrowIcon, S as SlackLogo, T as TerminalIcon, U as UserIcon } from './index-
|
|
4
|
+
export { A as ArrowIcon, C as CrossCircledIcon, D as DataStreamsIcon, F as FilterIcon, G as GearIcon, K as KeyIcon, N as NotificationIcon, O as OdigosLogoText, a as OverviewIcon, R as RefreshLeftArrowIcon, S as SlackLogo, T as TerminalIcon, b as TraceViewIcon, U as UserIcon } from './index-57d03703.js';
|
|
5
5
|
import React from 'react';
|
|
6
6
|
export { h as CheckIcon, C as CodeIcon, a as CopyIcon, i as CrossIcon, E as EditIcon, b as EditedIcon, c as ExtendArrowIcon, f as EyeClosedIcon, g as EyeOpenIcon, L as ListIcon, M as MinusIcon, N as NoDataIcon, d as NotebookIcon, P as PlusIcon, S as SearchIcon, e as SortArrowsIcon, T as TrashIcon, X as XIcon } from './index-1bc2b507.js';
|
|
7
7
|
export { V as VmLogo } from './index-333086d8.js';
|
|
@@ -170,13 +170,6 @@ const ServiceMapIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth =
|
|
|
170
170
|
React.createElement("path", { stroke: fill, strokeWidth: strokeWidth, strokeLinecap: 'round', strokeLinejoin: 'round', d: 'M4.67333 8.61735H4.66667M7.34667 8.61735H7.34M9.66667 7.61735L10.6668 8.61744M10.6668 8.61744L11.6667 9.61735M10.6668 8.61744L11.6668 7.61735M10.6668 8.61744L9.66684 9.61735M6.95406 3.76106L9.05573 4.81189C9.39594 4.982 9.56605 5.06705 9.74417 5.10188C9.91313 5.13491 10.0869 5.13491 10.2558 5.10188C10.434 5.06705 10.6041 4.982 10.9443 4.81189C11.9382 4.31494 12.4351 4.06646 12.8395 4.11932C13.2185 4.16887 13.5581 4.37871 13.7719 4.69556C14 5.0336 14 5.58921 14 6.70044V10.6322C14 11.1108 14 11.3501 13.9271 11.5614C13.8627 11.7482 13.7575 11.9184 13.6192 12.0596C13.4628 12.2193 13.2488 12.3263 12.8207 12.5403L10.9541 13.4737C10.6042 13.6486 10.4293 13.736 10.2459 13.7705C10.0834 13.8009 9.91663 13.8009 9.75414 13.7705C9.57067 13.736 9.39576 13.6486 9.04595 13.4737L6.94427 12.4228C6.60406 12.2527 6.43395 12.1677 6.25583 12.1328C6.08687 12.0998 5.91313 12.0998 5.74417 12.1328C5.56605 12.1677 5.39594 12.2527 5.05573 12.4228C4.06182 12.9198 3.56486 13.1683 3.16049 13.1154C2.78147 13.0658 2.44195 12.856 2.22812 12.5392C2 12.2011 2 11.6455 2 10.5343V6.6025C2 6.12389 2 5.88458 2.07287 5.67331C2.13732 5.48648 2.24249 5.31631 2.38078 5.17511C2.53715 5.01545 2.7512 4.90843 3.17928 4.69439L5.04594 3.76106C5.39576 3.58615 5.57067 3.49869 5.75414 3.46427C5.91663 3.43378 6.08337 3.43378 6.24586 3.46427C6.42933 3.49869 6.60424 3.58615 6.95406 3.76106Z' })));
|
|
171
171
|
};
|
|
172
172
|
|
|
173
|
-
const TraceViewIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth = 1 }) => {
|
|
174
|
-
const theme = Theme.useTheme();
|
|
175
|
-
const fill = f || theme.text.secondary;
|
|
176
|
-
return (React.createElement("svg", { width: size * (16 / 17), height: size, viewBox: '0 0 16 17', xmlns: 'http://www.w3.org/2000/svg', fill: 'none', style: { transform: `rotate(${rotate}deg)` }, onClick: onClick },
|
|
177
|
-
React.createElement("path", { stroke: fill, strokeWidth: strokeWidth, strokeLinecap: 'round', strokeLinejoin: 'round', d: 'M2.66666 8.61719H6.66666M2.66666 12.6172H6.66666M2.66666 4.61719H13.3333M14 12.9505L13.0809 12.0315M13.0809 12.0315C13.4438 11.6686 13.6667 11.1686 13.6667 10.6172C13.6667 9.51147 12.7724 8.61719 11.6667 8.61719C10.5609 8.61719 9.66666 9.51147 9.66666 10.6172C9.66666 11.7229 10.5609 12.6172 11.6667 12.6172C12.2181 12.6172 12.7181 12.3943 13.0809 12.0315Z' })));
|
|
178
|
-
};
|
|
179
|
-
|
|
180
173
|
const ConnectionsIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth = 1 }) => {
|
|
181
174
|
const theme = Theme.useTheme();
|
|
182
175
|
const fill = f || theme.text.secondary;
|
|
@@ -191,4 +184,4 @@ const ErrorRoundIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth =
|
|
|
191
184
|
React.createElement("path", { stroke: fill, strokeWidth: strokeWidth, strokeLinecap: 'round', strokeLinejoin: 'round', d: 'M7 8.33673V6.00339M7 10.3055V10.3061M12.25 7.97266C12.25 10.8722 9.89949 13.2227 7 13.2227C4.1005 13.2227 1.75 10.8721 1.75 7.97265C1.75 5.07316 4.10051 2.72266 7 2.72266C9.8995 2.72266 12.25 5.07316 12.25 7.97266Z' })));
|
|
192
185
|
};
|
|
193
186
|
|
|
194
|
-
export { AvatarIcon, CodeBracketsIcon, CommandIcon, ConnectionsIcon, ErrorRoundIcon, FolderIcon, GoogleCloudStorageLogo, LightOffIcon, LightOnIcon, MinusCircledIcon, MoonIcon, OdigosDestinationLogo, PlusCircledIcon, RefreshArrowsIcon, RefreshRightArrowIcon, RotateArrowsIcon, SentryLogo, ServiceMapIcon, SunIcon,
|
|
187
|
+
export { AvatarIcon, CodeBracketsIcon, CommandIcon, ConnectionsIcon, ErrorRoundIcon, FolderIcon, GoogleCloudStorageLogo, LightOffIcon, LightOnIcon, MinusCircledIcon, MoonIcon, OdigosDestinationLogo, PlusCircledIcon, RefreshArrowsIcon, RefreshRightArrowIcon, RotateArrowsIcon, SentryLogo, ServiceMapIcon, SunIcon, UserGroupIcon, UserSettingsIcon };
|
|
@@ -91,6 +91,13 @@ const OverviewIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth = 1
|
|
|
91
91
|
React.createElement("path", { stroke: fill, strokeWidth: strokeWidth, strokeLinecap: 'round', strokeLinejoin: 'round', d: 'M9.33348 11.4667C9.33348 10.7199 9.33348 10.3466 9.47881 10.0613C9.60664 9.81046 9.81061 9.60649 10.0615 9.47866C10.3467 9.33333 10.7201 9.33333 11.4668 9.33333H11.8668C12.6136 9.33333 12.9869 9.33333 13.2721 9.47866C13.523 9.60649 13.727 9.81046 13.8548 10.0613C14.0002 10.3466 14.0002 10.7199 14.0002 11.4667V11.8667C14.0002 12.6134 14.0002 12.9868 13.8548 13.272C13.727 13.5229 13.523 13.7268 13.2721 13.8547C12.9869 14 12.6136 14 11.8668 14H11.4668C10.7201 14 10.3467 14 10.0615 13.8547C9.81061 13.7268 9.60664 13.5229 9.47881 13.272C9.33348 12.9868 9.33348 12.6134 9.33348 11.8667V11.4667Z' })));
|
|
92
92
|
};
|
|
93
93
|
|
|
94
|
+
const TraceViewIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth = 1 }) => {
|
|
95
|
+
const theme = Theme.useTheme();
|
|
96
|
+
const fill = f || theme.text.secondary;
|
|
97
|
+
return (React.createElement("svg", { width: size * (16 / 17), height: size, viewBox: '0 0 16 17', xmlns: 'http://www.w3.org/2000/svg', fill: 'none', style: { transform: `rotate(${rotate}deg)` }, onClick: onClick },
|
|
98
|
+
React.createElement("path", { stroke: fill, strokeWidth: strokeWidth, strokeLinecap: 'round', strokeLinejoin: 'round', d: 'M2.66666 8.61719H6.66666M2.66666 12.6172H6.66666M2.66666 4.61719H13.3333M14 12.9505L13.0809 12.0315M13.0809 12.0315C13.4438 11.6686 13.6667 11.1686 13.6667 10.6172C13.6667 9.51147 12.7724 8.61719 11.6667 8.61719C10.5609 8.61719 9.66666 9.51147 9.66666 10.6172C9.66666 11.7229 10.5609 12.6172 11.6667 12.6172C12.2181 12.6172 12.7181 12.3943 13.0809 12.0315Z' })));
|
|
99
|
+
};
|
|
100
|
+
|
|
94
101
|
const DataStreamsIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth = 1 }) => {
|
|
95
102
|
const theme = Theme.useTheme();
|
|
96
103
|
const fill = f || theme.text.secondary;
|
|
@@ -114,4 +121,4 @@ const CrossCircledIcon = ({ size = 16, fill: f, rotate = 0, onClick, strokeWidth
|
|
|
114
121
|
React.createElement("path", { stroke: fill, strokeWidth: strokeWidth, strokeLinecap: 'round', strokeLinejoin: 'round', d: 'M6.75049 10.0005L8.75049 8.00049M8.75049 8.00049L10.7505 6.00049M8.75049 8.00049L6.75049 6.00049M8.75049 8.00049L10.7505 10.0005M8.75039 14.1004C5.38145 14.1004 2.65039 11.3693 2.65039 8.00039C2.65039 4.63145 5.38145 1.90039 8.75039 1.90039C12.1193 1.90039 14.8504 4.63145 14.8504 8.00039C14.8504 11.3693 12.1193 14.1004 8.75039 14.1004Z' })));
|
|
115
122
|
};
|
|
116
123
|
|
|
117
|
-
export { ArrowIcon as A, CrossCircledIcon as C, DataStreamsIcon as D, FilterIcon as F, GearIcon as G, KeyIcon as K, NotificationIcon as N, OdigosLogoText as O, RefreshLeftArrowIcon as R, SlackLogo as S, TerminalIcon as T, UserIcon as U, OverviewIcon as a };
|
|
124
|
+
export { ArrowIcon as A, CrossCircledIcon as C, DataStreamsIcon as D, FilterIcon as F, GearIcon as G, KeyIcon as K, NotificationIcon as N, OdigosLogoText as O, RefreshLeftArrowIcon as R, SlackLogo as S, TerminalIcon as T, UserIcon as U, OverviewIcon as a, TraceViewIcon as b };
|
|
@@ -16,7 +16,7 @@ const TextWrapper$2 = styled.div `
|
|
|
16
16
|
text-align: ${({ $align }) => $align || 'left'};
|
|
17
17
|
opacity: ${({ $opacity }) => ($opacity !== undefined ? $opacity : 1)};
|
|
18
18
|
text-decoration: ${({ $decoration }) => $decoration || 'none'};
|
|
19
|
-
text-transform: ${({ $family }) => ($family === 'secondary' ? 'uppercase' : 'none')};
|
|
19
|
+
text-transform: ${({ $transform, $family }) => $transform || ($family === 'secondary' ? 'uppercase' : 'none')};
|
|
20
20
|
font-family: ${({ theme, $family = 'primary' }) => theme.font_family[$family]};
|
|
21
21
|
`;
|
|
22
22
|
const getLinksFromText = (text) => {
|
|
@@ -69,7 +69,7 @@ const renderText = (text, theme) => {
|
|
|
69
69
|
});
|
|
70
70
|
return mappedText;
|
|
71
71
|
};
|
|
72
|
-
const Text = ({ children, color, size, weight, align, family, opacity, decoration, ...props }) => {
|
|
72
|
+
const Text = ({ children, color, size, weight, align, family, opacity, decoration, transform, ...props }) => {
|
|
73
73
|
const theme = Theme.useTheme();
|
|
74
74
|
const textArray = useMemo(() => {
|
|
75
75
|
const str = !children
|
|
@@ -85,7 +85,7 @@ const Text = ({ children, color, size, weight, align, family, opacity, decoratio
|
|
|
85
85
|
: '';
|
|
86
86
|
return str.split('\n');
|
|
87
87
|
}, [children]);
|
|
88
|
-
return (React.createElement(TextWrapper$2, { "$color": color, "$size": size, "$weight": weight, "$align": align, "$family": family, "$opacity": opacity, "$decoration": decoration, ...props }, textArray.length
|
|
88
|
+
return (React.createElement(TextWrapper$2, { "$color": color, "$size": size, "$weight": weight, "$align": align, "$family": family, "$opacity": opacity, "$decoration": decoration, "$transform": transform, ...props }, textArray.length
|
|
89
89
|
? textArray.map((str, i) => (React.createElement(Fragment, { key: `text-${i}-${str}` },
|
|
90
90
|
renderText(str, theme),
|
|
91
91
|
i !== textArray.length - 1 ? React.createElement("br", null) : null)))
|
|
@@ -3783,6 +3783,10 @@ const Title$c = styled(Text) `
|
|
|
3783
3783
|
const CodeLineToken = styled.span `
|
|
3784
3784
|
white-space: ${({ $noWrap }) => ($noWrap ? 'nowrap' : 'pre-wrap')};
|
|
3785
3785
|
overflow-wrap: break-word;
|
|
3786
|
+
word-break: break-word;
|
|
3787
|
+
word-wrap: break-word;
|
|
3788
|
+
/* Fallback for older browsers */
|
|
3789
|
+
-ms-word-break: break-all;
|
|
3786
3790
|
font-size: 12px;
|
|
3787
3791
|
`;
|
|
3788
3792
|
const Code = ({ language, code, flatten, pretty }) => {
|
|
@@ -3857,7 +3861,7 @@ const PrettyJsonCode = ({ darkMode, str }) => {
|
|
|
3857
3861
|
React.createElement(TableData, null))));
|
|
3858
3862
|
return (React.createElement(Fragment, null, rows.map((R, i) => (React.createElement(R, { key: `empty-row-${idx}-${i}`, style: i === 0 ? { borderBottom: `1px solid ${theme.colors.border}` } : {} })))));
|
|
3859
3863
|
};
|
|
3860
|
-
return (React.createElement(Highlight2, { theme: darkMode ? themes_exports.palenight : themes_exports.vsLight, language: 'json', code: str }, ({ getLineProps, tokens }) => (React.createElement(Table$1, null,
|
|
3864
|
+
return (React.createElement(Highlight2, { theme: darkMode ? themes_exports.palenight : themes_exports.vsLight, language: 'json', code: str }, ({ getLineProps, getTokenProps, tokens }) => (React.createElement(Table$1, null,
|
|
3861
3865
|
React.createElement(TableBody$1, null, tokens.map((line, i) => {
|
|
3862
3866
|
const formattedLine = formatLineForPrettyMode(line);
|
|
3863
3867
|
const lineProps = getLineProps({ line: formattedLine });
|
|
@@ -3876,7 +3880,7 @@ const PrettyJsonCode = ({ darkMode, str }) => {
|
|
|
3876
3880
|
return (React.createElement(TableData, { key: `line-${i}-token-${ii}` },
|
|
3877
3881
|
React.createElement(FlexRow, null,
|
|
3878
3882
|
React.createElement(FlexRow, null, components),
|
|
3879
|
-
React.createElement(CodeLineToken, { "$noWrap": isRowTitle }, text))));
|
|
3883
|
+
React.createElement(CodeLineToken, { "$noWrap": isRowTitle, ...getTokenProps({ token }) }, text))));
|
|
3880
3884
|
})));
|
|
3881
3885
|
}
|
|
3882
3886
|
else {
|
|
@@ -17273,12 +17277,15 @@ const PreWrap = styled(Text) `
|
|
|
17273
17277
|
white-space: pre-wrap;
|
|
17274
17278
|
`;
|
|
17275
17279
|
const DataCardFields = ({ data }) => {
|
|
17276
|
-
return (React.createElement(ListContainer$3, null, data?.map(({ type, title, tooltip, value }, idx) => (React.createElement(ListItem, { key: `data-field-${title || (!!value ? JSON.stringify(value) : idx)}`, "$width": !!type && [DataCardFieldTypes.Code, DataCardFieldTypes.Table].includes(type)
|
|
17280
|
+
return (React.createElement(ListContainer$3, null, data?.map(({ type, title, titleIcon: TitleIcon, tooltip, value }, idx) => (React.createElement(ListItem, { key: `data-field-${title || (!!value ? JSON.stringify(value) : idx)}`, "$width": !!type && [DataCardFieldTypes.Code, DataCardFieldTypes.Table].includes(type)
|
|
17277
17281
|
? 'inherit'
|
|
17278
17282
|
: !!type && [DataCardFieldTypes.Loader, DataCardFieldTypes.Divider, DataCardFieldTypes.CopyText].includes(type)
|
|
17279
17283
|
? '100%'
|
|
17280
17284
|
: 'unset' },
|
|
17281
|
-
React.createElement(Tooltip, { text: tooltip, withIcon: true },
|
|
17285
|
+
React.createElement(Tooltip, { text: tooltip, withIcon: true },
|
|
17286
|
+
React.createElement(FlexRow, { "$alignItems": 'center', "$gap": 4 },
|
|
17287
|
+
TitleIcon && React.createElement(TitleIcon, { size: 14 }),
|
|
17288
|
+
!!title && React.createElement(ItemTitle, { transform: 'capitalize' }, title))),
|
|
17282
17289
|
React.createElement(RenderValue, { type: type, value: value }))))));
|
|
17283
17290
|
};
|
|
17284
17291
|
// We need to maintain this with new components every time we add a new type to "DataCardFieldTypes"
|
|
@@ -17357,15 +17364,17 @@ const ActionWrapper = styled(FlexRow) `
|
|
|
17357
17364
|
margin-left: auto;
|
|
17358
17365
|
gap: 8px;
|
|
17359
17366
|
`;
|
|
17360
|
-
const DataCard = ({ title = 'Details', titleBadge, description, action: Action, withExtend, initialExtended = false, data, children }) => {
|
|
17367
|
+
const DataCard = ({ title = 'Details', titleBadge, titleIcon: TitleIcon, description, action: Action, withExtend, initialExtended = false, data, children }) => {
|
|
17361
17368
|
const [extend, setExtend] = useState(initialExtended);
|
|
17362
17369
|
const [hovered, setHovered] = useState(false);
|
|
17363
17370
|
return (React.createElement(CardContainer, { "$hovered": hovered },
|
|
17364
|
-
!!title || !!description || !!Action ? (React.createElement(Header$1, { "$clickable": withExtend || false, onClick: () => withExtend && setExtend((prev) => !prev), onMouseEnter: () => withExtend && setHovered(true), onMouseLeave: () => withExtend && setHovered(false) },
|
|
17371
|
+
!!title || !!TitleIcon || !!description || !!Action ? (React.createElement(Header$1, { "$clickable": withExtend || false, onClick: () => withExtend && setExtend((prev) => !prev), onMouseEnter: () => withExtend && setHovered(true), onMouseLeave: () => withExtend && setHovered(false) },
|
|
17365
17372
|
React.createElement(FlexRow, null,
|
|
17366
|
-
|
|
17367
|
-
|
|
17368
|
-
|
|
17373
|
+
React.createElement(FlexRow, { "$alignItems": 'center', "$gap": 8 },
|
|
17374
|
+
TitleIcon && (React.createElement(FlexRow, { "$alignItems": 'center' },
|
|
17375
|
+
React.createElement(TitleIcon, { size: 20 }))),
|
|
17376
|
+
!!title && React.createElement(Title$7, { transform: 'capitalize' }, title),
|
|
17377
|
+
titleBadge === OtherStatus.Loading ? React.createElement(FadeLoader, null) : titleBadge !== undefined && React.createElement(Badge, { label: titleBadge })),
|
|
17369
17378
|
(!!Action || withExtend) && (React.createElement(ActionWrapper, null,
|
|
17370
17379
|
typeof Action === 'function' ? React.createElement(Action, null) : Action,
|
|
17371
17380
|
withExtend && React.createElement(ExtendArrow, { extend: extend })))),
|
|
@@ -17488,7 +17497,7 @@ const SectionItemsWrapper = styled.div `
|
|
|
17488
17497
|
const Title$6 = styled(Text) `
|
|
17489
17498
|
font-size: 18px;
|
|
17490
17499
|
line-height: 26px;
|
|
17491
|
-
max-width:
|
|
17500
|
+
max-width: ${({ $maxWidth }) => $maxWidth};
|
|
17492
17501
|
overflow: hidden;
|
|
17493
17502
|
white-space: nowrap;
|
|
17494
17503
|
text-overflow: ellipsis;
|
|
@@ -17497,7 +17506,7 @@ const ActionButton$3 = styled(Button$4) `
|
|
|
17497
17506
|
gap: 8px;
|
|
17498
17507
|
`;
|
|
17499
17508
|
const CloseButton = styled(Button$4) ``;
|
|
17500
|
-
const DrawerHeader = ({ onClose, icons, iconSrcs, title, titleTooltip, replaceTitleWith: ReplaceTitleWith, actions, actionButtons = [], tabs }) => {
|
|
17509
|
+
const DrawerHeader = ({ onClose, width, icons, iconSrcs, title, titleTooltip, replaceTitleWith: ReplaceTitleWith, actions, actionButtons = [], tabs }) => {
|
|
17501
17510
|
const renderReplaceTitleWith = () => {
|
|
17502
17511
|
if (typeof ReplaceTitleWith === 'function') {
|
|
17503
17512
|
return React.createElement(ReplaceTitleWith, null);
|
|
@@ -17511,7 +17520,7 @@ const DrawerHeader = ({ onClose, icons, iconSrcs, title, titleTooltip, replaceTi
|
|
|
17511
17520
|
React.createElement(TopRow, null,
|
|
17512
17521
|
React.createElement(SectionItemsWrapper, null,
|
|
17513
17522
|
icons?.length || iconSrcs?.length ? React.createElement(IconGroup, { icons: icons, iconSrcs: iconSrcs, id: `drawer-header-${title}` }) : null,
|
|
17514
|
-
renderReplaceTitleWith() || (React.createElement(Tooltip, { text: titleTooltip, withIcon:
|
|
17523
|
+
renderReplaceTitleWith() || (React.createElement(Tooltip, { text: titleTooltip || title, withIcon: !!titleTooltip }, title && React.createElement(Title$6, { "$maxWidth": `calc(${width} ${actions || actionButtons.length ? '/ 5' : '- 192px'})` }, title)))),
|
|
17515
17524
|
React.createElement(SectionItemsWrapper, { "$gap": 2 },
|
|
17516
17525
|
actions,
|
|
17517
17526
|
actionButtons.map((btn, i) => (React.createElement(ActionButton$3, { key: `header-action-button-${i}`, ...btn }))),
|
|
@@ -17591,7 +17600,7 @@ const Drawer = ({ isOpen, onClose, closeOnEscape = true, position = 'right', wid
|
|
|
17591
17600
|
React.createElement(Overlay, { hidden: !isOpen, onClick: onClose }),
|
|
17592
17601
|
React.createElement(Transition, { "data-id": 'drawer', enter: isOpen, "$position": position, "$width": width },
|
|
17593
17602
|
React.createElement(DrawerBody, null,
|
|
17594
|
-
React.createElement(DrawerHeader, { onClose: onClose, ...headerProps }),
|
|
17603
|
+
React.createElement(DrawerHeader, { onClose: onClose, width: width, ...headerProps }),
|
|
17595
17604
|
React.createElement(Content$4, null, children),
|
|
17596
17605
|
React.createElement(DrawerFooter, { ...footerProps })))), document.body);
|
|
17597
17606
|
};
|
package/lib/snippets.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { B as Button, _ as Text, L as NotificationNote } from './index-
|
|
2
|
-
export { al as AddButton, aq as AddNode, ar as BaseNode, an as CopyText, as as EdgedNode, aj as Flow, at as FrameNode, au as HeaderNode, az as LabeledEdge, av as MapItemNode, aw as NoDataNode, ao as PodContainer, ax as ScrollNode, ay as SkeletonNode, ap as SourceContainer, ag as nodeConfig } from './index-
|
|
1
|
+
import { B as Button, _ as Text, L as NotificationNote } from './index-a8da9518.js';
|
|
2
|
+
export { al as AddButton, aq as AddNode, ar as BaseNode, an as CopyText, as as EdgedNode, aj as Flow, at as FrameNode, au as HeaderNode, az as LabeledEdge, av as MapItemNode, aw as NoDataNode, ao as PodContainer, ax as ScrollNode, ay as SkeletonNode, ap as SourceContainer, ag as nodeConfig } from './index-a8da9518.js';
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { T as Theme, B as BUTTON_TEXTS, b as DISPLAY_TITLES } from './index-40dfa720.js';
|
|
5
5
|
import { E as EditIcon } from './index-1bc2b507.js';
|