@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,576 @@
1
+ import * as Sentry from '@sentry/browser'
2
+ import moment from 'moment'
3
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
4
+ import { useLocation } from 'react-router-dom'
5
+ import { toast } from 'react-toastify'
6
+ import { ERROR_EMPTY_SCREEN, TOKEN_COOKIE_NAME } from './Constants'
7
+ import { ServerErrors } from './ServerError'
8
+ import { toastAccessDenied } from './ToastBody'
9
+ import { AsyncOptions, AsyncState, UseSearchString } from './Types'
10
+ import { JSONPath } from 'jsonpath-plus'
11
+ import * as jsonpatch from 'fast-json-patch'
12
+
13
+ toast.configure({
14
+ autoClose: 3000,
15
+ hideProgressBar: true,
16
+ pauseOnHover: true,
17
+ pauseOnFocusLoss: true,
18
+ closeOnClick: false,
19
+ newestOnTop: true,
20
+ toastClassName: 'devtron-toast',
21
+ bodyClassName: 'devtron-toast__body',
22
+ })
23
+
24
+ export function showError(serverError, showToastOnUnknownError = true, hideAccessError = false) {
25
+ if (serverError instanceof ServerErrors && Array.isArray(serverError.errors)) {
26
+ serverError.errors.map(({ userMessage, internalMessage }) => {
27
+ if (
28
+ serverError.code === 403 &&
29
+ (userMessage === ERROR_EMPTY_SCREEN.UNAUTHORIZED || userMessage === ERROR_EMPTY_SCREEN.FORBIDDEN)
30
+ ) {
31
+ if (!hideAccessError) {
32
+ toastAccessDenied()
33
+ }
34
+ } else {
35
+ toast.error(userMessage || internalMessage)
36
+ }
37
+ })
38
+ } else {
39
+ if (serverError.code !== 403 && serverError.code !== 408) {
40
+ Sentry.captureException(serverError)
41
+ }
42
+
43
+ if (showToastOnUnknownError) {
44
+ if (serverError.message) {
45
+ toast.error(serverError.message)
46
+ } else {
47
+ toast.error('Some Error Occurred')
48
+ }
49
+ }
50
+ }
51
+ }
52
+
53
+ interface ConditionalWrapper<T> {
54
+ condition: boolean
55
+ wrap: (children: T) => T
56
+ children: T
57
+ }
58
+ export const ConditionalWrap: React.FC<ConditionalWrapper<any>> = ({ condition, wrap, children }) =>
59
+ condition ? wrap(children) : <>{children}</>
60
+
61
+ export function sortCallback(key: string, a: any, b: any, isCaseSensitive?: boolean) {
62
+ let x = a[key]
63
+ let y = b[key]
64
+ if (isCaseSensitive) {
65
+ x = x.toLowerCase()
66
+ y = y.toLowerCase()
67
+ }
68
+ if (x < y) {
69
+ return -1
70
+ }
71
+ if (x > y) {
72
+ return 1
73
+ }
74
+ return 0
75
+ }
76
+
77
+ export const stopPropagation = (event): void => {
78
+ event.stopPropagation()
79
+ }
80
+
81
+ export function useThrottledEffect(callback, delay, deps = []) {
82
+ //function will be executed only once in a given time interval.
83
+ const lastRan = useRef(Date.now())
84
+
85
+ useEffect(() => {
86
+ const handler = setTimeout(function () {
87
+ if (Date.now() - lastRan.current >= delay) {
88
+ callback()
89
+ lastRan.current = Date.now()
90
+ }
91
+ }, delay - (Date.now() - lastRan.current))
92
+
93
+ return () => {
94
+ clearTimeout(handler)
95
+ }
96
+ }, [delay, ...deps])
97
+ }
98
+
99
+ const colors = [
100
+ '#FFB900',
101
+ '#D83B01',
102
+ '#B50E0E',
103
+ '#E81123',
104
+ '#B4009E',
105
+ '#5C2D91',
106
+ '#0078D7',
107
+ '#00B4FF',
108
+ '#008272',
109
+ '#107C10',
110
+ ]
111
+
112
+ export function getRandomColor(email: string): string {
113
+ let sum = 0
114
+ for (let i = 0; i < email.length; i++) {
115
+ sum += email.charCodeAt(i)
116
+ }
117
+ return colors[sum % colors.length]
118
+ }
119
+
120
+ export const getAlphabetIcon = (str: string, rootClassName: string = "") => {
121
+ if (!str) return null
122
+ return (
123
+ <span
124
+ className={`${rootClassName} alphabet-icon__initial fs-13 icon-dim-20 flex cn-0 mr-8`}
125
+ style={{ backgroundColor: getRandomColor(str) }}
126
+ >
127
+ {str[0]}
128
+ </span>
129
+ )
130
+ }
131
+
132
+ export const getEmptyArrayOfLength = (length: number) => {
133
+ return Array.from({ length })
134
+ }
135
+
136
+ export function noop(...args): any {}
137
+
138
+ export function not(e) {
139
+ return !e
140
+ }
141
+
142
+ export function useEffectAfterMount(cb, dependencies) {
143
+ const justMounted = React.useRef(true)
144
+ React.useEffect(() => {
145
+ if (!justMounted.current) {
146
+ return cb()
147
+ }
148
+ justMounted.current = false
149
+ }, dependencies)
150
+ }
151
+
152
+ export function getCookie(sKey) {
153
+ if (!sKey) {
154
+ return null
155
+ }
156
+ return (
157
+ document.cookie.replace(
158
+ new RegExp('(?:(?:^|.*;)\\s*' + sKey.replace(/[\-\.\+\*]/g, '\\$&') + '\\s*\\=\\s*([^;]*).*$)|^.*$'),
159
+ '$1',
160
+ ) || null
161
+ )
162
+ }
163
+
164
+ export function getLoginInfo() {
165
+ const argocdToken = getCookie(TOKEN_COOKIE_NAME)
166
+ if (argocdToken) {
167
+ const jwts = argocdToken.split('.')
168
+ try {
169
+ return JSON.parse(atob(jwts[1]))
170
+ } catch (err) {
171
+ console.error('error in setting user ', err)
172
+ return null
173
+ }
174
+ }
175
+ }
176
+
177
+ export function useForm(stateSchema, validationSchema = {}, callback) {
178
+ const [state, setState] = useState(stateSchema)
179
+ const [disable, setDisable] = useState(true)
180
+ const [isDirty, setIsDirty] = useState(false)
181
+
182
+ // Disable button in initial render.
183
+ useEffect(() => {
184
+ setDisable(true)
185
+ }, [])
186
+
187
+ // For every changed in our state this will be fired
188
+ // To be able to disable the button
189
+ useEffect(() => {
190
+ if (isDirty) {
191
+ setDisable(validateState(state))
192
+ }
193
+ }, [state, isDirty])
194
+
195
+ // Used to disable submit button if there's an error in state
196
+ // or the required field in state has no value.
197
+ // Wrapped in useCallback to cached the function to avoid intensive memory leaked
198
+ // in every re-render in component
199
+ const validateState = useCallback(
200
+ (state) => {
201
+ //check errors in all fields
202
+ const hasErrorInState = Object.keys(validationSchema).some((key) => {
203
+ const isInputFieldRequired = validationSchema[key].required
204
+ const stateValue = state[key].value // state value
205
+ const stateError = state[key].error // state error
206
+ return (isInputFieldRequired && !stateValue) || stateError
207
+ })
208
+ return hasErrorInState
209
+ },
210
+ [state, validationSchema],
211
+ )
212
+
213
+ function validateField(name, value): string | string[] {
214
+ if (validationSchema[name].required) {
215
+ if (!value) {
216
+ return 'This is a required field.'
217
+ }
218
+ }
219
+
220
+ function _validateSingleValidator(validator, value) {
221
+ if (value && !validator.regex.test(value)) {
222
+ return false
223
+ }
224
+ return true
225
+ }
226
+
227
+ // single validator
228
+ let _validator = validationSchema[name].validator
229
+ if (_validator && typeof _validator === 'object') {
230
+ if (!_validateSingleValidator(_validator, value)) {
231
+ return _validator.error
232
+ }
233
+ }
234
+
235
+ // multiple validators
236
+ let _validators = validationSchema[name].validators
237
+ if (_validators && typeof _validators === 'object' && Array.isArray(_validators)) {
238
+ let errors = []
239
+ _validators.forEach((_validator) => {
240
+ if (!_validateSingleValidator(_validator, value)) {
241
+ errors.push(_validator.error)
242
+ }
243
+ })
244
+ if (errors.length > 0) {
245
+ return errors
246
+ }
247
+ }
248
+
249
+ return ''
250
+ }
251
+
252
+ const handleOnChange = useCallback(
253
+ (event) => {
254
+ setIsDirty(true)
255
+
256
+ const { name, value } = event.target
257
+ let error = validateField(name, value)
258
+ setState((prevState) => ({
259
+ ...prevState,
260
+ [name]: { value, error },
261
+ }))
262
+ },
263
+ [validationSchema],
264
+ )
265
+
266
+ const handleOnSubmit = (event) => {
267
+ event.preventDefault()
268
+ const newState = Object.keys(validationSchema).reduce((agg, curr) => {
269
+ agg[curr] = { ...state[curr], error: validateField(curr, state[curr].value) }
270
+ return agg
271
+ }, state)
272
+ if (!validateState(newState)) {
273
+ callback(state)
274
+ } else {
275
+ setState({ ...newState })
276
+ }
277
+ }
278
+ return { state, disable, handleOnChange, handleOnSubmit }
279
+ }
280
+
281
+ export function handleUTCTime(ts: string, isRelativeTime = false) {
282
+ let timestamp = ''
283
+ try {
284
+ if (ts && ts.length) {
285
+ let date = moment(ts)
286
+ if (isRelativeTime) timestamp = date.fromNow()
287
+ else timestamp = date.format('ddd DD MMM YYYY HH:mm:ss')
288
+ }
289
+ } catch (error) {
290
+ console.error('Error Parsing Date:', ts)
291
+ }
292
+ return timestamp
293
+ }
294
+
295
+ export function useSearchString(): UseSearchString {
296
+ const location = useLocation()
297
+ const queryParams: URLSearchParams = useMemo(() => {
298
+ const queryParams = new URLSearchParams(location.search)
299
+ return queryParams
300
+ }, [location])
301
+
302
+ // const searchParams={}
303
+ // for (let [key, value] of queryParams.entries()){
304
+ // searchParams[key]=value
305
+ // }
306
+ const searchParams = Array.from(queryParams.entries()).reduce((agg, curr, idx) => {
307
+ agg[curr[0]] = curr[1]
308
+ return agg
309
+ }, {})
310
+
311
+ return { queryParams, searchParams }
312
+ }
313
+
314
+ export const closeOnEscKeyPressed = (e: any, actionClose: () => void) => {
315
+ if (e.keyCode === 27 || e.key === 'Escape') {
316
+ actionClose()
317
+ }
318
+ }
319
+
320
+ const unsecureCopyToClipboard = (str, callback = noop) => {
321
+ const listener = function (ev) {
322
+ ev.preventDefault()
323
+ ev.clipboardData.setData('text/plain', str)
324
+ }
325
+ document.addEventListener('copy', listener)
326
+ document.execCommand('copy')
327
+ document.removeEventListener('copy', listener)
328
+ callback()
329
+ }
330
+
331
+ /**
332
+ * It will copy the passed content to clipboard and invoke the callback function, in case of error it will show the toast message.
333
+ * On HTTP system clipboard is not supported, so it will use the unsecureCopyToClipboard function
334
+ * @param str
335
+ * @param callback
336
+ */
337
+ export function copyToClipboard(str, callback = noop) {
338
+ if (!str) {
339
+ return
340
+ }
341
+
342
+ if (window.isSecureContext && navigator.clipboard) {
343
+ navigator.clipboard
344
+ .writeText(str)
345
+ .then(() => {
346
+ callback()
347
+ })
348
+ .catch(() => {
349
+ toast.error('Failed to copy to clipboard')
350
+ })
351
+ } else {
352
+ unsecureCopyToClipboard(str, callback)
353
+ }
354
+ }
355
+
356
+ export function useAsync<T>(
357
+ func: (...rest) => Promise<T>,
358
+ dependencyArray: any[] = [],
359
+ shouldRun = true,
360
+ options: AsyncOptions = { resetOnChange: true },
361
+ ): [boolean, T, any | null, () => void, React.Dispatch<any>, any[]] {
362
+ const [state, setState] = useState<AsyncState<T>>({
363
+ loading: true,
364
+ result: null,
365
+ error: null,
366
+ dependencies: dependencyArray,
367
+ })
368
+ const mounted = useRef(true)
369
+ const dependencies: any[] = useMemo(() => {
370
+ return [...dependencyArray, shouldRun]
371
+ }, [...dependencyArray, shouldRun])
372
+
373
+ const reload = () => {
374
+ async function call() {
375
+ try {
376
+ setState((state) => ({
377
+ ...state,
378
+ loading: true,
379
+ }))
380
+ const result = await func()
381
+ if (mounted.current)
382
+ setState((state) => ({
383
+ ...state,
384
+ result,
385
+ error: null,
386
+ loading: false,
387
+ }))
388
+ } catch (error: any) {
389
+ if (mounted.current)
390
+ setState((state) => ({
391
+ ...state,
392
+ error,
393
+ loading: false,
394
+ }))
395
+ }
396
+ }
397
+ call()
398
+ }
399
+
400
+ useEffect(() => {
401
+ if (!shouldRun) {
402
+ setState((state) => ({ ...state, loading: false }))
403
+ return
404
+ }
405
+ setState((state) => ({ ...state, dependencies: dependencyArray }))
406
+ reload()
407
+ return () =>
408
+ setState((state) => ({
409
+ ...state,
410
+ loading: false,
411
+ error: null,
412
+ ...(options.resetOnChange ? { result: null } : {}),
413
+ }))
414
+ }, dependencies)
415
+
416
+ useEffect(() => {
417
+ mounted.current = true
418
+ return () => {
419
+ mounted.current = false
420
+ }
421
+ }, [])
422
+
423
+ const setResult = (param) => {
424
+ if (typeof param === 'function') {
425
+ setState((state) => ({ ...state, result: param(state.result) }))
426
+ } else {
427
+ setState((state) => ({ ...state, result: param }))
428
+ }
429
+ }
430
+
431
+ return [state.loading, state.result, state.error, reload, setResult, state.dependencies]
432
+ }
433
+
434
+ export const processDeployedTime = (lastDeployed, isArgoInstalled) => {
435
+ if (lastDeployed) {
436
+ return handleUTCTime(lastDeployed, true)
437
+ } else {
438
+ return isArgoInstalled ? '' : 'Not deployed'
439
+ }
440
+ }
441
+
442
+ /**
443
+ * Appends search parameters to the url as a query string
444
+ *
445
+ * @param url URL to which the search params needs to be added
446
+ * @param params Object for the search parameters
447
+ */
448
+ export const getUrlWithSearchParams = (url: string, params: Record<string | number, any>) => {
449
+ const searchParams = new URLSearchParams()
450
+ Object.keys(params).forEach((key) => {
451
+ if (params[key]) {
452
+ searchParams.append(key, params[key])
453
+ }
454
+ })
455
+ const queryString = searchParams.toString()
456
+ return url + (queryString ? `?${queryString}` : '')
457
+ }
458
+
459
+ /**
460
+ * Custom exception logger function for logging errors to sentry
461
+ */
462
+ export const logExceptionToSentry = Sentry.captureException.bind(window)
463
+
464
+ export const customStyles = {
465
+ control: (base, state) => ({
466
+ ...base,
467
+ minHeight: '32px',
468
+ boxShadow: 'none',
469
+ border: 'none',
470
+ cursor: 'pointer',
471
+ background: 'transparent',
472
+ }),
473
+ indicatorSeparator: (base, state) => ({
474
+ ...base,
475
+ width: 0,
476
+ }),
477
+ valueContainer: (base, state) => ({
478
+ ...base,
479
+ padding: '0',
480
+ fontSize: '13px',
481
+ fontWeight: '600',
482
+ }),
483
+ dropdownIndicator: (base, state) => ({
484
+ ...base,
485
+ color: 'var(--N400)',
486
+ padding: '0 8px',
487
+ transition: 'all .2s ease',
488
+ transform: state.selectProps.menuIsOpen ? 'rotate(180deg)' : 'rotate(0deg)',
489
+ }),
490
+ }
491
+
492
+ export const getFilteredChartVersions = (charts, selectedChartType) => {
493
+ // Filter chart versions based on selected chart type
494
+ return charts
495
+ .filter((item) => item?.chartType === selectedChartType.value)
496
+ .map((item) => ({
497
+ value: item?.chartVersion,
498
+ label: item?.chartVersion,
499
+ chartRefId: item.chartRefId,
500
+ }))
501
+ }
502
+ function removeEmptyObjectKeysAndNullValues(obj) {
503
+ // It recursively removes empty object keys and array values that are null
504
+ for (let key in obj) {
505
+ if (Array.isArray(obj[key])) {
506
+ if (obj[key].length === 0) continue
507
+ obj[key] = obj[key].filter((item) => item !== null)
508
+ // Check if the array is empty
509
+ if (obj[key].length === 0) {
510
+ delete obj[key] // Delete the key if the array is empty
511
+ }
512
+ } else if (obj[key] && typeof obj[key] === 'object') {
513
+ if (removeEmptyObjectKeysAndNullValues(obj[key])) {
514
+ delete obj[key]
515
+ }
516
+ } else if (obj[key] === undefined) {
517
+ delete obj[key]
518
+ }
519
+ }
520
+ return Object.keys(obj).length === 0
521
+ }
522
+
523
+ export function getUnlockedJSON(json, jsonPathArray) {
524
+ const jsonCopy = JSON.parse(JSON.stringify(json))
525
+ let patches = jsonPathArray.flatMap((jsonPath) => {
526
+ const pathsToRemove = JSONPath({ path: jsonPath, json: jsonCopy, resultType: 'all' })
527
+ return pathsToRemove.map((result) =>
528
+ Array.isArray(result.parent)
529
+ ? { op: 'replace', path: result.pointer, value: null }
530
+ : { op: 'remove', path: result.pointer },
531
+ )
532
+ })
533
+ let newDocument = jsonpatch.applyPatch(jsonCopy, patches).newDocument
534
+
535
+ removeEmptyObjectKeysAndNullValues(newDocument)
536
+ return newDocument
537
+ }
538
+
539
+ export function getLockedJSON(json, jsonPathArray: string[]) {
540
+ const jsonCopy = JSON.parse(JSON.stringify(json))
541
+ let resultJson = {}
542
+ jsonPathArray.forEach((jsonPath) => {
543
+ const elements = JSONPath({ path: jsonPath, json: jsonCopy, resultType: 'all' })
544
+ elements.forEach((element) => {
545
+ const pathArray: string[] = JSONPath.toPathArray(element.path)
546
+ const lastPath = pathArray.pop()
547
+ let current = resultJson
548
+ for (let i = 0; i < pathArray.length; i++) {
549
+ let key = isNaN(Number(pathArray[i])) ? pathArray[i] : parseInt(pathArray[i])
550
+ if (!current[key]) {
551
+ current[key] = isNaN(Number(pathArray[i + 1]??lastPath)) ? {} : []
552
+ }
553
+ current = current[key]
554
+ }
555
+ let key = isNaN(Number(lastPath)) ? lastPath : parseInt(lastPath)
556
+ current[key] = element.value
557
+ })
558
+ })
559
+ return resultJson['$']
560
+ }
561
+
562
+ /**
563
+ * Returns a debounced variant of the function
564
+ */
565
+ export const debounce = (func, timeout = 500) => {
566
+ let timer
567
+
568
+ return function (this, ...args) {
569
+ const context = this
570
+ if (timer) clearTimeout(timer)
571
+ timer = setTimeout(() => {
572
+ timer = null
573
+ func.apply(context, args)
574
+ }, timeout)
575
+ }
576
+ }
@@ -0,0 +1,15 @@
1
+ import React, { useEffect } from 'react'
2
+
3
+ export const useClickOutside = (ref: any, callback: () => void) => {
4
+ useEffect(() => {
5
+ const handleClickOutside = (e: any) => {
6
+ if (ref?.current && !ref.current.contains(e.target)) {
7
+ callback()
8
+ }
9
+ }
10
+ document.addEventListener('click', handleClickOutside)
11
+ return () => {
12
+ document.removeEventListener('click', handleClickOutside)
13
+ }
14
+ }, [ref, callback])
15
+ }
@@ -0,0 +1,24 @@
1
+ import React, { useEffect, useState } from 'react'
2
+ import { getUserRole } from '../../Common.service'
3
+ import { useSuperAdminType } from './types'
4
+ import { showError } from '../../Helper'
5
+
6
+ /**
7
+ * @description It will return isSuperAdmin and would be set to false by default, might need few optimizations like dep, etc
8
+ * @returns {useSuperAdminType} isSuperAdmin
9
+ */
10
+ export const useSuperAdmin = (): useSuperAdminType => {
11
+ const [isSuperAdmin, setSuperAdmin] = useState<boolean>(false)
12
+
13
+ useEffect(() => {
14
+ getUserRole()
15
+ .then((response) => {
16
+ setSuperAdmin(response.result.superAdmin ?? false)
17
+ })
18
+ .catch((error) => {
19
+ showError(error)
20
+ })
21
+ }, [])
22
+
23
+ return { isSuperAdmin }
24
+ }
@@ -0,0 +1,3 @@
1
+ export interface useSuperAdminType {
2
+ isSuperAdmin: boolean
3
+ }
@@ -0,0 +1,31 @@
1
+ import { useState, useEffect } from 'react'
2
+
3
+ let timeout
4
+
5
+ const getSize = () => {
6
+ return {
7
+ width: window.innerWidth,
8
+ height: window.innerHeight,
9
+ }
10
+ }
11
+
12
+ export const useWindowSize = () => {
13
+ const [windowSize, setWindowSize] = useState(getSize)
14
+
15
+ function handleResize(e) {
16
+ if (timeout) {
17
+ window.cancelAnimationFrame(timeout)
18
+ }
19
+
20
+ timeout = window.requestAnimationFrame(function () {
21
+ setWindowSize(getSize())
22
+ })
23
+ }
24
+
25
+ useEffect(() => {
26
+ window.addEventListener('resize', handleResize, false)
27
+ return () => window.removeEventListener('resize', handleResize, false)
28
+ }, [])
29
+
30
+ return windowSize
31
+ }
@@ -0,0 +1,3 @@
1
+ export { useSuperAdmin } from './UseSuperAdmin/UseSuperAdmin'
2
+ export { useClickOutside } from './UseClickOutside/UseClickOutside'
3
+ export { useWindowSize } from './UseWindowSize/UseWindowSize'
@@ -0,0 +1,44 @@
1
+ export interface ReleaseTag {
2
+ id: number
3
+ tagName: string
4
+ appId: number
5
+ deleted: boolean
6
+ artifactId: number
7
+ duplicateTag: boolean
8
+ }
9
+
10
+ export interface ImageComment {
11
+ id: number
12
+ comment: string
13
+ artifactId: number
14
+ }
15
+
16
+
17
+ export interface ImageTaggingContainerType {
18
+ ciPipelineId?: number
19
+ artifactId?: number
20
+ imageComment?: ImageComment
21
+ imageReleaseTags?: ReleaseTag[]
22
+ updateCurrentAppMaterial? : (matId:number, releaseTags?:ReleaseTag[], imageComment?:ImageComment) => void
23
+ appReleaseTagNames?: string[]
24
+ tagsEditable?: boolean
25
+ forceReInit?: boolean
26
+ setAppReleaseTagNames?: (appReleaseTags: string[]) => void
27
+ setTagsEditable?: (tagsEditable: boolean) => void
28
+ toggleCardMode?: (id: number) => void
29
+ hideHardDelete?: boolean
30
+ isSuperAdmin?: boolean
31
+ }
32
+
33
+ export interface ImageButtonType {
34
+ text: string
35
+ isSoftDeleted: boolean
36
+ isEditing: boolean
37
+ onSoftDeleteClick?: any
38
+ onHardDeleteClick?: any
39
+ tagId: number
40
+ softDeleteTags: any
41
+ isSuperAdmin: any
42
+ duplicateTag?: boolean
43
+ hideHardDelete?: boolean
44
+ }