@devtron-labs/devtron-fe-common-lib 0.0.63-beta-2 → 0.0.63-beta-4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. package/.eslintignore +96 -0
  2. package/.eslintrc.js +109 -0
  3. package/.github/pull_request_template.md +25 -0
  4. package/.github/workflows/ci.yml +31 -0
  5. package/.github/workflows/release-package.yml +48 -0
  6. package/.husky/pre-commit +5 -0
  7. package/.lintstagedrc +3 -0
  8. package/.nvmrc +1 -0
  9. package/.prettierrc.js +7 -0
  10. package/dist/Common/AddCDButton/AddCDButton.d.ts +3 -3
  11. package/dist/Common/AddCDButton/index.d.ts +2 -2
  12. package/dist/Common/AddCDButton/types.d.ts +26 -26
  13. package/dist/Common/AddCDButton/utils.d.ts +2 -2
  14. package/dist/Common/Api.d.ts +14 -14
  15. package/dist/Common/AppStatus/AppStatus.d.ts +3 -3
  16. package/dist/Common/AppStatus/constants.d.ts +51 -51
  17. package/dist/Common/AppStatus/index.d.ts +1 -1
  18. package/dist/Common/AppStatus/types.d.ts +12 -12
  19. package/dist/Common/AppStatus/utils.d.ts +1 -1
  20. package/dist/Common/BreadCrumb/BreadCrumb.d.ts +5 -5
  21. package/dist/Common/BreadCrumb/BreadcrumbStore.d.ts +17 -17
  22. package/dist/Common/BreadCrumb/Types.d.ts +28 -28
  23. package/dist/Common/CIPipeline.Types.d.ts +265 -265
  24. package/dist/Common/ChartVersionAndTypeSelector.d.ts +4 -3
  25. package/dist/Common/Checkbox.d.ts +5 -5
  26. package/dist/Common/ClipboardButton/ClipboardButton.d.ts +10 -10
  27. package/dist/Common/ClipboardButton/types.d.ts +8 -8
  28. package/dist/Common/Common.service.d.ts +20 -20
  29. package/dist/Common/Constants.d.ts +90 -96
  30. package/dist/Common/CustomInput/CustomInput.d.ts +3 -2
  31. package/dist/Common/CustomInput/Types.d.ts +31 -31
  32. package/dist/Common/CustomInput/index.d.ts +2 -2
  33. package/dist/Common/CustomTagSelector/PropagateTagInfo.d.ts +4 -4
  34. package/dist/Common/CustomTagSelector/ResizableTagTextArea.d.ts +3 -2
  35. package/dist/Common/CustomTagSelector/TagDetails.d.ts +3 -2
  36. package/dist/Common/CustomTagSelector/TagLabelSelect.d.ts +3 -2
  37. package/dist/Common/CustomTagSelector/TagLabelValueSelector.d.ts +3 -2
  38. package/dist/Common/CustomTagSelector/TagSelector.utils.d.ts +12 -12
  39. package/dist/Common/CustomTagSelector/Types.d.ts +68 -68
  40. package/dist/Common/CustomTagSelector/ValidationRules.d.ts +10 -10
  41. package/dist/Common/CustomTagSelector/index.d.ts +6 -6
  42. package/dist/Common/DebouncedSearch/DebouncedSearch.d.ts +17 -17
  43. package/dist/Common/DebouncedSearch/Types.d.ts +14 -14
  44. package/dist/Common/DebouncedSearch/Utils.d.ts +1 -1
  45. package/dist/Common/DeleteComponentModal/DeleteComponent.d.ts +4 -3
  46. package/dist/Common/DeleteComponentModal/types.d.ts +15 -15
  47. package/dist/Common/DevtronProgressing/DevtronProgressing.d.ts +3 -2
  48. package/dist/Common/DevtronProgressing/index.d.ts +1 -1
  49. package/dist/Common/DevtronProgressing/types.d.ts +4 -4
  50. package/dist/Common/Dialogs/ConfirmationDialog.d.ts +9 -8
  51. package/dist/Common/Dialogs/DeleteDialog.d.ts +5 -5
  52. package/dist/Common/Dialogs/DialogForm.d.ts +14 -14
  53. package/dist/Common/Dialogs/ForceDeleteDialog.d.ts +3 -3
  54. package/dist/Common/Dialogs/Types.d.ts +45 -45
  55. package/dist/Common/Dialogs/index.d.ts +4 -4
  56. package/dist/Common/DraggableWrapper/DraggableButton.d.ts +3 -3
  57. package/dist/Common/DraggableWrapper/DraggableWrapper.d.ts +9 -9
  58. package/dist/Common/DraggableWrapper/index.d.ts +3 -3
  59. package/dist/Common/DraggableWrapper/types.d.ts +30 -23
  60. package/dist/Common/Drawer/Drawer.d.ts +16 -14
  61. package/dist/Common/EmptyState/EmptyState.d.ts +25 -0
  62. package/dist/Common/EmptyState/GenericEmptyState.d.ts +5 -3
  63. package/dist/Common/Error.d.ts +17 -17
  64. package/dist/Common/ErrorScreenNotFound.d.ts +3 -2
  65. package/dist/Common/Grid/Grid.d.ts +3 -3
  66. package/dist/Common/Grid/types.d.ts +10 -10
  67. package/dist/Common/Helper.d.ts +67 -68
  68. package/dist/Common/Hooks/UseClickOutside/UseClickOutside.d.ts +1 -1
  69. package/dist/Common/Hooks/UseSuperAdmin/UseSuperAdmin.d.ts +6 -6
  70. package/dist/Common/Hooks/UseSuperAdmin/types.d.ts +3 -3
  71. package/dist/Common/Hooks/UseWindowSize/UseWindowSize.d.ts +4 -4
  72. package/dist/Common/Hooks/index.d.ts +4 -4
  73. package/dist/Common/Hooks/useUrlFilters/constants.d.ts +8 -8
  74. package/dist/Common/Hooks/useUrlFilters/index.d.ts +2 -2
  75. package/dist/Common/Hooks/useUrlFilters/types.d.ts +59 -6
  76. package/dist/Common/Hooks/useUrlFilters/useUrlFilters.d.ts +20 -32
  77. package/dist/Common/ImageTags.Types.d.ts +40 -40
  78. package/dist/Common/ImageTags.d.ts +4 -3
  79. package/dist/Common/InfoColorBar/InfoColourbar.d.ts +5 -3
  80. package/dist/Common/Modals/Modal.d.ts +3 -3
  81. package/dist/Common/Modals/OpaqueModal.d.ts +12 -12
  82. package/dist/Common/Modals/VisibleModal.d.ts +15 -15
  83. package/dist/Common/Modals/VisibleModal2.d.ts +12 -12
  84. package/dist/Common/MultiSelectCustomization.d.ts +37 -37
  85. package/dist/Common/Pagination/PageSizeSelector.d.ts +4 -3
  86. package/dist/Common/Pagination/Pagination.d.ts +5 -3
  87. package/dist/Common/Pagination/constants.d.ts +5 -5
  88. package/dist/Common/Pagination/index.d.ts +1 -1
  89. package/dist/Common/Pagination/types.d.ts +51 -51
  90. package/dist/Common/Pagination/utils.d.ts +6 -6
  91. package/dist/Common/Policy.Types.d.ts +56 -56
  92. package/dist/Common/PopupMenu.d.ts +8 -7
  93. package/dist/Common/Progressing.d.ts +4 -3
  94. package/dist/Common/RJSF/Form.d.ts +4 -2
  95. package/dist/Common/RJSF/common/FieldRow.d.ts +6 -5
  96. package/dist/Common/RJSF/common/types.d.ts +8 -8
  97. package/dist/Common/RJSF/config.d.ts +4 -4
  98. package/dist/Common/RJSF/constants.d.ts +7 -7
  99. package/dist/Common/RJSF/index.d.ts +3 -3
  100. package/dist/Common/RJSF/templates/ArrayFieldItemTemplate.d.ts +3 -2
  101. package/dist/Common/RJSF/templates/ArrayFieldTemplate.d.ts +3 -2
  102. package/dist/Common/RJSF/templates/BaseInput.d.ts +3 -2
  103. package/dist/Common/RJSF/templates/ButtonTemplates/AddButton.d.ts +3 -2
  104. package/dist/Common/RJSF/templates/ButtonTemplates/RemoveButton.d.ts +3 -2
  105. package/dist/Common/RJSF/templates/ButtonTemplates/SubmitButton.d.ts +3 -2
  106. package/dist/Common/RJSF/templates/ButtonTemplates/index.d.ts +3 -3
  107. package/dist/Common/RJSF/templates/Description.d.ts +3 -2
  108. package/dist/Common/RJSF/templates/Field.d.ts +3 -2
  109. package/dist/Common/RJSF/templates/FieldErrorTemplate.d.ts +3 -2
  110. package/dist/Common/RJSF/templates/ObjectFieldTemplate.d.ts +3 -2
  111. package/dist/Common/RJSF/templates/TitleField.d.ts +3 -2
  112. package/dist/Common/RJSF/templates/WrapIfAdditionalTemplate.d.ts +3 -2
  113. package/dist/Common/RJSF/templates/index.d.ts +10 -10
  114. package/dist/Common/RJSF/types.d.ts +3 -3
  115. package/dist/Common/RJSF/utils.d.ts +26 -25
  116. package/dist/Common/RJSF/widgets/Checkbox.d.ts +3 -2
  117. package/dist/Common/RJSF/widgets/Select.d.ts +3 -2
  118. package/dist/Common/RJSF/widgets/index.d.ts +2 -2
  119. package/dist/Common/RadioGroup/RadioGroup.d.ts +17 -16
  120. package/dist/Common/RadioGroup.d.ts +8 -8
  121. package/dist/Common/Reload.d.ts +3 -3
  122. package/dist/Common/ResizableTextarea.d.ts +3 -3
  123. package/dist/Common/SearchBar/SearchBar.component.d.ts +39 -37
  124. package/dist/Common/SearchBar/index.d.ts +2 -2
  125. package/dist/Common/SearchBar/types.d.ts +35 -35
  126. package/dist/Common/Security/ScanVulnerabilitiesTable.d.ts +4 -3
  127. package/dist/Common/ServerError.d.ts +15 -15
  128. package/dist/Common/SortableTableHeaderCell/SortableTableHeaderCell.d.ts +18 -17
  129. package/dist/Common/SortableTableHeaderCell/index.d.ts +2 -2
  130. package/dist/Common/SortableTableHeaderCell/types.d.ts +25 -25
  131. package/dist/Common/TippyCustomized.d.ts +4 -2
  132. package/dist/Common/ToastBody.d.ts +23 -23
  133. package/dist/Common/Toggle/Toggle.d.ts +14 -12
  134. package/dist/Common/Types.d.ts +704 -704
  135. package/dist/Common/index.d.ts +51 -51
  136. package/dist/Pages/GlobalConfigurations/Authorization/constants.d.ts +19 -15
  137. package/dist/Pages/GlobalConfigurations/Authorization/index.d.ts +2 -1
  138. package/dist/Pages/GlobalConfigurations/Authorization/types.d.ts +23 -0
  139. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraConfigForm.d.ts +4 -4
  140. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraDescriptionField.d.ts +4 -4
  141. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormAction.d.ts +7 -7
  142. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormItem.d.ts +4 -4
  143. package/dist/Pages/GlobalConfigurations/BuildInfra/BuildInfraProfileNameField.d.ts +4 -4
  144. package/dist/Pages/GlobalConfigurations/BuildInfra/Descriptor.d.ts +4 -3
  145. package/dist/Pages/GlobalConfigurations/BuildInfra/Footer.d.ts +4 -4
  146. package/dist/Pages/GlobalConfigurations/BuildInfra/constants.d.ts +50 -50
  147. package/dist/Pages/GlobalConfigurations/BuildInfra/index.d.ts +7 -7
  148. package/dist/Pages/GlobalConfigurations/BuildInfra/services.d.ts +6 -6
  149. package/dist/Pages/GlobalConfigurations/BuildInfra/types.d.ts +286 -286
  150. package/dist/Pages/GlobalConfigurations/BuildInfra/utils.d.ts +12 -12
  151. package/dist/Pages/GlobalConfigurations/index.d.ts +2 -2
  152. package/dist/Pages/index.d.ts +1 -1
  153. package/dist/Shared/Components/APIResponseHandler/APIResponseHandler.d.ts +4 -3
  154. package/dist/Shared/Components/APIResponseHandler/constants.d.ts +4 -4
  155. package/dist/Shared/Components/APIResponseHandler/index.d.ts +2 -2
  156. package/dist/Shared/Components/APIResponseHandler/types.d.ts +37 -37
  157. package/dist/Shared/Components/BulkSelection/BulkSelection.d.ts +4 -3
  158. package/dist/Shared/Components/BulkSelection/BulkSelectionDropdownItems.d.ts +4 -3
  159. package/dist/Shared/Components/BulkSelection/BulkSelectionProvider.d.ts +4 -3
  160. package/dist/Shared/Components/BulkSelection/constants.d.ts +10 -10
  161. package/dist/Shared/Components/BulkSelection/index.d.ts +4 -4
  162. package/dist/Shared/Components/BulkSelection/types.d.ts +56 -54
  163. package/dist/Shared/Components/FilterChips/FilterChips.component.d.ts +7 -0
  164. package/dist/Shared/Components/FilterChips/index.d.ts +2 -0
  165. package/dist/Shared/Components/FilterChips/types.d.ts +37 -0
  166. package/dist/Shared/Components/ReactSelect/index.d.ts +1 -1
  167. package/dist/Shared/Components/ReactSelect/utils.d.ts +12 -11
  168. package/dist/Shared/Components/index.d.ts +4 -3
  169. package/dist/Shared/Helpers.d.ts +16 -16
  170. package/dist/Shared/index.d.ts +3 -3
  171. package/dist/Shared/validations.d.ts +8 -8
  172. package/dist/index.d.ts +3 -9
  173. package/dist/index.js +30473 -216
  174. package/package.json +23 -34
  175. package/rollup.config.js +31 -0
  176. package/src/Assets/Icon/ic-add.svg +3 -0
  177. package/src/Assets/Icon/ic-appstatus-cancelled.svg +6 -0
  178. package/src/Assets/Icon/ic-arrow-counter-clockwise.svg +5 -0
  179. package/src/Assets/Icon/ic-arrow-up-down.svg +3 -0
  180. package/src/Assets/Icon/ic-check-all.svg +5 -0
  181. package/src/Assets/Icon/ic-check-square.svg +4 -0
  182. package/src/Assets/Icon/ic-check.svg +5 -0
  183. package/src/Assets/Icon/ic-chevron-down.svg +5 -0
  184. package/src/Assets/Icon/ic-close.svg +9 -0
  185. package/src/Assets/Icon/ic-copy.svg +3 -0
  186. package/src/Assets/Icon/ic-cpu.svg +4 -0
  187. package/src/Assets/Icon/ic-cross.svg +3 -0
  188. package/src/Assets/Icon/ic-drag.svg +8 -0
  189. package/src/Assets/Icon/ic-enter.svg +3 -0
  190. package/src/Assets/Icon/ic-error-cross.svg +8 -0
  191. package/src/Assets/Icon/ic-error-exclamation.svg +6 -0
  192. package/src/Assets/Icon/ic-error-medium.svg +6 -0
  193. package/src/Assets/Icon/ic-help-outline.svg +3 -0
  194. package/src/Assets/Icon/ic-help.svg +3 -0
  195. package/src/Assets/Icon/ic-info-filled.svg +7 -0
  196. package/src/Assets/Icon/ic-info-outlined.svg +13 -0
  197. package/src/Assets/Icon/ic-memory.svg +3 -0
  198. package/src/Assets/Icon/ic-minus.svg +3 -0
  199. package/src/Assets/Icon/ic-pencil.svg +3 -0
  200. package/src/Assets/Icon/ic-progressing.svg +6 -0
  201. package/src/Assets/Icon/ic-rotate-devtron.svg +103 -0
  202. package/src/Assets/Icon/ic-search.svg +6 -0
  203. package/src/Assets/Icon/ic-sort-arrow-down.svg +3 -0
  204. package/src/Assets/Icon/ic-timer.svg +3 -0
  205. package/src/Assets/Icon/ic-warning.svg +7 -0
  206. package/src/Assets/Icon/inject-tag.svg +5 -0
  207. package/src/Assets/Img/app-not-deployed.png +0 -0
  208. package/src/Assets/Img/delete-medium.svg +15 -0
  209. package/src/Assets/Img/ic-empty-error@2x.png +0 -0
  210. package/src/Assets/Img/ic-loading-failure.png +0 -0
  211. package/src/Assets/Img/ic-not-authorized.svg +62 -0
  212. package/src/Common/AddCDButton/AddCDButton.tsx +68 -0
  213. package/src/Common/AddCDButton/index.ts +2 -0
  214. package/src/Common/AddCDButton/types.ts +38 -0
  215. package/src/Common/AddCDButton/utils.tsx +35 -0
  216. package/src/Common/Api.ts +251 -0
  217. package/src/Common/AppStatus/AppStatus.tsx +64 -0
  218. package/src/Common/AppStatus/constants.ts +53 -0
  219. package/src/Common/AppStatus/index.ts +1 -0
  220. package/src/Common/AppStatus/types.ts +12 -0
  221. package/src/Common/AppStatus/utils.ts +14 -0
  222. package/src/Common/BreadCrumb/BreadCrumb.tsx +105 -0
  223. package/src/Common/BreadCrumb/BreadcrumbStore.tsx +25 -0
  224. package/src/Common/BreadCrumb/Types.ts +29 -0
  225. package/src/Common/CIPipeline.Types.ts +277 -0
  226. package/src/Common/ChartVersionAndTypeSelector.tsx +78 -0
  227. package/src/Common/Checkbox.tsx +37 -0
  228. package/src/Common/ClipboardButton/ClipboardButton.tsx +61 -0
  229. package/src/Common/ClipboardButton/__tests__/ClipboardButton.test.tsx +43 -0
  230. package/src/Common/ClipboardButton/types.ts +7 -0
  231. package/src/Common/Common.service.ts +315 -0
  232. package/src/Common/Constants.ts +271 -0
  233. package/src/Common/CustomInput/CustomInput.tsx +135 -0
  234. package/src/Common/CustomInput/Types.ts +32 -0
  235. package/src/Common/CustomInput/index.ts +2 -0
  236. package/src/Common/CustomTagSelector/PropagateTagInfo.tsx +46 -0
  237. package/src/Common/CustomTagSelector/ResizableTagTextArea.tsx +84 -0
  238. package/src/Common/CustomTagSelector/TagDetails.tsx +76 -0
  239. package/src/Common/CustomTagSelector/TagLabelSelect.tsx +61 -0
  240. package/src/Common/CustomTagSelector/TagLabelValueSelector.tsx +198 -0
  241. package/src/Common/CustomTagSelector/TagSelector.utils.ts +71 -0
  242. package/src/Common/CustomTagSelector/Types.ts +72 -0
  243. package/src/Common/CustomTagSelector/ValidationRules.ts +58 -0
  244. package/src/Common/CustomTagSelector/index.ts +6 -0
  245. package/src/Common/DebouncedSearch/DebouncedSearch.tsx +78 -0
  246. package/src/Common/DebouncedSearch/Types.ts +13 -0
  247. package/src/Common/DebouncedSearch/Utils.ts +19 -0
  248. package/src/Common/DebouncedSearch/__tests__/DebouncedSearch.test.tsx +61 -0
  249. package/src/Common/DeleteComponentModal/DeleteComponent.tsx +95 -0
  250. package/src/Common/DeleteComponentModal/types.ts +15 -0
  251. package/src/Common/DevtronProgressing/DevtronProgressing.tsx +11 -0
  252. package/src/Common/DevtronProgressing/index.ts +1 -0
  253. package/src/Common/DevtronProgressing/types.ts +4 -0
  254. package/src/Common/Dialogs/ConfirmationDialog.tsx +34 -0
  255. package/src/Common/Dialogs/DeleteDialog.tsx +69 -0
  256. package/src/Common/Dialogs/DialogForm.tsx +86 -0
  257. package/src/Common/Dialogs/ForceDeleteDialog.tsx +19 -0
  258. package/src/Common/Dialogs/Types.ts +47 -0
  259. package/src/Common/Dialogs/index.ts +4 -0
  260. package/src/Common/DraggableWrapper/DraggableButton.tsx +14 -0
  261. package/src/Common/DraggableWrapper/DraggableWrapper.tsx +121 -0
  262. package/src/Common/DraggableWrapper/index.ts +3 -0
  263. package/src/Common/DraggableWrapper/types.ts +34 -0
  264. package/src/Common/Drawer/Drawer.scss +40 -0
  265. package/src/Common/Drawer/Drawer.tsx +49 -0
  266. package/src/Common/EmptyState/EmptyState.tsx +42 -0
  267. package/src/Common/EmptyState/GenericEmptyState.tsx +81 -0
  268. package/src/Common/EmptyState/emptyState.scss +74 -0
  269. package/src/Common/Error.tsx +61 -0
  270. package/src/Common/ErrorScreenNotFound.tsx +31 -0
  271. package/src/Common/Grid/Grid.tsx +44 -0
  272. package/src/Common/Grid/types.ts +11 -0
  273. package/src/Common/Helper.tsx +596 -0
  274. package/src/Common/Hooks/UseClickOutside/UseClickOutside.tsx +15 -0
  275. package/src/Common/Hooks/UseSuperAdmin/UseSuperAdmin.tsx +24 -0
  276. package/src/Common/Hooks/UseSuperAdmin/types.ts +3 -0
  277. package/src/Common/Hooks/UseWindowSize/UseWindowSize.tsx +31 -0
  278. package/src/Common/Hooks/index.ts +4 -0
  279. package/src/Common/Hooks/useUrlFilters/constants.ts +9 -0
  280. package/src/Common/Hooks/useUrlFilters/index.ts +2 -0
  281. package/src/Common/Hooks/useUrlFilters/types.ts +61 -0
  282. package/src/Common/Hooks/useUrlFilters/useUrlFilters.ts +143 -0
  283. package/src/Common/ImageTags.Types.ts +44 -0
  284. package/src/Common/ImageTags.tsx +586 -0
  285. package/src/Common/InfoColorBar/InfoColourbar.tsx +80 -0
  286. package/src/Common/InfoColorBar/infoColourBar.scss +28 -0
  287. package/src/Common/Modals/Modal.tsx +68 -0
  288. package/src/Common/Modals/OpaqueModal.tsx +36 -0
  289. package/src/Common/Modals/VisibleModal.tsx +55 -0
  290. package/src/Common/Modals/VisibleModal2.tsx +35 -0
  291. package/src/Common/MultiSelectCustomization.tsx +148 -0
  292. package/src/Common/Pagination/PageSizeSelector.tsx +78 -0
  293. package/src/Common/Pagination/Pagination.tsx +127 -0
  294. package/src/Common/Pagination/constants.ts +6 -0
  295. package/src/Common/Pagination/index.tsx +3 -0
  296. package/src/Common/Pagination/pagination.scss +123 -0
  297. package/src/Common/Pagination/types.ts +55 -0
  298. package/src/Common/Pagination/utils.tsx +24 -0
  299. package/src/Common/Policy.Types.ts +63 -0
  300. package/src/Common/PopupMenu.tsx +199 -0
  301. package/src/Common/Progressing.tsx +53 -0
  302. package/src/Common/RJSF/Form.tsx +29 -0
  303. package/src/Common/RJSF/common/FieldRow.tsx +35 -0
  304. package/src/Common/RJSF/common/types.ts +9 -0
  305. package/src/Common/RJSF/config.ts +37 -0
  306. package/src/Common/RJSF/constants.ts +10 -0
  307. package/src/Common/RJSF/index.ts +3 -0
  308. package/src/Common/RJSF/rjsfForm.scss +18 -0
  309. package/src/Common/RJSF/templates/ArrayFieldItemTemplate.tsx +31 -0
  310. package/src/Common/RJSF/templates/ArrayFieldTemplate.tsx +78 -0
  311. package/src/Common/RJSF/templates/BaseInput.tsx +16 -0
  312. package/src/Common/RJSF/templates/ButtonTemplates/AddButton.tsx +18 -0
  313. package/src/Common/RJSF/templates/ButtonTemplates/RemoveButton.tsx +10 -0
  314. package/src/Common/RJSF/templates/ButtonTemplates/SubmitButton.tsx +18 -0
  315. package/src/Common/RJSF/templates/ButtonTemplates/index.ts +3 -0
  316. package/src/Common/RJSF/templates/Description.tsx +12 -0
  317. package/src/Common/RJSF/templates/Field.tsx +30 -0
  318. package/src/Common/RJSF/templates/FieldErrorTemplate.tsx +25 -0
  319. package/src/Common/RJSF/templates/ObjectFieldTemplate.tsx +105 -0
  320. package/src/Common/RJSF/templates/TitleField.tsx +9 -0
  321. package/src/Common/RJSF/templates/WrapIfAdditionalTemplate.tsx +51 -0
  322. package/src/Common/RJSF/templates/index.ts +10 -0
  323. package/src/Common/RJSF/types.ts +4 -0
  324. package/src/Common/RJSF/utils.ts +125 -0
  325. package/src/Common/RJSF/widgets/Checkbox.tsx +44 -0
  326. package/src/Common/RJSF/widgets/Select.tsx +77 -0
  327. package/src/Common/RJSF/widgets/index.ts +2 -0
  328. package/src/Common/RadioGroup/RadioGroup.tsx +105 -0
  329. package/src/Common/RadioGroup/radioGroup.scss +46 -0
  330. package/src/Common/RadioGroup.tsx +53 -0
  331. package/src/Common/Reload.tsx +23 -0
  332. package/src/Common/ResizableTextarea.tsx +73 -0
  333. package/src/Common/SearchBar/SearchBar.component.tsx +131 -0
  334. package/src/Common/SearchBar/index.ts +2 -0
  335. package/src/Common/SearchBar/searchBar.scss +31 -0
  336. package/src/Common/SearchBar/types.ts +34 -0
  337. package/src/Common/Security/ScanVulnerabilitiesTable.tsx +55 -0
  338. package/src/Common/Security/scanVulnerabilities.css +69 -0
  339. package/src/Common/ServerError.ts +31 -0
  340. package/src/Common/SortableTableHeaderCell/SortableTableHeaderCell.tsx +44 -0
  341. package/src/Common/SortableTableHeaderCell/index.ts +2 -0
  342. package/src/Common/SortableTableHeaderCell/types.ts +26 -0
  343. package/src/Common/TippyCustomized.tsx +172 -0
  344. package/src/Common/ToastBody.tsx +62 -0
  345. package/src/Common/Toggle/Toggle.scss +78 -0
  346. package/src/Common/Toggle/Toggle.tsx +50 -0
  347. package/src/Common/Types.ts +778 -0
  348. package/src/Common/index.ts +51 -0
  349. package/src/Pages/GlobalConfigurations/Authorization/constants.ts +21 -0
  350. package/src/Pages/GlobalConfigurations/Authorization/index.ts +2 -0
  351. package/src/Pages/GlobalConfigurations/Authorization/types.ts +25 -0
  352. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraConfigForm.tsx +127 -0
  353. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraDescriptionField.tsx +44 -0
  354. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormAction.tsx +106 -0
  355. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraFormItem.tsx +55 -0
  356. package/src/Pages/GlobalConfigurations/BuildInfra/BuildInfraProfileNameField.tsx +32 -0
  357. package/src/Pages/GlobalConfigurations/BuildInfra/Descriptor.tsx +45 -0
  358. package/src/Pages/GlobalConfigurations/BuildInfra/Footer.tsx +56 -0
  359. package/src/Pages/GlobalConfigurations/BuildInfra/Readme.md +4 -0
  360. package/src/Pages/GlobalConfigurations/BuildInfra/constants.tsx +138 -0
  361. package/src/Pages/GlobalConfigurations/BuildInfra/index.ts +7 -0
  362. package/src/Pages/GlobalConfigurations/BuildInfra/services.tsx +167 -0
  363. package/src/Pages/GlobalConfigurations/BuildInfra/types.tsx +339 -0
  364. package/src/Pages/GlobalConfigurations/BuildInfra/utils.tsx +506 -0
  365. package/src/Pages/GlobalConfigurations/index.ts +2 -0
  366. package/src/Pages/index.ts +1 -0
  367. package/src/Shared/Components/APIResponseHandler/APIResponseHandler.tsx +41 -0
  368. package/src/Shared/Components/APIResponseHandler/constants.tsx +5 -0
  369. package/src/Shared/Components/APIResponseHandler/index.ts +2 -0
  370. package/src/Shared/Components/APIResponseHandler/types.tsx +39 -0
  371. package/src/Shared/Components/BulkSelection/BulkSelection.tsx +77 -0
  372. package/src/Shared/Components/BulkSelection/BulkSelectionDropdownItems.tsx +33 -0
  373. package/src/Shared/Components/BulkSelection/BulkSelectionProvider.tsx +182 -0
  374. package/src/Shared/Components/BulkSelection/constants.tsx +14 -0
  375. package/src/Shared/Components/BulkSelection/index.ts +4 -0
  376. package/src/Shared/Components/BulkSelection/types.tsx +67 -0
  377. package/src/Shared/Components/FilterChips/FilterChips.component.tsx +100 -0
  378. package/src/Shared/Components/FilterChips/index.ts +2 -0
  379. package/src/Shared/Components/FilterChips/types.ts +39 -0
  380. package/src/Shared/Components/ReactSelect/index.ts +1 -0
  381. package/src/Shared/Components/ReactSelect/utils.tsx +97 -0
  382. package/src/Shared/Components/index.ts +4 -0
  383. package/src/Shared/Helpers.tsx +29 -0
  384. package/src/Shared/index.ts +3 -0
  385. package/src/Shared/validations.tsx +130 -0
  386. package/src/custom.d.ts +13 -0
  387. package/src/index.ts +3 -0
  388. package/tsconfig.json +40 -0
  389. package/dist/Common/CodeEditor/CodeEditor.d.ts +0 -47
  390. package/dist/Common/Select/Select.d.ts +0 -4
  391. package/dist/Common/Select/types.d.ts +0 -29
  392. package/dist/abap-9f67f57a.js +0 -1314
  393. package/dist/apex-ff62e532.js +0 -315
  394. package/dist/assets/editor.worker-d26000ef.js +0 -9
  395. package/dist/assets/index.css +0 -1
  396. package/dist/assets/json.worker-f23a4654.js +0 -40
  397. package/dist/assets/yaml.worker-35ea3f9a.js +0 -467
  398. package/dist/azcli-31e64a7f.js +0 -74
  399. package/dist/bat-0ffe897e.js +0 -95
  400. package/dist/bicep-3414a2b1.js +0 -108
  401. package/dist/cameligo-df1f3f25.js +0 -168
  402. package/dist/clojure-65b0f010.js +0 -754
  403. package/dist/coffee-437f0fba.js +0 -228
  404. package/dist/cpp-66843dd5.js +0 -390
  405. package/dist/csharp-621d9a49.js +0 -320
  406. package/dist/csp-de0d5244.js +0 -57
  407. package/dist/css-7cd5ed4c.js +0 -186
  408. package/dist/cssMode-30bbea2f.js +0 -1446
  409. package/dist/cypher-70ad96fe.js +0 -262
  410. package/dist/dart-33ae3739.js +0 -270
  411. package/dist/dockerfile-f2274a50.js +0 -132
  412. package/dist/ecl-3b8294a3.js +0 -454
  413. package/dist/elixir-b9dcc73a.js +0 -489
  414. package/dist/flow9-bdde8316.js +0 -141
  415. package/dist/freemarker2-c3d378f7.js +0 -643
  416. package/dist/fsharp-eac2e449.js +0 -210
  417. package/dist/go-d12ed8d4.js +0 -208
  418. package/dist/graphql-c7356b69.js +0 -141
  419. package/dist/handlebars-723aad91.js +0 -391
  420. package/dist/hcl-e883a0d4.js +0 -177
  421. package/dist/html-6271b7ac.js +0 -281
  422. package/dist/htmlMode-77853f52.js +0 -1456
  423. package/dist/index-90cf2f91.js +0 -127403
  424. package/dist/ini-425ab711.js +0 -68
  425. package/dist/java-2bc0fd68.js +0 -221
  426. package/dist/javascript-daedc120.js +0 -75
  427. package/dist/jsonMode-02ef0b87.js +0 -1867
  428. package/dist/julia-1c932615.js +0 -496
  429. package/dist/kotlin-1ab839c8.js +0 -245
  430. package/dist/less-6fe856f5.js +0 -168
  431. package/dist/lexon-4955ac52.js +0 -151
  432. package/dist/liquid-2aa5e6f3.js +0 -238
  433. package/dist/lua-3cca0047.js +0 -157
  434. package/dist/m3-132e9cb6.js +0 -210
  435. package/dist/markdown-ea59a0c1.js +0 -202
  436. package/dist/mips-19811f4b.js +0 -194
  437. package/dist/msdax-69954a10.js +0 -377
  438. package/dist/mysql-82088e5d.js +0 -876
  439. package/dist/objective-c-1976eccc.js +0 -188
  440. package/dist/pascal-8ef177cb.js +0 -245
  441. package/dist/pascaligo-bc517b9e.js +0 -158
  442. package/dist/perl-8b93582c.js +0 -599
  443. package/dist/pgsql-00c11a6d.js +0 -847
  444. package/dist/php-4c8c276f.js +0 -471
  445. package/dist/pla-e9b4ffb1.js +0 -131
  446. package/dist/postiats-2071af8c.js +0 -544
  447. package/dist/powerquery-8e388ceb.js +0 -890
  448. package/dist/powershell-e35db398.js +0 -233
  449. package/dist/protobuf-a24b9176.js +0 -422
  450. package/dist/pug-2c94d9b8.js +0 -393
  451. package/dist/python-09265357.js +0 -259
  452. package/dist/qsharp-d730d7fe.js +0 -282
  453. package/dist/r-be193556.js +0 -245
  454. package/dist/razor-e37d6e12.js +0 -512
  455. package/dist/redis-9690c6ac.js +0 -298
  456. package/dist/redshift-6bdcdeaa.js +0 -806
  457. package/dist/restructuredtext-a08c1d20.js +0 -162
  458. package/dist/ruby-2247692b.js +0 -444
  459. package/dist/rust-1dffb4d5.js +0 -337
  460. package/dist/sb-136598e9.js +0 -110
  461. package/dist/scala-b1100fed.js +0 -353
  462. package/dist/scheme-038c8094.js +0 -114
  463. package/dist/scss-700d1b52.js +0 -244
  464. package/dist/shell-86c16e0f.js +0 -224
  465. package/dist/solidity-c05fdf3c.js +0 -1351
  466. package/dist/sophia-cd645d71.js +0 -190
  467. package/dist/sparql-01d9ec9c.js +0 -193
  468. package/dist/sql-4c33df41.js +0 -818
  469. package/dist/st-52cf1408.js +0 -414
  470. package/dist/swift-13c792ba.js +0 -315
  471. package/dist/systemverilog-0bd8b730.js +0 -556
  472. package/dist/tcl-463d7c75.js +0 -232
  473. package/dist/tsMode-91c2db33.js +0 -811
  474. package/dist/twig-0d98f5ec.js +0 -323
  475. package/dist/typescript-f08b1f7d.js +0 -328
  476. package/dist/vb-3a2b0a51.js +0 -364
  477. package/dist/wgsl-b2ddb3e4.js +0 -420
  478. package/dist/xml-cb271b3b.js +0 -95
  479. package/dist/yaml-f6bdbbce.js +0 -184
@@ -0,0 +1,29 @@
1
+ export interface Breadcrumb {
2
+ to: string
3
+ name: string
4
+ className?: string
5
+ }
6
+
7
+ export interface UseBreadcrumbState {
8
+ breadcrumbs: Breadcrumb[]
9
+ setCrumb: (props: { [key: string]: any }) => void
10
+ resetCrumb: (props: string[]) => void
11
+ }
12
+
13
+ export interface AdvancedAlias {
14
+ component: any
15
+ linked: boolean
16
+ }
17
+
18
+ export interface UseBreadcrumbProps {
19
+ sep?: string
20
+ alias?: { [key: string]: AdvancedAlias | any }
21
+ }
22
+
23
+ export interface Breadcrumbs {
24
+ breadcrumbs: Breadcrumb[]
25
+ sep?: string
26
+ className?: string
27
+ }
28
+
29
+ export type UseBreadcrumbOptionalProps = UseBreadcrumbProps | null
@@ -0,0 +1,277 @@
1
+ export interface MaterialType {
2
+ name: string
3
+ type: string
4
+ value: string
5
+ gitMaterialId: number
6
+ id: number
7
+ isSelected: boolean
8
+ gitHostId: number
9
+ gitProviderId: number
10
+ regex?: string
11
+ isRegex: boolean
12
+ }
13
+
14
+ export interface Githost {
15
+ id: number
16
+ name: string
17
+ active: boolean
18
+ webhookSecret: string
19
+ webhookUrl: string
20
+ }
21
+
22
+ export interface WebhookEvent {
23
+ id: number
24
+ gitHostId: number
25
+ name: string
26
+ isActive: boolean
27
+ selectors: WebhookEventSelectors[]
28
+ }
29
+
30
+ interface WebhookEventSelectors {
31
+ id: number
32
+ eventId: number
33
+ name: string
34
+ selector: string
35
+ toShowInCiFilter: boolean
36
+ fixValue: string
37
+ toShow: boolean
38
+ possibleValues: string
39
+ isActive: boolean
40
+ }
41
+
42
+ export interface CiPipelineSourceTypeOption {
43
+ label: string
44
+ value: string
45
+ isDisabled: boolean
46
+ isSelected: boolean
47
+ isWebhook: boolean
48
+ }
49
+
50
+ export enum RefVariableType {
51
+ GLOBAL = 'GLOBAL',
52
+ FROM_PREVIOUS_STEP = 'FROM_PREVIOUS_STEP',
53
+ NEW = 'NEW',
54
+ }
55
+
56
+ export enum PluginType {
57
+ INLINE = 'INLINE',
58
+ PLUGIN_REF = 'REF_PLUGIN',
59
+ }
60
+
61
+ export enum ScriptType {
62
+ SHELL = 'SHELL',
63
+ DOCKERFILE = 'DOCKERFILE',
64
+ CONTAINERIMAGE = 'CONTAINER_IMAGE',
65
+ }
66
+
67
+ export enum MountPath {
68
+ TRUE = 'Yes',
69
+ FALSE = 'No',
70
+ }
71
+
72
+ export enum ConditionType {
73
+ SKIP = 'SKIP',
74
+ TRIGGER = 'TRIGGER',
75
+ PASS = 'PASS',
76
+ FAIL = 'FAIL',
77
+ }
78
+
79
+ export enum RefVariableStageType {
80
+ PRE_CI = 'PRE_CI',
81
+ POST_CI = 'POST_CI',
82
+ }
83
+
84
+ export interface VariableType {
85
+ id: number
86
+ name: string
87
+ value: string
88
+ format: string
89
+ description: string
90
+ defaultValue: string
91
+ variableType: RefVariableType
92
+ refVariableStepIndex: number
93
+ refVariableName: string
94
+ refVariableStage?: RefVariableStageType
95
+ variableStepIndexInPlugin?: number
96
+ }
97
+
98
+ interface CommandArgsMap {
99
+ command: string
100
+ args: string[]
101
+ }
102
+
103
+ export interface PortMapType {
104
+ portOnLocal: number
105
+ portOnContainer: number
106
+ }
107
+ interface ConditionDetails {
108
+ id: number
109
+ conditionOnVariable: string
110
+ conditionOperator: string
111
+ conditionType: ConditionType
112
+ conditionalValue: string
113
+ }
114
+
115
+ interface InlineStepDetailType {
116
+ scriptType: ScriptType
117
+ isMountCustomScript?: boolean
118
+ script?: string
119
+ dockerFileExists?: boolean
120
+ mountPath?: string
121
+ mountCodeToContainer?: boolean
122
+ mountDirectoryFromHost?: boolean
123
+ containerImagePath?: string
124
+ imagePullSecret?: string
125
+ commandArgsMap?: CommandArgsMap[]
126
+ portMap?: PortMapType[]
127
+ mountPathMap?: {
128
+ filePathOnDisk: string
129
+ filePathOnContainer: string
130
+ }[]
131
+ inputVariables?: VariableType[]
132
+ outputVariables?: VariableType[]
133
+ conditionDetails: ConditionDetails[]
134
+ }
135
+
136
+ interface PluginRefStepDetailType {
137
+ id: number
138
+ pluginId: number
139
+ inputVariables?: VariableType[]
140
+ outputVariables?: VariableType[]
141
+ conditionDetails?: ConditionDetails[]
142
+ }
143
+
144
+ export interface StepType {
145
+ id: number
146
+ index: number
147
+ name: string
148
+ description: string
149
+ stepType: PluginType
150
+ outputDirectoryPath: string[]
151
+ inlineStepDetail?: InlineStepDetailType
152
+ pluginRefStepDetail?: PluginRefStepDetailType
153
+ triggerIfParentStageFail: boolean
154
+ isMandatory?: boolean
155
+ }
156
+
157
+ export interface BuildStageType {
158
+ id: number
159
+ steps: StepType[]
160
+ }
161
+
162
+ export enum CIBuildType {
163
+ SELF_DOCKERFILE_BUILD_TYPE = 'self-dockerfile-build',
164
+ MANAGED_DOCKERFILE_BUILD_TYPE = 'managed-dockerfile-build',
165
+ BUILDPACK_BUILD_TYPE = 'buildpack-build',
166
+ }
167
+
168
+ export interface BuildPackConfigType {
169
+ builderId: string
170
+ language: string
171
+ languageVersion: string
172
+ projectPath: string
173
+ builderLangEnvParam?: string
174
+ currentBuilderLangEnvParam?: string
175
+ buildPacks?: any
176
+ args?: Record<string, string>
177
+ }
178
+
179
+ export interface DockerBuildConfigType {
180
+ dockerfileContent: string
181
+ dockerfileRelativePath: string
182
+ buildContext: string
183
+ dockerfilePath?: string
184
+ dockerfileRepository?: string
185
+ args?: Record<string, string>
186
+ targetPlatform?: any
187
+ language?: string
188
+ languageFramework?: string
189
+ }
190
+
191
+ export interface CIBuildConfigType {
192
+ buildPackConfig: BuildPackConfigType
193
+ ciBuildType: CIBuildType
194
+ dockerBuildConfig: DockerBuildConfigType
195
+ gitMaterialId: number
196
+ buildContextGitMaterialId: number
197
+ id?: number
198
+ useRootBuildContext: boolean
199
+ }
200
+
201
+ export interface DockerConfigOverrideType {
202
+ dockerRegistry: string
203
+ dockerRepository: string
204
+ ciBuildConfig: CIBuildConfigType
205
+ }
206
+
207
+ export interface FormType {
208
+ name: string
209
+ args: { key: string; value: string }[]
210
+ materials: MaterialType[]
211
+ gitHost: Githost
212
+ webhookEvents: WebhookEvent[]
213
+ ciPipelineSourceTypeOptions: CiPipelineSourceTypeOption[]
214
+ webhookConditionList: { selectorId: number; value: string }[]
215
+ triggerType: string
216
+ scanEnabled?: boolean
217
+ beforeDockerBuildScripts?: {
218
+ id: number
219
+ name: string
220
+ outputLocation: string
221
+ script: string
222
+ isCollapsed: boolean
223
+ index: number
224
+ }[]
225
+ afterDockerBuildScripts?: {
226
+ id: number
227
+ name: string
228
+ outputLocation: string
229
+ script: string
230
+ isCollapsed: boolean
231
+ index: number
232
+ }[]
233
+ ciPipelineEditable: true
234
+ preBuildStage?: BuildStageType
235
+ postBuildStage?: BuildStageType
236
+ isDockerConfigOverridden?: boolean
237
+ dockerConfigOverride?: DockerConfigOverrideType
238
+ isOffendingMandatoryPlugin?: boolean
239
+ }
240
+
241
+ export interface ErrorObj {
242
+ isValid: boolean
243
+ message: string | null
244
+ }
245
+ export interface TaskErrorObj {
246
+ isValid: boolean
247
+ name: ErrorObj
248
+ inlineStepDetail?: { inputVariables?: ErrorObj[]; outputVariables?: ErrorObj[] }
249
+ pluginRefStepDetail?: { inputVariables?: ErrorObj[]; outputVariables?: ErrorObj[] }
250
+ }
251
+ export interface FormErrorObjectType {
252
+ name: ErrorObj
253
+ materials?: MaterialType[]
254
+ preBuildStage?: {
255
+ isValid: boolean
256
+ steps: TaskErrorObj[]
257
+ }
258
+ buildStage?: {
259
+ isValid: boolean
260
+ name: ErrorObj
261
+ }
262
+ postBuildStage?: {
263
+ isValid: boolean
264
+ steps: TaskErrorObj[]
265
+ }
266
+ }
267
+
268
+ export interface PluginDetailType {
269
+ id: number
270
+ name: string
271
+ type: string
272
+ description: string
273
+ icon: string
274
+ tags: string[]
275
+ inputVariables?: VariableType[]
276
+ outputVariables?: VariableType[]
277
+ }
@@ -0,0 +1,78 @@
1
+ import React, { useEffect, useState } from 'react'
2
+ import { fetchChartTemplateVersions } from './Common.service'
3
+ import { ChartVersionAndTypeSelectorProps, DeploymentChartVersionType } from './Types'
4
+ import ReactSelect from 'react-select'
5
+ import { customStyles, getFilteredChartVersions, showError } from './Helper'
6
+
7
+ // @TODO: Generalize this component to be used in CodeEditor as Chart selector toolbar
8
+ // when the Code Editor is moved to the fe-common-lib
9
+ const ChartVersionAndTypeSelector = ({ setSelectedChartRefId }: ChartVersionAndTypeSelectorProps) => {
10
+ const [charts, setCharts] = useState<DeploymentChartVersionType[]>([])
11
+ const [selectedChartType, setSelectedChartType] = useState(null)
12
+ const [chartVersionOptions, setChartVersionOptions] = useState([])
13
+ const [chartTypeOptions, setChartTypeOptions] = useState([])
14
+ const [selectedChartVersion, setSelectedChartVersion] = useState(null)
15
+
16
+ useEffect(() => {
17
+ fetchChartTemplateVersions()
18
+ .then((res) => {
19
+ const charts = res?.result || []
20
+ setCharts(charts)
21
+ // Extract unique chart types from the data
22
+ const chartTypeOptions = [...new Set(charts.map((item) => item.chartType))].map((type) => ({
23
+ value: type,
24
+ label: type,
25
+ }))
26
+ setChartTypeOptions(chartTypeOptions)
27
+ const filteredVersions = getFilteredChartVersions(charts, chartTypeOptions[0])
28
+ selectFirstChartVersion(filteredVersions)
29
+ })
30
+ .catch((err) => {
31
+ showError(err)
32
+ })
33
+ }, [])
34
+
35
+ const selectFirstChartVersion = (filteredVersions) => {
36
+ setChartVersionOptions(filteredVersions)
37
+ setSelectedChartVersion(filteredVersions[0]) // Select the first chart version by default
38
+ setSelectedChartRefId(filteredVersions[0]?.chartRefId)
39
+ }
40
+
41
+ // Function to update chart version options based on selected chart type
42
+ const handleChartTypeChange = (selectedOption) => {
43
+ setSelectedChartType(selectedOption)
44
+ const filteredVersions = getFilteredChartVersions(charts, selectedOption)
45
+ selectFirstChartVersion(filteredVersions)
46
+ }
47
+
48
+ // Function to handle the change of the selected chart version
49
+ const handleChartVersionChange = (selectedOption) => {
50
+ setSelectedChartVersion(selectedOption)
51
+ setSelectedChartRefId(selectedOption.chartRefId)
52
+ }
53
+
54
+ return (
55
+ <div className="flex">
56
+ <div className="chart-type-options flex" data-testid="chart-type-options">
57
+ <span className="chart-type-options-label mr-4">Chart Type</span>
58
+ <ReactSelect
59
+ value={selectedChartType ?? chartTypeOptions[0]}
60
+ options={chartTypeOptions}
61
+ onChange={handleChartTypeChange}
62
+ styles={customStyles}
63
+ />
64
+ </div>
65
+ <div className="chart-version-options flex" data-testid="chart-version-options">
66
+ <span className="chart-version-options-label mr-4">Chart Version</span>
67
+ <ReactSelect
68
+ value={selectedChartVersion ?? chartVersionOptions[0]}
69
+ options={chartVersionOptions}
70
+ onChange={handleChartVersionChange}
71
+ styles={customStyles}
72
+ />
73
+ </div>
74
+ </div>
75
+ )
76
+ }
77
+
78
+ export default ChartVersionAndTypeSelector
@@ -0,0 +1,37 @@
1
+ import React, { Component } from 'react'
2
+ import { CheckboxProps } from './Types'
3
+
4
+ /*
5
+ Valid States of Checkbox:
6
+ 1. disabled: true, checked: false, value: XXX
7
+ 2. disabled: true, checked: true, value: INTERMIDIATE
8
+ 3. disabled: true, checked: true, value: CHECKED
9
+ 4. disabled: true, checked: false, value: XXX
10
+ 5. disabled: false, checked: true, value: INTERMIDIATE
11
+ 6. disabled: false, checked: true, value: CHECKED
12
+ */
13
+ // TODO: Associate label with input element
14
+ export class Checkbox extends Component<CheckboxProps> {
15
+ render() {
16
+ let rootClassName = `${this.props.rootClassName ? this.props.rootClassName : ''}`
17
+ return (
18
+ <>
19
+ <label className={`dc__position-rel flex left cursor ${rootClassName}`} onClick={this.props?.onClick}>
20
+ <input
21
+ type="checkbox"
22
+ className={'form__checkbox'}
23
+ disabled={this.props.disabled}
24
+ value={this.props.value}
25
+ onChange={this.props.onChange}
26
+ tabIndex={this.props.tabIndex}
27
+ checked={this.props.isChecked}
28
+ id={this.props.id}
29
+ data-testid={this.props.dataTestId}
30
+ />
31
+ <span className="form__checkbox-container" data-testid={`${this.props.dataTestId}-chk-span`}></span>
32
+ <span className={`form__checkbox-label`}>{this.props.children}</span>
33
+ </label>
34
+ </>
35
+ )
36
+ }
37
+ }
@@ -0,0 +1,61 @@
1
+ import React, { useState, useEffect, useCallback } from 'react'
2
+ import Tippy from '@tippyjs/react'
3
+ import { copyToClipboard } from '../Helper'
4
+ import ClipboardProps from './types'
5
+ import { ReactComponent as ICCopy } from '../../Assets/Icon/ic-copy.svg'
6
+
7
+ /**
8
+ * @param content - Content to be copied
9
+ * @param copiedTippyText - Text to be shown in the tippy when the content is copied
10
+ * @param duration - Duration for which the tippy should be shown
11
+ * @param trigger - To trigger the copy action, if set to true the content will be copied, use case being triggering the copy action from outside the component
12
+ * @param setTrigger - Callback function to set the trigger
13
+ */
14
+ export default function ClipboardButton({ content, copiedTippyText, duration, trigger, setTrigger }: ClipboardProps) {
15
+ const [copied, setCopied] = useState<boolean>(false)
16
+ const [enableTippy, setEnableTippy] = useState<boolean>(false)
17
+
18
+ const handleTextCopied = () => setCopied(true)
19
+ const handleEnableTippy = () => setEnableTippy(true)
20
+ const handleDisableTippy = () => setEnableTippy(false)
21
+ const handleCopyContent = useCallback(() => copyToClipboard(content, handleTextCopied), [content])
22
+
23
+ useEffect(() => {
24
+ if (!copied) return
25
+
26
+ const timeout = setTimeout(() => {
27
+ setCopied(false)
28
+ setTrigger(false)
29
+ }, duration)
30
+
31
+ return () => clearTimeout(timeout)
32
+ }, [copied, duration, setTrigger])
33
+
34
+ useEffect(() => {
35
+ if (trigger) {
36
+ setCopied(true)
37
+ handleCopyContent()
38
+ }
39
+ }, [trigger, handleCopyContent])
40
+
41
+ return (
42
+ <div className="icon-dim-16 flex center">
43
+ <Tippy
44
+ className="default-tt"
45
+ content={copied ? copiedTippyText : 'Copy'}
46
+ placement="right"
47
+ visible={copied || enableTippy}
48
+ >
49
+ <button
50
+ type="button"
51
+ className="dc__hover-n100 dc__outline-none-imp p-0 flex bcn-0 dc__no-border"
52
+ onMouseEnter={handleEnableTippy}
53
+ onMouseLeave={handleDisableTippy}
54
+ onClick={handleCopyContent}
55
+ >
56
+ <ICCopy className="icon-dim-16" />
57
+ </button>
58
+ </Tippy>
59
+ </div>
60
+ )
61
+ }
@@ -0,0 +1,43 @@
1
+ import React from 'react'
2
+ import { render, screen, fireEvent } from '@testing-library/react'
3
+ import ClipboardButton from '../ClipboardButton'
4
+
5
+ jest.mock('../../helpers/Helpers', () => ({
6
+ copyToClipboard: jest.fn().mockImplementation((content, callback) => {
7
+ callback()
8
+ }),
9
+ }))
10
+
11
+ describe('When ClipboardButton mounts', () => {
12
+ beforeEach(() => {
13
+ jest.clearAllMocks()
14
+ })
15
+
16
+ it('should show the copy icon', () => {
17
+ render(
18
+ <ClipboardButton content="test" copiedTippyText="test" duration={1000} trigger={false} setTrigger={null} />,
19
+ )
20
+ expect(screen.getByRole('button')).toBeTruthy()
21
+ })
22
+
23
+ it('should show tippy on hover', () => {
24
+ render(
25
+ <ClipboardButton content="test" copiedTippyText="test" duration={1000} trigger={false} setTrigger={null} />,
26
+ )
27
+ fireEvent.mouseEnter(screen.getByRole('button'))
28
+ expect(screen.getByText('Copy')).toBeTruthy()
29
+ })
30
+
31
+ it('should show copiedTippyText when trigger is true', () => {
32
+ render(<ClipboardButton content="test" copiedTippyText="test" duration={1000} trigger setTrigger={null} />)
33
+ expect(screen.getByText('test')).toBeTruthy()
34
+ })
35
+
36
+ it('should call copyToClipboard when clicked', () => {
37
+ render(
38
+ <ClipboardButton content="test" copiedTippyText="test" duration={1000} trigger={false} setTrigger={null} />,
39
+ )
40
+ fireEvent.click(screen.getByRole('button'))
41
+ expect(screen.getByText('test')).toBeTruthy()
42
+ })
43
+ })
@@ -0,0 +1,7 @@
1
+ export default interface ClipboardProps {
2
+ content: string
3
+ copiedTippyText: string
4
+ duration: number
5
+ trigger: boolean
6
+ setTrigger: React.Dispatch<React.SetStateAction<boolean>>
7
+ }