diff --git a/yaku-ui/.gitignore b/yaku-ui/.gitignore index 19a011b5..d29ae2f7 100644 --- a/yaku-ui/.gitignore +++ b/yaku-ui/.gitignore @@ -4,3 +4,4 @@ .nvmrc node_modules +.turbo/**/* diff --git a/yaku-ui/frog-vue/package.json b/yaku-ui/frog-vue/package.json index 93a18b61..0f9e9b7c 100644 --- a/yaku-ui/frog-vue/package.json +++ b/yaku-ui/frog-vue/package.json @@ -55,7 +55,7 @@ "jsdom": "^20.0.3", "release-it": "^16.2.1", "sass": "^1.69.4", - "typescript": "~4.7.4", + "typescript": "^4.9.4", "vite": "^4.5.5", "vite-plugin-dts": "^1.7.1", "vitest": "^0.25.6", diff --git a/yaku-ui/package-lock.json b/yaku-ui/package-lock.json index 487323c0..d703204f 100644 --- a/yaku-ui/package-lock.json +++ b/yaku-ui/package-lock.json @@ -43,7 +43,7 @@ "jsdom": "^20.0.3", "release-it": "^16.2.1", "sass": "^1.69.4", - "typescript": "~4.7.4", + "typescript": "^4.9.4", "vite": "^4.5.5", "vite-plugin-dts": "^1.7.1", "vitest": "^0.25.6", @@ -19970,9 +19970,9 @@ } }, "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "devOptional": true, "license": "Apache-2.0", "bin": { @@ -23806,20 +23806,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "qg-service-ui/node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, "qg-service-ui/node_modules/universalify": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", diff --git a/yaku-ui/package.json b/yaku-ui/package.json index 8ee5865b..3b4429e0 100644 --- a/yaku-ui/package.json +++ b/yaku-ui/package.json @@ -12,6 +12,8 @@ "dev": "npm run dev --workspace qg-service-ui", "build": "npx turbo run build --continue --cache-dir=.turbo", "test:unit": "npm run test:unit --workspace qg-service-ui", + "test:unit:ci": "npm run test:unit:ci --workspace qg-service-ui", + "test:unit:run": "npm run test:unit:run --workspace qg-service-ui", "format": "npx @biomejs/biome format --write ./src", "lint": "npx @biomejs/biome lint --write ./src", "lint-staged": "npx lint-staged", diff --git a/yaku-ui/qg-service-ui/components.d.ts b/yaku-ui/qg-service-ui/components.d.ts index edc5f3f3..cf846419 100644 --- a/yaku-ui/qg-service-ui/components.d.ts +++ b/yaku-ui/qg-service-ui/components.d.ts @@ -1,7 +1,3 @@ -// SPDX-FileCopyrightText: 2024 grow platform GmbH -// -// SPDX-License-Identifier: MIT - /* eslint-disable */ /* prettier-ignore */ // @ts-nocheck @@ -11,608 +7,198 @@ export {} declare module 'vue' { export interface GlobalComponents { - BuildingSilhouetteNatureCloudLG: typeof import( - './src/icons/emptyStateIcons/BuildingSilhouetteNatureCloudLG.vue', - )['default'] - BuildingSilhouetteNatureCloudSM: typeof import( - './src/icons/emptyStateIcons/BuildingSilhouetteNatureCloudSM.vue', - )['default'] - BuildingSilhouetteNatureCloudXS: typeof import( - './src/icons/emptyStateIcons/BuildingSilhouetteNatureCloudXS.vue', - )['default'] - DoorLockClosed: typeof import('./src/icons/DoorLockClosed.vue')['default'] - EmptyRelease: typeof import( - './src/icons/releasePlanningIcons/EmptyRelease.vue', - )['default'] - EmptyState: typeof import('./src/icons/EmptyState.vue')['default'] - EmptyState2: typeof import('./src/icons/EmptyState2.vue')['default'] - ErrorIndication: typeof import('./src/icons/ErrorIndication.vue')['default'] - ManuallyResolved: typeof import( - './src/icons/findingsIcons/ManuallyResolved.vue', - )['default'] - ManualMode: typeof import('./src/icons/ManualMode.vue')['default'] - ManualStatus_Failed: typeof import( - './src/icons/manualStatusIcons/ManualStatus_Failed.vue', - )['default'] - ManualStatus_NA: typeof import( - './src/icons/manualStatusIcons/ManualStatus_NA.vue', - )['default'] - ManualStatus_NotPassed: typeof import( - './src/icons/manualStatusIcons/ManualStatus_NotPassed.vue', - )['default'] - ManualStatus_Success: typeof import( - './src/icons/manualStatusIcons/ManualStatus_Success.vue', - )['default'] - ManualStatus_Unanswered: typeof import( - './src/icons/manualStatusIcons/ManualStatus_Unanswered.vue', - )['default'] - ManualStatus_Warning: typeof import( - './src/icons/manualStatusIcons/ManualStatus_Warning.vue', - )['default'] - PendingIcon: typeof import( - './src/icons/runIcons/PendingIcon.vue', - )['default'] - ResolvedCheck: typeof import( - './src/icons/releasePlanningIcons/ResolvedCheck.vue', - )['default'] - RobotBodyFilled: typeof import('./src/icons/RobotBodyFilled.vue')['default'] + BuildingSilhouetteNatureCloudLG: typeof import('./src/icons/emptyStateIcons/BuildingSilhouetteNatureCloudLG.vue')['default'] + BuildingSilhouetteNatureCloudSM: typeof import('./src/icons/emptyStateIcons/BuildingSilhouetteNatureCloudSM.vue')['default'] + BuildingSilhouetteNatureCloudXS: typeof import('./src/icons/emptyStateIcons/BuildingSilhouetteNatureCloudXS.vue')['default'] + EmptyRelease: typeof import('./src/icons/releasePlanningIcons/EmptyRelease.vue')['default'] + ManualStatus_Failed: typeof import('./src/icons/manualStatusIcons/ManualStatus_Failed.vue')['default'] + ManualStatus_NA: typeof import('./src/icons/manualStatusIcons/ManualStatus_NA.vue')['default'] + ManualStatus_NotPassed: typeof import('./src/icons/manualStatusIcons/ManualStatus_NotPassed.vue')['default'] + ManualStatus_Success: typeof import('./src/icons/manualStatusIcons/ManualStatus_Success.vue')['default'] + ManualStatus_Unanswered: typeof import('./src/icons/manualStatusIcons/ManualStatus_Unanswered.vue')['default'] + ManualStatus_Warning: typeof import('./src/icons/manualStatusIcons/ManualStatus_Warning.vue')['default'] + ResolvedCheck: typeof import('./src/icons/releasePlanningIcons/ResolvedCheck.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] - RunCompletedIcon: typeof import( - './src/icons/runIcons/RunCompletedIcon.vue', - )['default'] - RunFailedFilledIcon: typeof import( - './src/icons/runIcons/RunFailedFilledIcon.vue', - )['default'] - RunPendingIcon: typeof import( - './src/icons/runIcons/RunPendingIcon.vue', - )['default'] - RunRunningIcon: typeof import( - './src/icons/runIcons/RunRunningIcon.vue', - )['default'] - Success: typeof import('./src/icons/Success.vue')['default'] - TaskControlBtn: typeof import( - './src/icons/releasePlanningIcons/TaskControlBtn.vue', - )['default'] - UnFulFilledCheck: typeof import( - './src/icons/runResultIcons/UnFulFilledCheck.vue', - )['default'] - VuetifyAppIcon: typeof import( - './src/components/atoms/VuetifyAppIcon.vue', - )['default'] - VuetifyAppItem: typeof import( - './src/components/molecules/VuetifyAppItem.vue', - )['default'] - VuetifyApprover: typeof import( - './src/components/molecules/VuetifyApprover.vue', - )['default'] - VuetifyApproverListItem: typeof import( - './src/components/molecules/VuetifyApproverListItem.vue', - )['default'] - VuetifyApproverStatus: typeof import( - './src/components/molecules/VuetifyApproverStatus.vue', - )['default'] - VuetifyAppsDialog: typeof import( - './src/components/organisms/VuetifyAppsDialog.vue', - )['default'] - VuetifyAutopilotActions: typeof import( - './src/components/molecules/VuetifyAutopilotActions.vue', - )['default'] - VuetifyAutopilotLogsPanel: typeof import( - './src/components/organisms/VuetifyAutopilotLogsPanel.vue', - )['default'] - VuetifyAutopilotsView: typeof import( - './src/components/organisms/VuetifyAutopilotsView.vue', - )['default'] - VuetifyAvatar: typeof import( - './src/components/molecules/VuetifyAvatar.vue', - )['default'] - VuetifyBackLink: typeof import( - './src/components/molecules/VuetifyBackLink.vue', - )['default'] - VuetifyBannerContent: typeof import( - './src/components/atoms/VuetifyBannerContent.vue', - )['default'] - VuetifyBarChart: typeof import( - './src/components/molecules/VuetifyBarChart.vue', - )['default'] - VuetifyBlurBackground: typeof import( - './src/components/atoms/VuetifyBlurBackground.vue', - )['default'] - VuetifyBottomDialogPanel: typeof import( - './src/components/organisms/VuetifyBottomDialogPanel.vue', - )['default'] - VuetifyCloseEditConfigDialog: typeof import( - './src/components/organisms/VuetifyCloseEditConfigDialog.vue', - )['default'] - VuetifyCloseExcelToConfigDialog: typeof import( - './src/components/organisms/VuetifyCloseExcelToConfigDialog.vue', - )['default'] - VuetifyCodeCard: typeof import( - './src/components/molecules/VuetifyCodeCard.vue', - )['default'] - VuetifyCodeEditor: typeof import( - './src/components/organisms/VuetifyCodeEditor.vue', - )['default'] - VuetifyCodeEditorLayout: typeof import( - './src/components/layouts/VuetifyCodeEditorLayout.vue', - )['default'] - VuetifyCodeSnippetDescription: typeof import( - './src/components/molecules/VuetifyCodeSnippetDescription.vue', - )['default'] - VuetifyComment: typeof import( - './src/components/molecules/VuetifyComment.vue', - )['default'] - VuetifyCommentInput: typeof import( - './src/components/atoms/VuetifyCommentInput.vue', - )['default'] - VuetifyCommentsThread: typeof import( - './src/components/organisms/VuetifyCommentsThread.vue', - )['default'] - VuetifyCommentSuggestionsBox: typeof import( - './src/components/molecules/VuetifyCommentSuggestionsBox.vue', - )['default'] - VuetifyConfigInfo: typeof import( - './src/components/molecules/VuetifyConfigInfo.vue', - )['default'] - VuetifyConfigOverviewItem: typeof import( - './src/components/organisms/VuetifyConfigOverviewItem.vue', - )['default'] - VuetifyConfigsOverview: typeof import( - './src/components/views/VuetifyConfigsOverview.vue', - )['default'] - VuetifyConfigurationView: typeof import( - './src/components/organisms/VuetifyConfigurationView.vue', - )['default'] - VuetifyConfirmDialog: typeof import( - './src/components/organisms/VuetifyConfirmDialog.vue', - )['default'] - VuetifyContentNavigation: typeof import( - './src/components/organisms/VuetifyContentNavigation.vue', - )['default'] - VuetifyCopyConfigDialog: typeof import( - './src/components/molecules/VuetifyCopyConfigDialog.vue', - )['default'] - VuetifyCreateConfigDialog: typeof import( - './src/components/organisms/VuetifyCreateConfigDialog.vue', - )['default'] - VuetifyCrossNavigation: typeof import( - './src/components/molecules/VuetifyCrossNavigation.vue', - )['default'] - VuetifyDashboard: typeof import( - './src/components/views/VuetifyDashboard.vue', - )['default'] - VuetifyDashboardTile: typeof import( - './src/components/layouts/VuetifyDashboardTile.vue', - )['default'] - VuetifyDataProtectionPolicy: typeof import( - './src/components/views/VuetifyDataProtectionPolicy.vue', - )['default'] - VuetifyDeleteConfigurationConfirmation: typeof import( - './src/components/organisms/VuetifyDeleteConfigurationConfirmation.vue', - )['default'] - VuetifyDeleteFileDialogConfirmation: typeof import( - './src/components/organisms/VuetifyDeleteFileDialogConfirmation.vue', - )['default'] - VuetifyDeleteFindingCommentConfirmation: typeof import( - './src/components/organisms/VuetifyDeleteFindingCommentConfirmation.vue', - )['default'] - VuetifyDeleteReleaseDialog: typeof import( - './src/components/organisms/VuetifyDeleteReleaseDialog.vue', - )['default'] - VuetifyDeleteRunConfirmation: typeof import( - './src/components/organisms/VuetifyDeleteRunConfirmation.vue', - )['default'] - VuetifyDeleteSecretConfirmation: typeof import( - './src/components/organisms/VuetifyDeleteSecretConfirmation.vue', - )['default'] - VuetifyDeltaPill: typeof import( - './src/components/atoms/VuetifyDeltaPill.vue', - )['default'] - VuetifyDescription: typeof import( - './src/components/molecules/VuetifyDescription.vue', - )['default'] - VuetifyDevBanner: typeof import( - './src/components/molecules/VuetifyDevBanner.vue', - )['default'] - VuetifyDialogCloseRelease: typeof import( - './src/components/organisms/ReleaseApproval/VuetifyDialogCloseRelease.vue', - )['default'] - VuetifyDialogCreateRelease: typeof import( - './src/components/organisms/ReleaseApproval/VuetifyDialogCreateRelease.vue', - )['default'] - VuetifyDialogCreateTask: typeof import( - './src/components/organisms/ReleaseApproval/VuetifyDialogCreateTask.vue', - )['default'] - VuetifyDialogOverrideResultStatus: typeof import( - './src/components/organisms/ReleaseApproval/VuetifyDialogOverrideResultStatus.vue', - )['default'] - VuetifyDialogReleaseApproval: typeof import( - './src/components/organisms/ReleaseApproval/VuetifyDialogReleaseApproval.vue', - )['default'] - VuetifyDialogReleaseUpdateApprovalStatus: typeof import( - './src/components/organisms/ReleaseApproval/VuetifyDialogReleaseUpdateApprovalStatus.vue', - )['default'] - VuetifyDonutChart: typeof import( - './src/components/atoms/VuetifyDonutChart.vue', - )['default'] - VuetifyDoorLockClosed: typeof import( - './src/icons/VuetifyDoorLockClosed.vue', - )['default'] - VuetifyDownloadReleaseReport: typeof import( - './src/components/views/VuetifyDownloadReleaseReport.vue', - )['default'] - VuetifyEditConfig: typeof import( - './src/components/views/VuetifyEditConfig.vue', - )['default'] - VuetifyEditConfigMetadata: typeof import( - './src/components/organisms/VuetifyEditConfigMetadata.vue', - )['default'] - VuetifyEditGlobalVariables: typeof import( - './src/components/molecules/VuetifyEditGlobalVariables.vue', - )['default'] - VuetifyEditorCodePanel: typeof import( - './src/components/organisms/VuetifyEditorCodePanel.vue', - )['default'] - VuetifyEditorEditPanel: typeof import( - './src/components/organisms/VuetifyEditorEditPanel.vue', - )['default'] - VuetifyEditorHeader: typeof import( - './src/components/organisms/VuetifyEditorHeader.vue', - )['default'] - VuetifyEditReleaseMetadata: typeof import( - './src/components/organisms/VuetifyEditReleaseMetadata.vue', - )['default'] - VuetifyEditSecretDialog: typeof import( - './src/components/organisms/VuetifyEditSecretDialog.vue', - )['default'] - VuetifyEmptyRelease: typeof import( - './src/icons/releasePlanningIcons/VuetifyEmptyRelease.vue', - )['default'] - VuetifyEmptyState: typeof import( - './src/icons/VuetifyEmptyState.vue', - )['default'] - VuetifyEmptyState2: typeof import( - './src/icons/VuetifyEmptyState2.vue', - )['default'] - VuetifyEmptyTileContent: typeof import( - './src/components/molecules/VuetifyEmptyTileContent.vue', - )['default'] - VuetifyEnvironmentSwitch: typeof import( - './src/components/organisms/VuetifyEnvironmentSwitch.vue', - )['default'] - VuetifyErrorPage: typeof import( - './src/components/views/VuetifyErrorPage.vue', - )['default'] - VuetifyExcelToConfig: typeof import( - './src/components/views/VuetifyExcelToConfig.vue', - )['default'] - VuetifyExpandTextToggle: typeof import( - './src/components/atoms/VuetifyExpandTextToggle.vue', - )['default'] - VuetifyFileItem: typeof import( - './src/components/molecules/VuetifyFileItem.vue', - )['default'] - VuetifyFindingDetail: typeof import( - './src/components/organisms/VuetifyFindingDetail.vue', - )['default'] - VuetifyFindingItem: typeof import( - './src/components/molecules/VuetifyFindingItem.vue', - )['default'] - VuetifyFindingsOverview: typeof import( - './src/components/views/VuetifyFindingsOverview.vue', - )['default'] - VuetifyFindingsResults: typeof import( - './src/components/views/VuetifyFindingsResults.vue', - )['default'] - VuetifyHeader: typeof import( - './src/components/organisms/VuetifyHeader.vue', - )['default'] - VuetifyHoverableText: typeof import( - './src/components/molecules/VuetifyHoverableText.vue', - )['default'] - VuetifyInlineOrContext: typeof import( - './src/components/layouts/VuetifyInlineOrContext.vue', - )['default'] - VuetifyLastOpenedTile: typeof import( - './src/components/organisms/VuetifyLastOpenedTile.vue', - )['default'] - VuetifyLogs: typeof import( - './src/components/molecules/VuetifyLogs.vue', - )['default'] - VuetifyLogsPanel: typeof import( - './src/components/organisms/VuetifyLogsPanel.vue', - )['default'] + RunFailedFilledIcon: typeof import('./src/icons/runIcons/RunFailedFilledIcon.vue')['default'] + RunPendingIcon: typeof import('./src/icons/runIcons/RunPendingIcon.vue')['default'] + TaskControlBtn: typeof import('./src/icons/releasePlanningIcons/TaskControlBtn.vue')['default'] + UnFulFilledCheck: typeof import('./src/icons/runResultIcons/UnFulFilledCheck.vue')['default'] + VuetifyAppIcon: typeof import('./src/components/atoms/VuetifyAppIcon.vue')['default'] + VuetifyAppItem: typeof import('./src/components/molecules/VuetifyAppItem.vue')['default'] + VuetifyApprover: typeof import('./src/components/molecules/VuetifyApprover.vue')['default'] + VuetifyApproverListItem: typeof import('./src/components/molecules/VuetifyApproverListItem.vue')['default'] + VuetifyApproverStatus: typeof import('./src/components/molecules/VuetifyApproverStatus.vue')['default'] + VuetifyAppsDialog: typeof import('./src/components/organisms/VuetifyAppsDialog.vue')['default'] + VuetifyAutopilotActions: typeof import('./src/components/molecules/VuetifyAutopilotActions.vue')['default'] + VuetifyAutopilotLogsPanel: typeof import('./src/components/organisms/VuetifyAutopilotLogsPanel.vue')['default'] + VuetifyAutopilotsView: typeof import('./src/components/organisms/VuetifyAutopilotsView.vue')['default'] + VuetifyAvatar: typeof import('./src/components/molecules/VuetifyAvatar.vue')['default'] + VuetifyBackLink: typeof import('./src/components/molecules/VuetifyBackLink.vue')['default'] + VuetifyBannerContent: typeof import('./src/components/atoms/VuetifyBannerContent.vue')['default'] + VuetifyBarChart: typeof import('./src/components/molecules/VuetifyBarChart.vue')['default'] + VuetifyBlurBackground: typeof import('./src/components/atoms/VuetifyBlurBackground.vue')['default'] + VuetifyBottomDialogPanel: typeof import('./src/components/organisms/VuetifyBottomDialogPanel.vue')['default'] + VuetifyCloseEditConfigDialog: typeof import('./src/components/organisms/VuetifyCloseEditConfigDialog.vue')['default'] + VuetifyCloseExcelToConfigDialog: typeof import('./src/components/organisms/VuetifyCloseExcelToConfigDialog.vue')['default'] + VuetifyCodeCard: typeof import('./src/components/molecules/VuetifyCodeCard.vue')['default'] + VuetifyCodeEditor: typeof import('./src/components/organisms/VuetifyCodeEditor.vue')['default'] + VuetifyCodeEditorLayout: typeof import('./src/components/layouts/VuetifyCodeEditorLayout.vue')['default'] + VuetifyCodeSnippetDescription: typeof import('./src/components/molecules/VuetifyCodeSnippetDescription.vue')['default'] + VuetifyComment: typeof import('./src/components/molecules/VuetifyComment.vue')['default'] + VuetifyCommentInput: typeof import('./src/components/atoms/VuetifyCommentInput.vue')['default'] + VuetifyCommentsThread: typeof import('./src/components/organisms/VuetifyCommentsThread.vue')['default'] + VuetifyCommentSuggestionsBox: typeof import('./src/components/molecules/VuetifyCommentSuggestionsBox.vue')['default'] + VuetifyConfigInfo: typeof import('./src/components/molecules/VuetifyConfigInfo.vue')['default'] + VuetifyConfigOverviewItem: typeof import('./src/components/organisms/VuetifyConfigOverviewItem.vue')['default'] + VuetifyConfigsOverview: typeof import('./src/components/views/VuetifyConfigsOverview.vue')['default'] + VuetifyConfigurationView: typeof import('./src/components/organisms/VuetifyConfigurationView.vue')['default'] + VuetifyConfirmDialog: typeof import('./src/components/organisms/VuetifyConfirmDialog.vue')['default'] + VuetifyContentNavigation: typeof import('./src/components/organisms/VuetifyContentNavigation.vue')['default'] + VuetifyCopyConfigDialog: typeof import('./src/components/molecules/VuetifyCopyConfigDialog.vue')['default'] + VuetifyCreateConfigDialog: typeof import('./src/components/organisms/VuetifyCreateConfigDialog.vue')['default'] + VuetifyCrossNavigation: typeof import('./src/components/molecules/VuetifyCrossNavigation.vue')['default'] + VuetifyDashboard: typeof import('./src/components/views/VuetifyDashboard.vue')['default'] + VuetifyDashboardTile: typeof import('./src/components/layouts/VuetifyDashboardTile.vue')['default'] + VuetifyDataProtectionPolicy: typeof import('./src/components/views/VuetifyDataProtectionPolicy.vue')['default'] + VuetifyDeleteConfigurationConfirmation: typeof import('./src/components/organisms/VuetifyDeleteConfigurationConfirmation.vue')['default'] + VuetifyDeleteFileDialogConfirmation: typeof import('./src/components/organisms/VuetifyDeleteFileDialogConfirmation.vue')['default'] + VuetifyDeleteFindingCommentConfirmation: typeof import('./src/components/organisms/VuetifyDeleteFindingCommentConfirmation.vue')['default'] + VuetifyDeleteReleaseDialog: typeof import('./src/components/organisms/VuetifyDeleteReleaseDialog.vue')['default'] + VuetifyDeleteRunConfirmation: typeof import('./src/components/organisms/VuetifyDeleteRunConfirmation.vue')['default'] + VuetifyDeleteSecretConfirmation: typeof import('./src/components/organisms/VuetifyDeleteSecretConfirmation.vue')['default'] + VuetifyDeltaPill: typeof import('./src/components/atoms/VuetifyDeltaPill.vue')['default'] + VuetifyDescription: typeof import('./src/components/molecules/VuetifyDescription.vue')['default'] + VuetifyDevBanner: typeof import('./src/components/molecules/VuetifyDevBanner.vue')['default'] + VuetifyDialogCloseRelease: typeof import('./src/components/organisms/ReleaseApproval/VuetifyDialogCloseRelease.vue')['default'] + VuetifyDialogCreateRelease: typeof import('./src/components/organisms/ReleaseApproval/VuetifyDialogCreateRelease.vue')['default'] + VuetifyDialogCreateTask: typeof import('./src/components/organisms/ReleaseApproval/VuetifyDialogCreateTask.vue')['default'] + VuetifyDialogOverrideResultStatus: typeof import('./src/components/organisms/ReleaseApproval/VuetifyDialogOverrideResultStatus.vue')['default'] + VuetifyDialogReleaseApproval: typeof import('./src/components/organisms/ReleaseApproval/VuetifyDialogReleaseApproval.vue')['default'] + VuetifyDialogReleaseUpdateApprovalStatus: typeof import('./src/components/organisms/ReleaseApproval/VuetifyDialogReleaseUpdateApprovalStatus.vue')['default'] + VuetifyDonutChart: typeof import('./src/components/atoms/VuetifyDonutChart.vue')['default'] + VuetifyDoorLockClosed: typeof import('./src/icons/VuetifyDoorLockClosed.vue')['default'] + VuetifyDownloadReleaseReport: typeof import('./src/components/views/VuetifyDownloadReleaseReport.vue')['default'] + VuetifyEditConfig: typeof import('./src/components/views/VuetifyEditConfig.vue')['default'] + VuetifyEditConfigMetadata: typeof import('./src/components/organisms/VuetifyEditConfigMetadata.vue')['default'] + VuetifyEditGlobalVariables: typeof import('./src/components/molecules/VuetifyEditGlobalVariables.vue')['default'] + VuetifyEditorCodePanel: typeof import('./src/components/organisms/VuetifyEditorCodePanel.vue')['default'] + VuetifyEditorEditPanel: typeof import('./src/components/organisms/VuetifyEditorEditPanel.vue')['default'] + VuetifyEditorHeader: typeof import('./src/components/organisms/VuetifyEditorHeader.vue')['default'] + VuetifyEditReleaseMetadata: typeof import('./src/components/organisms/VuetifyEditReleaseMetadata.vue')['default'] + VuetifyEditSecretDialog: typeof import('./src/components/organisms/VuetifyEditSecretDialog.vue')['default'] + VuetifyEmptyRelease: typeof import('./src/icons/releasePlanningIcons/VuetifyEmptyRelease.vue')['default'] + VuetifyEmptyState: typeof import('./src/icons/VuetifyEmptyState.vue')['default'] + VuetifyEmptyState2: typeof import('./src/icons/VuetifyEmptyState2.vue')['default'] + VuetifyEmptyTileContent: typeof import('./src/components/molecules/VuetifyEmptyTileContent.vue')['default'] + VuetifyEnvironmentSwitch: typeof import('./src/components/organisms/VuetifyEnvironmentSwitch.vue')['default'] + VuetifyErrorPage: typeof import('./src/components/views/VuetifyErrorPage.vue')['default'] + VuetifyExcelToConfig: typeof import('./src/components/views/VuetifyExcelToConfig.vue')['default'] + VuetifyExpandTextToggle: typeof import('./src/components/atoms/VuetifyExpandTextToggle.vue')['default'] + VuetifyFileItem: typeof import('./src/components/molecules/VuetifyFileItem.vue')['default'] + VuetifyFindingDetail: typeof import('./src/components/organisms/VuetifyFindingDetail.vue')['default'] + VuetifyFindingItem: typeof import('./src/components/molecules/VuetifyFindingItem.vue')['default'] + VuetifyFindingsOverview: typeof import('./src/components/views/VuetifyFindingsOverview.vue')['default'] + VuetifyFindingsResults: typeof import('./src/components/views/VuetifyFindingsResults.vue')['default'] + VuetifyHeader: typeof import('./src/components/organisms/VuetifyHeader.vue')['default'] + VuetifyHoverableText: typeof import('./src/components/molecules/VuetifyHoverableText.vue')['default'] + VuetifyInlineOrContext: typeof import('./src/components/layouts/VuetifyInlineOrContext.vue')['default'] + VuetifyLastOpenedTile: typeof import('./src/components/organisms/VuetifyLastOpenedTile.vue')['default'] + VuetifyLogs: typeof import('./src/components/molecules/VuetifyLogs.vue')['default'] + VuetifyLogsPanel: typeof import('./src/components/organisms/VuetifyLogsPanel.vue')['default'] VuetifyMain: typeof import('./src/components/VuetifyMain.vue')['default'] - VuetifyManuallyResolved: typeof import( - './src/icons/findingsIcons/VuetifyManuallyResolved.vue', - )['default'] - VuetifyManualMode: typeof import( - './src/icons/VuetifyManualMode.vue', - )['default'] - VuetifyManualStatusForm: typeof import( - './src/components/molecules/VuetifyManualStatusForm.vue', - )['default'] - VuetifyMapping: typeof import( - './src/components/organisms/configExcelGenerator/VuetifyMapping.vue', - )['default'] - VuetifyMappingHelperDialog: typeof import( - './src/components/molecules/VuetifyMappingHelperDialog.vue', - )['default'] - VuetifyMappingTable: typeof import( - './src/components/molecules/VuetifyMappingTable.vue', - )['default'] - VuetifyMappingTableSelection: typeof import( - './src/components/molecules/VuetifyMappingTableSelection.vue', - )['default'] - VuetifyMarkdown: typeof import( - './src/components/atoms/VuetifyMarkdown.vue', - )['default'] - VuetifyMonacoEditor: typeof import( - './src/components/organisms/VuetifyMonacoEditor.vue', - )['default'] - VuetifyMostDecreasedQualityTile: typeof import( - './src/components/organisms/VuetifyMostDecreasedQualityTile.vue', - )['default'] - VuetifyMostFindingsTile: typeof import( - './src/components/organisms/VuetifyMostFindingsTile.vue', - )['default'] - VuetifyMostIncreasedQualityTile: typeof import( - './src/components/organisms/VuetifyMostIncreasedQualityTile.vue', - )['default'] - VuetifyNamespaceSwitch: typeof import( - './src/components/molecules/VuetifyNamespaceSwitch.vue', - )['default'] - VuetifyNoItems: typeof import( - './src/components/organisms/VuetifyNoItems.vue', - )['default'] - VuetifyOnboardingOverlay: typeof import( - './src/components/organisms/VuetifyOnboardingOverlay.vue', - )['default'] - VuetifyOssComplianceInformation: typeof import( - './src/components/views/VuetifyOssComplianceInformation.vue', - )['default'] - VuetifyOssComplianceItem: typeof import( - './src/components/organisms/VuetifyOssComplianceItem.vue', - )['default'] - VuetifyOverrideResultStatus: typeof import( - './src/components/molecules/VuetifyOverrideResultStatus.vue', - )['default'] - VuetifyOverviewItemLayout: typeof import( - './src/components/layouts/VuetifyOverviewItemLayout.vue', - )['default'] - VuetifyOverviewLayout: typeof import( - './src/components/layouts/VuetifyOverviewLayout.vue', - )['default'] - VuetifyOverviewList: typeof import( - './src/components/layouts/VuetifyOverviewList.vue', - )['default'] - VuetifyPendingIcon: typeof import( - './src/icons/runIcons/VuetifyPendingIcon.vue', - )['default'] - VuetifyPerformanceChart: typeof import( - './src/components/molecules/VuetifyPerformanceChart.vue', - )['default'] - VuetifyPerformanceTile: typeof import( - './src/components/organisms/VuetifyPerformanceTile.vue', - )['default'] - VuetifyPopoverInfo: typeof import( - './src/components/molecules/VuetifyPopoverInfo.vue', - )['default'] - VuetifyProcessingActionIndicator: typeof import( - './src/components/molecules/VuetifyProcessingActionIndicator.vue', - )['default'] - VuetifyQuickStartupDialog: typeof import( - './src/components/organisms/VuetifyQuickStartupDialog.vue', - )['default'] - VuetifyRelationGrid: typeof import( - './src/components/molecules/VuetifyRelationGrid.vue', - )['default'] - VuetifyReleaseChecksNavigator: typeof import( - './src/components/organisms/VuetifyReleaseChecksNavigator.vue', - )['default'] - VuetifyReleaseDetails: typeof import( - './src/components/views/VuetifyReleaseDetails.vue', - )['default'] - VuetifyReleaseDetailsChecksPager: typeof import( - './src/components/organisms/VuetifyReleaseDetailsChecksPager.vue', - )['default'] - VuetifyReleaseHistory: typeof import( - './src/components/organisms/VuetifyReleaseHistory.vue', - )['default'] - VuetifyReleaseHistoryItem: typeof import( - './src/components/molecules/VuetifyReleaseHistoryItem.vue', - )['default'] - VuetifyReleaseOverview: typeof import( - './src/components/views/VuetifyReleaseOverview.vue', - )['default'] - VuetifyReleaseOverviewItem: typeof import( - './src/components/organisms/VuetifyReleaseOverviewItem.vue', - )['default'] - VuetifyReleaseReportCheckFinding: typeof import( - './src/components/molecules/VuetifyReleaseReportCheckFinding.vue', - )['default'] - VuetifyReleaseReportCheckOverride: typeof import( - './src/components/molecules/VuetifyReleaseReportCheckOverride.vue', - )['default'] - VuetifyReleaseReportChecksSummary: typeof import( - './src/components/organisms/VuetifyReleaseReportChecksSummary.vue', - )['default'] - VuetifyReleaseReportMeta: typeof import( - './src/components/molecules/VuetifyReleaseReportMeta.vue', - )['default'] - VuetifyReleaseTask: typeof import( - './src/components/organisms/VuetifyReleaseTask.vue', - )['default'] - VuetifyReleaseTasksTab: typeof import( - './src/components/organisms/VuetifyReleaseTasksTab.vue', - )['default'] - VuetifyResizableThreeColumnLayout: typeof import( - './src/components/layouts/VuetifyResizableThreeColumnLayout.vue', - )['default'] - VuetifyResolvedCheck: typeof import( - './src/icons/releasePlanningIcons/VuetifyResolvedCheck.vue', - )['default'] - VuetifyResultError: typeof import( - './src/components/organisms/configExcelGenerator/VuetifyResultError.vue', - )['default'] - VuetifyResultItem: typeof import( - './src/components/organisms/VuetifyResultItem.vue', - )['default'] - VuetifyResultMetadata: typeof import( - './src/components/organisms/VuetifyResultMetadata.vue', - )['default'] - VuetifyRobotBodyFilled: typeof import( - './src/icons/VuetifyRobotBodyFilled.vue', - )['default'] - VuetifyRowSelection: typeof import( - './src/components/organisms/configExcelGenerator/VuetifyRowSelection.vue', - )['default'] - VuetifyRunCompletedIcon: typeof import( - './src/icons/runIcons/VuetifyRunCompletedIcon.vue', - )['default'] - VuetifyRunFailedOutlineIcon: typeof import( - './src/icons/runIcons/VuetifyRunFailedOutlineIcon.vue', - )['default'] - VuetifyRunOverviewItem: typeof import( - './src/components/organisms/VuetifyRunOverviewItem.vue', - )['default'] - VuetifyRunReportHeader: typeof import( - './src/components/organisms/VuetifyRunReportHeader.vue', - )['default'] - VuetifyRunReportNav: typeof import( - './src/components/molecules/VuetifyRunReportNav.vue', - )['default'] - VuetifyRunReportNavChapter: typeof import( - './src/components/molecules/VuetifyRunReportNavChapter.vue', - )['default'] - VuetifyRunReportNavCheck: typeof import( - './src/components/molecules/VuetifyRunReportNavCheck.vue', - )['default'] - VuetifyRunReportNavRequirement: typeof import( - './src/components/molecules/VuetifyRunReportNavRequirement.vue', - )['default'] - VuetifyRunReportResults: typeof import( - './src/components/organisms/VuetifyRunReportResults.vue', - )['default'] - VuetifyRunResultDescription: typeof import( - './src/components/molecules/VuetifyRunResultDescription.vue', - )['default'] - VuetifyRunResultOverview: typeof import( - './src/components/atoms/VuetifyRunResultOverview.vue', - )['default'] - VuetifyRunResults: typeof import( - './src/components/views/VuetifyRunResults.vue', - )['default'] - VuetifyRunRunningIcon: typeof import( - './src/icons/runIcons/VuetifyRunRunningIcon.vue', - )['default'] - VuetifyRunsOverview: typeof import( - './src/components/views/VuetifyRunsOverview.vue', - )['default'] - VuetifyRunStatus: typeof import( - './src/components/molecules/VuetifyRunStatus.vue', - )['default'] - VuetifyRuntimeClock: typeof import( - './src/components/molecules/VuetifyRuntimeClock.vue', - )['default'] - VuetifyScreenCenter: typeof import( - './src/components/layouts/VuetifyScreenCenter.vue', - )['default'] - VuetifySecrets: typeof import( - './src/components/views/VuetifySecrets.vue', - )['default'] - VuetifySelectableChartFilter: typeof import( - './src/components/atoms/VuetifySelectableChartFilter.vue', - )['default'] - VuetifySelectEnvironment: typeof import( - './src/components/views/VuetifySelectEnvironment.vue', - )['default'] - VuetifySelectFile: typeof import( - './src/components/organisms/configExcelGenerator/VuetifySelectFile.vue', - )['default'] - VuetifySettings: typeof import( - './src/components/views/VuetifySettings.vue', - )['default'] - VuetifyShowMore: typeof import( - './src/components/atoms/VuetifyShowMore.vue', - )['default'] - VuetifySidebarFlyout: typeof import( - './src/components/atoms/VuetifySidebarFlyout.vue', - )['default'] - VuetifySidePanel: typeof import( - './src/components/layouts/VuetifySidePanel.vue', - )['default'] - VuetifyStack: typeof import( - './src/components/layouts/VuetifyStack.vue', - )['default'] - VuetifyStatusPill: typeof import( - './src/components/molecules/VuetifyStatusPill.vue', - )['default'] - VuetifyStepHeading: typeof import( - './src/components/organisms/configExcelGenerator/VuetifyStepHeading.vue', - )['default'] - VuetifySummaryOfChecks: typeof import( - './src/components/organisms/VuetifySummaryOfChecks.vue', - )['default'] - VuetifyTableHandle: typeof import( - './src/components/atoms/VuetifyTableHandle.vue', - )['default'] - VuetifyTaskAssigneeDisplay: typeof import( - './src/components/molecules/VuetifyTaskAssigneeDisplay.vue', - )['default'] - VuetifyTaskControl: typeof import( - './src/components/molecules/VuetifyTaskControl.vue', - )['default'] - VuetifyTestRunPanel: typeof import( - './src/components/organisms/VuetifyTestRunPanel.vue', - )['default'] - VuetifyToolbar: typeof import( - './src/components/molecules/VuetifyToolbar.vue', - )['default'] - VuetifyTruncableText: typeof import( - './src/components/atoms/VuetifyTruncableText.vue', - )['default'] - VuetifyUserMenu: typeof import( - './src/components/molecules/VuetifyUserMenu.vue', - )['default'] - VuetifyViewLoadingIndicator: typeof import( - './src/components/molecules/VuetifyViewLoadingIndicator.vue', - )['default'] - VuetifyVisualAutopilotDialog: typeof import( - './src/components/organisms/VuetifyVisualAutopilotDialog.vue', - )['default'] - VuetifyVisualEditor: typeof import( - './src/components/organisms/VuetifyVisualEditor.vue', - )['default'] - VuetifyVisualNoSearchResults: typeof import( - './src/components/molecules/VuetifyVisualNoSearchResults.vue', - )['default'] - VuetifyWindowMaximized: typeof import( - './src/icons/VuetifyWindowMaximized.vue', - )['default'] - VuetifyWindowMinimized: typeof import( - './src/icons/VuetifyWindowMinimized.vue', - )['default'] - VuetifyWindowSmall: typeof import( - './src/icons/VuetifyWindowSmall.vue', - )['default'] + VuetifyManuallyResolved: typeof import('./src/icons/findingsIcons/VuetifyManuallyResolved.vue')['default'] + VuetifyManualMode: typeof import('./src/icons/VuetifyManualMode.vue')['default'] + VuetifyManualStatusForm: typeof import('./src/components/molecules/VuetifyManualStatusForm.vue')['default'] + VuetifyMapping: typeof import('./src/components/organisms/configExcelGenerator/VuetifyMapping.vue')['default'] + VuetifyMappingHelperDialog: typeof import('./src/components/molecules/VuetifyMappingHelperDialog.vue')['default'] + VuetifyMappingTable: typeof import('./src/components/molecules/VuetifyMappingTable.vue')['default'] + VuetifyMappingTableSelection: typeof import('./src/components/molecules/VuetifyMappingTableSelection.vue')['default'] + VuetifyMarkdown: typeof import('./src/components/atoms/VuetifyMarkdown.vue')['default'] + VuetifyMonacoEditor: typeof import('./src/components/organisms/VuetifyMonacoEditor.vue')['default'] + VuetifyMostDecreasedQualityTile: typeof import('./src/components/organisms/VuetifyMostDecreasedQualityTile.vue')['default'] + VuetifyMostFindingsTile: typeof import('./src/components/organisms/VuetifyMostFindingsTile.vue')['default'] + VuetifyMostIncreasedQualityTile: typeof import('./src/components/organisms/VuetifyMostIncreasedQualityTile.vue')['default'] + VuetifyNamespaceSwitch: typeof import('./src/components/molecules/VuetifyNamespaceSwitch.vue')['default'] + VuetifyNoItems: typeof import('./src/components/organisms/VuetifyNoItems.vue')['default'] + VuetifyOssComplianceInformation: typeof import('./src/components/views/VuetifyOssComplianceInformation.vue')['default'] + VuetifyOssComplianceItem: typeof import('./src/components/organisms/VuetifyOssComplianceItem.vue')['default'] + VuetifyOverrideResultStatus: typeof import('./src/components/molecules/VuetifyOverrideResultStatus.vue')['default'] + VuetifyOverviewItemLayout: typeof import('./src/components/layouts/VuetifyOverviewItemLayout.vue')['default'] + VuetifyOverviewLayout: typeof import('./src/components/layouts/VuetifyOverviewLayout.vue')['default'] + VuetifyOverviewList: typeof import('./src/components/layouts/VuetifyOverviewList.vue')['default'] + VuetifyPendingIcon: typeof import('./src/icons/runIcons/VuetifyPendingIcon.vue')['default'] + VuetifyPerformanceChart: typeof import('./src/components/molecules/VuetifyPerformanceChart.vue')['default'] + VuetifyPerformanceTile: typeof import('./src/components/organisms/VuetifyPerformanceTile.vue')['default'] + VuetifyPopoverInfo: typeof import('./src/components/molecules/VuetifyPopoverInfo.vue')['default'] + VuetifyProcessingActionIndicator: typeof import('./src/components/molecules/VuetifyProcessingActionIndicator.vue')['default'] + VuetifyQuickStartupDialog: typeof import('./src/components/organisms/VuetifyQuickStartupDialog.vue')['default'] + VuetifyRelationGrid: typeof import('./src/components/molecules/VuetifyRelationGrid.vue')['default'] + VuetifyReleaseChecksNavigator: typeof import('./src/components/organisms/VuetifyReleaseChecksNavigator.vue')['default'] + VuetifyReleaseDetails: typeof import('./src/components/views/VuetifyReleaseDetails.vue')['default'] + VuetifyReleaseDetailsChecksPager: typeof import('./src/components/organisms/VuetifyReleaseDetailsChecksPager.vue')['default'] + VuetifyReleaseHistory: typeof import('./src/components/organisms/VuetifyReleaseHistory.vue')['default'] + VuetifyReleaseHistoryItem: typeof import('./src/components/molecules/VuetifyReleaseHistoryItem.vue')['default'] + VuetifyReleaseOverview: typeof import('./src/components/views/VuetifyReleaseOverview.vue')['default'] + VuetifyReleaseOverviewItem: typeof import('./src/components/organisms/VuetifyReleaseOverviewItem.vue')['default'] + VuetifyReleaseReportCheckFinding: typeof import('./src/components/molecules/VuetifyReleaseReportCheckFinding.vue')['default'] + VuetifyReleaseReportCheckOverride: typeof import('./src/components/molecules/VuetifyReleaseReportCheckOverride.vue')['default'] + VuetifyReleaseReportChecksSummary: typeof import('./src/components/organisms/VuetifyReleaseReportChecksSummary.vue')['default'] + VuetifyReleaseReportMeta: typeof import('./src/components/molecules/VuetifyReleaseReportMeta.vue')['default'] + VuetifyReleaseTask: typeof import('./src/components/organisms/VuetifyReleaseTask.vue')['default'] + VuetifyReleaseTasksTab: typeof import('./src/components/organisms/VuetifyReleaseTasksTab.vue')['default'] + VuetifyResizableThreeColumnLayout: typeof import('./src/components/layouts/VuetifyResizableThreeColumnLayout.vue')['default'] + VuetifyResolvedCheck: typeof import('./src/icons/releasePlanningIcons/VuetifyResolvedCheck.vue')['default'] + VuetifyResultError: typeof import('./src/components/organisms/configExcelGenerator/VuetifyResultError.vue')['default'] + VuetifyResultItem: typeof import('./src/components/organisms/VuetifyResultItem.vue')['default'] + VuetifyResultMetadata: typeof import('./src/components/organisms/VuetifyResultMetadata.vue')['default'] + VuetifyRobotBodyFilled: typeof import('./src/icons/VuetifyRobotBodyFilled.vue')['default'] + VuetifyRowSelection: typeof import('./src/components/organisms/configExcelGenerator/VuetifyRowSelection.vue')['default'] + VuetifyRunCompletedIcon: typeof import('./src/icons/runIcons/VuetifyRunCompletedIcon.vue')['default'] + VuetifyRunFailedOutlineIcon: typeof import('./src/icons/runIcons/VuetifyRunFailedOutlineIcon.vue')['default'] + VuetifyRunOverviewItem: typeof import('./src/components/organisms/VuetifyRunOverviewItem.vue')['default'] + VuetifyRunReportHeader: typeof import('./src/components/organisms/VuetifyRunReportHeader.vue')['default'] + VuetifyRunReportNav: typeof import('./src/components/molecules/VuetifyRunReportNav.vue')['default'] + VuetifyRunReportNavChapter: typeof import('./src/components/molecules/VuetifyRunReportNavChapter.vue')['default'] + VuetifyRunReportNavCheck: typeof import('./src/components/molecules/VuetifyRunReportNavCheck.vue')['default'] + VuetifyRunReportNavRequirement: typeof import('./src/components/molecules/VuetifyRunReportNavRequirement.vue')['default'] + VuetifyRunReportResults: typeof import('./src/components/organisms/VuetifyRunReportResults.vue')['default'] + VuetifyRunResultDescription: typeof import('./src/components/molecules/VuetifyRunResultDescription.vue')['default'] + VuetifyRunResultOverview: typeof import('./src/components/atoms/VuetifyRunResultOverview.vue')['default'] + VuetifyRunResults: typeof import('./src/components/views/VuetifyRunResults.vue')['default'] + VuetifyRunRunningIcon: typeof import('./src/icons/runIcons/VuetifyRunRunningIcon.vue')['default'] + VuetifyRunsOverview: typeof import('./src/components/views/VuetifyRunsOverview.vue')['default'] + VuetifyRunStatus: typeof import('./src/components/molecules/VuetifyRunStatus.vue')['default'] + VuetifyRuntimeClock: typeof import('./src/components/molecules/VuetifyRuntimeClock.vue')['default'] + VuetifyScreenCenter: typeof import('./src/components/layouts/VuetifyScreenCenter.vue')['default'] + VuetifySecrets: typeof import('./src/components/views/VuetifySecrets.vue')['default'] + VuetifySelectableChartFilter: typeof import('./src/components/atoms/VuetifySelectableChartFilter.vue')['default'] + VuetifySelectEnvironment: typeof import('./src/components/views/VuetifySelectEnvironment.vue')['default'] + VuetifySelectFile: typeof import('./src/components/organisms/configExcelGenerator/VuetifySelectFile.vue')['default'] + VuetifySettings: typeof import('./src/components/views/VuetifySettings.vue')['default'] + VuetifyShowMore: typeof import('./src/components/atoms/VuetifyShowMore.vue')['default'] + VuetifySidebarFlyout: typeof import('./src/components/atoms/VuetifySidebarFlyout.vue')['default'] + VuetifySidePanel: typeof import('./src/components/layouts/VuetifySidePanel.vue')['default'] + VuetifyStack: typeof import('./src/components/layouts/VuetifyStack.vue')['default'] + VuetifyStatusPill: typeof import('./src/components/molecules/VuetifyStatusPill.vue')['default'] + VuetifyStepHeading: typeof import('./src/components/organisms/configExcelGenerator/VuetifyStepHeading.vue')['default'] + VuetifySummaryOfChecks: typeof import('./src/components/organisms/VuetifySummaryOfChecks.vue')['default'] + VuetifyTableHandle: typeof import('./src/components/atoms/VuetifyTableHandle.vue')['default'] + VuetifyTaskAssigneeDisplay: typeof import('./src/components/molecules/VuetifyTaskAssigneeDisplay.vue')['default'] + VuetifyTaskControl: typeof import('./src/components/molecules/VuetifyTaskControl.vue')['default'] + VuetifyTestRunPanel: typeof import('./src/components/organisms/VuetifyTestRunPanel.vue')['default'] + VuetifyToolbar: typeof import('./src/components/molecules/VuetifyToolbar.vue')['default'] + VuetifyTruncableText: typeof import('./src/components/atoms/VuetifyTruncableText.vue')['default'] + VuetifyUserMenu: typeof import('./src/components/molecules/VuetifyUserMenu.vue')['default'] + VuetifyViewLoadingIndicator: typeof import('./src/components/molecules/VuetifyViewLoadingIndicator.vue')['default'] + VuetifyVisualAutopilotDialog: typeof import('./src/components/organisms/VuetifyVisualAutopilotDialog.vue')['default'] + VuetifyVisualEditor: typeof import('./src/components/organisms/VuetifyVisualEditor.vue')['default'] + VuetifyVisualNoSearchResults: typeof import('./src/components/molecules/VuetifyVisualNoSearchResults.vue')['default'] + VuetifyWindowMaximized: typeof import('./src/icons/VuetifyWindowMaximized.vue')['default'] + VuetifyWindowMinimized: typeof import('./src/icons/VuetifyWindowMinimized.vue')['default'] + VuetifyWindowSmall: typeof import('./src/icons/VuetifyWindowSmall.vue')['default'] VuetifyWorldMap: typeof import('./src/icons/VuetifyWorldMap.vue')['default'] - VuetifyYakuDropdown: typeof import( - './src/components/molecules/VuetifyYakuDropdown.vue', - )['default'] - VuetifyYakuSelectOption: typeof import( - './src/components/molecules/VuetifyYakuSelectOption.vue', - )['default'] - WindowMaximized: typeof import('./src/icons/WindowMaximized.vue')['default'] - WindowMinimized: typeof import('./src/icons/WindowMinimized.vue')['default'] - WindowSmall: typeof import('./src/icons/WindowSmall.vue')['default'] - WorldMap: typeof import('./src/icons/WorldMap.vue')['default'] - YakuDropdown: typeof import( - './src/components/molecules/YakuDropdown.vue', - )['default'] - YakuSelectOption: typeof import( - './src/components/molecules/YakuSelectOption.vue', - )['default'] + VuetifyYakuDropdown: typeof import('./src/components/molecules/VuetifyYakuDropdown.vue')['default'] + VuetifyYakuSelectOption: typeof import('./src/components/molecules/VuetifyYakuSelectOption.vue')['default'] } } diff --git a/yaku-ui/qg-service-ui/package.json b/yaku-ui/qg-service-ui/package.json index dcf79b9b..96c23bda 100644 --- a/yaku-ui/qg-service-ui/package.json +++ b/yaku-ui/qg-service-ui/package.json @@ -10,7 +10,7 @@ "dev:mock": "vite --host --mode dev:mock --port 5173", "dev:test": "vite --mode dev:mock --port 4999", "check": "vue-tsc --noEmit", - "build": "vue-tsc --noEmit && vite build", + "build": "vite build", "docker:build": "docker-buildx build . -t qg-aas-ui:latest --secret id=npmrc,src=.npmrc --secret id=env,src=.env.local", "docker:start": "docker run -it --mount=type=bind,src=./ui-dev-config.json,dst=/home/node/app/dist/ui-config.json,readonly=true -p 3000:3000 qg-aas-ui:latest", "lint": "eslint src", diff --git a/yaku-ui/qg-service-ui/src/components/VuetifyMain.vue b/yaku-ui/qg-service-ui/src/components/VuetifyMain.vue index 444a2dc4..05206632 100644 --- a/yaku-ui/qg-service-ui/src/components/VuetifyMain.vue +++ b/yaku-ui/qg-service-ui/src/components/VuetifyMain.vue @@ -8,31 +8,19 @@ SPDX-License-Identifier: MIT
- - -
diff --git a/yaku-ui/qg-service-ui/src/components/molecules/VuetifyManualStatusForm.vue b/yaku-ui/qg-service-ui/src/components/molecules/VuetifyManualStatusForm.vue index a6325fb1..07c2360f 100644 --- a/yaku-ui/qg-service-ui/src/components/molecules/VuetifyManualStatusForm.vue +++ b/yaku-ui/qg-service-ui/src/components/molecules/VuetifyManualStatusForm.vue @@ -14,8 +14,8 @@ SPDX-License-Identifier: MIT - - diff --git a/yaku-ui/qg-service-ui/src/components/organisms/configExcelGenerator/index.ts b/yaku-ui/qg-service-ui/src/components/organisms/configExcelGenerator/index.ts index e9c77da9..2a62c931 100644 --- a/yaku-ui/qg-service-ui/src/components/organisms/configExcelGenerator/index.ts +++ b/yaku-ui/qg-service-ui/src/components/organisms/configExcelGenerator/index.ts @@ -2,22 +2,14 @@ // // SPDX-License-Identifier: MIT -import Mapping from './Mapping.vue' -import ResultError from './ResultError.vue' -import RowSelection from './RowSelection.vue' -import SelectFile from './SelectFile.vue' -import VuetifyMapping from './VuetifyMapping.vue' -import VuetifyResultError from './VuetifyResultError.vue' -import VuetifyRowSelection from './VuetifyRowSelection.vue' -import VuetifySelectFile from './VuetifySelectFile.vue' +import VuetifyMapping from "./VuetifyMapping.vue"; +import VuetifyResultError from "./VuetifyResultError.vue"; +import VuetifyRowSelection from "./VuetifyRowSelection.vue"; +import VuetifySelectFile from "./VuetifySelectFile.vue"; export { - Mapping, - ResultError, - RowSelection, - SelectFile, VuetifyMapping, VuetifyResultError, VuetifyRowSelection, VuetifySelectFile, -} +}; diff --git a/yaku-ui/qg-service-ui/src/components/views/VuetifyDownloadReleaseReport.vue b/yaku-ui/qg-service-ui/src/components/views/VuetifyDownloadReleaseReport.vue index 45754dbe..c8ab2fdc 100644 --- a/yaku-ui/qg-service-ui/src/components/views/VuetifyDownloadReleaseReport.vue +++ b/yaku-ui/qg-service-ui/src/components/views/VuetifyDownloadReleaseReport.vue @@ -40,7 +40,7 @@ SPDX-License-Identifier: MIT

Result of answered: {{ `${green ?? '-%'}` - }} {{ + }} {{ `${yellow ?? '-%'}` }} {{ `${red ?? '-%'}` @@ -64,7 +64,7 @@ SPDX-License-Identifier: MIT

Answered: {{ `${automatic ?? '-%'} Automatically` - }} {{ + }} {{ `${manual ?? '-%'} Manually` }} {{ `${unanswered ?? '-%'} Unanswered` @@ -383,7 +383,7 @@ section { padding: Tokens.$spacing-8 Tokens.$spacing-8 Tokens.$spacing-8 Tokens.$spacing-16; :deep(p) { - font-size: rem(14px); + font-size: rem(14px, 16px); margin: 0; } } diff --git a/yaku-ui/qg-service-ui/src/components/views/VuetifyRunResults.vue b/yaku-ui/qg-service-ui/src/components/views/VuetifyRunResults.vue index 49178122..fb3a9c7c 100644 --- a/yaku-ui/qg-service-ui/src/components/views/VuetifyRunResults.vue +++ b/yaku-ui/qg-service-ui/src/components/views/VuetifyRunResults.vue @@ -167,7 +167,6 @@ import { useUrlContext, useYakuBrowseHistory, } from '~/composables' -import { useIsOnboardingActive } from '~/composables/onboarding/useIsOnboardingActive' import useRunResultsReport from '~/composables/runResults/useRunResultsReport' import useAutoPilotExplainable from '~/composables/useAutoPilotExplainable' import { useBreakpoints } from '~/composables/useBreakPoints' @@ -198,8 +197,6 @@ const breakpoints = useBreakpoints() const runStore = useRunStore(storeContext) const configStore = useConfigStore(storeContext) -const { isActive: isOnboardingActive } = useIsOnboardingActive() - const { findings, findingsAmount, getFindingsCount, fetchAllFindings } = useConfigFindings() diff --git a/yaku-ui/qg-service-ui/src/composables/onboarding/config/Dashboard.ts b/yaku-ui/qg-service-ui/src/composables/onboarding/config/Dashboard.ts deleted file mode 100644 index 14f75d0d..00000000 --- a/yaku-ui/qg-service-ui/src/composables/onboarding/config/Dashboard.ts +++ /dev/null @@ -1,73 +0,0 @@ -// SPDX-FileCopyrightText: 2024 grow platform GmbH -// -// SPDX-License-Identifier: MIT - -import { useBreakpoints } from '~/composables/useBreakPoints' - -const breakpoints = useBreakpoints() - -export const DASHBOARD_ONBOARDING = [ - { - selector: 'restart-onboarding', - heading: 'Want to start again?', - description: 'If you want to redo any tour, you can access it right here', - arrowPlacement: '-left-center' as const, - }, - { - selector: 'dashboard', - heading: 'Dashboard', - description: - 'Check your performance at a glance with the Yaku Dashboard. Learn how to use and configurate your personal dashboard in just a few minutes', - imagePath: '/assets/dashboard-overview.png', - arrowPlacement: '-without-arrow-top' as const, - }, - { - selector: 'location', - heading: 'Location of dashboard', - description: 'Click on this icon to access your dashboard at any time', - arrowPlacement: '-left-top' as const, - }, - { - selector: 'performance', - heading: 'Performance', - description: - 'You can visualize the performance of a specific configuration over a certain period of time on this chart. Simply use the dropdown menus to modify the parameters and hover over a data point in the graph to obtain extra details', - arrowPlacement: '-top-center' as const, - }, - { - selector: 'last-opened-tile', - heading: 'Last opened', - description: - 'Here are your most recent open configurations, including the last successful run and its findings. You can conveniently access them using the provided links', - get arrowPlacement() { - return breakpoints.value.from1500 ? '-left-center' : '-bottom-center' - }, - }, - { - selector: 'most-findings', - heading: 'Most Findings', - description: - 'The configurations that generated the highest number of findings are displayed here. As there may be additional actions needed to reduce the number of findings, the links can also serve as shortcuts for quick access', - get arrowPlacement() { - return breakpoints.value.from1500 ? '-right-center' : '-bottom-center' - }, - }, - { - selector: 'most-decreased', - heading: 'Decreased Quality', - description: - 'A high number of findings can sometimes be perceived as a sign of decreased quality. Therefore, runs that have produced the most new findings are presented here', - get arrowPlacement() { - return breakpoints.value.from1500 ? '-left-center' : '-bottom-center' - }, - }, - { - selector: 'most-increased', - heading: 'Increased Quality', - description: - 'In contrast to the previous section, runs that have generated fewer findings compared to earlier instances are listed here', - get arrowPlacement() { - return breakpoints.value.from1500 ? '-right-center' : '-bottom-center' - }, - }, -] diff --git a/yaku-ui/qg-service-ui/src/composables/onboarding/config/Release.ts b/yaku-ui/qg-service-ui/src/composables/onboarding/config/Release.ts deleted file mode 100644 index c143458f..00000000 --- a/yaku-ui/qg-service-ui/src/composables/onboarding/config/Release.ts +++ /dev/null @@ -1,79 +0,0 @@ -// SPDX-FileCopyrightText: 2024 grow platform GmbH -// -// SPDX-License-Identifier: MIT - -import { useBreakpoints } from '~/composables/useBreakPoints' -const breakpoints = useBreakpoints() - -export const RELEASE_ONBOARDING = [ - { - selector: 'releases', - heading: 'Releases', - description: 'Here you can find an overview about all planned releases', - imagePath: '/assets/releases-overview.png', - arrowPlacement: '-without-arrow-top' as const, - }, - { - selector: 'location', - heading: 'Location of releases', - description: 'Click on this icon to access the release overview', - arrowPlacement: '-left-top' as const, - }, - { - selector: 'release-toolbar', - heading: 'Toolbar', - description: - 'Here you can create a new release or search for an already created release', - arrowPlacement: '-top-center' as const, - }, - { - selector: 'release-item', - heading: 'Release - list items', - description: - "The list provides a general overview of a release. Let's take a closer look at this release and move forward to the details", - arrowPlacement: '-top-center' as const, - linkToNext: 'lastRelease', - }, - { - selector: 'release-details-toolbar', - heading: 'Toolbar', - description: - 'Here you will find tools and information regarding this release, e.g. its approval state or the report', - arrowPlacement: '-top-center' as const, - linkToPrev: 'releases-overview', - }, - { - selector: 'quick-navigation', - heading: 'Quick navigation', - description: 'Quickly access the results and findings of each check', - arrowPlacement: '-left-center' as const, - }, - { - selector: 'check-results', - heading: 'Check results', - description: - 'This section provides all checks with additional details, including any generated findings, and features a navigation tool for easily moving from one check to the next', - get arrowPlacement() { - return breakpoints.value.from1500 ? '-left-center' : '-top-center' - }, - maxWidth: '500px', - }, - { - selector: 'comments', - heading: 'Comments', - description: - 'This section offers a dedicated space for discussions specific to each check', - get arrowPlacement() { - return breakpoints.value.from1500 ? '-right-center' : '-bottom-center' - }, - linkToNext: 'history', - }, - { - selector: 'history', - heading: 'History', - description: - 'Here you can find a summary of all communication that took place in regards to the release. Use the pills to filter the content according to your needs', - arrowPlacement: '-without-arrow-top' as const, - linkToPrev: 'lastRelease', - }, -] diff --git a/yaku-ui/qg-service-ui/src/composables/onboarding/config/Report.ts b/yaku-ui/qg-service-ui/src/composables/onboarding/config/Report.ts deleted file mode 100644 index 71ff9c0c..00000000 --- a/yaku-ui/qg-service-ui/src/composables/onboarding/config/Report.ts +++ /dev/null @@ -1,67 +0,0 @@ -// SPDX-FileCopyrightText: 2024 grow platform GmbH -// -// SPDX-License-Identifier: MIT - -import { useBreakpoints } from '~/composables/useBreakPoints' - -const breakpoints = useBreakpoints() - -export const REPORT_ONBOARDING = [ - { - selector: 'runs-overview', - heading: 'Runs', - description: - 'Once configured, Yaku handles execution and documentation, ensuring thorough checks are performed. Your configuration is packaged and executed, with the results displayed here', - imagePath: '/assets/runs-overview.png', - arrowPlacement: '-without-arrow-bottom' as const, - }, - { - selector: 'location', - heading: 'Location of runs', - description: 'Click on this icon to access the run overview', - arrowPlacement: '-left-top' as const, - }, - { - selector: 'run-item', - heading: 'Run', - description: - "Each run has checks that produce results, which are indicated here. Now, let's dive into the details to learn more about the outcome of the run", - arrowPlacement: '-top-center' as const, - linkToNext: 'lastRun', - }, - { - selector: 'run-overview', - heading: 'Run Results', - description: - 'The run result page provides an overview of all checks, along with their results and findings', - imagePath: '/assets/run-result-overview.png', - arrowPlacement: '-without-arrow-bottom' as const, - linkToPrev: 'runs-overview', - }, - { - selector: 'run-chart', - heading: 'Chart', - description: - 'This diagram displays the results of all checks and the amount of manual responses. All elements can be used to filter the content of the page according to your needs', - get arrowPlacement() { - return breakpoints.value.from1500 ? '-left-center' : '-top-center' - }, - }, - { - selector: 'navigate-between-chapters', - heading: 'Navigating between chapters', - description: - 'Use this quick navigation to quickly switch between chapters. The indicators will show you where findings or failed checks have occurred', - arrowPlacement: '-left-center' as const, - }, - { - selector: 'checks-result', - heading: 'Check results', - description: - 'Here you can see a list of all checks from the run along with their statuses. Findings are generated for each failed check. You can use tools like the AI explanation or navigate to the findings for further details', - get arrowPlacement() { - return breakpoints.value.from1500 ? '-right-center' : '-bottom-center' - }, - maxWidth: '500px', - }, -] diff --git a/yaku-ui/qg-service-ui/src/composables/onboarding/useIsOnboardingActive.ts b/yaku-ui/qg-service-ui/src/composables/onboarding/useIsOnboardingActive.ts deleted file mode 100644 index 0fc2c5cc..00000000 --- a/yaku-ui/qg-service-ui/src/composables/onboarding/useIsOnboardingActive.ts +++ /dev/null @@ -1,13 +0,0 @@ -// SPDX-FileCopyrightText: 2024 grow platform GmbH -// -// SPDX-License-Identifier: MIT - -import { ref } from 'vue' - -const isActive = ref(false) - -export const useIsOnboardingActive = () => { - return { - isActive, - } -} diff --git a/yaku-ui/qg-service-ui/src/composables/onboarding/useOnboardElement.ts b/yaku-ui/qg-service-ui/src/composables/onboarding/useOnboardElement.ts deleted file mode 100644 index 1de0819f..00000000 --- a/yaku-ui/qg-service-ui/src/composables/onboarding/useOnboardElement.ts +++ /dev/null @@ -1,143 +0,0 @@ -// SPDX-FileCopyrightText: 2024 grow platform GmbH -// -// SPDX-License-Identifier: MIT - -import type { OnboardingStep } from '~/types' -import { ref, computed, watch } from 'vue' -import { useIsOnboardingActive } from './useIsOnboardingActive' -import { onboardingTour } from './useOnboarding' -import { useElementBounding } from '@vueuse/core' -import { useRoute, useRouter } from 'vue-router' -import { useUrlContext } from '~/composables/useUrlContext' -import { useMockServiceWorker } from '~/composables/useMockServiceWorker' -import { ROUTE_NAMES } from '~/router' - -export const onboardElement = ref() - -export const useOnboardElement = () => { - const INACTIVE_STEP_VALUE = -1 - const step = ref(INACTIVE_STEP_VALUE) - const onboardingStep = ref() - - const { urlContext } = useUrlContext() - - const { isActive } = useIsOnboardingActive() - const elementRect = computed(() => useElementBounding(onboardElement.value)) - - const router = useRouter() - const route = useRoute() - - const mockServiceWorker = useMockServiceWorker() - - const setOnboardingToStep = (nextOnboardingStep: OnboardingStep) => { - const el = document.querySelector( - `[data-onboarding="${nextOnboardingStep.selector}"]`, - ) as HTMLElement | null - - if (!el) { - console.error( - `The element "${nextOnboardingStep.selector}" can not be selected for the onboarding.`, - ) - return - } - onboardElement.value = el - onboardingStep.value = nextOnboardingStep - - if (!el.classList.contains('onboarding-element-without-focus')) { - el.scrollIntoView({ behavior: 'smooth', block: 'center' }) - } - } - - const start = async () => { - await mockServiceWorker.start() - - step.value = 0 - const onboardingStep = onboardingTour.value?.at(step.value) - if (onboardingStep) setOnboardingToStep(onboardingStep) - } - watch( - isActive, - (newIsActive) => { - if (newIsActive) start() - }, - { immediate: true }, - ) - - const stop = async () => { - isActive.value = false - onboardElement.value = undefined - - if (ROUTE_NAMES.RUN_RESULTS !== route.name) { - await mockServiceWorker.stop() - } else { - watch( - () => route.name, - async () => { - await mockServiceWorker.stop() - }, - ) - } - } - - const navigateToElement = async (direction: 'next' | 'prev') => { - const link = onboardingTour.value?.at(step.value) - switch (direction === 'next' ? link?.linkToNext : link?.linkToPrev) { - case 'lastRun': - return `${route.fullPath}/1/results` - case 'runs-overview': - return `/${urlContext.value.serverSlug}/${urlContext.value.namespaceSlug}/runs` - case 'lastRelease': - return `/${urlContext.value.serverSlug}/${urlContext.value.namespaceSlug}/releases/1/details/checks` - case 'releases-overview': - return `/${urlContext.value.serverSlug}/${urlContext.value.namespaceSlug}/releases` - case 'history': - return `/${urlContext.value.serverSlug}/${urlContext.value.namespaceSlug}/releases/1/details/history` - } - } - - const next = async () => { - const linkToNext = onboardingTour.value?.at(step.value)?.linkToNext - if (linkToNext) { - if (linkToNext === 'lastRun') { - await router.push( - `/${urlContext.value.serverSlug}/${urlContext.value.namespaceSlug}/runs`, - ) - } - await router.push(`${await navigateToElement('next')}`) - } - handleDirections(1) - } - - const prev = async () => { - if (onboardingTour.value?.at(step.value)?.linkToPrev) { - await router.push(`${await navigateToElement('prev')}`) - } - handleDirections(-1) - } - - const handleDirections = (direction: number) => { - step.value += direction - const onboardingStep = onboardingTour.value?.at(step.value) - if (onboardingStep) setOnboardingToStep(onboardingStep) - } - - return { - isActive, - elementRect, - onboardingStep, - step, - totalSteps: computed(() => onboardingTour.value?.length), - start, - hasNext: computed( - () => step.value < (onboardingTour.value?.length ?? 0) - 1, - ), - next, - hasPrev: computed( - () => - INACTIVE_STEP_VALUE + 1 < step.value && - step.value < (onboardingTour.value?.length ?? 0), - ), - prev, - stop, - } -} diff --git a/yaku-ui/qg-service-ui/src/composables/onboarding/useOnboarding.ts b/yaku-ui/qg-service-ui/src/composables/onboarding/useOnboarding.ts deleted file mode 100644 index 6b1047f7..00000000 --- a/yaku-ui/qg-service-ui/src/composables/onboarding/useOnboarding.ts +++ /dev/null @@ -1,23 +0,0 @@ -// SPDX-FileCopyrightText: 2024 grow platform GmbH -// -// SPDX-License-Identifier: MIT - -import { ref } from 'vue' -import type { OnboardingTour } from '~/types' -import { useIsOnboardingActive } from './useIsOnboardingActive' - -export const onboardingTour = ref() - -type UseOnboardingOpts = { - onboardingTour: OnboardingTour -} -export const useOnboarding = (options: UseOnboardingOpts) => { - const { isActive } = useIsOnboardingActive() - onboardingTour.value = options.onboardingTour - - return { - start: () => { - isActive.value = true - }, - } -} diff --git a/yaku-ui/qg-service-ui/src/composables/onboarding/useOnboardingRoutes.ts b/yaku-ui/qg-service-ui/src/composables/onboarding/useOnboardingRoutes.ts deleted file mode 100644 index b5190051..00000000 --- a/yaku-ui/qg-service-ui/src/composables/onboarding/useOnboardingRoutes.ts +++ /dev/null @@ -1,22 +0,0 @@ -// SPDX-FileCopyrightText: 2024 grow platform GmbH -// -// SPDX-License-Identifier: MIT - -import { ROUTE_NAMES } from '~/router' -import { OnboardingTour } from '~/types' -import { REPORT_ONBOARDING } from './config/Report' -import { DASHBOARD_ONBOARDING } from './config/Dashboard' -import { RELEASE_ONBOARDING } from './config/Release' - -type OnboardingRoute = { - name: string - config: OnboardingTour -} - -export const useOnboardingRoutes = (): OnboardingRoute[] => { - return [ - { name: ROUTE_NAMES.RUNS_OVERVIEW, config: REPORT_ONBOARDING }, - { name: ROUTE_NAMES.DASHBOARD, config: DASHBOARD_ONBOARDING }, - { name: ROUTE_NAMES.RELEASE_OVERVIEW, config: RELEASE_ONBOARDING }, - ] -} diff --git a/yaku-ui/qg-service-ui/src/composables/useCheckDisplay.spec.ts b/yaku-ui/qg-service-ui/src/composables/useCheckDisplay.spec.ts index 3b4b1a9a..1d135ced 100644 --- a/yaku-ui/qg-service-ui/src/composables/useCheckDisplay.spec.ts +++ b/yaku-ui/qg-service-ui/src/composables/useCheckDisplay.spec.ts @@ -2,20 +2,20 @@ // // SPDX-License-Identifier: MIT -import { ref, toRefs } from "vue"; -import { RunResultStatus } from "~/types/RunReport"; -import { CHECK_DISPLAY_CONFIG, useCheckDisplay } from "./useCheckDisplay"; +import { ref, toRefs } from 'vue' +import { RunResultStatus } from '~/types/RunReport' +import { CHECK_DISPLAY_CONFIG, useCheckDisplay } from './useCheckDisplay' -describe("useCheckDisplay", () => { - it("is reactive", () => { - const statusRef = ref("RED"); - const statusDisplay = useCheckDisplay(statusRef); - expect(statusDisplay.icon).toStrictEqual(CHECK_DISPLAY_CONFIG.RED.icon); - }); +describe('useCheckDisplay', () => { + it('is reactive', () => { + const statusRef = ref('RED') + const statusDisplay = useCheckDisplay(statusRef) + expect(statusDisplay.icon).toStrictEqual(CHECK_DISPLAY_CONFIG.RED.icon) + }) - it("is extracted prop reactive with toRefs", () => { - const statusRef = ref("RED"); - const { icon } = toRefs(useCheckDisplay(statusRef)); - expect(icon.value).toStrictEqual(CHECK_DISPLAY_CONFIG.RED.icon); - }); -}); + it('is extracted prop reactive with toRefs', () => { + const statusRef = ref('RED') + const { icon } = toRefs(useCheckDisplay(statusRef)) + expect(icon.value).toStrictEqual(CHECK_DISPLAY_CONFIG.RED.icon) + }) +}) diff --git a/yaku-ui/qg-service-ui/src/composables/useMockServiceWorker.ts b/yaku-ui/qg-service-ui/src/composables/useMockServiceWorker.ts deleted file mode 100644 index 2c83f913..00000000 --- a/yaku-ui/qg-service-ui/src/composables/useMockServiceWorker.ts +++ /dev/null @@ -1,81 +0,0 @@ -// SPDX-FileCopyrightText: 2024 grow platform GmbH -// -// SPDX-License-Identifier: MIT - -import { onboardingWorker, onUnhandledRequest } from '~/mocks/browser' -import { useConfigStore } from '~/store/useConfigStore' -import { storeContext } from '~/composables/api' -import { useRunStore } from '~/store/useRunStore' -import { useReleaseStore } from '~/store/useReleaseStore' -import { - useConfigsOverviewFetcher, - useRunOverviewFetcher, -} from '~/composables/fetcher' -import { ref } from 'vue' -import type { Config, Run } from '~/types' -import { useReleasesOverviewFetcher } from '~/composables/fetcher/useReleasesOverviewFetcher' - -export const useMockServiceWorker = () => { - const configStore = useConfigStore(storeContext) - const runStore = useRunStore(storeContext) - const releaseStore = useReleaseStore(storeContext) - - const configsOfReleases = ref>({}) - const lastRunOfConfigs = ref>({}) - const findingsOfConfig = ref>( - {}, - ) - const findingsOfRun = ref>({}) - - const start = async () => { - clearStores() - await onboardingWorker.start({ onUnhandledRequest }) - await refetch() - } - - const stop = async () => { - clearStores() - onboardingWorker.stop() - await refetch() - } - - const clearStores = () => { - configStore.configs = [] - runStore.runs = [] - releaseStore.releases = [] - } - - const refetch = async () => { - await refetchConfigs() - await refetchReleases() - await refetchRuns() - } - - const refetchConfigs = async () => { - const fetcher = useConfigsOverviewFetcher({ - lastRunOfConfigs, - findingsOfConfig, - }) - await fetcher.next() - } - - const refetchReleases = async () => { - const fetcher = useReleasesOverviewFetcher({ - findingsOfConfig, - configsOfReleases, - }) - await fetcher.next() - } - - const refetchRuns = async () => { - const fetcher = useRunOverviewFetcher({ - findingsOfRun, - options: { - groupBy: 'configuration', - }, - }) - await fetcher.next() - } - - return { start, stop, clearStores } -} diff --git a/yaku-ui/qg-service-ui/src/config/schemas/qg-config-schema.json b/yaku-ui/qg-service-ui/src/config/schemas/qg-config-schema.json index 6036023d..c5815f31 100644 --- a/yaku-ui/qg-service-ui/src/config/schemas/qg-config-schema.json +++ b/yaku-ui/qg-service-ui/src/config/schemas/qg-config-schema.json @@ -1,5 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://github.com/B-S-F/yaku/onyx/pkg/configuration/versions/v1/config", "$ref": "#/$defs/Config", "$defs": { "AppRepository": { diff --git a/yaku-ui/qg-service-ui/src/utils/parseGithubUrl.spec.ts b/yaku-ui/qg-service-ui/src/utils/parseGithubUrl.spec.ts index 127a1103..a38f15bb 100644 --- a/yaku-ui/qg-service-ui/src/utils/parseGithubUrl.spec.ts +++ b/yaku-ui/qg-service-ui/src/utils/parseGithubUrl.spec.ts @@ -2,33 +2,33 @@ // // SPDX-License-Identifier: MIT -import { parseGithubUrl } from "./parseGithubUrl"; +import { parseGithubUrl } from './parseGithubUrl' -describe("parseGithubUrl", () => { - it("returns the elements from a simple link to the repository", () => { - expect(parseGithubUrl("https://github.com/B-S-F/yaku/")).toStrictEqual({ +describe('parseGithubUrl', () => { + it('returns the elements from a simple link to the repository', () => { + expect(parseGithubUrl('https://github.com/B-S-F/yaku/')).toStrictEqual({ ok: true, - org: "B-S-F", - project: "yaku", - repositoryUrl: "https://github.com/B-S-F/yaku", - }); - }); + org: 'B-S-F', + project: 'yaku', + repositoryUrl: 'https://github.com/B-S-F/yaku', + }) + }) - it("returns the elements from a PR", () => { + it('returns the elements from a PR', () => { expect( - parseGithubUrl("https://github.com/B-S-F/yaku/pull/71") + parseGithubUrl('https://github.com/B-S-F/yaku/pull/71'), ).toStrictEqual({ ok: true, - org: "B-S-F", - project: "yaku", - repositoryUrl: "https://github.com/B-S-F/yaku", - }); - }); + org: 'B-S-F', + project: 'yaku', + repositoryUrl: 'https://github.com/B-S-F/yaku', + }) + }) - it("returns an error if it is not a github link", () => { - expect(parseGithubUrl("https://example.com")).toStrictEqual({ + it('returns an error if it is not a github link', () => { + expect(parseGithubUrl('https://example.com')).toStrictEqual({ ok: false, - message: "The github repository is not recognized from the URL.", - }); - }); -}); + message: 'The github repository is not recognized from the URL.', + }) + }) +})