@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,506 @@
1
+ import { FormEvent, useEffect, useState } from 'react'
2
+ import { toast } from 'react-toastify'
3
+ import { showError, useAsync } from '../../../Common'
4
+ import { getBuildInfraProfileByName, createBuildInfraProfile, updateBuildInfraProfile } from './services'
5
+ import {
6
+ BuildInfraConfigTypes,
7
+ BuildInfraInheritActions,
8
+ BuildInfraMetaConfigTypes,
9
+ BuildInfraProfileData,
10
+ HandleProfileInputChangeType,
11
+ ProfileInputErrorType,
12
+ UseBuildInfraFormProps,
13
+ UseBuildInfraFormResponseType,
14
+ ValidateRequestLimitResponseType,
15
+ ValidateRequestLimitType,
16
+ } from './types'
17
+ import {
18
+ BUILD_INFRA_INPUT_CONSTRAINTS,
19
+ BUILD_INFRA_TEXT,
20
+ DEFAULT_PROFILE_NAME,
21
+ PROFILE_INPUT_ERROR_FIELDS,
22
+ CREATE_MODE_REQUIRED_INPUT_FIELDS,
23
+ } from './constants'
24
+ import {
25
+ validateDescription,
26
+ validateName,
27
+ validateRequiredPositiveNumber,
28
+ getCommonSelectStyle,
29
+ validateRequiredPositiveInteger,
30
+ } from '../../../Shared'
31
+
32
+ export const validateRequestLimit = ({
33
+ request,
34
+ limit,
35
+ unitsMap,
36
+ }: ValidateRequestLimitType): ValidateRequestLimitResponseType => {
37
+ // Request <= Limit
38
+ // Request and Limit should be numbers can be decimals
39
+ // Request and Limit should be positive numbers
40
+ // Request and Limit should be less than Number.MAX_SAFE_INTEGER
41
+ // Request and Limit should can have at most BUILD_INFRA_INPUT_CONSTRAINTS.DECIMAL_PLACES
42
+ // Both request and limit should be there
43
+ const requestNumber = Number(request.value)
44
+ const limitNumber = Number(limit.value)
45
+ const requestUnit = Number(unitsMap[request.unit]?.conversionFactor)
46
+ const limitUnit = Number(unitsMap[limit.unit]?.conversionFactor)
47
+
48
+ const requestLimitValidationResponse: ValidateRequestLimitResponseType = {
49
+ request: {
50
+ isValid: true,
51
+ },
52
+ limit: {
53
+ isValid: true,
54
+ },
55
+ }
56
+
57
+ const requestValidationMessage = validateRequiredPositiveNumber(request.value).message
58
+ const limitValidationMessage = validateRequiredPositiveNumber(limit.value).message
59
+
60
+ if (requestValidationMessage) {
61
+ requestLimitValidationResponse.request = {
62
+ message: requestValidationMessage,
63
+ isValid: false,
64
+ }
65
+ }
66
+
67
+ if (limitValidationMessage) {
68
+ requestLimitValidationResponse.limit = {
69
+ message: limitValidationMessage,
70
+ isValid: false,
71
+ }
72
+ }
73
+
74
+ if (limitValidationMessage || requestValidationMessage) {
75
+ return requestLimitValidationResponse
76
+ }
77
+
78
+ // only two decimal places are allowed
79
+ const requestDecimalPlaces = String(request.value).split('.')[1]?.length ?? 0
80
+ const limitDecimalPlaces = String(limit.value).split('.')[1]?.length ?? 0
81
+
82
+ if (requestDecimalPlaces > BUILD_INFRA_INPUT_CONSTRAINTS.DECIMAL_PLACES) {
83
+ requestLimitValidationResponse.request = {
84
+ message: BUILD_INFRA_TEXT.VALIDATE_REQUEST_LIMIT.REQUEST_DECIMAL_PLACES,
85
+ isValid: false,
86
+ }
87
+
88
+ return requestLimitValidationResponse
89
+ }
90
+ if (limitDecimalPlaces > BUILD_INFRA_INPUT_CONSTRAINTS.DECIMAL_PLACES) {
91
+ requestLimitValidationResponse.limit = {
92
+ message: BUILD_INFRA_TEXT.VALIDATE_REQUEST_LIMIT.LIMIT_DECIMAL_PLACES,
93
+ isValid: false,
94
+ }
95
+
96
+ return requestLimitValidationResponse
97
+ }
98
+
99
+ // Assuming requestUnit and requestNumber are not 0
100
+ const limitRequestUnitFactor = limitUnit / requestUnit
101
+ const limitRequestFactor = limitNumber / requestNumber
102
+
103
+ const isDifferenceBigNumber = limitRequestUnitFactor * limitRequestFactor <= Number.MAX_SAFE_INTEGER
104
+
105
+ if (!isDifferenceBigNumber) {
106
+ requestLimitValidationResponse.request = {
107
+ message: BUILD_INFRA_TEXT.VALIDATE_REQUEST_LIMIT.CAN_NOT_COMPUTE,
108
+ isValid: false,
109
+ }
110
+
111
+ return requestLimitValidationResponse
112
+ }
113
+
114
+ if (limitRequestUnitFactor * limitRequestFactor < 1) {
115
+ requestLimitValidationResponse.request = {
116
+ message: BUILD_INFRA_TEXT.VALIDATE_REQUEST_LIMIT.REQUEST_LESS_THAN_LIMIT,
117
+ isValid: false,
118
+ }
119
+
120
+ return requestLimitValidationResponse
121
+ }
122
+
123
+ return requestLimitValidationResponse
124
+ }
125
+
126
+ const getInitialProfileInputErrors = (fromCreateView: boolean): ProfileInputErrorType => {
127
+ if (fromCreateView) {
128
+ const initialProfileInputErrors = { ...PROFILE_INPUT_ERROR_FIELDS }
129
+ CREATE_MODE_REQUIRED_INPUT_FIELDS.forEach((field) => {
130
+ initialProfileInputErrors[field] = ''
131
+ })
132
+ return initialProfileInputErrors
133
+ }
134
+
135
+ return {
136
+ ...PROFILE_INPUT_ERROR_FIELDS,
137
+ }
138
+ }
139
+
140
+ export const useBuildInfraForm = ({
141
+ name,
142
+ editProfile,
143
+ handleSuccessRedirection,
144
+ }: UseBuildInfraFormProps): UseBuildInfraFormResponseType => {
145
+ const fromCreateView = !name
146
+
147
+ const [isLoading, profileResponse, responseError, reloadRequest] = useAsync(
148
+ () =>
149
+ getBuildInfraProfileByName({
150
+ name: name ?? DEFAULT_PROFILE_NAME,
151
+ fromCreateView,
152
+ }),
153
+ [name],
154
+ )
155
+ // If configuration is existing and is active then use it else use default from profileResponse
156
+ const [profileInput, setProfileInput] = useState<BuildInfraProfileData>(null)
157
+ const [profileInputErrors, setProfileInputErrors] = useState<ProfileInputErrorType>({
158
+ ...PROFILE_INPUT_ERROR_FIELDS,
159
+ })
160
+ const [loadingActionRequest, setLoadingActionRequest] = useState<boolean>(false)
161
+
162
+ useEffect(() => {
163
+ if (!isLoading && profileResponse?.configurationUnits && profileResponse?.profile) {
164
+ setProfileInput({
165
+ ...profileResponse.profile,
166
+ })
167
+
168
+ setProfileInputErrors(getInitialProfileInputErrors(fromCreateView))
169
+ }
170
+ }, [profileResponse, isLoading])
171
+
172
+ // NOTE: Currently sending and receiving values as string, but will parse it to number for payload
173
+ const handleProfileInputChange = ({ action, data }: HandleProfileInputChangeType) => {
174
+ const currentInput = { ...profileInput }
175
+ const currentInputErrors = { ...profileInputErrors }
176
+ const lastSavedConfiguration = profileResponse.profile.configurations
177
+ const currentConfiguration = currentInput.configurations
178
+ const { value, unit } = data ?? { value: null, unit: null }
179
+
180
+ switch (action) {
181
+ case BuildInfraMetaConfigTypes.DESCRIPTION:
182
+ currentInput.description = value
183
+ currentInputErrors.description = validateDescription(value).message
184
+ break
185
+
186
+ case BuildInfraMetaConfigTypes.NAME:
187
+ currentInput.name = value
188
+ currentInputErrors.name = validateName(value).message
189
+ break
190
+
191
+ case BuildInfraConfigTypes.CPU_LIMIT: {
192
+ currentConfiguration[BuildInfraConfigTypes.CPU_LIMIT] = {
193
+ ...currentConfiguration[BuildInfraConfigTypes.CPU_LIMIT],
194
+ value,
195
+ unit,
196
+ }
197
+ const { request, limit } = validateRequestLimit({
198
+ request: {
199
+ value: currentConfiguration[BuildInfraConfigTypes.CPU_REQUEST].value,
200
+ unit: currentConfiguration[BuildInfraConfigTypes.CPU_REQUEST].unit,
201
+ },
202
+ limit: {
203
+ value,
204
+ unit,
205
+ },
206
+ unitsMap: profileResponse.configurationUnits[BuildInfraConfigTypes.CPU_LIMIT],
207
+ })
208
+
209
+ currentInputErrors[BuildInfraConfigTypes.CPU_LIMIT] = limit.message
210
+ currentInputErrors[BuildInfraConfigTypes.CPU_REQUEST] = request.message
211
+ break
212
+ }
213
+
214
+ case BuildInfraConfigTypes.CPU_REQUEST: {
215
+ currentConfiguration[BuildInfraConfigTypes.CPU_REQUEST] = {
216
+ ...currentConfiguration[BuildInfraConfigTypes.CPU_REQUEST],
217
+ value,
218
+ unit,
219
+ }
220
+ const { request, limit } = validateRequestLimit({
221
+ request: {
222
+ value,
223
+ unit,
224
+ },
225
+ limit: {
226
+ value: currentConfiguration[BuildInfraConfigTypes.CPU_LIMIT].value,
227
+ unit: currentConfiguration[BuildInfraConfigTypes.CPU_LIMIT].unit,
228
+ },
229
+ unitsMap: profileResponse.configurationUnits[BuildInfraConfigTypes.CPU_LIMIT],
230
+ })
231
+
232
+ currentInputErrors[BuildInfraConfigTypes.CPU_LIMIT] = limit.message
233
+ currentInputErrors[BuildInfraConfigTypes.CPU_REQUEST] = request.message
234
+ break
235
+ }
236
+
237
+ case BuildInfraConfigTypes.MEMORY_LIMIT: {
238
+ currentConfiguration[BuildInfraConfigTypes.MEMORY_LIMIT] = {
239
+ ...currentConfiguration[BuildInfraConfigTypes.MEMORY_LIMIT],
240
+ value,
241
+ unit,
242
+ }
243
+ const { request, limit } = validateRequestLimit({
244
+ request: {
245
+ value: currentConfiguration[BuildInfraConfigTypes.MEMORY_REQUEST].value,
246
+ unit: currentConfiguration[BuildInfraConfigTypes.MEMORY_REQUEST].unit,
247
+ },
248
+ limit: {
249
+ value,
250
+ unit,
251
+ },
252
+ unitsMap: profileResponse.configurationUnits[BuildInfraConfigTypes.MEMORY_LIMIT],
253
+ })
254
+
255
+ currentInputErrors[BuildInfraConfigTypes.MEMORY_LIMIT] = limit.message
256
+ currentInputErrors[BuildInfraConfigTypes.MEMORY_REQUEST] = request.message
257
+ break
258
+ }
259
+
260
+ case BuildInfraConfigTypes.MEMORY_REQUEST: {
261
+ currentConfiguration[BuildInfraConfigTypes.MEMORY_REQUEST] = {
262
+ ...currentConfiguration[BuildInfraConfigTypes.MEMORY_REQUEST],
263
+ value,
264
+ unit,
265
+ }
266
+ const { request, limit } = validateRequestLimit({
267
+ request: {
268
+ value,
269
+ unit,
270
+ },
271
+ limit: {
272
+ value: currentConfiguration[BuildInfraConfigTypes.MEMORY_LIMIT].value,
273
+ unit: currentConfiguration[BuildInfraConfigTypes.MEMORY_LIMIT].unit,
274
+ },
275
+ unitsMap: profileResponse.configurationUnits[BuildInfraConfigTypes.MEMORY_LIMIT],
276
+ })
277
+
278
+ currentInputErrors[BuildInfraConfigTypes.MEMORY_LIMIT] = limit.message
279
+ currentInputErrors[BuildInfraConfigTypes.MEMORY_REQUEST] = request.message
280
+ break
281
+ }
282
+
283
+ case BuildInfraConfigTypes.BUILD_TIMEOUT: {
284
+ currentConfiguration[BuildInfraConfigTypes.BUILD_TIMEOUT] = {
285
+ ...currentConfiguration[BuildInfraConfigTypes.BUILD_TIMEOUT],
286
+ value,
287
+ unit,
288
+ }
289
+
290
+ currentInputErrors[BuildInfraConfigTypes.BUILD_TIMEOUT] = validateRequiredPositiveInteger(value).message
291
+ break
292
+ }
293
+
294
+ case BuildInfraInheritActions.ACTIVATE_CPU:
295
+ currentConfiguration[BuildInfraConfigTypes.CPU_LIMIT] = {
296
+ ...lastSavedConfiguration[BuildInfraConfigTypes.CPU_LIMIT],
297
+ value: lastSavedConfiguration[BuildInfraConfigTypes.CPU_LIMIT].value,
298
+ unit: lastSavedConfiguration[BuildInfraConfigTypes.CPU_LIMIT].unit,
299
+ active: true,
300
+ }
301
+ currentConfiguration[BuildInfraConfigTypes.CPU_REQUEST] = {
302
+ ...lastSavedConfiguration[BuildInfraConfigTypes.CPU_REQUEST],
303
+ value: lastSavedConfiguration[BuildInfraConfigTypes.CPU_REQUEST].value,
304
+ unit: lastSavedConfiguration[BuildInfraConfigTypes.CPU_REQUEST].unit,
305
+ active: true,
306
+ }
307
+
308
+ currentInputErrors[BuildInfraConfigTypes.CPU_LIMIT] = null
309
+ currentInputErrors[BuildInfraConfigTypes.CPU_REQUEST] = null
310
+ break
311
+
312
+ case BuildInfraInheritActions.ACTIVATE_MEMORY:
313
+ currentConfiguration[BuildInfraConfigTypes.MEMORY_LIMIT] = {
314
+ ...lastSavedConfiguration[BuildInfraConfigTypes.MEMORY_LIMIT],
315
+ value: lastSavedConfiguration[BuildInfraConfigTypes.MEMORY_LIMIT].value,
316
+ unit: lastSavedConfiguration[BuildInfraConfigTypes.MEMORY_LIMIT].unit,
317
+ active: true,
318
+ }
319
+ currentConfiguration[BuildInfraConfigTypes.MEMORY_REQUEST] = {
320
+ ...lastSavedConfiguration[BuildInfraConfigTypes.MEMORY_REQUEST],
321
+ value: lastSavedConfiguration[BuildInfraConfigTypes.MEMORY_REQUEST].value,
322
+ unit: lastSavedConfiguration[BuildInfraConfigTypes.MEMORY_REQUEST].unit,
323
+ active: true,
324
+ }
325
+
326
+ currentInputErrors[BuildInfraConfigTypes.MEMORY_LIMIT] = null
327
+ currentInputErrors[BuildInfraConfigTypes.MEMORY_REQUEST] = null
328
+ break
329
+
330
+ case BuildInfraInheritActions.ACTIVATE_BUILD_TIMEOUT:
331
+ currentConfiguration[BuildInfraConfigTypes.BUILD_TIMEOUT] = {
332
+ ...lastSavedConfiguration[BuildInfraConfigTypes.BUILD_TIMEOUT],
333
+ value: lastSavedConfiguration[BuildInfraConfigTypes.BUILD_TIMEOUT].value,
334
+ unit: lastSavedConfiguration[BuildInfraConfigTypes.BUILD_TIMEOUT].unit,
335
+ active: true,
336
+ }
337
+
338
+ currentInputErrors[BuildInfraConfigTypes.BUILD_TIMEOUT] = null
339
+ break
340
+
341
+ case BuildInfraInheritActions.DE_ACTIVATE_BUILD_TIMEOUT:
342
+ // Reverting the value and unit to defaultValues
343
+ currentConfiguration[BuildInfraConfigTypes.BUILD_TIMEOUT] = {
344
+ ...currentConfiguration[BuildInfraConfigTypes.BUILD_TIMEOUT],
345
+ value: lastSavedConfiguration[BuildInfraConfigTypes.BUILD_TIMEOUT].defaultValue.value,
346
+ unit: lastSavedConfiguration[BuildInfraConfigTypes.BUILD_TIMEOUT].defaultValue.unit,
347
+ active: false,
348
+ }
349
+
350
+ currentInputErrors[BuildInfraConfigTypes.BUILD_TIMEOUT] = null
351
+ break
352
+
353
+ case BuildInfraInheritActions.DE_ACTIVATE_CPU:
354
+ currentConfiguration[BuildInfraConfigTypes.CPU_LIMIT] = {
355
+ ...currentConfiguration[BuildInfraConfigTypes.CPU_LIMIT],
356
+ value: lastSavedConfiguration[BuildInfraConfigTypes.CPU_LIMIT].defaultValue.value,
357
+ unit: lastSavedConfiguration[BuildInfraConfigTypes.CPU_LIMIT].defaultValue.unit,
358
+ active: false,
359
+ }
360
+ currentConfiguration[BuildInfraConfigTypes.CPU_REQUEST] = {
361
+ ...currentConfiguration[BuildInfraConfigTypes.CPU_REQUEST],
362
+ value: lastSavedConfiguration[BuildInfraConfigTypes.CPU_REQUEST].defaultValue.value,
363
+ unit: lastSavedConfiguration[BuildInfraConfigTypes.CPU_REQUEST].defaultValue.unit,
364
+ active: false,
365
+ }
366
+
367
+ currentInputErrors[BuildInfraConfigTypes.CPU_LIMIT] = null
368
+ currentInputErrors[BuildInfraConfigTypes.CPU_REQUEST] = null
369
+ break
370
+
371
+ case BuildInfraInheritActions.DE_ACTIVATE_MEMORY:
372
+ currentConfiguration[BuildInfraConfigTypes.MEMORY_LIMIT] = {
373
+ ...currentConfiguration[BuildInfraConfigTypes.MEMORY_LIMIT],
374
+ value: lastSavedConfiguration[BuildInfraConfigTypes.MEMORY_LIMIT].defaultValue.value,
375
+ unit: lastSavedConfiguration[BuildInfraConfigTypes.MEMORY_LIMIT].defaultValue.unit,
376
+ active: false,
377
+ }
378
+ currentConfiguration[BuildInfraConfigTypes.MEMORY_REQUEST] = {
379
+ ...currentConfiguration[BuildInfraConfigTypes.MEMORY_REQUEST],
380
+ value: lastSavedConfiguration[BuildInfraConfigTypes.MEMORY_REQUEST].defaultValue.value,
381
+ unit: lastSavedConfiguration[BuildInfraConfigTypes.MEMORY_REQUEST].defaultValue.unit,
382
+ active: false,
383
+ }
384
+
385
+ currentInputErrors[BuildInfraConfigTypes.MEMORY_LIMIT] = null
386
+ currentInputErrors[BuildInfraConfigTypes.MEMORY_REQUEST] = null
387
+ break
388
+
389
+ default:
390
+ throw new Error(BUILD_INFRA_TEXT.getInvalidActionMessage(action))
391
+ }
392
+
393
+ setProfileInput(currentInput)
394
+ setProfileInputErrors(currentInputErrors)
395
+ }
396
+
397
+ const handleSubmit = async (e: FormEvent<HTMLFormElement>) => {
398
+ e.preventDefault()
399
+ // Since considering '' as a valid error message
400
+ const hasErrors =
401
+ Object.keys(profileInputErrors).filter(
402
+ (item) => profileInputErrors[item] !== null && profileInputErrors[item] !== undefined,
403
+ ).length > 0
404
+
405
+ if (hasErrors) {
406
+ toast.error(BUILD_INFRA_TEXT.INVALID_FORM_MESSAGE)
407
+ return
408
+ }
409
+
410
+ setLoadingActionRequest(true)
411
+ try {
412
+ if (editProfile) {
413
+ await updateBuildInfraProfile({ name, profileInput })
414
+ } else {
415
+ await createBuildInfraProfile({ profileInput })
416
+ }
417
+ setLoadingActionRequest(false)
418
+ toast.success(BUILD_INFRA_TEXT.getSubmitSuccessMessage(profileInput.name, editProfile))
419
+
420
+ if (handleSuccessRedirection) {
421
+ handleSuccessRedirection()
422
+ } else {
423
+ reloadRequest()
424
+ }
425
+ } catch (err) {
426
+ showError(err)
427
+ setLoadingActionRequest(false)
428
+ }
429
+ }
430
+
431
+ return {
432
+ isLoading,
433
+ profileResponse,
434
+ responseError,
435
+ reloadRequest,
436
+ profileInput,
437
+ profileInputErrors,
438
+ handleProfileInputChange,
439
+ loadingActionRequest,
440
+ handleSubmit,
441
+ }
442
+ }
443
+
444
+ export const unitSelectorStyles = () =>
445
+ getCommonSelectStyle({
446
+ control: (base, state) => ({
447
+ ...base,
448
+ borderRadius: 0,
449
+ backgroundColor: 'var(--N0)',
450
+ border: state.isFocused ? '1px solid var(--B500) !important' : '1px solid var(--N200)',
451
+ alignItems: 'center',
452
+ cursor: 'pointer',
453
+ borderTopRightRadius: '4px',
454
+ borderBottomRightRadius: '4px',
455
+ overflow: 'hidden',
456
+ textOverflow: 'ellipsis',
457
+ whiteSpace: 'nowrap',
458
+ outline: 'none',
459
+ boxShadow: 'none',
460
+ '&:hover': {
461
+ border: '1px solid var(--N400)',
462
+ },
463
+ }),
464
+ indicatorContainer: (base) => ({
465
+ ...base,
466
+ padding: '0px',
467
+ }),
468
+ dropdownIndicator: (base, state) => ({
469
+ ...base,
470
+ color: 'var(--N600)',
471
+ transition: 'all .2s ease',
472
+ transform: state.selectProps.menuIsOpen ? 'rotate(180deg)' : 'rotate(0deg)',
473
+ }),
474
+ option: (base, state) => ({
475
+ ...base,
476
+ overflow: 'hidden',
477
+ textOverflow: 'ellipsis',
478
+ whiteSpace: 'nowrap',
479
+ cursor: 'pointer',
480
+ ...(state.isFocused
481
+ ? {
482
+ backgroundColor: 'var(--N50)',
483
+ }
484
+ : {}),
485
+ ...(state.isSelected && {
486
+ backgroundColor: 'var(--B100)',
487
+ fontWeight: 600,
488
+ color: 'var(--B500)',
489
+ }),
490
+ '&:active': {
491
+ backgroundColor: 'var(--N50)',
492
+ },
493
+ }),
494
+ valueContainer: (base) => ({
495
+ ...base,
496
+ color: 'var(--N900)',
497
+ fontSize: '13px',
498
+ fontWeight: '400',
499
+ lineHeight: '20px',
500
+ }),
501
+ menuList: (base) => ({
502
+ ...base,
503
+ maxHeight: '164px',
504
+ height: '100%',
505
+ }),
506
+ })
@@ -0,0 +1,2 @@
1
+ export * from './BuildInfra'
2
+ export * from './Authorization'
@@ -0,0 +1 @@
1
+ export * from './GlobalConfigurations'
@@ -0,0 +1,41 @@
1
+ import { ErrorScreenNotAuthorized, GenericEmptyState, Progressing, Reload } from '../../../Common'
2
+ import { NOT_FOUND_DEFAULT_TEXT } from './constants'
3
+ import { APIResponseHandlerProps } from './types'
4
+
5
+ const APIResponseHandler = ({
6
+ isLoading,
7
+ progressingProps,
8
+ error,
9
+ notAuthorized,
10
+ notFoundText,
11
+ reloadProps,
12
+ children,
13
+ }: APIResponseHandlerProps) => {
14
+ // keeping it above loading since, not expected to send a call if not authorized
15
+ if (notAuthorized) {
16
+ return <ErrorScreenNotAuthorized />
17
+ }
18
+
19
+ if (isLoading) {
20
+ return <Progressing {...progressingProps} />
21
+ }
22
+
23
+ if (error) {
24
+ // TODO: Can extend ErrorScreenNotFound
25
+ if (error?.code === 404) {
26
+ return (
27
+ <GenericEmptyState
28
+ title={notFoundText?.title ?? NOT_FOUND_DEFAULT_TEXT.title}
29
+ subTitle={notFoundText?.subTitle ?? NOT_FOUND_DEFAULT_TEXT.subTitle}
30
+ />
31
+ )
32
+ }
33
+ return <Reload {...reloadProps} />
34
+ }
35
+
36
+ // Had to add this since while using it is throwing ts error
37
+ // eslint-disable-next-line react/jsx-no-useless-fragment
38
+ return <>{children}</>
39
+ }
40
+
41
+ export default APIResponseHandler
@@ -0,0 +1,5 @@
1
+ // eslint-disable-next-line import/prefer-default-export
2
+ export const NOT_FOUND_DEFAULT_TEXT = {
3
+ title: 'Resource not found',
4
+ subTitle: 'The resource you are looking for does not exist',
5
+ } as const
@@ -0,0 +1,2 @@
1
+ export { default as APIResponseHandler } from './APIResponseHandler'
2
+ export * from './types'
@@ -0,0 +1,39 @@
1
+ import { ReactNode } from 'react'
2
+ import { GenericEmptyStateType, ProgressingProps, ReloadType, ServerErrors } from '../../../Common'
3
+
4
+ export interface EmptyPageTextType {
5
+ title?: GenericEmptyStateType['title']
6
+ subTitle?: GenericEmptyStateType['subTitle']
7
+ }
8
+
9
+ export interface APIResponseHandlerProps {
10
+ /**
11
+ * If true, would show Progressing component
12
+ */
13
+ isLoading?: boolean
14
+ /**
15
+ * If loading is true, would load send these props to Progressing component
16
+ */
17
+ progressingProps?: ProgressingProps
18
+ /**
19
+ * If true and isLoading is false would show default Reload component
20
+ * In case error code is 404 show default 404 page using GenericEmptyState
21
+ */
22
+ error?: ServerErrors
23
+ /**
24
+ * Page text for 404 page
25
+ */
26
+ notFoundText?: EmptyPageTextType
27
+ /**
28
+ * If true would show Not Authorized page
29
+ */
30
+ notAuthorized?: boolean
31
+ /**
32
+ * If given, on Error, would load these props
33
+ */
34
+ reloadProps?: ReloadType
35
+ /**
36
+ * If no Error and no Loading, would load this component
37
+ */
38
+ children: ReactNode
39
+ }
@@ -0,0 +1,79 @@
1
+ import BulkSelectionDropdownItems from './BulkSelectionDropdownItems'
2
+ import { CHECKBOX_VALUE, Checkbox, PopupMenu, noop } from '../../../Common'
3
+ import { useBulkSelection } from './BulkSelectionProvider'
4
+ import { BulkSelectionDropdownItemsType, BulkSelectionEvents, BulkSelectionProps } from './types'
5
+ import { BULK_DROPDOWN_TEST_ID, BulkSelectionOptionsLabels } from './constants'
6
+ import { ReactComponent as ICChevronDown } from '../../../Assets/Icon/ic-chevron-down.svg'
7
+ import { ReactComponent as ICCheckSquare } from '../../../Assets/Icon/ic-check-square.svg'
8
+ import { ReactComponent as ICCheckAll } from '../../../Assets/Icon/ic-check-all.svg'
9
+ import { ReactComponent as ICClose } from '../../../Assets/Icon/ic-close.svg'
10
+
11
+ const BulkSelection = <T,>({ showPagination }: BulkSelectionProps) => {
12
+ const { handleBulkSelection, isChecked, checkboxValue, getSelectedIdentifiersCount } = useBulkSelection<T>()
13
+ const areOptionsSelected = getSelectedIdentifiersCount() > 0
14
+ const BulkSelectionItems: BulkSelectionDropdownItemsType[] = [
15
+ {
16
+ locator: BulkSelectionEvents.SELECT_ALL_ON_PAGE,
17
+ label: BulkSelectionOptionsLabels[BulkSelectionEvents.SELECT_ALL_ON_PAGE],
18
+ isSelected: isChecked && checkboxValue === CHECKBOX_VALUE.CHECKED,
19
+ icon: ICCheckSquare,
20
+ },
21
+ ...(showPagination
22
+ ? [
23
+ {
24
+ locator: BulkSelectionEvents.SELECT_ALL_ACROSS_PAGES,
25
+ label: BulkSelectionOptionsLabels[BulkSelectionEvents.SELECT_ALL_ACROSS_PAGES],
26
+ isSelected: isChecked && checkboxValue === CHECKBOX_VALUE.BULK_CHECKED,
27
+ icon: ICCheckAll,
28
+ },
29
+ ]
30
+ : []),
31
+ ...(areOptionsSelected
32
+ ? [
33
+ {
34
+ locator: BulkSelectionEvents.CLEAR_ALL_SELECTIONS,
35
+ label: BulkSelectionOptionsLabels[BulkSelectionEvents.CLEAR_ALL_SELECTIONS],
36
+ isSelected: false,
37
+ icon: ICClose,
38
+ iconClass: 'icon-use-fill-n6',
39
+ },
40
+ ]
41
+ : []),
42
+ ]
43
+
44
+ return (
45
+ <PopupMenu autoClose>
46
+ <PopupMenu.Button
47
+ isKebab
48
+ rootClassName="h-20 flexbox p-0 dc__no-background dc__no-border dc__outline-none-imp"
49
+ dataTestId={BULK_DROPDOWN_TEST_ID}
50
+ >
51
+ <Checkbox
52
+ isChecked={isChecked}
53
+ onChange={noop}
54
+ rootClassName="icon-dim-20 m-0"
55
+ value={checkboxValue}
56
+ // Ideally should be disabled but was giving issue with cursor
57
+ />
58
+
59
+ <ICChevronDown className="icon-dim-20 fcn-6 dc__no-shrink" />
60
+ </PopupMenu.Button>
61
+
62
+ <PopupMenu.Body rootClassName="dc__top-22 w-150 dc__right-0 pt-4 pb-4 pl-0 pr-0 bcn-0 flex column dc__content-start dc__align-start dc__position-abs bcn-0 dc__border dc__border-radius-4-imp">
63
+ {BulkSelectionItems.map((item) => (
64
+ <BulkSelectionDropdownItems<T>
65
+ key={item.locator}
66
+ locator={item.locator}
67
+ label={item.label}
68
+ isSelected={item.isSelected}
69
+ icon={item.icon}
70
+ handleBulkSelection={handleBulkSelection}
71
+ iconClass={item.iconClass}
72
+ />
73
+ ))}
74
+ </PopupMenu.Body>
75
+ </PopupMenu>
76
+ )
77
+ }
78
+
79
+ export default BulkSelection