@odigos/ui-kit 0.0.16 → 0.0.17
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 +16 -0
- package/lib/components/data-tab/index.d.ts +0 -1
- package/lib/components/drawer/drawer-header/index.d.ts +2 -2
- package/lib/components.js +45 -14
- package/lib/constants.js +9 -5
- package/lib/containers/overview-drawer/index.d.ts +2 -2
- package/lib/containers/source-modal/index.d.ts +0 -2
- package/lib/containers/source-selection-form/index.d.ts +0 -1
- package/lib/containers.js +129 -206
- package/lib/functions.js +15 -9
- package/lib/hooks.js +10 -10
- package/lib/icons.js +15 -7
- package/lib/index-B72aw6tI.js +23 -0
- package/lib/{index-D_Qn2U89.js → index-BJxaoI0G.js} +1 -8
- package/lib/{index-DiEc-llU.js → index-BQW5EUgp.js} +10 -7
- package/lib/index-BQs4sULy.js +32 -0
- package/lib/index-BVVVevuY.js +100 -0
- package/lib/index-BWqrekK4.js +11 -0
- package/lib/{index-D6cZdmUs.js → index-BiNX-Cge.js} +85 -130
- package/lib/{index-DM8CZWtL.js → index-BsH_egEe.js} +10 -1
- package/lib/{index-CKtl8KxE.js → index-BxQTUOME.js} +10 -12
- package/lib/index-C1PCuZgw.js +18 -0
- package/lib/{index-CLOUNx6Z.js → index-C3nz3TIx.js} +6 -8
- package/lib/{index-BGlk5VhF.js → index-CIXQeSHu.js} +1 -10
- package/lib/index-CIgHU72d.js +52 -0
- package/lib/index-DbfrGXPH.js +8 -0
- package/lib/{index-lL1o2K_5.js → index-G4WmxXds.js} +4 -21
- package/lib/{index-7-KCQK-x.js → index-Hz7AAE0t.js} +1 -1
- package/lib/{index-DH2zLaey.js → index-KOMAv-TS.js} +1 -8
- package/lib/index-RBS1MqCQ.js +37 -0
- package/lib/react-CjImwkhV.js +44 -0
- package/lib/store.js +6 -3
- package/lib/theme.js +86 -3
- package/lib/types.js +6 -215
- package/lib/useDarkMode-DxhIuVNi.js +201 -0
- package/lib/useSelectedStore-93bIo1kE.js +97 -0
- package/lib/useSetupStore-CoYx1UQw.js +211 -0
- package/lib/{useTransition-hWYVBuSi.js → useTimeAgo-weEj7br6.js} +544 -113
- package/lib/useTransition-D0wUpPGk.js +128 -0
- package/package.json +2 -1
- package/lib/components/auto-complete-input/auto-complete-input.stories.d.ts +0 -9
- package/lib/components/badge/badge.stories.d.ts +0 -13
- package/lib/components/button/button.stories.d.ts +0 -9
- package/lib/components/cancel-warning/cancel-warning.stories.d.ts +0 -9
- package/lib/components/checkbox/checkbox.stories.d.ts +0 -9
- package/lib/components/code/code.stories.d.ts +0 -9
- package/lib/components/condition-details/condition-details.stories.d.ts +0 -14
- package/lib/components/data-card/data-card.stories.d.ts +0 -10
- package/lib/components/data-tab/data-tab.stories.d.ts +0 -15
- package/lib/components/delete-warning/delete-warning.stories.d.ts +0 -9
- package/lib/components/describe-row/describe-row.stories.d.ts +0 -9
- package/lib/components/divider/divider.stories.d.ts +0 -9
- package/lib/components/docs-button/docs-button.stories.d.ts +0 -9
- package/lib/components/drawer/drawer.stories.d.ts +0 -10
- package/lib/components/dropdown/dropdown.stories.d.ts +0 -10
- package/lib/components/error-boundary/error-boundary.stories.d.ts +0 -9
- package/lib/components/extend-arrow/extend-arrow.stories.d.ts +0 -9
- package/lib/components/fade-loader/fade-loader.stories.d.ts +0 -9
- package/lib/components/field-error/field-error.stories.d.ts +0 -9
- package/lib/components/field-label/field-label.stories.d.ts +0 -9
- package/lib/components/header/header.stories.d.ts +0 -9
- package/lib/components/icon-button/icon-button.stories.d.ts +0 -9
- package/lib/components/icon-group/icon-group.stories.d.ts +0 -14
- package/lib/components/icon-title-badge/icon-title-badge.stories.d.ts +0 -9
- package/lib/components/icon-wrapped/icon-wrapped.stories.d.ts +0 -10
- package/lib/components/icons-nav/icons-nav.stories.d.ts +0 -9
- package/lib/components/image-controlled/image-controlled.stories.d.ts +0 -9
- package/lib/components/input/input.stories.d.ts +0 -9
- package/lib/components/input-list/input-list.stories.d.ts +0 -9
- package/lib/components/input-table/input-table.stories.d.ts +0 -9
- package/lib/components/interactive-table/interactive-table.stories.d.ts +0 -12
- package/lib/components/key-value-input-list/key-value-input-list.stories.d.ts +0 -9
- package/lib/components/modal/modal.stories.d.ts +0 -9
- package/lib/components/monitors-checkboxes/monitors-checkboxes.stories.d.ts +0 -9
- package/lib/components/monitors-icons/monitors-icons.stories.d.ts +0 -9
- package/lib/components/navigation-buttons/navigation-buttons.stories.d.ts +0 -9
- package/lib/components/no-data-found/no-data-found.stories.d.ts +0 -9
- package/lib/components/notification-note/notification-note.stories.d.ts +0 -10
- package/lib/components/section-title/section-title.stories.d.ts +0 -9
- package/lib/components/segment/segment.stories.d.ts +0 -9
- package/lib/components/skeleton-loader/skeleton-loader.stories.d.ts +0 -9
- package/lib/components/status/status.stories.d.ts +0 -9
- package/lib/components/stepper/stepper.stories.d.ts +0 -9
- package/lib/components/text/text.stories.d.ts +0 -9
- package/lib/components/textarea/textarea.stories.d.ts +0 -9
- package/lib/components/toggle/toggle.stories.d.ts +0 -9
- package/lib/components/tooltip/tooltip.stories.d.ts +0 -9
- package/lib/components/trace-loader/trace-loader.stories.d.ts +0 -9
- package/lib/components/warning-modal/warning-modal.stories.d.ts +0 -9
- package/lib/containers/action-drawer/action-drawer.stories.d.ts +0 -9
- package/lib/containers/action-form/action-form.stories.d.ts +0 -9
- package/lib/containers/action-modal/action-modal.stories.d.ts +0 -9
- package/lib/containers/action-table/action-table.stories.d.ts +0 -9
- package/lib/containers/await-pipeline/await-pipeline.stories.d.ts +0 -9
- package/lib/containers/compute-platform-select/compute-platform-select.stories.d.ts +0 -9
- package/lib/containers/compute-platforms/compute-platforms.stories.d.ts +0 -9
- package/lib/containers/compute-platforms-actions-menu/compute-platforms-actions-menu.stories.d.ts +0 -9
- package/lib/containers/data-flow/data-flow.stories.d.ts +0 -9
- package/lib/containers/data-flow-actions-menu/data-flow-actions-menu.stories.d.ts +0 -11
- package/lib/containers/destination-drawer/destination-drawer.stories.d.ts +0 -9
- package/lib/containers/destination-form/destination-form.stories.d.ts +0 -9
- package/lib/containers/destination-modal/destination-modal.stories.d.ts +0 -9
- package/lib/containers/destination-selection-form/destination-selection-form.stories.d.ts +0 -9
- package/lib/containers/destination-table/destination-table.stories.d.ts +0 -9
- package/lib/containers/dropdowns/connection-status-dropdown/connection-status-dropdown.stories.d.ts +0 -9
- package/lib/containers/dropdowns/connection-type-dropdown/connection-type-dropdown.stories.d.ts +0 -9
- package/lib/containers/dropdowns/error-dropdown/error-dropdown.stories.d.ts +0 -9
- package/lib/containers/dropdowns/kind-dropdown/error-dropdown.stories.d.ts +0 -9
- package/lib/containers/dropdowns/language-dropdown/language-dropdown.stories.d.ts +0 -9
- package/lib/containers/dropdowns/monitor-dropdown/monitor-dropdown.stories.d.ts +0 -9
- package/lib/containers/dropdowns/namespace-dropdown/namespace-dropdown.stories.d.ts +0 -9
- package/lib/containers/instrumentation-rule-drawer/instrumentation-rule-drawer.stories.d.ts +0 -9
- package/lib/containers/instrumentation-rule-form/instrumentation-rule-form.stories.d.ts +0 -9
- package/lib/containers/instrumentation-rule-modal/instrumentation-rule-modal.stories.d.ts +0 -9
- package/lib/containers/instrumentation-rule-table/instrumentation-rule-table.stories.d.ts +0 -9
- package/lib/containers/multi-source-control/multi-source-control.stories.d.ts +0 -9
- package/lib/containers/notification-manager/notification-manager.stories.d.ts +0 -9
- package/lib/containers/overview-drawer/overview-drawer.stories.d.ts +0 -9
- package/lib/containers/side-nav/side-nav.stories.d.ts +0 -9
- package/lib/containers/slack-invite/slack-invite.stories.d.ts +0 -9
- package/lib/containers/source-drawer/source-drawer.stories.d.ts +0 -9
- package/lib/containers/source-form/source-form.stories.d.ts +0 -9
- package/lib/containers/source-modal/source-modal.stories.d.ts +0 -9
- package/lib/containers/source-selection-form/fast/index.d.ts +0 -7
- package/lib/containers/source-selection-form/simple/controls/index.d.ts +0 -9
- package/lib/containers/source-selection-form/simple/index.d.ts +0 -7
- package/lib/containers/source-selection-form/simple/list/index.d.ts +0 -8
- package/lib/containers/source-selection-form/source-selection-form.stories.d.ts +0 -9
- package/lib/containers/source-table/source-table.stories.d.ts +0 -9
- package/lib/containers/system-overview/system-overview.stories.d.ts +0 -9
- package/lib/containers/table-cell-conditions/table-cell-conditions.stories.d.ts +0 -9
- package/lib/containers/toast-list/toast-list.stories.d.ts +0 -9
- package/lib/containers/toggle-dark-mode/toggle-dark-mode.stories.d.ts +0 -9
- package/lib/icons/actions/add-cluster-info-icon/add-cluster-info-icon.stories.d.ts +0 -8
- package/lib/icons/actions/delete-attribute-icon/delete-attribute-icon.stories.d.ts +0 -8
- package/lib/icons/actions/pii-masking-icon/pii-masking-icon.stories.d.ts +0 -8
- package/lib/icons/actions/rename-attribute-icon/rename-attribute-icon.stories.d.ts +0 -8
- package/lib/icons/actions/sampler-icon/sampler-icon.stories.d.ts +0 -8
- package/lib/icons/brand/odigos-logo/odigos-logo.stories.d.ts +0 -8
- package/lib/icons/brand/odigos-logo-text/odigos-logo-text.stories.d.ts +0 -8
- package/lib/icons/common/arrow-icon/arrow-icon.stories.d.ts +0 -8
- package/lib/icons/common/code-brackets-icon/code-brackets-icon.stories.d.ts +0 -8
- package/lib/icons/common/code-icon/code-icon.stories.d.ts +0 -8
- package/lib/icons/common/command-icon/command-icon.stories.d.ts +0 -8
- package/lib/icons/common/copy-icon/copy-icon.stories.d.ts +0 -8
- package/lib/icons/common/edit-icon/edit-icon.stories.d.ts +0 -8
- package/lib/icons/common/extend-arrow-icon/extend-arrow-icon.stories.d.ts +0 -8
- package/lib/icons/common/filter-icon/filter-icon.stories.d.ts +0 -8
- package/lib/icons/common/folder-icon/folder-icon.stories.d.ts +0 -8
- package/lib/icons/common/image-error-icon/image-error-icon.stories.d.ts +0 -8
- package/lib/icons/common/key-icon/key-icon.stories.d.ts +0 -8
- package/lib/icons/common/list-icon/list-icon.stories.d.ts +0 -8
- package/lib/icons/common/no-data-icon/no-data-icon.stories.d.ts +0 -8
- package/lib/icons/common/notebook-icon/notebook-icon.stories.d.ts +0 -8
- package/lib/icons/common/notification-icon/notification-icon.stories.d.ts +0 -8
- package/lib/icons/common/search-icon/search-icon.stories.d.ts +0 -8
- package/lib/icons/common/sort-arrows-icon/sort-arrows-icon.stories.d.ts +0 -8
- package/lib/icons/common/terminal-icon/terminal-icon.stories.d.ts +0 -8
- package/lib/icons/common/trash-icon/trash-icon.stories.d.ts +0 -8
- package/lib/icons/common/x-icon/x-icon.stories.d.ts +0 -8
- package/lib/icons/compute-platform/k8s-logo/k8s-logo.stories.d.ts +0 -8
- package/lib/icons/compute-platform/vm-logo/vm-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/app-dynamics-logo/app-dynamics-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/aws-cloudwatch-logo/aws-cloudwatch-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/aws-s3-logo/aws-s3-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/aws-xray-logo/aws-xray-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/axiom-logo/axiom-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/better-stack-logo/better-stack-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/blob-storage-logo/blob-storage-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/causely-logo/causely-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/chronosphere-logo/chronosphere-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/clickhouse-logo/clickhouse-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/coralogix-logo/coralogix-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/dash0-logo/dash0-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/datadog-logo/datadog-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/dynatrace-logo/dynatrace-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/elastic-apm-logo/elastic-apm-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/elastic-search-logo/elastic-search-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/gigapipe-logo/gigapipe-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/google-cloud-platform-logo/google-cloud-platform-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/google-cloud-storage-logo/google-cloud-storage-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/grafana-logo/grafana-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/groundcover-logo/groundcover-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/honeycomb-logo/honeycomb-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/hyperdx-logo/hyperdx-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/instana-logo/instana-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/jaeger-logo/jaeger-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/kafka-logo/kafka-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/kloudmate-logo/kloudmate-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/last9-logo/last9-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/lightstep-logo/lightstep-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/logzio-logo/logzio-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/loki-logo/loki-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/lumigo-logo/lumigo-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/middleware-logo/middleware-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/new-relic-logo/new-relic-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/open-telemetry-logo/open-telemetry-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/ops-verse-logo/ops-verse-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/prometheus-logo/prometheus-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/qryn-logo/qryn-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/quickwit-logo/quickwit-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/sentry-logo/sentry-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/signoz-logo/signoz-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/splunk-logo/splunk-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/sumo-logic-logo/sumo-logic-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/tempo-logo/tempo-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/traceloop-logo/traceloop-logo.stories.d.ts +0 -8
- package/lib/icons/destinations/uptrace-logo/uptrace-logo.stories.d.ts +0 -8
- package/lib/icons/instrumentation-rules/code-attributes-icon/code-attributes-icon.stories.d.ts +0 -8
- package/lib/icons/instrumentation-rules/payload-collection-icon/payload-collection-icon.stories.d.ts +0 -8
- package/lib/icons/math/minus-icon/minus-icon.stories.d.ts +0 -8
- package/lib/icons/math/plus-icon/plus-icon.stories.d.ts +0 -8
- package/lib/icons/monitors/logs-icon/logs-icon.stories.d.ts +0 -8
- package/lib/icons/monitors/metrics-icon/metrics-icon.stories.d.ts +0 -8
- package/lib/icons/monitors/traces-icon/traces-icon.stories.d.ts +0 -8
- package/lib/icons/on-off/eye-closed-icon/eye-closed-icon.stories.d.ts +0 -8
- package/lib/icons/on-off/eye-open-icon/eye-open-icon.stories.d.ts +0 -8
- package/lib/icons/on-off/light-off-icon/light-off-icon.stories.d.ts +0 -8
- package/lib/icons/on-off/light-on-icon/light-on-icon.stories.d.ts +0 -8
- package/lib/icons/on-off/moon-icon/moon-icon.stories.d.ts +0 -8
- package/lib/icons/on-off/sun-icon/sun-icon.stories.d.ts +0 -8
- package/lib/icons/overview/actions-icon/actions-icon.stories.d.ts +0 -8
- package/lib/icons/overview/connections-icon/connections-icon.stories.d.ts +0 -8
- package/lib/icons/overview/destinations-icon/destinations-icon.stories.d.ts +0 -8
- package/lib/icons/overview/namespaces-icon/namespaces-icon.stories.d.ts +0 -8
- package/lib/icons/overview/overview-icon/overview-icon.stories.d.ts +0 -8
- package/lib/icons/overview/rules-icon/rules-icon.stories.d.ts +0 -8
- package/lib/icons/overview/service-map-icon/service-map-icon.stories.d.ts +0 -8
- package/lib/icons/overview/sources-icon/sources-icon.stories.d.ts +0 -8
- package/lib/icons/overview/trace-view-icon/trace-view-icon.stories.d.ts +0 -8
- package/lib/icons/programming-languages/c-plus-plus-logo/c-plus-plus-logo.stories.d.ts +0 -8
- package/lib/icons/programming-languages/c-sharp-logo/c-sharp-logo.stories.d.ts +0 -8
- package/lib/icons/programming-languages/dotnet-logo/dotnet-logo.stories.d.ts +0 -8
- package/lib/icons/programming-languages/elixir-logo/elixir-logo.stories.d.ts +0 -8
- package/lib/icons/programming-languages/go-logo/go-logo.stories.d.ts +0 -8
- package/lib/icons/programming-languages/java-logo/java-logo.stories.d.ts +0 -8
- package/lib/icons/programming-languages/mysql-logo/mysql-logo.stories.d.ts +0 -8
- package/lib/icons/programming-languages/nginx-logo/nginx-logo.stories.d.ts +0 -8
- package/lib/icons/programming-languages/nodejs-logo/nodejs-logo.stories.d.ts +0 -8
- package/lib/icons/programming-languages/php-logo/php-logo.stories.d.ts +0 -8
- package/lib/icons/programming-languages/postgres-logo/postgres-logo.stories.d.ts +0 -8
- package/lib/icons/programming-languages/python-logo/python-logo.stories.d.ts +0 -8
- package/lib/icons/programming-languages/redis-logo/redis-logo.stories.d.ts +0 -8
- package/lib/icons/programming-languages/ruby-logo/ruby-logo.stories.d.ts +0 -8
- package/lib/icons/programming-languages/rust-logo/rust-logo.stories.d.ts +0 -8
- package/lib/icons/programming-languages/swift-logo/swift-logo.stories.d.ts +0 -8
- package/lib/icons/social/slack-logo/slack-logo.stories.d.ts +0 -8
- package/lib/icons/status/check-circled-icon/check-circled-icon.stories.d.ts +0 -8
- package/lib/icons/status/check-icon/check-icon.stories.d.ts +0 -8
- package/lib/icons/status/cross-circled-icon/cross-circled-icon.stories.d.ts +0 -8
- package/lib/icons/status/cross-icon/cross-icon.stories.d.ts +0 -8
- package/lib/icons/status/error-round-icon/error-round-icon.stories.d.ts +0 -8
- package/lib/icons/status/error-triangle-icon/error-triangle-icon.stories.d.ts +0 -8
- package/lib/icons/status/info-icon/info-icon.stories.d.ts +0 -8
- package/lib/icons/status/warning-triangle-icon/warning-triangle-icon.stories.d.ts +0 -8
- package/lib/index-IvGLauAo.js +0 -683
- package/lib/useSourceSelectionFormData-R_uK7F7W.js +0 -563
- /package/lib/containers/source-selection-form/{fast/controls → controls}/index.d.ts +0 -0
- /package/lib/containers/source-selection-form/{fast/list → list}/index.d.ts +0 -0
package/lib/containers.js
CHANGED
|
@@ -1,24 +1,31 @@
|
|
|
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-lL1o2K_5.js';
|
|
4
3
|
import { D as DISPLAY_TITLES, F as FORM_ALERTS } from './index-C_0J5P9M.js';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
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-IvGLauAo.js';
|
|
4
|
+
import { f as DataCardFieldTypes, q as FieldLabel, b as Checkbox, p as FieldError, w as Input, y as InputTable, K as KeyValueInputsList, x as InputList, U as Text, O as Segment, S as SectionTitle, j as DocsButton, G as MonitorsCheckboxes, V as TextArea, k as Drawer, h as DeleteWarning, C as CancelWarning, d as ConditionDetails, D as DataCard, M as Modal, N as NavigationButtons, a1 as ModalBody, A as AutocompleteInput, i as Divider, Q as Status, F as FlexRow, X as Tooltip, t as IconWrapped, H as MonitorsIcons, a2 as TableContainer, a3 as TableTitleWrap, s as IconTitleBadge, a4 as TableWrap, z as InteractiveTable, $ as CenterThis, J as NoDataFound, _ as FlexColumn, Y as TraceLoader, a as Badge, B as Button, E as ExtendArrow, n as Dropdown, a5 as getDefaultExportFromCjs, o as FadeLoader, g as DataTab, P as SkeletonLoader, W as Toggle, L as NotificationNote, R as Stepper, I as IconButton, e as DataCardFields, u as IconsNav, r as IconGroup } from './index-BiNX-Cge.js';
|
|
5
|
+
import { A as ActionType, C as CodeAttributesKeyTypes, P as PayloadCollectionKeyTypes, I as InstrumentationRuleType } from './index-RBS1MqCQ.js';
|
|
8
6
|
import Theme from './theme.js';
|
|
9
7
|
import { i as isEmpty, s as safeJsonParse } from './index-BZS1ijMm.js';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
8
|
+
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';
|
|
9
|
+
import { i as CheckCircledIcon, O as OdigosLogo } from './index-BsH_egEe.js';
|
|
10
|
+
import { b as usePendingStore, u as useFilterStore, c as useSelectedStore, a as useInstrumentStore } from './useSelectedStore-93bIo1kE.js';
|
|
11
|
+
import { c as useNotificationStore, u as useDrawerStore, a as useEntityStore, b as useModalStore, d as useSetupStore } from './useSetupStore-CoYx1UQw.js';
|
|
12
|
+
import { b as useKeyDown, c as useOnClickOutside, u as useContainerSize, d as useTransition, a as useCopy } from './useTransition-D0wUpPGk.js';
|
|
13
|
+
import { E as EntityTypes, S as StatusType, C as Crud, O as OtherStatus, F as FieldTypes } from './index-BVVVevuY.js';
|
|
14
|
+
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';
|
|
15
|
+
import { u as useActionFormData, a as useClickNode, c as useDestinationFormData, e as useInstrumentationRuleFormData, h as useTimeAgo, b as useClickNotification, f as useSourceFormData, g as useSourceSelectionFormData } from './useTimeAgo-weEj7br6.js';
|
|
16
|
+
import { A as ACTION_OPTIONS, I as INSTRUMENTATION_RULE_OPTIONS } from './index-G4WmxXds.js';
|
|
17
|
+
import { g as getActionIcon, a as getInstrumentationRuleIcon } from './index-C3nz3TIx.js';
|
|
18
|
+
import { m as mapConditions, b as getStatusIcon, c as capitalizeFirstLetter } from './index-BxQTUOME.js';
|
|
19
|
+
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-BQW5EUgp.js';
|
|
18
20
|
import require$$1 from 'use-sync-external-store/shim';
|
|
19
21
|
import { createPortal } from 'react-dom';
|
|
20
|
-
import {
|
|
22
|
+
import { N as NodeTypes, A as AddNodeTypes, E as EdgeTypes } from './index-B72aw6tI.js';
|
|
23
|
+
import { g as getEntityId } from './index-BQs4sULy.js';
|
|
24
|
+
import { M as MONITORS_OPTIONS } from './index-C1PCuZgw.js';
|
|
25
|
+
import { S as SignalType } from './index-DbfrGXPH.js';
|
|
21
26
|
import { R as RulesIcon, W as SourcesIcon, y as ActionsIcon, z as DestinationsIcon } from './index-DB8Djrsy.js';
|
|
27
|
+
import { u as useDarkMode } from './useDarkMode-DxhIuVNi.js';
|
|
28
|
+
import './index-BWqrekK4.js';
|
|
22
29
|
import 'babel-runtime/helpers/extends';
|
|
23
30
|
import 'babel-runtime/core-js/object/get-prototype-of';
|
|
24
31
|
import 'babel-runtime/helpers/classCallCheck';
|
|
@@ -26,7 +33,37 @@ import 'babel-runtime/helpers/createClass';
|
|
|
26
33
|
import 'babel-runtime/helpers/possibleConstructorReturn';
|
|
27
34
|
import 'babel-runtime/helpers/inherits';
|
|
28
35
|
import 'object-assign';
|
|
29
|
-
import './
|
|
36
|
+
import './react-CjImwkhV.js';
|
|
37
|
+
import './index-Hz7AAE0t.js';
|
|
38
|
+
import './index-CIXQeSHu.js';
|
|
39
|
+
import './index-CIgHU72d.js';
|
|
40
|
+
|
|
41
|
+
function styleInject(css, ref) {
|
|
42
|
+
if ( ref === void 0 ) ref = {};
|
|
43
|
+
var insertAt = ref.insertAt;
|
|
44
|
+
|
|
45
|
+
if (typeof document === 'undefined') { return; }
|
|
46
|
+
|
|
47
|
+
var head = document.head || document.getElementsByTagName('head')[0];
|
|
48
|
+
var style = document.createElement('style');
|
|
49
|
+
style.type = 'text/css';
|
|
50
|
+
|
|
51
|
+
if (insertAt === 'top') {
|
|
52
|
+
if (head.firstChild) {
|
|
53
|
+
head.insertBefore(style, head.firstChild);
|
|
54
|
+
} else {
|
|
55
|
+
head.appendChild(style);
|
|
56
|
+
}
|
|
57
|
+
} else {
|
|
58
|
+
head.appendChild(style);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (style.styleSheet) {
|
|
62
|
+
style.styleSheet.cssText = css;
|
|
63
|
+
} else {
|
|
64
|
+
style.appendChild(document.createTextNode(css));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
30
67
|
|
|
31
68
|
const buildCard$3 = (action) => {
|
|
32
69
|
const { type, spec: { actionName, notes, signals, disabled, collectContainerAttributes, collectWorkloadId, collectClusterId, labelsAttributes, annotationsAttributes, clusterAttributes, attributeNamesToDelete, renames, piiCategories, fallbackSamplingRatio, samplingPercentage, endpointsFilters, }, } = action;
|
|
@@ -307,7 +344,7 @@ const CustomFields$1 = ({ actionType, value, setValue, formErrors }) => {
|
|
|
307
344
|
return Component ? React.createElement(Component, { value: value, setValue: setValue, formErrors: formErrors }) : null;
|
|
308
345
|
};
|
|
309
346
|
|
|
310
|
-
const Container$
|
|
347
|
+
const Container$l = styled.div `
|
|
311
348
|
display: flex;
|
|
312
349
|
flex-direction: column;
|
|
313
350
|
gap: 24px;
|
|
@@ -318,7 +355,7 @@ const FieldTitle$1 = styled(Text) `
|
|
|
318
355
|
`;
|
|
319
356
|
const ActionForm = ({ isUpdate, action, formData, formErrors, handleFormChange }) => {
|
|
320
357
|
const theme = Theme.useTheme();
|
|
321
|
-
return (React.createElement(Container$
|
|
358
|
+
return (React.createElement(Container$l, null,
|
|
322
359
|
isUpdate && (React.createElement("div", null,
|
|
323
360
|
React.createElement(FieldTitle$1, null, "Status"),
|
|
324
361
|
React.createElement(Segment, { options: [
|
|
@@ -332,7 +369,7 @@ const ActionForm = ({ isUpdate, action, formData, formErrors, handleFormChange }
|
|
|
332
369
|
React.createElement(TextArea, { title: 'Notes', value: formData['notes'], onChange: ({ target: { value } }) => handleFormChange('notes', value), errorMessage: formErrors['notes'] })));
|
|
333
370
|
};
|
|
334
371
|
|
|
335
|
-
const OverviewDrawer = forwardRef(({ children, width = 640, title, titleTooltip,
|
|
372
|
+
const OverviewDrawer = forwardRef(({ children, width = 640, title, titleTooltip, icons, iconSrcs, isEdit = false, isFormDirty = false, isLastItem = false, onEdit, onSave, onDelete, onCancel, tabs }, drawerRef) => {
|
|
336
373
|
const theme = Theme.useTheme();
|
|
337
374
|
const { isThisPending } = usePendingStore();
|
|
338
375
|
const { addNotification } = useNotificationStore();
|
|
@@ -420,8 +457,8 @@ const OverviewDrawer = forwardRef(({ children, width = 640, title, titleTooltip,
|
|
|
420
457
|
});
|
|
421
458
|
return (React.createElement(React.Fragment, null,
|
|
422
459
|
React.createElement(Drawer, { isOpen: true, onClose: isEdit ? clickCancel : closeDrawer, closeOnEscape: !isDeleteModalOpen && !isCancelModalOpen, width: `${width + 64}px`, header: {
|
|
423
|
-
|
|
424
|
-
|
|
460
|
+
icons,
|
|
461
|
+
iconSrcs,
|
|
425
462
|
title,
|
|
426
463
|
titleTooltip,
|
|
427
464
|
replaceTitleWith: !isSource && isEdit ? React.createElement(EditTitle, { ref: titleRef, title: title }) : undefined,
|
|
@@ -528,7 +565,7 @@ const ActionDrawer = ({ updateAction, deleteAction }) => {
|
|
|
528
565
|
setIsFormDirty(false);
|
|
529
566
|
}
|
|
530
567
|
};
|
|
531
|
-
return (React.createElement(OverviewDrawer, { ref: drawerRef, title: thisItem.spec.actionName || thisItem.type,
|
|
568
|
+
return (React.createElement(OverviewDrawer, { ref: drawerRef, title: thisItem.spec.actionName || thisItem.type, icons: [getActionIcon(thisItem.type)], isEdit: isEditing, isFormDirty: isFormDirty, onEdit: handleEdit, onSave: handleSave, onDelete: handleDelete, onCancel: handleCancel }, isEditing && thisOptionType ? (React.createElement(FormContainer$3, null,
|
|
532
569
|
React.createElement(ActionForm, { isUpdate: true, action: thisOptionType, formData: formData, formErrors: formErrors, handleFormChange: (...params) => {
|
|
533
570
|
setIsFormDirty(true);
|
|
534
571
|
handleFormChange(...params);
|
|
@@ -746,7 +783,7 @@ const ActionTable = ({ maxHeight, maxWidth }) => {
|
|
|
746
783
|
React.createElement(NoDataFound, null)))));
|
|
747
784
|
};
|
|
748
785
|
|
|
749
|
-
const Container$
|
|
786
|
+
const Container$k = styled(FlexColumn) `
|
|
750
787
|
// width: 100vw;
|
|
751
788
|
// height: 100vh;
|
|
752
789
|
gap: 64px;
|
|
@@ -780,7 +817,7 @@ const AwaitPipeline = () => {
|
|
|
780
817
|
useEffect(() => {
|
|
781
818
|
awaitPipeline();
|
|
782
819
|
}, []);
|
|
783
|
-
return (React.createElement(Container$
|
|
820
|
+
return (React.createElement(Container$k, null,
|
|
784
821
|
React.createElement(OdigosLogoText, { size: 100 }),
|
|
785
822
|
React.createElement(TraceLoader, { width: 400 }),
|
|
786
823
|
React.createElement(TextWrap, null,
|
|
@@ -1060,7 +1097,7 @@ const KindDropdown = ({ title = 'Kind', value, onSelect, onDeselect, ...props })
|
|
|
1060
1097
|
return React.createElement(Dropdown, { disabled: !options?.length, title: title, placeholder: 'All', options: options, value: value, onSelect: onSelect, onDeselect: onDeselect, ...props });
|
|
1061
1098
|
};
|
|
1062
1099
|
|
|
1063
|
-
const Container$
|
|
1100
|
+
const Container$j = styled.div `
|
|
1064
1101
|
display: flex;
|
|
1065
1102
|
align-items: center;
|
|
1066
1103
|
margin: 20px 0;
|
|
@@ -1080,7 +1117,7 @@ const ComputePlatformsActionsMenu = ({ connections }) => {
|
|
|
1080
1117
|
useEffect(() => {
|
|
1081
1118
|
return () => clearAll();
|
|
1082
1119
|
}, [clearAll]);
|
|
1083
|
-
return (React.createElement(Container$
|
|
1120
|
+
return (React.createElement(Container$j, null,
|
|
1084
1121
|
React.createElement(FlexRow, { "$gap": 16 },
|
|
1085
1122
|
React.createElement(FlexRow, { "$gap": 12 },
|
|
1086
1123
|
React.createElement(Title$1, null, "Compute platforms"),
|
|
@@ -12332,7 +12369,7 @@ ControlsComponent.displayName = 'Controls';
|
|
|
12332
12369
|
* @remarks To extend or customise the controls, you can use the [`<ControlButton />`](/api-reference/components/control-button) component
|
|
12333
12370
|
*
|
|
12334
12371
|
*/
|
|
12335
|
-
const Controls$
|
|
12372
|
+
const Controls$1 = memo(ControlsComponent);
|
|
12336
12373
|
|
|
12337
12374
|
function MiniMapNodeComponent({ id, x, y, width, height, style, color, strokeColor, strokeWidth, className, borderRadius, shapeRendering, selected, onClick, }) {
|
|
12338
12375
|
const { background, backgroundColor } = style || {};
|
|
@@ -12643,7 +12680,7 @@ function ResizeControl({ nodeId, position, variant = ResizeControlVariant.Handle
|
|
|
12643
12680
|
*/
|
|
12644
12681
|
memo(ResizeControl);
|
|
12645
12682
|
|
|
12646
|
-
const Container$
|
|
12683
|
+
const Container$i = styled(FlexColumn) `
|
|
12647
12684
|
align-items: center !important;
|
|
12648
12685
|
justify-content: center;
|
|
12649
12686
|
align-self: stretch;
|
|
@@ -12680,7 +12717,7 @@ const AddNode = memo(({ id: nodeId, data }) => {
|
|
|
12680
12717
|
const { isThisPending } = usePendingStore();
|
|
12681
12718
|
const entity = nodeId.split('-')[0];
|
|
12682
12719
|
const isPending = isThisPending({ entityType: entity });
|
|
12683
|
-
return (React.createElement(Container$
|
|
12720
|
+
return (React.createElement(Container$i, { "$nodeWidth": nodeWidth, className: 'nowheel nodrag' },
|
|
12684
12721
|
isPending ? (React.createElement(Fragment, null,
|
|
12685
12722
|
React.createElement(TitleWrapper, null,
|
|
12686
12723
|
React.createElement(FadeLoader, null),
|
|
@@ -12697,17 +12734,23 @@ const AddNode = memo(({ id: nodeId, data }) => {
|
|
|
12697
12734
|
React.createElement(Handle, { type: 'source', position: Position.Right, style: { visibility: 'hidden' } })));
|
|
12698
12735
|
});
|
|
12699
12736
|
|
|
12700
|
-
const Container$
|
|
12737
|
+
const Container$h = styled.div `
|
|
12701
12738
|
width: ${({ $nodeWidth }) => `${$nodeWidth}px`};
|
|
12702
12739
|
`;
|
|
12703
12740
|
const BaseNode = memo(({ id: nodeId, data }) => {
|
|
12741
|
+
const theme = Theme.useTheme();
|
|
12704
12742
|
const { nodeWidth, id: entityId, type: entityType, status, faded, title, subTitle, icon, icons, iconSrc, iconSrcs, monitors, isActive, raw } = data;
|
|
12705
12743
|
const isSource = entityType === EntityTypes.Source;
|
|
12744
|
+
const hasActiveBoolean = typeof isActive === 'boolean';
|
|
12706
12745
|
const { isThisPending } = usePendingStore();
|
|
12707
12746
|
const isPending = isThisPending({ entityType, entityId });
|
|
12708
12747
|
const renderActions = () => {
|
|
12748
|
+
const StatusIcon = hasActiveBoolean ? getStatusIcon(isActive ? StatusType.Success : StatusType.Info, theme) : status && getStatusIcon(status, theme);
|
|
12749
|
+
const statusTooltipText = hasActiveBoolean ? `${entityType} is ${isActive ? 'active' : 'inactive'}` : undefined;
|
|
12709
12750
|
const sourceIsInstrumenting = isSource && (!raw.conditions?.length || raw.conditions?.some(({ status }) => status === 'loading'));
|
|
12710
|
-
|
|
12751
|
+
// TODO: handle action/icon to apply instrumentation-rules for individual sources (@Notion GEN-1650)
|
|
12752
|
+
return isPending ? (React.createElement(FadeLoader, null)) : StatusIcon ? (React.createElement(Tooltip, { text: statusTooltipText },
|
|
12753
|
+
React.createElement(StatusIcon, { size: 20 }))) : sourceIsInstrumenting ? (React.createElement(FadeLoader, null)) : null;
|
|
12711
12754
|
};
|
|
12712
12755
|
const { selectedSources, setSelectedSources } = useSelectedStore();
|
|
12713
12756
|
const namespaces = { ...selectedSources };
|
|
@@ -12724,7 +12767,7 @@ const BaseNode = memo(({ id: nodeId, data }) => {
|
|
|
12724
12767
|
}
|
|
12725
12768
|
setSelectedSources(namespaces);
|
|
12726
12769
|
};
|
|
12727
|
-
return (React.createElement(Container$
|
|
12770
|
+
return (React.createElement(Container$h, { "data-id": nodeId, "$nodeWidth": nodeWidth, className: 'nowheel nodrag' },
|
|
12728
12771
|
React.createElement(DataTab, { title: title, subTitle: subTitle, onClick: () => { }, renderActions: renderActions, iconProps: {
|
|
12729
12772
|
icon: icon,
|
|
12730
12773
|
icons: icons,
|
|
@@ -12732,9 +12775,8 @@ const BaseNode = memo(({ id: nodeId, data }) => {
|
|
|
12732
12775
|
iconSrcs: iconSrcs,
|
|
12733
12776
|
}, visualProps: {
|
|
12734
12777
|
status: status,
|
|
12735
|
-
faded: faded,
|
|
12778
|
+
faded: faded || (hasActiveBoolean && !isActive),
|
|
12736
12779
|
monitors: monitors,
|
|
12737
|
-
isActive: isActive,
|
|
12738
12780
|
}, checkboxProps: {
|
|
12739
12781
|
withCheckbox: isSource,
|
|
12740
12782
|
isChecked: sourceIndex !== -1,
|
|
@@ -12745,19 +12787,19 @@ const BaseNode = memo(({ id: nodeId, data }) => {
|
|
|
12745
12787
|
React.createElement(Handle, { type: 'source', position: Position.Right, style: { visibility: 'hidden' } })));
|
|
12746
12788
|
});
|
|
12747
12789
|
|
|
12748
|
-
const Container$
|
|
12790
|
+
const Container$g = styled.div `
|
|
12749
12791
|
width: ${({ $nodeWidth }) => `${$nodeWidth}px`};
|
|
12750
12792
|
height: ${({ $nodeHeight }) => `${$nodeHeight}px`};
|
|
12751
12793
|
opacity: 0;
|
|
12752
12794
|
`;
|
|
12753
12795
|
const EdgedNode = memo(({ data }) => {
|
|
12754
12796
|
const { nodeWidth, nodeHeight } = data;
|
|
12755
|
-
return (React.createElement(Container$
|
|
12797
|
+
return (React.createElement(Container$g, { "$nodeWidth": nodeWidth, "$nodeHeight": nodeHeight, className: 'nowheel nodrag' },
|
|
12756
12798
|
React.createElement(Handle, { type: 'source', position: Position.Right, style: { visibility: 'hidden' } }),
|
|
12757
12799
|
React.createElement(Handle, { type: 'target', position: Position.Left, style: { visibility: 'hidden' } })));
|
|
12758
12800
|
});
|
|
12759
12801
|
|
|
12760
|
-
const Container$
|
|
12802
|
+
const Container$f = styled.div `
|
|
12761
12803
|
width: ${({ $nodeWidth }) => $nodeWidth}px;
|
|
12762
12804
|
height: ${({ $nodeHeight }) => $nodeHeight}px;
|
|
12763
12805
|
background: transparent;
|
|
@@ -12766,12 +12808,12 @@ const Container$g = styled.div `
|
|
|
12766
12808
|
`;
|
|
12767
12809
|
const FrameNode = memo(({ data }) => {
|
|
12768
12810
|
const { nodeWidth, nodeHeight } = data;
|
|
12769
|
-
return (React.createElement(Container$
|
|
12811
|
+
return (React.createElement(Container$f, { "$nodeWidth": nodeWidth, "$nodeHeight": nodeHeight, className: 'nowheel nodrag' },
|
|
12770
12812
|
React.createElement(Handle, { type: 'source', position: Position.Right, style: { visibility: 'hidden' } }),
|
|
12771
12813
|
React.createElement(Handle, { type: 'target', position: Position.Left, style: { visibility: 'hidden' } })));
|
|
12772
12814
|
});
|
|
12773
12815
|
|
|
12774
|
-
const Container$
|
|
12816
|
+
const Container$e = styled.div `
|
|
12775
12817
|
position: relative;
|
|
12776
12818
|
z-index: 1;
|
|
12777
12819
|
width: ${({ $nodeWidth }) => $nodeWidth}px;
|
|
@@ -12832,7 +12874,7 @@ const ScrollNode = memo(({ data, ...rest }) => {
|
|
|
12832
12874
|
current?.addEventListener('scroll', handleScroll);
|
|
12833
12875
|
return () => current?.removeEventListener('scroll', handleScroll);
|
|
12834
12876
|
}, [onScroll]);
|
|
12835
|
-
return (React.createElement(Container$
|
|
12877
|
+
return (React.createElement(Container$e, { ref: containerRef, "$nodeWidth": nodeWidth, "$nodeHeight": nodeHeight, className: 'nowheel nodrag' },
|
|
12836
12878
|
items.map((item) => (React.createElement(BaseNodeWrapper, { key: item.id, "$framePadding": item.data.framePadding, onClick: (e) => {
|
|
12837
12879
|
e.stopPropagation();
|
|
12838
12880
|
// @ts-ignore
|
|
@@ -12842,7 +12884,7 @@ const ScrollNode = memo(({ data, ...rest }) => {
|
|
|
12842
12884
|
React.createElement(LoadMoreWrapper, { "$hide": isBottomOfList })));
|
|
12843
12885
|
});
|
|
12844
12886
|
|
|
12845
|
-
const Container$
|
|
12887
|
+
const Container$d = styled.div `
|
|
12846
12888
|
position: relative;
|
|
12847
12889
|
width: ${({ $nodeWidth }) => `${$nodeWidth}px`};
|
|
12848
12890
|
padding: 12px 0px 16px 0px;
|
|
@@ -12911,7 +12953,7 @@ const HeaderNode = memo(({ id: nodeId, data }) => {
|
|
|
12911
12953
|
setSelectedSources({});
|
|
12912
12954
|
}
|
|
12913
12955
|
};
|
|
12914
|
-
return (React.createElement(Container$
|
|
12956
|
+
return (React.createElement(Container$d, { "$nodeWidth": nodeWidth, className: 'nowheel nodrag' },
|
|
12915
12957
|
entityType === EntityTypes.Source && (React.createElement(SelectorWrapper, null,
|
|
12916
12958
|
React.createElement(Checkbox, { partiallyChecked: hasSelected && sources?.length !== totalSelectedSources, value: hasSelected && sources?.length === totalSelectedSources, onChange: onSelect, disabled: !sources?.length }))),
|
|
12917
12959
|
React.createElement(IconTitleBadge, { icon: Icon, title: title, badge: isSourceAwaitingInstrumentation ? `${instrumentingPercent}%` : badge, badgeTooltip: badgeTooltip, loading: isFetching && !isSourceAwaitingInstrumentation }),
|
|
@@ -12973,12 +13015,12 @@ const LabeledEdge = memo(({ id, sourceX, sourceY, targetX, targetY, sourcePositi
|
|
|
12973
13015
|
React.createElement(Tooltip, { text: 'Heads up! The data-flow metrics you see are calculated over 10-second intervals.' }, data?.label)))));
|
|
12974
13016
|
});
|
|
12975
13017
|
|
|
12976
|
-
const Container$
|
|
13018
|
+
const Container$c = styled.div `
|
|
12977
13019
|
width: ${({ $nodeWidth }) => `${$nodeWidth}px`};
|
|
12978
13020
|
`;
|
|
12979
13021
|
const SkeletonNode = memo(({ id: nodeId, data }) => {
|
|
12980
13022
|
const { nodeWidth } = data;
|
|
12981
|
-
return (React.createElement(Container$
|
|
13023
|
+
return (React.createElement(Container$c, { "data-id": nodeId, "$nodeWidth": nodeWidth, className: 'nowheel nodrag' },
|
|
12982
13024
|
React.createElement(SkeletonLoader, { size: 3 })));
|
|
12983
13025
|
});
|
|
12984
13026
|
|
|
@@ -13020,7 +13062,7 @@ const Flow = ({ nodes, edges, onNodesChange, onEdgesChange }) => {
|
|
|
13020
13062
|
return (React.createElement(FlowWrapper, null,
|
|
13021
13063
|
React.createElement(index, { fitView: false, zoomOnScroll: false, nodes: nodes, nodeTypes: nodeTypes, edges: edges, edgeTypes: edgeTypes, onNodeClick: onClickNode, onNodesChange: (changes) => setTimeout(() => onNodesChange(changes), 0), onEdgesChange: (changes) => setTimeout(() => onEdgesChange(changes), 0) },
|
|
13022
13064
|
React.createElement(ControllerWrapper, null,
|
|
13023
|
-
React.createElement(Controls$
|
|
13065
|
+
React.createElement(Controls$1, { position: 'bottom-right', orientation: 'horizontal', showInteractive: false, showZoom: true, showFitView: true, fitViewOptions: {
|
|
13024
13066
|
duration: 300,
|
|
13025
13067
|
padding: 0.02,
|
|
13026
13068
|
includeHiddenNodes: true,
|
|
@@ -13483,7 +13525,7 @@ const buildDestinationNodes = ({ loading, entities, positions, unfilteredCount }
|
|
|
13483
13525
|
return nodes;
|
|
13484
13526
|
};
|
|
13485
13527
|
|
|
13486
|
-
const Container$
|
|
13528
|
+
const Container$b = styled.div `
|
|
13487
13529
|
width: 100%;
|
|
13488
13530
|
height: ${({ $heightToRemove }) => `calc(100vh - ${$heightToRemove})`};
|
|
13489
13531
|
position: relative;
|
|
@@ -13556,7 +13598,7 @@ const DataFlow = ({ heightToRemove, metrics }) => {
|
|
|
13556
13598
|
});
|
|
13557
13599
|
handleNodesChanged(ruleNodes, EntityTypes.InstrumentationRule);
|
|
13558
13600
|
}, [instrumentationRules, instrumentationRulesLoading, positions[EntityTypes.InstrumentationRule]]);
|
|
13559
|
-
return (React.createElement(Container$
|
|
13601
|
+
return (React.createElement(Container$b, { ref: containerRef, "$heightToRemove": heightToRemove },
|
|
13560
13602
|
React.createElement(Flow, { nodes: nodes, edges: edges, onNodesChange: onNodesChange, onEdgesChange: onEdgesChange })));
|
|
13561
13603
|
};
|
|
13562
13604
|
|
|
@@ -13695,7 +13737,7 @@ const FormWrapper = styled.div `
|
|
|
13695
13737
|
gap: 12px;
|
|
13696
13738
|
padding: 12px;
|
|
13697
13739
|
`;
|
|
13698
|
-
const ToggleWrapper
|
|
13740
|
+
const ToggleWrapper = styled.div `
|
|
13699
13741
|
padding: 12px 6px 6px 6px;
|
|
13700
13742
|
`;
|
|
13701
13743
|
const Actions = styled.div `
|
|
@@ -13768,7 +13810,7 @@ const Filters$1 = () => {
|
|
|
13768
13810
|
React.createElement(KindDropdown, { value: filters['kinds'], onSelect: (val) => setFilters((prev) => ({ ...prev, kinds: [...(prev.kinds || []), val] })), onDeselect: (val) => setFilters((prev) => ({ ...prev, kinds: (prev.kinds || []).filter((opt) => opt.id !== val.id) })), showSearch: true, required: true, isMulti: true }),
|
|
13769
13811
|
React.createElement(LanguageDropdown, { value: filters['languages'], onSelect: (val) => setFilters((prev) => ({ ...prev, languages: [...(prev.languages || []), val] })), onDeselect: (val) => setFilters((prev) => ({ ...prev, languages: (prev.languages || []).filter((opt) => opt.id !== val.id) })), showSearch: true, required: true, isMulti: true }),
|
|
13770
13812
|
React.createElement(MonitorDropdown, { value: filters['monitors'], onSelect: (val) => setFilters((prev) => ({ ...prev, monitors: [...(prev.monitors || []), val] })), onDeselect: (val) => setFilters((prev) => ({ ...prev, monitors: (prev.monitors || []).filter((opt) => opt.id !== val.id) })), showSearch: true, required: true, isMulti: true }),
|
|
13771
|
-
React.createElement(ToggleWrapper
|
|
13813
|
+
React.createElement(ToggleWrapper, null,
|
|
13772
13814
|
React.createElement(Toggle, { title: 'Show only sources with errors', initialValue: filters['onlyErrors'], onChange: (bool) => setFilters((prev) => ({ ...prev, errors: [], onlyErrors: bool })) })),
|
|
13773
13815
|
React.createElement(ErrorDropdown, { value: filters['errors'], onSelect: (val) => setFilters((prev) => ({ ...prev, errors: [...(prev.errors || []), val] })), onDeselect: (val) => setFilters((prev) => ({ ...prev, errors: (prev.errors || []).filter((opt) => opt.id !== val.id) })), disabled: !filters['onlyErrors'], showSearch: true, required: true, isMulti: true })),
|
|
13774
13816
|
React.createElement(Actions, null,
|
|
@@ -13778,7 +13820,7 @@ const Filters$1 = () => {
|
|
|
13778
13820
|
React.createElement(ActionButton$1, { variant: 'tertiary', onClick: onReset, "$color": theme.text.error }, "Reset"))))));
|
|
13779
13821
|
};
|
|
13780
13822
|
|
|
13781
|
-
const Container$
|
|
13823
|
+
const Container$a = styled.div `
|
|
13782
13824
|
display: flex;
|
|
13783
13825
|
align-items: center;
|
|
13784
13826
|
margin: 20px 0;
|
|
@@ -13800,7 +13842,7 @@ const AddButton = styled(Button) `
|
|
|
13800
13842
|
const DataFlowActionsMenu = ({ addEntity }) => {
|
|
13801
13843
|
const theme = Theme.useTheme();
|
|
13802
13844
|
const { setCurrentModal } = useModalStore();
|
|
13803
|
-
return (React.createElement(Container$
|
|
13845
|
+
return (React.createElement(Container$a, null,
|
|
13804
13846
|
React.createElement(Search, null),
|
|
13805
13847
|
React.createElement(Filters$1, null),
|
|
13806
13848
|
addEntity && (React.createElement(PushToEnd, null,
|
|
@@ -13864,7 +13906,7 @@ const DynamicFields = ({ fields, onChange, formErrors }) => {
|
|
|
13864
13906
|
case FieldTypes.Input:
|
|
13865
13907
|
return React.createElement(Input, { key: field.name, ...rest, onChange: (e) => onChange(field.name, e.target.value), errorMessage: formErrors[field.name] });
|
|
13866
13908
|
case FieldTypes.Dropdown:
|
|
13867
|
-
return (React.createElement(Dropdown, { key: field.name, ...rest, value: { id: rest.value || '', value: rest.value || '' }, options: rest.options || [], onSelect: (option) => onChange(field.name, option.value), errorMessage: formErrors[field.name] }));
|
|
13909
|
+
return (React.createElement(Dropdown, { key: field.name, ...rest, showSearch: true, value: { id: rest.value || '', value: rest.value || '' }, options: rest.options || [], onSelect: (option) => onChange(field.name, option.value), errorMessage: formErrors[field.name] }));
|
|
13868
13910
|
case FieldTypes.MultiInput:
|
|
13869
13911
|
return (React.createElement(InputList, { key: field.name, ...rest, value: typeof rest.value === 'string' ? safeJsonParse(rest.value, []) : rest.value, onChange: (value) => onChange(field.name, JSON.stringify(value)), errorMessage: formErrors[field.name] }));
|
|
13870
13912
|
case FieldTypes.KeyValuePair:
|
|
@@ -13918,7 +13960,7 @@ const TestConnection = ({ destination, disabled, status, onError, onSuccess, val
|
|
|
13918
13960
|
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')));
|
|
13919
13961
|
};
|
|
13920
13962
|
|
|
13921
|
-
const Container$
|
|
13963
|
+
const Container$9 = styled.div `
|
|
13922
13964
|
display: flex;
|
|
13923
13965
|
flex-direction: column;
|
|
13924
13966
|
gap: 24px;
|
|
@@ -13988,7 +14030,7 @@ const DestinationForm = ({ isUpdate, categoryItem, formData, formErrors, validat
|
|
|
13988
14030
|
traces: signals.includes(SignalType.Traces),
|
|
13989
14031
|
});
|
|
13990
14032
|
};
|
|
13991
|
-
return (React.createElement(Container$
|
|
14033
|
+
return (React.createElement(Container$9, null,
|
|
13992
14034
|
!isUpdate && (React.createElement(React.Fragment, null,
|
|
13993
14035
|
React.createElement(SectionTitle, { title: 'Create connection', 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: () => {
|
|
13994
14036
|
setIsFormDirty(false);
|
|
@@ -14096,7 +14138,7 @@ const DestinationDrawer = ({ categories, updateDestination, deleteDestination, t
|
|
|
14096
14138
|
setIsFormDirty(false);
|
|
14097
14139
|
}
|
|
14098
14140
|
};
|
|
14099
|
-
return (React.createElement(OverviewDrawer, { ref: drawerRef, title: thisItem.name || thisItem.destinationType.displayName, icon:
|
|
14141
|
+
return (React.createElement(OverviewDrawer, { ref: drawerRef, title: thisItem.name || thisItem.destinationType.displayName, icons: icon ? [icon] : undefined, iconSrcs: iconSrc ? [iconSrc] : undefined, isEdit: isEditing, isFormDirty: isFormDirty, onEdit: handleEdit, onSave: handleSave, onDelete: handleDelete, onCancel: handleCancel, isLastItem: destinations.length === 1 }, isEditing ? (React.createElement(FormContainer$2, null,
|
|
14100
14142
|
React.createElement(DestinationForm, { isUpdate: true, categoryItem: thisOptionType, formData: formData, formErrors: formErrors, handleFormChange: (...params) => {
|
|
14101
14143
|
setIsFormDirty(true);
|
|
14102
14144
|
handleFormChange(...params);
|
|
@@ -14152,7 +14194,7 @@ const PotentialDestinationsList = ({ items, setSelectedItem }) => {
|
|
|
14152
14194
|
})));
|
|
14153
14195
|
};
|
|
14154
14196
|
|
|
14155
|
-
const Container$
|
|
14197
|
+
const Container$8 = styled.div `
|
|
14156
14198
|
display: flex;
|
|
14157
14199
|
flex-direction: column;
|
|
14158
14200
|
gap: 24px;
|
|
@@ -14178,7 +14220,7 @@ const ListsContainer = styled.div `
|
|
|
14178
14220
|
max-height: calc(100vh - 400px);
|
|
14179
14221
|
}
|
|
14180
14222
|
`;
|
|
14181
|
-
const NoDataFoundWrapper$
|
|
14223
|
+
const NoDataFoundWrapper$1 = styled(Container$8) `
|
|
14182
14224
|
margin-top: 80px;
|
|
14183
14225
|
`;
|
|
14184
14226
|
const DROPDOWN_OPTIONS = [
|
|
@@ -14207,7 +14249,7 @@ const ChooseDestinationBody = ({ hidden, categories, potentialDestinations, onSe
|
|
|
14207
14249
|
}, [categories, search, selectedCategory, selectedMonitors]);
|
|
14208
14250
|
if (hidden)
|
|
14209
14251
|
return null;
|
|
14210
|
-
return (React.createElement(Container$
|
|
14252
|
+
return (React.createElement(Container$8, null,
|
|
14211
14253
|
React.createElement(SectionTitle, { title: 'Choose destination', description: 'Add backend destination you want to connect with Odigos.' }),
|
|
14212
14254
|
React.createElement(Filters, null,
|
|
14213
14255
|
React.createElement(WidthConstraint, null,
|
|
@@ -14216,13 +14258,13 @@ const ChooseDestinationBody = ({ hidden, categories, potentialDestinations, onSe
|
|
|
14216
14258
|
React.createElement(Dropdown, { options: DROPDOWN_OPTIONS, value: selectedCategory, onSelect: (opt) => setSelectedCategory(opt), onDeselect: () => { } })),
|
|
14217
14259
|
React.createElement(MonitorsCheckboxes, { title: '', selectedSignals: selectedMonitors, setSelectedSignals: setSelectedMonitors })),
|
|
14218
14260
|
React.createElement(Divider, null),
|
|
14219
|
-
!filteredDestinations.length && !potentialDestinations.length ? (React.createElement(NoDataFoundWrapper$
|
|
14261
|
+
!filteredDestinations.length && !potentialDestinations.length ? (React.createElement(NoDataFoundWrapper$1, null,
|
|
14220
14262
|
React.createElement(NoDataFound, { title: 'No destinations found' }))) : (React.createElement(ListsContainer, null,
|
|
14221
14263
|
React.createElement(PotentialDestinationsList, { items: potentialDestinations, setSelectedItem: onSelect }),
|
|
14222
14264
|
React.createElement(DestinationsList, { items: filteredDestinations, setSelectedItem: onSelect })))));
|
|
14223
14265
|
};
|
|
14224
14266
|
|
|
14225
|
-
const Container$
|
|
14267
|
+
const Container$7 = styled.div `
|
|
14226
14268
|
display: flex;
|
|
14227
14269
|
`;
|
|
14228
14270
|
const SideMenuWrapper = styled.div `
|
|
@@ -14305,7 +14347,7 @@ const DestinationModal = ({ isOnboarding, categories, potentialDestinations, cre
|
|
|
14305
14347
|
};
|
|
14306
14348
|
useKeyDown({ key: 'Enter', active: isOpen }, () => handleSubmit());
|
|
14307
14349
|
return (React.createElement(Modal, { isOpen: isOpen, onClose: handleClose, header: { title: 'Add Destination' }, actionComponent: React.createElement(NavigationButtons, { buttons: renderHeaderButtons() }) },
|
|
14308
|
-
React.createElement(Container$
|
|
14350
|
+
React.createElement(Container$7, null,
|
|
14309
14351
|
React.createElement(SideMenuWrapper, null,
|
|
14310
14352
|
React.createElement(Stepper, { currentStep: !!selectedItem ? 2 : 1, data: [
|
|
14311
14353
|
{ stepNumber: 1, title: 'Destinations' },
|
|
@@ -14316,7 +14358,7 @@ const DestinationModal = ({ isOnboarding, categories, potentialDestinations, cre
|
|
|
14316
14358
|
!!selectedItem && (React.createElement(DestinationForm, { categoryItem: selectedItem, formData: formData, formErrors: formErrors, handleFormChange: handleFormChange, dynamicFields: dynamicFields, setDynamicFields: setDynamicFields, validateForm: validateForm, testConnection: testConnection, testLoading: testLoading, testResult: testResult }))))));
|
|
14317
14359
|
};
|
|
14318
14360
|
|
|
14319
|
-
const Container$
|
|
14361
|
+
const Container$6 = styled.div `
|
|
14320
14362
|
display: flex;
|
|
14321
14363
|
flex-direction: column;
|
|
14322
14364
|
align-items: flex-start;
|
|
@@ -14329,9 +14371,9 @@ const Container$7 = styled.div `
|
|
|
14329
14371
|
`;
|
|
14330
14372
|
const ConfiguredList = () => {
|
|
14331
14373
|
const { configuredDestinations } = useSetupStore();
|
|
14332
|
-
return (React.createElement(Container$
|
|
14374
|
+
return (React.createElement(Container$6, null, configuredDestinations.map(({ stored }, idx) => (React.createElement(ListItem, { key: `selected-destination-${stored.type}-${idx}`, "data-id": `selected-destination-${stored.type}`, item: stored, isLastItem: configuredDestinations.length === 1 })))));
|
|
14333
14375
|
};
|
|
14334
|
-
const ListItem
|
|
14376
|
+
const ListItem = ({ item, isLastItem }) => {
|
|
14335
14377
|
const { removeConfiguredDestination } = useSetupStore();
|
|
14336
14378
|
const [deleteWarning, setDeleteWarning] = useState(false);
|
|
14337
14379
|
const { icon, iconSrc } = getDestinationIcon(item.type);
|
|
@@ -14650,7 +14692,7 @@ const CustomFields = ({ ruleType, value, setValue, formErrors }) => {
|
|
|
14650
14692
|
return Component ? React.createElement(Component, { value: value, setValue: setValue, formErrors: formErrors }) : null;
|
|
14651
14693
|
};
|
|
14652
14694
|
|
|
14653
|
-
const Container$
|
|
14695
|
+
const Container$5 = styled.div `
|
|
14654
14696
|
display: flex;
|
|
14655
14697
|
flex-direction: column;
|
|
14656
14698
|
gap: 24px;
|
|
@@ -14661,7 +14703,7 @@ const FieldTitle = styled(Text) `
|
|
|
14661
14703
|
`;
|
|
14662
14704
|
const InstrumentationRuleForm = ({ isUpdate, rule, formData, formErrors, handleFormChange }) => {
|
|
14663
14705
|
const theme = Theme.useTheme();
|
|
14664
|
-
return (React.createElement(Container$
|
|
14706
|
+
return (React.createElement(Container$5, null,
|
|
14665
14707
|
isUpdate && (React.createElement("div", null,
|
|
14666
14708
|
React.createElement(FieldTitle, null, "Status"),
|
|
14667
14709
|
React.createElement(Segment, { options: [
|
|
@@ -14750,7 +14792,7 @@ const InstrumentationRuleDrawer = ({ updateInstrumentationRule, deleteInstrument
|
|
|
14750
14792
|
setIsFormDirty(false);
|
|
14751
14793
|
}
|
|
14752
14794
|
};
|
|
14753
|
-
return (React.createElement(OverviewDrawer, { ref: drawerRef, title: thisItem.ruleName || thisItem.type,
|
|
14795
|
+
return (React.createElement(OverviewDrawer, { ref: drawerRef, title: thisItem.ruleName || thisItem.type, icons: [getInstrumentationRuleIcon(thisItem.type)], isEdit: isEditing, isFormDirty: isFormDirty, onEdit: handleEdit, onSave: handleSave, onDelete: handleDelete, onCancel: handleCancel }, isEditing && thisOptionType ? (React.createElement(FormContainer$1, null,
|
|
14754
14796
|
React.createElement(InstrumentationRuleForm, { isUpdate: true, rule: thisOptionType, formData: formData, formErrors: formErrors, handleFormChange: (...params) => {
|
|
14755
14797
|
setIsFormDirty(true);
|
|
14756
14798
|
handleFormChange(...params);
|
|
@@ -14890,7 +14932,7 @@ const InstrumentationRuleTable = ({ maxHeight, maxWidth }) => {
|
|
|
14890
14932
|
React.createElement(NoDataFound, null)))));
|
|
14891
14933
|
};
|
|
14892
14934
|
|
|
14893
|
-
const Container$
|
|
14935
|
+
const Container$4 = styled.div `
|
|
14894
14936
|
position: fixed;
|
|
14895
14937
|
bottom: 0;
|
|
14896
14938
|
left: 50%;
|
|
@@ -14907,7 +14949,7 @@ const Container$5 = styled.div `
|
|
|
14907
14949
|
const MultiSourceControl = ({ totalSourceCount, uninstrumentSources }) => {
|
|
14908
14950
|
const theme = Theme.useTheme();
|
|
14909
14951
|
const Transition = useTransition({
|
|
14910
|
-
container: Container$
|
|
14952
|
+
container: Container$4,
|
|
14911
14953
|
animateIn: Theme.animations.slide.in['center'],
|
|
14912
14954
|
animateOut: Theme.animations.slide.out['center'],
|
|
14913
14955
|
});
|
|
@@ -15256,14 +15298,14 @@ const buildCard = (source) => {
|
|
|
15256
15298
|
return arr;
|
|
15257
15299
|
};
|
|
15258
15300
|
|
|
15259
|
-
const Container$
|
|
15301
|
+
const Container$3 = styled.div `
|
|
15260
15302
|
display: flex;
|
|
15261
15303
|
flex-direction: column;
|
|
15262
15304
|
gap: 24px;
|
|
15263
15305
|
padding: 4px;
|
|
15264
15306
|
`;
|
|
15265
15307
|
const SourceForm = ({ formData, handleFormChange }) => {
|
|
15266
|
-
return (React.createElement(Container$
|
|
15308
|
+
return (React.createElement(Container$3, null,
|
|
15267
15309
|
React.createElement(Input, { name: 'sourceName', title: 'Source name', tooltip: 'This overrides the default service name that runs in your cluster.', placeholder: 'Use a name that overrides the source name', value: formData.otelServiceName, onChange: ({ target: { value } }) => handleFormChange('otelServiceName', value) })));
|
|
15268
15310
|
};
|
|
15269
15311
|
|
|
@@ -15331,7 +15373,7 @@ const SourceDrawer = ({ persistSources, updateSource, fetchDescribeSource }) =>
|
|
|
15331
15373
|
setIsFormDirty(false);
|
|
15332
15374
|
setIsEditing(false);
|
|
15333
15375
|
};
|
|
15334
|
-
return (React.createElement(OverviewDrawer, { ref: drawerRef, title: thisItem.otelServiceName || thisItem.name, titleTooltip: 'This attribute is used to identify the name of the service (service.name) that is generating telemetry data.',
|
|
15376
|
+
return (React.createElement(OverviewDrawer, { ref: drawerRef, title: thisItem.otelServiceName || thisItem.name, titleTooltip: 'This attribute is used to identify the name of the service (service.name) that is generating telemetry data.', icons: getContainersIcons(thisItem.containers), isEdit: isEditing, isFormDirty: isFormDirty, onEdit: selectedTab === Tabs.Overview ? handleEdit : undefined, onSave: handleSave, onDelete: selectedTab === Tabs.Overview ? handleDelete : undefined, onCancel: handleCancel, isLastItem: sources.length === 1, tabs: [
|
|
15335
15377
|
{
|
|
15336
15378
|
label: Tabs.Overview,
|
|
15337
15379
|
onClick: () => setSelectedTab(Tabs.Overview),
|
|
@@ -15352,7 +15394,7 @@ const SourceDrawer = ({ persistSources, updateSource, fetchDescribeSource }) =>
|
|
|
15352
15394
|
React.createElement(DataCard, { title: DISPLAY_TITLES.DETECTED_CONTAINERS, titleBadge: containersData.length, description: DISPLAY_TITLES.DETECTED_CONTAINERS_DESCRIPTION, data: containersData })))) : (React.createElement(Describe$1, { source: thisItem, fetchDescribeSource: fetchDescribeSource }))));
|
|
15353
15395
|
};
|
|
15354
15396
|
|
|
15355
|
-
const Container$
|
|
15397
|
+
const Container$2 = styled.div `
|
|
15356
15398
|
display: flex;
|
|
15357
15399
|
flex-direction: column;
|
|
15358
15400
|
align-items: center;
|
|
@@ -15396,7 +15438,7 @@ const AbsoluteWrapper = styled.div `
|
|
|
15396
15438
|
const SelectionCount = styled(Text) `
|
|
15397
15439
|
width: 18px;
|
|
15398
15440
|
`;
|
|
15399
|
-
const NoDataFoundWrapper
|
|
15441
|
+
const NoDataFoundWrapper = styled.div `
|
|
15400
15442
|
padding: 50px 0;
|
|
15401
15443
|
display: flex;
|
|
15402
15444
|
flex-direction: column;
|
|
@@ -15406,14 +15448,14 @@ const NoDataFoundWrapper$1 = styled.div `
|
|
|
15406
15448
|
max-height: calc(100vh - 360px);
|
|
15407
15449
|
overflow-y: auto;
|
|
15408
15450
|
`;
|
|
15409
|
-
const List
|
|
15451
|
+
const List = ({ isModal = false, filterNamespaces, filterSources, selectedNamespace, onSelectNamespace, selectedSources, onSelectSource, selectedFutureApps, onSelectFutureApps, onSelectAll, }) => {
|
|
15410
15452
|
const theme = Theme.useTheme();
|
|
15411
15453
|
const namespaces = filterNamespaces();
|
|
15412
15454
|
const { namespacesLoading } = useEntityStore();
|
|
15413
15455
|
if (!namespaces.length) {
|
|
15414
|
-
return React.createElement(NoDataFoundWrapper
|
|
15456
|
+
return React.createElement(NoDataFoundWrapper, null, namespacesLoading ? React.createElement(FadeLoader, { scale: 2 }) : React.createElement(NoDataFound, { title: 'No namespaces found' }));
|
|
15415
15457
|
}
|
|
15416
|
-
return (React.createElement(Container$
|
|
15458
|
+
return (React.createElement(Container$2, { "$isModal": isModal }, namespaces.map(([namespace, sources]) => {
|
|
15417
15459
|
const sourcesForNamespace = selectedSources[namespace] || [];
|
|
15418
15460
|
const futureAppsForNamespace = selectedFutureApps[namespace] || false;
|
|
15419
15461
|
const isNamespaceLoaded = !!sourcesForNamespace.length;
|
|
@@ -15449,11 +15491,11 @@ const List$1 = ({ isModal = false, filterNamespaces, filterSources, selectedName
|
|
|
15449
15491
|
source.numberOfInstances !== 1 && 's',
|
|
15450
15492
|
" \u00B7 ",
|
|
15451
15493
|
source.kind))));
|
|
15452
|
-
}))) : (React.createElement(NoDataFoundWrapper
|
|
15494
|
+
}))) : (React.createElement(NoDataFoundWrapper, null, namespacesLoading ? React.createElement(FadeLoader, { scale: 1.5 }) : React.createElement(NoDataFound, { title: 'No sources available in this namespace', subTitle: 'Try searching again or select another namespace.' }))))));
|
|
15453
15495
|
})));
|
|
15454
15496
|
};
|
|
15455
15497
|
|
|
15456
|
-
const FlexContainer
|
|
15498
|
+
const FlexContainer = styled.div `
|
|
15457
15499
|
display: flex;
|
|
15458
15500
|
align-items: center;
|
|
15459
15501
|
justify-content: space-between;
|
|
@@ -15462,133 +15504,19 @@ const FlexContainer$1 = styled.div `
|
|
|
15462
15504
|
const SearchWrapper = styled.div `
|
|
15463
15505
|
width: 444px;
|
|
15464
15506
|
`;
|
|
15465
|
-
const Controls
|
|
15507
|
+
const Controls = ({ selectedSources, searchText, setSearchText, showSelectedOnly, setShowSelectedOnly }) => {
|
|
15466
15508
|
const selectedAppsCount = Object.values(selectedSources).reduce((prev, curr) => prev + curr.filter((s) => s.selected).length, 0);
|
|
15467
15509
|
return (React.createElement(React.Fragment, null,
|
|
15468
15510
|
React.createElement(SectionTitle, { title: 'Select Sources for Instrumentation', badgeLabel: selectedAppsCount, description: 'Select apps to monitor in each namespace. Odigos will instrument them and send telemetry data to your destinations.' }),
|
|
15469
|
-
React.createElement(FlexContainer
|
|
15511
|
+
React.createElement(FlexContainer, { style: { marginTop: 24 } },
|
|
15470
15512
|
React.createElement(SearchWrapper, null,
|
|
15471
15513
|
React.createElement(Input, { placeholder: 'Search Kubernetes Namespaces', icon: SearchIcon, value: searchText, onChange: (e) => setSearchText(e.target.value.toLowerCase()) })),
|
|
15472
15514
|
React.createElement(Toggle, { title: 'Show selected only', initialValue: showSelectedOnly, onChange: setShowSelectedOnly })),
|
|
15473
15515
|
React.createElement(Divider, { margin: '16px 0' })));
|
|
15474
15516
|
};
|
|
15475
15517
|
|
|
15476
|
-
const
|
|
15477
|
-
|
|
15478
|
-
React.createElement(Controls$1, { ...props }),
|
|
15479
|
-
React.createElement(List$1, { ...props })));
|
|
15480
|
-
};
|
|
15481
|
-
|
|
15482
|
-
const Container$2 = styled.div `
|
|
15483
|
-
display: flex;
|
|
15484
|
-
align-items: center;
|
|
15485
|
-
flex-direction: column;
|
|
15486
|
-
gap: 12px;
|
|
15487
|
-
height: fit-content;
|
|
15488
|
-
padding-bottom: ${({ $isModal }) => ($isModal ? '48px' : '0')};
|
|
15489
|
-
overflow-y: scroll;
|
|
15490
|
-
`;
|
|
15491
|
-
const ListItem = styled.div `
|
|
15492
|
-
display: flex;
|
|
15493
|
-
align-items: center;
|
|
15494
|
-
justify-content: space-between;
|
|
15495
|
-
width: 100%;
|
|
15496
|
-
padding: 16px 0px;
|
|
15497
|
-
transition: background 0.3s;
|
|
15498
|
-
border-radius: 16px;
|
|
15499
|
-
cursor: pointer;
|
|
15500
|
-
background: ${({ $selected, theme }) => ($selected ? theme.colors.majestic_blue + Theme.opacity.hex['024'] : theme.colors.dropdown_bg_2 + Theme.opacity.hex['040'])};
|
|
15501
|
-
&:hover {
|
|
15502
|
-
background: ${({ $selected, theme }) => ($selected ? theme.colors.majestic_blue + Theme.opacity.hex['040'] : theme.colors.dropdown_bg_2 + Theme.opacity.hex['080'])};
|
|
15503
|
-
}
|
|
15504
|
-
`;
|
|
15505
|
-
const ListItemContent = styled.div `
|
|
15506
|
-
margin-left: 16px;
|
|
15507
|
-
display: flex;
|
|
15508
|
-
gap: 12px;
|
|
15509
|
-
`;
|
|
15510
|
-
const TextWrapper = styled.div `
|
|
15511
|
-
display: flex;
|
|
15512
|
-
flex-direction: column;
|
|
15513
|
-
height: 36px;
|
|
15514
|
-
justify-content: space-between;
|
|
15515
|
-
`;
|
|
15516
|
-
const SelectedTextWrapper = styled.div `
|
|
15517
|
-
margin-right: 24px;
|
|
15518
|
-
`;
|
|
15519
|
-
const NoDataFoundWrapper = styled.div `
|
|
15520
|
-
margin-top: 80px;
|
|
15521
|
-
display: flex;
|
|
15522
|
-
flex-direction: column;
|
|
15523
|
-
align-items: center;
|
|
15524
|
-
gap: 12px;
|
|
15525
|
-
height: 100%;
|
|
15526
|
-
max-height: calc(100vh - 360px);
|
|
15527
|
-
overflow-y: auto;
|
|
15528
|
-
`;
|
|
15529
|
-
const List = ({ isModal = false, selectedNamespace, selectedSources, onSelectSource, filterSources, }) => {
|
|
15530
|
-
const { namespacesLoading } = useEntityStore();
|
|
15531
|
-
const sources = selectedSources[selectedNamespace] || [];
|
|
15532
|
-
if (!sources.length) {
|
|
15533
|
-
return React.createElement(NoDataFoundWrapper, null, namespacesLoading ? React.createElement(FadeLoader, { scale: 2 }) : React.createElement(NoDataFound, { title: 'No sources found' }));
|
|
15534
|
-
}
|
|
15535
|
-
return (React.createElement(Container$2, { "$isModal": isModal }, filterSources().map((source) => {
|
|
15536
|
-
const isSelected = selectedSources[selectedNamespace].find(({ name }) => name === source.name)?.selected || false;
|
|
15537
|
-
return (React.createElement(ListItem, { key: `source-${source.name}`, "$selected": isSelected, onClick: () => onSelectSource(source) },
|
|
15538
|
-
React.createElement(ListItemContent, null,
|
|
15539
|
-
React.createElement(IconWrapped, { icon: FolderIcon }),
|
|
15540
|
-
React.createElement(TextWrapper, null,
|
|
15541
|
-
React.createElement(Text, null, source.name),
|
|
15542
|
-
React.createElement(Text, { opacity: 0.8, size: 10 },
|
|
15543
|
-
source.numberOfInstances,
|
|
15544
|
-
" running instance",
|
|
15545
|
-
source.numberOfInstances !== 1 && 's',
|
|
15546
|
-
" \u00B7 ",
|
|
15547
|
-
source.kind))),
|
|
15548
|
-
isSelected && (React.createElement(SelectedTextWrapper, null,
|
|
15549
|
-
React.createElement(Checkbox, { value: true, allowPropagation: true })))));
|
|
15550
|
-
})));
|
|
15551
|
-
};
|
|
15552
|
-
|
|
15553
|
-
const FlexContainer = styled.div `
|
|
15554
|
-
display: flex;
|
|
15555
|
-
align-items: center;
|
|
15556
|
-
justify-content: space-between;
|
|
15557
|
-
gap: 8px;
|
|
15558
|
-
`;
|
|
15559
|
-
const ToggleWrapper = styled.div `
|
|
15560
|
-
display: flex;
|
|
15561
|
-
align-items: center;
|
|
15562
|
-
gap: 32px;
|
|
15563
|
-
`;
|
|
15564
|
-
const Controls = ({ selectedNamespace, onSelectNamespace, selectedSources, onSelectAll, selectedFutureApps, onSelectFutureApps, searchText, setSearchText, showSelectedOnly, setShowSelectedOnly, }) => {
|
|
15565
|
-
const futureApps = selectedFutureApps[selectedNamespace] || false;
|
|
15566
|
-
const sources = selectedSources[selectedNamespace] || [];
|
|
15567
|
-
const selectedAppsCount = sources.filter(({ selected }) => selected).length;
|
|
15568
|
-
return (React.createElement(React.Fragment, null,
|
|
15569
|
-
React.createElement(SectionTitle, { title: 'Choose sources', description: "Apps will be automatically instrumented, and data will be sent to the relevant APM's destinations." }),
|
|
15570
|
-
React.createElement(FlexContainer, { style: { marginTop: 24 } },
|
|
15571
|
-
React.createElement(Input, { placeholder: 'Search for sources', icon: SearchIcon, value: searchText, onChange: (e) => setSearchText(e.target.value.toLowerCase()) }),
|
|
15572
|
-
React.createElement(NamespaceDropdown, { title: '', value: selectedNamespace ? [{ value: selectedNamespace, id: selectedNamespace }] : [], onSelect: ({ id }) => !!id && onSelectNamespace(id), onDeselect: ({ id }) => !!id && onSelectNamespace(id) })),
|
|
15573
|
-
React.createElement(Divider, { margin: '16px 0' }),
|
|
15574
|
-
React.createElement(FlexContainer, null,
|
|
15575
|
-
React.createElement(FlexContainer, null,
|
|
15576
|
-
React.createElement(Text, null, "Selected apps"),
|
|
15577
|
-
React.createElement(Badge, { label: selectedAppsCount, filled: !!selectedAppsCount })),
|
|
15578
|
-
React.createElement(ToggleWrapper, null,
|
|
15579
|
-
React.createElement(Toggle, { title: 'Select all', initialValue: !!selectedAppsCount && selectedAppsCount === sources.length, onChange: onSelectAll }),
|
|
15580
|
-
React.createElement(Toggle, { title: 'Show selected only', initialValue: showSelectedOnly, onChange: setShowSelectedOnly }),
|
|
15581
|
-
React.createElement(Checkbox, { title: 'Future apps', tooltip: 'Automatically instrument all future apps', value: futureApps, onChange: onSelectFutureApps }))),
|
|
15582
|
-
React.createElement(Divider, { margin: '16px 0 24px' })));
|
|
15583
|
-
};
|
|
15584
|
-
|
|
15585
|
-
const Simple = (props) => {
|
|
15586
|
-
return (React.createElement(ModalBody, { "$isNotModal": !props.isModal },
|
|
15587
|
-
React.createElement(Controls, { ...props }),
|
|
15588
|
-
React.createElement(List, { ...props })));
|
|
15589
|
-
};
|
|
15590
|
-
|
|
15591
|
-
const SourceSelectionForm = forwardRef(({ componentType, isModal, selectedNamespace, onSelectNamespace, namespace }, ref) => {
|
|
15518
|
+
const SourceSelectionForm = forwardRef((props, ref) => {
|
|
15519
|
+
const { isModal, selectedNamespace, onSelectNamespace, namespace } = props;
|
|
15592
15520
|
const formState = useSourceSelectionFormData({ selectedNamespace, onSelectNamespace, namespace });
|
|
15593
15521
|
const { recordedInitialSources, getApiSourcesPayload, getApiFutureAppsPayload } = formState;
|
|
15594
15522
|
useImperativeHandle(ref, () => ({
|
|
@@ -15598,17 +15526,12 @@ const SourceSelectionForm = forwardRef(({ componentType, isModal, selectedNamesp
|
|
|
15598
15526
|
futureApps: getApiFutureAppsPayload(),
|
|
15599
15527
|
}),
|
|
15600
15528
|
}));
|
|
15601
|
-
|
|
15602
|
-
|
|
15603
|
-
|
|
15604
|
-
case 'FAST':
|
|
15605
|
-
return React.createElement(Fast, { isModal: isModal, selectedNamespace: selectedNamespace, onSelectNamespace: onSelectNamespace, ...formState });
|
|
15606
|
-
default:
|
|
15607
|
-
return null;
|
|
15608
|
-
}
|
|
15529
|
+
return (React.createElement(ModalBody, { "$isNotModal": !isModal },
|
|
15530
|
+
React.createElement(Controls, { ...props, ...formState }),
|
|
15531
|
+
React.createElement(List, { ...props, ...formState })));
|
|
15609
15532
|
});
|
|
15610
15533
|
|
|
15611
|
-
const SourceModal = ({
|
|
15534
|
+
const SourceModal = ({ selectedNamespace, setSelectedNamespace, namespace, persistSources }) => {
|
|
15612
15535
|
const { currentModal, setCurrentModal } = useModalStore();
|
|
15613
15536
|
const isOpen = currentModal === EntityTypes.Source;
|
|
15614
15537
|
const onSelectNamespace = (ns) => {
|
|
@@ -15634,7 +15557,7 @@ const SourceModal = ({ componentType = 'FAST', selectedNamespace, setSelectedNam
|
|
|
15634
15557
|
onClick: handleSubmit,
|
|
15635
15558
|
},
|
|
15636
15559
|
] }) },
|
|
15637
|
-
React.createElement(SourceSelectionForm, { ref: formRef,
|
|
15560
|
+
React.createElement(SourceSelectionForm, { ref: formRef, isModal: true, selectedNamespace: selectedNamespace, onSelectNamespace: onSelectNamespace, namespace: namespace })));
|
|
15638
15561
|
};
|
|
15639
15562
|
|
|
15640
15563
|
const columns = [
|
|
@@ -15935,7 +15858,7 @@ const SystemOverview = ({ tokens, saveToken, fetchDescribeOdigos }) => {
|
|
|
15935
15858
|
React.createElement(IconButton, { key: 'cli', onClick: toggleOpen, tooltip: TITLE_TEXT },
|
|
15936
15859
|
React.createElement(TerminalIcon, { size: 18 })),
|
|
15937
15860
|
React.createElement(Drawer, { width: DRAWER_WIDTH, isOpen: isOpen, onClose: toggleOpen, header: {
|
|
15938
|
-
|
|
15861
|
+
icons: [TerminalIcon],
|
|
15939
15862
|
title: TITLE_TEXT,
|
|
15940
15863
|
}, footer: {
|
|
15941
15864
|
isOpen: false,
|