@devtron-labs/devtron-fe-common-lib 0.0.59-beta-4 → 0.0.59-beta-6

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 (450) 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 +14 -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 -2
  31. package/dist/Common/CustomInput/Types.d.ts +31 -31
  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 -2
  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 -3
  46. package/dist/Common/DeleteComponentModal/types.d.ts +15 -15
  47. package/dist/Common/DevtronProgressing/DevtronProgressing.d.ts +3 -2
  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 -8
  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 -0
  62. package/dist/Common/EmptyState/GenericEmptyState.d.ts +5 -3
  63. package/dist/Common/Error.d.ts +17 -17
  64. package/dist/Common/ErrorScreenNotFound.d.ts +3 -2
  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 -3
  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 -7
  89. package/dist/Common/Progressing.d.ts +4 -3
  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 -2
  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 -50
  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 +50 -0
  137. package/dist/Pages/GlobalConfigurations/BuildInfra/index.d.ts +7 -0
  138. package/dist/Pages/GlobalConfigurations/BuildInfra/services.d.ts +6 -0
  139. package/dist/Pages/GlobalConfigurations/BuildInfra/types.d.ts +286 -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/constants.d.ts +4 -0
  145. package/dist/Shared/Components/APIResponseHandler/index.d.ts +2 -0
  146. package/dist/Shared/Components/APIResponseHandler/types.d.ts +37 -0
  147. package/dist/Shared/Components/BulkSelection/BulkSelection.d.ts +4 -0
  148. package/dist/Shared/Components/BulkSelection/BulkSelectionDropdownItems.d.ts +4 -0
  149. package/dist/Shared/Components/BulkSelection/UseBulkSelection.d.ts +3 -0
  150. package/dist/Shared/Components/BulkSelection/constants.d.ts +8 -0
  151. package/dist/Shared/Components/BulkSelection/index.d.ts +4 -0
  152. package/dist/Shared/Components/BulkSelection/types.d.ts +51 -0
  153. package/dist/Shared/Components/ReactSelect/index.d.ts +1 -0
  154. package/dist/Shared/Components/ReactSelect/utils.d.ts +12 -0
  155. package/dist/Shared/Components/index.d.ts +3 -0
  156. package/dist/Shared/Helpers.d.ts +16 -0
  157. package/dist/Shared/index.d.ts +3 -0
  158. package/dist/Shared/validations.d.ts +8 -0
  159. package/dist/index.d.ts +3 -7
  160. package/dist/index.js +30111 -162
  161. package/package.json +23 -34
  162. package/rollup.config.js +31 -0
  163. package/src/Assets/Icon/ic-add.svg +3 -0
  164. package/src/Assets/Icon/ic-appstatus-cancelled.svg +6 -0
  165. package/src/Assets/Icon/ic-arrow-counter-clockwise.svg +5 -0
  166. package/src/Assets/Icon/ic-check-all.svg +5 -0
  167. package/src/Assets/Icon/ic-check-square.svg +4 -0
  168. package/src/Assets/Icon/ic-check.svg +5 -0
  169. package/src/Assets/Icon/ic-chevron-down.svg +5 -0
  170. package/src/Assets/Icon/ic-copy.svg +3 -0
  171. package/src/Assets/Icon/ic-cpu.svg +4 -0
  172. package/src/Assets/Icon/ic-cross.svg +3 -0
  173. package/src/Assets/Icon/ic-drag.svg +8 -0
  174. package/src/Assets/Icon/ic-enter.svg +3 -0
  175. package/src/Assets/Icon/ic-error-cross.svg +8 -0
  176. package/src/Assets/Icon/ic-error-exclamation.svg +6 -0
  177. package/src/Assets/Icon/ic-error-medium.svg +6 -0
  178. package/src/Assets/Icon/ic-help-outline.svg +3 -0
  179. package/src/Assets/Icon/ic-help.svg +3 -0
  180. package/src/Assets/Icon/ic-info-filled.svg +7 -0
  181. package/src/Assets/Icon/ic-info-outlined.svg +13 -0
  182. package/src/Assets/Icon/ic-memory.svg +3 -0
  183. package/src/Assets/Icon/ic-minus.svg +3 -0
  184. package/src/Assets/Icon/ic-pencil.svg +3 -0
  185. package/src/Assets/Icon/ic-progressing.svg +6 -0
  186. package/src/Assets/Icon/ic-rotate-devtron.svg +103 -0
  187. package/src/Assets/Icon/ic-search.svg +6 -0
  188. package/src/Assets/Icon/ic-timer.svg +3 -0
  189. package/src/Assets/Icon/ic-warning.svg +7 -0
  190. package/src/Assets/Icon/inject-tag.svg +5 -0
  191. package/src/Assets/Img/app-not-deployed.png +0 -0
  192. package/src/Assets/Img/delete-medium.svg +15 -0
  193. package/src/Assets/Img/ic-empty-error@2x.png +0 -0
  194. package/src/Assets/Img/ic-loading-failure.png +0 -0
  195. package/src/Assets/Img/ic-not-authorized.svg +62 -0
  196. package/src/Common/AddCDButton/AddCDButton.tsx +68 -0
  197. package/src/Common/AddCDButton/index.ts +2 -0
  198. package/src/Common/AddCDButton/types.ts +38 -0
  199. package/src/Common/AddCDButton/utils.tsx +35 -0
  200. package/src/Common/Api.ts +251 -0
  201. package/src/Common/AppStatus/AppStatus.tsx +64 -0
  202. package/src/Common/AppStatus/constants.ts +53 -0
  203. package/src/Common/AppStatus/index.ts +1 -0
  204. package/src/Common/AppStatus/types.ts +12 -0
  205. package/src/Common/AppStatus/utils.ts +14 -0
  206. package/src/Common/BreadCrumb/BreadCrumb.tsx +105 -0
  207. package/src/Common/BreadCrumb/BreadcrumbStore.tsx +25 -0
  208. package/src/Common/BreadCrumb/Types.ts +29 -0
  209. package/src/Common/CIPipeline.Types.ts +277 -0
  210. package/src/Common/ChartVersionAndTypeSelector.tsx +78 -0
  211. package/src/Common/Checkbox.tsx +37 -0
  212. package/src/Common/ClipboardButton/ClipboardButton.tsx +61 -0
  213. package/src/Common/ClipboardButton/__tests__/ClipboardButton.test.tsx +43 -0
  214. package/src/Common/ClipboardButton/types.ts +7 -0
  215. package/src/Common/Common.service.ts +315 -0
  216. package/src/Common/Constants.ts +255 -0
  217. package/src/Common/CustomInput/CustomInput.tsx +135 -0
  218. package/src/Common/CustomInput/Types.ts +32 -0
  219. package/src/Common/CustomInput/index.ts +2 -0
  220. package/src/Common/CustomTagSelector/PropagateTagInfo.tsx +46 -0
  221. package/src/Common/CustomTagSelector/ResizableTagTextArea.tsx +84 -0
  222. package/src/Common/CustomTagSelector/TagDetails.tsx +76 -0
  223. package/src/Common/CustomTagSelector/TagLabelSelect.tsx +61 -0
  224. package/src/Common/CustomTagSelector/TagLabelValueSelector.tsx +198 -0
  225. package/src/Common/CustomTagSelector/TagSelector.utils.ts +71 -0
  226. package/src/Common/CustomTagSelector/Types.ts +72 -0
  227. package/src/Common/CustomTagSelector/ValidationRules.ts +58 -0
  228. package/src/Common/CustomTagSelector/index.ts +6 -0
  229. package/src/Common/DebouncedSearch/DebouncedSearch.tsx +78 -0
  230. package/src/Common/DebouncedSearch/Types.ts +13 -0
  231. package/src/Common/DebouncedSearch/Utils.ts +19 -0
  232. package/src/Common/DebouncedSearch/__tests__/DebouncedSearch.test.tsx +61 -0
  233. package/src/Common/DeleteComponentModal/DeleteComponent.tsx +95 -0
  234. package/src/Common/DeleteComponentModal/types.ts +15 -0
  235. package/src/Common/DevtronProgressing/DevtronProgressing.tsx +11 -0
  236. package/src/Common/DevtronProgressing/index.ts +1 -0
  237. package/src/Common/DevtronProgressing/types.ts +4 -0
  238. package/src/Common/Dialogs/ConfirmationDialog.tsx +34 -0
  239. package/src/Common/Dialogs/DeleteDialog.tsx +69 -0
  240. package/src/Common/Dialogs/DialogForm.tsx +86 -0
  241. package/src/Common/Dialogs/ForceDeleteDialog.tsx +19 -0
  242. package/src/Common/Dialogs/Types.ts +47 -0
  243. package/src/Common/Dialogs/index.ts +4 -0
  244. package/src/Common/DraggableWrapper/DraggableButton.tsx +14 -0
  245. package/src/Common/DraggableWrapper/DraggableWrapper.tsx +118 -0
  246. package/src/Common/DraggableWrapper/index.ts +3 -0
  247. package/src/Common/DraggableWrapper/types.ts +27 -0
  248. package/src/Common/Drawer/Drawer.scss +40 -0
  249. package/src/Common/Drawer/Drawer.tsx +49 -0
  250. package/src/Common/EmptyState/EmptyState.tsx +42 -0
  251. package/src/Common/EmptyState/GenericEmptyState.tsx +81 -0
  252. package/src/Common/EmptyState/emptyState.scss +74 -0
  253. package/src/Common/Error.tsx +61 -0
  254. package/src/Common/ErrorScreenNotFound.tsx +31 -0
  255. package/src/Common/Grid/Grid.tsx +44 -0
  256. package/src/Common/Grid/types.ts +11 -0
  257. package/src/Common/Helper.tsx +576 -0
  258. package/src/Common/Hooks/UseClickOutside/UseClickOutside.tsx +15 -0
  259. package/src/Common/Hooks/UseSuperAdmin/UseSuperAdmin.tsx +24 -0
  260. package/src/Common/Hooks/UseSuperAdmin/types.ts +3 -0
  261. package/src/Common/Hooks/UseWindowSize/UseWindowSize.tsx +31 -0
  262. package/src/Common/Hooks/index.ts +3 -0
  263. package/src/Common/ImageTags.Types.ts +44 -0
  264. package/src/Common/ImageTags.tsx +586 -0
  265. package/src/Common/InfoColorBar/InfoColourbar.tsx +80 -0
  266. package/src/Common/InfoColorBar/infoColourBar.scss +28 -0
  267. package/src/Common/Modals/Modal.tsx +68 -0
  268. package/src/Common/Modals/OpaqueModal.tsx +36 -0
  269. package/src/Common/Modals/VisibleModal.tsx +55 -0
  270. package/src/Common/Modals/VisibleModal2.tsx +35 -0
  271. package/src/Common/MultiSelectCustomization.tsx +148 -0
  272. package/src/Common/Pagination/PageSizeSelector.tsx +78 -0
  273. package/src/Common/Pagination/Pagination.tsx +127 -0
  274. package/src/Common/Pagination/constants.ts +6 -0
  275. package/src/Common/Pagination/index.tsx +3 -0
  276. package/src/Common/Pagination/pagination.scss +123 -0
  277. package/src/Common/Pagination/types.ts +55 -0
  278. package/src/Common/Pagination/utils.tsx +24 -0
  279. package/src/Common/Policy.Types.ts +63 -0
  280. package/src/Common/PopupMenu.tsx +199 -0
  281. package/src/Common/Progressing.tsx +53 -0
  282. package/src/Common/RJSF/Form.tsx +29 -0
  283. package/src/Common/RJSF/common/FieldRow.tsx +35 -0
  284. package/src/Common/RJSF/common/types.ts +9 -0
  285. package/src/Common/RJSF/config.ts +37 -0
  286. package/src/Common/RJSF/constants.ts +10 -0
  287. package/src/Common/RJSF/index.ts +3 -0
  288. package/src/Common/RJSF/rjsfForm.scss +18 -0
  289. package/src/Common/RJSF/templates/ArrayFieldItemTemplate.tsx +31 -0
  290. package/src/Common/RJSF/templates/ArrayFieldTemplate.tsx +78 -0
  291. package/src/Common/RJSF/templates/BaseInput.tsx +16 -0
  292. package/src/Common/RJSF/templates/ButtonTemplates/AddButton.tsx +18 -0
  293. package/src/Common/RJSF/templates/ButtonTemplates/RemoveButton.tsx +10 -0
  294. package/src/Common/RJSF/templates/ButtonTemplates/SubmitButton.tsx +18 -0
  295. package/src/Common/RJSF/templates/ButtonTemplates/index.ts +3 -0
  296. package/src/Common/RJSF/templates/Description.tsx +12 -0
  297. package/src/Common/RJSF/templates/Field.tsx +30 -0
  298. package/src/Common/RJSF/templates/FieldErrorTemplate.tsx +25 -0
  299. package/src/Common/RJSF/templates/ObjectFieldTemplate.tsx +105 -0
  300. package/src/Common/RJSF/templates/TitleField.tsx +9 -0
  301. package/src/Common/RJSF/templates/WrapIfAdditionalTemplate.tsx +51 -0
  302. package/src/Common/RJSF/templates/index.ts +10 -0
  303. package/src/Common/RJSF/types.ts +4 -0
  304. package/src/Common/RJSF/utils.ts +125 -0
  305. package/src/Common/RJSF/widgets/Checkbox.tsx +44 -0
  306. package/src/Common/RJSF/widgets/Select.tsx +77 -0
  307. package/src/Common/RJSF/widgets/index.ts +2 -0
  308. package/src/Common/RadioGroup/RadioGroup.tsx +105 -0
  309. package/src/Common/RadioGroup/radioGroup.scss +46 -0
  310. package/src/Common/RadioGroup.tsx +53 -0
  311. package/src/Common/Reload.tsx +23 -0
  312. package/src/Common/ResizableTextarea.tsx +73 -0
  313. package/src/Common/SearchBar/SearchBar.component.tsx +131 -0
  314. package/src/Common/SearchBar/index.ts +2 -0
  315. package/src/Common/SearchBar/searchBar.scss +31 -0
  316. package/src/Common/SearchBar/types.ts +34 -0
  317. package/src/Common/Security/ScanVulnerabilitiesTable.tsx +55 -0
  318. package/src/Common/Security/scanVulnerabilities.css +69 -0
  319. package/src/Common/ServerError.ts +31 -0
  320. package/src/Common/TippyCustomized.tsx +172 -0
  321. package/src/Common/ToastBody.tsx +62 -0
  322. package/src/Common/Toggle/Toggle.scss +78 -0
  323. package/src/Common/Toggle/Toggle.tsx +50 -0
  324. package/src/Common/Types.ts +766 -0
  325. package/src/Common/index.ts +50 -0
  326. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraConfigForm.tsx +128 -0
  327. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraDescriptionField.tsx +44 -0
  328. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormAction.tsx +106 -0
  329. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormItem.tsx +55 -0
  330. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraProfileNameField.tsx +32 -0
  331. package/src/Pages/GlobalConfigurations/BuildInfra/Descriptor.tsx +45 -0
  332. package/src/Pages/GlobalConfigurations/BuildInfra/Footer.tsx +55 -0
  333. package/src/Pages/GlobalConfigurations/BuildInfra/Readme.md +4 -0
  334. package/src/Pages/GlobalConfigurations/BuildInfra/constants.tsx +138 -0
  335. package/src/Pages/GlobalConfigurations/BuildInfra/index.ts +7 -0
  336. package/src/Pages/GlobalConfigurations/BuildInfra/services.tsx +167 -0
  337. package/src/Pages/GlobalConfigurations/BuildInfra/types.tsx +339 -0
  338. package/src/Pages/GlobalConfigurations/BuildInfra/utils.tsx +509 -0
  339. package/src/Pages/GlobalConfigurations/index.ts +1 -0
  340. package/src/Pages/index.ts +1 -0
  341. package/src/Shared/Components/APIResponseHandler/APIResponseHandler.tsx +41 -0
  342. package/src/Shared/Components/APIResponseHandler/constants.tsx +5 -0
  343. package/src/Shared/Components/APIResponseHandler/index.ts +2 -0
  344. package/src/Shared/Components/APIResponseHandler/types.tsx +39 -0
  345. package/src/Shared/Components/BulkSelection/BulkSelection.tsx +81 -0
  346. package/src/Shared/Components/BulkSelection/BulkSelectionDropdownItems.tsx +31 -0
  347. package/src/Shared/Components/BulkSelection/UseBulkSelection.tsx +99 -0
  348. package/src/Shared/Components/BulkSelection/constants.tsx +12 -0
  349. package/src/Shared/Components/BulkSelection/index.ts +4 -0
  350. package/src/Shared/Components/BulkSelection/types.tsx +61 -0
  351. package/src/Shared/Components/ReactSelect/index.ts +1 -0
  352. package/src/Shared/Components/ReactSelect/utils.tsx +97 -0
  353. package/src/Shared/Components/index.ts +3 -0
  354. package/src/Shared/Helpers.tsx +29 -0
  355. package/src/Shared/index.ts +3 -0
  356. package/src/Shared/validations.tsx +130 -0
  357. package/src/custom.d.ts +13 -0
  358. package/src/index.ts +3 -0
  359. package/tsconfig.json +40 -0
  360. package/dist/Common/CodeEditor/CodeEditor.d.ts +0 -47
  361. package/dist/Common/Select/Select.d.ts +0 -4
  362. package/dist/Common/Select/types.d.ts +0 -29
  363. package/dist/abap-9f67f57a.js +0 -1314
  364. package/dist/apex-ff62e532.js +0 -315
  365. package/dist/assets/editor.worker-d26000ef.js +0 -9
  366. package/dist/assets/index.css +0 -1
  367. package/dist/assets/json.worker-f23a4654.js +0 -40
  368. package/dist/assets/yaml.worker-35ea3f9a.js +0 -467
  369. package/dist/azcli-31e64a7f.js +0 -74
  370. package/dist/bat-0ffe897e.js +0 -95
  371. package/dist/bicep-3414a2b1.js +0 -108
  372. package/dist/cameligo-df1f3f25.js +0 -168
  373. package/dist/clojure-65b0f010.js +0 -754
  374. package/dist/coffee-437f0fba.js +0 -228
  375. package/dist/cpp-66843dd5.js +0 -390
  376. package/dist/csharp-621d9a49.js +0 -320
  377. package/dist/csp-de0d5244.js +0 -57
  378. package/dist/css-7cd5ed4c.js +0 -186
  379. package/dist/cssMode-6f725354.js +0 -1446
  380. package/dist/cypher-70ad96fe.js +0 -262
  381. package/dist/dart-33ae3739.js +0 -270
  382. package/dist/dockerfile-f2274a50.js +0 -132
  383. package/dist/ecl-3b8294a3.js +0 -454
  384. package/dist/elixir-b9dcc73a.js +0 -489
  385. package/dist/flow9-bdde8316.js +0 -141
  386. package/dist/freemarker2-26aa0f69.js +0 -643
  387. package/dist/fsharp-eac2e449.js +0 -210
  388. package/dist/go-d12ed8d4.js +0 -208
  389. package/dist/graphql-c7356b69.js +0 -141
  390. package/dist/handlebars-91f124cb.js +0 -391
  391. package/dist/hcl-e883a0d4.js +0 -177
  392. package/dist/html-cf94b1ad.js +0 -281
  393. package/dist/htmlMode-6518b083.js +0 -1456
  394. package/dist/index-b0693cd8.js +0 -126104
  395. package/dist/ini-425ab711.js +0 -68
  396. package/dist/java-2bc0fd68.js +0 -221
  397. package/dist/javascript-3837de4b.js +0 -75
  398. package/dist/jsonMode-fce2372e.js +0 -1867
  399. package/dist/julia-1c932615.js +0 -496
  400. package/dist/kotlin-1ab839c8.js +0 -245
  401. package/dist/less-6fe856f5.js +0 -168
  402. package/dist/lexon-4955ac52.js +0 -151
  403. package/dist/liquid-cff2868b.js +0 -238
  404. package/dist/lua-3cca0047.js +0 -157
  405. package/dist/m3-132e9cb6.js +0 -210
  406. package/dist/markdown-ea59a0c1.js +0 -202
  407. package/dist/mips-19811f4b.js +0 -194
  408. package/dist/msdax-69954a10.js +0 -377
  409. package/dist/mysql-82088e5d.js +0 -876
  410. package/dist/objective-c-1976eccc.js +0 -188
  411. package/dist/pascal-8ef177cb.js +0 -245
  412. package/dist/pascaligo-bc517b9e.js +0 -158
  413. package/dist/perl-8b93582c.js +0 -599
  414. package/dist/pgsql-00c11a6d.js +0 -847
  415. package/dist/php-4c8c276f.js +0 -471
  416. package/dist/pla-e9b4ffb1.js +0 -131
  417. package/dist/postiats-2071af8c.js +0 -544
  418. package/dist/powerquery-8e388ceb.js +0 -890
  419. package/dist/powershell-e35db398.js +0 -233
  420. package/dist/protobuf-a24b9176.js +0 -422
  421. package/dist/pug-2c94d9b8.js +0 -393
  422. package/dist/python-1bd3c43a.js +0 -259
  423. package/dist/qsharp-d730d7fe.js +0 -282
  424. package/dist/r-be193556.js +0 -245
  425. package/dist/razor-fff5304e.js +0 -512
  426. package/dist/redis-9690c6ac.js +0 -298
  427. package/dist/redshift-6bdcdeaa.js +0 -806
  428. package/dist/restructuredtext-a08c1d20.js +0 -162
  429. package/dist/ruby-2247692b.js +0 -444
  430. package/dist/rust-1dffb4d5.js +0 -337
  431. package/dist/sb-136598e9.js +0 -110
  432. package/dist/scala-b1100fed.js +0 -353
  433. package/dist/scheme-038c8094.js +0 -114
  434. package/dist/scss-700d1b52.js +0 -244
  435. package/dist/shell-86c16e0f.js +0 -224
  436. package/dist/solidity-c05fdf3c.js +0 -1351
  437. package/dist/sophia-cd645d71.js +0 -190
  438. package/dist/sparql-01d9ec9c.js +0 -193
  439. package/dist/sql-4c33df41.js +0 -818
  440. package/dist/st-52cf1408.js +0 -414
  441. package/dist/swift-13c792ba.js +0 -315
  442. package/dist/systemverilog-0bd8b730.js +0 -556
  443. package/dist/tcl-463d7c75.js +0 -232
  444. package/dist/tsMode-aab34e59.js +0 -811
  445. package/dist/twig-0d98f5ec.js +0 -323
  446. package/dist/typescript-0714514b.js +0 -328
  447. package/dist/vb-3a2b0a51.js +0 -364
  448. package/dist/wgsl-b2ddb3e4.js +0 -420
  449. package/dist/xml-afd10dc5.js +0 -95
  450. package/dist/yaml-8050bbe0.js +0 -184
@@ -0,0 +1,315 @@
1
+ import moment from 'moment';
2
+ import {get, post} from './Api';
3
+ import { ROUTES } from './Constants'
4
+ import { sortCallback } from './Helper';
5
+ import {
6
+ TeamList,
7
+ ResponseType,
8
+ DeploymentNodeType,
9
+ CDModalTab,
10
+ FilterStates,
11
+ CDMaterialServiceEnum,
12
+ CDMaterialServiceQueryParams,
13
+ CDMaterialResponseType,
14
+ CDMaterialsMetaInfo,
15
+ CDMaterialsApprovalInfo,
16
+ CDMaterialFilterQuery,
17
+ } from './Types'
18
+
19
+ export const getTeamListMin = (): Promise<TeamList> => {
20
+ // ignore active field
21
+ const URL = `${ROUTES.PROJECT_LIST_MIN}`;
22
+ return get(URL).then(response => {
23
+ let list = [];
24
+ if (response && response.result && Array.isArray(response.result)) {
25
+ list = response.result;
26
+ }
27
+ list = list.sort((a, b) => {
28
+ return sortCallback('name', a, b);
29
+ });
30
+ return {
31
+ code: response.code,
32
+ status: response.status,
33
+ result: list,
34
+ };
35
+ });
36
+ };
37
+
38
+ interface UserRole extends ResponseType {
39
+ result?: {
40
+ roles: string[]
41
+ superAdmin: boolean
42
+ }
43
+ }
44
+
45
+ const stageMap = {
46
+ PRECD: 'PRE',
47
+ CD: 'DEPLOY',
48
+ POSTCD: 'POST',
49
+ APPROVAL: 'APPROVAL',
50
+ }
51
+
52
+ export const SourceTypeMap = {
53
+ BranchFixed: 'SOURCE_TYPE_BRANCH_FIXED',
54
+ WEBHOOK: 'WEBHOOK',
55
+ BranchRegex: 'SOURCE_TYPE_BRANCH_REGEX',
56
+ }
57
+
58
+ export function getUserRole(appName?: string): Promise<UserRole> {
59
+ return get(`${ROUTES.USER_CHECK_ROLE}${appName ? `?appName=${appName}` : ''}`)
60
+ }
61
+
62
+ export function setImageTags(request, pipelineId: number, artifactId: number){
63
+ return post(`${ROUTES.IMAGE_TAGGING}/${pipelineId}/${artifactId}`,request )
64
+ }
65
+
66
+ const processURL = (url: string, params: object) => {
67
+ const validParams = Object.keys(params).filter((key) => {
68
+ return params[key] != null
69
+ })
70
+
71
+ if (!validParams.length) {
72
+ return url
73
+ }
74
+
75
+ const queryString = validParams
76
+ .map((key) => {
77
+ if (Array.isArray(params[key])) {
78
+ return `${key}=${params[key].join(',')}`
79
+ }
80
+ return `${key}=${params[key]}`
81
+ })
82
+ .join('&')
83
+
84
+ return `${url}?${queryString}`
85
+ }
86
+
87
+ const cdMaterialListModal = (artifacts: any[], offset: number, artifactId?: number, artifactStatus?: string) => {
88
+ if (!artifacts || !artifacts.length) return []
89
+
90
+ const markFirstSelected = offset === 0
91
+ const startIndex = offset
92
+ let isImageMarked = false
93
+
94
+ const materials = artifacts.map((material, index) => {
95
+ let artifactStatusValue = ''
96
+ const filterState = material.filterState ?? FilterStates.ALLOWED
97
+
98
+ if (artifactId && artifactStatus && material.id === artifactId) {
99
+ artifactStatusValue = artifactStatus
100
+ }
101
+
102
+ const selectImage =
103
+ !isImageMarked && markFirstSelected && filterState === FilterStates.ALLOWED ? !material.vulnerable : false
104
+ if (selectImage) {
105
+ isImageMarked = true
106
+ }
107
+
108
+ return {
109
+ index: startIndex + index,
110
+ id: material.id,
111
+ deployedTime: material.deployed_time
112
+ ? moment(material.deployed_time).format('ddd, DD MMM YYYY, hh:mm A')
113
+ : 'Not Deployed',
114
+ deployedBy: material.deployedBy,
115
+ wfrId: material.wfrId,
116
+ tab: CDModalTab.Changes,
117
+ image: extractImage(material.image),
118
+ showChanges: false,
119
+ vulnerabilities: [],
120
+ buildTime: material.build_time || '',
121
+ isSelected: selectImage,
122
+ showSourceInfo: false,
123
+ deployed: material.deployed || false,
124
+ latest: material.latest || false,
125
+ vulnerabilitiesLoading: true,
126
+ scanned: material.scanned,
127
+ scanEnabled: material.scanEnabled,
128
+ vulnerable: material.vulnerable,
129
+ runningOnParentCd: material.runningOnParentCd,
130
+ artifactStatus: artifactStatusValue,
131
+ userApprovalMetadata: material.userApprovalMetadata,
132
+ triggeredBy: material.triggeredBy,
133
+ isVirtualEnvironment: material.isVirtualEnvironment,
134
+ imageComment: material.imageComment,
135
+ imageReleaseTags: material.imageReleaseTags,
136
+ // It is going to be null but required in type so can't remove
137
+ lastExecution: material.lastExecution,
138
+ materialInfo: material.material_info
139
+ ? material.material_info.map((mat) => {
140
+ return {
141
+ modifiedTime: mat.modifiedTime
142
+ ? moment(mat.modifiedTime).format('ddd, DD MMM YYYY, hh:mm A')
143
+ : '',
144
+ commitLink: createGitCommitUrl(mat.url, mat.revision),
145
+ author: mat.author || '',
146
+ message: mat.message || '',
147
+ revision: mat.revision || '',
148
+ tag: mat.tag || '',
149
+ webhookData: mat.webhookData || '',
150
+ url: mat.url || '',
151
+ branch:
152
+ (material.ciConfigureSourceType === SourceTypeMap.WEBHOOK
153
+ ? material.ciConfigureSourceValue
154
+ : mat.branch) || '',
155
+ type: material.ciConfigureSourceType || '',
156
+ }
157
+ })
158
+ : [],
159
+ filterState,
160
+ appliedFiltersTimestamp: material.appliedFiltersTimestamp ?? '',
161
+ appliedFilters: material.appliedFilters ?? [],
162
+ appliedFiltersState: material.appliedFiltersState ?? FilterStates.ALLOWED,
163
+ createdTime: material.createdTime ?? '',
164
+ dataSource: material.data_source ?? '',
165
+ registryType: material.registryType ?? '',
166
+ imagePath: material.image ?? '',
167
+ registryName: material.registryName ?? '',
168
+ }
169
+ })
170
+ return materials
171
+ }
172
+
173
+ const processCDMaterialsApprovalInfo = (enableApproval: boolean, cdMaterialsResult): CDMaterialsApprovalInfo => {
174
+ if (!enableApproval) {
175
+ return {
176
+ approvalUsers: [],
177
+ userApprovalConfig: null,
178
+ requestedUserId: 0,
179
+ }
180
+ }
181
+
182
+ return {
183
+ approvalUsers: cdMaterialsResult.approvalUsers,
184
+ userApprovalConfig: cdMaterialsResult.userApprovalConfig,
185
+ requestedUserId: cdMaterialsResult.requestedUserId,
186
+ }
187
+ }
188
+
189
+ const processCDMaterialsMetaInfo = (cdMaterialsResult): CDMaterialsMetaInfo => {
190
+ if (!cdMaterialsResult) {
191
+ return {
192
+ tagsEditable: false,
193
+ appReleaseTagNames: [],
194
+ hideImageTaggingHardDelete: false,
195
+ resourceFilters: [],
196
+ totalCount: 0,
197
+ canApproverDeploy: cdMaterialsResult.canApproverDeploy ?? false,
198
+ }
199
+ }
200
+
201
+ return {
202
+ appReleaseTagNames: cdMaterialsResult.appReleaseTagNames,
203
+ tagsEditable: cdMaterialsResult.tagsEditable,
204
+ hideImageTaggingHardDelete: cdMaterialsResult.hideImageTaggingHardDelete,
205
+ resourceFilters: cdMaterialsResult.resourceFilters ?? [],
206
+ totalCount: cdMaterialsResult.totalCount ?? 0,
207
+ canApproverDeploy: cdMaterialsResult.canApproverDeploy ?? false,
208
+ }
209
+ }
210
+
211
+ const processCDMaterialServiceResponse = (
212
+ cdMaterialsResult,
213
+ stage: DeploymentNodeType,
214
+ offset: number,
215
+ filter: CDMaterialFilterQuery,
216
+ ): CDMaterialResponseType => {
217
+ if (!cdMaterialsResult) {
218
+ return {
219
+ materials: [],
220
+ ...processCDMaterialsMetaInfo(cdMaterialsResult),
221
+ ...processCDMaterialsApprovalInfo(false, cdMaterialsResult),
222
+ }
223
+ }
224
+
225
+ const materials = cdMaterialListModal(
226
+ cdMaterialsResult.ci_artifacts,
227
+ offset ?? 0,
228
+ cdMaterialsResult.latest_wf_artifact_id,
229
+ cdMaterialsResult.latest_wf_artifact_status,
230
+ )
231
+ const approvalInfo = processCDMaterialsApprovalInfo(
232
+ stage === DeploymentNodeType.CD || stage === DeploymentNodeType.APPROVAL,
233
+ cdMaterialsResult,
234
+ )
235
+ const metaInfo = processCDMaterialsMetaInfo(cdMaterialsResult)
236
+
237
+ // TODO: On update of service would remove from here
238
+ const filteredMaterials =
239
+ filter && filter === CDMaterialFilterQuery.RESOURCE
240
+ ? materials.filter((material) => {
241
+ return material.filterState === FilterStates.ALLOWED
242
+ })
243
+ : materials
244
+
245
+ return {
246
+ materials: filteredMaterials,
247
+ ...approvalInfo,
248
+ ...metaInfo,
249
+ }
250
+ }
251
+
252
+ const getSanitizedQueryParams = (queryParams: CDMaterialServiceQueryParams): CDMaterialServiceQueryParams => {
253
+ const { filter, ...rest } = queryParams
254
+ return rest
255
+ }
256
+
257
+ export const genericCDMaterialsService = (
258
+ serviceType: CDMaterialServiceEnum,
259
+ cdMaterialID: number,
260
+ stage: DeploymentNodeType,
261
+ signal: AbortSignal,
262
+ queryParams: CDMaterialServiceQueryParams = {},
263
+ ): Promise<CDMaterialResponseType> => {
264
+ // TODO: On update of service would remove from here
265
+ const manipulatedParams = getSanitizedQueryParams(queryParams)
266
+
267
+ let URL
268
+ switch (serviceType) {
269
+ case CDMaterialServiceEnum.ROLLBACK:
270
+ URL = processURL(`${ROUTES.CD_MATERIAL_GET}/${cdMaterialID}/material/rollback`, manipulatedParams)
271
+ break
272
+
273
+ // Meant for handling getCDMaterialList
274
+ default:
275
+ URL = processURL(`${ROUTES.CD_MATERIAL_GET}/${cdMaterialID}/material`, { ...manipulatedParams, stage: stageMap[stage] })
276
+ break
277
+ }
278
+
279
+ return get(URL, { signal }).then((response) => {
280
+ return processCDMaterialServiceResponse(response.result, stage, queryParams.offset, queryParams.filter)
281
+ })
282
+ }
283
+
284
+ export function extractImage(image: string): string {
285
+ return image ? image.split(':').pop() : ''
286
+ }
287
+
288
+ export function createGitCommitUrl(url: string, revision: string): string {
289
+ if (!url || !revision) {
290
+ return "NA"
291
+ }
292
+ if (url.indexOf("gitlab") > 0 || url.indexOf("github") > 0 || url.indexOf("azure") > 0) {
293
+ let urlpart = url.split("@")
294
+ if (urlpart.length > 1) {
295
+ return "https://" + urlpart[1].split(".git")[0] + "/commit/" + revision
296
+ }
297
+ if (urlpart.length == 1) {
298
+ return urlpart[0].split(".git")[0] + "/commit/" + revision
299
+ }
300
+ }
301
+ if (url.indexOf("bitbucket") > 0) {
302
+ let urlpart = url.split("@")
303
+ if (urlpart.length > 1) {
304
+ return "https://" + urlpart[1].split(".git")[0] + "/commits/" + revision
305
+ }
306
+ if (urlpart.length == 1) {
307
+ return urlpart[0].split(".git")[0] + "/commits/" + revision
308
+ }
309
+ }
310
+ return "NA"
311
+ }
312
+
313
+ export function fetchChartTemplateVersions() {
314
+ return get(`${ROUTES.DEPLOYMENT_TEMPLATE_LIST}?appId=-1&envId=-1`)
315
+ }
@@ -0,0 +1,255 @@
1
+ import { RegistryTypeDetailType } from "./Types"
2
+
3
+ export const FALLBACK_REQUEST_TIMEOUT = 60000
4
+ export const Host = process.env.REACT_APP_ORCHESTRATOR_ROOT
5
+
6
+ export const DOCUMENTATION_HOME_PAGE = 'https://docs.devtron.ai'
7
+ export const DOCUMENTATION = {
8
+ APP_TAGS: `${DOCUMENTATION_HOME_PAGE}/v/v0.6/usage/applications/create-application#tags`,
9
+ APP_OVERVIEW_TAGS: `${DOCUMENTATION_HOME_PAGE}/v/v0.6/usage/applications/overview#manage-tags`,
10
+ }
11
+
12
+ export const PATTERNS = {
13
+ KUBERNETES_KEY_PREFIX: /^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$/,
14
+ KUBERNETES_KEY_NAME: /^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$/,
15
+ START_END_ALPHANUMERIC: /^([Az09].*[A-Za-z0-9])$|[A-Za-z0-9]$/,
16
+ ALPHANUMERIC_WITH_SPECIAL_CHAR: /^[A-Za-z0-9._-]+$/, // allow alphanumeric,(.) ,(-),(_)
17
+ }
18
+
19
+ export const URLS = {
20
+ LOGIN_SSO: '/login/sso',
21
+ }
22
+
23
+ export const ROUTES = {
24
+ PROJECT_LIST_MIN: 'team/autocomplete',
25
+ USER_CHECK_ROLE: 'user/check/roles',
26
+ IMAGE_TAGGING:'app/image-tagging',
27
+ CD_MATERIAL_GET: 'app/cd-pipeline',
28
+ DEPLOYMENT_TEMPLATE_LIST: 'app/template/list',
29
+ INFRA_CONFIG_PROFILE: 'infra-config/profile',
30
+ }
31
+
32
+ export enum KEY_VALUE {
33
+ KEY = 'key',
34
+ VALUE = 'value',
35
+ }
36
+
37
+ export const DEFAULT_TAG_DATA = {
38
+ key: '',
39
+ value: '',
40
+ propagate: false,
41
+ isInvalidKey: false,
42
+ isInvalidValue: false,
43
+ isSuggested: true,
44
+ }
45
+
46
+ export const TOAST_ACCESS_DENIED = {
47
+ TITLE: 'Access denied',
48
+ SUBTITLE: 'You do not have required access to perform this action',
49
+ }
50
+
51
+ // Empty state messgaes
52
+ export const ERROR_EMPTY_SCREEN = {
53
+ PAGE_NOT_FOUND: 'We could not find this page',
54
+ PAGE_NOT_EXIST: 'This page doesn’t exist or was removed. We suggest you go back to home',
55
+ TAKE_BACK_HOME: 'Take me home',
56
+ ONLY_FOR_SUPERADMIN: 'Information on this page is available only to superadmin users.',
57
+ NOT_AUTHORIZED: 'Not authorized',
58
+ UNAUTHORIZED: 'unauthorized',
59
+ FORBIDDEN: 'forbidden',
60
+ REQUIRED_MANAGER_ACCESS:
61
+ 'Looks like you don’t have access to information on this page. Please contact your manager to request access.',
62
+ }
63
+ export const TOKEN_COOKIE_NAME = 'argocd.token'
64
+ export const TriggerTypeMap = {
65
+ automatic: 'Auto',
66
+ manual: 'Manual',
67
+ }
68
+
69
+ export const BuildStageVariable = {
70
+ PreBuild: 'preBuildStage',
71
+ Build: 'buildStage',
72
+ PostBuild: 'postBuildStage',
73
+ }
74
+
75
+ export const REGISTRY_TYPE_MAP: Record<string, RegistryTypeDetailType> = {
76
+ ecr: {
77
+ value: 'ecr',
78
+ label: 'ECR',
79
+ desiredFormat: '(desired format: repo-name)',
80
+ placeholderText: 'Eg. repo_name',
81
+ gettingStartedLink: 'https://docs.aws.amazon.com/AmazonECR/latest/userguide/get-set-up-for-amazon-ecr.html',
82
+ defaultRegistryURL: '',
83
+ registryURL: {
84
+ label: 'Registry URL',
85
+ defaultValue: '',
86
+ placeholder: 'Eg. xxxxxxxxxxxx.dkr.ecr.region.amazonaws.com',
87
+ },
88
+ id: {
89
+ label: 'Access key ID',
90
+ defaultValue: '',
91
+ placeholder: '',
92
+ },
93
+ password: {
94
+ label: 'Secret access key',
95
+ defaultValue: '',
96
+ placeholder: '',
97
+ },
98
+ },
99
+ 'docker-hub': {
100
+ value: 'docker-hub',
101
+ label: 'Docker',
102
+ desiredFormat: '(desired format: username/repo-name)',
103
+ placeholderText: 'Eg. username/repo_name',
104
+ gettingStartedLink: 'https://docs.docker.com/docker-hub/',
105
+ defaultRegistryURL: 'docker.io',
106
+ registryURL: {
107
+ label: 'Registry URL',
108
+ defaultValue: '',
109
+ placeholder: '',
110
+ },
111
+ id: {
112
+ label: 'Username',
113
+ defaultValue: '',
114
+ placeholder: '',
115
+ },
116
+ password: {
117
+ label: 'Password/Token (Recommended: Token)',
118
+ defaultValue: '',
119
+ placeholder: '',
120
+ },
121
+ },
122
+ acr: {
123
+ value: 'acr',
124
+ label: 'Azure',
125
+ desiredFormat: '(desired format: repo-name)',
126
+ placeholderText: 'Eg. repo_name',
127
+ gettingStartedLink:
128
+ 'https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal',
129
+ defaultRegistryURL: '',
130
+ registryURL: {
131
+ label: 'Registry URL/Login Server',
132
+ defaultValue: '',
133
+ placeholder: 'Eg. xxx.azurecr.io',
134
+ },
135
+ id: {
136
+ label: 'Username/Registry Name',
137
+ defaultValue: '',
138
+ placeholder: '',
139
+ },
140
+ password: {
141
+ label: 'Password',
142
+ defaultValue: '',
143
+ placeholder: '',
144
+ },
145
+ },
146
+ 'artifact-registry': {
147
+ value: 'artifact-registry',
148
+ label: 'Artifact Registry (GCP)',
149
+ desiredFormat: '(desired format: project-id/artifacts-repo/repo-name)',
150
+ placeholderText: 'Eg. project-id/artifacts-repo/repo-name',
151
+ gettingStartedLink: 'https://cloud.google.com/artifact-registry/docs/manage-repos?hl=en_US',
152
+ defaultRegistryURL: '',
153
+ registryURL: {
154
+ label: 'Registry URL',
155
+ defaultValue: '',
156
+ placeholder: 'Eg. region-docker.pkg.dev',
157
+ },
158
+ id: {
159
+ label: 'Username',
160
+ defaultValue: '_json_key',
161
+ placeholder: '',
162
+ },
163
+ password: {
164
+ label: 'Service Account JSON File',
165
+ defaultValue: '',
166
+ placeholder: 'Paste json file content here',
167
+ },
168
+ },
169
+ gcr: {
170
+ value: 'gcr',
171
+ label: 'GCR',
172
+ desiredFormat: '(desired format: project-id/repo-name)',
173
+ placeholderText: 'Eg. project-id/repo_name',
174
+ gettingStartedLink: 'https://cloud.google.com/container-registry/docs/quickstart',
175
+ defaultRegistryURL: 'gcr.io',
176
+ registryURL: {
177
+ label: 'Registry URL',
178
+ defaultValue: 'gcr.io',
179
+ placeholder: '',
180
+ },
181
+ id: {
182
+ label: 'Username',
183
+ defaultValue: '_json_key',
184
+ placeholder: '',
185
+ },
186
+ password: {
187
+ label: 'Service Account JSON File',
188
+ defaultValue: '',
189
+ placeholder: 'Paste json file content here',
190
+ },
191
+ },
192
+ quay: {
193
+ value: 'quay',
194
+ label: 'Quay',
195
+ desiredFormat: '(desired format: username/repo-name)',
196
+ placeholderText: 'Eg. username/repo_name',
197
+ gettingStartedLink: '',
198
+ defaultRegistryURL: 'quay.io',
199
+ registryURL: {
200
+ label: 'Registry URL',
201
+ defaultValue: '',
202
+ placeholder: '',
203
+ },
204
+ id: {
205
+ label: 'Username',
206
+ defaultValue: '',
207
+ placeholder: '',
208
+ },
209
+ password: {
210
+ label: 'Token',
211
+ defaultValue: '',
212
+ placeholder: '',
213
+ },
214
+ },
215
+ other: {
216
+ value: 'other',
217
+ label: 'Other',
218
+ desiredFormat: '',
219
+ placeholderText: '',
220
+ gettingStartedLink: '',
221
+ defaultRegistryURL: '',
222
+ registryURL: {
223
+ label: 'Registry URL',
224
+ defaultValue: '',
225
+ placeholder: '',
226
+ },
227
+ id: {
228
+ label: 'Username',
229
+ defaultValue: '',
230
+ placeholder: '',
231
+ },
232
+ password: {
233
+ label: 'Password/Token',
234
+ defaultValue: '',
235
+ placeholder: '',
236
+ },
237
+ },
238
+ }
239
+
240
+ export const RepositoryAction = {
241
+ CONTAINER: "CONTAINER",
242
+ CHART_PULL: "CHART_PULL",
243
+ CHART_PUSH: "CHART_PUSH"
244
+ }
245
+
246
+ export enum APPROVAL_MODAL_TYPE {
247
+ CONFIG = 'CONFIG',
248
+ DEPLOYMENT = 'DEPLOYMENT',
249
+ }
250
+ export const MAX_Z_INDEX = 2147483647
251
+
252
+ export const SELECTED_APPROVAL_TAB_STATE = {
253
+ APPROVAL: 'approval',
254
+ PENDING: 'pending',
255
+ }
@@ -0,0 +1,135 @@
1
+ import { CustomInputProps } from './Types'
2
+ import { ReactComponent as Info } from '../../Assets/Icon/ic-info-filled.svg'
3
+ import { ReactComponent as ErrorIcon } from '../../Assets/Icon/ic-warning.svg'
4
+
5
+ // TODO: label association with input
6
+ export function CustomInput({
7
+ name,
8
+ value,
9
+ error,
10
+ onChange,
11
+ onFocus = (e) => {},
12
+ label,
13
+ type = 'text',
14
+ disabled = false,
15
+ labelClassName = '',
16
+ placeholder = '',
17
+ tabIndex = 0,
18
+ dataTestid = '',
19
+ isRequiredField = false,
20
+ autoFocus = false,
21
+ rootClassName = '',
22
+ autoComplete = 'off',
23
+ helperText = '',
24
+ handleOnBlur,
25
+ readOnly = false,
26
+ noTrim = false,
27
+ ref,
28
+ onKeyPress,
29
+ defaultValue,
30
+ onKeyDown,
31
+ required,
32
+ additionalErrorInfo,
33
+ inputWrapClassName = '',
34
+ inputProps = {},
35
+ }: CustomInputProps) {
36
+ function handleError(error: any): any[] {
37
+ if (!Array.isArray(error)) {
38
+ return [error]
39
+ }
40
+ return error
41
+ }
42
+
43
+ const onBlur = (event) => {
44
+ //NOTE: This is to prevent the input from being trimmed when the user do not want to trim the input
45
+ if (!noTrim) {
46
+ event.stopPropagation()
47
+ event.target.value = event.target.value?.trim()
48
+ onChange(event)
49
+ }
50
+ if (typeof handleOnBlur === 'function') {
51
+ handleOnBlur(event)
52
+ }
53
+ }
54
+
55
+ const renderFormErrorWithIcon = (error: string) => {
56
+ return (
57
+ <div className="form__error" key={error}>
58
+ <ErrorIcon className="form__icon form__icon--error" />
59
+ {error}
60
+ {error && typeof additionalErrorInfo === 'function' && additionalErrorInfo()}
61
+ </div>
62
+ )
63
+ }
64
+
65
+ const getInputError = () => {
66
+ if (!error?.length) {
67
+ return null
68
+ } else {
69
+ if (typeof error === 'object') {
70
+ return handleError(error).map((err: string) => renderFormErrorWithIcon(err))
71
+ }
72
+ return renderFormErrorWithIcon(error)
73
+ }
74
+ }
75
+
76
+ const renderInputLabelConditionally = () => {
77
+ if (typeof label === 'string') {
78
+ return <span className={`${isRequiredField ? 'dc__required-field' : ''}`}>{label}</span>
79
+ } else {
80
+ return label
81
+ }
82
+ }
83
+
84
+ const renderInputLabel = () => {
85
+ if (!label) {
86
+ return null
87
+ } else {
88
+ return (
89
+ <label className={`form__label ${labelClassName}`} data-testid={`label-${dataTestid}`}>
90
+ {renderInputLabelConditionally()}
91
+ </label>
92
+ )
93
+ }
94
+ }
95
+
96
+ return (
97
+ <div className={`flex column left top ${inputWrapClassName}`}>
98
+ {renderInputLabel()}
99
+ <input
100
+ data-testid={dataTestid}
101
+ type={type}
102
+ name={name}
103
+ autoComplete={autoComplete}
104
+ className={`form__input ${rootClassName}`}
105
+ onChange={(e) => {
106
+ e.persist()
107
+ onChange(e)
108
+ }}
109
+ onBlur={onBlur}
110
+ onFocus={onFocus}
111
+ placeholder={placeholder}
112
+ value={value}
113
+ disabled={disabled}
114
+ tabIndex={tabIndex}
115
+ autoFocus={autoFocus}
116
+ readOnly={readOnly}
117
+ ref={ref}
118
+ onKeyPress={onKeyPress}
119
+ defaultValue={defaultValue}
120
+ onKeyDown={onKeyDown}
121
+ required={required}
122
+ // Will be passing other props like other data attributes etc from inputProps
123
+ {...inputProps}
124
+ />
125
+
126
+ {getInputError()}
127
+ {helperText && (
128
+ <div className="form__text-field-info">
129
+ <Info className="form__icon form__icon--info" />
130
+ <p className="sentence-case">{helperText}</p>
131
+ </div>
132
+ )}
133
+ </div>
134
+ )
135
+ }