@devtron-labs/devtron-fe-common-lib 0.0.63-beta-2 → 0.0.63-beta-5

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 (479) hide show
  1. package/.eslintignore +96 -0
  2. package/.eslintrc.js +109 -0
  3. package/.github/pull_request_template.md +25 -0
  4. package/.github/workflows/ci.yml +31 -0
  5. package/.github/workflows/release-package.yml +48 -0
  6. package/.husky/pre-commit +5 -0
  7. package/.lintstagedrc +3 -0
  8. package/.nvmrc +1 -0
  9. package/.prettierrc.js +7 -0
  10. package/dist/Common/AddCDButton/AddCDButton.d.ts +3 -3
  11. package/dist/Common/AddCDButton/index.d.ts +2 -2
  12. package/dist/Common/AddCDButton/types.d.ts +26 -26
  13. package/dist/Common/AddCDButton/utils.d.ts +2 -2
  14. package/dist/Common/Api.d.ts +14 -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 +90 -96
  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 +30 -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 +59 -6
  76. package/dist/Common/Hooks/useUrlFilters/useUrlFilters.d.ts +20 -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 +17 -16
  120. package/dist/Common/RadioGroup.d.ts +8 -8
  121. package/dist/Common/Reload.d.ts +3 -3
  122. package/dist/Common/ResizableTextarea.d.ts +3 -3
  123. package/dist/Common/SearchBar/SearchBar.component.d.ts +39 -37
  124. package/dist/Common/SearchBar/index.d.ts +2 -2
  125. package/dist/Common/SearchBar/types.d.ts +35 -35
  126. package/dist/Common/Security/ScanVulnerabilitiesTable.d.ts +4 -3
  127. package/dist/Common/ServerError.d.ts +15 -15
  128. package/dist/Common/SortableTableHeaderCell/SortableTableHeaderCell.d.ts +18 -17
  129. package/dist/Common/SortableTableHeaderCell/index.d.ts +2 -2
  130. package/dist/Common/SortableTableHeaderCell/types.d.ts +25 -25
  131. package/dist/Common/TippyCustomized.d.ts +4 -2
  132. package/dist/Common/ToastBody.d.ts +23 -23
  133. package/dist/Common/Toggle/Toggle.d.ts +14 -12
  134. package/dist/Common/Types.d.ts +704 -704
  135. package/dist/Common/index.d.ts +51 -51
  136. package/dist/Pages/GlobalConfigurations/Authorization/constants.d.ts +19 -15
  137. package/dist/Pages/GlobalConfigurations/Authorization/index.d.ts +2 -1
  138. package/dist/Pages/GlobalConfigurations/Authorization/types.d.ts +23 -0
  139. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraConfigForm.d.ts +4 -4
  140. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraDescriptionField.d.ts +4 -4
  141. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormAction.d.ts +7 -7
  142. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormItem.d.ts +4 -4
  143. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraProfileNameField.d.ts +4 -4
  144. package/dist/Pages/GlobalConfigurations/BuildInfra/Descriptor.d.ts +4 -3
  145. package/dist/Pages/GlobalConfigurations/BuildInfra/Footer.d.ts +4 -4
  146. package/dist/Pages/GlobalConfigurations/BuildInfra/constants.d.ts +50 -50
  147. package/dist/Pages/GlobalConfigurations/BuildInfra/index.d.ts +7 -7
  148. package/dist/Pages/GlobalConfigurations/BuildInfra/services.d.ts +6 -6
  149. package/dist/Pages/GlobalConfigurations/BuildInfra/types.d.ts +286 -286
  150. package/dist/Pages/GlobalConfigurations/BuildInfra/utils.d.ts +12 -12
  151. package/dist/Pages/GlobalConfigurations/index.d.ts +2 -2
  152. package/dist/Pages/index.d.ts +1 -1
  153. package/dist/Shared/Components/APIResponseHandler/APIResponseHandler.d.ts +4 -3
  154. package/dist/Shared/Components/APIResponseHandler/constants.d.ts +4 -4
  155. package/dist/Shared/Components/APIResponseHandler/index.d.ts +2 -2
  156. package/dist/Shared/Components/APIResponseHandler/types.d.ts +37 -37
  157. package/dist/Shared/Components/BulkSelection/BulkSelection.d.ts +4 -3
  158. package/dist/Shared/Components/BulkSelection/BulkSelectionDropdownItems.d.ts +4 -3
  159. package/dist/Shared/Components/BulkSelection/BulkSelectionProvider.d.ts +4 -3
  160. package/dist/Shared/Components/BulkSelection/constants.d.ts +10 -10
  161. package/dist/Shared/Components/BulkSelection/index.d.ts +4 -4
  162. package/dist/Shared/Components/BulkSelection/types.d.ts +57 -54
  163. package/dist/Shared/Components/FilterChips/FilterChips.component.d.ts +7 -0
  164. package/dist/Shared/Components/FilterChips/index.d.ts +2 -0
  165. package/dist/Shared/Components/FilterChips/types.d.ts +37 -0
  166. package/dist/Shared/Components/ReactSelect/index.d.ts +1 -1
  167. package/dist/Shared/Components/ReactSelect/utils.d.ts +12 -11
  168. package/dist/Shared/Components/index.d.ts +4 -3
  169. package/dist/Shared/Helpers.d.ts +16 -16
  170. package/dist/Shared/index.d.ts +3 -3
  171. package/dist/Shared/validations.d.ts +8 -8
  172. package/dist/index.d.ts +3 -9
  173. package/dist/index.js +30474 -216
  174. package/package.json +23 -34
  175. package/rollup.config.js +31 -0
  176. package/src/Assets/Icon/ic-add.svg +3 -0
  177. package/src/Assets/Icon/ic-appstatus-cancelled.svg +6 -0
  178. package/src/Assets/Icon/ic-arrow-counter-clockwise.svg +5 -0
  179. package/src/Assets/Icon/ic-arrow-up-down.svg +3 -0
  180. package/src/Assets/Icon/ic-check-all.svg +5 -0
  181. package/src/Assets/Icon/ic-check-square.svg +4 -0
  182. package/src/Assets/Icon/ic-check.svg +5 -0
  183. package/src/Assets/Icon/ic-chevron-down.svg +5 -0
  184. package/src/Assets/Icon/ic-close.svg +9 -0
  185. package/src/Assets/Icon/ic-copy.svg +3 -0
  186. package/src/Assets/Icon/ic-cpu.svg +4 -0
  187. package/src/Assets/Icon/ic-cross.svg +3 -0
  188. package/src/Assets/Icon/ic-drag.svg +8 -0
  189. package/src/Assets/Icon/ic-enter.svg +3 -0
  190. package/src/Assets/Icon/ic-error-cross.svg +8 -0
  191. package/src/Assets/Icon/ic-error-exclamation.svg +6 -0
  192. package/src/Assets/Icon/ic-error-medium.svg +6 -0
  193. package/src/Assets/Icon/ic-help-outline.svg +3 -0
  194. package/src/Assets/Icon/ic-help.svg +3 -0
  195. package/src/Assets/Icon/ic-info-filled.svg +7 -0
  196. package/src/Assets/Icon/ic-info-outlined.svg +13 -0
  197. package/src/Assets/Icon/ic-memory.svg +3 -0
  198. package/src/Assets/Icon/ic-minus.svg +3 -0
  199. package/src/Assets/Icon/ic-pencil.svg +3 -0
  200. package/src/Assets/Icon/ic-progressing.svg +6 -0
  201. package/src/Assets/Icon/ic-rotate-devtron.svg +103 -0
  202. package/src/Assets/Icon/ic-search.svg +6 -0
  203. package/src/Assets/Icon/ic-sort-arrow-down.svg +3 -0
  204. package/src/Assets/Icon/ic-timer.svg +3 -0
  205. package/src/Assets/Icon/ic-warning.svg +7 -0
  206. package/src/Assets/Icon/inject-tag.svg +5 -0
  207. package/src/Assets/Img/app-not-deployed.png +0 -0
  208. package/src/Assets/Img/delete-medium.svg +15 -0
  209. package/src/Assets/Img/ic-empty-error@2x.png +0 -0
  210. package/src/Assets/Img/ic-loading-failure.png +0 -0
  211. package/src/Assets/Img/ic-not-authorized.svg +62 -0
  212. package/src/Common/AddCDButton/AddCDButton.tsx +68 -0
  213. package/src/Common/AddCDButton/index.ts +2 -0
  214. package/src/Common/AddCDButton/types.ts +38 -0
  215. package/src/Common/AddCDButton/utils.tsx +35 -0
  216. package/src/Common/Api.ts +251 -0
  217. package/src/Common/AppStatus/AppStatus.tsx +64 -0
  218. package/src/Common/AppStatus/constants.ts +53 -0
  219. package/src/Common/AppStatus/index.ts +1 -0
  220. package/src/Common/AppStatus/types.ts +12 -0
  221. package/src/Common/AppStatus/utils.ts +14 -0
  222. package/src/Common/BreadCrumb/BreadCrumb.tsx +105 -0
  223. package/src/Common/BreadCrumb/BreadcrumbStore.tsx +25 -0
  224. package/src/Common/BreadCrumb/Types.ts +29 -0
  225. package/src/Common/CIPipeline.Types.ts +277 -0
  226. package/src/Common/ChartVersionAndTypeSelector.tsx +78 -0
  227. package/src/Common/Checkbox.tsx +37 -0
  228. package/src/Common/ClipboardButton/ClipboardButton.tsx +61 -0
  229. package/src/Common/ClipboardButton/__tests__/ClipboardButton.test.tsx +43 -0
  230. package/src/Common/ClipboardButton/types.ts +7 -0
  231. package/src/Common/Common.service.ts +315 -0
  232. package/src/Common/Constants.ts +271 -0
  233. package/src/Common/CustomInput/CustomInput.tsx +135 -0
  234. package/src/Common/CustomInput/Types.ts +32 -0
  235. package/src/Common/CustomInput/index.ts +2 -0
  236. package/src/Common/CustomTagSelector/PropagateTagInfo.tsx +46 -0
  237. package/src/Common/CustomTagSelector/ResizableTagTextArea.tsx +84 -0
  238. package/src/Common/CustomTagSelector/TagDetails.tsx +76 -0
  239. package/src/Common/CustomTagSelector/TagLabelSelect.tsx +61 -0
  240. package/src/Common/CustomTagSelector/TagLabelValueSelector.tsx +198 -0
  241. package/src/Common/CustomTagSelector/TagSelector.utils.ts +71 -0
  242. package/src/Common/CustomTagSelector/Types.ts +72 -0
  243. package/src/Common/CustomTagSelector/ValidationRules.ts +58 -0
  244. package/src/Common/CustomTagSelector/index.ts +6 -0
  245. package/src/Common/DebouncedSearch/DebouncedSearch.tsx +78 -0
  246. package/src/Common/DebouncedSearch/Types.ts +13 -0
  247. package/src/Common/DebouncedSearch/Utils.ts +19 -0
  248. package/src/Common/DebouncedSearch/__tests__/DebouncedSearch.test.tsx +61 -0
  249. package/src/Common/DeleteComponentModal/DeleteComponent.tsx +95 -0
  250. package/src/Common/DeleteComponentModal/types.ts +15 -0
  251. package/src/Common/DevtronProgressing/DevtronProgressing.tsx +11 -0
  252. package/src/Common/DevtronProgressing/index.ts +1 -0
  253. package/src/Common/DevtronProgressing/types.ts +4 -0
  254. package/src/Common/Dialogs/ConfirmationDialog.tsx +34 -0
  255. package/src/Common/Dialogs/DeleteDialog.tsx +69 -0
  256. package/src/Common/Dialogs/DialogForm.tsx +86 -0
  257. package/src/Common/Dialogs/ForceDeleteDialog.tsx +19 -0
  258. package/src/Common/Dialogs/Types.ts +47 -0
  259. package/src/Common/Dialogs/index.ts +4 -0
  260. package/src/Common/DraggableWrapper/DraggableButton.tsx +14 -0
  261. package/src/Common/DraggableWrapper/DraggableWrapper.tsx +121 -0
  262. package/src/Common/DraggableWrapper/index.ts +3 -0
  263. package/src/Common/DraggableWrapper/types.ts +34 -0
  264. package/src/Common/Drawer/Drawer.scss +40 -0
  265. package/src/Common/Drawer/Drawer.tsx +49 -0
  266. package/src/Common/EmptyState/EmptyState.tsx +42 -0
  267. package/src/Common/EmptyState/GenericEmptyState.tsx +81 -0
  268. package/src/Common/EmptyState/emptyState.scss +74 -0
  269. package/src/Common/Error.tsx +61 -0
  270. package/src/Common/ErrorScreenNotFound.tsx +31 -0
  271. package/src/Common/Grid/Grid.tsx +44 -0
  272. package/src/Common/Grid/types.ts +11 -0
  273. package/src/Common/Helper.tsx +596 -0
  274. package/src/Common/Hooks/UseClickOutside/UseClickOutside.tsx +15 -0
  275. package/src/Common/Hooks/UseSuperAdmin/UseSuperAdmin.tsx +24 -0
  276. package/src/Common/Hooks/UseSuperAdmin/types.ts +3 -0
  277. package/src/Common/Hooks/UseWindowSize/UseWindowSize.tsx +31 -0
  278. package/src/Common/Hooks/index.ts +4 -0
  279. package/src/Common/Hooks/useUrlFilters/constants.ts +9 -0
  280. package/src/Common/Hooks/useUrlFilters/index.ts +2 -0
  281. package/src/Common/Hooks/useUrlFilters/types.ts +61 -0
  282. package/src/Common/Hooks/useUrlFilters/useUrlFilters.ts +143 -0
  283. package/src/Common/ImageTags.Types.ts +44 -0
  284. package/src/Common/ImageTags.tsx +586 -0
  285. package/src/Common/InfoColorBar/InfoColourbar.tsx +80 -0
  286. package/src/Common/InfoColorBar/infoColourBar.scss +28 -0
  287. package/src/Common/Modals/Modal.tsx +68 -0
  288. package/src/Common/Modals/OpaqueModal.tsx +36 -0
  289. package/src/Common/Modals/VisibleModal.tsx +55 -0
  290. package/src/Common/Modals/VisibleModal2.tsx +35 -0
  291. package/src/Common/MultiSelectCustomization.tsx +148 -0
  292. package/src/Common/Pagination/PageSizeSelector.tsx +78 -0
  293. package/src/Common/Pagination/Pagination.tsx +127 -0
  294. package/src/Common/Pagination/constants.ts +6 -0
  295. package/src/Common/Pagination/index.tsx +3 -0
  296. package/src/Common/Pagination/pagination.scss +123 -0
  297. package/src/Common/Pagination/types.ts +55 -0
  298. package/src/Common/Pagination/utils.tsx +24 -0
  299. package/src/Common/Policy.Types.ts +63 -0
  300. package/src/Common/PopupMenu.tsx +199 -0
  301. package/src/Common/Progressing.tsx +53 -0
  302. package/src/Common/RJSF/Form.tsx +29 -0
  303. package/src/Common/RJSF/common/FieldRow.tsx +35 -0
  304. package/src/Common/RJSF/common/types.ts +9 -0
  305. package/src/Common/RJSF/config.ts +37 -0
  306. package/src/Common/RJSF/constants.ts +10 -0
  307. package/src/Common/RJSF/index.ts +3 -0
  308. package/src/Common/RJSF/rjsfForm.scss +18 -0
  309. package/src/Common/RJSF/templates/ArrayFieldItemTemplate.tsx +31 -0
  310. package/src/Common/RJSF/templates/ArrayFieldTemplate.tsx +78 -0
  311. package/src/Common/RJSF/templates/BaseInput.tsx +16 -0
  312. package/src/Common/RJSF/templates/ButtonTemplates/AddButton.tsx +18 -0
  313. package/src/Common/RJSF/templates/ButtonTemplates/RemoveButton.tsx +10 -0
  314. package/src/Common/RJSF/templates/ButtonTemplates/SubmitButton.tsx +18 -0
  315. package/src/Common/RJSF/templates/ButtonTemplates/index.ts +3 -0
  316. package/src/Common/RJSF/templates/Description.tsx +12 -0
  317. package/src/Common/RJSF/templates/Field.tsx +30 -0
  318. package/src/Common/RJSF/templates/FieldErrorTemplate.tsx +25 -0
  319. package/src/Common/RJSF/templates/ObjectFieldTemplate.tsx +105 -0
  320. package/src/Common/RJSF/templates/TitleField.tsx +9 -0
  321. package/src/Common/RJSF/templates/WrapIfAdditionalTemplate.tsx +51 -0
  322. package/src/Common/RJSF/templates/index.ts +10 -0
  323. package/src/Common/RJSF/types.ts +4 -0
  324. package/src/Common/RJSF/utils.ts +125 -0
  325. package/src/Common/RJSF/widgets/Checkbox.tsx +44 -0
  326. package/src/Common/RJSF/widgets/Select.tsx +77 -0
  327. package/src/Common/RJSF/widgets/index.ts +2 -0
  328. package/src/Common/RadioGroup/RadioGroup.tsx +105 -0
  329. package/src/Common/RadioGroup/radioGroup.scss +46 -0
  330. package/src/Common/RadioGroup.tsx +53 -0
  331. package/src/Common/Reload.tsx +23 -0
  332. package/src/Common/ResizableTextarea.tsx +73 -0
  333. package/src/Common/SearchBar/SearchBar.component.tsx +131 -0
  334. package/src/Common/SearchBar/index.ts +2 -0
  335. package/src/Common/SearchBar/searchBar.scss +31 -0
  336. package/src/Common/SearchBar/types.ts +34 -0
  337. package/src/Common/Security/ScanVulnerabilitiesTable.tsx +55 -0
  338. package/src/Common/Security/scanVulnerabilities.css +69 -0
  339. package/src/Common/ServerError.ts +31 -0
  340. package/src/Common/SortableTableHeaderCell/SortableTableHeaderCell.tsx +44 -0
  341. package/src/Common/SortableTableHeaderCell/index.ts +2 -0
  342. package/src/Common/SortableTableHeaderCell/types.ts +26 -0
  343. package/src/Common/TippyCustomized.tsx +172 -0
  344. package/src/Common/ToastBody.tsx +62 -0
  345. package/src/Common/Toggle/Toggle.scss +78 -0
  346. package/src/Common/Toggle/Toggle.tsx +50 -0
  347. package/src/Common/Types.ts +778 -0
  348. package/src/Common/index.ts +51 -0
  349. package/src/Pages/GlobalConfigurations/Authorization/constants.ts +21 -0
  350. package/src/Pages/GlobalConfigurations/Authorization/index.ts +2 -0
  351. package/src/Pages/GlobalConfigurations/Authorization/types.ts +25 -0
  352. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraConfigForm.tsx +127 -0
  353. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraDescriptionField.tsx +44 -0
  354. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormAction.tsx +106 -0
  355. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormItem.tsx +55 -0
  356. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraProfileNameField.tsx +32 -0
  357. package/src/Pages/GlobalConfigurations/BuildInfra/Descriptor.tsx +45 -0
  358. package/src/Pages/GlobalConfigurations/BuildInfra/Footer.tsx +56 -0
  359. package/src/Pages/GlobalConfigurations/BuildInfra/Readme.md +4 -0
  360. package/src/Pages/GlobalConfigurations/BuildInfra/constants.tsx +138 -0
  361. package/src/Pages/GlobalConfigurations/BuildInfra/index.ts +7 -0
  362. package/src/Pages/GlobalConfigurations/BuildInfra/services.tsx +167 -0
  363. package/src/Pages/GlobalConfigurations/BuildInfra/types.tsx +339 -0
  364. package/src/Pages/GlobalConfigurations/BuildInfra/utils.tsx +506 -0
  365. package/src/Pages/GlobalConfigurations/index.ts +2 -0
  366. package/src/Pages/index.ts +1 -0
  367. package/src/Shared/Components/APIResponseHandler/APIResponseHandler.tsx +41 -0
  368. package/src/Shared/Components/APIResponseHandler/constants.tsx +5 -0
  369. package/src/Shared/Components/APIResponseHandler/index.ts +2 -0
  370. package/src/Shared/Components/APIResponseHandler/types.tsx +39 -0
  371. package/src/Shared/Components/BulkSelection/BulkSelection.tsx +79 -0
  372. package/src/Shared/Components/BulkSelection/BulkSelectionDropdownItems.tsx +34 -0
  373. package/src/Shared/Components/BulkSelection/BulkSelectionProvider.tsx +182 -0
  374. package/src/Shared/Components/BulkSelection/constants.tsx +14 -0
  375. package/src/Shared/Components/BulkSelection/index.ts +4 -0
  376. package/src/Shared/Components/BulkSelection/types.tsx +68 -0
  377. package/src/Shared/Components/FilterChips/FilterChips.component.tsx +100 -0
  378. package/src/Shared/Components/FilterChips/index.ts +2 -0
  379. package/src/Shared/Components/FilterChips/types.ts +39 -0
  380. package/src/Shared/Components/ReactSelect/index.ts +1 -0
  381. package/src/Shared/Components/ReactSelect/utils.tsx +97 -0
  382. package/src/Shared/Components/index.ts +4 -0
  383. package/src/Shared/Helpers.tsx +29 -0
  384. package/src/Shared/index.ts +3 -0
  385. package/src/Shared/validations.tsx +130 -0
  386. package/src/custom.d.ts +13 -0
  387. package/src/index.ts +3 -0
  388. package/tsconfig.json +40 -0
  389. package/dist/Common/CodeEditor/CodeEditor.d.ts +0 -47
  390. package/dist/Common/Select/Select.d.ts +0 -4
  391. package/dist/Common/Select/types.d.ts +0 -29
  392. package/dist/abap-9f67f57a.js +0 -1314
  393. package/dist/apex-ff62e532.js +0 -315
  394. package/dist/assets/editor.worker-d26000ef.js +0 -9
  395. package/dist/assets/index.css +0 -1
  396. package/dist/assets/json.worker-f23a4654.js +0 -40
  397. package/dist/assets/yaml.worker-35ea3f9a.js +0 -467
  398. package/dist/azcli-31e64a7f.js +0 -74
  399. package/dist/bat-0ffe897e.js +0 -95
  400. package/dist/bicep-3414a2b1.js +0 -108
  401. package/dist/cameligo-df1f3f25.js +0 -168
  402. package/dist/clojure-65b0f010.js +0 -754
  403. package/dist/coffee-437f0fba.js +0 -228
  404. package/dist/cpp-66843dd5.js +0 -390
  405. package/dist/csharp-621d9a49.js +0 -320
  406. package/dist/csp-de0d5244.js +0 -57
  407. package/dist/css-7cd5ed4c.js +0 -186
  408. package/dist/cssMode-30bbea2f.js +0 -1446
  409. package/dist/cypher-70ad96fe.js +0 -262
  410. package/dist/dart-33ae3739.js +0 -270
  411. package/dist/dockerfile-f2274a50.js +0 -132
  412. package/dist/ecl-3b8294a3.js +0 -454
  413. package/dist/elixir-b9dcc73a.js +0 -489
  414. package/dist/flow9-bdde8316.js +0 -141
  415. package/dist/freemarker2-c3d378f7.js +0 -643
  416. package/dist/fsharp-eac2e449.js +0 -210
  417. package/dist/go-d12ed8d4.js +0 -208
  418. package/dist/graphql-c7356b69.js +0 -141
  419. package/dist/handlebars-723aad91.js +0 -391
  420. package/dist/hcl-e883a0d4.js +0 -177
  421. package/dist/html-6271b7ac.js +0 -281
  422. package/dist/htmlMode-77853f52.js +0 -1456
  423. package/dist/index-90cf2f91.js +0 -127403
  424. package/dist/ini-425ab711.js +0 -68
  425. package/dist/java-2bc0fd68.js +0 -221
  426. package/dist/javascript-daedc120.js +0 -75
  427. package/dist/jsonMode-02ef0b87.js +0 -1867
  428. package/dist/julia-1c932615.js +0 -496
  429. package/dist/kotlin-1ab839c8.js +0 -245
  430. package/dist/less-6fe856f5.js +0 -168
  431. package/dist/lexon-4955ac52.js +0 -151
  432. package/dist/liquid-2aa5e6f3.js +0 -238
  433. package/dist/lua-3cca0047.js +0 -157
  434. package/dist/m3-132e9cb6.js +0 -210
  435. package/dist/markdown-ea59a0c1.js +0 -202
  436. package/dist/mips-19811f4b.js +0 -194
  437. package/dist/msdax-69954a10.js +0 -377
  438. package/dist/mysql-82088e5d.js +0 -876
  439. package/dist/objective-c-1976eccc.js +0 -188
  440. package/dist/pascal-8ef177cb.js +0 -245
  441. package/dist/pascaligo-bc517b9e.js +0 -158
  442. package/dist/perl-8b93582c.js +0 -599
  443. package/dist/pgsql-00c11a6d.js +0 -847
  444. package/dist/php-4c8c276f.js +0 -471
  445. package/dist/pla-e9b4ffb1.js +0 -131
  446. package/dist/postiats-2071af8c.js +0 -544
  447. package/dist/powerquery-8e388ceb.js +0 -890
  448. package/dist/powershell-e35db398.js +0 -233
  449. package/dist/protobuf-a24b9176.js +0 -422
  450. package/dist/pug-2c94d9b8.js +0 -393
  451. package/dist/python-09265357.js +0 -259
  452. package/dist/qsharp-d730d7fe.js +0 -282
  453. package/dist/r-be193556.js +0 -245
  454. package/dist/razor-e37d6e12.js +0 -512
  455. package/dist/redis-9690c6ac.js +0 -298
  456. package/dist/redshift-6bdcdeaa.js +0 -806
  457. package/dist/restructuredtext-a08c1d20.js +0 -162
  458. package/dist/ruby-2247692b.js +0 -444
  459. package/dist/rust-1dffb4d5.js +0 -337
  460. package/dist/sb-136598e9.js +0 -110
  461. package/dist/scala-b1100fed.js +0 -353
  462. package/dist/scheme-038c8094.js +0 -114
  463. package/dist/scss-700d1b52.js +0 -244
  464. package/dist/shell-86c16e0f.js +0 -224
  465. package/dist/solidity-c05fdf3c.js +0 -1351
  466. package/dist/sophia-cd645d71.js +0 -190
  467. package/dist/sparql-01d9ec9c.js +0 -193
  468. package/dist/sql-4c33df41.js +0 -818
  469. package/dist/st-52cf1408.js +0 -414
  470. package/dist/swift-13c792ba.js +0 -315
  471. package/dist/systemverilog-0bd8b730.js +0 -556
  472. package/dist/tcl-463d7c75.js +0 -232
  473. package/dist/tsMode-91c2db33.js +0 -811
  474. package/dist/twig-0d98f5ec.js +0 -323
  475. package/dist/typescript-f08b1f7d.js +0 -328
  476. package/dist/vb-3a2b0a51.js +0 -364
  477. package/dist/wgsl-b2ddb3e4.js +0 -420
  478. package/dist/xml-cb271b3b.js +0 -95
  479. package/dist/yaml-f6bdbbce.js +0 -184
@@ -0,0 +1,138 @@
1
+ import { ReactComponent as ICCpu } from '../../../Assets/Icon/ic-cpu.svg'
2
+ import { ReactComponent as ICMemory } from '../../../Assets/Icon/ic-memory.svg'
3
+ import { ReactComponent as ICTimer } from '../../../Assets/Icon/ic-timer.svg'
4
+ import { UseBreadcrumbProps } from '../../../Common/BreadCrumb/Types'
5
+ import {
6
+ BuildInfraConfigTypes,
7
+ BuildInfraFormFieldType,
8
+ BuildInfraLocators,
9
+ BuildInfraMetaConfigTypes,
10
+ ProfileInputErrorType,
11
+ BuildInfraProfileBase,
12
+ BuildInfraProfileVariants,
13
+ HandleProfileInputChangeType,
14
+ } from './types'
15
+
16
+ export const BUILD_INFRA_INPUT_CONSTRAINTS = {
17
+ // Will not enforce any decimal specification on input field
18
+ STEP: 'any',
19
+ MIN: 0,
20
+ DECIMAL_PLACES: 2,
21
+ } as const
22
+
23
+ export const BUILD_INFRA_TEXT = {
24
+ HEADING: 'Build Infra Configuration',
25
+ EDIT_SUBMIT: 'Save changes',
26
+ SAVE_SUBMIT: 'Save',
27
+ EDIT_CANCEL: 'Cancel',
28
+ EDIT_DEFAULT_TOOLTIP:
29
+ 'Efficiently control infrastructure settings such as CPU, Memory, and Build timeout for your build pipelines. Streamline resource management to optimise build time and cost effortlessly.',
30
+ DESCRIPTION_LABEL: 'Description',
31
+ DESCRIPTION_PLACEHOLDER: 'Enter a description here',
32
+ PROFILE_LABEL: 'Profile name',
33
+ PROFILE_PLACEHOLDER: 'Enter a name eg. java/node/small/medium/large',
34
+ INHERITING_HEADING_DESCRIPTION: 'Inheriting from default',
35
+ SUBMIT_BUTTON_TIPPY: {
36
+ INVALID_INPUT: 'Valid input is required for all mandatory fields.',
37
+ REQUEST_IN_PROGRESS: 'Request in progress.',
38
+ },
39
+ VALIDATE_REQUEST_LIMIT: {
40
+ REQUEST_LESS_THAN_LIMIT: 'Request should be less than or equal to limit.',
41
+ CAN_NOT_COMPUTE: 'Request and limit value diff are too high to validate.',
42
+ REQUEST_DECIMAL_PLACES: `Request should be upto ${BUILD_INFRA_INPUT_CONSTRAINTS.DECIMAL_PLACES} decimal places.`,
43
+ LIMIT_DECIMAL_PLACES: `Limit should be upto ${BUILD_INFRA_INPUT_CONSTRAINTS.DECIMAL_PLACES} decimal places.`,
44
+ },
45
+ getInvalidActionMessage: (action: HandleProfileInputChangeType['action']) => `Invalid action type: ${action}`,
46
+ getSubmitSuccessMessage: (profileName: string, isEdited: boolean) =>
47
+ `${profileName} profile is ${isEdited ? 'updated' : 'created'}`,
48
+ PROFILE_NOT_FOUND: {
49
+ title: 'Profile not found',
50
+ subTitle: 'The profile you are looking for does not exist.',
51
+ },
52
+ INVALID_FORM_MESSAGE: 'Valid input is required for all mandatory fields.',
53
+ } as const
54
+
55
+ export const BUILD_INFRA_BREADCRUMB: UseBreadcrumbProps = {
56
+ alias: {
57
+ 'global-config': null,
58
+ 'build-infra': {
59
+ component: <h2 className="m-0 cn-9 fs-16 fw-6 lh-32">{BUILD_INFRA_TEXT.HEADING}</h2>,
60
+ linked: false,
61
+ },
62
+ },
63
+ }
64
+
65
+ export const BUILD_INFRA_FORM_FIELDS: BuildInfraFormFieldType[] = [
66
+ {
67
+ heading: <h3 className="m-0 cn-9 fs-13 fw-6 lh-20 w-240 dc__no-shrink">CPU (Request - Limit)</h3>,
68
+ marker: ICCpu,
69
+ actions: [
70
+ {
71
+ actionType: BuildInfraConfigTypes.CPU_REQUEST,
72
+ label: 'Request',
73
+ placeholder: 'Type CPU request',
74
+ },
75
+ {
76
+ actionType: BuildInfraConfigTypes.CPU_LIMIT,
77
+ label: 'Limit',
78
+ placeholder: 'Type CPU limit',
79
+ },
80
+ ],
81
+ locator: BuildInfraLocators.CPU,
82
+ },
83
+ {
84
+ heading: <h3 className="m-0 cn-9 fs-13 fw-6 lh-20 w-240 dc__no-shrink">Memory (Request - Limit)</h3>,
85
+ marker: ICMemory,
86
+ actions: [
87
+ {
88
+ actionType: BuildInfraConfigTypes.MEMORY_REQUEST,
89
+ label: 'Request',
90
+ placeholder: 'Type memory request',
91
+ },
92
+ {
93
+ actionType: BuildInfraConfigTypes.MEMORY_LIMIT,
94
+ label: 'Limit',
95
+ placeholder: 'Type memory limit',
96
+ },
97
+ ],
98
+ locator: BuildInfraLocators.MEMORY,
99
+ },
100
+ {
101
+ heading: <h3 className="m-0 cn-9 fs-13 fw-6 lh-20 w-240 dc__no-shrink">Build timeout</h3>,
102
+ marker: ICTimer,
103
+ actions: [
104
+ {
105
+ actionType: BuildInfraConfigTypes.BUILD_TIMEOUT,
106
+ label: 'Timeout',
107
+ placeholder: 'Type build timeout',
108
+ },
109
+ ],
110
+ locator: BuildInfraLocators.BUILD_TIMEOUT,
111
+ },
112
+ ]
113
+
114
+ export const PROFILE_INPUT_ERROR_FIELDS = Object.fromEntries(
115
+ Object.values({ ...BuildInfraConfigTypes, ...BuildInfraMetaConfigTypes }).map((value) => [value, null]),
116
+ ) as ProfileInputErrorType
117
+
118
+ // fields required to be filled before submitting the form in create view, since we pre-populate the form with default values so no need in configs
119
+ export const CREATE_MODE_REQUIRED_INPUT_FIELDS = [BuildInfraMetaConfigTypes.NAME]
120
+
121
+ export const DEFAULT_PROFILE_NAME = 'default' as const
122
+
123
+ export const CREATE_PROFILE_BASE_VALUE: BuildInfraProfileBase = {
124
+ name: '',
125
+ description: '',
126
+ type: BuildInfraProfileVariants.NORMAL,
127
+ appCount: 0,
128
+ }
129
+
130
+ export const CREATE_VIEW_CHECKED_CONFIGS = {
131
+ [BuildInfraConfigTypes.CPU_REQUEST]: true,
132
+ [BuildInfraConfigTypes.CPU_LIMIT]: true,
133
+ } as const
134
+
135
+ export const BUILD_INFRA_TEST_IDS = {
136
+ SUBMIT_BUTTON: 'build-infra-submit-button',
137
+ CANCEL_BUTTON: 'build-infra-cancel-button',
138
+ } as const
@@ -0,0 +1,7 @@
1
+ export { default as BuildInfraDescriptor } from './Descriptor'
2
+ export { default as BuildInfraFooter } from './Footer'
3
+ export { default as BuildInfraConfigForm } from './BuildInfraConfigForm'
4
+ export * from './services'
5
+ export * from './utils'
6
+ export * from './types'
7
+ export * from './constants'
@@ -0,0 +1,167 @@
1
+ import { ROUTES, ResponseType, get, post, put, showError } from '../../../Common'
2
+ import { CREATE_PROFILE_BASE_VALUE, CREATE_VIEW_CHECKED_CONFIGS } from './constants'
3
+ import {
4
+ BuildInfraConfigTypes,
5
+ BuildInfraConfigurationMapType,
6
+ BuildInfraConfigurationType,
7
+ BuildInfraProfileAPIResponseType,
8
+ BuildInfraProfileBase,
9
+ BuildInfraProfileResponseDataType,
10
+ BuildInfraProfileResponseType,
11
+ BuildInfraProfileTransformerType,
12
+ CreateBuildInfraProfileType,
13
+ CreateBuildInfraServicePayloadType,
14
+ CreateBuildInfraServiceConfigurationType,
15
+ GetBuildInfraProfileType,
16
+ UpdateBuildInfraProfileType,
17
+ BuildInfraConfigurationMapWithoutDefaultType,
18
+ } from './types'
19
+
20
+ const getBaseProfileObject = (
21
+ fromCreateView: boolean,
22
+ profile: BuildInfraProfileResponseDataType,
23
+ ): BuildInfraProfileBase => {
24
+ if (fromCreateView) {
25
+ return CREATE_PROFILE_BASE_VALUE
26
+ }
27
+
28
+ return {
29
+ id: profile.id,
30
+ name: profile.name,
31
+ description: profile.description,
32
+ type: profile.type,
33
+ appCount: profile.appCount,
34
+ }
35
+ }
36
+
37
+ // Would receive a single profile and return transformed response
38
+ export const getTransformedBuildInfraProfileResponse = ({
39
+ configurationUnits,
40
+ defaultConfigurations,
41
+ profile,
42
+ fromCreateView,
43
+ }: BuildInfraProfileTransformerType): BuildInfraProfileResponseType => {
44
+ // Assuming would contain all the keys
45
+ const defaultConfigurationsMap =
46
+ defaultConfigurations?.reduce((acc, configuration) => {
47
+ acc[configuration.key] = configuration
48
+ return acc
49
+ }, {} as BuildInfraConfigurationMapWithoutDefaultType) ?? ({} as BuildInfraConfigurationMapWithoutDefaultType)
50
+
51
+ const profileConfigurations =
52
+ profile?.configurations?.reduce((acc, configuration) => {
53
+ acc[configuration.key] = configuration
54
+ return acc
55
+ }, {} as BuildInfraConfigurationMapWithoutDefaultType) ?? ({} as BuildInfraConfigurationMapWithoutDefaultType)
56
+
57
+ const configurations = Object.keys(defaultConfigurationsMap).reduce((acc, key) => {
58
+ const defaultConfiguration: BuildInfraConfigurationType = defaultConfigurationsMap[key]
59
+ const profileConfiguration =
60
+ profileConfigurations[key]?.profileName === profile?.name ? profileConfigurations[key] : null
61
+ // Pushing default value in configurations in case we de-activate the configuration
62
+ const defaultValue = {
63
+ value: defaultConfiguration.value,
64
+ unit: defaultConfiguration.unit,
65
+ }
66
+
67
+ if (fromCreateView) {
68
+ acc[key] = {
69
+ key,
70
+ value: defaultConfiguration.value,
71
+ unit: defaultConfiguration.unit,
72
+ active: CREATE_VIEW_CHECKED_CONFIGS[key] ?? false,
73
+ defaultValue,
74
+ }
75
+ return acc
76
+ }
77
+
78
+ if (profileConfiguration) {
79
+ acc[key] = {
80
+ ...profileConfiguration,
81
+ defaultValue,
82
+ }
83
+ return acc
84
+ }
85
+
86
+ // Removing id from it since we do not have a configuration
87
+ // While generating payload, we will check on the basis of id and active flag.
88
+ acc[key] = {
89
+ key,
90
+ value: defaultConfiguration.value,
91
+ // saving profile name as undefined and this would be a check, if we are deriving from default or not
92
+ unit: defaultConfiguration.unit,
93
+ active: false,
94
+ defaultValue,
95
+ }
96
+ return acc
97
+ }, {} as BuildInfraConfigurationMapType)
98
+
99
+ return {
100
+ configurationUnits,
101
+ profile: {
102
+ ...(profile && getBaseProfileObject(fromCreateView, profile)),
103
+ configurations,
104
+ },
105
+ }
106
+ }
107
+
108
+ export const getBuildInfraProfileByName = async ({
109
+ name,
110
+ fromCreateView,
111
+ }: GetBuildInfraProfileType): Promise<BuildInfraProfileResponseType> => {
112
+ try {
113
+ const response = await get(`${ROUTES.INFRA_CONFIG_PROFILE}/${name}`)
114
+ const {
115
+ result: { configurationUnits, defaultConfigurations, profile },
116
+ } = response as ResponseType<BuildInfraProfileAPIResponseType>
117
+
118
+ return getTransformedBuildInfraProfileResponse({
119
+ configurationUnits,
120
+ defaultConfigurations,
121
+ profile,
122
+ fromCreateView,
123
+ })
124
+ } catch (error) {
125
+ showError(error)
126
+ throw error
127
+ }
128
+ }
129
+
130
+ const getBuildInfraProfilePayload = (
131
+ profileInput: CreateBuildInfraProfileType['profileInput'],
132
+ ): CreateBuildInfraServicePayloadType => {
133
+ const currentConfigurations = profileInput.configurations
134
+ const configurationKeys = Object.keys(currentConfigurations) as BuildInfraConfigTypes[]
135
+ // would only keep the configurations with id or active flag as true
136
+ const configurations: CreateBuildInfraServiceConfigurationType[] = configurationKeys.reduce((acc, key) => {
137
+ const configuration = currentConfigurations[key]
138
+ if (configuration.id || configuration.active) {
139
+ acc.push({
140
+ id: configuration.id,
141
+ key,
142
+ value: Number(configuration.value),
143
+ unit: configuration.unit,
144
+ active: configuration.active,
145
+ })
146
+ }
147
+ return acc
148
+ }, [] as CreateBuildInfraServiceConfigurationType[])
149
+
150
+ const payload: CreateBuildInfraServicePayloadType = {
151
+ name: profileInput.name,
152
+ description: profileInput.description,
153
+ type: profileInput.type,
154
+ configurations,
155
+ }
156
+ return payload
157
+ }
158
+
159
+ export const updateBuildInfraProfile = ({ name, profileInput }: UpdateBuildInfraProfileType) => {
160
+ const payload = getBuildInfraProfilePayload(profileInput)
161
+ return put(`${ROUTES.INFRA_CONFIG_PROFILE}/${name}`, payload)
162
+ }
163
+
164
+ export const createBuildInfraProfile = async ({ profileInput }: CreateBuildInfraProfileType) => {
165
+ const payload = getBuildInfraProfilePayload(profileInput)
166
+ return post(ROUTES.INFRA_CONFIG_PROFILE, payload)
167
+ }
@@ -0,0 +1,339 @@
1
+ import { FormEvent, FunctionComponent, ReactNode } from 'react'
2
+ import { Breadcrumb } from '../../../Common/BreadCrumb/Types'
3
+ import { ValidationResponseType } from '../../../Shared'
4
+ import { ServerErrors } from '../../../Common'
5
+
6
+ /**
7
+ * Unique actions that will be dispatched and,
8
+ * Keeping some values (cpu_limit, etc) in sync with backend
9
+ */
10
+ export enum BuildInfraConfigTypes {
11
+ CPU_LIMIT = 'cpu_limit',
12
+ CPU_REQUEST = 'cpu_request',
13
+ MEMORY_LIMIT = 'memory_limit',
14
+ MEMORY_REQUEST = 'memory_request',
15
+ BUILD_TIMEOUT = 'timeout',
16
+ }
17
+
18
+ /**
19
+ * Combination of BuildInfraConfigTypes and BuildInfraMetaConfigTypes is going to derive error state and actions(actions will also be derived with BuildInfraInheritActions)
20
+ */
21
+ export enum BuildInfraMetaConfigTypes {
22
+ NAME = 'name',
23
+ DESCRIPTION = 'description',
24
+ }
25
+
26
+ /**
27
+ * Would be used as key for few components and would be appending activate and de_activate actions to it
28
+ */
29
+ export enum BuildInfraLocators {
30
+ CPU = 'cpu',
31
+ MEMORY = 'memory',
32
+ // This name can be also different from BuildInfraConfigTypes[BUILD_TIMEOUT] in case we want to show different label
33
+ BUILD_TIMEOUT = 'timeout',
34
+ }
35
+
36
+ // FIXME: Derive this from BuildInfraLocators
37
+ // Appending the locators from above
38
+ export enum BuildInfraInheritActions {
39
+ ACTIVATE_CPU = 'activate_cpu',
40
+ DE_ACTIVATE_CPU = 'de_activate_cpu',
41
+ ACTIVATE_MEMORY = 'activate_memory',
42
+ DE_ACTIVATE_MEMORY = 'de_activate_memory',
43
+ ACTIVATE_BUILD_TIMEOUT = 'activate_timeout',
44
+ DE_ACTIVATE_BUILD_TIMEOUT = 'de_activate_timeout',
45
+ }
46
+
47
+ export const BuildInfraConfigActionMap = {
48
+ [BuildInfraConfigTypes.BUILD_TIMEOUT]: BuildInfraLocators.BUILD_TIMEOUT,
49
+ [BuildInfraConfigTypes.CPU_LIMIT]: BuildInfraLocators.CPU,
50
+ [BuildInfraConfigTypes.CPU_REQUEST]: BuildInfraLocators.CPU,
51
+ [BuildInfraConfigTypes.MEMORY_LIMIT]: BuildInfraLocators.MEMORY,
52
+ [BuildInfraConfigTypes.MEMORY_REQUEST]: BuildInfraLocators.MEMORY,
53
+ }
54
+
55
+ export enum BuildInfraProfileVariants {
56
+ DEFAULT = 'DEFAULT',
57
+ NORMAL = 'NORMAL',
58
+ CUSTOM = 'CUSTOM',
59
+ }
60
+
61
+ export interface DescriptorProps {
62
+ /**
63
+ * In case we want to restrict the max-width
64
+ */
65
+ additionalContainerClasses?: string
66
+ breadCrumbs: Breadcrumb[]
67
+ /**
68
+ * Would stick at right of div
69
+ */
70
+ children?: ReactNode
71
+ tippyInfoText?: string
72
+ tippyAdditionalContent?: ReactNode
73
+ }
74
+
75
+ export interface BuildInfraActionType {
76
+ /**
77
+ * Type of action to be dispatched, would be suffixed with type of change
78
+ */
79
+ actionType: BuildInfraConfigTypes
80
+ /**
81
+ * Label to be shown above input
82
+ */
83
+ label: string
84
+ /**
85
+ * Placeholder for input, can be optional
86
+ */
87
+ placeholder?: string
88
+ // Can add a prop for variant, if there is a need to show different types of inputs
89
+ }
90
+
91
+ export interface BuildInfraConfigurationMarkerProps {
92
+ className?: string
93
+ }
94
+
95
+ export interface BuildInfraFormFieldType {
96
+ /**
97
+ * Heading of the form item
98
+ */
99
+ heading: ReactNode
100
+ /**
101
+ * Icon/Checkbox to be shown in front of heading
102
+ */
103
+ marker: FunctionComponent<BuildInfraConfigurationMarkerProps>
104
+ /**
105
+ * Actions to be shown in the form item
106
+ */
107
+ actions: BuildInfraActionType[]
108
+ /**
109
+ * Unique identifier for the form item used for key
110
+ */
111
+ locator: BuildInfraLocators
112
+ }
113
+
114
+ export interface ConfigurationUnitType {
115
+ name: string
116
+ conversionFactor: number
117
+ }
118
+
119
+ // key would be the name of ConfigurationUnitType
120
+ export type ConfigurationUnitMapType = {
121
+ [key: ConfigurationUnitType['name']]: ConfigurationUnitType
122
+ }
123
+
124
+ export type BuildInfraUnitsMapType = {
125
+ [key in BuildInfraConfigTypes]: ConfigurationUnitMapType
126
+ }
127
+
128
+ export interface BuildInfraConfigValuesType {
129
+ value: string
130
+ unit?: ConfigurationUnitType['name']
131
+ }
132
+
133
+ interface BuildInfraProfileConfigBase {
134
+ id?: number
135
+ key: BuildInfraConfigTypes
136
+ profileName: string
137
+ active: boolean
138
+ }
139
+
140
+ export interface BuildInfraProfileConfigResponseDataType
141
+ extends BuildInfraConfigValuesType,
142
+ BuildInfraProfileConfigBase {}
143
+
144
+ export interface BuildInfraConfigurationType extends BuildInfraConfigValuesType, BuildInfraProfileConfigBase {
145
+ defaultValue: BuildInfraConfigValuesType
146
+ }
147
+
148
+ export type BuildInfraConfigurationMapWithoutDefaultType = {
149
+ [key in BuildInfraConfigTypes]: BuildInfraConfigValuesType & BuildInfraProfileConfigBase
150
+ }
151
+
152
+ export type BuildInfraConfigurationMapType = {
153
+ [key in BuildInfraConfigTypes]: BuildInfraConfigurationType
154
+ }
155
+
156
+ export interface BuildInfraProfileBase {
157
+ id?: number
158
+ name: string
159
+ description: string
160
+ type: BuildInfraProfileVariants
161
+ appCount: number
162
+ }
163
+
164
+ export interface BuildInfraProfileResponseDataType extends BuildInfraProfileBase {
165
+ configurations: BuildInfraProfileConfigResponseDataType[]
166
+ }
167
+
168
+ export interface BuildInfraProfileData extends BuildInfraProfileBase {
169
+ configurations: BuildInfraConfigurationMapType
170
+ }
171
+
172
+ export interface GetBuildInfraProfileType {
173
+ name: string
174
+ fromCreateView?: boolean
175
+ }
176
+
177
+ export interface BuildInfraProfileResponseType {
178
+ configurationUnits: BuildInfraUnitsMapType | null
179
+ profile: BuildInfraProfileData | null
180
+ }
181
+
182
+ export interface UseBuildInfraFormProps {
183
+ /**
184
+ * Name of the profile, if not provided assumption would be for create view
185
+ */
186
+ name?: string
187
+ /**
188
+ * If true, would send put request else would create profile via post
189
+ */
190
+ editProfile?: boolean
191
+ /**
192
+ * If true, call this on form submission success
193
+ */
194
+ handleSuccessRedirection?: () => void
195
+ }
196
+
197
+ export type ProfileInputErrorType = {
198
+ [key in BuildInfraConfigTypes | BuildInfraMetaConfigTypes]: string
199
+ }
200
+
201
+ export interface ProfileInputDispatchDataType {
202
+ value: string
203
+ unit?: string
204
+ }
205
+
206
+ export interface HandleProfileInputChangeType {
207
+ action: BuildInfraConfigTypes | BuildInfraInheritActions | BuildInfraMetaConfigTypes
208
+ data?: ProfileInputDispatchDataType
209
+ }
210
+
211
+ export interface UseBuildInfraFormResponseType {
212
+ isLoading: boolean
213
+ profileResponse: BuildInfraProfileResponseType | null
214
+ responseError: ServerErrors | null
215
+ reloadRequest: () => void
216
+ profileInput: BuildInfraProfileData
217
+ profileInputErrors: ProfileInputErrorType
218
+ handleProfileInputChange: ({ action, data }: HandleProfileInputChangeType) => void
219
+ loadingActionRequest: boolean
220
+ handleSubmit: (e: FormEvent<HTMLFormElement>) => Promise<void>
221
+ }
222
+
223
+ export interface BuildInfraFormItemProps extends Pick<BuildInfraFormFieldType, 'marker' | 'heading'> {
224
+ children?: ReactNode
225
+ /**
226
+ * If true, means profile is inheriting values from other profile (e.g, default)
227
+ */
228
+ isInheriting?: boolean
229
+ /**
230
+ * Would be false for last item
231
+ */
232
+ showDivider?: boolean
233
+
234
+ /**
235
+ * Would be used to dispatch inherit actions (activate_cpu, de_activate_cpu, etc)
236
+ */
237
+ handleProfileInputChange: UseBuildInfraFormResponseType['handleProfileInputChange']
238
+ locator: BuildInfraFormFieldType['locator']
239
+ isDefaultProfile: boolean
240
+ }
241
+
242
+ export interface ValidateRequestLimitType {
243
+ request: BuildInfraConfigValuesType
244
+ limit: BuildInfraConfigValuesType
245
+ unitsMap: ConfigurationUnitMapType
246
+ }
247
+
248
+ export interface ValidateRequestLimitResponseType {
249
+ request: ValidationResponseType
250
+ limit: ValidationResponseType
251
+ }
252
+
253
+ export interface BuildInfraConfigFormProps
254
+ extends Pick<UseBuildInfraFormResponseType, 'profileInput' | 'profileInputErrors' | 'handleProfileInputChange'> {
255
+ isDefaultProfile?: boolean
256
+ unitsMap?: BuildInfraProfileResponseType['configurationUnits']
257
+ configurationContainerLabel?: ReactNode
258
+ }
259
+
260
+ export interface BuildInfraFormActionProps extends BuildInfraActionType {
261
+ handleProfileInputChange: UseBuildInfraFormResponseType['handleProfileInputChange']
262
+ currentValue: BuildInfraConfigValuesType['value']
263
+ error?: string
264
+ isRequired?: boolean
265
+ profileUnitsMap?: ConfigurationUnitMapType
266
+ currentUnitName?: BuildInfraConfigValuesType['unit']
267
+ }
268
+
269
+ export interface FooterProps {
270
+ /**
271
+ * If true, means form contains errors
272
+ */
273
+ disabled?: boolean
274
+ handleCancel?: () => void
275
+ /**
276
+ * If true would show save changes else would show save for submit button
277
+ */
278
+ editProfile?: boolean
279
+ loading?: boolean
280
+ }
281
+
282
+ export interface UpdateBuildInfraProfileType extends Pick<UseBuildInfraFormResponseType, 'profileInput'> {
283
+ name: string
284
+ }
285
+
286
+ export interface CreateBuildInfraProfileType extends Pick<UseBuildInfraFormResponseType, 'profileInput'> {}
287
+
288
+ export interface CreateBuildInfraServiceConfigurationType {
289
+ key: BuildInfraConfigTypes
290
+ value: string | number
291
+ active: boolean
292
+ unit?: string
293
+ /**
294
+ * Would send for those that are available in profileInput
295
+ */
296
+ id?: number
297
+ }
298
+
299
+ export interface CreateBuildInfraServicePayloadType {
300
+ name: string
301
+ description: string
302
+ type: BuildInfraProfileVariants
303
+ configurations: CreateBuildInfraServiceConfigurationType[]
304
+ }
305
+
306
+ export interface BuildInfraInputFieldComponentProps {
307
+ handleProfileInputChange: UseBuildInfraFormResponseType['handleProfileInputChange']
308
+ currentValue: BuildInfraConfigValuesType['value']
309
+ error?: string
310
+ }
311
+
312
+ export interface InheritingHeaderProps {
313
+ defaultHeading: BuildInfraFormFieldType['heading']
314
+ inheritingData: BuildInfraConfigValuesType[]
315
+ isInheriting: boolean
316
+ isDefaultProfile: boolean
317
+ }
318
+
319
+ export interface BuildInfraConfigResponseDataType {
320
+ name: BuildInfraConfigTypes
321
+ units: ConfigurationUnitType[]
322
+ }
323
+
324
+ interface BaseBuildInfraProfileResponseType {
325
+ defaultConfigurations: BuildInfraProfileConfigResponseDataType[]
326
+ configurationUnits: BuildInfraUnitsMapType
327
+ }
328
+
329
+ export interface BuildInfraListResponseType extends BaseBuildInfraProfileResponseType {
330
+ profiles: BuildInfraProfileResponseDataType[]
331
+ }
332
+
333
+ export interface BuildInfraProfileAPIResponseType extends BaseBuildInfraProfileResponseType {
334
+ profile: BuildInfraProfileResponseDataType
335
+ }
336
+
337
+ export interface BuildInfraProfileTransformerType
338
+ extends BuildInfraProfileAPIResponseType,
339
+ Pick<GetBuildInfraProfileType, 'fromCreateView'> {}