@odigos/ui-kit 0.0.18 → 0.0.20
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/index.d.ts +1 -0
- package/lib/components/scroll-x/index.d.ts +10 -0
- package/lib/components.js +7 -7
- package/lib/constants.js +3 -3
- package/lib/containers/data-flow/nodes/scroll-node.d.ts +3 -14
- package/lib/containers.js +38 -53
- package/lib/functions.js +4 -4
- package/lib/hooks.js +5 -5
- package/lib/icons.js +1 -1
- package/lib/{index-jPxFCX-5.js → index-BFRz3l_w.js} +2 -2
- package/lib/{index-Bdimyacn.js → index-BazfJyRh.js} +1 -1
- package/lib/{index-Bb7VdYPG.js → index-BoH4B5XC.js} +81 -77
- package/lib/{index-BlJU2fGe.js → index-CD_BQJCD.js} +1 -1
- package/lib/{index-CT0qszYw.js → index-DSzybApb.js} +2 -2
- package/lib/{index-CVs2NNg9.js → index-WSle42rz.js} +1 -1
- package/lib/store.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/{useSourceSelectionFormData-LmLZzJyk.js → useSourceSelectionFormData-_2PggiXn.js} +3 -3
- package/lib/{useTransition-WRhgkuG2.js → useTransition-bXMKBfST.js} +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.0.20](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.19...ui-kit-v0.0.20) (2025-03-27)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* missing title from data-tab ([#64](https://github.com/odigos-io/ui-kit/issues/64)) ([61ec39c](https://github.com/odigos-io/ui-kit/commit/61ec39c4a9c1952f6219e6a32750407352b6ca00))
|
|
9
|
+
|
|
10
|
+
## [0.0.19](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.18...ui-kit-v0.0.19) (2025-03-27)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* support test-connection in destination drawer ([#62](https://github.com/odigos-io/ui-kit/issues/62)) ([ae1cd19](https://github.com/odigos-io/ui-kit/commit/ae1cd19e20b9d87e5e98c0d16c8374ed89af5ed1))
|
|
16
|
+
* x-scroll in data-tabs/base-nodes ([#61](https://github.com/odigos-io/ui-kit/issues/61)) ([58fe6cf](https://github.com/odigos-io/ui-kit/commit/58fe6cff9bfd5e1f9216bd315416f20452e1ea14))
|
|
17
|
+
|
|
3
18
|
## [0.0.18](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.17...ui-kit-v0.0.18) (2025-03-26)
|
|
4
19
|
|
|
5
20
|
|
|
@@ -35,6 +35,7 @@ export * from './monitors-icons/index';
|
|
|
35
35
|
export * from './navigation-buttons/index';
|
|
36
36
|
export * from './no-data-found/index';
|
|
37
37
|
export * from './notification-note/index';
|
|
38
|
+
export * from './scroll-x/index';
|
|
38
39
|
export * from './section-title/index';
|
|
39
40
|
export * from './segment/index';
|
|
40
41
|
export * from './skeleton-loader/index';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
import { type TextProps } from '../text';
|
|
3
|
+
interface ScrollXProps {
|
|
4
|
+
maxWidth: number;
|
|
5
|
+
text: string;
|
|
6
|
+
textSize?: TextProps['size'];
|
|
7
|
+
textColor?: TextProps['color'];
|
|
8
|
+
}
|
|
9
|
+
declare const ScrollX: FC<ScrollXProps>;
|
|
10
|
+
export { ScrollX, type ScrollXProps };
|
package/lib/components.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { B as Button } from './index-
|
|
2
|
-
export { A as AutocompleteInput, a as Badge, C as CancelWarning,
|
|
1
|
+
import { B as Button } from './index-BoH4B5XC.js';
|
|
2
|
+
export { A as AutocompleteInput, a as Badge, C as CancelWarning, a1 as CenterThis, b as Checkbox, c as Code, d as ConditionDetails, D as DataCard, f as DataCardFieldTypes, e as DataCardFields, g as DataTab, h as DeleteWarning, 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, a0 as FlexColumn, $ 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, a3 as ModalBody, z as MonitorsCheckboxes, G as MonitorsIcons, N as NavigationButtons, J as NoDataFound, L as NotificationNote, a2 as Overlay, S as ScrollX, O as SectionTitle, P as Segment, Q as SkeletonLoader, R as Status, U as Stepper, a4 as TableContainer, a5 as TableTitleWrap, a6 as TableWrap, V as Text, W as TextArea, X as Toggle, T as ToggleCodeComponent, Y as Tooltip, Z as TraceLoader, _ as WarningModal } from './index-BoH4B5XC.js';
|
|
3
3
|
import React, { Component, createElement, createContext } from 'react';
|
|
4
4
|
import Theme from './theme.js';
|
|
5
5
|
import './types.js';
|
|
6
|
-
import './index-
|
|
6
|
+
import './index-BazfJyRh.js';
|
|
7
7
|
import 'styled-components';
|
|
8
|
-
import './index-
|
|
8
|
+
import './index-WSle42rz.js';
|
|
9
9
|
import './index-DGel4E-Z.js';
|
|
10
10
|
import './index-BsH_egEe.js';
|
|
11
11
|
import './index-BZS1ijMm.js';
|
|
12
12
|
import './index-BJxaoI0G.js';
|
|
13
|
-
import './index-
|
|
14
|
-
import './index-
|
|
15
|
-
import './useTransition-
|
|
13
|
+
import './index-BFRz3l_w.js';
|
|
14
|
+
import './index-CD_BQJCD.js';
|
|
15
|
+
import './useTransition-bXMKBfST.js';
|
|
16
16
|
import 'react-dom';
|
|
17
17
|
import 'babel-runtime/helpers/extends';
|
|
18
18
|
import 'babel-runtime/core-js/object/get-prototype-of';
|
package/lib/constants.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export { A as ACTION_OPTIONS, I as INSTRUMENTATION_RULE_OPTIONS, M as MONITORS_OPTIONS } from './index-
|
|
1
|
+
export { A as ACTION_OPTIONS, I as INSTRUMENTATION_RULE_OPTIONS, M as MONITORS_OPTIONS } from './index-BFRz3l_w.js';
|
|
2
2
|
export { D as DISPLAY_TITLES, F as FORM_ALERTS } from './index-C_0J5P9M.js';
|
|
3
3
|
import './types.js';
|
|
4
|
-
import './index-
|
|
4
|
+
import './index-CD_BQJCD.js';
|
|
5
5
|
import './index-DGel4E-Z.js';
|
|
6
6
|
import 'react';
|
|
7
7
|
import './theme.js';
|
|
8
|
-
import './index-
|
|
8
|
+
import './index-BazfJyRh.js';
|
|
9
9
|
import 'styled-components';
|
|
10
10
|
|
|
11
11
|
const TOKEN_ABOUT_TO_EXPIRE = 604800000; // 7 days in milliseconds
|
|
@@ -1,21 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { NodeTypes } from '@/types';
|
|
2
3
|
import type { Node, NodeProps } from '@xyflow/react';
|
|
3
|
-
import {
|
|
4
|
+
import { BaseNodeProps } from './base-node';
|
|
4
5
|
export interface ScrollNodeProps extends NodeProps<Node<{
|
|
5
|
-
nodeWidth: number;
|
|
6
6
|
nodeHeight: number;
|
|
7
|
-
items:
|
|
8
|
-
nodeWidth: number;
|
|
9
|
-
framePadding: number;
|
|
10
|
-
id: WorkloadId;
|
|
11
|
-
type: EntityTypes;
|
|
12
|
-
status?: StatusType;
|
|
13
|
-
title: string;
|
|
14
|
-
subTitle: string;
|
|
15
|
-
icon?: SVG;
|
|
16
|
-
iconSrc?: string;
|
|
17
|
-
raw: Source;
|
|
18
|
-
}, NodeTypes.Base>>[];
|
|
7
|
+
items: BaseNodeProps[];
|
|
19
8
|
onScroll: (params: {
|
|
20
9
|
clientHeight: number;
|
|
21
10
|
scrollHeight: number;
|
package/lib/containers.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import React, { useState, useEffect, forwardRef, useRef, useImperativeHandle, useMemo, memo, useContext, createContext, useCallback, useLayoutEffect, Fragment } from 'react';
|
|
2
2
|
import styled, { css } from 'styled-components';
|
|
3
|
-
import { A as ACTION_OPTIONS, M as MONITORS_OPTIONS, I as INSTRUMENTATION_RULE_OPTIONS } from './index-
|
|
3
|
+
import { A as ACTION_OPTIONS, M as MONITORS_OPTIONS, I as INSTRUMENTATION_RULE_OPTIONS } from './index-BFRz3l_w.js';
|
|
4
4
|
import { D as DISPLAY_TITLES, F as FORM_ALERTS } from './index-C_0J5P9M.js';
|
|
5
5
|
import { ActionType, EntityTypes, StatusType, Crud, OtherStatus, NodeTypes, AddNodeTypes, EdgeTypes, FieldTypes, SignalType, CodeAttributesKeyTypes, PayloadCollectionKeyTypes, InstrumentationRuleType } from './types.js';
|
|
6
|
-
import { f as DataCardFieldTypes, p as FieldLabel, b as Checkbox, o as FieldError, v as Input, x as InputTable, K as KeyValueInputsList, w as InputList,
|
|
7
|
-
import { g as usePendingStore, f as useNotificationStore, a as useDrawerStore, b as useEntityStore, e as useModalStore, c as useFilterStore, s as styleInject, h as useSelectedStore, d as useInstrumentStore, j as getEntityId, i as useSetupStore, u as useDarkMode } from './index-
|
|
6
|
+
import { f as DataCardFieldTypes, p as FieldLabel, b as Checkbox, o as FieldError, v as Input, x as InputTable, K as KeyValueInputsList, w as InputList, V as Text, P as Segment, O as SectionTitle, j as DocsButton, z as MonitorsCheckboxes, W as TextArea, k as Drawer, h as DeleteWarning, C as CancelWarning, d as ConditionDetails, D as DataCard, M as Modal, N as NavigationButtons, a3 as ModalBody, A as AutocompleteInput, i as Divider, R as Status, $ as FlexRow, Y as Tooltip, s as IconWrapped, G as MonitorsIcons, a4 as TableContainer, a5 as TableTitleWrap, r as IconTitleBadge, a6 as TableWrap, y as InteractiveTable, a1 as CenterThis, J as NoDataFound, a0 as FlexColumn, Z as TraceLoader, a as Badge, B as Button, E as ExtendArrow, n as Dropdown, a7 as getDefaultExportFromCjs, F as FadeLoader, g as DataTab, Q as SkeletonLoader, X as Toggle, L as NotificationNote, U as Stepper, I as IconButton, e as DataCardFields, t as IconsNav, q as IconGroup } from './index-BoH4B5XC.js';
|
|
7
|
+
import { g as usePendingStore, f as useNotificationStore, a as useDrawerStore, b as useEntityStore, e as useModalStore, c as useFilterStore, s as styleInject, h as useSelectedStore, d as useInstrumentStore, j as getEntityId, i as useSetupStore, u as useDarkMode } from './index-BazfJyRh.js';
|
|
8
8
|
import Theme from './theme.js';
|
|
9
9
|
import { i as isEmpty, s as safeJsonParse } from './index-BZS1ijMm.js';
|
|
10
10
|
import { i as CheckCircledIcon, O as OdigosLogo } from './index-BsH_egEe.js';
|
|
11
11
|
import { C as CrossCircledIcon, E as EditIcon, O as OdigosLogoText, a as OverviewIcon, F as FilterIcon, N as NotificationIcon, S as SlackLogo, K as KeyIcon, T as TerminalIcon } from './index-KOMAv-TS.js';
|
|
12
|
-
import { g as getActionIcon, a as getInstrumentationRuleIcon } from './index-
|
|
13
|
-
import { u as useActionFormData, a as useClickNode, c as useDestinationFormData, b as useClickNotification, d as useSourceFormData, e as useSourceSelectionFormData } from './useSourceSelectionFormData-
|
|
14
|
-
import { d as useKeyDown, e as useOnClickOutside, u as useContainerSize, c as useInstrumentationRuleFormData, g as useTransition, f as useTimeAgo, a as useCopy } from './useTransition-
|
|
12
|
+
import { g as getActionIcon, a as getInstrumentationRuleIcon } from './index-CD_BQJCD.js';
|
|
13
|
+
import { u as useActionFormData, a as useClickNode, c as useDestinationFormData, b as useClickNotification, d as useSourceFormData, e as useSourceSelectionFormData } from './useSourceSelectionFormData-_2PggiXn.js';
|
|
14
|
+
import { d as useKeyDown, e as useOnClickOutside, u as useContainerSize, c as useInstrumentationRuleFormData, g as useTransition, f as useTimeAgo, a as useCopy } from './useTransition-bXMKBfST.js';
|
|
15
15
|
import { T as TrashIcon, S as SearchIcon, P as PlusIcon$1, A as ArrowIcon, a as CopyIcon, f as CheckIcon, g as CrossIcon } from './index-BJxaoI0G.js';
|
|
16
|
-
import { m as mapConditions, b as getStatusIcon, c as capitalizeFirstLetter } from './index-
|
|
17
|
-
import { f as filterActions, g as getConditionsBooleans, k as getEntityLabel, j as getEntityIcon, s as sleep$1, m as getPlatformIcon, n as getPlatformLabel, d as formatBytes, h as getContainersIcons, o as getValueForRange, i as getDestinationIcon, b as filterSources, a as filterDestinations, c as compareCondition, l as getMetricForEntity, p as getWorkloadId, e as getContainersInstrumentedCount, q as isOverTime } from './index-
|
|
16
|
+
import { m as mapConditions, b as getStatusIcon, c as capitalizeFirstLetter } from './index-WSle42rz.js';
|
|
17
|
+
import { f as filterActions, g as getConditionsBooleans, k as getEntityLabel, j as getEntityIcon, s as sleep$1, m as getPlatformIcon, n as getPlatformLabel, d as formatBytes, h as getContainersIcons, o as getValueForRange, i as getDestinationIcon, b as filterSources, a as filterDestinations, c as compareCondition, l as getMetricForEntity, p as getWorkloadId, e as getContainersInstrumentedCount, q as isOverTime } from './index-DSzybApb.js';
|
|
18
18
|
import require$$1 from 'use-sync-external-store/shim';
|
|
19
19
|
import { createPortal } from 'react-dom';
|
|
20
20
|
import { R as RulesIcon, W as SourcesIcon, y as ActionsIcon, z as DestinationsIcon } from './index-DB8Djrsy.js';
|
|
@@ -12739,7 +12739,7 @@ const BaseNode = memo(({ id: nodeId, data }) => {
|
|
|
12739
12739
|
}, visualProps: {
|
|
12740
12740
|
status: status,
|
|
12741
12741
|
faded: faded || (hasActiveBoolean && !isActive),
|
|
12742
|
-
monitors
|
|
12742
|
+
monitors,
|
|
12743
12743
|
}, checkboxProps: {
|
|
12744
12744
|
withCheckbox: isSource,
|
|
12745
12745
|
isChecked: sourceIndex !== -1,
|
|
@@ -12776,19 +12776,30 @@ const FrameNode = memo(({ data }) => {
|
|
|
12776
12776
|
React.createElement(Handle, { type: 'target', position: Position.Left, style: { visibility: 'hidden' } })));
|
|
12777
12777
|
});
|
|
12778
12778
|
|
|
12779
|
+
// These are not the actual sizes of a base node,
|
|
12780
|
+
// but these are used to help calculate the actual sizes of various nodes and their positions.
|
|
12781
|
+
// It is important to not delete or edit this file, unless you re-define the maths for all node size and position calculations.
|
|
12782
|
+
const nodeConfig = {
|
|
12783
|
+
nodeWidth: 295,
|
|
12784
|
+
nodeHeight: 80,
|
|
12785
|
+
framePadding: 12,
|
|
12786
|
+
};
|
|
12787
|
+
|
|
12788
|
+
const { framePadding: framePadding$3 } = nodeConfig;
|
|
12779
12789
|
const Container$e = styled.div `
|
|
12780
12790
|
position: relative;
|
|
12781
12791
|
z-index: 1;
|
|
12782
|
-
width:
|
|
12792
|
+
width: fit-content;
|
|
12783
12793
|
height: ${({ $nodeHeight }) => $nodeHeight}px;
|
|
12784
12794
|
background: transparent;
|
|
12785
12795
|
border: none;
|
|
12786
12796
|
overflow-y: auto;
|
|
12797
|
+
overflow-x: hidden;
|
|
12787
12798
|
`;
|
|
12788
12799
|
const BaseNodeWrapper = styled.div `
|
|
12789
|
-
margin: ${
|
|
12800
|
+
margin: ${framePadding$3}px 0;
|
|
12790
12801
|
`;
|
|
12791
|
-
const
|
|
12802
|
+
const BottomOverlay = styled.div `
|
|
12792
12803
|
position: fixed;
|
|
12793
12804
|
bottom: 0;
|
|
12794
12805
|
left: 50%;
|
|
@@ -12805,14 +12816,8 @@ const LoadMoreWrapper = styled.div `
|
|
|
12805
12816
|
|
|
12806
12817
|
pointer-events: none;
|
|
12807
12818
|
`;
|
|
12808
|
-
// const LoadMoreButton = styled(Button)`
|
|
12809
|
-
// background: ${({ theme }) => theme.colors.primary} !important;
|
|
12810
|
-
// &:hover {
|
|
12811
|
-
// background: ${({ theme }) => theme.colors.dropdown_bg_2} !important;
|
|
12812
|
-
// }
|
|
12813
|
-
// `;
|
|
12814
12819
|
const ScrollNode = memo(({ data, ...rest }) => {
|
|
12815
|
-
const {
|
|
12820
|
+
const { nodeHeight, items, onScroll } = data;
|
|
12816
12821
|
const { onClickNode } = useClickNode();
|
|
12817
12822
|
const containerRef = useRef(null);
|
|
12818
12823
|
const [isBottomOfList, setIsBottomOfList] = useState(false);
|
|
@@ -12821,30 +12826,22 @@ const ScrollNode = memo(({ data, ...rest }) => {
|
|
|
12821
12826
|
e.stopPropagation();
|
|
12822
12827
|
// @ts-ignore - these properties are available on the EventTarget, TS is not aware of it
|
|
12823
12828
|
const { clientHeight, scrollHeight, scrollTop } = e.target || { clientHeight: 0, scrollHeight: 0, scrollTop: 0 };
|
|
12824
|
-
if (
|
|
12829
|
+
if (onScroll)
|
|
12825
12830
|
onScroll({ clientHeight, scrollHeight, scrollTop });
|
|
12826
|
-
|
|
12827
|
-
// const isTop = scrollTop === 0;
|
|
12828
|
-
const isBottom = scrollHeight - scrollTop <= clientHeight;
|
|
12829
|
-
// if (isTop) {
|
|
12830
|
-
// console.log('Reached top of scroll-node');
|
|
12831
|
-
// } else if (isBottom) {
|
|
12832
|
-
// console.log('Reached bottom of scroll-node');
|
|
12833
|
-
// }
|
|
12834
|
-
setIsBottomOfList(isBottom);
|
|
12831
|
+
setIsBottomOfList(scrollHeight - scrollTop <= clientHeight);
|
|
12835
12832
|
};
|
|
12836
12833
|
const { current } = containerRef;
|
|
12837
12834
|
current?.addEventListener('scroll', handleScroll);
|
|
12838
12835
|
return () => current?.removeEventListener('scroll', handleScroll);
|
|
12839
12836
|
}, [onScroll]);
|
|
12840
|
-
return (React.createElement(Container$e, { ref: containerRef, "$
|
|
12841
|
-
items.map((item) => (React.createElement(BaseNodeWrapper, { key: item.id,
|
|
12837
|
+
return (React.createElement(Container$e, { ref: containerRef, "$nodeHeight": nodeHeight, className: 'nowheel nodrag' },
|
|
12838
|
+
items.map((item) => (React.createElement(BaseNodeWrapper, { key: item.id, onClick: (e) => {
|
|
12842
12839
|
e.stopPropagation();
|
|
12843
12840
|
// @ts-ignore
|
|
12844
12841
|
onClickNode(e, item);
|
|
12845
12842
|
} },
|
|
12846
12843
|
React.createElement(BaseNode, { ...rest, type: NodeTypes.Base, id: item.id, data: item.data })))),
|
|
12847
|
-
React.createElement(
|
|
12844
|
+
React.createElement(BottomOverlay, { "$hide": isBottomOfList })));
|
|
12848
12845
|
});
|
|
12849
12846
|
|
|
12850
12847
|
const Container$d = styled.div `
|
|
@@ -13032,15 +13029,6 @@ const Flow = ({ nodes, edges, onNodesChange, onEdgesChange }) => {
|
|
|
13032
13029
|
} })))));
|
|
13033
13030
|
};
|
|
13034
13031
|
|
|
13035
|
-
// These are not the actual sizes of a base node,
|
|
13036
|
-
// but these are used to help calculate the actual sizes of various nodes and their positions.
|
|
13037
|
-
// It is important to not delete or edit this file, unless you re-define the maths for all node size and position calculations.
|
|
13038
|
-
const nodeConfig = {
|
|
13039
|
-
nodeWidth: 295,
|
|
13040
|
-
nodeHeight: 80,
|
|
13041
|
-
framePadding: 12,
|
|
13042
|
-
};
|
|
13043
|
-
|
|
13044
13032
|
const { nodeHeight: nodeHeight$3, framePadding: framePadding$2 } = nodeConfig;
|
|
13045
13033
|
const createEdge = (edgeId, params) => {
|
|
13046
13034
|
const { theme, label, isMultiTarget, isError, animated } = params || {};
|
|
@@ -13264,8 +13252,7 @@ const mapToNodeData$1 = (entity) => {
|
|
|
13264
13252
|
const { priorotizedStatus, hasDisableds } = getConditionsBooleans(entity.conditions || []);
|
|
13265
13253
|
return {
|
|
13266
13254
|
nodeWidth: nodeWidth$2,
|
|
13267
|
-
nodeHeight: nodeHeight$1,
|
|
13268
|
-
framePadding,
|
|
13255
|
+
nodeHeight: nodeHeight$1, // for edged node
|
|
13269
13256
|
id: {
|
|
13270
13257
|
namespace: entity.namespace,
|
|
13271
13258
|
name: entity.name,
|
|
@@ -13923,10 +13910,8 @@ const TestConnection = ({ destination, disabled, status, onError, onSuccess, val
|
|
|
13923
13910
|
React.createElement(Text, { family: 'secondary', decoration: 'underline', size: 14, color: !!status ? theme.text[status] : undefined }, testLoading ? 'Checking' : status === 'success' ? 'Connection OK' : status === 'error' ? 'Connection Failed' : 'Test Connection')));
|
|
13924
13911
|
};
|
|
13925
13912
|
|
|
13926
|
-
const Container$9 = styled
|
|
13927
|
-
|
|
13928
|
-
flex-direction: column;
|
|
13929
|
-
gap: 24px;
|
|
13913
|
+
const Container$9 = styled(FlexColumn) `
|
|
13914
|
+
align-items: unset;
|
|
13930
13915
|
padding: 0 4px;
|
|
13931
13916
|
`;
|
|
13932
13917
|
const NotesWrapper = styled.div `
|
|
@@ -13993,20 +13978,20 @@ const DestinationForm = ({ isUpdate, categoryItem, formData, formErrors, validat
|
|
|
13993
13978
|
traces: signals.includes(SignalType.Traces),
|
|
13994
13979
|
});
|
|
13995
13980
|
};
|
|
13996
|
-
return (React.createElement(Container$9,
|
|
13997
|
-
|
|
13998
|
-
React.createElement(SectionTitle, { title: 'Create
|
|
13981
|
+
return (React.createElement(Container$9, { "$gap": 24 },
|
|
13982
|
+
React.createElement(Container$9, { "$gap": 12 },
|
|
13983
|
+
React.createElement(SectionTitle, { title: isUpdate ? 'Update destination' : 'Create destination', description: `Connect ${displayName} with Odigos.`, actionButton: testConnectionSupported && (React.createElement(TestConnection, { destination: formData, disabled: !isFormDirty, validateForm: validateForm, status: connectionStatus, testConnection: testConnection, testLoading: testLoading, testResult: testResult, onError: () => {
|
|
13999
13984
|
setIsFormDirty(false);
|
|
14000
13985
|
setConnectionStatus(StatusType.Error);
|
|
14001
13986
|
}, onSuccess: () => {
|
|
14002
13987
|
setIsFormDirty(false);
|
|
14003
13988
|
setConnectionStatus(StatusType.Success);
|
|
14004
13989
|
} })) }),
|
|
14005
|
-
|
|
13990
|
+
React.createElement(NotesWrapper, null,
|
|
14006
13991
|
testConnectionSupported && connectionStatus === StatusType.Error && React.createElement(NotificationNote, { type: StatusType.Error, message: 'Connection failed. Please check your input and try again.' }),
|
|
14007
13992
|
testConnectionSupported && connectionStatus === StatusType.Success && React.createElement(NotificationNote, { type: StatusType.Success, message: 'Connection succeeded.' }),
|
|
14008
|
-
autoFilled && React.createElement(NotificationNote, { type: StatusType.Default, message: `Odigos autocompleted ${displayName}
|
|
14009
|
-
React.createElement(Divider, null))
|
|
13993
|
+
autoFilled && !connectionStatus && !isUpdate && React.createElement(NotificationNote, { type: StatusType.Default, message: `Odigos autocompleted ${displayName} destination details.` })),
|
|
13994
|
+
React.createElement(Divider, null)),
|
|
14010
13995
|
React.createElement(MonitorsCheckboxes, { title: isUpdate ? '' : 'This connection will monitor:', required: true, allowedSignals: supportedMonitors, selectedSignals: selectedMonitors, setSelectedSignals: handleSelectedSignals, errorMessage: formErrors['exportedSignals'] }),
|
|
14011
13996
|
!isUpdate && (React.createElement(Input, { title: 'Destination name', placeholder: 'Enter destination name', value: formData['name'], onChange: (e) => {
|
|
14012
13997
|
dirtyForm();
|
package/lib/functions.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { c as capitalizeFirstLetter, f as flattenObjectKeys, g as getMonitorIcon, a as getProgrammingLanguageIcon, b as getStatusIcon, m as mapConditions, p as parseJsonStringToPrettyString, r as removeEmptyValuesFromObject, s as safeJsonStringify, d as splitCamelString } from './index-
|
|
2
|
-
export { c as compareCondition, f as filterActions, a as filterDestinations, b as filterSources, d as formatBytes, g as getConditionsBooleans, h as getContainersIcons, e as getContainersInstrumentedCount, i as getDestinationIcon, j as getEntityIcon, k as getEntityLabel, l as getMetricForEntity, m as getPlatformIcon, n as getPlatformLabel, o as getValueForRange, p as getWorkloadId, q as isOverTime, s as sleep } from './index-
|
|
3
|
-
export { g as getActionIcon, a as getInstrumentationRuleIcon } from './index-
|
|
4
|
-
export { j as getEntityId, k as isTimeElapsed } from './index-
|
|
1
|
+
export { c as capitalizeFirstLetter, f as flattenObjectKeys, g as getMonitorIcon, a as getProgrammingLanguageIcon, b as getStatusIcon, m as mapConditions, p as parseJsonStringToPrettyString, r as removeEmptyValuesFromObject, s as safeJsonStringify, d as splitCamelString } from './index-WSle42rz.js';
|
|
2
|
+
export { c as compareCondition, f as filterActions, a as filterDestinations, b as filterSources, d as formatBytes, g as getConditionsBooleans, h as getContainersIcons, e as getContainersInstrumentedCount, i as getDestinationIcon, j as getEntityIcon, k as getEntityLabel, l as getMetricForEntity, m as getPlatformIcon, n as getPlatformLabel, o as getValueForRange, p as getWorkloadId, q as isOverTime, s as sleep } from './index-DSzybApb.js';
|
|
3
|
+
export { g as getActionIcon, a as getInstrumentationRuleIcon } from './index-CD_BQJCD.js';
|
|
4
|
+
export { j as getEntityId, k as isTimeElapsed } from './index-BazfJyRh.js';
|
|
5
5
|
export { g as getIdFromSseTarget } from './index-7-KCQK-x.js';
|
|
6
6
|
import { EntityTypes } from './types.js';
|
|
7
7
|
export { i as isEmpty, s as safeJsonParse } from './index-BZS1ijMm.js';
|
package/lib/hooks.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { u as useActionFormData, a as useClickNode, b as useClickNotification, c as useDestinationFormData, d as useSourceFormData, e as useSourceSelectionFormData } from './useSourceSelectionFormData-
|
|
2
|
-
export { u as useContainerSize, a as useCopy, b as useGenericForm, c as useInstrumentationRuleFormData, d as useKeyDown, e as useOnClickOutside, f as useTimeAgo, g as useTransition } from './useTransition-
|
|
1
|
+
export { u as useActionFormData, a as useClickNode, b as useClickNotification, c as useDestinationFormData, d as useSourceFormData, e as useSourceSelectionFormData } from './useSourceSelectionFormData-_2PggiXn.js';
|
|
2
|
+
export { u as useContainerSize, a as useCopy, b as useGenericForm, c as useInstrumentationRuleFormData, d as useKeyDown, e as useOnClickOutside, f as useTimeAgo, g as useTransition } from './useTransition-bXMKBfST.js';
|
|
3
3
|
import './types.js';
|
|
4
4
|
import 'react';
|
|
5
|
-
import './index-
|
|
5
|
+
import './index-BazfJyRh.js';
|
|
6
6
|
import 'styled-components';
|
|
7
7
|
import './index-BZS1ijMm.js';
|
|
8
|
-
import './index-
|
|
9
|
-
import './index-
|
|
8
|
+
import './index-BFRz3l_w.js';
|
|
9
|
+
import './index-CD_BQJCD.js';
|
|
10
10
|
import './index-DGel4E-Z.js';
|
|
11
11
|
import './theme.js';
|
|
12
12
|
import './index-C_0J5P9M.js';
|
package/lib/icons.js
CHANGED
|
@@ -5,7 +5,7 @@ export { A as ArrowIcon, f as CheckIcon, C as CodeIcon, a as CopyIcon, g as Cros
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import Theme from './theme.js';
|
|
7
7
|
export { y as ActionsIcon, A as AppDynamicsLogo, a as AwsCloudwatchLogo, b as AwsS3Logo, c as AwsXrayLogo, d as AxiomLogo, B as BetterStackLogo, e as BlobStorageLogo, C as CauselyLogo, f as ChronosphereLogo, g as ClickhouseLogo, h as CoralogixLogo, D as Dash0Logo, i as DatadogLogo, z as DestinationsIcon, j as DynatraceLogo, E as ElasticApmLogo, k as ElasticSearchLogo, G as GigapipeLogo, l as GoogleCloudPlatformLogo, m as GrafanaLogo, n as GroundcoverLogo, H as HoneycombLogo, o as HyperDxLogo, I as InstanaLogo, J as JaegerLogo, K as KloudmateLogo, L as Last9Logo, p as LightstepLogo, q as LogzioLogo, r as LokiLogo, s as LumigoLogo, M as MiddlewareLogo, F as NamespacesIcon, N as NewRelicLogo, O as OpenTelemetryLogo, t as OpsVerseLogo, P as PrometheusLogo, Q as QrynLogo, u as QuickwitLogo, R as RulesIcon, S as SignozLogo, W as SourcesIcon, v as SplunkLogo, w as SumoLogicLogo, T as TempoLogo, x as TraceloopLogo, U as UptraceLogo, V as VmLogo } from './index-DB8Djrsy.js';
|
|
8
|
-
import './index-
|
|
8
|
+
import './index-BazfJyRh.js';
|
|
9
9
|
import './types.js';
|
|
10
10
|
import 'styled-components';
|
|
11
11
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SignalType, ActionType, InstrumentationRuleType } from './types.js';
|
|
2
|
-
import { g as getActionIcon, a as getInstrumentationRuleIcon } from './index-
|
|
2
|
+
import { g as getActionIcon, a as getInstrumentationRuleIcon } from './index-CD_BQJCD.js';
|
|
3
3
|
import 'react';
|
|
4
|
-
import './index-
|
|
4
|
+
import './index-BazfJyRh.js';
|
|
5
5
|
import 'styled-components';
|
|
6
6
|
|
|
7
7
|
const ACTION_OPTIONS = [
|
|
@@ -598,7 +598,7 @@ function styleInject(css, ref) {
|
|
|
598
598
|
}
|
|
599
599
|
}
|
|
600
600
|
|
|
601
|
-
var css_248z = "/* Preload key fonts in your global CSS */\n@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap');\n@import url('https://fonts.googleapis.com/css2?family=Kode+Mono:wght@100;200;300;400;500;600;700&display=swap');\n@import url('https://fonts.googleapis.com/css2?family=Inter+Tight:wght@400;700&display=swap');\n@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap');\n\n* {\n
|
|
601
|
+
var css_248z = "/* Preload key fonts in your global CSS */\n@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap');\n@import url('https://fonts.googleapis.com/css2?family=Kode+Mono:wght@100;200;300;400;500;600;700&display=swap');\n@import url('https://fonts.googleapis.com/css2?family=Inter+Tight:wght@400;700&display=swap');\n@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap');\n\n* {\n -ms-overflow-style: none; /* IE, Edge */\n scrollbar-width: none; /* Firefox */\n}\n*::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n}\n\nsvg {\n transition: all 0.3s;\n}\n\n/*\n The input styles below are to override the browser \":-webkit-autofill\" default style declarations.\n The issue is when someone autocompletes an input field, the browser will apply its own styles (and the browser applies \"!important\" preventing direct overrides).\n With the following, we're able to delay the browser styles to be applied for 50000s (13.8 hours), so the user will not see the browser styles applied.\n*/\n\ninput {\n all: unset;\n}\n\ninput:-webkit-autofill,\ninput:-webkit-autofill:hover,\ninput:-webkit-autofill:focus,\ninput:-webkit-autofill:active {\n -webkit-transition: all 50000s ease-in-out 0s;\n transition: all 50000s ease-in-out 0s;\n}\n";
|
|
602
602
|
styleInject(css_248z);
|
|
603
603
|
|
|
604
604
|
const slide = {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import React, { useState, useRef, forwardRef, useEffect, createElement, useCallback, useMemo, Fragment } from 'react';
|
|
2
2
|
import { StatusType, OtherStatus, SortDirection, ProgrammingLanguages, EntityTypes } from './types.js';
|
|
3
|
-
import './index-
|
|
3
|
+
import './index-BazfJyRh.js';
|
|
4
4
|
import styled, { css } from 'styled-components';
|
|
5
5
|
import Theme from './theme.js';
|
|
6
|
-
import { b as getStatusIcon, r as removeEmptyValuesFromObject, s as safeJsonStringify, f as flattenObjectKeys, m as mapConditions, c as capitalizeFirstLetter, g as getMonitorIcon, p as parseJsonStringToPrettyString, a as getProgrammingLanguageIcon, d as splitCamelString } from './index-
|
|
6
|
+
import { b as getStatusIcon, r as removeEmptyValuesFromObject, s as safeJsonStringify, f as flattenObjectKeys, m as mapConditions, c as capitalizeFirstLetter, g as getMonitorIcon, p as parseJsonStringToPrettyString, a as getProgrammingLanguageIcon, d as splitCamelString } from './index-WSle42rz.js';
|
|
7
7
|
import { s as safeJsonParse, i as isEmpty } from './index-BZS1ijMm.js';
|
|
8
8
|
import { M as MinusIcon, f as CheckIcon, L as ListIcon, C as CodeIcon, E as ExtendArrowIcon, c as SortArrowsIcon, a as CopyIcon, b as NotebookIcon, X as XIcon, d as EyeClosedIcon, e as EyeOpenIcon, N as NoDataIcon, g as CrossIcon, S as SearchIcon, T as TrashIcon, P as PlusIcon, A as ArrowIcon } from './index-BJxaoI0G.js';
|
|
9
|
-
import { M as MONITORS_OPTIONS } from './index-
|
|
10
|
-
import { u as useContainerSize, a as useCopy, g as useTransition, d as useKeyDown, e as useOnClickOutside } from './useTransition-
|
|
9
|
+
import { M as MONITORS_OPTIONS } from './index-BFRz3l_w.js';
|
|
10
|
+
import { u as useContainerSize, a as useCopy, g as useTransition, d as useKeyDown, e as useOnClickOutside } from './useTransition-bXMKBfST.js';
|
|
11
11
|
import ReactDOM from 'react-dom';
|
|
12
12
|
import { I as ImageErrorIcon } from './index-DGel4E-Z.js';
|
|
13
13
|
import require$$0 from 'babel-runtime/helpers/extends';
|
|
@@ -3676,7 +3676,7 @@ const TableData = styled.td `
|
|
|
3676
3676
|
vertical-align: top;
|
|
3677
3677
|
padding: 4px 6px;
|
|
3678
3678
|
`;
|
|
3679
|
-
const Title$
|
|
3679
|
+
const Title$b = styled(Text) `
|
|
3680
3680
|
white-space: nowrap;
|
|
3681
3681
|
`;
|
|
3682
3682
|
const CodeLineToken = styled.span `
|
|
@@ -3765,7 +3765,7 @@ const PrettyJsonCode = ({ darkMode, str }) => {
|
|
|
3765
3765
|
renderEmptyRows(2, i),
|
|
3766
3766
|
React.createElement(TableRow$1, { ...lineProps },
|
|
3767
3767
|
React.createElement(TableData, null,
|
|
3768
|
-
React.createElement(Title$
|
|
3768
|
+
React.createElement(Title$b, null, formattedLine[0].content)),
|
|
3769
3769
|
React.createElement(TableData, null))));
|
|
3770
3770
|
}
|
|
3771
3771
|
else if (formattedLine.length === 2) {
|
|
@@ -4091,6 +4091,36 @@ const Status = ({ title, subtitle, size = 12, family = 'secondary', status = Sta
|
|
|
4091
4091
|
!!subtitle && (React.createElement(Text, { size: size - 2, family: family, color: theme.text[`${statusType}_secondary`] }, subtitle))))));
|
|
4092
4092
|
};
|
|
4093
4093
|
|
|
4094
|
+
const LimitedText = styled(Text) `
|
|
4095
|
+
max-width: ${({ $maxWidth }) => `${$maxWidth}px` || 'unset'};
|
|
4096
|
+
white-space: nowrap;
|
|
4097
|
+
overflow-x: auto;
|
|
4098
|
+
|
|
4099
|
+
&::after {
|
|
4100
|
+
// This is to prevent the "browser default tooltip" from appearing when the title is too long
|
|
4101
|
+
content: '';
|
|
4102
|
+
display: block;
|
|
4103
|
+
}
|
|
4104
|
+
`;
|
|
4105
|
+
const ELIPSIS_WIDTH = 12;
|
|
4106
|
+
const ScrollX = ({ maxWidth, text, textSize, textColor }) => {
|
|
4107
|
+
const [isOverflowed, setIsOverflowed] = useState(false);
|
|
4108
|
+
const ref = useRef(null);
|
|
4109
|
+
// Check if text is overflowed from maximum width
|
|
4110
|
+
useEffect(() => {
|
|
4111
|
+
if (ref.current) {
|
|
4112
|
+
const { clientWidth } = ref.current;
|
|
4113
|
+
const marginUp = (maxWidth - ELIPSIS_WIDTH) * 1.05; // add 5%
|
|
4114
|
+
const marginDown = (maxWidth - ELIPSIS_WIDTH) * 0.95; // subtract 5%
|
|
4115
|
+
setIsOverflowed(clientWidth < marginUp && clientWidth > marginDown);
|
|
4116
|
+
}
|
|
4117
|
+
}, [maxWidth, text]);
|
|
4118
|
+
return (React.createElement(FlexRow, { "$gap": 0 },
|
|
4119
|
+
text && (React.createElement(Tooltip, { text: isOverflowed ? text : undefined },
|
|
4120
|
+
React.createElement(LimitedText, { ref: ref, "$maxWidth": maxWidth - ELIPSIS_WIDTH, size: textSize, color: textColor }, text))),
|
|
4121
|
+
isOverflowed && (React.createElement(LimitedText, { "$maxWidth": ELIPSIS_WIDTH, size: textSize, color: textColor }, "..."))));
|
|
4122
|
+
};
|
|
4123
|
+
|
|
4094
4124
|
const ImageControlled = ({ src = '', alt = '', size = 16 }) => {
|
|
4095
4125
|
const [hasError, setHasError] = useState(false);
|
|
4096
4126
|
if (!!src && !hasError) {
|
|
@@ -4214,6 +4244,25 @@ const IconButton = ({ children, onClick, tooltip, size = 36, withPing, pingColor
|
|
|
4214
4244
|
children)));
|
|
4215
4245
|
};
|
|
4216
4246
|
|
|
4247
|
+
const defaultMonitors = MONITORS_OPTIONS.map(({ id }) => id);
|
|
4248
|
+
const MonitorsIcons = ({ monitors = defaultMonitors, withTooltips, withLabels, size = 12, color: clr }) => {
|
|
4249
|
+
const theme = Theme.useTheme();
|
|
4250
|
+
const color = clr || theme.text.grey;
|
|
4251
|
+
return (React.createElement(FlexRow, { "$gap": withLabels ? size : size / 2 }, monitors
|
|
4252
|
+
.filter((str) => !!str)
|
|
4253
|
+
.map((str) => {
|
|
4254
|
+
const signal = str.toLowerCase();
|
|
4255
|
+
const displayName = capitalizeFirstLetter(signal);
|
|
4256
|
+
const Icon = getMonitorIcon(signal);
|
|
4257
|
+
if (!Icon)
|
|
4258
|
+
return null;
|
|
4259
|
+
return (React.createElement(Tooltip, { key: signal, text: withTooltips ? displayName : '' },
|
|
4260
|
+
React.createElement(FlexRow, { "$gap": size / 3 },
|
|
4261
|
+
React.createElement(Icon, { size: withLabels ? size + 2 : size, fill: color }),
|
|
4262
|
+
withLabels && (React.createElement(Text, { size: size, color: color }, displayName)))));
|
|
4263
|
+
})));
|
|
4264
|
+
};
|
|
4265
|
+
|
|
4217
4266
|
const ControlledVisibility = styled.div `
|
|
4218
4267
|
visibility: hidden;
|
|
4219
4268
|
`;
|
|
@@ -4245,28 +4294,6 @@ const Container$m = styled.div `
|
|
|
4245
4294
|
}
|
|
4246
4295
|
`}
|
|
4247
4296
|
`;
|
|
4248
|
-
const Title$b = styled(Text) `
|
|
4249
|
-
max-width: ${({ $maxWidth }) => $maxWidth}px;
|
|
4250
|
-
overflow: hidden;
|
|
4251
|
-
white-space: nowrap;
|
|
4252
|
-
text-overflow: ellipsis;
|
|
4253
|
-
|
|
4254
|
-
font-size: 14px;
|
|
4255
|
-
&::after {
|
|
4256
|
-
// This is to prevent the browser "default tooltip" from appearing when the title is too long
|
|
4257
|
-
content: '';
|
|
4258
|
-
display: block;
|
|
4259
|
-
}
|
|
4260
|
-
`;
|
|
4261
|
-
const SubTitle$2 = styled(Text) `
|
|
4262
|
-
max-width: ${({ $maxWidth }) => $maxWidth}px;
|
|
4263
|
-
overflow: hidden;
|
|
4264
|
-
white-space: nowrap;
|
|
4265
|
-
text-overflow: ellipsis;
|
|
4266
|
-
|
|
4267
|
-
color: ${({ theme }) => theme.text.grey};
|
|
4268
|
-
font-size: 10px;
|
|
4269
|
-
`;
|
|
4270
4297
|
const ActionsWrapper = styled.div `
|
|
4271
4298
|
display: flex;
|
|
4272
4299
|
align-items: center;
|
|
@@ -4276,47 +4303,40 @@ const ActionsWrapper = styled.div `
|
|
|
4276
4303
|
const HoverText = styled(Text) `
|
|
4277
4304
|
margin-right: 16px;
|
|
4278
4305
|
`;
|
|
4306
|
+
const SubText = styled(Text) `
|
|
4307
|
+
font-size: 10px;
|
|
4308
|
+
color: ${({ theme }) => theme.text.grey};
|
|
4309
|
+
`;
|
|
4279
4310
|
const DataTab = ({ title, subTitle, hoverText, onClick, renderActions, iconProps: { icon, icons, iconSrc, iconSrcs } = {}, visualProps: { status, faded, bgColor, bgColorHover, monitors, monitorsWithLabels } = {}, checkboxProps: { withCheckbox, isCheckboxDisabled, isChecked, onCheckboxChange } = {}, extendableProps: { withExtend, isExtended, renderExtended } = {}, ...props }) => {
|
|
4311
|
+
const theme = Theme.useTheme();
|
|
4280
4312
|
const [extend, setExtend] = useState(isExtended || false);
|
|
4281
|
-
const [
|
|
4282
|
-
const [isTitleOverflowed, setIsTitleOverflowed] = useState(false);
|
|
4283
|
-
const [isSubTitleOverflowed, setSubIsTitleOverflowed] = useState(false);
|
|
4313
|
+
const [textMaxWidth, setTextMaxWidth] = useState(0);
|
|
4284
4314
|
const containerRef = useRef(null);
|
|
4285
4315
|
const actionsRef = useRef(null);
|
|
4286
|
-
const
|
|
4287
|
-
|
|
4316
|
+
const monitorsRef = useRef(null);
|
|
4317
|
+
// Dynamically define maximim width for title and subtitle
|
|
4288
4318
|
useEffect(() => {
|
|
4289
|
-
if (containerRef.current
|
|
4319
|
+
if (containerRef.current) {
|
|
4290
4320
|
const containerWidth = containerRef.current.clientWidth;
|
|
4291
|
-
const actionsWidth = actionsRef.current
|
|
4292
|
-
// 85 is the sum of the container-padding, icon
|
|
4293
|
-
//
|
|
4294
|
-
const
|
|
4295
|
-
|
|
4296
|
-
}
|
|
4297
|
-
}, []);
|
|
4298
|
-
useEffect(() => {
|
|
4299
|
-
const marginUp = maxWidth * 1.05; // add 5%
|
|
4300
|
-
const marginDown = maxWidth * 0.95; // subtract 5%
|
|
4301
|
-
if (titleRef.current) {
|
|
4302
|
-
const { clientWidth } = titleRef.current;
|
|
4303
|
-
setIsTitleOverflowed(clientWidth < marginUp && clientWidth > marginDown);
|
|
4304
|
-
}
|
|
4305
|
-
if (subTitleRef.current) {
|
|
4306
|
-
const { clientWidth } = subTitleRef.current;
|
|
4307
|
-
setSubIsTitleOverflowed(clientWidth < marginUp && clientWidth > marginDown);
|
|
4321
|
+
const actionsWidth = actionsRef.current?.clientWidth || 0;
|
|
4322
|
+
// 85 is the sum of the container-padding, icon-width, and flex-row-gap.
|
|
4323
|
+
// 125 is the sum of the above, plus checkboxes.
|
|
4324
|
+
const widthOfNonTextContents = (withCheckbox ? 125 : 85) + actionsWidth;
|
|
4325
|
+
setTextMaxWidth(containerWidth - widthOfNonTextContents);
|
|
4308
4326
|
}
|
|
4309
|
-
}, [
|
|
4327
|
+
}, [withCheckbox]);
|
|
4310
4328
|
return (React.createElement(Container$m, { ref: containerRef, "$status": status, "$faded": faded, "$bgColor": bgColor, "$bgColorHover": bgColorHover, "$withClick": !!onClick, onClick: onClick, ...props },
|
|
4311
4329
|
React.createElement(FlexRow, { "$gap": 8 },
|
|
4312
4330
|
React.createElement(FlexRow, { "$gap": 16 },
|
|
4313
4331
|
withCheckbox && React.createElement(Checkbox, { value: isChecked, onChange: onCheckboxChange, disabled: isCheckboxDisabled }),
|
|
4314
4332
|
!!icons?.length || !!iconSrcs?.length ? (React.createElement(IconGroup, { icons: icons, iconSrcs: iconSrcs, status: status, id: `${title}-${subTitle}` })) : !!icon || !!iconSrc ? (React.createElement(IconWrapped, { icon: icon, src: iconSrc, status: status })) : null),
|
|
4315
4333
|
React.createElement(FlexColumn, { "$gap": 4 },
|
|
4316
|
-
React.createElement(
|
|
4317
|
-
|
|
4318
|
-
|
|
4319
|
-
React.createElement(
|
|
4334
|
+
title && React.createElement(ScrollX, { maxWidth: textMaxWidth, text: title, textSize: 14 }),
|
|
4335
|
+
React.createElement(FlexRow, { "$gap": 4 },
|
|
4336
|
+
subTitle && React.createElement(ScrollX, { maxWidth: textMaxWidth - (monitorsRef.current?.clientWidth || 0), text: subTitle, textSize: 10, textColor: theme.text.grey }),
|
|
4337
|
+
monitors && monitors.length > 0 && (React.createElement(FlexRow, { "$gap": 4, ref: monitorsRef },
|
|
4338
|
+
subTitle && React.createElement(SubText, null, "\u2022"),
|
|
4339
|
+
React.createElement(MonitorsIcons, { monitors: monitors, withLabels: monitorsWithLabels, size: 10 }))))),
|
|
4320
4340
|
React.createElement(ActionsWrapper, { ref: actionsRef },
|
|
4321
4341
|
!!hoverText && (React.createElement(ControlledVisibility, null,
|
|
4322
4342
|
React.createElement(HoverText, { size: 14, family: 'secondary' }, hoverText))),
|
|
@@ -4361,25 +4381,6 @@ const DescribeRow = ({ title, subTitle, tooltip, value }) => {
|
|
|
4361
4381
|
React.createElement(ValueWrapper, null, !!value?.status ? (React.createElement(Status, { status: value.status === 'transitioning' ? OtherStatus.Loading : value.status, title: value.text || value.status, withBorder: true, withIcon: true })) : (React.createElement(ValueText, null, value?.text || '-')))));
|
|
4362
4382
|
};
|
|
4363
4383
|
|
|
4364
|
-
const defaultMonitors = MONITORS_OPTIONS.map(({ id }) => id);
|
|
4365
|
-
const MonitorsIcons = ({ monitors = defaultMonitors, withTooltips, withLabels, size = 12, color: clr }) => {
|
|
4366
|
-
const theme = Theme.useTheme();
|
|
4367
|
-
const color = clr || theme.text.grey;
|
|
4368
|
-
return (React.createElement(FlexRow, { "$gap": withLabels ? size : size / 2 }, monitors
|
|
4369
|
-
.filter((str) => !!str)
|
|
4370
|
-
.map((str) => {
|
|
4371
|
-
const signal = str.toLowerCase();
|
|
4372
|
-
const displayName = capitalizeFirstLetter(signal);
|
|
4373
|
-
const Icon = getMonitorIcon(signal);
|
|
4374
|
-
if (!Icon)
|
|
4375
|
-
return null;
|
|
4376
|
-
return (React.createElement(Tooltip, { key: signal, text: withTooltips ? displayName : '' },
|
|
4377
|
-
React.createElement(FlexRow, { "$gap": size / 3 },
|
|
4378
|
-
React.createElement(Icon, { size: withLabels ? size + 2 : size, fill: color }),
|
|
4379
|
-
withLabels && (React.createElement(Text, { size: size, color: color }, displayName)))));
|
|
4380
|
-
})));
|
|
4381
|
-
};
|
|
4382
|
-
|
|
4383
4384
|
const Tr = styled.tr `
|
|
4384
4385
|
cursor: ${({ $withHover }) => ($withHover ? 'pointer' : 'default')};
|
|
4385
4386
|
opacity: ${({ $faded }) => ($faded ? 0.5 : 1)};
|
|
@@ -4397,8 +4398,11 @@ const RowText = styled(Text) `
|
|
|
4397
4398
|
font-size: 14px;
|
|
4398
4399
|
color: ${({ $color, theme }) => $color ?? theme.text.secondary};
|
|
4399
4400
|
line-height: 16px;
|
|
4400
|
-
|
|
4401
|
+
|
|
4401
4402
|
overflow: hidden;
|
|
4403
|
+
overflow-wrap: break-word;
|
|
4404
|
+
white-space: wrap;
|
|
4405
|
+
text-wrap: wrap;
|
|
4402
4406
|
text-overflow: ellipsis;
|
|
4403
4407
|
display: -webkit-box;
|
|
4404
4408
|
-webkit-line-clamp: 2;
|
|
@@ -29607,4 +29611,4 @@ const WarningModal = ({ isOpen, noOverlay, title = '', description = '', note, a
|
|
|
29607
29611
|
React.createElement(FooterButton, { "data-id": 'deny', variant: denyButton.variant || 'secondary', onClick: onDeny }, denyButton.text)))));
|
|
29608
29612
|
};
|
|
29609
29613
|
|
|
29610
|
-
export {
|
|
29614
|
+
export { FlexRow as $, AutocompleteInput as A, Button$4 as B, CancelWarning as C, DataCard as D, ExtendArrow as E, FadeLoader as F, MonitorsIcons as G, Header as H, IconButton as I, NoDataFound as J, KeyValueInputsList as K, NotificationNote as L, Modal as M, NavigationButtons as N, SectionTitle as O, Segment as P, SkeletonLoader as Q, Status as R, ScrollX as S, ToggleCodeComponent as T, Stepper as U, Text as V, TextArea as W, Toggle as X, Tooltip as Y, TraceLoader as Z, WarningModal as _, Badge as a, FlexColumn as a0, CenterThis as a1, Overlay as a2, ModalBody as a3, TableContainer as a4, TableTitleWrap as a5, TableWrap as a6, getDefaultExportFromCjs as a7, Checkbox as b, Code as c, ConditionDetails as d, DataCardFields as e, DataCardFieldTypes as f, DataTab as g, DeleteWarning as h, Divider as i, DocsButton as j, Drawer as k, DrawerHeader as l, DrawerFooter as m, Dropdown as n, FieldError as o, FieldLabel as p, IconGroup as q, IconTitleBadge as r, IconWrapped as s, IconsNav as t, ImageControlled as u, Input as v, InputList as w, InputTable as x, InteractiveTable as y, MonitorsCheckboxes as z };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ActionType, InstrumentationRuleType } from './types.js';
|
|
2
2
|
import { S as SamplerIcon, P as PiiMaskingIcon, R as RenameAttributeIcon, D as DeleteAttributeIcon, A as AddClusterInfoIcon, K as K8sLogo, I as ImageErrorIcon, C as CodeAttributesIcon, a as PayloadCollectionIcon } from './index-DGel4E-Z.js';
|
|
3
3
|
import 'react';
|
|
4
|
-
import './index-
|
|
4
|
+
import './index-BazfJyRh.js';
|
|
5
5
|
import 'styled-components';
|
|
6
6
|
|
|
7
7
|
const getActionIcon = (type) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { StatusType, OtherStatus, DestinationTypes, EntityTypes, PlatformType } from './types.js';
|
|
2
|
-
import { a as getProgrammingLanguageIcon } from './index-
|
|
2
|
+
import { a as getProgrammingLanguageIcon } from './index-WSle42rz.js';
|
|
3
3
|
import 'react';
|
|
4
|
-
import './index-
|
|
4
|
+
import './index-BazfJyRh.js';
|
|
5
5
|
import 'styled-components';
|
|
6
6
|
import { c as AwsXrayLogo, U as UptraceLogo, x as TraceloopLogo, T as TempoLogo, w as SumoLogicLogo, v as SplunkLogo, S as SignozLogo, b as AwsS3Logo, u as QuickwitLogo, G as GigapipeLogo, Q as QrynLogo, P as PrometheusLogo, O as OpenTelemetryLogo, t as OpsVerseLogo, N as NewRelicLogo, M as MiddlewareLogo, s as LumigoLogo, r as LokiLogo, q as LogzioLogo, p as LightstepLogo, L as Last9Logo, K as KloudmateLogo, J as JaegerLogo, I as InstanaLogo, o as HyperDxLogo, H as HoneycombLogo, n as GroundcoverLogo, m as GrafanaLogo, l as GoogleCloudPlatformLogo, k as ElasticSearchLogo, E as ElasticApmLogo, j as DynatraceLogo, i as DatadogLogo, D as Dash0Logo, h as CoralogixLogo, a as AwsCloudwatchLogo, g as ClickhouseLogo, f as ChronosphereLogo, C as CauselyLogo, B as BetterStackLogo, e as BlobStorageLogo, d as AxiomLogo, A as AppDynamicsLogo, R as RulesIcon, y as ActionsIcon, z as DestinationsIcon, W as SourcesIcon, F as NamespacesIcon, V as VmLogo } from './index-DB8Djrsy.js';
|
|
7
7
|
import { K as KafkaLogo, O as OdigosLogo } from './index-BsH_egEe.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ProgrammingLanguages, SignalType, StatusType } from './types.js';
|
|
2
2
|
import 'react';
|
|
3
|
-
import './index-
|
|
3
|
+
import './index-BazfJyRh.js';
|
|
4
4
|
import 'styled-components';
|
|
5
5
|
import { I as ImageErrorIcon } from './index-DGel4E-Z.js';
|
|
6
6
|
import { K as KafkaLogo, R as RedisLogo, P as PostgresLogo, N as NginxLogo, M as MysqlLogo, E as ElixirLogo, S as SwiftLogo, a as RustLogo, b as RubyLogo, c as PhpLogo, C as CPlusPlusLogo, d as CSharpLogo, D as DotnetLogo, e as PythonLogo, f as NodejsLogo, G as GoLogo, J as JavaLogo, T as TracesIcon, g as MetricsIcon, L as LogsIcon, O as OdigosLogo, I as InfoIcon, W as WarningTriangleIcon, h as ErrorTriangleIcon, i as CheckCircledIcon } from './index-BsH_egEe.js';
|
package/lib/store.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { u as useDarkMode, a as useDrawerStore, b as useEntityStore, c as useFilterStore, d as useInstrumentStore, e as useModalStore, f as useNotificationStore, g as usePendingStore, h as useSelectedStore, i as useSetupStore } from './index-
|
|
1
|
+
export { u as useDarkMode, a as useDrawerStore, b as useEntityStore, c as useFilterStore, d as useInstrumentStore, e as useModalStore, f as useNotificationStore, g as usePendingStore, h as useSelectedStore, i as useSetupStore } from './index-BazfJyRh.js';
|
|
2
2
|
import './types.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'styled-components';
|
package/lib/theme.js
CHANGED
package/lib/{useSourceSelectionFormData-LmLZzJyk.js → useSourceSelectionFormData-_2PggiXn.js}
RENAMED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ActionType, StatusType, AddNodeTypes, EntityTypes, FieldTypes } from './types.js';
|
|
2
2
|
import { useState, useEffect, useCallback } from 'react';
|
|
3
|
-
import { f as useNotificationStore, e as useModalStore, a as useDrawerStore, b as useEntityStore, i as useSetupStore } from './index-
|
|
3
|
+
import { f as useNotificationStore, e as useModalStore, a as useDrawerStore, b as useEntityStore, i as useSetupStore } from './index-BazfJyRh.js';
|
|
4
4
|
import 'styled-components';
|
|
5
5
|
import { i as isEmpty, s as safeJsonParse } from './index-BZS1ijMm.js';
|
|
6
|
-
import './index-
|
|
6
|
+
import './index-BFRz3l_w.js';
|
|
7
7
|
import { F as FORM_ALERTS } from './index-C_0J5P9M.js';
|
|
8
|
-
import { b as useGenericForm } from './useTransition-
|
|
8
|
+
import { b as useGenericForm } from './useTransition-bXMKBfST.js';
|
|
9
9
|
import { g as getIdFromSseTarget } from './index-7-KCQK-x.js';
|
|
10
10
|
|
|
11
11
|
const INITIAL$2 = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
2
|
-
import './index-
|
|
3
|
-
import { f as useNotificationStore } from './index-
|
|
2
|
+
import './index-BFRz3l_w.js';
|
|
3
|
+
import { f as useNotificationStore } from './index-BazfJyRh.js';
|
|
4
4
|
import { CodeAttributesKeyTypes, PayloadCollectionKeyTypes } from './types.js';
|
|
5
5
|
import styled from 'styled-components';
|
|
6
6
|
|