@devtron-labs/devtron-fe-common-lib 0.0.62-beta-7 → 0.0.62-beta-8

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 (410) hide show
  1. package/.eslintignore +94 -0
  2. package/.eslintrc.js +109 -0
  3. package/.github/pull_request_template.md +25 -0
  4. package/.github/workflows/ci.yml +31 -0
  5. package/.github/workflows/release-package.yml +48 -0
  6. package/.husky/pre-commit +5 -0
  7. package/.lintstagedrc +3 -0
  8. package/.nvmrc +1 -0
  9. package/.prettierrc.js +7 -0
  10. package/dist/Common/AddCDButton/AddCDButton.d.ts +3 -3
  11. package/dist/Common/AddCDButton/index.d.ts +2 -2
  12. package/dist/Common/AddCDButton/types.d.ts +26 -26
  13. package/dist/Common/AddCDButton/utils.d.ts +2 -2
  14. package/dist/Common/Api.d.ts +14 -14
  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 +89 -95
  30. package/dist/Common/CustomInput/CustomInput.d.ts +3 -2
  31. package/dist/Common/CustomInput/Types.d.ts +31 -31
  32. package/dist/Common/CustomInput/index.d.ts +2 -2
  33. package/dist/Common/CustomTagSelector/PropagateTagInfo.d.ts +4 -4
  34. package/dist/Common/CustomTagSelector/ResizableTagTextArea.d.ts +3 -2
  35. package/dist/Common/CustomTagSelector/TagDetails.d.ts +3 -2
  36. package/dist/Common/CustomTagSelector/TagLabelSelect.d.ts +3 -2
  37. package/dist/Common/CustomTagSelector/TagLabelValueSelector.d.ts +3 -2
  38. package/dist/Common/CustomTagSelector/TagSelector.utils.d.ts +12 -12
  39. package/dist/Common/CustomTagSelector/Types.d.ts +68 -68
  40. package/dist/Common/CustomTagSelector/ValidationRules.d.ts +10 -10
  41. package/dist/Common/CustomTagSelector/index.d.ts +6 -6
  42. package/dist/Common/DebouncedSearch/DebouncedSearch.d.ts +17 -17
  43. package/dist/Common/DebouncedSearch/Types.d.ts +14 -14
  44. package/dist/Common/DebouncedSearch/Utils.d.ts +1 -1
  45. package/dist/Common/DeleteComponentModal/DeleteComponent.d.ts +4 -3
  46. package/dist/Common/DeleteComponentModal/types.d.ts +15 -15
  47. package/dist/Common/DevtronProgressing/DevtronProgressing.d.ts +3 -2
  48. package/dist/Common/DevtronProgressing/index.d.ts +1 -1
  49. package/dist/Common/DevtronProgressing/types.d.ts +4 -4
  50. package/dist/Common/Dialogs/ConfirmationDialog.d.ts +9 -8
  51. package/dist/Common/Dialogs/DeleteDialog.d.ts +5 -5
  52. package/dist/Common/Dialogs/DialogForm.d.ts +14 -14
  53. package/dist/Common/Dialogs/ForceDeleteDialog.d.ts +3 -3
  54. package/dist/Common/Dialogs/Types.d.ts +45 -45
  55. package/dist/Common/Dialogs/index.d.ts +4 -4
  56. package/dist/Common/DraggableWrapper/DraggableButton.d.ts +3 -3
  57. package/dist/Common/DraggableWrapper/DraggableWrapper.d.ts +9 -9
  58. package/dist/Common/DraggableWrapper/index.d.ts +3 -3
  59. package/dist/Common/DraggableWrapper/types.d.ts +23 -23
  60. package/dist/Common/Drawer/Drawer.d.ts +16 -14
  61. package/dist/Common/EmptyState/EmptyState.d.ts +25 -0
  62. package/dist/Common/EmptyState/GenericEmptyState.d.ts +5 -3
  63. package/dist/Common/Error.d.ts +17 -17
  64. package/dist/Common/ErrorScreenNotFound.d.ts +3 -2
  65. package/dist/Common/Grid/Grid.d.ts +3 -3
  66. package/dist/Common/Grid/types.d.ts +10 -10
  67. package/dist/Common/Helper.d.ts +67 -68
  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 +4 -4
  73. package/dist/Common/Hooks/useUrlFilters/constants.d.ts +8 -8
  74. package/dist/Common/Hooks/useUrlFilters/index.d.ts +2 -2
  75. package/dist/Common/Hooks/useUrlFilters/types.d.ts +6 -6
  76. package/dist/Common/Hooks/useUrlFilters/useUrlFilters.d.ts +32 -32
  77. package/dist/Common/ImageTags.Types.d.ts +40 -40
  78. package/dist/Common/ImageTags.d.ts +4 -3
  79. package/dist/Common/InfoColorBar/InfoColourbar.d.ts +5 -3
  80. package/dist/Common/Modals/Modal.d.ts +3 -3
  81. package/dist/Common/Modals/OpaqueModal.d.ts +12 -12
  82. package/dist/Common/Modals/VisibleModal.d.ts +15 -15
  83. package/dist/Common/Modals/VisibleModal2.d.ts +12 -12
  84. package/dist/Common/MultiSelectCustomization.d.ts +37 -37
  85. package/dist/Common/Pagination/PageSizeSelector.d.ts +4 -3
  86. package/dist/Common/Pagination/Pagination.d.ts +5 -3
  87. package/dist/Common/Pagination/constants.d.ts +5 -5
  88. package/dist/Common/Pagination/index.d.ts +1 -1
  89. package/dist/Common/Pagination/types.d.ts +51 -51
  90. package/dist/Common/Pagination/utils.d.ts +6 -6
  91. package/dist/Common/Policy.Types.d.ts +56 -56
  92. package/dist/Common/PopupMenu.d.ts +8 -7
  93. package/dist/Common/Progressing.d.ts +4 -3
  94. package/dist/Common/RJSF/Form.d.ts +4 -2
  95. package/dist/Common/RJSF/common/FieldRow.d.ts +6 -5
  96. package/dist/Common/RJSF/common/types.d.ts +8 -8
  97. package/dist/Common/RJSF/config.d.ts +4 -4
  98. package/dist/Common/RJSF/constants.d.ts +7 -7
  99. package/dist/Common/RJSF/index.d.ts +3 -3
  100. package/dist/Common/RJSF/templates/ArrayFieldItemTemplate.d.ts +3 -2
  101. package/dist/Common/RJSF/templates/ArrayFieldTemplate.d.ts +3 -2
  102. package/dist/Common/RJSF/templates/BaseInput.d.ts +3 -2
  103. package/dist/Common/RJSF/templates/ButtonTemplates/AddButton.d.ts +3 -2
  104. package/dist/Common/RJSF/templates/ButtonTemplates/RemoveButton.d.ts +3 -2
  105. package/dist/Common/RJSF/templates/ButtonTemplates/SubmitButton.d.ts +3 -2
  106. package/dist/Common/RJSF/templates/ButtonTemplates/index.d.ts +3 -3
  107. package/dist/Common/RJSF/templates/Description.d.ts +3 -2
  108. package/dist/Common/RJSF/templates/Field.d.ts +3 -2
  109. package/dist/Common/RJSF/templates/FieldErrorTemplate.d.ts +3 -2
  110. package/dist/Common/RJSF/templates/ObjectFieldTemplate.d.ts +3 -2
  111. package/dist/Common/RJSF/templates/TitleField.d.ts +3 -2
  112. package/dist/Common/RJSF/templates/WrapIfAdditionalTemplate.d.ts +3 -2
  113. package/dist/Common/RJSF/templates/index.d.ts +10 -10
  114. package/dist/Common/RJSF/types.d.ts +3 -3
  115. package/dist/Common/RJSF/utils.d.ts +26 -25
  116. package/dist/Common/RJSF/widgets/Checkbox.d.ts +3 -2
  117. package/dist/Common/RJSF/widgets/Select.d.ts +3 -2
  118. package/dist/Common/RJSF/widgets/index.d.ts +2 -2
  119. package/dist/Common/RadioGroup/RadioGroup.d.ts +5 -16
  120. package/dist/Common/RadioGroup.d.ts +10 -8
  121. package/dist/Common/RadioGroupItem.d.ts +4 -0
  122. package/dist/Common/Reload.d.ts +3 -3
  123. package/dist/Common/ResizableTextarea.d.ts +3 -3
  124. package/dist/Common/SearchBar/SearchBar.component.d.ts +39 -37
  125. package/dist/Common/SearchBar/index.d.ts +2 -2
  126. package/dist/Common/SearchBar/types.d.ts +35 -35
  127. package/dist/Common/Security/ScanVulnerabilitiesTable.d.ts +4 -3
  128. package/dist/Common/ServerError.d.ts +15 -15
  129. package/dist/Common/SortableTableHeaderCell/SortableTableHeaderCell.d.ts +18 -17
  130. package/dist/Common/SortableTableHeaderCell/index.d.ts +2 -2
  131. package/dist/Common/SortableTableHeaderCell/types.d.ts +25 -25
  132. package/dist/Common/TippyCustomized.d.ts +4 -2
  133. package/dist/Common/ToastBody.d.ts +23 -23
  134. package/dist/Common/Toggle/Toggle.d.ts +14 -12
  135. package/dist/Common/Types.d.ts +728 -703
  136. package/dist/Common/index.d.ts +52 -51
  137. package/dist/Pages/GlobalConfigurations/Authorization/constants.d.ts +15 -15
  138. package/dist/Pages/GlobalConfigurations/Authorization/index.d.ts +1 -1
  139. package/dist/Pages/GlobalConfigurations/index.d.ts +1 -1
  140. package/dist/Pages/index.d.ts +1 -1
  141. package/dist/index.d.ts +2 -8
  142. package/dist/index.js +29119 -170
  143. package/package.json +23 -34
  144. package/rollup.config.js +31 -0
  145. package/src/Assets/Icon/ic-add.svg +3 -0
  146. package/src/Assets/Icon/ic-appstatus-cancelled.svg +6 -0
  147. package/src/Assets/Icon/ic-arrow-counter-clockwise.svg +5 -0
  148. package/src/Assets/Icon/ic-arrow-up-down.svg +3 -0
  149. package/src/Assets/Icon/ic-check.svg +5 -0
  150. package/src/Assets/Icon/ic-chevron-down.svg +5 -0
  151. package/src/Assets/Icon/ic-copy.svg +3 -0
  152. package/src/Assets/Icon/ic-cross.svg +3 -0
  153. package/src/Assets/Icon/ic-drag.svg +8 -0
  154. package/src/Assets/Icon/ic-enter.svg +3 -0
  155. package/src/Assets/Icon/ic-error-cross.svg +8 -0
  156. package/src/Assets/Icon/ic-error-exclamation.svg +6 -0
  157. package/src/Assets/Icon/ic-error-medium.svg +6 -0
  158. package/src/Assets/Icon/ic-help-outline.svg +3 -0
  159. package/src/Assets/Icon/ic-help.svg +3 -0
  160. package/src/Assets/Icon/ic-info-filled.svg +7 -0
  161. package/src/Assets/Icon/ic-info-outlined.svg +13 -0
  162. package/src/Assets/Icon/ic-minus.svg +3 -0
  163. package/src/Assets/Icon/ic-pencil.svg +3 -0
  164. package/src/Assets/Icon/ic-progressing.svg +6 -0
  165. package/src/Assets/Icon/ic-rotate-devtron.svg +103 -0
  166. package/src/Assets/Icon/ic-search.svg +6 -0
  167. package/src/Assets/Icon/ic-sort-arrow-down.svg +3 -0
  168. package/src/Assets/Icon/ic-warning.svg +7 -0
  169. package/src/Assets/Icon/inject-tag.svg +5 -0
  170. package/src/Assets/Img/app-not-deployed.png +0 -0
  171. package/src/Assets/Img/delete-medium.svg +15 -0
  172. package/src/Assets/Img/ic-empty-error@2x.png +0 -0
  173. package/src/Assets/Img/ic-loading-failure.png +0 -0
  174. package/src/Assets/Img/ic-not-authorized.svg +62 -0
  175. package/src/Common/AddCDButton/AddCDButton.tsx +68 -0
  176. package/src/Common/AddCDButton/index.ts +2 -0
  177. package/src/Common/AddCDButton/types.ts +38 -0
  178. package/src/Common/AddCDButton/utils.tsx +35 -0
  179. package/src/Common/Api.ts +251 -0
  180. package/src/Common/AppStatus/AppStatus.tsx +64 -0
  181. package/src/Common/AppStatus/constants.ts +53 -0
  182. package/src/Common/AppStatus/index.ts +1 -0
  183. package/src/Common/AppStatus/types.ts +12 -0
  184. package/src/Common/AppStatus/utils.ts +14 -0
  185. package/src/Common/BreadCrumb/BreadCrumb.tsx +105 -0
  186. package/src/Common/BreadCrumb/BreadcrumbStore.tsx +25 -0
  187. package/src/Common/BreadCrumb/Types.ts +30 -0
  188. package/src/Common/CIPipeline.Types.ts +277 -0
  189. package/src/Common/ChartVersionAndTypeSelector.tsx +78 -0
  190. package/src/Common/Checkbox.tsx +36 -0
  191. package/src/Common/ClipboardButton/ClipboardButton.tsx +61 -0
  192. package/src/Common/ClipboardButton/__tests__/ClipboardButton.test.tsx +43 -0
  193. package/src/Common/ClipboardButton/types.ts +7 -0
  194. package/src/Common/Common.service.ts +315 -0
  195. package/src/Common/Constants.ts +270 -0
  196. package/src/Common/CustomInput/CustomInput.tsx +134 -0
  197. package/src/Common/CustomInput/Types.ts +32 -0
  198. package/src/Common/CustomInput/index.ts +2 -0
  199. package/src/Common/CustomTagSelector/PropagateTagInfo.tsx +46 -0
  200. package/src/Common/CustomTagSelector/ResizableTagTextArea.tsx +84 -0
  201. package/src/Common/CustomTagSelector/TagDetails.tsx +76 -0
  202. package/src/Common/CustomTagSelector/TagLabelSelect.tsx +61 -0
  203. package/src/Common/CustomTagSelector/TagLabelValueSelector.tsx +198 -0
  204. package/src/Common/CustomTagSelector/TagSelector.utils.ts +71 -0
  205. package/src/Common/CustomTagSelector/Types.ts +72 -0
  206. package/src/Common/CustomTagSelector/ValidationRules.ts +58 -0
  207. package/src/Common/CustomTagSelector/index.ts +6 -0
  208. package/src/Common/DebouncedSearch/DebouncedSearch.tsx +78 -0
  209. package/src/Common/DebouncedSearch/Types.ts +13 -0
  210. package/src/Common/DebouncedSearch/Utils.ts +19 -0
  211. package/src/Common/DebouncedSearch/__tests__/DebouncedSearch.test.tsx +61 -0
  212. package/src/Common/DeleteComponentModal/DeleteComponent.tsx +95 -0
  213. package/src/Common/DeleteComponentModal/types.ts +15 -0
  214. package/src/Common/DevtronProgressing/DevtronProgressing.tsx +11 -0
  215. package/src/Common/DevtronProgressing/index.ts +1 -0
  216. package/src/Common/DevtronProgressing/types.ts +4 -0
  217. package/src/Common/Dialogs/ConfirmationDialog.tsx +34 -0
  218. package/src/Common/Dialogs/DeleteDialog.tsx +69 -0
  219. package/src/Common/Dialogs/DialogForm.tsx +86 -0
  220. package/src/Common/Dialogs/ForceDeleteDialog.tsx +19 -0
  221. package/src/Common/Dialogs/Types.ts +47 -0
  222. package/src/Common/Dialogs/index.ts +4 -0
  223. package/src/Common/DraggableWrapper/DraggableButton.tsx +14 -0
  224. package/src/Common/DraggableWrapper/DraggableWrapper.tsx +116 -0
  225. package/src/Common/DraggableWrapper/index.ts +3 -0
  226. package/src/Common/DraggableWrapper/types.ts +27 -0
  227. package/src/Common/Drawer/Drawer.scss +40 -0
  228. package/src/Common/Drawer/Drawer.tsx +49 -0
  229. package/src/Common/EmptyState/EmptyState.tsx +42 -0
  230. package/src/Common/EmptyState/GenericEmptyState.tsx +81 -0
  231. package/src/Common/EmptyState/emptyState.scss +74 -0
  232. package/src/Common/Error.tsx +61 -0
  233. package/src/Common/ErrorScreenNotFound.tsx +31 -0
  234. package/src/Common/Grid/Grid.tsx +44 -0
  235. package/src/Common/Grid/types.ts +11 -0
  236. package/src/Common/Helper.tsx +590 -0
  237. package/src/Common/Hooks/UseClickOutside/UseClickOutside.tsx +15 -0
  238. package/src/Common/Hooks/UseSuperAdmin/UseSuperAdmin.tsx +24 -0
  239. package/src/Common/Hooks/UseSuperAdmin/types.ts +3 -0
  240. package/src/Common/Hooks/UseWindowSize/UseWindowSize.tsx +31 -0
  241. package/src/Common/Hooks/index.ts +4 -0
  242. package/src/Common/Hooks/useUrlFilters/constants.ts +9 -0
  243. package/src/Common/Hooks/useUrlFilters/index.ts +2 -0
  244. package/src/Common/Hooks/useUrlFilters/types.ts +6 -0
  245. package/src/Common/Hooks/useUrlFilters/useUrlFilters.ts +121 -0
  246. package/src/Common/ImageTags.Types.ts +44 -0
  247. package/src/Common/ImageTags.tsx +586 -0
  248. package/src/Common/InfoColorBar/InfoColourbar.tsx +80 -0
  249. package/src/Common/InfoColorBar/infoColourBar.scss +28 -0
  250. package/src/Common/Modals/Modal.tsx +68 -0
  251. package/src/Common/Modals/OpaqueModal.tsx +36 -0
  252. package/src/Common/Modals/VisibleModal.tsx +55 -0
  253. package/src/Common/Modals/VisibleModal2.tsx +35 -0
  254. package/src/Common/MultiSelectCustomization.tsx +148 -0
  255. package/src/Common/Pagination/PageSizeSelector.tsx +78 -0
  256. package/src/Common/Pagination/Pagination.tsx +127 -0
  257. package/src/Common/Pagination/constants.ts +6 -0
  258. package/src/Common/Pagination/index.tsx +3 -0
  259. package/src/Common/Pagination/pagination.scss +123 -0
  260. package/src/Common/Pagination/types.ts +55 -0
  261. package/src/Common/Pagination/utils.tsx +24 -0
  262. package/src/Common/Policy.Types.ts +63 -0
  263. package/src/Common/PopupMenu.tsx +199 -0
  264. package/src/Common/Progressing.tsx +53 -0
  265. package/src/Common/RJSF/Form.tsx +29 -0
  266. package/src/Common/RJSF/common/FieldRow.tsx +35 -0
  267. package/src/Common/RJSF/common/types.ts +9 -0
  268. package/src/Common/RJSF/config.ts +37 -0
  269. package/src/Common/RJSF/constants.ts +10 -0
  270. package/src/Common/RJSF/index.ts +3 -0
  271. package/src/Common/RJSF/rjsfForm.scss +18 -0
  272. package/src/Common/RJSF/templates/ArrayFieldItemTemplate.tsx +31 -0
  273. package/src/Common/RJSF/templates/ArrayFieldTemplate.tsx +78 -0
  274. package/src/Common/RJSF/templates/BaseInput.tsx +16 -0
  275. package/src/Common/RJSF/templates/ButtonTemplates/AddButton.tsx +18 -0
  276. package/src/Common/RJSF/templates/ButtonTemplates/RemoveButton.tsx +10 -0
  277. package/src/Common/RJSF/templates/ButtonTemplates/SubmitButton.tsx +18 -0
  278. package/src/Common/RJSF/templates/ButtonTemplates/index.ts +3 -0
  279. package/src/Common/RJSF/templates/Description.tsx +12 -0
  280. package/src/Common/RJSF/templates/Field.tsx +30 -0
  281. package/src/Common/RJSF/templates/FieldErrorTemplate.tsx +25 -0
  282. package/src/Common/RJSF/templates/ObjectFieldTemplate.tsx +105 -0
  283. package/src/Common/RJSF/templates/TitleField.tsx +9 -0
  284. package/src/Common/RJSF/templates/WrapIfAdditionalTemplate.tsx +51 -0
  285. package/src/Common/RJSF/templates/index.ts +10 -0
  286. package/src/Common/RJSF/types.ts +4 -0
  287. package/src/Common/RJSF/utils.ts +123 -0
  288. package/src/Common/RJSF/widgets/Checkbox.tsx +44 -0
  289. package/src/Common/RJSF/widgets/Select.tsx +77 -0
  290. package/src/Common/RJSF/widgets/index.ts +2 -0
  291. package/src/Common/RadioGroup/RadioGroup.tsx +87 -0
  292. package/src/Common/RadioGroup/radioGroup.scss +46 -0
  293. package/src/Common/RadioGroup.tsx +21 -0
  294. package/src/Common/RadioGroupItem.tsx +28 -0
  295. package/src/Common/Reload.tsx +23 -0
  296. package/src/Common/ResizableTextarea.tsx +73 -0
  297. package/src/Common/SearchBar/SearchBar.component.tsx +131 -0
  298. package/src/Common/SearchBar/index.ts +2 -0
  299. package/src/Common/SearchBar/searchBar.scss +31 -0
  300. package/src/Common/SearchBar/types.ts +34 -0
  301. package/src/Common/Security/ScanVulnerabilitiesTable.tsx +55 -0
  302. package/src/Common/Security/scanVulnerabilities.css +69 -0
  303. package/src/Common/ServerError.ts +31 -0
  304. package/src/Common/SortableTableHeaderCell/SortableTableHeaderCell.tsx +44 -0
  305. package/src/Common/SortableTableHeaderCell/index.ts +2 -0
  306. package/src/Common/SortableTableHeaderCell/types.ts +26 -0
  307. package/src/Common/TippyCustomized.tsx +172 -0
  308. package/src/Common/ToastBody.tsx +62 -0
  309. package/src/Common/Toggle/Toggle.scss +78 -0
  310. package/src/Common/Toggle/Toggle.tsx +50 -0
  311. package/src/Common/Types.ts +804 -0
  312. package/src/Common/index.ts +52 -0
  313. package/src/Pages/GlobalConfigurations/Authorization/constants.ts +16 -0
  314. package/src/Pages/GlobalConfigurations/Authorization/index.ts +1 -0
  315. package/src/Pages/GlobalConfigurations/index.ts +1 -0
  316. package/src/Pages/index.ts +1 -0
  317. package/src/custom.d.ts +13 -0
  318. package/src/index.ts +2 -0
  319. package/tsconfig.json +40 -0
  320. package/dist/Common/CodeEditor/CodeEditor.d.ts +0 -47
  321. package/dist/Common/Select/Select.d.ts +0 -4
  322. package/dist/Common/Select/types.d.ts +0 -29
  323. package/dist/abap-9f67f57a.js +0 -1314
  324. package/dist/apex-ff62e532.js +0 -315
  325. package/dist/assets/editor.worker-d26000ef.js +0 -9
  326. package/dist/assets/index.css +0 -1
  327. package/dist/assets/json.worker-f23a4654.js +0 -40
  328. package/dist/assets/yaml.worker-35ea3f9a.js +0 -467
  329. package/dist/azcli-31e64a7f.js +0 -74
  330. package/dist/bat-0ffe897e.js +0 -95
  331. package/dist/bicep-3414a2b1.js +0 -108
  332. package/dist/cameligo-df1f3f25.js +0 -168
  333. package/dist/clojure-65b0f010.js +0 -754
  334. package/dist/coffee-437f0fba.js +0 -228
  335. package/dist/cpp-66843dd5.js +0 -390
  336. package/dist/csharp-621d9a49.js +0 -320
  337. package/dist/csp-de0d5244.js +0 -57
  338. package/dist/css-7cd5ed4c.js +0 -186
  339. package/dist/cssMode-a5377f5f.js +0 -1446
  340. package/dist/cypher-70ad96fe.js +0 -262
  341. package/dist/dart-33ae3739.js +0 -270
  342. package/dist/dockerfile-f2274a50.js +0 -132
  343. package/dist/ecl-3b8294a3.js +0 -454
  344. package/dist/elixir-b9dcc73a.js +0 -489
  345. package/dist/flow9-bdde8316.js +0 -141
  346. package/dist/freemarker2-5e1b3779.js +0 -643
  347. package/dist/fsharp-eac2e449.js +0 -210
  348. package/dist/go-d12ed8d4.js +0 -208
  349. package/dist/graphql-c7356b69.js +0 -141
  350. package/dist/handlebars-270b858b.js +0 -391
  351. package/dist/hcl-e883a0d4.js +0 -177
  352. package/dist/html-17d697c3.js +0 -281
  353. package/dist/htmlMode-fdad819a.js +0 -1456
  354. package/dist/index-7b4fd218.js +0 -126191
  355. package/dist/ini-425ab711.js +0 -68
  356. package/dist/java-2bc0fd68.js +0 -221
  357. package/dist/javascript-130b13a0.js +0 -75
  358. package/dist/jsonMode-63fba0be.js +0 -1867
  359. package/dist/julia-1c932615.js +0 -496
  360. package/dist/kotlin-1ab839c8.js +0 -245
  361. package/dist/less-6fe856f5.js +0 -168
  362. package/dist/lexon-4955ac52.js +0 -151
  363. package/dist/liquid-276b0428.js +0 -238
  364. package/dist/lua-3cca0047.js +0 -157
  365. package/dist/m3-132e9cb6.js +0 -210
  366. package/dist/markdown-ea59a0c1.js +0 -202
  367. package/dist/mips-19811f4b.js +0 -194
  368. package/dist/msdax-69954a10.js +0 -377
  369. package/dist/mysql-82088e5d.js +0 -876
  370. package/dist/objective-c-1976eccc.js +0 -188
  371. package/dist/pascal-8ef177cb.js +0 -245
  372. package/dist/pascaligo-bc517b9e.js +0 -158
  373. package/dist/perl-8b93582c.js +0 -599
  374. package/dist/pgsql-00c11a6d.js +0 -847
  375. package/dist/php-4c8c276f.js +0 -471
  376. package/dist/pla-e9b4ffb1.js +0 -131
  377. package/dist/postiats-2071af8c.js +0 -544
  378. package/dist/powerquery-8e388ceb.js +0 -890
  379. package/dist/powershell-e35db398.js +0 -233
  380. package/dist/protobuf-a24b9176.js +0 -422
  381. package/dist/pug-2c94d9b8.js +0 -393
  382. package/dist/python-e26d1ef6.js +0 -259
  383. package/dist/qsharp-d730d7fe.js +0 -282
  384. package/dist/r-be193556.js +0 -245
  385. package/dist/razor-dc534522.js +0 -512
  386. package/dist/redis-9690c6ac.js +0 -298
  387. package/dist/redshift-6bdcdeaa.js +0 -806
  388. package/dist/restructuredtext-a08c1d20.js +0 -162
  389. package/dist/ruby-2247692b.js +0 -444
  390. package/dist/rust-1dffb4d5.js +0 -337
  391. package/dist/sb-136598e9.js +0 -110
  392. package/dist/scala-b1100fed.js +0 -353
  393. package/dist/scheme-038c8094.js +0 -114
  394. package/dist/scss-700d1b52.js +0 -244
  395. package/dist/shell-86c16e0f.js +0 -224
  396. package/dist/solidity-c05fdf3c.js +0 -1351
  397. package/dist/sophia-cd645d71.js +0 -190
  398. package/dist/sparql-01d9ec9c.js +0 -193
  399. package/dist/sql-4c33df41.js +0 -818
  400. package/dist/st-52cf1408.js +0 -414
  401. package/dist/swift-13c792ba.js +0 -315
  402. package/dist/systemverilog-0bd8b730.js +0 -556
  403. package/dist/tcl-463d7c75.js +0 -232
  404. package/dist/tsMode-d9e7689f.js +0 -811
  405. package/dist/twig-0d98f5ec.js +0 -323
  406. package/dist/typescript-906e6bfd.js +0 -328
  407. package/dist/vb-3a2b0a51.js +0 -364
  408. package/dist/wgsl-b2ddb3e4.js +0 -420
  409. package/dist/xml-d54abb03.js +0 -95
  410. package/dist/yaml-7ca99575.js +0 -184
@@ -0,0 +1,38 @@
1
+ import { AddCDPositions, AddPipelineType, EdgeEndNodeType, EdgeNodeType, Point } from '../Types'
2
+
3
+ export interface AddCDButtonProps {
4
+ position: AddCDPositions
5
+ addCDButtons: AddCDPositions[]
6
+ endNode: Point & EdgeEndNodeType
7
+ startNode: Point & EdgeNodeType
8
+ handleAddCD: (position: AddCDPositions) => void
9
+ tooltipContent?: string
10
+ }
11
+
12
+ export interface HandleAddCD {
13
+ position: AddCDPositions
14
+ handleCDSelect: (
15
+ workflowId: number | string,
16
+ ciPipelineId: number | string,
17
+ parentPipelineType: string,
18
+ parentPipelineId: number | string,
19
+ isWebhookCD?: boolean,
20
+ childPipelineId?: number | string,
21
+ addType?: AddPipelineType,
22
+ ) => void
23
+ startNode: EdgeNodeType
24
+ endNode: EdgeEndNodeType
25
+ workflowId: number | string
26
+ ciPipelineId: number | string
27
+ isWebhookCD: boolean
28
+ isParallelEdge: boolean
29
+ }
30
+
31
+ export interface GetPipelineType {
32
+ isWebhookCD: boolean
33
+ startNode: EdgeNodeType
34
+ }
35
+
36
+ export interface TooltipContentProps {
37
+ tooltipContent?: string
38
+ }
@@ -0,0 +1,35 @@
1
+ import { AddCDPositions, AddPipelineType, PipelineType, WorkflowNodeType } from '../Types'
2
+ import { HandleAddCD, GetPipelineType } from './types'
3
+
4
+ const getPipelineType = ({ isWebhookCD, startNode }: GetPipelineType) => {
5
+ if (isWebhookCD) {
6
+ return PipelineType.WEBHOOK
7
+ }
8
+
9
+ if (startNode.type === WorkflowNodeType.CI) {
10
+ return PipelineType.CI_PIPELINE
11
+ }
12
+
13
+ return PipelineType.CD_PIPELINE
14
+ }
15
+
16
+ export const handleAddCD = ({
17
+ position,
18
+ handleCDSelect,
19
+ startNode,
20
+ endNode,
21
+ workflowId,
22
+ ciPipelineId,
23
+ isWebhookCD,
24
+ isParallelEdge,
25
+ }: HandleAddCD) => {
26
+ if (!handleCDSelect) {
27
+ return
28
+ }
29
+ const pipelineType = getPipelineType({ isWebhookCD, startNode })
30
+ const addPipelineType =
31
+ isParallelEdge && position === AddCDPositions.RIGHT ? AddPipelineType.PARALLEL : AddPipelineType.SEQUENTIAL
32
+ const endNodeId = !isParallelEdge && position === AddCDPositions.RIGHT ? endNode.id : null
33
+
34
+ handleCDSelect(workflowId, ciPipelineId, pipelineType, startNode.id, isWebhookCD, endNodeId, addPipelineType)
35
+ }
@@ -0,0 +1,251 @@
1
+ import { ServerErrors } from './ServerError'
2
+ import { FALLBACK_REQUEST_TIMEOUT, Host, URLS } from './Constants'
3
+ import { ResponseType, APIOptions } from './Types'
4
+ import { MutableRefObject } from 'react'
5
+
6
+ const responseMessages = {
7
+ 100: 'Continue',
8
+ 101: 'Switching Protocols',
9
+ 102: 'Processing(WebDAV)',
10
+ 200: 'OK',
11
+ 201: 'Created',
12
+ 202: 'Accepted',
13
+ 203: 'Non - Authoritative Information',
14
+ 204: 'No Content',
15
+ 205: 'Reset Content',
16
+ 206: 'Partial Content',
17
+ 207: 'Multi - Status(WebDAV)',
18
+ 208: 'Already Reported(WebDAV)',
19
+ 226: 'IM Used',
20
+ 300: 'Multiple Choices',
21
+ 301: 'Moved Permanently',
22
+ 302: 'Found',
23
+ 303: 'See Other',
24
+ 304: 'Not Modified',
25
+ 305: 'Use Proxy',
26
+ 307: 'Temporary Redirect',
27
+ 308: 'Permanent Redirect(experimental)',
28
+ 400: 'Bad Request',
29
+ 401: 'Unauthorized',
30
+ 402: 'Payment Required',
31
+ 403: 'Forbidden',
32
+ 404: 'Not Found',
33
+ 405: 'Method Not Allowed',
34
+ 406: 'Not Acceptable',
35
+ 407: 'Proxy Authentication Required',
36
+ 408: 'Request Timeout',
37
+ 409: 'Conflict',
38
+ 410: 'Gone',
39
+ 411: 'Length Required',
40
+ 412: 'Precondition Failed',
41
+ 413: 'Request Entity Too Large',
42
+ 414: 'Request - URI Too Long',
43
+ 415: 'Unsupported Media Type',
44
+ 416: 'Requested Range Not Satisfiable',
45
+ 417: 'Expectation Failed',
46
+ 418: "I'm a teapot",
47
+ 420: 'Enhance Your Calm(Twitter)',
48
+ 422: 'Unprocessable Entity(WebDAV)',
49
+ 423: 'Locked(WebDAV)',
50
+ 424: 'Failed Dependency(WebDAV)',
51
+ 425: 'Reserved for WebDAV',
52
+ 426: 'Upgrade Required',
53
+ 428: 'Precondition Required',
54
+ 429: 'Too Many Requests',
55
+ 431: 'Request Header Fields Too Large',
56
+ 444: 'No Response(Nginx)',
57
+ 449: 'Retry With(Microsoft)',
58
+ 450: 'Blocked by Windows Parental Controls(Microsoft)',
59
+ 451: 'Unavailable For Legal Reasons',
60
+ 499: 'Client Closed Request(Nginx)',
61
+ 500: 'Internal Server Error',
62
+ 501: 'Not Implemented',
63
+ 502: 'Bad Gateway',
64
+ 503: 'Service Unavailable',
65
+ 504: 'Gateway Timeout',
66
+ 505: 'HTTP Version Not Supported',
67
+ 506: 'Variant Also Negotiates(Experimental)',
68
+ 507: 'Insufficient Storage(WebDAV)',
69
+ 508: 'Loop Detected(WebDAV)',
70
+ 509: 'Bandwidth Limit Exceeded(Apache)',
71
+ 510: 'Not Extended',
72
+ 511: 'Network Authentication Required',
73
+ 598: 'Network read timeout error',
74
+ 599: 'Network connect timeout error',
75
+ }
76
+
77
+ function handleLogout() {
78
+ const continueParam = `${window.location.pathname.replace(process.env.PUBLIC_URL, '')}${window.location.search}`
79
+ window.location.href = `${window.location.origin}${process.env.PUBLIC_URL}${URLS.LOGIN_SSO}?continue=${continueParam}`
80
+ }
81
+
82
+ async function handleServerError(contentType, response) {
83
+ //Test for HTTP Status Code
84
+ let code: number = response.status
85
+ let status: string = response.statusText || responseMessages[code]
86
+ let serverError = new ServerErrors({ code, errors: [] })
87
+ if (contentType !== 'application/json') {
88
+ //used for better debugging,
89
+ status = `${responseMessages[code]}. Please try again.`
90
+ } else {
91
+ const responseBody = await response.json()
92
+ if (responseBody.errors) {
93
+ serverError.errors = responseBody.errors
94
+ }
95
+ }
96
+ serverError.errors =
97
+ serverError.errors.length > 0 ? serverError.errors : [{ code, internalMessage: status, userMessage: status }]
98
+ throw serverError
99
+ }
100
+
101
+ async function fetchAPI(
102
+ url: string,
103
+ type: string,
104
+ data: object,
105
+ signal: AbortSignal,
106
+ preventAutoLogout = false,
107
+ isMultipartRequest?: boolean,
108
+ ): Promise<ResponseType> {
109
+ let options = {
110
+ method: type,
111
+ signal,
112
+ body: data ? JSON.stringify(data) : undefined,
113
+ }
114
+ options['credentials'] = 'include' as RequestCredentials
115
+ return fetch(
116
+ `${Host}/${url}`,
117
+ !isMultipartRequest
118
+ ? options
119
+ : ({
120
+ method: type,
121
+ body: data,
122
+ } as RequestInit),
123
+ ).then(
124
+ async (response) => {
125
+ let contentType = response.headers.get('Content-Type')
126
+ if (response.status === 401) {
127
+ if (preventAutoLogout) {
128
+ throw new ServerErrors({
129
+ code: 401,
130
+ errors: [
131
+ { code: 401, internalMessage: 'Please login again', userMessage: 'Please login again' },
132
+ ],
133
+ })
134
+ } else {
135
+ handleLogout()
136
+ return { code: 401, status: 'Unauthorized', result: [] }
137
+ }
138
+ } else if (response.status >= 300 && response.status <= 599) {
139
+ return await handleServerError(contentType, response)
140
+ } else {
141
+ if (contentType === 'application/json') {
142
+ return response.json().then((responseBody) => {
143
+ if (responseBody.code >= 300 && responseBody.code <= 599) {
144
+ //Test Code in Response Body, despite successful HTTP Response Code
145
+ throw new ServerErrors({ code: responseBody.code, errors: responseBody.errors })
146
+ } else {
147
+ //Successfull Response. Expected Response Type {code, result, status}
148
+ return responseBody
149
+ }
150
+ })
151
+ } else if (contentType === 'octet-stream' || contentType === 'application/octet-stream') {
152
+ //used in getArtifact() API only
153
+ return response
154
+ }
155
+ }
156
+ },
157
+ (error) => {
158
+ //Network call fails. Handle Failed to Fetch
159
+ let err = {
160
+ code: 0,
161
+ userMessage: error.message,
162
+ internalMessage: error.message,
163
+ moreInfo: error.message,
164
+ }
165
+ throw new ServerErrors({ code: 0, errors: [err] })
166
+ },
167
+ )
168
+ }
169
+
170
+ function fetchInTime(
171
+ url: string,
172
+ type: string,
173
+ data: object,
174
+ options?: APIOptions,
175
+ isMultipartRequest?: boolean,
176
+ ): Promise<ResponseType> {
177
+ const controller = new AbortController()
178
+ const { signal } = controller
179
+ const timeoutPromise: Promise<ResponseType> = new Promise((resolve, reject) => {
180
+ const requestTimeout = (window as any)?._env_?.GLOBAL_API_TIMEOUT || FALLBACK_REQUEST_TIMEOUT
181
+ const timeout = options?.timeout ? options.timeout : requestTimeout
182
+
183
+ setTimeout(() => {
184
+ controller.abort()
185
+ reject({
186
+ code: 408,
187
+ errors: [{ code: 408, internalMessage: 'Request cancelled', userMessage: 'Request Cancelled' }],
188
+ })
189
+ }, timeout)
190
+ })
191
+ return Promise.race([
192
+ fetchAPI(url, type, data, options?.signal || signal, options?.preventAutoLogout || false, isMultipartRequest),
193
+ timeoutPromise,
194
+ ]).catch((err) => {
195
+ if (err instanceof ServerErrors) {
196
+ throw err
197
+ } else {
198
+ throw new ServerErrors({
199
+ code: 408,
200
+ errors: [
201
+ {
202
+ code: 408,
203
+ internalMessage: 'That took longer than expected.',
204
+ userMessage: 'That took longer than expected.',
205
+ },
206
+ ],
207
+ })
208
+ }
209
+ })
210
+ }
211
+
212
+ export const post = (
213
+ url: string,
214
+ data: object,
215
+ options?: APIOptions,
216
+ isMultipartRequest?: boolean,
217
+ ): Promise<ResponseType> => {
218
+ return fetchInTime(url, 'POST', data, options, isMultipartRequest)
219
+ }
220
+
221
+ export const put = (url: string, data: object, options?: APIOptions): Promise<ResponseType> => {
222
+ return fetchInTime(url, 'PUT', data, options)
223
+ }
224
+
225
+ export const get = (url: string, options?: APIOptions): Promise<ResponseType> => {
226
+ return fetchInTime(url, 'GET', null, options)
227
+ }
228
+
229
+ export const trash = (url: string, data?: object, options?: APIOptions): Promise<ResponseType> => {
230
+ return fetchInTime(url, 'DELETE', data, options)
231
+ }
232
+
233
+ /**
234
+ * Aborts the previous request before triggering next request
235
+ */
236
+ export const abortPreviousRequests = <T,>(
237
+ callback: () => Promise<T>,
238
+ abortControllerRef: MutableRefObject<AbortController>,
239
+ ): Promise<T> => {
240
+ abortControllerRef.current.abort()
241
+ // eslint-disable-next-line no-param-reassign
242
+ abortControllerRef.current = new AbortController()
243
+ return callback()
244
+ }
245
+
246
+ /**
247
+ * Returns true if the error is due to a aborted request
248
+ */
249
+ export const getIsRequestAborted = (error) =>
250
+ // The 0 code is common for aborted and blocked requests
251
+ error && error.code === 0 && error.message === 'The user aborted a request.'
@@ -0,0 +1,64 @@
1
+ import Tippy from '@tippyjs/react'
2
+ import { ReactComponent as InfoIcon } from '../../Assets/Icon/ic-info-outlined.svg'
3
+ import { StatusConstants, YET_TO_RUN } from './constants'
4
+ import { AppStatusType } from './types'
5
+ import { triggerStatus } from './utils'
6
+
7
+ export default function AppStatus({
8
+ appStatus,
9
+ isDeploymentStatus = false,
10
+ isJobView = false,
11
+ isVirtualEnv,
12
+ hideStatusMessage = false,
13
+ }: AppStatusType) {
14
+ let status = appStatus
15
+ if (isDeploymentStatus) {
16
+ status = triggerStatus(appStatus)
17
+ }
18
+ const appStatusLowerCase = status?.toLowerCase()
19
+ const isNotDeployed = appStatusLowerCase === StatusConstants.NOT_DEPLOYED.noSpaceLower
20
+ const iconClass = isNotDeployed ? StatusConstants.NOT_DEPLOYED.lowerCase : appStatusLowerCase
21
+ const statusMessage = status || (isVirtualEnv ? StatusConstants.NOT_AVILABLE.normalCase : '-')
22
+ const notDeployed = isJobView ? YET_TO_RUN : StatusConstants.NOT_DEPLOYED.normalCase
23
+ const textContent = isNotDeployed ? notDeployed : statusMessage
24
+
25
+ const renderIcon = () => {
26
+ if (iconClass) {
27
+ return <span className={`dc__app-summary__icon icon-dim-16 ${iconClass} ${iconClass}--node`} />
28
+ } else if (isVirtualEnv) {
29
+ return (
30
+ <span
31
+ className={`dc__app-summary__icon icon-dim-16 ${StatusConstants.NOT_DEPLOYED.lowerCase} ${StatusConstants.NOT_DEPLOYED.lowerCase}--node`}
32
+ />
33
+ )
34
+ } else {
35
+ return (
36
+ <Tippy
37
+ className="default-tt w-200"
38
+ arrow={false}
39
+ placement="top"
40
+ content="To fetch app status for GitOps based deployments open the app detail page"
41
+ >
42
+ <InfoIcon className="icon-dim-16 fcn-6" />
43
+ </Tippy>
44
+ )
45
+ }
46
+ }
47
+
48
+ return hideStatusMessage ? (
49
+ iconClass || isVirtualEnv ? (
50
+ <Tippy className="default-tt" arrow={false} placement="top" content={textContent}>
51
+ <div className="flex">{renderIcon()}</div>
52
+ </Tippy>
53
+ ) : (
54
+ renderIcon()
55
+ )
56
+ ) : (
57
+ <div className="flex left">
58
+ <div className="flex mr-6">{renderIcon()}</div>
59
+ <p data-testid={`${status}-app-status`} className="dc__truncate-text dc__first-letter-capitalize cn-6 m-0">
60
+ {textContent}
61
+ </p>
62
+ </div>
63
+ )
64
+ }
@@ -0,0 +1,53 @@
1
+ export const StatusConstants = {
2
+ NOT_DEPLOYED: {
3
+ noSpaceLower: 'notdeployed',
4
+ normalCase: 'Not deployed',
5
+ lowerCase: 'not-deployed',
6
+ },
7
+ APP_STATUS: {
8
+ noSpaceLower: 'appStatus',
9
+ normalText: 'App status',
10
+ },
11
+ PROJECT: {
12
+ pluralLower: 'projects',
13
+ lowerCase: 'project',
14
+ },
15
+ CLUSTER: {
16
+ pluralLower: 'clusters',
17
+ lowerCase: 'cluster',
18
+ },
19
+ NAMESPACE: {
20
+ pluralLower: 'namespaces',
21
+ lowerCase: 'namespace',
22
+ },
23
+ ENVIRONMENT: {
24
+ pluralLower: 'environments',
25
+ lowerCase: 'environment',
26
+ },
27
+ NOT_AVILABLE: {
28
+ normalCase: 'Not available',
29
+ },
30
+ }
31
+
32
+ export enum TIMELINE_STATUS {
33
+ DEPLOYMENT_INITIATED = 'DEPLOYMENT_INITIATED',
34
+ GIT_COMMIT = 'GIT_COMMIT',
35
+ GIT_COMMIT_FAILED = 'GIT_COMMIT_FAILED',
36
+ KUBECTL_APPLY = 'KUBECTL_APPLY',
37
+ KUBECTL_APPLY_STARTED = 'KUBECTL_APPLY_STARTED',
38
+ KUBECTL_APPLY_SYNCED = 'KUBECTL_APPLY_SYNCED',
39
+ HEALTHY = 'HEALTHY',
40
+ APP_HEALTH = 'APP_HEALTH',
41
+ DEPLOYMENT_FAILED = 'FAILED',
42
+ FETCH_TIMED_OUT = 'TIMED_OUT',
43
+ UNABLE_TO_FETCH_STATUS = 'UNABLE_TO_FETCH_STATUS',
44
+ DEGRADED = 'DEGRADED',
45
+ DEPLOYMENT_SUPERSEDED = 'DEPLOYMENT_SUPERSEDED',
46
+ ABORTED = 'ABORTED',
47
+ INPROGRESS = 'INPROGRESS',
48
+ HELM_PACKAGE_GENERATED = 'HELM_PACKAGE_GENERATED',
49
+ HELM_MANIFEST_PUSHED_TO_HELM_REPO = 'HELM_MANIFEST_PUSHED_TO_HELM_REPO',
50
+ HELM_MANIFEST_PUSHED_TO_HELM_REPO_FAILED = 'HELM_MANIFEST_PUSHED_TO_HELM_REPO_FAILED',
51
+ }
52
+
53
+ export const YET_TO_RUN = 'Yet to run'
@@ -0,0 +1 @@
1
+ export { default as AppStatus } from './AppStatus'
@@ -0,0 +1,12 @@
1
+ export interface AppStatusType {
2
+ appStatus: string
3
+ isDeploymentStatus?: boolean
4
+ isJobView?: boolean
5
+ isVirtualEnv?: boolean
6
+ /**
7
+ * Hide the status message if true and show status message in tooltip
8
+ *
9
+ * @default false
10
+ */
11
+ hideStatusMessage?: boolean
12
+ }
@@ -0,0 +1,14 @@
1
+ import { TIMELINE_STATUS } from './constants'
2
+
3
+ export const triggerStatus = (triggerDetailStatus: string): string => {
4
+ let triggerStatus = triggerDetailStatus?.toUpperCase()
5
+ if (triggerStatus === TIMELINE_STATUS.ABORTED || triggerStatus === TIMELINE_STATUS.DEGRADED) {
6
+ return 'Failed'
7
+ } else if (triggerStatus === TIMELINE_STATUS.HEALTHY) {
8
+ return 'Succeeded'
9
+ } else if (triggerStatus === TIMELINE_STATUS.INPROGRESS) {
10
+ return 'Inprogress'
11
+ } else {
12
+ return triggerDetailStatus
13
+ }
14
+ }
@@ -0,0 +1,105 @@
1
+ import React, { useMemo, useEffect } from 'react'
2
+ import { Link, useRouteMatch, useParams } from 'react-router-dom'
3
+ import { useBreadcrumbContext } from './BreadcrumbStore'
4
+ import { ConditionalWrap } from '../Helper'
5
+ import { Breadcrumb, Breadcrumbs, UseBreadcrumbOptionalProps, UseBreadcrumbState } from './Types'
6
+ export const BreadcrumbContext = React.createContext(null)
7
+
8
+ export function useBreadcrumb(props?: UseBreadcrumbOptionalProps, deps?: any[]): UseBreadcrumbState {
9
+ let sep = props?.sep || '/'
10
+ deps = deps || []
11
+ const { url, path } = useRouteMatch()
12
+ const params = useParams()
13
+ const { state, setState } = useBreadcrumbContext()
14
+
15
+ useEffect(() => {
16
+ if (!props || !props.alias) return
17
+ setState((state) => ({ ...state, alias: { ...state.alias, ...props.alias } }))
18
+ return () => resetCrumb(Object.keys(props.alias))
19
+ }, deps)
20
+
21
+ function setCrumb(props) {
22
+ setState((state) => ({ ...state, alias: { ...state.alias, ...props } }))
23
+ }
24
+
25
+ function resetCrumb(props: string[]) {
26
+ const tempAlias = props.reduce((agg, curr, idx) => {
27
+ delete agg[curr]
28
+ return agg
29
+ }, state.alias)
30
+ setState((state) => ({ ...state, alias: tempAlias }))
31
+ }
32
+
33
+ let levels: Breadcrumb[] = useMemo(() => {
34
+ const paths = path.split('/').filter(Boolean)
35
+ const urls = url.split('/').filter(Boolean)
36
+ return paths.map((path, idx) => {
37
+ const crumb: Breadcrumb = { to: urls[idx], name: path }
38
+ if (path.startsWith(':') && params[path.replace(':', '')]) {
39
+ crumb.className = 'param'
40
+ }
41
+ return crumb
42
+ })
43
+ }, [path, url])
44
+ const { res: breadcrumbs } = useMemo(() => {
45
+ return levels.reduce(
46
+ (agg, curr, idx) => {
47
+ const { res, prefix } = agg
48
+ const { to, name } = curr
49
+ res.push({
50
+ to:
51
+ !state.alias[name]?.component || (state.alias[name]?.component && state.alias[name]?.linked)
52
+ ? `${prefix}${to}`
53
+ : null,
54
+ name:
55
+ typeof state.alias[name] === 'object'
56
+ ? !!state.alias[name]?.component
57
+ ? state.alias[name].component
58
+ : null
59
+ : state.alias[name] || name,
60
+ className: curr.className || '',
61
+ })
62
+ return { res, prefix: `${prefix}${curr.to}${sep}` }
63
+ },
64
+ { res: [], prefix: '/' },
65
+ )
66
+ }, [levels, state])
67
+
68
+ return { breadcrumbs, setCrumb, resetCrumb }
69
+ }
70
+
71
+ export const BreadCrumb: React.FC<Breadcrumbs> = ({
72
+ breadcrumbs,
73
+ sep = '/',
74
+ className = 'dc__devtron-breadcrumb__item',
75
+ }) => {
76
+ const { url } = useRouteMatch()
77
+ const filteredCrumbs = breadcrumbs.filter((crumb) => !!crumb.name)
78
+ return (
79
+ <React.Fragment>
80
+ {filteredCrumbs.map((breadcrumb, idx) => (
81
+ <React.Fragment key={idx}>
82
+ <ConditionalWrap
83
+ condition={!!breadcrumb.to}
84
+ wrap={(children) => (
85
+ <Link
86
+ className={`${url === breadcrumb.to ? 'active' : ''} ${className} ${
87
+ breadcrumb.className || ''
88
+ }`}
89
+ to={breadcrumb.to}
90
+ >
91
+ {children}
92
+ </Link>
93
+ )}
94
+ >
95
+ {breadcrumb.name}
96
+ </ConditionalWrap>
97
+
98
+ {idx + 1 !== filteredCrumbs.length && breadcrumb.name && (
99
+ <span className={`${className}__separator cn-5`}>{sep}</span>
100
+ )}
101
+ </React.Fragment>
102
+ ))}
103
+ </React.Fragment>
104
+ )
105
+ }
@@ -0,0 +1,25 @@
1
+ import React, { createContext, useState } from 'react'
2
+
3
+ const initialState = {
4
+ alias: {},
5
+ }
6
+
7
+ const Store = ({ children }) => {
8
+ const [state, setState] = useState(initialState)
9
+ return <BreadcrumbContext.Provider value={{ state, setState }}>{children}</BreadcrumbContext.Provider>
10
+ }
11
+
12
+ export const BreadcrumbContext = createContext({
13
+ state: { alias: {} },
14
+ setState: null,
15
+ })
16
+
17
+ export function useBreadcrumbContext() {
18
+ const context = React.useContext(BreadcrumbContext)
19
+ if (!context) {
20
+ throw new Error(`breadcrumb components cannot be used outside Breadcrumb context`)
21
+ }
22
+ return context
23
+ }
24
+
25
+ export default Store
@@ -0,0 +1,30 @@
1
+
2
+ export interface Breadcrumb {
3
+ to: string
4
+ name: string
5
+ className?: string
6
+ }
7
+
8
+ export interface UseBreadcrumbState {
9
+ breadcrumbs: Breadcrumb[]
10
+ setCrumb: (props: { [key: string]: any }) => void
11
+ resetCrumb: (props: string[]) => void
12
+ }
13
+
14
+ export interface AdvancedAlias {
15
+ component: any
16
+ linked: boolean
17
+ }
18
+
19
+ export interface UseBreadcrumbProps {
20
+ sep?: string
21
+ alias?: { [key: string]: AdvancedAlias | any }
22
+ }
23
+
24
+ export interface Breadcrumbs {
25
+ breadcrumbs: Breadcrumb[]
26
+ sep?: string
27
+ className?: string
28
+ }
29
+
30
+ export type UseBreadcrumbOptionalProps = UseBreadcrumbProps | null