@devtron-labs/devtron-fe-common-lib 1.22.8 → 1.23.1

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.
Files changed (61) hide show
  1. package/dist/{@code-editor-DfnKQDgo.js → @code-editor-ByQMcFuo.js} +8716 -8535
  2. package/dist/{@common-rjsf-BfIaNHhi.js → @common-rjsf-ULDNI5-l.js} +2 -2
  3. package/dist/{@framer-motion-LZK2bgCK.js → @framer-motion-Bi7d_Mil.js} +64 -64
  4. package/dist/{@react-dates-CbpfVsC0.js → @react-dates-CR-uCH60.js} +1 -1
  5. package/dist/{@react-select-BuPEYnTv.js → @react-select-C5q5RdNV.js} +1 -1
  6. package/dist/{@react-virtualized-sticky-tree-DX7VkyTZ.js → @react-virtualized-sticky-tree-LXSXNrbc.js} +1 -1
  7. package/dist/{@vendor-BsABdDGm.js → @vendor-CtCMPfdc.js} +9266 -9181
  8. package/dist/Common/API/reactQueryHooks.d.ts +3 -2
  9. package/dist/Common/ClipboardButton/types.d.ts +3 -0
  10. package/dist/Common/Common.service.d.ts +12 -1
  11. package/dist/Common/Constants.d.ts +6 -0
  12. package/dist/Common/DraggableWrapper/DraggableWrapper.d.ts +4 -2
  13. package/dist/Common/DraggableWrapper/types.d.ts +2 -6
  14. package/dist/Common/SortableTableHeaderCell/SortableTableHeaderCell.d.ts +1 -1
  15. package/dist/Common/SortableTableHeaderCell/types.d.ts +4 -0
  16. package/dist/Pages-Devtron-2.0/Navigation/types.d.ts +1 -1
  17. package/dist/Shared/Components/AppStatusModal/AppStatusBody.d.ts +1 -1
  18. package/dist/Shared/Components/AppStatusModal/types.d.ts +4 -1
  19. package/dist/Shared/Components/Charts/types.d.ts +0 -2
  20. package/dist/Shared/Components/DocLink/constants.d.ts +0 -1
  21. package/dist/Shared/Components/FloatingVariablesSuggestions/FloatingVariablesSuggestions.d.ts +1 -1
  22. package/dist/Shared/Components/FloatingVariablesSuggestions/constants.d.ts +1 -4
  23. package/dist/Shared/Components/FloatingVariablesSuggestions/types.d.ts +2 -4
  24. package/dist/Shared/Components/Icon/Icon.d.ts +20 -0
  25. package/dist/Shared/Components/Table/InternalTable.d.ts +1 -1
  26. package/dist/Shared/Components/Table/TableContent.d.ts +1 -1
  27. package/dist/Shared/Components/Table/constants.d.ts +1 -0
  28. package/dist/Shared/Components/Table/types.d.ts +27 -7
  29. package/dist/Shared/Components/Table/utils.d.ts +1 -1
  30. package/dist/Shared/Hooks/useGetResourceKindsOptions/index.d.ts +1 -0
  31. package/dist/Shared/Providers/MainContextProvider/index.d.ts +1 -1
  32. package/dist/Shared/Providers/MainContextProvider/types.d.ts +45 -4
  33. package/dist/Shared/Services/types.d.ts +1 -0
  34. package/dist/Shared/types.d.ts +1 -1
  35. package/dist/Shared/validations.d.ts +1 -0
  36. package/dist/assets/@code-editor.css +1 -1
  37. package/dist/assets/ic-bell.c1e888e2.svg +3 -0
  38. package/dist/assets/ic-bulb.3906a732.svg +7 -0
  39. package/dist/assets/ic-close-circle.b39dd87d.svg +3 -0
  40. package/dist/assets/ic-comment.cc141b33.svg +3 -0
  41. package/dist/assets/ic-configuration-file.b9f3ac22.svg +10 -0
  42. package/dist/assets/ic-dot-circle.5ce1fccf.svg +3 -0
  43. package/dist/assets/ic-image-approve.0cbb58eb.svg +3 -0
  44. package/dist/assets/ic-medium-megaphone.a069bf1d.svg +5 -0
  45. package/dist/assets/ic-new-chat.f7c90f8e.svg +5 -0
  46. package/dist/assets/ic-piggybank.3a4839d7.svg +3 -0
  47. package/dist/assets/ic-play-outline.e18008ce.svg +3 -0
  48. package/dist/assets/ic-priority-high-fill.53755d8f.svg +3 -0
  49. package/dist/assets/ic-priority-low-fill.79e781ae.svg +4 -0
  50. package/dist/assets/ic-priority-urgent-fill.78d42fa0.svg +10 -0
  51. package/dist/assets/ic-red-bulb.25e01bfc.svg +9 -0
  52. package/dist/assets/ic-ses.7797b214.svg +6 -0
  53. package/dist/assets/ic-slack.3c916573.svg +10 -0
  54. package/dist/assets/ic-smtp.f6f45abc.svg +7 -0
  55. package/dist/assets/ic-thumb-down-fill.e3cb6362.svg +3 -0
  56. package/dist/assets/ic-thumb-up-fill.ddf7c8eb.svg +3 -0
  57. package/dist/assets/ic-webhook-config.d0dd47eb.svg +5 -0
  58. package/dist/index.d.ts +1 -1
  59. package/dist/index.js +987 -981
  60. package/package.json +1 -1
  61. package/dist/assets/ic-play-outline.d2551031.svg +0 -19
@@ -1,6 +1,7 @@
1
- import { QueryKey, UseMutationOptions, UseMutationResult, useQueryClient, UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
1
+ import { QueryKey, UseInfiniteQueryOptions, UseInfiniteQueryResult, UseMutationOptions, UseMutationResult, useQueryClient, UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
2
2
  import { ServerErrors } from '../ServerError';
3
3
  import { ResponseType } from '../Types';
4
4
  export declare const useQuery: <TQueryFnData = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, WrapWithResponseType extends boolean = true>(options: UseQueryOptions<WrapWithResponseType extends true ? ResponseType<TQueryFnData> : TQueryFnData, ServerErrors, TData, TQueryKey>) => UseQueryResult<TData, ServerErrors>;
5
- export declare const useMutation: <TData = unknown, TVariables = void, TContext = unknown>(options: UseMutationOptions<ResponseType<TData>, ServerErrors, TVariables, TContext>) => UseMutationResult<ResponseType<TData>, ServerErrors, TVariables, TContext>;
5
+ export declare const useMutation: <TData = unknown, TVariables = void, TContext = unknown>(options: UseMutationOptions<TData, ServerErrors, TVariables, TContext>) => UseMutationResult<TData, ServerErrors, TVariables, TContext>;
6
+ export declare const useInfiniteQuery: <TQueryFnData = unknown, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, WrapWithResponseType extends boolean = true>(options: UseInfiniteQueryOptions<WrapWithResponseType extends true ? ResponseType<TQueryFnData> : TQueryFnData, ServerErrors, TData, WrapWithResponseType extends true ? ResponseType<TQueryFnData> : TQueryFnData, TQueryKey>) => UseInfiniteQueryResult<TData, ServerErrors>;
6
7
  export { useQueryClient };
@@ -8,6 +8,9 @@ export type ClipboardProps = ({
8
8
  } | {
9
9
  variant: 'button--secondary';
10
10
  size: ComponentSizeType;
11
+ } | {
12
+ variant: 'borderLess';
13
+ size: ComponentSizeType;
11
14
  }) & {
12
15
  content: string;
13
16
  /**
@@ -1,5 +1,5 @@
1
1
  import { MutableRefObject } from 'react';
2
- import { RuntimeParamsAPIResponseType, RuntimePluginVariables } from '../Shared/types';
2
+ import { RegistryType, RuntimeParamsAPIResponseType, RuntimePluginVariables } from '../Shared/types';
3
3
  import { TeamList, ResponseType, DeploymentNodeType, CDMaterialServiceEnum, CDMaterialServiceQueryParams, CDMaterialResponseType, CDMaterialFilterQuery, EnvironmentListHelmResponse, UserApprovalMetadataType, GlobalVariableOptionType, UserRole, APIOptions, EnvAppsMetaDTO, GetAppsInfoForEnvProps, EnvironmentsGroupedByClustersType, AppsGroupedByProjectsType, ClusterDetailListType } from './Types';
4
4
  import { ApiResourceType } from '../Pages';
5
5
  export declare const getTeamListMin: () => Promise<TeamList>;
@@ -39,3 +39,14 @@ export declare const getAppsInfoForEnv: ({ envId, appIds }: GetAppsInfoForEnvPro
39
39
  export declare const getAppOptionsGroupedByProjects: () => Promise<AppsGroupedByProjectsType>;
40
40
  export declare const getEnvironmentOptionsGroupedByClusters: () => Promise<EnvironmentsGroupedByClustersType>;
41
41
  export declare const getDetailedClusterList: (clusterIds?: number[], signal?: AbortSignal) => Promise<ClusterDetailListType[]>;
42
+ export declare const getDockerRegistriesListMin: (signal: AbortSignal) => Promise<ResponseType<{
43
+ id: string;
44
+ registryType: RegistryType;
45
+ isDefault: boolean;
46
+ }[]>>;
47
+ export declare const getGitProvidersListMin: (signal: AbortSignal) => Promise<ResponseType<{
48
+ id: number;
49
+ name: string;
50
+ url: string;
51
+ authMode: "SSH" | "USERNAME_PASSWORD" | "ANONYMOUS";
52
+ }[]>>;
@@ -10,6 +10,7 @@ export declare const LICENSE_DASHBOARD_HOME_PAGE = "https://license.devtron.ai/d
10
10
  export declare const DEVTRON_GPT_LINK = "https://chatgpt.com/g/g-6826efa4362c8191b23e7bfa0ac036db-devtron-expert";
11
11
  export declare const PATTERNS: {
12
12
  STRING: RegExp;
13
+ APP_NAME: string;
13
14
  DECIMAL_NUMBERS: RegExp;
14
15
  POSITIVE_DECIMAL_NUMBERS: RegExp;
15
16
  NATURAL_NUMBERS: RegExp;
@@ -42,6 +43,8 @@ export declare const URLS: {
42
43
  readonly APP_DEPLOYMNENT_HISTORY: "deployments";
43
44
  readonly APP_DETAILS: "details";
44
45
  readonly APP_DETAILS_K8: "k8s-resources";
46
+ readonly EXTERNAL_ARGO_APP: "eaa";
47
+ readonly EXTERNAL_FLUX_APP: "external-flux";
45
48
  readonly DETAILS: "/details";
46
49
  readonly CD_DETAILS: "cd-details";
47
50
  readonly APP_TRIGGER: "trigger";
@@ -109,6 +112,7 @@ export declare const URLS: {
109
112
  };
110
113
  export declare const ROUTES: {
111
114
  readonly APP: "app";
115
+ readonly ATHENA: "athena";
112
116
  readonly APP_ARTIFACT_PROMOTE_MATERIAL: "app/artifact/promotion-request/material";
113
117
  readonly APP_TEMPLATE_DATA: "app/template/data";
114
118
  readonly ENVIRONMENT_CATEGORIES: "env/categories";
@@ -176,6 +180,8 @@ export declare const ROUTES: {
176
180
  readonly ENV: "env";
177
181
  readonly APP_METADATA: "app-metadata";
178
182
  readonly RESOURCE_CONFLICTS_LIST: "app/:appId/cd-pipeline/:pipelineId/history/:wfrId/helm-ownership-conflicts";
183
+ readonly GIT_PROVIDER_MIN: "git/provider/autocomplete";
184
+ readonly DOCKER_REGISTRY_MIN: "docker/registry/autocomplete";
179
185
  };
180
186
  export declare enum KEY_VALUE {
181
187
  KEY = "key",
@@ -3,6 +3,8 @@ import { DraggableWrapperProps } from './types';
3
3
  * TODO: import it as lazy, after it is supported in common
4
4
  * 1. If using react select please use menuPlacement='auto'
5
5
  * 2. dragSelector will be used to identify the grabbable button that will grab the div to drag
6
- * 3. parentRef is the reference point from which we will derive the base top:0 ,left: 0 position
6
+ * 3. The wrapper is positioned at the viewport's top-left (top: 0, left: 0) using fixed positioning; parentRef is an optional
7
+ * reference that may be used for position calculations but is not the base origin for the coordinate system.
7
8
  */
8
- export default function DraggableWrapper({ children, zIndex, positionVariant, dragSelector, parentRef, boundaryGap, childDivProps, layoutFixDelta, }: DraggableWrapperProps): JSX.Element;
9
+ declare const DraggableWrapper: ({ children, zIndex, positionVariant, dragSelector, parentRef, boundaryGap, childDivProps, }: DraggableWrapperProps) => JSX.Element;
10
+ export default DraggableWrapper;
@@ -1,6 +1,7 @@
1
1
  import { HTMLAttributes, ReactNode, RefObject } from 'react';
2
2
  export declare enum DraggablePositionVariant {
3
3
  PARENT_BOTTOM_CENTER = "PARENT_BOTTOM_CENTER",
4
+ PARENT_BOTTOM_RIGHT = "PARENT_BOTTOM_RIGHT",
4
5
  SCREEN_BOTTOM_CENTER = "SCREEN_BOTTOM_CENTER",
5
6
  SCREEN_BOTTOM_RIGHT = "SCREEN_BOTTOM_RIGHT"
6
7
  }
@@ -16,13 +17,8 @@ export interface DraggableWrapperProps {
16
17
  */
17
18
  dragSelector: string;
18
19
  parentRef?: RefObject<HTMLDivElement>;
19
- boundaryGap?: number;
20
+ boundaryGap?: Record<'x' | 'y', number>;
20
21
  childDivProps?: HTMLAttributes<HTMLDivElement>;
21
- /**
22
- * Delta for fixing the scrollable layout positioning
23
- * @deprecated
24
- */
25
- layoutFixDelta?: number;
26
22
  }
27
23
  /**
28
24
  * dragClassName is the class that we feed to Draggable to identify dragging buttons
@@ -30,5 +30,5 @@ import { SortableTableHeaderCellProps } from './types';
30
30
  * />
31
31
  * ```
32
32
  */
33
- declare const SortableTableHeaderCell: ({ isSorted, triggerSorting, sortOrder, title, disabled, isSortable, showTippyOnTruncate, id, handleResize, isResizable, }: SortableTableHeaderCellProps) => JSX.Element;
33
+ declare const SortableTableHeaderCell: ({ isSorted, triggerSorting, sortOrder, title, disabled, isSortable, showTippyOnTruncate, id, handleResize, isResizable, infoTooltipText, }: SortableTableHeaderCellProps) => JSX.Element;
34
34
  export default SortableTableHeaderCell;
@@ -9,6 +9,10 @@ export type SortableTableHeaderCellProps = {
9
9
  * @default false
10
10
  */
11
11
  showTippyOnTruncate?: boolean;
12
+ /**
13
+ * If provided, shown in a tooltip on info-icon-outline beside the label
14
+ */
15
+ infoTooltipText?: string;
12
16
  } & ({
13
17
  /**
14
18
  * Unique identifier for the column
@@ -1,6 +1,6 @@
1
1
  import { customEnv, Never } from 'src';
2
2
  import { IconsProps } from '../../Shared/Components';
3
- export type NavigationItemID = 'application-management-overview' | 'application-management-devtron-applications' | 'application-management-application-groups' | 'application-management-bulk-edit' | 'application-management-application-templates' | 'application-management-configurations' | 'application-management-policies' | 'infrastructure-management-overview' | 'infrastructure-management-applications' | 'infrastructure-management-chart-store' | 'infrastructure-management-resource-browser' | 'infrastructure-management-resource-watcher' | 'infrastructure-management-catalog-framework' | 'software-release-management-overview' | 'software-release-management-release-hub' | 'software-release-management-tenants' | 'cost-visibility-overview' | 'cost-visibility-cost-breakdown' | 'cost-visibility-configurations' | 'security-center-overview' | 'security-center-security-vulnerabilities' | 'security-center-security-enablement' | 'security-center-security-policy' | 'automation-and-enablement-jobs' | 'automation-and-enablement-alerting' | 'automation-and-enablement-incident-response' | 'automation-and-enablement-api-portal' | 'automation-and-enablement-runbook-automation' | 'global-configuration-sso-login-services' | 'global-configuration-host-urls' | 'global-configuration-external-links' | 'global-configuration-chart-repository' | 'global-configuration-cluster-and-environments' | 'global-configuration-container-oci-registry' | 'global-configuration-authorization' | 'global-configuration-projects' | 'data-protection-overview' | 'data-protection-backup-and-schedule' | 'data-protection-restores' | 'data-protection-backup-repositories' | 'data-protection-backup-locations' | 'data-protection-history-and-logs';
3
+ export type NavigationItemID = 'application-management-overview' | 'application-management-devtron-applications' | 'application-management-application-groups' | 'application-management-bulk-edit' | 'application-management-application-templates' | 'application-management-configurations' | 'application-management-policies' | 'infrastructure-management-overview' | 'infrastructure-management-applications' | 'infrastructure-management-chart-store' | 'infrastructure-management-resource-browser' | 'infrastructure-management-resource-watcher' | 'infrastructure-management-catalog-framework' | 'software-release-management-overview' | 'software-release-management-release-hub' | 'software-release-management-tenants' | 'cost-visibility-overview' | 'cost-visibility-cost-breakdown' | 'cost-visibility-configurations' | 'security-center-overview' | 'security-center-security-vulnerabilities' | 'security-center-security-enablement' | 'security-center-security-policy' | 'automation-and-enablement-jobs' | 'automation-and-enablement-alerting' | 'automation-and-enablement-incident-response' | 'automation-and-enablement-api-portal' | 'global-configuration-sso-login-services' | 'global-configuration-host-urls' | 'global-configuration-external-links' | 'global-configuration-chart-repository' | 'global-configuration-cluster-and-environments' | 'global-configuration-container-oci-registry' | 'global-configuration-authorization' | 'global-configuration-projects' | 'data-protection-overview' | 'data-protection-backup-and-schedule' | 'data-protection-restores' | 'data-protection-backup-repositories' | 'data-protection-backup-locations' | 'data-protection-history-and-logs';
4
4
  export type NavigationSubMenuItemID = 'application-management-configurations-gitops' | 'application-management-configurations-git-accounts' | 'application-management-configurations-deployment-charts' | 'application-management-configurations-notifications' | 'application-management-configurations-catalog-frameworks' | 'application-management-configurations-scoped-variables' | 'application-management-configurations-build-infra' | 'application-management-policies-deployment-window' | 'application-management-policies-approval-policy' | 'application-management-policies-plugin-policy' | 'application-management-policies-pull-image-digest' | 'application-management-policies-tag-policy' | 'application-management-policies-filter-conditions' | 'application-management-policies-image-promotion' | 'application-management-policies-lock-deployment-configuration' | 'cost-visibility-cost-breakdown-clusters' | 'cost-visibility-cost-breakdown-environments' | 'cost-visibility-cost-breakdown-projects' | 'cost-visibility-cost-breakdown-applications' | 'global-configuration-authorization-user-permissions' | 'global-configuration-authorization-permission-groups' | 'global-configuration-authorization-api-tokens';
5
5
  export type NavigationRootItemID = 'application-management' | 'infrastructure-management' | 'software-release-management' | 'cost-visibility' | 'security-center' | 'automation-and-enablement' | 'data-protection-management' | 'global-configuration';
6
6
  export type CommonNavigationItemType = {
@@ -1,2 +1,2 @@
1
1
  import { AppStatusBodyProps } from './types';
2
- export declare const AppStatusBody: ({ appDetails, type, handleShowConfigDriftModal, deploymentStatusDetailsBreakdownData, selectedTab, debugWithAIButton: ExplainWithAIButton, }: AppStatusBodyProps) => JSX.Element;
2
+ export declare const AppStatusBody: ({ appDetails, type, handleShowConfigDriftModal, deploymentStatusDetailsBreakdownData, selectedTab, debugWithAIButton: ExplainWithAIButton, handleClose, }: AppStatusBodyProps) => JSX.Element;
@@ -1,5 +1,6 @@
1
1
  import { FunctionComponent, PropsWithChildren, ReactNode } from 'react';
2
2
  import { APIOptions, DeploymentAppTypes } from '../../../Common/Types';
3
+ import { MainContext } from '../../Providers';
3
4
  import { AppDetails, ConfigDriftModalProps, DeploymentStatusDetailsBreakdownDataType, DeploymentStatusDetailsType, IntelligenceConfig } from '../../types';
4
5
  export declare enum AppStatusModalTabType {
5
6
  APP_STATUS = "appStatus",
@@ -13,6 +14,8 @@ export type AppStatusModalProps = {
13
14
  processVirtualEnvironmentDeploymentData: (data?: DeploymentStatusDetailsType) => DeploymentStatusDetailsBreakdownDataType;
14
15
  debugWithAIButton: FunctionComponent<{
15
16
  intelligenceConfig: IntelligenceConfig;
17
+ debugAgentContext: MainContext['debugAgentContext'];
18
+ onClick?: () => void;
16
19
  }>;
17
20
  } & ({
18
21
  type: 'release';
@@ -29,7 +32,7 @@ export type AppStatusModalProps = {
29
32
  appId?: never;
30
33
  envId?: never;
31
34
  });
32
- export interface AppStatusBodyProps extends Required<Pick<AppStatusModalProps, 'appDetails' | 'type' | 'debugWithAIButton'>> {
35
+ export interface AppStatusBodyProps extends Required<Pick<AppStatusModalProps, 'appDetails' | 'type' | 'debugWithAIButton' | 'handleClose'>> {
33
36
  handleShowConfigDriftModal: () => void;
34
37
  selectedTab: AppStatusModalTabType;
35
38
  deploymentStatusDetailsBreakdownData: DeploymentStatusDetailsBreakdownDataType;
@@ -93,9 +93,7 @@ export type ChartProps = {
93
93
  placement?: TooltipProps['placement'];
94
94
  datasetValueFormatter?: (value: number) => string | number;
95
95
  };
96
- /** A title for x axis */
97
96
  xScaleTitle?: string;
98
- /** A title for y axis */
99
97
  yScaleTitle?: string;
100
98
  } & TypeAndDatasetsType;
101
99
  export type TransformDatasetProps = {
@@ -104,6 +104,5 @@ export declare const DOCUMENTATION: {
104
104
  readonly COST_CALCULATION: "docs/user-guide/finops/overview-cost-visibility#how-is-the-cost-calculated";
105
105
  readonly COST_VISIBILITY_OVERVIEW: "docs/user-guide/finops/overview-cost-visibility";
106
106
  readonly SECURITY_CENTER: "docs/user-guide/security-features";
107
- readonly AI_RECOMMENDATIONS: "docs/user-guide/ai-recommendations";
108
107
  readonly AUTOMATION_AND_ENABLEMENT: "docs/user-guide/automation";
109
108
  };
@@ -1,4 +1,4 @@
1
1
  import { default as React } from 'react';
2
2
  import { FloatingVariablesSuggestionsProps } from './types';
3
- declare const _default: React.MemoExoticComponent<({ zIndex, appId, envId, clusterId, bounds, hideObjectVariables, showValueOnHover, isTemplateView, }: FloatingVariablesSuggestionsProps) => JSX.Element>;
3
+ declare const _default: React.MemoExoticComponent<({ appId, envId, clusterId, hideObjectVariables, showValueOnHover, isTemplateView, boundaryGap, }: FloatingVariablesSuggestionsProps) => JSX.Element>;
4
4
  export default _default;
@@ -1,7 +1,4 @@
1
- export declare const SUGGESTIONS_SIZE: {
2
- width: number;
3
- height: number;
4
- };
5
1
  export declare const NO_DEFINED_DESCRIPTION = "No Defined Description";
6
2
  export declare const NO_DEFINED_VALUE = "No Defined Value";
7
3
  export declare const SUGGESTIONS_INFO_TITLE = "What is scoped variable?";
4
+ export declare const DRAG_SELECTOR = "handle-drag";
@@ -1,4 +1,4 @@
1
- import { DraggableBounds } from 'react-draggable';
1
+ import { DraggableWrapperProps } from '../../../Common/DraggableWrapper';
2
2
  import { AppConfigProps } from '../../../Pages/index';
3
3
  export interface ScopedVariableType {
4
4
  variableName: string;
@@ -8,12 +8,10 @@ export interface ScopedVariableType {
8
8
  } | null;
9
9
  isRedacted: boolean;
10
10
  }
11
- export interface FloatingVariablesSuggestionsProps extends Required<Pick<AppConfigProps, 'isTemplateView'>> {
12
- zIndex: number;
11
+ export interface FloatingVariablesSuggestionsProps extends Required<Pick<AppConfigProps, 'isTemplateView'>>, Pick<DraggableWrapperProps, 'boundaryGap'> {
13
12
  appId?: string;
14
13
  envId?: string;
15
14
  clusterId?: string;
16
- bounds?: DraggableBounds | string | false;
17
15
  /**
18
16
  * This will hide the variables with object/array values if set to true
19
17
  * @default true
@@ -30,6 +30,7 @@ export declare const iconMap: {
30
30
  'ic-backup-color': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
31
31
  'ic-backup-location': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
32
32
  'ic-backup-schedule-color': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
33
+ 'ic-bell': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
33
34
  'ic-bg-backup-schedule': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
34
35
  'ic-bg-backups': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
35
36
  'ic-bg-build': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -56,6 +57,7 @@ export declare const iconMap: {
56
57
  'ic-bug': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
57
58
  'ic-build-color': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
58
59
  'ic-building': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
60
+ 'ic-bulb': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
59
61
  'ic-calendar': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
60
62
  'ic-cancelled': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
61
63
  'ic-card-stack': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -79,6 +81,7 @@ export declare const iconMap: {
79
81
  'ic-clipboard': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
80
82
  'ic-clock-counterclockwise': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
81
83
  'ic-clock': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
84
+ 'ic-close-circle': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
82
85
  'ic-close-large': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
83
86
  'ic-close-small': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
84
87
  'ic-cloud-upload': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -88,6 +91,8 @@ export declare const iconMap: {
88
91
  'ic-code': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
89
92
  'ic-coins-color-animated': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
90
93
  'ic-coins': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
94
+ 'ic-comment': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
95
+ 'ic-configuration-file': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
91
96
  'ic-container-registry': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
92
97
  'ic-container': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
93
98
  'ic-cookr': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -116,6 +121,7 @@ export declare const iconMap: {
116
121
  'ic-disconnect': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
117
122
  'ic-discord-fill': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
118
123
  'ic-dockerhub': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
124
+ 'ic-dot-circle': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
119
125
  'ic-download': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
120
126
  'ic-ecr': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
121
127
  'ic-edit-lines': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -177,6 +183,7 @@ export declare const iconMap: {
177
183
  'ic-help-outline': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
178
184
  'ic-hibernate-circle': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
179
185
  'ic-hibernate': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
186
+ 'ic-image-approve': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
180
187
  'ic-in-progress': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
181
188
  'ic-info-filled-color': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
182
189
  'ic-info-filled': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -206,6 +213,7 @@ export declare const iconMap: {
206
213
  'ic-magic-wand': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
207
214
  'ic-magnifying-glass': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
208
215
  'ic-medium-delete': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
216
+ 'ic-medium-megaphone': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
209
217
  'ic-medium-paintbucket': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
210
218
  'ic-megaphone-left': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
211
219
  'ic-megaphone-right': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -219,6 +227,7 @@ export declare const iconMap: {
219
227
  'ic-more-vertical': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
220
228
  'ic-namespace': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
221
229
  'ic-nav-cursor': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
230
+ 'ic-new-chat': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
222
231
  'ic-new': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
223
232
  'ic-node-script': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
224
233
  'ic-oidc': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -236,11 +245,16 @@ export declare const iconMap: {
236
245
  'ic-pause-circle': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
237
246
  'ic-pause': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
238
247
  'ic-pencil': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
248
+ 'ic-piggybank': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
239
249
  'ic-play-outline': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
250
+ 'ic-priority-high-fill': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
251
+ 'ic-priority-low-fill': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
240
252
  'ic-priority-medium-fill': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
253
+ 'ic-priority-urgent-fill': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
241
254
  'ic-quay': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
242
255
  'ic-quote': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
243
256
  'ic-ratings': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
257
+ 'ic-red-bulb': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
244
258
  'ic-release-hub': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
245
259
  'ic-resize-handle': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
246
260
  'ic-resource-browser': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -254,9 +268,12 @@ export declare const iconMap: {
254
268
  'ic-security-scan': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
255
269
  'ic-security-vulnerability': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
256
270
  'ic-selected': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
271
+ 'ic-ses': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
257
272
  'ic-shapes': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
258
273
  'ic-shield-check': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
274
+ 'ic-slack': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
259
275
  'ic-sliders-vertical': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
276
+ 'ic-smtp': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
260
277
  'ic-software-release-management': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
261
278
  'ic-sort-ascending': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
262
279
  'ic-sort-descending': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -289,7 +306,9 @@ export declare const iconMap: {
289
306
  'ic-terminal-fill': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
290
307
  'ic-terminal': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
291
308
  'ic-thermometer': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
309
+ 'ic-thumb-down-fill': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
292
310
  'ic-thumb-down': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
311
+ 'ic-thumb-up-fill': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
293
312
  'ic-thumb-up': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
294
313
  'ic-timeout-dash': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
295
314
  'ic-timer': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -309,6 +328,7 @@ export declare const iconMap: {
309
328
  'ic-warning-fill': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
310
329
  'ic-warning-stroke': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
311
330
  'ic-warning': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
331
+ 'ic-webhook-config': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
312
332
  'ic-webhook': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
313
333
  'ic-wifi-slash': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
314
334
  'ic-world-globe': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -1,3 +1,3 @@
1
1
  import { FiltersTypeEnum, InternalTableProps } from './types';
2
- declare const InternalTable: <RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>>({ filtersVariant, filterData, rows, getRows, columns, ViewWrapper, resizableConfig, emptyStateConfig, additionalProps, areColumnsConfigurable, filter, setVisibleColumns, visibleColumns, stylesConfig, loading, bulkSelectionConfig, bulkSelectionReturnValue, id, handleClearBulkSelection, handleToggleBulkSelectionOnRow, paginationVariant, rowActionOnHoverConfig, pageSizeOptions, clearFilters: userGivenUrlClearFilters, }: InternalTableProps<RowData, FilterVariant, AdditionalProps>) => JSX.Element;
2
+ declare const InternalTable: <RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>>({ filtersVariant, filterData, rows, getRows, columns, ViewWrapper, resizableConfig, emptyStateConfig, additionalProps, areColumnsConfigurable, filter, setVisibleColumns, visibleColumns, stylesConfig, loading, bulkSelectionConfig, bulkSelectionReturnValue, id, handleClearBulkSelection, handleToggleBulkSelectionOnRow, paginationVariant, rowActionOnHoverConfig, pageSizeOptions, clearFilters: userGivenUrlClearFilters, rowStartIconConfig, onRowClick, areFiltersApplied: userProvidedAreFiltersApplied, }: InternalTableProps<RowData, FilterVariant, AdditionalProps>) => JSX.Element;
3
3
  export default InternalTable;
@@ -1,3 +1,3 @@
1
1
  import { FiltersTypeEnum, TableContentProps } from './types';
2
- declare const TableContent: <RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>>({ filterData, rows, resizableConfig, additionalProps, visibleColumns, stylesConfig, loading, bulkSelectionConfig, bulkSelectionReturnValue, handleClearBulkSelection, handleToggleBulkSelectionOnRow, paginationVariant, rowActionOnHoverConfig, pageSizeOptions, filteredRows, areFilteredRowsLoading, getRows, totalRows, }: TableContentProps<RowData, FilterVariant, AdditionalProps>) => JSX.Element;
2
+ declare const TableContent: <RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>>({ filterData, rows, resizableConfig, additionalProps, visibleColumns, stylesConfig, loading, bulkSelectionConfig, bulkSelectionReturnValue, handleClearBulkSelection, handleToggleBulkSelectionOnRow, paginationVariant, rowActionOnHoverConfig, pageSizeOptions, filteredRows, areFilteredRowsLoading, getRows, totalRows, rowStartIconConfig, onRowClick, }: TableContentProps<RowData, FilterVariant, AdditionalProps>) => JSX.Element;
3
3
  export default TableContent;
@@ -6,3 +6,4 @@ export declare const EVENT_TARGET: EventTarget;
6
6
  export declare const DRAG_SELECTOR_IDENTIFIER = "table-drag-selector";
7
7
  export declare const SHIMMER_DUMMY_ARRAY: number[];
8
8
  export declare const NO_ROWS_OR_GET_ROWS_ERROR: Error;
9
+ export declare const ACTION_GUTTER_SIZE = 24;
@@ -4,10 +4,13 @@ import { UseStateFiltersProps, UseStateFiltersReturnType, UseUrlFiltersProps, Us
4
4
  import { GenericEmptyStateType } from '../../../Common/index';
5
5
  import { PageSizeOption } from '../../../Common/Pagination/types';
6
6
  import { SortableTableHeaderCellProps, useResizableTableConfig } from '../../../Common/SortableTableHeaderCell';
7
+ import { IconsProps } from '../Icon';
7
8
  import { useBulkSelection, UseBulkSelectionProps } from '../BulkSelection';
8
9
  export interface UseFiltersReturnType extends UseStateFiltersReturnType<string> {
9
10
  }
10
11
  export declare enum SignalEnum {
12
+ COLLAPSE_ROW = "collapse-row",
13
+ EXPAND_ROW = "expand-row",
11
14
  ENTER_PRESSED = "enter-pressed",
12
15
  DELETE_PRESSED = "delete-pressed",
13
16
  ESCAPE_PRESSED = "escape-pressed",
@@ -42,11 +45,18 @@ type BaseColumnType = {
42
45
  */
43
46
  size: SizeType;
44
47
  horizontallySticky?: boolean;
45
- };
46
- export type RowType<Data extends unknown> = {
48
+ } & Pick<SortableTableHeaderCellProps, 'infoTooltipText'>;
49
+ type CommonRowType<Data extends unknown> = {
47
50
  id: string;
48
51
  data: Data;
49
52
  };
53
+ export type ExpandedRowPrefixType = 'expanded-row-';
54
+ export type ExpandedRowType<Data extends unknown> = CommonRowType<Data> & {
55
+ id: `${ExpandedRowPrefixType}${string}`;
56
+ };
57
+ export type RowType<Data extends unknown> = CommonRowType<Data> & {
58
+ expandableRows?: Array<ExpandedRowType<Data>>;
59
+ };
50
60
  export type RowsType<Data extends unknown> = RowType<Data>[];
51
61
  export declare enum FiltersTypeEnum {
52
62
  STATE = "state",
@@ -59,6 +69,9 @@ export type CellComponentProps<RowData extends unknown = unknown, FilterVariant
59
69
  row: RowType<RowData>;
60
70
  filterData: FilterVariant extends FiltersTypeEnum.NONE ? null : FilterVariant extends FiltersTypeEnum.STATE ? UseFiltersReturnType : UseUrlFiltersReturnType<string>;
61
71
  isRowActive: boolean;
72
+ isExpandedRow: boolean;
73
+ isRowInExpandState: boolean;
74
+ expandRowCallback: (e: MouseEvent<HTMLButtonElement>) => void;
62
75
  };
63
76
  export type RowActionsOnHoverComponentProps<RowData extends unknown = unknown, AdditionalProps extends Record<string, any> = {}> = {
64
77
  row: RowType<RowData>;
@@ -111,7 +124,7 @@ export type ViewWrapperProps<RowData extends unknown = unknown, FilterVariant ex
111
124
  filteredRows: RowsType<RowData> | null;
112
125
  rows: RowsType<RowData> | null;
113
126
  } & (FilterVariant extends FiltersTypeEnum.URL ? Pick<UseUrlFiltersReturnType<string>, 'updateSearchParams'> : {})>;
114
- type FilterConfig<FilterVariant extends FiltersTypeEnum, RowData extends unknown> = {
127
+ type FilterConfig<FilterVariant extends FiltersTypeEnum, RowData extends unknown, AdditionalProps extends Record<string, any>> = {
115
128
  filtersVariant: FilterVariant;
116
129
  /**
117
130
  * Props for useUrlFilters/useStateFilters hooks
@@ -123,8 +136,9 @@ type FilterConfig<FilterVariant extends FiltersTypeEnum, RowData extends unknown
123
136
  *
124
137
  * If filter is only being used for sorting, then send `noop` in this prop
125
138
  */
126
- filter: FilterVariant extends FiltersTypeEnum.NONE ? null : (row: RowType<RowData>, filterData: UseFiltersReturnType) => boolean;
139
+ filter: FilterVariant extends FiltersTypeEnum.NONE ? null : (row: RowType<RowData>, filterData: UseFiltersReturnType, additionalProps: AdditionalProps) => boolean;
127
140
  clearFilters?: FilterVariant extends FiltersTypeEnum.URL ? () => void : FilterVariant extends FiltersTypeEnum.STATE ? never : never;
141
+ areFiltersApplied?: FilterVariant extends FiltersTypeEnum.NONE ? never : boolean;
128
142
  };
129
143
  export type InternalTableProps<RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>> = Required<Pick<ConfigurableColumnsType<RowData, FilterVariant, AdditionalProps>, 'visibleColumns' | 'setVisibleColumns'>> & {
130
144
  id: `table__${string}`;
@@ -169,6 +183,12 @@ export type InternalTableProps<RowData extends unknown, FilterVariant extends Fi
169
183
  handleClearBulkSelection: () => void;
170
184
  handleToggleBulkSelectionOnRow: (row: RowType<RowData>) => void;
171
185
  ViewWrapper?: FunctionComponent<ViewWrapperProps<RowData, FilterVariant, AdditionalProps>>;
186
+ /**
187
+ * An icon as the first element of the row, that hides actions like expand or bulk select icons
188
+ * until user hovers over the row or the row has focus from keyboard navigation
189
+ */
190
+ rowStartIconConfig?: Omit<IconsProps, 'dataTestId'>;
191
+ onRowClick?: (row: RowType<RowData>, isExpandedRow: boolean) => void;
172
192
  } & ({
173
193
  /**
174
194
  * Direct rows data for frontend-only datasets like resource browser.
@@ -191,12 +211,12 @@ export type InternalTableProps<RowData extends unknown, FilterVariant extends Fi
191
211
  } | {
192
212
  paginationVariant: Omit<PaginationEnum, 'PAGINATED'>;
193
213
  pageSizeOptions?: never;
194
- }) & FilterConfig<FilterVariant, RowData>;
214
+ }) & FilterConfig<FilterVariant, RowData, AdditionalProps>;
195
215
  export type UseResizableTableConfigWrapperProps<RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>> = Omit<InternalTableProps<RowData, FilterVariant, AdditionalProps>, 'resizableConfig'>;
196
216
  export type TableWithBulkSelectionProps<RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>> = Omit<UseResizableTableConfigWrapperProps<RowData, FilterVariant, AdditionalProps>, 'bulkSelectionReturnValue' | 'handleClearBulkSelection' | 'handleToggleBulkSelectionOnRow'>;
197
217
  export type VisibleColumnsWrapperProps<RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>> = Omit<TableWithBulkSelectionProps<RowData, FilterVariant, AdditionalProps>, 'visibleColumns' | 'setVisibleColumns'>;
198
218
  export type FilterWrapperProps<RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>> = Omit<VisibleColumnsWrapperProps<RowData, FilterVariant, AdditionalProps>, 'filterData'>;
199
- export type TableProps<RowData extends unknown = unknown, FilterVariant extends FiltersTypeEnum = FiltersTypeEnum.NONE, AdditionalProps extends Record<string, any> = {}> = Pick<FilterWrapperProps<RowData, FilterVariant, AdditionalProps>, 'additionalFilterProps' | 'bulkSelectionConfig' | 'areColumnsConfigurable' | 'emptyStateConfig' | 'filtersVariant' | 'filter' | 'additionalProps' | 'columns' | 'getRows' | 'rows' | 'paginationVariant' | 'stylesConfig' | 'id' | 'rowActionOnHoverConfig' | 'loading' | 'ViewWrapper' | 'pageSizeOptions' | 'clearFilters'>;
219
+ export type TableProps<RowData extends unknown = unknown, FilterVariant extends FiltersTypeEnum = FiltersTypeEnum.NONE, AdditionalProps extends Record<string, any> = {}> = Pick<FilterWrapperProps<RowData, FilterVariant, AdditionalProps>, 'additionalFilterProps' | 'bulkSelectionConfig' | 'areColumnsConfigurable' | 'emptyStateConfig' | 'filtersVariant' | 'filter' | 'additionalProps' | 'columns' | 'getRows' | 'rows' | 'paginationVariant' | 'stylesConfig' | 'id' | 'rowActionOnHoverConfig' | 'loading' | 'ViewWrapper' | 'pageSizeOptions' | 'clearFilters' | 'rowStartIconConfig' | 'onRowClick' | 'areFiltersApplied'>;
200
220
  export type BulkActionStateType = string | null;
201
221
  export interface BulkSelectionActionWidgetProps extends Pick<BulkSelectionConfigType, 'BulkActionsComponent' | 'bulkActionsData'> {
202
222
  count: number;
@@ -214,7 +234,7 @@ export interface RowsResultType<RowData extends unknown> {
214
234
  filteredRows: RowsType<RowData>;
215
235
  totalRows: number;
216
236
  }
217
- export interface TableContentProps<RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>> extends Pick<InternalTableProps<RowData, FilterVariant, AdditionalProps>, 'filterData' | 'rows' | 'resizableConfig' | 'additionalProps' | 'visibleColumns' | 'stylesConfig' | 'loading' | 'bulkSelectionConfig' | 'bulkSelectionReturnValue' | 'handleClearBulkSelection' | 'handleToggleBulkSelectionOnRow' | 'paginationVariant' | 'rowActionOnHoverConfig' | 'pageSizeOptions' | 'getRows'>, RowsResultType<RowData> {
237
+ export interface TableContentProps<RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>> extends Pick<InternalTableProps<RowData, FilterVariant, AdditionalProps>, 'filterData' | 'rows' | 'resizableConfig' | 'additionalProps' | 'visibleColumns' | 'stylesConfig' | 'loading' | 'bulkSelectionConfig' | 'bulkSelectionReturnValue' | 'handleClearBulkSelection' | 'handleToggleBulkSelectionOnRow' | 'paginationVariant' | 'rowActionOnHoverConfig' | 'pageSizeOptions' | 'getRows' | 'rowStartIconConfig' | 'onRowClick'>, RowsResultType<RowData> {
218
238
  areFilteredRowsLoading: boolean;
219
239
  }
220
240
  export {};
@@ -1,5 +1,5 @@
1
1
  import { Column, ConfigurableColumnsType, FiltersTypeEnum, GetFilteringPromiseProps, RowsType, TableProps, UseFiltersReturnType } from './types';
2
- export declare const searchAndSortRows: <RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>>(rows: TableProps<RowData, FilterVariant, AdditionalProps>["rows"], filter: TableProps<RowData, FilterVariant, AdditionalProps>["filter"], filterData: UseFiltersReturnType, comparator?: Column<RowData, FilterVariant, AdditionalProps>["comparator"]) => Awaited<ReturnType<TableProps<RowData>["getRows"]>>;
2
+ export declare const searchAndSortRows: <RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>>(rows: TableProps<RowData, FilterVariant, AdditionalProps>["rows"], filter: TableProps<RowData, FilterVariant, AdditionalProps>["filter"], filterData: UseFiltersReturnType, additionalProps: AdditionalProps, comparator?: Column<RowData, FilterVariant, AdditionalProps>["comparator"]) => Awaited<ReturnType<TableProps<RowData>["getRows"]>>;
3
3
  export declare const getVisibleColumnsFromLocalStorage: <RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>>({ allColumns, id, }: Pick<ConfigurableColumnsType<RowData, FilterVariant, AdditionalProps>, "allColumns"> & Pick<TableProps<RowData, FilterVariant, AdditionalProps>, "id">) => Column<RowData, FilterVariant, AdditionalProps>[];
4
4
  export declare const setVisibleColumnsToLocalStorage: <RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>>({ id, visibleColumns, }: Pick<ConfigurableColumnsType<RowData, FilterVariant, AdditionalProps>, "visibleColumns"> & Pick<TableProps<RowData, FilterVariant, AdditionalProps>, "id">) => void;
5
5
  export declare const getVisibleColumns: <RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>>({ areColumnsConfigurable, columns, id, }: Pick<TableProps<RowData, FilterVariant, AdditionalProps>, "areColumnsConfigurable" | "columns" | "id">) => Column<RowData, FilterVariant, AdditionalProps>[];
@@ -1,2 +1,3 @@
1
+ export { getProjectOptions } from './service';
1
2
  export type { UseGetResourceKindOptionsReturnType, UseGetResourceKindsOptionsProps } from './types';
2
3
  export { default as useGetResourceKindsOptions } from './useGetResourceKindsOptions';
@@ -1,3 +1,3 @@
1
1
  export * from './MainContextProvider';
2
2
  export type { MainContext, ReloadVersionConfigTypes, SidePanelConfig, TempAppWindowConfig } from './types';
3
- export { SidePanelTab } from './types';
3
+ export { AIAgentContextSourceType, type AIAgentContextType, SidePanelTab } from './types';
@@ -1,4 +1,4 @@
1
- import { Dispatch, MutableRefObject, ReactNode, SetStateAction } from 'react';
1
+ import { Dispatch, FunctionComponent, MutableRefObject, ReactNode, SetStateAction } from 'react';
2
2
  import { SERVER_MODE } from '../../../Common';
3
3
  import { DevtronLicenseInfo, EnvironmentDataValuesDTO, IntelligenceConfig, LicenseInfoDialogType, ToastManager } from '../..';
4
4
  import { ServerInfo } from '../../Components/Header/types';
@@ -22,10 +22,43 @@ export interface SidePanelConfig {
22
22
  /** URL to documentation that should be displayed in the panel */
23
23
  docLink: string | null;
24
24
  aiSessionId?: string;
25
+ isExpandedView?: boolean;
25
26
  }
26
- type AIAgentContextType = {
27
- path: string;
28
- context: Record<string, string>;
27
+ export declare enum AIAgentContextSourceType {
28
+ APP_DETAILS = "app-details",
29
+ RESOURCE_BROWSER_CLUSTER = "resource-browser-cluster"
30
+ }
31
+ export type AIAgentAppType = 'devtronApp' | 'devtronHelmChart' | 'externalHelmChart' | 'externalArgoApp' | 'externalFluxApp';
32
+ type AIAgentAppDataMasterType = {
33
+ appId: number | string;
34
+ appName: string;
35
+ envId: number;
36
+ envName: string;
37
+ clusterId: number;
38
+ namespace: string;
39
+ appType: AIAgentAppType;
40
+ fluxAppDeploymentType: string;
41
+ };
42
+ type AIAgentAppDataType<TAppType extends AIAgentAppType, TRequiredFields extends keyof AIAgentAppDataMasterType> = Pick<AIAgentAppDataMasterType, TRequiredFields> & {
43
+ [K in Exclude<keyof AIAgentAppDataMasterType, TRequiredFields | 'appType'>]?: never;
44
+ } & {
45
+ appType: TAppType;
46
+ };
47
+ type CommonContextDataType = Record<string, unknown> & {
48
+ uiMarkup?: string;
49
+ };
50
+ export type AIAgentContextType = {
51
+ source: AIAgentContextSourceType.APP_DETAILS;
52
+ data: AIAgentAppDataType<'devtronApp' | 'devtronHelmChart', 'appId' | 'appName' | 'envId' | 'envName' | 'clusterId'> | AIAgentAppDataType<'externalHelmChart', 'appId' | 'appName' | 'clusterId' | 'namespace'> | AIAgentAppDataType<'externalArgoApp', 'appName' | 'clusterId' | 'namespace'> | (AIAgentAppDataType<'externalFluxApp', 'appName' | 'clusterId' | 'namespace' | 'fluxAppDeploymentType'> & CommonContextDataType);
53
+ } | {
54
+ source: AIAgentContextSourceType.RESOURCE_BROWSER_CLUSTER;
55
+ data: {
56
+ clusterId: number;
57
+ clusterName: string;
58
+ } & CommonContextDataType;
59
+ };
60
+ export type DebugAgentContextType = AIAgentContextType & {
61
+ prompt?: string;
29
62
  };
30
63
  export interface TempAppWindowConfig {
31
64
  /** Whether the temporary window is open */
@@ -87,6 +120,8 @@ type CommonMainContextProps = {
87
120
  setLicenseData: Dispatch<SetStateAction<DevtronLicenseInfo>>;
88
121
  canFetchHelmAppStatus: boolean;
89
122
  setIntelligenceConfig: Dispatch<SetStateAction<IntelligenceConfig>>;
123
+ debugAgentContext: DebugAgentContextType | null;
124
+ setDebugAgentContext: (aiAgentContext: DebugAgentContextType | null) => void;
90
125
  setAIAgentContext: (aiAgentContext: AIAgentContextType) => void;
91
126
  setSidePanelConfig: Dispatch<SetStateAction<SidePanelConfig>>;
92
127
  } & Pick<EnvironmentDataValuesDTO, 'isResourceRecommendationEnabled'>;
@@ -115,6 +150,9 @@ export type MainContext = CommonMainContextProps & ({
115
150
  aiAgentContext: AIAgentContextType;
116
151
  tempAppWindowConfig: TempAppWindowConfig;
117
152
  setTempAppWindowConfig: Dispatch<SetStateAction<TempAppWindowConfig>>;
153
+ AIRecommendations?: FunctionComponent;
154
+ featureAskDevtronExpert: EnvironmentDataValuesDTO['featureAskDevtronExpert'];
155
+ AskDevtronButton?: FunctionComponent;
118
156
  } | {
119
157
  isLicenseDashboard: true;
120
158
  serverMode: null;
@@ -132,6 +170,9 @@ export type MainContext = CommonMainContextProps & ({
132
170
  aiAgentContext: null;
133
171
  tempAppWindowConfig: null;
134
172
  setTempAppWindowConfig: null;
173
+ AIRecommendations?: null;
174
+ featureAskDevtronExpert?: null;
175
+ AskDevtronButton?: null;
135
176
  });
136
177
  export interface MainContextProviderProps {
137
178
  children: ReactNode;
@@ -39,6 +39,7 @@ export interface EnvironmentDataValuesDTO extends Pick<MainContext, 'featureGitO
39
39
  canOnlyViewPermittedEnvOrgLevel: boolean;
40
40
  devtronManagedLicensingEnabled: boolean;
41
41
  isResourceRecommendationEnabled?: boolean;
42
+ featureAskDevtronExpert: boolean;
42
43
  }
43
44
  export interface ClusterMinDTO {
44
45
  id: number;
@@ -1128,7 +1128,7 @@ export interface DeploymentStatusDetailsBreakdownDataType {
1128
1128
  }
1129
1129
  export interface IntelligenceConfig {
1130
1130
  clusterId: number;
1131
- metadata: Record<string, string>;
1131
+ metadata: Record<string, string | number>;
1132
1132
  prompt: string;
1133
1133
  analyticsCategory: string;
1134
1134
  }