@devtron-labs/devtron-fe-common-lib 0.0.58-beta-1 → 0.0.58-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 (588) 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 +5 -5
  15. package/dist/Common/AppStatus/AppStatus.d.ts +3 -3
  16. package/dist/Common/AppStatus/constants.d.ts +51 -51
  17. package/dist/Common/AppStatus/index.d.ts +1 -1
  18. package/dist/Common/AppStatus/types.d.ts +12 -12
  19. package/dist/Common/AppStatus/utils.d.ts +1 -1
  20. package/dist/Common/BreadCrumb/BreadCrumb.d.ts +5 -5
  21. package/dist/Common/BreadCrumb/BreadcrumbStore.d.ts +17 -17
  22. package/dist/Common/BreadCrumb/Types.d.ts +28 -28
  23. package/dist/Common/CIPipeline.Types.d.ts +265 -265
  24. package/dist/Common/ChartVersionAndTypeSelector.d.ts +4 -3
  25. package/dist/Common/Checkbox.d.ts +5 -5
  26. package/dist/Common/ClipboardButton/ClipboardButton.d.ts +10 -10
  27. package/dist/Common/ClipboardButton/types.d.ts +8 -8
  28. package/dist/Common/Common.service.d.ts +20 -20
  29. package/dist/Common/Constants.d.ts +76 -81
  30. package/dist/Common/CustomInput/CustomInput.d.ts +3 -3
  31. package/dist/Common/CustomInput/Types.d.ts +30 -30
  32. package/dist/Common/CustomInput/index.d.ts +2 -2
  33. package/dist/Common/CustomTagSelector/PropagateTagInfo.d.ts +4 -4
  34. package/dist/Common/CustomTagSelector/ResizableTagTextArea.d.ts +3 -3
  35. package/dist/Common/CustomTagSelector/TagDetails.d.ts +3 -2
  36. package/dist/Common/CustomTagSelector/TagLabelSelect.d.ts +3 -2
  37. package/dist/Common/CustomTagSelector/TagLabelValueSelector.d.ts +3 -2
  38. package/dist/Common/CustomTagSelector/TagSelector.utils.d.ts +12 -12
  39. package/dist/Common/CustomTagSelector/Types.d.ts +68 -68
  40. package/dist/Common/CustomTagSelector/ValidationRules.d.ts +10 -10
  41. package/dist/Common/CustomTagSelector/index.d.ts +6 -6
  42. package/dist/Common/DebouncedSearch/DebouncedSearch.d.ts +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 -4
  46. package/dist/Common/DeleteComponentModal/types.d.ts +15 -15
  47. package/dist/Common/DevtronProgressing/DevtronProgressing.d.ts +3 -3
  48. package/dist/Common/DevtronProgressing/index.d.ts +1 -1
  49. package/dist/Common/DevtronProgressing/types.d.ts +4 -4
  50. package/dist/Common/Dialogs/ConfirmationDialog.d.ts +9 -9
  51. package/dist/Common/Dialogs/DeleteDialog.d.ts +5 -5
  52. package/dist/Common/Dialogs/DialogForm.d.ts +14 -14
  53. package/dist/Common/Dialogs/ForceDeleteDialog.d.ts +3 -3
  54. package/dist/Common/Dialogs/Types.d.ts +45 -45
  55. package/dist/Common/Dialogs/index.d.ts +4 -4
  56. package/dist/Common/DraggableWrapper/DraggableButton.d.ts +3 -3
  57. package/dist/Common/DraggableWrapper/DraggableWrapper.d.ts +9 -9
  58. package/dist/Common/DraggableWrapper/index.d.ts +3 -3
  59. package/dist/Common/DraggableWrapper/types.d.ts +23 -23
  60. package/dist/Common/Drawer/Drawer.d.ts +16 -14
  61. package/dist/Common/EmptyState/EmptyState.d.ts +25 -28
  62. package/dist/Common/EmptyState/GenericEmptyState.d.ts +5 -4
  63. package/dist/Common/Error.d.ts +17 -17
  64. package/dist/Common/ErrorScreenNotFound.d.ts +3 -3
  65. package/dist/Common/Grid/Grid.d.ts +3 -3
  66. package/dist/Common/Grid/types.d.ts +10 -10
  67. package/dist/Common/Helper.d.ts +64 -65
  68. package/dist/Common/Hooks/UseClickOutside/UseClickOutside.d.ts +1 -1
  69. package/dist/Common/Hooks/UseSuperAdmin/UseSuperAdmin.d.ts +6 -6
  70. package/dist/Common/Hooks/UseSuperAdmin/types.d.ts +3 -3
  71. package/dist/Common/Hooks/UseWindowSize/UseWindowSize.d.ts +4 -4
  72. package/dist/Common/Hooks/index.d.ts +3 -3
  73. package/dist/Common/ImageTags.Types.d.ts +40 -40
  74. package/dist/Common/ImageTags.d.ts +4 -3
  75. package/dist/Common/InfoColorBar/InfoColourbar.d.ts +5 -4
  76. package/dist/Common/Modals/Modal.d.ts +3 -3
  77. package/dist/Common/Modals/OpaqueModal.d.ts +12 -12
  78. package/dist/Common/Modals/VisibleModal.d.ts +15 -15
  79. package/dist/Common/Modals/VisibleModal2.d.ts +12 -12
  80. package/dist/Common/MultiSelectCustomization.d.ts +37 -37
  81. package/dist/Common/Pagination/PageSizeSelector.d.ts +4 -3
  82. package/dist/Common/Pagination/Pagination.d.ts +5 -3
  83. package/dist/Common/Pagination/constants.d.ts +5 -5
  84. package/dist/Common/Pagination/index.d.ts +1 -1
  85. package/dist/Common/Pagination/types.d.ts +51 -51
  86. package/dist/Common/Pagination/utils.d.ts +6 -6
  87. package/dist/Common/Policy.Types.d.ts +56 -56
  88. package/dist/Common/PopupMenu.d.ts +8 -8
  89. package/dist/Common/Progressing.d.ts +4 -4
  90. package/dist/Common/RJSF/Form.d.ts +4 -2
  91. package/dist/Common/RJSF/common/FieldRow.d.ts +6 -5
  92. package/dist/Common/RJSF/common/types.d.ts +8 -8
  93. package/dist/Common/RJSF/config.d.ts +4 -4
  94. package/dist/Common/RJSF/constants.d.ts +7 -7
  95. package/dist/Common/RJSF/index.d.ts +3 -3
  96. package/dist/Common/RJSF/templates/ArrayFieldItemTemplate.d.ts +3 -2
  97. package/dist/Common/RJSF/templates/ArrayFieldTemplate.d.ts +3 -2
  98. package/dist/Common/RJSF/templates/BaseInput.d.ts +3 -2
  99. package/dist/Common/RJSF/templates/ButtonTemplates/AddButton.d.ts +3 -2
  100. package/dist/Common/RJSF/templates/ButtonTemplates/RemoveButton.d.ts +3 -2
  101. package/dist/Common/RJSF/templates/ButtonTemplates/SubmitButton.d.ts +3 -2
  102. package/dist/Common/RJSF/templates/ButtonTemplates/index.d.ts +3 -3
  103. package/dist/Common/RJSF/templates/Description.d.ts +3 -2
  104. package/dist/Common/RJSF/templates/Field.d.ts +3 -2
  105. package/dist/Common/RJSF/templates/FieldErrorTemplate.d.ts +3 -2
  106. package/dist/Common/RJSF/templates/ObjectFieldTemplate.d.ts +3 -2
  107. package/dist/Common/RJSF/templates/TitleField.d.ts +3 -2
  108. package/dist/Common/RJSF/templates/WrapIfAdditionalTemplate.d.ts +3 -2
  109. package/dist/Common/RJSF/templates/index.d.ts +10 -10
  110. package/dist/Common/RJSF/types.d.ts +3 -3
  111. package/dist/Common/RJSF/utils.d.ts +26 -25
  112. package/dist/Common/RJSF/widgets/Checkbox.d.ts +3 -2
  113. package/dist/Common/RJSF/widgets/Select.d.ts +3 -2
  114. package/dist/Common/RJSF/widgets/index.d.ts +2 -2
  115. package/dist/Common/RadioGroup/RadioGroup.d.ts +17 -16
  116. package/dist/Common/RadioGroup.d.ts +8 -8
  117. package/dist/Common/Reload.d.ts +3 -3
  118. package/dist/Common/ResizableTextarea.d.ts +3 -3
  119. package/dist/Common/SearchBar/SearchBar.component.d.ts +39 -37
  120. package/dist/Common/SearchBar/index.d.ts +2 -2
  121. package/dist/Common/SearchBar/types.d.ts +35 -35
  122. package/dist/Common/Security/ScanVulnerabilitiesTable.d.ts +4 -3
  123. package/dist/Common/ServerError.d.ts +15 -15
  124. package/dist/Common/TippyCustomized.d.ts +4 -3
  125. package/dist/Common/ToastBody.d.ts +23 -23
  126. package/dist/Common/Toggle/Toggle.d.ts +14 -12
  127. package/dist/Common/Types.d.ts +692 -691
  128. package/dist/Common/index.d.ts +50 -51
  129. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraConfigForm.d.ts +4 -0
  130. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraDescriptionField.d.ts +4 -0
  131. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormAction.d.ts +7 -0
  132. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormItem.d.ts +4 -0
  133. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraProfileNameField.d.ts +4 -0
  134. package/dist/Pages/GlobalConfigurations/BuildInfra/Descriptor.d.ts +4 -0
  135. package/dist/Pages/GlobalConfigurations/BuildInfra/Footer.d.ts +4 -0
  136. package/dist/Pages/GlobalConfigurations/BuildInfra/constants.d.ts +48 -0
  137. package/dist/Pages/GlobalConfigurations/BuildInfra/index.d.ts +7 -0
  138. package/dist/Pages/GlobalConfigurations/BuildInfra/services.d.ts +13 -0
  139. package/dist/Pages/GlobalConfigurations/BuildInfra/types.d.ts +281 -0
  140. package/dist/Pages/GlobalConfigurations/BuildInfra/utils.d.ts +12 -0
  141. package/dist/Pages/GlobalConfigurations/index.d.ts +1 -0
  142. package/dist/Pages/index.d.ts +1 -0
  143. package/dist/Shared/Components/APIResponseHandler/APIResponseHandler.d.ts +4 -0
  144. package/dist/Shared/Components/APIResponseHandler/index.d.ts +2 -0
  145. package/dist/Shared/Components/APIResponseHandler/types.d.ts +37 -0
  146. package/dist/Shared/Components/ReactSelect/index.d.ts +1 -0
  147. package/dist/Shared/Components/ReactSelect/utils.d.ts +12 -0
  148. package/dist/Shared/Components/index.d.ts +2 -0
  149. package/dist/Shared/index.d.ts +2 -0
  150. package/dist/Shared/validations.d.ts +7 -0
  151. package/dist/index.d.ts +3 -1
  152. package/dist/index.js +29849 -225
  153. package/package.json +23 -35
  154. package/rollup.config.js +31 -0
  155. package/src/Assets/Icon/ic-add.svg +3 -0
  156. package/src/Assets/Icon/ic-appstatus-cancelled.svg +6 -0
  157. package/src/Assets/Icon/ic-arrow-counter-clockwise.svg +5 -0
  158. package/src/Assets/Icon/ic-check.svg +5 -0
  159. package/src/Assets/Icon/ic-chevron-down.svg +5 -0
  160. package/src/Assets/Icon/ic-copy.svg +3 -0
  161. package/src/Assets/Icon/ic-cpu.svg +4 -0
  162. package/src/Assets/Icon/ic-cross.svg +3 -0
  163. package/src/Assets/Icon/ic-drag.svg +8 -0
  164. package/src/Assets/Icon/ic-enter.svg +3 -0
  165. package/src/Assets/Icon/ic-error-cross.svg +8 -0
  166. package/src/Assets/Icon/ic-error-exclamation.svg +6 -0
  167. package/src/Assets/Icon/ic-error-medium.svg +6 -0
  168. package/src/Assets/Icon/ic-help-outline.svg +3 -0
  169. package/src/Assets/Icon/ic-help.svg +3 -0
  170. package/src/Assets/Icon/ic-info-filled.svg +7 -0
  171. package/src/Assets/Icon/ic-info-outlined.svg +13 -0
  172. package/src/Assets/Icon/ic-memory.svg +3 -0
  173. package/src/Assets/Icon/ic-minus.svg +3 -0
  174. package/src/Assets/Icon/ic-pencil.svg +3 -0
  175. package/src/Assets/Icon/ic-progressing.svg +6 -0
  176. package/src/Assets/Icon/ic-rotate-devtron.svg +103 -0
  177. package/src/Assets/Icon/ic-search.svg +6 -0
  178. package/src/Assets/Icon/ic-timer.svg +3 -0
  179. package/src/Assets/Icon/ic-warning.svg +7 -0
  180. package/src/Assets/Icon/inject-tag.svg +5 -0
  181. package/src/Assets/Img/app-not-deployed.png +0 -0
  182. package/src/Assets/Img/delete-medium.svg +15 -0
  183. package/src/Assets/Img/ic-empty-error@2x.png +0 -0
  184. package/src/Assets/Img/ic-loading-failure.png +0 -0
  185. package/src/Assets/Img/ic-not-authorized.svg +62 -0
  186. package/src/Common/AddCDButton/AddCDButton.tsx +68 -0
  187. package/src/Common/AddCDButton/index.ts +2 -0
  188. package/src/Common/AddCDButton/types.ts +38 -0
  189. package/src/Common/AddCDButton/utils.tsx +35 -0
  190. package/src/Common/Api.ts +230 -0
  191. package/src/Common/AppStatus/AppStatus.tsx +64 -0
  192. package/src/Common/AppStatus/constants.ts +53 -0
  193. package/src/Common/AppStatus/index.ts +1 -0
  194. package/src/Common/AppStatus/types.ts +12 -0
  195. package/src/Common/AppStatus/utils.ts +14 -0
  196. package/src/Common/BreadCrumb/BreadCrumb.tsx +105 -0
  197. package/src/Common/BreadCrumb/BreadcrumbStore.tsx +25 -0
  198. package/src/Common/BreadCrumb/Types.ts +29 -0
  199. package/src/Common/CIPipeline.Types.ts +277 -0
  200. package/src/Common/ChartVersionAndTypeSelector.tsx +78 -0
  201. package/src/Common/Checkbox.tsx +37 -0
  202. package/src/Common/ClipboardButton/ClipboardButton.tsx +61 -0
  203. package/src/Common/ClipboardButton/__tests__/ClipboardButton.test.tsx +43 -0
  204. package/src/Common/ClipboardButton/types.ts +7 -0
  205. package/src/Common/Common.service.ts +315 -0
  206. package/src/Common/Constants.ts +255 -0
  207. package/src/Common/CustomInput/CustomInput.tsx +132 -0
  208. package/src/Common/CustomInput/Types.ts +31 -0
  209. package/src/Common/CustomInput/index.ts +2 -0
  210. package/src/Common/CustomTagSelector/PropagateTagInfo.tsx +46 -0
  211. package/src/Common/CustomTagSelector/ResizableTagTextArea.tsx +84 -0
  212. package/src/Common/CustomTagSelector/TagDetails.tsx +76 -0
  213. package/src/Common/CustomTagSelector/TagLabelSelect.tsx +61 -0
  214. package/src/Common/CustomTagSelector/TagLabelValueSelector.tsx +198 -0
  215. package/src/Common/CustomTagSelector/TagSelector.utils.ts +71 -0
  216. package/src/Common/CustomTagSelector/Types.ts +72 -0
  217. package/src/Common/CustomTagSelector/ValidationRules.ts +58 -0
  218. package/src/Common/CustomTagSelector/index.ts +6 -0
  219. package/src/Common/DebouncedSearch/DebouncedSearch.tsx +78 -0
  220. package/src/Common/DebouncedSearch/Types.ts +13 -0
  221. package/src/Common/DebouncedSearch/Utils.ts +19 -0
  222. package/src/Common/DebouncedSearch/__tests__/DebouncedSearch.test.tsx +61 -0
  223. package/src/Common/DeleteComponentModal/DeleteComponent.tsx +95 -0
  224. package/src/Common/DeleteComponentModal/types.ts +15 -0
  225. package/src/Common/DevtronProgressing/DevtronProgressing.tsx +11 -0
  226. package/src/Common/DevtronProgressing/index.ts +1 -0
  227. package/src/Common/DevtronProgressing/types.ts +4 -0
  228. package/src/Common/Dialogs/ConfirmationDialog.tsx +34 -0
  229. package/src/Common/Dialogs/DeleteDialog.tsx +69 -0
  230. package/src/Common/Dialogs/DialogForm.tsx +86 -0
  231. package/src/Common/Dialogs/ForceDeleteDialog.tsx +19 -0
  232. package/src/Common/Dialogs/Types.ts +47 -0
  233. package/src/Common/Dialogs/index.ts +4 -0
  234. package/src/Common/DraggableWrapper/DraggableButton.tsx +14 -0
  235. package/src/Common/DraggableWrapper/DraggableWrapper.tsx +118 -0
  236. package/src/Common/DraggableWrapper/index.ts +3 -0
  237. package/src/Common/DraggableWrapper/types.ts +27 -0
  238. package/src/Common/Drawer/Drawer.scss +40 -0
  239. package/src/Common/Drawer/Drawer.tsx +49 -0
  240. package/src/Common/EmptyState/EmptyState.tsx +42 -0
  241. package/src/Common/EmptyState/GenericEmptyState.tsx +81 -0
  242. package/src/Common/EmptyState/emptyState.scss +74 -0
  243. package/src/Common/Error.tsx +61 -0
  244. package/src/Common/ErrorScreenNotFound.tsx +31 -0
  245. package/src/Common/Grid/Grid.tsx +44 -0
  246. package/src/Common/Grid/types.ts +11 -0
  247. package/src/Common/Helper.tsx +576 -0
  248. package/src/Common/Hooks/UseClickOutside/UseClickOutside.tsx +15 -0
  249. package/src/Common/Hooks/UseSuperAdmin/UseSuperAdmin.tsx +24 -0
  250. package/src/Common/Hooks/UseSuperAdmin/types.ts +3 -0
  251. package/src/Common/Hooks/UseWindowSize/UseWindowSize.tsx +31 -0
  252. package/src/Common/Hooks/index.ts +3 -0
  253. package/src/Common/ImageTags.Types.ts +44 -0
  254. package/src/Common/ImageTags.tsx +586 -0
  255. package/src/Common/InfoColorBar/InfoColourbar.tsx +80 -0
  256. package/src/Common/InfoColorBar/infoColourBar.scss +28 -0
  257. package/src/Common/Modals/Modal.tsx +68 -0
  258. package/src/Common/Modals/OpaqueModal.tsx +36 -0
  259. package/src/Common/Modals/VisibleModal.tsx +55 -0
  260. package/src/Common/Modals/VisibleModal2.tsx +35 -0
  261. package/src/Common/MultiSelectCustomization.tsx +148 -0
  262. package/src/Common/Pagination/PageSizeSelector.tsx +78 -0
  263. package/src/Common/Pagination/Pagination.tsx +127 -0
  264. package/src/Common/Pagination/constants.ts +6 -0
  265. package/src/Common/Pagination/index.tsx +3 -0
  266. package/src/Common/Pagination/pagination.scss +123 -0
  267. package/src/Common/Pagination/types.ts +55 -0
  268. package/src/Common/Pagination/utils.tsx +24 -0
  269. package/src/Common/Policy.Types.ts +63 -0
  270. package/src/Common/PopupMenu.tsx +199 -0
  271. package/src/Common/Progressing.tsx +53 -0
  272. package/src/Common/RJSF/Form.tsx +29 -0
  273. package/src/Common/RJSF/common/FieldRow.tsx +35 -0
  274. package/src/Common/RJSF/common/types.ts +9 -0
  275. package/src/Common/RJSF/config.ts +37 -0
  276. package/src/Common/RJSF/constants.ts +10 -0
  277. package/src/Common/RJSF/index.ts +3 -0
  278. package/src/Common/RJSF/rjsfForm.scss +18 -0
  279. package/src/Common/RJSF/templates/ArrayFieldItemTemplate.tsx +31 -0
  280. package/src/Common/RJSF/templates/ArrayFieldTemplate.tsx +78 -0
  281. package/src/Common/RJSF/templates/BaseInput.tsx +16 -0
  282. package/src/Common/RJSF/templates/ButtonTemplates/AddButton.tsx +18 -0
  283. package/src/Common/RJSF/templates/ButtonTemplates/RemoveButton.tsx +10 -0
  284. package/src/Common/RJSF/templates/ButtonTemplates/SubmitButton.tsx +18 -0
  285. package/src/Common/RJSF/templates/ButtonTemplates/index.ts +3 -0
  286. package/src/Common/RJSF/templates/Description.tsx +12 -0
  287. package/src/Common/RJSF/templates/Field.tsx +30 -0
  288. package/src/Common/RJSF/templates/FieldErrorTemplate.tsx +25 -0
  289. package/src/Common/RJSF/templates/ObjectFieldTemplate.tsx +105 -0
  290. package/src/Common/RJSF/templates/TitleField.tsx +9 -0
  291. package/src/Common/RJSF/templates/WrapIfAdditionalTemplate.tsx +51 -0
  292. package/src/Common/RJSF/templates/index.ts +10 -0
  293. package/src/Common/RJSF/types.ts +4 -0
  294. package/src/Common/RJSF/utils.ts +126 -0
  295. package/src/Common/RJSF/widgets/Checkbox.tsx +44 -0
  296. package/src/Common/RJSF/widgets/Select.tsx +77 -0
  297. package/src/Common/RJSF/widgets/index.ts +2 -0
  298. package/src/Common/RadioGroup/RadioGroup.tsx +105 -0
  299. package/src/Common/RadioGroup/radioGroup.scss +46 -0
  300. package/src/Common/RadioGroup.tsx +53 -0
  301. package/src/Common/Reload.tsx +23 -0
  302. package/src/Common/ResizableTextarea.tsx +73 -0
  303. package/src/Common/SearchBar/SearchBar.component.tsx +133 -0
  304. package/src/Common/SearchBar/index.ts +2 -0
  305. package/src/Common/SearchBar/searchBar.scss +31 -0
  306. package/src/Common/SearchBar/types.ts +36 -0
  307. package/src/Common/Security/ScanVulnerabilitiesTable.tsx +55 -0
  308. package/src/Common/Security/scanVulnerabilities.css +69 -0
  309. package/src/Common/ServerError.ts +31 -0
  310. package/src/Common/TippyCustomized.tsx +172 -0
  311. package/src/Common/ToastBody.tsx +62 -0
  312. package/src/Common/Toggle/Toggle.scss +78 -0
  313. package/src/Common/Toggle/Toggle.tsx +50 -0
  314. package/src/Common/Types.ts +765 -0
  315. package/src/Common/index.ts +50 -0
  316. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraConfigForm.tsx +121 -0
  317. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraDescriptionField.tsx +44 -0
  318. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormAction.tsx +99 -0
  319. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormItem.tsx +55 -0
  320. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraProfileNameField.tsx +32 -0
  321. package/src/Pages/GlobalConfigurations/BuildInfra/Descriptor.tsx +38 -0
  322. package/src/Pages/GlobalConfigurations/BuildInfra/Footer.tsx +45 -0
  323. package/src/Pages/GlobalConfigurations/BuildInfra/Readme.md +4 -0
  324. package/src/Pages/GlobalConfigurations/BuildInfra/constants.tsx +137 -0
  325. package/src/Pages/GlobalConfigurations/BuildInfra/index.ts +7 -0
  326. package/src/Pages/GlobalConfigurations/BuildInfra/services.tsx +183 -0
  327. package/src/Pages/GlobalConfigurations/BuildInfra/types.tsx +334 -0
  328. package/src/Pages/GlobalConfigurations/BuildInfra/utils.tsx +489 -0
  329. package/src/Pages/GlobalConfigurations/index.ts +1 -0
  330. package/src/Pages/index.ts +1 -0
  331. package/src/Shared/Components/APIResponseHandler/APIResponseHandler.tsx +39 -0
  332. package/src/Shared/Components/APIResponseHandler/index.ts +2 -0
  333. package/src/Shared/Components/APIResponseHandler/types.tsx +39 -0
  334. package/src/Shared/Components/ReactSelect/index.ts +1 -0
  335. package/src/Shared/Components/ReactSelect/utils.tsx +97 -0
  336. package/src/Shared/Components/index.ts +2 -0
  337. package/src/Shared/index.ts +2 -0
  338. package/src/Shared/validations.tsx +72 -0
  339. package/src/custom.d.ts +13 -0
  340. package/src/index.ts +3 -0
  341. package/tsconfig.json +40 -0
  342. package/dist/CodeEditor-3c2aaef5.js +0 -103695
  343. package/dist/Common/AddCDButton/AddCDButton.js +0 -61
  344. package/dist/Common/AddCDButton/index.js +0 -6
  345. package/dist/Common/AddCDButton/types.js +0 -1
  346. package/dist/Common/AddCDButton/utils.js +0 -19
  347. package/dist/Common/Api.js +0 -167
  348. package/dist/Common/AppStatus/AppStatus.js +0 -37
  349. package/dist/Common/AppStatus/constants.js +0 -37
  350. package/dist/Common/AppStatus/index.js +0 -4
  351. package/dist/Common/AppStatus/types.js +0 -1
  352. package/dist/Common/AppStatus/utils.js +0 -8
  353. package/dist/Common/BreadCrumb/BreadCrumb.js +0 -71
  354. package/dist/Common/BreadCrumb/BreadcrumbStore.js +0 -22
  355. package/dist/Common/BreadCrumb/Types.js +0 -1
  356. package/dist/Common/CIPipeline.Types.js +0 -10
  357. package/dist/Common/ChartVersionAndTypeSelector.js +0 -61
  358. package/dist/Common/Checkbox.js +0 -28
  359. package/dist/Common/ClipboardButton/ClipboardButton.js +0 -40
  360. package/dist/Common/ClipboardButton/__tests__/ClipboardButton.test.d.ts +0 -1
  361. package/dist/Common/ClipboardButton/__tests__/ClipboardButton.test.js +0 -27
  362. package/dist/Common/ClipboardButton/types.js +0 -1
  363. package/dist/Common/CodeEditor/CodeEditor.d.ts +0 -47
  364. package/dist/Common/CodeEditor/CodeEditor.js +0 -15
  365. package/dist/Common/Common.service.js +0 -191
  366. package/dist/Common/Constants.js +0 -239
  367. package/dist/Common/CustomInput/CustomInput.js +0 -81
  368. package/dist/Common/CustomInput/Types.js +0 -1
  369. package/dist/Common/CustomInput/index.js +0 -4
  370. package/dist/Common/CustomTagSelector/PropagateTagInfo.js +0 -43
  371. package/dist/Common/CustomTagSelector/ResizableTagTextArea.js +0 -58
  372. package/dist/Common/CustomTagSelector/TagDetails.js +0 -65
  373. package/dist/Common/CustomTagSelector/TagLabelSelect.js +0 -50
  374. package/dist/Common/CustomTagSelector/TagLabelValueSelector.js +0 -121
  375. package/dist/Common/CustomTagSelector/TagSelector.utils.js +0 -61
  376. package/dist/Common/CustomTagSelector/Types.js +0 -1
  377. package/dist/Common/CustomTagSelector/ValidationRules.js +0 -35
  378. package/dist/Common/CustomTagSelector/index.js +0 -12
  379. package/dist/Common/DebouncedSearch/DebouncedSearch.js +0 -56
  380. package/dist/Common/DebouncedSearch/Types.js +0 -1
  381. package/dist/Common/DebouncedSearch/Utils.js +0 -19
  382. package/dist/Common/DebouncedSearch/__tests__/DebouncedSearch.test.d.ts +0 -1
  383. package/dist/Common/DebouncedSearch/__tests__/DebouncedSearch.test.js +0 -34
  384. package/dist/Common/DeleteComponentModal/DeleteComponent.js +0 -63
  385. package/dist/Common/DeleteComponentModal/types.js +0 -1
  386. package/dist/Common/DevtronProgressing/DevtronProgressing.js +0 -98
  387. package/dist/Common/DevtronProgressing/index.js +0 -4
  388. package/dist/Common/DevtronProgressing/types.js +0 -1
  389. package/dist/Common/Dialogs/ConfirmationDialog.js +0 -24
  390. package/dist/Common/Dialogs/DeleteDialog.js +0 -49
  391. package/dist/Common/Dialogs/DialogForm.js +0 -63
  392. package/dist/Common/Dialogs/ForceDeleteDialog.js +0 -23
  393. package/dist/Common/Dialogs/Types.js +0 -1
  394. package/dist/Common/Dialogs/index.js +0 -11
  395. package/dist/Common/DraggableWrapper/DraggableButton.js +0 -16
  396. package/dist/Common/DraggableWrapper/DraggableWrapper.js +0 -73
  397. package/dist/Common/DraggableWrapper/index.js +0 -8
  398. package/dist/Common/DraggableWrapper/types.js +0 -4
  399. package/dist/Common/Drawer/Drawer.js +0 -22
  400. package/dist/Common/EmptyState/EmptyState.js +0 -32
  401. package/dist/Common/EmptyState/GenericEmptyState.js +0 -79
  402. package/dist/Common/Error.js +0 -49
  403. package/dist/Common/ErrorScreenNotFound.js +0 -23
  404. package/dist/Common/Grid/Grid.js +0 -31
  405. package/dist/Common/Grid/types.js +0 -1
  406. package/dist/Common/Helper.js +0 -39
  407. package/dist/Common/Hooks/UseClickOutside/UseClickOutside.js +0 -14
  408. package/dist/Common/Hooks/UseSuperAdmin/UseSuperAdmin.js +0 -16
  409. package/dist/Common/Hooks/UseSuperAdmin/types.js +0 -1
  410. package/dist/Common/Hooks/UseWindowSize/UseWindowSize.js +0 -17
  411. package/dist/Common/Hooks/index.js +0 -8
  412. package/dist/Common/ImageTags.Types.js +0 -1
  413. package/dist/Common/ImageTags.js +0 -384
  414. package/dist/Common/InfoColorBar/InfoColourbar.js +0 -65
  415. package/dist/Common/Modals/Modal.js +0 -48
  416. package/dist/Common/Modals/OpaqueModal.js +0 -32
  417. package/dist/Common/Modals/VisibleModal.js +0 -31
  418. package/dist/Common/Modals/VisibleModal2.js +0 -31
  419. package/dist/Common/MultiSelectCustomization.js +0 -97
  420. package/dist/Common/Pagination/PageSizeSelector.js +0 -52
  421. package/dist/Common/Pagination/Pagination.js +0 -98
  422. package/dist/Common/Pagination/constants.js +0 -9
  423. package/dist/Common/Pagination/index.js +0 -4
  424. package/dist/Common/Pagination/types.js +0 -1
  425. package/dist/Common/Pagination/utils.js +0 -15
  426. package/dist/Common/Policy.Types.js +0 -6
  427. package/dist/Common/PopupMenu.js +0 -148
  428. package/dist/Common/Progressing.js +0 -52
  429. package/dist/Common/RJSF/Form.js +0 -25
  430. package/dist/Common/RJSF/common/FieldRow.js +0 -25
  431. package/dist/Common/RJSF/common/types.js +0 -1
  432. package/dist/Common/RJSF/config.js +0 -33
  433. package/dist/Common/RJSF/constants.js +0 -10
  434. package/dist/Common/RJSF/index.js +0 -7
  435. package/dist/Common/RJSF/templates/ArrayFieldItemTemplate.js +0 -30
  436. package/dist/Common/RJSF/templates/ArrayFieldTemplate.js +0 -60
  437. package/dist/Common/RJSF/templates/BaseInput.js +0 -16
  438. package/dist/Common/RJSF/templates/ButtonTemplates/AddButton.js +0 -18
  439. package/dist/Common/RJSF/templates/ButtonTemplates/RemoveButton.js +0 -6
  440. package/dist/Common/RJSF/templates/ButtonTemplates/SubmitButton.js +0 -17
  441. package/dist/Common/RJSF/templates/ButtonTemplates/index.js +0 -8
  442. package/dist/Common/RJSF/templates/Description.js +0 -9
  443. package/dist/Common/RJSF/templates/Field.js +0 -18
  444. package/dist/Common/RJSF/templates/FieldErrorTemplate.js +0 -13
  445. package/dist/Common/RJSF/templates/ObjectFieldTemplate.js +0 -71
  446. package/dist/Common/RJSF/templates/TitleField.js +0 -8
  447. package/dist/Common/RJSF/templates/WrapIfAdditionalTemplate.js +0 -43
  448. package/dist/Common/RJSF/templates/index.js +0 -26
  449. package/dist/Common/RJSF/types.js +0 -1
  450. package/dist/Common/RJSF/utils.js +0 -95
  451. package/dist/Common/RJSF/widgets/Checkbox.js +0 -39
  452. package/dist/Common/RJSF/widgets/Select.js +0 -625
  453. package/dist/Common/RJSF/widgets/index.js +0 -6
  454. package/dist/Common/RadioGroup/RadioGroup.js +0 -76
  455. package/dist/Common/RadioGroup.js +0 -47
  456. package/dist/Common/Reload.js +0 -16
  457. package/dist/Common/ResizableTextarea.js +0 -60
  458. package/dist/Common/SearchBar/SearchBar.component.js +0 -66
  459. package/dist/Common/SearchBar/index.js +0 -4
  460. package/dist/Common/SearchBar/types.js +0 -1
  461. package/dist/Common/Security/ScanVulnerabilitiesTable.js +0 -49
  462. package/dist/Common/Select/Select.d.ts +0 -4
  463. package/dist/Common/Select/Select.js +0 -193
  464. package/dist/Common/Select/types.d.ts +0 -29
  465. package/dist/Common/Select/types.js +0 -1
  466. package/dist/Common/ServerError.js +0 -26
  467. package/dist/Common/TippyCustomized.js +0 -10
  468. package/dist/Common/ToastBody.js +0 -41
  469. package/dist/Common/Toggle/Toggle.js +0 -40
  470. package/dist/Common/Types.js +0 -24
  471. package/dist/Common/index.js +0 -226
  472. package/dist/Helper-a0caa238.js +0 -9834
  473. package/dist/TippyCustomized-7b9b46b9.js +0 -124
  474. package/dist/_commonjsHelpers-aeeeeb92.js +0 -30
  475. package/dist/abap-9f67f57a.js +0 -1314
  476. package/dist/apex-ff62e532.js +0 -315
  477. package/dist/assets/CodeEditor.css +0 -1
  478. package/dist/assets/Drawer.css +0 -1
  479. package/dist/assets/Form.css +0 -1
  480. package/dist/assets/GenericEmptyState.css +0 -1
  481. package/dist/assets/InfoColourbar.css +0 -1
  482. package/dist/assets/Pagination.css +0 -1
  483. package/dist/assets/RadioGroup.css +0 -1
  484. package/dist/assets/ScanVulnerabilitiesTable.css +0 -1
  485. package/dist/assets/SearchBar.component.css +0 -1
  486. package/dist/assets/Select.css +0 -1
  487. package/dist/assets/TippyCustomized.css +0 -1
  488. package/dist/assets/Toggle.css +0 -1
  489. package/dist/assets/editor.worker-d26000ef.js +0 -9
  490. package/dist/assets/json.worker-f23a4654.js +0 -40
  491. package/dist/assets/yaml.worker-64fecd27.js +0 -463
  492. package/dist/azcli-31e64a7f.js +0 -74
  493. package/dist/bat-0ffe897e.js +0 -95
  494. package/dist/bicep-3414a2b1.js +0 -108
  495. package/dist/cameligo-df1f3f25.js +0 -168
  496. package/dist/clojure-65b0f010.js +0 -754
  497. package/dist/coffee-437f0fba.js +0 -228
  498. package/dist/cpp-66843dd5.js +0 -390
  499. package/dist/csharp-621d9a49.js +0 -320
  500. package/dist/csp-de0d5244.js +0 -57
  501. package/dist/css-7cd5ed4c.js +0 -186
  502. package/dist/cssMode-c5cae484.js +0 -1446
  503. package/dist/cypher-70ad96fe.js +0 -262
  504. package/dist/dart-33ae3739.js +0 -270
  505. package/dist/dockerfile-f2274a50.js +0 -132
  506. package/dist/ecl-3b8294a3.js +0 -454
  507. package/dist/elixir-b9dcc73a.js +0 -489
  508. package/dist/extends-70f3d2a3.js +0 -13
  509. package/dist/flow9-bdde8316.js +0 -141
  510. package/dist/freemarker2-b9a8615c.js +0 -643
  511. package/dist/fsharp-eac2e449.js +0 -210
  512. package/dist/go-d12ed8d4.js +0 -208
  513. package/dist/graphql-c7356b69.js +0 -141
  514. package/dist/handlebars-3803af36.js +0 -391
  515. package/dist/hcl-e883a0d4.js +0 -177
  516. package/dist/html-498f0150.js +0 -281
  517. package/dist/htmlMode-a8ae8cc5.js +0 -1456
  518. package/dist/ic-add-4787ded5.js +0 -5
  519. package/dist/ic-chevron-down-eb7fd953.js +0 -6
  520. package/dist/ic-copy-118b83dc.js +0 -5
  521. package/dist/ic-cross-0e71861d.js +0 -6
  522. package/dist/ic-error-cross-2760059a.js +0 -5
  523. package/dist/ic-error-exclamation-5f9af461.js +0 -5
  524. package/dist/ic-info-filled-31a15add.js +0 -6
  525. package/dist/ic-info-outlined-8fa45e87.js +0 -5
  526. package/dist/ic-warning-42534af1.js +0 -5
  527. package/dist/ini-425ab711.js +0 -68
  528. package/dist/inject-tag-824bf92c.js +0 -5
  529. package/dist/java-2bc0fd68.js +0 -221
  530. package/dist/javascript-4363ced3.js +0 -75
  531. package/dist/jsonMode-80290b9e.js +0 -1867
  532. package/dist/jsx-runtime-0dcb030c.js +0 -667
  533. package/dist/julia-1c932615.js +0 -496
  534. package/dist/kotlin-1ab839c8.js +0 -245
  535. package/dist/less-6fe856f5.js +0 -168
  536. package/dist/lexon-4955ac52.js +0 -151
  537. package/dist/liquid-1398df0a.js +0 -238
  538. package/dist/lua-3cca0047.js +0 -157
  539. package/dist/m3-132e9cb6.js +0 -210
  540. package/dist/markdown-ea59a0c1.js +0 -202
  541. package/dist/mips-19811f4b.js +0 -194
  542. package/dist/msdax-69954a10.js +0 -377
  543. package/dist/mysql-82088e5d.js +0 -876
  544. package/dist/objective-c-1976eccc.js +0 -188
  545. package/dist/pascal-8ef177cb.js +0 -245
  546. package/dist/pascaligo-bc517b9e.js +0 -158
  547. package/dist/perl-8b93582c.js +0 -599
  548. package/dist/pgsql-00c11a6d.js +0 -847
  549. package/dist/php-4c8c276f.js +0 -471
  550. package/dist/pla-e9b4ffb1.js +0 -131
  551. package/dist/postiats-2071af8c.js +0 -544
  552. package/dist/powerquery-8e388ceb.js +0 -890
  553. package/dist/powershell-e35db398.js +0 -233
  554. package/dist/protobuf-a24b9176.js +0 -422
  555. package/dist/pug-2c94d9b8.js +0 -393
  556. package/dist/python-dd2d43e8.js +0 -259
  557. package/dist/qsharp-d730d7fe.js +0 -282
  558. package/dist/r-be193556.js +0 -245
  559. package/dist/razor-20a66096.js +0 -512
  560. package/dist/react-select.esm-97f26847.js +0 -4160
  561. package/dist/react-toastify.esm-1042de65.js +0 -792
  562. package/dist/react.esm-2c92920f.js +0 -13727
  563. package/dist/redis-9690c6ac.js +0 -298
  564. package/dist/redshift-6bdcdeaa.js +0 -806
  565. package/dist/restructuredtext-a08c1d20.js +0 -162
  566. package/dist/ruby-2247692b.js +0 -444
  567. package/dist/rust-1dffb4d5.js +0 -337
  568. package/dist/sb-136598e9.js +0 -110
  569. package/dist/scala-b1100fed.js +0 -353
  570. package/dist/scheme-038c8094.js +0 -114
  571. package/dist/scss-700d1b52.js +0 -244
  572. package/dist/shell-86c16e0f.js +0 -224
  573. package/dist/solidity-c05fdf3c.js +0 -1351
  574. package/dist/sophia-cd645d71.js +0 -190
  575. package/dist/sparql-01d9ec9c.js +0 -193
  576. package/dist/sql-4c33df41.js +0 -818
  577. package/dist/st-52cf1408.js +0 -414
  578. package/dist/swift-13c792ba.js +0 -315
  579. package/dist/systemverilog-0bd8b730.js +0 -556
  580. package/dist/tcl-463d7c75.js +0 -232
  581. package/dist/tippy-react.esm-8dc66a75.js +0 -2018
  582. package/dist/tsMode-3fa4eb6a.js +0 -811
  583. package/dist/twig-0d98f5ec.js +0 -323
  584. package/dist/typescript-1bbaf605.js +0 -328
  585. package/dist/vb-3a2b0a51.js +0 -364
  586. package/dist/wgsl-b2ddb3e4.js +0 -420
  587. package/dist/xml-a2693dbd.js +0 -95
  588. package/dist/yaml-01ce4fdd.js +0 -184
@@ -0,0 +1,31 @@
1
+ import React, { HTMLInputTypeAttribute } from 'react'
2
+
3
+ export interface CustomInputProps {
4
+ name: string
5
+ value: string | number
6
+ onChange: (e: any) => void
7
+ onFocus?: (e: any) => void
8
+ autoComplete?: string
9
+ label?: string | React.ReactNode
10
+ labelClassName?: string
11
+ type?: HTMLInputTypeAttribute
12
+ disabled?: boolean
13
+ placeholder?: string
14
+ tabIndex?: number
15
+ dataTestid?: string
16
+ isRequiredField?: boolean
17
+ autoFocus?: boolean
18
+ rootClassName?: string
19
+ error?: string[] | string
20
+ helperText?: string
21
+ handleOnBlur?: (e) => void
22
+ readOnly?: boolean
23
+ noTrim?: boolean
24
+ ref?: React.LegacyRef<HTMLInputElement>
25
+ onKeyPress?: (e) => void
26
+ defaultValue?: string | number | ReadonlyArray<string> | undefined
27
+ onKeyDown?: (e) => void
28
+ required?: boolean
29
+ additionalErrorInfo?: React.ReactNode
30
+ inputWrapClassName?: string
31
+ }
@@ -0,0 +1,2 @@
1
+ export * from './CustomInput'
2
+ export * from './Types'
@@ -0,0 +1,46 @@
1
+ import React from 'react'
2
+ import { ReactComponent as InjectTag } from '../../Assets/Icon/inject-tag.svg'
3
+ import { ReactComponent as Help } from '../../Assets/Icon/ic-help-outline.svg'
4
+ import { TippyCustomized } from '../TippyCustomized'
5
+ import { TippyTheme } from '../Types'
6
+ import { DOCUMENTATION } from '../Constants'
7
+
8
+ export default function PropagateTagInfo({ isCreateApp }: { isCreateApp: boolean }) {
9
+ const additionalInfo = () => {
10
+ return (
11
+ <div className="p-12 fs-13">
12
+ <div className="mb-20">
13
+ <span className="flex left">
14
+ Add a tag and click on the
15
+ <InjectTag className="icon-dim-16 ml-4 mr-4" />
16
+ icon to
17
+ </span>
18
+ propagate tags as labels to Kubernetes resources
19
+ </div>
20
+ <div>Use these tags to filter/identify resources via CLI or in other Kubernetes tools.</div>
21
+ </div>
22
+ )
23
+ }
24
+ return (
25
+ <TippyCustomized
26
+ theme={TippyTheme.white}
27
+ className="w-300"
28
+ placement="top"
29
+ Icon={InjectTag}
30
+ heading={'Propagate tags to K8s resources'}
31
+ infoText=""
32
+ additionalContent={additionalInfo()}
33
+ showCloseButton={true}
34
+ trigger="click"
35
+ interactive={true}
36
+ documentationLink={isCreateApp ? DOCUMENTATION.APP_TAGS : DOCUMENTATION.APP_OVERVIEW_TAGS}
37
+ documentationLinkText="View Documentation"
38
+ >
39
+ <div className="flexbox cursor">
40
+ <InjectTag className="icon-dim-16 mt-2 mr-4" />
41
+ <span>Propagate tags</span>
42
+ <Help className="icon-dim-16 mt-2 ml-4" />
43
+ </div>
44
+ </TippyCustomized>
45
+ )
46
+ }
@@ -0,0 +1,84 @@
1
+ import React, { useEffect, useState } from 'react'
2
+ import { useThrottledEffect } from '../Helper'
3
+ import { ResizableTagTextAreaProps } from './Types'
4
+
5
+ export function ResizableTagTextArea({
6
+ className,
7
+ minHeight,
8
+ maxHeight,
9
+ value,
10
+ onChange,
11
+ onBlur,
12
+ onFocus,
13
+ placeholder,
14
+ tabIndex,
15
+ refVar,
16
+ dependentRef,
17
+ dataTestId,
18
+ handleKeyDown,
19
+ }: ResizableTagTextAreaProps) {
20
+ const [text, setText] = useState('')
21
+
22
+ useEffect(() => {
23
+ setText(value)
24
+ }, [value])
25
+
26
+ const handleChange = (event) => {
27
+ setText(event.target.value)
28
+ onChange(event)
29
+ }
30
+
31
+ const reInitHeight = () => {
32
+ if (document.activeElement !== refVar.current) return
33
+ refVar.current.style.height = minHeight + 'px'
34
+ if (dependentRef) {
35
+ dependentRef.current.style.height = minHeight + 'px'
36
+ }
37
+ let nextHeight = refVar.current.scrollHeight
38
+ if (dependentRef && nextHeight < dependentRef.current.scrollHeight) {
39
+ nextHeight = dependentRef.current.scrollHeight
40
+ }
41
+ if (minHeight && nextHeight < minHeight) {
42
+ nextHeight = minHeight
43
+ }
44
+ if (maxHeight && nextHeight > maxHeight) {
45
+ nextHeight = maxHeight
46
+ }
47
+ refVar.current.style.height = nextHeight + 'px'
48
+ if (dependentRef) {
49
+ dependentRef.current.style.height = nextHeight + 'px'
50
+ }
51
+ }
52
+
53
+ useThrottledEffect(reInitHeight, 500, [text])
54
+
55
+ const handleOnBlur = (event) => {
56
+ refVar.current.style.height = minHeight + 'px'
57
+ if (dependentRef) {
58
+ dependentRef.current.style.height = minHeight + 'px'
59
+ }
60
+ onBlur && onBlur(event)
61
+ }
62
+
63
+ const handleOnFocus = (event) => {
64
+ reInitHeight()
65
+ onFocus && onFocus(event)
66
+ }
67
+
68
+ return (
69
+ <textarea
70
+ rows={1}
71
+ ref={refVar}
72
+ value={text}
73
+ placeholder={placeholder}
74
+ className={`${className || ''} lh-20`}
75
+ style={{ resize: 'none' }}
76
+ onChange={handleChange}
77
+ onBlur={handleOnBlur}
78
+ onFocus={handleOnFocus}
79
+ tabIndex={tabIndex}
80
+ data-testid={dataTestId}
81
+ onKeyDown={handleKeyDown}
82
+ />
83
+ )
84
+ }
@@ -0,0 +1,76 @@
1
+ import React, { useRef } from 'react'
2
+ import { ReactComponent as DeleteCross } from '../../Assets/Icon/ic-cross.svg'
3
+ import { ReactComponent as InjectTag } from '../../Assets/Icon/inject-tag.svg'
4
+ import { TagLabelValueSelector } from './TagLabelValueSelector'
5
+ import { KEY_VALUE } from '../Constants'
6
+ import { stopPropagation } from '../Helper'
7
+ import { TagDetailType } from './Types'
8
+ import { ValidationRules } from './ValidationRules'
9
+
10
+ export const TagDetails = ({
11
+ index,
12
+ tagData,
13
+ setTagData,
14
+ removeTag,
15
+ tabIndex = 1,
16
+ suggestedTagsOptions,
17
+ }: TagDetailType) => {
18
+ const keyRef = useRef(null)
19
+ const valueRef = useRef(null)
20
+ const validationRules = new ValidationRules()
21
+
22
+ const deleteTag = (e): void => {
23
+ stopPropagation(e)
24
+ removeTag(index)
25
+ }
26
+ const propagateTagToResource = (): void => {
27
+ const _tagData = { ...tagData }
28
+ _tagData.propagate = !_tagData.propagate
29
+ if (_tagData.propagate) {
30
+ _tagData.isInvalidKey = _tagData.isInvalidKey || !_tagData.key
31
+ _tagData.isInvalidValue = _tagData.isInvalidValue || !_tagData.value
32
+ } else {
33
+ _tagData.isInvalidKey =
34
+ _tagData.key || _tagData.value ? !validationRules.propagateTagKey(_tagData.key).isValid : false
35
+ _tagData.isInvalidValue = _tagData.value
36
+ ? !validationRules.propagateTagValue(_tagData.value, _tagData.key).isValid
37
+ : false
38
+ }
39
+ setTagData(index, _tagData)
40
+ }
41
+ return (
42
+ <div className="flexbox mb-8">
43
+ <div
44
+ className={`dc__border h-30 pl-4 pr-4 br-4 mr-8 pointer ${tagData.propagate ? 'bcn-7' : ''} ${tagData.key.startsWith("devtron.ai/") ? 'cursor-not-allowed bcn-1' : ''}`}
45
+ onClick={propagateTagToResource}
46
+ data-testid={`propagate-tag-${index}`}
47
+ >
48
+ <InjectTag className={`icon-dim-20 mt-4 ${tagData.propagate ? 'scn-0' : ''}`} />
49
+ </div>
50
+ <TagLabelValueSelector
51
+ selectedTagIndex={index}
52
+ tagData={tagData}
53
+ setTagData={setTagData}
54
+ tagInputType={KEY_VALUE.KEY}
55
+ placeholder="Enter key"
56
+ tabIndex={tabIndex - 1}
57
+ refVar={keyRef}
58
+ dependentRef={valueRef}
59
+ tagOptions={suggestedTagsOptions}
60
+ />
61
+ <TagLabelValueSelector
62
+ selectedTagIndex={index}
63
+ tagData={tagData}
64
+ setTagData={setTagData}
65
+ tagInputType={KEY_VALUE.VALUE}
66
+ placeholder="Enter value"
67
+ tabIndex={tabIndex}
68
+ refVar={valueRef}
69
+ dependentRef={keyRef}
70
+ />
71
+ <div className="dc__border pl-4 pr-4 dc__right-radius-4 pointer flex top" onClick={deleteTag} data-testid={`delete-tag-${index}`}>
72
+ <DeleteCross className="icon-dim-20 mt-4" />
73
+ </div>
74
+ </div>
75
+ )
76
+ }
@@ -0,0 +1,61 @@
1
+ import React from 'react'
2
+ import PropagateTagInfo from './PropagateTagInfo'
3
+ import { ReactComponent as Add } from '../../Assets/Icon/ic-add.svg'
4
+ import { DEFAULT_TAG_DATA } from '../Constants'
5
+ import { TagLabelSelectType } from './Types'
6
+ import { TagDetails } from './TagDetails'
7
+
8
+ export const TagLabelSelect = ({
9
+ isCreateApp,
10
+ labelTags,
11
+ setLabelTags,
12
+ tabIndex = 0
13
+ }: TagLabelSelectType) => {
14
+ const setTagData = (index, tagValue): void => {
15
+ const _tags = [...labelTags]
16
+ const _tagValue = tagValue
17
+ if(_tagValue.key.startsWith("devtron.ai/")){
18
+ _tagValue.propagate = false
19
+ }
20
+ _tags[index] = _tagValue
21
+ setLabelTags(_tags)
22
+ }
23
+
24
+ const addNewTag = (): void => {
25
+ const _tags = [...labelTags]
26
+ _tags.splice(0, 0, DEFAULT_TAG_DATA)
27
+ setLabelTags(_tags)
28
+ }
29
+
30
+ const removeTag = (index: number): void => {
31
+ const _tags = [...labelTags]
32
+ _tags.splice(index, 1)
33
+ setLabelTags(_tags)
34
+ }
35
+
36
+ return (
37
+ <div>
38
+ <div className="flexbox dc__content-space mb-8">
39
+ <span>Tags</span>
40
+ <PropagateTagInfo isCreateApp={isCreateApp} />
41
+ </div>
42
+ <div>
43
+ <div className="dc_width-max-content cb-5 fw-6 fs-13 flexbox mr-20 mb-8 cursor" onClick={addNewTag} data-testid="add-tag-button">
44
+ <Add className="icon-dim-20 fcb-5" /> Add tag
45
+ </div>
46
+ <div className="mb-8" data-testid="tag-rows-container">
47
+ {labelTags?.map((tagData, index) => (
48
+ <TagDetails
49
+ key={`tag-${index}`}
50
+ index={index}
51
+ tagData={tagData}
52
+ setTagData={setTagData}
53
+ removeTag={removeTag}
54
+ tabIndex={tabIndex + (index + 2)}
55
+ />
56
+ ))}
57
+ </div>
58
+ </div>
59
+ </div>
60
+ )
61
+ }
@@ -0,0 +1,198 @@
1
+ import React, { useState, useEffect } from 'react'
2
+ import PopupMenu from '../PopupMenu'
3
+ import { ReactComponent as ErrorCross } from '../../Assets/Icon/ic-cross.svg'
4
+ import { ReactComponent as Info } from '../../Assets/Icon/ic-info-outlined.svg'
5
+ import { KEY_VALUE } from '../Constants'
6
+ import { stopPropagation } from '../Helper'
7
+ import { ResizableTagTextArea } from './ResizableTagTextArea'
8
+ import { SuggestedTagOptionType, TagLabelValueSelectorType } from './Types'
9
+ import Tippy from '@tippyjs/react'
10
+ import { ValidationRules } from './ValidationRules'
11
+
12
+ export const TagLabelValueSelector = ({
13
+ selectedTagIndex,
14
+ tagData,
15
+ setTagData,
16
+ tagOptions,
17
+ isRequired,
18
+ tagInputType,
19
+ placeholder,
20
+ tabIndex = null,
21
+ refVar,
22
+ dependentRef,
23
+ noBackDrop,
24
+ }: TagLabelValueSelectorType) => {
25
+ const [selectedValue, setSelectedValue] = useState<string>('')
26
+ const [activeElement, setActiveElement] = useState<string>('')
27
+ const validationRules = new ValidationRules()
28
+
29
+ useEffect(() => {
30
+ setSelectedValue(tagData?.[tagInputType] || '')
31
+ }, [selectedTagIndex, tagData, tagInputType])
32
+
33
+ const handleOnFocus = (e) => {
34
+ setTimeout(() => {
35
+ setActiveElement(`tag-${tagInputType}-${selectedTagIndex}`)
36
+ }, 300)
37
+ }
38
+ const handleOnBlur = (e) => {
39
+ if (
40
+ !e.relatedTarget ||
41
+ !e.relatedTarget.classList.value ||
42
+ !e.relatedTarget.classList.value.includes(`tag-${selectedTagIndex}-class`)
43
+ ) {
44
+ setActiveElement('')
45
+ const _tagData = { ...tagData }
46
+ _tagData[tagInputType] = selectedValue
47
+ if (tagInputType === KEY_VALUE.KEY) {
48
+ _tagData.isInvalidKey =
49
+ selectedValue || _tagData.propagate
50
+ ? !validationRules.propagateTagKey(selectedValue).isValid
51
+ : _tagData.value !== ''
52
+ } else if (selectedValue || isRequired || _tagData.propagate) {
53
+ _tagData.isInvalidValue = !validationRules.propagateTagValue(selectedValue, _tagData.key).isValid
54
+ _tagData.isInvalidKey = !_tagData.key || _tagData.isInvalidKey
55
+ } else {
56
+ _tagData.isInvalidValue = false
57
+ _tagData.isInvalidKey = !_tagData.key ? false : _tagData.isInvalidKey
58
+ }
59
+ setTagData(selectedTagIndex, _tagData)
60
+ }
61
+ }
62
+
63
+ const handleInputChange = (e): void => {
64
+ setSelectedValue(e.target.value)
65
+ }
66
+
67
+ const onSelectValue = (e): void => {
68
+ stopPropagation(e)
69
+ const _tagData = { ...tagData }
70
+ _tagData[tagInputType] = e.currentTarget.dataset.key
71
+ _tagData.propagate = e.currentTarget.dataset.propagate === 'true'
72
+ setTagData(selectedTagIndex, _tagData)
73
+ setActiveElement('')
74
+ }
75
+
76
+ const renderValidationsSuggestions = (): JSX.Element => {
77
+ let field = { isValid: true, messages: [] }
78
+ if (tagInputType === KEY_VALUE.KEY) {
79
+ if (selectedValue || tagData.value) {
80
+ field = validationRules.propagateTagKey(selectedValue)
81
+ }
82
+ } else if (isRequired || selectedValue || tagData.propagate) {
83
+ field = validationRules.propagateTagValue(selectedValue, tagData.key)
84
+ }
85
+ if (!field.isValid) {
86
+ return (
87
+ <div className="p-4" onClick={stopPropagation} data-testid="tag-label-cross-stop-propagation">
88
+ {field.messages.map((error) => (
89
+ <div key={error} className="flexbox pr-4 pl-4">
90
+ <span>
91
+ <ErrorCross className="icon-dim-14 scr-5 mt-3 mr-4" />
92
+ </span>
93
+ <span>{error}</span>
94
+ </div>
95
+ ))}
96
+ {tagInputType === KEY_VALUE.KEY && (
97
+ <div className="flexbox pr-4 pl-4">
98
+ <span>
99
+ <Info className="icon-dim-14 mt-3 mr-4" />
100
+ </span>
101
+ <span className="dc__italic-font-style">Key format: prefix/name or name</span>
102
+ </div>
103
+ )}
104
+ </div>
105
+ )
106
+ }
107
+ return null
108
+ }
109
+
110
+ const option = (tag: SuggestedTagOptionType, index: number): JSX.Element => {
111
+ return (
112
+ <div
113
+ key={`${tag.value}-${index}`}
114
+ data-key={tag.label}
115
+ data-propagate={tag.propagate}
116
+ className="dc__hover-n50 dc__ellipsis-right lh-20 fs-13 fw-4 pt-6 pr-8 pb-6 pl-8 cursor"
117
+ onClick={onSelectValue}
118
+ data-testid={`tag-label-value-${index}`}
119
+ >
120
+ {tag.label}
121
+ </div>
122
+ )
123
+ }
124
+
125
+ const optionWithTippy = (tag: SuggestedTagOptionType, index: number): JSX.Element => {
126
+ return (
127
+ <Tippy
128
+ className="default-tt"
129
+ arrow={false}
130
+ placement="right"
131
+ content={
132
+ <div>
133
+ <div className="mb-10 fs-12 fw-6 cn-0 dc__break-word">{tag.label}</div>
134
+ <div className="fs-12 fw-4 cn-0 dc__break-word">{tag.description}</div>
135
+ </div>
136
+ }
137
+ >
138
+ {option(tag, index)}
139
+ </Tippy>
140
+ )
141
+ }
142
+
143
+ const renderSuggestions = (): JSX.Element => {
144
+ if (tagOptions?.length) {
145
+ const filteredTags = tagOptions.filter((tag) => tag.label.indexOf(selectedValue) >= 0)
146
+ if (filteredTags.length) {
147
+ return (
148
+ <div>
149
+ {filteredTags.map((tag, index) =>
150
+ tag.description ? optionWithTippy(tag, index) : option(tag, index),
151
+ )}
152
+ </div>
153
+ )
154
+ }
155
+ }
156
+ return renderValidationsSuggestions()
157
+ }
158
+
159
+ const popupMenuBody = activeElement === `tag-${tagInputType}-${selectedTagIndex}` ? renderSuggestions() : null
160
+ return (
161
+ <PopupMenu autoClose autoPosition>
162
+ <PopupMenu.Button rootClassName="dc__bg-n50 flex top dc__no-border-imp">
163
+ <ResizableTagTextArea
164
+ minHeight={30}
165
+ maxHeight={80}
166
+ className={`form__input tag-input pt-4-imp pb-4-imp fs-13 ${
167
+ tagInputType === KEY_VALUE.KEY
168
+ ? `dc__no-right-radius`
169
+ : `dc__no-border-radius dc__no-right-border dc__no-left-border`
170
+ } ${
171
+ tagData[tagInputType === KEY_VALUE.KEY ? 'isInvalidKey' : 'isInvalidValue']
172
+ ? 'form__input--error'
173
+ : ''
174
+ }`}
175
+ value={selectedValue}
176
+ onChange={handleInputChange}
177
+ onBlur={handleOnBlur}
178
+ onFocus={handleOnFocus}
179
+ placeholder={placeholder}
180
+ tabIndex={tabIndex}
181
+ refVar={refVar}
182
+ dependentRef={dependentRef}
183
+ dataTestId={`tag-${tagInputType === KEY_VALUE.KEY ? 'key' : 'value'}-${selectedTagIndex}`}
184
+ />
185
+ </PopupMenu.Button>
186
+ {popupMenuBody && (
187
+ <PopupMenu.Body
188
+ rootClassName={`mxh-210 dc__overflow-auto tag-${selectedTagIndex}-class`}
189
+ autoWidth={true}
190
+ preventWheelDisable={true}
191
+ noBackDrop={noBackDrop}
192
+ >
193
+ {popupMenuBody}
194
+ </PopupMenu.Body>
195
+ )}
196
+ </PopupMenu>
197
+ )
198
+ }
@@ -0,0 +1,71 @@
1
+ export const baseSelectStyles = {
2
+ control: (base, state) => ({
3
+ ...base,
4
+ border: '1px solid var(--N200)',
5
+ boxShadow: 'none',
6
+ minHeight: 'auto',
7
+ borderRadius: 'none',
8
+ height: '32px',
9
+ fontSize: '12px',
10
+ borderRight: '0',
11
+ cursor: state.isDisabled ? 'not-allowed' : 'normal',
12
+ }),
13
+ singleValue: (base, state) => ({
14
+ ...base,
15
+ fontWeight: '500',
16
+ }),
17
+ placeholder: (base, state) => ({
18
+ ...base,
19
+ fontWeight: '500',
20
+ }),
21
+ option: (base, state) => ({
22
+ ...base,
23
+ fontWeight: '500',
24
+ color: 'var(--N900)',
25
+ fontSize: '12px',
26
+ padding: '5px 10px',
27
+ }),
28
+ dropdownIndicator: (styles) => ({ ...styles, padding: 0 }),
29
+ valueContainer: (base, state) => ({
30
+ ...base,
31
+ color: 'var(--N900)',
32
+ background: state.isDisabled ? 'var(--N100) !important' : 'var(--N50) !important',
33
+ padding: '0px 10px',
34
+ display: 'flex',
35
+ height: '30px',
36
+ fontSize: '12px',
37
+ cursor: state.isDisabled ? 'not-allowed' : 'normal',
38
+ pointerEvents: 'all',
39
+ width: '100px',
40
+ whiteSpace: 'nowrap',
41
+ }),
42
+ indicatorsContainer: (base, state) => ({
43
+ ...base,
44
+ background: state.isDisabled ? 'var(--N100) !important' : 'var(--N50) !important',
45
+ }),
46
+ menu: (base, state) => ({
47
+ ...base,
48
+ marginTop: '0',
49
+ }),
50
+ }
51
+
52
+ export const validateKubernetesKey = (key: string) => {
53
+ const invalidMessageList = []
54
+ if (!key || key.split('/')) {
55
+ invalidMessageList.push('Name is required')
56
+ } else {
57
+ const re = new RegExp('/', 'g')
58
+ const noOfSlashInKey = key.match(re).length
59
+ if (noOfSlashInKey > 1) {
60
+ invalidMessageList.push('Key: Max 1 ( / ) allowed')
61
+ } else {
62
+ let name = key
63
+ if (noOfSlashInKey === 1) {
64
+ const [prefix, name]=key.split('/')
65
+
66
+ }
67
+ }
68
+ }
69
+ }
70
+
71
+ export const validateKubernetesValue = (value: string) => {}
@@ -0,0 +1,72 @@
1
+ import { KEY_VALUE } from '../Constants'
2
+ import { OptionType } from '../Types'
3
+
4
+ export interface SuggestedTagOptionType extends OptionType {
5
+ description: string
6
+ propagate: boolean
7
+ }
8
+ export interface TagType {
9
+ id?: number
10
+ key: string
11
+ value?: string
12
+ description?: string
13
+ propagate: boolean
14
+ mandatoryProjectIdsCsv?: string
15
+ isInvalidKey?: boolean
16
+ isInvalidValue?: boolean
17
+ isSuggested?: boolean
18
+ isPropagateDisabled?: boolean
19
+ }
20
+
21
+ export interface TagErrorType {
22
+ isValid: boolean
23
+ messages: string[]
24
+ }
25
+ export interface TagLabelSelectType {
26
+ isCreateApp?: boolean
27
+ labelTags: TagType[]
28
+ setLabelTags: (tagList: TagType[]) => void
29
+ tabIndex?: number
30
+ selectedProjectId?: number
31
+ suggestedTagsOptions?: SuggestedTagOptionType[]
32
+ reloadProjectTags?: boolean
33
+ }
34
+
35
+ export interface TagDetailType {
36
+ index: number
37
+ tagData: TagType
38
+ setTagData: (index: number, tagData: TagType) => void
39
+ removeTag?: (index: number) => void
40
+ tabIndex?: number
41
+ suggestedTagsOptions?: SuggestedTagOptionType[]
42
+ }
43
+
44
+ export interface TagLabelValueSelectorType {
45
+ selectedTagIndex: number
46
+ tagData: TagType
47
+ setTagData: (index: number, tagData: TagType) => void
48
+ tagOptions?: SuggestedTagOptionType[]
49
+ isRequired?: boolean
50
+ tagInputType?: KEY_VALUE
51
+ placeholder?: string
52
+ tabIndex?: number
53
+ refVar?: React.MutableRefObject<HTMLTextAreaElement>
54
+ dependentRef?: React.MutableRefObject<HTMLTextAreaElement>
55
+ noBackDrop?: boolean
56
+ }
57
+
58
+ export interface ResizableTagTextAreaProps {
59
+ className?: string
60
+ minHeight?: number
61
+ maxHeight?: number
62
+ value?: string
63
+ onChange?: (e) => void
64
+ onBlur?: (e) => void
65
+ onFocus?: (e) => void
66
+ placeholder?: string
67
+ tabIndex?: number
68
+ refVar?: React.MutableRefObject<HTMLTextAreaElement>
69
+ dependentRef?: React.MutableRefObject<HTMLTextAreaElement>
70
+ dataTestId?: string
71
+ handleKeyDown?: any
72
+ }