@devtron-labs/devtron-fe-common-lib 0.0.52-beta-1 → 0.0.52-beta-3

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 (519) hide show
  1. package/.eslintignore +79 -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 +67 -73
  30. package/dist/Common/CustomInput/CustomInput.d.ts +3 -3
  31. package/dist/Common/CustomInput/Types.d.ts +30 -29
  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 +15 -15
  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 +28 -24
  62. package/dist/Common/EmptyState/GenericEmptyState.d.ts +5 -4
  63. package/dist/Common/Error.d.ts +18 -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 +60 -61
  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/Policy.Types.d.ts +56 -56
  82. package/dist/Common/PopupMenu.d.ts +8 -8
  83. package/dist/Common/Progressing.d.ts +4 -4
  84. package/dist/Common/RJSF/Form.d.ts +4 -2
  85. package/dist/Common/RJSF/common/FieldRow.d.ts +6 -5
  86. package/dist/Common/RJSF/common/types.d.ts +8 -8
  87. package/dist/Common/RJSF/config.d.ts +4 -4
  88. package/dist/Common/RJSF/constants.d.ts +7 -7
  89. package/dist/Common/RJSF/index.d.ts +3 -3
  90. package/dist/Common/RJSF/templates/ArrayFieldItemTemplate.d.ts +3 -2
  91. package/dist/Common/RJSF/templates/ArrayFieldTemplate.d.ts +3 -2
  92. package/dist/Common/RJSF/templates/BaseInput.d.ts +3 -2
  93. package/dist/Common/RJSF/templates/ButtonTemplates/AddButton.d.ts +3 -2
  94. package/dist/Common/RJSF/templates/ButtonTemplates/RemoveButton.d.ts +3 -2
  95. package/dist/Common/RJSF/templates/ButtonTemplates/SubmitButton.d.ts +3 -2
  96. package/dist/Common/RJSF/templates/ButtonTemplates/index.d.ts +3 -3
  97. package/dist/Common/RJSF/templates/Description.d.ts +3 -2
  98. package/dist/Common/RJSF/templates/Field.d.ts +3 -2
  99. package/dist/Common/RJSF/templates/FieldErrorTemplate.d.ts +3 -2
  100. package/dist/Common/RJSF/templates/ObjectFieldTemplate.d.ts +3 -2
  101. package/dist/Common/RJSF/templates/TitleField.d.ts +3 -2
  102. package/dist/Common/RJSF/templates/WrapIfAdditionalTemplate.d.ts +3 -2
  103. package/dist/Common/RJSF/templates/index.d.ts +10 -10
  104. package/dist/Common/RJSF/types.d.ts +3 -3
  105. package/dist/Common/RJSF/utils.d.ts +26 -25
  106. package/dist/Common/RJSF/widgets/Checkbox.d.ts +3 -2
  107. package/dist/Common/RJSF/widgets/Select.d.ts +3 -2
  108. package/dist/Common/RJSF/widgets/index.d.ts +2 -2
  109. package/dist/Common/RadioGroup/RadioGroup.d.ts +17 -16
  110. package/dist/Common/RadioGroup.d.ts +8 -8
  111. package/dist/Common/Reload.d.ts +3 -3
  112. package/dist/Common/ResizableTextarea.d.ts +3 -3
  113. package/dist/Common/Security/ScanVulnerabilitiesTable.d.ts +4 -3
  114. package/dist/Common/ServerError.d.ts +15 -15
  115. package/dist/Common/TippyCustomized.d.ts +4 -3
  116. package/dist/Common/ToastBody.d.ts +23 -23
  117. package/dist/Common/Toggle/Toggle.d.ts +14 -12
  118. package/dist/Common/Types.d.ts +677 -677
  119. package/dist/Common/index.d.ts +48 -50
  120. package/dist/index.d.ts +1 -1
  121. package/dist/index.js +28560 -218
  122. package/package.json +26 -31
  123. package/rollup.config.js +31 -0
  124. package/src/Assets/Icon/ic-add.svg +3 -0
  125. package/src/Assets/Icon/ic-appstatus-cancelled.svg +6 -0
  126. package/src/Assets/Icon/ic-arrow-counter-clockwise.svg +5 -0
  127. package/src/Assets/Icon/ic-check.svg +5 -0
  128. package/src/Assets/Icon/ic-chevron-down.svg +5 -0
  129. package/src/Assets/Icon/ic-copy.svg +3 -0
  130. package/src/Assets/Icon/ic-cross.svg +3 -0
  131. package/src/Assets/Icon/ic-drag.svg +8 -0
  132. package/src/Assets/Icon/ic-enter.svg +3 -0
  133. package/src/Assets/Icon/ic-error-cross.svg +8 -0
  134. package/src/Assets/Icon/ic-error-exclamation.svg +6 -0
  135. package/src/Assets/Icon/ic-error-medium.svg +6 -0
  136. package/src/Assets/Icon/ic-help-outline.svg +3 -0
  137. package/src/Assets/Icon/ic-help.svg +3 -0
  138. package/src/Assets/Icon/ic-info-filled.svg +7 -0
  139. package/src/Assets/Icon/ic-info-outlined.svg +13 -0
  140. package/src/Assets/Icon/ic-minus.svg +3 -0
  141. package/src/Assets/Icon/ic-pencil.svg +3 -0
  142. package/src/Assets/Icon/ic-progressing.svg +6 -0
  143. package/src/Assets/Icon/ic-rotate-devtron.svg +103 -0
  144. package/src/Assets/Icon/ic-warning.svg +7 -0
  145. package/src/Assets/Icon/inject-tag.svg +5 -0
  146. package/src/Assets/Img/app-not-deployed.png +0 -0
  147. package/src/Assets/Img/delete-medium.svg +15 -0
  148. package/src/Assets/Img/ic-empty-error@2x.png +0 -0
  149. package/src/Assets/Img/ic-loading-failure.png +0 -0
  150. package/src/Assets/Img/ic-not-authorized.svg +62 -0
  151. package/src/Common/AddCDButton/AddCDButton.tsx +67 -0
  152. package/src/Common/AddCDButton/index.ts +2 -0
  153. package/src/Common/AddCDButton/types.ts +38 -0
  154. package/src/Common/AddCDButton/utils.tsx +35 -0
  155. package/src/Common/Api.ts +225 -0
  156. package/src/Common/AppStatus/AppStatus.tsx +64 -0
  157. package/src/Common/AppStatus/constants.ts +53 -0
  158. package/src/Common/AppStatus/index.ts +1 -0
  159. package/src/Common/AppStatus/types.ts +12 -0
  160. package/src/Common/AppStatus/utils.ts +15 -0
  161. package/src/Common/BreadCrumb/BreadCrumb.tsx +109 -0
  162. package/src/Common/BreadCrumb/BreadcrumbStore.tsx +25 -0
  163. package/src/Common/BreadCrumb/Types.ts +29 -0
  164. package/src/Common/CIPipeline.Types.ts +277 -0
  165. package/src/Common/ChartVersionAndTypeSelector.tsx +78 -0
  166. package/src/Common/Checkbox.tsx +34 -0
  167. package/src/Common/ClipboardButton/ClipboardButton.tsx +61 -0
  168. package/src/Common/ClipboardButton/__tests__/ClipboardButton.test.tsx +42 -0
  169. package/src/Common/ClipboardButton/types.ts +7 -0
  170. package/src/Common/Common.service.ts +310 -0
  171. package/src/Common/Constants.ts +245 -0
  172. package/src/Common/CustomInput/CustomInput.tsx +125 -0
  173. package/src/Common/CustomInput/Types.ts +31 -0
  174. package/src/Common/CustomInput/index.ts +2 -0
  175. package/src/Common/CustomTagSelector/PropagateTagInfo.tsx +43 -0
  176. package/src/Common/CustomTagSelector/ResizableTagTextArea.tsx +84 -0
  177. package/src/Common/CustomTagSelector/TagDetails.tsx +82 -0
  178. package/src/Common/CustomTagSelector/TagLabelSelect.tsx +59 -0
  179. package/src/Common/CustomTagSelector/TagLabelValueSelector.tsx +194 -0
  180. package/src/Common/CustomTagSelector/TagSelector.utils.ts +70 -0
  181. package/src/Common/CustomTagSelector/Types.ts +72 -0
  182. package/src/Common/CustomTagSelector/ValidationRules.ts +54 -0
  183. package/src/Common/CustomTagSelector/index.ts +6 -0
  184. package/src/Common/DebouncedSearch/DebouncedSearch.tsx +77 -0
  185. package/src/Common/DebouncedSearch/Types.ts +13 -0
  186. package/src/Common/DebouncedSearch/Utils.ts +19 -0
  187. package/src/Common/DebouncedSearch/__tests__/DebouncedSearch.test.tsx +60 -0
  188. package/src/Common/DeleteComponentModal/DeleteComponent.tsx +90 -0
  189. package/src/Common/DeleteComponentModal/types.ts +15 -0
  190. package/src/Common/DevtronProgressing/DevtronProgressing.tsx +8 -0
  191. package/src/Common/DevtronProgressing/index.ts +1 -0
  192. package/src/Common/DevtronProgressing/types.ts +4 -0
  193. package/src/Common/Dialogs/ConfirmationDialog.tsx +34 -0
  194. package/src/Common/Dialogs/DeleteDialog.tsx +67 -0
  195. package/src/Common/Dialogs/DialogForm.tsx +82 -0
  196. package/src/Common/Dialogs/ForceDeleteDialog.tsx +25 -0
  197. package/src/Common/Dialogs/Types.ts +47 -0
  198. package/src/Common/Dialogs/index.ts +4 -0
  199. package/src/Common/DraggableWrapper/DraggableButton.tsx +14 -0
  200. package/src/Common/DraggableWrapper/DraggableWrapper.tsx +116 -0
  201. package/src/Common/DraggableWrapper/index.ts +3 -0
  202. package/src/Common/DraggableWrapper/types.ts +27 -0
  203. package/src/Common/Drawer/Drawer.scss +40 -0
  204. package/src/Common/Drawer/Drawer.tsx +49 -0
  205. package/src/Common/EmptyState/EmptyState.tsx +38 -0
  206. package/src/Common/EmptyState/GenericEmptyState.tsx +59 -0
  207. package/src/Common/EmptyState/emptyState.scss +74 -0
  208. package/src/Common/Error.tsx +61 -0
  209. package/src/Common/ErrorScreenNotFound.tsx +28 -0
  210. package/src/Common/Grid/Grid.tsx +43 -0
  211. package/src/Common/Grid/types.ts +11 -0
  212. package/src/Common/Helper.tsx +560 -0
  213. package/src/Common/Hooks/UseClickOutside/UseClickOutside.tsx +15 -0
  214. package/src/Common/Hooks/UseSuperAdmin/UseSuperAdmin.tsx +24 -0
  215. package/src/Common/Hooks/UseSuperAdmin/types.ts +3 -0
  216. package/src/Common/Hooks/UseWindowSize/UseWindowSize.tsx +29 -0
  217. package/src/Common/Hooks/index.ts +3 -0
  218. package/src/Common/ImageTags.Types.ts +43 -0
  219. package/src/Common/ImageTags.tsx +581 -0
  220. package/src/Common/InfoColorBar/InfoColourbar.tsx +85 -0
  221. package/src/Common/InfoColorBar/infoColourBar.scss +28 -0
  222. package/src/Common/Modals/Modal.tsx +68 -0
  223. package/src/Common/Modals/OpaqueModal.tsx +43 -0
  224. package/src/Common/Modals/VisibleModal.tsx +59 -0
  225. package/src/Common/Modals/VisibleModal2.tsx +40 -0
  226. package/src/Common/MultiSelectCustomization.tsx +144 -0
  227. package/src/Common/Policy.Types.ts +63 -0
  228. package/src/Common/PopupMenu.tsx +200 -0
  229. package/src/Common/Progressing.tsx +50 -0
  230. package/src/Common/RJSF/Form.tsx +28 -0
  231. package/src/Common/RJSF/common/FieldRow.tsx +34 -0
  232. package/src/Common/RJSF/common/types.ts +9 -0
  233. package/src/Common/RJSF/config.ts +36 -0
  234. package/src/Common/RJSF/constants.ts +10 -0
  235. package/src/Common/RJSF/index.ts +3 -0
  236. package/src/Common/RJSF/rjsfForm.scss +18 -0
  237. package/src/Common/RJSF/templates/ArrayFieldItemTemplate.tsx +31 -0
  238. package/src/Common/RJSF/templates/ArrayFieldTemplate.tsx +77 -0
  239. package/src/Common/RJSF/templates/BaseInput.tsx +15 -0
  240. package/src/Common/RJSF/templates/ButtonTemplates/AddButton.tsx +17 -0
  241. package/src/Common/RJSF/templates/ButtonTemplates/RemoveButton.tsx +9 -0
  242. package/src/Common/RJSF/templates/ButtonTemplates/SubmitButton.tsx +13 -0
  243. package/src/Common/RJSF/templates/ButtonTemplates/index.ts +3 -0
  244. package/src/Common/RJSF/templates/Description.tsx +11 -0
  245. package/src/Common/RJSF/templates/Field.tsx +41 -0
  246. package/src/Common/RJSF/templates/FieldErrorTemplate.tsx +22 -0
  247. package/src/Common/RJSF/templates/ObjectFieldTemplate.tsx +103 -0
  248. package/src/Common/RJSF/templates/TitleField.tsx +8 -0
  249. package/src/Common/RJSF/templates/WrapIfAdditionalTemplate.tsx +50 -0
  250. package/src/Common/RJSF/templates/index.ts +10 -0
  251. package/src/Common/RJSF/types.ts +4 -0
  252. package/src/Common/RJSF/utils.ts +119 -0
  253. package/src/Common/RJSF/widgets/Checkbox.tsx +44 -0
  254. package/src/Common/RJSF/widgets/Select.tsx +76 -0
  255. package/src/Common/RJSF/widgets/index.ts +2 -0
  256. package/src/Common/RadioGroup/RadioGroup.tsx +100 -0
  257. package/src/Common/RadioGroup/radioGroup.scss +46 -0
  258. package/src/Common/RadioGroup.tsx +54 -0
  259. package/src/Common/Reload.tsx +22 -0
  260. package/src/Common/ResizableTextarea.tsx +74 -0
  261. package/src/Common/Security/ScanVulnerabilitiesTable.tsx +50 -0
  262. package/src/Common/Security/scanVulnerabilities.css +69 -0
  263. package/src/Common/ServerError.ts +35 -0
  264. package/src/Common/TippyCustomized.tsx +175 -0
  265. package/src/Common/ToastBody.tsx +61 -0
  266. package/src/Common/Toggle/Toggle.scss +78 -0
  267. package/src/Common/Toggle/Toggle.tsx +50 -0
  268. package/src/Common/Types.ts +750 -0
  269. package/src/Common/index.ts +48 -0
  270. package/src/custom.d.ts +13 -0
  271. package/src/index.ts +1 -0
  272. package/tsconfig.json +40 -0
  273. package/dist/BaseInput-8101e714.js +0 -1686
  274. package/dist/CodeEditor-68cd2e5b.js +0 -103676
  275. package/dist/Common/AddCDButton/AddCDButton.js +0 -61
  276. package/dist/Common/AddCDButton/index.js +0 -6
  277. package/dist/Common/AddCDButton/types.js +0 -1
  278. package/dist/Common/AddCDButton/utils.js +0 -19
  279. package/dist/Common/Api.js +0 -167
  280. package/dist/Common/AppStatus/AppStatus.js +0 -37
  281. package/dist/Common/AppStatus/constants.js +0 -37
  282. package/dist/Common/AppStatus/index.js +0 -4
  283. package/dist/Common/AppStatus/types.js +0 -1
  284. package/dist/Common/AppStatus/utils.js +0 -8
  285. package/dist/Common/BreadCrumb/BreadCrumb.js +0 -71
  286. package/dist/Common/BreadCrumb/BreadcrumbStore.js +0 -22
  287. package/dist/Common/BreadCrumb/Types.js +0 -1
  288. package/dist/Common/CIPipeline.Types.js +0 -10
  289. package/dist/Common/ChartVersionAndTypeSelector.js +0 -61
  290. package/dist/Common/Checkbox.js +0 -28
  291. package/dist/Common/ClipboardButton/ClipboardButton.js +0 -40
  292. package/dist/Common/ClipboardButton/__tests__/ClipboardButton.test.d.ts +0 -1
  293. package/dist/Common/ClipboardButton/__tests__/ClipboardButton.test.js +0 -27
  294. package/dist/Common/ClipboardButton/types.js +0 -1
  295. package/dist/Common/CodeEditor/CodeEditor.d.ts +0 -47
  296. package/dist/Common/CodeEditor/CodeEditor.js +0 -15
  297. package/dist/Common/Common.service.js +0 -191
  298. package/dist/Common/Constants.js +0 -234
  299. package/dist/Common/CustomInput/CustomInput.js +0 -80
  300. package/dist/Common/CustomInput/Types.js +0 -1
  301. package/dist/Common/CustomInput/index.js +0 -4
  302. package/dist/Common/CustomTagSelector/PropagateTagInfo.js +0 -43
  303. package/dist/Common/CustomTagSelector/ResizableTagTextArea.js +0 -58
  304. package/dist/Common/CustomTagSelector/TagDetails.js +0 -65
  305. package/dist/Common/CustomTagSelector/TagLabelSelect.js +0 -50
  306. package/dist/Common/CustomTagSelector/TagLabelValueSelector.js +0 -121
  307. package/dist/Common/CustomTagSelector/TagSelector.utils.js +0 -61
  308. package/dist/Common/CustomTagSelector/Types.js +0 -1
  309. package/dist/Common/CustomTagSelector/ValidationRules.js +0 -35
  310. package/dist/Common/CustomTagSelector/index.js +0 -12
  311. package/dist/Common/DebouncedSearch/DebouncedSearch.js +0 -7
  312. package/dist/Common/DebouncedSearch/Types.js +0 -1
  313. package/dist/Common/DebouncedSearch/Utils.js +0 -19
  314. package/dist/Common/DebouncedSearch/__tests__/DebouncedSearch.test.d.ts +0 -1
  315. package/dist/Common/DebouncedSearch/__tests__/DebouncedSearch.test.js +0 -33
  316. package/dist/Common/DeleteComponentModal/DeleteComponent.js +0 -63
  317. package/dist/Common/DeleteComponentModal/types.js +0 -1
  318. package/dist/Common/DevtronProgressing/DevtronProgressing.js +0 -98
  319. package/dist/Common/DevtronProgressing/index.js +0 -4
  320. package/dist/Common/DevtronProgressing/types.js +0 -1
  321. package/dist/Common/Dialogs/ConfirmationDialog.js +0 -24
  322. package/dist/Common/Dialogs/DeleteDialog.js +0 -49
  323. package/dist/Common/Dialogs/DialogForm.js +0 -63
  324. package/dist/Common/Dialogs/ForceDeleteDialog.js +0 -23
  325. package/dist/Common/Dialogs/Types.js +0 -1
  326. package/dist/Common/Dialogs/index.js +0 -11
  327. package/dist/Common/DraggableWrapper/DraggableButton.js +0 -16
  328. package/dist/Common/DraggableWrapper/DraggableWrapper.js +0 -1499
  329. package/dist/Common/DraggableWrapper/index.js +0 -8
  330. package/dist/Common/DraggableWrapper/types.js +0 -4
  331. package/dist/Common/Drawer/Drawer.js +0 -22
  332. package/dist/Common/EmptyState/EmptyState.js +0 -32
  333. package/dist/Common/EmptyState/GenericEmptyState.js +0 -52
  334. package/dist/Common/Error.js +0 -49
  335. package/dist/Common/ErrorScreenNotFound.js +0 -23
  336. package/dist/Common/Grid/Grid.js +0 -31
  337. package/dist/Common/Grid/types.js +0 -1
  338. package/dist/Common/Helper.js +0 -38
  339. package/dist/Common/Hooks/UseClickOutside/UseClickOutside.js +0 -14
  340. package/dist/Common/Hooks/UseSuperAdmin/UseSuperAdmin.js +0 -16
  341. package/dist/Common/Hooks/UseSuperAdmin/types.js +0 -1
  342. package/dist/Common/Hooks/UseWindowSize/UseWindowSize.js +0 -17
  343. package/dist/Common/Hooks/index.js +0 -8
  344. package/dist/Common/ImageTags.Types.js +0 -1
  345. package/dist/Common/ImageTags.js +0 -381
  346. package/dist/Common/InfoColorBar/InfoColourbar.js +0 -65
  347. package/dist/Common/Modals/Modal.js +0 -48
  348. package/dist/Common/Modals/OpaqueModal.js +0 -32
  349. package/dist/Common/Modals/VisibleModal.js +0 -31
  350. package/dist/Common/Modals/VisibleModal2.js +0 -31
  351. package/dist/Common/MultiSelectCustomization.js +0 -97
  352. package/dist/Common/Policy.Types.js +0 -6
  353. package/dist/Common/PopupMenu.js +0 -148
  354. package/dist/Common/Progressing.js +0 -52
  355. package/dist/Common/RJSF/Form.js +0 -9888
  356. package/dist/Common/RJSF/common/FieldRow.js +0 -25
  357. package/dist/Common/RJSF/common/types.js +0 -1
  358. package/dist/Common/RJSF/config.js +0 -33
  359. package/dist/Common/RJSF/constants.js +0 -10
  360. package/dist/Common/RJSF/index.js +0 -7
  361. package/dist/Common/RJSF/templates/ArrayFieldItemTemplate.js +0 -30
  362. package/dist/Common/RJSF/templates/ArrayFieldTemplate.js +0 -63
  363. package/dist/Common/RJSF/templates/BaseInput.js +0 -8
  364. package/dist/Common/RJSF/templates/ButtonTemplates/AddButton.js +0 -18
  365. package/dist/Common/RJSF/templates/ButtonTemplates/RemoveButton.js +0 -6
  366. package/dist/Common/RJSF/templates/ButtonTemplates/SubmitButton.js +0 -19
  367. package/dist/Common/RJSF/templates/ButtonTemplates/index.js +0 -8
  368. package/dist/Common/RJSF/templates/Description.js +0 -9
  369. package/dist/Common/RJSF/templates/Field.js +0 -21
  370. package/dist/Common/RJSF/templates/FieldErrorTemplate.js +0 -15
  371. package/dist/Common/RJSF/templates/ObjectFieldTemplate.js +0 -76
  372. package/dist/Common/RJSF/templates/TitleField.js +0 -8
  373. package/dist/Common/RJSF/templates/WrapIfAdditionalTemplate.js +0 -44
  374. package/dist/Common/RJSF/templates/index.js +0 -26
  375. package/dist/Common/RJSF/types.js +0 -1
  376. package/dist/Common/RJSF/utils.js +0 -98
  377. package/dist/Common/RJSF/widgets/Checkbox.js +0 -39
  378. package/dist/Common/RJSF/widgets/Select.js +0 -56
  379. package/dist/Common/RJSF/widgets/index.js +0 -6
  380. package/dist/Common/RadioGroup/RadioGroup.js +0 -76
  381. package/dist/Common/RadioGroup.js +0 -47
  382. package/dist/Common/Reload.js +0 -16
  383. package/dist/Common/ResizableTextarea.js +0 -60
  384. package/dist/Common/Security/ScanVulnerabilitiesTable.js +0 -49
  385. package/dist/Common/Select/Select.d.ts +0 -4
  386. package/dist/Common/Select/Select.js +0 -131
  387. package/dist/Common/Select/types.d.ts +0 -29
  388. package/dist/Common/Select/types.js +0 -1
  389. package/dist/Common/ServerError.js +0 -26
  390. package/dist/Common/TippyCustomized.js +0 -10
  391. package/dist/Common/ToastBody.js +0 -41
  392. package/dist/Common/Toggle/Toggle.js +0 -40
  393. package/dist/Common/Types.js +0 -24
  394. package/dist/Common/UseWindowSize.d.ts +0 -4
  395. package/dist/Common/UseWindowSize.js +0 -20
  396. package/dist/Common/index.js +0 -219
  397. package/dist/DebouncedSearch-065f3ac2.js +0 -58
  398. package/dist/Helper-1f1cf2ba.js +0 -9824
  399. package/dist/TippyCustomized-0d0b9a6f.js +0 -124
  400. package/dist/_commonjsHelpers-c5d32002.js +0 -30
  401. package/dist/abap-9f67f57a.js +0 -1314
  402. package/dist/apex-ff62e532.js +0 -315
  403. package/dist/assets/CodeEditor.css +0 -1
  404. package/dist/assets/Drawer.css +0 -1
  405. package/dist/assets/Form.css +0 -1
  406. package/dist/assets/InfoColourbar.css +0 -1
  407. package/dist/assets/RadioGroup.css +0 -1
  408. package/dist/assets/ScanVulnerabilitiesTable.css +0 -1
  409. package/dist/assets/Select.css +0 -1
  410. package/dist/assets/TippyCustomized.css +0 -1
  411. package/dist/assets/Toggle.css +0 -1
  412. package/dist/assets/editor.worker-d26000ef.js +0 -9
  413. package/dist/assets/emptyState.css +0 -1
  414. package/dist/assets/json.worker-f23a4654.js +0 -40
  415. package/dist/assets/yaml.worker-64fecd27.js +0 -463
  416. package/dist/azcli-31e64a7f.js +0 -74
  417. package/dist/bat-0ffe897e.js +0 -95
  418. package/dist/bicep-3414a2b1.js +0 -108
  419. package/dist/cameligo-df1f3f25.js +0 -168
  420. package/dist/canExpand-ab1f6741.js +0 -10
  421. package/dist/clojure-65b0f010.js +0 -754
  422. package/dist/coffee-437f0fba.js +0 -228
  423. package/dist/cpp-66843dd5.js +0 -390
  424. package/dist/csharp-621d9a49.js +0 -320
  425. package/dist/csp-de0d5244.js +0 -57
  426. package/dist/css-7cd5ed4c.js +0 -186
  427. package/dist/cssMode-7289250b.js +0 -1446
  428. package/dist/cypher-70ad96fe.js +0 -262
  429. package/dist/dart-33ae3739.js +0 -270
  430. package/dist/dockerfile-f2274a50.js +0 -132
  431. package/dist/ecl-3b8294a3.js +0 -454
  432. package/dist/elixir-b9dcc73a.js +0 -489
  433. package/dist/englishStringTranslator-2c9a30fc.js +0 -17
  434. package/dist/enums-d0bd3f97.js +0 -6618
  435. package/dist/extends-70f3d2a3.js +0 -13
  436. package/dist/flow9-bdde8316.js +0 -141
  437. package/dist/freemarker2-3b903d5b.js +0 -643
  438. package/dist/fsharp-eac2e449.js +0 -210
  439. package/dist/getSubmitButtonOptions-a1be9bb0.js +0 -20
  440. package/dist/getTemplate-91d3260d.js +0 -11
  441. package/dist/getUiOptions-844b45a7.js +0 -10
  442. package/dist/go-d12ed8d4.js +0 -208
  443. package/dist/graphql-c7356b69.js +0 -141
  444. package/dist/handlebars-702717e9.js +0 -391
  445. package/dist/hcl-e883a0d4.js +0 -177
  446. package/dist/html-9a684e15.js +0 -281
  447. package/dist/htmlMode-3e336aa8.js +0 -1456
  448. package/dist/ic-add-4787ded5.js +0 -5
  449. package/dist/ic-chevron-down-eb7fd953.js +0 -6
  450. package/dist/ic-copy-118b83dc.js +0 -5
  451. package/dist/ic-cross-0e71861d.js +0 -6
  452. package/dist/ic-error-exclamation-5f9af461.js +0 -5
  453. package/dist/ic-info-filled-31a15add.js +0 -6
  454. package/dist/ic-info-outlined-8fa45e87.js +0 -5
  455. package/dist/ic-warning-42534af1.js +0 -5
  456. package/dist/idGenerators-0b33693c.js +0 -35
  457. package/dist/index-5a231705.js +0 -17417
  458. package/dist/index-c855d89c.js +0 -173
  459. package/dist/ini-425ab711.js +0 -68
  460. package/dist/inject-tag-824bf92c.js +0 -5
  461. package/dist/java-2bc0fd68.js +0 -221
  462. package/dist/javascript-101cb9b7.js +0 -75
  463. package/dist/jsonMode-006d8be9.js +0 -1867
  464. package/dist/julia-1c932615.js +0 -496
  465. package/dist/kotlin-1ab839c8.js +0 -245
  466. package/dist/less-6fe856f5.js +0 -168
  467. package/dist/lexon-4955ac52.js +0 -151
  468. package/dist/liquid-729ea99d.js +0 -238
  469. package/dist/lua-3cca0047.js +0 -157
  470. package/dist/m3-132e9cb6.js +0 -210
  471. package/dist/markdown-ea59a0c1.js +0 -202
  472. package/dist/mips-19811f4b.js +0 -194
  473. package/dist/msdax-69954a10.js +0 -377
  474. package/dist/mysql-82088e5d.js +0 -876
  475. package/dist/objective-c-1976eccc.js +0 -188
  476. package/dist/pascal-8ef177cb.js +0 -245
  477. package/dist/pascaligo-bc517b9e.js +0 -158
  478. package/dist/perl-8b93582c.js +0 -599
  479. package/dist/pgsql-00c11a6d.js +0 -847
  480. package/dist/php-4c8c276f.js +0 -471
  481. package/dist/pla-e9b4ffb1.js +0 -131
  482. package/dist/postiats-2071af8c.js +0 -544
  483. package/dist/powerquery-8e388ceb.js +0 -890
  484. package/dist/powershell-e35db398.js +0 -233
  485. package/dist/protobuf-a24b9176.js +0 -422
  486. package/dist/pug-2c94d9b8.js +0 -393
  487. package/dist/python-c9b92f72.js +0 -259
  488. package/dist/qsharp-d730d7fe.js +0 -282
  489. package/dist/r-be193556.js +0 -245
  490. package/dist/razor-c48ef378.js +0 -512
  491. package/dist/react-select.esm-fa95915b.js +0 -3992
  492. package/dist/react-toastify.esm-e28f7200.js +0 -798
  493. package/dist/react.esm-9335a421.js +0 -13150
  494. package/dist/redis-9690c6ac.js +0 -298
  495. package/dist/redshift-6bdcdeaa.js +0 -806
  496. package/dist/restructuredtext-a08c1d20.js +0 -162
  497. package/dist/ruby-2247692b.js +0 -444
  498. package/dist/rust-1dffb4d5.js +0 -337
  499. package/dist/sb-136598e9.js +0 -110
  500. package/dist/scala-b1100fed.js +0 -353
  501. package/dist/scheme-038c8094.js +0 -114
  502. package/dist/scss-700d1b52.js +0 -244
  503. package/dist/shell-86c16e0f.js +0 -224
  504. package/dist/solidity-c05fdf3c.js +0 -1351
  505. package/dist/sophia-cd645d71.js +0 -190
  506. package/dist/sparql-01d9ec9c.js +0 -193
  507. package/dist/sql-4c33df41.js +0 -818
  508. package/dist/st-52cf1408.js +0 -414
  509. package/dist/swift-13c792ba.js +0 -315
  510. package/dist/systemverilog-0bd8b730.js +0 -556
  511. package/dist/tcl-463d7c75.js +0 -232
  512. package/dist/tippy-react.esm-d5c56a0a.js +0 -2018
  513. package/dist/tsMode-da78a323.js +0 -811
  514. package/dist/twig-0d98f5ec.js +0 -323
  515. package/dist/typescript-bd6d35ce.js +0 -328
  516. package/dist/vb-3a2b0a51.js +0 -364
  517. package/dist/wgsl-b2ddb3e4.js +0 -420
  518. package/dist/xml-828eca7a.js +0 -95
  519. package/dist/yaml-89980d67.js +0 -184
@@ -0,0 +1,31 @@
1
+ import { HTMLInputTypeAttribute } from 'react'
2
+ import * as React from 'react'
3
+
4
+ export interface CustomInputProps {
5
+ name: string
6
+ value: string | number
7
+ onChange: (e: any) => void
8
+ onFocus?: (e: any) => void
9
+ autoComplete?: string
10
+ label?: string | React.ReactNode
11
+ labelClassName?: string
12
+ type?: HTMLInputTypeAttribute
13
+ disabled?: boolean
14
+ placeholder?: string
15
+ tabIndex?: number
16
+ dataTestid?: string
17
+ isRequiredField?: boolean
18
+ autoFocus?: boolean
19
+ rootClassName?: string
20
+ error?: string[] | string
21
+ helperText?: string
22
+ handleOnBlur?: (e) => void
23
+ readOnly?: boolean
24
+ noTrim?: boolean
25
+ ref?: React.LegacyRef<HTMLInputElement>
26
+ onKeyPress?: (e) => void
27
+ defaultValue?: string | number | ReadonlyArray<string> | undefined
28
+ onKeyDown?: (e) => void
29
+ required?: boolean
30
+ additionalErrorInfo?: React.ReactNode
31
+ }
@@ -0,0 +1,2 @@
1
+ export * from './CustomInput'
2
+ export * from './Types'
@@ -0,0 +1,43 @@
1
+ import { ReactComponent as InjectTag } from '../../Assets/Icon/inject-tag.svg'
2
+ import { ReactComponent as Help } from '../../Assets/Icon/ic-help-outline.svg'
3
+ import { TippyCustomized } from '../TippyCustomized'
4
+ import { TippyTheme } from '../Types'
5
+ import { DOCUMENTATION } from '../Constants'
6
+
7
+ export default function PropagateTagInfo({ isCreateApp }: { isCreateApp: boolean }) {
8
+ const additionalInfo = () => (
9
+ <div className="p-12 fs-13">
10
+ <div className="mb-20">
11
+ <span className="flex left">
12
+ Add a tag and click on the
13
+ <InjectTag className="icon-dim-16 ml-4 mr-4" />
14
+ icon to
15
+ </span>
16
+ propagate tags as labels to Kubernetes resources
17
+ </div>
18
+ <div>Use these tags to filter/identify resources via CLI or in other Kubernetes tools.</div>
19
+ </div>
20
+ )
21
+ return (
22
+ <TippyCustomized
23
+ theme={TippyTheme.white}
24
+ className="w-300"
25
+ placement="top"
26
+ Icon={InjectTag}
27
+ heading="Propagate tags to K8s resources"
28
+ infoText=""
29
+ additionalContent={additionalInfo()}
30
+ showCloseButton
31
+ trigger="click"
32
+ interactive
33
+ documentationLink={isCreateApp ? DOCUMENTATION.APP_TAGS : DOCUMENTATION.APP_OVERVIEW_TAGS}
34
+ documentationLinkText="View Documentation"
35
+ >
36
+ <div className="flexbox cursor">
37
+ <InjectTag className="icon-dim-16 mt-2 mr-4" />
38
+ <span>Propagate tags</span>
39
+ <Help className="icon-dim-16 mt-2 ml-4" />
40
+ </div>
41
+ </TippyCustomized>
42
+ )
43
+ }
@@ -0,0 +1,84 @@
1
+ import { useEffect, useState } from 'react'
2
+ import { useThrottledEffect } from '../Helper'
3
+ import { ResizableTagTextAreaProps } from './Types'
4
+
5
+ export const 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,82 @@
1
+ import { 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' : ''} ${
45
+ tagData.key.startsWith('devtron.ai/') ? 'cursor-not-allowed bcn-1' : ''
46
+ }`}
47
+ onClick={propagateTagToResource}
48
+ data-testid={`propagate-tag-${index}`}
49
+ >
50
+ <InjectTag className={`icon-dim-20 mt-4 ${tagData.propagate ? 'scn-0' : ''}`} />
51
+ </div>
52
+ <TagLabelValueSelector
53
+ selectedTagIndex={index}
54
+ tagData={tagData}
55
+ setTagData={setTagData}
56
+ tagInputType={KEY_VALUE.KEY}
57
+ placeholder="Enter key"
58
+ tabIndex={tabIndex - 1}
59
+ refVar={keyRef}
60
+ dependentRef={valueRef}
61
+ tagOptions={suggestedTagsOptions}
62
+ />
63
+ <TagLabelValueSelector
64
+ selectedTagIndex={index}
65
+ tagData={tagData}
66
+ setTagData={setTagData}
67
+ tagInputType={KEY_VALUE.VALUE}
68
+ placeholder="Enter value"
69
+ tabIndex={tabIndex}
70
+ refVar={valueRef}
71
+ dependentRef={keyRef}
72
+ />
73
+ <div
74
+ className="dc__border pl-4 pr-4 dc__right-radius-4 pointer flex top"
75
+ onClick={deleteTag}
76
+ data-testid={`delete-tag-${index}`}
77
+ >
78
+ <DeleteCross className="icon-dim-20 mt-4" />
79
+ </div>
80
+ </div>
81
+ )
82
+ }
@@ -0,0 +1,59 @@
1
+ import PropagateTagInfo from './PropagateTagInfo'
2
+ import { ReactComponent as Add } from '../../Assets/Icon/ic-add.svg'
3
+ import { DEFAULT_TAG_DATA } from '../Constants'
4
+ import { TagLabelSelectType } from './Types'
5
+ import { TagDetails } from './TagDetails'
6
+
7
+ export const TagLabelSelect = ({ isCreateApp, labelTags, setLabelTags, tabIndex = 0 }: TagLabelSelectType) => {
8
+ const setTagData = (index, tagValue): void => {
9
+ const _tags = [...labelTags]
10
+ const _tagValue = tagValue
11
+ if (_tagValue.key.startsWith('devtron.ai/')) {
12
+ _tagValue.propagate = false
13
+ }
14
+ _tags[index] = _tagValue
15
+ setLabelTags(_tags)
16
+ }
17
+
18
+ const addNewTag = (): void => {
19
+ const _tags = [...labelTags]
20
+ _tags.splice(0, 0, DEFAULT_TAG_DATA)
21
+ setLabelTags(_tags)
22
+ }
23
+
24
+ const removeTag = (index: number): void => {
25
+ const _tags = [...labelTags]
26
+ _tags.splice(index, 1)
27
+ setLabelTags(_tags)
28
+ }
29
+
30
+ return (
31
+ <div>
32
+ <div className="flexbox dc__content-space mb-8">
33
+ <span>Tags</span>
34
+ <PropagateTagInfo isCreateApp={isCreateApp} />
35
+ </div>
36
+ <div>
37
+ <div
38
+ className="dc_width-max-content cb-5 fw-6 fs-13 flexbox mr-20 mb-8 cursor"
39
+ onClick={addNewTag}
40
+ data-testid="add-tag-button"
41
+ >
42
+ <Add className="icon-dim-20 fcb-5" /> Add tag
43
+ </div>
44
+ <div className="mb-8" data-testid="tag-rows-container">
45
+ {labelTags?.map((tagData, index) => (
46
+ <TagDetails
47
+ key={`tag-${index}`}
48
+ index={index}
49
+ tagData={tagData}
50
+ setTagData={setTagData}
51
+ removeTag={removeTag}
52
+ tabIndex={tabIndex + (index + 2)}
53
+ />
54
+ ))}
55
+ </div>
56
+ </div>
57
+ </div>
58
+ )
59
+ }
@@ -0,0 +1,194 @@
1
+ import { useState, useEffect } from 'react'
2
+ import Tippy from '@tippyjs/react'
3
+ import PopupMenu from '../PopupMenu'
4
+ import { ReactComponent as ErrorCross } from '../../Assets/Icon/ic-cross.svg'
5
+ import { ReactComponent as Info } from '../../Assets/Icon/ic-info-outlined.svg'
6
+ import { KEY_VALUE } from '../Constants'
7
+ import { stopPropagation } from '../Helper'
8
+ import { ResizableTagTextArea } from './ResizableTagTextArea'
9
+ import { SuggestedTagOptionType, TagLabelValueSelectorType } from './Types'
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
+ <div
112
+ key={`${tag.value}-${index}`}
113
+ data-key={tag.label}
114
+ data-propagate={tag.propagate}
115
+ className="dc__hover-n50 dc__ellipsis-right lh-20 fs-13 fw-4 pt-6 pr-8 pb-6 pl-8 cursor"
116
+ onClick={onSelectValue}
117
+ data-testid={`tag-label-value-${index}`}
118
+ >
119
+ {tag.label}
120
+ </div>
121
+ )
122
+
123
+ const optionWithTippy = (tag: SuggestedTagOptionType, index: number): JSX.Element => (
124
+ <Tippy
125
+ className="default-tt"
126
+ arrow={false}
127
+ placement="right"
128
+ content={
129
+ <div>
130
+ <div className="mb-10 fs-12 fw-6 cn-0 dc__break-word">{tag.label}</div>
131
+ <div className="fs-12 fw-4 cn-0 dc__break-word">{tag.description}</div>
132
+ </div>
133
+ }
134
+ >
135
+ {option(tag, index)}
136
+ </Tippy>
137
+ )
138
+
139
+ const renderSuggestions = (): JSX.Element => {
140
+ if (tagOptions?.length) {
141
+ const filteredTags = tagOptions.filter((tag) => tag.label.indexOf(selectedValue) >= 0)
142
+ if (filteredTags.length) {
143
+ return (
144
+ <div>
145
+ {filteredTags.map((tag, index) =>
146
+ tag.description ? optionWithTippy(tag, index) : option(tag, index),
147
+ )}
148
+ </div>
149
+ )
150
+ }
151
+ }
152
+ return renderValidationsSuggestions()
153
+ }
154
+
155
+ const popupMenuBody = activeElement === `tag-${tagInputType}-${selectedTagIndex}` ? renderSuggestions() : null
156
+ return (
157
+ <PopupMenu autoClose autoPosition>
158
+ <PopupMenu.Button rootClassName="dc__bg-n50 flex top dc__no-border-imp">
159
+ <ResizableTagTextArea
160
+ minHeight={30}
161
+ maxHeight={80}
162
+ className={`form__input tag-input pt-4-imp pb-4-imp fs-13 ${
163
+ tagInputType === KEY_VALUE.KEY
164
+ ? `dc__no-right-radius`
165
+ : `dc__no-border-radius dc__no-right-border dc__no-left-border`
166
+ } ${
167
+ tagData[tagInputType === KEY_VALUE.KEY ? 'isInvalidKey' : 'isInvalidValue']
168
+ ? 'form__input--error'
169
+ : ''
170
+ }`}
171
+ value={selectedValue}
172
+ onChange={handleInputChange}
173
+ onBlur={handleOnBlur}
174
+ onFocus={handleOnFocus}
175
+ placeholder={placeholder}
176
+ tabIndex={tabIndex}
177
+ refVar={refVar}
178
+ dependentRef={dependentRef}
179
+ dataTestId={`tag-${tagInputType === KEY_VALUE.KEY ? 'key' : 'value'}-${selectedTagIndex}`}
180
+ />
181
+ </PopupMenu.Button>
182
+ {popupMenuBody && (
183
+ <PopupMenu.Body
184
+ rootClassName={`mxh-210 dc__overflow-auto tag-${selectedTagIndex}-class`}
185
+ autoWidth
186
+ preventWheelDisable
187
+ noBackDrop={noBackDrop}
188
+ >
189
+ {popupMenuBody}
190
+ </PopupMenu.Body>
191
+ )}
192
+ </PopupMenu>
193
+ )
194
+ }
@@ -0,0 +1,70 @@
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
+ const name = key
63
+ if (noOfSlashInKey === 1) {
64
+ const [prefix, name] = key.split('/')
65
+ }
66
+ }
67
+ }
68
+ }
69
+
70
+ 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
+ }