@devtron-labs/devtron-fe-common-lib 0.0.60-beta-1 → 0.0.60-beta-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +96 -0
- package/.eslintrc.js +109 -0
- package/.github/pull_request_template.md +25 -0
- package/.github/workflows/ci.yml +31 -0
- package/.github/workflows/release-package.yml +48 -0
- package/.husky/pre-commit +5 -0
- package/.lintstagedrc +3 -0
- package/.nvmrc +1 -0
- package/.prettierrc.js +7 -0
- package/dist/Common/AddCDButton/AddCDButton.d.ts +3 -3
- package/dist/Common/AddCDButton/index.d.ts +2 -2
- package/dist/Common/AddCDButton/types.d.ts +26 -26
- package/dist/Common/AddCDButton/utils.d.ts +2 -2
- package/dist/Common/Api.d.ts +14 -5
- package/dist/Common/AppStatus/AppStatus.d.ts +3 -3
- package/dist/Common/AppStatus/constants.d.ts +51 -51
- package/dist/Common/AppStatus/index.d.ts +1 -1
- package/dist/Common/AppStatus/types.d.ts +12 -12
- package/dist/Common/AppStatus/utils.d.ts +1 -1
- package/dist/Common/BreadCrumb/BreadCrumb.d.ts +5 -5
- package/dist/Common/BreadCrumb/BreadcrumbStore.d.ts +17 -17
- package/dist/Common/BreadCrumb/Types.d.ts +28 -28
- package/dist/Common/CIPipeline.Types.d.ts +265 -265
- package/dist/Common/ChartVersionAndTypeSelector.d.ts +4 -3
- package/dist/Common/Checkbox.d.ts +5 -5
- package/dist/Common/ClipboardButton/ClipboardButton.d.ts +10 -10
- package/dist/Common/ClipboardButton/types.d.ts +8 -8
- package/dist/Common/Common.service.d.ts +20 -20
- package/dist/Common/Constants.d.ts +89 -81
- package/dist/Common/CustomInput/CustomInput.d.ts +3 -2
- package/dist/Common/CustomInput/Types.d.ts +31 -31
- package/dist/Common/CustomInput/index.d.ts +2 -2
- package/dist/Common/CustomTagSelector/PropagateTagInfo.d.ts +4 -4
- package/dist/Common/CustomTagSelector/ResizableTagTextArea.d.ts +3 -2
- package/dist/Common/CustomTagSelector/TagDetails.d.ts +3 -2
- package/dist/Common/CustomTagSelector/TagLabelSelect.d.ts +3 -2
- package/dist/Common/CustomTagSelector/TagLabelValueSelector.d.ts +3 -2
- package/dist/Common/CustomTagSelector/TagSelector.utils.d.ts +12 -12
- package/dist/Common/CustomTagSelector/Types.d.ts +68 -68
- package/dist/Common/CustomTagSelector/ValidationRules.d.ts +10 -10
- package/dist/Common/CustomTagSelector/index.d.ts +6 -6
- package/dist/Common/DebouncedSearch/DebouncedSearch.d.ts +17 -17
- package/dist/Common/DebouncedSearch/Types.d.ts +14 -14
- package/dist/Common/DebouncedSearch/Utils.d.ts +1 -1
- package/dist/Common/DeleteComponentModal/DeleteComponent.d.ts +4 -3
- package/dist/Common/DeleteComponentModal/types.d.ts +15 -15
- package/dist/Common/DevtronProgressing/DevtronProgressing.d.ts +3 -2
- package/dist/Common/DevtronProgressing/index.d.ts +1 -1
- package/dist/Common/DevtronProgressing/types.d.ts +4 -4
- package/dist/Common/Dialogs/ConfirmationDialog.d.ts +9 -8
- package/dist/Common/Dialogs/DeleteDialog.d.ts +5 -5
- package/dist/Common/Dialogs/DialogForm.d.ts +14 -14
- package/dist/Common/Dialogs/ForceDeleteDialog.d.ts +3 -3
- package/dist/Common/Dialogs/Types.d.ts +45 -45
- package/dist/Common/Dialogs/index.d.ts +4 -4
- package/dist/Common/DraggableWrapper/DraggableButton.d.ts +3 -3
- package/dist/Common/DraggableWrapper/DraggableWrapper.d.ts +9 -9
- package/dist/Common/DraggableWrapper/index.d.ts +3 -3
- package/dist/Common/DraggableWrapper/types.d.ts +23 -23
- package/dist/Common/Drawer/Drawer.d.ts +16 -14
- package/dist/Common/EmptyState/EmptyState.d.ts +25 -0
- package/dist/Common/EmptyState/GenericEmptyState.d.ts +5 -3
- package/dist/Common/Error.d.ts +17 -17
- package/dist/Common/ErrorScreenNotFound.d.ts +3 -2
- package/dist/Common/Grid/Grid.d.ts +3 -3
- package/dist/Common/Grid/types.d.ts +10 -10
- package/dist/Common/Helper.d.ts +64 -68
- package/dist/Common/Hooks/UseClickOutside/UseClickOutside.d.ts +1 -1
- package/dist/Common/Hooks/UseSuperAdmin/UseSuperAdmin.d.ts +6 -6
- package/dist/Common/Hooks/UseSuperAdmin/types.d.ts +3 -3
- package/dist/Common/Hooks/UseWindowSize/UseWindowSize.d.ts +4 -4
- package/dist/Common/Hooks/index.d.ts +4 -3
- package/dist/Common/Hooks/useUrlFilters/constants.d.ts +8 -0
- package/dist/Common/Hooks/useUrlFilters/index.d.ts +2 -0
- package/dist/Common/Hooks/useUrlFilters/types.d.ts +19 -0
- package/dist/Common/Hooks/useUrlFilters/useUrlFilters.d.ts +20 -0
- package/dist/Common/ImageTags.Types.d.ts +40 -40
- package/dist/Common/ImageTags.d.ts +4 -3
- package/dist/Common/InfoColorBar/InfoColourbar.d.ts +5 -3
- package/dist/Common/Modals/Modal.d.ts +3 -3
- package/dist/Common/Modals/OpaqueModal.d.ts +12 -12
- package/dist/Common/Modals/VisibleModal.d.ts +15 -15
- package/dist/Common/Modals/VisibleModal2.d.ts +12 -12
- package/dist/Common/MultiSelectCustomization.d.ts +37 -37
- package/dist/Common/Pagination/PageSizeSelector.d.ts +4 -3
- package/dist/Common/Pagination/Pagination.d.ts +5 -3
- package/dist/Common/Pagination/constants.d.ts +5 -5
- package/dist/Common/Pagination/index.d.ts +1 -1
- package/dist/Common/Pagination/types.d.ts +51 -51
- package/dist/Common/Pagination/utils.d.ts +6 -6
- package/dist/Common/Policy.Types.d.ts +56 -56
- package/dist/Common/PopupMenu.d.ts +8 -7
- package/dist/Common/Progressing.d.ts +4 -3
- package/dist/Common/RJSF/Form.d.ts +4 -2
- package/dist/Common/RJSF/common/FieldRow.d.ts +6 -5
- package/dist/Common/RJSF/common/types.d.ts +8 -8
- package/dist/Common/RJSF/config.d.ts +4 -4
- package/dist/Common/RJSF/constants.d.ts +7 -7
- package/dist/Common/RJSF/index.d.ts +3 -3
- package/dist/Common/RJSF/templates/ArrayFieldItemTemplate.d.ts +3 -2
- package/dist/Common/RJSF/templates/ArrayFieldTemplate.d.ts +3 -2
- package/dist/Common/RJSF/templates/BaseInput.d.ts +3 -2
- package/dist/Common/RJSF/templates/ButtonTemplates/AddButton.d.ts +3 -2
- package/dist/Common/RJSF/templates/ButtonTemplates/RemoveButton.d.ts +3 -2
- package/dist/Common/RJSF/templates/ButtonTemplates/SubmitButton.d.ts +3 -2
- package/dist/Common/RJSF/templates/ButtonTemplates/index.d.ts +3 -3
- package/dist/Common/RJSF/templates/Description.d.ts +3 -2
- package/dist/Common/RJSF/templates/Field.d.ts +3 -2
- package/dist/Common/RJSF/templates/FieldErrorTemplate.d.ts +3 -2
- package/dist/Common/RJSF/templates/ObjectFieldTemplate.d.ts +3 -2
- package/dist/Common/RJSF/templates/TitleField.d.ts +3 -2
- package/dist/Common/RJSF/templates/WrapIfAdditionalTemplate.d.ts +3 -2
- package/dist/Common/RJSF/templates/index.d.ts +10 -10
- package/dist/Common/RJSF/types.d.ts +3 -3
- package/dist/Common/RJSF/utils.d.ts +26 -25
- package/dist/Common/RJSF/widgets/Checkbox.d.ts +3 -2
- package/dist/Common/RJSF/widgets/Select.d.ts +3 -2
- package/dist/Common/RJSF/widgets/index.d.ts +2 -2
- package/dist/Common/RadioGroup/RadioGroup.d.ts +17 -16
- package/dist/Common/RadioGroup.d.ts +8 -8
- package/dist/Common/Reload.d.ts +3 -3
- package/dist/Common/ResizableTextarea.d.ts +3 -3
- package/dist/Common/SearchBar/SearchBar.component.d.ts +39 -37
- package/dist/Common/SearchBar/index.d.ts +2 -2
- package/dist/Common/SearchBar/types.d.ts +35 -35
- package/dist/Common/Security/ScanVulnerabilitiesTable.d.ts +4 -3
- package/dist/Common/ServerError.d.ts +15 -15
- package/dist/Common/SortableTableHeaderCell/SortableTableHeaderCell.d.ts +18 -0
- package/dist/Common/SortableTableHeaderCell/index.d.ts +2 -0
- package/dist/Common/SortableTableHeaderCell/types.d.ts +25 -0
- package/dist/Common/TippyCustomized.d.ts +4 -2
- package/dist/Common/ToastBody.d.ts +23 -23
- package/dist/Common/Toggle/Toggle.d.ts +14 -12
- package/dist/Common/Types.d.ts +704 -691
- package/dist/Common/index.d.ts +51 -50
- package/dist/Pages/GlobalConfigurations/Authorization/constants.d.ts +15 -0
- package/dist/Pages/GlobalConfigurations/Authorization/index.d.ts +1 -0
- package/dist/Pages/GlobalConfigurations/index.d.ts +1 -0
- package/dist/Pages/index.d.ts +1 -0
- package/dist/Shared/Components/BulkSelection/BulkSelection.d.ts +4 -0
- package/dist/Shared/Components/BulkSelection/BulkSelectionDropdownItems.d.ts +4 -0
- package/dist/Shared/Components/BulkSelection/BulkSelectionProvider.d.ts +4 -0
- package/dist/Shared/Components/BulkSelection/constants.d.ts +9 -0
- package/dist/Shared/Components/BulkSelection/index.d.ts +4 -0
- package/dist/Shared/Components/BulkSelection/types.d.ts +54 -0
- package/dist/Shared/Components/index.d.ts +1 -0
- package/dist/Shared/index.d.ts +1 -0
- package/dist/index.d.ts +3 -7
- package/dist/index.js +29384 -162
- package/package.json +23 -34
- package/rollup.config.js +31 -0
- package/src/Assets/Icon/ic-add.svg +3 -0
- package/src/Assets/Icon/ic-appstatus-cancelled.svg +6 -0
- package/src/Assets/Icon/ic-arrow-counter-clockwise.svg +5 -0
- package/src/Assets/Icon/ic-arrow-up-down.svg +3 -0
- package/src/Assets/Icon/ic-check-all.svg +5 -0
- package/src/Assets/Icon/ic-check-square.svg +4 -0
- package/src/Assets/Icon/ic-check.svg +5 -0
- package/src/Assets/Icon/ic-chevron-down.svg +5 -0
- package/src/Assets/Icon/ic-close.svg +9 -0
- package/src/Assets/Icon/ic-copy.svg +3 -0
- package/src/Assets/Icon/ic-cross.svg +3 -0
- package/src/Assets/Icon/ic-drag.svg +8 -0
- package/src/Assets/Icon/ic-enter.svg +3 -0
- package/src/Assets/Icon/ic-error-cross.svg +8 -0
- package/src/Assets/Icon/ic-error-exclamation.svg +6 -0
- package/src/Assets/Icon/ic-error-medium.svg +6 -0
- package/src/Assets/Icon/ic-help-outline.svg +3 -0
- package/src/Assets/Icon/ic-help.svg +3 -0
- package/src/Assets/Icon/ic-info-filled.svg +7 -0
- package/src/Assets/Icon/ic-info-outlined.svg +13 -0
- package/src/Assets/Icon/ic-minus.svg +3 -0
- package/src/Assets/Icon/ic-pencil.svg +3 -0
- package/src/Assets/Icon/ic-progressing.svg +6 -0
- package/src/Assets/Icon/ic-rotate-devtron.svg +103 -0
- package/src/Assets/Icon/ic-search.svg +6 -0
- package/src/Assets/Icon/ic-sort-arrow-down.svg +3 -0
- package/src/Assets/Icon/ic-warning.svg +7 -0
- package/src/Assets/Icon/inject-tag.svg +5 -0
- package/src/Assets/Img/app-not-deployed.png +0 -0
- package/src/Assets/Img/delete-medium.svg +15 -0
- package/src/Assets/Img/ic-empty-error@2x.png +0 -0
- package/src/Assets/Img/ic-loading-failure.png +0 -0
- package/src/Assets/Img/ic-not-authorized.svg +62 -0
- package/src/Common/AddCDButton/AddCDButton.tsx +68 -0
- package/src/Common/AddCDButton/index.ts +2 -0
- package/src/Common/AddCDButton/types.ts +38 -0
- package/src/Common/AddCDButton/utils.tsx +35 -0
- package/src/Common/Api.ts +251 -0
- package/src/Common/AppStatus/AppStatus.tsx +64 -0
- package/src/Common/AppStatus/constants.ts +53 -0
- package/src/Common/AppStatus/index.ts +1 -0
- package/src/Common/AppStatus/types.ts +12 -0
- package/src/Common/AppStatus/utils.ts +14 -0
- package/src/Common/BreadCrumb/BreadCrumb.tsx +105 -0
- package/src/Common/BreadCrumb/BreadcrumbStore.tsx +25 -0
- package/src/Common/BreadCrumb/Types.ts +30 -0
- package/src/Common/CIPipeline.Types.ts +277 -0
- package/src/Common/ChartVersionAndTypeSelector.tsx +78 -0
- package/src/Common/Checkbox.tsx +36 -0
- package/src/Common/ClipboardButton/ClipboardButton.tsx +61 -0
- package/src/Common/ClipboardButton/__tests__/ClipboardButton.test.tsx +43 -0
- package/src/Common/ClipboardButton/types.ts +7 -0
- package/src/Common/Common.service.ts +315 -0
- package/src/Common/Constants.ts +270 -0
- package/src/Common/CustomInput/CustomInput.tsx +134 -0
- package/src/Common/CustomInput/Types.ts +32 -0
- package/src/Common/CustomInput/index.ts +2 -0
- package/src/Common/CustomTagSelector/PropagateTagInfo.tsx +46 -0
- package/src/Common/CustomTagSelector/ResizableTagTextArea.tsx +84 -0
- package/src/Common/CustomTagSelector/TagDetails.tsx +76 -0
- package/src/Common/CustomTagSelector/TagLabelSelect.tsx +61 -0
- package/src/Common/CustomTagSelector/TagLabelValueSelector.tsx +198 -0
- package/src/Common/CustomTagSelector/TagSelector.utils.ts +71 -0
- package/src/Common/CustomTagSelector/Types.ts +72 -0
- package/src/Common/CustomTagSelector/ValidationRules.ts +58 -0
- package/src/Common/CustomTagSelector/index.ts +6 -0
- package/src/Common/DebouncedSearch/DebouncedSearch.tsx +78 -0
- package/src/Common/DebouncedSearch/Types.ts +13 -0
- package/src/Common/DebouncedSearch/Utils.ts +19 -0
- package/src/Common/DebouncedSearch/__tests__/DebouncedSearch.test.tsx +61 -0
- package/src/Common/DeleteComponentModal/DeleteComponent.tsx +95 -0
- package/src/Common/DeleteComponentModal/types.ts +15 -0
- package/src/Common/DevtronProgressing/DevtronProgressing.tsx +11 -0
- package/src/Common/DevtronProgressing/index.ts +1 -0
- package/src/Common/DevtronProgressing/types.ts +4 -0
- package/src/Common/Dialogs/ConfirmationDialog.tsx +34 -0
- package/src/Common/Dialogs/DeleteDialog.tsx +69 -0
- package/src/Common/Dialogs/DialogForm.tsx +86 -0
- package/src/Common/Dialogs/ForceDeleteDialog.tsx +19 -0
- package/src/Common/Dialogs/Types.ts +47 -0
- package/src/Common/Dialogs/index.ts +4 -0
- package/src/Common/DraggableWrapper/DraggableButton.tsx +14 -0
- package/src/Common/DraggableWrapper/DraggableWrapper.tsx +116 -0
- package/src/Common/DraggableWrapper/index.ts +3 -0
- package/src/Common/DraggableWrapper/types.ts +27 -0
- package/src/Common/Drawer/Drawer.scss +40 -0
- package/src/Common/Drawer/Drawer.tsx +49 -0
- package/src/Common/EmptyState/EmptyState.tsx +42 -0
- package/src/Common/EmptyState/GenericEmptyState.tsx +81 -0
- package/src/Common/EmptyState/emptyState.scss +74 -0
- package/src/Common/Error.tsx +61 -0
- package/src/Common/ErrorScreenNotFound.tsx +31 -0
- package/src/Common/Grid/Grid.tsx +44 -0
- package/src/Common/Grid/types.ts +11 -0
- package/src/Common/Helper.tsx +576 -0
- package/src/Common/Hooks/UseClickOutside/UseClickOutside.tsx +15 -0
- package/src/Common/Hooks/UseSuperAdmin/UseSuperAdmin.tsx +24 -0
- package/src/Common/Hooks/UseSuperAdmin/types.ts +3 -0
- package/src/Common/Hooks/UseWindowSize/UseWindowSize.tsx +31 -0
- package/src/Common/Hooks/index.ts +4 -0
- package/src/Common/Hooks/useUrlFilters/constants.ts +9 -0
- package/src/Common/Hooks/useUrlFilters/index.ts +2 -0
- package/src/Common/Hooks/useUrlFilters/types.ts +21 -0
- package/src/Common/Hooks/useUrlFilters/useUrlFilters.ts +121 -0
- package/src/Common/ImageTags.Types.ts +44 -0
- package/src/Common/ImageTags.tsx +586 -0
- package/src/Common/InfoColorBar/InfoColourbar.tsx +80 -0
- package/src/Common/InfoColorBar/infoColourBar.scss +28 -0
- package/src/Common/Modals/Modal.tsx +68 -0
- package/src/Common/Modals/OpaqueModal.tsx +36 -0
- package/src/Common/Modals/VisibleModal.tsx +55 -0
- package/src/Common/Modals/VisibleModal2.tsx +35 -0
- package/src/Common/MultiSelectCustomization.tsx +148 -0
- package/src/Common/Pagination/PageSizeSelector.tsx +78 -0
- package/src/Common/Pagination/Pagination.tsx +127 -0
- package/src/Common/Pagination/constants.ts +6 -0
- package/src/Common/Pagination/index.tsx +3 -0
- package/src/Common/Pagination/pagination.scss +123 -0
- package/src/Common/Pagination/types.ts +55 -0
- package/src/Common/Pagination/utils.tsx +24 -0
- package/src/Common/Policy.Types.ts +63 -0
- package/src/Common/PopupMenu.tsx +199 -0
- package/src/Common/Progressing.tsx +53 -0
- package/src/Common/RJSF/Form.tsx +29 -0
- package/src/Common/RJSF/common/FieldRow.tsx +35 -0
- package/src/Common/RJSF/common/types.ts +9 -0
- package/src/Common/RJSF/config.ts +37 -0
- package/src/Common/RJSF/constants.ts +10 -0
- package/src/Common/RJSF/index.ts +3 -0
- package/src/Common/RJSF/rjsfForm.scss +18 -0
- package/src/Common/RJSF/templates/ArrayFieldItemTemplate.tsx +31 -0
- package/src/Common/RJSF/templates/ArrayFieldTemplate.tsx +78 -0
- package/src/Common/RJSF/templates/BaseInput.tsx +16 -0
- package/src/Common/RJSF/templates/ButtonTemplates/AddButton.tsx +18 -0
- package/src/Common/RJSF/templates/ButtonTemplates/RemoveButton.tsx +10 -0
- package/src/Common/RJSF/templates/ButtonTemplates/SubmitButton.tsx +18 -0
- package/src/Common/RJSF/templates/ButtonTemplates/index.ts +3 -0
- package/src/Common/RJSF/templates/Description.tsx +12 -0
- package/src/Common/RJSF/templates/Field.tsx +30 -0
- package/src/Common/RJSF/templates/FieldErrorTemplate.tsx +25 -0
- package/src/Common/RJSF/templates/ObjectFieldTemplate.tsx +105 -0
- package/src/Common/RJSF/templates/TitleField.tsx +9 -0
- package/src/Common/RJSF/templates/WrapIfAdditionalTemplate.tsx +51 -0
- package/src/Common/RJSF/templates/index.ts +10 -0
- package/src/Common/RJSF/types.ts +4 -0
- package/src/Common/RJSF/utils.ts +123 -0
- package/src/Common/RJSF/widgets/Checkbox.tsx +44 -0
- package/src/Common/RJSF/widgets/Select.tsx +77 -0
- package/src/Common/RJSF/widgets/index.ts +2 -0
- package/src/Common/RadioGroup/RadioGroup.tsx +105 -0
- package/src/Common/RadioGroup/radioGroup.scss +46 -0
- package/src/Common/RadioGroup.tsx +53 -0
- package/src/Common/Reload.tsx +23 -0
- package/src/Common/ResizableTextarea.tsx +73 -0
- package/src/Common/SearchBar/SearchBar.component.tsx +131 -0
- package/src/Common/SearchBar/index.ts +2 -0
- package/src/Common/SearchBar/searchBar.scss +31 -0
- package/src/Common/SearchBar/types.ts +34 -0
- package/src/Common/Security/ScanVulnerabilitiesTable.tsx +55 -0
- package/src/Common/Security/scanVulnerabilities.css +69 -0
- package/src/Common/ServerError.ts +31 -0
- package/src/Common/SortableTableHeaderCell/SortableTableHeaderCell.tsx +44 -0
- package/src/Common/SortableTableHeaderCell/index.ts +2 -0
- package/src/Common/SortableTableHeaderCell/types.ts +26 -0
- package/src/Common/TippyCustomized.tsx +172 -0
- package/src/Common/ToastBody.tsx +62 -0
- package/src/Common/Toggle/Toggle.scss +78 -0
- package/src/Common/Toggle/Toggle.tsx +50 -0
- package/src/Common/Types.ts +778 -0
- package/src/Common/index.ts +51 -0
- package/src/Pages/GlobalConfigurations/Authorization/constants.ts +16 -0
- package/src/Pages/GlobalConfigurations/Authorization/index.ts +1 -0
- package/src/Pages/GlobalConfigurations/index.ts +1 -0
- package/src/Pages/index.ts +1 -0
- package/src/Shared/Components/BulkSelection/BulkSelection.tsx +77 -0
- package/src/Shared/Components/BulkSelection/BulkSelectionDropdownItems.tsx +31 -0
- package/src/Shared/Components/BulkSelection/BulkSelectionProvider.tsx +160 -0
- package/src/Shared/Components/BulkSelection/constants.tsx +13 -0
- package/src/Shared/Components/BulkSelection/index.ts +4 -0
- package/src/Shared/Components/BulkSelection/types.tsx +65 -0
- package/src/Shared/Components/index.ts +1 -0
- package/src/Shared/index.ts +1 -0
- package/src/custom.d.ts +13 -0
- package/src/index.ts +3 -0
- package/tsconfig.json +40 -0
- package/dist/Common/CodeEditor/CodeEditor.d.ts +0 -47
- package/dist/Common/Select/Select.d.ts +0 -4
- package/dist/Common/Select/types.d.ts +0 -29
- package/dist/abap-9f67f57a.js +0 -1314
- package/dist/apex-ff62e532.js +0 -315
- package/dist/assets/editor.worker-d26000ef.js +0 -9
- package/dist/assets/index.css +0 -1
- package/dist/assets/json.worker-f23a4654.js +0 -40
- package/dist/assets/yaml.worker-35ea3f9a.js +0 -467
- package/dist/azcli-31e64a7f.js +0 -74
- package/dist/bat-0ffe897e.js +0 -95
- package/dist/bicep-3414a2b1.js +0 -108
- package/dist/cameligo-df1f3f25.js +0 -168
- package/dist/clojure-65b0f010.js +0 -754
- package/dist/coffee-437f0fba.js +0 -228
- package/dist/cpp-66843dd5.js +0 -390
- package/dist/csharp-621d9a49.js +0 -320
- package/dist/csp-de0d5244.js +0 -57
- package/dist/css-7cd5ed4c.js +0 -186
- package/dist/cssMode-6b75f943.js +0 -1446
- package/dist/cypher-70ad96fe.js +0 -262
- package/dist/dart-33ae3739.js +0 -270
- package/dist/dockerfile-f2274a50.js +0 -132
- package/dist/ecl-3b8294a3.js +0 -454
- package/dist/elixir-b9dcc73a.js +0 -489
- package/dist/flow9-bdde8316.js +0 -141
- package/dist/freemarker2-af9f92ac.js +0 -643
- package/dist/fsharp-eac2e449.js +0 -210
- package/dist/go-d12ed8d4.js +0 -208
- package/dist/graphql-c7356b69.js +0 -141
- package/dist/handlebars-cc9800dd.js +0 -391
- package/dist/hcl-e883a0d4.js +0 -177
- package/dist/html-edc1e4c2.js +0 -281
- package/dist/htmlMode-17cc8a79.js +0 -1456
- package/dist/index-32e797ab.js +0 -126102
- package/dist/ini-425ab711.js +0 -68
- package/dist/java-2bc0fd68.js +0 -221
- package/dist/javascript-5e615a9b.js +0 -75
- package/dist/jsonMode-742c1a1b.js +0 -1867
- package/dist/julia-1c932615.js +0 -496
- package/dist/kotlin-1ab839c8.js +0 -245
- package/dist/less-6fe856f5.js +0 -168
- package/dist/lexon-4955ac52.js +0 -151
- package/dist/liquid-843d0e9e.js +0 -238
- package/dist/lua-3cca0047.js +0 -157
- package/dist/m3-132e9cb6.js +0 -210
- package/dist/markdown-ea59a0c1.js +0 -202
- package/dist/mips-19811f4b.js +0 -194
- package/dist/msdax-69954a10.js +0 -377
- package/dist/mysql-82088e5d.js +0 -876
- package/dist/objective-c-1976eccc.js +0 -188
- package/dist/pascal-8ef177cb.js +0 -245
- package/dist/pascaligo-bc517b9e.js +0 -158
- package/dist/perl-8b93582c.js +0 -599
- package/dist/pgsql-00c11a6d.js +0 -847
- package/dist/php-4c8c276f.js +0 -471
- package/dist/pla-e9b4ffb1.js +0 -131
- package/dist/postiats-2071af8c.js +0 -544
- package/dist/powerquery-8e388ceb.js +0 -890
- package/dist/powershell-e35db398.js +0 -233
- package/dist/protobuf-a24b9176.js +0 -422
- package/dist/pug-2c94d9b8.js +0 -393
- package/dist/python-67e4059c.js +0 -259
- package/dist/qsharp-d730d7fe.js +0 -282
- package/dist/r-be193556.js +0 -245
- package/dist/razor-8e9d6aa5.js +0 -512
- package/dist/redis-9690c6ac.js +0 -298
- package/dist/redshift-6bdcdeaa.js +0 -806
- package/dist/restructuredtext-a08c1d20.js +0 -162
- package/dist/ruby-2247692b.js +0 -444
- package/dist/rust-1dffb4d5.js +0 -337
- package/dist/sb-136598e9.js +0 -110
- package/dist/scala-b1100fed.js +0 -353
- package/dist/scheme-038c8094.js +0 -114
- package/dist/scss-700d1b52.js +0 -244
- package/dist/shell-86c16e0f.js +0 -224
- package/dist/solidity-c05fdf3c.js +0 -1351
- package/dist/sophia-cd645d71.js +0 -190
- package/dist/sparql-01d9ec9c.js +0 -193
- package/dist/sql-4c33df41.js +0 -818
- package/dist/st-52cf1408.js +0 -414
- package/dist/swift-13c792ba.js +0 -315
- package/dist/systemverilog-0bd8b730.js +0 -556
- package/dist/tcl-463d7c75.js +0 -232
- package/dist/tsMode-d5db18bc.js +0 -811
- package/dist/twig-0d98f5ec.js +0 -323
- package/dist/typescript-302557e6.js +0 -328
- package/dist/vb-3a2b0a51.js +0 -364
- package/dist/wgsl-b2ddb3e4.js +0 -420
- package/dist/xml-47f08bc4.js +0 -95
- package/dist/yaml-49f075d9.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,53 @@
|
|
|
1
|
+
import React, { Component, createContext } from 'react'
|
|
2
|
+
import { RadioGroupItemProps, RadioGroupProps } from './Types'
|
|
3
|
+
const RadioGroupContext = createContext({ name: '', value: '', disabled: false, onChange: (event) => {} })
|
|
4
|
+
|
|
5
|
+
export class RadioGroupItem extends Component<RadioGroupItemProps> {
|
|
6
|
+
render() {
|
|
7
|
+
return (
|
|
8
|
+
<RadioGroupContext.Consumer>
|
|
9
|
+
{(context) => {
|
|
10
|
+
return (
|
|
11
|
+
<>
|
|
12
|
+
<label className={(this.props.disabled || context.disabled) ? 'form__radio-item disabled' : 'form__radio-item'}>
|
|
13
|
+
<input
|
|
14
|
+
type="radio"
|
|
15
|
+
className="form__checkbox"
|
|
16
|
+
name={context.name}
|
|
17
|
+
disabled={context.disabled || this.props.disabled}
|
|
18
|
+
onChange={context.onChange}
|
|
19
|
+
value={this.props.value}
|
|
20
|
+
checked={context.value === this.props.value}
|
|
21
|
+
data-testid={this.props.dataTestId}
|
|
22
|
+
/>
|
|
23
|
+
<span className="form__radio-item-content" data-testid={`${this.props.dataTestId}-span`}>
|
|
24
|
+
<span className="radio__button"></span>
|
|
25
|
+
<span className="radio__title">{this.props.children}</span>
|
|
26
|
+
</span>
|
|
27
|
+
</label>
|
|
28
|
+
</>
|
|
29
|
+
)
|
|
30
|
+
}}
|
|
31
|
+
</RadioGroupContext.Consumer>
|
|
32
|
+
)
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export class RadioGroup extends Component<RadioGroupProps> {
|
|
37
|
+
render() {
|
|
38
|
+
return (
|
|
39
|
+
<div className={`form__radio-group ${this.props.className || ''}`}>
|
|
40
|
+
<RadioGroupContext.Provider
|
|
41
|
+
value={{
|
|
42
|
+
name: this.props.name,
|
|
43
|
+
value: this.props.value,
|
|
44
|
+
disabled: this.props.disabled,
|
|
45
|
+
onChange: this.props.onChange,
|
|
46
|
+
}}
|
|
47
|
+
>
|
|
48
|
+
{this.props.children}
|
|
49
|
+
</RadioGroupContext.Provider>
|
|
50
|
+
</div>
|
|
51
|
+
)
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -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,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,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
|
+
}
|