@devtron-labs/devtron-fe-common-lib 0.0.63-beta-1 → 0.0.63-beta-4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +56 -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 +30473 -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 +77 -0
  372. package/src/Shared/Components/BulkSelection/BulkSelectionDropdownItems.tsx +33 -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 +67 -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-6f9d8cd1.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-ab344d04.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-19723f91.js +0 -391
  420. package/dist/hcl-e883a0d4.js +0 -177
  421. package/dist/html-180c27f9.js +0 -281
  422. package/dist/htmlMode-5a7a5e22.js +0 -1456
  423. package/dist/index-dff859ae.js +0 -127403
  424. package/dist/ini-425ab711.js +0 -68
  425. package/dist/java-2bc0fd68.js +0 -221
  426. package/dist/javascript-69f332ec.js +0 -75
  427. package/dist/jsonMode-52d38062.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-900b4835.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-5092b9eb.js +0 -259
  452. package/dist/qsharp-d730d7fe.js +0 -282
  453. package/dist/r-be193556.js +0 -245
  454. package/dist/razor-4737df6e.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-92f77d1c.js +0 -811
  474. package/dist/twig-0d98f5ec.js +0 -323
  475. package/dist/typescript-45bc0bbc.js +0 -328
  476. package/dist/vb-3a2b0a51.js +0 -364
  477. package/dist/wgsl-b2ddb3e4.js +0 -420
  478. package/dist/xml-7849eff8.js +0 -95
  479. package/dist/yaml-1b2fc0c6.js +0 -184
@@ -0,0 +1,51 @@
1
+ export * from './Constants'
2
+ export * from './ServerError'
3
+ export * from './Types'
4
+ export * from './Api'
5
+ export * from './EmptyState/EmptyState'
6
+ export * from './ToastBody'
7
+ export { default as Reload } from './Reload'
8
+ export * from './Error'
9
+ export * from './Helper'
10
+ export * from './Progressing'
11
+ export * from './Drawer/Drawer'
12
+ export * from './Modals/Modal'
13
+ export * from './Modals/OpaqueModal'
14
+ export * from './Modals/VisibleModal'
15
+ export * from './Modals/VisibleModal2'
16
+ export { BreadCrumb, useBreadcrumb } from './BreadCrumb/BreadCrumb'
17
+ export { default as BreadcrumbStore } from './BreadCrumb/BreadcrumbStore'
18
+ export * from './RadioGroup'
19
+ export { default as PopupMenu } from './PopupMenu'
20
+ export * from './TippyCustomized'
21
+ export * from './CustomTagSelector'
22
+ export * from './Dialogs'
23
+ export * from './MultiSelectCustomization'
24
+ export { default as InfoColourBar } from './InfoColorBar/InfoColourbar'
25
+ export * from './Common.service'
26
+ export * from './Checkbox'
27
+ export { default as EmptyState } from './EmptyState/EmptyState'
28
+ export { default as GenericEmptyState } from './EmptyState/GenericEmptyState'
29
+ export * from './SearchBar'
30
+ export * from './SortableTableHeaderCell'
31
+ export { default as Toggle } from './Toggle/Toggle'
32
+ export { default as ScanVulnerabilitiesTable } from './Security/ScanVulnerabilitiesTable'
33
+ export { default as StyledRadioGroup } from './RadioGroup/RadioGroup'
34
+ export * from './CIPipeline.Types'
35
+ export * from './Policy.Types'
36
+ export { default as DeleteComponent } from './DeleteComponentModal/DeleteComponent'
37
+ export * from './ImageTags'
38
+ export * from './ImageTags.Types'
39
+ export * from './ResizableTextarea'
40
+ export { default as DebouncedSearch } from './DebouncedSearch/DebouncedSearch'
41
+ export { default as Grid } from './Grid/Grid'
42
+ export { default as ClipboardButton } from './ClipboardButton/ClipboardButton'
43
+ export * from './Hooks'
44
+ export { AppStatus } from './AppStatus'
45
+ export * from './RJSF'
46
+ export * from './DevtronProgressing'
47
+ export { default as ChartVersionAndTypeSelector } from './ChartVersionAndTypeSelector'
48
+ export * from './AddCDButton'
49
+ export * from './CustomInput'
50
+ export * from './DraggableWrapper'
51
+ export * from './Pagination'
@@ -0,0 +1,21 @@
1
+ export enum UserListSortableKeys {
2
+ email = 'email_id',
3
+ lastLogin = 'last_login',
4
+ }
5
+
6
+ /**
7
+ * User Status received from the API
8
+ */
9
+ export enum UserStatusDto {
10
+ active = 'active',
11
+ inactive = 'inactive',
12
+ }
13
+
14
+ /**
15
+ * User status for the frontend
16
+ */
17
+ export enum UserStatus {
18
+ active = 'active',
19
+ inactive = 'inactive',
20
+ temporary = 'temporaryAccess',
21
+ }
@@ -0,0 +1,2 @@
1
+ export * from './constants'
2
+ export * from './types'
@@ -0,0 +1,25 @@
1
+ import { SortingParams } from '../../../Common'
2
+ import { UserListSortableKeys, UserStatus } from './constants'
3
+
4
+ export type BaseFilterQueryParams<T> = {
5
+ /**
6
+ * Offset for the list result
7
+ */
8
+ offset?: number
9
+ /**
10
+ * Number of items required in the list
11
+ */
12
+ size?: number
13
+ /**
14
+ * Search string (if any)
15
+ */
16
+ searchKey?: string
17
+ /**
18
+ * If true, all items are returned with any search / filtering applied without pagination
19
+ */
20
+ showAll?: boolean
21
+ } & SortingParams<T>
22
+
23
+ export type UserListFilterParams = BaseFilterQueryParams<UserListSortableKeys> & {
24
+ status: UserStatus[]
25
+ }
@@ -0,0 +1,127 @@
1
+ import { FunctionComponent } from 'react'
2
+ import { Progressing } from '../../../Common'
3
+ import BuildInfraFormAction from './BuildInfraFormAction'
4
+ import BuildInfraFormItem from './BuildInfraFormItem'
5
+ import BuildInfraProfileDescriptionField from './BuildInfraDescriptionField'
6
+ import BuildInfraProfileNameField from './BuildInfraProfileNameField'
7
+ import { BUILD_INFRA_FORM_FIELDS, BUILD_INFRA_TEXT } from './constants'
8
+ import { BuildInfraActionType, BuildInfraConfigFormProps, InheritingHeaderProps } from './types'
9
+
10
+ const InheritingHeader = ({
11
+ defaultHeading,
12
+ inheritingData,
13
+ isInheriting,
14
+ isDefaultProfile,
15
+ }: InheritingHeaderProps) => {
16
+ const inheritingDataString = inheritingData.map((data) => `${data.value} ${data.unit ?? ''}`).join(' - ')
17
+
18
+ if (isDefaultProfile || !isInheriting) {
19
+ // For typing issues
20
+ // eslint-disable-next-line react/jsx-no-useless-fragment
21
+ return <>{defaultHeading}</>
22
+ }
23
+
24
+ return (
25
+ <div className="flexbox dc__align-items-center dc__content-space w-100">
26
+ {defaultHeading}
27
+
28
+ <div className="flexbox dc__content-space w-100">
29
+ <span className="m-0 pt-0 pb-0 pl-4 pr-4 fs-13 lh-20 fw-4 cn-9 dc__ellipsis-right dc__word-break-all flex-grow-1">
30
+ {inheritingDataString}
31
+ </span>
32
+
33
+ <p className="m-0 cn-7 fs-13 fw-4 lh-20 dc__no-shrink">
34
+ {BUILD_INFRA_TEXT.INHERITING_HEADING_DESCRIPTION}
35
+ </p>
36
+ </div>
37
+ </div>
38
+ )
39
+ }
40
+
41
+ const BuildInfraConfigForm: FunctionComponent<BuildInfraConfigFormProps> = ({
42
+ profileInput,
43
+ profileInputErrors,
44
+ handleProfileInputChange,
45
+ isDefaultProfile,
46
+ unitsMap,
47
+ configurationContainerLabel,
48
+ }) => {
49
+ const currentConfigurations = profileInput?.configurations
50
+
51
+ // will get the desired configuration from the currentConfigurations and then check if it is active or not
52
+ const isInheritingProfileValues = (actions: BuildInfraActionType[]) =>
53
+ actions.some((action) => !currentConfigurations[action.actionType].active)
54
+
55
+ // Had to show loader for an instance due to batching of state updates not working as expected :/
56
+ if (!currentConfigurations) {
57
+ return <Progressing pageLoader />
58
+ }
59
+
60
+ return (
61
+ <div className="flexbox-col dc__mxw-920 dc__gap-16">
62
+ {!isDefaultProfile && (
63
+ <div className="flexbox-col dc__gap-12">
64
+ <BuildInfraProfileNameField
65
+ handleProfileInputChange={handleProfileInputChange}
66
+ currentValue={profileInput.name}
67
+ error={profileInputErrors.name}
68
+ />
69
+
70
+ <BuildInfraProfileDescriptionField
71
+ handleProfileInputChange={handleProfileInputChange}
72
+ currentValue={profileInput.description}
73
+ error={profileInputErrors.description}
74
+ />
75
+ </div>
76
+ )}
77
+
78
+ <div className="flexbox-col dc__gap-12">
79
+ {configurationContainerLabel}
80
+
81
+ <div className="w-100 flexbox-col dc__gap-16 br-4 dc__border-n1 p-16">
82
+ {BUILD_INFRA_FORM_FIELDS.map((field, index) => (
83
+ <BuildInfraFormItem
84
+ key={field.locator}
85
+ marker={field.marker}
86
+ heading={
87
+ <InheritingHeader
88
+ defaultHeading={field.heading}
89
+ inheritingData={field.actions.map(
90
+ (action) => currentConfigurations[action.actionType],
91
+ )}
92
+ isInheriting={isInheritingProfileValues(field.actions)}
93
+ isDefaultProfile={isDefaultProfile}
94
+ />
95
+ }
96
+ showDivider={index !== BUILD_INFRA_FORM_FIELDS.length - 1}
97
+ isInheriting={isInheritingProfileValues(field.actions)}
98
+ handleProfileInputChange={handleProfileInputChange}
99
+ locator={field.locator}
100
+ isDefaultProfile={isDefaultProfile}
101
+ >
102
+ <div className="w-50 flexbox dc__gap-12 w-100 dc__align-start">
103
+ {field.actions.map((action) => (
104
+ <BuildInfraFormAction
105
+ key={action.actionType}
106
+ actionType={action.actionType}
107
+ label={action.label}
108
+ placeholder={action.placeholder}
109
+ error={profileInputErrors[action.actionType]}
110
+ // Assumption is for default profiles all input fields are required
111
+ isRequired
112
+ profileUnitsMap={unitsMap[action.actionType]}
113
+ handleProfileInputChange={handleProfileInputChange}
114
+ currentUnitName={currentConfigurations[action.actionType].unit}
115
+ currentValue={currentConfigurations[action.actionType].value}
116
+ />
117
+ ))}
118
+ </div>
119
+ </BuildInfraFormItem>
120
+ ))}
121
+ </div>
122
+ </div>
123
+ </div>
124
+ )
125
+ }
126
+
127
+ export default BuildInfraConfigForm
@@ -0,0 +1,44 @@
1
+ import { FormEvent, FunctionComponent } from 'react'
2
+ import { ReactComponent as ErrorIcon } from '../../../Assets/Icon/ic-warning.svg'
3
+ import { BuildInfraInputFieldComponentProps, BuildInfraMetaConfigTypes } from './types'
4
+ import { BUILD_INFRA_TEXT } from './constants'
5
+
6
+ const BuildInfraProfileDescriptionField: FunctionComponent<BuildInfraInputFieldComponentProps> = ({
7
+ handleProfileInputChange,
8
+ currentValue,
9
+ error,
10
+ }) => {
11
+ const handleChange = (e: FormEvent<HTMLTextAreaElement>) => {
12
+ handleProfileInputChange({
13
+ action: BuildInfraMetaConfigTypes.DESCRIPTION,
14
+ data: { value: e.currentTarget.value },
15
+ })
16
+ }
17
+
18
+ return (
19
+ <div className="flexbox-col dc__gap-4 w-100 dc__align-start">
20
+ <label htmlFor="build-infra-profile-description" className="m-0 fs-13 fw-4 lh-20 cn-7">
21
+ {BUILD_INFRA_TEXT.DESCRIPTION_LABEL}
22
+ </label>
23
+
24
+ <textarea
25
+ data-testid="build-infra-profile-description"
26
+ name="profile-description"
27
+ className="form__textarea mxh-140 dc__hover-border-n300"
28
+ id="build-infra-profile-description"
29
+ placeholder={BUILD_INFRA_TEXT.DESCRIPTION_PLACEHOLDER}
30
+ value={currentValue}
31
+ onChange={handleChange}
32
+ />
33
+
34
+ {error && (
35
+ <div className="form__error">
36
+ <ErrorIcon className="form__icon form__icon--error" />
37
+ {error}
38
+ </div>
39
+ )}
40
+ </div>
41
+ )
42
+ }
43
+
44
+ export default BuildInfraProfileDescriptionField
@@ -0,0 +1,106 @@
1
+ import { FormEvent, FunctionComponent, useMemo } from 'react'
2
+ import ReactSelect from 'react-select'
3
+ import { BuildInfraFormActionProps } from './types'
4
+ import { OptionType } from '../../../Common'
5
+ import { unitSelectorStyles } from './utils'
6
+ import { BUILD_INFRA_INPUT_CONSTRAINTS } from './constants'
7
+ import { ReactComponent as ErrorIcon } from '../../../Assets/Icon/ic-warning.svg'
8
+
9
+ /**
10
+ * In case need arise for variants break this CustomInput and Select as a separate component
11
+ */
12
+ const BuildInfraFormAction: FunctionComponent<BuildInfraFormActionProps> = ({
13
+ actionType,
14
+ label,
15
+ placeholder,
16
+ error,
17
+ isRequired,
18
+ profileUnitsMap,
19
+ handleProfileInputChange,
20
+ currentUnitName,
21
+ currentValue,
22
+ }) => {
23
+ const handleUnitChange = (selectedUnit: OptionType) => {
24
+ const data = {
25
+ unit: selectedUnit.label,
26
+ value: currentValue,
27
+ }
28
+ handleProfileInputChange({ action: actionType, data })
29
+ }
30
+
31
+ const handleInputChange = (e: FormEvent<HTMLInputElement>) => {
32
+ const data = {
33
+ unit: currentUnitName,
34
+ value: e.currentTarget.value,
35
+ }
36
+ handleProfileInputChange({ action: actionType, data })
37
+ }
38
+
39
+ const unitOptions = useMemo(() => {
40
+ const units =
41
+ Object.values(profileUnitsMap)?.map((unit) => ({
42
+ label: unit.name,
43
+ value: String(unit.conversionFactor),
44
+ })) ?? []
45
+ return units.sort((a, b) => Number(a.value) - Number(b.value))
46
+ }, [profileUnitsMap])
47
+
48
+ const currentUnit = useMemo(
49
+ () => unitOptions.find((unit) => unit.label === currentUnitName),
50
+ [unitOptions, currentUnitName],
51
+ )
52
+
53
+ return (
54
+ <div className="flexbox-col dc__gap-4 dc__mxw-420 w-100 dc__align-start">
55
+ <label
56
+ htmlFor={`${actionType}-input`}
57
+ className={`fs-13 fw-4 lh-20 cn-7 ${isRequired ? 'dc__required-field' : ''}`}
58
+ >
59
+ {label}
60
+ </label>
61
+ <div className="w-100 flexbox dc__align-items-center">
62
+ <div className="flex-grow-1">
63
+ <input
64
+ data-testid={`${actionType}-input-field`}
65
+ name={actionType}
66
+ type="number"
67
+ step={BUILD_INFRA_INPUT_CONSTRAINTS.STEP}
68
+ min={BUILD_INFRA_INPUT_CONSTRAINTS.MIN}
69
+ className="form__input dc__no-right-border dc__no-right-radius"
70
+ placeholder={placeholder}
71
+ value={currentValue}
72
+ onChange={handleInputChange}
73
+ required={isRequired}
74
+ autoComplete="off"
75
+ id={`${actionType}-input`}
76
+ />
77
+ </div>
78
+
79
+ {profileUnitsMap && (
80
+ <ReactSelect
81
+ name={`${actionType}-unit`}
82
+ className="bcn-0 dc__mxw-120"
83
+ options={unitOptions}
84
+ value={currentUnit}
85
+ onChange={handleUnitChange}
86
+ isSearchable={false}
87
+ components={{
88
+ IndicatorSeparator: null,
89
+ ClearIndicator: null,
90
+ }}
91
+ styles={unitSelectorStyles()}
92
+ />
93
+ )}
94
+ </div>
95
+
96
+ {error && (
97
+ <div className="form__error">
98
+ <ErrorIcon className="form__icon form__icon--error" />
99
+ {error}
100
+ </div>
101
+ )}
102
+ </div>
103
+ )
104
+ }
105
+
106
+ export default BuildInfraFormAction
@@ -0,0 +1,55 @@
1
+ import { FormEvent, FunctionComponent } from 'react'
2
+ import { BuildInfraFormItemProps, BuildInfraInheritActions } from './types'
3
+ import { CHECKBOX_VALUE, Checkbox } from '../../../Common'
4
+
5
+ const BuildInfraFormItem: FunctionComponent<BuildInfraFormItemProps> = ({
6
+ heading,
7
+ marker: Marker,
8
+ children,
9
+ isInheriting,
10
+ showDivider,
11
+ handleProfileInputChange,
12
+ locator,
13
+ isDefaultProfile,
14
+ }) => {
15
+ const handleActivationChange = (e: FormEvent<HTMLInputElement>) => {
16
+ const { checked } = e.currentTarget
17
+ const action = (checked ? `activate_${locator}` : `de_activate_${locator}`) as BuildInfraInheritActions
18
+ handleProfileInputChange({ action })
19
+ }
20
+
21
+ const renderMarker = () => {
22
+ if (isDefaultProfile) {
23
+ return <Marker className="icon-dim-20 dc__no-shrink" />
24
+ }
25
+
26
+ return (
27
+ <Checkbox
28
+ onChange={handleActivationChange}
29
+ isChecked={!isInheriting}
30
+ value={CHECKBOX_VALUE.CHECKED}
31
+ dataTestId={`${locator}_marker`}
32
+ />
33
+ )
34
+ }
35
+
36
+ // If in configuration active is false, means it is inheriting values from other profile
37
+ return (
38
+ <>
39
+ <div className="flexbox-col dc__gap-8 w-100">
40
+ <div className="flexbox dc__gap-12 dc__align-start w-100">
41
+ {renderMarker()}
42
+
43
+ <div className="flexbox-col dc__gap-8 w-100">
44
+ {heading}
45
+ {!isInheriting && children}
46
+ </div>
47
+ </div>
48
+ </div>
49
+
50
+ {showDivider && <div className="w-100 dc__border-bottom-n1" />}
51
+ </>
52
+ )
53
+ }
54
+
55
+ export default BuildInfraFormItem
@@ -0,0 +1,32 @@
1
+ import { FormEvent, FunctionComponent } from 'react'
2
+ import { BuildInfraMetaConfigTypes, BuildInfraInputFieldComponentProps } from './types'
3
+ import { CustomInput } from '../../../Common'
4
+ import { BUILD_INFRA_TEXT } from './constants'
5
+
6
+ const BuildInfraProfileNameField: FunctionComponent<BuildInfraInputFieldComponentProps> = ({
7
+ handleProfileInputChange,
8
+ currentValue,
9
+ error,
10
+ }) => {
11
+ const handleChange = (e: FormEvent<HTMLInputElement>) => {
12
+ handleProfileInputChange({ action: BuildInfraMetaConfigTypes.NAME, data: { value: e.currentTarget.value } })
13
+ }
14
+
15
+ return (
16
+ <div className="flexbox-col dc__gap-4 w-100 dc__align-start">
17
+ <CustomInput
18
+ name="profile-name"
19
+ label={BUILD_INFRA_TEXT.PROFILE_LABEL}
20
+ labelClassName="m-0 dc__required-field fs-13 fw-4 lh-20 cn-7"
21
+ placeholder={BUILD_INFRA_TEXT.PROFILE_PLACEHOLDER}
22
+ value={currentValue}
23
+ onChange={handleChange}
24
+ error={error}
25
+ required
26
+ inputWrapClassName="w-100"
27
+ />
28
+ </div>
29
+ )
30
+ }
31
+
32
+ export default BuildInfraProfileNameField
@@ -0,0 +1,45 @@
1
+ import { DescriptorProps } from './types'
2
+ import { BreadCrumb, TippyCustomized, TippyTheme } from '../../../Common'
3
+ import { ReactComponent as QuestionFilled } from '../../../Assets/Icon/ic-help.svg'
4
+ import { ReactComponent as ICHelpOutline } from '../../../Assets/Icon/ic-help-outline.svg'
5
+ import { BUILD_INFRA_TEXT } from './constants'
6
+
7
+ const Descriptor = ({
8
+ additionalContainerClasses,
9
+ breadCrumbs,
10
+ children,
11
+ tippyInfoText,
12
+ tippyAdditionalContent,
13
+ }: DescriptorProps) => (
14
+ <div className={`flexbox dc__content-space dc__align-items-center w-100 ${additionalContainerClasses ?? ''}`}>
15
+ <div className="flexbox dc__align-items-center dc__gap-4">
16
+ <BreadCrumb breadcrumbs={breadCrumbs} />
17
+
18
+ <TippyCustomized
19
+ theme={TippyTheme.white}
20
+ className="w-300 h-100 dc__align-left"
21
+ placement="right"
22
+ Icon={QuestionFilled}
23
+ iconClass="fcv-5"
24
+ infoText={tippyInfoText ?? BUILD_INFRA_TEXT.EDIT_DEFAULT_TOOLTIP}
25
+ additionalContent={tippyAdditionalContent}
26
+ heading={BUILD_INFRA_TEXT.HEADING}
27
+ showCloseButton
28
+ trigger="click"
29
+ interactive
30
+ >
31
+ <button
32
+ className="p-0 h-20 dc__no-background dc__no-border dc__tab-focus"
33
+ type="button"
34
+ aria-label="build-infra-info"
35
+ >
36
+ <ICHelpOutline className="icon-dim-20" />
37
+ </button>
38
+ </TippyCustomized>
39
+ </div>
40
+
41
+ {children}
42
+ </div>
43
+ )
44
+
45
+ export default Descriptor
@@ -0,0 +1,56 @@
1
+ import { FunctionComponent, ReactElement } from 'react'
2
+ import Tippy from '@tippyjs/react'
3
+ import { BUILD_INFRA_TEST_IDS, BUILD_INFRA_TEXT } from './constants'
4
+ import { FooterProps } from './types'
5
+ import { ConditionalWrap, Progressing } from '../../../Common'
6
+
7
+ const Footer: FunctionComponent<FooterProps> = ({ disabled, handleCancel, editProfile, loading }) => {
8
+ const disableMessage = disabled
9
+ ? BUILD_INFRA_TEXT.SUBMIT_BUTTON_TIPPY.INVALID_INPUT
10
+ : BUILD_INFRA_TEXT.SUBMIT_BUTTON_TIPPY.REQUEST_IN_PROGRESS
11
+
12
+ const getButtonText = () => {
13
+ if (editProfile) {
14
+ return BUILD_INFRA_TEXT.EDIT_SUBMIT
15
+ }
16
+
17
+ return BUILD_INFRA_TEXT.SAVE_SUBMIT
18
+ }
19
+
20
+ const renderTippy = (children: ReactElement) => (
21
+ <Tippy content={disableMessage} placement="top" className="default-tt" arrow={false}>
22
+ {children}
23
+ </Tippy>
24
+ )
25
+
26
+ return (
27
+ <div className="flex pl pr pb pt h-64 dc__gap-12 dc__border-top dc__content-start">
28
+ <ConditionalWrap condition={disabled || loading} wrap={renderTippy}>
29
+ <div className="flexbox dc__align-items-center">
30
+ <button
31
+ type="submit"
32
+ className="cta submit h-32 flex"
33
+ disabled={disabled || loading}
34
+ data-testid={BUILD_INFRA_TEST_IDS.SUBMIT_BUTTON}
35
+ >
36
+ {loading ? <Progressing size={16} /> : getButtonText()}
37
+ </button>
38
+ </div>
39
+ </ConditionalWrap>
40
+
41
+ {handleCancel && (
42
+ <button
43
+ type="button"
44
+ className="cta cancel h-32 flex"
45
+ disabled={loading}
46
+ data-testid={BUILD_INFRA_TEST_IDS.CANCEL_BUTTON}
47
+ onClick={handleCancel}
48
+ >
49
+ {BUILD_INFRA_TEXT.EDIT_CANCEL}
50
+ </button>
51
+ )}
52
+ </div>
53
+ )
54
+ }
55
+
56
+ export default Footer
@@ -0,0 +1,4 @@
1
+ In case someone wants to add a new build infrastructure field, the following steps should be followed:
2
+ - Update the BUILD_INFRA_FORM_FIELDS, in constants.tsx
3
+ - Add BuildInfraConfigTypes, BuildInfraLocators, BuildInfraInheritActions(If any) in types.tsx
4
+ - In utils.tsx, update the handleProfileInputChange and validation functions accordingly