@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,54 @@
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 if (!key.startsWith('devtron.ai/')) {
24
+ const re = new RegExp('/', 'g')
25
+ const noOfSlashInKey = key.match(re)?.length
26
+ if (noOfSlashInKey > 1) {
27
+ errorList.push('Key: Max 1 ( / ) allowed')
28
+ } else if (noOfSlashInKey === 1) {
29
+ const [prefix, name] = key.split('/')
30
+ errorList.push(...validateTagValue(name).map((error) => `Name: ${error}`))
31
+ if (prefix.length > 253) {
32
+ errorList.push('Prefix: Can be max 253 characters')
33
+ }
34
+ const validPrefix = PATTERNS.KUBERNETES_KEY_PREFIX.test(prefix)
35
+ if (!validPrefix) {
36
+ errorList.push('Prefix: Must be a DNS subdomain (a series of DNS labels separated by dots (.)')
37
+ }
38
+ } else {
39
+ errorList.push(...validateTagValue(key).map((error) => `Name: ${error}`))
40
+ }
41
+ }
42
+ return { isValid: errorList.length === 0, messages: errorList }
43
+ }
44
+
45
+ propagateTagValue = (value: string, key: string): { isValid: boolean; messages: string[] } => {
46
+ const errorList = []
47
+ if (!value) {
48
+ errorList.push('Value is required')
49
+ } else if (!key.startsWith('devtron.ai/')) {
50
+ errorList.push(...validateTagValue(value))
51
+ }
52
+ return { isValid: errorList.length === 0, messages: errorList }
53
+ }
54
+ }
@@ -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,77 @@
1
+ import { useEffect, useState } from 'react'
2
+ import * as React from 'react'
3
+ import { useDebouncedEffect } from './Utils'
4
+ import { ReactComponent as ICClear } from '../../Assets/Icon/ic-error-cross.svg'
5
+ import { DebouncedSearchProps } from './Types'
6
+
7
+ /**
8
+ * @param onSearch - Callback function to be called on search
9
+ * @param Icon - (Optional) Icon to be shown before the input
10
+ * @param iconClass - (Optional) Class for the icon
11
+ * @param children - (Optional) In case we want to add another button or any other element
12
+ * @param placeholder - (Optional) Placeholder for the input
13
+ * @param containerClass - (Optional) Class for the container
14
+ * @param inputClass - (Optional) Class for the input field
15
+ * @param debounceTimeout - (Optional) Timeout for the debounce with default value of 500ms
16
+ * @param clearSearch - (Optional) To clear the search text
17
+ * @param showClearIcon - (Optional) To show the clear icon default value is true
18
+ */
19
+ export default function DebouncedSearch({
20
+ onSearch,
21
+ Icon,
22
+ children,
23
+ placeholder,
24
+ containerClass = '',
25
+ iconClass = '',
26
+ inputClass = '',
27
+ debounceTimeout = 500,
28
+ clearSearch,
29
+ showClearIcon = true,
30
+ autoFocus = true,
31
+ }: DebouncedSearchProps) {
32
+ const [searchText, setSearchText] = useState<string>('')
33
+
34
+ useEffect(() => {
35
+ setSearchText('')
36
+ }, [clearSearch])
37
+
38
+ const handleSearchTextChange = (e: React.ChangeEvent<HTMLInputElement>) => {
39
+ setSearchText(e.target.value)
40
+ }
41
+
42
+ const handleClearSearch = () => {
43
+ setSearchText('')
44
+ }
45
+
46
+ useDebouncedEffect(() => onSearch(searchText), debounceTimeout, [searchText])
47
+
48
+ return (
49
+ <div className={containerClass}>
50
+ {Icon && <Icon className={iconClass} />}
51
+
52
+ <input
53
+ type="text"
54
+ className={inputClass}
55
+ placeholder={placeholder ?? 'Search'}
56
+ value={searchText}
57
+ onChange={handleSearchTextChange}
58
+ autoFocus={autoFocus}
59
+ data-testid="debounced-search"
60
+ />
61
+
62
+ {showClearIcon && !!searchText && (
63
+ <button
64
+ type="button"
65
+ className="dc__outline-none-imp dc__no-border p-0 bc-n50 flex"
66
+ onClick={handleClearSearch}
67
+ data-testid="clear-search"
68
+ >
69
+ <ICClear className="icon-dim-20 icon-n6" />
70
+ </button>
71
+ )}
72
+
73
+ {/* In case we want to add another button or something */}
74
+ {children}
75
+ </div>
76
+ )
77
+ }
@@ -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,60 @@
1
+ import { render, screen, fireEvent } from '@testing-library/react'
2
+ import { ReactComponent as ICClear } from '../../../../assets/icons/ic-error.svg'
3
+ import DebouncedSearch from '../DebouncedSearch'
4
+
5
+ jest.mock('../../helpers/Helpers', () => ({
6
+ useDebouncedEffect: jest.fn().mockImplementation((fn) => fn()),
7
+ }))
8
+
9
+ describe('When DebouncedSearch mounts', () => {
10
+ it('should have a input field', () => {
11
+ render(<DebouncedSearch onSearch={jest.fn()} />)
12
+ expect(screen.getByRole('textbox')).toBeTruthy()
13
+ })
14
+
15
+ it('should have a clear icon when clearSearch is true and user has typed something', () => {
16
+ const { getByTestId } = render(<DebouncedSearch onSearch={jest.fn()} clearSearch debounceTimeout={0} />)
17
+ fireEvent.change(screen.getByRole('textbox'), { target: { value: 'test' } })
18
+ expect(getByTestId('clear-search')).toBeTruthy()
19
+ })
20
+
21
+ it('should call onSearch when input value changes', () => {
22
+ const onSearch = jest.fn()
23
+ render(<DebouncedSearch onSearch={onSearch} debounceTimeout={0} />)
24
+ fireEvent.change(screen.getByRole('textbox'), { target: { value: 'test' } })
25
+ expect(onSearch).toHaveBeenCalled()
26
+ })
27
+
28
+ it('should clear input value when clear icon is clicked', () => {
29
+ const { container } = render(<DebouncedSearch onSearch={jest.fn()} clearSearch debounceTimeout={0} />)
30
+ fireEvent.change(screen.getByRole('textbox'), { target: { value: 'test' } })
31
+ const inputBar = container.querySelector('input')
32
+ expect(inputBar.value).toBe('test')
33
+ fireEvent.click(screen.getByRole('button'))
34
+ expect(inputBar.value).toBe('')
35
+ })
36
+
37
+ it('should have a placeholder', () => {
38
+ render(<DebouncedSearch onSearch={jest.fn()} placeholder="test" />)
39
+ expect(screen.getByPlaceholderText('test')).toBeTruthy()
40
+ })
41
+
42
+ it('should not show clear icon when showClearIcon is false', () => {
43
+ render(<DebouncedSearch onSearch={jest.fn()} showClearIcon={false} />)
44
+ expect(screen.queryByRole('button')).toBeNull()
45
+ })
46
+
47
+ it('should have a custom Icon', () => {
48
+ const { container } = render(<DebouncedSearch onSearch={jest.fn()} Icon={ICClear} iconClass="icon-class" />)
49
+ expect(container.querySelector('.icon-class')).toBeTruthy()
50
+ })
51
+
52
+ it('should support children', () => {
53
+ render(
54
+ <DebouncedSearch onSearch={jest.fn()}>
55
+ <div>test</div>
56
+ </DebouncedSearch>,
57
+ )
58
+ expect(screen.getByText('test')).toBeTruthy()
59
+ })
60
+ })
@@ -0,0 +1,90 @@
1
+ import { 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
+ const DeleteComponent = ({
10
+ setDeleting,
11
+ toggleConfirmation,
12
+ deleteComponent,
13
+ title,
14
+ component,
15
+ payload,
16
+ confirmationDialogDescription = '',
17
+ redirectTo = false,
18
+ url = '',
19
+ reload,
20
+ configuration = '',
21
+ closeCustomComponent,
22
+ }: DeleteComponentProps) => {
23
+ const [showCannotDeleteDialogModal, setCannotDeleteDialogModal] = useState(false)
24
+ const { push } = useHistory()
25
+
26
+ async function handleDelete() {
27
+ setDeleting(true)
28
+ try {
29
+ await deleteComponent(payload)
30
+ toast.success('Successfully deleted')
31
+ toggleConfirmation(false)
32
+ if (redirectTo) {
33
+ push(url)
34
+ } else {
35
+ reload()
36
+ }
37
+ if (typeof closeCustomComponent === 'function') {
38
+ closeCustomComponent()
39
+ }
40
+ } catch (serverError) {
41
+ if (serverError instanceof ServerErrors && serverError.code === 500) {
42
+ setCannotDeleteDialogModal(true)
43
+ }
44
+ } finally {
45
+ setDeleting(false)
46
+ }
47
+ }
48
+
49
+ const handleConfirmation = () => {
50
+ setCannotDeleteDialogModal(false)
51
+ toggleConfirmation(false)
52
+ if (typeof closeCustomComponent === 'function') {
53
+ closeCustomComponent()
54
+ }
55
+ }
56
+
57
+ const renderCannotDeleteDialogModal = () => (
58
+ <ConfirmationDialog className="confirmation-dialog__body--w-360">
59
+ <ConfirmationDialog.Icon src={info} />
60
+ <ConfirmationDialog.Body title={`Cannot delete ${component} '${title}'`} />
61
+ <p className="fs-13 cn-7 ">{confirmationDialogDescription}</p>
62
+ <ConfirmationDialog.ButtonGroup>
63
+ <button type="button" className="cta" onClick={handleConfirmation}>
64
+ Okay
65
+ </button>
66
+ </ConfirmationDialog.ButtonGroup>
67
+ </ConfirmationDialog>
68
+ )
69
+
70
+ const renderDeleteDialog = () => (
71
+ <DeleteDialog
72
+ title={`Delete ${component} '${title}'`}
73
+ delete={handleDelete}
74
+ closeDelete={() => toggleConfirmation(false)}
75
+ dataTestId="delete-dialog"
76
+ >
77
+ <DeleteDialog.Description>
78
+ <p>Are you sure you want to delete this {configuration || component}? </p>
79
+ </DeleteDialog.Description>
80
+ </DeleteDialog>
81
+ )
82
+ return (
83
+ <div>
84
+ {!showCannotDeleteDialogModal && renderDeleteDialog()}
85
+ {showCannotDeleteDialogModal && renderCannotDeleteDialogModal()}
86
+ </div>
87
+ )
88
+ }
89
+
90
+ 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,8 @@
1
+ import { ReactComponent as ICRotateDevtron } from '../../Assets/Icon/ic-rotate-devtron.svg'
2
+ import { DevtronProgressingProps } from './types'
3
+
4
+ export const DevtronProgressing = ({ classes, parentClasses }: DevtronProgressingProps): JSX.Element => (
5
+ <div className={parentClasses || ''}>
6
+ <ICRotateDevtron className={classes || ''} />
7
+ </div>
8
+ )
@@ -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 { VisibleModal2 } from '../Modals/VisibleModal2'
2
+ import {
3
+ ConfirmationDialogBodyType,
4
+ ConfirmationDialogButtonGroupType,
5
+ ConfirmationDialogIconType,
6
+ ConfirmationDialogType,
7
+ } from './Types'
8
+
9
+ const ConfirmationDialog = ({ className = '', children }: ConfirmationDialogType) => (
10
+ <VisibleModal2 className="confirmation-dialog">
11
+ <div className={`confirmation-dialog__body ${className}`}>{children}</div>
12
+ </VisibleModal2>
13
+ )
14
+
15
+ const Icon = ({ src, className = '' }: ConfirmationDialogIconType) => (
16
+ <img src={src} className={`confirmation-dialog__icon ${className}`} alt="" />
17
+ )
18
+
19
+ const Body = ({ title, subtitle = null, children = null }: ConfirmationDialogBodyType) => (
20
+ <div className="flex left column ">
21
+ <h3 className="confirmation-dialog__title lh-1-5 dc__break-word w-100">{title}</h3>
22
+ {subtitle && <div className="confirmation-dialog__subtitle">{subtitle}</div>}
23
+ {children}
24
+ </div>
25
+ )
26
+
27
+ const ButtonGroup = ({ children }: ConfirmationDialogButtonGroupType) => (
28
+ <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,67 @@
1
+ import * as 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> } = (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
+ const DeleteDialogDescription = (props) => <>{props.children}</>
66
+
67
+ DeleteDialog.Description = DeleteDialogDescription
@@ -0,0 +1,82 @@
1
+ import { 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
+ <form
51
+ noValidate
52
+ onSubmit={(e) => {
53
+ e.preventDefault()
54
+ if (!context.isLoading) {
55
+ context.onSave(e)
56
+ }
57
+ }}
58
+ >
59
+ {this.props.children}
60
+ </form>
61
+ )}
62
+ </DialogFormContext.Consumer>
63
+ </div>
64
+ </VisibleModal>
65
+ </DialogFormContext.Provider>
66
+ )
67
+ }
68
+ }
69
+
70
+ export class DialogFormSubmit extends Component<{ tabIndex: number }> {
71
+ render() {
72
+ return (
73
+ <DialogFormContext.Consumer>
74
+ {(context) => (
75
+ <button type="submit" className="cta dc__align-right" tabIndex={this.props.tabIndex}>
76
+ {context.isLoading ? <Progressing /> : this.props.children}
77
+ </button>
78
+ )}
79
+ </DialogFormContext.Consumer>
80
+ )
81
+ }
82
+ }
@@ -0,0 +1,25 @@
1
+ import { ForceDeleteDialogType } from './Types'
2
+ import { DeleteDialog } from './DeleteDialog'
3
+
4
+ export default function ForceDeleteDialog({
5
+ onClickDelete,
6
+ closeDeleteModal,
7
+ forceDeleteDialogTitle,
8
+ forceDeleteDialogMessage,
9
+ }: ForceDeleteDialogType) {
10
+ return (
11
+ <div>
12
+ <DeleteDialog
13
+ title={forceDeleteDialogTitle}
14
+ delete={onClickDelete}
15
+ closeDelete={closeDeleteModal}
16
+ deletePrefix="Force "
17
+ >
18
+ <DeleteDialog.Description>
19
+ <p className="mt-12 mb-12 p-8 dc__break-word dc__window-bg">Error: {forceDeleteDialogMessage}</p>
20
+ <p>Do you want to force delete?</p>
21
+ </DeleteDialog.Description>
22
+ </DeleteDialog>
23
+ </div>
24
+ )
25
+ }
@@ -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
+ }