@devtron-labs/devtron-fe-common-lib 0.0.52-beta-1 → 0.0.52-beta-3

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 (519) hide show
  1. package/.eslintignore +79 -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 +67 -73
  30. package/dist/Common/CustomInput/CustomInput.d.ts +3 -3
  31. package/dist/Common/CustomInput/Types.d.ts +30 -29
  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 +15 -15
  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 +28 -24
  62. package/dist/Common/EmptyState/GenericEmptyState.d.ts +5 -4
  63. package/dist/Common/Error.d.ts +18 -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 +60 -61
  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/Policy.Types.d.ts +56 -56
  82. package/dist/Common/PopupMenu.d.ts +8 -8
  83. package/dist/Common/Progressing.d.ts +4 -4
  84. package/dist/Common/RJSF/Form.d.ts +4 -2
  85. package/dist/Common/RJSF/common/FieldRow.d.ts +6 -5
  86. package/dist/Common/RJSF/common/types.d.ts +8 -8
  87. package/dist/Common/RJSF/config.d.ts +4 -4
  88. package/dist/Common/RJSF/constants.d.ts +7 -7
  89. package/dist/Common/RJSF/index.d.ts +3 -3
  90. package/dist/Common/RJSF/templates/ArrayFieldItemTemplate.d.ts +3 -2
  91. package/dist/Common/RJSF/templates/ArrayFieldTemplate.d.ts +3 -2
  92. package/dist/Common/RJSF/templates/BaseInput.d.ts +3 -2
  93. package/dist/Common/RJSF/templates/ButtonTemplates/AddButton.d.ts +3 -2
  94. package/dist/Common/RJSF/templates/ButtonTemplates/RemoveButton.d.ts +3 -2
  95. package/dist/Common/RJSF/templates/ButtonTemplates/SubmitButton.d.ts +3 -2
  96. package/dist/Common/RJSF/templates/ButtonTemplates/index.d.ts +3 -3
  97. package/dist/Common/RJSF/templates/Description.d.ts +3 -2
  98. package/dist/Common/RJSF/templates/Field.d.ts +3 -2
  99. package/dist/Common/RJSF/templates/FieldErrorTemplate.d.ts +3 -2
  100. package/dist/Common/RJSF/templates/ObjectFieldTemplate.d.ts +3 -2
  101. package/dist/Common/RJSF/templates/TitleField.d.ts +3 -2
  102. package/dist/Common/RJSF/templates/WrapIfAdditionalTemplate.d.ts +3 -2
  103. package/dist/Common/RJSF/templates/index.d.ts +10 -10
  104. package/dist/Common/RJSF/types.d.ts +3 -3
  105. package/dist/Common/RJSF/utils.d.ts +26 -25
  106. package/dist/Common/RJSF/widgets/Checkbox.d.ts +3 -2
  107. package/dist/Common/RJSF/widgets/Select.d.ts +3 -2
  108. package/dist/Common/RJSF/widgets/index.d.ts +2 -2
  109. package/dist/Common/RadioGroup/RadioGroup.d.ts +17 -16
  110. package/dist/Common/RadioGroup.d.ts +8 -8
  111. package/dist/Common/Reload.d.ts +3 -3
  112. package/dist/Common/ResizableTextarea.d.ts +3 -3
  113. package/dist/Common/Security/ScanVulnerabilitiesTable.d.ts +4 -3
  114. package/dist/Common/ServerError.d.ts +15 -15
  115. package/dist/Common/TippyCustomized.d.ts +4 -3
  116. package/dist/Common/ToastBody.d.ts +23 -23
  117. package/dist/Common/Toggle/Toggle.d.ts +14 -12
  118. package/dist/Common/Types.d.ts +677 -677
  119. package/dist/Common/index.d.ts +48 -50
  120. package/dist/index.d.ts +1 -1
  121. package/dist/index.js +28560 -218
  122. package/package.json +26 -31
  123. package/rollup.config.js +31 -0
  124. package/src/Assets/Icon/ic-add.svg +3 -0
  125. package/src/Assets/Icon/ic-appstatus-cancelled.svg +6 -0
  126. package/src/Assets/Icon/ic-arrow-counter-clockwise.svg +5 -0
  127. package/src/Assets/Icon/ic-check.svg +5 -0
  128. package/src/Assets/Icon/ic-chevron-down.svg +5 -0
  129. package/src/Assets/Icon/ic-copy.svg +3 -0
  130. package/src/Assets/Icon/ic-cross.svg +3 -0
  131. package/src/Assets/Icon/ic-drag.svg +8 -0
  132. package/src/Assets/Icon/ic-enter.svg +3 -0
  133. package/src/Assets/Icon/ic-error-cross.svg +8 -0
  134. package/src/Assets/Icon/ic-error-exclamation.svg +6 -0
  135. package/src/Assets/Icon/ic-error-medium.svg +6 -0
  136. package/src/Assets/Icon/ic-help-outline.svg +3 -0
  137. package/src/Assets/Icon/ic-help.svg +3 -0
  138. package/src/Assets/Icon/ic-info-filled.svg +7 -0
  139. package/src/Assets/Icon/ic-info-outlined.svg +13 -0
  140. package/src/Assets/Icon/ic-minus.svg +3 -0
  141. package/src/Assets/Icon/ic-pencil.svg +3 -0
  142. package/src/Assets/Icon/ic-progressing.svg +6 -0
  143. package/src/Assets/Icon/ic-rotate-devtron.svg +103 -0
  144. package/src/Assets/Icon/ic-warning.svg +7 -0
  145. package/src/Assets/Icon/inject-tag.svg +5 -0
  146. package/src/Assets/Img/app-not-deployed.png +0 -0
  147. package/src/Assets/Img/delete-medium.svg +15 -0
  148. package/src/Assets/Img/ic-empty-error@2x.png +0 -0
  149. package/src/Assets/Img/ic-loading-failure.png +0 -0
  150. package/src/Assets/Img/ic-not-authorized.svg +62 -0
  151. package/src/Common/AddCDButton/AddCDButton.tsx +67 -0
  152. package/src/Common/AddCDButton/index.ts +2 -0
  153. package/src/Common/AddCDButton/types.ts +38 -0
  154. package/src/Common/AddCDButton/utils.tsx +35 -0
  155. package/src/Common/Api.ts +225 -0
  156. package/src/Common/AppStatus/AppStatus.tsx +64 -0
  157. package/src/Common/AppStatus/constants.ts +53 -0
  158. package/src/Common/AppStatus/index.ts +1 -0
  159. package/src/Common/AppStatus/types.ts +12 -0
  160. package/src/Common/AppStatus/utils.ts +15 -0
  161. package/src/Common/BreadCrumb/BreadCrumb.tsx +109 -0
  162. package/src/Common/BreadCrumb/BreadcrumbStore.tsx +25 -0
  163. package/src/Common/BreadCrumb/Types.ts +29 -0
  164. package/src/Common/CIPipeline.Types.ts +277 -0
  165. package/src/Common/ChartVersionAndTypeSelector.tsx +78 -0
  166. package/src/Common/Checkbox.tsx +34 -0
  167. package/src/Common/ClipboardButton/ClipboardButton.tsx +61 -0
  168. package/src/Common/ClipboardButton/__tests__/ClipboardButton.test.tsx +42 -0
  169. package/src/Common/ClipboardButton/types.ts +7 -0
  170. package/src/Common/Common.service.ts +310 -0
  171. package/src/Common/Constants.ts +245 -0
  172. package/src/Common/CustomInput/CustomInput.tsx +125 -0
  173. package/src/Common/CustomInput/Types.ts +31 -0
  174. package/src/Common/CustomInput/index.ts +2 -0
  175. package/src/Common/CustomTagSelector/PropagateTagInfo.tsx +43 -0
  176. package/src/Common/CustomTagSelector/ResizableTagTextArea.tsx +84 -0
  177. package/src/Common/CustomTagSelector/TagDetails.tsx +82 -0
  178. package/src/Common/CustomTagSelector/TagLabelSelect.tsx +59 -0
  179. package/src/Common/CustomTagSelector/TagLabelValueSelector.tsx +194 -0
  180. package/src/Common/CustomTagSelector/TagSelector.utils.ts +70 -0
  181. package/src/Common/CustomTagSelector/Types.ts +72 -0
  182. package/src/Common/CustomTagSelector/ValidationRules.ts +54 -0
  183. package/src/Common/CustomTagSelector/index.ts +6 -0
  184. package/src/Common/DebouncedSearch/DebouncedSearch.tsx +77 -0
  185. package/src/Common/DebouncedSearch/Types.ts +13 -0
  186. package/src/Common/DebouncedSearch/Utils.ts +19 -0
  187. package/src/Common/DebouncedSearch/__tests__/DebouncedSearch.test.tsx +60 -0
  188. package/src/Common/DeleteComponentModal/DeleteComponent.tsx +90 -0
  189. package/src/Common/DeleteComponentModal/types.ts +15 -0
  190. package/src/Common/DevtronProgressing/DevtronProgressing.tsx +8 -0
  191. package/src/Common/DevtronProgressing/index.ts +1 -0
  192. package/src/Common/DevtronProgressing/types.ts +4 -0
  193. package/src/Common/Dialogs/ConfirmationDialog.tsx +34 -0
  194. package/src/Common/Dialogs/DeleteDialog.tsx +67 -0
  195. package/src/Common/Dialogs/DialogForm.tsx +82 -0
  196. package/src/Common/Dialogs/ForceDeleteDialog.tsx +25 -0
  197. package/src/Common/Dialogs/Types.ts +47 -0
  198. package/src/Common/Dialogs/index.ts +4 -0
  199. package/src/Common/DraggableWrapper/DraggableButton.tsx +14 -0
  200. package/src/Common/DraggableWrapper/DraggableWrapper.tsx +116 -0
  201. package/src/Common/DraggableWrapper/index.ts +3 -0
  202. package/src/Common/DraggableWrapper/types.ts +27 -0
  203. package/src/Common/Drawer/Drawer.scss +40 -0
  204. package/src/Common/Drawer/Drawer.tsx +49 -0
  205. package/src/Common/EmptyState/EmptyState.tsx +38 -0
  206. package/src/Common/EmptyState/GenericEmptyState.tsx +59 -0
  207. package/src/Common/EmptyState/emptyState.scss +74 -0
  208. package/src/Common/Error.tsx +61 -0
  209. package/src/Common/ErrorScreenNotFound.tsx +28 -0
  210. package/src/Common/Grid/Grid.tsx +43 -0
  211. package/src/Common/Grid/types.ts +11 -0
  212. package/src/Common/Helper.tsx +560 -0
  213. package/src/Common/Hooks/UseClickOutside/UseClickOutside.tsx +15 -0
  214. package/src/Common/Hooks/UseSuperAdmin/UseSuperAdmin.tsx +24 -0
  215. package/src/Common/Hooks/UseSuperAdmin/types.ts +3 -0
  216. package/src/Common/Hooks/UseWindowSize/UseWindowSize.tsx +29 -0
  217. package/src/Common/Hooks/index.ts +3 -0
  218. package/src/Common/ImageTags.Types.ts +43 -0
  219. package/src/Common/ImageTags.tsx +581 -0
  220. package/src/Common/InfoColorBar/InfoColourbar.tsx +85 -0
  221. package/src/Common/InfoColorBar/infoColourBar.scss +28 -0
  222. package/src/Common/Modals/Modal.tsx +68 -0
  223. package/src/Common/Modals/OpaqueModal.tsx +43 -0
  224. package/src/Common/Modals/VisibleModal.tsx +59 -0
  225. package/src/Common/Modals/VisibleModal2.tsx +40 -0
  226. package/src/Common/MultiSelectCustomization.tsx +144 -0
  227. package/src/Common/Policy.Types.ts +63 -0
  228. package/src/Common/PopupMenu.tsx +200 -0
  229. package/src/Common/Progressing.tsx +50 -0
  230. package/src/Common/RJSF/Form.tsx +28 -0
  231. package/src/Common/RJSF/common/FieldRow.tsx +34 -0
  232. package/src/Common/RJSF/common/types.ts +9 -0
  233. package/src/Common/RJSF/config.ts +36 -0
  234. package/src/Common/RJSF/constants.ts +10 -0
  235. package/src/Common/RJSF/index.ts +3 -0
  236. package/src/Common/RJSF/rjsfForm.scss +18 -0
  237. package/src/Common/RJSF/templates/ArrayFieldItemTemplate.tsx +31 -0
  238. package/src/Common/RJSF/templates/ArrayFieldTemplate.tsx +77 -0
  239. package/src/Common/RJSF/templates/BaseInput.tsx +15 -0
  240. package/src/Common/RJSF/templates/ButtonTemplates/AddButton.tsx +17 -0
  241. package/src/Common/RJSF/templates/ButtonTemplates/RemoveButton.tsx +9 -0
  242. package/src/Common/RJSF/templates/ButtonTemplates/SubmitButton.tsx +13 -0
  243. package/src/Common/RJSF/templates/ButtonTemplates/index.ts +3 -0
  244. package/src/Common/RJSF/templates/Description.tsx +11 -0
  245. package/src/Common/RJSF/templates/Field.tsx +41 -0
  246. package/src/Common/RJSF/templates/FieldErrorTemplate.tsx +22 -0
  247. package/src/Common/RJSF/templates/ObjectFieldTemplate.tsx +103 -0
  248. package/src/Common/RJSF/templates/TitleField.tsx +8 -0
  249. package/src/Common/RJSF/templates/WrapIfAdditionalTemplate.tsx +50 -0
  250. package/src/Common/RJSF/templates/index.ts +10 -0
  251. package/src/Common/RJSF/types.ts +4 -0
  252. package/src/Common/RJSF/utils.ts +119 -0
  253. package/src/Common/RJSF/widgets/Checkbox.tsx +44 -0
  254. package/src/Common/RJSF/widgets/Select.tsx +76 -0
  255. package/src/Common/RJSF/widgets/index.ts +2 -0
  256. package/src/Common/RadioGroup/RadioGroup.tsx +100 -0
  257. package/src/Common/RadioGroup/radioGroup.scss +46 -0
  258. package/src/Common/RadioGroup.tsx +54 -0
  259. package/src/Common/Reload.tsx +22 -0
  260. package/src/Common/ResizableTextarea.tsx +74 -0
  261. package/src/Common/Security/ScanVulnerabilitiesTable.tsx +50 -0
  262. package/src/Common/Security/scanVulnerabilities.css +69 -0
  263. package/src/Common/ServerError.ts +35 -0
  264. package/src/Common/TippyCustomized.tsx +175 -0
  265. package/src/Common/ToastBody.tsx +61 -0
  266. package/src/Common/Toggle/Toggle.scss +78 -0
  267. package/src/Common/Toggle/Toggle.tsx +50 -0
  268. package/src/Common/Types.ts +750 -0
  269. package/src/Common/index.ts +48 -0
  270. package/src/custom.d.ts +13 -0
  271. package/src/index.ts +1 -0
  272. package/tsconfig.json +40 -0
  273. package/dist/BaseInput-8101e714.js +0 -1686
  274. package/dist/CodeEditor-68cd2e5b.js +0 -103676
  275. package/dist/Common/AddCDButton/AddCDButton.js +0 -61
  276. package/dist/Common/AddCDButton/index.js +0 -6
  277. package/dist/Common/AddCDButton/types.js +0 -1
  278. package/dist/Common/AddCDButton/utils.js +0 -19
  279. package/dist/Common/Api.js +0 -167
  280. package/dist/Common/AppStatus/AppStatus.js +0 -37
  281. package/dist/Common/AppStatus/constants.js +0 -37
  282. package/dist/Common/AppStatus/index.js +0 -4
  283. package/dist/Common/AppStatus/types.js +0 -1
  284. package/dist/Common/AppStatus/utils.js +0 -8
  285. package/dist/Common/BreadCrumb/BreadCrumb.js +0 -71
  286. package/dist/Common/BreadCrumb/BreadcrumbStore.js +0 -22
  287. package/dist/Common/BreadCrumb/Types.js +0 -1
  288. package/dist/Common/CIPipeline.Types.js +0 -10
  289. package/dist/Common/ChartVersionAndTypeSelector.js +0 -61
  290. package/dist/Common/Checkbox.js +0 -28
  291. package/dist/Common/ClipboardButton/ClipboardButton.js +0 -40
  292. package/dist/Common/ClipboardButton/__tests__/ClipboardButton.test.d.ts +0 -1
  293. package/dist/Common/ClipboardButton/__tests__/ClipboardButton.test.js +0 -27
  294. package/dist/Common/ClipboardButton/types.js +0 -1
  295. package/dist/Common/CodeEditor/CodeEditor.d.ts +0 -47
  296. package/dist/Common/CodeEditor/CodeEditor.js +0 -15
  297. package/dist/Common/Common.service.js +0 -191
  298. package/dist/Common/Constants.js +0 -234
  299. package/dist/Common/CustomInput/CustomInput.js +0 -80
  300. package/dist/Common/CustomInput/Types.js +0 -1
  301. package/dist/Common/CustomInput/index.js +0 -4
  302. package/dist/Common/CustomTagSelector/PropagateTagInfo.js +0 -43
  303. package/dist/Common/CustomTagSelector/ResizableTagTextArea.js +0 -58
  304. package/dist/Common/CustomTagSelector/TagDetails.js +0 -65
  305. package/dist/Common/CustomTagSelector/TagLabelSelect.js +0 -50
  306. package/dist/Common/CustomTagSelector/TagLabelValueSelector.js +0 -121
  307. package/dist/Common/CustomTagSelector/TagSelector.utils.js +0 -61
  308. package/dist/Common/CustomTagSelector/Types.js +0 -1
  309. package/dist/Common/CustomTagSelector/ValidationRules.js +0 -35
  310. package/dist/Common/CustomTagSelector/index.js +0 -12
  311. package/dist/Common/DebouncedSearch/DebouncedSearch.js +0 -7
  312. package/dist/Common/DebouncedSearch/Types.js +0 -1
  313. package/dist/Common/DebouncedSearch/Utils.js +0 -19
  314. package/dist/Common/DebouncedSearch/__tests__/DebouncedSearch.test.d.ts +0 -1
  315. package/dist/Common/DebouncedSearch/__tests__/DebouncedSearch.test.js +0 -33
  316. package/dist/Common/DeleteComponentModal/DeleteComponent.js +0 -63
  317. package/dist/Common/DeleteComponentModal/types.js +0 -1
  318. package/dist/Common/DevtronProgressing/DevtronProgressing.js +0 -98
  319. package/dist/Common/DevtronProgressing/index.js +0 -4
  320. package/dist/Common/DevtronProgressing/types.js +0 -1
  321. package/dist/Common/Dialogs/ConfirmationDialog.js +0 -24
  322. package/dist/Common/Dialogs/DeleteDialog.js +0 -49
  323. package/dist/Common/Dialogs/DialogForm.js +0 -63
  324. package/dist/Common/Dialogs/ForceDeleteDialog.js +0 -23
  325. package/dist/Common/Dialogs/Types.js +0 -1
  326. package/dist/Common/Dialogs/index.js +0 -11
  327. package/dist/Common/DraggableWrapper/DraggableButton.js +0 -16
  328. package/dist/Common/DraggableWrapper/DraggableWrapper.js +0 -1499
  329. package/dist/Common/DraggableWrapper/index.js +0 -8
  330. package/dist/Common/DraggableWrapper/types.js +0 -4
  331. package/dist/Common/Drawer/Drawer.js +0 -22
  332. package/dist/Common/EmptyState/EmptyState.js +0 -32
  333. package/dist/Common/EmptyState/GenericEmptyState.js +0 -52
  334. package/dist/Common/Error.js +0 -49
  335. package/dist/Common/ErrorScreenNotFound.js +0 -23
  336. package/dist/Common/Grid/Grid.js +0 -31
  337. package/dist/Common/Grid/types.js +0 -1
  338. package/dist/Common/Helper.js +0 -38
  339. package/dist/Common/Hooks/UseClickOutside/UseClickOutside.js +0 -14
  340. package/dist/Common/Hooks/UseSuperAdmin/UseSuperAdmin.js +0 -16
  341. package/dist/Common/Hooks/UseSuperAdmin/types.js +0 -1
  342. package/dist/Common/Hooks/UseWindowSize/UseWindowSize.js +0 -17
  343. package/dist/Common/Hooks/index.js +0 -8
  344. package/dist/Common/ImageTags.Types.js +0 -1
  345. package/dist/Common/ImageTags.js +0 -381
  346. package/dist/Common/InfoColorBar/InfoColourbar.js +0 -65
  347. package/dist/Common/Modals/Modal.js +0 -48
  348. package/dist/Common/Modals/OpaqueModal.js +0 -32
  349. package/dist/Common/Modals/VisibleModal.js +0 -31
  350. package/dist/Common/Modals/VisibleModal2.js +0 -31
  351. package/dist/Common/MultiSelectCustomization.js +0 -97
  352. package/dist/Common/Policy.Types.js +0 -6
  353. package/dist/Common/PopupMenu.js +0 -148
  354. package/dist/Common/Progressing.js +0 -52
  355. package/dist/Common/RJSF/Form.js +0 -9888
  356. package/dist/Common/RJSF/common/FieldRow.js +0 -25
  357. package/dist/Common/RJSF/common/types.js +0 -1
  358. package/dist/Common/RJSF/config.js +0 -33
  359. package/dist/Common/RJSF/constants.js +0 -10
  360. package/dist/Common/RJSF/index.js +0 -7
  361. package/dist/Common/RJSF/templates/ArrayFieldItemTemplate.js +0 -30
  362. package/dist/Common/RJSF/templates/ArrayFieldTemplate.js +0 -63
  363. package/dist/Common/RJSF/templates/BaseInput.js +0 -8
  364. package/dist/Common/RJSF/templates/ButtonTemplates/AddButton.js +0 -18
  365. package/dist/Common/RJSF/templates/ButtonTemplates/RemoveButton.js +0 -6
  366. package/dist/Common/RJSF/templates/ButtonTemplates/SubmitButton.js +0 -19
  367. package/dist/Common/RJSF/templates/ButtonTemplates/index.js +0 -8
  368. package/dist/Common/RJSF/templates/Description.js +0 -9
  369. package/dist/Common/RJSF/templates/Field.js +0 -21
  370. package/dist/Common/RJSF/templates/FieldErrorTemplate.js +0 -15
  371. package/dist/Common/RJSF/templates/ObjectFieldTemplate.js +0 -76
  372. package/dist/Common/RJSF/templates/TitleField.js +0 -8
  373. package/dist/Common/RJSF/templates/WrapIfAdditionalTemplate.js +0 -44
  374. package/dist/Common/RJSF/templates/index.js +0 -26
  375. package/dist/Common/RJSF/types.js +0 -1
  376. package/dist/Common/RJSF/utils.js +0 -98
  377. package/dist/Common/RJSF/widgets/Checkbox.js +0 -39
  378. package/dist/Common/RJSF/widgets/Select.js +0 -56
  379. package/dist/Common/RJSF/widgets/index.js +0 -6
  380. package/dist/Common/RadioGroup/RadioGroup.js +0 -76
  381. package/dist/Common/RadioGroup.js +0 -47
  382. package/dist/Common/Reload.js +0 -16
  383. package/dist/Common/ResizableTextarea.js +0 -60
  384. package/dist/Common/Security/ScanVulnerabilitiesTable.js +0 -49
  385. package/dist/Common/Select/Select.d.ts +0 -4
  386. package/dist/Common/Select/Select.js +0 -131
  387. package/dist/Common/Select/types.d.ts +0 -29
  388. package/dist/Common/Select/types.js +0 -1
  389. package/dist/Common/ServerError.js +0 -26
  390. package/dist/Common/TippyCustomized.js +0 -10
  391. package/dist/Common/ToastBody.js +0 -41
  392. package/dist/Common/Toggle/Toggle.js +0 -40
  393. package/dist/Common/Types.js +0 -24
  394. package/dist/Common/UseWindowSize.d.ts +0 -4
  395. package/dist/Common/UseWindowSize.js +0 -20
  396. package/dist/Common/index.js +0 -219
  397. package/dist/DebouncedSearch-065f3ac2.js +0 -58
  398. package/dist/Helper-1f1cf2ba.js +0 -9824
  399. package/dist/TippyCustomized-0d0b9a6f.js +0 -124
  400. package/dist/_commonjsHelpers-c5d32002.js +0 -30
  401. package/dist/abap-9f67f57a.js +0 -1314
  402. package/dist/apex-ff62e532.js +0 -315
  403. package/dist/assets/CodeEditor.css +0 -1
  404. package/dist/assets/Drawer.css +0 -1
  405. package/dist/assets/Form.css +0 -1
  406. package/dist/assets/InfoColourbar.css +0 -1
  407. package/dist/assets/RadioGroup.css +0 -1
  408. package/dist/assets/ScanVulnerabilitiesTable.css +0 -1
  409. package/dist/assets/Select.css +0 -1
  410. package/dist/assets/TippyCustomized.css +0 -1
  411. package/dist/assets/Toggle.css +0 -1
  412. package/dist/assets/editor.worker-d26000ef.js +0 -9
  413. package/dist/assets/emptyState.css +0 -1
  414. package/dist/assets/json.worker-f23a4654.js +0 -40
  415. package/dist/assets/yaml.worker-64fecd27.js +0 -463
  416. package/dist/azcli-31e64a7f.js +0 -74
  417. package/dist/bat-0ffe897e.js +0 -95
  418. package/dist/bicep-3414a2b1.js +0 -108
  419. package/dist/cameligo-df1f3f25.js +0 -168
  420. package/dist/canExpand-ab1f6741.js +0 -10
  421. package/dist/clojure-65b0f010.js +0 -754
  422. package/dist/coffee-437f0fba.js +0 -228
  423. package/dist/cpp-66843dd5.js +0 -390
  424. package/dist/csharp-621d9a49.js +0 -320
  425. package/dist/csp-de0d5244.js +0 -57
  426. package/dist/css-7cd5ed4c.js +0 -186
  427. package/dist/cssMode-7289250b.js +0 -1446
  428. package/dist/cypher-70ad96fe.js +0 -262
  429. package/dist/dart-33ae3739.js +0 -270
  430. package/dist/dockerfile-f2274a50.js +0 -132
  431. package/dist/ecl-3b8294a3.js +0 -454
  432. package/dist/elixir-b9dcc73a.js +0 -489
  433. package/dist/englishStringTranslator-2c9a30fc.js +0 -17
  434. package/dist/enums-d0bd3f97.js +0 -6618
  435. package/dist/extends-70f3d2a3.js +0 -13
  436. package/dist/flow9-bdde8316.js +0 -141
  437. package/dist/freemarker2-3b903d5b.js +0 -643
  438. package/dist/fsharp-eac2e449.js +0 -210
  439. package/dist/getSubmitButtonOptions-a1be9bb0.js +0 -20
  440. package/dist/getTemplate-91d3260d.js +0 -11
  441. package/dist/getUiOptions-844b45a7.js +0 -10
  442. package/dist/go-d12ed8d4.js +0 -208
  443. package/dist/graphql-c7356b69.js +0 -141
  444. package/dist/handlebars-702717e9.js +0 -391
  445. package/dist/hcl-e883a0d4.js +0 -177
  446. package/dist/html-9a684e15.js +0 -281
  447. package/dist/htmlMode-3e336aa8.js +0 -1456
  448. package/dist/ic-add-4787ded5.js +0 -5
  449. package/dist/ic-chevron-down-eb7fd953.js +0 -6
  450. package/dist/ic-copy-118b83dc.js +0 -5
  451. package/dist/ic-cross-0e71861d.js +0 -6
  452. package/dist/ic-error-exclamation-5f9af461.js +0 -5
  453. package/dist/ic-info-filled-31a15add.js +0 -6
  454. package/dist/ic-info-outlined-8fa45e87.js +0 -5
  455. package/dist/ic-warning-42534af1.js +0 -5
  456. package/dist/idGenerators-0b33693c.js +0 -35
  457. package/dist/index-5a231705.js +0 -17417
  458. package/dist/index-c855d89c.js +0 -173
  459. package/dist/ini-425ab711.js +0 -68
  460. package/dist/inject-tag-824bf92c.js +0 -5
  461. package/dist/java-2bc0fd68.js +0 -221
  462. package/dist/javascript-101cb9b7.js +0 -75
  463. package/dist/jsonMode-006d8be9.js +0 -1867
  464. package/dist/julia-1c932615.js +0 -496
  465. package/dist/kotlin-1ab839c8.js +0 -245
  466. package/dist/less-6fe856f5.js +0 -168
  467. package/dist/lexon-4955ac52.js +0 -151
  468. package/dist/liquid-729ea99d.js +0 -238
  469. package/dist/lua-3cca0047.js +0 -157
  470. package/dist/m3-132e9cb6.js +0 -210
  471. package/dist/markdown-ea59a0c1.js +0 -202
  472. package/dist/mips-19811f4b.js +0 -194
  473. package/dist/msdax-69954a10.js +0 -377
  474. package/dist/mysql-82088e5d.js +0 -876
  475. package/dist/objective-c-1976eccc.js +0 -188
  476. package/dist/pascal-8ef177cb.js +0 -245
  477. package/dist/pascaligo-bc517b9e.js +0 -158
  478. package/dist/perl-8b93582c.js +0 -599
  479. package/dist/pgsql-00c11a6d.js +0 -847
  480. package/dist/php-4c8c276f.js +0 -471
  481. package/dist/pla-e9b4ffb1.js +0 -131
  482. package/dist/postiats-2071af8c.js +0 -544
  483. package/dist/powerquery-8e388ceb.js +0 -890
  484. package/dist/powershell-e35db398.js +0 -233
  485. package/dist/protobuf-a24b9176.js +0 -422
  486. package/dist/pug-2c94d9b8.js +0 -393
  487. package/dist/python-c9b92f72.js +0 -259
  488. package/dist/qsharp-d730d7fe.js +0 -282
  489. package/dist/r-be193556.js +0 -245
  490. package/dist/razor-c48ef378.js +0 -512
  491. package/dist/react-select.esm-fa95915b.js +0 -3992
  492. package/dist/react-toastify.esm-e28f7200.js +0 -798
  493. package/dist/react.esm-9335a421.js +0 -13150
  494. package/dist/redis-9690c6ac.js +0 -298
  495. package/dist/redshift-6bdcdeaa.js +0 -806
  496. package/dist/restructuredtext-a08c1d20.js +0 -162
  497. package/dist/ruby-2247692b.js +0 -444
  498. package/dist/rust-1dffb4d5.js +0 -337
  499. package/dist/sb-136598e9.js +0 -110
  500. package/dist/scala-b1100fed.js +0 -353
  501. package/dist/scheme-038c8094.js +0 -114
  502. package/dist/scss-700d1b52.js +0 -244
  503. package/dist/shell-86c16e0f.js +0 -224
  504. package/dist/solidity-c05fdf3c.js +0 -1351
  505. package/dist/sophia-cd645d71.js +0 -190
  506. package/dist/sparql-01d9ec9c.js +0 -193
  507. package/dist/sql-4c33df41.js +0 -818
  508. package/dist/st-52cf1408.js +0 -414
  509. package/dist/swift-13c792ba.js +0 -315
  510. package/dist/systemverilog-0bd8b730.js +0 -556
  511. package/dist/tcl-463d7c75.js +0 -232
  512. package/dist/tippy-react.esm-d5c56a0a.js +0 -2018
  513. package/dist/tsMode-da78a323.js +0 -811
  514. package/dist/twig-0d98f5ec.js +0 -323
  515. package/dist/typescript-bd6d35ce.js +0 -328
  516. package/dist/vb-3a2b0a51.js +0 -364
  517. package/dist/wgsl-b2ddb3e4.js +0 -420
  518. package/dist/xml-828eca7a.js +0 -95
  519. package/dist/yaml-89980d67.js +0 -184
@@ -0,0 +1,560 @@
1
+ import * as Sentry from '@sentry/browser'
2
+ import moment from 'moment'
3
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
4
+ import * as React from 'react'
5
+ import { useLocation } from 'react-router-dom'
6
+ import { toast } from 'react-toastify'
7
+ import { JSONPath } from 'jsonpath-plus'
8
+ import * as jsonpatch from 'fast-json-patch'
9
+ import { ERROR_EMPTY_SCREEN, TOKEN_COOKIE_NAME } from './Constants'
10
+ import { ServerErrors } from './ServerError'
11
+ import { toastAccessDenied } from './ToastBody'
12
+ import { AsyncOptions, AsyncState, UseSearchString } from './Types'
13
+
14
+ toast.configure({
15
+ autoClose: 3000,
16
+ hideProgressBar: true,
17
+ pauseOnHover: true,
18
+ pauseOnFocusLoss: true,
19
+ closeOnClick: false,
20
+ newestOnTop: true,
21
+ toastClassName: 'devtron-toast',
22
+ bodyClassName: 'devtron-toast__body',
23
+ })
24
+
25
+ export function showError(serverError, showToastOnUnknownError = true, hideAccessError = false) {
26
+ if (serverError instanceof ServerErrors && Array.isArray(serverError.errors)) {
27
+ serverError.errors.map(({ userMessage, internalMessage }) => {
28
+ if (
29
+ serverError.code === 403 &&
30
+ (userMessage === ERROR_EMPTY_SCREEN.UNAUTHORIZED || userMessage === ERROR_EMPTY_SCREEN.FORBIDDEN)
31
+ ) {
32
+ if (!hideAccessError) {
33
+ toastAccessDenied()
34
+ }
35
+ } else {
36
+ toast.error(userMessage || internalMessage)
37
+ }
38
+ })
39
+ } else {
40
+ if (serverError.code !== 403 && serverError.code !== 408) {
41
+ Sentry.captureException(serverError)
42
+ }
43
+
44
+ if (showToastOnUnknownError) {
45
+ if (serverError.message) {
46
+ toast.error(serverError.message)
47
+ } else {
48
+ toast.error('Some Error Occurred')
49
+ }
50
+ }
51
+ }
52
+ }
53
+
54
+ interface ConditionalWrapper<T> {
55
+ condition: boolean
56
+ wrap: (children: T) => T
57
+ children: T
58
+ }
59
+ export const ConditionalWrap: React.FC<ConditionalWrapper<any>> = ({ condition, wrap, children }) =>
60
+ condition ? wrap(children) : <>{children}</>
61
+
62
+ export function sortCallback(key: string, a: any, b: any, isCaseSensitive?: boolean) {
63
+ let x = a[key]
64
+ let y = b[key]
65
+ if (isCaseSensitive) {
66
+ x = x.toLowerCase()
67
+ y = y.toLowerCase()
68
+ }
69
+ if (x < y) {
70
+ return -1
71
+ }
72
+ if (x > y) {
73
+ return 1
74
+ }
75
+ return 0
76
+ }
77
+
78
+ export const stopPropagation = (event): void => {
79
+ event.stopPropagation()
80
+ }
81
+
82
+ export function useThrottledEffect(callback, delay, deps = []) {
83
+ // function will be executed only once in a given time interval.
84
+ const lastRan = useRef(Date.now())
85
+
86
+ useEffect(() => {
87
+ const handler = setTimeout(
88
+ () => {
89
+ if (Date.now() - lastRan.current >= delay) {
90
+ callback()
91
+ lastRan.current = Date.now()
92
+ }
93
+ },
94
+ delay - (Date.now() - lastRan.current),
95
+ )
96
+
97
+ return () => {
98
+ clearTimeout(handler)
99
+ }
100
+ }, [delay, ...deps])
101
+ }
102
+
103
+ const colors = [
104
+ '#FFB900',
105
+ '#D83B01',
106
+ '#B50E0E',
107
+ '#E81123',
108
+ '#B4009E',
109
+ '#5C2D91',
110
+ '#0078D7',
111
+ '#00B4FF',
112
+ '#008272',
113
+ '#107C10',
114
+ ]
115
+
116
+ export function getRandomColor(email: string): string {
117
+ let sum = 0
118
+ for (let i = 0; i < email.length; i++) {
119
+ sum += email.charCodeAt(i)
120
+ }
121
+ return colors[sum % colors.length]
122
+ }
123
+
124
+ export const getAlphabetIcon = (str: string, rootClassName: string = '') => {
125
+ if (!str) return null
126
+ return (
127
+ <span
128
+ className={`${rootClassName} alphabet-icon__initial fs-13 icon-dim-20 flex cn-0 mr-8`}
129
+ style={{ backgroundColor: getRandomColor(str) }}
130
+ >
131
+ {str[0]}
132
+ </span>
133
+ )
134
+ }
135
+
136
+ export const getEmptyArrayOfLength = (length: number) => Array.from({ length })
137
+
138
+ export function noop(...args): any {}
139
+
140
+ export function not(e) {
141
+ return !e
142
+ }
143
+
144
+ export function useEffectAfterMount(cb, dependencies) {
145
+ const justMounted = React.useRef(true)
146
+ React.useEffect(() => {
147
+ if (!justMounted.current) {
148
+ return cb()
149
+ }
150
+ justMounted.current = false
151
+ }, dependencies)
152
+ }
153
+
154
+ export function getCookie(sKey) {
155
+ if (!sKey) {
156
+ return null
157
+ }
158
+ return (
159
+ document.cookie.replace(
160
+ new RegExp(`(?:(?:^|.*;)\\s*${sKey.replace(/[\-\.\+\*]/g, '\\$&')}\\s*\\=\\s*([^;]*).*$)|^.*$`),
161
+ '$1',
162
+ ) || null
163
+ )
164
+ }
165
+
166
+ export function getLoginInfo() {
167
+ const argocdToken = getCookie(TOKEN_COOKIE_NAME)
168
+ if (argocdToken) {
169
+ const jwts = argocdToken.split('.')
170
+ try {
171
+ return JSON.parse(atob(jwts[1]))
172
+ } catch (err) {
173
+ console.error('error in setting user ', err)
174
+ return null
175
+ }
176
+ }
177
+ }
178
+
179
+ export function useForm(stateSchema, validationSchema = {}, callback) {
180
+ const [state, setState] = useState(stateSchema)
181
+ const [disable, setDisable] = useState(true)
182
+ const [isDirty, setIsDirty] = useState(false)
183
+
184
+ // Disable button in initial render.
185
+ useEffect(() => {
186
+ setDisable(true)
187
+ }, [])
188
+
189
+ // For every changed in our state this will be fired
190
+ // To be able to disable the button
191
+ useEffect(() => {
192
+ if (isDirty) {
193
+ setDisable(validateState(state))
194
+ }
195
+ }, [state, isDirty])
196
+
197
+ // Used to disable submit button if there's an error in state
198
+ // or the required field in state has no value.
199
+ // Wrapped in useCallback to cached the function to avoid intensive memory leaked
200
+ // in every re-render in component
201
+ const validateState = useCallback(
202
+ (state) => {
203
+ // check errors in all fields
204
+ const hasErrorInState = Object.keys(validationSchema).some((key) => {
205
+ const isInputFieldRequired = validationSchema[key].required
206
+ const stateValue = state[key].value // state value
207
+ const stateError = state[key].error // state error
208
+ return (isInputFieldRequired && !stateValue) || stateError
209
+ })
210
+ return hasErrorInState
211
+ },
212
+ [state, validationSchema],
213
+ )
214
+
215
+ function validateField(name, value): string | string[] {
216
+ if (validationSchema[name].required) {
217
+ if (!value) {
218
+ return 'This is a required field.'
219
+ }
220
+ }
221
+
222
+ function _validateSingleValidator(validator, value) {
223
+ if (value && !validator.regex.test(value)) {
224
+ return false
225
+ }
226
+ return true
227
+ }
228
+
229
+ // single validator
230
+ const _validator = validationSchema[name].validator
231
+ if (_validator && typeof _validator === 'object') {
232
+ if (!_validateSingleValidator(_validator, value)) {
233
+ return _validator.error
234
+ }
235
+ }
236
+
237
+ // multiple validators
238
+ const _validators = validationSchema[name].validators
239
+ if (_validators && typeof _validators === 'object' && Array.isArray(_validators)) {
240
+ const errors = []
241
+ _validators.forEach((_validator) => {
242
+ if (!_validateSingleValidator(_validator, value)) {
243
+ errors.push(_validator.error)
244
+ }
245
+ })
246
+ if (errors.length > 0) {
247
+ return errors
248
+ }
249
+ }
250
+
251
+ return ''
252
+ }
253
+
254
+ const handleOnChange = useCallback(
255
+ (event) => {
256
+ setIsDirty(true)
257
+
258
+ const { name, value } = event.target
259
+ const error = validateField(name, value)
260
+ setState((prevState) => ({
261
+ ...prevState,
262
+ [name]: { value, error },
263
+ }))
264
+ },
265
+ [validationSchema],
266
+ )
267
+
268
+ const handleOnSubmit = (event) => {
269
+ event.preventDefault()
270
+ const newState = Object.keys(validationSchema).reduce((agg, curr) => {
271
+ agg[curr] = { ...state[curr], error: validateField(curr, state[curr].value) }
272
+ return agg
273
+ }, state)
274
+ if (!validateState(newState)) {
275
+ callback(state)
276
+ } else {
277
+ setState({ ...newState })
278
+ }
279
+ }
280
+ return { state, disable, handleOnChange, handleOnSubmit }
281
+ }
282
+
283
+ export function handleUTCTime(ts: string, isRelativeTime = false) {
284
+ let timestamp = ''
285
+ try {
286
+ if (ts && ts.length) {
287
+ const date = moment(ts)
288
+ if (isRelativeTime) timestamp = date.fromNow()
289
+ else timestamp = date.format('ddd DD MMM YYYY HH:mm:ss')
290
+ }
291
+ } catch (error) {
292
+ console.error('Error Parsing Date:', ts)
293
+ }
294
+ return timestamp
295
+ }
296
+
297
+ export function useSearchString(): UseSearchString {
298
+ const location = useLocation()
299
+ const queryParams: URLSearchParams = useMemo(() => {
300
+ const queryParams = new URLSearchParams(location.search)
301
+ return queryParams
302
+ }, [location])
303
+
304
+ // const searchParams={}
305
+ // for (let [key, value] of queryParams.entries()){
306
+ // searchParams[key]=value
307
+ // }
308
+ const searchParams = Array.from(queryParams.entries()).reduce((agg, curr, idx) => {
309
+ agg[curr[0]] = curr[1]
310
+ return agg
311
+ }, {})
312
+
313
+ return { queryParams, searchParams }
314
+ }
315
+
316
+ export const closeOnEscKeyPressed = (e: any, actionClose: () => void) => {
317
+ if (e.keyCode === 27 || e.key === 'Escape') {
318
+ actionClose()
319
+ }
320
+ }
321
+
322
+ const unsecureCopyToClipboard = (str, callback = noop) => {
323
+ const listener = function (ev) {
324
+ ev.preventDefault()
325
+ ev.clipboardData.setData('text/plain', str)
326
+ }
327
+ document.addEventListener('copy', listener)
328
+ document.execCommand('copy')
329
+ document.removeEventListener('copy', listener)
330
+ callback()
331
+ }
332
+
333
+ /**
334
+ * It will copy the passed content to clipboard and invoke the callback function, in case of error it will show the toast message.
335
+ * On HTTP system clipboard is not supported, so it will use the unsecureCopyToClipboard function
336
+ * @param str
337
+ * @param callback
338
+ */
339
+ export function copyToClipboard(str, callback = noop) {
340
+ if (!str) {
341
+ return
342
+ }
343
+
344
+ if (window.isSecureContext && navigator.clipboard) {
345
+ navigator.clipboard
346
+ .writeText(str)
347
+ .then(() => {
348
+ callback()
349
+ })
350
+ .catch(() => {
351
+ toast.error('Failed to copy to clipboard')
352
+ })
353
+ } else {
354
+ unsecureCopyToClipboard(str, callback)
355
+ }
356
+ }
357
+
358
+ export function useAsync<T>(
359
+ func: (...rest) => Promise<T>,
360
+ dependencyArray: any[] = [],
361
+ shouldRun = true,
362
+ options: AsyncOptions = { resetOnChange: true },
363
+ ): [boolean, T, any | null, () => void, React.Dispatch<any>, any[]] {
364
+ const [state, setState] = useState<AsyncState<T>>({
365
+ loading: true,
366
+ result: null,
367
+ error: null,
368
+ dependencies: dependencyArray,
369
+ })
370
+ const mounted = useRef(true)
371
+ const dependencies: any[] = useMemo(() => [...dependencyArray, shouldRun], [...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
+ }
438
+ return isArgoInstalled ? '' : 'Not deployed'
439
+ }
440
+
441
+ /**
442
+ * Appends search parameters to the url as a query string
443
+ *
444
+ * @param url URL to which the search params needs to be added
445
+ * @param params Object for the search parameters
446
+ */
447
+ export const getUrlWithSearchParams = (url: string, params: Record<string | number, any>) => {
448
+ const searchParams = new URLSearchParams()
449
+ Object.keys(params).forEach((key) => {
450
+ if (params[key]) {
451
+ searchParams.append(key, params[key])
452
+ }
453
+ })
454
+ const queryString = searchParams.toString()
455
+ return url + (queryString ? `?${queryString}` : '')
456
+ }
457
+
458
+ /**
459
+ * Custom exception logger function for logging errors to sentry
460
+ */
461
+ export const logExceptionToSentry = Sentry.captureException.bind(window)
462
+
463
+ export const customStyles = {
464
+ control: (base, state) => ({
465
+ ...base,
466
+ minHeight: '32px',
467
+ boxShadow: 'none',
468
+ border: 'none',
469
+ cursor: 'pointer',
470
+ background: 'transparent',
471
+ }),
472
+ indicatorSeparator: (base, state) => ({
473
+ ...base,
474
+ width: 0,
475
+ }),
476
+ valueContainer: (base, state) => ({
477
+ ...base,
478
+ padding: '0',
479
+ fontSize: '13px',
480
+ fontWeight: '600',
481
+ }),
482
+ dropdownIndicator: (base, state) => ({
483
+ ...base,
484
+ color: 'var(--N400)',
485
+ padding: '0 8px',
486
+ transition: 'all .2s ease',
487
+ transform: state.selectProps.menuIsOpen ? 'rotate(180deg)' : 'rotate(0deg)',
488
+ }),
489
+ }
490
+
491
+ export const getFilteredChartVersions = (charts, selectedChartType) =>
492
+ // Filter chart versions based on selected chart type
493
+ charts
494
+ .filter((item) => item?.chartType === selectedChartType.value)
495
+ .map((item) => ({
496
+ value: item?.chartVersion,
497
+ label: item?.chartVersion,
498
+ chartRefId: item.chartRefId,
499
+ }))
500
+
501
+ function removeEmptyObjectKeysAndNullValues(obj) {
502
+ // It recursively removes empty object keys and array values that are null
503
+ for (const key in obj) {
504
+ if (Array.isArray(obj[key])) {
505
+ if (obj[key].length === 0) continue
506
+ obj[key] = obj[key].filter((item) => item !== null)
507
+ // Check if the array is empty
508
+ if (obj[key].length === 0) {
509
+ delete obj[key] // Delete the key if the array is empty
510
+ }
511
+ } else if (obj[key] && typeof obj[key] === 'object') {
512
+ if (removeEmptyObjectKeysAndNullValues(obj[key])) {
513
+ delete obj[key]
514
+ }
515
+ } else if (obj[key] === undefined) {
516
+ delete obj[key]
517
+ }
518
+ }
519
+ return Object.keys(obj).length === 0
520
+ }
521
+
522
+ export function getUnlockedJSON(json, jsonPathArray) {
523
+ const jsonCopy = JSON.parse(JSON.stringify(json))
524
+ const patches = jsonPathArray.flatMap((jsonPath) => {
525
+ const pathsToRemove = JSONPath({ path: jsonPath, json: jsonCopy, resultType: 'all' })
526
+ return pathsToRemove.map((result) =>
527
+ Array.isArray(result.parent)
528
+ ? { op: 'replace', path: result.pointer, value: null }
529
+ : { op: 'remove', path: result.pointer },
530
+ )
531
+ })
532
+ const { newDocument } = jsonpatch.applyPatch(jsonCopy, patches)
533
+
534
+ removeEmptyObjectKeysAndNullValues(newDocument)
535
+ return newDocument
536
+ }
537
+
538
+ export function getLockedJSON(json, jsonPathArray: string[]) {
539
+ const jsonCopy = JSON.parse(JSON.stringify(json))
540
+ const resultJson = {}
541
+ jsonPathArray.forEach((jsonPath) => {
542
+ const elements = JSONPath({ path: jsonPath, json: jsonCopy, resultType: 'all' })
543
+ elements.forEach((element) => {
544
+ const pathArray: string[] = JSONPath.toPathArray(element.path)
545
+ const lastPath = pathArray.pop()
546
+ let current = resultJson
547
+ for (let i = 0; i < pathArray.length; i++) {
548
+ const key = isNaN(Number(pathArray[i])) ? pathArray[i] : parseInt(pathArray[i])
549
+ if (!current[key]) {
550
+ current[key] = isNaN(Number(pathArray[i + 1] ?? lastPath)) ? {} : []
551
+ }
552
+ current = current[key]
553
+ }
554
+ const key = isNaN(Number(lastPath)) ? lastPath : parseInt(lastPath)
555
+ current[key] = element.value
556
+ })
557
+ })
558
+ // eslint-disable-next-line dot-notation
559
+ return resultJson['$']
560
+ }
@@ -0,0 +1,15 @@
1
+ import { 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 { 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,29 @@
1
+ import { useState, useEffect } from 'react'
2
+
3
+ let timeout
4
+
5
+ const getSize = () => ({
6
+ width: window.innerWidth,
7
+ height: window.innerHeight,
8
+ })
9
+
10
+ export const useWindowSize = () => {
11
+ const [windowSize, setWindowSize] = useState(getSize)
12
+
13
+ function handleResize(e) {
14
+ if (timeout) {
15
+ window.cancelAnimationFrame(timeout)
16
+ }
17
+
18
+ timeout = window.requestAnimationFrame(() => {
19
+ setWindowSize(getSize())
20
+ })
21
+ }
22
+
23
+ useEffect(() => {
24
+ window.addEventListener('resize', handleResize, false)
25
+ return () => window.removeEventListener('resize', handleResize, false)
26
+ }, [])
27
+
28
+ return windowSize
29
+ }
@@ -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,43 @@
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
+ export interface ImageTaggingContainerType {
17
+ ciPipelineId?: number
18
+ artifactId?: number
19
+ imageComment?: ImageComment
20
+ imageReleaseTags?: ReleaseTag[]
21
+ updateCurrentAppMaterial?: (matId: number, releaseTags?: ReleaseTag[], imageComment?: ImageComment) => void
22
+ appReleaseTagNames?: string[]
23
+ tagsEditable?: boolean
24
+ forceReInit?: boolean
25
+ setAppReleaseTagNames?: (appReleaseTags: string[]) => void
26
+ setTagsEditable?: (tagsEditable: boolean) => void
27
+ toggleCardMode?: (id: number) => void
28
+ hideHardDelete?: boolean
29
+ isSuperAdmin?: boolean
30
+ }
31
+
32
+ export interface ImageButtonType {
33
+ text: string
34
+ isSoftDeleted: boolean
35
+ isEditing: boolean
36
+ onSoftDeleteClick?: any
37
+ onHardDeleteClick?: any
38
+ tagId: number
39
+ softDeleteTags: any
40
+ isSuperAdmin: any
41
+ duplicateTag?: boolean
42
+ hideHardDelete?: boolean
43
+ }