@devtron-labs/devtron-fe-common-lib 0.0.59-beta-5 → 0.0.59-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.
- 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 -65
- 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 +6 -0
- package/dist/Common/Hooks/useUrlFilters/useUrlFilters.d.ts +32 -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 +703 -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/index.d.ts +2 -7
- package/dist/index.js +29110 -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.svg +5 -0
- package/src/Assets/Icon/ic-chevron-down.svg +5 -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 +6 -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 +776 -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/custom.d.ts +13 -0
- package/src/index.ts +2 -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-dc5f347f.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-adb1a1bb.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-096fff05.js +0 -391
- package/dist/hcl-e883a0d4.js +0 -177
- package/dist/html-0cbfb620.js +0 -281
- package/dist/htmlMode-cb96e200.js +0 -1456
- package/dist/index-3e12a5d1.js +0 -126104
- package/dist/ini-425ab711.js +0 -68
- package/dist/java-2bc0fd68.js +0 -221
- package/dist/javascript-198e562f.js +0 -75
- package/dist/jsonMode-9c219fc6.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-7405cc0a.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-2df08096.js +0 -259
- package/dist/qsharp-d730d7fe.js +0 -282
- package/dist/r-be193556.js +0 -245
- package/dist/razor-11eb7ebc.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-35934209.js +0 -811
- package/dist/twig-0d98f5ec.js +0 -323
- package/dist/typescript-999619a1.js +0 -328
- package/dist/vb-3a2b0a51.js +0 -364
- package/dist/wgsl-b2ddb3e4.js +0 -420
- package/dist/xml-ebd03a57.js +0 -95
- package/dist/yaml-d1cda485.js +0 -184
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { AddCDPositions, AddPipelineType, EdgeEndNodeType, EdgeNodeType, Point } from '../Types'
|
|
2
|
+
|
|
3
|
+
export interface AddCDButtonProps {
|
|
4
|
+
position: AddCDPositions
|
|
5
|
+
addCDButtons: AddCDPositions[]
|
|
6
|
+
endNode: Point & EdgeEndNodeType
|
|
7
|
+
startNode: Point & EdgeNodeType
|
|
8
|
+
handleAddCD: (position: AddCDPositions) => void
|
|
9
|
+
tooltipContent?: string
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface HandleAddCD {
|
|
13
|
+
position: AddCDPositions
|
|
14
|
+
handleCDSelect: (
|
|
15
|
+
workflowId: number | string,
|
|
16
|
+
ciPipelineId: number | string,
|
|
17
|
+
parentPipelineType: string,
|
|
18
|
+
parentPipelineId: number | string,
|
|
19
|
+
isWebhookCD?: boolean,
|
|
20
|
+
childPipelineId?: number | string,
|
|
21
|
+
addType?: AddPipelineType,
|
|
22
|
+
) => void
|
|
23
|
+
startNode: EdgeNodeType
|
|
24
|
+
endNode: EdgeEndNodeType
|
|
25
|
+
workflowId: number | string
|
|
26
|
+
ciPipelineId: number | string
|
|
27
|
+
isWebhookCD: boolean
|
|
28
|
+
isParallelEdge: boolean
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface GetPipelineType {
|
|
32
|
+
isWebhookCD: boolean
|
|
33
|
+
startNode: EdgeNodeType
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface TooltipContentProps {
|
|
37
|
+
tooltipContent?: string
|
|
38
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { AddCDPositions, AddPipelineType, PipelineType, WorkflowNodeType } from '../Types'
|
|
2
|
+
import { HandleAddCD, GetPipelineType } from './types'
|
|
3
|
+
|
|
4
|
+
const getPipelineType = ({ isWebhookCD, startNode }: GetPipelineType) => {
|
|
5
|
+
if (isWebhookCD) {
|
|
6
|
+
return PipelineType.WEBHOOK
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
if (startNode.type === WorkflowNodeType.CI) {
|
|
10
|
+
return PipelineType.CI_PIPELINE
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
return PipelineType.CD_PIPELINE
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const handleAddCD = ({
|
|
17
|
+
position,
|
|
18
|
+
handleCDSelect,
|
|
19
|
+
startNode,
|
|
20
|
+
endNode,
|
|
21
|
+
workflowId,
|
|
22
|
+
ciPipelineId,
|
|
23
|
+
isWebhookCD,
|
|
24
|
+
isParallelEdge,
|
|
25
|
+
}: HandleAddCD) => {
|
|
26
|
+
if (!handleCDSelect) {
|
|
27
|
+
return
|
|
28
|
+
}
|
|
29
|
+
const pipelineType = getPipelineType({ isWebhookCD, startNode })
|
|
30
|
+
const addPipelineType =
|
|
31
|
+
isParallelEdge && position === AddCDPositions.RIGHT ? AddPipelineType.PARALLEL : AddPipelineType.SEQUENTIAL
|
|
32
|
+
const endNodeId = !isParallelEdge && position === AddCDPositions.RIGHT ? endNode.id : null
|
|
33
|
+
|
|
34
|
+
handleCDSelect(workflowId, ciPipelineId, pipelineType, startNode.id, isWebhookCD, endNodeId, addPipelineType)
|
|
35
|
+
}
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { ServerErrors } from './ServerError'
|
|
2
|
+
import { FALLBACK_REQUEST_TIMEOUT, Host, URLS } from './Constants'
|
|
3
|
+
import { ResponseType, APIOptions } from './Types'
|
|
4
|
+
import { MutableRefObject } from 'react'
|
|
5
|
+
|
|
6
|
+
const responseMessages = {
|
|
7
|
+
100: 'Continue',
|
|
8
|
+
101: 'Switching Protocols',
|
|
9
|
+
102: 'Processing(WebDAV)',
|
|
10
|
+
200: 'OK',
|
|
11
|
+
201: 'Created',
|
|
12
|
+
202: 'Accepted',
|
|
13
|
+
203: 'Non - Authoritative Information',
|
|
14
|
+
204: 'No Content',
|
|
15
|
+
205: 'Reset Content',
|
|
16
|
+
206: 'Partial Content',
|
|
17
|
+
207: 'Multi - Status(WebDAV)',
|
|
18
|
+
208: 'Already Reported(WebDAV)',
|
|
19
|
+
226: 'IM Used',
|
|
20
|
+
300: 'Multiple Choices',
|
|
21
|
+
301: 'Moved Permanently',
|
|
22
|
+
302: 'Found',
|
|
23
|
+
303: 'See Other',
|
|
24
|
+
304: 'Not Modified',
|
|
25
|
+
305: 'Use Proxy',
|
|
26
|
+
307: 'Temporary Redirect',
|
|
27
|
+
308: 'Permanent Redirect(experimental)',
|
|
28
|
+
400: 'Bad Request',
|
|
29
|
+
401: 'Unauthorized',
|
|
30
|
+
402: 'Payment Required',
|
|
31
|
+
403: 'Forbidden',
|
|
32
|
+
404: 'Not Found',
|
|
33
|
+
405: 'Method Not Allowed',
|
|
34
|
+
406: 'Not Acceptable',
|
|
35
|
+
407: 'Proxy Authentication Required',
|
|
36
|
+
408: 'Request Timeout',
|
|
37
|
+
409: 'Conflict',
|
|
38
|
+
410: 'Gone',
|
|
39
|
+
411: 'Length Required',
|
|
40
|
+
412: 'Precondition Failed',
|
|
41
|
+
413: 'Request Entity Too Large',
|
|
42
|
+
414: 'Request - URI Too Long',
|
|
43
|
+
415: 'Unsupported Media Type',
|
|
44
|
+
416: 'Requested Range Not Satisfiable',
|
|
45
|
+
417: 'Expectation Failed',
|
|
46
|
+
418: "I'm a teapot",
|
|
47
|
+
420: 'Enhance Your Calm(Twitter)',
|
|
48
|
+
422: 'Unprocessable Entity(WebDAV)',
|
|
49
|
+
423: 'Locked(WebDAV)',
|
|
50
|
+
424: 'Failed Dependency(WebDAV)',
|
|
51
|
+
425: 'Reserved for WebDAV',
|
|
52
|
+
426: 'Upgrade Required',
|
|
53
|
+
428: 'Precondition Required',
|
|
54
|
+
429: 'Too Many Requests',
|
|
55
|
+
431: 'Request Header Fields Too Large',
|
|
56
|
+
444: 'No Response(Nginx)',
|
|
57
|
+
449: 'Retry With(Microsoft)',
|
|
58
|
+
450: 'Blocked by Windows Parental Controls(Microsoft)',
|
|
59
|
+
451: 'Unavailable For Legal Reasons',
|
|
60
|
+
499: 'Client Closed Request(Nginx)',
|
|
61
|
+
500: 'Internal Server Error',
|
|
62
|
+
501: 'Not Implemented',
|
|
63
|
+
502: 'Bad Gateway',
|
|
64
|
+
503: 'Service Unavailable',
|
|
65
|
+
504: 'Gateway Timeout',
|
|
66
|
+
505: 'HTTP Version Not Supported',
|
|
67
|
+
506: 'Variant Also Negotiates(Experimental)',
|
|
68
|
+
507: 'Insufficient Storage(WebDAV)',
|
|
69
|
+
508: 'Loop Detected(WebDAV)',
|
|
70
|
+
509: 'Bandwidth Limit Exceeded(Apache)',
|
|
71
|
+
510: 'Not Extended',
|
|
72
|
+
511: 'Network Authentication Required',
|
|
73
|
+
598: 'Network read timeout error',
|
|
74
|
+
599: 'Network connect timeout error',
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function handleLogout() {
|
|
78
|
+
const continueParam = `${window.location.pathname.replace(process.env.PUBLIC_URL, '')}${window.location.search}`
|
|
79
|
+
window.location.href = `${window.location.origin}${process.env.PUBLIC_URL}${URLS.LOGIN_SSO}?continue=${continueParam}`
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
async function handleServerError(contentType, response) {
|
|
83
|
+
//Test for HTTP Status Code
|
|
84
|
+
let code: number = response.status
|
|
85
|
+
let status: string = response.statusText || responseMessages[code]
|
|
86
|
+
let serverError = new ServerErrors({ code, errors: [] })
|
|
87
|
+
if (contentType !== 'application/json') {
|
|
88
|
+
//used for better debugging,
|
|
89
|
+
status = `${responseMessages[code]}. Please try again.`
|
|
90
|
+
} else {
|
|
91
|
+
const responseBody = await response.json()
|
|
92
|
+
if (responseBody.errors) {
|
|
93
|
+
serverError.errors = responseBody.errors
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
serverError.errors =
|
|
97
|
+
serverError.errors.length > 0 ? serverError.errors : [{ code, internalMessage: status, userMessage: status }]
|
|
98
|
+
throw serverError
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
async function fetchAPI(
|
|
102
|
+
url: string,
|
|
103
|
+
type: string,
|
|
104
|
+
data: object,
|
|
105
|
+
signal: AbortSignal,
|
|
106
|
+
preventAutoLogout = false,
|
|
107
|
+
isMultipartRequest?: boolean,
|
|
108
|
+
): Promise<ResponseType> {
|
|
109
|
+
let options = {
|
|
110
|
+
method: type,
|
|
111
|
+
signal,
|
|
112
|
+
body: data ? JSON.stringify(data) : undefined,
|
|
113
|
+
}
|
|
114
|
+
options['credentials'] = 'include' as RequestCredentials
|
|
115
|
+
return fetch(
|
|
116
|
+
`${Host}/${url}`,
|
|
117
|
+
!isMultipartRequest
|
|
118
|
+
? options
|
|
119
|
+
: ({
|
|
120
|
+
method: type,
|
|
121
|
+
body: data,
|
|
122
|
+
} as RequestInit),
|
|
123
|
+
).then(
|
|
124
|
+
async (response) => {
|
|
125
|
+
let contentType = response.headers.get('Content-Type')
|
|
126
|
+
if (response.status === 401) {
|
|
127
|
+
if (preventAutoLogout) {
|
|
128
|
+
throw new ServerErrors({
|
|
129
|
+
code: 401,
|
|
130
|
+
errors: [
|
|
131
|
+
{ code: 401, internalMessage: 'Please login again', userMessage: 'Please login again' },
|
|
132
|
+
],
|
|
133
|
+
})
|
|
134
|
+
} else {
|
|
135
|
+
handleLogout()
|
|
136
|
+
return { code: 401, status: 'Unauthorized', result: [] }
|
|
137
|
+
}
|
|
138
|
+
} else if (response.status >= 300 && response.status <= 599) {
|
|
139
|
+
return await handleServerError(contentType, response)
|
|
140
|
+
} else {
|
|
141
|
+
if (contentType === 'application/json') {
|
|
142
|
+
return response.json().then((responseBody) => {
|
|
143
|
+
if (responseBody.code >= 300 && responseBody.code <= 599) {
|
|
144
|
+
//Test Code in Response Body, despite successful HTTP Response Code
|
|
145
|
+
throw new ServerErrors({ code: responseBody.code, errors: responseBody.errors })
|
|
146
|
+
} else {
|
|
147
|
+
//Successfull Response. Expected Response Type {code, result, status}
|
|
148
|
+
return responseBody
|
|
149
|
+
}
|
|
150
|
+
})
|
|
151
|
+
} else if (contentType === 'octet-stream' || contentType === 'application/octet-stream') {
|
|
152
|
+
//used in getArtifact() API only
|
|
153
|
+
return response
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
(error) => {
|
|
158
|
+
//Network call fails. Handle Failed to Fetch
|
|
159
|
+
let err = {
|
|
160
|
+
code: 0,
|
|
161
|
+
userMessage: error.message,
|
|
162
|
+
internalMessage: error.message,
|
|
163
|
+
moreInfo: error.message,
|
|
164
|
+
}
|
|
165
|
+
throw new ServerErrors({ code: 0, errors: [err] })
|
|
166
|
+
},
|
|
167
|
+
)
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
function fetchInTime(
|
|
171
|
+
url: string,
|
|
172
|
+
type: string,
|
|
173
|
+
data: object,
|
|
174
|
+
options?: APIOptions,
|
|
175
|
+
isMultipartRequest?: boolean,
|
|
176
|
+
): Promise<ResponseType> {
|
|
177
|
+
const controller = new AbortController()
|
|
178
|
+
const { signal } = controller
|
|
179
|
+
const timeoutPromise: Promise<ResponseType> = new Promise((resolve, reject) => {
|
|
180
|
+
const requestTimeout = (window as any)?._env_?.GLOBAL_API_TIMEOUT || FALLBACK_REQUEST_TIMEOUT
|
|
181
|
+
const timeout = options?.timeout ? options.timeout : requestTimeout
|
|
182
|
+
|
|
183
|
+
setTimeout(() => {
|
|
184
|
+
controller.abort()
|
|
185
|
+
reject({
|
|
186
|
+
code: 408,
|
|
187
|
+
errors: [{ code: 408, internalMessage: 'Request cancelled', userMessage: 'Request Cancelled' }],
|
|
188
|
+
})
|
|
189
|
+
}, timeout)
|
|
190
|
+
})
|
|
191
|
+
return Promise.race([
|
|
192
|
+
fetchAPI(url, type, data, options?.signal || signal, options?.preventAutoLogout || false, isMultipartRequest),
|
|
193
|
+
timeoutPromise,
|
|
194
|
+
]).catch((err) => {
|
|
195
|
+
if (err instanceof ServerErrors) {
|
|
196
|
+
throw err
|
|
197
|
+
} else {
|
|
198
|
+
throw new ServerErrors({
|
|
199
|
+
code: 408,
|
|
200
|
+
errors: [
|
|
201
|
+
{
|
|
202
|
+
code: 408,
|
|
203
|
+
internalMessage: 'That took longer than expected.',
|
|
204
|
+
userMessage: 'That took longer than expected.',
|
|
205
|
+
},
|
|
206
|
+
],
|
|
207
|
+
})
|
|
208
|
+
}
|
|
209
|
+
})
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
export const post = (
|
|
213
|
+
url: string,
|
|
214
|
+
data: object,
|
|
215
|
+
options?: APIOptions,
|
|
216
|
+
isMultipartRequest?: boolean,
|
|
217
|
+
): Promise<ResponseType> => {
|
|
218
|
+
return fetchInTime(url, 'POST', data, options, isMultipartRequest)
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export const put = (url: string, data: object, options?: APIOptions): Promise<ResponseType> => {
|
|
222
|
+
return fetchInTime(url, 'PUT', data, options)
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
export const get = (url: string, options?: APIOptions): Promise<ResponseType> => {
|
|
226
|
+
return fetchInTime(url, 'GET', null, options)
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
export const trash = (url: string, data?: object, options?: APIOptions): Promise<ResponseType> => {
|
|
230
|
+
return fetchInTime(url, 'DELETE', data, options)
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Aborts the previous request before triggering next request
|
|
235
|
+
*/
|
|
236
|
+
export const abortPreviousRequests = <T,>(
|
|
237
|
+
callback: () => Promise<T>,
|
|
238
|
+
abortControllerRef: MutableRefObject<AbortController>,
|
|
239
|
+
): Promise<T> => {
|
|
240
|
+
abortControllerRef.current.abort()
|
|
241
|
+
// eslint-disable-next-line no-param-reassign
|
|
242
|
+
abortControllerRef.current = new AbortController()
|
|
243
|
+
return callback()
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Returns true if the error is due to a aborted request
|
|
248
|
+
*/
|
|
249
|
+
export const getIsRequestAborted = (error) =>
|
|
250
|
+
// The 0 code is common for aborted and blocked requests
|
|
251
|
+
error && error.code === 0 && error.message === 'The user aborted a request.'
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import Tippy from '@tippyjs/react'
|
|
2
|
+
import { ReactComponent as InfoIcon } from '../../Assets/Icon/ic-info-outlined.svg'
|
|
3
|
+
import { StatusConstants, YET_TO_RUN } from './constants'
|
|
4
|
+
import { AppStatusType } from './types'
|
|
5
|
+
import { triggerStatus } from './utils'
|
|
6
|
+
|
|
7
|
+
export default function AppStatus({
|
|
8
|
+
appStatus,
|
|
9
|
+
isDeploymentStatus = false,
|
|
10
|
+
isJobView = false,
|
|
11
|
+
isVirtualEnv,
|
|
12
|
+
hideStatusMessage = false,
|
|
13
|
+
}: AppStatusType) {
|
|
14
|
+
let status = appStatus
|
|
15
|
+
if (isDeploymentStatus) {
|
|
16
|
+
status = triggerStatus(appStatus)
|
|
17
|
+
}
|
|
18
|
+
const appStatusLowerCase = status?.toLowerCase()
|
|
19
|
+
const isNotDeployed = appStatusLowerCase === StatusConstants.NOT_DEPLOYED.noSpaceLower
|
|
20
|
+
const iconClass = isNotDeployed ? StatusConstants.NOT_DEPLOYED.lowerCase : appStatusLowerCase
|
|
21
|
+
const statusMessage = status || (isVirtualEnv ? StatusConstants.NOT_AVILABLE.normalCase : '-')
|
|
22
|
+
const notDeployed = isJobView ? YET_TO_RUN : StatusConstants.NOT_DEPLOYED.normalCase
|
|
23
|
+
const textContent = isNotDeployed ? notDeployed : statusMessage
|
|
24
|
+
|
|
25
|
+
const renderIcon = () => {
|
|
26
|
+
if (iconClass) {
|
|
27
|
+
return <span className={`dc__app-summary__icon icon-dim-16 ${iconClass} ${iconClass}--node`} />
|
|
28
|
+
} else if (isVirtualEnv) {
|
|
29
|
+
return (
|
|
30
|
+
<span
|
|
31
|
+
className={`dc__app-summary__icon icon-dim-16 ${StatusConstants.NOT_DEPLOYED.lowerCase} ${StatusConstants.NOT_DEPLOYED.lowerCase}--node`}
|
|
32
|
+
/>
|
|
33
|
+
)
|
|
34
|
+
} else {
|
|
35
|
+
return (
|
|
36
|
+
<Tippy
|
|
37
|
+
className="default-tt w-200"
|
|
38
|
+
arrow={false}
|
|
39
|
+
placement="top"
|
|
40
|
+
content="To fetch app status for GitOps based deployments open the app detail page"
|
|
41
|
+
>
|
|
42
|
+
<InfoIcon className="icon-dim-16 fcn-6" />
|
|
43
|
+
</Tippy>
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return hideStatusMessage ? (
|
|
49
|
+
iconClass || isVirtualEnv ? (
|
|
50
|
+
<Tippy className="default-tt" arrow={false} placement="top" content={textContent}>
|
|
51
|
+
<div className="flex">{renderIcon()}</div>
|
|
52
|
+
</Tippy>
|
|
53
|
+
) : (
|
|
54
|
+
renderIcon()
|
|
55
|
+
)
|
|
56
|
+
) : (
|
|
57
|
+
<div className="flex left">
|
|
58
|
+
<div className="flex mr-6">{renderIcon()}</div>
|
|
59
|
+
<p data-testid={`${status}-app-status`} className="dc__truncate-text dc__first-letter-capitalize cn-6 m-0">
|
|
60
|
+
{textContent}
|
|
61
|
+
</p>
|
|
62
|
+
</div>
|
|
63
|
+
)
|
|
64
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export const StatusConstants = {
|
|
2
|
+
NOT_DEPLOYED: {
|
|
3
|
+
noSpaceLower: 'notdeployed',
|
|
4
|
+
normalCase: 'Not deployed',
|
|
5
|
+
lowerCase: 'not-deployed',
|
|
6
|
+
},
|
|
7
|
+
APP_STATUS: {
|
|
8
|
+
noSpaceLower: 'appStatus',
|
|
9
|
+
normalText: 'App status',
|
|
10
|
+
},
|
|
11
|
+
PROJECT: {
|
|
12
|
+
pluralLower: 'projects',
|
|
13
|
+
lowerCase: 'project',
|
|
14
|
+
},
|
|
15
|
+
CLUSTER: {
|
|
16
|
+
pluralLower: 'clusters',
|
|
17
|
+
lowerCase: 'cluster',
|
|
18
|
+
},
|
|
19
|
+
NAMESPACE: {
|
|
20
|
+
pluralLower: 'namespaces',
|
|
21
|
+
lowerCase: 'namespace',
|
|
22
|
+
},
|
|
23
|
+
ENVIRONMENT: {
|
|
24
|
+
pluralLower: 'environments',
|
|
25
|
+
lowerCase: 'environment',
|
|
26
|
+
},
|
|
27
|
+
NOT_AVILABLE: {
|
|
28
|
+
normalCase: 'Not available',
|
|
29
|
+
},
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export enum TIMELINE_STATUS {
|
|
33
|
+
DEPLOYMENT_INITIATED = 'DEPLOYMENT_INITIATED',
|
|
34
|
+
GIT_COMMIT = 'GIT_COMMIT',
|
|
35
|
+
GIT_COMMIT_FAILED = 'GIT_COMMIT_FAILED',
|
|
36
|
+
KUBECTL_APPLY = 'KUBECTL_APPLY',
|
|
37
|
+
KUBECTL_APPLY_STARTED = 'KUBECTL_APPLY_STARTED',
|
|
38
|
+
KUBECTL_APPLY_SYNCED = 'KUBECTL_APPLY_SYNCED',
|
|
39
|
+
HEALTHY = 'HEALTHY',
|
|
40
|
+
APP_HEALTH = 'APP_HEALTH',
|
|
41
|
+
DEPLOYMENT_FAILED = 'FAILED',
|
|
42
|
+
FETCH_TIMED_OUT = 'TIMED_OUT',
|
|
43
|
+
UNABLE_TO_FETCH_STATUS = 'UNABLE_TO_FETCH_STATUS',
|
|
44
|
+
DEGRADED = 'DEGRADED',
|
|
45
|
+
DEPLOYMENT_SUPERSEDED = 'DEPLOYMENT_SUPERSEDED',
|
|
46
|
+
ABORTED = 'ABORTED',
|
|
47
|
+
INPROGRESS = 'INPROGRESS',
|
|
48
|
+
HELM_PACKAGE_GENERATED = 'HELM_PACKAGE_GENERATED',
|
|
49
|
+
HELM_MANIFEST_PUSHED_TO_HELM_REPO = 'HELM_MANIFEST_PUSHED_TO_HELM_REPO',
|
|
50
|
+
HELM_MANIFEST_PUSHED_TO_HELM_REPO_FAILED = 'HELM_MANIFEST_PUSHED_TO_HELM_REPO_FAILED',
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export const YET_TO_RUN = 'Yet to run'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as AppStatus } from './AppStatus'
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface AppStatusType {
|
|
2
|
+
appStatus: string
|
|
3
|
+
isDeploymentStatus?: boolean
|
|
4
|
+
isJobView?: boolean
|
|
5
|
+
isVirtualEnv?: boolean
|
|
6
|
+
/**
|
|
7
|
+
* Hide the status message if true and show status message in tooltip
|
|
8
|
+
*
|
|
9
|
+
* @default false
|
|
10
|
+
*/
|
|
11
|
+
hideStatusMessage?: boolean
|
|
12
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TIMELINE_STATUS } from './constants'
|
|
2
|
+
|
|
3
|
+
export const triggerStatus = (triggerDetailStatus: string): string => {
|
|
4
|
+
let triggerStatus = triggerDetailStatus?.toUpperCase()
|
|
5
|
+
if (triggerStatus === TIMELINE_STATUS.ABORTED || triggerStatus === TIMELINE_STATUS.DEGRADED) {
|
|
6
|
+
return 'Failed'
|
|
7
|
+
} else if (triggerStatus === TIMELINE_STATUS.HEALTHY) {
|
|
8
|
+
return 'Succeeded'
|
|
9
|
+
} else if (triggerStatus === TIMELINE_STATUS.INPROGRESS) {
|
|
10
|
+
return 'Inprogress'
|
|
11
|
+
} else {
|
|
12
|
+
return triggerDetailStatus
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import React, { useMemo, useEffect } from 'react'
|
|
2
|
+
import { Link, useRouteMatch, useParams } from 'react-router-dom'
|
|
3
|
+
import { useBreadcrumbContext } from './BreadcrumbStore'
|
|
4
|
+
import { ConditionalWrap } from '../Helper'
|
|
5
|
+
import { Breadcrumb, Breadcrumbs, UseBreadcrumbOptionalProps, UseBreadcrumbState } from './Types'
|
|
6
|
+
export const BreadcrumbContext = React.createContext(null)
|
|
7
|
+
|
|
8
|
+
export function useBreadcrumb(props?: UseBreadcrumbOptionalProps, deps?: any[]): UseBreadcrumbState {
|
|
9
|
+
let sep = props?.sep || '/'
|
|
10
|
+
deps = deps || []
|
|
11
|
+
const { url, path } = useRouteMatch()
|
|
12
|
+
const params = useParams()
|
|
13
|
+
const { state, setState } = useBreadcrumbContext()
|
|
14
|
+
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (!props || !props.alias) return
|
|
17
|
+
setState((state) => ({ ...state, alias: { ...state.alias, ...props.alias } }))
|
|
18
|
+
return () => resetCrumb(Object.keys(props.alias))
|
|
19
|
+
}, deps)
|
|
20
|
+
|
|
21
|
+
function setCrumb(props) {
|
|
22
|
+
setState((state) => ({ ...state, alias: { ...state.alias, ...props } }))
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function resetCrumb(props: string[]) {
|
|
26
|
+
const tempAlias = props.reduce((agg, curr, idx) => {
|
|
27
|
+
delete agg[curr]
|
|
28
|
+
return agg
|
|
29
|
+
}, state.alias)
|
|
30
|
+
setState((state) => ({ ...state, alias: tempAlias }))
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
let levels: Breadcrumb[] = useMemo(() => {
|
|
34
|
+
const paths = path.split('/').filter(Boolean)
|
|
35
|
+
const urls = url.split('/').filter(Boolean)
|
|
36
|
+
return paths.map((path, idx) => {
|
|
37
|
+
const crumb: Breadcrumb = { to: urls[idx], name: path }
|
|
38
|
+
if (path.startsWith(':') && params[path.replace(':', '')]) {
|
|
39
|
+
crumb.className = 'param'
|
|
40
|
+
}
|
|
41
|
+
return crumb
|
|
42
|
+
})
|
|
43
|
+
}, [path, url])
|
|
44
|
+
const { res: breadcrumbs } = useMemo(() => {
|
|
45
|
+
return levels.reduce(
|
|
46
|
+
(agg, curr, idx) => {
|
|
47
|
+
const { res, prefix } = agg
|
|
48
|
+
const { to, name } = curr
|
|
49
|
+
res.push({
|
|
50
|
+
to:
|
|
51
|
+
!state.alias[name]?.component || (state.alias[name]?.component && state.alias[name]?.linked)
|
|
52
|
+
? `${prefix}${to}`
|
|
53
|
+
: null,
|
|
54
|
+
name:
|
|
55
|
+
typeof state.alias[name] === 'object'
|
|
56
|
+
? !!state.alias[name]?.component
|
|
57
|
+
? state.alias[name].component
|
|
58
|
+
: null
|
|
59
|
+
: state.alias[name] || name,
|
|
60
|
+
className: curr.className || '',
|
|
61
|
+
})
|
|
62
|
+
return { res, prefix: `${prefix}${curr.to}${sep}` }
|
|
63
|
+
},
|
|
64
|
+
{ res: [], prefix: '/' },
|
|
65
|
+
)
|
|
66
|
+
}, [levels, state])
|
|
67
|
+
|
|
68
|
+
return { breadcrumbs, setCrumb, resetCrumb }
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export const BreadCrumb: React.FC<Breadcrumbs> = ({
|
|
72
|
+
breadcrumbs,
|
|
73
|
+
sep = '/',
|
|
74
|
+
className = 'dc__devtron-breadcrumb__item',
|
|
75
|
+
}) => {
|
|
76
|
+
const { url } = useRouteMatch()
|
|
77
|
+
const filteredCrumbs = breadcrumbs.filter((crumb) => !!crumb.name)
|
|
78
|
+
return (
|
|
79
|
+
<React.Fragment>
|
|
80
|
+
{filteredCrumbs.map((breadcrumb, idx) => (
|
|
81
|
+
<React.Fragment key={idx}>
|
|
82
|
+
<ConditionalWrap
|
|
83
|
+
condition={!!breadcrumb.to}
|
|
84
|
+
wrap={(children) => (
|
|
85
|
+
<Link
|
|
86
|
+
className={`${url === breadcrumb.to ? 'active' : ''} ${className} ${
|
|
87
|
+
breadcrumb.className || ''
|
|
88
|
+
}`}
|
|
89
|
+
to={breadcrumb.to}
|
|
90
|
+
>
|
|
91
|
+
{children}
|
|
92
|
+
</Link>
|
|
93
|
+
)}
|
|
94
|
+
>
|
|
95
|
+
{breadcrumb.name}
|
|
96
|
+
</ConditionalWrap>
|
|
97
|
+
|
|
98
|
+
{idx + 1 !== filteredCrumbs.length && breadcrumb.name && (
|
|
99
|
+
<span className={`${className}__separator cn-5`}>{sep}</span>
|
|
100
|
+
)}
|
|
101
|
+
</React.Fragment>
|
|
102
|
+
))}
|
|
103
|
+
</React.Fragment>
|
|
104
|
+
)
|
|
105
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React, { createContext, useState } from 'react'
|
|
2
|
+
|
|
3
|
+
const initialState = {
|
|
4
|
+
alias: {},
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
const Store = ({ children }) => {
|
|
8
|
+
const [state, setState] = useState(initialState)
|
|
9
|
+
return <BreadcrumbContext.Provider value={{ state, setState }}>{children}</BreadcrumbContext.Provider>
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const BreadcrumbContext = createContext({
|
|
13
|
+
state: { alias: {} },
|
|
14
|
+
setState: null,
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
export function useBreadcrumbContext() {
|
|
18
|
+
const context = React.useContext(BreadcrumbContext)
|
|
19
|
+
if (!context) {
|
|
20
|
+
throw new Error(`breadcrumb components cannot be used outside Breadcrumb context`)
|
|
21
|
+
}
|
|
22
|
+
return context
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default Store
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
|
|
2
|
+
export interface Breadcrumb {
|
|
3
|
+
to: string
|
|
4
|
+
name: string
|
|
5
|
+
className?: string
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface UseBreadcrumbState {
|
|
9
|
+
breadcrumbs: Breadcrumb[]
|
|
10
|
+
setCrumb: (props: { [key: string]: any }) => void
|
|
11
|
+
resetCrumb: (props: string[]) => void
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface AdvancedAlias {
|
|
15
|
+
component: any
|
|
16
|
+
linked: boolean
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface UseBreadcrumbProps {
|
|
20
|
+
sep?: string
|
|
21
|
+
alias?: { [key: string]: AdvancedAlias | any }
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface Breadcrumbs {
|
|
25
|
+
breadcrumbs: Breadcrumb[]
|
|
26
|
+
sep?: string
|
|
27
|
+
className?: string
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export type UseBreadcrumbOptionalProps = UseBreadcrumbProps | null
|