@devtron-labs/devtron-fe-common-lib 1.9.4 → 1.9.5-beta-2

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 (68) hide show
  1. package/dist/{@code-editor-CoSgddEi.js → @code-editor-YfUq8lRh.js} +7002 -6583
  2. package/dist/{@common-rjsf-CI9-gpwf.js → @common-rjsf-uW-aIzbh.js} +2 -2
  3. package/dist/{@framer-motion-FKAND_5t.js → @framer-motion-Cx1gSa6-.js} +1 -1
  4. package/dist/{@react-dates-Cc7UHR4b.js → @react-dates-ukcBEyJ1.js} +1 -1
  5. package/dist/{@react-select-45zYr11O.js → @react-select-Cas7oOFN.js} +1 -1
  6. package/dist/{@react-virtualized-sticky-tree-Du399kou.js → @react-virtualized-sticky-tree-DRihF7_6.js} +1 -1
  7. package/dist/{@vendor-CSolG4o7.js → @vendor-xG1dUtf3.js} +13079 -12758
  8. package/dist/Common/API/CoreAPI.d.ts +17 -0
  9. package/dist/Common/API/constants.d.ts +70 -0
  10. package/dist/Common/API/index.d.ts +3 -0
  11. package/dist/Common/API/types.d.ts +23 -0
  12. package/dist/Common/API/utils.d.ts +12 -0
  13. package/dist/Common/Constants.d.ts +4 -0
  14. package/dist/Common/Helper.d.ts +1 -0
  15. package/dist/Common/Types.d.ts +7 -0
  16. package/dist/Common/index.d.ts +1 -1
  17. package/dist/Shared/Components/CountrySelect/CountrySelect.component.d.ts +3 -0
  18. package/dist/Shared/Components/CountrySelect/index.d.ts +1 -0
  19. package/dist/Shared/Components/CountrySelect/types.d.ts +7 -0
  20. package/dist/Shared/Components/CountrySelect/utils.d.ts +4 -0
  21. package/dist/Shared/Components/CustomInput/CustomInput.d.ts +1 -1
  22. package/dist/Shared/Components/CustomInput/types.d.ts +5 -1
  23. package/dist/Shared/Components/DevtronLicenseCard/DevtronLicenseCard.d.ts +3 -0
  24. package/dist/Shared/Components/DevtronLicenseCard/index.d.ts +3 -0
  25. package/dist/Shared/Components/DevtronLicenseCard/types.d.ts +18 -0
  26. package/dist/Shared/Components/DevtronLicenseCard/utils.d.ts +6 -0
  27. package/dist/Shared/Components/FlagImage/FlagImage.component.d.ts +3 -0
  28. package/dist/Shared/Components/FlagImage/index.d.ts +1 -0
  29. package/dist/Shared/Components/FlagImage/types.d.ts +5 -0
  30. package/dist/Shared/Components/Header/types.d.ts +0 -1
  31. package/dist/Shared/Components/Icon/Icon.d.ts +9 -0
  32. package/dist/Shared/Components/LoginBanner/LoginBanner.d.ts +2 -0
  33. package/dist/Shared/Components/LoginBanner/constants.d.ts +2 -0
  34. package/dist/Shared/Components/LoginBanner/index.d.ts +1 -0
  35. package/dist/Shared/Components/LoginBanner/types.d.ts +7 -0
  36. package/dist/Shared/Components/PhoneInput/PhoneInput.component.d.ts +3 -0
  37. package/dist/Shared/Components/PhoneInput/index.d.ts +1 -0
  38. package/dist/Shared/Components/PhoneInput/types.d.ts +11 -0
  39. package/dist/Shared/Components/index.d.ts +6 -0
  40. package/dist/Shared/Helpers.d.ts +1 -0
  41. package/dist/Shared/Providers/types.d.ts +1 -1
  42. package/dist/Shared/constants.d.ts +3 -0
  43. package/dist/Shared/types.d.ts +33 -0
  44. package/dist/assets/@code-editor.css +1 -1
  45. package/dist/assets/ic-azure.49ec3dad.svg +23 -0
  46. package/dist/assets/ic-book-open.e839bbda.svg +3 -0
  47. package/dist/assets/ic-caret-left.3df25a7c.svg +3 -0
  48. package/dist/assets/ic-chat-circle-dots.b5afd171.svg +3 -0
  49. package/dist/assets/ic-devtron-header-logo.7dc157aa.svg +4 -0
  50. package/dist/assets/ic-devtron.aca6cbaa.svg +3 -0
  51. package/dist/assets/ic-dockerhub.19023887.svg +3 -0
  52. package/dist/assets/ic-ecr.022619e3.svg +9 -0
  53. package/dist/assets/ic-google-artifact-registry.536fe6c7.svg +18 -0
  54. package/dist/assets/ic-google-container-registry.20eeef45.svg +19 -0
  55. package/dist/assets/ic-key.56432553.svg +19 -0
  56. package/dist/assets/ic-quay.19eb5574.svg +11 -0
  57. package/dist/assets/ic-quote.68f093fe.svg +3 -0
  58. package/dist/assets/ic-timer.ae5f10fa.svg +19 -0
  59. package/dist/index.d.ts +0 -6
  60. package/dist/index.js +780 -765
  61. package/package.json +2 -1
  62. package/dist/Common/Api.d.ts +0 -15
  63. package/dist/assets/ic-azure.f469b426.svg +0 -39
  64. package/dist/assets/ic-dockerhub.ae468451.svg +0 -19
  65. package/dist/assets/ic-ecr.1701dc23.svg +0 -25
  66. package/dist/assets/ic-google-artifact-registry.73ff5bb0.svg +0 -25
  67. package/dist/assets/ic-google-container-registry.815ede09.svg +0 -25
  68. package/dist/assets/ic-quay.84004841.svg +0 -27
@@ -0,0 +1,17 @@
1
+ import { APIOptions, ResponseType } from '..';
2
+ import { CoreAPIConstructorParamsType } from './types';
3
+ declare class CoreAPI {
4
+ handleLogout: () => void;
5
+ handleRedirectToLicenseActivation?: () => void;
6
+ host: string;
7
+ timeout: number;
8
+ constructor({ handleLogout, host, timeout, handleRedirectToLicenseActivation }: CoreAPIConstructorParamsType);
9
+ private fetchAPI;
10
+ private fetchInTime;
11
+ post: <T = any, K = object>(url: string, data: K, options?: APIOptions, isMultipartRequest?: boolean) => Promise<ResponseType<T>>;
12
+ put: <T = any, K = object>(url: string, data: K, options?: APIOptions) => Promise<ResponseType<T>>;
13
+ patch: <T = any, K = object>(url: string, data: K, options?: APIOptions) => Promise<ResponseType<T>>;
14
+ get: <T = any>(url: string, options?: APIOptions) => Promise<ResponseType<T>>;
15
+ trash: <T = any, K = object>(url: string, data?: K, options?: APIOptions) => Promise<ResponseType<T>>;
16
+ }
17
+ export default CoreAPI;
@@ -0,0 +1,70 @@
1
+ export declare const RESPONSE_MESSAGES: {
2
+ readonly 100: "Continue";
3
+ readonly 101: "Switching Protocols";
4
+ readonly 102: "Processing(WebDAV)";
5
+ readonly 200: "OK";
6
+ readonly 201: "Created";
7
+ readonly 202: "Accepted";
8
+ readonly 203: "Non - Authoritative Information";
9
+ readonly 204: "No Content";
10
+ readonly 205: "Reset Content";
11
+ readonly 206: "Partial Content";
12
+ readonly 207: "Multi - Status(WebDAV)";
13
+ readonly 208: "Already Reported(WebDAV)";
14
+ readonly 226: "IM Used";
15
+ readonly 300: "Multiple Choices";
16
+ readonly 301: "Moved Permanently";
17
+ readonly 302: "Found";
18
+ readonly 303: "See Other";
19
+ readonly 304: "Not Modified";
20
+ readonly 305: "Use Proxy";
21
+ readonly 307: "Temporary Redirect";
22
+ readonly 308: "Permanent Redirect(experimental)";
23
+ readonly 400: "Bad Request";
24
+ readonly 401: "Unauthorized";
25
+ readonly 402: "Payment Required";
26
+ readonly 403: "Forbidden";
27
+ readonly 404: "Not Found";
28
+ readonly 405: "Method Not Allowed";
29
+ readonly 406: "Not Acceptable";
30
+ readonly 407: "Proxy Authentication Required";
31
+ readonly 408: "Request Timeout";
32
+ readonly 409: "Conflict";
33
+ readonly 410: "Gone";
34
+ readonly 411: "Length Required";
35
+ readonly 412: "Precondition Failed";
36
+ readonly 413: "Request Entity Too Large";
37
+ readonly 414: "Request - URI Too Long";
38
+ readonly 415: "Unsupported Media Type";
39
+ readonly 416: "Requested Range Not Satisfiable";
40
+ readonly 417: "Expectation Failed";
41
+ readonly 418: "I'm a teapot";
42
+ readonly 420: "Enhance Your Calm(Twitter)";
43
+ readonly 422: "Unprocessable Entity(WebDAV)";
44
+ readonly 423: "Locked(WebDAV)";
45
+ readonly 424: "Failed Dependency(WebDAV)";
46
+ readonly 425: "Reserved for WebDAV";
47
+ readonly 426: "Upgrade Required";
48
+ readonly 428: "Precondition Required";
49
+ readonly 429: "Too Many Requests";
50
+ readonly 431: "Request Header Fields Too Large";
51
+ readonly 444: "No Response(Nginx)";
52
+ readonly 449: "Retry With(Microsoft)";
53
+ readonly 450: "Blocked by Windows Parental Controls(Microsoft)";
54
+ readonly 451: "Unavailable For Legal Reasons";
55
+ readonly 499: "Client Closed Request(Nginx)";
56
+ readonly 500: "Internal Server Error";
57
+ readonly 501: "Not Implemented";
58
+ readonly 502: "Bad Gateway";
59
+ readonly 503: "Service Unavailable";
60
+ readonly 504: "Gateway Timeout";
61
+ readonly 505: "HTTP Version Not Supported";
62
+ readonly 506: "Variant Also Negotiates(Experimental)";
63
+ readonly 507: "Insufficient Storage(WebDAV)";
64
+ readonly 508: "Loop Detected(WebDAV)";
65
+ readonly 509: "Bandwidth Limit Exceeded(Apache)";
66
+ readonly 510: "Not Extended";
67
+ readonly 511: "Network Authentication Required";
68
+ readonly 598: "Network read timeout error";
69
+ readonly 599: "Network connect timeout error";
70
+ };
@@ -0,0 +1,3 @@
1
+ export declare const post: <T = any, K = object>(url: string, data: K, options?: import('..').APIOptions, isMultipartRequest?: boolean) => Promise<import('..').ResponseType<T>>, put: <T = any, K = object>(url: string, data: K, options?: import('..').APIOptions) => Promise<import('..').ResponseType<T>>, patch: <T = any, K = object>(url: string, data: K, options?: import('..').APIOptions) => Promise<import('..').ResponseType<T>>, get: <T = any>(url: string, options?: import('..').APIOptions) => Promise<import('..').ResponseType<T>>, trash: <T = any, K = object>(url: string, data?: K, options?: import('..').APIOptions) => Promise<import('..').ResponseType<T>>;
2
+ export { getIsRequestAborted, abortPreviousRequests } from './utils';
3
+ export { default as CoreAPI } from './CoreAPI';
@@ -0,0 +1,23 @@
1
+ import { APIOptions } from '..';
2
+ export interface CoreAPIConstructorParamsType {
3
+ handleLogout: () => void;
4
+ handleRedirectToLicenseActivation?: () => void;
5
+ /**
6
+ * @default Host
7
+ */
8
+ host?: string;
9
+ /**
10
+ * @default FALLBACK_REQUEST_TIMEOUT
11
+ */
12
+ timeout?: number;
13
+ }
14
+ export interface FetchInTimeParamsType<Data = object> {
15
+ url: string;
16
+ type: 'POST' | 'PUT' | 'PATCH' | 'GET' | 'DELETE';
17
+ data: Data;
18
+ options?: APIOptions;
19
+ isMultipartRequest?: boolean;
20
+ }
21
+ export interface FetchAPIParamsType<Data = object> extends Omit<FetchInTimeParamsType<Data>, 'options'>, Pick<APIOptions, 'preventAutoLogout' | 'preventLicenseRedirect'> {
22
+ signal: AbortSignal;
23
+ }
@@ -0,0 +1,12 @@
1
+ import { MutableRefObject } from 'react';
2
+ export declare const handleServerError: (contentType: string, response: Response) => Promise<never>;
3
+ /**
4
+ * Aborts the previous request before triggering next request
5
+ */
6
+ export declare const abortPreviousRequests: <T>(callback: () => Promise<T>, abortControllerRef: MutableRefObject<AbortController>) => Promise<T>;
7
+ /**
8
+ * Returns true if the error is due to a aborted request
9
+ */
10
+ export declare const getIsRequestAborted: (error: any) => boolean;
11
+ export declare const handleDashboardLogout: () => void;
12
+ export declare const handleRedirectToLicenseActivation: () => void;
@@ -1,6 +1,7 @@
1
1
  export declare const FALLBACK_REQUEST_TIMEOUT = 60000;
2
2
  export declare const Host: string;
3
3
  export declare const DOCUMENTATION_HOME_PAGE = "https://docs.devtron.ai";
4
+ export declare const DEVTRON_HOME_PAGE = "https://devtron.ai/";
4
5
  export declare const DOCUMENTATION_VERSION = "/v/v0.7";
5
6
  export declare const DISCORD_LINK = "https://discord.devtron.ai/";
6
7
  export declare const DEFAULT_JSON_SCHEMA_URI = "https://json-schema.org/draft/2020-12/schema";
@@ -60,6 +61,7 @@ export declare const URLS: {
60
61
  RESOURCE_BROWSER: string;
61
62
  COMPARE_CLUSTERS: string;
62
63
  CONFIG_DRIFT: string;
64
+ LICENSE_AUTH: string;
63
65
  };
64
66
  export declare const ROUTES: {
65
67
  APP: string;
@@ -281,6 +283,7 @@ export declare const API_STATUS_CODES: {
281
283
  PERMISSION_DENIED: number;
282
284
  NOT_FOUND: number;
283
285
  REQUEST_TIMEOUT: number;
286
+ CONFLICT: number;
284
287
  EXPECTATION_FAILED: number;
285
288
  UNPROCESSABLE_ENTITY: number;
286
289
  LOCKED: number;
@@ -312,6 +315,7 @@ export declare const DATE_TIME_FORMATS: {
312
315
  TWELVE_HOURS_EXPORT_FORMAT: string;
313
316
  DD_MMM_YYYY_HH_MM: string;
314
317
  DD_MMM_YYYY: string;
318
+ 'DD/MM/YYYY': string;
315
319
  };
316
320
  export declare const SEMANTIC_VERSION_DOCUMENTATION_LINK = "https://semver.org/";
317
321
  export declare const VULNERABILITIES_SORT_PRIORITY: {
@@ -143,4 +143,5 @@ export declare const getGoLangFormattedDateWithTimezone: (dateFormat: string) =>
143
143
  * @returns SHA-256 hashed value
144
144
  */
145
145
  export declare const getHashedValue: (value: string) => Promise<string | null>;
146
+ export declare const getTTLInHumanReadableFormat: (ttl: number) => string;
146
147
  export {};
@@ -30,7 +30,14 @@ export interface APIOptions {
30
30
  */
31
31
  signal?: AbortSignal;
32
32
  abortControllerRef?: MutableRefObject<AbortController>;
33
+ /**
34
+ * @default false
35
+ */
33
36
  preventAutoLogout?: boolean;
37
+ /**
38
+ * @default false
39
+ */
40
+ preventLicenseRedirect?: boolean;
34
41
  }
35
42
  export interface OptionType<T = string, K = string> {
36
43
  value: T;
@@ -1,7 +1,6 @@
1
1
  export * from './Constants';
2
2
  export * from './ServerError';
3
3
  export * from './Types';
4
- export * from './Api';
5
4
  export { default as Reload } from './Reload';
6
5
  export { default as ErrorScreenManager } from './ErrorScreenManager';
7
6
  export { default as ErrorScreenNotAuthorized } from './ErrorScreenNotAuthorized';
@@ -50,4 +49,5 @@ export * from './SegmentedBarChart';
50
49
  export * from './CodeEditor/types';
51
50
  export * from './Tooltip';
52
51
  export * from './SegmentedControl';
52
+ export * from './API';
53
53
  export * from './DeleteCINodeButton';
@@ -0,0 +1,3 @@
1
+ import { CountrySelectProps } from './types';
2
+ declare const CountrySelect: ({ selectedCountry, label, required, error, handleChange, placeholder, name, variant, size, }: CountrySelectProps) => JSX.Element;
3
+ export default CountrySelect;
@@ -0,0 +1 @@
1
+ export { default as CountrySelect } from './CountrySelect.component';
@@ -0,0 +1,7 @@
1
+ import { CountryISO2Type } from '../../index';
2
+ import { SelectPickerProps } from '../SelectPicker';
3
+ export interface CountrySelectProps extends Pick<SelectPickerProps, 'required' | 'label' | 'error' | 'placeholder' | 'size'>, Required<Pick<SelectPickerProps, 'name'>> {
4
+ selectedCountry: CountryISO2Type;
5
+ handleChange: (iso2: CountryISO2Type) => void;
6
+ variant?: 'default' | 'selectPhoneCode';
7
+ }
@@ -0,0 +1,4 @@
1
+ import { ParsedCountry } from 'react-international-phone';
2
+ import { CountrySelectProps } from './types';
3
+ import { SelectPickerOptionType } from '../SelectPicker';
4
+ export declare const getCountryOptions: (variant: CountrySelectProps["variant"]) => SelectPickerOptionType<ParsedCountry>[];
@@ -1,3 +1,3 @@
1
1
  import { CustomInputProps } from './types';
2
- declare const CustomInput: ({ name, label, fullWidth, error, helperText, warningText, layout, required, onBlur, shouldTrim, size, ariaLabel, borderConfig, borderRadiusConfig, type, autoFocus, endIconButtonConfig, labelTippyCustomizedConfig, labelTooltipConfig, ...props }: CustomInputProps) => JSX.Element;
2
+ declare const CustomInput: ({ name, label, fullWidth, error, helperText, warningText, layout, required, onBlur, shouldTrim, size, ariaLabel, borderConfig, borderRadiusConfig, type, autoFocus, endIconButtonConfig, labelTippyCustomizedConfig, labelTooltipConfig, inputRef: inputRefProp, ...props }: CustomInputProps) => JSX.Element;
3
3
  export default CustomInput;
@@ -1,4 +1,4 @@
1
- import { InputHTMLAttributes } from 'react';
1
+ import { InputHTMLAttributes, MutableRefObject } from 'react';
2
2
  import { ComponentSizeType } from '../../constants';
3
3
  import { FormFieldWrapperProps } from '../FormFieldWrapper';
4
4
  import { ButtonComponentType, ButtonProps } from '../Button';
@@ -27,6 +27,10 @@ export interface CustomInputProps extends Omit<FormFieldWrapperProps, 'children'
27
27
  * End icon button configuration
28
28
  */
29
29
  endIconButtonConfig?: Required<Pick<ButtonProps<ButtonComponentType.button>, 'icon' | 'onClick' | 'ariaLabel'>> & Pick<ButtonProps<ButtonComponentType.button>, 'disabled' | 'showAriaLabelInTippy' | 'style'>;
30
+ /**
31
+ * Ref for the input element
32
+ */
33
+ inputRef?: MutableRefObject<HTMLInputElement>;
30
34
  }
31
35
  export interface PasswordFieldProps extends Omit<CustomInputProps, 'endIconButtonConfig' | 'type'> {
32
36
  /**
@@ -0,0 +1,3 @@
1
+ import { DevtronLicenseCardProps } from './types';
2
+ export declare const DevtronLicenseCard: ({ enterpriseName, licenseKey, licenseSuffix, expiryDate, licenseStatus, isTrial, ttl, }: DevtronLicenseCardProps) => JSX.Element;
3
+ export default DevtronLicenseCard;
@@ -0,0 +1,3 @@
1
+ export { default as DevtronLicenseCard } from './DevtronLicenseCard';
2
+ export { parseDevtronLicenseDTOIntoLicenseCardData } from './utils';
3
+ export * from './types';
@@ -0,0 +1,18 @@
1
+ export declare enum LicenseStatus {
2
+ ACTIVE = "ACTIVE",
3
+ EXPIRED = "EXPIRED",
4
+ REMINDER_THRESHOLD_REACHED = "REMINDER_THRESHOLD_REACHED"
5
+ }
6
+ export type DevtronLicenseCardProps = {
7
+ enterpriseName: string;
8
+ expiryDate: string;
9
+ ttl: number;
10
+ licenseStatus: LicenseStatus;
11
+ isTrial: boolean;
12
+ } & ({
13
+ licenseKey: string;
14
+ licenseSuffix?: never;
15
+ } | {
16
+ licenseKey?: never;
17
+ licenseSuffix: string;
18
+ });
@@ -0,0 +1,6 @@
1
+ import { DevtronLicenseCardProps, DevtronLicenseDTO, LicenseStatus } from '../../index';
2
+ export declare const getLicenseColorsAccordingToStatus: (licenseStatus: LicenseStatus) => {
3
+ bgColor: string;
4
+ textColor: string;
5
+ };
6
+ export declare const parseDevtronLicenseDTOIntoLicenseCardData: <isCentralDashboard extends boolean = false>(licenseDTO: DevtronLicenseDTO<isCentralDashboard>, currentUserEmail?: isCentralDashboard extends true ? string : never) => DevtronLicenseCardProps;
@@ -0,0 +1,3 @@
1
+ import { FlagImageProps } from './types';
2
+ declare const FlagImage: ({ country, size }: FlagImageProps) => JSX.Element;
3
+ export default FlagImage;
@@ -0,0 +1 @@
1
+ export { default as FlagImage } from './FlagImage.component';
@@ -0,0 +1,5 @@
1
+ import { CountryISO2Type } from '../../index';
2
+ export interface FlagImageProps {
3
+ country: CountryISO2Type;
4
+ size?: number;
5
+ }
@@ -46,5 +46,4 @@ export interface HelpOptionType {
46
46
  name: string;
47
47
  link: string;
48
48
  icon: React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
49
- showSeparator?: boolean;
50
49
  }
@@ -6,10 +6,14 @@ export declare const iconMap: {
6
6
  'ic-arrow-right': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
7
7
  'ic-azure': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
8
8
  'ic-bitbucket': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
9
+ 'ic-book-open': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
9
10
  'ic-browser': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
10
11
  'ic-build-color': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
12
+ 'ic-calendar': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
11
13
  'ic-cancelled': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
14
+ 'ic-caret-left': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
12
15
  'ic-cd': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
16
+ 'ic-chat-circle-dots': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
13
17
  'ic-ci-linked': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
14
18
  'ic-ci-webhook': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
15
19
  'ic-circle-loader': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -20,6 +24,8 @@ export declare const iconMap: {
20
24
  'ic-crown': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
21
25
  'ic-cube': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
22
26
  'ic-delete': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
27
+ 'ic-devtron-header-logo': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
28
+ 'ic-devtron': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
23
29
  'ic-dockerhub': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
24
30
  'ic-ecr': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
25
31
  'ic-env': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -44,6 +50,7 @@ export declare const iconMap: {
44
50
  'ic-info-outline': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
45
51
  'ic-job-color': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
46
52
  'ic-k8s-job': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
53
+ 'ic-key': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
47
54
  'ic-ldap': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
48
55
  'ic-login-devtron-logo': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
49
56
  'ic-logout': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -59,11 +66,13 @@ export declare const iconMap: {
59
66
  'ic-out-of-sync': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
60
67
  'ic-paper-plane-color': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
61
68
  'ic-quay': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
69
+ 'ic-quote': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
62
70
  'ic-shield-check': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
63
71
  'ic-stack': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
64
72
  'ic-success': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
65
73
  'ic-suspended': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
66
74
  'ic-timeout-two-dash': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
75
+ 'ic-timer': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
67
76
  'ic-unknown': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
68
77
  'ic-user-key': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
69
78
  'ic-warning': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -0,0 +1,2 @@
1
+ declare const LoginBanner: () => JSX.Element;
2
+ export default LoginBanner;
@@ -0,0 +1,2 @@
1
+ import { TestimonialCardConfig } from './types';
2
+ export declare const TESTIMONIAL_CARD_DATA: TestimonialCardConfig;
@@ -0,0 +1 @@
1
+ export { default as LoginBanner } from './LoginBanner';
@@ -0,0 +1,7 @@
1
+ import { IconsProps } from 'src';
2
+ export interface TestimonialCardConfig {
3
+ quote: string;
4
+ name: string;
5
+ designation: string;
6
+ iconName: IconsProps['name'];
7
+ }
@@ -0,0 +1,3 @@
1
+ import { PhoneInputProps } from './types';
2
+ declare const PhoneInput: ({ error, onChange, required, phoneNumberInputName, countryCodeSelectName, phoneValue, countryCodeSelectSize, }: PhoneInputProps) => JSX.Element;
3
+ export default PhoneInput;
@@ -0,0 +1 @@
1
+ export { default as PhoneInput } from './PhoneInput.component';
@@ -0,0 +1,11 @@
1
+ import { ComponentProps } from 'react';
2
+ import { CountrySelect } from '../CountrySelect';
3
+ export interface PhoneInputProps {
4
+ phoneValue: string;
5
+ onChange: (value: string) => void;
6
+ error?: string | null;
7
+ countryCodeSelectName: string;
8
+ phoneNumberInputName: string;
9
+ required?: boolean;
10
+ countryCodeSelectSize?: ComponentProps<typeof CountrySelect>['size'];
11
+ }
@@ -67,4 +67,10 @@ export * from './CustomInput';
67
67
  export * from './InfoBlock';
68
68
  export * from './CodeEditorWrapper';
69
69
  export * from './SSOProviderIcon';
70
+ export * from './Backdrop';
71
+ export * from './CountrySelect';
72
+ export * from './PhoneInput';
73
+ export * from './FlagImage';
74
+ export * from './DevtronLicenseCard';
75
+ export * from './LoginBanner';
70
76
  export * from './Confetti';
@@ -100,4 +100,5 @@ export declare const deriveBorderRadiusAndBorderClassFromConfig: ({ borderConfig
100
100
  borderRadiusConfig: BorderConfigType | undefined;
101
101
  }) => string;
102
102
  export declare const getClassNameForStickyHeaderWithShadow: (isStuck: boolean, topClassName?: string) => string;
103
+ export declare const clearCookieOnLogout: () => void;
103
104
  export {};
@@ -5,7 +5,6 @@ export interface MainContext {
5
5
  serverMode: SERVER_MODE;
6
6
  setServerMode: (serverMode: SERVER_MODE) => void;
7
7
  isHelpGettingStartedClicked: boolean;
8
- setPageOverflowEnabled: (isPageOverflowEnabled: boolean) => void;
9
8
  showCloseButtonAfterGettingStartedClicked: () => void;
10
9
  loginCount: number;
11
10
  setLoginCount: (loginCount: number) => void;
@@ -39,6 +38,7 @@ export interface MainContext {
39
38
  isManifestScanningEnabled: boolean;
40
39
  canOnlyViewPermittedEnvOrgLevel: boolean;
41
40
  viewIsPipelineRBACConfiguredNode: ReactNode;
41
+ handleOpenLicenseInfoDialog: () => void;
42
42
  }
43
43
  export interface MainContextProviderProps {
44
44
  children: ReactNode;
@@ -408,6 +408,8 @@ export declare const DC_DELETE_SUBTITLES: {
408
408
  DELETE_ENVIRONMENT_SUBTITLE: string;
409
409
  DELETE_CLUSTER_SUBTITLES: string;
410
410
  };
411
+ export declare const EULA_LINK = "https://devtron.ai/end-user-license-agreement-eula";
412
+ export declare const CONTACT_SUPPORT_LINK = "https://share.hsforms.com/1Yp3bvPAaRCaHUEH5vtMjEQ4368n";
411
413
  export declare const enum DeleteComponentsName {
412
414
  Cluster = "cluster",
413
415
  Job = "job pipeline",
@@ -417,3 +419,4 @@ export declare const Routes: {
417
419
  CI_PIPELINE_PATCH: string;
418
420
  WORKFLOW: string;
419
421
  };
422
+ export declare const ENTERPRISE_SUPPORT_LINK = "enterprise@devtron.ai";
@@ -1,5 +1,6 @@
1
1
  import { Dayjs } from 'dayjs';
2
2
  import { APIOptions, ApprovalConfigDataType } from '../Common/Types';
3
+ import { ParsedCountry } from 'react-international-phone';
3
4
  import { OptionType, CommonNodeAttr, VulnerabilityType, DeploymentAppTypes, ServerErrors, SortingParams, TriggerBlockType, ValueConstraintType, VariableType, RefVariableType, PluginType } from '../Common';
4
5
  import { BASE_CONFIGURATION_ENV_ID, EnvironmentTypeEnum, PatchOperationType } from './constants';
5
6
  import { SelectPickerOptionType } from './Components';
@@ -875,4 +876,36 @@ export interface AppEnvIdType {
875
876
  appId: number;
876
877
  envId: number;
877
878
  }
879
+ export interface DevtronLicenseBaseDTO {
880
+ fingerprint: string | null;
881
+ isTrial: boolean | null;
882
+ /**
883
+ * In timestamp format
884
+ */
885
+ expiry: string | null;
886
+ /**
887
+ * Can be negative, depicts time left in seconds for license to expire
888
+ */
889
+ ttl: number | null;
890
+ /**
891
+ * Show a reminder after these many DAYS left for license to expire, i.e,
892
+ * Show if `ttl` is less than `reminderThreshold` [converted to seconds]
893
+ */
894
+ reminderThreshold: number | null;
895
+ organisationMetadata: {
896
+ name: string | null;
897
+ domain: string | null;
898
+ } | null;
899
+ license: string | null;
900
+ }
901
+ export type DevtronLicenseDTO<isCentralDashboard extends boolean = false> = DevtronLicenseBaseDTO & (isCentralDashboard extends true ? {
902
+ claimedByUserDetails: {
903
+ firstName: string | null;
904
+ lastName: string | null;
905
+ email: string | null;
906
+ } | null;
907
+ } : {
908
+ claimedByUserDetails?: never;
909
+ });
910
+ export type CountryISO2Type = ParsedCountry['iso2'];
878
911
  export {};