@odigos/ui-kit 0.0.78 → 0.0.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/lib/components/styled.d.ts +4 -2
- package/lib/components/text/index.d.ts +12 -1
- package/lib/components.js +8 -8
- package/lib/constants/strings/index.d.ts +4 -0
- package/lib/constants.js +1 -1
- package/lib/containers/data-flow-actions-menu/index.d.ts +1 -0
- package/lib/containers/data-flow-actions-menu/search/index.d.ts +3 -1
- package/lib/containers/data-flow-actions-menu/search/search-results/builder.d.ts +1 -1
- package/lib/containers/data-flow-actions-menu/search/search-results/index.d.ts +0 -1
- package/lib/containers.js +187 -124
- package/lib/functions.js +5 -5
- package/lib/hooks.js +3 -3
- package/lib/icons.js +6 -6
- package/lib/{index-0a99fd0b.js → index-192794e8.js} +77 -40
- package/lib/{index-ba84d272.js → index-19b8f8bc.js} +1 -1
- package/lib/{index-1d5c06a0.js → index-6034549d.js} +1 -1
- package/lib/{index-fdf3a268.js → index-90ccd949.js} +4 -0
- package/lib/{index-0d93b2b4.js → index-a067d6e9.js} +2 -2
- package/lib/{index-59aacfd1.js → index-b9d7a992.js} +1 -1
- package/lib/{index-c51fc6a4.js → index-ba4f9a19.js} +3 -3
- package/lib/{index-b5b322ad.js → index-c8aab9c4.js} +1 -1
- package/lib/{index-3a26952d.js → index-e4e75973.js} +2 -2
- package/lib/snippets.js +7 -7
- package/lib/store/useFilterStore.d.ts +1 -1
- package/lib/store.js +1 -1
- package/lib/theme.js +1 -1
- package/lib/{useTransition-ba7b6d8a.js → useTransition-807be8bc.js} +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.0.80](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.79...ui-kit-v0.0.80) (2025-08-10)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* align no-data to center ([#315](https://github.com/odigos-io/ui-kit/issues/315)) ([158e3f8](https://github.com/odigos-io/ui-kit/commit/158e3f831a1edc1d8ca6547c1901cf639db0314c))
|
|
9
|
+
* enhance tooltip rendering to support strong text formatting ([#305](https://github.com/odigos-io/ui-kit/issues/305)) ([f6e0e20](https://github.com/odigos-io/ui-kit/commit/f6e0e20120dbdaef3ce98d1471e0c18d2a8fe273))
|
|
10
|
+
* **search:** integrate search results into action, destination, instrumentation rule, and source tables ([#314](https://github.com/odigos-io/ui-kit/issues/314)) ([c3d6f8c](https://github.com/odigos-io/ui-kit/commit/c3d6f8c93afcc74dd87aef31ca533799325de9e7))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **search:** state management for search input and results display ([#308](https://github.com/odigos-io/ui-kit/issues/308)) ([68a9006](https://github.com/odigos-io/ui-kit/commit/68a9006a9c9346904f071bff9f54167f22176d0a))
|
|
16
|
+
* **source-drawer:** prevent fetching source if already fetched and reset state on delete/update ([#307](https://github.com/odigos-io/ui-kit/issues/307)) ([094d791](https://github.com/odigos-io/ui-kit/commit/094d79170a8a6b717e7837ab20fb306655c8e921))
|
|
17
|
+
|
|
18
|
+
## [0.0.79](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.78...ui-kit-v0.0.79) (2025-08-06)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* general fixes ([#303](https://github.com/odigos-io/ui-kit/issues/303)) ([abd1e7e](https://github.com/odigos-io/ui-kit/commit/abd1e7e8e64f97536c5d99593a1c77f19e22a4ce))
|
|
24
|
+
|
|
3
25
|
## [0.0.78](https://github.com/odigos-io/ui-kit/compare/ui-kit-v0.0.77...ui-kit-v0.0.78) (2025-08-06)
|
|
4
26
|
|
|
5
27
|
|
|
@@ -11,12 +11,14 @@ export declare const FlexColumn: import("styled-components/dist/types").IStyledC
|
|
|
11
11
|
$justifyContent?: CSSProperties["justifyContent"];
|
|
12
12
|
$wrap?: CSSProperties["flexWrap"];
|
|
13
13
|
}>> & string;
|
|
14
|
-
export declare const CenterThis: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").
|
|
14
|
+
export declare const CenterThis: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "$gap" | "$alignItems" | "$justifyContent" | "$wrap"> & {
|
|
15
15
|
$gap?: number;
|
|
16
16
|
$alignItems?: CSSProperties["alignItems"];
|
|
17
17
|
$justifyContent?: CSSProperties["justifyContent"];
|
|
18
18
|
$wrap?: CSSProperties["flexWrap"];
|
|
19
|
-
},
|
|
19
|
+
}, {
|
|
20
|
+
$height?: CSSProperties["height"];
|
|
21
|
+
}>> & string;
|
|
20
22
|
export declare const VerticalScroll: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
21
23
|
export declare const Overlay: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
22
24
|
export declare const ModalBody: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type DetailedHTMLProps, type FC, type HTMLAttributes, type ReactNode } from 'react';
|
|
2
|
+
import { DefaultTheme } from 'styled-components';
|
|
2
3
|
interface TextProps extends DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement> {
|
|
3
4
|
children?: ReactNode;
|
|
4
5
|
color?: string;
|
|
@@ -9,5 +10,15 @@ interface TextProps extends DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HT
|
|
|
9
10
|
opacity?: number;
|
|
10
11
|
decoration?: string;
|
|
11
12
|
}
|
|
13
|
+
declare const getLinksFromText: (text: string) => {
|
|
14
|
+
original: string;
|
|
15
|
+
href: string;
|
|
16
|
+
label: string;
|
|
17
|
+
}[] | undefined;
|
|
18
|
+
declare const getStrongsFromText: (text: string) => {
|
|
19
|
+
original: string;
|
|
20
|
+
label: string;
|
|
21
|
+
}[] | undefined;
|
|
22
|
+
declare const renderText: (text: string, theme: DefaultTheme) => ReactNode;
|
|
12
23
|
declare const Text: FC<TextProps>;
|
|
13
|
-
export { Text, type TextProps };
|
|
24
|
+
export { Text, type TextProps, getLinksFromText, getStrongsFromText, renderText };
|
package/lib/components.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { B as Button } from './index-
|
|
2
|
-
export { A as AutocompleteInput, a as Badge,
|
|
3
|
-
export { C as CancelWarning, D as DeleteWarning } from './index-
|
|
1
|
+
import { B as Button } from './index-192794e8.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-192794e8.js';
|
|
3
|
+
export { C as CancelWarning, D as DeleteWarning } from './index-e4e75973.js';
|
|
4
4
|
import React, { createContext, Component, createElement } from 'react';
|
|
5
|
-
import { T as Theme } from './index-
|
|
5
|
+
import { T as Theme } from './index-90ccd949.js';
|
|
6
6
|
import 'styled-components';
|
|
7
|
-
import './index-
|
|
7
|
+
import './index-19b8f8bc.js';
|
|
8
8
|
import './types.js';
|
|
9
9
|
import './index-5e5f7bda.js';
|
|
10
|
-
import './index-
|
|
11
|
-
import './index-
|
|
10
|
+
import './index-a067d6e9.js';
|
|
11
|
+
import './index-6034549d.js';
|
|
12
12
|
import 'react-dom';
|
|
13
|
-
import './useTransition-
|
|
13
|
+
import './useTransition-807be8bc.js';
|
|
14
14
|
|
|
15
15
|
const ErrorBoundaryContext = createContext(null);
|
|
16
16
|
|
|
@@ -101,6 +101,10 @@ export declare const DISPLAY_TITLES: {
|
|
|
101
101
|
OVERIDDEN: string;
|
|
102
102
|
OVERRIDE_RUNTIME_DETAILS: string;
|
|
103
103
|
OVERRIDE_RUNTIME_WARNING: string;
|
|
104
|
+
ACTIVE: string;
|
|
105
|
+
INACTIVE: string;
|
|
106
|
+
ENABLED: string;
|
|
107
|
+
DISABLED: string;
|
|
104
108
|
};
|
|
105
109
|
export declare const BUTTON_TEXTS: {
|
|
106
110
|
ADD: string;
|
package/lib/constants.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as ACTION_OPTIONS, B as BUTTON_TEXTS, a as DEFAULT_DATA_STREAM_NAME, D as DISPLAY_LANGUAGES, b as DISPLAY_TITLES, F as FORM_ALERTS, I as INSTRUMENTATION_RULE_OPTIONS, L as LANGUAGE_OPTIONS, M as MONITORS_OPTIONS, S as STORAGE_KEYS } from './index-
|
|
1
|
+
export { A as ACTION_OPTIONS, B as BUTTON_TEXTS, a as DEFAULT_DATA_STREAM_NAME, D as DISPLAY_LANGUAGES, b as DISPLAY_TITLES, F as FORM_ALERTS, I as INSTRUMENTATION_RULE_OPTIONS, L as LANGUAGE_OPTIONS, M as MONITORS_OPTIONS, S as STORAGE_KEYS } from './index-90ccd949.js';
|
|
2
2
|
export { D as DESTINATION_CATEGORIES } from './index-1cb4f9e2.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import './types.js';
|
|
@@ -3,6 +3,7 @@ import { EntityTypes } from '@/types';
|
|
|
3
3
|
import { DataStreamSelectProps } from './data-stream-select';
|
|
4
4
|
interface DataFlowActionsMenuProps extends DataStreamSelectProps {
|
|
5
5
|
addEntity?: EntityTypes;
|
|
6
|
+
preventSearchPopup?: boolean;
|
|
6
7
|
}
|
|
7
8
|
declare const DataFlowActionsMenu: React.FC<DataFlowActionsMenuProps>;
|
|
8
9
|
export { DataFlowActionsMenu, type DataFlowActionsMenuProps };
|
|
@@ -16,7 +16,7 @@ export declare const buildSearchResults: ({ instrumentationRules, sources, actio
|
|
|
16
16
|
entities: InstrumentationRule[] | Source[] | Action[] | Destination[];
|
|
17
17
|
}[];
|
|
18
18
|
searchResults: {
|
|
19
|
-
entities:
|
|
19
|
+
entities: Action[] | Destination[] | Source[] | InstrumentationRule[];
|
|
20
20
|
category: Category;
|
|
21
21
|
label: string;
|
|
22
22
|
count: number;
|
package/lib/containers.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import React, { useState, useEffect, forwardRef, useRef, useImperativeHandle, useMemo, Fragment, useCallback, Children } from 'react';
|
|
2
2
|
import styled, { css } from 'styled-components';
|
|
3
|
-
import { b as DISPLAY_TITLES, T as Theme, U as usePendingStore, V as useNotificationStore, O as useDrawerStore, B as BUTTON_TEXTS, W as useEntityStore, A as ACTION_OPTIONS, g as getActionIcon, z as useModalStore, F as FORM_ALERTS, X as useFilterStore, D as DISPLAY_LANGUAGES, M as MONITORS_OPTIONS, d as getInstrumentationRuleIcon, Y as useDataStreamStore, Z as useInstrumentStore, c as getEntityId, S as STORAGE_KEYS, a as DEFAULT_DATA_STREAM_NAME, _ as useSetupStore, e as getProgrammingLanguageIcon, I as INSTRUMENTATION_RULE_OPTIONS, $ as useSelectedStore, j as ImageErrorIcon, a0 as useDarkMode } from './index-
|
|
3
|
+
import { b as DISPLAY_TITLES, T as Theme, U as usePendingStore, V as useNotificationStore, O as useDrawerStore, B as BUTTON_TEXTS, W as useEntityStore, A as ACTION_OPTIONS, g as getActionIcon, z as useModalStore, F as FORM_ALERTS, X as useFilterStore, D as DISPLAY_LANGUAGES, M as MONITORS_OPTIONS, d as getInstrumentationRuleIcon, Y as useDataStreamStore, Z as useInstrumentStore, c as getEntityId, S as STORAGE_KEYS, a as DEFAULT_DATA_STREAM_NAME, _ as useSetupStore, e as getProgrammingLanguageIcon, I as INSTRUMENTATION_RULE_OPTIONS, $ as useSelectedStore, j as ImageErrorIcon, a0 as useDarkMode } from './index-90ccd949.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, K as KeyValueInputsList, w as InputList, _ as Text, R as Segment, Q as SectionTitle, j as DocsButton, z as MonitorsCheckboxes,
|
|
5
|
+
import { e as DataCardFieldTypes, p as FieldLabel, C as Checkbox, o as FieldError, v as Input, x as InputTable, 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, E as ExtendArrow, aa as VerticalScroll, U as SelectionButton, B as Button, n as Dropdown, ag as nodeConfig, ah as useNodesState, ai as useEdgesState, aj as Flow, ak as applyNodeChanges, P as Popup, a3 as Toggle, I as IconButton, 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 } from './index-192794e8.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 } from './index-
|
|
8
|
-
import { C as CrossCircledIcon, O as OdigosLogoText, a as OverviewIcon, F as FilterIcon, D as DataStreamsIcon, A as ArrowIcon, R as RefreshLeftArrowIcon, N as NotificationIcon, U as UserIcon, S as SlackLogo, K as KeyIcon, T as TerminalIcon, G as GearIcon } from './index-
|
|
7
|
+
import { C as CheckCircledIcon, O as OdigosLogo } from './index-6034549d.js';
|
|
8
|
+
import { C as CrossCircledIcon, O as OdigosLogoText, a as OverviewIcon, F as FilterIcon, D as DataStreamsIcon, A as ArrowIcon, R as RefreshLeftArrowIcon, N as NotificationIcon, U as UserIcon, S as SlackLogo, K as KeyIcon, T as TerminalIcon, G as GearIcon } from './index-c8aab9c4.js';
|
|
9
9
|
import { useActionFormData, useSessionStorage, useDataStreamFormData, useDestinationFormData, useClickNotification, useSourceFormData, useSourceSelectionFormData } from './hooks.js';
|
|
10
|
-
import { u as useKeyDown, a as useOnClickOutside, b as useContainerSize, c as useClickNode, d as usePopup, e as useInstrumentationRuleFormData, f as useTransition, g as useTimeAgo, h as useCopy, i as useGenericForm } from './useTransition-
|
|
11
|
-
import { E as EditIcon, T as TrashIcon, S as SearchIcon, h as CheckIcon, P as PlusIcon, a as CopyIcon } from './index-
|
|
12
|
-
import { D as DeleteWarning, C as CancelWarning } from './index-
|
|
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-
|
|
14
|
-
import { f as filterActions, l as getEntityLabel, k as getEntityIcon, v as sleep, n as getPlatformIcon, o as getPlatformLabel, g as formatBytes, i as getContainersIcons, p as getValueForRange, j as getDestinationIcon, e as filterSourcesByStream, d as filterSources, b as filterDestinationsByStream, a as filterDestinations, u as mapDestinationFieldsForDisplay, c as compareCondition, r as getYamlFieldsForDestination, m as getMetricForEntity, q as getWorkloadId, s as hasUnhealthyInstances, h as getContainersInstrumentedCount, t as isOverTime } from './index-
|
|
10
|
+
import { u as useKeyDown, a as useOnClickOutside, b as useContainerSize, c as useClickNode, d as usePopup, e as useInstrumentationRuleFormData, f as useTransition, g as useTimeAgo, h as useCopy, i as useGenericForm } from './useTransition-807be8bc.js';
|
|
11
|
+
import { E as EditIcon, T as TrashIcon, S as SearchIcon, h as CheckIcon, P as PlusIcon, a as CopyIcon } from './index-19b8f8bc.js';
|
|
12
|
+
import { D as DeleteWarning, C as CancelWarning } from './index-e4e75973.js';
|
|
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-a067d6e9.js';
|
|
14
|
+
import { f as filterActions, l as getEntityLabel, k as getEntityIcon, v as sleep, n as getPlatformIcon, o as getPlatformLabel, g as formatBytes, i as getContainersIcons, p as getValueForRange, j as getDestinationIcon, e as filterSourcesByStream, d as filterSources, b as filterDestinationsByStream, a as filterDestinations, u as mapDestinationFieldsForDisplay, c as compareCondition, r as getYamlFieldsForDestination, m as getMetricForEntity, q as getWorkloadId, s as hasUnhealthyInstances, h as getContainersInstrumentedCount, t as isOverTime } from './index-ba4f9a19.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';
|
|
18
|
-
import { a6 as RulesIcon, a7 as SourcesIcon, a3 as ActionsIcon, a4 as DestinationsIcon } from './index-
|
|
18
|
+
import { a6 as RulesIcon, a7 as SourcesIcon, a3 as ActionsIcon, a4 as DestinationsIcon } from './index-b9d7a992.js';
|
|
19
19
|
import 'react-dom';
|
|
20
20
|
|
|
21
21
|
const buildCard$3 = (action) => {
|
|
@@ -518,8 +518,8 @@ const ActionForm = ({ isUpdate, action, formData, formErrors, handleFormChange }
|
|
|
518
518
|
isUpdate && (React.createElement("div", null,
|
|
519
519
|
React.createElement(FieldTitle$2, null, "Status"),
|
|
520
520
|
React.createElement(Segment, { options: [
|
|
521
|
-
{ icon: CheckCircledIcon, label:
|
|
522
|
-
{ icon: CrossCircledIcon, label:
|
|
521
|
+
{ icon: CheckCircledIcon, label: DISPLAY_TITLES.ENABLED, value: false, selectedBgColor: theme.text.success + Theme.opacity.hex['050'] },
|
|
522
|
+
{ icon: CrossCircledIcon, label: DISPLAY_TITLES.DISABLED, value: true, selectedBgColor: theme.text.error + Theme.opacity.hex['050'] },
|
|
523
523
|
], selected: formData.disabled, setSelected: (bool) => handleFormChange('disabled', bool) }))),
|
|
524
524
|
!isUpdate && React.createElement(SectionTitle, { title: '', description: action.docsDescription, actionButton: React.createElement(DocsButton, { endpoint: action.docsEndpoint }) }),
|
|
525
525
|
React.createElement(MonitorsCheckboxes, { title: 'Signals for Processing', required: true, allowedSignals: action.allowedSignals, selectedSignals: formData['signals'], setSelectedSignals: (value) => handleFormChange('signals', value), errorMessage: formErrors['signals'] }),
|
|
@@ -875,6 +875,64 @@ const ConditionsStatuses = ({ conditions, id }) => {
|
|
|
875
875
|
})));
|
|
876
876
|
};
|
|
877
877
|
|
|
878
|
+
const buildSearchResults = ({ instrumentationRules, sources, actions, destinations, searchText, selectedCategory }) => {
|
|
879
|
+
const filteredRules = !searchText ? instrumentationRules : instrumentationRules.filter((rule) => rule.type?.toLowerCase().includes(searchText) || rule.ruleName?.toLowerCase().includes(searchText));
|
|
880
|
+
const filteredSources = !searchText
|
|
881
|
+
? sources
|
|
882
|
+
: sources.filter((source) => source.name?.toLowerCase().includes(searchText) || source.otelServiceName?.toLowerCase().includes(searchText) || source.namespace?.toLowerCase().includes(searchText));
|
|
883
|
+
const filteredActions = !searchText ? actions : actions.filter((action) => action.type?.toLowerCase().includes(searchText) || action.spec.actionName?.toLowerCase().includes(searchText));
|
|
884
|
+
const filteredDestinations = !searchText
|
|
885
|
+
? destinations
|
|
886
|
+
: destinations.filter((destination) => destination.destinationType.displayName?.toLowerCase().includes(searchText) || destination.name?.toLowerCase().includes(searchText));
|
|
887
|
+
const categories = [
|
|
888
|
+
{
|
|
889
|
+
category: EntityTypes.Source,
|
|
890
|
+
label: 'Sources',
|
|
891
|
+
count: filteredSources.length,
|
|
892
|
+
entities: [],
|
|
893
|
+
},
|
|
894
|
+
{
|
|
895
|
+
category: EntityTypes.Action,
|
|
896
|
+
label: 'Actions',
|
|
897
|
+
count: filteredActions.length,
|
|
898
|
+
entities: [],
|
|
899
|
+
},
|
|
900
|
+
{
|
|
901
|
+
category: EntityTypes.Destination,
|
|
902
|
+
label: 'Destinations',
|
|
903
|
+
count: filteredDestinations.length,
|
|
904
|
+
entities: [],
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
category: EntityTypes.InstrumentationRule,
|
|
908
|
+
label: 'Instrumentation Rules',
|
|
909
|
+
count: filteredRules.length,
|
|
910
|
+
entities: [],
|
|
911
|
+
},
|
|
912
|
+
];
|
|
913
|
+
categories.unshift({
|
|
914
|
+
category: 'all',
|
|
915
|
+
label: 'All',
|
|
916
|
+
count: filteredRules.length + filteredSources.length + filteredActions.length + filteredDestinations.length,
|
|
917
|
+
entities: [],
|
|
918
|
+
});
|
|
919
|
+
const searchResults = categories
|
|
920
|
+
.filter(({ count, category }) => !!count && category !== 'all' && ['all', category].includes(selectedCategory))
|
|
921
|
+
.map((item) => ({
|
|
922
|
+
...item,
|
|
923
|
+
entities: item.category === EntityTypes.InstrumentationRule
|
|
924
|
+
? filteredRules
|
|
925
|
+
: item.category === EntityTypes.Source
|
|
926
|
+
? filteredSources
|
|
927
|
+
: item.category === EntityTypes.Action
|
|
928
|
+
? filteredActions
|
|
929
|
+
: item.category === EntityTypes.Destination
|
|
930
|
+
? filteredDestinations
|
|
931
|
+
: [],
|
|
932
|
+
}));
|
|
933
|
+
return { categories, searchResults };
|
|
934
|
+
};
|
|
935
|
+
|
|
878
936
|
const columns$3 = [
|
|
879
937
|
{ key: 'icon', title: '' },
|
|
880
938
|
{ key: 'name', title: DISPLAY_TITLES.NAME, sortable: true },
|
|
@@ -890,7 +948,14 @@ const ActionTable = ({ maxHeight, maxWidth }) => {
|
|
|
890
948
|
const filters = useFilterStore();
|
|
891
949
|
const { actions, actionsLoading } = useEntityStore();
|
|
892
950
|
const { setDrawerType, setDrawerEntityId } = useDrawerStore();
|
|
893
|
-
const filtered = useMemo(() =>
|
|
951
|
+
const filtered = useMemo(() => (buildSearchResults({
|
|
952
|
+
instrumentationRules: [],
|
|
953
|
+
sources: [],
|
|
954
|
+
actions: filterActions(actions, filters),
|
|
955
|
+
destinations: [],
|
|
956
|
+
searchText: filters.searchText,
|
|
957
|
+
selectedCategory: EntityTypes.Action,
|
|
958
|
+
}).searchResults.find(({ category }) => category === EntityTypes.Action)?.entities || []), [actions, filters]);
|
|
894
959
|
const rows = useMemo(() => filtered.map((act) => {
|
|
895
960
|
const { hasErrors, hasWarnings, hasDisableds } = getConditionsBooleans(act.conditions || []);
|
|
896
961
|
return {
|
|
@@ -937,13 +1002,23 @@ const ActionTable = ({ maxHeight, maxWidth }) => {
|
|
|
937
1002
|
{
|
|
938
1003
|
columnKey: 'active-status',
|
|
939
1004
|
component: () => (React.createElement("div", { style: { lineHeight: 1 } },
|
|
940
|
-
React.createElement(Status, { status: act.spec.disabled ? StatusType.Error : StatusType.Success, title: act.spec.disabled ?
|
|
1005
|
+
React.createElement(Status, { status: act.spec.disabled ? StatusType.Error : StatusType.Success, title: act.spec.disabled ? DISPLAY_TITLES.DISABLED : DISPLAY_TITLES.ENABLED, withIcon: true, withBorder: true }))),
|
|
941
1006
|
},
|
|
942
1007
|
],
|
|
943
1008
|
};
|
|
944
1009
|
}), [filtered]);
|
|
945
|
-
const badge = useMemo(() =>
|
|
946
|
-
|
|
1010
|
+
const { badge, badgeTooltip } = useMemo(() => {
|
|
1011
|
+
if (filtered.length !== actions.length) {
|
|
1012
|
+
return {
|
|
1013
|
+
badge: `${filtered.length}/${actions.length}`,
|
|
1014
|
+
badgeTooltip: DISPLAY_TITLES.FILTERED_COUNT_TOOLTIP,
|
|
1015
|
+
};
|
|
1016
|
+
}
|
|
1017
|
+
return {
|
|
1018
|
+
badge: actions.length,
|
|
1019
|
+
badgeTooltip: undefined,
|
|
1020
|
+
};
|
|
1021
|
+
}, [filtered, actions]);
|
|
947
1022
|
return (React.createElement(TableContainer, { "$maxWidth": maxWidth },
|
|
948
1023
|
React.createElement(TableTitleWrap, null,
|
|
949
1024
|
React.createElement(IconTitleBadge, { icon: getEntityIcon(EntityTypes.Action), title: DISPLAY_TITLES.ACTIONS, badge: badge, badgeTooltip: badgeTooltip, loading: actionsLoading })),
|
|
@@ -1902,72 +1977,15 @@ styled.div `
|
|
|
1902
1977
|
border-radius: 24px;
|
|
1903
1978
|
`;
|
|
1904
1979
|
|
|
1905
|
-
const buildSearchResults = ({ instrumentationRules, sources, actions, destinations, searchText, selectedCategory }) => {
|
|
1906
|
-
const filteredRules = !searchText ? instrumentationRules : instrumentationRules.filter((rule) => rule.type?.toLowerCase().includes(searchText) || rule.ruleName?.toLowerCase().includes(searchText));
|
|
1907
|
-
const filteredSources = !searchText
|
|
1908
|
-
? sources
|
|
1909
|
-
: sources.filter((source) => source.name?.toLowerCase().includes(searchText) || source.otelServiceName?.toLowerCase().includes(searchText) || source.namespace?.toLowerCase().includes(searchText));
|
|
1910
|
-
const filteredActions = !searchText ? actions : actions.filter((action) => action.type?.toLowerCase().includes(searchText) || action.spec.actionName?.toLowerCase().includes(searchText));
|
|
1911
|
-
const filteredDestinations = !searchText
|
|
1912
|
-
? destinations
|
|
1913
|
-
: destinations.filter((destination) => destination.destinationType.displayName?.toLowerCase().includes(searchText) || destination.name?.toLowerCase().includes(searchText));
|
|
1914
|
-
const categories = [
|
|
1915
|
-
{
|
|
1916
|
-
category: EntityTypes.Source,
|
|
1917
|
-
label: 'Sources',
|
|
1918
|
-
count: filteredSources.length,
|
|
1919
|
-
entities: [],
|
|
1920
|
-
},
|
|
1921
|
-
{
|
|
1922
|
-
category: EntityTypes.Action,
|
|
1923
|
-
label: 'Actions',
|
|
1924
|
-
count: filteredActions.length,
|
|
1925
|
-
entities: [],
|
|
1926
|
-
},
|
|
1927
|
-
{
|
|
1928
|
-
category: EntityTypes.Destination,
|
|
1929
|
-
label: 'Destinations',
|
|
1930
|
-
count: filteredDestinations.length,
|
|
1931
|
-
entities: [],
|
|
1932
|
-
},
|
|
1933
|
-
{
|
|
1934
|
-
category: EntityTypes.InstrumentationRule,
|
|
1935
|
-
label: 'Instrumentation Rules',
|
|
1936
|
-
count: filteredRules.length,
|
|
1937
|
-
entities: [],
|
|
1938
|
-
},
|
|
1939
|
-
];
|
|
1940
|
-
categories.unshift({
|
|
1941
|
-
category: 'all',
|
|
1942
|
-
label: 'All',
|
|
1943
|
-
count: filteredRules.length + filteredSources.length + filteredActions.length + filteredDestinations.length,
|
|
1944
|
-
entities: [],
|
|
1945
|
-
});
|
|
1946
|
-
const searchResults = categories
|
|
1947
|
-
.filter(({ count, category }) => !!count && category !== 'all' && ['all', category].includes(selectedCategory))
|
|
1948
|
-
.map((item) => ({
|
|
1949
|
-
...item,
|
|
1950
|
-
entities: item.category === EntityTypes.InstrumentationRule
|
|
1951
|
-
? filteredRules
|
|
1952
|
-
: item.category === EntityTypes.Source
|
|
1953
|
-
? filteredSources
|
|
1954
|
-
: item.category === EntityTypes.Action
|
|
1955
|
-
? filteredActions
|
|
1956
|
-
: item.category === EntityTypes.Destination
|
|
1957
|
-
? filteredDestinations
|
|
1958
|
-
: [],
|
|
1959
|
-
}));
|
|
1960
|
-
return { categories, searchResults };
|
|
1961
|
-
};
|
|
1962
|
-
|
|
1963
1980
|
const HorizontalScroll = styled.div `
|
|
1964
1981
|
display: flex;
|
|
1965
1982
|
align-items: center;
|
|
1966
1983
|
overflow-x: scroll;
|
|
1967
1984
|
`;
|
|
1968
|
-
const SearchResults = ({
|
|
1985
|
+
const SearchResults = ({ onClose }) => {
|
|
1969
1986
|
const theme = Theme.useTheme();
|
|
1970
1987
|
const { onClickNode } = useClickNode();
|
|
1988
|
+
const { searchText } = useFilterStore();
|
|
1971
1989
|
const { selectedStreamName } = useDataStreamStore();
|
|
1972
1990
|
const { sources, destinations, actions, instrumentationRules } = useEntityStore();
|
|
1973
1991
|
const { popupRef, popupOpen, setPopupOpen, popupPosition, handlePosition } = usePopup();
|
|
@@ -2002,19 +2020,20 @@ const SearchResults = ({ searchText, onClose }) => {
|
|
|
2002
2020
|
React.createElement(Divider, { thickness: catIdx === searchResults.length - 1 ? 0 : 1, length: '90%', margin: '8px auto' }))))));
|
|
2003
2021
|
};
|
|
2004
2022
|
|
|
2005
|
-
const Search = () => {
|
|
2006
|
-
const
|
|
2023
|
+
const Search = ({ preventPopup = false }) => {
|
|
2024
|
+
const { searchText, setSearchText } = useFilterStore();
|
|
2007
2025
|
const [focused, setFocused] = useState(false);
|
|
2026
|
+
const isOpen = !!searchText || focused;
|
|
2008
2027
|
const onClose = () => {
|
|
2009
|
-
|
|
2028
|
+
setSearchText('');
|
|
2010
2029
|
setFocused(false);
|
|
2011
2030
|
};
|
|
2012
2031
|
const containerRef = useRef(null);
|
|
2013
|
-
useOnClickOutside(containerRef,
|
|
2014
|
-
useKeyDown({ key: 'Escape', active:
|
|
2032
|
+
useOnClickOutside(containerRef, onClose);
|
|
2033
|
+
useKeyDown({ key: 'Escape', active: isOpen }, onClose);
|
|
2015
2034
|
return (React.createElement(RelativeContainer$2, { ref: containerRef },
|
|
2016
|
-
React.createElement(Input, { placeholder: 'Search', icon: SearchIcon, value:
|
|
2017
|
-
|
|
2035
|
+
React.createElement(Input, { placeholder: 'Search', icon: SearchIcon, value: searchText, onChange: (e) => setSearchText(e.target.value.toLowerCase()), onFocus: () => setFocused(true) }),
|
|
2036
|
+
isOpen && !preventPopup ? React.createElement(SearchResults, { onClose: onClose }) : null));
|
|
2018
2037
|
};
|
|
2019
2038
|
|
|
2020
2039
|
const FormWrapper = styled.div `
|
|
@@ -2248,11 +2267,11 @@ const Container$c = styled.div `
|
|
|
2248
2267
|
const PushToEnd = styled.div `
|
|
2249
2268
|
margin-left: auto;
|
|
2250
2269
|
`;
|
|
2251
|
-
const DataFlowActionsMenu = ({ addEntity, onClickNewDataStream, updateDataStream, deleteDataStream }) => {
|
|
2270
|
+
const DataFlowActionsMenu = ({ addEntity, preventSearchPopup, onClickNewDataStream, updateDataStream, deleteDataStream }) => {
|
|
2252
2271
|
const { setCurrentModal } = useModalStore();
|
|
2253
2272
|
return (React.createElement(Container$c, null,
|
|
2254
2273
|
React.createElement(DataStreamSelect, { onClickNewDataStream: onClickNewDataStream, updateDataStream: updateDataStream, deleteDataStream: deleteDataStream }),
|
|
2255
|
-
React.createElement(Search,
|
|
2274
|
+
React.createElement(Search, { preventPopup: preventSearchPopup }),
|
|
2256
2275
|
React.createElement(Filters$1, null),
|
|
2257
2276
|
addEntity && (React.createElement(PushToEnd, null,
|
|
2258
2277
|
React.createElement(AddButton, { "data-id": `add-${addEntity}`, onClick: () => setCurrentModal(addEntity), label: `${BUTTON_TEXTS.ADD} ${addEntity}`, variant: 'primary' })))));
|
|
@@ -2277,11 +2296,12 @@ const buildMonitorsList = (exportedSignals) => Object.keys(exportedSignals)
|
|
|
2277
2296
|
.filter((key) => exportedSignals[key])
|
|
2278
2297
|
.join(', ');
|
|
2279
2298
|
const buildCard$2 = (destination, yamlFields) => {
|
|
2280
|
-
const {
|
|
2299
|
+
const { destinationType, disabled, exportedSignals } = destination;
|
|
2281
2300
|
const arr = [
|
|
2282
|
-
{ title: DISPLAY_TITLES.NAME, value: destinationType.displayName },
|
|
2283
2301
|
{ title: DISPLAY_TITLES.TYPE, value: destinationType.type },
|
|
2302
|
+
{ type: DataCardFieldTypes.ActiveStatus, title: DISPLAY_TITLES.STATUS, value: String(!disabled) },
|
|
2284
2303
|
{ type: DataCardFieldTypes.Monitors, title: DISPLAY_TITLES.MONITORS, value: buildMonitorsList(exportedSignals) },
|
|
2304
|
+
{ title: DISPLAY_TITLES.NAME, value: destinationType.displayName },
|
|
2285
2305
|
];
|
|
2286
2306
|
const mappedFields = mapDestinationFieldsForDisplay(destination, yamlFields);
|
|
2287
2307
|
const mappedFieldsForConditionCompare = mappedFields.map((field) => ({ name: field.key, value: field.value }));
|
|
@@ -2492,8 +2512,8 @@ const DestinationForm = ({ isUpdate, categoryItem, formData, formErrors, validat
|
|
|
2492
2512
|
isUpdate && (React.createElement("div", null,
|
|
2493
2513
|
React.createElement(FieldTitle$1, null, "Status"),
|
|
2494
2514
|
React.createElement(Segment, { options: [
|
|
2495
|
-
{ icon: CheckCircledIcon, label:
|
|
2496
|
-
{ icon: CrossCircledIcon, label:
|
|
2515
|
+
{ icon: CheckCircledIcon, label: DISPLAY_TITLES.ENABLED, value: false, selectedBgColor: theme.text.success + Theme.opacity.hex['050'] },
|
|
2516
|
+
{ icon: CrossCircledIcon, label: DISPLAY_TITLES.DISABLED, value: true, selectedBgColor: theme.text.error + Theme.opacity.hex['050'] },
|
|
2497
2517
|
], selected: formData.disabled, setSelected: (bool) => handleFormChange('disabled', bool) }))),
|
|
2498
2518
|
!isUpdate && (React.createElement(Input, { title: 'Destination name', placeholder: 'Enter destination name', value: formData['name'], onChange: (e) => {
|
|
2499
2519
|
dirtyForm();
|
|
@@ -2960,6 +2980,7 @@ const columns$2 = [
|
|
|
2960
2980
|
{ key: 'name', title: DISPLAY_TITLES.NAME, sortable: true },
|
|
2961
2981
|
{ key: 'type', title: DISPLAY_TITLES.TYPE, sortable: true },
|
|
2962
2982
|
{ key: 'signals', title: DISPLAY_TITLES.MONITORS },
|
|
2983
|
+
{ key: 'active-status', title: DISPLAY_TITLES.STATUS },
|
|
2963
2984
|
{ key: 'conditions', title: 'Conditions' },
|
|
2964
2985
|
{ key: 'throughput', title: 'Throughput', sortable: true },
|
|
2965
2986
|
];
|
|
@@ -2970,8 +2991,15 @@ const DestinationTable = ({ metrics, maxHeight, maxWidth }) => {
|
|
|
2970
2991
|
const { setDrawerType, setDrawerEntityId } = useDrawerStore();
|
|
2971
2992
|
const { destinations, destinationsLoading } = useEntityStore();
|
|
2972
2993
|
const destinationsByStream = useMemo(() => filterDestinationsByStream(destinations, selectedStreamName), [destinations, selectedStreamName]);
|
|
2973
|
-
const
|
|
2974
|
-
|
|
2994
|
+
const filtered = useMemo(() => (buildSearchResults({
|
|
2995
|
+
instrumentationRules: [],
|
|
2996
|
+
sources: [],
|
|
2997
|
+
actions: [],
|
|
2998
|
+
destinations: filterDestinations(destinationsByStream, filters),
|
|
2999
|
+
searchText: filters.searchText,
|
|
3000
|
+
selectedCategory: EntityTypes.Destination,
|
|
3001
|
+
}).searchResults.find(({ category }) => category === EntityTypes.Destination)?.entities || []), [destinationsByStream, filters]);
|
|
3002
|
+
const rows = useMemo(() => filtered.map((dest) => {
|
|
2975
3003
|
const { hasErrors, hasWarnings, hasDisableds } = getConditionsBooleans(dest.conditions || []);
|
|
2976
3004
|
const { icon, iconSrc } = getDestinationIcon(dest.destinationType.type);
|
|
2977
3005
|
return {
|
|
@@ -3000,21 +3028,26 @@ const DestinationTable = ({ metrics, maxHeight, maxWidth }) => {
|
|
|
3000
3028
|
value: formatBytes(getMetricForEntity(metrics, EntityTypes.Destination, dest.id).throughput),
|
|
3001
3029
|
textColor: theme.text.info,
|
|
3002
3030
|
},
|
|
3031
|
+
{
|
|
3032
|
+
columnKey: 'signals',
|
|
3033
|
+
component: () => React.createElement(MonitorsIcons, { withLabels: true, monitors: mapExportedSignals(dest.exportedSignals) }),
|
|
3034
|
+
},
|
|
3003
3035
|
{
|
|
3004
3036
|
columnKey: 'conditions',
|
|
3005
3037
|
component: () => (dest.conditions?.length ? React.createElement(TableCellConditions, { conditions: dest.conditions, id: dest.id }) : null),
|
|
3006
3038
|
},
|
|
3007
3039
|
{
|
|
3008
|
-
columnKey: '
|
|
3009
|
-
component: () => React.createElement(
|
|
3040
|
+
columnKey: 'active-status',
|
|
3041
|
+
component: () => (React.createElement("div", { style: { lineHeight: 1 } },
|
|
3042
|
+
React.createElement(Status, { status: dest.disabled ? StatusType.Error : StatusType.Success, title: dest.disabled ? DISPLAY_TITLES.DISABLED : DISPLAY_TITLES.ENABLED, withIcon: true, withBorder: true }))),
|
|
3010
3043
|
},
|
|
3011
3044
|
],
|
|
3012
3045
|
};
|
|
3013
|
-
}), [
|
|
3046
|
+
}), [filtered, metrics]);
|
|
3014
3047
|
const { badge, badgeTooltip } = useMemo(() => {
|
|
3015
|
-
if (
|
|
3048
|
+
if (filtered.length !== destinationsByStream.length) {
|
|
3016
3049
|
return {
|
|
3017
|
-
badge: `${
|
|
3050
|
+
badge: `${filtered.length}/${destinationsByStream.length}`,
|
|
3018
3051
|
badgeTooltip: DISPLAY_TITLES.FILTERED_COUNT_TOOLTIP,
|
|
3019
3052
|
};
|
|
3020
3053
|
}
|
|
@@ -3022,13 +3055,13 @@ const DestinationTable = ({ metrics, maxHeight, maxWidth }) => {
|
|
|
3022
3055
|
badge: destinationsByStream.length,
|
|
3023
3056
|
badgeTooltip: undefined,
|
|
3024
3057
|
};
|
|
3025
|
-
}, [
|
|
3058
|
+
}, [filtered, destinationsByStream]);
|
|
3026
3059
|
return (React.createElement(TableContainer, { "$maxWidth": maxWidth },
|
|
3027
3060
|
React.createElement(TableTitleWrap, null,
|
|
3028
3061
|
React.createElement(IconTitleBadge, { icon: getEntityIcon(EntityTypes.Destination), title: DISPLAY_TITLES.DESTINATIONS, badge: badge, badgeTooltip: badgeTooltip, loading: destinationsLoading })),
|
|
3029
3062
|
React.createElement(TableWrap, { "$maxHeight": maxHeight },
|
|
3030
3063
|
React.createElement(InteractiveTable, { columns: columns$2, rows: rows })),
|
|
3031
|
-
!
|
|
3064
|
+
!filtered.length && (React.createElement(CenterThis, { style: { marginTop: '2rem' } },
|
|
3032
3065
|
React.createElement(NoDataFound, null)))));
|
|
3033
3066
|
};
|
|
3034
3067
|
|
|
@@ -3310,8 +3343,8 @@ const InstrumentationRuleForm = ({ isUpdate, rule, formData, formErrors, handleF
|
|
|
3310
3343
|
isUpdate ? (React.createElement("div", null,
|
|
3311
3344
|
React.createElement(FieldTitle, null, "Status"),
|
|
3312
3345
|
React.createElement(Segment, { options: [
|
|
3313
|
-
{ icon: CheckCircledIcon, label:
|
|
3314
|
-
{ icon: CrossCircledIcon, label:
|
|
3346
|
+
{ icon: CheckCircledIcon, label: DISPLAY_TITLES.ENABLED, value: false, selectedBgColor: theme.text.success + Theme.opacity.hex['050'] },
|
|
3347
|
+
{ icon: CrossCircledIcon, label: DISPLAY_TITLES.DISABLED, value: true, selectedBgColor: theme.text.error + Theme.opacity.hex['050'] },
|
|
3315
3348
|
], selected: formData.disabled, setSelected: (bool) => handleFormChange('disabled', bool) }))) : (React.createElement(React.Fragment, null,
|
|
3316
3349
|
React.createElement(SectionTitle, { title: '', description: rule.docsDescription, actionButton: React.createElement(DocsButton, { endpoint: rule.docsEndpoint }) }),
|
|
3317
3350
|
React.createElement(Input, { title: 'Rule name', placeholder: 'Use a name that describes the rule', value: formData['ruleName'], onChange: ({ target: { value } }) => handleFormChange('ruleName', value), errorMessage: formErrors['ruleName'] }))),
|
|
@@ -3489,11 +3522,20 @@ const columns$1 = [
|
|
|
3489
3522
|
];
|
|
3490
3523
|
const InstrumentationRuleTable = ({ maxHeight, maxWidth }) => {
|
|
3491
3524
|
const theme = Theme.useTheme();
|
|
3525
|
+
const filters = useFilterStore();
|
|
3492
3526
|
const { setDrawerType, setDrawerEntityId } = useDrawerStore();
|
|
3493
3527
|
const { instrumentationRules, instrumentationRulesLoading } = useEntityStore();
|
|
3528
|
+
const filtered = useMemo(() => (buildSearchResults({
|
|
3529
|
+
instrumentationRules,
|
|
3530
|
+
sources: [],
|
|
3531
|
+
actions: [],
|
|
3532
|
+
destinations: [],
|
|
3533
|
+
searchText: filters.searchText,
|
|
3534
|
+
selectedCategory: EntityTypes.InstrumentationRule,
|
|
3535
|
+
}).searchResults.find(({ category }) => category === EntityTypes.InstrumentationRule)?.entities || []), [instrumentationRules, filters]);
|
|
3494
3536
|
const rows = useMemo(() =>
|
|
3495
3537
|
// note: rules do not have filters yet
|
|
3496
|
-
|
|
3538
|
+
filtered.map((rule) => {
|
|
3497
3539
|
return {
|
|
3498
3540
|
onClick: () => {
|
|
3499
3541
|
setDrawerType(EntityTypes.InstrumentationRule);
|
|
@@ -3533,7 +3575,7 @@ const InstrumentationRuleTable = ({ maxHeight, maxWidth }) => {
|
|
|
3533
3575
|
{
|
|
3534
3576
|
columnKey: 'active-status',
|
|
3535
3577
|
component: () => (React.createElement("div", { style: { lineHeight: 1 } },
|
|
3536
|
-
React.createElement(Status, { status: rule.disabled ? StatusType.Error : StatusType.Success, title: rule.disabled ?
|
|
3578
|
+
React.createElement(Status, { status: rule.disabled ? StatusType.Error : StatusType.Success, title: rule.disabled ? DISPLAY_TITLES.DISABLED : DISPLAY_TITLES.ENABLED, withIcon: true, withBorder: true }))),
|
|
3537
3579
|
},
|
|
3538
3580
|
{
|
|
3539
3581
|
columnKey: 'source-count',
|
|
@@ -3542,13 +3584,25 @@ const InstrumentationRuleTable = ({ maxHeight, maxWidth }) => {
|
|
|
3542
3584
|
},
|
|
3543
3585
|
],
|
|
3544
3586
|
};
|
|
3545
|
-
}), [
|
|
3587
|
+
}), [filtered]);
|
|
3588
|
+
const { badge, badgeTooltip } = useMemo(() => {
|
|
3589
|
+
if (filtered.length !== instrumentationRules.length) {
|
|
3590
|
+
return {
|
|
3591
|
+
badge: `${filtered.length}/${instrumentationRules.length}`,
|
|
3592
|
+
badgeTooltip: DISPLAY_TITLES.FILTERED_COUNT_TOOLTIP,
|
|
3593
|
+
};
|
|
3594
|
+
}
|
|
3595
|
+
return {
|
|
3596
|
+
badge: instrumentationRules.length,
|
|
3597
|
+
badgeTooltip: undefined,
|
|
3598
|
+
};
|
|
3599
|
+
}, [filtered, instrumentationRules]);
|
|
3546
3600
|
return (React.createElement(TableContainer, { "$maxWidth": maxWidth },
|
|
3547
3601
|
React.createElement(TableTitleWrap, null,
|
|
3548
|
-
React.createElement(IconTitleBadge, { icon: getEntityIcon(EntityTypes.Action), title: DISPLAY_TITLES.INSTRUMENTATION_RULES, badge:
|
|
3602
|
+
React.createElement(IconTitleBadge, { icon: getEntityIcon(EntityTypes.Action), title: DISPLAY_TITLES.INSTRUMENTATION_RULES, badge: badge, badgeTooltip: badgeTooltip, loading: instrumentationRulesLoading })),
|
|
3549
3603
|
React.createElement(TableWrap, { "$maxHeight": maxHeight },
|
|
3550
3604
|
React.createElement(InteractiveTable, { columns: columns$1, rows: rows })),
|
|
3551
|
-
!
|
|
3605
|
+
!filtered.length && (React.createElement(CenterThis, { style: { marginTop: '2rem' } },
|
|
3552
3606
|
React.createElement(NoDataFound, null)))));
|
|
3553
3607
|
};
|
|
3554
3608
|
|
|
@@ -4255,11 +4309,11 @@ const Describe$1 = ({ source, fetchSourceDescribe }) => {
|
|
|
4255
4309
|
});
|
|
4256
4310
|
}, [fetchSourceDescribe, source]);
|
|
4257
4311
|
if (!describe && !failed) {
|
|
4258
|
-
return (React.createElement(CenterThis,
|
|
4312
|
+
return (React.createElement(CenterThis, { "$height": '70vh' },
|
|
4259
4313
|
React.createElement(FadeLoader, null)));
|
|
4260
4314
|
}
|
|
4261
|
-
return (React.createElement(FlexColumn, { "$gap": 12 }, failed ? (React.createElement(CenterThis,
|
|
4262
|
-
React.createElement(NoDataFound, { subTitle: 'Could not fetch describe for this source' }))) : !describe?.pods?.length ? (React.createElement(CenterThis,
|
|
4315
|
+
return (React.createElement(FlexColumn, { "$gap": 12 }, failed ? (React.createElement(CenterThis, { "$height": '70vh' },
|
|
4316
|
+
React.createElement(NoDataFound, { subTitle: 'Could not fetch describe for this source' }))) : !describe?.pods?.length ? (React.createElement(CenterThis, { "$height": '70vh' },
|
|
4263
4317
|
React.createElement(NoDataFound, { subTitle: 'Check if you have any running pods and try again' }))) : (describe.pods.map(({ podName, nodeName, phase, agentInjected, runningLatestWorkloadRevision, containers }) => {
|
|
4264
4318
|
const podHasErrors = phase.status !== StatusType.Success || hasUnhealthyInstances(containers);
|
|
4265
4319
|
const podStatus = podHasErrors ? StatusType.Error : StatusType.Success;
|
|
@@ -4323,11 +4377,11 @@ const Libraries = ({ source, fetchSourceLibraries }) => {
|
|
|
4323
4377
|
});
|
|
4324
4378
|
}, [fetchSourceLibraries, source]);
|
|
4325
4379
|
if (!libraries && !failed) {
|
|
4326
|
-
return (React.createElement(CenterThis,
|
|
4380
|
+
return (React.createElement(CenterThis, { "$height": '70vh' },
|
|
4327
4381
|
React.createElement(FadeLoader, null)));
|
|
4328
4382
|
}
|
|
4329
|
-
return (React.createElement(FlexColumn, { "$gap": 12 }, failed ? (React.createElement(CenterThis,
|
|
4330
|
-
React.createElement(NoDataFound, { subTitle: 'Could not fetch libraries for this source' }))) : !libraries?.length ? (React.createElement(CenterThis, { "$gap": 12 },
|
|
4383
|
+
return (React.createElement(FlexColumn, { "$gap": 12 }, failed ? (React.createElement(CenterThis, { "$height": '70vh' },
|
|
4384
|
+
React.createElement(NoDataFound, { subTitle: 'Could not fetch libraries for this source' }))) : !libraries?.length ? (React.createElement(CenterThis, { "$height": '70vh', "$gap": 12 },
|
|
4331
4385
|
React.createElement(NoDataFound, { title: 'No libraries found', subTitle: '' }),
|
|
4332
4386
|
React.createElement(NotificationNote, { type: StatusType.Warning, message: 'This feature is in early development, and has very limited support' }))) : (React.createElement(DataCard, { title: 'Instrumented Libraries' }, libraries.map(({ name, nonIdentifyingAttributes }, i) => (React.createElement(Fragment, { key: `library-${name}` },
|
|
4333
4387
|
React.createElement(Row, null,
|
|
@@ -4373,20 +4427,20 @@ const SourceDrawer = ({ persistSources, updateSource, restartWorkloads, fetchSou
|
|
|
4373
4427
|
const { drawerType, drawerEntityId } = useDrawerStore();
|
|
4374
4428
|
const sourcesByStream = useMemo(() => filterSourcesByStream(sources, selectedStreamName), [sources, selectedStreamName]);
|
|
4375
4429
|
const drawerRef = useRef(null);
|
|
4376
|
-
const isOpen = drawerType
|
|
4430
|
+
const isOpen = drawerType === EntityTypes.Source;
|
|
4377
4431
|
const [isEditing, setIsEditing] = useState(false);
|
|
4378
4432
|
const [isFormDirty, setIsFormDirty] = useState(false);
|
|
4379
4433
|
const [selectedTab, setSelectedTab] = useState(Tabs.Overview);
|
|
4380
4434
|
const [fetchedSource, setFetchedSource] = useState(null);
|
|
4381
4435
|
// this is used to fetch the source on drawer open, so we ensure we have the latest data
|
|
4382
4436
|
useEffect(() => {
|
|
4383
|
-
if (!drawerEntityId)
|
|
4437
|
+
if (!isOpen || !drawerEntityId || !!fetchedSource)
|
|
4384
4438
|
return;
|
|
4385
4439
|
fetchSourceById(drawerEntityId).then((source) => setFetchedSource(source || null));
|
|
4386
|
-
}, [drawerEntityId]);
|
|
4440
|
+
}, [isOpen, drawerEntityId, fetchedSource]);
|
|
4387
4441
|
const { formData, handleFormChange, resetFormData, loadFormWithDrawerItem } = useSourceFormData();
|
|
4388
4442
|
const thisItem = useMemo(() => {
|
|
4389
|
-
if (isOpen)
|
|
4443
|
+
if (!isOpen)
|
|
4390
4444
|
return null;
|
|
4391
4445
|
const found = fetchedSource ||
|
|
4392
4446
|
sourcesByStream?.find((x) => x.namespace === drawerEntityId.namespace && x.name === drawerEntityId.name && x.kind === drawerEntityId.kind);
|
|
@@ -4439,6 +4493,7 @@ const SourceDrawer = ({ persistSources, updateSource, restartWorkloads, fetchSou
|
|
|
4439
4493
|
const handleDelete = async () => {
|
|
4440
4494
|
const { namespace } = thisItem;
|
|
4441
4495
|
persistSources({ [namespace]: [{ ...thisItem, selected: false, currentStreamName: selectedStreamName }] }, {});
|
|
4496
|
+
setFetchedSource(null);
|
|
4442
4497
|
setIsFormDirty(false);
|
|
4443
4498
|
setIsEditing(false);
|
|
4444
4499
|
resetFormData();
|
|
@@ -4449,6 +4504,7 @@ const SourceDrawer = ({ persistSources, updateSource, restartWorkloads, fetchSou
|
|
|
4449
4504
|
const title = formData.otelServiceName !== thisItem.name ? formData.otelServiceName : '';
|
|
4450
4505
|
handleFormChange('otelServiceName', title);
|
|
4451
4506
|
await updateSource(drawerEntityId, { ...formData, otelServiceName: title });
|
|
4507
|
+
setFetchedSource(null);
|
|
4452
4508
|
setIsFormDirty(false);
|
|
4453
4509
|
setIsEditing(false);
|
|
4454
4510
|
};
|
|
@@ -4560,7 +4616,14 @@ const SourceTable = ({ metrics, maxHeight, maxWidth }) => {
|
|
|
4560
4616
|
return 1;
|
|
4561
4617
|
}, [sourcesToCreate, sourcesCreated, sourcesToDelete, sourcesDeleted]);
|
|
4562
4618
|
const sourcesByStream = useMemo(() => filterSourcesByStream(sources, selectedStreamName), [sources, selectedStreamName]);
|
|
4563
|
-
const
|
|
4619
|
+
const filtered = useMemo(() => (buildSearchResults({
|
|
4620
|
+
instrumentationRules: [],
|
|
4621
|
+
sources: filterSources(sourcesByStream, filters),
|
|
4622
|
+
actions: [],
|
|
4623
|
+
destinations: [],
|
|
4624
|
+
searchText: filters.searchText,
|
|
4625
|
+
selectedCategory: EntityTypes.Source,
|
|
4626
|
+
}).searchResults.find(({ category }) => category === EntityTypes.Source)?.entities || []), [sourcesByStream, filters]);
|
|
4564
4627
|
const [hasSelected, totalSelectedSources] = useMemo(() => {
|
|
4565
4628
|
let num = 0;
|
|
4566
4629
|
Object.values(selectedSources).forEach((selectedSources) => {
|
|
@@ -4571,7 +4634,7 @@ const SourceTable = ({ metrics, maxHeight, maxWidth }) => {
|
|
|
4571
4634
|
const onSelectAll = useCallback((bool) => {
|
|
4572
4635
|
if (bool) {
|
|
4573
4636
|
const payload = {};
|
|
4574
|
-
|
|
4637
|
+
filtered.forEach((source) => {
|
|
4575
4638
|
const id = { namespace: source.namespace, name: source.name, kind: source.kind };
|
|
4576
4639
|
const isPending = isThisPending({ entityType: EntityTypes.Source, entityId: id });
|
|
4577
4640
|
if (!isPending) {
|
|
@@ -4588,7 +4651,7 @@ const SourceTable = ({ metrics, maxHeight, maxWidth }) => {
|
|
|
4588
4651
|
else {
|
|
4589
4652
|
setSelectedSources({});
|
|
4590
4653
|
}
|
|
4591
|
-
}, [
|
|
4654
|
+
}, [filtered]);
|
|
4592
4655
|
const onSelectOne = useCallback((source) => {
|
|
4593
4656
|
const { namespace, name, kind } = source;
|
|
4594
4657
|
const payload = { ...selectedSources };
|
|
@@ -4603,7 +4666,7 @@ const SourceTable = ({ metrics, maxHeight, maxWidth }) => {
|
|
|
4603
4666
|
}
|
|
4604
4667
|
setSelectedSources(payload);
|
|
4605
4668
|
}, [selectedSources]);
|
|
4606
|
-
const rows = useMemo(() =>
|
|
4669
|
+
const rows = useMemo(() => filtered.map((source) => {
|
|
4607
4670
|
const id = getWorkloadId(source);
|
|
4608
4671
|
const idString = JSON.stringify(id);
|
|
4609
4672
|
const { hasErrors, hasWarnings, hasDisableds } = getConditionsBooleans(source.conditions || []);
|
|
@@ -4653,11 +4716,11 @@ const SourceTable = ({ metrics, maxHeight, maxWidth }) => {
|
|
|
4653
4716
|
},
|
|
4654
4717
|
],
|
|
4655
4718
|
};
|
|
4656
|
-
}), [
|
|
4719
|
+
}), [filtered, selectedSources, metrics, onSelectOne]);
|
|
4657
4720
|
const { badge, badgeTooltip } = useMemo(() => {
|
|
4658
|
-
if (
|
|
4721
|
+
if (filtered.length !== sourcesByStream.length) {
|
|
4659
4722
|
return {
|
|
4660
|
-
badge: `${
|
|
4723
|
+
badge: `${filtered.length}/${sourcesByStream.length}`,
|
|
4661
4724
|
badgeTooltip: DISPLAY_TITLES.FILTERED_COUNT_TOOLTIP,
|
|
4662
4725
|
};
|
|
4663
4726
|
}
|
|
@@ -4665,10 +4728,10 @@ const SourceTable = ({ metrics, maxHeight, maxWidth }) => {
|
|
|
4665
4728
|
badge: sourcesByStream.length,
|
|
4666
4729
|
badgeTooltip: undefined,
|
|
4667
4730
|
};
|
|
4668
|
-
}, [
|
|
4731
|
+
}, [filtered, sourcesByStream]);
|
|
4669
4732
|
return (React.createElement(TableContainer, { "$maxWidth": maxWidth },
|
|
4670
4733
|
React.createElement(TableTitleWrap, null,
|
|
4671
|
-
React.createElement(Checkbox, { partiallyChecked: hasSelected &&
|
|
4734
|
+
React.createElement(Checkbox, { partiallyChecked: hasSelected && filtered?.length !== totalSelectedSources, value: hasSelected && filtered?.length === totalSelectedSources, onChange: onSelectAll, disabled: !filtered?.length }),
|
|
4672
4735
|
React.createElement(IconTitleBadge, { icon: getEntityIcon(EntityTypes.Source), title: DISPLAY_TITLES.SOURCES, badge: badge, badgeTooltip: badgeTooltip, loading: sourcesLoading && !isAwaitingInstrumentation })),
|
|
4673
4736
|
React.createElement(TableWrap, { "$maxHeight": maxHeight },
|
|
4674
4737
|
React.createElement(InteractiveTable, { columns: columns, rows: isAwaitingInstrumentation ? [] : rows })),
|
|
@@ -4678,7 +4741,7 @@ const SourceTable = ({ metrics, maxHeight, maxWidth }) => {
|
|
|
4678
4741
|
React.createElement(Text, { color: theme.text.info },
|
|
4679
4742
|
!!sourcesToCreate ? 'Instrumenting' : 'Uninstrumenting',
|
|
4680
4743
|
" workloads..."),
|
|
4681
|
-
React.createElement(Badge, { label: `${instrumentingPercent}%` })))) : !
|
|
4744
|
+
React.createElement(Badge, { label: `${instrumentingPercent}%` })))) : !filtered.length ? (React.createElement(CenterThis, { style: { marginTop: '2rem' } },
|
|
4682
4745
|
React.createElement(NoDataFound, null))) : null));
|
|
4683
4746
|
};
|
|
4684
4747
|
|
package/lib/functions.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export { c as capitalizeFirstLetter, f as flattenObjectKeys, g as getConditionsBooleans, a as getMonitorIcon, b as getStatusIcon, i as isStringABoolean, d as isValidVersion, m as mapConditions, n as numbersOnly, p as parseBooleanFromString, e as parseJsonStringToPrettyString, r as removeEmptyValuesFromObject, s as safeJsonStringify, h as splitCamelString } from './index-
|
|
2
|
-
export { c as compareCondition, f as filterActions, a as filterDestinations, b as filterDestinationsByStream, d as filterSources, e as filterSourcesByStream, g as formatBytes, i as getContainersIcons, h as getContainersInstrumentedCount, j as getDestinationIcon, k as getEntityIcon, l as getEntityLabel, m as getMetricForEntity, n as getPlatformIcon, o as getPlatformLabel, p as getValueForRange, q as getWorkloadId, r as getYamlFieldsForDestination, s as hasUnhealthyInstances, t as isOverTime, u as mapDestinationFieldsForDisplay, v as sleep } from './index-
|
|
1
|
+
export { c as capitalizeFirstLetter, f as flattenObjectKeys, g as getConditionsBooleans, a as getMonitorIcon, b as getStatusIcon, i as isStringABoolean, d as isValidVersion, m as mapConditions, n as numbersOnly, p as parseBooleanFromString, e as parseJsonStringToPrettyString, r as removeEmptyValuesFromObject, s as safeJsonStringify, h as splitCamelString } from './index-a067d6e9.js';
|
|
2
|
+
export { c as compareCondition, f as filterActions, a as filterDestinations, b as filterDestinationsByStream, d as filterSources, e as filterSourcesByStream, g as formatBytes, i as getContainersIcons, h as getContainersInstrumentedCount, j as getDestinationIcon, k as getEntityIcon, l as getEntityLabel, m as getMetricForEntity, n as getPlatformIcon, o as getPlatformLabel, p as getValueForRange, q as getWorkloadId, r as getYamlFieldsForDestination, s as hasUnhealthyInstances, t as isOverTime, u as mapDestinationFieldsForDisplay, v as sleep } from './index-ba4f9a19.js';
|
|
3
3
|
export { d as deepClone, i as isEmpty, s as safeJsonParse } from './index-5e5f7bda.js';
|
|
4
|
-
export { g as getActionIcon, c as getEntityId, d as getInstrumentationRuleIcon, e as getProgrammingLanguageIcon } from './index-
|
|
4
|
+
export { g as getActionIcon, c as getEntityId, d as getInstrumentationRuleIcon, e as getProgrammingLanguageIcon } from './index-90ccd949.js';
|
|
5
5
|
export { g as getIdFromSseTarget, i as isLegalK8sLabel, m as mapExportedSignals } from './index-6a6bea6e.js';
|
|
6
6
|
import { ProgrammingLanguages, EntityTypes } from './types.js';
|
|
7
7
|
import 'react';
|
|
8
8
|
import 'styled-components';
|
|
9
|
-
import './index-
|
|
10
|
-
import './index-
|
|
9
|
+
import './index-6034549d.js';
|
|
10
|
+
import './index-b9d7a992.js';
|
|
11
11
|
|
|
12
12
|
const cleanObjectEmptyStringsValues = (obj) => {
|
|
13
13
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
package/lib/hooks.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ActionKeyTypes, ActionType, StatusType, EntityTypes, FieldTypes } from './types.js';
|
|
2
|
-
import { V as useNotificationStore, F as FORM_ALERTS, O as useDrawerStore, W as useEntityStore, Y as useDataStreamStore, _ as useSetupStore } from './index-
|
|
2
|
+
import { V as useNotificationStore, F as FORM_ALERTS, O as useDrawerStore, W as useEntityStore, Y as useDataStreamStore, _ as useSetupStore } from './index-90ccd949.js';
|
|
3
3
|
import { useState, useEffect, useMemo } from 'react';
|
|
4
4
|
import 'styled-components';
|
|
5
5
|
import { i as isEmpty, s as safeJsonParse } from './index-5e5f7bda.js';
|
|
6
|
-
import { i as useGenericForm } from './useTransition-
|
|
7
|
-
export { c as useClickNode, b as useContainerSize, h as useCopy, e as useInstrumentationRuleFormData, u as useKeyDown, a as useOnClickOutside, d as usePopup, g as useTimeAgo, f as useTransition } from './useTransition-
|
|
6
|
+
import { i as useGenericForm } from './useTransition-807be8bc.js';
|
|
7
|
+
export { c as useClickNode, b as useContainerSize, h as useCopy, e as useInstrumentationRuleFormData, u as useKeyDown, a as useOnClickOutside, d as usePopup, g as useTimeAgo, f as useTransition } from './useTransition-807be8bc.js';
|
|
8
8
|
import { g as getIdFromSseTarget, i as isLegalK8sLabel, m as mapExportedSignals } from './index-6a6bea6e.js';
|
|
9
9
|
|
|
10
10
|
const INITIAL$2 = {
|
package/lib/icons.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { T as Theme } from './index-
|
|
2
|
-
export { f as AddClusterInfoIcon, n as CPlusPlusLogo, o as CSharpLogo, C as CodeAttributesIcon, l as CustomInstrumentationIcon, h as DeleteAttributeIcon, p as DotnetLogo, E as ElixirLogo, G as GoLogo, H as HeadersCollectionIcon, j as ImageErrorIcon, J as JavaLogo, K as K8sLogo, k as KafkaLogo, q as MysqlLogo, N as NginxLogo, r as NodejsLogo, m as PayloadCollectionIcon, s as PhpLogo, P as PiiMaskingIcon, t as PostgresLogo, u as PythonLogo, v as RedisLogo, R as RenameAttributeIcon, w as RubyLogo, x as RustLogo, i as SamplerIcon, y as SwiftLogo } from './index-
|
|
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-
|
|
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-
|
|
1
|
+
import { T as Theme } from './index-90ccd949.js';
|
|
2
|
+
export { f as AddClusterInfoIcon, n as CPlusPlusLogo, o as CSharpLogo, C as CodeAttributesIcon, l as CustomInstrumentationIcon, h as DeleteAttributeIcon, p as DotnetLogo, E as ElixirLogo, G as GoLogo, H as HeadersCollectionIcon, j as ImageErrorIcon, J as JavaLogo, K as K8sLogo, k as KafkaLogo, q as MysqlLogo, N as NginxLogo, r as NodejsLogo, m as PayloadCollectionIcon, s as PhpLogo, P as PiiMaskingIcon, t as PostgresLogo, u as PythonLogo, v as RedisLogo, R as RenameAttributeIcon, w as RubyLogo, x as RustLogo, i as SamplerIcon, y as SwiftLogo } from './index-90ccd949.js';
|
|
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-6034549d.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-c8aab9c4.js';
|
|
5
5
|
import React from 'react';
|
|
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-
|
|
7
|
-
export { a3 as ActionsIcon, A as AlaudaLogo, a as AlibabaCloudLogo, b as AppDynamicsLogo, c as AwsCloudwatchLogo, d as AwsS3Logo, e as AwsXrayLogo, f as AxiomLogo, B as BetterStackLogo, g as BlobStorageLogo, h as BonreeLogo, C as CauselyLogo, i as ChecklyLogo, j as ChronosphereLogo, k as ClickhouseLogo, l as CoralogixLogo, D as Dash0Logo, m as DatadogLogo, a4 as DestinationsIcon, n as DynatraceLogo, E as ElasticApmLogo, o as ElasticSearchLogo, G as GigapipeLogo, p as GoogleCloudPlatformLogo, q as GrafanaLogo, r as GreptimeLogo, s as GroundcoverLogo, H as HoneycombLogo, t as HyperDxLogo, I as InstanaLogo, J as JaegerLogo, K as KloudmateLogo, L as Last9Logo, u as LightstepLogo, v as LogzioLogo, w as LokiLogo, x as LumigoLogo, M as MiddlewareLogo, a5 as NamespacesIcon, N as NewRelicLogo, O as ObserveLogo, y as OneUptimeLogo, z as OpenObserveLogo, F as OpenTelemetryLogo, P as OpsVerseLogo, Q as OracleLogo, R as PrometheusLogo, S as QrynLogo, T as QuickwitLogo, a6 as RulesIcon, U as SeqLogo, W as SignozLogo, a7 as SourcesIcon, X as SplunkLogo, Y as SumoLogicLogo, Z as TelemetryHubLogo, _ as TempoLogo, $ as TingyunLogo, a0 as TraceloopLogo, a1 as UptraceLogo, a2 as VictoriaMetricsLogo, V as VmLogo } from './index-
|
|
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-19b8f8bc.js';
|
|
7
|
+
export { a3 as ActionsIcon, A as AlaudaLogo, a as AlibabaCloudLogo, b as AppDynamicsLogo, c as AwsCloudwatchLogo, d as AwsS3Logo, e as AwsXrayLogo, f as AxiomLogo, B as BetterStackLogo, g as BlobStorageLogo, h as BonreeLogo, C as CauselyLogo, i as ChecklyLogo, j as ChronosphereLogo, k as ClickhouseLogo, l as CoralogixLogo, D as Dash0Logo, m as DatadogLogo, a4 as DestinationsIcon, n as DynatraceLogo, E as ElasticApmLogo, o as ElasticSearchLogo, G as GigapipeLogo, p as GoogleCloudPlatformLogo, q as GrafanaLogo, r as GreptimeLogo, s as GroundcoverLogo, H as HoneycombLogo, t as HyperDxLogo, I as InstanaLogo, J as JaegerLogo, K as KloudmateLogo, L as Last9Logo, u as LightstepLogo, v as LogzioLogo, w as LokiLogo, x as LumigoLogo, M as MiddlewareLogo, a5 as NamespacesIcon, N as NewRelicLogo, O as ObserveLogo, y as OneUptimeLogo, z as OpenObserveLogo, F as OpenTelemetryLogo, P as OpsVerseLogo, Q as OracleLogo, R as PrometheusLogo, S as QrynLogo, T as QuickwitLogo, a6 as RulesIcon, U as SeqLogo, W as SignozLogo, a7 as SourcesIcon, X as SplunkLogo, Y as SumoLogicLogo, Z as TelemetryHubLogo, _ as TempoLogo, $ as TingyunLogo, a0 as TraceloopLogo, a1 as UptraceLogo, a2 as VictoriaMetricsLogo, V as VmLogo } from './index-b9d7a992.js';
|
|
8
8
|
import './types.js';
|
|
9
9
|
import 'styled-components';
|
|
10
10
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import React, { useState, useEffect, useRef, forwardRef,
|
|
2
|
-
import { T as Theme, B as BUTTON_TEXTS, j as ImageErrorIcon, M as MONITORS_OPTIONS, a1 as styleInject, U as usePendingStore, $ as useSelectedStore, Z as useInstrumentStore, Q as useActiveNodeStore, V as useNotificationStore, b as DISPLAY_TITLES, L as LANGUAGE_OPTIONS, F as FORM_ALERTS, D as DISPLAY_LANGUAGES, e as getProgrammingLanguageIcon } from './index-
|
|
1
|
+
import React, { Fragment, useMemo, useState, useEffect, useRef, forwardRef, createElement, useCallback, createContext, memo, useContext, useLayoutEffect } from 'react';
|
|
2
|
+
import { T as Theme, B as BUTTON_TEXTS, j as ImageErrorIcon, M as MONITORS_OPTIONS, a1 as styleInject, U as usePendingStore, $ as useSelectedStore, Z as useInstrumentStore, Q as useActiveNodeStore, V as useNotificationStore, b as DISPLAY_TITLES, L as LANGUAGE_OPTIONS, F as FORM_ALERTS, D as DISPLAY_LANGUAGES, e as getProgrammingLanguageIcon } from './index-90ccd949.js';
|
|
3
3
|
import styled, { css } from 'styled-components';
|
|
4
|
-
import { M as MinusIcon$1, h as CheckIcon, L as ListIcon, C as CodeIcon, c as ExtendArrowIcon, P as PlusIcon$1, a as CopyIcon, E as EditIcon, b as EditedIcon, e as SortArrowsIcon, d as NotebookIcon, X as XIcon, f as EyeClosedIcon, g as EyeOpenIcon, N as NoDataIcon, i as CrossIcon, S as SearchIcon, T as TrashIcon } from './index-
|
|
4
|
+
import { M as MinusIcon$1, h as CheckIcon, L as ListIcon, C as CodeIcon, c as ExtendArrowIcon, P as PlusIcon$1, a as CopyIcon, E as EditIcon, b as EditedIcon, e as SortArrowsIcon, d as NotebookIcon, X as XIcon, f as EyeClosedIcon, g as EyeOpenIcon, N as NoDataIcon, i as CrossIcon, S as SearchIcon, T as TrashIcon } from './index-19b8f8bc.js';
|
|
5
5
|
import { StatusType, OtherStatus, EntityTypes, NodeTypes, AddNodeTypes, EdgeTypes, ProgrammingLanguages, IntrumentationStatus, SortDirection, InputTypes, FieldTypes } from './types.js';
|
|
6
6
|
import { s as safeJsonParse, i as isEmpty } from './index-5e5f7bda.js';
|
|
7
|
-
import { b as getStatusIcon, r as removeEmptyValuesFromObject, s as safeJsonStringify, f as flattenObjectKeys, m as mapConditions, g as getConditionsBooleans, c as capitalizeFirstLetter, a as getMonitorIcon, i as isStringABoolean, p as parseBooleanFromString, d as isValidVersion, h as splitCamelString, e as parseJsonStringToPrettyString, n as numbersOnly } from './index-
|
|
7
|
+
import { b as getStatusIcon, r as removeEmptyValuesFromObject, s as safeJsonStringify, f as flattenObjectKeys, m as mapConditions, g as getConditionsBooleans, c as capitalizeFirstLetter, a as getMonitorIcon, i as isStringABoolean, p as parseBooleanFromString, d as isValidVersion, h as splitCamelString, e as parseJsonStringToPrettyString, n as numbersOnly } from './index-a067d6e9.js';
|
|
8
8
|
import ReactDOM, { createPortal } from 'react-dom';
|
|
9
|
-
import { d as usePopup, h as useCopy, c as useClickNode, i as useGenericForm, b as useContainerSize, f as useTransition, u as useKeyDown, a as useOnClickOutside } from './useTransition-
|
|
10
|
-
import { I as InfoIcon } from './index-
|
|
9
|
+
import { d as usePopup, h as useCopy, c as useClickNode, i as useGenericForm, b as useContainerSize, f as useTransition, u as useKeyDown, a as useOnClickOutside } from './useTransition-807be8bc.js';
|
|
10
|
+
import { I as InfoIcon } from './index-6034549d.js';
|
|
11
11
|
|
|
12
12
|
const TextWrapper$2 = styled.div `
|
|
13
13
|
color: ${({ $color, theme }) => $color || theme.text.secondary};
|
|
@@ -19,8 +19,73 @@ const TextWrapper$2 = styled.div `
|
|
|
19
19
|
text-transform: ${({ $family }) => ($family === 'secondary' ? 'uppercase' : 'none')};
|
|
20
20
|
font-family: ${({ theme, $family = 'primary' }) => theme.font_family[$family]};
|
|
21
21
|
`;
|
|
22
|
+
const getLinksFromText = (text) => {
|
|
23
|
+
const links = text.match(/<a[^>]*href="([^"]*)"[^>]*>(.*?)<\/a>/g);
|
|
24
|
+
return links?.map((link) => {
|
|
25
|
+
const [_, href, label] = link.split('"');
|
|
26
|
+
const labelWithoutTags = label.replace('</a>', '').replace('>', '');
|
|
27
|
+
return {
|
|
28
|
+
original: link,
|
|
29
|
+
href,
|
|
30
|
+
label: labelWithoutTags,
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
const getStrongsFromText = (text) => {
|
|
35
|
+
const strongs = text.match(/<strong[^>]*>(.*?)<\/strong>/g);
|
|
36
|
+
return strongs?.map((strong) => {
|
|
37
|
+
const label = strong.replace(/<strong[^>]*>/, '').replace(/<\/strong>/, '');
|
|
38
|
+
return {
|
|
39
|
+
original: strong,
|
|
40
|
+
label,
|
|
41
|
+
};
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
const renderText = (text, theme) => {
|
|
45
|
+
const links = getLinksFromText(text);
|
|
46
|
+
links?.forEach((link, i) => {
|
|
47
|
+
text = text.replace(link.original, `LINK-${i}###`);
|
|
48
|
+
});
|
|
49
|
+
const strongs = getStrongsFromText(text);
|
|
50
|
+
strongs?.forEach((strong, i) => {
|
|
51
|
+
text = text.replace(strong.original, `STRONG-${i}###`);
|
|
52
|
+
});
|
|
53
|
+
const mappedText = text.split(' ').map((word) => {
|
|
54
|
+
if (word.includes('LINK-')) {
|
|
55
|
+
const [linkId, postLabel] = word.split('###');
|
|
56
|
+
const entry = links?.[parseInt(linkId.replace('LINK-', ''))];
|
|
57
|
+
return (React.createElement(Fragment, { key: word },
|
|
58
|
+
React.createElement("a", { href: entry?.href, target: '_blank', style: { color: theme.colors.majestic_blue_soft } }, entry?.label),
|
|
59
|
+
postLabel ? `${postLabel} ` : ' '));
|
|
60
|
+
}
|
|
61
|
+
if (word.includes('STRONG-')) {
|
|
62
|
+
const [strongId, postLabel] = word.split('###');
|
|
63
|
+
const entry = strongs?.[parseInt(strongId.replace('STRONG-', ''))];
|
|
64
|
+
return (React.createElement(Fragment, { key: word },
|
|
65
|
+
React.createElement("strong", { style: { fontWeight: 600 } }, entry?.label),
|
|
66
|
+
postLabel ? `${postLabel} ` : ' '));
|
|
67
|
+
}
|
|
68
|
+
return word + ' ';
|
|
69
|
+
});
|
|
70
|
+
return mappedText;
|
|
71
|
+
};
|
|
22
72
|
const Text = ({ children, color, size, weight, align, family, opacity, decoration, ...props }) => {
|
|
23
|
-
|
|
73
|
+
const theme = Theme.useTheme();
|
|
74
|
+
const textArray = useMemo(() => {
|
|
75
|
+
const str = typeof children === 'string'
|
|
76
|
+
? children
|
|
77
|
+
: Array.isArray(children)
|
|
78
|
+
? // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
79
|
+
children
|
|
80
|
+
.map((x) => (typeof x === 'object' && Object.hasOwn(x, 'props') ? x.props.children : x))
|
|
81
|
+
.filter((x) => x && typeof x === 'string')
|
|
82
|
+
.join(' ')
|
|
83
|
+
: '';
|
|
84
|
+
return str.split('\n');
|
|
85
|
+
}, [children]);
|
|
86
|
+
return (React.createElement(TextWrapper$2, { "$color": color, "$size": size, "$weight": weight, "$align": align, "$family": family, "$opacity": opacity, "$decoration": decoration, ...props }, textArray.map((str, i) => (React.createElement(Fragment, { key: `text-${i}-${str}` },
|
|
87
|
+
renderText(str, theme),
|
|
88
|
+
i !== textArray.length - 1 ? React.createElement("br", null) : null)))));
|
|
24
89
|
};
|
|
25
90
|
|
|
26
91
|
const ErrorWrapper = styled.div `
|
|
@@ -409,6 +474,7 @@ const FlexColumn = styled.div `
|
|
|
409
474
|
`;
|
|
410
475
|
const CenterThis = styled(FlexColumn) `
|
|
411
476
|
width: 100%;
|
|
477
|
+
height: ${({ $height }) => $height || 'unset'};
|
|
412
478
|
align-items: center;
|
|
413
479
|
justify-content: center;
|
|
414
480
|
`;
|
|
@@ -463,42 +529,13 @@ const TextBreakWord = styled(Text) `
|
|
|
463
529
|
word-break: break-word;
|
|
464
530
|
white-space: pre-wrap;
|
|
465
531
|
`;
|
|
466
|
-
const getLinksFromText = (text) => {
|
|
467
|
-
const links = text.match(/<a[^>]*href="([^"]*)"[^>]*>(.*?)<\/a>/g);
|
|
468
|
-
return links?.map((link) => {
|
|
469
|
-
const [_, href, label] = link.split('"');
|
|
470
|
-
const labelWithoutTags = label.replace('</a>', '').replace('>', '');
|
|
471
|
-
return {
|
|
472
|
-
original: link,
|
|
473
|
-
href,
|
|
474
|
-
label: labelWithoutTags,
|
|
475
|
-
};
|
|
476
|
-
});
|
|
477
|
-
};
|
|
478
|
-
const renderText = (text, theme) => {
|
|
479
|
-
const links = getLinksFromText(text);
|
|
480
|
-
links?.forEach((link, i) => {
|
|
481
|
-
text = text.replace(link.original, `LINK-${i}###`);
|
|
482
|
-
});
|
|
483
|
-
const mappedText = text.split(' ').map((word) => {
|
|
484
|
-
if (word.includes('LINK-')) {
|
|
485
|
-
const [linkId, postLabel] = word.split('###');
|
|
486
|
-
const entry = links?.[parseInt(linkId.replace('LINK-', ''))];
|
|
487
|
-
return (React.createElement(Fragment, { key: word },
|
|
488
|
-
React.createElement("a", { href: entry?.href, target: '_blank', style: { color: theme.colors.majestic_blue_soft } }, entry?.label),
|
|
489
|
-
postLabel ? `${postLabel} ` : ''));
|
|
490
|
-
}
|
|
491
|
-
return word + ' ';
|
|
492
|
-
});
|
|
493
|
-
return { mappedText, hasLinks: !!links?.length };
|
|
494
|
-
};
|
|
495
532
|
const Tooltip = ({ withIcon, titleIcon: TitleIcon, title, text, timestamp, children }) => {
|
|
496
533
|
const theme = Theme.useTheme();
|
|
497
534
|
const { popupRef, popupOpen, setPopupOpen, popupPosition, handlePosition } = usePopup({
|
|
498
535
|
defaultClientHeight: 40,
|
|
499
536
|
defaultClientwidth: Math.min((text?.length || 0) * 7.5, 300),
|
|
500
537
|
});
|
|
501
|
-
const
|
|
538
|
+
const hasLinks = useMemo(() => !!getLinksFromText(text || '')?.length, [text]);
|
|
502
539
|
const handleMouseEvent = (e) => {
|
|
503
540
|
const { type, clientX, clientY } = e;
|
|
504
541
|
if (hasLinks) {
|
|
@@ -521,7 +558,7 @@ const Tooltip = ({ withIcon, titleIcon: TitleIcon, title, text, timestamp, child
|
|
|
521
558
|
title && React.createElement(React.Fragment, null,
|
|
522
559
|
title,
|
|
523
560
|
"\u00A0-\u00A0"))),
|
|
524
|
-
React.createElement(TextBreakWord, { size: 12, color: theme.text.info },
|
|
561
|
+
React.createElement(TextBreakWord, { size: 12, color: theme.text.info }, text),
|
|
525
562
|
!!timestamp && (React.createElement(Text, { size: 10, color: theme.text.darker_grey, family: 'secondary', style: { marginTop: '8px' } }, new Date(timestamp).toLocaleString()))))));
|
|
526
563
|
};
|
|
527
564
|
|
|
@@ -17245,7 +17282,7 @@ const RenderValue = ({ type, value }) => {
|
|
|
17245
17282
|
return React.createElement(InteractiveTable, { columns: columns, rows: rows, ...rest });
|
|
17246
17283
|
}
|
|
17247
17284
|
case DataCardFieldTypes.ActiveStatus: {
|
|
17248
|
-
return React.createElement(Status, { status: value == 'true' ? StatusType.Success : StatusType.Error, title: value == 'true' ?
|
|
17285
|
+
return React.createElement(Status, { status: value == 'true' ? StatusType.Success : StatusType.Error, title: value == 'true' ? DISPLAY_TITLES.ENABLED : DISPLAY_TITLES.DISABLED, size: 10, withIcon: true, withBorder: true });
|
|
17249
17286
|
}
|
|
17250
17287
|
case DataCardFieldTypes.CopyText: {
|
|
17251
17288
|
const str = typeof value === 'string' ? value : JSON.stringify(value);
|
|
@@ -38449,4 +38486,4 @@ const WarningModal = ({ isOpen, noOverlay, title = '', description = '', note, a
|
|
|
38449
38486
|
React.createElement(FooterButton, { "data-id": 'deny', variant: denyButton.variant || 'secondary', onClick: onDeny }, denyButton.text)))));
|
|
38450
38487
|
};
|
|
38451
38488
|
|
|
38452
|
-
export {
|
|
38489
|
+
export { getLinksFromText as $, AutocompleteInput as A, Button$4 as B, Checkbox 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, PopupForm as O, Popup as P, SectionTitle as Q, Segment as R, ScrollX as S, ToggleCodeComponent as T, SelectionButton as U, SkeletonLoader as V, Status as W, Stepper as X, TabList as Y, Tag as Z, Text as _, Badge as a, getStrongsFromText as a0, renderText as a1, TextArea as a2, Toggle as a3, Tooltip as a4, TraceLoader as a5, WarningModal as a6, FlexRow as a7, FlexColumn as a8, CenterThis as a9, VerticalScroll as aa, Overlay as ab, ModalBody as ac, TableContainer as ad, TableTitleWrap as ae, TableWrap as af, nodeConfig as ag, useNodesState as ah, useEdgesState as ai, Flow as aj, applyNodeChanges as ak, AddButton$1 as al, MarkerType as am, CopyText as an, PodContainer as ao, SourceContainer as ap, AddNode as aq, BaseNode as ar, EdgedNode as as, FrameNode as at, HeaderNode as au, MapItemNode as av, NoDataNode as aw, ScrollNode as ax, SkeletonNode as ay, LabeledEdge as az, Code as b, ConditionDetails as c, DataCardFields as d, DataCardFieldTypes as e, DataFinger as f, DataTab as g, DescribeRow 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 };
|
|
@@ -1017,6 +1017,10 @@ const DISPLAY_TITLES = {
|
|
|
1017
1017
|
OVERIDDEN: 'Overridden',
|
|
1018
1018
|
OVERRIDE_RUNTIME_DETAILS: 'Override Runtime Details',
|
|
1019
1019
|
OVERRIDE_RUNTIME_WARNING: 'This is an advanced configuration. If the selected programming language is incorrect, data collection may be incomplete or may not occur at all.',
|
|
1020
|
+
ACTIVE: 'Active',
|
|
1021
|
+
INACTIVE: 'Inactive',
|
|
1022
|
+
ENABLED: 'Enabled',
|
|
1023
|
+
DISABLED: 'Disabled',
|
|
1020
1024
|
};
|
|
1021
1025
|
const BUTTON_TEXTS = {
|
|
1022
1026
|
ADD: 'Add',
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { StatusType, OtherStatus, SignalType } from './types.js';
|
|
2
2
|
import 'react';
|
|
3
|
-
import './index-
|
|
3
|
+
import './index-90ccd949.js';
|
|
4
4
|
import 'styled-components';
|
|
5
|
-
import { L as LogsIcon, M as MetricsIcon, T as TracesIcon, C as CheckCircledIcon, E as ErrorTriangleIcon, W as WarningTriangleIcon, I as InfoIcon, O as OdigosLogo } from './index-
|
|
5
|
+
import { L as LogsIcon, M as MetricsIcon, T as TracesIcon, C as CheckCircledIcon, E as ErrorTriangleIcon, W as WarningTriangleIcon, I as InfoIcon, O as OdigosLogo } from './index-6034549d.js';
|
|
6
6
|
|
|
7
7
|
const capitalizeFirstLetter = (string) => {
|
|
8
8
|
return string.charAt(0).toUpperCase() + string.slice(1);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { StatusType, DestinationTypes, EntityTypes, PlatformType } from './types.js';
|
|
2
|
-
import { a as DEFAULT_DATA_STREAM_NAME, e as getProgrammingLanguageIcon, k as KafkaLogo, K as K8sLogo } from './index-
|
|
2
|
+
import { a as DEFAULT_DATA_STREAM_NAME, e as getProgrammingLanguageIcon, k as KafkaLogo, K as K8sLogo } from './index-90ccd949.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'styled-components';
|
|
5
|
-
import { A as AlaudaLogo, a as AlibabaCloudLogo, b as AppDynamicsLogo, f as AxiomLogo, g as BlobStorageLogo, B as BetterStackLogo, h as BonreeLogo, C as CauselyLogo, i as ChecklyLogo, j as ChronosphereLogo, k as ClickhouseLogo, c as AwsCloudwatchLogo, l as CoralogixLogo, D as Dash0Logo, m as DatadogLogo, F as OpenTelemetryLogo, n as DynatraceLogo, E as ElasticApmLogo, o as ElasticSearchLogo, p as GoogleCloudPlatformLogo, q as GrafanaLogo, r as GreptimeLogo, s as GroundcoverLogo, H as HoneycombLogo, t as HyperDxLogo, I as InstanaLogo, J as JaegerLogo, K as KloudmateLogo, L as Last9Logo, u as LightstepLogo, v as LogzioLogo, w as LokiLogo, x as LumigoLogo, M as MiddlewareLogo, N as NewRelicLogo, O as ObserveLogo, y as OneUptimeLogo, z as OpenObserveLogo, P as OpsVerseLogo, Q as OracleLogo, R as PrometheusLogo, S as QrynLogo, G as GigapipeLogo, T as QuickwitLogo, d as AwsS3Logo, U as SeqLogo, W as SignozLogo, X as SplunkLogo, Y as SumoLogicLogo, Z as TelemetryHubLogo, _ as TempoLogo, $ as TingyunLogo, a0 as TraceloopLogo, a1 as UptraceLogo, a2 as VictoriaMetricsLogo, e as AwsXrayLogo, a5 as NamespacesIcon, a7 as SourcesIcon, a4 as DestinationsIcon, a3 as ActionsIcon, a6 as RulesIcon, V as VmLogo } from './index-
|
|
6
|
-
import { O as OdigosLogo } from './index-
|
|
5
|
+
import { A as AlaudaLogo, a as AlibabaCloudLogo, b as AppDynamicsLogo, f as AxiomLogo, g as BlobStorageLogo, B as BetterStackLogo, h as BonreeLogo, C as CauselyLogo, i as ChecklyLogo, j as ChronosphereLogo, k as ClickhouseLogo, c as AwsCloudwatchLogo, l as CoralogixLogo, D as Dash0Logo, m as DatadogLogo, F as OpenTelemetryLogo, n as DynatraceLogo, E as ElasticApmLogo, o as ElasticSearchLogo, p as GoogleCloudPlatformLogo, q as GrafanaLogo, r as GreptimeLogo, s as GroundcoverLogo, H as HoneycombLogo, t as HyperDxLogo, I as InstanaLogo, J as JaegerLogo, K as KloudmateLogo, L as Last9Logo, u as LightstepLogo, v as LogzioLogo, w as LokiLogo, x as LumigoLogo, M as MiddlewareLogo, N as NewRelicLogo, O as ObserveLogo, y as OneUptimeLogo, z as OpenObserveLogo, P as OpsVerseLogo, Q as OracleLogo, R as PrometheusLogo, S as QrynLogo, G as GigapipeLogo, T as QuickwitLogo, d as AwsS3Logo, U as SeqLogo, W as SignozLogo, X as SplunkLogo, Y as SumoLogicLogo, Z as TelemetryHubLogo, _ as TempoLogo, $ as TingyunLogo, a0 as TraceloopLogo, a1 as UptraceLogo, a2 as VictoriaMetricsLogo, e as AwsXrayLogo, a5 as NamespacesIcon, a7 as SourcesIcon, a4 as DestinationsIcon, a3 as ActionsIcon, a6 as RulesIcon, V as VmLogo } from './index-b9d7a992.js';
|
|
6
|
+
import { O as OdigosLogo } from './index-6034549d.js';
|
|
7
7
|
import { s as safeJsonParse } from './index-5e5f7bda.js';
|
|
8
8
|
|
|
9
9
|
const compareCondition = (renderCondition, fields) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { a6 as WarningModal } from './index-192794e8.js';
|
|
3
3
|
import { StatusType, EntityTypes } from './types.js';
|
|
4
|
-
import './index-
|
|
4
|
+
import './index-90ccd949.js';
|
|
5
5
|
import 'styled-components';
|
|
6
6
|
|
|
7
7
|
const CancelWarning = ({ isOpen, noOverlay, name, onApprove, onDeny }) => {
|
package/lib/snippets.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { B as Button, _ as Text, L as NotificationNote } from './index-
|
|
2
|
-
export {
|
|
1
|
+
import { B as Button, _ as Text, L as NotificationNote } from './index-192794e8.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-192794e8.js';
|
|
3
3
|
import React from 'react';
|
|
4
|
-
import { T as Theme, B as BUTTON_TEXTS, b as DISPLAY_TITLES } from './index-
|
|
5
|
-
import { E as EditIcon } from './index-
|
|
4
|
+
import { T as Theme, B as BUTTON_TEXTS, b as DISPLAY_TITLES } from './index-90ccd949.js';
|
|
5
|
+
import { E as EditIcon } from './index-19b8f8bc.js';
|
|
6
6
|
import { StatusType } from './types.js';
|
|
7
7
|
import 'styled-components';
|
|
8
|
-
import { I as InfoIcon } from './index-
|
|
8
|
+
import { I as InfoIcon } from './index-6034549d.js';
|
|
9
9
|
import './index-5e5f7bda.js';
|
|
10
|
-
import './index-
|
|
10
|
+
import './index-a067d6e9.js';
|
|
11
11
|
import 'react-dom';
|
|
12
|
-
import './useTransition-
|
|
12
|
+
import './useTransition-807be8bc.js';
|
|
13
13
|
|
|
14
14
|
const EditButton = ({ label, onClick, variant = 'tertiary', ...props }) => {
|
|
15
15
|
const theme = Theme.useTheme();
|
package/lib/store.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { Q as useActiveNodeStore, a0 as useDarkMode, Y as useDataStreamStore, O as useDrawerStore, W as useEntityStore, X as useFilterStore, Z as useInstrumentStore, z as useModalStore, V as useNotificationStore, U as usePendingStore, $ as useSelectedStore, _ as useSetupStore } from './index-
|
|
1
|
+
export { Q as useActiveNodeStore, a0 as useDarkMode, Y as useDataStreamStore, O as useDrawerStore, W as useEntityStore, X as useFilterStore, Z as useInstrumentStore, z as useModalStore, V as useNotificationStore, U as usePendingStore, $ as useSelectedStore, _ as useSetupStore } from './index-90ccd949.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import './types.js';
|
|
4
4
|
import 'styled-components';
|
package/lib/theme.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z as useModalStore, O as useDrawerStore, Q as useActiveNodeStore } from './index-
|
|
1
|
+
import { z as useModalStore, O as useDrawerStore, Q as useActiveNodeStore } from './index-90ccd949.js';
|
|
2
2
|
import { AddNodeTypes, EntityTypes, PayloadCollectionKeyTypes, CodeAttributesKeyTypes, CustomInstrumentationsKeyTypes } from './types.js';
|
|
3
3
|
import React, { useState, useMemo, useEffect, useRef, useCallback } from 'react';
|
|
4
4
|
import styled from 'styled-components';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odigos/ui-kit",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.80",
|
|
4
4
|
"author": "Odigos",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
"@storybook/addon-docs": "^9.1.1",
|
|
109
109
|
"@storybook/addon-webpack5-compiler-babel": "^3.0.6",
|
|
110
110
|
"@storybook/react-webpack5": "9.1.1",
|
|
111
|
-
"@types/node": "^24.2.
|
|
111
|
+
"@types/node": "^24.2.1",
|
|
112
112
|
"@types/react": "^19.1.9",
|
|
113
113
|
"@types/react-dom": "^19.1.7",
|
|
114
114
|
"babel-loader": "^10.0.0",
|