@devtron-labs/devtron-fe-common-lib 0.0.59-beta-10 → 0.0.59

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 (84) hide show
  1. package/dist/Common/Api.d.ts +0 -9
  2. package/dist/Common/Constants.d.ts +0 -1
  3. package/dist/Common/Types.d.ts +2 -3
  4. package/dist/index.d.ts +1 -3
  5. package/dist/index.js +158 -1405
  6. package/package.json +1 -1
  7. package/src/Common/Api.ts +0 -21
  8. package/src/Common/BreadCrumb/Types.ts +1 -0
  9. package/src/Common/Checkbox.tsx +0 -1
  10. package/src/Common/Constants.ts +1 -2
  11. package/src/Common/CustomInput/CustomInput.tsx +1 -2
  12. package/src/Common/DraggableWrapper/DraggableWrapper.tsx +1 -3
  13. package/src/Common/RJSF/utils.ts +0 -2
  14. package/src/Common/SearchBar/SearchBar.component.tsx +11 -23
  15. package/src/Common/SearchBar/searchBar.scss +1 -1
  16. package/src/Common/Types.ts +1 -3
  17. package/src/index.ts +1 -3
  18. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraConfigForm.d.ts +0 -4
  19. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraDescriptionField.d.ts +0 -4
  20. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormAction.d.ts +0 -7
  21. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormItem.d.ts +0 -4
  22. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraProfileNameField.d.ts +0 -4
  23. package/dist/Pages/GlobalConfigurations/BuildInfra/Descriptor.d.ts +0 -4
  24. package/dist/Pages/GlobalConfigurations/BuildInfra/Footer.d.ts +0 -4
  25. package/dist/Pages/GlobalConfigurations/BuildInfra/constants.d.ts +0 -50
  26. package/dist/Pages/GlobalConfigurations/BuildInfra/index.d.ts +0 -7
  27. package/dist/Pages/GlobalConfigurations/BuildInfra/services.d.ts +0 -6
  28. package/dist/Pages/GlobalConfigurations/BuildInfra/types.d.ts +0 -286
  29. package/dist/Pages/GlobalConfigurations/BuildInfra/utils.d.ts +0 -12
  30. package/dist/Pages/GlobalConfigurations/index.d.ts +0 -1
  31. package/dist/Pages/index.d.ts +0 -1
  32. package/dist/Shared/Components/APIResponseHandler/APIResponseHandler.d.ts +0 -4
  33. package/dist/Shared/Components/APIResponseHandler/constants.d.ts +0 -4
  34. package/dist/Shared/Components/APIResponseHandler/index.d.ts +0 -2
  35. package/dist/Shared/Components/APIResponseHandler/types.d.ts +0 -37
  36. package/dist/Shared/Components/BulkSelection/BulkSelection.d.ts +0 -4
  37. package/dist/Shared/Components/BulkSelection/BulkSelectionDropdownItems.d.ts +0 -4
  38. package/dist/Shared/Components/BulkSelection/UseBulkSelection.d.ts +0 -3
  39. package/dist/Shared/Components/BulkSelection/constants.d.ts +0 -8
  40. package/dist/Shared/Components/BulkSelection/index.d.ts +0 -4
  41. package/dist/Shared/Components/BulkSelection/types.d.ts +0 -51
  42. package/dist/Shared/Components/ReactSelect/index.d.ts +0 -1
  43. package/dist/Shared/Components/ReactSelect/utils.d.ts +0 -12
  44. package/dist/Shared/Components/index.d.ts +0 -3
  45. package/dist/Shared/Helpers.d.ts +0 -16
  46. package/dist/Shared/index.d.ts +0 -3
  47. package/dist/Shared/validations.d.ts +0 -8
  48. package/src/Assets/Icon/ic-check-all.svg +0 -5
  49. package/src/Assets/Icon/ic-check-square.svg +0 -4
  50. package/src/Assets/Icon/ic-close.svg +0 -3
  51. package/src/Assets/Icon/ic-cpu.svg +0 -4
  52. package/src/Assets/Icon/ic-memory.svg +0 -3
  53. package/src/Assets/Icon/ic-timer.svg +0 -3
  54. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraConfigForm.tsx +0 -128
  55. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraDescriptionField.tsx +0 -44
  56. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormAction.tsx +0 -106
  57. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormItem.tsx +0 -55
  58. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraProfileNameField.tsx +0 -32
  59. package/src/Pages/GlobalConfigurations/BuildInfra/Descriptor.tsx +0 -45
  60. package/src/Pages/GlobalConfigurations/BuildInfra/Footer.tsx +0 -55
  61. package/src/Pages/GlobalConfigurations/BuildInfra/Readme.md +0 -4
  62. package/src/Pages/GlobalConfigurations/BuildInfra/constants.tsx +0 -139
  63. package/src/Pages/GlobalConfigurations/BuildInfra/index.ts +0 -7
  64. package/src/Pages/GlobalConfigurations/BuildInfra/services.tsx +0 -167
  65. package/src/Pages/GlobalConfigurations/BuildInfra/types.tsx +0 -339
  66. package/src/Pages/GlobalConfigurations/BuildInfra/utils.tsx +0 -509
  67. package/src/Pages/GlobalConfigurations/index.ts +0 -1
  68. package/src/Pages/index.ts +0 -1
  69. package/src/Shared/Components/APIResponseHandler/APIResponseHandler.tsx +0 -41
  70. package/src/Shared/Components/APIResponseHandler/constants.tsx +0 -5
  71. package/src/Shared/Components/APIResponseHandler/index.ts +0 -2
  72. package/src/Shared/Components/APIResponseHandler/types.tsx +0 -39
  73. package/src/Shared/Components/BulkSelection/BulkSelection.tsx +0 -81
  74. package/src/Shared/Components/BulkSelection/BulkSelectionDropdownItems.tsx +0 -31
  75. package/src/Shared/Components/BulkSelection/UseBulkSelection.tsx +0 -99
  76. package/src/Shared/Components/BulkSelection/constants.tsx +0 -12
  77. package/src/Shared/Components/BulkSelection/index.ts +0 -4
  78. package/src/Shared/Components/BulkSelection/types.tsx +0 -61
  79. package/src/Shared/Components/ReactSelect/index.ts +0 -1
  80. package/src/Shared/Components/ReactSelect/utils.tsx +0 -97
  81. package/src/Shared/Components/index.ts +0 -3
  82. package/src/Shared/Helpers.tsx +0 -29
  83. package/src/Shared/index.ts +0 -3
  84. package/src/Shared/validations.tsx +0 -130
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devtron-labs/devtron-fe-common-lib",
3
- "version": "0.0.59-beta-10",
3
+ "version": "0.0.59",
4
4
  "description": "Supporting common component library",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
package/src/Common/Api.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { ServerErrors } from './ServerError'
2
2
  import { FALLBACK_REQUEST_TIMEOUT, Host, URLS } from './Constants'
3
3
  import { ResponseType, APIOptions } from './Types'
4
- import { MutableRefObject } from 'react'
5
4
 
6
5
  const responseMessages = {
7
6
  100: 'Continue',
@@ -229,23 +228,3 @@ export const get = (url: string, options?: APIOptions): Promise<ResponseType> =>
229
228
  export const trash = (url: string, data?: object, options?: APIOptions): Promise<ResponseType> => {
230
229
  return fetchInTime(url, 'DELETE', data, options)
231
230
  }
232
-
233
- /**
234
- * Aborts the previous request before triggering next request
235
- */
236
- export const abortPreviousRequests = <T,>(
237
- callback: () => Promise<T>,
238
- abortControllerRef: MutableRefObject<AbortController>,
239
- ): Promise<T> => {
240
- abortControllerRef.current.abort()
241
- // eslint-disable-next-line no-param-reassign
242
- abortControllerRef.current = new AbortController()
243
- return callback()
244
- }
245
-
246
- /**
247
- * Returns true if the error is due to a aborted request
248
- */
249
- export const getIsRequestAborted = (error) =>
250
- // The 0 code is common for aborted and blocked requests
251
- error && error.code === 0 && error.message === 'The user aborted a request.'
@@ -1,3 +1,4 @@
1
+
1
2
  export interface Breadcrumb {
2
3
  to: string
3
4
  name: string
@@ -10,7 +10,6 @@ Valid States of Checkbox:
10
10
  5. disabled: false, checked: true, value: INTERMIDIATE
11
11
  6. disabled: false, checked: true, value: CHECKED
12
12
  */
13
- // TODO: Associate label with input element
14
13
  export class Checkbox extends Component<CheckboxProps> {
15
14
  render() {
16
15
  let rootClassName = `${this.props.rootClassName ? this.props.rootClassName : ''}`
@@ -25,8 +25,7 @@ export const ROUTES = {
25
25
  USER_CHECK_ROLE: 'user/check/roles',
26
26
  IMAGE_TAGGING:'app/image-tagging',
27
27
  CD_MATERIAL_GET: 'app/cd-pipeline',
28
- DEPLOYMENT_TEMPLATE_LIST: 'app/template/list',
29
- INFRA_CONFIG_PROFILE: 'infra-config/profile',
28
+ DEPLOYMENT_TEMPLATE_LIST: 'app/template/list'
30
29
  }
31
30
 
32
31
  export enum KEY_VALUE {
@@ -2,7 +2,6 @@ import { CustomInputProps } from './Types'
2
2
  import { ReactComponent as Info } from '../../Assets/Icon/ic-info-filled.svg'
3
3
  import { ReactComponent as ErrorIcon } from '../../Assets/Icon/ic-warning.svg'
4
4
 
5
- // TODO: label association with input
6
5
  export function CustomInput({
7
6
  name,
8
7
  value,
@@ -14,7 +13,7 @@ export function CustomInput({
14
13
  disabled = false,
15
14
  labelClassName = '',
16
15
  placeholder = '',
17
- tabIndex = 0,
16
+ tabIndex = 1,
18
17
  dataTestid = '',
19
18
  isRequiredField = false,
20
19
  autoFocus = false,
@@ -94,9 +94,8 @@ export default function DraggableWrapper({
94
94
  }
95
95
 
96
96
  return (
97
- // Since we are using position fixed so we need to disable click on the div so that it does not interfere with the click of other elements
98
97
  <div
99
- className="dc__position-fixed dc__disable-click"
98
+ className="dc__position-fixed"
100
99
  style={{
101
100
  zIndex,
102
101
  }}
@@ -107,7 +106,6 @@ export default function DraggableWrapper({
107
106
  {...childDivProps}
108
107
  style={{
109
108
  zIndex,
110
- pointerEvents: 'auto',
111
109
  }}
112
110
  >
113
111
  {children}
@@ -19,7 +19,6 @@ export const getCommonSelectStyle = (styleOverrides = {}) => {
19
19
  ...base,
20
20
  paddingTop: 0,
21
21
  paddingBottom: 0,
22
- cursor: 'pointer',
23
22
  }),
24
23
  control: (base, state) => ({
25
24
  ...base,
@@ -34,7 +33,6 @@ export const getCommonSelectStyle = (styleOverrides = {}) => {
34
33
  color: 'var(--N900)',
35
34
  backgroundColor: state.isFocused ? 'var(--N100)' : 'white',
36
35
  padding: '10px 12px',
37
- cursor: 'pointer',
38
36
  }),
39
37
  dropdownIndicator: (base, state) => ({
40
38
  ...base,
@@ -1,4 +1,4 @@
1
- import { ChangeEvent, useCallback, useRef, useState, KeyboardEvent, useEffect } from 'react'
1
+ import { ChangeEvent, useCallback, useRef, useState, KeyboardEvent } from 'react'
2
2
  import { ReactComponent as Search } from '../../Assets/Icon/ic-search.svg'
3
3
  import { ReactComponent as Clear } from '../../Assets/Icon/ic-error-cross.svg'
4
4
  import { SearchBarProps } from './types'
@@ -55,28 +55,9 @@ const SearchBar = ({
55
55
  debounceTimeout,
56
56
  ])
57
57
 
58
- // assuming initialSearchText will change if we are changing history otherwise will be constant and will not change
59
- // since on changing history we expect to make api call using useAsync so not applying handleEnter
60
- useEffect(() => {
61
- inputRef.current.value = initialSearchText
62
- setShowClearButton(!!initialSearchText)
63
- }, [initialSearchText])
64
-
65
- const _applySearch = (value: string) => {
66
- handleSearchChange(value)
67
- handleEnter(value)
68
- }
69
-
70
- const clearSearch = () => {
71
- inputRef.current.value = ''
72
- _applySearch('')
73
- setShowClearButton(false)
74
- }
75
-
76
58
  const handleChange = (e: ChangeEvent<HTMLInputElement>) => {
77
59
  const { value } = e.target
78
60
  setShowClearButton(!!value)
79
-
80
61
  if (shouldDebounce) {
81
62
  debouncedSearchChange(value)
82
63
  } else {
@@ -84,17 +65,25 @@ const SearchBar = ({
84
65
  }
85
66
  }
86
67
 
68
+ const _applySearch = (value: string) => {
69
+ handleSearchChange(value)
70
+ handleEnter(value)
71
+ }
72
+
87
73
  const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {
88
74
  const { key } = e
89
75
 
90
76
  if (key === 'Enter') {
91
- e.preventDefault()
92
77
  const inputTarget = e.target as HTMLInputElement
93
78
  const value = inputTarget.value.trim()
94
79
  _applySearch(value)
95
80
  }
96
81
  }
97
82
 
83
+ const clearSearch = () => {
84
+ inputRef.current.value = ''
85
+ _applySearch('')
86
+ }
98
87
  return (
99
88
  <div className={containerClassName}>
100
89
  <div className="search-bar bc-n50 focus-within-border-b5 dc__hover-border-n300 dc__block w-100 min-w-200 dc__position-rel en-2 bw-1 br-4 h-32">
@@ -105,14 +94,13 @@ const SearchBar = ({
105
94
  type="text"
106
95
  {...inputProps}
107
96
  defaultValue={initialSearchText}
108
- className={`search-bar__input bc-n50 dc__position-abs w-100 h-100 br-4 dc__no-border pt-6 pr-10 pb-6 pl-30 fs-13 lh-20 fw-4 cn-9 placeholder-cn5 ${
97
+ className={`search-bar__input dc__position-abs w-100 h-100 br-4 dc__no-border pt-6 pr-10 pb-6 pl-30 fs-13 lh-20 fw-4 cn-9 placeholder-cn5 ${
109
98
  showClearButton ? 'pr-30' : 'pr-10'
110
99
  }`}
111
100
  onChange={handleChange}
112
101
  onKeyDown={handleKeyDown}
113
102
  ref={inputRef}
114
103
  />
115
- {/* TODO: Sync with product since it should have ic-enter in case of not applied */}
116
104
  {showClearButton && (
117
105
  <button
118
106
  className="flex search-bar__clear-button dc__position-abs dc__transparent mt-0 mb-0 mr-5 ml-5"
@@ -3,7 +3,7 @@
3
3
  &:focus,
4
4
  &:focus-within {
5
5
  outline: none;
6
- border: solid 1px var(--B500) !important;
6
+ border: solid 1px var(--B500);
7
7
  }
8
8
 
9
9
  &__input {
@@ -51,13 +51,11 @@ export interface Teams {
51
51
  export enum CHECKBOX_VALUE {
52
52
  CHECKED = 'CHECKED',
53
53
  INTERMEDIATE = 'INTERMEDIATE',
54
- BULK_CHECKED = 'BULK_CHECKED',
55
54
  }
56
55
  export interface CheckboxProps {
57
56
  onChange: (event) => void
58
57
  isChecked: boolean
59
- // FIXME: Need to replace this CHECKBOX_VALUE enum, and replace string instances in dashboard
60
- value: 'CHECKED' | 'INTERMEDIATE' | 'BULK_CHECKED'
58
+ value: 'CHECKED' | 'INTERMEDIATE'
61
59
  disabled?: boolean
62
60
  tabIndex?: number
63
61
  rootClassName?: string
package/src/index.ts CHANGED
@@ -1,3 +1 @@
1
- export * from './Common'
2
- export * from './Pages'
3
- export * from './Shared'
1
+ export * from "./Common"
@@ -1,4 +0,0 @@
1
- import { FunctionComponent } from 'react';
2
- import { BuildInfraConfigFormProps } from './types';
3
- declare const BuildInfraConfigForm: FunctionComponent<BuildInfraConfigFormProps>;
4
- export default BuildInfraConfigForm;
@@ -1,4 +0,0 @@
1
- import { FunctionComponent } from 'react';
2
- import { BuildInfraInputFieldComponentProps } from './types';
3
- declare const BuildInfraProfileDescriptionField: FunctionComponent<BuildInfraInputFieldComponentProps>;
4
- export default BuildInfraProfileDescriptionField;
@@ -1,7 +0,0 @@
1
- import { FunctionComponent } from 'react';
2
- import { BuildInfraFormActionProps } from './types';
3
- /**
4
- * In case need arise for variants break this CustomInput and Select as a separate component
5
- */
6
- declare const BuildInfraFormAction: FunctionComponent<BuildInfraFormActionProps>;
7
- export default BuildInfraFormAction;
@@ -1,4 +0,0 @@
1
- import { FunctionComponent } from 'react';
2
- import { BuildInfraFormItemProps } from './types';
3
- declare const BuildInfraFormItem: FunctionComponent<BuildInfraFormItemProps>;
4
- export default BuildInfraFormItem;
@@ -1,4 +0,0 @@
1
- import { FunctionComponent } from 'react';
2
- import { BuildInfraInputFieldComponentProps } from './types';
3
- declare const BuildInfraProfileNameField: FunctionComponent<BuildInfraInputFieldComponentProps>;
4
- export default BuildInfraProfileNameField;
@@ -1,4 +0,0 @@
1
- /// <reference types="react" />
2
- import { DescriptorProps } from './types';
3
- declare const Descriptor: ({ additionalContainerClasses, breadCrumbs, children, tippyInfoText, tippyAdditionalContent, }: DescriptorProps) => JSX.Element;
4
- export default Descriptor;
@@ -1,4 +0,0 @@
1
- import { FunctionComponent } from 'react';
2
- import { FooterProps } from './types';
3
- declare const Footer: FunctionComponent<FooterProps>;
4
- export default Footer;
@@ -1,50 +0,0 @@
1
- import { UseBreadcrumbProps } from '../../../Common/BreadCrumb/Types';
2
- import { BuildInfraFormFieldType, BuildInfraMetaConfigTypes, ProfileInputErrorType, BuildInfraProfileBase, HandleProfileInputChangeType } from './types';
3
- export declare const BUILD_INFRA_INPUT_CONSTRAINTS: {
4
- readonly STEP: "any";
5
- readonly MIN: 0;
6
- readonly DECIMAL_PLACES: 2;
7
- };
8
- export declare const BUILD_INFRA_TEXT: {
9
- readonly HEADING: "Build Infra Configuration";
10
- readonly EDIT_SUBMIT: "Save changes";
11
- readonly SAVE_SUBMIT: "Save";
12
- readonly EDIT_CANCEL: "Cancel";
13
- readonly EDIT_DEFAULT_TOOLTIP: "Efficiently control infrastructure settings such as CPU, Memory, and Build timeout for your build pipelines. Streamline resource management to optimise build time and cost effortlessly.";
14
- readonly DESCRIPTION_LABEL: "Description";
15
- readonly DESCRIPTION_PLACEHOLDER: "Enter a description here";
16
- readonly PROFILE_LABEL: "Profile name";
17
- readonly PROFILE_PLACEHOLDER: "Eg. java or node";
18
- readonly INHERITING_HEADING_DESCRIPTION: "Inheriting from default";
19
- readonly SUBMIT_BUTTON_TIPPY: {
20
- readonly INVALID_INPUT: "Valid input is required for all mandatory fields.";
21
- readonly REQUEST_IN_PROGRESS: "Request in progress.";
22
- };
23
- readonly VALIDATE_REQUEST_LIMIT: {
24
- readonly REQUEST_LESS_THAN_LIMIT: "Request should be less than or equal to limit.";
25
- readonly CAN_NOT_COMPUTE: "Request and limit value diff are too high to validate.";
26
- readonly REQUEST_DECIMAL_PLACES: "Request should be upto 2 decimal places.";
27
- readonly LIMIT_DECIMAL_PLACES: "Limit should be upto 2 decimal places.";
28
- };
29
- readonly getInvalidActionMessage: (action: HandleProfileInputChangeType['action']) => string;
30
- readonly getSubmitSuccessMessage: (profileName: string, isEdited: boolean) => string;
31
- readonly PROFILE_NOT_FOUND: {
32
- readonly title: "Profile not found";
33
- readonly subTitle: "The profile you are looking for does not exist.";
34
- };
35
- readonly INVALID_FORM_MESSAGE: "Valid input is required for all mandatory fields.";
36
- };
37
- export declare const BUILD_INFRA_BREADCRUMB: UseBreadcrumbProps;
38
- export declare const BUILD_INFRA_FORM_FIELDS: BuildInfraFormFieldType[];
39
- export declare const PROFILE_INPUT_ERROR_FIELDS: ProfileInputErrorType;
40
- export declare const CREATE_MODE_REQUIRED_INPUT_FIELDS: BuildInfraMetaConfigTypes[];
41
- export declare const DEFAULT_PROFILE_NAME: "default";
42
- export declare const CREATE_PROFILE_BASE_VALUE: BuildInfraProfileBase;
43
- export declare const CREATE_VIEW_CHECKED_CONFIGS: {
44
- readonly cpu_request: true;
45
- readonly cpu_limit: true;
46
- };
47
- export declare const BUILD_INFRA_TEST_IDS: {
48
- readonly SUBMIT_BUTTON: "build-infra-submit-button";
49
- readonly CANCEL_BUTTON: "build-infra-cancel-button";
50
- };
@@ -1,7 +0,0 @@
1
- export { default as BuildInfraDescriptor } from './Descriptor';
2
- export { default as BuildInfraFooter } from './Footer';
3
- export { default as BuildInfraConfigForm } from './BuildInfraConfigForm';
4
- export * from './services';
5
- export * from './utils';
6
- export * from './types';
7
- export * from './constants';
@@ -1,6 +0,0 @@
1
- import { ResponseType } from '../../../Common';
2
- import { BuildInfraProfileResponseType, BuildInfraProfileTransformerType, CreateBuildInfraProfileType, GetBuildInfraProfileType, UpdateBuildInfraProfileType } from './types';
3
- export declare const getTransformedBuildInfraProfileResponse: ({ configurationUnits, defaultConfigurations, profile, fromCreateView, }: BuildInfraProfileTransformerType) => BuildInfraProfileResponseType;
4
- export declare const getBuildInfraProfileByName: ({ name, fromCreateView, }: GetBuildInfraProfileType) => Promise<BuildInfraProfileResponseType>;
5
- export declare const updateBuildInfraProfile: ({ name, profileInput }: UpdateBuildInfraProfileType) => Promise<ResponseType<any>>;
6
- export declare const createBuildInfraProfile: ({ profileInput }: CreateBuildInfraProfileType) => Promise<ResponseType<any>>;
@@ -1,286 +0,0 @@
1
- import { FormEvent, FunctionComponent, ReactNode } from 'react';
2
- import { Breadcrumb } from '../../../Common/BreadCrumb/Types';
3
- import { ValidationResponseType } from '../../../Shared';
4
- import { ServerErrors } from '../../../Common';
5
- /**
6
- * Unique actions that will be dispatched and,
7
- * Keeping some values (cpu_limit, etc) in sync with backend
8
- */
9
- export declare enum BuildInfraConfigTypes {
10
- CPU_LIMIT = "cpu_limit",
11
- CPU_REQUEST = "cpu_request",
12
- MEMORY_LIMIT = "memory_limit",
13
- MEMORY_REQUEST = "memory_request",
14
- BUILD_TIMEOUT = "timeout"
15
- }
16
- /**
17
- * Combination of BuildInfraConfigTypes and BuildInfraMetaConfigTypes is going to derive error state and actions(actions will also be derived with BuildInfraInheritActions)
18
- */
19
- export declare enum BuildInfraMetaConfigTypes {
20
- NAME = "name",
21
- DESCRIPTION = "description"
22
- }
23
- /**
24
- * Would be used as key for few components and would be appending activate and de_activate actions to it
25
- */
26
- export declare enum BuildInfraLocators {
27
- CPU = "cpu",
28
- MEMORY = "memory",
29
- BUILD_TIMEOUT = "timeout"
30
- }
31
- export declare enum BuildInfraInheritActions {
32
- ACTIVATE_CPU = "activate_cpu",
33
- DE_ACTIVATE_CPU = "de_activate_cpu",
34
- ACTIVATE_MEMORY = "activate_memory",
35
- DE_ACTIVATE_MEMORY = "de_activate_memory",
36
- ACTIVATE_BUILD_TIMEOUT = "activate_timeout",
37
- DE_ACTIVATE_BUILD_TIMEOUT = "de_activate_timeout"
38
- }
39
- export declare const BuildInfraConfigActionMap: {
40
- timeout: BuildInfraLocators;
41
- cpu_limit: BuildInfraLocators;
42
- cpu_request: BuildInfraLocators;
43
- memory_limit: BuildInfraLocators;
44
- memory_request: BuildInfraLocators;
45
- };
46
- export declare enum BuildInfraProfileVariants {
47
- DEFAULT = "DEFAULT",
48
- NORMAL = "NORMAL",
49
- CUSTOM = "CUSTOM"
50
- }
51
- export interface DescriptorProps {
52
- /**
53
- * In case we want to restrict the max-width
54
- */
55
- additionalContainerClasses?: string;
56
- breadCrumbs: Breadcrumb[];
57
- /**
58
- * Would stick at right of div
59
- */
60
- children?: ReactNode;
61
- tippyInfoText?: string;
62
- tippyAdditionalContent?: ReactNode;
63
- }
64
- export interface BuildInfraActionType {
65
- /**
66
- * Type of action to be dispatched, would be suffixed with type of change
67
- */
68
- actionType: BuildInfraConfigTypes;
69
- /**
70
- * Label to be shown above input
71
- */
72
- label: string;
73
- /**
74
- * Placeholder for input, can be optional
75
- */
76
- placeholder?: string;
77
- }
78
- export interface BuildInfraConfigurationMarkerProps {
79
- className?: string;
80
- }
81
- export interface BuildInfraFormFieldType {
82
- /**
83
- * Heading of the form item
84
- */
85
- heading: ReactNode;
86
- /**
87
- * Icon/Checkbox to be shown in front of heading
88
- */
89
- marker: FunctionComponent<BuildInfraConfigurationMarkerProps>;
90
- /**
91
- * Actions to be shown in the form item
92
- */
93
- actions: BuildInfraActionType[];
94
- /**
95
- * Unique identifier for the form item used for key
96
- */
97
- locator: BuildInfraLocators;
98
- }
99
- export interface ConfigurationUnitType {
100
- name: string;
101
- conversionFactor: number;
102
- }
103
- export type ConfigurationUnitMapType = {
104
- [key: ConfigurationUnitType['name']]: ConfigurationUnitType;
105
- };
106
- export type BuildInfraUnitsMapType = {
107
- [key in BuildInfraConfigTypes]: ConfigurationUnitMapType;
108
- };
109
- export interface BuildInfraConfigValuesType {
110
- value: string;
111
- unit?: ConfigurationUnitType['name'];
112
- }
113
- interface BuildInfraProfileConfigBase {
114
- id?: number;
115
- key: BuildInfraConfigTypes;
116
- profileName: string;
117
- active: boolean;
118
- }
119
- export interface BuildInfraProfileConfigResponseDataType extends BuildInfraConfigValuesType, BuildInfraProfileConfigBase {
120
- }
121
- export interface BuildInfraConfigurationType extends BuildInfraConfigValuesType, BuildInfraProfileConfigBase {
122
- defaultValue: BuildInfraConfigValuesType;
123
- }
124
- export type BuildInfraConfigurationMapWithoutDefaultType = {
125
- [key in BuildInfraConfigTypes]: BuildInfraConfigValuesType & BuildInfraProfileConfigBase;
126
- };
127
- export type BuildInfraConfigurationMapType = {
128
- [key in BuildInfraConfigTypes]: BuildInfraConfigurationType;
129
- };
130
- export interface BuildInfraProfileBase {
131
- id?: number;
132
- name: string;
133
- description: string;
134
- type: BuildInfraProfileVariants;
135
- appCount: number;
136
- }
137
- export interface BuildInfraProfileResponseDataType extends BuildInfraProfileBase {
138
- configurations: BuildInfraProfileConfigResponseDataType[];
139
- }
140
- export interface BuildInfraProfileData extends BuildInfraProfileBase {
141
- configurations: BuildInfraConfigurationMapType;
142
- }
143
- export interface GetBuildInfraProfileType {
144
- name: string;
145
- fromCreateView?: boolean;
146
- }
147
- export interface BuildInfraProfileResponseType {
148
- configurationUnits: BuildInfraUnitsMapType | null;
149
- profile: BuildInfraProfileData | null;
150
- }
151
- export interface UseBuildInfraFormProps {
152
- /**
153
- * Name of the profile, if not provided assumption would be for create view
154
- */
155
- name?: string;
156
- /**
157
- * If true, would send put request else would create profile via post
158
- */
159
- editProfile?: boolean;
160
- /**
161
- * If true, call this on form submission success
162
- */
163
- handleSuccessRedirection?: () => void;
164
- }
165
- export type ProfileInputErrorType = {
166
- [key in BuildInfraConfigTypes | BuildInfraMetaConfigTypes]: string;
167
- };
168
- export interface ProfileInputDispatchDataType {
169
- value: string;
170
- unit?: string;
171
- }
172
- export interface HandleProfileInputChangeType {
173
- action: BuildInfraConfigTypes | BuildInfraInheritActions | BuildInfraMetaConfigTypes;
174
- data?: ProfileInputDispatchDataType;
175
- }
176
- export interface UseBuildInfraFormResponseType {
177
- isLoading: boolean;
178
- profileResponse: BuildInfraProfileResponseType | null;
179
- responseError: ServerErrors | null;
180
- reloadRequest: () => void;
181
- profileInput: BuildInfraProfileData;
182
- profileInputErrors: ProfileInputErrorType;
183
- handleProfileInputChange: ({ action, data }: HandleProfileInputChangeType) => void;
184
- loadingActionRequest: boolean;
185
- handleSubmit: (e: FormEvent<HTMLFormElement>) => Promise<void>;
186
- }
187
- export interface BuildInfraFormItemProps extends Pick<BuildInfraFormFieldType, 'marker' | 'heading'> {
188
- children?: ReactNode;
189
- /**
190
- * If true, means profile is inheriting values from other profile (e.g, default)
191
- */
192
- isInheriting?: boolean;
193
- /**
194
- * Would be false for last item
195
- */
196
- showDivider?: boolean;
197
- /**
198
- * Would be used to dispatch inherit actions (activate_cpu, de_activate_cpu, etc)
199
- */
200
- handleProfileInputChange: UseBuildInfraFormResponseType['handleProfileInputChange'];
201
- locator: BuildInfraFormFieldType['locator'];
202
- isDefaultProfile: boolean;
203
- }
204
- export interface ValidateRequestLimitType {
205
- request: BuildInfraConfigValuesType;
206
- limit: BuildInfraConfigValuesType;
207
- unitsMap: ConfigurationUnitMapType;
208
- }
209
- export interface ValidateRequestLimitResponseType {
210
- request: ValidationResponseType;
211
- limit: ValidationResponseType;
212
- }
213
- export interface BuildInfraConfigFormProps extends Pick<UseBuildInfraFormResponseType, 'profileInput' | 'profileInputErrors' | 'handleProfileInputChange'> {
214
- isDefaultProfile?: boolean;
215
- unitsMap?: BuildInfraProfileResponseType['configurationUnits'];
216
- configurationContainerLabel?: ReactNode;
217
- }
218
- export interface BuildInfraFormActionProps extends BuildInfraActionType {
219
- handleProfileInputChange: UseBuildInfraFormResponseType['handleProfileInputChange'];
220
- currentValue: BuildInfraConfigValuesType['value'];
221
- error?: string;
222
- isRequired?: boolean;
223
- profileUnitsMap?: ConfigurationUnitMapType;
224
- currentUnitName?: BuildInfraConfigValuesType['unit'];
225
- }
226
- export interface FooterProps {
227
- /**
228
- * If true, means form contains errors
229
- */
230
- disabled?: boolean;
231
- handleCancel?: () => void;
232
- /**
233
- * If true would show save changes else would show save for submit button
234
- */
235
- editProfile?: boolean;
236
- loading?: boolean;
237
- }
238
- export interface UpdateBuildInfraProfileType extends Pick<UseBuildInfraFormResponseType, 'profileInput'> {
239
- name: string;
240
- }
241
- export interface CreateBuildInfraProfileType extends Pick<UseBuildInfraFormResponseType, 'profileInput'> {
242
- }
243
- export interface CreateBuildInfraServiceConfigurationType {
244
- key: BuildInfraConfigTypes;
245
- value: string | number;
246
- active: boolean;
247
- unit?: string;
248
- /**
249
- * Would send for those that are available in profileInput
250
- */
251
- id?: number;
252
- }
253
- export interface CreateBuildInfraServicePayloadType {
254
- name: string;
255
- description: string;
256
- type: BuildInfraProfileVariants;
257
- configurations: CreateBuildInfraServiceConfigurationType[];
258
- }
259
- export interface BuildInfraInputFieldComponentProps {
260
- handleProfileInputChange: UseBuildInfraFormResponseType['handleProfileInputChange'];
261
- currentValue: BuildInfraConfigValuesType['value'];
262
- error?: string;
263
- }
264
- export interface InheritingHeaderProps {
265
- defaultHeading: BuildInfraFormFieldType['heading'];
266
- inheritingData: BuildInfraConfigValuesType[];
267
- isInheriting: boolean;
268
- isDefaultProfile: boolean;
269
- }
270
- export interface BuildInfraConfigResponseDataType {
271
- name: BuildInfraConfigTypes;
272
- units: ConfigurationUnitType[];
273
- }
274
- interface BaseBuildInfraProfileResponseType {
275
- defaultConfigurations: BuildInfraProfileConfigResponseDataType[];
276
- configurationUnits: BuildInfraUnitsMapType;
277
- }
278
- export interface BuildInfraListResponseType extends BaseBuildInfraProfileResponseType {
279
- profiles: BuildInfraProfileResponseDataType[];
280
- }
281
- export interface BuildInfraProfileAPIResponseType extends BaseBuildInfraProfileResponseType {
282
- profile: BuildInfraProfileResponseDataType;
283
- }
284
- export interface BuildInfraProfileTransformerType extends BuildInfraProfileAPIResponseType, Pick<GetBuildInfraProfileType, 'fromCreateView'> {
285
- }
286
- export {};
@@ -1,12 +0,0 @@
1
- import { UseBuildInfraFormProps, UseBuildInfraFormResponseType, ValidateRequestLimitResponseType, ValidateRequestLimitType } from './types';
2
- export declare const validateRequestLimit: ({ request, limit, unitsMap, }: ValidateRequestLimitType) => ValidateRequestLimitResponseType;
3
- export declare const useBuildInfraForm: ({ name, editProfile, handleSuccessRedirection, }: UseBuildInfraFormProps) => UseBuildInfraFormResponseType;
4
- export declare const unitSelectorStyles: () => {
5
- menuList: (base: any) => any;
6
- control: (base: any, state: any) => any;
7
- option: (base: any, state: any) => any;
8
- dropdownIndicator: (base: any, state: any) => any;
9
- valueContainer: (base: any) => any;
10
- loadingMessage: (base: any) => any;
11
- noOptionsMessage: (base: any) => any;
12
- };
@@ -1 +0,0 @@
1
- export * from './BuildInfra';
@@ -1 +0,0 @@
1
- export * from './GlobalConfigurations';
@@ -1,4 +0,0 @@
1
- /// <reference types="react" />
2
- import { APIResponseHandlerProps } from './types';
3
- declare const APIResponseHandler: ({ isLoading, progressingProps, error, notAuthorized, notFoundText, reloadProps, children, }: APIResponseHandlerProps) => JSX.Element;
4
- export default APIResponseHandler;
@@ -1,4 +0,0 @@
1
- export declare const NOT_FOUND_DEFAULT_TEXT: {
2
- readonly title: "Resource not found";
3
- readonly subTitle: "The resource you are looking for does not exist";
4
- };
@@ -1,2 +0,0 @@
1
- export { default as APIResponseHandler } from './APIResponseHandler';
2
- export * from './types';