@devtron-labs/devtron-fe-common-lib 0.0.58-beta-1 → 0.0.58-beta-4

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 (588) hide show
  1. package/.eslintignore +96 -0
  2. package/.eslintrc.js +109 -0
  3. package/.github/pull_request_template.md +25 -0
  4. package/.github/workflows/ci.yml +31 -0
  5. package/.github/workflows/release-package.yml +48 -0
  6. package/.husky/pre-commit +5 -0
  7. package/.lintstagedrc +3 -0
  8. package/.nvmrc +1 -0
  9. package/.prettierrc.js +7 -0
  10. package/dist/Common/AddCDButton/AddCDButton.d.ts +3 -3
  11. package/dist/Common/AddCDButton/index.d.ts +2 -2
  12. package/dist/Common/AddCDButton/types.d.ts +26 -26
  13. package/dist/Common/AddCDButton/utils.d.ts +2 -2
  14. package/dist/Common/Api.d.ts +5 -5
  15. package/dist/Common/AppStatus/AppStatus.d.ts +3 -3
  16. package/dist/Common/AppStatus/constants.d.ts +51 -51
  17. package/dist/Common/AppStatus/index.d.ts +1 -1
  18. package/dist/Common/AppStatus/types.d.ts +12 -12
  19. package/dist/Common/AppStatus/utils.d.ts +1 -1
  20. package/dist/Common/BreadCrumb/BreadCrumb.d.ts +5 -5
  21. package/dist/Common/BreadCrumb/BreadcrumbStore.d.ts +17 -17
  22. package/dist/Common/BreadCrumb/Types.d.ts +28 -28
  23. package/dist/Common/CIPipeline.Types.d.ts +265 -265
  24. package/dist/Common/ChartVersionAndTypeSelector.d.ts +4 -3
  25. package/dist/Common/Checkbox.d.ts +5 -5
  26. package/dist/Common/ClipboardButton/ClipboardButton.d.ts +10 -10
  27. package/dist/Common/ClipboardButton/types.d.ts +8 -8
  28. package/dist/Common/Common.service.d.ts +20 -20
  29. package/dist/Common/Constants.d.ts +76 -81
  30. package/dist/Common/CustomInput/CustomInput.d.ts +3 -3
  31. package/dist/Common/CustomInput/Types.d.ts +30 -30
  32. package/dist/Common/CustomInput/index.d.ts +2 -2
  33. package/dist/Common/CustomTagSelector/PropagateTagInfo.d.ts +4 -4
  34. package/dist/Common/CustomTagSelector/ResizableTagTextArea.d.ts +3 -3
  35. package/dist/Common/CustomTagSelector/TagDetails.d.ts +3 -2
  36. package/dist/Common/CustomTagSelector/TagLabelSelect.d.ts +3 -2
  37. package/dist/Common/CustomTagSelector/TagLabelValueSelector.d.ts +3 -2
  38. package/dist/Common/CustomTagSelector/TagSelector.utils.d.ts +12 -12
  39. package/dist/Common/CustomTagSelector/Types.d.ts +68 -68
  40. package/dist/Common/CustomTagSelector/ValidationRules.d.ts +10 -10
  41. package/dist/Common/CustomTagSelector/index.d.ts +6 -6
  42. package/dist/Common/DebouncedSearch/DebouncedSearch.d.ts +17 -17
  43. package/dist/Common/DebouncedSearch/Types.d.ts +14 -14
  44. package/dist/Common/DebouncedSearch/Utils.d.ts +1 -1
  45. package/dist/Common/DeleteComponentModal/DeleteComponent.d.ts +4 -4
  46. package/dist/Common/DeleteComponentModal/types.d.ts +15 -15
  47. package/dist/Common/DevtronProgressing/DevtronProgressing.d.ts +3 -3
  48. package/dist/Common/DevtronProgressing/index.d.ts +1 -1
  49. package/dist/Common/DevtronProgressing/types.d.ts +4 -4
  50. package/dist/Common/Dialogs/ConfirmationDialog.d.ts +9 -9
  51. package/dist/Common/Dialogs/DeleteDialog.d.ts +5 -5
  52. package/dist/Common/Dialogs/DialogForm.d.ts +14 -14
  53. package/dist/Common/Dialogs/ForceDeleteDialog.d.ts +3 -3
  54. package/dist/Common/Dialogs/Types.d.ts +45 -45
  55. package/dist/Common/Dialogs/index.d.ts +4 -4
  56. package/dist/Common/DraggableWrapper/DraggableButton.d.ts +3 -3
  57. package/dist/Common/DraggableWrapper/DraggableWrapper.d.ts +9 -9
  58. package/dist/Common/DraggableWrapper/index.d.ts +3 -3
  59. package/dist/Common/DraggableWrapper/types.d.ts +23 -23
  60. package/dist/Common/Drawer/Drawer.d.ts +16 -14
  61. package/dist/Common/EmptyState/EmptyState.d.ts +25 -28
  62. package/dist/Common/EmptyState/GenericEmptyState.d.ts +5 -4
  63. package/dist/Common/Error.d.ts +17 -17
  64. package/dist/Common/ErrorScreenNotFound.d.ts +3 -3
  65. package/dist/Common/Grid/Grid.d.ts +3 -3
  66. package/dist/Common/Grid/types.d.ts +10 -10
  67. package/dist/Common/Helper.d.ts +64 -65
  68. package/dist/Common/Hooks/UseClickOutside/UseClickOutside.d.ts +1 -1
  69. package/dist/Common/Hooks/UseSuperAdmin/UseSuperAdmin.d.ts +6 -6
  70. package/dist/Common/Hooks/UseSuperAdmin/types.d.ts +3 -3
  71. package/dist/Common/Hooks/UseWindowSize/UseWindowSize.d.ts +4 -4
  72. package/dist/Common/Hooks/index.d.ts +3 -3
  73. package/dist/Common/ImageTags.Types.d.ts +40 -40
  74. package/dist/Common/ImageTags.d.ts +4 -3
  75. package/dist/Common/InfoColorBar/InfoColourbar.d.ts +5 -4
  76. package/dist/Common/Modals/Modal.d.ts +3 -3
  77. package/dist/Common/Modals/OpaqueModal.d.ts +12 -12
  78. package/dist/Common/Modals/VisibleModal.d.ts +15 -15
  79. package/dist/Common/Modals/VisibleModal2.d.ts +12 -12
  80. package/dist/Common/MultiSelectCustomization.d.ts +37 -37
  81. package/dist/Common/Pagination/PageSizeSelector.d.ts +4 -3
  82. package/dist/Common/Pagination/Pagination.d.ts +5 -3
  83. package/dist/Common/Pagination/constants.d.ts +5 -5
  84. package/dist/Common/Pagination/index.d.ts +1 -1
  85. package/dist/Common/Pagination/types.d.ts +51 -51
  86. package/dist/Common/Pagination/utils.d.ts +6 -6
  87. package/dist/Common/Policy.Types.d.ts +56 -56
  88. package/dist/Common/PopupMenu.d.ts +8 -8
  89. package/dist/Common/Progressing.d.ts +4 -4
  90. package/dist/Common/RJSF/Form.d.ts +4 -2
  91. package/dist/Common/RJSF/common/FieldRow.d.ts +6 -5
  92. package/dist/Common/RJSF/common/types.d.ts +8 -8
  93. package/dist/Common/RJSF/config.d.ts +4 -4
  94. package/dist/Common/RJSF/constants.d.ts +7 -7
  95. package/dist/Common/RJSF/index.d.ts +3 -3
  96. package/dist/Common/RJSF/templates/ArrayFieldItemTemplate.d.ts +3 -2
  97. package/dist/Common/RJSF/templates/ArrayFieldTemplate.d.ts +3 -2
  98. package/dist/Common/RJSF/templates/BaseInput.d.ts +3 -2
  99. package/dist/Common/RJSF/templates/ButtonTemplates/AddButton.d.ts +3 -2
  100. package/dist/Common/RJSF/templates/ButtonTemplates/RemoveButton.d.ts +3 -2
  101. package/dist/Common/RJSF/templates/ButtonTemplates/SubmitButton.d.ts +3 -2
  102. package/dist/Common/RJSF/templates/ButtonTemplates/index.d.ts +3 -3
  103. package/dist/Common/RJSF/templates/Description.d.ts +3 -2
  104. package/dist/Common/RJSF/templates/Field.d.ts +3 -2
  105. package/dist/Common/RJSF/templates/FieldErrorTemplate.d.ts +3 -2
  106. package/dist/Common/RJSF/templates/ObjectFieldTemplate.d.ts +3 -2
  107. package/dist/Common/RJSF/templates/TitleField.d.ts +3 -2
  108. package/dist/Common/RJSF/templates/WrapIfAdditionalTemplate.d.ts +3 -2
  109. package/dist/Common/RJSF/templates/index.d.ts +10 -10
  110. package/dist/Common/RJSF/types.d.ts +3 -3
  111. package/dist/Common/RJSF/utils.d.ts +26 -25
  112. package/dist/Common/RJSF/widgets/Checkbox.d.ts +3 -2
  113. package/dist/Common/RJSF/widgets/Select.d.ts +3 -2
  114. package/dist/Common/RJSF/widgets/index.d.ts +2 -2
  115. package/dist/Common/RadioGroup/RadioGroup.d.ts +17 -16
  116. package/dist/Common/RadioGroup.d.ts +8 -8
  117. package/dist/Common/Reload.d.ts +3 -3
  118. package/dist/Common/ResizableTextarea.d.ts +3 -3
  119. package/dist/Common/SearchBar/SearchBar.component.d.ts +39 -37
  120. package/dist/Common/SearchBar/index.d.ts +2 -2
  121. package/dist/Common/SearchBar/types.d.ts +35 -35
  122. package/dist/Common/Security/ScanVulnerabilitiesTable.d.ts +4 -3
  123. package/dist/Common/ServerError.d.ts +15 -15
  124. package/dist/Common/TippyCustomized.d.ts +4 -3
  125. package/dist/Common/ToastBody.d.ts +23 -23
  126. package/dist/Common/Toggle/Toggle.d.ts +14 -12
  127. package/dist/Common/Types.d.ts +692 -691
  128. package/dist/Common/index.d.ts +50 -51
  129. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraConfigForm.d.ts +4 -0
  130. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraDescriptionField.d.ts +4 -0
  131. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormAction.d.ts +7 -0
  132. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormItem.d.ts +4 -0
  133. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraProfileNameField.d.ts +4 -0
  134. package/dist/Pages/GlobalConfigurations/BuildInfra/Descriptor.d.ts +4 -0
  135. package/dist/Pages/GlobalConfigurations/BuildInfra/Footer.d.ts +4 -0
  136. package/dist/Pages/GlobalConfigurations/BuildInfra/constants.d.ts +48 -0
  137. package/dist/Pages/GlobalConfigurations/BuildInfra/index.d.ts +7 -0
  138. package/dist/Pages/GlobalConfigurations/BuildInfra/services.d.ts +13 -0
  139. package/dist/Pages/GlobalConfigurations/BuildInfra/types.d.ts +281 -0
  140. package/dist/Pages/GlobalConfigurations/BuildInfra/utils.d.ts +12 -0
  141. package/dist/Pages/GlobalConfigurations/index.d.ts +1 -0
  142. package/dist/Pages/index.d.ts +1 -0
  143. package/dist/Shared/Components/APIResponseHandler/APIResponseHandler.d.ts +4 -0
  144. package/dist/Shared/Components/APIResponseHandler/index.d.ts +2 -0
  145. package/dist/Shared/Components/APIResponseHandler/types.d.ts +37 -0
  146. package/dist/Shared/Components/ReactSelect/index.d.ts +1 -0
  147. package/dist/Shared/Components/ReactSelect/utils.d.ts +12 -0
  148. package/dist/Shared/Components/index.d.ts +2 -0
  149. package/dist/Shared/index.d.ts +2 -0
  150. package/dist/Shared/validations.d.ts +7 -0
  151. package/dist/index.d.ts +3 -1
  152. package/dist/index.js +29849 -225
  153. package/package.json +23 -35
  154. package/rollup.config.js +31 -0
  155. package/src/Assets/Icon/ic-add.svg +3 -0
  156. package/src/Assets/Icon/ic-appstatus-cancelled.svg +6 -0
  157. package/src/Assets/Icon/ic-arrow-counter-clockwise.svg +5 -0
  158. package/src/Assets/Icon/ic-check.svg +5 -0
  159. package/src/Assets/Icon/ic-chevron-down.svg +5 -0
  160. package/src/Assets/Icon/ic-copy.svg +3 -0
  161. package/src/Assets/Icon/ic-cpu.svg +4 -0
  162. package/src/Assets/Icon/ic-cross.svg +3 -0
  163. package/src/Assets/Icon/ic-drag.svg +8 -0
  164. package/src/Assets/Icon/ic-enter.svg +3 -0
  165. package/src/Assets/Icon/ic-error-cross.svg +8 -0
  166. package/src/Assets/Icon/ic-error-exclamation.svg +6 -0
  167. package/src/Assets/Icon/ic-error-medium.svg +6 -0
  168. package/src/Assets/Icon/ic-help-outline.svg +3 -0
  169. package/src/Assets/Icon/ic-help.svg +3 -0
  170. package/src/Assets/Icon/ic-info-filled.svg +7 -0
  171. package/src/Assets/Icon/ic-info-outlined.svg +13 -0
  172. package/src/Assets/Icon/ic-memory.svg +3 -0
  173. package/src/Assets/Icon/ic-minus.svg +3 -0
  174. package/src/Assets/Icon/ic-pencil.svg +3 -0
  175. package/src/Assets/Icon/ic-progressing.svg +6 -0
  176. package/src/Assets/Icon/ic-rotate-devtron.svg +103 -0
  177. package/src/Assets/Icon/ic-search.svg +6 -0
  178. package/src/Assets/Icon/ic-timer.svg +3 -0
  179. package/src/Assets/Icon/ic-warning.svg +7 -0
  180. package/src/Assets/Icon/inject-tag.svg +5 -0
  181. package/src/Assets/Img/app-not-deployed.png +0 -0
  182. package/src/Assets/Img/delete-medium.svg +15 -0
  183. package/src/Assets/Img/ic-empty-error@2x.png +0 -0
  184. package/src/Assets/Img/ic-loading-failure.png +0 -0
  185. package/src/Assets/Img/ic-not-authorized.svg +62 -0
  186. package/src/Common/AddCDButton/AddCDButton.tsx +68 -0
  187. package/src/Common/AddCDButton/index.ts +2 -0
  188. package/src/Common/AddCDButton/types.ts +38 -0
  189. package/src/Common/AddCDButton/utils.tsx +35 -0
  190. package/src/Common/Api.ts +230 -0
  191. package/src/Common/AppStatus/AppStatus.tsx +64 -0
  192. package/src/Common/AppStatus/constants.ts +53 -0
  193. package/src/Common/AppStatus/index.ts +1 -0
  194. package/src/Common/AppStatus/types.ts +12 -0
  195. package/src/Common/AppStatus/utils.ts +14 -0
  196. package/src/Common/BreadCrumb/BreadCrumb.tsx +105 -0
  197. package/src/Common/BreadCrumb/BreadcrumbStore.tsx +25 -0
  198. package/src/Common/BreadCrumb/Types.ts +29 -0
  199. package/src/Common/CIPipeline.Types.ts +277 -0
  200. package/src/Common/ChartVersionAndTypeSelector.tsx +78 -0
  201. package/src/Common/Checkbox.tsx +37 -0
  202. package/src/Common/ClipboardButton/ClipboardButton.tsx +61 -0
  203. package/src/Common/ClipboardButton/__tests__/ClipboardButton.test.tsx +43 -0
  204. package/src/Common/ClipboardButton/types.ts +7 -0
  205. package/src/Common/Common.service.ts +315 -0
  206. package/src/Common/Constants.ts +255 -0
  207. package/src/Common/CustomInput/CustomInput.tsx +132 -0
  208. package/src/Common/CustomInput/Types.ts +31 -0
  209. package/src/Common/CustomInput/index.ts +2 -0
  210. package/src/Common/CustomTagSelector/PropagateTagInfo.tsx +46 -0
  211. package/src/Common/CustomTagSelector/ResizableTagTextArea.tsx +84 -0
  212. package/src/Common/CustomTagSelector/TagDetails.tsx +76 -0
  213. package/src/Common/CustomTagSelector/TagLabelSelect.tsx +61 -0
  214. package/src/Common/CustomTagSelector/TagLabelValueSelector.tsx +198 -0
  215. package/src/Common/CustomTagSelector/TagSelector.utils.ts +71 -0
  216. package/src/Common/CustomTagSelector/Types.ts +72 -0
  217. package/src/Common/CustomTagSelector/ValidationRules.ts +58 -0
  218. package/src/Common/CustomTagSelector/index.ts +6 -0
  219. package/src/Common/DebouncedSearch/DebouncedSearch.tsx +78 -0
  220. package/src/Common/DebouncedSearch/Types.ts +13 -0
  221. package/src/Common/DebouncedSearch/Utils.ts +19 -0
  222. package/src/Common/DebouncedSearch/__tests__/DebouncedSearch.test.tsx +61 -0
  223. package/src/Common/DeleteComponentModal/DeleteComponent.tsx +95 -0
  224. package/src/Common/DeleteComponentModal/types.ts +15 -0
  225. package/src/Common/DevtronProgressing/DevtronProgressing.tsx +11 -0
  226. package/src/Common/DevtronProgressing/index.ts +1 -0
  227. package/src/Common/DevtronProgressing/types.ts +4 -0
  228. package/src/Common/Dialogs/ConfirmationDialog.tsx +34 -0
  229. package/src/Common/Dialogs/DeleteDialog.tsx +69 -0
  230. package/src/Common/Dialogs/DialogForm.tsx +86 -0
  231. package/src/Common/Dialogs/ForceDeleteDialog.tsx +19 -0
  232. package/src/Common/Dialogs/Types.ts +47 -0
  233. package/src/Common/Dialogs/index.ts +4 -0
  234. package/src/Common/DraggableWrapper/DraggableButton.tsx +14 -0
  235. package/src/Common/DraggableWrapper/DraggableWrapper.tsx +118 -0
  236. package/src/Common/DraggableWrapper/index.ts +3 -0
  237. package/src/Common/DraggableWrapper/types.ts +27 -0
  238. package/src/Common/Drawer/Drawer.scss +40 -0
  239. package/src/Common/Drawer/Drawer.tsx +49 -0
  240. package/src/Common/EmptyState/EmptyState.tsx +42 -0
  241. package/src/Common/EmptyState/GenericEmptyState.tsx +81 -0
  242. package/src/Common/EmptyState/emptyState.scss +74 -0
  243. package/src/Common/Error.tsx +61 -0
  244. package/src/Common/ErrorScreenNotFound.tsx +31 -0
  245. package/src/Common/Grid/Grid.tsx +44 -0
  246. package/src/Common/Grid/types.ts +11 -0
  247. package/src/Common/Helper.tsx +576 -0
  248. package/src/Common/Hooks/UseClickOutside/UseClickOutside.tsx +15 -0
  249. package/src/Common/Hooks/UseSuperAdmin/UseSuperAdmin.tsx +24 -0
  250. package/src/Common/Hooks/UseSuperAdmin/types.ts +3 -0
  251. package/src/Common/Hooks/UseWindowSize/UseWindowSize.tsx +31 -0
  252. package/src/Common/Hooks/index.ts +3 -0
  253. package/src/Common/ImageTags.Types.ts +44 -0
  254. package/src/Common/ImageTags.tsx +586 -0
  255. package/src/Common/InfoColorBar/InfoColourbar.tsx +80 -0
  256. package/src/Common/InfoColorBar/infoColourBar.scss +28 -0
  257. package/src/Common/Modals/Modal.tsx +68 -0
  258. package/src/Common/Modals/OpaqueModal.tsx +36 -0
  259. package/src/Common/Modals/VisibleModal.tsx +55 -0
  260. package/src/Common/Modals/VisibleModal2.tsx +35 -0
  261. package/src/Common/MultiSelectCustomization.tsx +148 -0
  262. package/src/Common/Pagination/PageSizeSelector.tsx +78 -0
  263. package/src/Common/Pagination/Pagination.tsx +127 -0
  264. package/src/Common/Pagination/constants.ts +6 -0
  265. package/src/Common/Pagination/index.tsx +3 -0
  266. package/src/Common/Pagination/pagination.scss +123 -0
  267. package/src/Common/Pagination/types.ts +55 -0
  268. package/src/Common/Pagination/utils.tsx +24 -0
  269. package/src/Common/Policy.Types.ts +63 -0
  270. package/src/Common/PopupMenu.tsx +199 -0
  271. package/src/Common/Progressing.tsx +53 -0
  272. package/src/Common/RJSF/Form.tsx +29 -0
  273. package/src/Common/RJSF/common/FieldRow.tsx +35 -0
  274. package/src/Common/RJSF/common/types.ts +9 -0
  275. package/src/Common/RJSF/config.ts +37 -0
  276. package/src/Common/RJSF/constants.ts +10 -0
  277. package/src/Common/RJSF/index.ts +3 -0
  278. package/src/Common/RJSF/rjsfForm.scss +18 -0
  279. package/src/Common/RJSF/templates/ArrayFieldItemTemplate.tsx +31 -0
  280. package/src/Common/RJSF/templates/ArrayFieldTemplate.tsx +78 -0
  281. package/src/Common/RJSF/templates/BaseInput.tsx +16 -0
  282. package/src/Common/RJSF/templates/ButtonTemplates/AddButton.tsx +18 -0
  283. package/src/Common/RJSF/templates/ButtonTemplates/RemoveButton.tsx +10 -0
  284. package/src/Common/RJSF/templates/ButtonTemplates/SubmitButton.tsx +18 -0
  285. package/src/Common/RJSF/templates/ButtonTemplates/index.ts +3 -0
  286. package/src/Common/RJSF/templates/Description.tsx +12 -0
  287. package/src/Common/RJSF/templates/Field.tsx +30 -0
  288. package/src/Common/RJSF/templates/FieldErrorTemplate.tsx +25 -0
  289. package/src/Common/RJSF/templates/ObjectFieldTemplate.tsx +105 -0
  290. package/src/Common/RJSF/templates/TitleField.tsx +9 -0
  291. package/src/Common/RJSF/templates/WrapIfAdditionalTemplate.tsx +51 -0
  292. package/src/Common/RJSF/templates/index.ts +10 -0
  293. package/src/Common/RJSF/types.ts +4 -0
  294. package/src/Common/RJSF/utils.ts +126 -0
  295. package/src/Common/RJSF/widgets/Checkbox.tsx +44 -0
  296. package/src/Common/RJSF/widgets/Select.tsx +77 -0
  297. package/src/Common/RJSF/widgets/index.ts +2 -0
  298. package/src/Common/RadioGroup/RadioGroup.tsx +105 -0
  299. package/src/Common/RadioGroup/radioGroup.scss +46 -0
  300. package/src/Common/RadioGroup.tsx +53 -0
  301. package/src/Common/Reload.tsx +23 -0
  302. package/src/Common/ResizableTextarea.tsx +73 -0
  303. package/src/Common/SearchBar/SearchBar.component.tsx +133 -0
  304. package/src/Common/SearchBar/index.ts +2 -0
  305. package/src/Common/SearchBar/searchBar.scss +31 -0
  306. package/src/Common/SearchBar/types.ts +36 -0
  307. package/src/Common/Security/ScanVulnerabilitiesTable.tsx +55 -0
  308. package/src/Common/Security/scanVulnerabilities.css +69 -0
  309. package/src/Common/ServerError.ts +31 -0
  310. package/src/Common/TippyCustomized.tsx +172 -0
  311. package/src/Common/ToastBody.tsx +62 -0
  312. package/src/Common/Toggle/Toggle.scss +78 -0
  313. package/src/Common/Toggle/Toggle.tsx +50 -0
  314. package/src/Common/Types.ts +765 -0
  315. package/src/Common/index.ts +50 -0
  316. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraConfigForm.tsx +121 -0
  317. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraDescriptionField.tsx +44 -0
  318. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormAction.tsx +99 -0
  319. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormItem.tsx +55 -0
  320. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraProfileNameField.tsx +32 -0
  321. package/src/Pages/GlobalConfigurations/BuildInfra/Descriptor.tsx +38 -0
  322. package/src/Pages/GlobalConfigurations/BuildInfra/Footer.tsx +45 -0
  323. package/src/Pages/GlobalConfigurations/BuildInfra/Readme.md +4 -0
  324. package/src/Pages/GlobalConfigurations/BuildInfra/constants.tsx +137 -0
  325. package/src/Pages/GlobalConfigurations/BuildInfra/index.ts +7 -0
  326. package/src/Pages/GlobalConfigurations/BuildInfra/services.tsx +183 -0
  327. package/src/Pages/GlobalConfigurations/BuildInfra/types.tsx +334 -0
  328. package/src/Pages/GlobalConfigurations/BuildInfra/utils.tsx +489 -0
  329. package/src/Pages/GlobalConfigurations/index.ts +1 -0
  330. package/src/Pages/index.ts +1 -0
  331. package/src/Shared/Components/APIResponseHandler/APIResponseHandler.tsx +39 -0
  332. package/src/Shared/Components/APIResponseHandler/index.ts +2 -0
  333. package/src/Shared/Components/APIResponseHandler/types.tsx +39 -0
  334. package/src/Shared/Components/ReactSelect/index.ts +1 -0
  335. package/src/Shared/Components/ReactSelect/utils.tsx +97 -0
  336. package/src/Shared/Components/index.ts +2 -0
  337. package/src/Shared/index.ts +2 -0
  338. package/src/Shared/validations.tsx +72 -0
  339. package/src/custom.d.ts +13 -0
  340. package/src/index.ts +3 -0
  341. package/tsconfig.json +40 -0
  342. package/dist/CodeEditor-3c2aaef5.js +0 -103695
  343. package/dist/Common/AddCDButton/AddCDButton.js +0 -61
  344. package/dist/Common/AddCDButton/index.js +0 -6
  345. package/dist/Common/AddCDButton/types.js +0 -1
  346. package/dist/Common/AddCDButton/utils.js +0 -19
  347. package/dist/Common/Api.js +0 -167
  348. package/dist/Common/AppStatus/AppStatus.js +0 -37
  349. package/dist/Common/AppStatus/constants.js +0 -37
  350. package/dist/Common/AppStatus/index.js +0 -4
  351. package/dist/Common/AppStatus/types.js +0 -1
  352. package/dist/Common/AppStatus/utils.js +0 -8
  353. package/dist/Common/BreadCrumb/BreadCrumb.js +0 -71
  354. package/dist/Common/BreadCrumb/BreadcrumbStore.js +0 -22
  355. package/dist/Common/BreadCrumb/Types.js +0 -1
  356. package/dist/Common/CIPipeline.Types.js +0 -10
  357. package/dist/Common/ChartVersionAndTypeSelector.js +0 -61
  358. package/dist/Common/Checkbox.js +0 -28
  359. package/dist/Common/ClipboardButton/ClipboardButton.js +0 -40
  360. package/dist/Common/ClipboardButton/__tests__/ClipboardButton.test.d.ts +0 -1
  361. package/dist/Common/ClipboardButton/__tests__/ClipboardButton.test.js +0 -27
  362. package/dist/Common/ClipboardButton/types.js +0 -1
  363. package/dist/Common/CodeEditor/CodeEditor.d.ts +0 -47
  364. package/dist/Common/CodeEditor/CodeEditor.js +0 -15
  365. package/dist/Common/Common.service.js +0 -191
  366. package/dist/Common/Constants.js +0 -239
  367. package/dist/Common/CustomInput/CustomInput.js +0 -81
  368. package/dist/Common/CustomInput/Types.js +0 -1
  369. package/dist/Common/CustomInput/index.js +0 -4
  370. package/dist/Common/CustomTagSelector/PropagateTagInfo.js +0 -43
  371. package/dist/Common/CustomTagSelector/ResizableTagTextArea.js +0 -58
  372. package/dist/Common/CustomTagSelector/TagDetails.js +0 -65
  373. package/dist/Common/CustomTagSelector/TagLabelSelect.js +0 -50
  374. package/dist/Common/CustomTagSelector/TagLabelValueSelector.js +0 -121
  375. package/dist/Common/CustomTagSelector/TagSelector.utils.js +0 -61
  376. package/dist/Common/CustomTagSelector/Types.js +0 -1
  377. package/dist/Common/CustomTagSelector/ValidationRules.js +0 -35
  378. package/dist/Common/CustomTagSelector/index.js +0 -12
  379. package/dist/Common/DebouncedSearch/DebouncedSearch.js +0 -56
  380. package/dist/Common/DebouncedSearch/Types.js +0 -1
  381. package/dist/Common/DebouncedSearch/Utils.js +0 -19
  382. package/dist/Common/DebouncedSearch/__tests__/DebouncedSearch.test.d.ts +0 -1
  383. package/dist/Common/DebouncedSearch/__tests__/DebouncedSearch.test.js +0 -34
  384. package/dist/Common/DeleteComponentModal/DeleteComponent.js +0 -63
  385. package/dist/Common/DeleteComponentModal/types.js +0 -1
  386. package/dist/Common/DevtronProgressing/DevtronProgressing.js +0 -98
  387. package/dist/Common/DevtronProgressing/index.js +0 -4
  388. package/dist/Common/DevtronProgressing/types.js +0 -1
  389. package/dist/Common/Dialogs/ConfirmationDialog.js +0 -24
  390. package/dist/Common/Dialogs/DeleteDialog.js +0 -49
  391. package/dist/Common/Dialogs/DialogForm.js +0 -63
  392. package/dist/Common/Dialogs/ForceDeleteDialog.js +0 -23
  393. package/dist/Common/Dialogs/Types.js +0 -1
  394. package/dist/Common/Dialogs/index.js +0 -11
  395. package/dist/Common/DraggableWrapper/DraggableButton.js +0 -16
  396. package/dist/Common/DraggableWrapper/DraggableWrapper.js +0 -73
  397. package/dist/Common/DraggableWrapper/index.js +0 -8
  398. package/dist/Common/DraggableWrapper/types.js +0 -4
  399. package/dist/Common/Drawer/Drawer.js +0 -22
  400. package/dist/Common/EmptyState/EmptyState.js +0 -32
  401. package/dist/Common/EmptyState/GenericEmptyState.js +0 -79
  402. package/dist/Common/Error.js +0 -49
  403. package/dist/Common/ErrorScreenNotFound.js +0 -23
  404. package/dist/Common/Grid/Grid.js +0 -31
  405. package/dist/Common/Grid/types.js +0 -1
  406. package/dist/Common/Helper.js +0 -39
  407. package/dist/Common/Hooks/UseClickOutside/UseClickOutside.js +0 -14
  408. package/dist/Common/Hooks/UseSuperAdmin/UseSuperAdmin.js +0 -16
  409. package/dist/Common/Hooks/UseSuperAdmin/types.js +0 -1
  410. package/dist/Common/Hooks/UseWindowSize/UseWindowSize.js +0 -17
  411. package/dist/Common/Hooks/index.js +0 -8
  412. package/dist/Common/ImageTags.Types.js +0 -1
  413. package/dist/Common/ImageTags.js +0 -384
  414. package/dist/Common/InfoColorBar/InfoColourbar.js +0 -65
  415. package/dist/Common/Modals/Modal.js +0 -48
  416. package/dist/Common/Modals/OpaqueModal.js +0 -32
  417. package/dist/Common/Modals/VisibleModal.js +0 -31
  418. package/dist/Common/Modals/VisibleModal2.js +0 -31
  419. package/dist/Common/MultiSelectCustomization.js +0 -97
  420. package/dist/Common/Pagination/PageSizeSelector.js +0 -52
  421. package/dist/Common/Pagination/Pagination.js +0 -98
  422. package/dist/Common/Pagination/constants.js +0 -9
  423. package/dist/Common/Pagination/index.js +0 -4
  424. package/dist/Common/Pagination/types.js +0 -1
  425. package/dist/Common/Pagination/utils.js +0 -15
  426. package/dist/Common/Policy.Types.js +0 -6
  427. package/dist/Common/PopupMenu.js +0 -148
  428. package/dist/Common/Progressing.js +0 -52
  429. package/dist/Common/RJSF/Form.js +0 -25
  430. package/dist/Common/RJSF/common/FieldRow.js +0 -25
  431. package/dist/Common/RJSF/common/types.js +0 -1
  432. package/dist/Common/RJSF/config.js +0 -33
  433. package/dist/Common/RJSF/constants.js +0 -10
  434. package/dist/Common/RJSF/index.js +0 -7
  435. package/dist/Common/RJSF/templates/ArrayFieldItemTemplate.js +0 -30
  436. package/dist/Common/RJSF/templates/ArrayFieldTemplate.js +0 -60
  437. package/dist/Common/RJSF/templates/BaseInput.js +0 -16
  438. package/dist/Common/RJSF/templates/ButtonTemplates/AddButton.js +0 -18
  439. package/dist/Common/RJSF/templates/ButtonTemplates/RemoveButton.js +0 -6
  440. package/dist/Common/RJSF/templates/ButtonTemplates/SubmitButton.js +0 -17
  441. package/dist/Common/RJSF/templates/ButtonTemplates/index.js +0 -8
  442. package/dist/Common/RJSF/templates/Description.js +0 -9
  443. package/dist/Common/RJSF/templates/Field.js +0 -18
  444. package/dist/Common/RJSF/templates/FieldErrorTemplate.js +0 -13
  445. package/dist/Common/RJSF/templates/ObjectFieldTemplate.js +0 -71
  446. package/dist/Common/RJSF/templates/TitleField.js +0 -8
  447. package/dist/Common/RJSF/templates/WrapIfAdditionalTemplate.js +0 -43
  448. package/dist/Common/RJSF/templates/index.js +0 -26
  449. package/dist/Common/RJSF/types.js +0 -1
  450. package/dist/Common/RJSF/utils.js +0 -95
  451. package/dist/Common/RJSF/widgets/Checkbox.js +0 -39
  452. package/dist/Common/RJSF/widgets/Select.js +0 -625
  453. package/dist/Common/RJSF/widgets/index.js +0 -6
  454. package/dist/Common/RadioGroup/RadioGroup.js +0 -76
  455. package/dist/Common/RadioGroup.js +0 -47
  456. package/dist/Common/Reload.js +0 -16
  457. package/dist/Common/ResizableTextarea.js +0 -60
  458. package/dist/Common/SearchBar/SearchBar.component.js +0 -66
  459. package/dist/Common/SearchBar/index.js +0 -4
  460. package/dist/Common/SearchBar/types.js +0 -1
  461. package/dist/Common/Security/ScanVulnerabilitiesTable.js +0 -49
  462. package/dist/Common/Select/Select.d.ts +0 -4
  463. package/dist/Common/Select/Select.js +0 -193
  464. package/dist/Common/Select/types.d.ts +0 -29
  465. package/dist/Common/Select/types.js +0 -1
  466. package/dist/Common/ServerError.js +0 -26
  467. package/dist/Common/TippyCustomized.js +0 -10
  468. package/dist/Common/ToastBody.js +0 -41
  469. package/dist/Common/Toggle/Toggle.js +0 -40
  470. package/dist/Common/Types.js +0 -24
  471. package/dist/Common/index.js +0 -226
  472. package/dist/Helper-a0caa238.js +0 -9834
  473. package/dist/TippyCustomized-7b9b46b9.js +0 -124
  474. package/dist/_commonjsHelpers-aeeeeb92.js +0 -30
  475. package/dist/abap-9f67f57a.js +0 -1314
  476. package/dist/apex-ff62e532.js +0 -315
  477. package/dist/assets/CodeEditor.css +0 -1
  478. package/dist/assets/Drawer.css +0 -1
  479. package/dist/assets/Form.css +0 -1
  480. package/dist/assets/GenericEmptyState.css +0 -1
  481. package/dist/assets/InfoColourbar.css +0 -1
  482. package/dist/assets/Pagination.css +0 -1
  483. package/dist/assets/RadioGroup.css +0 -1
  484. package/dist/assets/ScanVulnerabilitiesTable.css +0 -1
  485. package/dist/assets/SearchBar.component.css +0 -1
  486. package/dist/assets/Select.css +0 -1
  487. package/dist/assets/TippyCustomized.css +0 -1
  488. package/dist/assets/Toggle.css +0 -1
  489. package/dist/assets/editor.worker-d26000ef.js +0 -9
  490. package/dist/assets/json.worker-f23a4654.js +0 -40
  491. package/dist/assets/yaml.worker-64fecd27.js +0 -463
  492. package/dist/azcli-31e64a7f.js +0 -74
  493. package/dist/bat-0ffe897e.js +0 -95
  494. package/dist/bicep-3414a2b1.js +0 -108
  495. package/dist/cameligo-df1f3f25.js +0 -168
  496. package/dist/clojure-65b0f010.js +0 -754
  497. package/dist/coffee-437f0fba.js +0 -228
  498. package/dist/cpp-66843dd5.js +0 -390
  499. package/dist/csharp-621d9a49.js +0 -320
  500. package/dist/csp-de0d5244.js +0 -57
  501. package/dist/css-7cd5ed4c.js +0 -186
  502. package/dist/cssMode-c5cae484.js +0 -1446
  503. package/dist/cypher-70ad96fe.js +0 -262
  504. package/dist/dart-33ae3739.js +0 -270
  505. package/dist/dockerfile-f2274a50.js +0 -132
  506. package/dist/ecl-3b8294a3.js +0 -454
  507. package/dist/elixir-b9dcc73a.js +0 -489
  508. package/dist/extends-70f3d2a3.js +0 -13
  509. package/dist/flow9-bdde8316.js +0 -141
  510. package/dist/freemarker2-b9a8615c.js +0 -643
  511. package/dist/fsharp-eac2e449.js +0 -210
  512. package/dist/go-d12ed8d4.js +0 -208
  513. package/dist/graphql-c7356b69.js +0 -141
  514. package/dist/handlebars-3803af36.js +0 -391
  515. package/dist/hcl-e883a0d4.js +0 -177
  516. package/dist/html-498f0150.js +0 -281
  517. package/dist/htmlMode-a8ae8cc5.js +0 -1456
  518. package/dist/ic-add-4787ded5.js +0 -5
  519. package/dist/ic-chevron-down-eb7fd953.js +0 -6
  520. package/dist/ic-copy-118b83dc.js +0 -5
  521. package/dist/ic-cross-0e71861d.js +0 -6
  522. package/dist/ic-error-cross-2760059a.js +0 -5
  523. package/dist/ic-error-exclamation-5f9af461.js +0 -5
  524. package/dist/ic-info-filled-31a15add.js +0 -6
  525. package/dist/ic-info-outlined-8fa45e87.js +0 -5
  526. package/dist/ic-warning-42534af1.js +0 -5
  527. package/dist/ini-425ab711.js +0 -68
  528. package/dist/inject-tag-824bf92c.js +0 -5
  529. package/dist/java-2bc0fd68.js +0 -221
  530. package/dist/javascript-4363ced3.js +0 -75
  531. package/dist/jsonMode-80290b9e.js +0 -1867
  532. package/dist/jsx-runtime-0dcb030c.js +0 -667
  533. package/dist/julia-1c932615.js +0 -496
  534. package/dist/kotlin-1ab839c8.js +0 -245
  535. package/dist/less-6fe856f5.js +0 -168
  536. package/dist/lexon-4955ac52.js +0 -151
  537. package/dist/liquid-1398df0a.js +0 -238
  538. package/dist/lua-3cca0047.js +0 -157
  539. package/dist/m3-132e9cb6.js +0 -210
  540. package/dist/markdown-ea59a0c1.js +0 -202
  541. package/dist/mips-19811f4b.js +0 -194
  542. package/dist/msdax-69954a10.js +0 -377
  543. package/dist/mysql-82088e5d.js +0 -876
  544. package/dist/objective-c-1976eccc.js +0 -188
  545. package/dist/pascal-8ef177cb.js +0 -245
  546. package/dist/pascaligo-bc517b9e.js +0 -158
  547. package/dist/perl-8b93582c.js +0 -599
  548. package/dist/pgsql-00c11a6d.js +0 -847
  549. package/dist/php-4c8c276f.js +0 -471
  550. package/dist/pla-e9b4ffb1.js +0 -131
  551. package/dist/postiats-2071af8c.js +0 -544
  552. package/dist/powerquery-8e388ceb.js +0 -890
  553. package/dist/powershell-e35db398.js +0 -233
  554. package/dist/protobuf-a24b9176.js +0 -422
  555. package/dist/pug-2c94d9b8.js +0 -393
  556. package/dist/python-dd2d43e8.js +0 -259
  557. package/dist/qsharp-d730d7fe.js +0 -282
  558. package/dist/r-be193556.js +0 -245
  559. package/dist/razor-20a66096.js +0 -512
  560. package/dist/react-select.esm-97f26847.js +0 -4160
  561. package/dist/react-toastify.esm-1042de65.js +0 -792
  562. package/dist/react.esm-2c92920f.js +0 -13727
  563. package/dist/redis-9690c6ac.js +0 -298
  564. package/dist/redshift-6bdcdeaa.js +0 -806
  565. package/dist/restructuredtext-a08c1d20.js +0 -162
  566. package/dist/ruby-2247692b.js +0 -444
  567. package/dist/rust-1dffb4d5.js +0 -337
  568. package/dist/sb-136598e9.js +0 -110
  569. package/dist/scala-b1100fed.js +0 -353
  570. package/dist/scheme-038c8094.js +0 -114
  571. package/dist/scss-700d1b52.js +0 -244
  572. package/dist/shell-86c16e0f.js +0 -224
  573. package/dist/solidity-c05fdf3c.js +0 -1351
  574. package/dist/sophia-cd645d71.js +0 -190
  575. package/dist/sparql-01d9ec9c.js +0 -193
  576. package/dist/sql-4c33df41.js +0 -818
  577. package/dist/st-52cf1408.js +0 -414
  578. package/dist/swift-13c792ba.js +0 -315
  579. package/dist/systemverilog-0bd8b730.js +0 -556
  580. package/dist/tcl-463d7c75.js +0 -232
  581. package/dist/tippy-react.esm-8dc66a75.js +0 -2018
  582. package/dist/tsMode-3fa4eb6a.js +0 -811
  583. package/dist/twig-0d98f5ec.js +0 -323
  584. package/dist/typescript-1bbaf605.js +0 -328
  585. package/dist/vb-3a2b0a51.js +0 -364
  586. package/dist/wgsl-b2ddb3e4.js +0 -420
  587. package/dist/xml-a2693dbd.js +0 -95
  588. package/dist/yaml-01ce4fdd.js +0 -184
@@ -0,0 +1,50 @@
1
+ export * from './Constants'
2
+ export * from './ServerError'
3
+ export * from './Types'
4
+ export * from './Api'
5
+ export * from './EmptyState/EmptyState'
6
+ export * from './ToastBody'
7
+ export { default as Reload } from './Reload'
8
+ export * from './Error'
9
+ export * from './Helper'
10
+ export * from './Progressing'
11
+ export * from './Drawer/Drawer'
12
+ export * from './Modals/Modal'
13
+ export * from './Modals/OpaqueModal'
14
+ export * from './Modals/VisibleModal'
15
+ export * from './Modals/VisibleModal2'
16
+ export { BreadCrumb, useBreadcrumb } from './BreadCrumb/BreadCrumb'
17
+ export { default as BreadcrumbStore } from './BreadCrumb/BreadcrumbStore'
18
+ export * from './RadioGroup'
19
+ export { default as PopupMenu } from './PopupMenu'
20
+ export * from './TippyCustomized'
21
+ export * from './CustomTagSelector'
22
+ export * from './Dialogs'
23
+ export * from './MultiSelectCustomization'
24
+ export { default as InfoColourBar } from './InfoColorBar/InfoColourbar'
25
+ export * from './Common.service'
26
+ export * from './Checkbox'
27
+ export { default as EmptyState } from './EmptyState/EmptyState'
28
+ export { default as GenericEmptyState } from './EmptyState/GenericEmptyState'
29
+ export * from './SearchBar'
30
+ export { default as Toggle } from './Toggle/Toggle'
31
+ export { default as ScanVulnerabilitiesTable } from './Security/ScanVulnerabilitiesTable'
32
+ export { default as StyledRadioGroup } from './RadioGroup/RadioGroup'
33
+ export * from './CIPipeline.Types'
34
+ export * from './Policy.Types'
35
+ export { default as DeleteComponent } from './DeleteComponentModal/DeleteComponent'
36
+ export * from './ImageTags'
37
+ export * from './ImageTags.Types'
38
+ export * from './ResizableTextarea'
39
+ export { default as DebouncedSearch } from './DebouncedSearch/DebouncedSearch'
40
+ export { default as Grid } from './Grid/Grid'
41
+ export { default as ClipboardButton } from './ClipboardButton/ClipboardButton'
42
+ export * from './Hooks'
43
+ export { AppStatus } from './AppStatus'
44
+ export * from './RJSF'
45
+ export * from './DevtronProgressing'
46
+ export { default as ChartVersionAndTypeSelector } from './ChartVersionAndTypeSelector'
47
+ export * from './AddCDButton'
48
+ export * from './CustomInput'
49
+ export * from './DraggableWrapper'
50
+ export * from './Pagination'
@@ -0,0 +1,121 @@
1
+ import { FunctionComponent } from 'react'
2
+ import { Progressing } from '../../../Common'
3
+ import BuildInfraFormAction from './BuildInfraFormAction'
4
+ import BuildInfraFormItem from './BuildInfraFormItem'
5
+ import BuildInfraProfileDescriptionField from './BuildInfraDescriptionField'
6
+ import BuildInfraProfileNameField from './BuildInfraProfileNameField'
7
+ import { BUILD_INFRA_FORM_FIELDS, BUILD_INFRA_TEXT } from './constants'
8
+ import { BuildInfraActionType, BuildInfraConfigFormProps, InheritingHeaderProps } from './types'
9
+
10
+ const InheritingHeader = ({
11
+ defaultHeading,
12
+ inheritingData,
13
+ isInheriting,
14
+ isDefaultProfile,
15
+ }: InheritingHeaderProps) => {
16
+ const inheritingDataString = inheritingData.map((data) => `${data.value} ${data.unit ?? ''}`).join(' - ')
17
+
18
+ if (isDefaultProfile || !isInheriting) {
19
+ // For typing issues
20
+ // eslint-disable-next-line react/jsx-no-useless-fragment
21
+ return <>{defaultHeading}</>
22
+ }
23
+
24
+ return (
25
+ <div className="flexbox dc__align-items-center dc__content-space w-100">
26
+ {defaultHeading}
27
+
28
+ <p className="m-0 flexbox pt-0 pb-0 pl-4 pr-4 fs-13 lh-20 fw-4 cn-9">{inheritingDataString}</p>
29
+
30
+ <p className="m-0 cn-7 fs-13 fw-4 lh-20">{BUILD_INFRA_TEXT.INHERITING_HEADING_DESCRIPTION}</p>
31
+ </div>
32
+ )
33
+ }
34
+
35
+ const BuildInfraConfigForm: FunctionComponent<BuildInfraConfigFormProps> = ({
36
+ profileInput,
37
+ profileInputErrors,
38
+ handleProfileInputChange,
39
+ isDefaultProfile,
40
+ unitsMap,
41
+ configurationContainerLabel,
42
+ }) => {
43
+ const currentConfigurations = profileInput?.configurations
44
+
45
+ // will get the desired configuration from the currentConfigurations and then check if it is active or not
46
+ const isInheritingProfileValues = (actions: BuildInfraActionType[]) =>
47
+ actions.some((action) => !currentConfigurations[action.actionType].active)
48
+
49
+ // Had to show loader for an instance due to batching of state updates not working as expected :/
50
+ if (!currentConfigurations) {
51
+ return <Progressing pageLoader />
52
+ }
53
+
54
+ return (
55
+ <div className="flexbox-col dc__mxw-920 dc__gap-16">
56
+ {!isDefaultProfile && (
57
+ <div className="flexbox-col dc__gap-12">
58
+ <BuildInfraProfileNameField
59
+ handleProfileInputChange={handleProfileInputChange}
60
+ currentValue={profileInput.name}
61
+ error={profileInputErrors.name}
62
+ />
63
+
64
+ <BuildInfraProfileDescriptionField
65
+ handleProfileInputChange={handleProfileInputChange}
66
+ currentValue={profileInput.description}
67
+ error={profileInputErrors.description}
68
+ />
69
+ </div>
70
+ )}
71
+
72
+ <div className="flexbox-col dc__gap-12">
73
+ {configurationContainerLabel}
74
+
75
+ <div className="w-100 flexbox-col dc__gap-16 br-4 dc__border-n1 p-16">
76
+ {BUILD_INFRA_FORM_FIELDS.map((field, index) => (
77
+ <BuildInfraFormItem
78
+ key={field.locator}
79
+ marker={field.marker}
80
+ heading={
81
+ <InheritingHeader
82
+ defaultHeading={field.heading}
83
+ inheritingData={field.actions.map(
84
+ (action) => currentConfigurations[action.actionType],
85
+ )}
86
+ isInheriting={isInheritingProfileValues(field.actions)}
87
+ isDefaultProfile={isDefaultProfile}
88
+ />
89
+ }
90
+ showDivider={index !== BUILD_INFRA_FORM_FIELDS.length - 1}
91
+ isInheriting={isInheritingProfileValues(field.actions)}
92
+ handleProfileInputChange={handleProfileInputChange}
93
+ locator={field.locator}
94
+ isDefaultProfile={isDefaultProfile}
95
+ >
96
+ <div className="w-50 flexbox dc__gap-12 w-100 dc__align-start">
97
+ {field.actions.map((action) => (
98
+ <BuildInfraFormAction
99
+ key={action.actionType}
100
+ actionType={action.actionType}
101
+ label={action.label}
102
+ placeholder={action.placeholder}
103
+ error={profileInputErrors[action.actionType]}
104
+ // Assumption is for default profiles all input fields are required
105
+ isRequired={isDefaultProfile}
106
+ profileUnitsMap={unitsMap[action.actionType]}
107
+ handleProfileInputChange={handleProfileInputChange}
108
+ currentUnitName={currentConfigurations[action.actionType].unit}
109
+ currentValue={currentConfigurations[action.actionType].value}
110
+ />
111
+ ))}
112
+ </div>
113
+ </BuildInfraFormItem>
114
+ ))}
115
+ </div>
116
+ </div>
117
+ </div>
118
+ )
119
+ }
120
+
121
+ export default BuildInfraConfigForm
@@ -0,0 +1,44 @@
1
+ import { FormEvent, FunctionComponent } from 'react'
2
+ import { ReactComponent as ErrorIcon } from '../../../Assets/Icon/ic-warning.svg'
3
+ import { BuildInfraInputFieldComponentProps, BuildInfraMetaConfigTypes } from './types'
4
+ import { BUILD_INFRA_TEXT } from './constants'
5
+
6
+ const BuildInfraProfileDescriptionField: FunctionComponent<BuildInfraInputFieldComponentProps> = ({
7
+ handleProfileInputChange,
8
+ currentValue,
9
+ error,
10
+ }) => {
11
+ const handleChange = (e: FormEvent<HTMLTextAreaElement>) => {
12
+ handleProfileInputChange({
13
+ action: BuildInfraMetaConfigTypes.DESCRIPTION,
14
+ data: { value: e.currentTarget.value },
15
+ })
16
+ }
17
+
18
+ return (
19
+ <div className="flexbox-col dc__gap-4 w-100 dc__align-start">
20
+ <label htmlFor="build-infra-profile-description" className="m-0 fs-13 fw-4 lh-20 cn-7">
21
+ {BUILD_INFRA_TEXT.DESCRIPTION_LABEL}
22
+ </label>
23
+
24
+ <textarea
25
+ data-testid="build-infra-profile-description"
26
+ name="profile-description"
27
+ className="form__textarea mxh-140 dc__hover-border-n300"
28
+ id="build-infra-profile-description"
29
+ placeholder={BUILD_INFRA_TEXT.DESCRIPTION_PLACEHOLDER}
30
+ value={currentValue}
31
+ onChange={handleChange}
32
+ />
33
+
34
+ {error && (
35
+ <div className="form__error">
36
+ <ErrorIcon className="form__icon form__icon--error" />
37
+ {error}
38
+ </div>
39
+ )}
40
+ </div>
41
+ )
42
+ }
43
+
44
+ export default BuildInfraProfileDescriptionField
@@ -0,0 +1,99 @@
1
+ import { FormEvent, FunctionComponent } from 'react'
2
+ import ReactSelect from 'react-select'
3
+ import { BuildInfraFormActionProps } from './types'
4
+ import { OptionType } from '../../../Common'
5
+ import { unitSelectorStyles } from './utils'
6
+ import { BUILD_INFRA_INPUT_CONSTRAINTS } from './constants'
7
+ import { ReactComponent as ErrorIcon } from '../../../Assets/Icon/ic-warning.svg'
8
+
9
+ /**
10
+ * In case need arise for variants break this CustomInput and Select as a separate component
11
+ */
12
+ const BuildInfraFormAction: FunctionComponent<BuildInfraFormActionProps> = ({
13
+ actionType,
14
+ label,
15
+ placeholder,
16
+ error,
17
+ isRequired,
18
+ profileUnitsMap,
19
+ handleProfileInputChange,
20
+ currentUnitName,
21
+ currentValue,
22
+ }) => {
23
+ const handleUnitChange = (selectedUnit: OptionType) => {
24
+ const data = {
25
+ unit: selectedUnit.label,
26
+ value: currentValue,
27
+ }
28
+ handleProfileInputChange({ action: actionType, data })
29
+ }
30
+
31
+ const handleInputChange = (e: FormEvent<HTMLInputElement>) => {
32
+ const data = {
33
+ unit: currentUnitName,
34
+ value: e.currentTarget.value,
35
+ }
36
+ handleProfileInputChange({ action: actionType, data })
37
+ }
38
+
39
+ const unitOptions: OptionType[] =
40
+ Object.values(profileUnitsMap)?.map((unit) => ({
41
+ label: unit.name,
42
+ value: unit.name,
43
+ })) ?? []
44
+ const currentUnit = unitOptions.find((unit) => unit.value === currentUnitName)
45
+
46
+ return (
47
+ <div className="flexbox-col dc__gap-4 dc__mxw-420 w-100 dc__align-start">
48
+ <label
49
+ htmlFor={`${actionType}-input`}
50
+ className={`fs-13 fw-4 lh-20 cn-7 ${isRequired ? 'dc__required-field' : ''}`}
51
+ >
52
+ {label}
53
+ </label>
54
+ <div className="w-100 flexbox dc__align-items-center">
55
+ <div className="flex-grow-1">
56
+ <input
57
+ data-testid={actionType}
58
+ name={actionType}
59
+ type="number"
60
+ step={BUILD_INFRA_INPUT_CONSTRAINTS.STEP}
61
+ min={BUILD_INFRA_INPUT_CONSTRAINTS.MIN}
62
+ className="form__input dc__no-right-border dc__no-right-radius"
63
+ placeholder={placeholder}
64
+ value={currentValue}
65
+ onChange={handleInputChange}
66
+ required={isRequired}
67
+ autoComplete="off"
68
+ id={`${actionType}-input`}
69
+ />
70
+ </div>
71
+
72
+ {profileUnitsMap && (
73
+ <ReactSelect
74
+ name={`${actionType}-unit`}
75
+ className="bcn-0 dc__mxw-120"
76
+ options={unitOptions}
77
+ value={currentUnit}
78
+ onChange={handleUnitChange}
79
+ isSearchable={false}
80
+ components={{
81
+ IndicatorSeparator: null,
82
+ ClearIndicator: null,
83
+ }}
84
+ styles={unitSelectorStyles()}
85
+ />
86
+ )}
87
+ </div>
88
+
89
+ {error && (
90
+ <div className="form__error">
91
+ <ErrorIcon className="form__icon form__icon--error" />
92
+ {error}
93
+ </div>
94
+ )}
95
+ </div>
96
+ )
97
+ }
98
+
99
+ export default BuildInfraFormAction
@@ -0,0 +1,55 @@
1
+ import { FormEvent, FunctionComponent } from 'react'
2
+ import { BuildInfraFormItemProps, BuildInfraInheritActions } from './types'
3
+ import { CHECKBOX_VALUE, Checkbox } from '../../../Common'
4
+
5
+ const BuildInfraFormItem: FunctionComponent<BuildInfraFormItemProps> = ({
6
+ heading,
7
+ marker: Marker,
8
+ children,
9
+ isInheriting,
10
+ showDivider,
11
+ handleProfileInputChange,
12
+ locator,
13
+ isDefaultProfile,
14
+ }) => {
15
+ const handleActivationChange = (e: FormEvent<HTMLInputElement>) => {
16
+ const { checked } = e.currentTarget
17
+ const action = (checked ? `activate_${locator}` : `de_activate_${locator}`) as BuildInfraInheritActions
18
+ handleProfileInputChange({ action })
19
+ }
20
+
21
+ const renderMarker = () => {
22
+ if (isDefaultProfile) {
23
+ return <Marker className="icon-dim-20 dc__no-shrink" />
24
+ }
25
+
26
+ return (
27
+ <Checkbox
28
+ onChange={handleActivationChange}
29
+ isChecked={!isInheriting}
30
+ value={CHECKBOX_VALUE.CHECKED}
31
+ dataTestId={`${locator}_marker`}
32
+ />
33
+ )
34
+ }
35
+
36
+ // If in configuration active is false, means it is inheriting values from other profile
37
+ return (
38
+ <>
39
+ <div className="flexbox-col dc__gap-8 w-100">
40
+ <div className="flexbox dc__gap-12 dc__align-start w-100">
41
+ {renderMarker()}
42
+
43
+ <div className="flexbox-col dc__gap-8 w-100">
44
+ {heading}
45
+ {!isInheriting && children}
46
+ </div>
47
+ </div>
48
+ </div>
49
+
50
+ {showDivider && <div className="w-100 dc__border-bottom-n1" />}
51
+ </>
52
+ )
53
+ }
54
+
55
+ export default BuildInfraFormItem
@@ -0,0 +1,32 @@
1
+ import { FormEvent, FunctionComponent } from 'react'
2
+ import { BuildInfraMetaConfigTypes, BuildInfraInputFieldComponentProps } from './types'
3
+ import { CustomInput } from '../../../Common'
4
+ import { BUILD_INFRA_TEXT } from './constants'
5
+
6
+ const BuildInfraProfileNameField: FunctionComponent<BuildInfraInputFieldComponentProps> = ({
7
+ handleProfileInputChange,
8
+ currentValue,
9
+ error,
10
+ }) => {
11
+ const handleChange = (e: FormEvent<HTMLInputElement>) => {
12
+ handleProfileInputChange({ action: BuildInfraMetaConfigTypes.NAME, data: { value: e.currentTarget.value } })
13
+ }
14
+
15
+ return (
16
+ <div className="flexbox-col dc__gap-4 w-100 dc__align-start">
17
+ <CustomInput
18
+ name="profile-name"
19
+ label={BUILD_INFRA_TEXT.PROFILE_LABEL}
20
+ labelClassName="m-0 dc__required-field fs-13 fw-4 lh-20 cn-7"
21
+ placeholder={BUILD_INFRA_TEXT.PROFILE_PLACEHOLDER}
22
+ value={currentValue}
23
+ onChange={handleChange}
24
+ error={error}
25
+ required
26
+ inputWrapClassName="w-100"
27
+ />
28
+ </div>
29
+ )
30
+ }
31
+
32
+ export default BuildInfraProfileNameField
@@ -0,0 +1,38 @@
1
+ import { DescriptorProps } from './types'
2
+ import { BreadCrumb, TippyCustomized, TippyTheme } from '../../../Common'
3
+ import { ReactComponent as QuestionFilled } from '../../../Assets/Icon/ic-help.svg'
4
+ import { ReactComponent as ICHelpOutline } from '../../../Assets/Icon/ic-help-outline.svg'
5
+ import { BUILD_INFRA_TEXT } from './constants'
6
+
7
+ const Descriptor = ({ additionalContainerClasses, breadCrumbs, children }: DescriptorProps) => (
8
+ <div className={`flexbox dc__content-space dc__align-items-center w-100 ${additionalContainerClasses ?? ''}`}>
9
+ <div className="flexbox dc__align-items-center dc__gap-4">
10
+ <BreadCrumb breadcrumbs={breadCrumbs} />
11
+
12
+ <TippyCustomized
13
+ theme={TippyTheme.white}
14
+ className="w-300 h-100 dc__align-left"
15
+ placement="right"
16
+ Icon={QuestionFilled}
17
+ iconClass="fcv-5"
18
+ infoText={BUILD_INFRA_TEXT.EDIT_DEFAULT_TOOLTIP}
19
+ heading={BUILD_INFRA_TEXT.HEADING}
20
+ showCloseButton
21
+ trigger="click"
22
+ interactive
23
+ >
24
+ <button
25
+ className="p-0 h-20 dc__no-background dc__no-border dc__tab-focus"
26
+ type="button"
27
+ aria-label="build-infra-info"
28
+ >
29
+ <ICHelpOutline className="icon-dim-20" />
30
+ </button>
31
+ </TippyCustomized>
32
+ </div>
33
+
34
+ {children}
35
+ </div>
36
+ )
37
+
38
+ export default Descriptor
@@ -0,0 +1,45 @@
1
+ import { FunctionComponent, ReactElement } from 'react'
2
+ import Tippy from '@tippyjs/react'
3
+ import { BUILD_INFRA_TEXT } from './constants'
4
+ import { FooterProps } from './types'
5
+ import { ConditionalWrap, Progressing } from '../../../Common'
6
+
7
+ const Footer: FunctionComponent<FooterProps> = ({ disabled, hideCancelButton, editProfile, loading }) => {
8
+ const disableMessage = disabled
9
+ ? BUILD_INFRA_TEXT.SUBMIT_BUTTON_TIPPY.INVALID_INPUT
10
+ : BUILD_INFRA_TEXT.SUBMIT_BUTTON_TIPPY.REQUEST_IN_PROGRESS
11
+
12
+ const getButtonText = () => {
13
+ if (editProfile) {
14
+ return BUILD_INFRA_TEXT.EDIT_SUBMIT
15
+ }
16
+
17
+ return BUILD_INFRA_TEXT.SAVE_SUBMIT
18
+ }
19
+
20
+ const renderTippy = (children: ReactElement) => (
21
+ <Tippy content={disableMessage} placement="top" className="default-tt" arrow={false}>
22
+ {children}
23
+ </Tippy>
24
+ )
25
+
26
+ return (
27
+ <div className="flex pl pr pb pt h-64 dc__gap-12 dc__border-top dc__content-start">
28
+ <ConditionalWrap condition={disabled || loading} wrap={renderTippy}>
29
+ <div className="flexbox dc__align-items-center">
30
+ <button type="submit" className="cta submit h-32 flex" disabled={disabled || loading}>
31
+ {loading ? <Progressing size={16} /> : getButtonText()}
32
+ </button>
33
+ </div>
34
+ </ConditionalWrap>
35
+
36
+ {!hideCancelButton && (
37
+ <button type="button" className="cta cancel h-32 flex">
38
+ {BUILD_INFRA_TEXT.EDIT_CANCEL}
39
+ </button>
40
+ )}
41
+ </div>
42
+ )
43
+ }
44
+
45
+ export default Footer
@@ -0,0 +1,4 @@
1
+ In case someone wants to add a new build infrastructure field, the following steps should be followed:
2
+ - Update the BUILD_INFRA_FORM_FIELDS, in constants.tsx
3
+ - Add BuildInfraConfigTypes, BuildInfraLocators, BuildInfraInheritActions(If any) in types.tsx
4
+ - In utils.tsx, update the handleProfileInputChange and validation functions accordingly
@@ -0,0 +1,137 @@
1
+ import { ReactComponent as ICCpu } from '../../../Assets/Icon/ic-cpu.svg'
2
+ import { ReactComponent as ICMemory } from '../../../Assets/Icon/ic-memory.svg'
3
+ import { ReactComponent as ICTimer } from '../../../Assets/Icon/ic-timer.svg'
4
+ import { UseBreadcrumbProps } from '../../../Common/BreadCrumb/Types'
5
+ import {
6
+ BuildInfraConfigTypes,
7
+ BuildInfraFormFieldType,
8
+ BuildInfraLocators,
9
+ BuildInfraMetaConfigTypes,
10
+ ProfileInputErrorType,
11
+ BuildInfraProfileBase,
12
+ BuildInfraProfileVariants,
13
+ HandleProfileInputChangeType,
14
+ } from './types'
15
+
16
+ export const BUILD_INFRA_TEXT = {
17
+ HEADING: 'Build Infra Configuration',
18
+ EDIT_SUBMIT: 'Save changes',
19
+ SAVE_SUBMIT: 'Save',
20
+ EDIT_CANCEL: 'Cancel',
21
+ EDIT_DEFAULT_TOOLTIP:
22
+ '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.',
23
+ DESCRIPTION_LABEL: 'Description',
24
+ DESCRIPTION_PLACEHOLDER: 'Enter a description here',
25
+ PROFILE_LABEL: 'Profile name',
26
+ PROFILE_PLACEHOLDER: 'Eg. Java or Node',
27
+ INHERITING_HEADING_DESCRIPTION: 'Inheriting from default',
28
+ SUBMIT_BUTTON_TIPPY: {
29
+ INVALID_INPUT: 'Valid input is required for all mandatory fields.',
30
+ REQUEST_IN_PROGRESS: 'Request in progress.',
31
+ },
32
+ VALIDATE_REQUEST_LIMIT: {
33
+ NEGATIVE_REQUEST: 'Request should be a positive number.',
34
+ NEGATIVE_LIMIT: 'Limit should be a positive number.',
35
+ REQUEST_LESS_THAN_LIMIT: 'Request should be less than or equal to limit.',
36
+ REQUEST_TOO_BIG: 'Request is too big to compute.',
37
+ LIMIT_TOO_BIG: 'Limit is too big to compute.',
38
+ REQUEST_DECIMAL_PLACES: 'Request should be upto 2 decimal places.',
39
+ LIMIT_DECIMAL_PLACES: 'Limit should be upto 2 decimal places.',
40
+ },
41
+ getInvalidActionMessage: (action: HandleProfileInputChangeType['action']) => `Invalid action type: ${action}`,
42
+ getSubmitSuccessMessage: (profileName: string, isEdited: boolean) =>
43
+ `${profileName} is ${isEdited ? 'updated' : 'created'}`,
44
+ PROFILE_NOT_FOUND: {
45
+ title: 'Profile not found',
46
+ subTitle: 'The profile you are looking for does not exist.',
47
+ },
48
+ }
49
+
50
+ export const BUILD_INFRA_BREADCRUMB: UseBreadcrumbProps = {
51
+ alias: {
52
+ 'global-config': null,
53
+ 'build-infra': {
54
+ component: <h2 className="m-0 cn-9 fs-16 fw-6 lh-32">{BUILD_INFRA_TEXT.HEADING}</h2>,
55
+ linked: false,
56
+ },
57
+ },
58
+ }
59
+
60
+ export const BUILD_INFRA_FORM_FIELDS: BuildInfraFormFieldType[] = [
61
+ {
62
+ heading: <h3 className="m-0 cn-9 fs-13 fw-6 lh-20">CPU (Request - Limit)</h3>,
63
+ marker: ICCpu,
64
+ actions: [
65
+ {
66
+ actionType: BuildInfraConfigTypes.CPU_REQUEST,
67
+ label: 'Request',
68
+ placeholder: 'Type CPU request',
69
+ },
70
+ {
71
+ actionType: BuildInfraConfigTypes.CPU_LIMIT,
72
+ label: 'Limit',
73
+ placeholder: 'Type CPU limit',
74
+ },
75
+ ],
76
+ locator: BuildInfraLocators.CPU,
77
+ },
78
+ {
79
+ heading: <h3 className="m-0 cn-9 fs-13 fw-6 lh-20">Memory (Request - Limit)</h3>,
80
+ marker: ICMemory,
81
+ actions: [
82
+ {
83
+ actionType: BuildInfraConfigTypes.MEMORY_REQUEST,
84
+ label: 'Request',
85
+ placeholder: 'Type memory request',
86
+ },
87
+ {
88
+ actionType: BuildInfraConfigTypes.MEMORY_LIMIT,
89
+ label: 'Limit',
90
+ placeholder: 'Type memory limit',
91
+ },
92
+ ],
93
+ locator: BuildInfraLocators.MEMORY,
94
+ },
95
+ {
96
+ heading: <h3 className="m-0 cn-9 fs-13 fw-6 lh-20">Build timeout</h3>,
97
+ marker: ICTimer,
98
+ actions: [
99
+ {
100
+ actionType: BuildInfraConfigTypes.BUILD_TIMEOUT,
101
+ label: 'Timeout',
102
+ placeholder: 'Type build timeout',
103
+ },
104
+ ],
105
+ locator: BuildInfraLocators.BUILD_TIMEOUT,
106
+ },
107
+ ]
108
+
109
+ // TODO: Handle the case of create profile to disable save button initially and enable it when all the fields are filled
110
+ export const PROFILE_INPUT_ERROR_FIELDS = {
111
+ ...Object.fromEntries(
112
+ Object.keys({ ...BuildInfraConfigTypes, ...BuildInfraMetaConfigTypes }).map((key) => [key, null]),
113
+ ),
114
+ } as ProfileInputErrorType
115
+
116
+ // All fields in BuildInfraConfigTypes are required and name in BuildInfraMetaConfigTypes is required
117
+ export const REQUIRED_INPUT_FIELDS = [...Object.keys(BuildInfraConfigTypes), BuildInfraMetaConfigTypes.NAME]
118
+
119
+ export const DEFAULT_PROFILE_NAME = 'default'
120
+
121
+ export const CREATE_PROFILE_BASE_VALUE: BuildInfraProfileBase = {
122
+ name: '',
123
+ description: '',
124
+ type: BuildInfraProfileVariants.NORMAL,
125
+ appCount: 0,
126
+ }
127
+
128
+ export const CREATE_VIEW_CHECKED_CONFIGS = {
129
+ [BuildInfraConfigTypes.CPU_REQUEST]: true,
130
+ [BuildInfraConfigTypes.CPU_LIMIT]: true,
131
+ }
132
+
133
+ export const BUILD_INFRA_INPUT_CONSTRAINTS = {
134
+ STEP: 0.01,
135
+ MIN: 0,
136
+ DECIMAL_PLACES: 2,
137
+ }
@@ -0,0 +1,7 @@
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'