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

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 (513) hide show
  1. package/.eslintrc.js +41 -0
  2. package/.github/workflows/release-package.yml +49 -0
  3. package/.prettierrc.js +7 -0
  4. package/dist/Common/AddCDButton/AddCDButton.d.ts +3 -3
  5. package/dist/Common/AddCDButton/index.d.ts +2 -2
  6. package/dist/Common/AddCDButton/types.d.ts +26 -26
  7. package/dist/Common/AddCDButton/utils.d.ts +2 -2
  8. package/dist/Common/Api.d.ts +5 -5
  9. package/dist/Common/AppStatus/AppStatus.d.ts +3 -3
  10. package/dist/Common/AppStatus/constants.d.ts +51 -51
  11. package/dist/Common/AppStatus/index.d.ts +1 -1
  12. package/dist/Common/AppStatus/types.d.ts +12 -12
  13. package/dist/Common/AppStatus/utils.d.ts +1 -1
  14. package/dist/Common/BreadCrumb/BreadCrumb.d.ts +5 -5
  15. package/dist/Common/BreadCrumb/BreadcrumbStore.d.ts +17 -17
  16. package/dist/Common/BreadCrumb/Types.d.ts +28 -28
  17. package/dist/Common/CIPipeline.Types.d.ts +265 -265
  18. package/dist/Common/ChartVersionAndTypeSelector.d.ts +4 -3
  19. package/dist/Common/Checkbox.d.ts +5 -5
  20. package/dist/Common/ClipboardButton/ClipboardButton.d.ts +10 -10
  21. package/dist/Common/ClipboardButton/types.d.ts +8 -8
  22. package/dist/Common/Common.service.d.ts +20 -20
  23. package/dist/Common/Constants.d.ts +71 -73
  24. package/dist/Common/CustomInput/CustomInput.d.ts +3 -3
  25. package/dist/Common/CustomInput/Types.d.ts +30 -29
  26. package/dist/Common/CustomInput/index.d.ts +2 -2
  27. package/dist/Common/CustomTagSelector/PropagateTagInfo.d.ts +4 -4
  28. package/dist/Common/CustomTagSelector/ResizableTagTextArea.d.ts +3 -3
  29. package/dist/Common/CustomTagSelector/TagDetails.d.ts +3 -2
  30. package/dist/Common/CustomTagSelector/TagLabelSelect.d.ts +3 -2
  31. package/dist/Common/CustomTagSelector/TagLabelValueSelector.d.ts +3 -2
  32. package/dist/Common/CustomTagSelector/TagSelector.utils.d.ts +12 -12
  33. package/dist/Common/CustomTagSelector/Types.d.ts +68 -68
  34. package/dist/Common/CustomTagSelector/ValidationRules.d.ts +10 -10
  35. package/dist/Common/CustomTagSelector/index.d.ts +6 -6
  36. package/dist/Common/DebouncedSearch/DebouncedSearch.d.ts +15 -15
  37. package/dist/Common/DebouncedSearch/Types.d.ts +14 -14
  38. package/dist/Common/DebouncedSearch/Utils.d.ts +1 -1
  39. package/dist/Common/DeleteComponentModal/DeleteComponent.d.ts +4 -4
  40. package/dist/Common/DeleteComponentModal/types.d.ts +15 -15
  41. package/dist/Common/DevtronProgressing/DevtronProgressing.d.ts +3 -3
  42. package/dist/Common/DevtronProgressing/index.d.ts +1 -1
  43. package/dist/Common/DevtronProgressing/types.d.ts +4 -4
  44. package/dist/Common/Dialogs/ConfirmationDialog.d.ts +9 -9
  45. package/dist/Common/Dialogs/DeleteDialog.d.ts +5 -5
  46. package/dist/Common/Dialogs/DialogForm.d.ts +14 -14
  47. package/dist/Common/Dialogs/ForceDeleteDialog.d.ts +3 -3
  48. package/dist/Common/Dialogs/Types.d.ts +45 -45
  49. package/dist/Common/Dialogs/index.d.ts +4 -4
  50. package/dist/Common/DraggableWrapper/DraggableButton.d.ts +3 -3
  51. package/dist/Common/DraggableWrapper/DraggableWrapper.d.ts +9 -9
  52. package/dist/Common/DraggableWrapper/index.d.ts +3 -3
  53. package/dist/Common/DraggableWrapper/types.d.ts +23 -23
  54. package/dist/Common/Drawer/Drawer.d.ts +16 -14
  55. package/dist/Common/EmptyState/EmptyState.d.ts +25 -24
  56. package/dist/Common/EmptyState/GenericEmptyState.d.ts +5 -4
  57. package/dist/Common/Error.d.ts +17 -17
  58. package/dist/Common/ErrorScreenNotFound.d.ts +3 -3
  59. package/dist/Common/Grid/Grid.d.ts +3 -3
  60. package/dist/Common/Grid/types.d.ts +10 -10
  61. package/dist/Common/Helper.d.ts +60 -61
  62. package/dist/Common/Hooks/UseClickOutside/UseClickOutside.d.ts +1 -1
  63. package/dist/Common/Hooks/UseSuperAdmin/UseSuperAdmin.d.ts +6 -6
  64. package/dist/Common/Hooks/UseSuperAdmin/types.d.ts +3 -3
  65. package/dist/Common/Hooks/UseWindowSize/UseWindowSize.d.ts +4 -4
  66. package/dist/Common/Hooks/index.d.ts +3 -3
  67. package/dist/Common/ImageTags.Types.d.ts +40 -40
  68. package/dist/Common/ImageTags.d.ts +4 -3
  69. package/dist/Common/InfoColorBar/InfoColourbar.d.ts +5 -4
  70. package/dist/Common/Modals/Modal.d.ts +3 -3
  71. package/dist/Common/Modals/OpaqueModal.d.ts +12 -12
  72. package/dist/Common/Modals/VisibleModal.d.ts +15 -15
  73. package/dist/Common/Modals/VisibleModal2.d.ts +12 -12
  74. package/dist/Common/MultiSelectCustomization.d.ts +37 -37
  75. package/dist/Common/Policy.Types.d.ts +56 -56
  76. package/dist/Common/PopupMenu.d.ts +8 -8
  77. package/dist/Common/Progressing.d.ts +4 -4
  78. package/dist/Common/RJSF/Form.d.ts +4 -2
  79. package/dist/Common/RJSF/common/FieldRow.d.ts +6 -5
  80. package/dist/Common/RJSF/common/types.d.ts +8 -8
  81. package/dist/Common/RJSF/config.d.ts +4 -4
  82. package/dist/Common/RJSF/constants.d.ts +7 -7
  83. package/dist/Common/RJSF/index.d.ts +3 -3
  84. package/dist/Common/RJSF/templates/ArrayFieldItemTemplate.d.ts +3 -2
  85. package/dist/Common/RJSF/templates/ArrayFieldTemplate.d.ts +3 -2
  86. package/dist/Common/RJSF/templates/BaseInput.d.ts +3 -2
  87. package/dist/Common/RJSF/templates/ButtonTemplates/AddButton.d.ts +3 -2
  88. package/dist/Common/RJSF/templates/ButtonTemplates/RemoveButton.d.ts +3 -2
  89. package/dist/Common/RJSF/templates/ButtonTemplates/SubmitButton.d.ts +3 -2
  90. package/dist/Common/RJSF/templates/ButtonTemplates/index.d.ts +3 -3
  91. package/dist/Common/RJSF/templates/Description.d.ts +3 -2
  92. package/dist/Common/RJSF/templates/Field.d.ts +3 -2
  93. package/dist/Common/RJSF/templates/FieldErrorTemplate.d.ts +3 -2
  94. package/dist/Common/RJSF/templates/ObjectFieldTemplate.d.ts +3 -2
  95. package/dist/Common/RJSF/templates/TitleField.d.ts +3 -2
  96. package/dist/Common/RJSF/templates/WrapIfAdditionalTemplate.d.ts +3 -2
  97. package/dist/Common/RJSF/templates/index.d.ts +10 -10
  98. package/dist/Common/RJSF/types.d.ts +3 -3
  99. package/dist/Common/RJSF/utils.d.ts +26 -25
  100. package/dist/Common/RJSF/widgets/Checkbox.d.ts +3 -2
  101. package/dist/Common/RJSF/widgets/Select.d.ts +3 -2
  102. package/dist/Common/RJSF/widgets/index.d.ts +2 -2
  103. package/dist/Common/RadioGroup/RadioGroup.d.ts +17 -16
  104. package/dist/Common/RadioGroup.d.ts +8 -8
  105. package/dist/Common/Reload.d.ts +3 -3
  106. package/dist/Common/ResizableTextarea.d.ts +3 -3
  107. package/dist/Common/Security/ScanVulnerabilitiesTable.d.ts +4 -3
  108. package/dist/Common/ServerError.d.ts +15 -15
  109. package/dist/Common/TippyCustomized.d.ts +4 -3
  110. package/dist/Common/ToastBody.d.ts +23 -23
  111. package/dist/Common/Toggle/Toggle.d.ts +14 -12
  112. package/dist/Common/Types.d.ts +678 -677
  113. package/dist/Common/index.d.ts +48 -50
  114. package/dist/index.d.ts +1 -1
  115. package/dist/index.js +28644 -218
  116. package/package.json +9 -31
  117. package/rollup.config.js +31 -0
  118. package/src/Assets/Icon/ic-add.svg +3 -0
  119. package/src/Assets/Icon/ic-appstatus-cancelled.svg +6 -0
  120. package/src/Assets/Icon/ic-arrow-counter-clockwise.svg +5 -0
  121. package/src/Assets/Icon/ic-check.svg +5 -0
  122. package/src/Assets/Icon/ic-chevron-down.svg +5 -0
  123. package/src/Assets/Icon/ic-copy.svg +3 -0
  124. package/src/Assets/Icon/ic-cross.svg +3 -0
  125. package/src/Assets/Icon/ic-drag.svg +8 -0
  126. package/src/Assets/Icon/ic-enter.svg +3 -0
  127. package/src/Assets/Icon/ic-error-cross.svg +8 -0
  128. package/src/Assets/Icon/ic-error-exclamation.svg +6 -0
  129. package/src/Assets/Icon/ic-error-medium.svg +6 -0
  130. package/src/Assets/Icon/ic-help-outline.svg +3 -0
  131. package/src/Assets/Icon/ic-help.svg +3 -0
  132. package/src/Assets/Icon/ic-info-filled.svg +7 -0
  133. package/src/Assets/Icon/ic-info-outlined.svg +13 -0
  134. package/src/Assets/Icon/ic-minus.svg +3 -0
  135. package/src/Assets/Icon/ic-pencil.svg +3 -0
  136. package/src/Assets/Icon/ic-progressing.svg +6 -0
  137. package/src/Assets/Icon/ic-rotate-devtron.svg +103 -0
  138. package/src/Assets/Icon/ic-warning.svg +7 -0
  139. package/src/Assets/Icon/inject-tag.svg +5 -0
  140. package/src/Assets/Img/app-not-deployed.png +0 -0
  141. package/src/Assets/Img/delete-medium.svg +15 -0
  142. package/src/Assets/Img/ic-empty-error@2x.png +0 -0
  143. package/src/Assets/Img/ic-loading-failure.png +0 -0
  144. package/src/Assets/Img/ic-not-authorized.svg +62 -0
  145. package/src/Common/AddCDButton/AddCDButton.tsx +68 -0
  146. package/src/Common/AddCDButton/index.ts +2 -0
  147. package/src/Common/AddCDButton/types.ts +38 -0
  148. package/src/Common/AddCDButton/utils.tsx +35 -0
  149. package/src/Common/Api.ts +230 -0
  150. package/src/Common/AppStatus/AppStatus.tsx +64 -0
  151. package/src/Common/AppStatus/constants.ts +53 -0
  152. package/src/Common/AppStatus/index.ts +1 -0
  153. package/src/Common/AppStatus/types.ts +12 -0
  154. package/src/Common/AppStatus/utils.ts +14 -0
  155. package/src/Common/BreadCrumb/BreadCrumb.tsx +105 -0
  156. package/src/Common/BreadCrumb/BreadcrumbStore.tsx +25 -0
  157. package/src/Common/BreadCrumb/Types.ts +30 -0
  158. package/src/Common/CIPipeline.Types.ts +277 -0
  159. package/src/Common/ChartVersionAndTypeSelector.tsx +78 -0
  160. package/src/Common/Checkbox.tsx +36 -0
  161. package/src/Common/ClipboardButton/ClipboardButton.tsx +61 -0
  162. package/src/Common/ClipboardButton/__tests__/ClipboardButton.test.tsx +43 -0
  163. package/src/Common/ClipboardButton/types.ts +7 -0
  164. package/src/Common/Common.service.ts +315 -0
  165. package/src/Common/Constants.ts +249 -0
  166. package/src/Common/CustomInput/CustomInput.tsx +132 -0
  167. package/src/Common/CustomInput/Types.ts +31 -0
  168. package/src/Common/CustomInput/index.ts +2 -0
  169. package/src/Common/CustomTagSelector/PropagateTagInfo.tsx +46 -0
  170. package/src/Common/CustomTagSelector/ResizableTagTextArea.tsx +84 -0
  171. package/src/Common/CustomTagSelector/TagDetails.tsx +76 -0
  172. package/src/Common/CustomTagSelector/TagLabelSelect.tsx +61 -0
  173. package/src/Common/CustomTagSelector/TagLabelValueSelector.tsx +198 -0
  174. package/src/Common/CustomTagSelector/TagSelector.utils.ts +71 -0
  175. package/src/Common/CustomTagSelector/Types.ts +72 -0
  176. package/src/Common/CustomTagSelector/ValidationRules.ts +58 -0
  177. package/src/Common/CustomTagSelector/index.ts +6 -0
  178. package/src/Common/DebouncedSearch/DebouncedSearch.tsx +76 -0
  179. package/src/Common/DebouncedSearch/Types.ts +13 -0
  180. package/src/Common/DebouncedSearch/Utils.ts +19 -0
  181. package/src/Common/DebouncedSearch/__tests__/DebouncedSearch.test.tsx +61 -0
  182. package/src/Common/DeleteComponentModal/DeleteComponent.tsx +95 -0
  183. package/src/Common/DeleteComponentModal/types.ts +15 -0
  184. package/src/Common/DevtronProgressing/DevtronProgressing.tsx +11 -0
  185. package/src/Common/DevtronProgressing/index.ts +1 -0
  186. package/src/Common/DevtronProgressing/types.ts +4 -0
  187. package/src/Common/Dialogs/ConfirmationDialog.tsx +34 -0
  188. package/src/Common/Dialogs/DeleteDialog.tsx +69 -0
  189. package/src/Common/Dialogs/DialogForm.tsx +86 -0
  190. package/src/Common/Dialogs/ForceDeleteDialog.tsx +19 -0
  191. package/src/Common/Dialogs/Types.ts +47 -0
  192. package/src/Common/Dialogs/index.ts +4 -0
  193. package/src/Common/DraggableWrapper/DraggableButton.tsx +14 -0
  194. package/src/Common/DraggableWrapper/DraggableWrapper.tsx +116 -0
  195. package/src/Common/DraggableWrapper/index.ts +3 -0
  196. package/src/Common/DraggableWrapper/types.ts +27 -0
  197. package/src/Common/Drawer/Drawer.scss +40 -0
  198. package/src/Common/Drawer/Drawer.tsx +49 -0
  199. package/src/Common/EmptyState/EmptyState.tsx +42 -0
  200. package/src/Common/EmptyState/GenericEmptyState.tsx +81 -0
  201. package/src/Common/EmptyState/emptyState.scss +74 -0
  202. package/src/Common/Error.tsx +61 -0
  203. package/src/Common/ErrorScreenNotFound.tsx +31 -0
  204. package/src/Common/Grid/Grid.tsx +44 -0
  205. package/src/Common/Grid/types.ts +11 -0
  206. package/src/Common/Helper.tsx +561 -0
  207. package/src/Common/Hooks/UseClickOutside/UseClickOutside.tsx +15 -0
  208. package/src/Common/Hooks/UseSuperAdmin/UseSuperAdmin.tsx +24 -0
  209. package/src/Common/Hooks/UseSuperAdmin/types.ts +3 -0
  210. package/src/Common/Hooks/UseWindowSize/UseWindowSize.tsx +31 -0
  211. package/src/Common/Hooks/index.ts +3 -0
  212. package/src/Common/ImageTags.Types.ts +44 -0
  213. package/src/Common/ImageTags.tsx +586 -0
  214. package/src/Common/InfoColorBar/InfoColourbar.tsx +80 -0
  215. package/src/Common/InfoColorBar/infoColourBar.scss +28 -0
  216. package/src/Common/Modals/Modal.tsx +68 -0
  217. package/src/Common/Modals/OpaqueModal.tsx +36 -0
  218. package/src/Common/Modals/VisibleModal.tsx +55 -0
  219. package/src/Common/Modals/VisibleModal2.tsx +35 -0
  220. package/src/Common/MultiSelectCustomization.tsx +148 -0
  221. package/src/Common/Policy.Types.ts +63 -0
  222. package/src/Common/PopupMenu.tsx +199 -0
  223. package/src/Common/Progressing.tsx +53 -0
  224. package/src/Common/RJSF/Form.tsx +29 -0
  225. package/src/Common/RJSF/common/FieldRow.tsx +35 -0
  226. package/src/Common/RJSF/common/types.ts +9 -0
  227. package/src/Common/RJSF/config.ts +37 -0
  228. package/src/Common/RJSF/constants.ts +10 -0
  229. package/src/Common/RJSF/index.ts +3 -0
  230. package/src/Common/RJSF/rjsfForm.scss +18 -0
  231. package/src/Common/RJSF/templates/ArrayFieldItemTemplate.tsx +31 -0
  232. package/src/Common/RJSF/templates/ArrayFieldTemplate.tsx +78 -0
  233. package/src/Common/RJSF/templates/BaseInput.tsx +16 -0
  234. package/src/Common/RJSF/templates/ButtonTemplates/AddButton.tsx +18 -0
  235. package/src/Common/RJSF/templates/ButtonTemplates/RemoveButton.tsx +10 -0
  236. package/src/Common/RJSF/templates/ButtonTemplates/SubmitButton.tsx +18 -0
  237. package/src/Common/RJSF/templates/ButtonTemplates/index.ts +3 -0
  238. package/src/Common/RJSF/templates/Description.tsx +12 -0
  239. package/src/Common/RJSF/templates/Field.tsx +30 -0
  240. package/src/Common/RJSF/templates/FieldErrorTemplate.tsx +25 -0
  241. package/src/Common/RJSF/templates/ObjectFieldTemplate.tsx +105 -0
  242. package/src/Common/RJSF/templates/TitleField.tsx +9 -0
  243. package/src/Common/RJSF/templates/WrapIfAdditionalTemplate.tsx +51 -0
  244. package/src/Common/RJSF/templates/index.ts +10 -0
  245. package/src/Common/RJSF/types.ts +4 -0
  246. package/src/Common/RJSF/utils.ts +123 -0
  247. package/src/Common/RJSF/widgets/Checkbox.tsx +44 -0
  248. package/src/Common/RJSF/widgets/Select.tsx +77 -0
  249. package/src/Common/RJSF/widgets/index.ts +2 -0
  250. package/src/Common/RadioGroup/RadioGroup.tsx +105 -0
  251. package/src/Common/RadioGroup/radioGroup.scss +46 -0
  252. package/src/Common/RadioGroup.tsx +53 -0
  253. package/src/Common/Reload.tsx +23 -0
  254. package/src/Common/ResizableTextarea.tsx +73 -0
  255. package/src/Common/Security/ScanVulnerabilitiesTable.tsx +55 -0
  256. package/src/Common/Security/scanVulnerabilities.css +69 -0
  257. package/src/Common/ServerError.ts +31 -0
  258. package/src/Common/TippyCustomized.tsx +172 -0
  259. package/src/Common/ToastBody.tsx +62 -0
  260. package/src/Common/Toggle/Toggle.scss +78 -0
  261. package/src/Common/Toggle/Toggle.tsx +50 -0
  262. package/src/Common/Types.ts +751 -0
  263. package/src/Common/index.ts +48 -0
  264. package/src/custom.d.ts +13 -0
  265. package/src/index.ts +1 -0
  266. package/tsconfig.json +40 -0
  267. package/dist/BaseInput-8101e714.js +0 -1686
  268. package/dist/CodeEditor-68cd2e5b.js +0 -103676
  269. package/dist/Common/AddCDButton/AddCDButton.js +0 -61
  270. package/dist/Common/AddCDButton/index.js +0 -6
  271. package/dist/Common/AddCDButton/types.js +0 -1
  272. package/dist/Common/AddCDButton/utils.js +0 -19
  273. package/dist/Common/Api.js +0 -167
  274. package/dist/Common/AppStatus/AppStatus.js +0 -37
  275. package/dist/Common/AppStatus/constants.js +0 -37
  276. package/dist/Common/AppStatus/index.js +0 -4
  277. package/dist/Common/AppStatus/types.js +0 -1
  278. package/dist/Common/AppStatus/utils.js +0 -8
  279. package/dist/Common/BreadCrumb/BreadCrumb.js +0 -71
  280. package/dist/Common/BreadCrumb/BreadcrumbStore.js +0 -22
  281. package/dist/Common/BreadCrumb/Types.js +0 -1
  282. package/dist/Common/CIPipeline.Types.js +0 -10
  283. package/dist/Common/ChartVersionAndTypeSelector.js +0 -61
  284. package/dist/Common/Checkbox.js +0 -28
  285. package/dist/Common/ClipboardButton/ClipboardButton.js +0 -40
  286. package/dist/Common/ClipboardButton/__tests__/ClipboardButton.test.d.ts +0 -1
  287. package/dist/Common/ClipboardButton/__tests__/ClipboardButton.test.js +0 -27
  288. package/dist/Common/ClipboardButton/types.js +0 -1
  289. package/dist/Common/CodeEditor/CodeEditor.d.ts +0 -47
  290. package/dist/Common/CodeEditor/CodeEditor.js +0 -15
  291. package/dist/Common/Common.service.js +0 -191
  292. package/dist/Common/Constants.js +0 -234
  293. package/dist/Common/CustomInput/CustomInput.js +0 -80
  294. package/dist/Common/CustomInput/Types.js +0 -1
  295. package/dist/Common/CustomInput/index.js +0 -4
  296. package/dist/Common/CustomTagSelector/PropagateTagInfo.js +0 -43
  297. package/dist/Common/CustomTagSelector/ResizableTagTextArea.js +0 -58
  298. package/dist/Common/CustomTagSelector/TagDetails.js +0 -65
  299. package/dist/Common/CustomTagSelector/TagLabelSelect.js +0 -50
  300. package/dist/Common/CustomTagSelector/TagLabelValueSelector.js +0 -121
  301. package/dist/Common/CustomTagSelector/TagSelector.utils.js +0 -61
  302. package/dist/Common/CustomTagSelector/Types.js +0 -1
  303. package/dist/Common/CustomTagSelector/ValidationRules.js +0 -35
  304. package/dist/Common/CustomTagSelector/index.js +0 -12
  305. package/dist/Common/DebouncedSearch/DebouncedSearch.js +0 -7
  306. package/dist/Common/DebouncedSearch/Types.js +0 -1
  307. package/dist/Common/DebouncedSearch/Utils.js +0 -19
  308. package/dist/Common/DebouncedSearch/__tests__/DebouncedSearch.test.d.ts +0 -1
  309. package/dist/Common/DebouncedSearch/__tests__/DebouncedSearch.test.js +0 -33
  310. package/dist/Common/DeleteComponentModal/DeleteComponent.js +0 -63
  311. package/dist/Common/DeleteComponentModal/types.js +0 -1
  312. package/dist/Common/DevtronProgressing/DevtronProgressing.js +0 -98
  313. package/dist/Common/DevtronProgressing/index.js +0 -4
  314. package/dist/Common/DevtronProgressing/types.js +0 -1
  315. package/dist/Common/Dialogs/ConfirmationDialog.js +0 -24
  316. package/dist/Common/Dialogs/DeleteDialog.js +0 -49
  317. package/dist/Common/Dialogs/DialogForm.js +0 -63
  318. package/dist/Common/Dialogs/ForceDeleteDialog.js +0 -23
  319. package/dist/Common/Dialogs/Types.js +0 -1
  320. package/dist/Common/Dialogs/index.js +0 -11
  321. package/dist/Common/DraggableWrapper/DraggableButton.js +0 -16
  322. package/dist/Common/DraggableWrapper/DraggableWrapper.js +0 -1499
  323. package/dist/Common/DraggableWrapper/index.js +0 -8
  324. package/dist/Common/DraggableWrapper/types.js +0 -4
  325. package/dist/Common/Drawer/Drawer.js +0 -22
  326. package/dist/Common/EmptyState/EmptyState.js +0 -32
  327. package/dist/Common/EmptyState/GenericEmptyState.js +0 -52
  328. package/dist/Common/Error.js +0 -49
  329. package/dist/Common/ErrorScreenNotFound.js +0 -23
  330. package/dist/Common/Grid/Grid.js +0 -31
  331. package/dist/Common/Grid/types.js +0 -1
  332. package/dist/Common/Helper.js +0 -38
  333. package/dist/Common/Hooks/UseClickOutside/UseClickOutside.js +0 -14
  334. package/dist/Common/Hooks/UseSuperAdmin/UseSuperAdmin.js +0 -16
  335. package/dist/Common/Hooks/UseSuperAdmin/types.js +0 -1
  336. package/dist/Common/Hooks/UseWindowSize/UseWindowSize.js +0 -17
  337. package/dist/Common/Hooks/index.js +0 -8
  338. package/dist/Common/ImageTags.Types.js +0 -1
  339. package/dist/Common/ImageTags.js +0 -381
  340. package/dist/Common/InfoColorBar/InfoColourbar.js +0 -65
  341. package/dist/Common/Modals/Modal.js +0 -48
  342. package/dist/Common/Modals/OpaqueModal.js +0 -32
  343. package/dist/Common/Modals/VisibleModal.js +0 -31
  344. package/dist/Common/Modals/VisibleModal2.js +0 -31
  345. package/dist/Common/MultiSelectCustomization.js +0 -97
  346. package/dist/Common/Policy.Types.js +0 -6
  347. package/dist/Common/PopupMenu.js +0 -148
  348. package/dist/Common/Progressing.js +0 -52
  349. package/dist/Common/RJSF/Form.js +0 -9888
  350. package/dist/Common/RJSF/common/FieldRow.js +0 -25
  351. package/dist/Common/RJSF/common/types.js +0 -1
  352. package/dist/Common/RJSF/config.js +0 -33
  353. package/dist/Common/RJSF/constants.js +0 -10
  354. package/dist/Common/RJSF/index.js +0 -7
  355. package/dist/Common/RJSF/templates/ArrayFieldItemTemplate.js +0 -30
  356. package/dist/Common/RJSF/templates/ArrayFieldTemplate.js +0 -63
  357. package/dist/Common/RJSF/templates/BaseInput.js +0 -8
  358. package/dist/Common/RJSF/templates/ButtonTemplates/AddButton.js +0 -18
  359. package/dist/Common/RJSF/templates/ButtonTemplates/RemoveButton.js +0 -6
  360. package/dist/Common/RJSF/templates/ButtonTemplates/SubmitButton.js +0 -19
  361. package/dist/Common/RJSF/templates/ButtonTemplates/index.js +0 -8
  362. package/dist/Common/RJSF/templates/Description.js +0 -9
  363. package/dist/Common/RJSF/templates/Field.js +0 -21
  364. package/dist/Common/RJSF/templates/FieldErrorTemplate.js +0 -15
  365. package/dist/Common/RJSF/templates/ObjectFieldTemplate.js +0 -76
  366. package/dist/Common/RJSF/templates/TitleField.js +0 -8
  367. package/dist/Common/RJSF/templates/WrapIfAdditionalTemplate.js +0 -44
  368. package/dist/Common/RJSF/templates/index.js +0 -26
  369. package/dist/Common/RJSF/types.js +0 -1
  370. package/dist/Common/RJSF/utils.js +0 -98
  371. package/dist/Common/RJSF/widgets/Checkbox.js +0 -39
  372. package/dist/Common/RJSF/widgets/Select.js +0 -56
  373. package/dist/Common/RJSF/widgets/index.js +0 -6
  374. package/dist/Common/RadioGroup/RadioGroup.js +0 -76
  375. package/dist/Common/RadioGroup.js +0 -47
  376. package/dist/Common/Reload.js +0 -16
  377. package/dist/Common/ResizableTextarea.js +0 -60
  378. package/dist/Common/Security/ScanVulnerabilitiesTable.js +0 -49
  379. package/dist/Common/Select/Select.d.ts +0 -4
  380. package/dist/Common/Select/Select.js +0 -131
  381. package/dist/Common/Select/types.d.ts +0 -29
  382. package/dist/Common/Select/types.js +0 -1
  383. package/dist/Common/ServerError.js +0 -26
  384. package/dist/Common/TippyCustomized.js +0 -10
  385. package/dist/Common/ToastBody.js +0 -41
  386. package/dist/Common/Toggle/Toggle.js +0 -40
  387. package/dist/Common/Types.js +0 -24
  388. package/dist/Common/UseWindowSize.d.ts +0 -4
  389. package/dist/Common/UseWindowSize.js +0 -20
  390. package/dist/Common/index.js +0 -219
  391. package/dist/DebouncedSearch-065f3ac2.js +0 -58
  392. package/dist/Helper-1f1cf2ba.js +0 -9824
  393. package/dist/TippyCustomized-0d0b9a6f.js +0 -124
  394. package/dist/_commonjsHelpers-c5d32002.js +0 -30
  395. package/dist/abap-9f67f57a.js +0 -1314
  396. package/dist/apex-ff62e532.js +0 -315
  397. package/dist/assets/CodeEditor.css +0 -1
  398. package/dist/assets/Drawer.css +0 -1
  399. package/dist/assets/Form.css +0 -1
  400. package/dist/assets/InfoColourbar.css +0 -1
  401. package/dist/assets/RadioGroup.css +0 -1
  402. package/dist/assets/ScanVulnerabilitiesTable.css +0 -1
  403. package/dist/assets/Select.css +0 -1
  404. package/dist/assets/TippyCustomized.css +0 -1
  405. package/dist/assets/Toggle.css +0 -1
  406. package/dist/assets/editor.worker-d26000ef.js +0 -9
  407. package/dist/assets/emptyState.css +0 -1
  408. package/dist/assets/json.worker-f23a4654.js +0 -40
  409. package/dist/assets/yaml.worker-64fecd27.js +0 -463
  410. package/dist/azcli-31e64a7f.js +0 -74
  411. package/dist/bat-0ffe897e.js +0 -95
  412. package/dist/bicep-3414a2b1.js +0 -108
  413. package/dist/cameligo-df1f3f25.js +0 -168
  414. package/dist/canExpand-ab1f6741.js +0 -10
  415. package/dist/clojure-65b0f010.js +0 -754
  416. package/dist/coffee-437f0fba.js +0 -228
  417. package/dist/cpp-66843dd5.js +0 -390
  418. package/dist/csharp-621d9a49.js +0 -320
  419. package/dist/csp-de0d5244.js +0 -57
  420. package/dist/css-7cd5ed4c.js +0 -186
  421. package/dist/cssMode-7289250b.js +0 -1446
  422. package/dist/cypher-70ad96fe.js +0 -262
  423. package/dist/dart-33ae3739.js +0 -270
  424. package/dist/dockerfile-f2274a50.js +0 -132
  425. package/dist/ecl-3b8294a3.js +0 -454
  426. package/dist/elixir-b9dcc73a.js +0 -489
  427. package/dist/englishStringTranslator-2c9a30fc.js +0 -17
  428. package/dist/enums-d0bd3f97.js +0 -6618
  429. package/dist/extends-70f3d2a3.js +0 -13
  430. package/dist/flow9-bdde8316.js +0 -141
  431. package/dist/freemarker2-3b903d5b.js +0 -643
  432. package/dist/fsharp-eac2e449.js +0 -210
  433. package/dist/getSubmitButtonOptions-a1be9bb0.js +0 -20
  434. package/dist/getTemplate-91d3260d.js +0 -11
  435. package/dist/getUiOptions-844b45a7.js +0 -10
  436. package/dist/go-d12ed8d4.js +0 -208
  437. package/dist/graphql-c7356b69.js +0 -141
  438. package/dist/handlebars-702717e9.js +0 -391
  439. package/dist/hcl-e883a0d4.js +0 -177
  440. package/dist/html-9a684e15.js +0 -281
  441. package/dist/htmlMode-3e336aa8.js +0 -1456
  442. package/dist/ic-add-4787ded5.js +0 -5
  443. package/dist/ic-chevron-down-eb7fd953.js +0 -6
  444. package/dist/ic-copy-118b83dc.js +0 -5
  445. package/dist/ic-cross-0e71861d.js +0 -6
  446. package/dist/ic-error-exclamation-5f9af461.js +0 -5
  447. package/dist/ic-info-filled-31a15add.js +0 -6
  448. package/dist/ic-info-outlined-8fa45e87.js +0 -5
  449. package/dist/ic-warning-42534af1.js +0 -5
  450. package/dist/idGenerators-0b33693c.js +0 -35
  451. package/dist/index-5a231705.js +0 -17417
  452. package/dist/index-c855d89c.js +0 -173
  453. package/dist/ini-425ab711.js +0 -68
  454. package/dist/inject-tag-824bf92c.js +0 -5
  455. package/dist/java-2bc0fd68.js +0 -221
  456. package/dist/javascript-101cb9b7.js +0 -75
  457. package/dist/jsonMode-006d8be9.js +0 -1867
  458. package/dist/julia-1c932615.js +0 -496
  459. package/dist/kotlin-1ab839c8.js +0 -245
  460. package/dist/less-6fe856f5.js +0 -168
  461. package/dist/lexon-4955ac52.js +0 -151
  462. package/dist/liquid-729ea99d.js +0 -238
  463. package/dist/lua-3cca0047.js +0 -157
  464. package/dist/m3-132e9cb6.js +0 -210
  465. package/dist/markdown-ea59a0c1.js +0 -202
  466. package/dist/mips-19811f4b.js +0 -194
  467. package/dist/msdax-69954a10.js +0 -377
  468. package/dist/mysql-82088e5d.js +0 -876
  469. package/dist/objective-c-1976eccc.js +0 -188
  470. package/dist/pascal-8ef177cb.js +0 -245
  471. package/dist/pascaligo-bc517b9e.js +0 -158
  472. package/dist/perl-8b93582c.js +0 -599
  473. package/dist/pgsql-00c11a6d.js +0 -847
  474. package/dist/php-4c8c276f.js +0 -471
  475. package/dist/pla-e9b4ffb1.js +0 -131
  476. package/dist/postiats-2071af8c.js +0 -544
  477. package/dist/powerquery-8e388ceb.js +0 -890
  478. package/dist/powershell-e35db398.js +0 -233
  479. package/dist/protobuf-a24b9176.js +0 -422
  480. package/dist/pug-2c94d9b8.js +0 -393
  481. package/dist/python-c9b92f72.js +0 -259
  482. package/dist/qsharp-d730d7fe.js +0 -282
  483. package/dist/r-be193556.js +0 -245
  484. package/dist/razor-c48ef378.js +0 -512
  485. package/dist/react-select.esm-fa95915b.js +0 -3992
  486. package/dist/react-toastify.esm-e28f7200.js +0 -798
  487. package/dist/react.esm-9335a421.js +0 -13150
  488. package/dist/redis-9690c6ac.js +0 -298
  489. package/dist/redshift-6bdcdeaa.js +0 -806
  490. package/dist/restructuredtext-a08c1d20.js +0 -162
  491. package/dist/ruby-2247692b.js +0 -444
  492. package/dist/rust-1dffb4d5.js +0 -337
  493. package/dist/sb-136598e9.js +0 -110
  494. package/dist/scala-b1100fed.js +0 -353
  495. package/dist/scheme-038c8094.js +0 -114
  496. package/dist/scss-700d1b52.js +0 -244
  497. package/dist/shell-86c16e0f.js +0 -224
  498. package/dist/solidity-c05fdf3c.js +0 -1351
  499. package/dist/sophia-cd645d71.js +0 -190
  500. package/dist/sparql-01d9ec9c.js +0 -193
  501. package/dist/sql-4c33df41.js +0 -818
  502. package/dist/st-52cf1408.js +0 -414
  503. package/dist/swift-13c792ba.js +0 -315
  504. package/dist/systemverilog-0bd8b730.js +0 -556
  505. package/dist/tcl-463d7c75.js +0 -232
  506. package/dist/tippy-react.esm-d5c56a0a.js +0 -2018
  507. package/dist/tsMode-da78a323.js +0 -811
  508. package/dist/twig-0d98f5ec.js +0 -323
  509. package/dist/typescript-bd6d35ce.js +0 -328
  510. package/dist/vb-3a2b0a51.js +0 -364
  511. package/dist/wgsl-b2ddb3e4.js +0 -420
  512. package/dist/xml-828eca7a.js +0 -95
  513. package/dist/yaml-89980d67.js +0 -184
@@ -0,0 +1,58 @@
1
+ import { PATTERNS } from '../Constants'
2
+
3
+ const validateTagValue = (value: string): string[] => {
4
+ const errorList = []
5
+ if (value.length > 63) {
6
+ errorList.push('Can be max 63 characters')
7
+ }
8
+ const firstLastAlphanumeric = PATTERNS.START_END_ALPHANUMERIC.test(value)
9
+ if (!firstLastAlphanumeric) {
10
+ errorList.push('Must start and end with an alphanumeric character')
11
+ }
12
+ const validValue = PATTERNS.ALPHANUMERIC_WITH_SPECIAL_CHAR.test(value)
13
+ if (!validValue) {
14
+ errorList.push('Can only contain alphanumeric chars and (-), (_), (.)')
15
+ }
16
+ return errorList
17
+ }
18
+ export class ValidationRules {
19
+ propagateTagKey = (key: string): { isValid: boolean; messages: string[] } => {
20
+ const errorList = []
21
+ if (!key) {
22
+ errorList.push('Key is required')
23
+ } else {
24
+ if(!key.startsWith("devtron.ai/")){
25
+ const re = new RegExp('/', 'g')
26
+ const noOfSlashInKey = key.match(re)?.length
27
+ if (noOfSlashInKey > 1) {
28
+ errorList.push('Key: Max 1 ( / ) allowed')
29
+ } else if (noOfSlashInKey === 1) {
30
+ const [prefix, name] = key.split('/')
31
+ errorList.push(...validateTagValue(name).map((error) => `Name: ${error}`))
32
+ if (prefix.length > 253) {
33
+ errorList.push('Prefix: Can be max 253 characters')
34
+ }
35
+ const validPrefix = PATTERNS.KUBERNETES_KEY_PREFIX.test(prefix)
36
+ if (!validPrefix) {
37
+ errorList.push('Prefix: Must be a DNS subdomain (a series of DNS labels separated by dots (.)')
38
+ }
39
+ } else {
40
+ errorList.push(...validateTagValue(key).map((error) => `Name: ${error}`))
41
+ }
42
+ }
43
+ }
44
+ return { isValid: errorList.length === 0, messages: errorList }
45
+ }
46
+
47
+ propagateTagValue = (value: string, key: string): { isValid: boolean; messages: string[] } => {
48
+ const errorList = []
49
+ if (!value) {
50
+ errorList.push('Value is required')
51
+ } else {
52
+ if(!key.startsWith("devtron.ai/")){
53
+ errorList.push(...validateTagValue(value))
54
+ }
55
+ }
56
+ return { isValid: errorList.length === 0, messages: errorList }
57
+ }
58
+ }
@@ -0,0 +1,6 @@
1
+ export {default as PropagateTagInfo} from './PropagateTagInfo'
2
+ export * from './TagDetails'
3
+ export * from './TagLabelSelect'
4
+ export * from './TagLabelValueSelector'
5
+ export * from './ResizableTagTextArea'
6
+ export * from './Types'
@@ -0,0 +1,76 @@
1
+ import React, { useEffect, useState } from 'react'
2
+ import { useDebouncedEffect } from './Utils'
3
+ import { ReactComponent as ICClear } from '../../Assets/Icon/ic-error-cross.svg'
4
+ import { DebouncedSearchProps } from './Types'
5
+
6
+ /**
7
+ * @param onSearch - Callback function to be called on search
8
+ * @param Icon - (Optional) Icon to be shown before the input
9
+ * @param iconClass - (Optional) Class for the icon
10
+ * @param children - (Optional) In case we want to add another button or any other element
11
+ * @param placeholder - (Optional) Placeholder for the input
12
+ * @param containerClass - (Optional) Class for the container
13
+ * @param inputClass - (Optional) Class for the input field
14
+ * @param debounceTimeout - (Optional) Timeout for the debounce with default value of 500ms
15
+ * @param clearSearch - (Optional) To clear the search text
16
+ * @param showClearIcon - (Optional) To show the clear icon default value is true
17
+ */
18
+ export default function DebouncedSearch({
19
+ onSearch,
20
+ Icon,
21
+ children,
22
+ placeholder,
23
+ containerClass = '',
24
+ iconClass = '',
25
+ inputClass = '',
26
+ debounceTimeout = 500,
27
+ clearSearch,
28
+ showClearIcon = true,
29
+ autoFocus = true,
30
+ }: DebouncedSearchProps) {
31
+ const [searchText, setSearchText] = useState<string>('')
32
+
33
+ useEffect(() => {
34
+ setSearchText('')
35
+ }, [clearSearch])
36
+
37
+ const handleSearchTextChange = (e: React.ChangeEvent<HTMLInputElement>) => {
38
+ setSearchText(e.target.value)
39
+ }
40
+
41
+ const handleClearSearch = () => {
42
+ setSearchText('')
43
+ }
44
+
45
+ useDebouncedEffect(() => onSearch(searchText), debounceTimeout, [searchText])
46
+
47
+ return (
48
+ <div className={containerClass}>
49
+ {Icon && <Icon className={iconClass} />}
50
+
51
+ <input
52
+ type="text"
53
+ className={inputClass}
54
+ placeholder={placeholder ?? 'Search'}
55
+ value={searchText}
56
+ onChange={handleSearchTextChange}
57
+ autoFocus={autoFocus}
58
+ data-testid="debounced-search"
59
+ />
60
+
61
+ {showClearIcon && !!searchText && (
62
+ <button
63
+ type="button"
64
+ className="dc__outline-none-imp dc__no-border p-0 bc-n50 flex"
65
+ onClick={handleClearSearch}
66
+ data-testid="clear-search"
67
+ >
68
+ <ICClear className="icon-dim-20 icon-n6" />
69
+ </button>
70
+ )}
71
+
72
+ {/* In case we want to add another button or something */}
73
+ {children}
74
+ </div>
75
+ )
76
+ }
@@ -0,0 +1,13 @@
1
+ export interface DebouncedSearchProps {
2
+ onSearch: (query: string) => void
3
+ Icon?: React.FunctionComponent<React.SVGProps<SVGSVGElement>>
4
+ placeholder?: string
5
+ inputClass?: string
6
+ containerClass?: string
7
+ iconClass?: string
8
+ children?: React.ReactNode
9
+ debounceTimeout?: number
10
+ clearSearch?: boolean
11
+ showClearIcon?: boolean
12
+ autoFocus?: boolean
13
+ }
@@ -0,0 +1,19 @@
1
+ import { useEffect, useRef } from 'react'
2
+
3
+ export function useDebouncedEffect(callback, delay, deps: unknown[] = []) {
4
+ // function will be executed only after the specified time once the user stops firing the event.
5
+ const firstUpdate = useRef(true)
6
+ useEffect(() => {
7
+ if (firstUpdate.current) {
8
+ firstUpdate.current = false
9
+ return
10
+ }
11
+ const handler = setTimeout(() => {
12
+ callback()
13
+ }, delay)
14
+
15
+ return () => {
16
+ clearTimeout(handler)
17
+ }
18
+ }, [delay, ...deps])
19
+ }
@@ -0,0 +1,61 @@
1
+ import React from 'react'
2
+ import { render, screen, fireEvent } from '@testing-library/react'
3
+ import { ReactComponent as ICClear } from '../../../../assets/icons/ic-error.svg'
4
+ import DebouncedSearch from '../DebouncedSearch'
5
+
6
+ jest.mock('../../helpers/Helpers', () => ({
7
+ useDebouncedEffect: jest.fn().mockImplementation((fn) => fn()),
8
+ }))
9
+
10
+ describe('When DebouncedSearch mounts', () => {
11
+ it('should have a input field', () => {
12
+ render(<DebouncedSearch onSearch={jest.fn()} />)
13
+ expect(screen.getByRole('textbox')).toBeTruthy()
14
+ })
15
+
16
+ it('should have a clear icon when clearSearch is true and user has typed something', () => {
17
+ const { getByTestId } = render(<DebouncedSearch onSearch={jest.fn()} clearSearch debounceTimeout={0} />)
18
+ fireEvent.change(screen.getByRole('textbox'), { target: { value: 'test' } })
19
+ expect(getByTestId('clear-search')).toBeTruthy()
20
+ })
21
+
22
+ it('should call onSearch when input value changes', () => {
23
+ const onSearch = jest.fn()
24
+ render(<DebouncedSearch onSearch={onSearch} debounceTimeout={0} />)
25
+ fireEvent.change(screen.getByRole('textbox'), { target: { value: 'test' } })
26
+ expect(onSearch).toHaveBeenCalled()
27
+ })
28
+
29
+ it('should clear input value when clear icon is clicked', () => {
30
+ const { container } = render(<DebouncedSearch onSearch={jest.fn()} clearSearch debounceTimeout={0} />)
31
+ fireEvent.change(screen.getByRole('textbox'), { target: { value: 'test' } })
32
+ const inputBar = container.querySelector('input')
33
+ expect(inputBar.value).toBe('test')
34
+ fireEvent.click(screen.getByRole('button'))
35
+ expect(inputBar.value).toBe('')
36
+ })
37
+
38
+ it('should have a placeholder', () => {
39
+ render(<DebouncedSearch onSearch={jest.fn()} placeholder="test" />)
40
+ expect(screen.getByPlaceholderText('test')).toBeTruthy()
41
+ })
42
+
43
+ it('should not show clear icon when showClearIcon is false', () => {
44
+ render(<DebouncedSearch onSearch={jest.fn()} showClearIcon={false} />)
45
+ expect(screen.queryByRole('button')).toBeNull()
46
+ })
47
+
48
+ it('should have a custom Icon', () => {
49
+ const { container } = render(<DebouncedSearch onSearch={jest.fn()} Icon={ICClear} iconClass="icon-class" />)
50
+ expect(container.querySelector('.icon-class')).toBeTruthy()
51
+ })
52
+
53
+ it('should support children', () => {
54
+ render(
55
+ <DebouncedSearch onSearch={jest.fn()}>
56
+ <div>test</div>
57
+ </DebouncedSearch>,
58
+ )
59
+ expect(screen.getByText('test')).toBeTruthy()
60
+ })
61
+ })
@@ -0,0 +1,95 @@
1
+ import React, { useState } from 'react'
2
+ import { useHistory } from 'react-router-dom'
3
+ import { toast } from 'react-toastify'
4
+ import info from '../../Assets/Icon/ic-info-filled.svg'
5
+ import { ConfirmationDialog, DeleteDialog } from '../Dialogs'
6
+ import { ServerErrors } from '../ServerError'
7
+ import { DeleteComponentProps } from './types'
8
+
9
+
10
+ function DeleteComponent({
11
+ setDeleting,
12
+ toggleConfirmation,
13
+ deleteComponent,
14
+ title,
15
+ component,
16
+ payload,
17
+ confirmationDialogDescription = '',
18
+ redirectTo = false,
19
+ url = '',
20
+ reload,
21
+ configuration = '',
22
+ closeCustomComponent,
23
+ }: DeleteComponentProps) {
24
+ const [showCannotDeleteDialogModal, setCannotDeleteDialogModal] = useState(false)
25
+ const { push } = useHistory()
26
+
27
+ async function handleDelete() {
28
+ setDeleting(true)
29
+ try {
30
+ await deleteComponent(payload)
31
+ toast.success('Successfully deleted')
32
+ toggleConfirmation(false)
33
+ if (redirectTo) {
34
+ push(url)
35
+ } else {
36
+ reload()
37
+ }
38
+ if (typeof closeCustomComponent === 'function') {
39
+ closeCustomComponent()
40
+ }
41
+ } catch (serverError) {
42
+ if (serverError instanceof ServerErrors && serverError.code === 500) {
43
+ setCannotDeleteDialogModal(true)
44
+ }
45
+ } finally {
46
+ setDeleting(false)
47
+ }
48
+ }
49
+
50
+ const handleConfirmation = () => {
51
+ setCannotDeleteDialogModal(false)
52
+ toggleConfirmation(false)
53
+ if (typeof closeCustomComponent === 'function') {
54
+ closeCustomComponent()
55
+ }
56
+ }
57
+
58
+ const renderCannotDeleteDialogModal = () => {
59
+ return (
60
+ <ConfirmationDialog className="confirmation-dialog__body--w-360">
61
+ <ConfirmationDialog.Icon src={info} />
62
+ <ConfirmationDialog.Body title={`Cannot delete ${component} '${title}'`} />
63
+ <p className="fs-13 cn-7 ">{confirmationDialogDescription}</p>
64
+ <ConfirmationDialog.ButtonGroup>
65
+ <button type="button" className="cta" onClick={handleConfirmation}>
66
+ Okay
67
+ </button>
68
+ </ConfirmationDialog.ButtonGroup>
69
+ </ConfirmationDialog>
70
+ )
71
+ }
72
+
73
+ const renderDeleteDialog = () => {
74
+ return (
75
+ <DeleteDialog
76
+ title={`Delete ${component} '${title}'`}
77
+ delete={handleDelete}
78
+ closeDelete={() => toggleConfirmation(false)}
79
+ dataTestId="delete-dialog"
80
+ >
81
+ <DeleteDialog.Description>
82
+ <p>Are you sure you want to delete this {configuration ? configuration : component}? </p>
83
+ </DeleteDialog.Description>
84
+ </DeleteDialog>
85
+ )
86
+ }
87
+ return (
88
+ <div>
89
+ {!showCannotDeleteDialogModal && renderDeleteDialog()}
90
+ {showCannotDeleteDialogModal && renderCannotDeleteDialogModal()}
91
+ </div>
92
+ )
93
+ }
94
+
95
+ export default DeleteComponent
@@ -0,0 +1,15 @@
1
+ export interface DeleteComponentProps {
2
+ setDeleting: (boolean) => void
3
+ toggleConfirmation: any
4
+ deleteComponent: (any) => Promise<any>
5
+ title: string
6
+ component: string
7
+ payload: any
8
+ confirmationDialogDescription?: string
9
+ redirectTo?: boolean
10
+ url?: string
11
+ reload?: () => void
12
+ configuration?: string
13
+ dataTestid?: string
14
+ closeCustomComponent?: () => void
15
+ }
@@ -0,0 +1,11 @@
1
+ import React from 'react'
2
+ import { ReactComponent as ICRotateDevtron } from '../../Assets/Icon/ic-rotate-devtron.svg'
3
+ import { DevtronProgressingProps } from './types'
4
+
5
+ export function DevtronProgressing({ classes, parentClasses }: DevtronProgressingProps): JSX.Element {
6
+ return (
7
+ <div className={parentClasses ? parentClasses : ''}>
8
+ <ICRotateDevtron className={classes ? classes : ''} />
9
+ </div>
10
+ )
11
+ }
@@ -0,0 +1 @@
1
+ export * from './DevtronProgressing'
@@ -0,0 +1,4 @@
1
+ export interface DevtronProgressingProps {
2
+ classes?: string
3
+ parentClasses?: string
4
+ }
@@ -0,0 +1,34 @@
1
+ import React from 'react'
2
+ import { VisibleModal2 } from '../Modals/VisibleModal2'
3
+ import { ConfirmationDialogBodyType, ConfirmationDialogButtonGroupType, ConfirmationDialogIconType, ConfirmationDialogType } from './Types'
4
+
5
+ function ConfirmationDialog({ className = '', children }: ConfirmationDialogType) {
6
+ return (
7
+ <VisibleModal2 className="confirmation-dialog">
8
+ <div className={`confirmation-dialog__body ${className}`}>{children}</div>
9
+ </VisibleModal2>
10
+ )
11
+ }
12
+
13
+ function Icon({ src, className = '' }: ConfirmationDialogIconType) {
14
+ return <img src={src} className={`confirmation-dialog__icon ${className}`} alt="" />
15
+ }
16
+
17
+ function Body({ title, subtitle = null, children = null }: ConfirmationDialogBodyType) {
18
+ return (
19
+ <div className="flex left column ">
20
+ <h3 className="confirmation-dialog__title lh-1-5 dc__break-word w-100">{title}</h3>
21
+ {subtitle && <div className="confirmation-dialog__subtitle">{subtitle}</div>}
22
+ {children}
23
+ </div>
24
+ )
25
+ }
26
+
27
+ function ButtonGroup({ children }: ConfirmationDialogButtonGroupType) {
28
+ return <div className="flex right confirmation-dialog__button-group">{children}</div>
29
+ }
30
+
31
+ ConfirmationDialog.Icon = Icon
32
+ ConfirmationDialog.Body = Body
33
+ ConfirmationDialog.ButtonGroup = ButtonGroup
34
+ export default ConfirmationDialog
@@ -0,0 +1,69 @@
1
+ import React from 'react'
2
+ import warn from '../../Assets/Img/delete-medium.svg'
3
+ import { Progressing } from '../Progressing'
4
+ import ConfirmationDialog from './ConfirmationDialog'
5
+ import { DeleteDialogProps } from './Types'
6
+
7
+ export const DeleteDialog: React.FC<DeleteDialogProps> & { Description?: React.FC<any> } = function (props) {
8
+ const handleDelete = (e: React.MouseEvent) => {
9
+ if (props.shouldStopPropagation) {
10
+ e.stopPropagation()
11
+ }
12
+
13
+ props.delete()
14
+ }
15
+
16
+ const handleModalClose = (e: React.MouseEvent) => {
17
+ if (props.shouldStopPropagation) {
18
+ e.stopPropagation()
19
+ }
20
+
21
+ props.closeDelete()
22
+ }
23
+
24
+ return (
25
+ <ConfirmationDialog className="confirmation-dialog__body--w-400">
26
+ <ConfirmationDialog.Icon src={warn} />
27
+ <ConfirmationDialog.Body title={props.title}>
28
+ <div className="fs-13 cn-7 lh-1-54 w-100">
29
+ {props.description ? props.description : null}
30
+ {props.children}
31
+ </div>
32
+ </ConfirmationDialog.Body>
33
+ <ConfirmationDialog.ButtonGroup>
34
+ <div className="flex right">
35
+ <button
36
+ type="button"
37
+ className="cta cancel cta-cd-delete-modal ml-16"
38
+ onClick={handleModalClose}
39
+ disabled={props.apiCallInProgress}
40
+ data-testid="dialog-cancel"
41
+ >
42
+ Cancel
43
+ </button>
44
+ <button
45
+ type="button"
46
+ className="cta delete cta-cd-delete-modal ml-16"
47
+ onClick={handleDelete}
48
+ disabled={props.apiCallInProgress || props.disabled}
49
+ data-testid="dialog-delete"
50
+ >
51
+ {props.apiCallInProgress ? (
52
+ <Progressing />
53
+ ) : (
54
+ `${props.deletePrefix || ''}${
55
+ props.buttonPrimaryText ? props.buttonPrimaryText : 'Delete'
56
+ }${props.deletePostfix || ''}`
57
+ )}
58
+ </button>
59
+ </div>
60
+ </ConfirmationDialog.ButtonGroup>
61
+ </ConfirmationDialog>
62
+ )
63
+ }
64
+
65
+ function DeleteDialogDescription(props) {
66
+ return <>{props.children}</>
67
+ }
68
+
69
+ DeleteDialog.Description = DeleteDialogDescription
@@ -0,0 +1,86 @@
1
+ import React, { Component, createContext } from 'react';
2
+ import { VisibleModal } from '../Modals/VisibleModal';
3
+ import close from '../../Assets/Icon/ic-cross.svg';
4
+ import { Progressing } from '../Progressing'
5
+ import { DialogFormProps } from './Types';
6
+ //TODO: may not need context
7
+ const DialogFormContext = createContext({ title: '', isLoading: false, close: (event) => {}, onSave: (event) => {} });
8
+
9
+ export class DialogForm extends Component<DialogFormProps> {
10
+ constructor(props) {
11
+ super(props);
12
+ this.escFunction = this.escFunction.bind(this);
13
+ }
14
+
15
+ componentDidMount() {
16
+ document.addEventListener('keydown', this.escFunction);
17
+ }
18
+
19
+ componentWillUnmount() {
20
+ document.removeEventListener('keydown', this.escFunction);
21
+ }
22
+
23
+ escFunction(event) {
24
+ if (event.keyCode === 27 && this.props.closeOnESC) {
25
+ this.props.close(event);
26
+ }
27
+ }
28
+
29
+ render() {
30
+ return (
31
+ <DialogFormContext.Provider
32
+ value={{
33
+ title: this.props.title,
34
+ isLoading: this.props.isLoading,
35
+ close: this.props.close,
36
+ onSave: this.props.onSave,
37
+ }}
38
+ >
39
+ <VisibleModal className="">
40
+ <div className={`modal__body ${this.props.className || ''}`}>
41
+ <div className={`modal__header ${this.props.headerClassName || ''}`}>
42
+ <h1 className="modal__title">{this.props.title}</h1>
43
+ <button type="button" className="dc__transparent" onClick={this.props.close}>
44
+ {' '}
45
+ <img src={close} alt="close" />
46
+ </button>
47
+ </div>
48
+ <DialogFormContext.Consumer>
49
+ {(context) => {
50
+ return (
51
+ <form
52
+ noValidate
53
+ onSubmit={(e) => {
54
+ e.preventDefault();
55
+ if (!context.isLoading) {
56
+ context.onSave(e);
57
+ }
58
+ }}
59
+ >
60
+ {this.props.children}
61
+ </form>
62
+ );
63
+ }}
64
+ </DialogFormContext.Consumer>
65
+ </div>
66
+ </VisibleModal>
67
+ </DialogFormContext.Provider>
68
+ );
69
+ }
70
+ }
71
+
72
+ export class DialogFormSubmit extends Component<{ tabIndex: number }> {
73
+ render() {
74
+ return (
75
+ <DialogFormContext.Consumer>
76
+ {(context) => {
77
+ return (
78
+ <button type="submit" className="cta dc__align-right" tabIndex={this.props.tabIndex}>
79
+ {context.isLoading ? <Progressing /> : this.props.children}
80
+ </button>
81
+ );
82
+ }}
83
+ </DialogFormContext.Consumer>
84
+ );
85
+ }
86
+ }
@@ -0,0 +1,19 @@
1
+ import React from 'react'
2
+ import { ForceDeleteDialogType } from './Types';
3
+ import { DeleteDialog } from './DeleteDialog';
4
+
5
+ export default function ForceDeleteDialog({ onClickDelete, closeDeleteModal, forceDeleteDialogTitle, forceDeleteDialogMessage }: ForceDeleteDialogType) {
6
+ return (
7
+ <div>
8
+ <DeleteDialog title={forceDeleteDialogTitle}
9
+ delete={onClickDelete}
10
+ closeDelete={closeDeleteModal}
11
+ deletePrefix="Force ">
12
+ <DeleteDialog.Description >
13
+ <p className="mt-12 mb-12 p-8 dc__break-word dc__window-bg">Error: {forceDeleteDialogMessage}</p>
14
+ <p>Do you want to force delete?</p>
15
+ </DeleteDialog.Description>
16
+ </DeleteDialog>
17
+ </div>
18
+ )
19
+ }
@@ -0,0 +1,47 @@
1
+ import { ReactNode } from "react"
2
+
3
+ export interface DeleteDialogProps {
4
+ title: string
5
+ description?: string
6
+ closeDelete: () => void
7
+ delete: () => any
8
+ deletePrefix?: string
9
+ deletePostfix?: string
10
+ apiCallInProgress?: boolean
11
+ dataTestId?: string
12
+ buttonPrimaryText?: string
13
+ shouldStopPropagation?: boolean
14
+ disabled?: boolean
15
+ }
16
+
17
+ export interface ForceDeleteDialogType {
18
+ onClickDelete: () => void
19
+ closeDeleteModal: () => void
20
+ forceDeleteDialogTitle: string
21
+ forceDeleteDialogMessage: string
22
+ }
23
+ export interface ConfirmationDialogType {
24
+ className?: string
25
+ children: any
26
+ }
27
+ export interface ConfirmationDialogIconType {
28
+ src: string
29
+ className?: string
30
+ }
31
+ export interface ConfirmationDialogBodyType {
32
+ title: string
33
+ subtitle?: ReactNode
34
+ children?: any
35
+ }
36
+ export interface ConfirmationDialogButtonGroupType {
37
+ children: any
38
+ }
39
+ export interface DialogFormProps {
40
+ className: string;
41
+ title: string;
42
+ isLoading: boolean;
43
+ closeOnESC?: boolean;
44
+ close: (event) => void;
45
+ onSave: (event) => void;
46
+ headerClassName?: string;
47
+ }
@@ -0,0 +1,4 @@
1
+ export { default as ConfirmationDialog } from './ConfirmationDialog'
2
+ export * from './DeleteDialog'
3
+ export * from './DialogForm'
4
+ export { default as ForceDeleteDialog } from './ForceDeleteDialog'
@@ -0,0 +1,14 @@
1
+ import React from 'react'
2
+ import { ReactComponent as ICDrag } from '../../Assets/Icon/ic-drag.svg'
3
+ import { DraggableButtonProps } from './types'
4
+
5
+ export default function DraggableButton({ dragClassName }: DraggableButtonProps) {
6
+ return (
7
+ <button
8
+ type="button"
9
+ className={`${dragClassName} dc__outline-none-imp dc__no-border p-0 dc__transparent h-20`}
10
+ >
11
+ <ICDrag className="dc__grabbable icon-dim-20 fcn-6" />
12
+ </button>
13
+ )
14
+ }