@devtron-labs/devtron-fe-common-lib 0.0.63-beta-1 → 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-6f9d8cd1.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-ab344d04.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-19723f91.js +0 -391
  420. package/dist/hcl-e883a0d4.js +0 -177
  421. package/dist/html-180c27f9.js +0 -281
  422. package/dist/htmlMode-5a7a5e22.js +0 -1456
  423. package/dist/index-dff859ae.js +0 -127403
  424. package/dist/ini-425ab711.js +0 -68
  425. package/dist/java-2bc0fd68.js +0 -221
  426. package/dist/javascript-69f332ec.js +0 -75
  427. package/dist/jsonMode-52d38062.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-900b4835.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-5092b9eb.js +0 -259
  452. package/dist/qsharp-d730d7fe.js +0 -282
  453. package/dist/r-be193556.js +0 -245
  454. package/dist/razor-4737df6e.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-92f77d1c.js +0 -811
  474. package/dist/twig-0d98f5ec.js +0 -323
  475. package/dist/typescript-45bc0bbc.js +0 -328
  476. package/dist/vb-3a2b0a51.js +0 -364
  477. package/dist/wgsl-b2ddb3e4.js +0 -420
  478. package/dist/xml-7849eff8.js +0 -95
  479. package/dist/yaml-1b2fc0c6.js +0 -184
@@ -0,0 +1,33 @@
1
+ import { BulkSelectionDropdownItemsProps } from './types'
2
+
3
+ const BulkSelectionDropdownItems = <T,>({
4
+ locator,
5
+ label,
6
+ isSelected,
7
+ handleBulkSelection,
8
+ icon: Icon,
9
+ }: BulkSelectionDropdownItemsProps<T>) => {
10
+ const handleSelect = () => {
11
+ handleBulkSelection({
12
+ action: locator,
13
+ })
14
+ }
15
+
16
+ return (
17
+ <button
18
+ data-testid={`bulk-action-${locator}`}
19
+ onClick={handleSelect}
20
+ className={`dc__no-border dc__outline-none-imp w-100 flexbox h-32 dc__align-items-center pt-6 pr-8 pb-6 pl-8 dc__gap-8 ${
21
+ isSelected
22
+ ? 'cb-5 bcb-1 icon-stroke-b5 fs-13 fw-6 lh-20'
23
+ : 'dc__no-background cn-9 fs-13 fw-4 lh-20 dc__hover-n50'
24
+ }`}
25
+ type="button"
26
+ >
27
+ <Icon className="icon-dim-16" />
28
+ {label}
29
+ </button>
30
+ )
31
+ }
32
+
33
+ export default BulkSelectionDropdownItems
@@ -0,0 +1,182 @@
1
+ import { createContext, useContext, useMemo, useState } from 'react'
2
+ import { toast } from 'react-toastify'
3
+ import {
4
+ BULK_SELECTION_CONTEXT_ERROR,
5
+ CLEAR_SELECTIONS_WARNING,
6
+ SELECT_ALL_ACROSS_PAGES_LOCATOR,
7
+ getInvalidActionMessage,
8
+ } from './constants'
9
+ import {
10
+ BulkSelectionEvents,
11
+ GetBulkSelectionCheckboxValuesType,
12
+ HandleBulkSelectionType,
13
+ SelectAllDialogStatus,
14
+ UseBulkSelectionProps,
15
+ UseBulkSelectionReturnType,
16
+ } from './types'
17
+ import { CHECKBOX_VALUE, noop } from '../../../Common'
18
+
19
+ // giving type any here since not exporting this context, rather using it through useBulkSelection hook which is typed
20
+ const BulkSelectionContext = createContext<UseBulkSelectionReturnType<any>>({
21
+ selectedIdentifiers: {},
22
+ handleBulkSelection: noop,
23
+ isChecked: false,
24
+ checkboxValue: CHECKBOX_VALUE.CHECKED,
25
+ isBulkSelectionApplied: false,
26
+ getSelectedIdentifiersCount: noop,
27
+ })
28
+
29
+ export const useBulkSelection = <T,>() => {
30
+ const context = useContext<UseBulkSelectionReturnType<T>>(BulkSelectionContext)
31
+ if (!context) {
32
+ throw new Error(BULK_SELECTION_CONTEXT_ERROR)
33
+ }
34
+ return context
35
+ }
36
+
37
+ export const BulkSelectionProvider = <T,>({
38
+ children,
39
+ identifiers,
40
+ getSelectAllDialogStatus,
41
+ }: UseBulkSelectionProps<T>) => {
42
+ const [selectedIdentifiers, setSelectedIdentifiers] = useState<T>({} as T)
43
+
44
+ const isBulkSelectionApplied = selectedIdentifiers[SELECT_ALL_ACROSS_PAGES_LOCATOR]
45
+
46
+ const getSelectedIdentifiersCount = () => Object.keys(selectedIdentifiers).length
47
+
48
+ const setIdentifiersAfterClear = (newIdentifiers: T, selectedIds: (number | string)[]) => {
49
+ const _newIdentifiers = JSON.parse(JSON.stringify(newIdentifiers))
50
+ selectedIds.forEach((id) => {
51
+ delete _newIdentifiers[id]
52
+ })
53
+ setSelectedIdentifiers(_newIdentifiers)
54
+ }
55
+
56
+ const setIdentifiersAfterPageSelection = (baseObject: T) => {
57
+ const _selectedIdentifiers = JSON.parse(JSON.stringify(selectedIdentifiers))
58
+ // removing bulk selection across pages if present
59
+ if (isBulkSelectionApplied) {
60
+ delete _selectedIdentifiers[SELECT_ALL_ACROSS_PAGES_LOCATOR]
61
+ }
62
+
63
+ setSelectedIdentifiers({
64
+ ..._selectedIdentifiers,
65
+ ...baseObject,
66
+ })
67
+ }
68
+
69
+ const handleBulkSelection = ({ action, data }: HandleBulkSelectionType<T>) => {
70
+ const selectedIds = data?.identifierIds ?? []
71
+ const identifierObject = data?.identifierObject ?? {}
72
+
73
+ switch (action) {
74
+ case BulkSelectionEvents.CLEAR_ALL_SELECTIONS:
75
+ setSelectedIdentifiers({} as T)
76
+ break
77
+
78
+ case BulkSelectionEvents.CLEAR_IDENTIFIERS_AFTER_ACROSS_SELECTION: {
79
+ toast.info(CLEAR_SELECTIONS_WARNING)
80
+ setIdentifiersAfterClear(identifiers, selectedIds)
81
+ break
82
+ }
83
+
84
+ case BulkSelectionEvents.CLEAR_IDENTIFIERS: {
85
+ setIdentifiersAfterClear(selectedIdentifiers, selectedIds)
86
+ break
87
+ }
88
+
89
+ case BulkSelectionEvents.SELECT_ALL_ACROSS_PAGES: {
90
+ if (isBulkSelectionApplied) {
91
+ return
92
+ }
93
+ const selectedIdentifiersLength = getSelectedIdentifiersCount()
94
+ // This is for showing a modal dialog if applicable to confirm if bulk selection is to be applied
95
+ // Do note that the 'getSelectAllDialogStatus' should be called after the length check explicitly
96
+ // otherwise the modal will open each time
97
+ if (selectedIdentifiersLength > 0 && getSelectAllDialogStatus() === SelectAllDialogStatus.OPEN) {
98
+ return
99
+ }
100
+
101
+ setSelectedIdentifiers({
102
+ [SELECT_ALL_ACROSS_PAGES_LOCATOR]: true,
103
+ } as unknown as T)
104
+ break
105
+ }
106
+
107
+ case BulkSelectionEvents.CLEAR_SELECTIONS_AND_SELECT_ALL_ACROSS_PAGES:
108
+ setSelectedIdentifiers({
109
+ [SELECT_ALL_ACROSS_PAGES_LOCATOR]: true,
110
+ } as unknown as T)
111
+ break
112
+
113
+ case BulkSelectionEvents.SELECT_ALL_ON_PAGE: {
114
+ if (selectedIdentifiers[SELECT_ALL_ACROSS_PAGES_LOCATOR]) {
115
+ toast.info(CLEAR_SELECTIONS_WARNING)
116
+ }
117
+
118
+ setIdentifiersAfterPageSelection(identifiers)
119
+ break
120
+ }
121
+
122
+ case BulkSelectionEvents.SELECT_IDENTIFIER: {
123
+ setIdentifiersAfterPageSelection(identifierObject as T)
124
+ break
125
+ }
126
+
127
+ default:
128
+ throw new Error(getInvalidActionMessage(action))
129
+ }
130
+ }
131
+
132
+ const getBulkSelectionCheckboxValues = (): GetBulkSelectionCheckboxValuesType => {
133
+ const selectedIdentifiersArray = Object.keys(selectedIdentifiers)
134
+ if (selectedIdentifiersArray.length === 0) {
135
+ return {
136
+ isChecked: false,
137
+ checkboxValue: CHECKBOX_VALUE.CHECKED,
138
+ }
139
+ }
140
+
141
+ // if selectedIdentifiers contains select all across pages locator then it means all are selected
142
+ if (isBulkSelectionApplied) {
143
+ return {
144
+ isChecked: true,
145
+ checkboxValue: CHECKBOX_VALUE.BULK_CHECKED,
146
+ }
147
+ }
148
+
149
+ // if all the identifiers are selected then CHECKED else intermediate
150
+ const areAllPresentIdentifiersSelected = Object.keys(identifiers).every(
151
+ (identifierId) => selectedIdentifiers[identifierId],
152
+ )
153
+
154
+ if (areAllPresentIdentifiersSelected) {
155
+ return {
156
+ isChecked: true,
157
+ checkboxValue: CHECKBOX_VALUE.CHECKED,
158
+ }
159
+ }
160
+
161
+ return {
162
+ isChecked: true,
163
+ checkboxValue: CHECKBOX_VALUE.INTERMEDIATE,
164
+ }
165
+ }
166
+
167
+ const { isChecked, checkboxValue } = getBulkSelectionCheckboxValues()
168
+
169
+ const value = useMemo(
170
+ () => ({
171
+ selectedIdentifiers,
172
+ handleBulkSelection,
173
+ isChecked,
174
+ checkboxValue,
175
+ isBulkSelectionApplied,
176
+ getSelectedIdentifiersCount,
177
+ }),
178
+ [selectedIdentifiers, handleBulkSelection, isChecked, checkboxValue, getSelectedIdentifiersCount],
179
+ )
180
+
181
+ return <BulkSelectionContext.Provider value={value}>{children}</BulkSelectionContext.Provider>
182
+ }
@@ -0,0 +1,14 @@
1
+ import { BulkSelectionEvents } from './types'
2
+
3
+ export const BULK_DROPDOWN_TEST_ID = 'bulk-selection-pop-up-menu' as const
4
+ export const BulkSelectionOptionsLabels = {
5
+ [BulkSelectionEvents.SELECT_ALL_ON_PAGE]: 'All on this page',
6
+ [BulkSelectionEvents.SELECT_ALL_ACROSS_PAGES]: 'All across pages',
7
+ [BulkSelectionEvents.CLEAR_ALL_SELECTIONS]: 'Clear selection(s)',
8
+ } as const
9
+
10
+ // Considering application can not be named as *
11
+ export const SELECT_ALL_ACROSS_PAGES_LOCATOR = '*' as const
12
+ export const getInvalidActionMessage = (action: string) => `Invalid action ${action} passed to useBulkSelection`
13
+ export const BULK_SELECTION_CONTEXT_ERROR = 'useBulkSelection must be used within BulkSelectionContext'
14
+ export const CLEAR_SELECTIONS_WARNING = 'Selections on other pages are cleared'
@@ -0,0 +1,4 @@
1
+ export { default as BulkSelection } from './BulkSelection'
2
+ export * from './BulkSelectionProvider'
3
+ export * from './types'
4
+ export * from './constants'
@@ -0,0 +1,67 @@
1
+ import { CHECKBOX_VALUE } from '../../../Common'
2
+
3
+ export enum BulkSelectionEvents {
4
+ CLEAR_ALL_SELECTIONS = 'CLEAR_ALL_SELECTIONS',
5
+ CLEAR_IDENTIFIERS = 'CLEAR_IDENTIFIERS',
6
+ SELECT_ALL_ACROSS_PAGES = 'SELECT_ALL_ACROSS_PAGES',
7
+ SELECT_ALL_ON_PAGE = 'SELECT_ALL_ON_PAGE',
8
+ SELECT_IDENTIFIER = 'SELECT_IDENTIFIER',
9
+ CLEAR_IDENTIFIERS_AFTER_ACROSS_SELECTION = 'CLEAR_IDENTIFIERS_AFTER_ACROSS_SELECTION',
10
+ CLEAR_SELECTIONS_AND_SELECT_ALL_ACROSS_PAGES = 'CLEAR_SELECTIONS_AND_SELECT_ALL_ACROSS_PAGES',
11
+ }
12
+
13
+ export interface HandleBulkSelectionType<T> {
14
+ action: BulkSelectionEvents
15
+ data?: {
16
+ identifierIds?: (number | string)[]
17
+ identifierObject?: T
18
+ }
19
+ }
20
+
21
+ export interface GetBulkSelectionCheckboxValuesType {
22
+ isChecked: boolean
23
+ checkboxValue: CHECKBOX_VALUE
24
+ }
25
+
26
+ export interface UseBulkSelectionReturnType<T> extends GetBulkSelectionCheckboxValuesType {
27
+ selectedIdentifiers: T
28
+ handleBulkSelection: ({ action, data }: HandleBulkSelectionType<T>) => void
29
+ isBulkSelectionApplied: boolean
30
+ getSelectedIdentifiersCount: () => number
31
+ }
32
+
33
+ export interface BulkSelectionProps {
34
+ showPagination: boolean
35
+ }
36
+
37
+ export interface BulkSelectionDropdownItemsType {
38
+ locator: BulkSelectionEvents
39
+ label: string
40
+ isSelected: boolean
41
+ icon: React.FunctionComponent<React.SVGProps<SVGSVGElement>>
42
+ }
43
+
44
+ export interface BulkSelectionDropdownItemsProps<T>
45
+ extends BulkSelectionDropdownItemsType,
46
+ Pick<UseBulkSelectionReturnType<T>, 'handleBulkSelection'> {}
47
+
48
+ export enum SelectAllDialogStatus {
49
+ OPEN = 'OPEN',
50
+ CLOSED = 'CLOSED',
51
+ }
52
+
53
+ // This type is intended to be used with UseBulkSelectionProps, e.g, UseBulkSelectionProps<BulkSelectionIdentifiersType<boolean>>
54
+ export type BulkSelectionIdentifiersType<T> = Record<string | number, T>
55
+
56
+ export interface UseBulkSelectionProps<T> {
57
+ /**
58
+ * Response from API, assuming structure to be array of objects with key and values
59
+ * This will the given ids on current page
60
+ */
61
+ identifiers: T
62
+ /**
63
+ * Act as buffer between select all across pages and select all on page state
64
+ */
65
+ getSelectAllDialogStatus: () => SelectAllDialogStatus
66
+ children?: React.ReactNode
67
+ }
@@ -0,0 +1,100 @@
1
+ import { ReactComponent as CloseIcon } from '../../../Assets/Icon/ic-close.svg'
2
+ import { noop } from '../../../Common'
3
+ import { FilterChipProps, FilterChipsProps } from './types'
4
+
5
+ const FilterChip = ({
6
+ label,
7
+ value,
8
+ handleRemoveFilter,
9
+ getFormattedLabel = noop,
10
+ getFormattedValue = noop,
11
+ }: FilterChipProps) => {
12
+ const removeFilter = () => {
13
+ handleRemoveFilter(label, value)
14
+ }
15
+
16
+ const labelToDisplay = getFormattedLabel(label) ?? label
17
+
18
+ const valueToDisplay = getFormattedValue(label, value) ?? value
19
+
20
+ return (
21
+ <div className="flexbox flex-align-center br-4 dc__border dc__bg-n50 pl-6 pr-6 pt-2 pb-2 dc__user-select-none h-24 dc__gap-6 fs-12 lh-20 cn-9 fw-4 dc__ellipsis-right">
22
+ <span className="fw-6 dc__capitalize">{labelToDisplay}</span>
23
+ <span className="dc__divider h-24" />
24
+ <span className="dc__ellipsis-right">{valueToDisplay}</span>
25
+ <button
26
+ type="button"
27
+ className="flex p-0 dc__transparent"
28
+ onClick={removeFilter}
29
+ aria-label="Remove filter"
30
+ >
31
+ <CloseIcon className="icon-dim-12 icon-use-fill-n6" />
32
+ </button>
33
+ </div>
34
+ )
35
+ }
36
+
37
+ /**
38
+ * Component for rendering the applied filter chips
39
+ */
40
+ const FilterChips = ({
41
+ filterConfig,
42
+ clearFilters,
43
+ onRemoveFilter,
44
+ getFormattedLabel,
45
+ getFormattedValue,
46
+ }: FilterChipsProps) => {
47
+ const handleRemoveFilter = (filterKey, valueToRemove) => {
48
+ const updatedFilterConfig = JSON.parse(JSON.stringify(filterConfig))
49
+ if (Array.isArray(filterConfig[filterKey])) {
50
+ onRemoveFilter({
51
+ ...updatedFilterConfig,
52
+ [filterKey]: updatedFilterConfig[filterKey].filter((val) => val !== valueToRemove),
53
+ })
54
+ return
55
+ }
56
+ if (filterKey in updatedFilterConfig) {
57
+ delete updatedFilterConfig[filterKey]
58
+ onRemoveFilter(updatedFilterConfig)
59
+ }
60
+ }
61
+
62
+ const chips = Object.entries(filterConfig).filter(([, value]) => (Array.isArray(value) ? value.length : !!value))
63
+
64
+ return (
65
+ chips.length > 0 && (
66
+ <div className="flexbox pt-6 pb-6 flex-wrap dc__gap-8">
67
+ {chips.map(([filterKey, filterValue]) =>
68
+ Array.isArray(filterValue) ? (
69
+ filterValue.map((filter) => (
70
+ <FilterChip
71
+ key={`${filterKey}-${filter}`}
72
+ label={filterKey}
73
+ value={filter}
74
+ handleRemoveFilter={handleRemoveFilter}
75
+ getFormattedLabel={getFormattedLabel}
76
+ getFormattedValue={getFormattedValue}
77
+ />
78
+ ))
79
+ ) : (
80
+ <FilterChip
81
+ key={filterKey}
82
+ label={filterKey}
83
+ value={filterValue}
84
+ handleRemoveFilter={handleRemoveFilter}
85
+ getFormattedLabel={getFormattedLabel}
86
+ getFormattedValue={getFormattedValue}
87
+ />
88
+ ),
89
+ )}
90
+ <div className="flex">
91
+ <button type="button" className="cta text fs-13-imp lh-20-imp h-20 p-0-imp" onClick={clearFilters}>
92
+ Clear All Filters
93
+ </button>
94
+ </div>
95
+ </div>
96
+ )
97
+ )
98
+ }
99
+
100
+ export default FilterChips
@@ -0,0 +1,2 @@
1
+ export { default as FilterChips } from './FilterChips.component'
2
+ export type { FilterChipsProps } from './types'
@@ -0,0 +1,39 @@
1
+ import { ReactNode } from 'react'
2
+
3
+ export interface FilterChipProps {
4
+ /**
5
+ * Filter label
6
+ */
7
+ label: string
8
+ /**
9
+ * Corresponding value of the filter
10
+ */
11
+ value: unknown
12
+ /**
13
+ * Callback handler for removing the filter
14
+ */
15
+ handleRemoveFilter: (label: string, valueToRemove: unknown) => void
16
+ /**
17
+ * If passed, the label will be formatted accordingly
18
+ */
19
+ getFormattedLabel?: (filterKey: string) => ReactNode
20
+ /**
21
+ * If passed, the label will be formatted accordingly
22
+ */
23
+ getFormattedValue?: (filterKey: string, filterValue: unknown) => ReactNode
24
+ }
25
+
26
+ export interface FilterChipsProps extends Pick<FilterChipProps, 'getFormattedLabel' | 'getFormattedValue'> {
27
+ /**
28
+ * Current filter configuration
29
+ */
30
+ filterConfig: Record<string, unknown>
31
+ /**
32
+ * Callback handler for removing the filters
33
+ */
34
+ clearFilters: () => void
35
+ /**
36
+ * Handler for removing a applied filter
37
+ */
38
+ onRemoveFilter: (filterConfig: Record<string, unknown>) => void
39
+ }
@@ -0,0 +1 @@
1
+ export * from './utils'
@@ -0,0 +1,97 @@
1
+ import Tippy from '@tippyjs/react'
2
+ import { components } from 'react-select'
3
+ import { stopPropagation } from '../../../Common'
4
+
5
+ export const getCommonSelectStyle = (styleOverrides = {}) => ({
6
+ menuList: (base) => ({
7
+ ...base,
8
+ paddingTop: 0,
9
+ paddingBottom: 0,
10
+ }),
11
+ control: (base, state) => ({
12
+ ...base,
13
+ minHeight: '32px',
14
+ boxShadow: 'none',
15
+ backgroundColor: 'var(--N50)',
16
+ border: state.isFocused ? '1px solid var(--B500)' : '1px solid var(--N200)',
17
+ cursor: 'pointer',
18
+ }),
19
+ option: (base, state) => ({
20
+ ...base,
21
+ color: 'var(--N900)',
22
+ backgroundColor: state.isFocused ? 'var(--N100)' : 'white',
23
+ padding: '10px 12px',
24
+ }),
25
+ dropdownIndicator: (base, state) => ({
26
+ ...base,
27
+ color: 'var(--N400)',
28
+ padding: '0 8px',
29
+ transition: 'all .2s ease',
30
+ transform: state.selectProps.menuIsOpen ? 'rotate(180deg)' : 'rotate(0deg)',
31
+ }),
32
+ valueContainer: (base) => ({
33
+ ...base,
34
+ padding: '0 8px',
35
+ fontWeight: '400',
36
+ }),
37
+ loadingMessage: (base) => ({
38
+ ...base,
39
+ color: 'var(--N600)',
40
+ }),
41
+ noOptionsMessage: (base) => ({
42
+ ...base,
43
+ color: 'var(--N600)',
44
+ }),
45
+ ...styleOverrides,
46
+ })
47
+
48
+ const getCustomOptionBackgroundColor = (isSelected: boolean, isFocused: boolean) => {
49
+ if (isSelected) {
50
+ return 'var(--B100)'
51
+ }
52
+
53
+ if (isFocused) {
54
+ return 'var(--N50)'
55
+ }
56
+
57
+ return 'var(--white)'
58
+ }
59
+
60
+ export const getCustomOptionSelectionStyle =
61
+ (styleOverrides = {}) =>
62
+ (base, state) => ({
63
+ ...base,
64
+ backgroundColor: getCustomOptionBackgroundColor(state.isSelected, state.isFocused),
65
+ color: state.isSelected ? 'var(--B500)' : 'var(--N900)',
66
+ textOverflow: 'ellipsis',
67
+ fontWeight: '500',
68
+ overflow: 'hidden',
69
+ textAlign: 'left',
70
+ whiteSpace: 'nowrap',
71
+ cursor: 'pointer',
72
+ fontSize: '13px',
73
+ ...styleOverrides,
74
+ })
75
+
76
+ export const SelectOption = (props: any) => {
77
+ const { selectProps, data, showTippy, style, placement, tippyContent, tippyClass } = props
78
+ selectProps.styles.option = getCustomOptionSelectionStyle(style)
79
+ const getOption = () => (
80
+ <div onClick={stopPropagation}>
81
+ <components.Option {...props} />
82
+ </div>
83
+ )
84
+
85
+ return showTippy ? (
86
+ <Tippy
87
+ className={tippyClass || 'default-white'}
88
+ arrow={false}
89
+ placement={placement || 'right'}
90
+ content={tippyContent || data.label}
91
+ >
92
+ {getOption()}
93
+ </Tippy>
94
+ ) : (
95
+ getOption()
96
+ )
97
+ }
@@ -0,0 +1,4 @@
1
+ export * from './APIResponseHandler'
2
+ export * from './ReactSelect'
3
+ export * from './BulkSelection'
4
+ export * from './FilterChips'
@@ -0,0 +1,29 @@
1
+ interface HighlightSearchTextProps {
2
+ /**
3
+ * The text to be highlighted
4
+ */
5
+ searchText: string
6
+ /**
7
+ * The whole text string
8
+ */
9
+ text: string
10
+ /**
11
+ * The classes to be applied to the highlighted text
12
+ */
13
+ highlightClasses?: string
14
+ }
15
+
16
+ // Disabling default export since this is a helper function and we would have to export a lot of functions in future.
17
+ // eslint-disable-next-line import/prefer-default-export
18
+ export const highlightSearchText = ({ searchText, text, highlightClasses }: HighlightSearchTextProps): string => {
19
+ if (!searchText) {
20
+ return text
21
+ }
22
+
23
+ try {
24
+ const regex = new RegExp(searchText, 'gi')
25
+ return text.replace(regex, (match) => `<span class="${highlightClasses}">${match}</span>`)
26
+ } catch (error) {
27
+ return text
28
+ }
29
+ }
@@ -0,0 +1,3 @@
1
+ export * from './Components'
2
+ export * from './validations'
3
+ export * from './Helpers'