@devtron-labs/devtron-fe-common-lib 0.0.62-beta-6 → 0.0.62-beta-8

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 (410) hide show
  1. package/.eslintignore +94 -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 +89 -95
  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 +23 -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 +6 -6
  76. package/dist/Common/Hooks/useUrlFilters/useUrlFilters.d.ts +32 -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 +5 -16
  120. package/dist/Common/RadioGroup.d.ts +10 -8
  121. package/dist/Common/RadioGroupItem.d.ts +4 -0
  122. package/dist/Common/Reload.d.ts +3 -3
  123. package/dist/Common/ResizableTextarea.d.ts +3 -3
  124. package/dist/Common/SearchBar/SearchBar.component.d.ts +39 -37
  125. package/dist/Common/SearchBar/index.d.ts +2 -2
  126. package/dist/Common/SearchBar/types.d.ts +35 -35
  127. package/dist/Common/Security/ScanVulnerabilitiesTable.d.ts +4 -3
  128. package/dist/Common/ServerError.d.ts +15 -15
  129. package/dist/Common/SortableTableHeaderCell/SortableTableHeaderCell.d.ts +18 -17
  130. package/dist/Common/SortableTableHeaderCell/index.d.ts +2 -2
  131. package/dist/Common/SortableTableHeaderCell/types.d.ts +25 -25
  132. package/dist/Common/TippyCustomized.d.ts +4 -2
  133. package/dist/Common/ToastBody.d.ts +23 -23
  134. package/dist/Common/Toggle/Toggle.d.ts +14 -12
  135. package/dist/Common/Types.d.ts +728 -703
  136. package/dist/Common/index.d.ts +52 -51
  137. package/dist/Pages/GlobalConfigurations/Authorization/constants.d.ts +15 -15
  138. package/dist/Pages/GlobalConfigurations/Authorization/index.d.ts +1 -1
  139. package/dist/Pages/GlobalConfigurations/index.d.ts +1 -1
  140. package/dist/Pages/index.d.ts +1 -1
  141. package/dist/index.d.ts +2 -8
  142. package/dist/index.js +29119 -170
  143. package/package.json +23 -34
  144. package/rollup.config.js +31 -0
  145. package/src/Assets/Icon/ic-add.svg +3 -0
  146. package/src/Assets/Icon/ic-appstatus-cancelled.svg +6 -0
  147. package/src/Assets/Icon/ic-arrow-counter-clockwise.svg +5 -0
  148. package/src/Assets/Icon/ic-arrow-up-down.svg +3 -0
  149. package/src/Assets/Icon/ic-check.svg +5 -0
  150. package/src/Assets/Icon/ic-chevron-down.svg +5 -0
  151. package/src/Assets/Icon/ic-copy.svg +3 -0
  152. package/src/Assets/Icon/ic-cross.svg +3 -0
  153. package/src/Assets/Icon/ic-drag.svg +8 -0
  154. package/src/Assets/Icon/ic-enter.svg +3 -0
  155. package/src/Assets/Icon/ic-error-cross.svg +8 -0
  156. package/src/Assets/Icon/ic-error-exclamation.svg +6 -0
  157. package/src/Assets/Icon/ic-error-medium.svg +6 -0
  158. package/src/Assets/Icon/ic-help-outline.svg +3 -0
  159. package/src/Assets/Icon/ic-help.svg +3 -0
  160. package/src/Assets/Icon/ic-info-filled.svg +7 -0
  161. package/src/Assets/Icon/ic-info-outlined.svg +13 -0
  162. package/src/Assets/Icon/ic-minus.svg +3 -0
  163. package/src/Assets/Icon/ic-pencil.svg +3 -0
  164. package/src/Assets/Icon/ic-progressing.svg +6 -0
  165. package/src/Assets/Icon/ic-rotate-devtron.svg +103 -0
  166. package/src/Assets/Icon/ic-search.svg +6 -0
  167. package/src/Assets/Icon/ic-sort-arrow-down.svg +3 -0
  168. package/src/Assets/Icon/ic-warning.svg +7 -0
  169. package/src/Assets/Icon/inject-tag.svg +5 -0
  170. package/src/Assets/Img/app-not-deployed.png +0 -0
  171. package/src/Assets/Img/delete-medium.svg +15 -0
  172. package/src/Assets/Img/ic-empty-error@2x.png +0 -0
  173. package/src/Assets/Img/ic-loading-failure.png +0 -0
  174. package/src/Assets/Img/ic-not-authorized.svg +62 -0
  175. package/src/Common/AddCDButton/AddCDButton.tsx +68 -0
  176. package/src/Common/AddCDButton/index.ts +2 -0
  177. package/src/Common/AddCDButton/types.ts +38 -0
  178. package/src/Common/AddCDButton/utils.tsx +35 -0
  179. package/src/Common/Api.ts +251 -0
  180. package/src/Common/AppStatus/AppStatus.tsx +64 -0
  181. package/src/Common/AppStatus/constants.ts +53 -0
  182. package/src/Common/AppStatus/index.ts +1 -0
  183. package/src/Common/AppStatus/types.ts +12 -0
  184. package/src/Common/AppStatus/utils.ts +14 -0
  185. package/src/Common/BreadCrumb/BreadCrumb.tsx +105 -0
  186. package/src/Common/BreadCrumb/BreadcrumbStore.tsx +25 -0
  187. package/src/Common/BreadCrumb/Types.ts +30 -0
  188. package/src/Common/CIPipeline.Types.ts +277 -0
  189. package/src/Common/ChartVersionAndTypeSelector.tsx +78 -0
  190. package/src/Common/Checkbox.tsx +36 -0
  191. package/src/Common/ClipboardButton/ClipboardButton.tsx +61 -0
  192. package/src/Common/ClipboardButton/__tests__/ClipboardButton.test.tsx +43 -0
  193. package/src/Common/ClipboardButton/types.ts +7 -0
  194. package/src/Common/Common.service.ts +315 -0
  195. package/src/Common/Constants.ts +270 -0
  196. package/src/Common/CustomInput/CustomInput.tsx +134 -0
  197. package/src/Common/CustomInput/Types.ts +32 -0
  198. package/src/Common/CustomInput/index.ts +2 -0
  199. package/src/Common/CustomTagSelector/PropagateTagInfo.tsx +46 -0
  200. package/src/Common/CustomTagSelector/ResizableTagTextArea.tsx +84 -0
  201. package/src/Common/CustomTagSelector/TagDetails.tsx +76 -0
  202. package/src/Common/CustomTagSelector/TagLabelSelect.tsx +61 -0
  203. package/src/Common/CustomTagSelector/TagLabelValueSelector.tsx +198 -0
  204. package/src/Common/CustomTagSelector/TagSelector.utils.ts +71 -0
  205. package/src/Common/CustomTagSelector/Types.ts +72 -0
  206. package/src/Common/CustomTagSelector/ValidationRules.ts +58 -0
  207. package/src/Common/CustomTagSelector/index.ts +6 -0
  208. package/src/Common/DebouncedSearch/DebouncedSearch.tsx +78 -0
  209. package/src/Common/DebouncedSearch/Types.ts +13 -0
  210. package/src/Common/DebouncedSearch/Utils.ts +19 -0
  211. package/src/Common/DebouncedSearch/__tests__/DebouncedSearch.test.tsx +61 -0
  212. package/src/Common/DeleteComponentModal/DeleteComponent.tsx +95 -0
  213. package/src/Common/DeleteComponentModal/types.ts +15 -0
  214. package/src/Common/DevtronProgressing/DevtronProgressing.tsx +11 -0
  215. package/src/Common/DevtronProgressing/index.ts +1 -0
  216. package/src/Common/DevtronProgressing/types.ts +4 -0
  217. package/src/Common/Dialogs/ConfirmationDialog.tsx +34 -0
  218. package/src/Common/Dialogs/DeleteDialog.tsx +69 -0
  219. package/src/Common/Dialogs/DialogForm.tsx +86 -0
  220. package/src/Common/Dialogs/ForceDeleteDialog.tsx +19 -0
  221. package/src/Common/Dialogs/Types.ts +47 -0
  222. package/src/Common/Dialogs/index.ts +4 -0
  223. package/src/Common/DraggableWrapper/DraggableButton.tsx +14 -0
  224. package/src/Common/DraggableWrapper/DraggableWrapper.tsx +116 -0
  225. package/src/Common/DraggableWrapper/index.ts +3 -0
  226. package/src/Common/DraggableWrapper/types.ts +27 -0
  227. package/src/Common/Drawer/Drawer.scss +40 -0
  228. package/src/Common/Drawer/Drawer.tsx +49 -0
  229. package/src/Common/EmptyState/EmptyState.tsx +42 -0
  230. package/src/Common/EmptyState/GenericEmptyState.tsx +81 -0
  231. package/src/Common/EmptyState/emptyState.scss +74 -0
  232. package/src/Common/Error.tsx +61 -0
  233. package/src/Common/ErrorScreenNotFound.tsx +31 -0
  234. package/src/Common/Grid/Grid.tsx +44 -0
  235. package/src/Common/Grid/types.ts +11 -0
  236. package/src/Common/Helper.tsx +590 -0
  237. package/src/Common/Hooks/UseClickOutside/UseClickOutside.tsx +15 -0
  238. package/src/Common/Hooks/UseSuperAdmin/UseSuperAdmin.tsx +24 -0
  239. package/src/Common/Hooks/UseSuperAdmin/types.ts +3 -0
  240. package/src/Common/Hooks/UseWindowSize/UseWindowSize.tsx +31 -0
  241. package/src/Common/Hooks/index.ts +4 -0
  242. package/src/Common/Hooks/useUrlFilters/constants.ts +9 -0
  243. package/src/Common/Hooks/useUrlFilters/index.ts +2 -0
  244. package/src/Common/Hooks/useUrlFilters/types.ts +6 -0
  245. package/src/Common/Hooks/useUrlFilters/useUrlFilters.ts +121 -0
  246. package/src/Common/ImageTags.Types.ts +44 -0
  247. package/src/Common/ImageTags.tsx +586 -0
  248. package/src/Common/InfoColorBar/InfoColourbar.tsx +80 -0
  249. package/src/Common/InfoColorBar/infoColourBar.scss +28 -0
  250. package/src/Common/Modals/Modal.tsx +68 -0
  251. package/src/Common/Modals/OpaqueModal.tsx +36 -0
  252. package/src/Common/Modals/VisibleModal.tsx +55 -0
  253. package/src/Common/Modals/VisibleModal2.tsx +35 -0
  254. package/src/Common/MultiSelectCustomization.tsx +148 -0
  255. package/src/Common/Pagination/PageSizeSelector.tsx +78 -0
  256. package/src/Common/Pagination/Pagination.tsx +127 -0
  257. package/src/Common/Pagination/constants.ts +6 -0
  258. package/src/Common/Pagination/index.tsx +3 -0
  259. package/src/Common/Pagination/pagination.scss +123 -0
  260. package/src/Common/Pagination/types.ts +55 -0
  261. package/src/Common/Pagination/utils.tsx +24 -0
  262. package/src/Common/Policy.Types.ts +63 -0
  263. package/src/Common/PopupMenu.tsx +199 -0
  264. package/src/Common/Progressing.tsx +53 -0
  265. package/src/Common/RJSF/Form.tsx +29 -0
  266. package/src/Common/RJSF/common/FieldRow.tsx +35 -0
  267. package/src/Common/RJSF/common/types.ts +9 -0
  268. package/src/Common/RJSF/config.ts +37 -0
  269. package/src/Common/RJSF/constants.ts +10 -0
  270. package/src/Common/RJSF/index.ts +3 -0
  271. package/src/Common/RJSF/rjsfForm.scss +18 -0
  272. package/src/Common/RJSF/templates/ArrayFieldItemTemplate.tsx +31 -0
  273. package/src/Common/RJSF/templates/ArrayFieldTemplate.tsx +78 -0
  274. package/src/Common/RJSF/templates/BaseInput.tsx +16 -0
  275. package/src/Common/RJSF/templates/ButtonTemplates/AddButton.tsx +18 -0
  276. package/src/Common/RJSF/templates/ButtonTemplates/RemoveButton.tsx +10 -0
  277. package/src/Common/RJSF/templates/ButtonTemplates/SubmitButton.tsx +18 -0
  278. package/src/Common/RJSF/templates/ButtonTemplates/index.ts +3 -0
  279. package/src/Common/RJSF/templates/Description.tsx +12 -0
  280. package/src/Common/RJSF/templates/Field.tsx +30 -0
  281. package/src/Common/RJSF/templates/FieldErrorTemplate.tsx +25 -0
  282. package/src/Common/RJSF/templates/ObjectFieldTemplate.tsx +105 -0
  283. package/src/Common/RJSF/templates/TitleField.tsx +9 -0
  284. package/src/Common/RJSF/templates/WrapIfAdditionalTemplate.tsx +51 -0
  285. package/src/Common/RJSF/templates/index.ts +10 -0
  286. package/src/Common/RJSF/types.ts +4 -0
  287. package/src/Common/RJSF/utils.ts +123 -0
  288. package/src/Common/RJSF/widgets/Checkbox.tsx +44 -0
  289. package/src/Common/RJSF/widgets/Select.tsx +77 -0
  290. package/src/Common/RJSF/widgets/index.ts +2 -0
  291. package/src/Common/RadioGroup/RadioGroup.tsx +87 -0
  292. package/src/Common/RadioGroup/radioGroup.scss +46 -0
  293. package/src/Common/RadioGroup.tsx +21 -0
  294. package/src/Common/RadioGroupItem.tsx +28 -0
  295. package/src/Common/Reload.tsx +23 -0
  296. package/src/Common/ResizableTextarea.tsx +73 -0
  297. package/src/Common/SearchBar/SearchBar.component.tsx +131 -0
  298. package/src/Common/SearchBar/index.ts +2 -0
  299. package/src/Common/SearchBar/searchBar.scss +31 -0
  300. package/src/Common/SearchBar/types.ts +34 -0
  301. package/src/Common/Security/ScanVulnerabilitiesTable.tsx +55 -0
  302. package/src/Common/Security/scanVulnerabilities.css +69 -0
  303. package/src/Common/ServerError.ts +31 -0
  304. package/src/Common/SortableTableHeaderCell/SortableTableHeaderCell.tsx +44 -0
  305. package/src/Common/SortableTableHeaderCell/index.ts +2 -0
  306. package/src/Common/SortableTableHeaderCell/types.ts +26 -0
  307. package/src/Common/TippyCustomized.tsx +172 -0
  308. package/src/Common/ToastBody.tsx +62 -0
  309. package/src/Common/Toggle/Toggle.scss +78 -0
  310. package/src/Common/Toggle/Toggle.tsx +50 -0
  311. package/src/Common/Types.ts +804 -0
  312. package/src/Common/index.ts +52 -0
  313. package/src/Pages/GlobalConfigurations/Authorization/constants.ts +16 -0
  314. package/src/Pages/GlobalConfigurations/Authorization/index.ts +1 -0
  315. package/src/Pages/GlobalConfigurations/index.ts +1 -0
  316. package/src/Pages/index.ts +1 -0
  317. package/src/custom.d.ts +13 -0
  318. package/src/index.ts +2 -0
  319. package/tsconfig.json +40 -0
  320. package/dist/Common/CodeEditor/CodeEditor.d.ts +0 -47
  321. package/dist/Common/Select/Select.d.ts +0 -4
  322. package/dist/Common/Select/types.d.ts +0 -29
  323. package/dist/abap-9f67f57a.js +0 -1314
  324. package/dist/apex-ff62e532.js +0 -315
  325. package/dist/assets/editor.worker-d26000ef.js +0 -9
  326. package/dist/assets/index.css +0 -1
  327. package/dist/assets/json.worker-f23a4654.js +0 -40
  328. package/dist/assets/yaml.worker-35ea3f9a.js +0 -467
  329. package/dist/azcli-31e64a7f.js +0 -74
  330. package/dist/bat-0ffe897e.js +0 -95
  331. package/dist/bicep-3414a2b1.js +0 -108
  332. package/dist/cameligo-df1f3f25.js +0 -168
  333. package/dist/clojure-65b0f010.js +0 -754
  334. package/dist/coffee-437f0fba.js +0 -228
  335. package/dist/cpp-66843dd5.js +0 -390
  336. package/dist/csharp-621d9a49.js +0 -320
  337. package/dist/csp-de0d5244.js +0 -57
  338. package/dist/css-7cd5ed4c.js +0 -186
  339. package/dist/cssMode-e979455c.js +0 -1446
  340. package/dist/cypher-70ad96fe.js +0 -262
  341. package/dist/dart-33ae3739.js +0 -270
  342. package/dist/dockerfile-f2274a50.js +0 -132
  343. package/dist/ecl-3b8294a3.js +0 -454
  344. package/dist/elixir-b9dcc73a.js +0 -489
  345. package/dist/flow9-bdde8316.js +0 -141
  346. package/dist/freemarker2-37d4516e.js +0 -643
  347. package/dist/fsharp-eac2e449.js +0 -210
  348. package/dist/go-d12ed8d4.js +0 -208
  349. package/dist/graphql-c7356b69.js +0 -141
  350. package/dist/handlebars-c9144fac.js +0 -391
  351. package/dist/hcl-e883a0d4.js +0 -177
  352. package/dist/html-c998a93e.js +0 -281
  353. package/dist/htmlMode-1556ac31.js +0 -1456
  354. package/dist/index-13520b68.js +0 -126191
  355. package/dist/ini-425ab711.js +0 -68
  356. package/dist/java-2bc0fd68.js +0 -221
  357. package/dist/javascript-0a67afed.js +0 -75
  358. package/dist/jsonMode-b7e37155.js +0 -1867
  359. package/dist/julia-1c932615.js +0 -496
  360. package/dist/kotlin-1ab839c8.js +0 -245
  361. package/dist/less-6fe856f5.js +0 -168
  362. package/dist/lexon-4955ac52.js +0 -151
  363. package/dist/liquid-a8549491.js +0 -238
  364. package/dist/lua-3cca0047.js +0 -157
  365. package/dist/m3-132e9cb6.js +0 -210
  366. package/dist/markdown-ea59a0c1.js +0 -202
  367. package/dist/mips-19811f4b.js +0 -194
  368. package/dist/msdax-69954a10.js +0 -377
  369. package/dist/mysql-82088e5d.js +0 -876
  370. package/dist/objective-c-1976eccc.js +0 -188
  371. package/dist/pascal-8ef177cb.js +0 -245
  372. package/dist/pascaligo-bc517b9e.js +0 -158
  373. package/dist/perl-8b93582c.js +0 -599
  374. package/dist/pgsql-00c11a6d.js +0 -847
  375. package/dist/php-4c8c276f.js +0 -471
  376. package/dist/pla-e9b4ffb1.js +0 -131
  377. package/dist/postiats-2071af8c.js +0 -544
  378. package/dist/powerquery-8e388ceb.js +0 -890
  379. package/dist/powershell-e35db398.js +0 -233
  380. package/dist/protobuf-a24b9176.js +0 -422
  381. package/dist/pug-2c94d9b8.js +0 -393
  382. package/dist/python-115292d4.js +0 -259
  383. package/dist/qsharp-d730d7fe.js +0 -282
  384. package/dist/r-be193556.js +0 -245
  385. package/dist/razor-3f9e914c.js +0 -512
  386. package/dist/redis-9690c6ac.js +0 -298
  387. package/dist/redshift-6bdcdeaa.js +0 -806
  388. package/dist/restructuredtext-a08c1d20.js +0 -162
  389. package/dist/ruby-2247692b.js +0 -444
  390. package/dist/rust-1dffb4d5.js +0 -337
  391. package/dist/sb-136598e9.js +0 -110
  392. package/dist/scala-b1100fed.js +0 -353
  393. package/dist/scheme-038c8094.js +0 -114
  394. package/dist/scss-700d1b52.js +0 -244
  395. package/dist/shell-86c16e0f.js +0 -224
  396. package/dist/solidity-c05fdf3c.js +0 -1351
  397. package/dist/sophia-cd645d71.js +0 -190
  398. package/dist/sparql-01d9ec9c.js +0 -193
  399. package/dist/sql-4c33df41.js +0 -818
  400. package/dist/st-52cf1408.js +0 -414
  401. package/dist/swift-13c792ba.js +0 -315
  402. package/dist/systemverilog-0bd8b730.js +0 -556
  403. package/dist/tcl-463d7c75.js +0 -232
  404. package/dist/tsMode-54392af6.js +0 -811
  405. package/dist/twig-0d98f5ec.js +0 -323
  406. package/dist/typescript-c4502abb.js +0 -328
  407. package/dist/vb-3a2b0a51.js +0 -364
  408. package/dist/wgsl-b2ddb3e4.js +0 -420
  409. package/dist/xml-6de02e6d.js +0 -95
  410. package/dist/yaml-922ca025.js +0 -184
@@ -0,0 +1,46 @@
1
+ .radio-group {
2
+ .label,
3
+ .radio,
4
+ .checkbox {
5
+ margin: 0;
6
+ }
7
+ height: 30px;
8
+ background: white;
9
+ display: flex;
10
+ justify-content: center;
11
+ align-items: center;
12
+ padding: 4px;
13
+ border-radius: 4px;
14
+ .radio {
15
+ height: 100%;
16
+ width: auto;
17
+ color: var(--N400);
18
+ display: flex;
19
+ align-items: center;
20
+ }
21
+ .radio+.radio {
22
+ margin-top: 0;
23
+ }
24
+ input[type=checkbox] {
25
+ display: contents;
26
+ overflow: hidden;
27
+ max-width: 0px;
28
+ height: 0;
29
+ opacity: 0;
30
+ margin: unset;
31
+ }
32
+ input+.radio__item-label {
33
+ padding: 4px 6px;
34
+ height: 100%;
35
+ width: 100%;
36
+ display: flex;
37
+ align-items: center;
38
+ transition: all 0.5s;
39
+ cursor: pointer;
40
+ }
41
+ input[type=checkbox]:checked+.radio__item-label {
42
+ background: #2c3354;
43
+ color: white;
44
+ border-radius: 4px;
45
+ }
46
+ }
@@ -0,0 +1,21 @@
1
+ import { createContext, useMemo } from 'react'
2
+ import { RadioGroupProps } from './Types'
3
+
4
+ export const RadioGroupContext = createContext({
5
+ name: '',
6
+ value: '',
7
+ disabled: false,
8
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
9
+ onChange: (event: React.ChangeEvent<HTMLInputElement>) => {},
10
+ })
11
+
12
+ const RadioGroup = ({ name, value, disabled, onChange, className, children }: RadioGroupProps) => {
13
+ const contextValue = useMemo(() => ({ name, value, disabled, onChange }), [name, value, disabled, onChange])
14
+ return (
15
+ <div className={`form__radio-group ${className || ''}`}>
16
+ <RadioGroupContext.Provider value={contextValue}>{children}</RadioGroupContext.Provider>
17
+ </div>
18
+ )
19
+ }
20
+
21
+ export default RadioGroup
@@ -0,0 +1,28 @@
1
+ import { RadioGroupItemProps } from './Types'
2
+ import { RadioGroupContext } from './RadioGroup'
3
+
4
+ const RadioGroupItem = ({ value, disabled, children, dataTestId }: RadioGroupItemProps) => (
5
+ <RadioGroupContext.Consumer>
6
+ {(context) => (
7
+ // eslint-disable-next-line jsx-a11y/label-has-associated-control
8
+ <label className={disabled || context.disabled ? 'form__radio-item disabled' : 'form__radio-item'}>
9
+ <input
10
+ type="radio"
11
+ className="form__checkbox"
12
+ name={context.name}
13
+ disabled={context.disabled || disabled}
14
+ onChange={context.onChange}
15
+ value={value}
16
+ checked={context.value === value}
17
+ data-testid={dataTestId}
18
+ />
19
+ <span className="form__radio-item-content" data-testid={`${dataTestId}-span`}>
20
+ <span className="radio__button" />
21
+ <span className="radio__title">{children}</span>
22
+ </span>
23
+ </label>
24
+ )}
25
+ </RadioGroupContext.Consumer>
26
+ )
27
+
28
+ export default RadioGroupItem
@@ -0,0 +1,23 @@
1
+ import React from 'react'
2
+ import loadingFailure from '../Assets/Img/ic-loading-failure.png'
3
+ import { ReloadType } from './Types'
4
+
5
+ export default function Reload({ reload, className = '' }: ReloadType) {
6
+ function refresh(e) {
7
+ window.location.reload()
8
+ }
9
+ return (
10
+ <article className={`flex w-100 h-100 ${className}`}>
11
+ <div className="flex column w-250 dc__align-center" data-testid="reload">
12
+ <img src={loadingFailure} style={{ height: 'auto' }} className="w-100 mb-12" alt="load-error" />
13
+ <h3 className="title dc__bold">Failed to load</h3>
14
+ <div className="dc__empty__subtitle mb-20">
15
+ We could not load this page. Please give us another try.
16
+ </div>
17
+ <button type="button" className="cta ghosted" onClick={typeof reload === 'function' ? reload : refresh}>
18
+ Retry
19
+ </button>
20
+ </div>
21
+ </article>
22
+ )
23
+ }
@@ -0,0 +1,73 @@
1
+ import React, { useState, useEffect, useRef } from 'react'
2
+ import { useThrottledEffect } from './Helper'
3
+ import { ResizableTextareaProps } from './Types'
4
+
5
+ export const ResizableTextarea: React.FC<ResizableTextareaProps> = ({
6
+ minHeight,
7
+ maxHeight,
8
+ value,
9
+ onChange = null,
10
+ onBlur = null,
11
+ onFocus = null,
12
+ className = '',
13
+ placeholder = 'Enter your text here..',
14
+ lineHeight = 14,
15
+ padding = 12,
16
+ disabled = false,
17
+ dataTestId,
18
+ ...props
19
+ }) => {
20
+ const [text, setText] = useState('')
21
+ const _textRef = useRef(null)
22
+
23
+ useEffect(() => {
24
+ setText(value)
25
+ }, [value])
26
+
27
+ function handleChange(e) {
28
+ e.persist()
29
+ setText(e.target.value)
30
+ if (typeof onChange === 'function') onChange(e)
31
+ }
32
+
33
+ function handleBlur(e) {
34
+ if (typeof onBlur === 'function') onBlur(e)
35
+ }
36
+
37
+ function handleFocus(e) {
38
+ if (typeof onFocus === 'function') onFocus(e)
39
+ }
40
+
41
+ useThrottledEffect(
42
+ () => {
43
+ _textRef.current.style.height = 'auto'
44
+ let nextHeight = _textRef.current.scrollHeight
45
+ if (minHeight && nextHeight < minHeight) {
46
+ nextHeight = minHeight
47
+ }
48
+ if (maxHeight && nextHeight > maxHeight) {
49
+ nextHeight = maxHeight
50
+ }
51
+ _textRef.current.style.height = nextHeight + 2 + 'px'
52
+ },
53
+ 500,
54
+ [text],
55
+ )
56
+
57
+ return (
58
+ <textarea
59
+ data-testid={dataTestId}
60
+ ref={(el) => (_textRef.current = el)}
61
+ value={text}
62
+ placeholder={placeholder}
63
+ className={`dc__resizable-textarea ${className}`}
64
+ onChange={handleChange}
65
+ onBlur={handleBlur}
66
+ onFocus={handleFocus}
67
+ style={{ lineHeight: `${lineHeight}px`, padding: `${padding}px` }}
68
+ spellCheck={false}
69
+ disabled={disabled}
70
+ {...props}
71
+ />
72
+ )
73
+ }
@@ -0,0 +1,131 @@
1
+ import { ChangeEvent, useCallback, useRef, useState, KeyboardEvent, useEffect } from 'react'
2
+ import { ReactComponent as Search } from '../../Assets/Icon/ic-search.svg'
3
+ import { ReactComponent as Clear } from '../../Assets/Icon/ic-error-cross.svg'
4
+ import { SearchBarProps } from './types'
5
+ import './searchBar.scss'
6
+ import { debounce } from '../Helper'
7
+
8
+ /**
9
+ * Generic search input component with support for enter based and debounced search
10
+ * Note: The component is uncontrolled
11
+ *
12
+ * @example Usage with default debounced search
13
+ * ```tsx
14
+ * <SearchBar handleSearchChange={triggerSearchApi} shouldDebounce />
15
+ * ```
16
+ *
17
+ * @example Initial search text
18
+ * ```tsx
19
+ * <SearchBar initialSearchText="Keyword" />
20
+ * ```
21
+ *
22
+ * @example Custom width
23
+ * ```tsx
24
+ * <SearchBar containerClassName="w-300" />
25
+ * ```
26
+ *
27
+ * @example Trigger search on enter key press
28
+ * ```tsx
29
+ * <SearchBar handleEnter={triggerSearchApi} />
30
+ * ```
31
+ *
32
+ * @example Custom timeout for debounced search
33
+ * ```tsx
34
+ * <SearchBar handleSearchChange={triggerSearchApi} shouldDebounce debounceTimeout={500} />
35
+ * ```
36
+ *
37
+ * @example Placeholder for the search
38
+ * ```tsx
39
+ * <SearchBar inputProps={{ placeholder: 'Enter search text' }} />
40
+ * ```
41
+ */
42
+ const SearchBar = ({
43
+ initialSearchText = '',
44
+ handleSearchChange = () => {},
45
+ handleEnter = () => {},
46
+ inputProps = {},
47
+ containerClassName,
48
+ shouldDebounce = false,
49
+ debounceTimeout = 300,
50
+ }: SearchBarProps) => {
51
+ const [showClearButton, setShowClearButton] = useState(!!initialSearchText)
52
+ const inputRef = useRef<HTMLInputElement>()
53
+ const debouncedSearchChange = useCallback(debounce(handleSearchChange, debounceTimeout), [
54
+ handleSearchChange,
55
+ debounceTimeout,
56
+ ])
57
+
58
+ // assuming initialSearchText will change if we are changing history otherwise will be constant and will not change
59
+ // since on changing history we expect to make api call using useAsync so not applying handleEnter
60
+ useEffect(() => {
61
+ inputRef.current.value = initialSearchText
62
+ setShowClearButton(!!initialSearchText)
63
+ }, [initialSearchText])
64
+
65
+ const _applySearch = (value: string) => {
66
+ handleSearchChange(value)
67
+ handleEnter(value)
68
+ }
69
+
70
+ const clearSearch = () => {
71
+ inputRef.current.value = ''
72
+ _applySearch('')
73
+ setShowClearButton(false)
74
+ }
75
+
76
+ const handleChange = (e: ChangeEvent<HTMLInputElement>) => {
77
+ const { value } = e.target
78
+ setShowClearButton(!!value)
79
+
80
+ if (shouldDebounce) {
81
+ debouncedSearchChange(value)
82
+ } else {
83
+ handleSearchChange(value)
84
+ }
85
+ }
86
+
87
+ const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {
88
+ const { key } = e
89
+
90
+ if (key === 'Enter') {
91
+ e.preventDefault()
92
+ const inputTarget = e.target as HTMLInputElement
93
+ const value = inputTarget.value.trim()
94
+ _applySearch(value)
95
+ }
96
+ }
97
+
98
+ return (
99
+ <div className={containerClassName}>
100
+ <div className="search-bar bc-n50 focus-within-border-b5 dc__hover-border-n300 dc__block w-100 min-w-200 dc__position-rel en-2 bw-1 br-4 h-32">
101
+ <Search className="search-bar__icon dc__position-abs icon-color-n6 icon-dim-16" />
102
+ <input
103
+ placeholder="Search"
104
+ data-testid="search-bar"
105
+ type="text"
106
+ {...inputProps}
107
+ defaultValue={initialSearchText}
108
+ className={`search-bar__input bc-n50 dc__position-abs w-100 h-100 br-4 dc__no-border pt-6 pr-10 pb-6 pl-30 fs-13 lh-20 fw-4 cn-9 placeholder-cn5 ${
109
+ showClearButton ? 'pr-30' : 'pr-10'
110
+ }`}
111
+ onChange={handleChange}
112
+ onKeyDown={handleKeyDown}
113
+ ref={inputRef}
114
+ />
115
+ {/* TODO: Sync with product since it should have ic-enter in case of not applied */}
116
+ {showClearButton && (
117
+ <button
118
+ className="flex search-bar__clear-button dc__position-abs dc__transparent mt-0 mb-0 mr-5 ml-5"
119
+ type="button"
120
+ onClick={clearSearch}
121
+ aria-label="Clear search"
122
+ >
123
+ <Clear className="icon-dim-16 icon-n4 dc__vertical-align-middle" />
124
+ </button>
125
+ )}
126
+ </div>
127
+ </div>
128
+ )
129
+ }
130
+
131
+ export default SearchBar
@@ -0,0 +1,2 @@
1
+ export { default as SearchBar } from './SearchBar.component'
2
+ export type { SearchBarProps } from './types'
@@ -0,0 +1,31 @@
1
+ .search-bar {
2
+
3
+ &:focus,
4
+ &:focus-within {
5
+ outline: none;
6
+ border: solid 1px var(--B500);
7
+ }
8
+
9
+ &__input {
10
+
11
+ &:focus,
12
+ &:focus-visible {
13
+ border: none;
14
+ outline: none;
15
+ }
16
+ }
17
+
18
+ &__icon {
19
+ z-index: 1;
20
+ top: 50%;
21
+ left: 8px;
22
+ transform: translateY(-50%);
23
+ }
24
+
25
+ &__clear-button {
26
+ right: 0;
27
+ top: 50%;
28
+ transform: translateY(-50%);
29
+ z-index: 1;
30
+ }
31
+ }
@@ -0,0 +1,34 @@
1
+ export interface SearchBarProps {
2
+ /**
3
+ * Initial search text
4
+ *
5
+ * @default ''
6
+ */
7
+ initialSearchText?: string
8
+ /**
9
+ * Search handler for the search input
10
+ */
11
+ handleSearchChange?: (searchText: string) => void
12
+ /**
13
+ * Enter event handler for the search input
14
+ */
15
+ handleEnter?: (searchText: string) => void
16
+ /**
17
+ * Input props for the search input
18
+ */
19
+ inputProps?: React.InputHTMLAttributes<HTMLInputElement>
20
+ /**
21
+ * Class name for the container; can be used for handling width
22
+ */
23
+ containerClassName?: string
24
+ /**
25
+ * If true, the change handler would be triggered with debounce
26
+ *
27
+ * @default false
28
+ */
29
+ shouldDebounce?: boolean
30
+ /**
31
+ * Timeout for the debounce handler to be triggered
32
+ */
33
+ debounceTimeout?: number
34
+ }
@@ -0,0 +1,55 @@
1
+ import React from 'react'
2
+ import { ScanVulnerabilitiesTableProps, VulnerabilityType } from '../Types'
3
+ import './scanVulnerabilities.css'
4
+
5
+ export default function ScanVulnerabilitiesTable({ vulnerabilities }: ScanVulnerabilitiesTableProps) {
6
+ const renderRow = (vulnerability: VulnerabilityType) => {
7
+ return (
8
+ <tr
9
+ className="dc__security-tab__table-row cursor"
10
+ onClick={(e) => {
11
+ window.open(`https://cve.mitre.org/cgi-bin/cvename.cgi?name=${vulnerability.name}`, '_blank')
12
+ }}
13
+ >
14
+ <td className="security-tab__cell-cve dc__cve-cell">
15
+ <a
16
+ href={`https://cve.mitre.org/cgi-bin/cvename.cgi?name=${vulnerability.name}`}
17
+ rel="noopener noreferrer"
18
+ target="_blank"
19
+ >
20
+ {vulnerability.name}
21
+ </a>
22
+ </td>
23
+ <td className="security-tab__cell-severity">
24
+ <span className={`fill-${vulnerability.severity?.toLowerCase()}`}>{vulnerability.severity}</span>
25
+ </td>
26
+ <td className="security-tab__cell-package">{vulnerability.package}</td>
27
+ <td className="security-tab__cell-current-ver">{vulnerability.version}</td>
28
+ <td className="security-tab__cell-fixed-ver">{vulnerability.fixedVersion}</td>
29
+ <td
30
+ className={`security-tab__cell-policy security-tab__cell-policy--${vulnerability.policy?.toLowerCase()}`}
31
+ >
32
+ {vulnerability.policy?.toLowerCase()}
33
+ </td>
34
+ </tr>
35
+ )
36
+ }
37
+
38
+ return (
39
+ <table className="security-tab__table">
40
+ <tbody>
41
+ <tr className="security-tab__table-header">
42
+ <th className="security-cell-header security-tab__cell-cve">CVE</th>
43
+ <th className="security-cell-header security-tab__cell-severity">Severity</th>
44
+ <th className="security-cell-header security-tab__cell-package">Package</th>
45
+ <th className="security-cell-header security-tab__cell-current-ver">Current Version</th>
46
+ <th className="security-cell-header security-tab__cell-fixed-ver">Fixed In Version</th>
47
+ <th className="security-cell-header security-tab__cell-policy">Policy</th>
48
+ </tr>
49
+ {vulnerabilities.map((vulnerability) => {
50
+ return renderRow(vulnerability)
51
+ })}
52
+ </tbody>
53
+ </table>
54
+ )
55
+ }
@@ -0,0 +1,69 @@
1
+ .modal-body--scan-details {
2
+ position: fixed;
3
+ top: 0;
4
+ right: 0;
5
+ background: var(--N000);
6
+ width: 800px;
7
+ }
8
+
9
+ .security-tab__table {
10
+ width: 100%;
11
+ }
12
+
13
+ .security-tab__table-header {
14
+ border-bottom: solid 1px var(--N200);
15
+ }
16
+
17
+ .security-cell-header {
18
+ font-size: 12px;
19
+ font-weight: 600;
20
+ line-height: 1.5;
21
+ letter-spacing: normal;
22
+ text-transform: uppercase;
23
+ color: var(--N500);
24
+ }
25
+
26
+ .dc__security-tab__table-row {
27
+ font-size: 13px;
28
+ font-weight: normal;
29
+ line-height: 1.54;
30
+ letter-spacing: normal;
31
+ color: var(--N900);
32
+ box-shadow: inset 0 -1px 0 0 #f5f5f5;
33
+ }
34
+
35
+ .security-tab__cell-cve,
36
+ .security-tab__cell-severity,
37
+ .security-tab__cell-package,
38
+ .security-tab__cell-current-ver,
39
+ .security-tab__cell-fixed-ver,
40
+ .security-tab__cell-policy {
41
+ padding: 10px;
42
+ max-width: 120px;
43
+ word-wrap: break-word;
44
+ }
45
+
46
+ .security-tab__cell-cve {
47
+ padding-left: 0px;
48
+ text-align: left;
49
+ width: 20%;
50
+ }
51
+
52
+ .security-tab__cell-policy {
53
+ padding-right: 0px;
54
+ }
55
+
56
+ .security-tab__cell-policy--whitelist,
57
+ .security-tab__cell-policy--whitelisted {
58
+ color: var(--G500);
59
+ text-transform: capitalize;
60
+ }
61
+
62
+ .security-tab__cell-policy--block {
63
+ color: var(--R500);
64
+ text-transform: capitalize;
65
+ }
66
+
67
+ .scanned-object__results {
68
+ margin: 0 20px;
69
+ }
@@ -0,0 +1,31 @@
1
+ export class ServerError {
2
+ code: number
3
+ internalMessage: string | null
4
+ userMessage: string | null
5
+ moreInfo?: string | null
6
+
7
+ constructor(error) {
8
+ this.code = error.code || 0
9
+ this.userMessage = error.userMessage || ''
10
+ this.internalMessage = error.internalMessage || ''
11
+ this.moreInfo = error.moreInfo || ''
12
+ }
13
+ }
14
+
15
+ export class ServerErrors extends Error {
16
+ code: number
17
+ errors: ServerError[]
18
+
19
+ constructor(obj: { code: number; errors: ServerError[] }) {
20
+ super()
21
+ this.code = obj.code
22
+ let message = obj.errors.reduce((str: string, err: ServerError) => {
23
+ str += `${err.internalMessage || err.userMessage}`
24
+ return str
25
+ }, '')
26
+ this.name = `[${obj.code.toString()}]`
27
+ this.message = message
28
+ this.errors = obj.errors.map((err) => new ServerError(err))
29
+ Object.setPrototypeOf(this, ServerErrors.prototype)
30
+ }
31
+ }
@@ -0,0 +1,44 @@
1
+ import { ReactComponent as SortIcon } from '../../Assets/Icon/ic-arrow-up-down.svg'
2
+ import { ReactComponent as SortArrowDown } from '../../Assets/Icon/ic-sort-arrow-down.svg'
3
+ import { SortingOrder } from '../Constants'
4
+ import { SortableTableHeaderCellProps } from './types'
5
+
6
+ /**
7
+ * Reusable component for the table header cell with support for sorting icons
8
+ *
9
+ * @example Usage
10
+ * ```tsx
11
+ * <SortableTableHeaderCell
12
+ * isSorted={currentSortedCell === 'cell'}
13
+ * triggerSorting={() => {}}
14
+ * sortOrder={SortingOrder.ASC}
15
+ * title="Header Cell"
16
+ * disabled={isDisabled}
17
+ * />
18
+ * ```
19
+ */
20
+ const SortableTableHeaderCell = ({
21
+ isSorted,
22
+ triggerSorting,
23
+ sortOrder,
24
+ title,
25
+ disabled,
26
+ }: SortableTableHeaderCellProps) => (
27
+ <button
28
+ type="button"
29
+ className="dc__transparent p-0 bcn-0 cn-7 flex dc__content-start dc__gap-4 cursor"
30
+ onClick={triggerSorting}
31
+ disabled={disabled}
32
+ >
33
+ <span className="dc__uppercase dc__ellipsis-right">{title}</span>
34
+ {isSorted ? (
35
+ <SortArrowDown
36
+ className={`icon-dim-12 mw-12 scn-7 ${sortOrder === SortingOrder.DESC ? 'dc__flip-180' : ''}`}
37
+ />
38
+ ) : (
39
+ <SortIcon className="icon-dim-12 mw-12 scn-7" />
40
+ )}
41
+ </button>
42
+ )
43
+
44
+ export default SortableTableHeaderCell
@@ -0,0 +1,2 @@
1
+ export { default as SortableTableHeaderCell } from './SortableTableHeaderCell'
2
+ export type { SortableTableHeaderCellProps } from './types'
@@ -0,0 +1,26 @@
1
+ import { SortingOrder } from '../Constants'
2
+
3
+ export interface SortableTableHeaderCellProps {
4
+ /**
5
+ * If true, the cell is sorted
6
+ */
7
+ isSorted: boolean
8
+ /**
9
+ * Callback for handling the sorting of the cell
10
+ */
11
+ triggerSorting: () => void
12
+ /**
13
+ * Current sort order
14
+ *
15
+ * Note: On click, the sort order should be updated as required
16
+ */
17
+ sortOrder: SortingOrder
18
+ /**
19
+ * Label for the cell
20
+ */
21
+ title: string
22
+ /**
23
+ * If true, the cell is disabled
24
+ */
25
+ disabled: boolean
26
+ }