{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/legacy/js/forms/isra/ProfileQuestions.js","webpack:///./src/legacy/js/forms/bc/masterplan/CostUnits.js","webpack:///./src/legacy/js/forms/bc/risk/RiskImpactAreas.js","webpack:///./src/components/core/PdTreeGrid/PdTreeGridEditor.vue?dbd5","webpack:///./src/api/axios.ts","webpack:///./src/store/modules/application.ts","webpack:///./src/store/modules/authentication.ts","webpack:///./src/store/modules/entity.ts","webpack:///./src/store/modules/navigation.ts","webpack:///./src/store/modules/tra.ts","webpack:///./src/store/index.ts","webpack:///./src/components/core/PdTreeView/PdTreeViewLine.vue?4cfb","webpack:///./src/legacy/js/forms/bc/risk/RiskControlEvaluations.js","webpack:///./src/components/core/PdMessage.vue?6e85","webpack:///./src/components/bcm/incident/AffectedLocations.vue?8586","webpack:///./src/legacy/js/forms/bc/Dashboard.js","webpack:///./src/legacy/js/forms/isra/TreatmentAnswers.js","webpack:///./src/legacy/js/forms/bc/bia/OperationalImpactQuestions.js","webpack:///./src/legacy/js/forms/isra/RiskScales.js","webpack:///./src/legacy/js/forms/isra/RiskManagementTreatmentReview.js","webpack:///./src/legacy/js/forms/bc/StrategyScenario.js","webpack:///./src/legacy/js/forms/bc/Strategies.js","webpack:///./src/legacy/js/forms/AllDeployments.js","webpack:///./src/legacy/js/forms/isra/RiskManagementAssessmentQuestionnaire.js","webpack:///./src/components/bcm/incident/IncidentNotifications.vue?979a","webpack:///./src/legacy/js/forms/bc/bia/FinancialImpactQuestions.js","webpack:///./src/components/bcm/incident/AffectedPartitions.vue?d58f","webpack:///./src/views/bcm/testing/DisasterRecoveryTestUserView.vue?8e0b","webpack:///./src/legacy/js/forms/DashboardBase.js","webpack:///./src/legacy/js/forms/isra/AnswerGroups.js","webpack:///./src/legacy/js/main.js","webpack:///./src/components/bcm/bia/BiaApplicationLine.vue?6861","webpack:///./src/views/tra/assessments/AssessmentQuestionnaireLine.vue?aa2a","webpack:///./src/legacy/js/forms/isra/RiskManagementAssessments.js","webpack:///./src/views/bcm/incident/IncidentViewer.vue?20a8","webpack:///./src/legacy/js/forms/isra/RiskManagementAcceptanceQuestionnaire.js","webpack:///./src/legacy/js/forms/bc/masterplan/Associates.js","webpack:///./src/legacy/js/forms/isra/RiskManagementTreatmentProgress.js","webpack:///./src/legacy/js/forms/bc/masterplan/ImplementationScales.js","webpack:///./src/views/bcm/BcmDashboard.vue?30d4","webpack:///./src/components/core/PdRichTextEditor.vue?e011","webpack:///./src/legacy/js/forms/isra/RiskAcceptanceAnswers.js","webpack:///./src/components/bcm/testing/dr/DisasterTestFinalizationLine.vue?ba6e","webpack:///./src/services/DownloadService.ts","webpack:///./src/legacy/js/forms/bc/masterplan/Assets.js","webpack:///./src/components/compliance/ListCategory.vue?f261","webpack:///./src/legacy/js/forms/bc/masterplan/LocationGroups.js","webpack:///./src/views/all/ChangePasswordView.vue?fb56","webpack:///./src/legacy/js/Core/datasources.js","webpack:///./src/views/LoginView.vue?4722","webpack:///./src/i18n/translations sync [a-zA-Z0-9-_]+\\.json$/","webpack:///./src/legacy/js/forms/bc/risk/RiskImpactScales.js","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteGeneral.vue?14f0","webpack:///./src/views/tra/assessments/AssessmentQuestionnaireUserLine.vue?0826","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewRiskColumn.vue?8124","webpack:///./src/views/bcm/LocationsView.vue?c800","webpack:///./src/components/bcm/incident/AffectedTypes.vue?1734","webpack:///./src/legacy/js/forms/isra/ClassificationQuestions.js","webpack:///./src/legacy/js/forms/isra/RiskManagementRiskControls.js","webpack:///./src/legacy/js/forms/isra/ClassificationDeploymentQuestionnaire.js","webpack:///./src/components/core/PdDataTable/columns/PdColumnColor.vue?0c1f","webpack:///./src/legacy/js/Core/constants.js","webpack:///./src/legacy/js/forms/isra/RiskManagementTreatmentQuestionnaire.js","webpack:///./src/i18n/index.ts","webpack:///./src/legacy/js/forms/bc/masterplan/RTOApplications.js","webpack:///./src/legacy/js/forms/bc/masterplan/FinancialImpactScales.js","webpack:///./src/components/core/PdNavigation/PdNavigation.vue?4918","webpack:///./src/views/bcm/testing/DisasterRecoveryTestConfirmationView.vue?62ec","webpack:///./src/views/tra/assessments/questionnaires/AssessmentQuestionnaireUserControlLine.vue?11ea","webpack:///./src/legacy/js/forms/bc/QuickView.js","webpack:///./src/legacy/js/forms/bc/masterplan/RecoverySites.js","webpack:///./src/legacy/js/forms/bc/risk/RiskProbabilities.js","webpack:///./src/legacy/js/forms/bc/masterplan/RecoverySiteTypes.js","webpack:///./src/legacy/js/forms/bc/risk/Risks.js","webpack:///./src/components/bcm/strategy/StrategyScenarioCostDialog.vue?e7c3","webpack:///./src/legacy/js/forms/bc/masterplan/Applications.js","webpack:///./src/legacy/js/Core/Selectors.js","webpack:///./src/legacy/js/forms/isra/ControlStrengthReductions.js","webpack:///./src/components/core/PdPopupCard.vue?5e5f","webpack:///./src/legacy/js/forms/isra/LikelihoodScales.js","webpack:///./src/legacy/js/forms/bc/OrganizationStructure.js","webpack:///./src/legacy/js/forms/users/UserManagement.js","webpack:///./src/components/bcm/testing/dr/DisasterTestFinishedLine.vue?d83c","webpack:///./src/components/core/PdPivot/PdPivotTable.vue?81dc","webpack:///./src/legacy/js/forms/FormBase.js","webpack:///./src/views/bcm/SystemsView.vue?260a","webpack:///./src/components/core/PdTranslationsEditor.vue?83f6","webpack:///./src/legacy/js/forms/bc/masterplan/Locations.js","webpack:///./src/assets/file.png","webpack:///./src/legacy/js/forms/bc/bia/deploymentdetails/DeploymentTabBase.js","webpack:///./src/legacy/js/forms/bc/bia/deploymentdetails/DeploymentSurveys.js","webpack:///./src/legacy/js/forms/bc/bia/deploymentdetails/DeploymentAssets.js","webpack:///./src/legacy/js/forms/bc/bia/deploymentdetails/DeploymentApplications.js","webpack:///./src/legacy/js/forms/bc/bia/deploymentdetails/DeploymentExternalContacts.js","webpack:///./src/legacy/js/forms/bc/bia/deploymentdetails/DeploymentFinancialImpact.js","webpack:///./src/legacy/js/forms/bc/bia/deploymentdetails/DeploymentInterdependencies.js","webpack:///./src/legacy/js/forms/bc/bia/deploymentdetails/DeploymentOperationalImpact.js","webpack:///./src/legacy/js/forms/bc/bia/deploymentdetails/DeploymentInternalContacts.js","webpack:///./src/legacy/js/forms/bc/bia/deploymentdetails/DeploymentPersonnel.js","webpack:///./src/legacy/js/forms/bc/bia/deploymentdetails/DeploymentRisks.js","webpack:///./src/legacy/js/forms/bc/bia/deploymentdetails/DeploymentTabs.js","webpack:///./src/legacy/js/forms/bc/ProjectManagement.js","webpack:///./src/legacy/js/forms/isra/RiskManagementControls.js","webpack:///./src/layouts/empty-layout.vue?8219","webpack:///./src/legacy/js/forms/isra/VersionableFormBase.js","webpack:///./src/legacy/js/forms/isra/RiskManagementAssessmentReview.js","webpack:///./src/legacy/js/forms/bc/masterplan/Positions.js","webpack:///./src/legacy/js/forms/isra/TreatmentPrioritizationScales.js","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionCallTree.vue?5018","webpack:///./src/images/pdf_icon.svg","webpack:///./src/legacy/js/forms/bc/risk/RiskGroups.js","webpack:///./src/components/core/PdDataTable/PdDataTable.vue?9755","webpack:///./src/legacy/js/forms/bc/bcp/BcpGenerator.js","webpack:///./src/legacy/js/forms/isra/Assessments.js","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteApplications.vue?d13a","webpack:///./src/legacy/js/forms/isra/ControlQuestions.js","webpack:///./src/components/bcm/bia/BiaAssetLine.vue?84dd","webpack:///./src/legacy/js/forms/isra/Dashboard.js","webpack:///./src/legacy/js/forms/bc/bia/Deployments.js","webpack:///./src/legacy/js/forms/isra/Risks.js","webpack:///./src/dtos/all/BaseDeploymentDto.ts","webpack:///./src/dtos/all/DeploymentUserDto.ts","webpack:///./src/dtos/all/DocumentDto.ts","webpack:///./src/legacy/js/forms/isra/VulnerabilityCategories.js","webpack:///./src/components/bcm/incident/IncidentTasks.vue?4777","webpack:///./src/legacy/js/forms/bc/risk/RiskLevels.js","webpack:///./src/legacy/js/forms/bc/bcp/BcpDocuments.js","webpack:///./src/legacy/js/forms/bc/masterplan/RPO.js","webpack:///./src/legacy/js/forms/Licences.js","webpack:///./src/legacy/js/forms/bc/masterplan/Services.js","webpack:///./src/legacy/js/forms/isra/ControlStrengthScales.js","webpack:///./src/legacy/js/forms/bc/risk/RiskTreatments.js","webpack:///./src/components/bcm/bia/Deployments/DeploymentListLine.vue?2c26","webpack:///./src/legacy/js/forms/isra/RiskControls.js","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteAssets.vue?ad6e","webpack:///./node_modules/chart.js/node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/components/bcm/incident/AffectedTypeLine.vue?a8d6","webpack:///./src/legacy/js/forms/isra/RiskManagementAcceptances.js","webpack:///./src/legacy/js/forms/bc/bia/Surveys.js","webpack:///./src/legacy/js/forms/ApplicationSettings.js","webpack:///./src/legacy/js/forms/isra/Vulnerabilities.js","webpack:///./src/router/index.ts","webpack:///./src/components/srb/ContractEditor.vue?467b","webpack:///./src/legacy/js/forms/isra/RiskManagementTreatments.js","webpack:///./src/components/bcm/testing/dr/DisasterTestApplicationLine.vue?415d","webpack:///./src/legacy/js/forms/isra/RiskDeploymentControlValues.js","webpack:///./src/legacy/js/forms/isra/RiskDeploymentRiskValues.js","webpack:///./src/legacy/js/forms/isra/RiskDeploymentRiskControlValues.js","webpack:///./src/legacy/js/forms/isra/RiskDeploymentRiskTestValues.js","webpack:///./src/legacy/js/forms/isra/RiskDeploymentTreatmentReview.js","webpack:///./src/legacy/js/forms/isra/RiskDeployments.js","webpack:///./src/legacy/js/forms/isra/Answers.js","webpack:///./src/views/bcm/testing/DisasterRecoveryTestSchedulingView.vue?aed5","webpack:///./src/components/bcm/incident/AffectedApplications.vue?3247","webpack:///./src/legacy/js/forms/isra/ClassificationDeployments.js","webpack:///./src/components/bcm/bia/BiaInterdependencyEditor.vue?db1e","webpack:///./src/legacy/js/forms/isra/Threats.js","webpack:///./src/legacy/js/forms/isra/Standardizations.js","webpack:///./src/legacy/js/forms/isra/IsoDomains.js","webpack:///./src/views/ForgotPasswordView.vue?6fc5","webpack:///./src/legacy/js/forms/bc/bcp/BcpTemplates.js","webpack:///./src/legacy/js/forms/users/CoordinatorTypes.js","webpack:///./src/legacy/js/forms/bc/masterplan/RTO.js","webpack:///./src/components/bcm/incident/IncidentFiles.vue?2b83","webpack:///./src/legacy/js/forms/isra/RiskManagementRisks.js","webpack:///./src/legacy/js/Core/Helpers.js","webpack:///./src/legacy/js/forms/DeploymentQuestionnaireFormBase.js","webpack:///./src/App.vue?ae6c","webpack:///./src/layouts/loading-layout.vue?31d8","webpack:///./src/components/core/PdMessage.vue?7dcd","webpack:///./src/components/core/PdPopup.vue?72d7","webpack:///./src/components/core/PdPopup.vue","webpack:///./src/components/core/PdPopup.vue?fe9d","webpack:///./src/components/core/PdPopup.vue?a127","webpack:///./src/services/PopupMessageService.ts","webpack:///./src/components/core/PdMessage.vue","webpack:///./src/components/core/PdMessage.vue?bad3","webpack:///./src/components/core/PdMessage.vue?2e60","webpack:///./src/layouts/loading-layout.vue","webpack:///./src/layouts/loading-layout.vue?f2e5","webpack:///./src/layouts/loading-layout.vue?7e1a","webpack:///./src/layouts/empty-layout.vue?1413","webpack:///./src/components/core/PdFooter.vue?36c6","webpack:///./src/components/core/PdFooter.vue","webpack:///./src/components/core/PdFooter.vue?01f6","webpack:///./src/components/core/PdFooter.vue?f0a6","webpack:///./src/components/core/pd-header.vue?0942","webpack:///./src/dtos/UserDto.ts","webpack:///./src/api/AuthenticationApi.ts","webpack:///./src/services/LegacyService.ts","webpack:///./src/services/AuthenticationService.ts","webpack:///./src/core/helpers/templates/LanguageTemplate.ts","webpack:///./src/core/helpers/templates/LocationTemplate.ts","webpack:///./src/core/helpers/templates/BooleanTemplate.ts","webpack:///./src/core/helpers/templates/DateTemplate.ts","webpack:///./src/components/core/pd-header.vue","webpack:///./src/components/core/pd-header.vue?631e","webpack:///./src/components/core/pd-header.vue?a3cd","webpack:///./src/components/core/PdBusy.vue?f003","webpack:///./src/components/core/PdBusy.vue","webpack:///./src/components/core/PdBusy.vue?d945","webpack:///./src/components/core/PdBusy.vue?06a6","webpack:///./src/components/core/PdTimeout.vue?d7e2","webpack:///./src/components/core/PdTimeout.vue","webpack:///./src/components/core/PdTimeout.vue?c1c8","webpack:///./src/components/core/PdTimeout.vue?b7c6","webpack:///./src/layouts/empty-layout.vue","webpack:///./src/layouts/empty-layout.vue?12d7","webpack:///./src/layouts/empty-layout.vue?8ae1","webpack:///./src/layouts/default-layout.vue?528f","webpack:///./src/components/core/PdNavigation/PdNavigation.vue?fdbc","webpack:///./src/components/core/PdNavigation/PdMenuEntry.vue?5b03","webpack:///./src/components/core/PdNavigation/PdMenuEntry.vue","webpack:///./src/components/core/PdNavigation/PdMenuEntry.vue?418c","webpack:///./src/components/core/PdNavigation/PdMenuEntry.vue?4c5b","webpack:///./src/components/all/NavigationMenu.vue?2765","webpack:///./src/dtos/bcm/bia/PartitionInterdependencyDto.ts","webpack:///./src/dtos/bcm/bia/index.ts","webpack:///./src/dtos/bcm/PartitionDto.ts","webpack:///./src/dtos/bcm/SurveyQuestionDto.ts","webpack:///./src/dtos/bcm/SystemDto.ts","webpack:///./src/dtos/NotificationDto.ts","webpack:///./src/dtos/UploadFileDto.ts","webpack:///./src/dtos/UploadCsvFileDto.ts","webpack:///./src/core/navigation/bcm.ts","webpack:///./src/core/navigation/isra.ts","webpack:///./src/core/navigation/tra.ts","webpack:///./src/core/MenuItems.ts","webpack:///./src/services/NavigationService.ts","webpack:///./src/components/all/NavigationMenu.vue","webpack:///./src/components/all/NavigationMenu.vue?49d0","webpack:///./src/components/all/NavigationMenu.vue?1db7","webpack:///./src/components/core/PdNavigation/PdNavigation.vue","webpack:///./src/components/core/PdNavigation/PdNavigation.vue?ed37","webpack:///./src/components/core/PdNavigation/PdNavigation.vue?453e","webpack:///./src/components/core/PdSnackbar.vue?0d64","webpack:///./src/services/SnackbarMessageService.ts","webpack:///./src/components/core/PdSnackbar.vue","webpack:///./src/components/core/PdSnackbar.vue?68c4","webpack:///./src/components/core/PdSnackbar.vue?49d7","webpack:///./src/layouts/default-layout.vue","webpack:///./src/layouts/default-layout.vue?3155","webpack:///./src/layouts/default-layout.vue?0796","webpack:///./src/services/ErrorHandlingService.ts","webpack:///./src/services/AuthorizationService.ts","webpack:///./src/api/EntitiesApi.ts","webpack:///./src/services/EntitiesService.ts","webpack:///./src/api/SettingsApi.ts","webpack:///./src/services/SettingsService.ts","webpack:///./src/services/ApplicationService.ts","webpack:///./src/App.vue","webpack:///./src/App.vue?4dbd","webpack:///./src/App.vue?4195","webpack:///./src/plugins/vuetify.ts","webpack:///./src/views/EntitiesView.vue?7968","webpack:///./src/components/core/PdDataTable/PdDataTable.vue?bd75","webpack:///./src/components/core/PdDataTable/PdDataTableTranslations.vue?132a","webpack:///./src/components/core/PdDataTable/PdDataTableTranslations.vue","webpack:///./src/components/core/PdDataTable/PdDataTableTranslations.vue?2839","webpack:///./src/components/core/PdDataTable/PdDataTableTranslations.vue?2fec","webpack:///./src/components/core/PdDataTable/PdDataTablePopupEditor.vue?cd69","webpack:///./src/components/core/PdPopupCard.vue?ac9b","webpack:///./src/components/core/PdPopupCard.vue","webpack:///./src/components/core/PdPopupCard.vue?98ed","webpack:///./src/components/core/PdPopupCard.vue?5a7b","webpack:///./src/components/core/PdDataTable/PdDataTablePopupEditor.vue","webpack:///./src/components/core/PdDataTable/PdDataTablePopupEditor.vue?ed12","webpack:///./src/components/core/PdDataTable/PdDataTablePopupEditor.vue?c7c0","webpack:///./src/components/core/PdDataTable/columns/PdColumnColor.vue?ac33","webpack:///./src/components/core/PdDataTable/columns/PdColumnProps.ts","webpack:///./src/components/core/PdDataTable/columns/PdColumnColor.vue","webpack:///./src/components/core/PdDataTable/columns/PdColumnColor.vue?f4ce","webpack:///./src/components/core/PdDataTable/columns/PdColumnColor.vue?1309","webpack:///./src/components/core/PdDataTable/columns/PdColumnComboBox.vue?9a6c","webpack:///./src/components/core/PdDataTable/columns/PdColumnComboBox.vue","webpack:///./src/components/core/PdDataTable/columns/PdColumnComboBox.vue?875d","webpack:///./src/components/core/PdDataTable/columns/PdColumnComboBox.vue?187c","webpack:///./src/components/core/PdDataTable/columns/PdColumnDateTime.vue?d58a","webpack:///./src/components/core/PdDataTable/columns/PdColumnDateTime.vue","webpack:///./src/components/core/PdDataTable/columns/PdColumnDateTime.vue?7865","webpack:///./src/components/core/PdDataTable/columns/PdColumnDateTime.vue?6743","webpack:///./src/components/core/PdDataTable/columns/PdColumnDefault.vue?c1f9","webpack:///./src/components/core/PdDataTable/columns/PdColumnDefault.vue","webpack:///./src/components/core/PdDataTable/columns/PdColumnDefault.vue?9134","webpack:///./src/components/core/PdDataTable/columns/PdColumnDefault.vue?e0f0","webpack:///./src/components/core/PdDataTable/columns/PdColumnDropDown.vue?a44f","webpack:///./src/components/core/PdDataTable/columns/PdColumnDropDown.vue","webpack:///./src/components/core/PdDataTable/columns/PdColumnDropDown.vue?c6c6","webpack:///./src/components/core/PdDataTable/columns/PdColumnDropDown.vue?0092","webpack:///./src/components/core/PdDataTable/columns/PdColumnNumber.vue?b7cc","webpack:///./src/components/core/PreventNonNumericalInput.ts","webpack:///./src/components/core/PdDataTable/columns/PdColumnNumber.vue","webpack:///./src/components/core/PdDataTable/columns/PdColumnNumber.vue?567f","webpack:///./src/components/core/PdDataTable/columns/PdColumnNumber.vue?e799","webpack:///./src/components/core/PdDataTable/columns/PdColumnTranslation.vue?a4a0","webpack:///./src/components/core/PdDataTable/columns/PdColumnTranslation.vue","webpack:///./src/components/core/PdDataTable/columns/PdColumnTranslation.vue?6d3d","webpack:///./src/components/core/PdDataTable/columns/PdColumnTranslation.vue?7723","webpack:///./src/components/core/PdDataTable/columns/PdColumnYesNo.vue?ded3","webpack:///./src/components/core/PdDataTable/columns/PdColumnYesNo.vue","webpack:///./src/components/core/PdDataTable/columns/PdColumnYesNo.vue?c51f","webpack:///./src/components/core/PdDataTable/columns/PdColumnYesNo.vue?5f4e","webpack:///./src/components/core/PdDataTable/columns/PdDropDownColumn.vue?3d44","webpack:///./src/components/core/PdDataTable/columns/PdDropDownColumn.vue","webpack:///./src/components/core/PdDataTable/columns/PdDropDownColumn.vue?8f30","webpack:///./src/components/core/PdDataTable/columns/PdDropDownColumn.vue?03bd","webpack:///./src/components/core/PdDataTable/columns/PdTextColumn.vue?e032","webpack:///./src/components/core/PdDataTable/columns/PdTextColumn.vue","webpack:///./src/components/core/PdDataTable/columns/PdTextColumn.vue?ca2a","webpack:///./src/components/core/PdDataTable/columns/PdTextColumn.vue?99ec","webpack:///./src/components/core/PdDataTable/PdDataTableActionsMenu.vue?28c5","webpack:///./src/components/core/PdDataTable/PdDataTableActionsMenu.vue","webpack:///./src/components/core/PdDataTable/PdDataTableActionsMenu.vue?f02f","webpack:///./src/components/core/PdDataTable/PdDataTableActionsMenu.vue?5fef","webpack:///./src/components/core/PdDataTable/PdDataTableEditRow.vue?4de1","webpack:///./src/core/helpers/sort.ts","webpack:///./src/components/core/PdDataTable/PdDataTableEditRow.vue","webpack:///./src/components/core/PdDataTable/PdDataTableEditRow.vue?d198","webpack:///./src/components/core/PdDataTable/PdDataTableEditRow.vue?55ca","webpack:///./src/core/datasource/DataSourceBase.ts","webpack:///./src/core/datasource/ApiDataSource.ts","webpack:///./src/core/datasource/ArrayDataSource.ts","webpack:///./src/core/helpers/search.ts","webpack:///./src/core/helpers/pagination.ts","webpack:///./src/components/core/PdDataTable/PdDataTable.vue","webpack:///./src/components/core/PdDataTable/index.ts","webpack:///./src/components/core/PdDataTable/PdDataTable.vue?c172","webpack:///./src/components/core/PdDataTable/PdDataTable.vue?4460","webpack:///./src/core/helpers/datasources/DatasourceBase.ts","webpack:///./src/core/helpers/datasources/BcmDatasources.ts","webpack:///./src/core/helpers/datasources/BcpFunctionalTestDatasources.ts","webpack:///./src/core/helpers/datasources/ComplianceDatasources.ts","webpack:///./src/core/helpers/datasources/DisasterRecoveryTestDatasources.ts","webpack:///./src/core/helpers/datasources/IncidentDatasources.ts","webpack:///./src/core/helpers/datasources/SrbDatasources.ts","webpack:///./src/core/helpers/datasources/TestingDatasources.ts","webpack:///./src/services/DatasourcesService.ts","webpack:///./src/views/EntitiesView.vue","webpack:///./src/views/EntitiesView.vue?5275","webpack:///./src/views/EntitiesView.vue?4003","webpack:///./src/views/ForgotPasswordView.vue?d705","webpack:///./src/api/all/DocumentManagementApi.ts","webpack:///./src/services/all/DocumentManagementService.ts","webpack:///./src/api/EntityApiBase.ts","webpack:///./src/api/all/UsersApi.ts","webpack:///./src/services/all/UsersService.ts","webpack:///./src/services/BusyIndicatorService.ts","webpack:///./src/views/ForgotPasswordView.vue","webpack:///./src/views/ForgotPasswordView.vue?3b55","webpack:///./src/views/ForgotPasswordView.vue?0369","webpack:///./src/views/LegacyFormView.vue?cf7b","webpack:///./src/views/LegacyFormView.vue","webpack:///./src/views/LegacyFormView.vue?c4fe","webpack:///./src/views/LegacyFormView.vue?0761","webpack:///./src/views/LoginOAuthView.vue?7d55","webpack:///./src/views/LoginOAuthView.vue","webpack:///./src/views/LoginOAuthView.vue?26a7","webpack:///./src/views/LoginOAuthView.vue?1970","webpack:///./src/views/LoginView.vue?c31b","webpack:///./src/core/rules/required.ts","webpack:///./src/views/LoginView.vue","webpack:///./src/views/LoginView.vue?5a71","webpack:///./src/views/LoginView.vue?148a","webpack:///./src/views/PageNotFoundView.vue?ddf1","webpack:///./src/components/core/PdFormBase.vue?53bf","webpack:///./src/components/core/PdFormBase.vue","webpack:///./src/components/core/PdFormBase.vue?f241","webpack:///./src/components/core/PdFormBase.vue?e3f6","webpack:///src/views/PageNotFoundView.vue","webpack:///./src/views/PageNotFoundView.vue?d25f","webpack:///./src/views/PageNotFoundView.vue","webpack:///./src/views/ResetPasswordView.vue?f1aa","webpack:///./src/views/ResetPasswordView.vue","webpack:///./src/views/ResetPasswordView.vue?ac6d","webpack:///./src/views/ResetPasswordView.vue?b485","webpack:///./src/views/admin/ApplicationSettingsView.vue?0878","webpack:///./src/views/admin/ApplicationSettingsView.vue","webpack:///./src/views/admin/ApplicationSettingsView.vue?f58e","webpack:///./src/views/admin/ApplicationSettingsView.vue?9bfd","webpack:///./src/router/routes/admin.ts","webpack:///./src/components/bcm/bia/BiaApplications.vue?033a","webpack:///./src/components/bcm/bia/BiaApplicationLine.vue?5c6b","webpack:///./src/components/core/PdNumberField.vue?be3f","webpack:///./src/components/core/PdNumberField.vue","webpack:///./src/components/core/PdNumberField.vue?5b34","webpack:///./src/components/core/PdNumberField.vue?b920","webpack:///./src/core/icons.ts","webpack:///./src/components/bcm/bia/BiaApplicationLine.vue","webpack:///./src/components/bcm/bia/BiaApplicationLine.vue?bf8d","webpack:///./src/components/bcm/bia/BiaApplicationLine.vue?632f","webpack:///./src/api/bcm/AssetsApi.ts","webpack:///./src/services/bcm/AssetsService.ts","webpack:///./src/api/bcm/AssociatesApi.ts","webpack:///./src/services/bcm/AssociatesService.ts","webpack:///./src/api/bcm/ContractsApi.ts","webpack:///./src/services/bcm/ContractsService.ts","webpack:///./src/api/bcm/EmployeePartitionsApi.ts","webpack:///./src/services/bcm/EmployeePartitionsService.ts","webpack:///./src/api/bcm/EmployeesApi.ts","webpack:///./src/services/bcm/EmployeesService.ts","webpack:///./src/api/bcm/LocationsApi.ts","webpack:///./src/services/bcm/LocationsService.ts","webpack:///./src/api/PartitionsApi.ts","webpack:///./src/services/bcm/PartitionsService.ts","webpack:///./src/api/SystemsApi.ts","webpack:///./src/services/bcm/SystemsService.ts","webpack:///./src/api/bcm/bia/BiaApi.ts","webpack:///./src/services/bcm/bia/BiaService.ts","webpack:///./src/api/bcm/StrategyApi.ts","webpack:///./src/services/EntityServiceBase.ts","webpack:///./src/services/bcm/strategy/StrategyService.ts","webpack:///./src/components/all/ItemSelector.vue?7f56","webpack:///./src/components/all/ItemSelector.vue","webpack:///./src/components/all/ItemSelector.vue?8d08","webpack:///./src/components/all/ItemSelector.vue?b0d9","webpack:///./src/components/bcm/bia/BiaApplications.vue","webpack:///./src/components/bcm/bia/BiaApplications.vue?5f5c","webpack:///./src/components/bcm/bia/BiaApplications.vue?c1fc","webpack:///./src/components/bcm/bia/BiaAssets.vue?1300","webpack:///./src/components/bcm/bia/BiaAssetLine.vue?a890","webpack:///./src/components/bcm/bia/BiaAssetLine.vue","webpack:///./src/components/bcm/bia/BiaAssetLine.vue?32de","webpack:///./src/components/bcm/bia/BiaAssetLine.vue?a0af","webpack:///./src/components/bcm/bia/BiaAssets.vue","webpack:///./src/components/bcm/bia/BiaAssets.vue?c9ce","webpack:///./src/components/bcm/bia/BiaAssets.vue?38d4","webpack:///./src/components/bcm/bia/BiaAssociates.vue?2249","webpack:///./src/components/bcm/bia/BiaAssociateEditor.vue?7bae","webpack:///./src/components/all/ItemSelectorTextField.vue?03f4","webpack:///./src/components/all/ItemSelectorTextField.vue","webpack:///./src/components/all/ItemSelectorTextField.vue?a85c","webpack:///./src/components/all/ItemSelectorTextField.vue?7e95","webpack:///./src/components/bcm/bia/BiaAssociateEditor.vue","webpack:///./src/components/bcm/bia/BiaAssociateEditor.vue?c260","webpack:///./src/components/bcm/bia/BiaAssociateEditor.vue?3cc0","webpack:///./src/components/bcm/bia/BiaAssociates.vue","webpack:///./src/components/bcm/bia/BiaAssociates.vue?62fe","webpack:///./src/components/bcm/bia/BiaAssociates.vue?2268","webpack:///./src/components/bcm/bia/BiaFinancialImpact.vue?0df0","webpack:///./src/components/bcm/bia/BiaFinancialImpactQuestion.vue?e015","webpack:///./src/components/bcm/bia/BiaFinancialImpactQuestion.vue","webpack:///./src/components/bcm/bia/BiaFinancialImpactQuestion.vue?aa66","webpack:///./src/components/bcm/bia/BiaFinancialImpactQuestion.vue?dbd6","webpack:///./src/components/bcm/bia/BiaFinancialImpact.vue","webpack:///./src/components/bcm/bia/BiaFinancialImpact.vue?d4cf","webpack:///./src/components/bcm/bia/BiaFinancialImpact.vue?4e55","webpack:///./src/components/bcm/bia/BiaInterdependencies.vue?05a0","webpack:///./src/components/bcm/bia/BiaInterdependencyEditor.vue?b7d3","webpack:///./src/components/all/PartitionSelectorTextField.vue?8cea","webpack:///./src/components/all/TreeItemSelector.vue?882f","webpack:///./src/components/core/PdTreeView/PdTreeView.vue?480d","webpack:///./src/components/core/PdTreeView/PdTreeViewLine.vue?ae21","webpack:///./src/components/core/PdTreeView/PdTreeViewLine.vue","webpack:///./src/components/core/PdTreeView/PdTreeViewLine.vue?c267","webpack:///./src/components/core/PdTreeView/PdTreeViewLine.vue?2279","webpack:///./src/components/core/PdTreeView/PdTreeView.vue","webpack:///./src/components/core/PdTreeView/PdTreeView.vue?ce26","webpack:///./src/components/core/PdTreeView/PdTreeView.vue?3808","webpack:///./src/components/all/TreeItemSelector.vue","webpack:///./src/components/all/TreeItemSelector.vue?9487","webpack:///./src/components/all/TreeItemSelector.vue?488d","webpack:///./src/components/all/PartitionSelectorTextField.vue","webpack:///./src/components/all/PartitionSelectorTextField.vue?42ae","webpack:///./src/components/all/PartitionSelectorTextField.vue?ff06","webpack:///./src/components/all/TreeItemSelectorTextField.vue?21b0","webpack:///./src/components/all/TreeItemSelectorTextField.vue","webpack:///./src/components/all/TreeItemSelectorTextField.vue?47a1","webpack:///./src/components/all/TreeItemSelectorTextField.vue?f08d","webpack:///./src/components/bcm/bia/BiaInterdependencyEditor.vue","webpack:///./src/components/bcm/bia/BiaInterdependencyEditor.vue?7fdd","webpack:///./src/components/bcm/bia/BiaInterdependencyEditor.vue?16f2","webpack:///./src/components/bcm/bia/BiaInterdependencies.vue","webpack:///./src/components/bcm/bia/BiaInterdependencies.vue?a6a7","webpack:///./src/components/bcm/bia/BiaInterdependencies.vue?4280","webpack:///./src/components/bcm/bia/BiaOperationalImpact.vue?6171","webpack:///./src/components/bcm/bia/BiaOperationalImpactQuestion.vue?f5dd","webpack:///./src/components/bcm/bia/BiaOperationalImpactQuestion.vue","webpack:///./src/components/bcm/bia/BiaOperationalImpactQuestion.vue?9463","webpack:///./src/components/bcm/bia/BiaOperationalImpactQuestion.vue?e987","webpack:///./src/components/bcm/bia/BiaOperationalImpact.vue","webpack:///./src/components/bcm/bia/BiaOperationalImpact.vue?ae85","webpack:///./src/components/bcm/bia/BiaOperationalImpact.vue?abd1","webpack:///./src/components/bcm/bia/BiaPartitionInfo.vue?574d","webpack:///./src/components/bcm/bia/BiaPartitionDeployments.vue?62f3","webpack:///./src/components/bcm/bia/BiaPartitionDeployment.vue?d97d","webpack:///./src/components/all/deployments/BaseDeploymentEditor.vue?7614","webpack:///./src/components/core/PdDatePicker.vue?f3c0","webpack:///./src/components/core/PdDatePicker.vue","webpack:///./src/components/core/PdDatePicker.vue?1fd5","webpack:///./src/components/core/PdDatePicker.vue?9f00","webpack:///./src/components/all/deployments/BaseDeploymentUsers.vue?40c3","webpack:///./src/components/all/deployments/BaseDeploymentUserLine.vue?a383","webpack:///./src/components/all/deployments/DeploymentUserStatus.ts","webpack:///./src/components/all/deployments/BaseDeploymentUserLine.vue","webpack:///./src/components/all/deployments/BaseDeploymentUserLine.vue?83e5","webpack:///./src/components/all/deployments/BaseDeploymentUserLine.vue?088f","webpack:///./src/components/all/UserSelector.vue?56c2","webpack:///./src/components/all/UserSelector.vue","webpack:///./src/components/all/UserSelector.vue?ae01","webpack:///./src/components/all/UserSelector.vue?fb8b","webpack:///./src/components/all/deployments/BaseDeploymentUsers.vue","webpack:///./src/components/all/deployments/BaseDeploymentUsers.vue?667f","webpack:///./src/components/all/deployments/BaseDeploymentUsers.vue?8b37","webpack:///./src/components/all/deployments/BaseDeploymentEditor.vue","webpack:///./src/components/all/deployments/BaseDeploymentEditor.vue?dd0c","webpack:///./src/components/all/deployments/BaseDeploymentEditor.vue?b47a","webpack:///./src/components/all/deployments/DeploymentStatus.ts","webpack:///./src/components/bcm/bia/BiaPartitionDeploymentSurvey.vue?999f","webpack:///./src/components/bcm/bia/BiaPartitionDeploymentSurvey.vue","webpack:///./src/components/bcm/bia/BiaPartitionDeploymentSurvey.vue?b272","webpack:///./src/components/bcm/bia/BiaPartitionDeploymentSurvey.vue?8b13","webpack:///./src/components/bcm/bia/BiaPartitionDeployment.vue","webpack:///./src/components/bcm/bia/BiaPartitionDeployment.vue?076a","webpack:///./src/components/bcm/bia/BiaPartitionDeployment.vue?8099","webpack:///./src/components/bcm/bia/BiaPartitionDeploymentEditor.vue?c659","webpack:///./src/components/bcm/bia/BiaPartitionDeploymentEditor.vue","webpack:///./src/components/bcm/bia/BiaPartitionDeploymentEditor.vue?0cce","webpack:///./src/components/bcm/bia/BiaPartitionDeploymentEditor.vue?65f8","webpack:///./src/components/bcm/bia/BiaPartitionDeployments.vue","webpack:///./src/components/bcm/bia/BiaPartitionDeployments.vue?1b58","webpack:///./src/components/bcm/bia/BiaPartitionDeployments.vue?11e2","webpack:///./src/components/bcm/bia/BiaPartitionInfo.vue","webpack:///./src/components/bcm/bia/BiaPartitionInfo.vue?6b67","webpack:///./src/components/bcm/bia/BiaPartitionInfo.vue?a9d5","webpack:///./src/components/bcm/bia/BiaPersonnel.vue?b70b","webpack:///./src/components/core/PdTreeGrid/PdTreeGrid.vue?fc29","webpack:///./src/components/core/PdTreeGrid/PdTreeGridEditor.vue?5830","webpack:///./src/components/core/PdTreeGrid/PdTreeGridEditor.vue","webpack:///./src/components/core/PdTreeGrid/PdTreeGridEditor.vue?bae0","webpack:///./src/components/core/PdTreeGrid/PdTreeGridEditor.vue?26e8","webpack:///./src/components/core/PdTranslationsEditor.vue?8276","webpack:///./src/components/core/PdTranslationFieldEditor.vue?a7ab","webpack:///./src/components/core/PdTranslationFieldEditor.vue","webpack:///./src/components/core/PdTranslationFieldEditor.vue?f63e","webpack:///./src/components/core/PdTranslationFieldEditor.vue?4df1","webpack:///./src/components/core/PdTranslationsEditor.vue","webpack:///./src/components/core/PdTranslationsEditor.vue?9491","webpack:///./src/components/core/PdTranslationsEditor.vue?dcf7","webpack:///./src/components/core/PdTreeGrid/PdTreeGridActionsColumn.vue?c1a1","webpack:///./src/components/core/PdTreeGrid/PdTreeGridActionsColumn.vue","webpack:///./src/components/core/PdTreeGrid/PdTreeGridActionsColumn.vue?8f01","webpack:///./src/components/core/PdTreeGrid/PdTreeGridActionsColumn.vue?df94","webpack:///./src/components/core/PdTreeGrid/PdTreeGrid.vue","webpack:///./src/components/core/PdTreeGrid/PdTreeGrid.vue?9894","webpack:///./src/components/core/PdTreeGrid/PdTreeGrid.vue?d427","webpack:///./src/components/core/PdDataTable/columns/PdColumnCheckbox.vue?8f84","webpack:///./src/components/core/PdDataTable/columns/PdColumnCheckbox.vue","webpack:///./src/components/core/PdDataTable/columns/PdColumnCheckbox.vue?2fed","webpack:///./src/components/core/PdDataTable/columns/PdColumnCheckbox.vue?aa9c","webpack:///./src/components/bcm/bia/BiaPersonnelEditor.vue?3d0d","webpack:///./src/components/bcm/bia/BiaPersonnelEditor.vue","webpack:///./src/components/bcm/bia/BiaPersonnelEditor.vue?ae75","webpack:///./src/components/bcm/bia/BiaPersonnelEditor.vue?d047","webpack:///./src/components/bcm/bia/BiaPersonnel.vue","webpack:///./src/components/bcm/bia/BiaPersonnel.vue?14dd","webpack:///./src/components/bcm/bia/BiaPersonnel.vue?5a8e","webpack:///./src/components/bcm/bia/BiaRcsa.vue?0f0c","webpack:///./src/components/bcm/bia/rcsa/BiaRcsaEditor.vue?c24c","webpack:///./src/components/bcm/bia/rcsa/BiaRcsaImpacts.vue?3d11","webpack:///./src/components/bcm/bia/rcsa/ImpactAreaLine.vue?1901","webpack:///./src/components/bcm/bia/rcsa/ImpactAreaLine.vue","webpack:///./src/components/bcm/bia/rcsa/ImpactAreaLine.vue?bd56","webpack:///./src/components/bcm/bia/rcsa/ImpactAreaLine.vue?96e8","webpack:///./src/components/bcm/bia/rcsa/BiaRcsaImpacts.vue","webpack:///./src/components/bcm/bia/rcsa/BiaRcsaImpacts.vue?8674","webpack:///./src/components/bcm/bia/rcsa/BiaRcsaImpacts.vue?9224","webpack:///./src/components/bcm/bia/rcsa/BiaRcsaEditor.vue","webpack:///./src/components/bcm/bia/rcsa/BiaRcsaEditor.vue?4bcc","webpack:///./src/components/bcm/bia/rcsa/BiaRcsaEditor.vue?4f9d","webpack:///./src/components/bcm/bia/rcsa/RcsaDetails.vue?9183","webpack:///./src/components/bcm/bia/rcsa/RcsaDetails.vue","webpack:///./src/components/bcm/bia/rcsa/RcsaDetails.vue?fa0c","webpack:///./src/components/bcm/bia/rcsa/RcsaDetails.vue?78c7","webpack:///./src/components/bcm/bia/rcsa/ImpactColumn.vue?b06b","webpack:///./src/components/bcm/bia/rcsa/ImpactColumn.vue","webpack:///./src/components/bcm/bia/rcsa/ImpactColumn.vue?3f6f","webpack:///./src/components/bcm/bia/rcsa/ImpactColumn.vue?bdb4","webpack:///./src/components/bcm/bia/rcsa/RiskLevelColumn.vue?f35a","webpack:///./src/components/bcm/bia/rcsa/RiskLevelColumn.vue","webpack:///./src/components/bcm/bia/rcsa/RiskLevelColumn.vue?3b41","webpack:///./src/components/bcm/bia/rcsa/RiskLevelColumn.vue?3b31","webpack:///./src/components/bcm/bia/BiaRcsa.vue","webpack:///./src/components/bcm/bia/BiaRcsa.vue?6b52","webpack:///./src/components/bcm/bia/BiaRcsa.vue?bdd5","webpack:///./src/components/bcm/bia/BiaServices.vue?442d","webpack:///./src/components/bcm/bia/services/BiaServiceDetails.vue?e280","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsApplications.vue?edba","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsApplications.vue","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsApplications.vue?99ff","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsApplications.vue?7f9d","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsAssociates.vue?ecfb","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsAssociateEditor.vue?9645","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsAssociateEditor.vue","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsAssociateEditor.vue?9a36","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsAssociateEditor.vue?59f1","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsAssociateLine.vue?cb47","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsAssociateLine.vue","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsAssociateLine.vue?4de4","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsAssociateLine.vue?b566","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsAssociates.vue","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsAssociates.vue?98f3","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsAssociates.vue?7f19","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsPersonnel.vue?58d6","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsPersonnelEditor.vue?78a4","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsPersonnelEditor.vue","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsPersonnelEditor.vue?1b8e","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsPersonnelEditor.vue?3401","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsPersonnelLine.vue?b47f","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsPersonnelLine.vue","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsPersonnelLine.vue?6aac","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsPersonnelLine.vue?5a27","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsPersonnel.vue","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsPersonnel.vue?3284","webpack:///./src/components/bcm/bia/services/BiaServiceDetailsPersonnel.vue?64ab","webpack:///./src/components/bcm/bia/services/BiaServiceDetails.vue","webpack:///./src/components/bcm/bia/services/BiaServiceDetails.vue?249f","webpack:///./src/components/bcm/bia/services/BiaServiceDetails.vue?c813","webpack:///./src/components/bcm/bia/BiaServices.vue","webpack:///./src/components/bcm/bia/BiaServices.vue?2bf3","webpack:///./src/components/bcm/bia/BiaServices.vue?0b30","webpack:///./src/components/bcm/bia/ClearBiaPopup.vue?3d5b","webpack:///./src/components/bcm/bia/ClearBiaPopup.vue","webpack:///./src/components/bcm/bia/ClearBiaPopup.vue?18ef","webpack:///./src/components/bcm/bia/ClearBiaPopup.vue?230b","webpack:///./src/components/bcm/bia/Deployments/DeploymentListLine.vue?bcbe","webpack:///./src/components/bcm/bia/Deployments/DeploymentListLine.vue","webpack:///./src/components/bcm/bia/Deployments/DeploymentListLine.vue?e73a","webpack:///./src/components/bcm/bia/Deployments/DeploymentListLine.vue?9434","webpack:///./src/components/bcm/bia/Deployments/DeploymentSurveyList.vue?ad10","webpack:///./src/components/bcm/bia/PartitionSurvey.vue?6a69","webpack:///./src/components/bcm/bia/PartitionSurveyQuestion.vue?4943","webpack:///./src/components/bcm/bia/PartitionSurveyQuestion.vue","webpack:///./src/components/bcm/bia/PartitionSurveyQuestion.vue?6c20","webpack:///./src/components/bcm/bia/PartitionSurveyQuestion.vue?dfeb","webpack:///./src/components/bcm/bia/PartitionSurvey.vue","webpack:///./src/components/bcm/bia/PartitionSurvey.vue?f843","webpack:///./src/components/bcm/bia/PartitionSurvey.vue?b16d","webpack:///./src/components/bcm/bia/Deployments/DeploymentSurveyList.vue","webpack:///./src/components/bcm/bia/Deployments/DeploymentSurveyList.vue?835a","webpack:///./src/components/bcm/bia/Deployments/DeploymentSurveyList.vue?f377","webpack:///./src/components/bcm/bia/PartitionSurveyList.vue?935e","webpack:///./src/components/bcm/bia/PartitionSurveyList.vue","webpack:///./src/components/bcm/bia/PartitionSurveyList.vue?2f12","webpack:///./src/components/bcm/bia/PartitionSurveyList.vue?314e","webpack:///./src/components/bcm/PartitionEditor.vue?c918","webpack:///./src/components/all/UserSelectorBox.vue?fbaf","webpack:///./src/components/all/UserSelectorBox.vue","webpack:///./src/components/all/UserSelectorBox.vue?6c12","webpack:///./src/components/all/UserSelectorBox.vue?c7c8","webpack:///./src/components/bcm/PartitionRto.vue?d508","webpack:///./src/components/bcm/PartitionRto.vue","webpack:///./src/components/bcm/PartitionRto.vue?9c31","webpack:///./src/components/bcm/PartitionRto.vue?5857","webpack:///./src/components/bcm/PartitionEditor.vue","webpack:///./src/components/bcm/PartitionEditor.vue?5509","webpack:///./src/components/bcm/PartitionEditor.vue?18b7","webpack:///./src/components/bcm/strategy/StrategyScenarioAllocationsDialog.vue?2825","webpack:///./src/components/bcm/strategy/StrategyScenarioAllocationsDialog.vue","webpack:///./src/components/bcm/strategy/StrategyScenarioAllocationsDialog.vue?8c96","webpack:///./src/components/bcm/strategy/StrategyScenarioAllocationsDialog.vue?8ac1","webpack:///./src/components/bcm/strategy/StrategyScenarioMapDialog.vue?f43c","webpack:///./src/components/core/HereMaps/PdMap.vue?0c09","webpack:///./src/services/core/MapsService.ts","webpack:///./src/components/core/HereMaps/PdMap.vue","webpack:///./src/components/core/HereMaps/PdMap.vue?6d05","webpack:///./src/components/core/HereMaps/PdMap.vue?0b13","webpack:///./src/components/bcm/strategy/StrategyScenarioMapDialog.vue","webpack:///./src/components/bcm/strategy/StrategyScenarioMapDialog.vue?1678","webpack:///./src/components/bcm/strategy/StrategyScenarioMapDialog.vue?2b7c","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionAllocationsDialog.vue?7e74","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionAllocationsDialog.vue","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionAllocationsDialog.vue?5575","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionAllocationsDialog.vue?e713","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionDetailed.vue?8545","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionRto.vue?cd68","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionRtoAssetLine.vue?26a9","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionRtoAssetRecoverySite.vue?4cd8","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionRtoAssetRecoverySite.vue","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionRtoAssetRecoverySite.vue?c128","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionRtoAssetRecoverySite.vue?13aa","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionRtoAssetLine.vue","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionRtoAssetLine.vue?5a19","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionRtoAssetLine.vue?8d86","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionRto.vue","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionRto.vue?85ef","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionRto.vue?8bf3","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionDetailed.vue","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionDetailed.vue?dd15","webpack:///./src/components/bcm/strategy/StrategyScenarioPartitionDetailed.vue?f901","webpack:///./src/components/bcm/SystemEdit.vue?f941","webpack:///./src/components/bcm/SystemEdit.vue","webpack:///./src/components/bcm/SystemEdit.vue?f239","webpack:///./src/components/bcm/SystemEdit.vue?6308","webpack:///./src/views/bcm/AssociatesView.vue?a6bb","webpack:///./src/components/core/PdFileImportDialog.vue?28d9","webpack:///./src/components/core/PdFileImportDialog.vue","webpack:///./src/components/core/PdFileImportDialog.vue?2409","webpack:///./src/components/core/PdFileImportDialog.vue?ee17","webpack:///./src/views/bcm/AssociatesView.vue","webpack:///./src/views/bcm/AssociatesView.vue?ff4c","webpack:///./src/views/bcm/AssociatesView.vue?2c2d","webpack:///./src/views/bcm/BcmDashboard.vue?4fb9","webpack:///./src/components/all/PdEchartBar.vue?2069","webpack:///./src/components/core/charts/echarts/PdEcharts.vue?a3c6","webpack:///./src/components/core/charts/echarts/PdEcharts.vue","webpack:///./src/components/core/charts/echarts/PdEcharts.vue?b509","webpack:///./src/components/core/charts/echarts/PdEcharts.vue?e8b7","webpack:///./src/components/all/PdEchartBar.vue","webpack:///./src/components/all/PdEchartBar.vue?d851","webpack:///./src/components/all/PdEchartBar.vue?b789","webpack:///./src/components/all/PdEchartPie.vue?7497","webpack:///./src/components/all/PdEchartPie.vue","webpack:///./src/components/all/PdEchartPie.vue?4e3d","webpack:///./src/components/all/PdEchartPie.vue?3706","webpack:///./src/views/bcm/BcmDashboard.vue","webpack:///./src/views/bcm/BcmDashboard.vue?7350","webpack:///./src/views/bcm/BcmDashboard.vue?7b8d","webpack:///./src/views/bcm/bia/BiaDeploymentsListView.vue?2618","webpack:///./src/views/bcm/bia/BiaDeploymentsListView.vue","webpack:///./src/views/bcm/bia/BiaDeploymentsListView.vue?7414","webpack:///./src/views/bcm/bia/BiaDeploymentsListView.vue?abf9","webpack:///./src/views/bcm/bia/BiaDeploymentView.vue?bf25","webpack:///./src/components/all/BaseDeploymentButtons.vue?0f75","webpack:///./src/components/all/BaseDeploymentButtons.vue","webpack:///./src/components/all/BaseDeploymentButtons.vue?d055","webpack:///./src/components/all/BaseDeploymentButtons.vue?3d25","webpack:///./src/components/all/BaseDeploymentMessage.vue?0cdc","webpack:///./src/components/all/BaseDeploymentMessage.vue","webpack:///./src/components/all/BaseDeploymentMessage.vue?c00f","webpack:///./src/components/all/BaseDeploymentMessage.vue?055b","webpack:///./src/views/bcm/bia/BiaDeploymentView.vue","webpack:///./src/views/bcm/bia/BiaDeploymentView.vue?59db","webpack:///./src/views/bcm/bia/BiaDeploymentView.vue?f981","webpack:///./src/views/bcm/bia/BiaPartitionsTreeView.vue?ba39","webpack:///./src/views/bcm/bia/BiaPartitionsTreeView.vue","webpack:///./src/views/bcm/bia/BiaPartitionsTreeView.vue?e6cc","webpack:///./src/views/bcm/bia/BiaPartitionsTreeView.vue?fc55","webpack:///./src/views/bcm/bia/BiaPartitionView.vue?9d38","webpack:///./src/views/bcm/bia/BiaPartitionView.vue","webpack:///./src/views/bcm/bia/BiaPartitionView.vue?e277","webpack:///./src/views/bcm/bia/BiaPartitionView.vue?ebe6","webpack:///./src/views/bcm/EmployeesView.vue?f75d","webpack:///./src/components/bcm/EmployeePartitions.vue?e83d","webpack:///./src/components/bcm/EmployeePartitions.vue","webpack:///./src/components/bcm/EmployeePartitions.vue?8957","webpack:///./src/components/bcm/EmployeePartitions.vue?db3a","webpack:///./src/views/bcm/EmployeesView.vue","webpack:///./src/views/bcm/EmployeesView.vue?8dc9","webpack:///./src/views/bcm/EmployeesView.vue?d93b","webpack:///./src/views/bcm/LocationsView.vue?3b0f","webpack:///./src/components/core/HereMaps/PdMapLocationSelector.vue?19b7","webpack:///./src/components/core/HereMaps/addDraggableMarker.js","webpack:///./src/components/core/HereMaps/PdMapLocationSelector.vue","webpack:///./src/components/core/HereMaps/PdMapLocationSelector.vue?92f9","webpack:///./src/components/core/HereMaps/PdMapLocationSelector.vue?e8a2","webpack:///./src/views/bcm/LocationsView.vue","webpack:///./src/views/bcm/LocationsView.vue?92a3","webpack:///./src/views/bcm/LocationsView.vue?7e0b","webpack:///./src/views/bcm/PartitionsView.vue?a80f","webpack:///./src/views/bcm/PartitionsView.vue","webpack:///./src/views/bcm/PartitionsView.vue?bef9","webpack:///./src/views/bcm/PartitionsView.vue?23b6","webpack:///./src/views/bcm/QuickView.vue?01ee","webpack:///./src/api/QuickViewApi.ts","webpack:///./src/services/QuickViewService.ts","webpack:///./src/components/core/PdPivot/PdPivot.vue?71af","webpack:///./src/components/core/PdPivot/PdPivotTable.vue?f245","webpack:///./src/components/core/PdPivot/HashTable.js","webpack:///src/components/core/PdPivot/PdPivotTable.vue","webpack:///./src/components/core/PdPivot/PdPivotTable.vue?c22b","webpack:///./src/components/core/PdPivot/PdPivotTable.vue?85a4","webpack:///./src/views/bcm/QuickView.vue","webpack:///src/components/core/PdPivot/PdPivot.vue","webpack:///./src/components/core/PdPivot/PdPivot.vue?05d4","webpack:///./src/components/core/PdPivot/PdPivot.vue?ddf9","webpack:///./src/views/bcm/QuickView.vue?5582","webpack:///./src/views/bcm/QuickView.vue?05d7","webpack:///./src/views/bcm/SystemsView.vue?a579","webpack:///./src/api/UcmdbFilesApi.ts","webpack:///./src/services/FileUploadService.ts","webpack:///./src/views/bcm/SystemsView.vue","webpack:///./src/views/bcm/SystemsView.vue?fca3","webpack:///./src/views/bcm/SystemsView.vue?d740","webpack:///./src/views/bcm/incident/EmailTemplates.vue?d2b9","webpack:///./src/dtos/EmailTemplate.ts","webpack:///./src/components/core/PdRichTextEditor.vue?a036","webpack:///./src/components/core/PdRichTextEditor.vue","webpack:///./src/components/core/PdRichTextEditor.vue?a00c","webpack:///./src/components/core/PdRichTextEditor.vue?aba3","webpack:///./src/views/bcm/incident/EmailTemplates.vue","webpack:///./src/views/bcm/incident/EmailTemplates.vue?61b9","webpack:///./src/views/bcm/incident/EmailTemplates.vue?48af","webpack:///./src/views/bcm/incident/IncidentViewer.vue?f7ca","webpack:///./src/api/IncidentApi.ts","webpack:///./src/services/IncidentService.ts","webpack:///./src/components/bcm/incident/AffectedApplications.vue?43a4","webpack:///./src/components/bcm/incident/AffectedApplicationLine.vue?6811","webpack:///./src/components/core/PdTranslatableReference.vue?87ca","webpack:///./src/components/core/PdTranslatableReference.vue","webpack:///./src/components/core/PdTranslatableReference.vue?bca0","webpack:///./src/components/core/PdTranslatableReference.vue?06d8","webpack:///./src/components/bcm/incident/AffectedApplicationLine.vue","webpack:///./src/components/bcm/incident/AffectedApplicationLine.vue?ffb7","webpack:///./src/components/bcm/incident/AffectedApplicationLine.vue?3908","webpack:///./src/components/bcm/incident/AffectedApplications.vue","webpack:///./src/components/bcm/incident/AffectedApplications.vue?7618","webpack:///./src/components/bcm/incident/AffectedApplications.vue?2bcc","webpack:///./src/components/bcm/incident/AffectedLocations.vue?132a","webpack:///./src/components/bcm/incident/AffectedLocationLine.vue?baea","webpack:///./src/api/LocationsApi.ts","webpack:///./src/components/bcm/incident/AffectedLocationLine.vue","webpack:///./src/components/bcm/incident/AffectedLocationLine.vue?ebaa","webpack:///./src/components/bcm/incident/AffectedLocationLine.vue?4ec4","webpack:///./src/components/bcm/incident/AffectedLocations.vue","webpack:///./src/components/bcm/incident/AffectedLocations.vue?5629","webpack:///./src/components/bcm/incident/AffectedLocations.vue?3149","webpack:///./src/components/bcm/incident/AffectedPartitions.vue?9744","webpack:///./src/components/bcm/incident/AffectedPartitionLine.vue?6ea5","webpack:///./src/components/bcm/incident/AffectedPartitionLine.vue","webpack:///./src/components/bcm/incident/AffectedPartitionLine.vue?f427","webpack:///./src/components/bcm/incident/AffectedPartitionLine.vue?1682","webpack:///./src/components/bcm/incident/AffectedPartitions.vue","webpack:///./src/components/bcm/incident/AffectedPartitions.vue?e69a","webpack:///./src/components/bcm/incident/AffectedPartitions.vue?deb6","webpack:///./src/components/bcm/incident/AffectedTypes.vue?1526","webpack:///./src/components/bcm/incident/AffectedTypeLine.vue?b48b","webpack:///./src/components/bcm/incident/AffectedTypeLine.vue","webpack:///./src/components/bcm/incident/AffectedTypeLine.vue?4c03","webpack:///./src/components/bcm/incident/AffectedTypeLine.vue?e5c0","webpack:///./src/components/bcm/incident/AffectedTypes.vue","webpack:///./src/components/bcm/incident/AffectedTypes.vue?10cf","webpack:///./src/components/bcm/incident/AffectedTypes.vue?93fb","webpack:///./src/components/bcm/incident/AffectedSectors.vue?6503","webpack:///./src/components/bcm/incident/AffectedSectorLine.vue?ff17","webpack:///./src/components/bcm/incident/AffectedSectorLine.vue","webpack:///./src/components/bcm/incident/AffectedSectorLine.vue?8452","webpack:///./src/components/bcm/incident/AffectedSectorLine.vue?eb49","webpack:///./src/components/bcm/incident/AffectedSectors.vue","webpack:///./src/components/bcm/incident/AffectedSectors.vue?88fa","webpack:///./src/components/bcm/incident/AffectedSectors.vue?3b02","webpack:///./src/components/bcm/incident/IncidentTasks.vue?4ae7","webpack:///./src/components/bcm/incident/IncidentTaskLine.vue?f596","webpack:///./src/components/bcm/incident/IncidentTaskLine.vue","webpack:///./src/components/bcm/incident/IncidentTaskLine.vue?d6c2","webpack:///./src/components/bcm/incident/IncidentTaskLine.vue?55ba","webpack:///./src/components/bcm/incident/IncidentTasks.vue","webpack:///./src/components/bcm/incident/IncidentTasks.vue?b205","webpack:///./src/components/bcm/incident/IncidentTasks.vue?1253","webpack:///./src/components/bcm/incident/IncidentFiles.vue?ded8","webpack:///./src/components/bcm/incident/IncidentFiles.vue","webpack:///./src/components/bcm/incident/IncidentFiles.vue?f609","webpack:///./src/components/bcm/incident/IncidentFiles.vue?d8bb","webpack:///./src/components/bcm/incident/IncidentNotifications.vue?360e","webpack:///./src/components/bcm/incident/IncidentNotifications.vue","webpack:///./src/components/bcm/incident/IncidentNotifications.vue?93fa","webpack:///./src/components/bcm/incident/IncidentNotifications.vue?c89c","webpack:///./src/components/bcm/incident/IncidentNotificationDialog.vue?ebde","webpack:///./src/components/bcm/incident/IncidentNotificationDialog.vue","webpack:///./src/components/bcm/incident/IncidentNotificationDialog.vue?2078","webpack:///./src/components/bcm/incident/IncidentNotificationDialog.vue?de21","webpack:///./src/views/bcm/incident/IncidentViewer.vue","webpack:///./src/views/bcm/incident/IncidentViewer.vue?1568","webpack:///./src/views/bcm/incident/IncidentViewer.vue?80f9","webpack:///./src/views/bcm/incident/PrioritizationScales.vue?3fd6","webpack:///./src/views/bcm/incident/PrioritizationScales.vue","webpack:///./src/views/bcm/incident/PrioritizationScales.vue?8389","webpack:///./src/views/bcm/incident/PrioritizationScales.vue?99ab","webpack:///./src/views/bcm/incident/ResolutionEvaluations.vue?10a8","webpack:///./src/views/bcm/incident/ResolutionEvaluations.vue","webpack:///./src/views/bcm/incident/ResolutionEvaluations.vue?8cad","webpack:///./src/views/bcm/incident/ResolutionEvaluations.vue?7c30","webpack:///./src/views/bcm/incident/ResolutionStatuses.vue?90b8","webpack:///./src/views/bcm/incident/ResolutionStatuses.vue","webpack:///./src/views/bcm/incident/ResolutionStatuses.vue?dd51","webpack:///./src/views/bcm/incident/ResolutionStatuses.vue?717a","webpack:///./src/views/bcm/incident/Sector.vue?d24e","webpack:///./src/views/bcm/incident/Sector.vue","webpack:///./src/views/bcm/incident/Sector.vue?c623","webpack:///./src/views/bcm/incident/Sector.vue?5369","webpack:///./src/views/bcm/incident/Type.vue?44c8","webpack:///./src/views/bcm/incident/Type.vue","webpack:///./src/views/bcm/incident/Type.vue?4aab","webpack:///./src/views/bcm/incident/Type.vue?0537","webpack:///./src/views/bcm/strategy/StrategiesView.vue?3cfa","webpack:///./src/views/bcm/strategy/StrategiesView.vue","webpack:///./src/views/bcm/strategy/StrategiesView.vue?82ae","webpack:///./src/views/bcm/strategy/StrategiesView.vue?02dc","webpack:///./src/views/bcm/strategy/StrategyScenarioView.vue?523e","webpack:///./src/components/bcm/strategy/StrategyScenarioCostDialog.vue?9267","webpack:///./src/components/bcm/strategy/StrategyScenarioCostDialog.vue","webpack:///./src/components/bcm/strategy/StrategyScenarioCostDialog.vue?23d5","webpack:///./src/components/bcm/strategy/StrategyScenarioCostDialog.vue?e4a7","webpack:///./src/views/bcm/strategy/StrategyScenarioView.vue","webpack:///./src/views/bcm/strategy/StrategyScenarioView.vue?987f","webpack:///./src/views/bcm/strategy/StrategyScenarioView.vue?e5a1","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalScenarioView.vue?e5cd","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalScenarioView.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalScenarioView.vue?2695","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalScenarioView.vue?2a9a","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdminView.vue?89d8","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminAssetsView.vue?91ce","webpack:///./src/components/core/VDataTableDatasourceItem.vue?f014","webpack:///./src/components/core/VDataTableLanguageTemplate.vue?4c1a","webpack:///./src/components/core/VDataTableLanguageTemplate.vue","webpack:///./src/components/core/VDataTableLanguageTemplate.vue?83c2","webpack:///./src/components/core/VDataTableLanguageTemplate.vue?465a","webpack:///./src/components/core/VDataTableDatasourceItem.vue","webpack:///./src/components/core/VDataTableDatasourceItem.vue?97d2","webpack:///./src/components/core/VDataTableDatasourceItem.vue?f05b","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminAssetsView.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminAssetsView.vue?ed29","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminAssetsView.vue?b157","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminApplicationsView.vue?6407","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminApplicationsView.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminApplicationsView.vue?dacb","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminApplicationsView.vue?c48e","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminPartitionsView.vue?d8b9","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminPartitionEditor.vue?4642","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminPartitionEditor.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminPartitionEditor.vue?1417","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminPartitionEditor.vue?825a","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminPartitionCoordinators.vue?bdad","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminPartitionCoordinators.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminPartitionCoordinators.vue?449e","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminPartitionCoordinators.vue?24a9","webpack:///./src/components/core/VDataTablePartitionItem.vue?8864","webpack:///./src/components/core/VDataTablePartitionItem.vue","webpack:///./src/components/core/VDataTablePartitionItem.vue?aca4","webpack:///./src/components/core/VDataTablePartitionItem.vue?70c0","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminPartitionsView.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminPartitionsView.vue?0b4e","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminPartitionsView.vue?15ff","webpack:///./src/dtos/bcm/testing/BcpFunctionalTestDto.ts","webpack:///./src/api/bcm/testing/BcpFunctionalTestApi.ts","webpack:///./src/services/bcm/testing/BcpFunctionalTestService.ts","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminObservers.vue?5927","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminObservers.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminObservers.vue?5394","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminObservers.vue?2ae3","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminTechnicians.vue?6c94","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminTechnicians.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminTechnicians.vue?80d8","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdmin/BcpFunctionalTestAdminTechnicians.vue?d26c","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdminView.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdminView.vue?2134","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestAdminView.vue?0937","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestsView.vue?639d","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestsView.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestsView.vue?0e86","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestsView.vue?a009","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUserListView.vue?6e2a","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUserListView.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUserListView.vue?c7aa","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUserListView.vue?9cf3","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUserView.vue?09c8","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserPlanningView.vue?f4fe","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserPlanningPartition.vue?3854","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserPlanningPartitionCallTree.vue?5dee","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserPlanningPartitionCallTree.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserPlanningPartitionCallTree.vue?24ba","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserPlanningPartitionCallTree.vue?4d1e","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserPlanningPartitionRecoverySite.vue?7d75","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserPlanningPartitionRecoverySite.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserPlanningPartitionRecoverySite.vue?fde6","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserPlanningPartitionRecoverySite.vue?d26e","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserPlanningPartition.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserPlanningPartition.vue?28a4","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserPlanningPartition.vue?5e64","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserPlanningView.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserPlanningView.vue?6798","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserPlanningView.vue?1148","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUserView.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUserView.vue?f02c","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUserView.vue?3492","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserFinalizingView.vue?b585","webpack:///./src/dtos/bcm/testing/BcpFunctionalTestPartitionCallTreePersonDto.ts","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartition.vue?ea1a","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionCallTree.vue?935d","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionCallTreeLine.vue?5f7f","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionCallTreeLine.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionCallTreeLine.vue?cff6","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionCallTreeLine.vue?e2ac","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionCallTree.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionCallTree.vue?8801","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionCallTree.vue?22f5","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySite.vue?3a8c","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteGeneral.vue?45f4","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteGeneralLine.vue?96d2","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteGeneralLine.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteGeneralLine.vue?7eee","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteGeneralLine.vue?ffb5","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteGeneral.vue","webpack:///./src/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteUserApplicationAnswerDto.ts","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteGeneral.vue?c63a","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteGeneral.vue?e0af","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteApplications.vue?d3aa","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLine.vue?01a2","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLineAnswer.vue?5ff1","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLineAnswer.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLineAnswer.vue?f615","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLineAnswer.vue?ab7b","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLine.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLine.vue?8099","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLine.vue?820b","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteApplications.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteApplications.vue?b39c","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteApplications.vue?77d2","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteAssets.vue?56c6","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteAssetLine.vue?e094","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteAssetLineAnswer.vue?77e3","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteAssetLineAnswer.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteAssetLineAnswer.vue?4588","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteAssetLineAnswer.vue?64a8","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteAssetLine.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteAssetLine.vue?980a","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteAssetLine.vue?1595","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteAssets.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteAssets.vue?ad9f","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySiteAssets.vue?b525","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySite.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySite.vue?a9fe","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartitionRecoverySite.vue?b97d","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartition.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartition.vue?6a28","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestPartition.vue?5ceb","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserFinalizingView.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserFinalizingView.vue?245c","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserFinalizingView.vue?0868","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserFinishedView.vue?fc38","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserFinishedView.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserFinishedView.vue?7700","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserFinishedView.vue?ef1a","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestingView.vue?4081","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestingView.vue","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestingView.vue?09f9","webpack:///./src/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser/BcpFunctionalTestUserTestingView.vue?8346","webpack:///./src/views/bcm/testing/DisasterRecoveryAdminView.vue?4958","webpack:///./src/dtos/bcm/testing/DisasterRecoveryTestDto.ts","webpack:///./src/api/DisasterRecoveryTestApi.ts","webpack:///./src/services/DisasterRecoveryTestService.ts","webpack:///./src/views/bcm/testing/DisasterRecoveryAdminView.vue","webpack:///./src/views/bcm/testing/DisasterRecoveryAdminView.vue?e2e7","webpack:///./src/views/bcm/testing/DisasterRecoveryAdminView.vue?2799","webpack:///./src/views/bcm/testing/DisasterRecoveryTestConfirmationView.vue?f6e4","webpack:///./src/components/bcm/testing/dr/TestingConfirmationLine.vue?d4ce","webpack:///./src/components/bcm/testing/dr/TestingConfirmationLine.vue","webpack:///./src/components/bcm/testing/dr/TestingConfirmationLine.vue?3ed9","webpack:///./src/components/bcm/testing/dr/TestingConfirmationLine.vue?d658","webpack:///./src/components/bcm/testing/dr/TestingUserGroup.vue?3b97","webpack:///./src/components/bcm/testing/dr/TestingUserGroup.vue","webpack:///./src/components/bcm/testing/dr/TestingUserGroup.vue?b0a9","webpack:///./src/components/bcm/testing/dr/TestingUserGroup.vue?fc8d","webpack:///./src/dtos/bcm/testing/DisasterRecoveryTestDetailsDto.ts","webpack:///./src/views/bcm/testing/testing.ts","webpack:///./src/views/bcm/testing/DisasterRecoveryTestConfirmationView.vue","webpack:///./src/views/bcm/testing/DisasterRecoveryTestConfirmationView.vue?a651","webpack:///./src/views/bcm/testing/DisasterRecoveryTestConfirmationView.vue?3318","webpack:///./src/views/bcm/testing/DisasterRecoveryTestFinalizationView.vue?ba10","webpack:///./src/components/bcm/testing/dr/DisasterTestFinalizationLine.vue?6f14","webpack:///./src/components/bcm/testing/dr/DisasterTestApplicationLine.vue?eb39","webpack:///./src/components/bcm/testing/dr/DisasterTestApplicationLine.vue","webpack:///./src/components/bcm/testing/dr/DisasterTestApplicationLine.vue?2b48","webpack:///./src/components/bcm/testing/dr/DisasterTestApplicationLine.vue?c37a","webpack:///./src/components/bcm/testing/dr/DisasterTestTestingApplicationDetails.vue?7ed7","webpack:///./src/components/bcm/testing/dr/TestingApplicationTestResult.vue?1753","webpack:///./src/components/bcm/testing/dr/TestingApplicationTestResult.vue","webpack:///./src/components/bcm/testing/dr/TestingApplicationTestResult.vue?1b10","webpack:///./src/components/bcm/testing/dr/TestingApplicationTestResult.vue?0ede","webpack:///./src/components/bcm/testing/dr/DisasterTestTestingApplicationDetails.vue","webpack:///./src/components/bcm/testing/dr/DisasterTestTestingApplicationDetails.vue?8270","webpack:///./src/components/bcm/testing/dr/DisasterTestTestingApplicationDetails.vue?2d3a","webpack:///./src/components/bcm/testing/dr/DisasterTestFinalizationLine.vue","webpack:///./src/components/bcm/testing/dr/DisasterTestFinalizationLine.vue?3d0c","webpack:///./src/components/bcm/testing/dr/DisasterTestFinalizationLine.vue?5902","webpack:///./src/views/bcm/testing/DisasterRecoveryTestFinalizationView.vue","webpack:///./src/views/bcm/testing/DisasterRecoveryTestFinalizationView.vue?b5bd","webpack:///./src/views/bcm/testing/DisasterRecoveryTestFinalizationView.vue?657a","webpack:///./src/views/bcm/testing/DisasterRecoveryTestFinishedView.vue?e29b","webpack:///./src/components/bcm/testing/dr/DisasterTestFinishedLine.vue?0332","webpack:///./src/components/bcm/testing/dr/DisasterTestFinishedLine.vue","webpack:///./src/components/bcm/testing/dr/DisasterTestFinishedLine.vue?0d43","webpack:///./src/components/bcm/testing/dr/DisasterTestFinishedLine.vue?2131","webpack:///./src/components/core/charts/PdBarChart.vue?4ba4","webpack:///./src/components/core/charts/PdBarChart.vue","webpack:///./src/components/core/charts/PdBarChart.vue?ac50","webpack:///./src/components/core/charts/PdBarChart.vue?e564","webpack:///./src/components/core/charts/PdDoughnut.vue?e342","webpack:///./src/components/core/charts/PdDoughnut.vue","webpack:///./src/components/core/charts/PdDoughnut.vue?e4fe","webpack:///./src/components/core/charts/PdDoughnut.vue?83d0","webpack:///./src/views/bcm/testing/DisasterRecoveryTestFinishedView.vue","webpack:///./src/views/bcm/testing/DisasterRecoveryTestFinishedView.vue?5aa1","webpack:///./src/views/bcm/testing/DisasterRecoveryTestFinishedView.vue?401a","webpack:///./src/views/bcm/testing/DisasterRecoveryTestSchedulingView.vue?5ac4","webpack:///./src/views/bcm/testing/DisasterRecoveryTestTimeZoneEditor.vue?791b","webpack:///./src/views/bcm/testing/DisasterRecoveryTestTimeZoneEditor.vue","webpack:///./src/views/bcm/testing/DisasterRecoveryTestTimeZoneEditor.vue?edc8","webpack:///./src/views/bcm/testing/DisasterRecoveryTestTimeZoneEditor.vue?2a0a","webpack:///./src/views/bcm/testing/DisasterRecoveryTestSchedulingView.vue","webpack:///./src/views/bcm/testing/DisasterRecoveryTestSchedulingView.vue?3bea","webpack:///./src/views/bcm/testing/DisasterRecoveryTestSchedulingView.vue?bcf7","webpack:///./src/views/bcm/testing/DisasterRecoveryTestTestingView.vue?5eba","webpack:///./src/components/bcm/testing/dr/TestingApplicationHeader.vue?eea0","webpack:///./src/components/bcm/testing/dr/TestingApplicationHeader.vue","webpack:///./src/components/bcm/testing/dr/TestingApplicationHeader.vue?5082","webpack:///./src/components/bcm/testing/dr/TestingApplicationHeader.vue?3f56","webpack:///./src/views/bcm/testing/DisasterRecoveryTestTestingView.vue","webpack:///./src/views/bcm/testing/DisasterRecoveryTestTestingView.vue?13af","webpack:///./src/views/bcm/testing/DisasterRecoveryTestTestingView.vue?d307","webpack:///./src/views/bcm/testing/DisasterRecoveryTestUserView.vue?d7ca","webpack:///./src/views/bcm/testing/DisasterRecoveryTestUserView.vue","webpack:///./src/views/bcm/testing/DisasterRecoveryTestUserView.vue?6792","webpack:///./src/views/bcm/testing/DisasterRecoveryTestUserView.vue?9813","webpack:///./src/views/srb/ApplicationsTaxonomyView.vue?c393","webpack:///./src/components/srb/TaxonomyUsersEditor.vue?603b","webpack:///./src/components/srb/TaxonomyUsersEditor.vue","webpack:///./src/components/srb/TaxonomyUsersEditor.vue?d84e","webpack:///./src/components/srb/TaxonomyUsersEditor.vue?0db9","webpack:///./src/api/srb/SrbTaxonomyApi.ts","webpack:///./src/services/srb/SrbTaxonomyService.ts","webpack:///./src/components/srb/ApplicationTaxonomyEditor.vue?83c1","webpack:///./src/components/srb/TaxonomyEditor.vue?f1fa","webpack:///./src/components/srb/TaxonomyEditor.vue","webpack:///./src/components/srb/TaxonomyEditor.vue?ef33","webpack:///./src/components/srb/TaxonomyEditor.vue?b68f","webpack:///./src/components/srb/ApplicationTaxonomyEditor.vue","webpack:///./src/components/srb/ApplicationTaxonomyEditor.vue?22fc","webpack:///./src/components/srb/ApplicationTaxonomyEditor.vue?5271","webpack:///./src/components/srb/ContractEditor.vue?c485","webpack:///./src/components/srb/ContractEditor.vue","webpack:///./src/components/srb/ContractEditor.vue?ebf3","webpack:///./src/components/srb/ContractEditor.vue?42a3","webpack:///./src/components/srb/SrbApplicationLine.vue?2a20","webpack:///./src/components/srb/ApplicationTaxonomyLine.vue?a168","webpack:///./src/components/srb/ApplicationTaxonomyLine.vue","webpack:///./src/components/srb/ApplicationTaxonomyLine.vue?7201","webpack:///./src/components/srb/ApplicationTaxonomyLine.vue?5910","webpack:///./src/components/srb/SrbApplicationLine.vue","webpack:///./src/components/srb/SrbApplicationLine.vue?8ce8","webpack:///./src/components/srb/SrbApplicationLine.vue?7b3d","webpack:///./src/components/srb/SrbAssociateLine.vue?ac9d","webpack:///./src/components/srb/AssociateTaxonomyLine.vue?bad7","webpack:///./src/components/srb/AssociateTaxonomyLine.vue","webpack:///./src/components/srb/AssociateTaxonomyLine.vue?b8d9","webpack:///./src/components/srb/AssociateTaxonomyLine.vue?099a","webpack:///./src/components/srb/SrbAssociateLine.vue","webpack:///./src/components/srb/SrbAssociateLine.vue?d5db","webpack:///./src/components/srb/SrbAssociateLine.vue?6173","webpack:///./src/views/srb/ApplicationsTaxonomyView.vue","webpack:///./src/views/srb/ApplicationsTaxonomyView.vue?84f8","webpack:///./src/views/srb/ApplicationsTaxonomyView.vue?97dc","webpack:///./src/views/srb/AssociatesTaxonomyView.vue?e143","webpack:///./src/views/srb/AssociatesTaxonomyView.vue","webpack:///./src/views/srb/AssociatesTaxonomyView.vue?41c1","webpack:///./src/views/srb/AssociatesTaxonomyView.vue?5f14","webpack:///./src/views/srb/ContractsView.vue?e3c1","webpack:///./src/dtos/srb/ContractDto.ts","webpack:///./src/views/srb/ContractsView.vue","webpack:///./src/views/srb/ContractsView.vue?dd5d","webpack:///./src/views/srb/ContractsView.vue?931f","webpack:///./src/views/srb/CriticalitiesView.vue?395d","webpack:///./src/views/srb/CriticalitiesView.vue","webpack:///./src/views/srb/CriticalitiesView.vue?4cbb","webpack:///./src/views/srb/CriticalitiesView.vue?7dbf","webpack:///./src/views/srb/LocationsTaxonomyView.vue?0063","webpack:///./src/components/srb/TaxonomyLine.vue?cbe0","webpack:///./src/components/srb/TaxonomyLine.vue","webpack:///./src/components/srb/TaxonomyLine.vue?6ab0","webpack:///./src/components/srb/TaxonomyLine.vue?9baa","webpack:///./src/views/srb/LocationsTaxonomyView.vue","webpack:///./src/views/srb/LocationsTaxonomyView.vue?56fa","webpack:///./src/views/srb/LocationsTaxonomyView.vue?5681","webpack:///./src/views/srb/PersonnelTaxonomyView.vue?2abe","webpack:///./src/views/srb/PersonnelTaxonomyView.vue","webpack:///./src/views/srb/PersonnelTaxonomyView.vue?46a8","webpack:///./src/views/srb/PersonnelTaxonomyView.vue?438c","webpack:///./src/views/srb/ReportingView.vue?67d4","webpack:///./src/views/srb/ReportingView.vue","webpack:///./src/views/srb/ReportingView.vue?e370","webpack:///./src/views/srb/ReportingView.vue?e4d5","webpack:///./src/views/srb/ServicesView.vue?e573","webpack:///./src/views/srb/ServicesView.vue","webpack:///./src/views/srb/ServicesView.vue?706e","webpack:///./src/views/srb/ServicesView.vue?093d","webpack:///./src/views/srb/SrbServiceTypesView.vue?4f0c","webpack:///./src/views/srb/SrbServiceTypesView.vue","webpack:///./src/views/srb/SrbServiceTypesView.vue?2b5e","webpack:///./src/views/srb/SrbServiceTypesView.vue?8773","webpack:///./src/router/routes/helpers.ts","webpack:///./src/router/routes/bcm.ts","webpack:///./src/views/compliance/ComplianceListDetailsView.vue?9b96","webpack:///./src/api/compliance/CompliancesApi.ts","webpack:///./src/services/compliance/CompliancesService.ts","webpack:///./src/components/compliance/NewCategoryDialog.vue?d436","webpack:///./src/components/compliance/NewCategoryDialog.vue","webpack:///./src/components/compliance/NewCategoryDialog.vue?2ea4","webpack:///./src/components/compliance/NewCategoryDialog.vue?ef53","webpack:///./src/components/compliance/ListCategory.vue?e853","webpack:///./src/components/compliance/EditCategoryDialog.vue?c4ab","webpack:///./src/components/compliance/EditCategoryDialog.vue","webpack:///./src/components/compliance/EditCategoryDialog.vue?9d25","webpack:///./src/components/compliance/EditCategoryDialog.vue?c292","webpack:///./src/components/compliance/EditControlDialog.vue?97f8","webpack:///./src/components/compliance/EditControlDialog.vue","webpack:///./src/components/compliance/EditControlDialog.vue?524c","webpack:///./src/components/compliance/EditControlDialog.vue?5c7f","webpack:///./src/components/compliance/CategoryControl.vue?64f0","webpack:///./src/components/compliance/CategoryControl.vue","webpack:///./src/components/compliance/CategoryControl.vue?75b3","webpack:///./src/components/compliance/CategoryControl.vue?ffb0","webpack:///./src/components/compliance/ListCategory.vue","webpack:///./src/components/compliance/ListCategory.vue?dfbc","webpack:///./src/components/compliance/ListCategory.vue?3d9c","webpack:///./src/core/ColorBlender.ts","webpack:///./src/views/compliance/ComplianceListDetailsView.vue","webpack:///./src/views/compliance/ComplianceListDetailsView.vue?9812","webpack:///./src/views/compliance/ComplianceListDetailsView.vue?e3e5","webpack:///./src/views/compliance/ComplianceListView.vue?bc17","webpack:///./src/views/compliance/ComplianceListView.vue","webpack:///./src/views/compliance/ComplianceListView.vue?8da4","webpack:///./src/views/compliance/ComplianceListView.vue?067c","webpack:///./src/router/routes/compliance.ts","webpack:///./src/views/all/ChangePasswordView.vue?9c7c","webpack:///./src/views/all/ChangePasswordView.vue","webpack:///./src/views/all/ChangePasswordView.vue?5095","webpack:///./src/views/all/ChangePasswordView.vue?3125","webpack:///./src/views/all/DocumentManagement/DocumentsView.vue?a259","webpack:///./src/views/all/DocumentManagement/DocumentsView.vue","webpack:///./src/views/all/DocumentManagement/DocumentsView.vue?5468","webpack:///./src/views/all/DocumentManagement/DocumentsView.vue?7276","webpack:///./src/views/all/LandingView.vue?7ac7","webpack:///./src/views/all/LandingView.vue","webpack:///./src/views/all/LandingView.vue?8809","webpack:///./src/views/all/LandingView.vue?0b3a","webpack:///./src/views/bcm/incident/IncidentManagement.vue?3af4","webpack:///./src/views/bcm/incident/IncidentManagement.vue","webpack:///./src/views/bcm/incident/IncidentManagement.vue?7953","webpack:///./src/views/bcm/incident/IncidentManagement.vue?4147","webpack:///./src/views/bcm/testing/DisasterRecoveryTestUserListView.vue?2faa","webpack:///./src/views/bcm/testing/DisasterRecoveryTestUserListView.vue","webpack:///./src/views/bcm/testing/DisasterRecoveryTestUserListView.vue?1e45","webpack:///./src/views/bcm/testing/DisasterRecoveryTestUserListView.vue?087e","webpack:///./src/views/tra/AnswerGroups/AnswerGroupsView.vue?90b6","webpack:///./src/views/tra/AnswerGroups/AnswerGroup.vue?728b","webpack:///./src/views/tra/AnswerGroups/AnswerUpdateControlComponent.vue?7103","webpack:///./src/views/tra/AnswerGroups/AnswerUpdateControlComponent.vue","webpack:///./src/views/tra/AnswerGroups/AnswerUpdateControlComponent.vue?a5fe","webpack:///./src/views/tra/AnswerGroups/AnswerUpdateControlComponent.vue?0faa","webpack:///./src/views/tra/AnswerGroups/AnswerGroup.vue","webpack:///./src/views/tra/AnswerGroups/AnswerGroup.vue?5e97","webpack:///./src/views/tra/AnswerGroups/AnswerGroup.vue?061c","webpack:///./src/views/tra/TraComponentGuards.ts","webpack:///./src/views/tra/AnswerGroups/AnswerGroupsView.vue","webpack:///./src/views/tra/AnswerGroups/AnswerGroupsView.vue?b7dc","webpack:///./src/views/tra/AnswerGroups/AnswerGroupsView.vue?d029","webpack:///./src/views/tra/assessments/AssessmentControlsView.vue?77f7","webpack:///./src/views/tra/controls/Controls.vue?4964","webpack:///./src/views/tra/controls/Control.vue?fea4","webpack:///./src/api/tra/AssessmentsApi.ts","webpack:///./src/services/tra/AssessmentsService.ts","webpack:///./src/api/tra/ControlsApi.ts","webpack:///./src/services/tra/ControlsService.ts","webpack:///./src/api/tra/QuestionnairesApi.ts","webpack:///./src/api/tra/RisksApi.ts","webpack:///./src/services/tra/QuestionnairesService.ts","webpack:///./src/api/tra/RiskMethodologyApi.ts","webpack:///./src/services/tra/RiskMethodologyService.ts","webpack:///./src/services/tra/RisksService.ts","webpack:///./src/views/tra/controls/ControlCategories.vue?4402","webpack:///./src/views/tra/controls/ControlCategories.vue","webpack:///./src/views/tra/controls/ControlCategories.vue?af4d","webpack:///./src/views/tra/controls/ControlCategories.vue?93e3","webpack:///./src/views/tra/controls/Control.vue","webpack:///./src/views/tra/controls/Control.vue?ab39","webpack:///./src/views/tra/controls/Control.vue?b042","webpack:///./src/components/core/PdPagination.vue?3a3e","webpack:///./src/components/core/PdPagination.vue","webpack:///./src/components/core/PdPagination.vue?52f1","webpack:///./src/components/core/PdPagination.vue?490e","webpack:///./src/views/tra/controls/Controls.vue","webpack:///./src/views/tra/controls/Controls.vue?72d4","webpack:///./src/views/tra/controls/Controls.vue?5ea2","webpack:///./src/views/tra/assessments/AssessmentControlsView.vue","webpack:///./src/views/tra/assessments/AssessmentControlsView.vue?d52b","webpack:///./src/views/tra/assessments/AssessmentControlsView.vue?5e42","webpack:///./src/views/tra/assessments/AssessmentRisksView.vue?30b1","webpack:///./src/views/tra/risks/Risks.vue?7f95","webpack:///./src/components/core/PdCurrentLanguageField.vue?7343","webpack:///./src/components/core/PdCurrentLanguageField.vue","webpack:///./src/components/core/PdCurrentLanguageField.vue?0965","webpack:///./src/components/core/PdCurrentLanguageField.vue?3abb","webpack:///./src/views/tra/risks/RiskCategoriesSelector.vue?df1f","webpack:///./src/views/tra/risks/RiskCategoriesSelector.vue","webpack:///./src/views/tra/risks/RiskCategoriesSelector.vue?a6ee","webpack:///./src/views/tra/risks/RiskCategoriesSelector.vue?b449","webpack:///./src/views/tra/risks/RiskControls.vue?b887","webpack:///./src/views/tra/risks/ControlSelector.vue?be08","webpack:///./src/views/tra/risks/ControlSelector.vue","webpack:///./src/views/tra/risks/ControlSelector.vue?5b0d","webpack:///./src/views/tra/risks/ControlSelector.vue?7d07","webpack:///./src/views/tra/risks/RiskControls.vue","webpack:///./src/views/tra/risks/RiskControls.vue?f8ab","webpack:///./src/views/tra/risks/RiskControls.vue?6ddc","webpack:///./src/views/tra/risks/Risks.vue","webpack:///./src/views/tra/risks/Risks.vue?f4f7","webpack:///./src/views/tra/risks/Risks.vue?ec38","webpack:///./src/views/tra/assessments/AssessmentRisksView.vue","webpack:///./src/views/tra/assessments/AssessmentRisksView.vue?e8de","webpack:///./src/views/tra/assessments/AssessmentRisksView.vue?a775","webpack:///./src/views/tra/assessments/AssessmentsListView.vue?d378","webpack:///./src/dtos/tra/AssessmentDto.ts","webpack:///./src/dtos/tra/AssessmentQuestionnaireDto.ts","webpack:///./src/dtos/tra/RiskMethodologyDto.ts","webpack:///./src/views/tra/assessments/AssessmentStatusTemplate.ts","webpack:///./src/components/tra/AssessmentsSelector.vue?90fb","webpack:///./src/components/tra/AssessmentsSelector.vue","webpack:///./src/components/tra/AssessmentsSelector.vue?c103","webpack:///./src/components/tra/AssessmentsSelector.vue?4431","webpack:///./src/views/tra/assessments/AssessmentsListView.vue","webpack:///./src/views/tra/assessments/AssessmentsListView.vue?aec2","webpack:///./src/views/tra/assessments/AssessmentsListView.vue?4a1e","webpack:///./src/views/tra/assessments/AssessmentView.vue?7564","webpack:///./src/components/core/PdMenuListItem.vue?1a80","webpack:///./src/components/core/PdMenuListItem.vue","webpack:///./src/components/core/PdMenuListItem.vue?b8f2","webpack:///./src/components/core/PdMenuListItem.vue?d086","webpack:///./src/views/tra/assessments/AssessmentQuestionnaires.vue?c8a5","webpack:///./src/views/tra/assessments/AssessmentQuestionnaireLine.vue?22d5","webpack:///./src/views/tra/assessments/AssessmentQuestionnaireUsers.vue?8e00","webpack:///./src/views/tra/assessments/AssessmentQuestionnaireUserLine.vue?6214","webpack:///./src/views/tra/assessments/AssessmentQuestionnaireUserLine.vue","webpack:///./src/views/tra/assessments/AssessmentQuestionnaireUserLine.vue?8667","webpack:///./src/views/tra/assessments/AssessmentQuestionnaireUserLine.vue?eba6","webpack:///./src/views/tra/assessments/AssessmentQuestionnaireUsers.vue","webpack:///./src/views/tra/assessments/AssessmentQuestionnaireUsers.vue?fd5b","webpack:///./src/views/tra/assessments/AssessmentQuestionnaireUsers.vue?93ef","webpack:///./src/views/tra/assessments/AssessmentQuestionnaireLine.vue","webpack:///./src/views/tra/assessments/AssessmentQuestionnaireLine.vue?2d0c","webpack:///./src/views/tra/assessments/AssessmentQuestionnaireLine.vue?ba0a","webpack:///./src/views/tra/assessments/AssessmentQuestionnaires.vue","webpack:///./src/views/tra/assessments/AssessmentQuestionnaires.vue?92a1","webpack:///./src/views/tra/assessments/AssessmentQuestionnaires.vue?d6b6","webpack:///./src/views/tra/assessments/AssessmentView.vue","webpack:///./src/views/tra/assessments/AssessmentView.vue?8f9c","webpack:///./src/views/tra/assessments/AssessmentView.vue?ad21","webpack:///./src/views/tra/assessments/questionnaires/AssessmentListUserView.vue?94d7","webpack:///./src/views/tra/assessments/AssessmentQuestionnaireStatusTemplate.ts","webpack:///./src/views/tra/assessments/questionnaires/AssessmentListUserView.vue","webpack:///./src/views/tra/assessments/questionnaires/AssessmentListUserView.vue?270a","webpack:///./src/views/tra/assessments/questionnaires/AssessmentListUserView.vue?6f0a","webpack:///./src/views/tra/assessments/questionnaires/AssessmentQuestionnaireUserView.vue?cab4","webpack:///./src/views/tra/assessments/questionnaires/AssessmentQuestionnaireUserControlLine.vue?11ce","webpack:///./src/views/tra/assessments/questionnaires/AssessmentQuestionnaireUserControlLine.vue","webpack:///./src/views/tra/assessments/questionnaires/AssessmentQuestionnaireUserControlLine.vue?b86c","webpack:///./src/views/tra/assessments/questionnaires/AssessmentQuestionnaireUserControlLine.vue?4d21","webpack:///./src/views/tra/assessments/questionnaires/AssessmentQuestionnaireUserView.vue","webpack:///./src/views/tra/assessments/questionnaires/AssessmentQuestionnaireUserView.vue?2808","webpack:///./src/views/tra/assessments/questionnaires/AssessmentQuestionnaireUserView.vue?3b91","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewView.vue?d2ca","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewBelowAppetiteColumn.vue?078d","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewBelowAppetiteColumn.vue","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewBelowAppetiteColumn.vue?eb6c","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewBelowAppetiteColumn.vue?3b36","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewRiskColumn.vue?9dc2","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewRiskColumn.vue","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewRiskColumn.vue?a9a6","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewRiskColumn.vue?d4cb","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewRiskControls.vue?9594","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewRiskControls.vue","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewRiskControls.vue?b172","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewRiskControls.vue?7d3c","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewView.vue","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewView.vue?dc8d","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewView.vue?03ed","webpack:///./src/views/tra/assessments/treatments/AssessmentTreatmentUserView.vue?362e","webpack:///./src/views/tra/assessments/treatments/AssessmentTreatmentUserControlLine.vue?c44d","webpack:///./src/views/tra/assessments/treatments/AssessmentTreatmentUserControlLine.vue","webpack:///./src/views/tra/assessments/treatments/AssessmentTreatmentUserControlLine.vue?910c","webpack:///./src/views/tra/assessments/treatments/AssessmentTreatmentUserControlLine.vue?93ee","webpack:///./src/views/tra/assessments/treatments/AssessmentTreatmentUserView.vue","webpack:///./src/views/tra/assessments/treatments/AssessmentTreatmentUserView.vue?30d8","webpack:///./src/views/tra/assessments/treatments/AssessmentTreatmentUserView.vue?5105","webpack:///./src/views/tra/assessments/treatments/review/AssessmentTreatmentReviewView.vue?0255","webpack:///./src/views/tra/assessments/treatments/review/AssessmentTreatmentReviewRiskControls.vue?3c06","webpack:///./src/views/tra/assessments/treatments/review/AssessmentTreatmentReviewRiskControls.vue","webpack:///./src/views/tra/assessments/treatments/review/AssessmentTreatmentReviewRiskControls.vue?ee5f","webpack:///./src/views/tra/assessments/treatments/review/AssessmentTreatmentReviewRiskControls.vue?3f4b","webpack:///./src/views/tra/assessments/treatments/review/AssessmentTreatmentReviewView.vue","webpack:///./src/views/tra/assessments/treatments/review/AssessmentTreatmentReviewView.vue?cc2c","webpack:///./src/views/tra/assessments/treatments/review/AssessmentTreatmentReviewView.vue?71e0","webpack:///./src/views/tra/controls/ControlCategoriesView.vue?2df8","webpack:///./src/views/tra/controls/ControlCategoriesView.vue","webpack:///./src/views/tra/controls/ControlCategoriesView.vue?c53d","webpack:///./src/views/tra/controls/ControlCategoriesView.vue?6113","webpack:///./src/views/tra/controls/ControlsView.vue?3958","webpack:///./src/views/tra/controls/ControlsView.vue","webpack:///./src/views/tra/controls/ControlsView.vue?6833","webpack:///./src/views/tra/controls/ControlsView.vue?3701","webpack:///./src/views/tra/Dashboard.vue?1945","webpack:///./src/components/tra/StatisticsAssessmentsRiskLevel.vue?decd","webpack:///./src/components/tra/StatisticsAssessmentsRiskLevel.vue","webpack:///./src/components/tra/StatisticsAssessmentsRiskLevel.vue?263f","webpack:///./src/components/tra/StatisticsAssessmentsRiskLevel.vue?9424","webpack:///./src/components/tra/StatisticsLocationStatuses.vue?3c39","webpack:///./src/components/tra/StatisticsLocationStatuses.vue","webpack:///./src/components/tra/StatisticsLocationStatuses.vue?390c","webpack:///./src/components/tra/StatisticsLocationStatuses.vue?0e3d","webpack:///./src/components/tra/StatisticsPartitionStatuses.vue?4dd7","webpack:///./src/components/tra/StatisticsPartitionStatuses.vue","webpack:///./src/components/tra/StatisticsPartitionStatuses.vue?36e1","webpack:///./src/components/tra/StatisticsPartitionStatuses.vue?9490","webpack:///./src/components/tra/StatisticsRisksPerScale.vue?bb3e","webpack:///./src/components/tra/StatisticsRisksPerScale.vue","webpack:///./src/components/tra/StatisticsRisksPerScale.vue?d215","webpack:///./src/components/tra/StatisticsRisksPerScale.vue?4242","webpack:///./src/views/tra/Dashboard.vue","webpack:///./src/views/tra/Dashboard.vue?764d","webpack:///./src/views/tra/Dashboard.vue?0a86","webpack:///./src/views/tra/ImpactScalesView.vue?c893","webpack:///./src/views/tra/ImpactScalesView.vue","webpack:///./src/views/tra/ImpactScalesView.vue?24ef","webpack:///./src/views/tra/ImpactScalesView.vue?c18f","webpack:///./src/views/tra/LikelihoodScalesView.vue?1511","webpack:///./src/views/tra/LikelihoodScalesView.vue","webpack:///./src/views/tra/LikelihoodScalesView.vue?1d8d","webpack:///./src/views/tra/LikelihoodScalesView.vue?839c","webpack:///./src/views/tra/questionnaires/QuestionnairesView.vue?1b4e","webpack:///./src/views/tra/questionnaires/QuestionnaireControls.vue?76d1","webpack:///./src/views/tra/questionnaires/QuestionnaireControls.vue","webpack:///./src/views/tra/questionnaires/QuestionnaireControls.vue?169e","webpack:///./src/views/tra/questionnaires/QuestionnaireControls.vue?6f1b","webpack:///./src/views/tra/questionnaires/QuestionnairesView.vue","webpack:///./src/views/tra/questionnaires/QuestionnairesView.vue?aef4","webpack:///./src/views/tra/questionnaires/QuestionnairesView.vue?5abe","webpack:///./src/views/tra/risks/RiskCategoriesView.vue?467c","webpack:///./src/views/tra/risks/RiskCategoriesView.vue","webpack:///./src/views/tra/risks/RiskCategoriesView.vue?19ee","webpack:///./src/views/tra/risks/RiskCategoriesView.vue?9cf2","webpack:///./src/views/tra/risks/RisksView.vue?c780","webpack:///./src/views/tra/risks/RisksView.vue","webpack:///./src/views/tra/risks/RisksView.vue?b6cb","webpack:///./src/views/tra/risks/RisksView.vue?70aa","webpack:///./src/views/tra/RiskScalesView.vue?b85b","webpack:///./src/views/tra/RiskMethodology.vue?cde2","webpack:///./src/views/tra/RiskMethodology.vue","webpack:///./src/views/tra/RiskMethodology.vue?c6fc","webpack:///./src/views/tra/RiskMethodology.vue?1674","webpack:///./src/views/tra/RiskMethodologyChart.vue?2b21","webpack:///./src/views/tra/RiskMethodologyChart.vue","webpack:///./src/views/tra/RiskMethodologyChart.vue?a810","webpack:///./src/views/tra/RiskMethodologyChart.vue?2885","webpack:///./src/views/tra/RiskScalesView.vue","webpack:///./src/views/tra/RiskScalesView.vue?10bc","webpack:///./src/views/tra/RiskScalesView.vue?388e","webpack:///./src/views/tra/TraCategoriesView.vue?4b65","webpack:///./src/views/tra/TraCategoriesView.vue","webpack:///./src/views/tra/TraCategoriesView.vue?5a4b","webpack:///./src/views/tra/TraCategoriesView.vue?20a0","webpack:///./src/views/tra/TreatmentAnswersView.vue?1000","webpack:///./src/views/tra/TreatmentAnswersView.vue","webpack:///./src/views/tra/TreatmentAnswersView.vue?fdf9","webpack:///./src/views/tra/TreatmentAnswersView.vue?5ac7","webpack:///./src/router/routes/general.ts","webpack:///./src/router/routes/isra.ts","webpack:///./src/router/routes/tra.ts","webpack:///./src/router/routes/index.ts","webpack:///./src/services/RouterService.ts","webpack:///./src/main.ts","webpack:///./src/i18n/translations lazy ^\\.\\/.*\\.json$ namespace object","webpack:///./src/components/bcm/SystemEdit.vue?644e","webpack:///./src/components/bcm/incident/IncidentTaskLine.vue?0376","webpack:///./src/legacy/js/forms/isra/IctRiskCategories.js","webpack:///./src/legacy/js/forms/DeploymentFormBase.js","webpack:///./src/views/tra/assessments/questionnaires/review/AssessmentQuestionnaireReviewBelowAppetiteColumn.vue?d967","webpack:///./src/components/compliance/CategoryControl.vue?d066","webpack:///./src/components/compliance/EditControlDialog.vue?b534","webpack:///./src/legacy/js/forms/isra/ImpactScales.js","webpack:///./src/legacy/js/forms/isra/RisktreatmentPlans.js","webpack:///./src/legacy/js/forms/isra/ControlQuestionnaires.js","webpack:///./src/legacy/js/forms/isra/ClassificationScales.js","webpack:///./src/views/tra/assessments/treatments/AssessmentTreatmentUserControlLine.vue?a9fe","webpack:///./src/components/bcm/testing/dr/TestingUserGroup.vue?a307","webpack:///./src/components/core/PdTranslationFieldEditor.vue?4f82","webpack:///./src/components/bcm/incident/AffectedSectors.vue?8bb7","webpack:///./src/views/tra/AnswerGroups/AnswerUpdateControlComponent.vue?1d24","webpack:///./src/legacy/js/forms/isra/QuestionGroups.js","webpack:///./src/legacy/js/forms/bc/masterplan/OperationalImpactScales.js","webpack:///./src/core/storage/SessionStorage.ts","webpack:///./src/core/storage/index.ts","webpack:///./src/components/core/PdPivot/PdPivot.vue?e691","webpack:///./src/components/core/PdTreeGrid/PdTreeGrid.vue?41a7","webpack:///./src/legacy/js/forms/isra/ClassificationQuestionnaires.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","IsraProfileQuestions","api","preventBinding","columns","title","binding","sort","editable","template","dataItem","item","DataSources","IsraQuestions","questionId","Helpers","sanitizeHTML","translations","selectedLanguage","question","editor","container","options","questionGroupSelector","answerColumns","IsraAnswers","answerId","answer","type","required","source","change","e","field","indexOf","grid","toolbar","firstDataBound","databound","dataBound","sender","$","click","addQuestion","detailTemplate","detailInit","answersGrid","createGrid","id","selector","menu","command","appendTo","detailCell","kendoGrid","this","dataSource","content","showPopUp","text","primary","action","di","add","saveChanges","filters","operator","width","kendoComboBox","dataTextField","dataValueField","valuePrimitive","placeholder","index","filter","logic","dir","suggest","FormBase","CostUnits","confirmation","translatable","RiskImpactAreas","defaultValue","impactAreaScalesColumns","fieldName","RiskImpactScales","riskImpactScaleId","String","format","datasource","sortField","impactScalesGrid","edit","each","row","scale","uid","css","color","jsotp","base","process","defaults","baseURL","timeout","headers","Api","token","Authorization","SendOtpKey","config","LoggedIn","Promise","resolve","method","otp","GetValue","reject","JSON","parse","userKey","counter","hotp","HOTP","at","SetValue","stringify","interceptors","request","use","busy","popupMessages","snackbarMessages","settings","logo","segregationOfDuties","showModuleImage","sso","authenticationMethod","language","English","companyName","companyLogo","companyLink","entity","languages","code","lang","message","SET_SETTINGS","SET_ENTITY","parsed","RemoveKey","SET_LANGUAGE","ADD_BUSY_MESSAGE","REMOVE_BUSY_MESSAGE","ADD_POPUP_MESSAGE","REMOVE_POPUP_MESSAGE","ADD_SNACKBAR_MESSAGE","REMOVE_SNACKBAR_MESSAGE","rawError","namespaced","user","SET_USER","Date","tokenExpiration","displayName","roles","tasks","bcm","isra","disasterTests","incidents","bcpFunctionalTests","tra","hasApplicationsTaxonomy","hasLocationsTaxonomy","hasAssociatesTaxonomy","hasPersonnelTaxonomy","SET_TASKS","_menu","_navigationDrawerState","_navigationHistory","state","route","unshift","SET_MENU","CLEAR_NAVIGATION_HISTORY","ADD_NAVIGATION","SET_NAVIGATION_DRAWER_STATE","category","routeNameToRedirect","routeName","SET_CATEGORY","SET_ROUTE","store","Store","application","authentication","navigation","ApplicationModule","AuthenticationModule","EntityModule","NavigationModule","TraModule","RiskControlEvaluations","align","BcmDashboard","kendo","ui","progress","div","empty","addDashboardItem","stats","cols","s1","selectedMasterPlan","s2","s3","done","statuses","statusesTooltips","timeliness","timelinessTooltips","status","Constants","DeploymentStatus","Finished","dueDate","deployment","finished","DataEntry","ApprovalPath","AdminApproval","Chart","getDefaultChart","labels","datasets","label","backgroundColor","tooltips","fail","error","showError","responseText","always","when","RTOScales","read","colors","scales","rto","partition","mao","rtoTooltip","maoTooltip","legend","display","RiskLevels","RiskTreatments","ImplementationScales","riskLevelLabels","riskTreatmentLabels","riskImplementationLabels","riskLevelColors","riskTreatmentColors","riskImplementationColors","riskLevels","riskTreatments","riskImplementations","riskLevelsTooltips","riskTreatmentsTooltips","riskImplementationsTooltips","implementationStatus","risk","riskLevel","riskTreatment","values","DashboardBase","IsraTreatmentAnswers","validation","min","max","step","OperationalImpactQuestions","readOnly","userRole","includes","RoleTypes","BCM","Administrator","footerTemplate","operationImpactScalesTemplate","rtoSelector","maoSelector","OperationalImpactScales","view","alert","enableIndicator","enableWeight","weightedRtoIndicator","weight","removeClass","addClass","prop","enable","updateContainerReadOnly","model","rtoIndicator","weightSum","rtoSum","maoSum","rtoTriggerId","maoTriggerId","offset","weightFooter","element","find","rtoFooter","maoFooter","append","Math","round","items","kendoDropDownList","optionLabel","Empty","valueTemplate","pos","setDataSource","select","IsraRiskScales","Selectors","ColorTemplate","ColorSelector","IsraImpactScales","IsraLikelihoodScales","lik","imp","compare","a","b","prev","v","table","IsraRiskManagementTreatmentReview","allowSave","errorCallBack","update","RiskManagementStatus","ReadyForAcceptance","off","on","acceptReview","questionnairesReviewed","cancelChanges","riskManagementRisks","riskManagementRiskId","initialRisk","initialLikelihoodValue","initialImpactValue","riskScale","initialRiskScaleId","replace","collapse","currentRisk","currentLikelihoodValue","currentImpactValue","currentRiskScaleId","residualRisk","residualLikelihoodValue","residualImpactValue","residualRiskScaleId","bestCaseRisk","bestCaseLikelihoodValue","bestCaseImpactValue","bestCaseRiskScaleId","riskManagementControls","riskManagementControlId","controlId","questionAnswerId","answerComments","ret","recommendedActions","sortId","sortable","treatmentAnswerId","DateTemplate","implementationStatusId","prioritizationScaleId","IsraTreatmentPrioritizationScales","controlStrengthScaleId","IsraControlStrengthScales","sep1","cssClass","IsraRiskManagementControls","IsraRiskManagementRisks","createModel","answerCols","createColumns","delete","dataBinding","preventDefault","acd","refresh","firstBound","expandRow","collapseRow","post","then","DownloadService","DownloadFile","DocumentFileFormat","Unknown","detail","getDefaultGrid","height","controls","pageSize","schema","impactImplementationValue","likelihoodImplementationValue","comments","commands","disableButtonsOnEdit","showPopUp2","actions","toggleAppear","StrategyScenario","scenario","strategyId","parseData","parameterMap","hiddenColumns","keys","allocations","LocationGroups","locationGroupId","locationGroupText","Locations","locationId","locationText","country","city","address","zipCode","partitionText","Partitions","partitionId","rtoText","rtoId","assetText","Assets","assetId","scenarioRecoverySites","rs","recoverySiteId","RecoverySites","RecoverySiteTypes","GroupableRecoverySite","GroupableLocations","group","loc","rec","hidden","filterable","groupable","groupHeaderTemplate","scenarioLocations","recoverySitesData","assets","recoverySiteAssets","capacity","rtos","maxRule","input","console","log","addUnavailableLocations","addRecoverySites","removeUnavailableLocations","removeRecoverySites","refreshNeeds","found","groups","showColumn","hideColumn","databinding","k","sum","assigned","needed","initOpen","kendoMultiSelect","autoClose","itemTemplate","disabled","ajax","url","contentType","destroy","show","init","selectable","Strategies","StrategyScenarioColumns","tbody","first","StrategyScenariosGrid","open","target","closest","openScenario","that","currentTarget","dt","require","promises","all","hide","setCurrent","AllDeployments","DeploymentTypeName","1","2","3","4","DeploymentFamilyName","subTitleButtons","icon","saveAsExcel","ISRA","family","for","com","comment","txt","DeploymentStatusTranslations","DeploymentUserActionTypeTranslations","userAction","toString","tooltip","dataEntryUsers","approvalPathUsers","currentUser","standardizations","IsraStandardizations","apps","applications","applicationId","createDataSource","jwt","openDetails","_group","innerText","trim","parent","navigate","DeploymentFamily","Continuity","params","Isra","DeploymentType","Classification","Assessment","Treatment","Acceptance","navigateTo","start","finish","IsraRiskManagementAssessmentQuestionnaire","riskManagementId","questions","q","answerSelector","readonly","promise","checkAllQuestionsFinished","NoDeploymentQuestionnaireAnswer","optionLabelTemplate","answerGroupId","DeploymentQuestionnaireFormBase","FinancialImpactQuestions","showSubTitle","rows","style","titleSection","letters","floor","random","yAxes","ticks","beginAtZero","xAxes","autoSkip","Array","isArray","scaleShowValues","responsive","maintainAspectRatio","callbacks","tooltipCallback","tooltipItem","datasetIndex","plugins","datalabels","font","size","context","dataIndex","dataset","IsraAnswerGroups","current","setJwt","ajaxSetup","beforeSend","req","reqSettings","setRequestHeader","PersistentStorage","document","ajaxComplete","event","xhr","reg","RegExp","test","setSettings","setRoles","changeMasterPlan","masterplan","ChangeMasterPlan","router","arguments","forms","bcmDashboard","israDashboard","IsraDashboard","userManagement","UserManagement","coordinatorTypes","CoordinatorTypes","projectManagement","ProjectManagement","organizationStructure","OrganizationStructure","Applications","associates","Associates","costUnits","financialImpactScales","FinancialImpactScales","locationGroups","locations","operationalImpactScales","positions","Positions","recoverySites","recoverySiteTypes","rpo","Rpo","Rto","rtoApplications","RtoApplications","services","Services","implementationScales","deployments","Deployments","allDeployments","financialImpactQuestions","operationalImpactQuestions","surveys","Surveys","risks","Risks","riskGroups","RiskGroups","riskImpactAreas","riskImpactScales","riskControlEvaluations","riskProbabilities","RiskProbabilities","bcpTemplates","BcpTemplates","bcpGenerator","BcpGenerator","bcpDocuments","BcpDocuments","strategy","answerGroups","answers","classificationScales","IsraClassificationScales","controlStrengthScales","controlStrengthReduction","IsraControlStrengthReductions","riskScales","TreatmentPrioritizationScales","riskTreatmentPlans","IsraRiskTreatmentPlans","riskAcceptanceAnswers","IsraRiskTreatmentAnsers","treatmentAnswers","likelihoodScales","impactScales","ictRiskCategories","IsraIctRiskCategories","isoDomains","IsraIsoDomains","threats","IsraThreats","vulnerabilities","IsraVulnerabilities","vulnerabilityCategories","IsraVulnerabilityCategories","classificationQuestionnaires","IsraClassificationQuestionnaires","controlQuestionnaires","IsraControlQuestionnaires","questionGroups","IsraQuestionGroups","assessments","IsraAssessments","classificationQuestions","IsraClassificationQuestions","controlQuestions","IsraControlQuestions","profileQuestions","israRisks","IsraRisks","risksControls","IsraRiskControls","israClassificationDeployments","IsraClassificationDeployments","israRiskDeployments","IsraRiskDeployments","licences","Licences","applicationSettings","ApplicationSettings","quickView","QuickView","israStandardizations","israRiskManagementAssessments","IsraRiskManagementAssessments","israRiskManagementTreatments","IsraRiskManagementTreatments","israRiskManagementAcceptances","IsraRiskManagementAcceptances","parameter","legacyAppearDiv","deploymentId","DeploymentTabs","IsraClassificationDeploymentQuestionnaire","IsraRiskManagementTreatmentQuestionnaire","IsraRiskManagementAcceptanceQuestionnaire","riskManagement","IsraRiskManagementRiskControls","IsraRiskManagementAssessmentReview","IsraRiskManagementTreatmentProgress","forEach","system","assessmentId","assessmentText","version","classificationDeploymentId","classificationQuestionnaireId","classificationText","editorHidden","assessmentTemplate","assessmentSelector","applicationTemplate","applicationSelector","classificationDeploymentTemplate","classificationDeploymentSelector","riskAppetiteTemplate","riskAppetiteSelector","VersionableFormBase","versionPrototype","RiskManagementStatusTranslations","active","archived","assessmentQuestionnaireColumns","controlQuestionnaireId","GetDefaultDueDate","Undeployed","DatePicker","dataEntryEditor","approvalPathEditor","controlValues","openControls","riskValues","openRisks","riskControlValues","openRiskControls","sep2","reviewAnswers","classificationDeployments","Users","assessmentsData","map","expanded","selectedItem","initAssessmentsTreeData","kendoDropDownTree","node","clearButton","riskAppetiteId","Error","mp","assessment","classification","riskAppetite","removeFilter","setFilter","currentFilter","questionnairesGrid","rm","deployDeployment","abortDeployment","response","isNew","checkDuplicateAssessmentApplication","passCheck","saveRow","duplicates","app","ass","prerequisites","dirty","DeploymentFormBase","riskAcceptanceAnswerId","IsraRiskAcceptanceAnswers","explanation","questionColumns","controlValuesModel","controlValuesColumns","pop","transport","success","db","attr","plan","riskId","implementationStatusSelector","minmax","is","val","file","Pdf","Word","Excel","Csv","byteCharacters","atob","byteNumbers","charCodeAt","byteArray","Uint8Array","blob","Blob","top","navigator","msSaveOrOpenBlob","aElement","body","appendChild","createElement","href","URL","createObjectURL","download","parentNode","removeChild","assetCostColumns","costUnitId","description","unitOfMeasurement","remove","assetCostsGrid","costPerUnit","sync","DataSource","dataType","_groupableLocationsDataSource","_groupableRecoverySitesDataSource","_groupableRisksDataSource","RtoApplicationScales","RpoScales","TreeListDataSource","parentId","AllPartitions","HierarchicalPartitions","HierarchicalDataSource","hasChildren","children","HierarchicalAllPartitions","TreeListPartitions","SurveyQuestionTypes","HierarchicalIsraQuestionGroups","HierarchicalIsraQuestions","questionnaireId","_israRiskManagementRisks","_israRiskManagementControls","_deploymentQuestionnaireQuestion","webpackContext","webpackContextResolve","questionGroupId","NoQuestionGroup","answerGroupSelector","questionnaires","IsraQuestionnaires","loadOnDemand","riskTemplate","fiendName","controlTemplate","control","controlsFilters","autoBind","filtering","filterValue","undefined","selected","listView","setDSFilter","confidentiality","integrity","availability","html","statusText","pageable","confidentialityValue","integrityValue","availabilityValue","crit","confScale","inteScale","avaiScale","critScale","rtoScale","classificationRTO","maxdepth","ra","EmptyLocation","locationGroup","EmptyGroup","RiskSelfAssessmentType","None","Registry","Text","Both","RiskSelfAssessmentTypeTranslations","EmptyRTOScale","NoRtoCalculated","NoMaoCalculated","SelectUser","username","info","SelectPosition","SelectQuestionnaire","SelectQuestion","SelectAnswerGroup","NoVulnerabilityCategory","NoThreat","NoVulnerability","NoIsoDomain","NoFinancialImpact","InternalExternalValues","InputOutputValues","Comments","General","User","UserManager","Coordinator","Assessor","QuestionType","Single","Multiple","NotStarted","ReadyForAssessmentReview","AssessmentReview","ReadyForTreatment","ReadyForTreatmentReview","TreatmentReview","ApprovalPathStatus","Pending","On","UserRoles","5","IsraAnswerType","DeploymentUserActionType","Actions","Approval","collapsable","implementationDueDate","implementationResponsible","treatmentAnswer","resp","due","SupportedLanguage","i18n","locale","fallbackLocale","messages","loadedLanguages","setI18nLanguage","common","doc","querySelector","setAttribute","loadLanguageAsync","force","setLocaleMessage","default","QuickViewTypes","FinancialImpact","OperationalImpact","RiskAssessments","sub","list","complete","processData","autoWidth","changeQuickView","setPivotTable","func","setApplications","setAssets","setAssociates","setFinancialImpact","setOperationalImpact","setRiskAssessments","levels","vue","Vue","VuePivot","el","fields","rowFields","colFields","valueFields","defaultShowSettings","hideEmpty","order","getLevelFields","concat","level0","asset","direction","relation","isCritical","whyCritical","criticalActions","associate","impactName","impactValue","controlTools","controlEvaluation","probability","probabilityValue","treatment","actionPlan","actionPlanDueDate","implementation","riskValue","recoverySiteTypeDropDownEditor","recoverySiteTypeId","locationDropDownEditor","recoverySiteAssetsColumns","templateBase","assetsGrid","existing","riskGroupSelector","standardizationColumns","standardizationId","standardizationGrid","kendoColorPicker","buttons","dateString","kendoDatePicker","dateInput","depth","now","setMonth","getMonth","positionId","userId","impactScaleId","strengths","controlStrengthScaleSelector","lastIndexOf","maoId","coordinatorTypeDropDownEditor","coordinatorTypeId","userPositionsEditor","idx","expand","activeDirectoryGroup","set","confirm","kendoTreeList","lastName","firstName","email","UserTemplate","UserEditor","PositionTemplate","PositionEditor","resizable","scrollable","baseApi","errorDelete","ModuleType","BPM","TRA","Audit","RoleType","RoleAttributeType","CoordinatorType","ModuleTypeName","0","RoleTypeName","str","role","localeCompare","bcmType","israType","traType","cbUserManager","attributes","roleAttribute","bcmCoordinatorType","checked","getLicenceModules","divName","TypeError","loading","flatout","contextMenu","editRow","removeRow","menuOptions","setCustomGridProperties","setCustomMenuItems","createMenu","requestEnd","setCustomDatasourceProperties","loader","customInit","initDone","catch","reason","finally","parameters","gridSelector","menuCounter","menuItems","encoded","kendoContextMenu","nodeValue","selectedItemChanged","hasChanges","showTitle","finishedShow","num","confirmationDialog","locationGroupDropDownEditor","DeploymentTabBase","li","DeploymentSurveys","displaySurvey","firstRequest","deploymentSurveys","kendoSplitter","panes","collapsible","resize","surveyId","deploymentSurvey","surveyIndex","survey","questionType","surveyAnswerChange","inArray","allowComments","second","substring","startsWith","parseInt","deferred","DeploymentAssets","defaultRtoValues","addAsset","mandatory","deploymentAsset","rtoValues","DeploymentApplications","rpoId","rpoSelector","addApplication","DeploymentExternalContacts","DeploymentFinancialImpact","scaleSelector","itemValue","prevValue","itemRto","prevRto","DeploymentInterdependencies","associateId","associatesSelector","grep","relationSelector","directionSelector","serviceId","servicesSelector","DeploymentOperationalImpact","totalWeight","rtoTrigger","maoTrigger","partitionRto","partitionMao","DeploymentInternalContacts","contact","partitionSelector","DeploymentPersonnels","move","dragend","DeploymentRisks","riskText","GroupableRisks","riskEditor","controlEvaluationId","controlEvaluationSelector","probabilityId","occurrence","probabilitySelector","qualitativeImpactsGrid","riskLevelId","calculateRiskLevel","riskTreatmentId","riskTreatmentSelector","implementationScaleId","impactColumns","riskImpactAreaId","impact","riskImpactAreaScaleId","impactAreaScales","riskImpactAreaScaleSelector","editing","selfAssessmentType","riskAnswerType","disableItems","textarea","impacts","addQualitativeImpact","riskImpactAreaScaleTemplate","impactArea","impactAreaScaleId","impactAreaScaleValue","box","next","tabs","kendoTabStrip","animation","effects","kendoProgressBar","duration","DeploymentPersonnel","Set","cancel","rejectMessage","tabstrip","strip","discardChanges","closeDeployment","operationalImpact","lowerAssets","lowerApplications","rtoScales","allAssets","allApplications","responseJSON","Message","logout","errors","join","tasksApi","dependenciesApi","tasksDataSource","GanttDataSource","orderId","from","end","percentComplete","summary","kendoGantt","dependencies","predecessorId","successorId","columnResizeHandleWidth","views","snap","showArchived","archivedFetched","constantFilter","urlParameters","versionRootId","popup","newVersionPopupItems","getItemName","newVersionPrepostChecks","newVersionUrlGenerator","toJSON","inherentRisk","newAnswerId","answersMenu","getClassification","Confidentiality","confidentialityId","Integrity","integrityId","Availability","availabilityId","calculateItemRisks","inherentLikelihood","defaultLikelihood","profileDrop","inherentImpact","controlsLikelihood","controlsImpact","impactSum","likelihoodSum","newAnswerValue","impactWeight","probabilityWeight","currentImpact","impactReduction","currentLikelihood","probabilityReduction","bestCaseImpact","bestCaseLikelihood","getRiskTemplate","likelihood","getRiskScale","detailDataBound","oldAnswerId","autoSync","changed","Map","newAnswer","oldAnswer","rejected","openTemplateSelector","hasFile","drop","questionnaireColumns","cancelOnError","questionnairesData","qView","isoDomainId","isoDomainSelector","threatId","threatSelector","vulnerabilityId","vulnerabilitySelector","currentType","currentStandard","currentApplication","currentAssessment","dashboardTypes","queries","refreshDashboard","standards","standardChanged","applicationChanged","assessmentChanged","showDeploymentStatus","showClassifications","showStandardizationDetails","showApplicationDashboard","implementationValues","treatmentPrioritizationScales","riskScaleNames","riskScaleColors","riskScaleTranslations","currentRisks","currentRisksStatus","residualRisks","residualRisksStatus","ictRiskCategoriesNames","ictRiskCategoriesDatasets","ictRiskCategoriesDatasetsTranslation","controlStrengthNames","controlStrengthDatasets","controlStrengthDatasetsTranslation","controlStrengthImplementationDatasets","implementationTranslation","treatmentPrioritizationScalesValues","treatmentPrioritizationScalesColors","treatmentPrioritizationScalesLabels","treatmentPrioritizationScalesTranslations","treatmentPrioritizationStatus","riskRadarLabels","riskRadarTooltips","riskRadarDataset","borderColor","pointBackgroundColor","currentValue","ictCategory","residualValue","residual","needsImplementation","controlStrength","treatmentPrioritizationScale","scaleLabel","labelString","classificationContent","conf","confColor","inte","inteColor","avai","avaiColor","critColor","criticality","classificationApprovalPath","dataEntry","approvalPath","clas","questionnaire","questionsAnswered","questionsTotal","acceptanceContent","acceptance","acceptanceApprovalPath","assessmentsContent","assessmentApprovalPath","treatmentsContent","treatments","treatmentApprovalPath","standard","classificationStatus","assessmentStatus","treatmentStatus","acceptanceStatus","circumference","PI","rotation","cutoutPercentage","confTooltips","inteTooltips","avaiTooltips","critTooltips","mapData","editDeployment","destroyDeployment","deploy","abort","rejectDeployment","hasAssets","hasApplications","hasInterdependencies","hasOperationalImpact","hasFinancialImpact","hasContacts","hasRiskAssessment","surveysGrid","getDefaultDueDate","wrapper","deployDeploymentEvent","abortDeploymentEvent","subPartitions","enabled","surveysfirst","surveyTemplate","addSurvey","removeSurvey","ictRiskCategoryTemplate","ictRiskCategorySelector","ictRiskCategoryId","DocumentType","BcpDocument","documentsApi","documentColumns","downloadApi","tree","documentsDatasource","documentCols","documentGrid","getAttribute","form","fd","FormData","files","cache","showLicence","licence","company","issuedBy","issuedDate","expire","userLimit","riskSelector","controlSelector","controlQuestionId","preventBindingQuestions","questionConfirmation","questionOptionConfirmation","questionTypesDropDownEditor","questionOptionColumns","questionsGrid","eqo","questionOptionsGrid","showSettings","logolink","segegationOfDutiesEnabled","segegationOfDuties","emailNotificationsEnabled","emailNotificationsSettings","emailSettings","enableNotifications","emailNotificationsDatabaseSettings","emailNotificationsApplicationSettings","emailDatabase","emailApplication","databaseNotifications","applicationNotifications","emailApplicationSmtpServer","emailApplicationSmtpPort","emailApplicationSmtpSecure","emailApplicationSmtpUsername","emailApplicationSmtpPassword","emailApplicationDisplayName","emailApplicationDisplayEmail","smtpServer","smtpPort","smtpSecure","smtpUsername","smtpPassword","displayEmail","emailDatabaseProfile","emailDatabaseSeparateConnection","emailProfile","useSeparateConnection","vulnerabilityCategoryTemplate","vulnerabilityCategorySelector","itemA","categoryId","itemB","treatmentQuestionnaireColumns","treatmentProgress","IsraDeploymentControlValues","IsraRiskDeploymentRiskValues","IsraDeploymentRiskControlValues","IsraRiskDeploymentRiskTestValues","profileReduction","riskProbability","riskImpact","pro","probabilitySum","controlsProbability","initialImpact","initialProbability","answerValue","_i","initialAnswerId","msg","IsraRiskDeploymentTreatmentReview","treatmentReviewed","currentProbabilityWeight","totalProbabilityWeight","currentImpactWeight","totalImpactWeight","treatmentProbabilityImplementationValue","treatmentImpactImplementationValue","questionComments","treatmentPrioritizationScaleId","riskOwnerStatus","strength","errorTitle","deploymentApprovalPathGrid","deploymentQuestionnaireColumns","questionnaireStatus","questionnaireApprovalPathGrid","openControlValues","openRiskValues","openRiskControlValues","reviewTreatment","sep3","deployRiskOwner","abortRiskOwner","questionnaireMenu","deployQuestionnaire","abortQuestionnaire","deployTreatment","abortTreatment","unbind","del","siblings","e1","parentRow","parentGrid","treatmentStarted","allFinished","others","save","testDuplicates","openForm","DeploymentControlValues","DeploymentRiskValues","DeploymentRiskControlValues","approvalBinding","nullable","initialDirection","allowUnsort","riskOwnerAddUser","riskOwnerMoveUserUp","riskOwnerMoveUserDown","riskOwnerRemoveUser","questionnaireAddUser","questionnaireMoveUserUp","questionnaireMoveUserDown","questionnaireRemoveUser","riskOwnerApprovalPath","users","close","partitions","dirtyFields","AnswerGroupTemplate","AnswerGroupSelector","questionnaireSelector","questionnaireText","initQuestionnairesDataTree","temp","textContent","innerHTML","bindings","aggregate","createBinding","aggregates","bearer","baseurl","readUrl","unflatTranslationObject","impactSeverities","flatoutCallback","severity","operation","getColumn","groupFooterTemplate","valueA","normalize","toLowerCase","valueB","dictionary","x","jQuery","extend","fileName","rowIndex","pageSizes","numeric","reorderable","navigatable","noRecords","excel","allPages","excelExport","sheet","workbook","sheets","templates","rowoffset","cells","currentGrid","autoFitColumn","isNaN","eq","_idx","hasClass","hideEditor","substr","addChildButton","dialog","kendoDialog","closable","modal","getLastDialog","closeLastDialog","showPopUp1","visible","endsWith","path","obj","self","separator","properties","split","reduce","curr","approveRejectApi","allowApprove","approveDeployment","customApproveCheck","encodeURIComponent","_vm","_h","$createElement","_c","_self","layout","tag","staticRenderFns","attrs","staticClass","_v","_s","$t","_l","$event","buttonClick","_t","props","Boolean","Number","setup","component","VCol","VOverlay","VRow","PopupMessageButtonYes","callback","PopupMessageButtonNo","SetPopupMessage","PopupMessageService","RemovePopupMessage","components","PdPopup","PopupMessages","RemoveMessage","button","closeDialog","VBtn","VCard","VCardActions","VCardText","VCardTitle","VDivider","PdMessage","VApp","VFadeTransition","VProgressCircular","CompanyName","VFooter","VSpacer","UserRole","staticStyle","changeEntity","icons","mdiChevronDownCircle","changeTraCategory","categoryName","_e","scopedSlots","_u","fn","ref","_g","_b","mdiAccount","userInfo","mdiFormTextboxPassword","mdiLogout","login","Settings","axios","Roles","some","GeneralAdministrator","watch","ClearUserVariables","SetUserVariables","u","SetUser","SetAuthenticationHeader","SetLanguage","Greek","Login","expires","AuthenticationService","parseRoles","ClearNavigationHistory","ClearEntity","Logout","SetTraCategory","GeneralUser","GeneralUserManager","BcmAdministrator","BcmCoordinator","IsraAdministrator","IsraAssessor","TraAdministrator","TraAssessor","LoginOAuth","LanguageTemplate","translation","Language","padding","repeat","LocationTemplate","BooleanTemplate","DateFormat","date","Iso","fromISO","toISODate","toFormat","DateTimeTemplate","_","root","loggedIn","UserInfo","CompanyLogo","CompanyLink","Entity","$router","isTra","CurrentCategory","mdi","VAppBar","VIcon","VList","VListItem","VListItemIcon","VListItemTitle","VMenu","VToolbarTitle","VToolbar","BusyMessages","count","percent","stopPropagation","continueSession","timeoutTimer","warningTimer","interval","startDate","startTimeoutTimer","clearTimeout","clearInterval","setTimeout","startNotificationTimer","removeEventListener","getTime","setInterval","ellapsed","countdown","addEventListener","immediate","VProgressLinear","PdFooter","PdHeader","PdBusy","PdTimeout","VMain","class","to","proxy","$$v","expression","navigationOpen","emit","Tasks","NavigationDrawerState","drawer","KeepNavigationOpen","$route","VBadge","VListGroup","InterdependencyDirection","DegreeOfDependency","DegreeOfComparability","TimeToEnableSubstitutability","CostOfAlternative","DegreeOfSubstitutability","SubstituteType","SurveyQuestionType","ApplicationType","NotificationType","DegreeOfDependenciesSelect","Low","Medium","High","DegreeOfComparabilitiesSelect","TimeToEnableSubstitutabilitiesSelect","Instant","DayToWeek","WeekToMonth","MonthToHalfYear","HalfYearToYear","OverAYear","CostOfAlternativesSelect","ComparableToCurrent","NotComparableToCurrent","DegreeOfSubstitutabilitiesSelect","NotSubstitutable","CriticalitiesSelect","SubstituteTypeSelect","Internal","External","NA","SubstituteTypeExternalSelect","UploadFileDtoToFormData","UploadCsvFileDtoToFormData","ignoreFirstLine","delimiter","clearExisting","ignoreDuplicates","mdiSailBoatSink","permision","divider","MenuItems","TopNavigation","hideSso","MiddleNavigation","SetMenu","GetUserMenu","clone","recurseMenuItems","v1","v2","PdMenuEntry","isGeneralAdministrator","isBcmAdministrator","isBcmCoordinator","isIsraAdministrator","isISraAssessor","isTraAdministrator","isTraAssessor","isTaxonomyApplications","isTaxonomyLocations","refreshMenu","Init","Menu","NavigationMenu","history","NavigationHistory","SetNavigationDrawerState","VNavigationDrawer","SetSnackbarMessage","SnackbarMessageService","RemoveSnackbarMessage","SnackbarMessages","VSnackbar","PdNavigation","PdSnackbar","ErrorType","meta","auth","SetMessage","GetAll","_interval","EntitiesService","UpdateUserTasks","GetUserTasks","SetTasks","Handle","SettingsService","GetSettings","SetSettings","LoadingLayout","EmptyLayout","DefaultLayout","initialized","theme","themes","light","anchor","iconfont","entities","selectedEntity","requires","selectEntity","loadingStateChanged","directives","rawName","working","translatableColumns","editingItem","cancelTranslations","saveTranslations","showTranslations","dummy","validationErrors","search","showSelectAll","selectMultiple","selectAll","mdiCheckboxMultipleOutline","addNewItem","mdiPlus","selection","$emit","mdiMagnify","searchText","tableHeight","header","customRowActions","cursor","columnSort","tableSortBy","tableSortDirection","totalColumns","pagedItems","rowClass","editItem","customHeaders","hasDetails","uuid","changeSelection","dblclick","switchMultiSelect","partOfMultiSelect","mdiCheckboxMarkedOutline","mdiCheckboxBlankOutline","currentDetails","mdiMenuRight","h","rowActionClick","getComponent","visibleText","pagination","itemsPerPageArray","itemsPerPage","firstItemPosition","lastItemPosition","totalItems","prevPageDisabled","prevPage","left","nextPageDisabled","nextPage","right","col","translationWidth","$set","AllLanguages","VDialog","VSimpleTable","VTextField","cardWidth","maxHeight","overlay","overlayHeight","onResize","clientHeight","Resize","PdPopupCard","PdColumnProps","editMode","hex","VColorPicker","VCombobox","VSelect","preventNonNumericalInput","match","preventNonIntegerInput","watchPassed","def","textChanged","newValue","VSwitch","displayText","refreshDisplayText","translationValue","mdiDotsVertical","SortDirection","getText","itemChanged","editProps","PdColumnDefault","column","_data","dataChanged","zero","updated","currentOperation","setLoadingState","v4","apiItem","put","original","cloned","Original","Ascending","firstText","secondText","NumberComparison","parseFloat","TranslatableComparison","toLocaleLowerCase","searchTerm","currentPage","totalPages","ceil","PdDataTableEditMode","PdDataTable","PdDataTableActionsMenu","PdDataTableTranslations","PdDataTableEditRow","PdDataTablePopupEditor","selectedItems","sortDirection","disableEditOnDoubleClick","tableActions","rowActions","inEditMode","rowsPerPage","_selectedItems","newDatasource","updateItems","filteredItems","sortedItems","openedDetails","customTableActions","total","createRowActions","disableRowEdit","openTranslations","deleteItem","disableRowDelete","applyPagination","updateVisibleText","innerHeight","initialLoading","ei","last","Descending","resort","need","loaded","loadingDataSources","ds","Name","classes","newItem","saveChecks","mdiMinus","mdiPencil","mdiEarthArrowRight","entityId","currentEntityId","Clear","_associates","_rtoScales","_simpleRtoScales","_rtoApplicationScales","_rpoScales","_operationalImpactScales","_partitions","_coordinatorTypes","_locations","_locationGroups","_applications","_assets","_hierarchicalPartitions","_strategies","_strategyScenarios","_recoverySites","_positions","_surveys","_operationalImpactQuestions","_financialImpactQuestions","_services","_activeServices","_risks","_riskControlEvaluations","_riskProbabilities","_riskimpactScales","_riskImpactAreas","_riskLevels","_riskTreatments","_implementationScales","EntityId","_financialImpactScales","_scenarios","_lists","_disasterRecoveryTests","_incidents","_sectors","_resolutionStatuses","_prioritizationScales","_resolutionEvaluations","_types","_emailTemplates","_contracts","_srbServiceTypes","_criticalities","testId","DatasourcesService","_users","_languages","_entities","Incidents","Bcm","BcmDatasources","DisasterRecoveryTest","Testing","BcpFunctionalTesting","Compliance","Srb","SrbDatasources","Languages","Entities","SetEntity","back","entitiesData","rowAction","langs","getById","languageId","resetPasswordEnabled","resetPassword","documentId","GetUserPartitions","GetPartitionDocuments","DownloadDocument","dto","GetSsoUsers","RequestResetUserPasswordAsync","ValidateUserResetPasswordToken","ResetUserPassword","ChangeUserPassword","BusyIndicatorService","SetBusyMessage","RemoveBusyMessage","domain","location","host","SetBusy","RemoveBusy","VContainer","VForm","VImg","currentRoute","query","rules","mdiLock","password","mdiEarth","snackbar","errorMessage","mdiCancel","timer","refreshRules","res","validate","allLanguages","resetValidation","VExpandTransition","showSubtitle","subtitle","showOnLoading","forceSubtitle","passwordMessage","newPassword","repeatPasswordMessage","repeatPassword","guid","passwordComplexity","complex","currentPassword","changeEmailNotification","PdFormBase","trustCertificate","testEmail","sendTestEmail","authenticateUser","VCheckbox","VRadio","VRadioGroup","VTextarea","Routes","ApplicationSettingsView","LegacyFormView","applicationsDatasource","currentApplications","showApplicationSelector","rpoScales","updateApplication","removeApplication","_application","rtoClass","valueChanged","_inputType","dense","hideDetails","preventType","fieldValue","integerOnly","inputType","plus","minus","return","approve","collapsed","expandAll","collapseAll","addChildRecord","import","export","trafficLight","messageRight","messageLeft","biaDeployments","israDeployments","traDeployments","documents","attention","calendar","buildingUnavailable","recoverySiteBuilding","PdNumberField","rtoValue","GetAssetsCosts","Import","Export","inactive","ImportContracts","employeeId","employee","GetAllPartitions","AddPartition","RemovePartition","ImportEmployees","ExportEmployees","locationDto","Update","newParentId","ExportOrganizationStructure","PartitionsService","ClearPartitionBiaInfo","newParent","ChangePartitionParent","ImportSystems","partitionSurveyId","service","partitionServiceApplicationId","partitionServiceAssociateId","partitionServiceAssociate","personnel","partitionServicePersonnelId","partitionServicePersonnel","personId","GetPartitionInfo","BiaService","GetSelfAssessmentType","UpdateSelfAssessmentType","GetPartitionDeployments","GetAllPartitionSurveys","GetPartitionSurveyDetails","GetPartitionOperationalImpacts","GetPartitionRtoAndMao","GetPartitionFinancialImpacts","GetPartitionAssets","GetPartitionApplications","GetPartitionInterdependencies","GetPartitionAssociates","GetPartitionPersonnel","GetUserDeployments","GetDeployment","GetDeploymentSurveys","UpdateDeploymentSurveyQuestion","UpdateOperationalImpactQuestion","UpdateFinancialImpactQuestion","CreateAsset","UpdateAsset","DeleteAsset","CreateApplication","UpdateApplication","DeleteApplication","ApproveDeployment","RejectDeployment","DeployDeployment","AbortDeployment","CreateDeployment","UpdateDeployment","DeleteDeployment","GetPartitionServices","ps","isDeprecated","needsTaxonomy","CreatePartitionService","UpdatePartitionServiceRto","partitionServiceId","DeletePartitionService","partitionApplication","partitionApplicationId","CreatePartitionServiceApplication","partitionServiceApplication","DeletePartitionServiceApplication","partitionAssociate","partitionAssociateId","srbComment","substitute","degreeOfDependency","existingContract","substituteType","CreatePartitionServiceAssociate","UpdatePartitionServiceAssociate","DeletePartitionServiceAssociate","partitionPersonnel","partitionPersonnelId","substitutePerson","CreatePartitionServicePersonnel","UpdatePartitionServicePersonnel","DeletePartitionServicePersonnel","person","ChangePersonParent","scenarioId","GetStrategy","GetStrategyScenario","GetStrategyScenarioLocations","GetStrategyScenarioRecoverySites","GetStrategyScenarioPartitionRtoAllocations","GetRecoverySiteCapacities","GetRecoverySiteAssignements","StrategyScenarioUpdateAllocation","StrategyScenarioRefreshFromBia","locs","locationName","AddUnavailableLocations","RemoveUnavailableLocations","recoverysites","recoverySiteName","AddRecoverySites","recoverysite","RemoveRecoverySites","pars","ClearAllocations","recoverySite","AutomaticAllocations","AutomaticPartitionAllocations","availableItems","_headers","selectItem","disableSelect","exclude","allItems","calculateAvailableItems","BiaApplicationLine","ItemSelector","assignementsBellowPartitionRto","rtoName","every","VAlert","assetsDatasource","currentAssets","showAssetSelector","updateAsset","removeAsset","_asset","BiaAssetLine","rtosBelowPartitionRto","RtoScales","activeElement","focus","editingChanged","phone1","phone2","phone3","existingPartitions","directions","selectorVisible","excludedItems","openSelector","displayField","Function","currentItem","clearIcon","ItemSelectorTextField","existingAssociates","Input","Output","BiaAssociateEditor","associatePartitionId","PdColumnYesNo","Popup","updateQuestion","availableImpactScales","changedValue","_question","calculateAvailableImpacts","other","BiaFinancialImpactQuestion","interdependency","selectPartition","selectedPartition","expandAllItems","mdiExpandAllOutline","collapseAllItems","mdiCollapseAllOutline","allowAdd","allowEdit","allowRemove","maxDepth","valueProperty","openItems","addMultiSelect","removeMultiSelect","selectedChanged","openItem","closeItem","currentclass","dblClick","switchDetails","addItem","mdiPlaylistPlus","mdiPlaylistEdit","removeItem","mdiPlaylistMinus","showMenu","addVisibility","removeVisibility","editVisibility","PdTreeViewLine","hierarchicalItems","newItems","newHierarchicalItems","parents","has","newArray","recursiveGetAll","returnList","PdTreeView","TreeItemSelector","currentPartition","PartitionSelectorTextField","TreeItemSelectorTextField","ActiveServices","BiaInterdependencyEditor","rtoTriggerColor","maoTriggerColor","BiaOperationalImpactQuestion","getRtoAndMaoTriggers","rtoMao","rtoColor","maoName","maoColor","quest","VChip","riskSelfAssessmentTypes","newDeployment","existingSurveys","disableBia","disableRcsa","deleteDeployment","openDeployment","statusColor","hasBiaParameters","showFinancialImpacts","showServices","today","outlined","mdiCalendar","errorMessages","dateFormatted","datePicker","textFieldStyle","parseDate","toISOString","toLocaleDateString","VDatePicker","allUsers","excludedUsers","addUser","userSelectorVisible","addUserForDataEntry","removeUser","addUserForApprovalPath","moveUp","moveDown","allowChangeFinishing","visibility","up","down","getUserStatus","getUserStatusColor","pathStatus","VSimpleCheckbox","Ripple","availableUsers","availableUsersHeaders","selectedUser","selectUser","calculateAvailableUsers","BaseDeploymentUserLine","UserSelector","addUserFor","allowFinishingDataEntry","PdDatePicker","BaseDeploymentUsers","DeploymentStatusColor","DeploymentStatusTitle","StatusTitle","surveyName","BiaPartitionDeploymentSurvey","Local","VExpansionPanel","VExpansionPanelContent","VExpansionPanelHeader","excludedSurveys","showSurveySelector","addNewSurvey","BaseDeploymentEditor","BiaPartitionDeployment","BiaPartitionDeploymentEditor","showEditor","flatMap","created","approvable","rejectable","currentUserStatus","SaveDeployment","VExpansionPanels","BiaPartitionDeployments","VCardSubtitle","changePersonParent","showPersonSelector","gridOptions","hideExpandAll","hideCollapseAll","saveItemChanges","cancelItemChanges","_selectedItem","DefaultComponent","_rowActions","hasErrors","editorVisible","defaultEditComponent","_item","PdTextColumn","vis","validateInput","PdTranslationFieldEditor","rowActionClicked","gridItem","PdTreeGridEditor","PdTranslationsEditor","PdTreeGridActionsColumn","showButtons","gridActions","showTranslationsEditor","_gridItems","_sort","_sortDirection","addChildRecordTo","showRowActionsColumn","showAddButton","showActionsBar","editTranslations","refreshGridData","added","parentUuid","vuetify","framework","goTo","editRemoveMessage","itemFound","checkForChildren","recurse","sortColumn","aText","bText","defaultNew","employeesDatasource","employeesHeaders","addEmployee","cancelNewEmployee","allowEditing","warning","selectionType","showEmployeeSelector","external","PdTreeGrid","BiaPersonnelEditor","personToChangeParent","PdDropDownColumn","PdColumnCheckbox","positionsDatasource","riskImpactAreaScales","riskRegistry","controlEvaluations","probabilities","existingRisks","rcsaType","_existingRisks","rcsa","impactAreas","impactLevelChanged","_riskColor","_riskLevel","_impactAreas","areasHeaders","excludedAreas","addImpactArea","impactSelectorVisible","updateValue","removeImpactArea","area","areaInfo","scaleInfo","availableScales","riskImpactArea","impactAreaId","ia","rias","scaleValue","VTooltip","ImpactAreaLine","maxImpactValue","BiaRcsaImpacts","_impactLevel","calculateRisk","impactAreaScale","actualRisk","BiaRcsaEditor","RcsaDetails","ImpactColumn","RiskLevelColumn","riskGroup","activeServices","existingServices","addNewService","showServiceSelector","removeService","deleteService","applicationsCount","associatesCount","personnelCount","rtoChange","newRtoId","existingApplications","showApplicationsSelector","addAssociate","showAssociatesSelector","editingAssociate","saveAssociateEdit","cancelEdit","editAssociateTaxonomy","contracts","contractTemplate","contractHeaders","degreeOfDependencies","substituteTypes","substituteExternal","degreeOfComparabilities","enableSubstitutability","timeToEnableSubstitutes","costOfAlternativeServices","degreeOfSubstitutabilities","degreeOfSubstitutability","criticalitiesSelect","criticalities","timeToEnableSubstitutability","degreeOfComparability","costOfAlternative","contract","contractId","Criticalities","editTaxonomy","displayContractId","displayContractDescription","taxonomyStyle","BiaServiceDetailsAssociateLine","BiaServiceDetailsAssociateEditor","showAssociateEditor","existingPersonnel","addPersonnel","showPersonnelSelector","editingPerson","savePersonnelEdit","editPersonTaxonomy","personTemplate","personnelHeaders","substituteInternal","substituteNA","showSubstituteColumns","BiaServiceDetailsPersonnelLine","BiaServiceDetailsPersonnelEditor","showPersonnelEditor","BiaServiceDetailsApplications","BiaServiceDetailsAssociates","BiaServiceDetailsPersonnel","BiaServiceDetails","rtoAndMao","partitionName","confirmationMessage","userInputErrors","userInput","slot","userStatusColor","userStatus","dueDateClass","statusClass","updateAnswer","selectedAnswers","isText","isSingle","isMultiple","PartitionSurveyQuestion","PartitionSurvey","selectedSurvey","survs","cancelNewUserPosition","saveNewUserPosition","editingUser","editingPosition","rtoAndMaoColumns","forceRefreshTable","fetchSsoUsers","assignedUsersHeaders","assignedUsers","assignedUsersOptions","userSelector","addSelectedUser","displayUser","PartitionRto","UserSelectorBox","showUserSelector","administrator","finishDialog","allowedNext","partitionsHeaders","selectedPartitions","allRecoverySites","recoverySitesHeaders","selectedRecoverySite","assetsHeaders","selectedAssets","VStepper","VStepperContent","VStepperHeader","VStepperItems","VStepperStep","mapLocations","mapLines","_platform","_apikey","H","Platform","apikey","maptypes","MapsService","createDefaultLayers","vector","traffic","normal","trafficincidents","truck","raster","terrain","setMin","setMax","satellite","lines","mapContainer","markersGroup","Group","linesGroup","center","lat","lng","zoom","DefaultMapTypes","getViewPort","mapevents","Behavior","MapEvents","marker","Marker","addObject","getBoundingBox","f","getViewModel","setLookAtData","bounds","UI","createDefault","evt","bubble","InfoBubble","getGeometry","getData","addBubble","removeObject","setCenter","setZoom","removeAll","Icon","lineString","geo","LineString","points","pushPoint","polyline","Polyline","lineWidth","setStyle","strokeColor","PdMap","affectedLocations","notFound","allLocations","fromLocations","toLocations","latitude","longitude","recSite","selectedMinimumRtoScale","remainingRtoScales","selectedMaximumRtoScale","allocated","alloc","entries","assetName","minRtoId","maxRtoId","automaticallyAssign","clearAllocations","selectedRto","changeSelectedRto","recoverySitesAssignements","recoverySitesCapacities","allocation","allocationChanged","assignedColor","recoverySiteCapacity","recoverySiteAssigned","_assigned","StrategyScenarioPartitionRtoAssetRecoverySite","StrategyScenarioPartitionRtoAssetLine","send","VTabItem","StrategyScenarioPartitionRto","val1","VTab","VTabs","VTabsItems","VTabsSlider","applicationTypes","ExternalPortal","CustomBuild","PurchasedAsIs","PurchasedWithModifications","isHorizontalService","isSrbCritical","uploadCsvFile","showImportDialog","exportData","submit","importSelectedFile","hideLanguages","availableLanguages","importLanguage","hideClearExisting","importIgnoreDuplicates","hideIgnoreFirstLine","importIgnoreFirstLine","hideDelimiter","importDelimiter","hideImportFileFormat","importFileFormat","showIgnoreDuplicates","VFileInput","PdFileImportDialog","importType","importTitle","importFormat","PdColumnTranslation","borderRadius","borderWidth","timelines","timelinesTooltips","rtoMaoLabels","rtoMaoColors","axisLabel","rotate","riskLevelsData","riskTreatmentData","riskImplementationData","barOptions","styling","canvas","refreshGraph","myChart","handleResize","echarts","setOption","PdEcharts","titlePosition","barStyle","backgroundColors","yAxis","xAxis","titleFontSize","downloadable","showBackground","showDefaultTooltip","zoomX","zoomY","enableChartSwitcher","textStyle","fontSize","toolbox","feature","magicType","saveAsImage","dataZoom","getZoom","series","backgroundStyle","itemStyle","ele","formatter","labelLine","tooltipContent","extraCssText","enterable","confine","xZoom","xAxisIndex","filterMode","yZoom","yAxisIndex","pieOptions","showEmptyCircle","radius","legendPosition","doughnut","pieStyle","innerDoughnutWidth","position","PdEchartPie","PdEchartBar","statusDatasource","rtoMaoDatasource","riskDatasource","rtoMaoData","maoRtoValues","maoRtoTooltips","riskData","DeploymentListLine","currentTab","popupTitle","popupVisibility","approveMessage","goBack","deploymentMessage","showMessage","BiaApplications","BiaAssets","BiaAssociates","BiaFinancialImpact","BiaInterdependencies","BiaOperationalImpact","BiaPartitionInfo","BiaPersonnel","BiaRcsa","BiaServices","DeploymentSurveyList","BaseDeploymentButtons","BaseDeploymentMessage","hasSurveys","partitionToClear","showClearBiaPopup","openPartition","ClearBiaPopup","biaStatus","rcsaStatus","breadcrumbs","showBiaDetails","VBreadcrumbs","VBreadcrumbsItem","showImportForm","submitFileImport","importClearExisting","tableOptions","tableActionEmmited","allPartitions","addPartition","showPartitionSelector","removePartition","EmployeePartitions","warnings","selectedAddress","selectedLocation","saveNewLocation","showLocationSelector","locationsMarkers","searchInputAutoFocus","searchResults","selectAddress","addDraggableMarker","markerCenter","behavior","volatility","draggable","ev","pointer","currentPointer","targetPosition","geoToScreen","math","Point","viewportX","viewportY","y","disable","setGeometry","screenToGeo","markerLocation","centerMarker","debounceTimer","findLocationFromAddress","geocoder","getSearchService","geocodingParameters","geocode","score","scoring","queryScore","newCenter","PdMapLocationSelector","fileInput","locationGroupsDatasource","allLocationGroups","calculateLocationMarkers","PdColumnDropDown","editingLocation","tr","UpdateLocation","newMarkers","changePartitionParent","PartitionEditor","locationsDatasource","rtosDatasource","coordinatorsDatasource","partitionToChangeParent","DownloadOrganizationStructure","toLocaleUpperCase","quickViewTypes","selectedType","minStatus","quickViewLanguages","downloadData","interdependenciesHeaders","GetQuickViewData","DownloadQuickViewData","toggleShowSettings","hideSettingsText","availableFieldsLabelText","getId","dragAreaClass","pull","pullFunction","internal","showSettingsText","colsLabelText","moveCheck","fieldClose","domProps","$$a","$$el","$$c","$$i","sortColumns","valuesLabelText","availableFunctions","function","changeFunction","rowsLabelText","noDataWarningText","isDataLoading","slotName","colField","colFieldIndex","showHeader","firstColFieldHeaderIndex","rowHeaderSize","colHeaderSize","colIndex","spanSize","sortedCols","headerSlotName","rowFooterSize","colFooterSize","rowField","rowFieldIndex","sortedRows","$scopedSlots","showFooter","footerSlotName","firstColFieldFooterIndex","HashTable","hash","calculateHash","valuesHashTable","computed","allColumns","composedSortFunction","thenBy","colFieldsReverse","reverse","rowFieldsReverse","findIndex","computeData","methods","valueIndex","colKey","rowKey","valueField","oldValue","allFunctions","dragging","ids","valueFieldsWithTitles","array","$refs","pivotTable","funcs","PdPivot","level","types","entityLanguages","reloadData","getLevel","Interdependencies","setInterdependencies","toUpperCase","VDataTable","importData","updateBusinessFromDeployments","UcmdbFilesApi","UploadFile","UploadUcmdb","UploadBusinessOwners","DownloadApplicationsCsv","SystemEdit","fi","rtoApplicationScalesDatasource","rpoScalesDatasource","isActive","disasterRecoveryTest","uploadApi","_listener","UpdateBusinessOwnersFromDeployments","DownloadApplications","EmailTemplateType","editingTemplateName","editingTemplate","textCommands","getMarkAttrs","bold","mdiFormatBold","italic","mdiFormatItalic","underline","mdiFormatUnderline","strike","mdiFormatStrikethrough","showLinkMenu","mdiLinkVariant","linkMenuIsActive","linkUrl","setLinkUrl","link","mdiCodeString","commandsMenuIsActive","mdiCodeJson","addTextCommand","paragraph","mdiFormatPilcrow","heading","mdiFormatHeader1","mdiFormatHeader2","mdiFormatHeader3","bullet_list","mdiFormatListBulleted","ordered_list","mdiFormatListNumbered","blockquote","mdiCommentQuoteOutline","horizontal_rule","mdiFlipVertical","undo","mdiUndo","redo","mdiRedo","createTable","rowsCount","colsCount","withHeaderRow","mdiTable","deleteTable","mdiTableRemove","addColumnBefore","mdiTableColumnPlusBefore","addColumnAfter","mdiTableColumnPlusAfter","deleteColumn","mdiTableColumnRemove","addRowBefore","mdiTableRowPlusBefore","addRowAfter","mdiTableRowPlusAfter","deleteRow","mdiTableRowRemove","toggleCellMerge","mdiTableMergeCells","EditorMenuBar","EditorMenuBubble","EditorContent","customCommands","linkInput","hideLinkMenu","extensions","openOnClick","onUpdate","getHTML","textCommand","transaction","insertText","dispatch","setOptions","PdRichTextEditor","EmailTemplates","selectedTemplate","showTemplateDetails","saved","subject","incident","notification","refreshNotifications","showNotificationDialog","showResolveDialog","resolveStatuses","incidentResolution","resolutionEvaluations","cancelResolution","resolveIncident","mdiFloppy","mdiTrashCanOutline","closeIncident","newNotification","mdiMessageAlertOutline","resolveIncidentMessage","mdiDoorClosedLock","resolutionStatuses","sectors","prioritizationScales","writeEnabled","refreshNotificationsList","viewNotification","incidentId","sectorId","task","taskId","resolution","GetIncident","CanUserCreateIncident","SaveIncident","UploadIncidentFile","GetIncidentFiles","DownloadIncidentFile","GetIncidentNotifications","SendNotification","GetIncidentTasks","CreateIncidentTasks","UpdateIncidentTasks","DeleteIncidentTasks","ResolveIncident","rpoValue","PdTranslatableReference","GetApplicationIncidentStats","AffectedApplicationLine","VLabel","locationSelector","itemSelectorHeaders","addLocation","removeLocation","locationTemplate","maoValue","mdiHumanMaleFemale","personnelValue","GetLocationIncidentStats","AffectedLocationLine","GetPartitionIncidentStats","AffectedPartitionLine","typeSelector","excludedTypes","addType","removeType","mdiCashRemove","typeId","AffectedTypeLine","incidentType","sectorSelector","excludedSectors","addSector","sector","removeSector","mdiAccountPlus","owner","removeSelectedUser","mdiAccountMinus","owners","AffectedSectorLine","incidentSector","sectorsDatasource","addSectorTask","updateTask","cancelTask","deleteTask","changeAssignedUser","showTaskEditor","admin","cancelEditing","saveTask","editTask","removeTask","mdiTrashCan","statusId","userComments","ResolutionStatuses","statusesItems","UpdateIncidentTask","DeleteIncidentTask","IncidentTaskLine","Sectors","addFile","downloadFile","image","removeFile","DonwloadIncidentFile","$forceUpdate","createdBy","createdAtTemplate","createdAt","notifications","showPanel","addNotificationPartitions","locationSelectorHeaders","addNotificationLocations","emailTemplates","emailTemplatesHeaders","selectedEmailTemplate","addEmailTemplate","showEmailTemplatesDialog","emailText","parseEmailText","partitionTemplate","notificationTextCommands","notificationCustomCommands","emailNotificationCustomCommand","sendNotification","_selectedPartitions","_selectedLocations","notificationTypes","getReplacementContent","replaceAll","final","emails","bodyChanges","incidentDate","PrioritizationScales","resolutionStatusId","Types","financialImpact","trans","per","analysis","par","matchAll","tags","newBody","clear","AffectedSectors","AffectedTypes","AffectedLocations","AffectedPartitions","AffectedApplications","IncidentTasks","IncidentFiles","IncidentNotificationDialog","IncidentNotifications","completed","operationalImpacts","prioritizations","evaluations","ResolutionEvaluations","resolutionDate","showAllStatuses","currentStatus","stat","evaluationsItems","prioritizationItems","Email","teamsGroup","not","PdColumnNumber","PdColumnColor","userHeaders","details","newManager","detailsDataSource","editingParent","showEditingDialog","detailsHeaders","detailsActions","refreshToken","subTitle","locationsHeaders","excludedLocations","addLocations","showLocationsSelector","excludedRecoverySites","showRecoverySitesSelector","showClearPartitionsWarning","showClearAllocationsDialog","usedAssets","automaticallyAllocateResources","showAutomaticStrategyScenarioAllocationsDialog","_strategyId","_scenarioId","partitionAllocation","automaticallyAllocatePartitionResources","showAutomaticStrategyScenarioPartitionAllocationsDialog","showLocationsOnMap","showClearPartitionsWarningMessage","clearPartitionsAllocations","refreshFromBia","showRecoveryStrategyCost","removeRecoverySite","automaticPartitionAllocations","clearPartitionAllocations","tab","calculateRecoveryStrategyCost","exportCsv","borderRight","needToBuy","formatNumber","cost","rowCost","site","colSums","totalCost","activeRto","tableData","colSum","ex","difference","calculateMissingAssetCost","assetToEdit","recoveryId","rowSum","price","pricePerPiece","currentLanguage","Intl","NumberFormat","currency","dataToShow","fixWidth","worksheet","utils","sheet_to_json","colLengths","wch","tableXlsx","table_to_sheet","range","decode_range","maxRow","maxCol","decodedCell","decode_cell","border","rgb","bottom","alignment","horizontal","fill","fgColor","book_new","book_append_sheet","writeFile","compression","StrategyScenarioPartitionDetailed","StrategyScenarioAllocationsDialog","StrategyScenarioPartitionAllocationsDialog","StrategyScenarioMapDialog","StrategyScenarioCostDialog","excludedOnLocation","clearPartitions","distinctAssets","SimpleRtoScales","Scenarios","deleteTest","testNameErrors","testScenariosItems","editableTest","testScenarioErrors","testDateErrors","currentDate","strategyScenariosItems","testStrategyScenarioErrors","selectedStrategyScenarioId","rtoItems","testTargetRtoErrors","selectedTargetRtoId","partitionsList","editPartition","clearPartitionList","resetPartitionList","detailsDisabled","assetsList","clearAssetList","resetAssetList","applicationsList","clearApplicationList","resetApplicationList","observers","clearObserversList","addObserver","removeObserver","technicians","clearTechniciansList","addTechnician","updateTechnician","removeTechnician","availableAssets","assetSelectorVisibility","resetDisabled","resetAssetsList","mdiPlaylistCheck","mdiPlaylistRemove","testAssets","sortAssets","VDataTableLanguageTemplate","itemId","VDataTableDatasourceItem","sortBy","sortDesc","leftAsset","rightAsset","leftText","rightText","availableApplications","applicationSelectorVisibility","resetApplicationsList","testApplications","sortApplications","leftApplication","rightApplication","editingPartition","newPartition","availablePartitions","saveEditingChanges","sortPartitions","editPartitionEvent","coordinators","available","partitionErrors","changePartition","coordinatorsDisabled","addCoordinator","coordinator","removeCoordinator","part","BcpFunctionalTestAdminPartitionEditor","BcpFunctionalTestAdminPartitionCoordinators","VDataTablePartitionItem","strategyScenariosDatasource","StrategyScenarios","partitionsDatasource","updateAvailablePartitions","showPartitionEditor","strategyScenarioId","leftPartition","rightPartition","BcpFunctionalTestStatus","BcpFunctionalTestUserAccessRights","BcpFunctionalTestResult","callTreeUserId","partitionRecoverySiteId","recoverySiteUserId","testPartitionId","userAnswer","recoverySiteAssetId","recoverySiteApplicationId","detailed","GetTest","GetSimpleTest","GetStrategyScenarioPartitions","CreateTest","SaveChanges","DeleteTest","GoForPlanning","Planning","GoForTesting","GoForFinalizing","Finalizing","GoForFinished","Abort","Created","GetTestForPlanning","GetTestForTesting","GetTestForFinalizing","GetTestForFinished","AddCallTreeUser","RemoveCallTreeUser","AddRecoverySiteUser","RemoveRecoverySiteUser","UpdateCallTreeAnswer","UpdateRecoverySiteUserAnswer","UpdateRecoverySiteUserAssetAnswer","UpdateRecoverySiteUserApplicationAnswer","UpdatePartitionResults","UpdateTestResults","GoBackToTesting","UpdatePartitionTargets","DownloadTestReport","usersDatasource","userSelectorVisibility","clearObserverList","testObservers","sortObservers","observer","technicianEditorVisibility","nameErrors","editingTechnician","emailErrors","phoneErrors","clearTechnicianList","testTechnicians","editTechnicianEvent","editTechnician","phone","technician","BcpFunctionalTestAdminAssetsView","BcpFunctionalTestAdminApplicationsView","BcpFunctionalTestAdminPartitionsView","BcpFunctionalTestAdminObservers","BcpFunctionalTestAdminTechnicians","targetRtoId","strategyMap","newTest","newDate","setDate","getDate","schedule","assumptions","testCallTree","changeStrategyScenario","addPartitions","GetPartitionScenarios","newPartitions","currentMap","newMap","newList","testScenarios","scenarios","scen","include","SaveTestChanges","openTestAdminView","Tests","AbortTest","openTest","bcpTest","bcpTestDetails","showNextPhaseButton","nextPhaseText","goToNextPhase","goToPreviousPhase","previousPhaseText","partitionTargetChanged","disabledButtons","targetChanged","targetResponsePlanActivation","targetRelocation","targetResumeActivities","callTreeUsers","addCallTreeUser","removeCallTreeUser","addRecoverySiteUser","removeRecoverySiteUser","VSheet","BcpFunctionalTestUserPlanningPartitionCallTree","BcpFunctionalTestUserPlanningPartitionRecoverySite","testStatus","addUserTo","addUserToRecoverySite","relocationTarget","responsePlanActivationTarget","resumeActivitiesTarget","testAssetsVisibility","testTargetsVisibility","partitionAccessRights","Admin","BcpFunctionalTestUserPlanningPartition","BcpFunctionalTestUserPlanningView","updateNextPhaseButton","showPrevPhaseButton","moveToTestingPhase","moveToFinalizationPhase","moveToFinishedPhase","testPartition","testResult","callTreeResult","assetsResult","applicationsResult","reload","accessRights","Observer","showExportButton","routes","targetRto","calltree","callTree","ct","userAnswers","ua","BcpFunctionalTestPartitionCallTreeAnswer","testResultsChanged","resetTestResults","results","testErrors","testComments","callTreeErrors","callTreeComments","assetsErrors","assetsComments","applicationsErrors","applicationsComments","filterValues","responsePlanActivationResult","relocationResult","resumeActivitiesResult","_m","personChanged","availableAnswers","answeredBy","foundChanged","tempPerson","commentsChanged","NotFound","Found","deep","BcpFunctionalTestUserTestPartitionCallTreeLine","callTreeAccessRights","Editor","userAnswerChanged","tempUser","BcpFunctionalTestApplicationAnswer","BcpFunctionalTestUserTestPartitionRecoverySiteGeneralLine","relocationTime","applicationName","tempAnswer","NotWorking","Partial","BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLineFound","BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLine","BcpFunctionalTestUserTestPartitionRecoverySiteAssetLineAnswer","BcpFunctionalTestUserTestPartitionRecoverySiteAssetLine","BcpFunctionalTestUserTestPartitionRecoverySiteGeneral","BcpFunctionalTestUserTestPartitionRecoverySiteAssets","BcpFunctionalTestUserTestPartitionRecoverySiteApplications","BcpFunctionalTestUserTestPartitionCallTree","BcpFunctionalTestUserTestPartitionRecoverySite","showTestResults","Fail","Success","showResultsSave","relocation","responsePlanActivation","resumeActivities","BcpFunctionalTestUserTestPartition","currentPartitions","filterPartitions","partitionResultsChanged","DisasterRecoveryTestStatus","availableApplicationHeaders","selectedApplication","selectApplication","availableCoordinators","availableCoordinatorHeaders","selectedCoordinator","selectCoordinator","showCoordinatorSelector","editingItemChanged","startMinDate","startMaxDate","endMinDate","endMaxDate","coordinatorsHeaders","editingItemCoordinators","applicationHeaders","editingItemSystems","GetDisasterRecoveryTestStatusTranslation","Confirmation","Scheduling","Finalization","appId","timeZoneId","GoForConfirmation","SnapshotTimes","GoForScheduling","GoForFinalization","FinishTest","GetConfirmationDetails","GetSchedulingDetails","GetTestingDetails","GetFinalizationDetails","GetFinishedDetails","UpdateTestApplication","UpdateUserConfirmation","UpdateItsdTestAnswer","UpdateTestUserTestAnswer","UpdateAppTestResult","AddTestUser","RemoveTestUser","ChangeAppSwitchToPrimary","ChangeAppSwitchToDisaster","UploadTimeZones","UploadTestTimes","GenerateReport","startDatePicker","endDatePicker","setHours","systems","DisasterRecoveryTests","systemsDatasource","VInput","snackbarText","filterSelection","searchValue","mdiDatabaseExport","mdiExpandAll","mdiCollapseAll","snapshotTimes","mdiSourceBranch","showPhase","moveToScheduling","mdiCalendarMultiselect","ucmdbName","mdiInformation","changeState","closed","mdiChevronUp","updateApp","applicationHasChanges","businessOwners","updateUserConfirmation","userConfirmationHasChanges","itsdOfficers","serviceOwners","applicationOwners","goValue","commentErrors","commentsValue","saveDisabled","originalGo","originalComment","goForTest","mdiCircleMedium","TestingConfirmationLine","DisasterRecoveryTestDetailsDtoType","DisasterRecoveryTestResult","currentTest","toShow","switchOpen","switchClosed","validStatus","phase","valid","paginate","page","updateSearchValue","filtered","otherPhases","getConfirmationSheet","ucmdbId","confirmationComments","aoa_to_sheet","getSchedulingSheet","timeZoneMapping","timeZonesDatasource","TimeZones","timezones","disaster","disasterId","switchToDisasterTimeZoneId","primaryId","switchToPrimaryTimeZoneId","runningRtoValue","targetRtoValue","runningRpoValue","targetRpoValue","testUsers","getTestingSheet","Pass","Unanswered","getFinalizationSheet","targetRpo","testRto","testRpo","exportXlsx","wb","Props","Title","Subject","Author","CreatedDate","mdiDatabaseImport","TestingUserGroup","testing","go","unsavedApplications","unsavedUserConfirmations","changes","nogo","VPagination","finishTest","runningRto","RpoValue","runningRpo","$i18n","testResults","$slots","customClass","saveItsdChanges","needItsd","saveTestUserChanges","selections","originalTestResult","TestingApplicationTestResult","DisasterTestApplicationLine","DisasterTestTestingApplicationDetails","DisasterTestFinalizationLine","itsdStatus","answered","usersStatus","testedGraph","resultsGraph","failsGraph","targetsGraph","exportDocument","draw","DisasterTestFinishedLine","PdDoughnut","PdBarChart","encodedUri","encodeURI","intersect","stacked","showTimeZones","selectedTestUser","selectTestUser","moveToTestPhase","onMenu","onTooltip","assign","zone","changeAppSwitchToDisaster","changeAppSwitchToPrimary","mdiDot","timeZoneHeaders","timeZonesEditChanged","timeZonesOkDisabled","PdColumnDateTime","DisasterRecoveryTestTimeZoneEditor","busyUsers","addingUserToApp","itsdColor","mdiCircle","itsdText","recalculate","TestingApplicationHeader","disasterRecoveryTestDetails","scheduling","showTaxonomyUsers","editingTaxonomy","editingApplication","saveTaxonomyChanges","cancelTaxonomyChanges","addTaxonomy","openTaxonomy","removeTaxonomy","closeEditor","tableUuid","taxonomy","taxonomyId","GetApplicationsForTaxonomy","CreateApplicationTaxonomy","UpdateApplicationTaxonomy","RemoveApplicationTaxonomy","ExportApplicationsTaxonomy","GetLocationsForTaxonomy","SaveLocationTaxonomy","ExportLocationsTaxonomy","GetAssociatesForTaxonomy","ExportAssociatesTaxonomy","GetPersonnelForTaxonomy","ExportPersonnelTaxonomy","ExportSrbReport","servicesDatasource","currentServices","selectSevice","reference","addService","TaxonomyEditor","contractTypes","srbServiceTypes","SrbServiceTypes","assessed","expandRequiredServices","addNewTaxonomy","taxonomies","degreeOfSubstitutabilityText","isCriticalText","criticalityText","criticalityId","ApplicationTaxonomyLine","servicesRequireAssessment","remainingServices","partitionsServices","item1","item2","degreeOfDependencyText","substituteTypeText","degreeOfComparabilityText","timeToEnableSubstitutabilityText","costOfAlternativeText","AssociateTaxonomyLine","dos","TaxonomyUsersEditor","SrbApplicationLine","ApplicationTaxonomyEditor","showUsersButton","SaveApplicationTaxonomy","openAssociates","SrbAssociateLine","ContractType","tableButtons","tableActionsEvent","ContractEditor","showInactive","Other","It","RealEstate","contractType","as","openLocations","editLine","lineColor","TaxonomyLine","openPersonnel","exportReport","critical","coreBusinessLine","otherRelevant","isOtherRelevant","isCoreBusinessLine","prefixRoutes","prefix","PartitionsView","SystemsView","EmployeesView","AssociatesView","ContractsView","CriticalitiesView","LocationsView","ServicesView","BiaPartitionsTreeView","BiaPartitionView","redirect","PartitionSurveyList","BiaDeploymentView","DisasterRecoveryAdminView","DisasterRecoveryTestUserView","DisasterRecoveryTestConfirmationView","DisasterRecoveryTestSchedulingView","DisasterRecoveryTestTestingView","DisasterRecoveryTestFinalizationView","DisasterRecoveryTestFinishedView","BcpFunctionalScenarioView","BcpFunctionalTestsView","BcpFunctionalTestAdminView","BcpFunctionalTestUserView","BcpFunctionalTestUserTestingView","BcpFunctionalTestUserFinalizingView","BcpFunctionalTestUserFinishedView","IncidentViewer","Sector","Type","StrategiesView","StrategyScenarioView","SrbServiceTypesView","saveNewCategory","newCategoryDialogVisibility","showNewCategoryDialog","returnToList","categories","updateCategory","removeCategory","updateStatistics","graphOptions","listId","subCategory","GetListDetails","AddCategoryToList","AddSubCategory","RemoveCategory","UpdateCategory","AddControl","UpdateControl","DeleteControl","ImportCategories","ImportControls","subCategories","saveEditCategory","editCategoryDialogVisibility","getRowClass","showDetails","addSubCategory","mdiContentDuplicate","addControl","mdiClipboardPlusOutline","getCategoryClass","implementedValueRounded","implementedTotalRounded","implementedPercent","mdiChevronDown","removeSubCategory","updateSubCategory","removeControl","saveControl","cancelNewControl","cat","controlErrors","titleErrors","weightErrors","targetDate","implementationUser","implementationActions","controlWeight","implementedPercentage","saveEditControl","controlTitle","controlDescription","targetImplementationDate","updateImplementedAnswer","implementedComments","implementationPercentageItems","showImplementationPercentageSelect","maxImplementationDate","implementedDate","NewCategoryDialog","EditControlDialog","editControlDialogVisibility","EditCategoryDialog","CategoryControl","emptyCategory","implementedValue","implementedTotal","updateParentStatistics","prevTotal","SaveControl","con","generateHex","g","R","G","B","mix","blender","color1","color2","red1","green1","blue1","red2","green2","blue2","red","green","blue","ListCategory","loadList","subs","calculations","nodes","links","listName","currentNode","calculateStatistics","trigger","triggerOn","nodeAlign","nodeGap","layoutIterations","lineStyle","curveness","currentName","recursiveGetExportData","openList","Lists","implementationPercent","indicators","seriesData","radar","shape","indicator","lists","ComplianceListView","ComplianceListDetailsView","oldPassword","checkPassworkRequirements","upper","lower","digit","symbol","changePasswordEnabled","changePassword","foundUpper","foundLower","foundSymbol","foundDigit","specialChars","letter","isInteger","documentsFilter","selectedFilter","availableFiles","menuDelay","clickDelay","mdiDownload","partitionsTreeStyle","resizedWindow","getElementById","footer","getElementsByClassName","getBoundingClientRect","clicks","panels","statsLabels","statusGraphDatasets","prioritiesLabels","incidentPrioritizationGraphDatasets","evaluationsLabels","incidentEvaluationGraphDatasets","sectsLabels","openIncidentsGraphDatasets","openTasksGraphDatasets","prioritization","tableActionEvent","viewIncident","updatedIncidents","exportMenu","datepickerMenu","addNewIncident","startingDate","datePickers","endingDate","priors","evals","statsMap","priorsMap","evalsMap","prior","resolutionEvaluationId","resDate","resolutionStatusColors","prioritizationStatusColors","resolutionEvaluationColors","chartsLoaded","sects","priorities","statsDictionary","sectsDictionary","prioritiesDictionary","evaluationsDictionary","incidentStats","incidentStatsTooltips","openIncidentsPerSector","openIncidentsPerSectorTooltips","openTasksPerSector","openTasksPerSectorTooltips","incidentPrioritization","incidentPrioritizationTooltips","incidentEvaluations","incidentEvaluationsTooltips","AnswerUpdateControlComponent","checkTraCategory","sessionCategory","setRoute","AnswerGroup","basePath","returnToAssessment","controlCategories","excludedCategories","addCategoryToControl","showCategoriesSelector","addNewControl","searchField","openPanels","showControlCategories","showCategorySelector","saveNewControl","templateAnswers","saveControlChanges","editChange","deleteControl","filteredData","pagedData","opacity","disableAll","toggleState","controlText","newControlId","newControlText","newControlActions","controlActions","tableHeaders","answersDatasource","addAnswersFromTemplate","traCategoryId","getParams","traCategory","GetAssessment","GetSimpleAssessment","Create","Delete","GetAssessmentQuestionnaireUsers","AddAssessmentQuestionnaireUser","RemoveAssessmentQuestionnaireUser","ChangeAllowFinishingForUser","MoveUserUp","MoveUserDown","DeployQuestionnaire","AbortQuestionnaire","DeployTreatment","AbortTreatment","GetUserAssessments","GetAssessmentQuestionnaire","UpdateQuestionnaireAnswer","ApproveQuestionnaire","RejectQuestionnaire","ApproveAssessmentQuestionnaireReview","DownloadAssessmentQuestionnaireReview","GetAssessmentTreatment","ApproveAssessmentTreatmentReview","ApproveTreatment","RejectTreatment","UpdateTreatmentAnswer","DownloadAssessmentsRisks","DownloadAssessmentQuestionnaire","AddAnswersFromAnswerGroup","GetMaxValues","ImportQuestionnaire","methodology","GetRiskMethodology","UpdateRiskMethodology","GetChartData","ImportRisks","ImportRiskControls","ControlCategories","currentControlState","treatmentActions","hasTemplateAnswers","newControl","VSkeletonLoader","pageSizeArray","_itemsPerPage","pageArray","_currentPage","mdiChevronLeft","mdiChevronRight","_pagedData","newPageSize","refreshPagination","lastPage","Control","PdPagination","allowCreation","_loading","nextId","inEdit","isArchived","lastItem","filterData","successulCallback","refreshNextId","controlToAddCategoryTo","ag","Controls","risksUrl","controlsUrl","maxLikelihood","maxImpact","categoriesDatasource","addRiskCategories","showRiskCategorySelector","visibleData","riskCategorySelectorItems","updateData","categ","getRiskControlEditorTitle","availableControls","selectedControl","selectControl","cancelSelection","ControlSelector","baseUrl","ec","PdCurrentLanguageField","RiskCategoriesSelector","RiskControls","showRiskCategories","controlsDatasource","GetMaxLikelihoodImpactValues","maxValues","AssessmentStatus","AssessmentQuestionnaireUserType","AssessmentQuestionnaireStatus","AssessmentQuestionnaireUserStatus","RiskControlDropType","exportHeaders","exportSelectedAssessments","showExportDialog","openRiskAssessment","addNewAssessment","AssessmentStatusTemplate","AssessmentFinished","TreatmentFinished","AssessmentsSelector","ar","partitionSelectorHeaders","selectLocation","editAssessment","goToAssessmentControls","goToAssessmentRisks","review","goToAssessmentQuestionnairesReview","goToAssessmentTreatmentsReview","deleteAssessment","assetsTypes","assetType","riskScalesItems","loadAssessment","excludeQuestionnaires","addQuestionnaire","aq","removeQuestionnaire","openQuestionnaire","questionnaireDataEntryUsers","questionnairesDataEntryType","addQuestionnaireUser","questionnaireApprovalPathUsers","questionnairesApprovalPathType","openTreatment","treatmentDataEntryUsers","treatmentDataEntryType","treatmentsDataEntryType","treatmentApprovalPathUsers","treatmentApprovalPathType","changeAllowFinishing","allowFinishing","QuestionnaireDataEntry","TreatmentDataEntry","pending","QuestionnaireFinished","QuestionnaireApprovalPath","TreatmentApprovalPath","AssessmentQuestionnaireUserLine","edited","AssessmentQuestionnaireUsers","PdMenuListItem","needsTreatment","addUserType","showQuestionnaireOpenButton","showQuestionnaireDeployButton","showQuestionnaireAbortButton","showTreatmentOpenButton","showTreatmentDeployButton","showTreatmentAbortButton","showTreatmentQuestionnaires","AssessmentQuestionnaireLine","questionnaireMessage","treatmentMessage","ques","AssetType","NewAssessment","Partition","Location","AssessmentQuestionnaires","riskScalesDatasource","newAssessment","newType","showEditDeleteButton","showAssessmentReviewButton","showTreatmentReviewButton","showSaveCancelButtons","showReturnButton","showPartitionField","showLocationField","Save","deployAssessment","openAssessment","abortAssessment","GetMethodology","riskMethodology","AssessmentQuestionnaireStatusTemplate","showMessageEditor","saveApproveReject","exportQuestionnaire","changeAnswer","possibleAnswers","changeValue","AssessmentQuestionnaireUserControlLine","allowApprovalReject","allowApproveReject","showApprove","showReject","fileDto","assessmentName","questionnaireName","approveReview","downloadReview","risksDatasource","riskColor","riskName","sortRisks","AssessmentQuestionnaireReviewBelowAppetiteColumn","AssessmentQuestionnaireReviewRiskColumn","AssessmentQuestionnaireReviewRiskControls","showApproveButton","AssessmentTreatmentUserControlLine","AssessmentTreatmentReviewRiskControls","option","gaugeData","offsetCenter","valueAnimation","subtext","startAngle","endAngle","overlap","roundCap","clip","axisLine","splitLine","axisTick","axisPointer","containLabel","boundaryGap","StatisticsLocationStatuses","StatisticsPartitionStatuses","StatisticsAssessmentsRiskLevel","StatisticsRisksPerScale","QuestionnaireControls","importingFor","ImportQuestionnaireControls","detailedName","showRisksImportForm","showRiskControlsImportForm","showAdvancedMode","riskMethodologyHasChanges","updateChart","advancedModeHasChanges","tableEditingChanged","chartUuid","_showAdvancedMode","riskMethodologyOriginal","riskCalculationEquation","minRiskValue","maxRiskValue","interpolateRiskValues","dropType","Absolute","ori","cur","currentMin","currentMax","UpdateMethodology","chartResolution","chartOptions","splitArea","visualMap","calculable","orient","pieces","emphasis","shadowBlur","shadowColor","updateRiskChart","GetChart","RiskMethodology","RiskMethodologyChart","methodologyLoading","selectedCategory","selectCategory","Inline","routeNameRedirect","BiaDeploymentsListView","AssessmentListUserView","DisasterRecoveryTestUserListView","BcpFunctionalTestUserListView","IncidentManagement","DocumentsView","LandingView","ChangePasswordView","LikelihoodScalesView","ImpactScalesView","RiskScalesView","AnswerGroupsView","TreatmentAnswersView","ControlCategoriesView","ControlsView","RiskCategoriesView","RisksView","QuestionnairesView","AssessmentsListView","TraCategoriesView","AssessmentView","AssessmentControlsView","AssessmentRisksView","AssessmentQuestionnaireUserView","AssessmentQuestionnaireReviewView","AssessmentTreatmentUserView","AssessmentTreatmentReviewView","InitTraCategory","LoginView","LoginOAuthView","ForgotPasswordView","ResetPasswordView","EntitiesView","PageNotFoundView","addRoutes","beforeEach","InitEntity","userCanAccessRoute","afterEach","AddNavigation","productionTip","render","App","$mount","webpackAsyncContext","dataEntryBinding","dataEntryAddUser","dataEntryRemoveUser","approvalPathAddUser","approvalPathMoveUserUp","approvalPathMoveUserDown","approvalPathRemoveUser","itemVal","prevVal","TreatmentPrioritizationScaleSelector","firstbound","selectedKeyNames","persistSelection","sessionStorage","setItem","getItem"],"mappings":"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","file":"js/app.b6185d05.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([1,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import FormBase from '../FormBase.js';\nimport { selectedLanguage } from '../../main.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\n\nexport default class IsraProfileQuestions extends FormBase {\n constructor() {\n super('Profile Questions', 'general');\n this.api = 'isra/ProfileQuestions';\n\n this.preventBinding = false;\n\n this.columns = [\n {\n title: 'Question',\n binding: 'questionId',\n sort: 'asc',\n editable: false,\n template: (dataItem) => {\n const item = DataSources.IsraQuestions.get(dataItem.questionId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].question);\n } else {\n return '';\n }\n },\n editor: (container, options) => {\n this.questionGroupSelector(container, options);\n },\n },\n ];\n\n this.answerColumns = [\n {\n title: 'Answer',\n binding: 'answerId',\n editable: false,\n sort: 'asc',\n template: (dataItem) => {\n return Helpers.sanitizeHTML(DataSources.IsraAnswers.get(dataItem.answerId).translations[selectedLanguage].answer);\n },\n },\n {\n title: 'Value',\n binding: 'value',\n type: 'number',\n required: false,\n },\n ];\n }\n\n setCustomDatasourceProperties(source) {\n source.change = (e) => {\n if (e.field && e.field.indexOf('answers') >= 0) {\n this.preventBinding = true;\n }\n };\n }\n\n setCustomGridProperties(grid) {\n grid.editable = 'inline';\n\n grid.toolbar = [\n { template: 'Add' },\n ];\n\n let firstDataBound = true;\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n if (firstDataBound) {\n firstDataBound = false;\n $('#ProfileQuestions-AddQuestion')\n .click((e) => this.addQuestion(e));\n }\n };\n\n // Details\n grid.detailTemplate = 'Possible Answers:';\n\n grid.detailInit = (e) => {\n const answersGrid = this.createGrid({\n api: 'isra/ProfileQuestionAnswers/' + e.data.id,\n columns: this.answerColumns,\n selector: '[name=\"possibleAnswers\"]',\n menu: this.menu,\n });\n\n answersGrid.columns[answersGrid.columns.length - 1] = { command: ['edit'] };\n\n delete answersGrid.toolbar;\n\n $('
')\n .appendTo(e.detailCell)\n .kendoGrid(answersGrid);\n };\n }\n\n require() {\n return [\n DataSources.IsraQuestions,\n DataSources.IsraAnswers,\n ];\n }\n\n addQuestion() {\n const grid = $(this.grid)\n .data('kendoGrid');\n const data = grid.dataSource;\n\n const content = '
';\n Helpers.showPopUp('Select Question', content, [\n {\n text: 'Ok',\n primary: true,\n action: function () {\n const di = $('#questionsSelector')\n .data('kendoComboBox')\n .dataItem();\n if (di != null) {\n data.add({\n questionId: di.id,\n });\n grid.saveChanges();\n return true;\n }\n return false;\n },\n },\n {\n text: 'Cancel',\n action: function () {\n return true;\n },\n }]);\n\n const filters = [];\n for (let i = 0; i < data.data().length; ++i) {\n filters.push({\n field: 'id',\n operator: 'neq',\n value: data.data()[i].questionId,\n });\n }\n\n $('#questionsSelector')\n .width(500)\n .kendoComboBox({\n // template: template,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].question',\n dataValueField: 'id',\n valuePrimitive: true,\n placeholder: 'Search...',\n index: 0,\n dataSource: {\n data: DataSources.IsraQuestions.data(),\n filter: {\n logic: 'and',\n filters: filters,\n },\n sort: [\n {\n field: 'translations[\"' + selectedLanguage + '\"].questions',\n dir: 'asc',\n },\n ],\n },\n filter: 'contains',\n suggest: true,\n });\n }\n}\n","import FormBase from '../../FormBase.js';\nimport { selectedLanguage } from '../../../main.js';\n\nexport default class CostUnits extends FormBase {\n constructor() {\n super('Cost Units', 'general');\n this.api = 'bc/CostUnits';\n\n this.confirmation = 'translations.' + selectedLanguage + '.description';\n\n this.columns = [\n {\n title: 'Description',\n binding: 'description',\n required: true,\n translatable: true,\n sort: 'asc',\n },\n {\n title: 'Unit Of Measurement',\n binding: 'unitOfMeasurement',\n required: false,\n translatable: true,\n },\n ];\n }\n}\n","import FormBase from '../../FormBase.js';\nimport DataSources from '../../../Core/datasources.js';\nimport { selectedLanguage } from '../../../main.js';\nimport { Helpers } from '../../../Core/Helpers';\n\nexport default class RiskImpactAreas extends FormBase {\n constructor() {\n super('Risk Impact Areas', 'general');\n this.api = 'bc/RiskImpactAreas';\n\n this.columns = [\n {\n title: 'Impact',\n binding: 'impact',\n required: true,\n sort: 'asc',\n translatable: true,\n defaultValue: 'New Impact Area (e.g. Financial, Legal etc)',\n },\n {\n title: 'Explanation',\n binding: 'explanation',\n translatable: true,\n defaultValue: '',\n },\n ];\n\n this.impactAreaScalesColumns = [\n {\n title: ' ',\n fieldName: 'riskImpactScaleColor',\n width: 8,\n editable: false,\n },\n {\n title: 'Impact Scale',\n binding: 'riskImpactScaleId',\n template: (dataItem) => {\n const item = DataSources.RiskImpactScales.get(dataItem.riskImpactScaleId);\n\n return String.format(\n '{1} - {0}',\n Helpers.sanitizeHTML(item.translations[selectedLanguage].name), item.value,\n );\n },\n width: 150,\n editable: false,\n // sort: 'asc',\n datasource: DataSources.RiskImpactScales,\n sortField: 'value',\n },\n {\n title: 'Explanation',\n binding: 'explanation',\n translatable: true,\n },\n ];\n }\n\n require() {\n return [DataSources.RiskImpactScales];\n }\n\n setCustomGridProperties(grid) {\n // grid.detailTemplate = \"Impact Scales\";\n\n grid.detailInit = (e) => {\n const impactScalesGrid = this.createGrid({\n api: 'bc/RiskImpactAreaScales/' + e.data.id,\n columns: this.impactAreaScalesColumns,\n selector: '[name=impactAreaScales]',\n menu: {\n edit: this.menu.edit,\n },\n });\n\n delete impactScalesGrid.toolbar;\n\n impactScalesGrid.columns[impactScalesGrid.columns.length - 1].command = ['edit'];\n\n const databound = impactScalesGrid.dataBound;\n\n impactScalesGrid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n const data = impactScalesGrid.dataSource.data();\n\n $.each(data, (i, row) => {\n const scale = DataSources.RiskImpactScales.get(row.riskImpactScaleId);\n\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(1)')\n .css('background-color', scale.color);\n });\n };\n\n $('
')\n .appendTo(e.detailCell)\n .kendoGrid(impactScalesGrid);\n };\n }\n}\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTreeGridEditor.vue?vue&type=style&index=0&id=5d7a3092&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTreeGridEditor.vue?vue&type=style&index=0&id=5d7a3092&scoped=true&lang=css&\"","import { PersistentStorage } from '@/core/storage';\nimport { AuthenticationModule } from '@/store';\nimport Axios, { AxiosRequestConfig } from 'axios';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst jsotp = require('jsotp');\n\nlet base = '';\nif (process != null && process.env != null && process.env.NODE_ENV === 'development') {\n base = 'http://localhost:5000';\n}\n\nAxios.defaults.baseURL = base + '/api';\nAxios.defaults.timeout = 600000;\nAxios.defaults.headers = {\n 'Content-Type': 'application/json',\n};\n\nexport class Api {\n public static SetAuthenticationHeader(token?: string) : void {\n // if (!ApplicationModule.Settings.sso) {\n if (token == null) {\n delete Axios.defaults.headers.Authorization;\n } else {\n Axios.defaults.headers.Authorization = `Bearer ${token}`;\n }\n // }\n }\n}\n\nAxios.interceptors.request.use(SendOtpKey);\n\nfunction SendOtpKey(config: AxiosRequestConfig) : AxiosRequestConfig | Promise {\n if (!AuthenticationModule.LoggedIn) {\n return Promise.resolve(config);\n }\n\n if (config.method === 'post' || config.method === 'put' || config.method === 'delete') {\n const otp = PersistentStorage.GetValue('cg_hotp');\n if (otp == null) {\n return Promise.reject();\n }\n\n let { userKey, counter } = JSON.parse(otp);\n\n const hotp = jsotp.HOTP(userKey);\n config.headers['user-key'] = hotp.at(counter++);\n\n PersistentStorage.SetValue('cg_hotp', JSON.stringify({ userKey, counter }));\n }\n\n return Promise.resolve(config);\n}\n\nexport default Axios;\n","import { PersistentStorage } from '@/core/storage';\nimport { EntityDto } from '@/dtos/EntityDto';\nimport { Languages } from '@/dtos/LanguageDto';\nimport { SimpleSettingsDto } from '@/dtos/SimpleSettingsDto';\nimport { loadLanguageAsync, SupportedLanguage } from '@/i18n';\nimport { BusyMessage } from '@/services/BusyIndicatorService';\nimport { PopupMessage } from '@/services/PopupMessageService';\nimport { SnackbarMessage } from '@/services/SnackbarMessageService';\nimport { Action, Module, Mutation, VuexModule } from 'vuex-module-decorators';\n\n@Module({\n name: 'application',\n namespaced: true,\n})\nexport default class Application extends VuexModule {\n private busy: BusyMessage[] = [];\n private popupMessages: PopupMessage[] = [];\n private snackbarMessages: SnackbarMessage[] = [];\n\n private settings: SimpleSettingsDto = {\n logo: '',\n segregationOfDuties: false,\n showModuleImage: false,\n sso: false,\n authenticationMethod: 'local',\n };\n\n private language: SupportedLanguage = SupportedLanguage.English;\n\n private companyName = '';\n private companyLogo = '';\n private companyLink = '';\n\n private entity: EntityDto | null = null;\n // private entity : EntityDto | null = {\n // id: 1,\n // languages: [\n // {\n // languageId: 1,\n // language: 'en-US',\n // },\n // ],\n // name: 'Master Plan 2020',\n // };\n\n private languages: Languages = {\n 'en-US': {\n id: 1,\n code: 'en-US',\n name: 'English (US)',\n },\n 'el-GR': {\n id: 2,\n code: 'el-GR',\n name: 'Greek (GR)',\n },\n };\n\n public get Settings(): SimpleSettingsDto {\n return this.settings;\n }\n\n public get AllLanguages(): Languages {\n return this.languages;\n }\n\n public get Language(): SupportedLanguage {\n return this.language;\n }\n\n public get CompanyName(): string {\n return this.companyName;\n }\n\n public get CompanyLogo(): string {\n return this.companyLogo;\n }\n\n public get CompanyLink(): string {\n return this.companyLink;\n }\n\n public get Entity(): EntityDto | null {\n return this.entity;\n }\n\n public get BusyMessages(): BusyMessage[] {\n return this.busy;\n }\n\n public get PopupMessages(): PopupMessage[] {\n return this.popupMessages;\n }\n\n public get SnackbarMessages(): SnackbarMessage[] {\n return this.snackbarMessages;\n }\n\n @Mutation\n private SET_SETTINGS(settings: SimpleSettingsDto) {\n this.companyLogo = settings.logo;\n this.settings.logo = settings.logo;\n this.settings.segregationOfDuties = settings.segregationOfDuties;\n this.settings.showModuleImage = settings.showModuleImage;\n this.settings.sso = settings.sso;\n this.settings.authenticationMethod = settings.authenticationMethod;\n }\n\n @Mutation\n private SET_LANGUAGE(lang: SupportedLanguage) {\n this.language = lang;\n }\n\n @Mutation\n private ADD_BUSY_MESSAGE(message: BusyMessage) {\n this.busy.push(message);\n }\n\n @Mutation\n private ADD_POPUP_MESSAGE(message: PopupMessage) {\n this.popupMessages.push(message);\n }\n\n @Mutation\n private ADD_SNACKBAR_MESSAGE(message: SnackbarMessage) {\n this.snackbarMessages.push(message);\n }\n\n @Mutation\n private REMOVE_BUSY_MESSAGE(id: number) {\n for (let i = 0; i < this.busy.length; ++i) {\n if (this.busy[i].id === id) {\n this.busy.splice(i, 1);\n return;\n }\n }\n }\n\n @Mutation\n private REMOVE_POPUP_MESSAGE(id: number) {\n for (let i = 0; i < this.popupMessages.length; ++i) {\n if (this.popupMessages[i].id === id) {\n this.popupMessages.splice(i, 1);\n return;\n }\n }\n }\n\n @Mutation\n private REMOVE_SNACKBAR_MESSAGE(id: number) {\n for (let i = 0; i < this.snackbarMessages.length; ++i) {\n if (this.snackbarMessages[i].id === id) {\n this.snackbarMessages.splice(i, 1);\n return;\n }\n }\n }\n\n @Mutation\n private SET_ENTITY(entity: EntityDto | null) {\n this.entity = entity;\n }\n\n @Action({\n rawError: true,\n })\n public SetSettings(settings: SimpleSettingsDto): void {\n this.SET_SETTINGS(settings);\n }\n\n @Action({\n rawError: true,\n })\n public SetEntity(entity: EntityDto): void {\n this.SET_ENTITY(entity);\n PersistentStorage.SetValue('entity', JSON.stringify(entity));\n }\n\n @Action({ rawError: true })\n public InitEntity(): void {\n const entity = PersistentStorage.GetValue('entity');\n if (entity != null) {\n const parsed = JSON.parse(entity);\n this.SET_ENTITY(parsed);\n }\n }\n\n @Action({ rawError: true })\n public ClearEntity(): void {\n PersistentStorage.RemoveKey('entity');\n this.SET_ENTITY(null);\n }\n\n @Action\n public SetLanguage(lang: SupportedLanguage): void {\n this.SET_LANGUAGE(lang);\n loadLanguageAsync(lang);\n }\n\n @Action\n public SetBusyMessage(message: BusyMessage): void {\n this.ADD_BUSY_MESSAGE(message);\n }\n\n @Action\n public RemoveBusyMessage(id: number): void {\n this.REMOVE_BUSY_MESSAGE(id);\n }\n\n @Action\n public SetPopupMessage(message: PopupMessage): void {\n this.ADD_POPUP_MESSAGE(message);\n }\n\n @Action\n public RemovePopupMessage(id: number): void {\n this.REMOVE_POPUP_MESSAGE(id);\n }\n\n @Action\n public SetSnackbarMessage(message: SnackbarMessage): void {\n this.ADD_SNACKBAR_MESSAGE(message);\n }\n\n @Action\n public RemoveSnackbarMessage(id: number): void {\n this.REMOVE_SNACKBAR_MESSAGE(id);\n }\n}\n","import { User, UserRole } from '@/dtos/UserDto';\nimport { Action, Module, Mutation, VuexModule } from 'vuex-module-decorators';\n\n@Module({\n name: 'authentication',\n namespaced: true,\n})\nexport default class Authentication extends VuexModule {\n private user: User | null = null;\n\n public get LoggedIn() : boolean {\n return this.user != null && new Date(this.user.tokenExpiration) > new Date();\n }\n\n public get UserInfo(): string {\n if (this.user != null) {\n return this.user.displayName;\n }\n return '';\n }\n\n public get User(): User | null {\n return this.user;\n }\n\n public get Token(): string {\n if (this.user != null) {\n return this.user.token;\n }\n return '';\n }\n\n public get Roles(): UserRole[] {\n if (this.user != null) {\n return this.user.roles;\n }\n return [];\n }\n\n @Mutation\n private SET_USER(user: User | null) {\n this.user = user;\n }\n\n @Action({ rawError: true })\n public async SetUser(user: User | null) : Promise {\n this.SET_USER(user);\n }\n}\n","import { UserTasksDto } from '@/dtos';\nimport { Action, Module, Mutation, VuexModule } from 'vuex-module-decorators';\n\n@Module({\n name: 'entity',\n namespaced: true,\n})\nexport default class Entity extends VuexModule {\n private tasks: UserTasksDto = {\n bcm: 0,\n isra: 0,\n disasterTests: 0,\n incidents: 0,\n bcpFunctionalTests: 0,\n tra: 0,\n hasApplicationsTaxonomy: false,\n hasLocationsTaxonomy: false,\n hasAssociatesTaxonomy: false,\n hasPersonnelTaxonomy: false,\n };\n\n // private entity : EntityDto | null = null;\n\n public get Tasks() : UserTasksDto {\n return this.tasks;\n }\n\n // public get Entity() : EntityDto | null {\n // return this.entity;\n // }\n\n // @Mutation\n // private SET_ENTITY(entity: EntityDto | null) {\n // this.entity = entity;\n // }\n\n @Mutation\n private SET_TASKS(tasks: UserTasksDto) {\n this.tasks = tasks;\n }\n\n // @Action({\n // rawError: true,\n // })\n // public SetEntity(entity: EntityDto): void {\n // this.SET_ENTITY(entity);\n // PersistentStorage.SetValue('entity', JSON.stringify(entity));\n // }\n\n // @Action({ rawError: true })\n // public InitEntity() : void {\n // const entity = PersistentStorage.GetValue('entity');\n // if (entity != null) {\n // const parsed = JSON.parse(entity);\n // this.SET_ENTITY(parsed);\n // }\n // }\n\n // @Action({ rawError: true })\n // public ClearEntity() : void {\n // PersistentStorage.RemoveKey('entity');\n // this.SET_ENTITY(null);\n // }\n\n @Action({ rawError: true })\n public SetTasks(tasks: UserTasksDto) : void {\n this.SET_TASKS(tasks);\n }\n}\n","import { IMenuEntry } from '@/core/navigation/interfaces';\nimport { Route } from 'vue-router';\nimport { Action, Module, Mutation, VuexModule } from 'vuex-module-decorators';\n\n@Module({\n name: 'navigation',\n namespaced: true,\n})\nexport default class Navigation extends VuexModule {\n private _menu : Array = [];\n private _navigationDrawerState = true;\n private _navigationHistory:Route[] = [];\n\n public get Menu() : Array {\n return this._menu;\n }\n\n public get KeepNavigationOpen() : boolean {\n return false;\n }\n\n public get NavigationDrawerState():boolean {\n return this._navigationDrawerState;\n }\n\n public get NavigationHistory() : Route [] {\n return this._navigationHistory;\n }\n\n @Mutation\n private SET_MENU(menu: Array) {\n this._menu = menu;\n }\n\n @Mutation\n private SET_NAVIGATION_DRAWER_STATE(state: boolean | null = null) {\n if (state == null) {\n this._navigationDrawerState = !this._navigationDrawerState;\n } else {\n this._navigationDrawerState = state;\n }\n }\n\n @Mutation\n private ADD_NAVIGATION(route: Route) {\n for (let i = 0; i < this._navigationHistory.length; ++i) {\n if (this._navigationHistory[i].name === route.name) {\n this._navigationHistory.splice(i, 1);\n break;\n }\n }\n\n if (this._navigationHistory.length === 5) {\n this._navigationHistory.splice(4);\n }\n\n this._navigationHistory.unshift(route);\n }\n\n @Mutation\n private CLEAR_NAVIGATION_HISTORY() {\n this._navigationHistory = [];\n }\n\n @Action({\n rawError: true,\n })\n public SetMenu(menu: Array): void {\n this.SET_MENU(menu);\n }\n\n @Action({\n rawError: true,\n })\n public ClearNavigationHistory(): void {\n this.CLEAR_NAVIGATION_HISTORY();\n }\n\n @Action({\n rawError: true,\n })\n public AddNavigation(route: Route):void {\n this.ADD_NAVIGATION(route);\n }\n\n @Action\n public SwitchNavigationDrawerState():void {\n this.SET_NAVIGATION_DRAWER_STATE();\n }\n\n @Action\n public SetNavigationDrawerState(state: boolean): void {\n this.SET_NAVIGATION_DRAWER_STATE(state);\n }\n}\n","import { PersistentStorage } from '@/core/storage';\nimport { TraCategoryDto } from '@/dtos/tra';\nimport { Action, Module, Mutation, VuexModule } from 'vuex-module-decorators';\n\n@Module({\n name: 'tra',\n namespaced: true,\n})\nexport default class Tra extends VuexModule {\n private category : TraCategoryDto | null = null;\n private routeNameToRedirect: string | null | undefined = null;\n\n public get CurrentCategory() : TraCategoryDto | null {\n return this.category;\n }\n\n @Mutation\n private SET_CATEGORY(category: TraCategoryDto | null) {\n this.category = category;\n }\n\n @Mutation\n private SET_ROUTE(routeName: string):void {\n this.routeNameToRedirect = routeName;\n }\n\n @Action({\n rawError: true,\n })\n public SetTraCategory(category: TraCategoryDto | null): void {\n this.SET_CATEGORY(category);\n\n if (category == null) {\n PersistentStorage.RemoveKey('tra');\n } else {\n PersistentStorage.SetValue('tra', JSON.stringify(this.category));\n }\n }\n\n @Action({ rawError: true })\n public InitTraCategory() : void {\n const entity = PersistentStorage.GetValue('tra');\n if (entity != null) {\n const parsed = JSON.parse(entity);\n this.SET_CATEGORY(parsed);\n }\n }\n\n @Action({ rawError: true })\n public setRoute(routeName:string) : void {\n this.SET_ROUTE(routeName);\n }\n\n public get routeNameRedirect(): string | null | undefined {\n return this.routeNameToRedirect;\n }\n}\n","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport { getModule } from 'vuex-module-decorators';\nimport Application from './modules/application';\nimport Authentication from './modules/authentication';\nimport Entity from './modules/entity';\nimport Navigation from './modules/navigation';\nimport Tra from './modules/tra';\n\nVue.use(Vuex);\n\nconst store = new Vuex.Store({\n modules: {\n application: Application,\n authentication: Authentication,\n entity: Entity,\n navigation: Navigation,\n tra: Tra,\n },\n});\n\nexport default store;\n\nexport const ApplicationModule = getModule(Application, store);\nexport const AuthenticationModule = getModule(Authentication, store);\nexport const EntityModule = getModule(Entity, store);\nexport const NavigationModule = getModule(Navigation, store);\n\nexport const TraModule = getModule(Tra, store);\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTreeViewLine.vue?vue&type=style&index=0&id=041243eb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTreeViewLine.vue?vue&type=style&index=0&id=041243eb&scoped=true&lang=css&\"","import FormBase from '../../FormBase.js';\nimport { selectedLanguage } from '../../../main.js';\n\nexport default class RiskControlEvaluations extends FormBase {\n constructor() {\n super('Risk Control Evaluations', 'general');\n this.api = 'bc/RiskControlEvaluations';\n\n this.confirmation = 'translations.' + selectedLanguage + '.controlEvaluation';\n\n this.columns = [\n {\n title: 'Value',\n binding: 'value',\n type: 'float',\n defaultValue: 0,\n sort: 'asc',\n width: 100,\n align: 'center',\n },\n {\n title: 'Control Evaluation',\n binding: 'controlEvaluation',\n required: true,\n translatable: true,\n defaultValue: 'New Control Evaluation',\n },\n ];\n }\n}\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdMessage.vue?vue&type=style&index=0&id=095f070a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdMessage.vue?vue&type=style&index=0&id=095f070a&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedLocations.vue?vue&type=style&index=0&id=2ad6a6e6&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedLocations.vue?vue&type=style&index=0&id=2ad6a6e6&scoped=true&lang=css&\"","/* eslint-disable no-new */\nimport { selectedMasterPlan, selectedLanguage } from '../../main.js';\nimport DataSources from '../../Core/datasources.js';\nimport DashboardBase from '../DashboardBase.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport Constants from '../../Core/constants.js';\n\nexport default class BcmDashboard extends DashboardBase {\n init() {\n kendo.ui.progress($(this.div), true);\n\n $(this.div)\n .empty();\n\n this.addDashboardItem({\n stats: {\n id: 'chart_statuses',\n title: 'Deployment Status',\n },\n cols: 6,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_timeliness',\n title: 'Deployment Timeliness',\n },\n cols: 6,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_rto',\n title: 'Recovery Time Objectives (RTO)',\n },\n cols: 6,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_mao',\n title: 'Maximum Acceptable Outages (MAO)',\n },\n cols: 6,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_risk_levels',\n title: 'Risk Levels',\n },\n cols: 4,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_risk_treatments',\n title: 'Risk Treatments',\n },\n cols: 4,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_risk_implementation',\n title: 'Risk Implementations',\n },\n cols: 4,\n });\n\n const s1 = $.get('/api/masterplans/' + selectedMasterPlan.id + '/bc/Statistics/DeploymentStatuses?language=' +\n selectedLanguage);\n const s2 = $.get('/api/masterplans/' + selectedMasterPlan.id + '/bc/Statistics/GetPartitionRtoMao?language=' +\n selectedLanguage);\n const s3 = $.get('/api/masterplans/' + selectedMasterPlan.id + '/bc/Statistics/GetRiskCounts?language=' +\n selectedLanguage);\n\n s1.done((data) => {\n const statuses = [0, 0, 0, 0];\n const statusesTooltips = [[], [], [], []];\n\n const timeliness = [0, 0];\n const timelinessTooltips = [[], []];\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].status !== Constants.DeploymentStatus.Finished) {\n if (new Date(data[i].dueDate) < new Date()) {\n timeliness[1] += 1;\n timelinessTooltips[1].push(data[i].deployment);\n } else {\n timeliness[0] += 1;\n timelinessTooltips[0].push(data[i].deployment);\n }\n } else {\n if (new Date(data[i].dueDate) < new Date(data[i].finished)) {\n timeliness[1] += 1;\n timelinessTooltips[1].push(data[i].deployment);\n } else {\n timeliness[0] += 1;\n timelinessTooltips[0].push(data[i].deployment);\n }\n }\n\n if (data[i].status === Constants.DeploymentStatus.DataEntry) {\n statuses[0] += 1;\n statusesTooltips[0].push(data[i].deployment);\n } else if (data[i].status === Constants.DeploymentStatus.ApprovalPath) {\n statuses[1] += 1;\n statusesTooltips[1].push(data[i].deployment);\n } else if (data[i].status === Constants.DeploymentStatus.AdminApproval) {\n statuses[2] += 1;\n statusesTooltips[2].push(data[i].deployment);\n } else if (data[i].status === Constants.DeploymentStatus.Finished) {\n statuses[3] += 1;\n statusesTooltips[3].push(data[i].deployment);\n }\n }\n\n new Chart('chart_statuses', this.getDefaultChart({\n type: 'pie',\n labels: ['Data Entry', 'Approval', 'Admin Approval', 'Finished'],\n datasets: [\n {\n label: 'Deployment Status',\n data: statuses,\n backgroundColor: ['#f8a176', '#d1f891', '#bad483', '#29c090'],\n tooltips: statusesTooltips,\n },\n ],\n }));\n\n new Chart('chart_timeliness', this.getDefaultChart({\n type: 'pie',\n labels: ['On Time', 'Delayed'],\n datasets: [\n {\n label: 'Deployment Timeliness',\n data: timeliness,\n backgroundColor: ['#29c090', '#f8a176'],\n tooltips: timelinessTooltips,\n },\n ],\n }));\n })\n .fail((error) => {\n Helpers.showError(error.responseText, 'Getting statistics failed');\n })\n .always(() => {\n kendo.ui.progress($(this.div), false);\n });\n\n s2.done((data) => {\n $.when(DataSources.RTOScales.read())\n .done(() => {\n const labels = ['Not Calculated'];\n const colors = ['#AAAAAA'];\n const d = { empty: [0, 0] };\n const t = { empty: [[], []] };\n\n const scales = DataSources.RTOScales.data();\n for (let i = 0; i < scales.length; ++i) {\n labels.push(scales[i].translations[selectedLanguage].name);\n colors.push(scales[i].color);\n d[scales[i].id] = [0, 0];// rto, mao count\n t[scales[i].id] = [[], []];\n }\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].rto == null) {\n d.empty[0] += 1;\n t.empty[0].push(data[i].partition);\n } else {\n d[data[i].rto][0] += 1;\n t[data[i].rto][0].push(data[i].partition);\n }\n\n if (data[i].mao == null) {\n d.empty[1] += 1;\n t.empty[1].push(data[i].partition);\n } else {\n d[data[i].mao][1] += 1;\n t[data[i].mao][1].push(data[i].partition);\n }\n }\n\n const rto = [d.empty[0]];\n const mao = [d.empty[1]];\n\n const rtoTooltip = [t.empty[0]];\n const maoTooltip = [t.empty[1]];\n\n for (let i = 0; i < scales.length; ++i) {\n rto.push(d[scales[i].id][0]);\n mao.push(d[scales[i].id][1]);\n\n rtoTooltip.push(t[scales[i].id][0]);\n maoTooltip.push(t[scales[i].id][1]);\n }\n\n new Chart('chart_rto', this.getDefaultChart({\n type: 'bar',\n labels: labels,\n datasets: [\n {\n data: rto,\n backgroundColor: colors,\n tooltips: rtoTooltip,\n },\n ],\n options: {\n legend: {\n display: false,\n },\n },\n }));\n\n new Chart('chart_mao', this.getDefaultChart({\n type: 'bar',\n labels: labels,\n datasets: [\n {\n data: mao,\n backgroundColor: colors,\n tooltips: maoTooltip,\n },\n ],\n options: {\n legend: {\n display: false,\n },\n },\n }));\n });\n })\n .fail((error) => {\n Helpers.showError(error.responseText, 'Getting RTO/MAO statistics failed');\n })\n .always(() => {\n kendo.ui.progress($(this.div), false);\n });\n\n s3.done((data) => {\n $.when(\n DataSources.RiskLevels.read(), DataSources.RiskTreatments.read(),\n DataSources.ImplementationScales.read(),\n )\n .done(() => {\n const riskLevelLabels = [];\n const riskTreatmentLabels = [];\n const riskImplementationLabels = [];\n\n const riskLevelColors = [];\n const riskTreatmentColors = [];\n const riskImplementationColors = [];\n\n const riskLevels = {};\n const riskTreatments = {};\n const riskImplementations = {};\n\n const riskLevelsTooltips = {};\n const riskTreatmentsTooltips = {};\n const riskImplementationsTooltips = {};\n\n for (let i = 0; i < DataSources.ImplementationScales.data().length; ++i) {\n riskImplementations[DataSources.ImplementationScales.data()[i].id] = 0;\n riskImplementationsTooltips[DataSources.ImplementationScales.data()[i].id] = [];\n riskImplementationLabels.push(DataSources.ImplementationScales.data()[i].translations[selectedLanguage].name);\n riskImplementationColors.push(DataSources.ImplementationScales.data()[i].color);\n }\n\n for (let i = 0; i < DataSources.RiskLevels.data().length; ++i) {\n riskLevels[DataSources.RiskLevels.data()[i].id] = 0;\n riskLevelsTooltips[DataSources.RiskLevels.data()[i].id] = [];\n riskLevelLabels.push(DataSources.RiskLevels.data()[i].translations[selectedLanguage].name);\n riskLevelColors.push(DataSources.RiskLevels.data()[i].color);\n }\n\n for (let i = 0; i < DataSources.RiskTreatments.data().length; ++i) {\n riskTreatments[DataSources.RiskTreatments.data()[i].id] = 0;\n riskTreatmentsTooltips[DataSources.RiskTreatments.data()[i].id] = [];\n riskTreatmentLabels.push(DataSources.RiskTreatments.data()[i].translations[selectedLanguage].name);\n riskTreatmentColors.push(DataSources.RiskTreatments.data()[i].color);\n }\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].implementationStatus != null) {\n riskImplementations[data[i].implementationStatus] += 1;\n riskImplementationsTooltips[data[i].implementationStatus].push(data[i].risk);\n }\n\n riskLevels[data[i].riskLevel] += 1;\n riskLevelsTooltips[data[i].riskLevel].push(data[i].risk);\n\n if (data[i].riskTreatment != null) {\n riskTreatments[data[i].riskTreatment] += 1;\n riskTreatmentsTooltips[data[i].riskTreatment].push(data[i].risk);\n }\n }\n\n new Chart('chart_risk_levels', this.getDefaultChart({\n type: 'doughnut',\n labels: riskLevelLabels,\n datasets: [\n {\n label: '',\n data: Object.values(riskLevels),\n backgroundColor: riskLevelColors,\n tooltips: Object.values(riskLevelsTooltips),\n },\n ],\n }));\n\n new Chart('chart_risk_treatments', this.getDefaultChart({\n type: 'doughnut',\n labels: riskTreatmentLabels,\n datasets: [\n {\n label: '',\n data: Object.values(riskTreatments),\n backgroundColor: riskTreatmentColors,\n tooltips: Object.values(riskTreatmentsTooltips),\n },\n ],\n }));\n\n new Chart('chart_risk_implementation', this.getDefaultChart({\n type: 'doughnut',\n labels: riskImplementationLabels,\n datasets: [\n {\n label: '',\n data: Object.values(riskImplementations),\n backgroundColor: riskImplementationColors,\n tooltips: Object.values(riskImplementationsTooltips),\n },\n ],\n }));\n });\n })\n .fail((error) => {\n Helpers.showError(error.responseText, 'Getting Risk Statistics failed');\n })\n .always(() => {\n kendo.ui.progress($(this.div), false);\n });\n }\n}\n","import FormBase from '../FormBase.js';\n\nexport default class IsraTreatmentAnswers extends FormBase {\n constructor() {\n super('Treatment Answers', 'general');\n this.api = 'isra/TreatmentAnswers';\n\n this.columns = [\n {\n title: 'Answer',\n binding: 'answer',\n defaultValue: 'New Value',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n {\n title: 'Explanation',\n binding: 'explanation',\n defaultValue: '',\n required: true,\n translatable: true,\n },\n {\n title: 'Value',\n binding: 'value',\n width: 100,\n required: true,\n defaultValue: 0,\n type: 'number',\n format: '{0:p2}',\n validation: {\n min: 0,\n max: 1,\n step: 0.1,\n },\n },\n {\n title: 'Require
Implementation',\n binding: 'requireImplementationValues',\n width: 150,\n required: true,\n defaultValue: false,\n type: 'boolean',\n },\n ];\n }\n}\n","import Constants from '../../../Core/constants.js';\nimport DataSources from '../../../Core/datasources.js';\nimport { Helpers } from '../../../Core/Helpers';\nimport { selectedLanguage, selectedMasterPlan, userRole } from '../../../main.js';\nimport FormBase from '../../FormBase.js';\n\nexport default class OperationalImpactQuestions extends FormBase {\n constructor() {\n super('Operational Impact Questions', 'general', {\n readOnly: !userRole.includes(Constants.RoleTypes.BCM.Administrator),\n });\n this.api = 'bc/OperationalImpactQuestions';\n\n this.confirmation = 'translation.' + selectedLanguage + '.question';\n\n this.columns = [\n {\n title: 'Question',\n binding: 'question',\n defaultValue: 'New Question',\n required: true,\n translatable: true,\n sort: 'asc',\n },\n {\n title: 'Explanation',\n binding: 'explanation',\n defaultValue: 'New Explanation',\n required: false,\n translatable: true,\n },\n {\n title: 'RTO/MAO Indicator',\n binding: 'rtoIndicator',\n type: 'boolean',\n width: 90,\n },\n {\n title: 'Weighted RTO/MAO',\n binding: 'weightedRtoIndicator',\n type: 'boolean',\n width: 90,\n },\n {\n title: 'Weight',\n binding: 'weight',\n width: 90,\n defaultValue: 0,\n footerTemplate: '
',\n },\n {\n title: ' ',\n fieldName: 'rtoTriggerColor',\n width: 8,\n editable: false,\n },\n {\n title: 'RTO Trigger',\n binding: 'rtoTriggerId',\n defaultValue: 0,\n width: 180,\n footerTemplate: '
',\n template: (dataItem) => this.operationImpactScalesTemplate(dataItem, 'rtoTriggerId'),\n editor: (container, options) => this.rtoSelector(container, options),\n },\n {\n title: ' ',\n fieldName: 'maoTriggerColor',\n width: 8,\n editable: false,\n },\n {\n title: 'MAO Trigger',\n binding: 'maoTriggerId',\n defaultValue: 0,\n width: 180,\n footerTemplate: '
',\n template: (dataItem) => this.operationImpactScalesTemplate(dataItem, 'maoTriggerId'),\n editor: (container, options) => this.maoSelector(container, options),\n },\n ];\n }\n\n require() {\n return [DataSources.OperationalImpactScales];\n }\n\n init() {\n if (DataSources.OperationalImpactScales.view().length === 0) {\n kendo.alert('Operational Impact Scales are empty. Please add scales before adding impacts.');\n return;\n }\n\n super.init();\n }\n\n updateContainerReadOnly(enableIndicator, enableWeight) {\n const weightedRtoIndicator = $('[name=\"weightedRtoIndicator\"]');\n const weight = $('[name=\"weight\"]');\n\n const rto = $('[name=\"rtoTriggerId\"]');\n const mao = $('[name=\"maoTriggerId\"]');\n\n if (enableIndicator) {\n weightedRtoIndicator.removeClass('k-state-disabled');\n } else {\n weightedRtoIndicator.addClass('k-state-disabled');\n }\n\n if (enableIndicator && enableWeight) {\n weight.removeClass('k-state-disabled');\n } else {\n weight.addClass('k-state-disabled');\n }\n\n weightedRtoIndicator.prop('disabled', !enableIndicator);\n weight.prop('disabled', !(enableIndicator && enableWeight));\n\n rto.data('kendoDropDownList')\n .enable(enableIndicator);\n rto.prop('required', enableIndicator);\n\n mao.data('kendoDropDownList')\n .enable(enableIndicator);\n mao.prop('required', enableIndicator);\n }\n\n setCustomGridProperties(grid) {\n const edit = grid.edit;\n grid.edit = (e) => {\n edit.call(e.sender, e);\n\n this.updateContainerReadOnly(e.model.rtoIndicator, e.model.weightedRtoIndicator);\n };\n\n const databound = grid.dataBound;\n\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n const data = grid.dataSource.data();\n\n let weightSum = 0,\n rtoSum = 0,\n maoSum = 0;\n\n $.each(data, (i, row) => {\n if (row.rtoIndicator === true && row.weightedRtoIndicator === true) {\n weightSum += row.weight;\n }\n\n const rto = DataSources.OperationalImpactScales.get(row.rtoTriggerId);\n const mao = DataSources.OperationalImpactScales.get(row.maoTriggerId);\n\n const offset = (selectedMasterPlan.languages.length * 2) + 4;\n if (rto != null) {\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(' + offset + ')')\n .css('background-color', rto.color);\n }\n\n if (mao != null) {\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(' + (offset + 2) + ')')\n .css('background-color', mao.color);\n }\n });\n\n $.each(data, (i, row) => {\n if (row.rtoIndicator === true) {\n rtoSum += ((row.weight *\n DataSources.OperationalImpactScales.get(row.rtoTriggerId).value) / weightSum);\n maoSum += ((row.weight *\n DataSources.OperationalImpactScales.get(row.maoTriggerId).value) / weightSum);\n }\n });\n\n const weightFooter = e.sender.element.find('#weightFooterTemplate');\n const rtoFooter = e.sender.element.find('#rtoFooterTemplate');\n const maoFooter = e.sender.element.find('#maoFooterTemplate');\n\n weightFooter.append('
Total Weight: ' + weightSum + '
');\n rtoFooter.append('
Weighted RTO Trigger: ' + (Math.round(rtoSum * 1000) / 1000) + '
');\n maoFooter.append('
Weighted MAO Trigger: ' + (Math.round(maoSum * 1000) / 1000) + '
');\n };\n }\n\n operationImpactScalesTemplate(dataItem, property) {\n const item = DataSources.OperationalImpactScales.get(dataItem[property]);\n\n if (item != null) {\n return String.format(\n '{0} ({1})',\n Helpers.sanitizeHTML(item.translations[selectedLanguage].name), item.value,\n );\n }\n return '';\n }\n\n setCustomDatasourceProperties(source) {\n super.setCustomDatasourceProperties(source);\n\n source.change = (e) => {\n if (e.action === 'itemchange') {\n if (e.field === 'rtoIndicator' || e.field === 'weightedRtoIndicator') {\n this.updateContainerReadOnly(e.items[0].rtoIndicator, e.items[0].weightedRtoIndicator);\n }\n }\n };\n }\n\n operationalImpactScalesDropDownEditor(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n optionLabel: Constants.Empty,\n valuePrimitive: true,\n dataTextField: 'value',\n dataValueField: 'id',\n template: (dataItem) => `${Helpers.sanitizeHTML(dataItem.translations[selectedLanguage].name)} (${dataItem.value})`,\n valueTemplate: (dataItem) => `${Helpers.sanitizeHTML(dataItem.translations[selectedLanguage].name)} (${dataItem.value})`,\n dataSource: DataSources.OperationalImpactScales,\n });\n }\n\n rtoSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n // optionLabel: empty,\n valuePrimitive: true,\n dataTextField: 'value',\n dataValueField: 'id',\n template: (dataItem) => `${Helpers.sanitizeHTML(dataItem.translations[selectedLanguage].name)} (${dataItem.value})`,\n valueTemplate: (dataItem) => `${Helpers.sanitizeHTML(dataItem.translations[selectedLanguage].name)} (${dataItem.value})`,\n dataSource: {\n data: DataSources.OperationalImpactScales.view()\n .slice(0, DataSources.OperationalImpactScales.view().length - 1),\n },\n change: (e) => {\n const rto = e.sender.dataItem();\n\n const data = DataSources.OperationalImpactScales.view();\n let pos = 0;\n for (let i = 0; i < data.length; ++i) {\n if (rto.id === data[i].id) {\n pos = i;\n break;\n }\n }\n\n const mao = $(this.grid)\n .find('[name=maoTriggerId]')\n .data('kendoDropDownList');\n mao.setDataSource(DataSources.OperationalImpactScales.view()\n .slice(pos));\n\n if (mao.dataItem() == null) {\n mao.select(0);\n options.model.maoTriggerId = mao.dataItem().id;\n }\n },\n });\n }\n\n maoSelector(container, options) {\n const data = DataSources.OperationalImpactScales.view();\n let pos = 0;\n if (options.model.rtoTriggerId != null) {\n for (let i = 0; i < data.length; ++i) {\n if (options.model.rtoTriggerId === data[i].id) {\n pos = i;\n break;\n }\n }\n }\n $('')\n .appendTo(container)\n .kendoDropDownList({\n // optionLabel: empty,\n valuePrimitive: true,\n dataTextField: 'value',\n dataValueField: 'id',\n template: (dataItem) => `${Helpers.sanitizeHTML(dataItem.translations[selectedLanguage].name)} (${dataItem.value})`,\n valueTemplate: (dataItem) => `${Helpers.sanitizeHTML(dataItem.translations[selectedLanguage].name)} (${dataItem.value})`,\n dataSource: {\n data: DataSources.OperationalImpactScales.view()\n .slice(pos),\n },\n });\n }\n}\n","import FormBase from '../FormBase.js';\nimport DataSources from '../../Core/datasources.js';\nimport Selectors from '../../Core/Selectors.js';\n\nexport default class IsraRiskScales extends FormBase {\n constructor() {\n super('Risk Scales', 'israRiskScales');\n this.api = 'isra/RiskScales';\n\n this.columns = [\n {\n title: 'Value',\n binding: 'value',\n required: true,\n sort: 'asc',\n defaultValue: 0,\n validation: {\n min: 0,\n max: 1000,\n step: 1,\n },\n translatable: false,\n type: 'number',\n },\n {\n title: 'Color',\n binding: 'color',\n defaultValue: null,\n required: false,\n template: (dataItem) => Selectors.ColorTemplate(dataItem, 'color'),\n editor: (container, options) => Selectors.ColorSelector(container, options),\n },\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Value',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n ];\n }\n\n require() {\n return [DataSources.IsraImpactScales, DataSources.IsraLikelihoodScales];\n }\n\n setCustomGridProperties(grid) {\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n const lik = DataSources.IsraLikelihoodScales.data();\n const imp = DataSources.IsraImpactScales.data();\n\n function compare(a, b) {\n if (a.value < b.value) {\n return -1;\n }\n if (a.value > b.value) {\n return 1;\n }\n return 0;\n }\n\n const data = this.datasource.data()\n .sort(compare);\n\n let prev = 0;\n for (let r = 0; r < data.length; ++r) {\n const max = data[r].value;\n for (let i = 0; i < lik.length; ++i) {\n for (let j = 0; j < imp.length; ++j) {\n const v = lik[i].value * imp[j].value;\n if (r < data.length - 1) {\n if (v < max && v >= prev) {\n $('#imp_lik_' + imp[j].value + '_' + lik[i].value)\n .css('background-color', data[r].color);\n }\n } else {\n if (v <= max && v >= prev) {\n $('#imp_lik_' + imp[j].value + '_' + lik[i].value)\n .css('background-color', data[r].color);\n }\n }\n }\n }\n prev = max;\n }\n };\n }\n\n init() {\n const container = $('#impactProbabilityTable');\n container.empty();\n\n const lik = DataSources.IsraLikelihoodScales.data();\n const imp = DataSources.IsraImpactScales.data();\n\n let table = '';\n\n table += '';\n\n for (let i = 0; i < imp.length; ++i) {\n table += '';\n }\n\n table += '';\n\n for (let i = 0; i < lik.length; ++i) {\n table += '';\n for (let j = 0; j < imp.length; ++j) {\n table += '';\n }\n\n table += '';\n\n if (i !== lik.length - 1) {\n table += '';\n }\n }\n table += '
Impact
' + imp[i].value + '
Likelihood' + lik[i].value + '' +\n (imp[j].value * lik[i].value) + '
';\n\n container.append(table);\n\n super.init();\n }\n}\n","import { DocumentFileFormat } from '@/dtos/all';\nimport DownloadService from '@/services/DownloadService';\nimport Constants from '../../Core/constants.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport Selectors from '../../Core/Selectors';\nimport { selectedLanguage, selectedMasterPlan, toggleAppear } from '../../main.js';\nimport FormBase from '../FormBase.js';\n\nexport default class IsraRiskManagementTreatmentReview extends FormBase {\n constructor(deployment) {\n super(`Review '${deployment.translations[selectedLanguage].name}' Answers`, 'general', {\n readOnly: true,\n allowSave: true,\n });\n\n this.api = 'isra/RiskManagements/' + deployment.id + '/TreatmentReview';\n this.deployment = deployment;\n\n this.options.errorCallBack = {\n update: (e) => {\n if (e.status === 200) {\n if (this.deployment.status > Constants.RiskManagementStatus.ReadyForAcceptance) {\n $('#Review-Accept')\n .removeClass('k-state-disabled')\n .off('click')\n .on('click', () => this.acceptReview());\n $('#Review-Accept span')\n .text('Accept Review');\n\n this.deployment.questionnairesReviewed = false;\n }\n } else {\n $(this.grid)\n .data('kendoGrid')\n .cancelChanges();\n }\n },\n };\n\n this.columns = [\n {\n title: 'Risk',\n binding: 'riskManagementRiskId',\n required: true,\n editable: false,\n template: (dataItem) => {\n const item = this.riskManagementRisks.get(dataItem.riskManagementRiskId);\n return Helpers.sanitizeHTML(item.risk.translations[selectedLanguage].name);\n },\n },\n {\n title: 'Inherent Risk',\n binding: 'initialRiskScaleId',\n editable: () => false,\n template: (dataItem) => {\n const initialRisk = FormBase.round(dataItem.initialLikelihoodValue * dataItem.initialImpactValue);\n const title = `Risk (${initialRisk}) = Likelihood (${FormBase.round(dataItem.initialLikelihoodValue)}) x Impact (${FormBase.round(dataItem.initialImpactValue)})`;\n\n const riskScale = DataSources.IsraRiskScales.get(dataItem.initialRiskScaleId);\n return `
 ${riskScale.translations[selectedLanguage].name}
`;\n },\n collapse: true,\n },\n {\n title: 'Current Risk',\n binding: 'currentRiskScaleId',\n editable: () => false,\n template: (dataItem) => {\n const currentRisk = FormBase.round(dataItem.currentLikelihoodValue * dataItem.currentImpactValue);\n const title = `Risk (${currentRisk}) = Likelihood (${FormBase.round(dataItem.currentLikelihoodValue)}) x Impact (${FormBase.round(dataItem.currentImpactValue)})`;\n\n const riskScale = DataSources.IsraRiskScales.get(dataItem.currentRiskScaleId);\n return `
 ${riskScale.translations[selectedLanguage].name}
`;\n },\n collapse: true,\n },\n {\n title: 'Residual Risk',\n binding: 'residualRiskScaleId',\n editable: () => false,\n template: (dataItem) => {\n const residualRisk = FormBase.round(dataItem.residualLikelihoodValue * dataItem.residualImpactValue);\n const title = `Risk (${residualRisk}) = Likelihood (${FormBase.round(dataItem.residualLikelihoodValue)}) x Impact (${FormBase.round(dataItem.residualImpactValue)})`;\n\n const riskScale = DataSources.IsraRiskScales.get(dataItem.residualRiskScaleId);\n return `
 ${riskScale.translations[selectedLanguage].name}
`;\n },\n collapse: true,\n },\n {\n title: 'BestCase Risk',\n binding: 'bestCaseRiskScaleId',\n editable: () => false,\n template: (dataItem) => {\n const bestCaseRisk = FormBase.round(dataItem.bestCaseLikelihoodValue * dataItem.bestCaseImpactValue);\n const title = `Risk (${bestCaseRisk}) = Likelihood (${FormBase.round(dataItem.bestCaseLikelihoodValue)}) x Impact (${FormBase.round(dataItem.bestCaseImpactValue)})`;\n\n const riskScale = DataSources.IsraRiskScales.get(dataItem.bestCaseRiskScaleId);\n return `
 ${riskScale.translations[selectedLanguage].name}
`;\n },\n collapse: true,\n },\n ];\n\n this.answerColumns = [\n {\n title: 'Id',\n fieldName: 'controlId',\n editable: () => false,\n width: 50,\n template: (dataItem) => {\n const item = this.riskManagementControls.get(dataItem.riskManagementControlId);\n\n if (item == null) {\n Helpers.showError(`Unable to find control with id: ${item.riskManagementControlId}`);\n return '';\n }\n\n return Helpers.sanitizeHTML(item.controlId);\n },\n },\n {\n title: ' ',\n fieldName: 'question',\n collapse: true,\n editable: false,\n template: (dataItem) => {\n const item = this.riskManagementControls.get(dataItem.riskManagementControlId);\n\n if (item == null) {\n Helpers.showError(`Unable to find control with id: ${item.riskManagementControlId}`);\n return '';\n }\n\n let title = `Question: ${item.translations[selectedLanguage].question.replace('\\n', ' ')}`;\n title += ' Answer: ' + DataSources.IsraAnswers.get(dataItem.questionAnswerId).translations[selectedLanguage].answer;\n\n if (dataItem.answerComments != null) {\n title += ' Comments: ' + dataItem.answerComments;\n }\n\n const ret = ``;\n\n return ret;\n },\n },\n {\n title: 'Recommended Actions',\n fieldName: 'recommendedActions',\n editable: false,\n width: '300px',\n template: (dataItem) => {\n const item = this.riskManagementControls.get(dataItem.riskManagementControlId);\n\n if (item == null) {\n Helpers.showError(`Unable to find control with id: ${item.riskManagementControlId}`);\n return '';\n }\n\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].recommendedActions);\n },\n datasource: this.riskManagementControls,\n sortField: 'translations.' + selectedLanguage + '.recommendedActions',\n sortId: 'riskManagementControlId',\n },\n {\n title: 'Implementation Answer',\n editable: () => false,\n binding: 'treatmentAnswerId',\n sortable: true,\n width: 250,\n datasource: DataSources.IsraTreatmentAnswers,\n sortField: 'translations.' + selectedLanguage + '.answer',\n sortId: 'treatmentAnswerId',\n template: (dataItem) => {\n const answer = DataSources.IsraTreatmentAnswers.get(dataItem.treatmentAnswerId);\n\n if (answer == null) {\n return ' ';\n }\n\n return Helpers.sanitizeHTML(answer.translations[selectedLanguage].answer);\n },\n },\n {\n title: 'Likelihood
Implementation %',\n binding: 'likelihoodImplementationValue',\n editable: () => true,\n width: '100px',\n type: 'number',\n format: '{0:p2}',\n validation: {\n min: 0,\n max: 1,\n step: 0.1,\n },\n },\n {\n title: 'Impact
Implementation %',\n binding: 'impactImplementationValue',\n editable: () => true,\n width: '100px',\n type: 'number',\n format: '{0:p2}',\n validation: {\n min: 0,\n max: 1,\n step: 0.1,\n },\n },\n {\n title: 'Implementation Responsible',\n binding: 'implementationResponsible',\n width: 200,\n editable: false,\n },\n {\n title: 'Implementation
Due Date',\n binding: 'implementationDueDate',\n template: (dataItem) => Selectors.DateTemplate(dataItem, 'implementationDueDate', 'Not set'),\n editable: () => false,\n width: 150,\n },\n {\n title: 'Implementation Status',\n binding: 'implementationStatusId',\n width: 200,\n defaultValue: null,\n template: (dataItem) => {\n if (dataItem.implementationStatusId == null) {\n return '';\n }\n\n const item = DataSources.ImplementationScales.get(dataItem.implementationStatusId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n },\n editable: () => false,\n },\n {\n editable: () => true,\n title: 'Comments',\n binding: 'comments',\n width: 200,\n },\n {\n title: ' ',\n width: 5,\n binding: 'none',\n editable: false,\n },\n {\n title: 'Prioritization',\n binding: 'prioritizationScaleId',\n width: 200,\n editable: false,\n template: (dataItem) => {\n if (dataItem.prioritizationScaleId == null) {\n return ' ';\n }\n\n const item = DataSources.IsraTreatmentPrioritizationScales.get(dataItem.prioritizationScaleId);\n\n if (item == null) {\n return '';\n }\n\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n },\n },\n {\n title: ' ',\n width: 5,\n binding: 'none',\n editable: false,\n },\n {\n title: 'Control
Strength',\n binding: 'controlStrengthScaleId',\n width: 200,\n editable: false,\n template: (dataItem) => {\n if (dataItem.controlStrengthScaleId == null) {\n return ' ';\n }\n\n const item = DataSources.IsraControlStrengthScales.get(dataItem.controlStrengthScaleId);\n\n if (item == null) {\n return '';\n }\n\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n },\n },\n ];\n\n this.menu = {\n sep1: {\n cssClass: 'k-separator',\n },\n };\n }\n\n static async prerequisites(options = {}) {\n if (options.deployment == null) {\n Helpers.showError('Error: Cannot check IsraRiskManagementTreatmentReview prerequisites() without a deployment parameter');\n return false;\n }\n\n try {\n await Promise.resolve($.get(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${options.deployment}/ReadyForTreatmentReview`));\n\n return true;\n } catch (e) {\n Helpers.showError(e.responseText);\n return false;\n }\n }\n\n require() {\n this.riskManagementControls = DataSources.IsraRiskManagementControls(this.deployment.id);\n this.riskManagementRisks = DataSources.IsraRiskManagementRisks(this.deployment.id);\n\n return [\n\n DataSources.IsraRiskScales,\n DataSources.IsraTreatmentAnswers,\n DataSources.ImplementationScales,\n DataSources.IsraControlStrengthScales,\n this.riskManagementRisks,\n this.riskManagementControls,\n DataSources.IsraAnswers,\n ];\n }\n\n // setCustomDatasourceProperties(source) {\n // }\n\n setCustomGridProperties(grid) {\n const readOnly = this.deployment.status > Constants.RiskManagementStatus.ReadyForAcceptance;\n grid.toolbar = [\n { template: 'Export' },\n ];\n\n if (!readOnly) {\n grid.toolbar = [\n { template: 'Accept Review' },\n { template: 'Reset Implementation Values' },\n ];\n }\n\n grid.toolbar.push(\n { template: 'Expand All' },\n { template: 'Collapse All' },\n );\n\n const model = Helpers.createModel(selectedMasterPlan, this.answerColumns);\n const answerCols = Helpers.createColumns(selectedMasterPlan, this.answerColumns, {\n readOnly,\n delete: false,\n });\n\n // function to prevent rebinding\n const dataBinding = grid.dataBinding;\n grid.dataBinding = (e) => {\n dataBinding.call(e.sender, e);\n\n if (this.preventBinding) {\n e.preventDefault();\n const acd = $('#controlsDetails')\n .data('kendoGrid');\n if (acd != null) {\n acd.dataSource.read();\n acd.refresh();\n }\n }\n\n this.preventBinding = false;\n };\n\n let firstBound = true;\n const dataBound = grid.dataBound;\n grid.dataBound = (e) => {\n dataBound.call(e.sender, e);\n\n if (firstBound) {\n firstBound = false;\n\n $('#Review-ExpandAll')\n .off('click')\n .on('click', () => {\n const grid = e.sender;\n $('.k-master-row')\n .each(function () {\n grid.expandRow(this);\n });\n });\n\n $('#Review-CollapseAll')\n .off('click')\n .on('click', () => {\n const grid = e.sender;\n $('.k-master-row')\n .each(function () {\n grid.collapseRow(this);\n });\n });\n\n $('#Review-Accept')\n .off('click')\n .on('click', (e) => this.acceptReview(e));\n\n $('#Review-ResetValues')\n .off('click')\n .on('click', () => {\n kendo.ui.progress($(this.grid), true);\n $.post(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${this.deployment.id}/TreatmentReview/ResetImplementationValues`)\n .then(() => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .read();\n\n $('#Review-Accept')\n .removeClass('k-state-disabled')\n .off('click')\n .on('click', () => this.acceptReview());\n $('#Review-Accept span')\n .text('Accept Review');\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n });\n\n $('#Review-Export')\n .off('click')\n .on('click', () => {\n kendo.ui.progress($(this.grid), true);\n\n $.get(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${this.deployment.id}/TreatmentReview?export=true`)\n .then(function (data) {\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Unknown,\n });\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($('.grid'), false);\n });\n });\n }\n };\n\n grid.detailInit = (e) => {\n const detail = Helpers.getDefaultGrid(selectedMasterPlan, this.api);\n\n // detail.editable = 'inline';\n delete detail.toolbar;\n delete detail.height;\n\n detail.dataSource = {\n data: e.data.controls,\n pageSize: 10,\n schema: model,\n change: (c) => {\n if (c.action === 'itemchange') {\n kendo.ui.progress($(this.grid), true);\n const item = c.items[0];\n $.post(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${this.deployment.id}/TreatmentReview/${item.id}?impact=${item.impactImplementationValue}&likelihood=${item.likelihoodImplementationValue}&comments=${item.comments}`)\n .then(() => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .read()\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n kendo.ui.progress($(this.grid), false);\n });\n }\n },\n };\n\n detail.columns = answerCols;\n\n if (readOnly) {\n detail.editable = false;\n } else {\n detail.columns.push({\n commands: ['edit'],\n });\n }\n\n $('
')\n .appendTo(e.detailCell)\n .kendoGrid(detail);\n\n $('#controlsDetails')\n .off(\n 'mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')',\n this.disableButtonsOnEdit,\n )\n .on(\n 'mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')',\n this.disableButtonsOnEdit,\n );\n\n // menu for risk-controls\n // on enable causes weird bugs on other forms (causes menu to get stuck)\n // most probably wants proper destroy and recreate\n\n // destroy context menu if exists and recreate it\n // if (this.contextMenu['[name=controlsDetails]'] != null)\n // $(this.contextMenu['[name=controlsDetails]']).data('kendoContextMenu').destroy();\n //\n // this.createMenu('[name=controlsDetails]', this.answersMenu);\n };\n }\n\n acceptReview() {\n const message = 'Accepting current review will move to acceptance.
Are you sure you want to continue?';\n\n Helpers.showPopUp2({\n title: 'Warning',\n content: message,\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n kendo.ui.progress($(this.grid), true);\n $.post(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${this.deployment.id}/TreatmentReview/AcceptReview`)\n .then(() => {\n const message = 'Review Accepted. You can now move to Acceptance!';\n\n $('#Review-Accept')\n .addClass('k-state-disabled')\n .off('click');\n $('#Review-Accept span')\n .text('Review Accepted');\n\n Helpers.showPopUp2({\n title: 'Review Accepted',\n content: message,\n actions: [\n {\n text: 'Ok',\n action: () => {\n toggleAppear('israRiskManagementTreatments');\n return true;\n },\n },\n ],\n });\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n },\n },\n {\n text: 'Cancel',\n },\n ],\n });\n }\n}\n","import DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport { selectedLanguage, selectedMasterPlan } from '../../main.js';\nimport FormBase from '../FormBase.js';\n\nexport default class StrategyScenario extends FormBase {\n constructor(scenario) {\n super('Scenario: ' + scenario.translations[selectedLanguage].name, 'general');\n\n this.scenario = scenario;\n\n this.api = 'bc/Strategies/' + scenario.strategyId + '/StrategyScenarios/' + scenario.id + '/allocations';\n\n this.options.parse = (data) => this.parseData(data);\n this.options.parameterMap = (data) => this.parameterMap(data);\n\n this.columns = [];\n\n this.confirmation = 'translations.' + selectedLanguage + '.name';\n\n this.hiddenColumns = [\n 'locationGroupText',\n 'locationText',\n 'partitionText',\n 'rtoId',\n ];\n }\n\n parseData(data) {\n for (let i = 0; i < data.length; ++i) {\n const keys = Object.keys(data[i].allocations);\n\n for (let j = 0; j < keys.length; ++j) {\n data[i]['allocations_' + keys[j]] = data[i].allocations[keys[j]];\n }\n\n // Location Group Name\n\n let item = DataSources.LocationGroups.get(data[i].locationGroupId);\n if (item != null) {\n data[i].locationGroupText = DataSources.LocationGroups.get(data[i].locationGroupId).translations[selectedLanguage].name;\n } else {\n data[i].locationGroupText = 'No Location Group';\n }\n\n item = DataSources.Locations.get(data[i].locationId).translations[selectedLanguage];\n data[i].locationText = `${item.country} ${item.state} ${item.city} ${item.address} ${item.zipCode}`;\n\n data[i].partitionText = DataSources.Partitions.get(data[i].partitionId).translations[selectedLanguage].name;\n\n data[i].rtoText = DataSources.RTOScales.get(data[i].rtoId).translations[selectedLanguage].name;\n\n data[i].assetText = DataSources.Assets.get(data[i].assetId).translations[selectedLanguage].name;\n }\n\n return data;\n }\n\n parameterMap(data) {\n for (let i = 0; i < this.scenarioRecoverySites.length; ++i) {\n const rs = this.scenarioRecoverySites[i].recoverySiteId;\n data.allocations[rs] = data['allocations_' + rs];\n }\n\n return data;\n }\n\n require() {\n return [\n DataSources.Assets,\n DataSources.LocationGroups,\n DataSources.Locations,\n DataSources.Partitions,\n DataSources.RTOScales,\n DataSources.RecoverySites,\n DataSources.RecoverySiteTypes,\n DataSources.GroupableRecoverySite(selectedLanguage),\n DataSources.GroupableLocations(selectedLanguage),\n ];\n }\n\n setCustomDatasourceProperties(source) {\n // delete source.pageSize;\n source.group = [\n { field: 'locationGroupText' },\n { field: 'locationText' },\n { field: 'partitionText' },\n { field: 'rtoId' },\n ];\n }\n\n customInit(resolve, reject) {\n const loc = $.get('/api/masterplans/' + selectedMasterPlan.id + '/bc/Strategies/' + this.scenario.strategyId +\n '/StrategyScenarios/' + this.scenario.id + '/locations/');\n const rec = $.get('/api/masterplans/' + selectedMasterPlan.id + '/bc/Strategies/' + this.scenario.strategyId +\n '/StrategyScenarios/' + this.scenario.id + '/recovery_sites/');\n\n this.columns = [\n {\n title: 'Location Group',\n binding: 'locationGroupText',\n editable: () => false,\n hidden: true,\n filterable: true,\n },\n {\n title: 'Location',\n binding: 'locationText',\n editable: () => false,\n hidden: true,\n filterable: true,\n },\n {\n title: 'Partition',\n binding: 'partitionText',\n editable: () => false,\n hidden: true,\n filterable: true,\n },\n {\n title: ' ',\n fieldName: 'color',\n width: 8,\n editable: () => false,\n template: () => '',\n groupable: false,\n },\n {\n title: 'RTO',\n binding: 'rtoId',\n hidden: true,\n template: (dataItem) => {\n return DataSources.RTOScales.get(dataItem.rtoId).translations[selectedLanguage].name;\n },\n groupHeaderTemplate: (e) => {\n return DataSources.RTOScales.get(e.value).translations[selectedLanguage].name;\n },\n editable: () => false,\n },\n {\n title: 'Asset',\n binding: 'assetText',\n editable: () => false,\n sort: true,\n filterable: true,\n },\n {\n title: 'Needed',\n binding: 'needed',\n editable: () => false,\n groupable: false,\n },\n {\n title: 'Assigned',\n fieldName: 'assigned',\n editable: () => false,\n groupable: false,\n },\n ];\n\n this.scenarioLocations = null;\n this.scenarioRecoverySites = null;\n\n $.when(loc, rec)\n .done((loc, rec) => {\n this.scenarioLocations = loc[0];\n this.scenarioRecoverySites = rec[0];\n\n this.recoverySitesData = {};\n for (let i = 0; i < this.scenarioRecoverySites.length; ++i) {\n const rs = DataSources.RecoverySites.get(this.scenarioRecoverySites[i].recoverySiteId);\n\n this.recoverySitesData[rs.id] = {\n translations: rs.translations,\n assets: {},\n };\n\n for (let j = 0; j < rs.recoverySiteAssets.length; ++j) {\n this.recoverySitesData[rs.id].assets[rs.recoverySiteAssets[j].assetId] = {\n capacity: rs.recoverySiteAssets[j].capacity,\n rtos: {},\n };\n }\n\n this.columns.push({\n title: rs.translations[selectedLanguage].name,\n columns: [\n {\n title: 'Cap.',\n template: (dataItem) => {\n return this.recoverySitesData[rs.id].assets[dataItem.assetId].capacity;\n },\n editable: () => false,\n },\n {\n title: 'Avail.',\n template: (dataItem) => {\n return this.recoverySitesData[rs.id].assets[dataItem.assetId].rtos[dataItem.rtoId];\n },\n editable: () => false,\n },\n {\n title: 'Assigned',\n binding: 'allocations_' + rs.id,\n type: 'number',\n required: true,\n validation: {\n required: true,\n min: 0,\n maxRule: (input) => {\n return true;\n // console.log(rs.id);\n // const name = 'allocations_' + rs.id;\n // if (input.is('[name=\\'' + name + '\\']') && input.val() !== '') {\n // const dataItem = $(this.grid)\n // .data('kendoGrid')\n // .dataItem(input.closest('tr'));\n\n // input.attr('data-maxRule-msg', 'Cannot assign more than available...');\n\n // // check if asset exists in recovery site (most probably exists\n // if (this.recoverySitesData[rs.id].assets[dataItem.assetId] == null) {\n // this.recoverySitesData[rs.id].assets[dataItem.assetId] = {\n // capacity: 0,\n // rtos: {},\n // };\n\n // const rtos = DataSources.RTOScales.data();\n // for (let j = 0; j < rtos.length; ++j) {\n // this.recoverySitesData[rs.id].assets[dataItem.assetId].rtos[rtos[j].id] = 0;\n // }\n // }\n\n // return input.val() <= this.recoverySitesData[rs.id].assets[dataItem.assetId].rtos[dataItem.rtoId];\n // }\n\n // return true;\n },\n step: 1,\n },\n },\n ],\n });\n }\n\n super.customInit(resolve, reject);\n })\n .fail((e) => {\n console.log('fail', e);\n });\n }\n\n init() {\n super.init();\n }\n\n firstDataBound(sender, data) {\n super.firstDataBound(sender, data);\n\n $('[name=\"Add-UnavailableLocation\"]')\n .off('click')\n .on('click', () => this.addUnavailableLocations());\n $('[name=\"Add-RecoverySites\"]')\n .off('click')\n .on('click', () => this.addRecoverySites());\n\n $('[name=\"Remove-UnavailableLocation\"]')\n .off('click')\n .on('click', () => this.removeUnavailableLocations());\n $('[name=\"Remove-RecoverySites\"]')\n .off('click')\n .on('click', () => this.removeRecoverySites());\n\n $('[name=\"Refresh-Needs\"]')\n .off('click')\n .on('click', () => this.refreshNeeds());\n }\n\n dataBound(sender, data) {\n super.dataBound(sender, data);\n $.each(data, (i, row) => {\n $(`tr[data-uid=\"${row.uid}\"] td:nth-child(${4 + this.hiddenColumns.length})`)\n .css('background-color', row.color);\n });\n }\n\n setCustomGridProperties(grid) {\n super.setCustomGridProperties(grid);\n\n // grid.pageable = true;\n grid.groupable = true;\n\n grid.columns[grid.columns.length - 1].command = ['edit'];\n grid.toolbar = [\n { template: 'Add Unavailable Locations' },\n { template: 'Add Recovery Sites' },\n\n { template: 'Remove Unavailable Locations' },\n { template: 'Remove Recovery Sites' },\n\n { template: 'Refresh from BIA' },\n ];\n\n // const collapsed = {};\n\n // grid.groupCollapse = (e) => {\n // collapsed[e.element[0].rowIndex] = true;\n // };\n\n // grid.groupExpand = (e) => {\n // collapsed[e.element[0].rowIndex] = false;\n // };\n\n grid.group = (e) => {\n // show columns not in groups\n for (let i = 0; i < this.hiddenColumns.length; ++i) {\n let found = false;\n for (let j = 0; j < e.groups.length; ++j) {\n if (e.groups[j].field === this.hiddenColumns[i]) {\n found = true;\n break;\n }\n }\n\n if (!found) {\n e.sender.showColumn(this.hiddenColumns[i]);\n this.hiddenColumns.splice(i, 1);\n --i;\n }\n }\n\n // hide new columns\n for (let i = 0; i < e.groups.length; ++i) {\n let found = false;\n for (let j = 0; j < this.hiddenColumns.length; ++j) {\n if (e.groups[i].field === this.hiddenColumns[j]) {\n found = true;\n break;\n }\n }\n\n if (!found) {\n e.sender.hideColumn(e.groups[i].field);\n this.hiddenColumns.push(e.groups[i].field);\n }\n }\n };\n\n const databinding = grid.dataBinding;\n grid.dataBinding = (e) => {\n databinding.call(e.sender, e);\n\n // ypologismos ton available\n const data = grid.dataSource.data();\n\n const rtos = DataSources.RTOScales.data();\n\n for (let i = 0; i < this.scenarioRecoverySites.length; ++i) {\n const rs = DataSources.RecoverySites.get(this.scenarioRecoverySites[i].recoverySiteId);\n\n for (const k in this.recoverySitesData[rs.id].assets) {\n for (let j = 0; j < rtos.length; ++j) {\n this.recoverySitesData[rs.id].assets[k].rtos[rtos[j].id] = this.recoverySitesData[rs.id].assets[k].capacity;\n }\n }\n }\n\n $.each(data, (i, row) => {\n let sum = 0;\n for (let i = 0; i < this.scenarioRecoverySites.length; ++i) {\n const rs = this.scenarioRecoverySites[i].recoverySiteId;\n\n // check if asset exists in recovery site\n if (this.recoverySitesData[rs].assets[row.assetId] == null) {\n this.recoverySitesData[rs].assets[row.assetId] = {\n capacity: 0,\n rtos: {},\n };\n\n const rtos = DataSources.RTOScales.data();\n for (let j = 0; j < rtos.length; ++j) {\n this.recoverySitesData[rs].assets[row.assetId].rtos[rtos[j].id] = 0;\n }\n }\n\n this.recoverySitesData[rs].assets[row.assetId].rtos[row.rtoId] -= row['allocations_' +\n rs];\n\n sum += row['allocations_' + rs];\n }\n\n row.assigned = sum;\n\n if (sum === row.needed) {\n row.color = '#00ff00';\n } else if (sum > row.needed) {\n row.color = '#ffbb00';\n } else {\n row.color = '#ff0000';\n }\n });\n };\n }\n\n addRecoverySites() {\n const content = '';\n\n Helpers.showPopUp2({\n content: content,\n title: 'Add Recovery Sites',\n initOpen: () => {\n $('#recoverySites')\n .kendoMultiSelect({\n autoClose: false,\n dataSource: DataSources.GroupableRecoverySite(selectedLanguage),\n itemTemplate: (dataItem) => {\n let disabled = null;\n let message = '';\n for (let j = 0; j < this.scenarioLocations.length; ++j) {\n if (this.scenarioLocations[j].locationId === dataItem.locationId) {\n disabled = 'k-state-disabled';\n message = 'Recovery Site\\'s location is unavailable';\n break;\n }\n }\n\n for (let j = 0; j < this.scenarioRecoverySites.length; ++j) {\n if (this.scenarioRecoverySites[j].recoverySiteId === dataItem.id) {\n disabled = 'k-state-disabled';\n message = 'Recovery Site already in list';\n break;\n }\n }\n\n return String.format(\n '{2}', disabled,\n disabled ? message : '', dataItem.name,\n );\n },\n select: (e) => {\n if ($(e.item)\n .find('span.k-state-disabled').length > 0) {\n e.preventDefault();\n }\n },\n dataTextField: 'name',\n dataValueField: 'id',\n });\n },\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n kendo.ui.progress($(this.grid), true);\n\n const di = $('#recoverySites')\n .data('kendoMultiSelect')\n .value();\n const ret = [];\n for (let i = 0; i < di.length; ++i) {\n ret.push({ recoverySiteId: di[i] });\n }\n\n const post = $.ajax({\n type: 'POST',\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Strategies/' +\n this.scenario.strategyId + '/StrategyScenarios/' + this.scenario.id +\n '/recovery_sites/',\n data: JSON.stringify(ret),\n contentType: 'application/json',\n });\n\n $.when(post)\n .done(() => {\n this.destroy();\n this.show();\n this.init();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n },\n },\n {\n text: 'Cancel',\n action: () => true,\n },\n ],\n });\n }\n\n addUnavailableLocations() {\n const content = '';\n\n Helpers.showPopUp2({\n content: content,\n title: 'Add Unavailable Locations',\n initOpen: () => {\n $('#locations')\n .kendoMultiSelect({\n autoClose: false,\n dataSource: DataSources.GroupableLocations(selectedLanguage),\n itemTemplate: (dataItem) => {\n let disabled = '';\n for (let j = 0; j < this.scenarioLocations.length; ++j) {\n if (this.scenarioLocations[j].locationId === dataItem.id) {\n disabled = 'k-state-disabled';\n dataItem.selectable = false;\n break;\n }\n }\n\n return String.format('{1}', disabled, dataItem.name);\n },\n select: (e) => {\n if ($(e.item)\n .find('span.k-state-disabled').length > 0) {\n e.preventDefault();\n }\n },\n dataTextField: 'name',\n dataValueField: 'id',\n });\n },\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const di = $('#locations')\n .data('kendoMultiSelect')\n .value();\n const ret = [];\n for (let i = 0; i < di.length; ++i) {\n ret.push({ locationId: di[i] });\n }\n\n const post = $.ajax({\n type: 'POST',\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Strategies/' +\n this.scenario.strategyId + '/StrategyScenarios/' + this.scenario.id + '/locations/',\n data: JSON.stringify(ret),\n contentType: 'application/json',\n });\n\n $.when(post)\n .done(() => {\n this.destroy();\n this.show();\n this.init();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n },\n },\n {\n text: 'Cancel',\n action: () => true,\n },\n ],\n });\n }\n\n removeRecoverySites() {\n const content = '';\n const filter = [];\n for (let i = 0; i < this.scenarioRecoverySites.length; ++i) {\n filter.push({\n field: 'id',\n operator: 'eq',\n value: this.scenarioRecoverySites[i].recoverySiteId,\n });\n }\n\n if (filter.length === 0) {\n Helpers.showError('No recovery sites to remove.');\n return;\n }\n\n Helpers.showPopUp2({\n content: content,\n title: 'Remove Recovery Sites',\n initOpen: () => {\n $('#recoverySites')\n .kendoMultiSelect({\n autoClose: false,\n dataSource: {\n data: DataSources.GroupableRecoverySite(selectedLanguage)\n .data(),\n filter: {\n logic: 'or',\n filters: filter,\n },\n group: 'type',\n },\n dataTextField: 'name',\n dataValueField: 'id',\n });\n },\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n kendo.ui.progress($(this.grid), true);\n\n const di = $('#recoverySites')\n .data('kendoMultiSelect')\n .value();\n const ret = [];\n for (let i = 0; i < di.length; ++i) {\n ret.push({ recoverySiteId: di[i] });\n }\n\n const post = $.ajax({\n type: 'DELETE',\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Strategies/' +\n this.scenario.strategyId + '/StrategyScenarios/' + this.scenario.id +\n '/recovery_sites/',\n data: JSON.stringify(ret),\n contentType: 'application/json',\n });\n\n $.when(post)\n .done(() => {\n this.destroy();\n this.show();\n this.init();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n },\n },\n {\n text: 'Cancel',\n action: () => true,\n },\n ],\n });\n }\n\n\n removeUnavailableLocations() {\n const content = '';\n\n const filter = [];\n for (let i = 0; i < this.scenarioLocations.length; ++i) {\n filter.push({\n field: 'id',\n operator: 'eq',\n value: this.scenarioLocations[i].locationId,\n });\n }\n\n if (filter.length === 0) {\n Helpers.showError('No locations to remove.');\n return;\n }\n\n Helpers.showPopUp2({\n content: content,\n title: 'Remove Unavailable Locations',\n initOpen: () => {\n $('#locations')\n .kendoMultiSelect({\n autoClose: false,\n dataSource: {\n data: DataSources.GroupableLocations(selectedLanguage)\n .data(),\n filter: {\n logic: 'or',\n filters: filter,\n },\n group: 'type',\n },\n dataTextField: 'name',\n dataValueField: 'id',\n });\n },\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const di = $('#locations')\n .data('kendoMultiSelect')\n .value();\n const ret = [];\n for (let i = 0; i < di.length; ++i) {\n ret.push({ locationId: di[i] });\n }\n\n const post = $.ajax({\n type: 'DELETE',\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Strategies/' +\n this.scenario.strategyId + '/StrategyScenarios/' + this.scenario.id + '/locations/',\n data: JSON.stringify(ret),\n contentType: 'application/json',\n });\n\n $.when(post)\n .done(() => {\n this.destroy();\n this.show();\n this.init();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n },\n },\n {\n text: 'Cancel',\n action: () => true,\n },\n ],\n });\n }\n\n refreshNeeds(){\n const content = 'Are you sure you want to refresh partition needs, based on new BIA data?';\n\n Helpers.showPopUp2({\n content: content,\n title: 'Refresh Strategy Scenario Needs',\n actions: [\n {\n text: 'Yes',\n primary: true,\n action: () => {\n const post = $.ajax({\n type: 'POST',\n url: `/api/masterplans/${selectedMasterPlan.id}/bc/Strategies/${this.scenario.strategyId}/StrategyScenarios/${this.scenario.id}/RefreshNeeds`,\n contentType: 'application/json',\n });\n\n $.when(post)\n .done(() => {\n this.destroy();\n this.show();\n this.init();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n },\n },\n {\n text: 'Cancel',\n action: () => true,\n },\n ],\n });\n }\n}\n","import { selectedLanguage, setCurrent } from '../../main.js';\nimport FormBase from '../FormBase.js';\nimport StrategyScenario from './StrategyScenario.js';\n\nexport default class Strategies extends FormBase {\n constructor() {\n super('Strategies', 'general');\n this.api = 'bc/Strategies';\n\n this.columns = [\n {\n title: 'Active',\n binding: 'active',\n type: 'boolean',\n defaultValue: true,\n width: 100,\n sort: 'desc',\n },\n {\n title: 'Name',\n binding: 'name',\n required: true,\n sort: 'asc',\n translatable: true,\n defaultValue: 'New Strategy',\n },\n ];\n\n this.confirmation = 'translations.' + selectedLanguage + '.name';\n\n this.StrategyScenarioColumns = [\n {\n title: 'Name',\n binding: 'name',\n required: true,\n sort: 'asc',\n translatable: true,\n defaultValue: 'New Scenario',\n },\n ];\n\n this.preventBinding = false;\n }\n\n setCustomGridProperties(grid) {\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n e.sender.expandRow(e.sender.tbody.find('tr.k-master-row')\n .first());\n };\n\n // Details\n grid.detailTemplate = 'Scenarios:';\n\n grid.detailInit = (e) => {\n const StrategyScenariosGrid = this.createGrid({\n api: 'bc/Strategies/' + e.data.id + '/StrategyScenarios',\n columns: this.StrategyScenarioColumns,\n confirmation: this.confirmation,\n selector: '[name=\"scenarios\"]',\n menu: {\n open: {\n title: 'Open',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem($(e.target));\n\n this.openScenario(item);\n },\n },\n edit: this.menu.edit,\n delete: this.menu.delete,\n },\n });\n\n const that = this;\n StrategyScenariosGrid.columns[StrategyScenariosGrid.columns.length - 1].command.unshift({\n name: 'test',\n text: 'Open',\n click(e) {\n const row = $(e.currentTarget)\n .closest('tr');\n const dataItem = this.dataItem(row);\n\n that.openScenario(dataItem);\n },\n });\n\n $('
')\n .appendTo(e.detailCell)\n .kendoGrid(StrategyScenariosGrid);\n };\n }\n\n openScenario(scenario) {\n kendo.ui.progress($(this.grid), true);\n\n const dt = new StrategyScenario(scenario);\n\n const required = dt.require();\n const promises = [];\n for (let i = 0; i < required.length; ++i) {\n promises.push(required[i].read());\n }\n\n Promise.all(promises)\n .then(() => {\n this.hide();\n this.destroy();\n\n dt.init();\n dt.show();\n\n setCurrent(dt);\n });\n }\n}\n","import FormBase from './FormBase.js';\nimport { jwt, selectedMasterPlan, selectedLanguage, setCurrent, userRole, navigateTo } from '../main.js';\nimport { Helpers } from '../Core/Helpers.js';\nimport Constants from '../Core/constants.js';\nimport DataSources from '../Core/datasources';\n\nexport default class AllDeployments extends FormBase {\n constructor() {\n super('User Deployments', 'general');\n this.api = 'allDeployments';\n\n this.DeploymentTypeName = {\n 1: 'Classification',\n 2: 'Risk Assessment',\n 3: 'Risk Treatment',\n 4: 'Risk Acceptance',\n };\n this.DeploymentFamilyName = {\n 1: 'Business Continuity',\n 2: 'Information Security',\n };\n\n this.subTitleButtons.push({\n name: 'exportExcel',\n icon: 'excel.png',\n text: 'Export',\n actions: () => {\n const grid = $(this.grid)\n .data('kendoGrid');\n grid.saveAsExcel();\n },\n });\n\n if (userRole.includes(Constants.RoleTypes.ISRA.Administrator)) {\n this.subTitleButtons.push({\n type: 'raw',\n template: 'Filter:
',\n });\n }\n\n this.columns = [\n {\n title: 'Family',\n binding: 'family',\n template: (dataItem) => {\n return this.DeploymentFamilyName[dataItem.family];\n },\n groupHeaderTemplate: (e) => {\n return this.DeploymentFamilyName[e.value];\n },\n hidden: true,\n },\n {\n title: 'References',\n binding: 'translations[\"' + selectedLanguage + '\"].for',\n template: (dataItem) => {\n if (dataItem.family === 1) { // continuity\n return 'Partition: ' + dataItem.translations[selectedLanguage].for;\n } else if (dataItem.family === 2) { // isra\n return 'System: ' + dataItem.translations[selectedLanguage].for;\n }\n },\n groupHeaderTemplate: (e) => {\n return e.value;\n },\n hidden: true,\n },\n {\n title: 'Version',\n binding: 'version',\n groupHeaderTemplate: (e) => {\n if (e.value == null) {\n return '';\n }\n\n return e.value;\n },\n hidden: true,\n },\n {\n title: 'Type',\n binding: 'type',\n template: (dataItem) => {\n return this.DeploymentTypeName[dataItem.type];\n },\n groupHeaderTemplate: (e) => {\n if (e.value == null) {\n return '';\n }\n\n return this.DeploymentTypeName[e.value];\n },\n hidden: true,\n },\n {\n title: ' ',\n fieldName: 'comment',\n template: (dataItem) => {\n const com = dataItem.translations[selectedLanguage].comment;\n if (com == null || com === '') {\n return '';\n } else {\n return ``;\n }\n },\n width: '40px',\n editable: false,\n },\n {\n title: 'Name',\n binding: 'translations[\"' + selectedLanguage + '\"].name',\n sort: 'asc',\n filterable: true,\n },\n {\n binding: 'status',\n title: 'Deployment Status',\n template: (dataItem) => {\n let txt = '';\n if (dataItem.message != null) {\n txt += '';\n }\n txt += '';\n\n txt += Constants.DeploymentStatusTranslations[dataItem.status].translations[selectedLanguage];\n return txt;\n },\n width: '200px',\n },\n {\n binding: 'userAction',\n title: 'User Status',\n template: (dataItem) => {\n return Constants.DeploymentUserActionTypeTranslations[dataItem.userAction][selectedLanguage];\n },\n width: '200px',\n },\n {\n binding: 'dueDate',\n title: 'Due Date',\n template: (dataItem) => {\n if (dataItem.dueDate == null) {\n return 'Not set';\n }\n\n return kendo.toString(new Date(dataItem.dueDate), 'dd MMM yyyy');\n },\n width: '120px',\n },\n {\n binding: 'currentUser',\n title: 'Current User',\n template: (dataItem) => {\n let tooltip = 'Data Entry:';\n for (let i = 0; i < dataItem.dataEntryUsers.length; ++i) {\n tooltip += ' -> ' + dataItem.dataEntryUsers[i];\n }\n\n tooltip += ' Approval Path: ';\n\n for (let i = 0; i < dataItem.approvalPathUsers.length; ++i) {\n tooltip += ' ' + dataItem.approvalPathUsers[i];\n }\n\n const message = `\n\n \n\n${dataItem.currentUser}`;\n\n return message;\n },\n },\n ];\n }\n\n finishedShow() {\n const standardizations = [\n {\n id: 0,\n name: 'None',\n },\n ...DataSources.IsraStandardizations.view(),\n ];\n\n $('#standardizationFilter')\n .kendoDropDownList({\n dataTextField: 'name',\n dataSource: { data: standardizations },\n change: (e) => {\n const filter = [];\n const value = e.sender.value();\n\n if (value.id !== 0) {\n const apps = value.applications;\n if (apps.length === 0) {\n filter.push({\n field: 'references',\n operator: 'eq',\n value: '-1',\n });\n }\n\n for (let i = 0; i < apps.length; ++i) {\n filter.push({\n field: 'references',\n operator: 'eq',\n value: apps[i].applicationId,\n });\n }\n }\n\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .filter({\n logic: 'or',\n filters: filter,\n });\n },\n });\n }\n\n init() {\n const div = $(this.grid);\n\n const grid = Helpers.getDefaultGrid(selectedMasterPlan, this.api);\n grid.editable = false;\n\n this.dataSource = Helpers.createDataSource(\n selectedMasterPlan, this.api, jwt, this.columns, null, null,\n null, { parse: this.parseData },\n );\n this.dataSource.group = [\n { field: 'family' },\n { field: 'translations[\"' + selectedLanguage + '\"].for' },\n { field: 'version' },\n { field: 'type' },\n ];\n\n grid.dataSource = this.dataSource;\n\n const cols = Helpers.createColumns(selectedMasterPlan, this.columns);\n cols.splice(-1);\n cols.push({\n command: [\n {\n text: 'Open',\n click: (e) => this.openDetails(e),\n }],\n width: '100px',\n });\n grid.columns = cols;\n\n // remove buttons\n delete grid.toolbar;\n grid.selectable = false;\n\n // double click opens deployment\n this.firstDataBound = true;\n grid.dataBound = (e) => {\n if (this.firstDataBound) {\n this.firstDataBound = false;\n const grid = $(this.grid)\n .data('kendoGrid');\n\n grid.element.on('dblclick', 'tbody tr[data-uid]', (e) => {\n this.openDetails(e);\n });\n }\n\n // hide unecessary groupping\n if (e.sender.dataSource._group.length > 0) {\n $('tbody .k-grouping-row')\n .filter(function () {\n return $(this)\n .find('p')[0].innerText.trim() === '';\n })\n .hide();\n } else {\n $('tr td:empty')\n .parent()\n .show();\n }\n\n // color table\n const grid = e.sender;\n const data = grid.dataSource.data();\n $.each(data, (i, row) => {\n if (row.status === Constants.DeploymentStatus.Finished) {\n $('tr[data-uid=\"' + row.uid + '\"] ')\n .addClass('deployment-finished');\n } else if (new Date(row.dueDate) < new Date()) {\n $('tr[data-uid=\"' + row.uid + '\"] ')\n .addClass('deployment-warning');\n } else {\n $('tr[data-uid=\"' + row.uid + '\"] ')\n .addClass('deployment-pending');\n }\n });\n };\n\n div.kendoGrid(grid);\n }\n\n openDetails(e) {\n if ($(this.grid)\n .data('kendoGrid') == null) {\n return;\n }\n\n let row = null;\n\n if (e != null) {\n row = $(e.currentTarget)\n .closest('tr');\n } else {\n row = $(this.grid)\n .data('kendoGrid')\n .select();\n }\n\n const dataItem = $(this.grid)\n .data('kendoGrid')\n .dataItem(row);\n\n let dt = null;\n\n let navigate = null;\n if (dataItem.family === Constants.DeploymentFamily.Continuity) {\n navigate = {\n name: 'bcm.deployment',\n params: {\n id: dataItem.id\n },\n };\n // dt = new DeploymentTabs(dataItem);\n } else if (dataItem.family === Constants.DeploymentFamily.Isra) {\n if (dataItem.type === Constants.DeploymentType.Classification) {\n // dt = new IsraClassificationDeploymentQuestionnaire(dataItem);\n navigate = {\n name: 'isra.deployment.classification',\n params: {\n id: dataItem.id\n },\n };\n } else if (dataItem.type === Constants.DeploymentType.Assessment) {\n // dt = new IsraRiskManagementAssessmentQuestionnaire(dataItem);\n navigate = {\n name: 'isra.deployment.assessment',\n params: {\n id: dataItem.id\n },\n };\n } else if (dataItem.type === Constants.DeploymentType.Treatment) {\n // dt = new IsraRiskManagementTreatmentQuestionnaire(dataItem);\n navigate = {\n name: 'isra.deployment.treatment',\n params: {\n id: dataItem.id\n },\n };\n } else if (dataItem.type === Constants.DeploymentType.Acceptance) {\n navigate = {\n name: 'isra.deployment.acceptance',\n params: {\n id: dataItem.id\n },\n };\n // dt = new IsraRiskManagementAcceptanceQuestionnaire(dataItem);\n }\n }\n\n if (navigate == null) {\n Helpers.showError('Unimplemented deployment type...', 'Error');\n return;\n }\n\n this.hide();\n this.destroy();\n\n navigateTo(navigate);\n\n // const required = dt.require();\n // const promises = [];\n // for (let i = 0; i < required.length; ++i) {\n // promises.push(required[i].read());\n // }\n\n // Promise.all(promises)\n // .then(() => {\n // dt.init();\n // dt.show();\n // });\n\n // setCurrent(dt);\n }\n\n destroy() {\n if ($(this.grid)\n .data('kendoGrid') != null) {\n $(this.grid)\n .data('kendoGrid')\n .element\n .off('dblclick', 'tbody tr[data-uid]');\n }\n\n super.destroy();\n }\n\n parseData(data) {\n for (let i = 0; i < data.length; ++i) {\n if (data[i].start != null) {\n data[i].start = data[i].start + 'Z';\n }\n\n if (data[i].dueDate != null) {\n data[i].dueDate = data[i].dueDate + 'Z';\n }\n\n if (data[i].finish != null) {\n data[i].finish = data[i].finish + 'Z';\n }\n }\n return data;\n }\n\n hasChanges() {\n return false;\n }\n\n require() {\n if (userRole.includes(Constants.RoleTypes.ISRA.Administrator)) {\n return [DataSources.IsraStandardizations];\n }\n\n return [];\n }\n}\n","import { DocumentFileFormat } from '@/dtos/all';\nimport DownloadService from '@/services/DownloadService';\nimport Constants from '../../Core/constants.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport { selectedLanguage, selectedMasterPlan } from '../../main.js';\nimport DeploymentQuestionnaireFormBase from '../DeploymentQuestionnaireFormBase.js';\n\nexport default class IsraRiskManagementAssessmentQuestionnaire extends DeploymentQuestionnaireFormBase {\n constructor(deployment) {\n super(\n deployment,\n `/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${deployment.riskManagementId}/AssessmentQuestionnaires/${deployment.id}`,\n 'general',\n 'ISRA Questionnaire - \\'{0}\\'',\n );\n\n this.api = `isra/RiskManagements/${deployment.riskManagementId}/AssessmentQuestionnaires/${deployment.id}/questions`;\n\n // this.questions = DataSources.RiskDeploymentQuestionnaireQuestion(deployment);\n\n this.questions = this.datasource;\n\n this.subTitleButtons.push({\n name: 'deploymentExportExcel',\n icon: 'excel.png',\n text: 'Export',\n actions: () => {\n //\n kendo.ui.progress($(this.grid), true);\n\n $.get(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${deployment.riskManagementId}/DownloadAssessmentQuestionnaire/${deployment.id}`)\n .then(function (data) {\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Unknown,\n });\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($('.grid'), false);\n });\n },\n });\n\n this.columns = [\n {\n title: ' ',\n fieldName: 'questionComment',\n template: (dataItem) => {\n const title = Helpers.sanitizeHTML(dataItem.question.translations[selectedLanguage].comment)\n .replace('\\n', '
');\n\n return ` `;\n },\n width: '40px',\n editable: false,\n },\n {\n title: 'Id',\n fieldName: 'identification',\n template: (dataItem) => {\n return Helpers.sanitizeHTML(dataItem.question.controlId);\n },\n width: '55px',\n editable: false,\n },\n {\n title: 'Control',\n binding: 'questionId',\n template: (dataItem) => {\n return Helpers.sanitizeHTML(dataItem.question.translations[selectedLanguage].question)\n .replace('\\n', '
');\n },\n editable: false,\n },\n {\n title: 'Answer',\n binding: 'answerId',\n width: 300,\n template: (dataItem) => {\n if (dataItem.answerId == null) {\n return '';\n }\n\n const q = DataSources.IsraAnswers.get(dataItem.answerId);\n\n if (q == null) {\n return '';\n }\n\n return Helpers.sanitizeHTML(q.translations[selectedLanguage].answer);\n },\n editor: (container, options) => this.answerSelector(container, options),\n },\n {\n title: 'Comments',\n binding: 'comments',\n },\n ];\n }\n\n require() {\n return [DataSources.IsraAnswers];\n }\n\n setCustomMenuItems(menu) {\n if (this.readonly) {\n delete menu.edit;\n delete menu.delete;\n } else {\n super.setCustomMenuItems(menu);\n }\n }\n\n setCustomGridProperties(grid) {\n // remove add new record\n delete grid.toolbar;\n // grid.toolbar.splice(0, 1);\n\n let databound;\n\n // if readonly disable double click from databound\n if (this.readonly) {\n databound = () => {\n };\n } else {\n databound = grid.dataBound;\n }\n\n if (!this.readonly) {\n grid.columns[grid.columns.length - 1].command = ['edit'];\n } else {\n grid.columns[grid.columns.length - 1].command = [];\n }\n\n // const firstDataBound = true;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n // if (e.sender.dataSource._group.length > 0) {\n // $('tbody .k-grouping-row')\n // .filter(function (index) {\n // return $(this)\n // .find('p')[0].innerText.trim() === '';\n // })\n // .hide();\n // } else {\n // $('tr td:empty')\n // .parent()\n // .show();\n // }\n\n const data = e.sender.dataSource.data();\n\n $.each(data, (i, row) => {\n if (row.answerId == null) {\n $('tr[data-uid=\"' + row.uid + '\"] ')\n .addClass('deployment-pending');\n }\n });\n };\n }\n\n // setCustomDatasourceProperties(source) {\n // }\n\n async checkAllQuestionsFinished() {\n const data = $(this.grid)\n .data('kendoGrid')\n .dataSource\n .data();\n\n const found = [];\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].answerId == null) {\n found.push(data[i].question.id);\n }\n }\n\n if (found.length > 0) {\n let length = 0;\n let txt = '';\n for (let i = 0; i < found.length; ++i) {\n txt += found[i];\n if (i < found.length - 1) {\n length += ('' + found[i]).length + 2;\n txt += ', ';\n if (length > 60) {\n txt += '
';\n length = 0;\n }\n }\n }\n\n const promise = new Promise((resolve) => {\n Helpers.showPopUp2({\n title: 'Approve \"' + this.deployment.translations[selectedLanguage].name + '\"',\n content: 'You have not answered all questions.
Are you sure you want to proceed with the approval?
Unanswered Questions:
' +\n txt,\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n resolve(true);\n },\n },\n {\n text: 'Cancel',\n action: () => {\n resolve(false);\n },\n },\n ],\n });\n });\n return promise;\n }\n return true;\n }\n\n async customApproveCheck() {\n return await this.checkAllQuestionsFinished();\n }\n\n answerSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n optionLabel: Constants.NoDeploymentQuestionnaireAnswer,\n optionLabelTemplate: () => {\n return '';\n },\n valuePrimitive: true,\n template: (dataItem) => {\n if (dataItem == null) {\n return '';\n }\n\n return Helpers.sanitizeHTML(dataItem.translations[selectedLanguage].answer);\n },\n valueTemplate: (dataItem) => {\n if (dataItem == null) {\n return '';\n }\n\n return Helpers.sanitizeHTML(dataItem.translations[selectedLanguage].answer);\n },\n dataValueField: 'id',\n dataSource: {\n data: DataSources.IsraAnswers.data(),\n filter: {\n field: 'answerGroupId',\n operator: 'eq',\n value: options.model.answerGroupId,\n },\n },\n });\n }\n}\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentNotifications.vue?vue&type=style&index=0&id=43e73039&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentNotifications.vue?vue&type=style&index=0&id=43e73039&scoped=true&lang=css&\"","import FormBase from '../../FormBase.js';\nimport { selectedLanguage, userRole } from '../../../main.js';\nimport Constants from '../../../Core/constants.js';\n\nexport default class FinancialImpactQuestions extends FormBase {\n constructor() {\n super('Financial Impact Questions', 'general', {\n readOnly: !userRole.includes(Constants.RoleTypes.BCM.Administrator),\n });\n this.api = 'bc/FinancialImpactQuestions';\n\n this.confirmation = 'translation.' + selectedLanguage + '.question';\n\n this.columns = [\n {\n title: 'Question',\n binding: 'question',\n defaultValue: 'New Question',\n required: true,\n translatable: true,\n sort: 'asc',\n },\n {\n title: 'Explanation',\n binding: 'explanation',\n defaultValue: 'New Explanation',\n required: false,\n translatable: true,\n },\n ];\n }\n}\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedPartitions.vue?vue&type=style&index=0&id=d62996a6&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedPartitions.vue?vue&type=style&index=0&id=d62996a6&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestUserView.vue?vue&type=style&index=0&id=6822979b&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestUserView.vue?vue&type=style&index=0&id=6822979b&scoped=true&lang=css&\"","import FormBase from './FormBase.js';\nrequire('chart.js');\nrequire('chartjs-plugin-datalabels');\n\nexport default class DashboardBase extends FormBase {\n constructor({ div = 'dashboard' } = {}) {\n super('', div);\n }\n\n showTitle() {\n const title = $('#dashboardTitle');\n if (title.length === 0) {\n $('#pageTitle')\n .append('
');\n }\n\n this.showSubTitle();\n }\n\n addDashboardItem({ stats = {}, rows = 1, cols = 1 }) {\n const style = 'grid-row: span ' + rows + '; grid-column: span ' + cols + ';';\n const height = (250 + ((rows - 1) * 300)) + 'px';\n //\n\n let titleSection = '';\n if (stats.title != null) {\n titleSection = '
' + stats.title + '
';\n }\n\n let content = '';\n if (stats.content != null) {\n content = stats.content;\n }\n\n const item = '
' + titleSection +\n '
' + content + '
';\n\n $(this.div)\n .append(item);\n }\n\n // createRow({ stats = [], size = stats.length }) {\n // for (let i = 0; i < stats.length; ++i) {\n // let classes = 'dashboard-item ';\n // if (size === 1) {\n // classes += 'dashboard-single-item';\n // } else if (size === 2) {\n // classes += 'dashboard-double-item';\n // } else if (size === 3) {\n // classes += 'dashboard-triple-item';\n // } else {\n // classes += 'dashboard-quadruple-item';\n // }\n\n // let titleSection = '';\n // if (stats[i].title != null) {\n // titleSection = '
' + stats[i].title + '
';\n // }\n // }\n // }\n\n getRandomColor() {\n const letters = '0123456789ABCDEF';\n let color = '#';\n for (let i = 0; i < 6; i++) {\n color += letters[Math.floor(Math.random() * 16)];\n }\n return color;\n }\n\n getDefaultChart({\n type = 'pie',\n // title = 'No Title',\n labels = ['None'],\n // tooltips = ['empty'],\n datasets = [\n {\n title: 'No Dataset',\n data: [0],\n backgroundColor: ['red'],\n }],\n options = {},\n }) {\n const scales = type === 'bar'\n ? {\n yAxes: [\n {\n ticks: {\n beginAtZero: true,\n },\n }],\n xAxes: [\n {\n ticks: {\n autoSkip: false,\n },\n }],\n }\n : {};\n\n if (Array.isArray(datasets)) {\n for (let i = 0; i < datasets.length; ++i) {\n if (datasets[i].backgroundColor != null && Array.isArray(datasets[i].backgroundColor)) {\n for (let j = 0; j < datasets[i].backgroundColor.length; ++j) {\n if (datasets[i].backgroundColor[j] == null) {\n datasets[i].backgroundColor[j] = '#dddddd';\n }\n }\n } else if (datasets[i].backgroundColor == null) {\n if (type !== 'radar') {\n datasets[i].backgroundColor = '#dddddd';\n }\n }\n }\n }\n\n if (options.scales != null) {\n if (options.scales.yAxes != null) {\n scales.yAxes = options.scales.yAxes;\n }\n\n if (options.scales.xAxes != null) {\n scales.xAxes = options.scales.xAxes;\n }\n }\n\n return {\n type: type,\n data: {\n labels: labels,\n datasets,\n },\n options: {\n ...options,\n scaleShowValues: true,\n scales,\n responsive: true,\n // rotation: ,\n maintainAspectRatio: false,\n tooltips: {\n callbacks: {\n label: options.tooltipCallback || function (tooltipItem, data) {\n if (data.datasets[tooltipItem.datasetIndex].tooltips != null) {\n return data.datasets[tooltipItem.datasetIndex].tooltips[tooltipItem.index];\n }\n },\n },\n },\n plugins: {\n datalabels: {\n font: {\n size: 16,\n weight: 'bold',\n },\n display: function (context) {\n const index = context.dataIndex;\n const value = context.dataset.data[index];\n return value > 0;\n },\n },\n },\n },\n };\n }\n}\n","import FormBase from '../FormBase.js';\n\nexport default class IsraAnswerGroups extends FormBase {\n constructor() {\n super('Answer Groups', 'general');\n this.api = 'isra/AnswerGroups';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n required: false,\n sort: 'asc',\n translatable: true,\n },\n ];\n }\n}\n","import { PersistentStorage } from '@/core/storage';\nimport router from '@/router';\nimport { Helpers } from './Core/Helpers.js';\nimport Constants from './Core/constants';\nimport DataSources from './Core/datasources.js';\nimport AllDeployments from './forms/AllDeployments.js';\nimport ApplicationSettings from './forms/ApplicationSettings.js';\nimport Licences from './forms/Licences.js';\nimport BcmDashboard from './forms/bc/Dashboard.js';\nimport OrganizationStructure from './forms/bc/OrganizationStructure.js';\nimport ProjectManagement from './forms/bc/ProjectManagement.js';\nimport QuickView from './forms/bc/QuickView.js';\nimport Strategies from './forms/bc/Strategies.js';\nimport BcpDocuments from './forms/bc/bcp/BcpDocuments.js';\nimport BcpGenerator from './forms/bc/bcp/BcpGenerator.js';\nimport BcpTemplates from './forms/bc/bcp/BcpTemplates.js';\nimport Deployments from './forms/bc/bia/Deployments.js';\nimport FinancialImpactQuestions from './forms/bc/bia/FinancialImpactQuestions.js';\nimport OperationalImpactQuestions from './forms/bc/bia/OperationalImpactQuestions.js';\nimport Surveys from './forms/bc/bia/Surveys.js';\nimport DeploymentTabs from './forms/bc/bia/deploymentdetails/DeploymentTabs.js';\nimport Applications from './forms/bc/masterplan/Applications.js';\nimport Assets from './forms/bc/masterplan/Assets.js';\nimport Associates from './forms/bc/masterplan/Associates.js';\nimport CostUnits from './forms/bc/masterplan/CostUnits.js';\nimport FinancialImpactScales from './forms/bc/masterplan/FinancialImpactScales.js';\nimport ImplementationScales from './forms/bc/masterplan/ImplementationScales.js';\nimport LocationGroups from './forms/bc/masterplan/LocationGroups.js';\nimport Locations from './forms/bc/masterplan/Locations.js';\nimport OperationalImpactScales from './forms/bc/masterplan/OperationalImpactScales.js';\nimport Positions from './forms/bc/masterplan/Positions.js';\nimport Rpo from './forms/bc/masterplan/RPO.js';\nimport Rto from './forms/bc/masterplan/RTO.js';\nimport RtoApplications from './forms/bc/masterplan/RTOApplications.js';\nimport RecoverySiteTypes from './forms/bc/masterplan/RecoverySiteTypes.js';\nimport RecoverySites from './forms/bc/masterplan/RecoverySites.js';\nimport Services from './forms/bc/masterplan/Services.js';\nimport RiskControlEvaluations from './forms/bc/risk/RiskControlEvaluations.js';\nimport RiskGroups from './forms/bc/risk/RiskGroups.js';\nimport RiskImpactAreas from './forms/bc/risk/RiskImpactAreas.js';\nimport RiskImpactScales from './forms/bc/risk/RiskImpactScales.js';\nimport RiskLevels from './forms/bc/risk/RiskLevels.js';\nimport RiskProbabilities from './forms/bc/risk/RiskProbabilities.js';\nimport RiskTreatments from './forms/bc/risk/RiskTreatments.js';\nimport Risks from './forms/bc/risk/Risks.js';\nimport IsraAnswerGroups from './forms/isra/AnswerGroups.js';\nimport IsraAnswers from './forms/isra/Answers.js';\nimport IsraAssessments from './forms/isra/Assessments.js';\nimport IsraClassificationDeploymentQuestionnaire from './forms/isra/ClassificationDeploymentQuestionnaire.js';\nimport IsraClassificationDeployments from './forms/isra/ClassificationDeployments.js';\nimport IsraClassificationQuestionnaires from './forms/isra/ClassificationQuestionnaires.js';\nimport IsraClassificationQuestions from './forms/isra/ClassificationQuestions.js';\nimport IsraClassificationScales from './forms/isra/ClassificationScales.js';\nimport IsraControlQuestionnaires from './forms/isra/ControlQuestionnaires.js';\nimport IsraControlQuestions from './forms/isra/ControlQuestions.js';\nimport IsraControlStrengthReductions from './forms/isra/ControlStrengthReductions.js';\nimport IsraControlStrengthScales from './forms/isra/ControlStrengthScales.js';\nimport IsraDashboard from './forms/isra/Dashboard.js';\nimport IsraIctRiskCategories from './forms/isra/IctRiskCategories.js';\nimport IsraImpactScales from './forms/isra/ImpactScales.js';\nimport IsraIsoDomains from './forms/isra/IsoDomains.js';\nimport IsraLikelihoodScales from './forms/isra/LikelihoodScales.js';\nimport IsraProfileQuestions from './forms/isra/ProfileQuestions.js';\nimport IsraQuestionGroups from './forms/isra/QuestionGroups.js';\nimport IsraRiskTreatmentAnsers from './forms/isra/RiskAcceptanceAnswers.js';\nimport IsraRiskControls from './forms/isra/RiskControls.js';\nimport IsraRiskDeployments from './forms/isra/RiskDeployments.js';\nimport IsraRiskManagementAcceptanceQuestionnaire from './forms/isra/RiskManagementAcceptanceQuestionnaire';\nimport IsraRiskManagementAcceptances from './forms/isra/RiskManagementAcceptances';\nimport IsraRiskManagementAssessmentQuestionnaire from './forms/isra/RiskManagementAssessmentQuestionnaire';\nimport IsraRiskManagementAssessmentReview from './forms/isra/RiskManagementAssessmentReview';\nimport IsraRiskManagementAssessments from './forms/isra/RiskManagementAssessments';\nimport IsraRiskManagementControls from './forms/isra/RiskManagementControls';\nimport IsraRiskManagementRiskControls from './forms/isra/RiskManagementRiskControls';\nimport IsraRiskManagementRisks from './forms/isra/RiskManagementRisks';\nimport IsraRiskManagementTreatmentProgress from './forms/isra/RiskManagementTreatmentProgress';\nimport IsraRiskManagementTreatmentQuestionnaire from './forms/isra/RiskManagementTreatmentQuestionnaire';\nimport IsraRiskManagementTreatmentReview from './forms/isra/RiskManagementTreatmentReview';\nimport IsraRiskManagementTreatments from './forms/isra/RiskManagementTreatments';\nimport IsraRiskScales from './forms/isra/RiskScales.js';\nimport IsraRisks from './forms/isra/Risks.js';\nimport IsraRiskTreatmentPlans from './forms/isra/RisktreatmentPlans.js';\nimport IsraStandardizations from './forms/isra/Standardizations';\nimport IsraThreats from './forms/isra/Threats.js';\nimport IsraTreatmentAnswers from './forms/isra/TreatmentAnswers.js';\nimport IsraTreatmentPrioritizationScales from './forms/isra/TreatmentPrioritizationScales.js';\nimport IsraVulnerabilities from './forms/isra/Vulnerabilities.js';\nimport IsraVulnerabilityCategories from './forms/isra/VulnerabilityCategories.js';\nimport CoordinatorTypes from './forms/users/CoordinatorTypes.js';\nimport UserManagement from './forms/users/UserManagement.js';\n\n\nconst jsotp = require('jsotp');\n\nlet selectedMasterPlan;\nconst selectedLanguage = 'en-US';\nlet jwt;\nlet userRole = [];\nlet settings = {};\nlet current;\n\nfunction setJwt(token) {\n jwt = token;\n\n $.ajaxSetup({\n beforeSend: function (req, reqSettings) {\n let base = '';\n if(process != null && process.env != null && process.env.NODE_ENV === 'development'){\n base = 'http://localhost:5000';\n }\n\n const url = reqSettings.url;\n\n if(url[0] === '/'){\n reqSettings.url = base + url;\n }else{\n reqSettings.url = base + '/' + url;\n }\n\n // if (settings.sso === false) {\n req.setRequestHeader('Authorization', jwt);\n // }\n\n if (reqSettings.type !== 'GET') {\n let {userKey, counter} = JSON.parse(PersistentStorage.GetValue('cg_hotp'));\n\n const hotp = jsotp.HOTP(userKey);\n req.setRequestHeader('user-key', hotp.at(counter++));\n\n PersistentStorage.SetValue('cg_hotp', JSON.stringify({userKey, counter}));\n }\n },\n });\n\n $(document).ajaxComplete(function( event, xhr, settings ){\n const reg = new RegExp(\"approve|reject\", \"gi\");\n const exists = reg.test(settings.url);\n\n // if(exists){\n // EntitiesService.UpdateUserTasks();\n // }\n });\n}\n\nfunction setSettings(s){\n settings = s;\n}\n\nfunction setRoles(roles){\n userRole = roles;\n}\n\nfunction changeMasterPlan (masterplan) {\n selectedMasterPlan = masterplan;\n if(masterplan != null){\n DataSources.ChangeMasterPlan();\n }\n};\n\nfunction setCurrent(id) {\n current = id;\n}\n\nfunction navigateTo({name, params}){\n router.push({name, params});\n}\n\nfunction legacyToggleAppear(id) {\n const dialog = $('#dialogs');\n if (dialog.data('kendoDialog') != null) {\n dialog.data('kendoDialog').close();\n }\n\n Helpers.closeLastDialog();\n\n appearDiv(id);\n}\n\nString.format = function () {\n let s = arguments[0];\n for (let i = 0; i < arguments.length - 1; i++) {\n const reg = new RegExp('\\\\{' + i + '\\\\}', 'gm');\n s = s.replace(reg, arguments[i + 1]);\n }\n return s;\n};\n\nconst forms = {\n bcmDashboard: BcmDashboard,\n israDashboard: IsraDashboard,\n\n userManagement: UserManagement,\n coordinatorTypes: CoordinatorTypes,\n\n projectManagement: ProjectManagement,\n\n organizationStructure: OrganizationStructure,\n\n applications: Applications,\n assets: Assets,\n associates: Associates,\n costUnits: CostUnits,\n financialImpactScales: FinancialImpactScales,\n locationGroups: LocationGroups,\n locations: Locations,\n operationalImpactScales: OperationalImpactScales,\n positions: Positions,\n recoverySites: RecoverySites,\n recoverySiteTypes: RecoverySiteTypes,\n rpo: Rpo,\n rto: Rto,\n rtoApplications: RtoApplications,\n services: Services,\n implementationScales: ImplementationScales,\n\n deployments: Deployments,\n allDeployments: AllDeployments,\n financialImpactQuestions: FinancialImpactQuestions,\n operationalImpactQuestions: OperationalImpactQuestions,\n surveys: Surveys,\n\n risks: Risks,\n riskGroups: RiskGroups,\n riskImpactAreas: RiskImpactAreas,\n riskImpactScales: RiskImpactScales,\n riskControlEvaluations: RiskControlEvaluations,\n riskLevels: RiskLevels,\n riskProbabilities: RiskProbabilities,\n riskTreatments: RiskTreatments,\n\n bcpTemplates: BcpTemplates,\n bcpGenerator: BcpGenerator,\n bcpDocuments: BcpDocuments,\n\n strategy: Strategies,\n\n answerGroups: IsraAnswerGroups,\n answers: IsraAnswers,\n classificationScales: IsraClassificationScales,\n controlStrengthScales: IsraControlStrengthScales,\n controlStrengthReduction: IsraControlStrengthReductions,\n riskScales: IsraRiskScales,\n TreatmentPrioritizationScales: IsraTreatmentPrioritizationScales,\n riskTreatmentPlans: IsraRiskTreatmentPlans,\n riskAcceptanceAnswers: IsraRiskTreatmentAnsers,\n treatmentAnswers: IsraTreatmentAnswers,\n likelihoodScales: IsraLikelihoodScales,\n impactScales: IsraImpactScales,\n\n ictRiskCategories: IsraIctRiskCategories,\n isoDomains: IsraIsoDomains,\n threats: IsraThreats,\n vulnerabilities: IsraVulnerabilities,\n vulnerabilityCategories: IsraVulnerabilityCategories,\n\n classificationQuestionnaires: IsraClassificationQuestionnaires,\n controlQuestionnaires: IsraControlQuestionnaires,\n\n questionGroups: IsraQuestionGroups,\n assessments: IsraAssessments,\n classificationQuestions: IsraClassificationQuestions,\n controlQuestions: IsraControlQuestions,\n profileQuestions: IsraProfileQuestions,\n israRisks: IsraRisks,\n risksControls: IsraRiskControls,\n\n israClassificationDeployments: IsraClassificationDeployments,\n israRiskDeployments: IsraRiskDeployments,\n\n licences: Licences,\n applicationSettings: ApplicationSettings,\n\n quickView: QuickView,\n israStandardizations: IsraStandardizations,\n\n israRiskManagementAssessments: IsraRiskManagementAssessments,\n israRiskManagementTreatments: IsraRiskManagementTreatments,\n israRiskManagementAcceptances: IsraRiskManagementAcceptances,\n};\n\nfunction destroy(){\n if(current!= null){\n current.destroy();\n }\n}\n\nfunction toggleAppear(id, parameter){\n console.log(`somebody called toggleAppear(${id})`);\n if(id === 'israRiskDeployments'){\n console.log(`somebody called toggleAppear with unknown destination ${id}`);\n }else if(id === 'israRiskManagementAssessments'){\n router.push({name: 'isra.riskManagement.assessments'});\n }else if(id === 'israRiskManagementTreatments'){\n router.push({name: 'isra.riskManagement.treatments'});\n }else if(id === 'allDeployments'){\n router.push({name: 'all.isra.deployments', params: {}});\n }else if(id === 'IsraRiskManagementControls'){\n router.push({name: 'isra.riskmanagement.controls', params: { id: parameter }})\n }else if(id === 'IsraRiskManagementRisks'){\n router.push({name: 'isra.riskmanagement.risks', params: { id: parameter }})\n }else if(id === 'IsraRiskManagementRiskControls'){\n router.push({name: 'isra.riskmanagement.riskControls', params: { id: parameter }})\n }else if(id === 'IsraRiskManagementAssessmentReview'){\n router.push({name: 'isra.riskmanagement.assessmentReview', params: { id: parameter }})\n }else if(id === 'IsraRiskManagementTreatmentReview'){\n router.push({name: 'isra.riskmanagement.treatmentReview', params: { id: parameter }})\n }else if(id === 'IsraRiskManagementTreatmentProgress'){\n router.push({name: 'isra.riskmanagement.treatmentProgress', params: { id: parameter }})\n }\n else{\n console.log(`somebody called toggleAppear with unknown destination ${id}`);\n }\n}\n\nfunction appearDiv(id){\n console.log(`somebody called appearDiv(${id})`);\n}\n\nasync function legacyAppearDiv(id, deploymentId) {\n if(DataSources.CoordinatorTypes == null){\n DataSources.init();\n }\n\n if(current != null) {\n current.destroy();\n current.hide();\n }\n\n if(deploymentId != null && (\n id === 'DeploymentTabs' ||\n id === 'IsraClassificationDeploymentQuestionnaire' ||\n id === 'IsraRiskManagementAssessmentQuestionnaire' ||\n id === 'IsraRiskManagementTreatmentQuestionnaire' ||\n id === 'IsraRiskManagementAcceptanceQuestionnaire'\n )){\n const deployment = await $.get(`/api/masterplans/${selectedMasterPlan.id}/allDeployments?id=${deploymentId}`);\n if(deployment == null || (Array.isArray(deployment) && deployment.length === 0)){\n Helpers.showError('Deployment not found...', 'Error');\n return;\n }\n\n const dataItem = deployment[0];\n\n if (dataItem.family === Constants.DeploymentFamily.Continuity) {\n current = new DeploymentTabs(dataItem);\n } else if (dataItem.family === Constants.DeploymentFamily.Isra) {\n if (dataItem.type === Constants.DeploymentType.Classification) {\n current = new IsraClassificationDeploymentQuestionnaire(dataItem);\n } else if (dataItem.type === Constants.DeploymentType.Assessment) {\n current = new IsraRiskManagementAssessmentQuestionnaire(dataItem);\n } else if (dataItem.type === Constants.DeploymentType.Treatment) {\n current = new IsraRiskManagementTreatmentQuestionnaire(dataItem);\n } else if (dataItem.type === Constants.DeploymentType.Acceptance) {\n current = new IsraRiskManagementAcceptanceQuestionnaire(dataItem);\n }\n }\n }else if(deploymentId != null && (\n id === 'IsraRiskManagementControls' ||\n id === 'IsraRiskManagementRisks' ||\n id === 'IsraRiskManagementRiskControls' ||\n id === 'IsraRiskManagementAssessmentReview' ||\n id === 'IsraRiskManagementTreatmentReview' ||\n id === 'IsraRiskManagementTreatmentProgress'\n )){\n const riskManagement = await $.get(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${deploymentId}`);\n if(riskManagement == null){\n Helpers.showError('Risk Management not found...', 'Error');\n return;\n }\n\n if(id === 'IsraRiskManagementControls'){\n current = new IsraRiskManagementControls(riskManagement);\n }else if(id === 'IsraRiskManagementRisks'){\n current = new IsraRiskManagementRisks(riskManagement);\n }else if(id === 'IsraRiskManagementRiskControls'){\n current = new IsraRiskManagementRiskControls(riskManagement);\n }else if(id === 'IsraRiskManagementAssessmentReview'){\n current = new IsraRiskManagementAssessmentReview(riskManagement);\n }else if(id === 'IsraRiskManagementTreatmentReview'){\n current = new IsraRiskManagementTreatmentReview(riskManagement);\n }else if(id === 'IsraRiskManagementTreatmentProgress'){\n current = new IsraRiskManagementTreatmentProgress(riskManagement);\n }\n }else{\n if (forms[id] == null) {\n Helpers.showError('Sorry, page not implemented... :(', 'Error');\n return;\n }\n\n current = new forms[id]();\n }\n\n const required = current.require();\n const promises = [];\n for (let i = 0; i < required.length; ++i) {\n promises.push(required[i].read());\n }\n\n Promise.all(promises)\n .then(() => {\n current.init();\n current.show();\n });\n}\n\nexport {\n toggleAppear,\n legacyAppearDiv,\n legacyToggleAppear,\n selectedMasterPlan,\n selectedLanguage,\n changeMasterPlan,\n jwt,\n setJwt,\n setCurrent,\n userRole,\n setRoles,\n settings,\n setSettings,\n navigateTo,\n};\n\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaApplicationLine.vue?vue&type=style&index=0&id=14569570&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaApplicationLine.vue?vue&type=style&index=0&id=14569570&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireLine.vue?vue&type=style&index=0&id=278b26d8&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireLine.vue?vue&type=style&index=0&id=278b26d8&scoped=true&lang=css&\"","import { selectedLanguage, selectedMasterPlan, toggleAppear } from '../../main.js';\nimport DataSources from '../../Core/datasources.js';\nimport Selectors from '../../Core/Selectors.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport Constants from '../../Core/constants.js';\nimport IsraRiskManagementAssessmentReview from './RiskManagementAssessmentReview';\nimport DeploymentFormBase from '../DeploymentFormBase';\nimport VersionableFormBase from './VersionableFormBase.js';\n\nexport default class IsraRiskManagementAssessments extends DeploymentFormBase {\n constructor() {\n super('Risk Assessments', 'general');\n this.api = 'isra/RiskManagements';\n\n this.options.parse = (data) => {\n data.forEach(element => {\n // system\n let item = DataSources.Applications.get(element.applicationId);\n if (item != null) {\n element.system = item.translations[selectedLanguage].name;\n }\n\n // assessment\n item = DataSources.IsraAssessments.get(element.assessmentId);\n if (item != null) {\n element.assessmentText = `${item.translations[selectedLanguage].name} (${item.version})`;\n }\n\n // classification\n item = DataSources.IsraClassificationDeployments.get(element.classificationDeploymentId);\n if (item != null) {\n item = DataSources.IsraClassificationQuestionnaires.get(item.classificationQuestionnaireId);\n element.classificationText = `${item.translations[selectedLanguage].name} (${item.version})`;\n }\n });\n return data;\n };\n\n this.columns = [\n {\n title: 'translations',\n binding: 'translations',\n defaultValue: { [selectedLanguage]: { name: 'New Assessment' } },\n hidden: true,\n editorHidden: true,\n },\n {\n title: 'System',\n binding: 'system',\n editorHidden: true,\n groupHeaderTemplate: (e) => {\n return e.value;\n },\n },\n {\n title: 'Assessment',\n binding: 'assessmentText',\n editorHidden: true,\n groupHeaderTemplate: (e) => {\n return e.value;\n },\n },\n {\n title: 'Assessment',\n binding: 'assessmentId',\n required: true,\n hidden: true,\n template: this.assessmentTemplate,\n editor: (container, options) => this.assessmentSelector(container, options),\n },\n {\n title: 'System',\n binding: 'applicationId',\n required: true,\n hidden: true,\n template: this.applicationTemplate,\n editor: this.applicationSelector,\n },\n {\n title: 'Classification',\n binding: 'classificationText',\n editorHidden: true,\n groupHeaderTemplate: (e) => {\n return e.value;\n },\n },\n {\n title: 'Classification',\n binding: 'classificationDeploymentId',\n hidden: true,\n required: true,\n template: this.classificationDeploymentTemplate,\n editor: this.classificationDeploymentSelector,\n },\n {\n title: 'Risk Appetite',\n binding: 'riskAppetiteId',\n required: true,\n template: this.riskAppetiteTemplate,\n editor: this.riskAppetiteSelector,\n },\n {\n title: 'Version',\n binding: 'version',\n defaultValue: VersionableFormBase.versionPrototype(),\n required: false,\n width: '120px',\n translatable: false,\n editable: () => true,\n },\n {\n title: 'Status',\n binding: 'status',\n defaultValue: 0,\n editable: () => false,\n template: (dataItem) => {\n return Constants.RiskManagementStatusTranslations[dataItem.status].translations[selectedLanguage];\n },\n },\n {\n title: 'Active',\n binding: 'active',\n editable: () => false,\n editorHidden: true,\n width: '70px',\n template: function (dataItem) {\n return dataItem.active ? 'Active' : '';\n },\n groupable: false,\n },\n {\n title: 'Archived',\n binding: 'archived',\n editable: () => false,\n template: (dataItem) => dataItem.archived ? 'Archived' : '',\n width: '120px',\n editorHidden: true,\n },\n {\n title: 'Based On',\n binding: 'versionBasedOn',\n editable: () => false,\n editorHidden: true,\n width: '120px',\n },\n ];\n\n this.assessmentQuestionnaireColumns = [\n {\n title: '',\n width: '10px',\n },\n {\n title: 'Questionnaire',\n binding: 'controlQuestionnaireId',\n template: (dataItem) => {\n const item = DataSources.IsraControlQuestionnaires.get((dataItem.controlQuestionnaireId));\n return Helpers.sanitizeHTML(`${item.translations[selectedLanguage].name} (${item.version})`);\n },\n editor: (container, options) => {\n container.append(Helpers.sanitizeHTML(DataSources.IsraControlQuestionnaires.get((options.model.controlQuestionnaireId)).translations[selectedLanguage].name));\n },\n required: true,\n editable: () => false,\n sort: 'asc',\n },\n {\n title: 'Status',\n binding: 'status',\n editable: () => false,\n template: function (dataItem) {\n return Constants.DeploymentStatusTranslations[dataItem.status].translations[selectedLanguage];\n },\n },\n {\n title: 'Due Date',\n binding: 'dueDate',\n defaultValue: Selectors.GetDefaultDueDate(),\n template: (dataItem) => Selectors.DateTemplate(\n dataItem, 'dueDate',\n 'No Due Date',\n ),\n editor: (container, options) => {\n if (options.model.status === Constants.DeploymentStatus.Undeployed) {\n Selectors.DatePicker(container, options, 'dueDate');\n } else {\n container.append(Selectors.DateTemplate(options.model, 'dueDate'));\n }\n },\n },\n {\n title: 'Finish',\n binding: 'finished',\n editable: () => false,\n template: (dataItem) => Selectors.DateTemplate(\n dataItem, 'finished',\n 'Not Finished',\n ),\n editor: (container, options) => {\n Selectors.DateTemplate(options.model, 'finished', 'Not Finished');\n },\n },\n {\n title: 'Data Entry',\n binding: 'dataEntry',\n defaultValue: [],\n hidden: true,\n editor: (container, options) => this.dataEntryEditor(container, options),\n },\n {\n title: 'Approval Path',\n binding: 'approvalPath',\n hidden: true,\n editor: (container, options) => this.approvalPathEditor(container, options),\n },\n ];\n\n this.menu = {\n edit: this.menu.edit,\n delete: this.menu.delete,\n\n sep1: {\n cssClass: 'k-separator',\n },\n\n controlValues: {\n title: 'Controls',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.openControls(item);\n },\n },\n riskValues: {\n title: 'Risks',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.openRisks(item);\n },\n },\n riskControlValues: {\n title: 'Risks-Controls',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.openRiskControls(item);\n },\n },\n\n sep2: {\n cssClass: 'k-separator',\n },\n\n reviewAnswers: {\n title: 'Review Answers',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.reviewAnswers(item);\n },\n },\n };\n }\n\n deleteError() {\n $(this.grid)\n .data('kendoGrid')\n .cancelChanges();\n }\n\n require() {\n this.assessments = DataSources.IsraAssessments;\n this.assessments.filter({ field: 'archived', operator: 'eq', value: false });\n\n this.classificationDeployments = DataSources.IsraClassificationDeployments;\n\n return [\n DataSources.Applications,\n this.assessments,\n this.classificationDeployments,\n DataSources.IsraClassificationQuestionnaires,\n DataSources.IsraControlQuestionnaires,\n DataSources.IsraRiskScales,\n DataSources.Users,\n DataSources.IsraStandardizations,\n ];\n }\n\n initAssessmentsTreeData() {\n if (this.assessmentsData == null) {\n const data = this.assessments.view();\n\n const map = [];\n for (let i = 0; i < data.length; ++i) {\n const name = data[i].translations[selectedLanguage].name;\n if (map[name] == null) {\n map[name] = {\n text: name,\n expanded: false,\n items: [],\n disabled: true,\n };\n }\n\n map[name].items.push({\n text: data[i].version,\n base: name,\n id: data[i].id,\n });\n }\n\n this.assessmentsData = [];\n for (const key in map) {\n // flat questionnaires with only one version\n if (map[key].items.length === 1) {\n map[key].text += ` (${map[key].items[0].text})`;\n map[key].disabled = false;\n map[key].id = map[key].items[0].id;\n delete map[key].items;\n }\n\n this.assessmentsData.push(map[key]);\n }\n }\n }\n\n getItemName(item) {\n return item.system;\n }\n\n newVersionPopupItems(selectedItem, items) {\n items.push(\n {\n title: 'Assessment:',\n editor: '',\n actions: () => {\n this.initAssessmentsTreeData();\n\n $('#assessmentSelector').kendoDropDownTree({\n placeholder: 'Select ...',\n valuePrimitive: true,\n dataTextField: 'text',\n dataValueField: 'id',\n value: selectedItem.assessmentId,\n valueTemplate: (e) => {\n if (e.base == null) {\n return Helpers.sanitizeHTML(e.text);\n } else {\n return Helpers.sanitizeHTML(`${e.base} (${e.text})`);\n }\n },\n height: 'auto',\n dataSource: this.assessmentsData,\n select: (e) => {\n const dataItem = e.sender.dataItem(e.node);\n if (dataItem.disabled) {\n e.preventDefault();\n }\n },\n });\n },\n },\n {\n title: 'Classification:',\n editor: '',\n actions: () => {\n $('#classificationSelector').kendoDropDownList({\n placeholder: 'Search...',\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n value: selectedItem.classificationDeploymentId,\n template: (dataItem) => {\n const item = DataSources.IsraClassificationQuestionnaires.get(dataItem.classificationQuestionnaireId);\n if (item != null) {\n return `${item.translations[selectedLanguage].name} (${item.version})`;\n }\n\n return '';\n },\n valueTemplate: (dataItem) => {\n const item = DataSources.IsraClassificationQuestionnaires.get(dataItem.classificationQuestionnaireId);\n if (item != null) {\n return `${item.translations[selectedLanguage].name} (${item.version})`;\n }\n\n return '';\n },\n dataValueField: 'id',\n clearButton: false,\n dataSource: {\n data: DataSources.IsraClassificationDeployments.data(),\n filter: {\n field: 'applicationId',\n operator: 'eq',\n value: selectedItem.applicationId,\n },\n },\n });\n },\n },\n {\n title: 'Risk Appetite:',\n editor: '',\n actions: () => {\n $('#riskAppetiteSelector').kendoDropDownList({\n placeholder: 'Select...',\n filter: 'contains',\n value: selectedItem.riskAppetiteId,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n clearButton: false,\n dataSource: {\n data: DataSources.IsraRiskScales.view(),\n },\n });\n },\n },\n );\n }\n\n newVersionPrepostChecks() {\n super.newVersionPrepostChecks();\n\n let item = $('#assessmentSelector').data('kendoDropDownTree').value();\n if (!item) {\n throw new Error('Please select an Assessment!');\n }\n\n item = $('#classificationSelector').data('kendoDropDownList').value();\n if (!item) {\n throw new Error('Please select a Classification!');\n }\n\n item = $('#riskAppetiteSelector').data('kendoDropDownList').value();\n if (!item) {\n throw new Error('Please select a risk appetite!');\n }\n }\n\n newVersionUrlGenerator({ mp, api, id, version }) {\n let post = super.newVersionUrlGenerator({ mp, api, id, version });\n const assessment = $('#assessmentSelector').data('kendoDropDownTree').value();\n const classification = $('#classificationSelector').data('kendoDropDownList').value();\n const riskAppetite = $('#riskAppetiteSelector').data('kendoDropDownList').value();\n\n post += `&assessment=${assessment}&classification=${classification}&riskAppetite=${riskAppetite}`;\n return post;\n }\n\n setCustomDatasourceProperties(source) {\n super.setCustomDatasourceProperties(source);\n\n source.group = { field: 'system' };\n }\n\n firstDataBound(grid, data) {\n super.firstDataBound(grid, data);\n\n $('#RiskManagement-MarkActive')\n .off('click')\n .on('click', () => {\n const grid = $(this.grid).data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select a deployment first...');\n return;\n }\n\n kendo.ui.progress($(this.grid), true);\n\n const api = `/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${selectedItem.id}/active`;\n\n $.post(api)\n .done(() => {\n this.datasource.read();\n const grid = $(this.grid).data('kendoGrid');\n grid.refresh();\n })\n .fail((error) => {\n Helpers.showError(error.responseText, 'Failed');\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n });\n\n const standardizations = [\n {\n id: 0,\n name: 'None',\n },\n ...DataSources.IsraStandardizations.view(),\n ];\n\n $('#standardizationFilter')\n .kendoDropDownList({\n dataTextField: 'name',\n dataSource: { data: standardizations },\n change: (e) => {\n const filter = [];\n const value = e.sender.value();\n\n if (value.id !== 0) {\n const apps = value.applications;\n if (apps.length === 0) {\n filter.push({\n field: 'applicationId',\n operator: 'eq',\n value: '-1',\n });\n }\n\n for (let i = 0; i < apps.length; ++i) {\n filter.push({\n field: 'applicationId',\n operator: 'eq',\n value: apps[i].applicationId,\n });\n }\n }\n\n if (filter.length === 0) {\n this.removeFilter('standardization');\n } else {\n this.setFilter({\n name: 'standardization',\n logic: 'or',\n filters: filter,\n });\n }\n\n this.datasource.filter(this.currentFilter);\n },\n });\n }\n\n setCustomGridProperties(grid) {\n super.setCustomGridProperties(grid);\n\n grid.groupable = true;\n // let edit = grid.edit;\n // grid.edit = (e) => {\n // edit.call(e.sender, e);\n //\n // this.passCheck = false;\n // };\n\n grid.editable = 'popup';\n\n grid.toolbar.push(\n { template: 'Mark Active' },\n { template: 'Filter:
' },\n );\n\n grid.detailInit = (e) => {\n const questionnairesGrid = this.createGrid({\n api: 'isra/RiskManagements/' + e.data.id + '/AssessmentQuestionnaires',\n columns: this.assessmentQuestionnaireColumns,\n selector: '[name=\"questionnairesDetails\"]',\n });\n\n questionnairesGrid.editable = 'popup';\n\n questionnairesGrid.toolbar = [\n { template: 'Deploy' },\n { template: 'Abort' },\n ];\n\n const databound = questionnairesGrid.dataBound;\n\n questionnairesGrid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n // Color grid\n const grid = e.sender;\n const data = grid.dataSource.data();\n $.each(data, (i, row) => {\n if (row.status === Constants.DeploymentStatus.Finished) {\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(1)')\n .addClass('deployment-status-finished');\n } else if (row.status === Constants.DeploymentStatus.Undeployed) {\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(1)')\n .addClass('deployment-status-undeployed');\n } else {\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(1)')\n .addClass('deployment-status-pending');\n }\n });\n\n $('[name=\"Deployment-Deploy\"]')\n .off('click')\n .on('click', (e) => {\n const grid = $(e.target.closest('.k-grid'))\n .data('kendoGrid');\n const deployment = grid.dataItem(grid.select());\n\n if (deployment == null) {\n Helpers.showError('Please select an assessment first');\n return;\n }\n\n const rm = $(this.grid)\n .data('kendoGrid')\n .dataItem($(e.target.closest('.k-detail-row'))\n .prev());\n\n deployment.rm = rm;\n\n this.deployDeployment(\n `/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${deployment.rm.id}/AssessmentQuestionnaires/${deployment.id}/deploy`,\n deployment,\n );\n });\n\n $('[name=\"Deployment-Abort\"]')\n .off('click')\n .on('click', (e) => {\n const grid = $(e.target.closest('.k-grid'))\n .data('kendoGrid');\n const deployment = grid.dataItem(grid.select());\n\n if (deployment == null) {\n Helpers.showError('Please select an assessment first');\n return;\n }\n\n const rm = $(this.grid)\n .data('kendoGrid')\n .dataItem($(e.target.closest('.k-detail-row'))\n .prev());\n\n deployment.rm = rm;\n\n this.abortDeployment(\n `/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${deployment.rm.id}/AssessmentQuestionnaires/${deployment.id}/abort`,\n deployment,\n );\n });\n };\n\n questionnairesGrid.columns[questionnairesGrid.columns.length - 1].command = ['edit'];\n\n $('
')\n .appendTo(e.detailCell)\n .kendoGrid(questionnairesGrid);\n };\n\n // grid.save = (e) => {\n // if (this.passCheck == null || this.passCheck === false) {\n // e.preventDefault();\n // this.testDuplicates(e);\n // }\n // };\n }\n\n async testDuplicates(e) {\n let response = true;\n\n if (e.model.isNew() === true) {\n response = await this.checkDuplicateAssessmentApplication({\n data: e.sender.dataSource.data(),\n assessment: e.model.assessmentId,\n application: e.model.applicationId,\n });\n }\n\n if (response === true) {\n this.passCheck = true;\n e.sender.saveRow();\n }\n }\n\n async checkDuplicateAssessmentApplication({ data, assessment = 0, application = 0 } = {}) {\n const duplicates = [];\n for (let i = 0; i < data.length; ++i) {\n if (data[i].applicationId === application && data[i].assessmentId === assessment) {\n duplicates.push(Helpers.sanitizeHTML(data[i].translations[selectedLanguage].name));\n }\n }\n\n if (duplicates.length > 1) {\n const app = Helpers.sanitizeHTML(DataSources.Applications.get(application).translations[selectedLanguage].name);\n const ass = Helpers.sanitizeHTML(DataSources.IsraAssessments.get(assessment).translations[selectedLanguage].name);\n\n let content = `Application '${app}' has already ${duplicates.length -\n 1} assessments of '${ass}'.
`;\n content += 'Do you want to create a new one?';\n content += '

';\n\n content += 'Deployments:
';\n let length = 0;\n for (let i = 0; i < duplicates.length - 1; ++i) {\n if (duplicates[i] === '') {\n continue;\n }\n\n content += `${duplicates[i]}, `;\n length += duplicates[i].length + 2;\n if (length > 100) {\n content += '
';\n length = 0;\n }\n }\n content += duplicates[duplicates.length - 1];\n\n return new Promise((resolve) => {\n Helpers.showPopUp2({\n title: 'Duplicate Assessment',\n content: content,\n actions: [\n {\n text: 'Yes',\n action: () => {\n resolve(true);\n return true;\n },\n },\n {\n text: 'No',\n action: function () {\n resolve(false);\n return true;\n },\n },\n ],\n });\n });\n }\n\n return true;\n }\n\n openControls(deployment) {\n console.log(deployment);\n toggleAppear('IsraRiskManagementControls', deployment.id);\n // this.openForm(new IsraRiskManagementControls(deployment));\n }\n\n openRisks(deployment) {\n toggleAppear('IsraRiskManagementRisks', deployment.id);\n // this.openForm(new IsraRiskManagementRisks(deployment));\n }\n\n openRiskControls(deployment) {\n toggleAppear('IsraRiskManagementRiskControls', deployment.id);\n // this.openForm(new IsraRiskManagementRiskControls(deployment));\n }\n\n async reviewAnswers(deployment) {\n const result = await IsraRiskManagementAssessmentReview.prerequisites({ deployment: deployment.id });\n\n if (result) {\n toggleAppear('IsraRiskManagementAssessmentReview', deployment.id);\n // this.openForm(new IsraRiskManagementAssessmentReview(deployment));\n }\n }\n\n //\n // async reviewAnswers(deployment) {\n // let result = await IsraRiskDeploymentRiskTestValues.prerequisites(\n // { deployment: deployment.id });\n //\n // if (result) {\n // this.openForm(new IsraRiskDeploymentRiskTestValues(deployment));\n // }\n // }\n\n assessmentSelector(container, options) {\n this.initAssessmentsTreeData();\n\n let readonly = false;\n if (!options.model.isNew()) {\n readonly = true;\n }\n\n if (readonly) {\n const item = DataSources.IsraAssessments.get(options.model.assessmentId);\n $('' + Helpers.sanitizeHTML(`${item.translations[selectedLanguage].name} (${item.version})`) + '')\n .appendTo(container);\n } else {\n $('')\n .appendTo(container)\n .kendoDropDownTree({\n placeholder: 'Select ...',\n valuePrimitive: true,\n dataTextField: 'text',\n dataValueField: 'id',\n valueTemplate: (e) => {\n if (e.base == null) {\n return Helpers.sanitizeHTML(e.text);\n } else {\n return Helpers.sanitizeHTML(`${e.base} (${e.text})`);\n }\n },\n height: 'auto',\n dataSource: this.assessmentsData,\n select: (e) => {\n const dataItem = e.sender.dataItem(e.node);\n if (dataItem.disabled) {\n e.preventDefault();\n } else {\n if (options.model.assessmentId !== dataItem.id) {\n options.model.assessmentId = dataItem.id;\n options.model.dirty = true;\n }\n }\n },\n });\n }\n }\n\n selectedItemChanged(selectedItem) {\n super.selectedItemChanged(selectedItem);\n\n if (selectedItem != null) {\n $('#RiskManagement-MarkActive').show();\n } else {\n $('RiskManagement-MarkActive').hide();\n }\n }\n\n assessmentTemplate(dataItem) {\n const item = DataSources.IsraAssessments.get(dataItem.assessmentId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n\n applicationSelector(container, options) {\n const readonly = !options.model.isNew();\n\n if (readonly) {\n const item = DataSources.Applications.get(options.model.applicationId);\n $('' + Helpers.sanitizeHTML(item.translations[selectedLanguage].name) + '')\n .appendTo(container);\n } else {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n placeholder: 'Search...',\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: {\n data: DataSources.Applications.view(),\n filter: {},\n },\n\n clearButton: false,\n change: () => {\n // options.model.set('classificationDeploymentId', null);\n $('[name=\"classificationDeploymentId\"]')\n .data('kendoDropDownList')\n .dataSource\n .filter({\n field: 'applicationId',\n operator: 'eq',\n value: options.model.applicationId,\n });\n },\n });\n }\n }\n\n applicationTemplate(dataItem) {\n const item = DataSources.Applications.get(dataItem.applicationId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n\n classificationDeploymentSelector(container, options) {\n const readonly = !options.model.isNew();\n\n if (readonly) {\n const item = DataSources.IsraClassificationDeployments.get(options.model.classificationDeploymentId);\n $('' + Helpers.sanitizeHTML(item.translations[selectedLanguage].name) + '')\n .appendTo(container);\n } else {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n placeholder: 'Search...',\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n template: (dataItem) => {\n const item = DataSources.IsraClassificationQuestionnaires.get(dataItem.classificationQuestionnaireId);\n if (item != null) {\n return `${item.translations[selectedLanguage].name} (${item.version})`;\n }\n\n return '';\n },\n valueTemplate: (dataItem) => {\n const item = DataSources.IsraClassificationQuestionnaires.get(dataItem.classificationQuestionnaireId);\n if (item != null) {\n return `${item.translations[selectedLanguage].name} (${item.version})`;\n }\n\n return '';\n },\n dataValueField: 'id',\n clearButton: false,\n dataSource: {\n data: DataSources.IsraClassificationDeployments.data(),\n filter: {\n field: 'applicationId',\n operator: 'eq',\n value: options.model.applicationId,\n },\n },\n });\n }\n }\n\n classificationDeploymentTemplate(dataItem) {\n let item = DataSources.IsraClassificationDeployments.get(dataItem.classificationDeploymentId);\n\n if (item != null) {\n item = DataSources.IsraClassificationQuestionnaires.get(item.classificationQuestionnaireId);\n return Helpers.sanitizeHTML(`${item.translations[selectedLanguage].name} (${item.version})`);\n } else {\n return '';\n }\n }\n\n riskAppetiteSelector(container, options) {\n const readonly = !options.model.isNew();\n\n if (readonly) {\n const item = DataSources.IsraRiskScales.get(options.model.riskAppetiteId);\n $('' + Helpers.sanitizeHTML(item.translations[selectedLanguage].name) + '')\n .appendTo(container);\n } else {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n placeholder: 'Search...',\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n clearButton: false,\n dataSource: {\n data: DataSources.IsraRiskScales.data(),\n filter: {\n field: 'applicationId',\n operator: 'eq',\n value: options.model.applicationId,\n },\n },\n });\n }\n }\n\n riskAppetiteTemplate(dataItem) {\n const item = DataSources.IsraRiskScales.get(dataItem.riskAppetiteId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n}\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentViewer.vue?vue&type=style&index=0&id=5928e822&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentViewer.vue?vue&type=style&index=0&id=5928e822&scoped=true&lang=css&\"","import { DocumentFileFormat } from '@/dtos/all';\nimport DownloadService from '@/services/DownloadService';\nimport Constants from '../../Core/constants.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport Selectors from '../../Core/Selectors.js';\nimport { selectedLanguage, selectedMasterPlan } from '../../main.js';\nimport DeploymentQuestionnaireFormBase from '../DeploymentQuestionnaireFormBase.js';\nimport FormBase from '../FormBase.js';\n\n\nexport default class IsraRiskManagementAcceptanceQuestionnaire extends DeploymentQuestionnaireFormBase {\n constructor(deployment) {\n super(\n deployment,\n `/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/Acceptances/${deployment.id}`,\n 'general',\n 'Risks - \\'{0}\\'',\n );\n\n this.api = `isra/RiskManagements/Acceptances/${deployment.id}/risks`;\n\n this.subTitleButtons.unshift({\n name: 'export-excel',\n text: 'Export',\n icon: 'excel.png',\n actions: () => {\n kendo.ui.progress($(this.grid), true);\n\n $.get(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${deployment.id}/DownloadAcceptance`)\n .then(function (data) {\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Unknown,\n });\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($('.grid'), false);\n });\n },\n });\n\n this.subTitleButtons.push({\n name: 'collapseAll',\n text: 'Collapse All',\n actions: () => {\n const grid = $(this.grid)\n .data('kendoGrid');\n $('.k-master-row')\n .each(function () {\n grid.collapseRow(this);\n });\n },\n });\n // {\n // name: 'exportExcel',\n // text: 'Export',\n // icon: 'excel.png',\n // actions: () => {\n // const div = $(this.div);\n // kendo.ui.progress(div, true);\n //\n // $.ajax({\n // url: `/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${deployment.id}/AcceptanceReview/RiskValues/download?language=${selectedLanguage}`,\n // method: 'GET',\n // success: function (data) {\n // DownloadService.DownloadFile({\n // name: data.name,\n // data: data.data,\n // format: DocumentFileFormat.Unknown,\n // });\n // },\n // error(data) {\n // Helpers.showError(data.responseText);\n // },\n // complete: () => {\n // kendo.ui.progress(div, false);\n // },\n // processData: false,\n // });\n // },\n // },\n\n this.columns = [\n {\n title: 'Risk Information',\n columns: [\n {\n title: 'Risk',\n binding: 'riskManagementRiskId',\n datasource: this.riskManagementRisks,\n sort: 'asc',\n sortField: 'risk.translations.' + selectedLanguage + '.name',\n editable: () => false,\n template: (dataItem) => {\n const item = this.riskManagementRisks.get(dataItem.riskManagementRiskId);\n return Helpers.sanitizeHTML(item.risk.translations[selectedLanguage].name);\n },\n },\n {\n title: 'Current Risk',\n binding: 'currentRiskId',\n editable: () => false,\n width: 250,\n template: (dataItem) => {\n const currentRisk = FormBase.round(dataItem.currentLikelihoodValue * dataItem.currentImpactValue);\n const title = `Risk (${currentRisk}) = Likelihood (${FormBase.round(dataItem.currentLikelihoodValue)}) x Impact (${FormBase.round(dataItem.currentImpactValue)})`;\n\n const riskScale = DataSources.IsraRiskScales.get(dataItem.currentRiskScaleId);\n return `
 ${riskScale.translations[selectedLanguage].name}
`;\n },\n },\n {\n title: 'Best Case Risk',\n binding: 'bestCaseRiskId',\n width: 250,\n editable: () => false,\n template: (dataItem) => {\n const bestCaseRisk = FormBase.round(dataItem.bestCaseLikelihoodValue * dataItem.bestCaseImpactValue);\n const title = `Risk (${bestCaseRisk}) = Likelihood (${FormBase.round(dataItem.bestCaseLikelihoodValue)}) x Impact (${FormBase.round(dataItem.bestCaseImpactValue)})`;\n\n const riskScale = DataSources.IsraRiskScales.get(dataItem.bestCaseRiskScaleId);\n return `
 ${riskScale.translations[selectedLanguage].name}
`;\n },\n },\n ],\n },\n {\n title: ' ',\n width: 5,\n },\n {\n title: 'Risk Response',\n columns: [\n {\n title: 'Actual Future Risk',\n binding: 'residualRiskId',\n width: 250,\n editable: () => false,\n template: (dataItem) => {\n const residualRisk = FormBase.round(dataItem.residualLikelihoodValue * dataItem.residualImpactValue);\n const title = `Risk (${residualRisk}) = Likelihood (${FormBase.round(dataItem.residualLikelihoodValue)}) x Impact (${FormBase.round(dataItem.residualImpactValue)})`;\n\n const riskScale = DataSources.IsraRiskScales.get(dataItem.residualRiskScaleId);\n return `
 ${riskScale.translations[selectedLanguage].name}
`;\n },\n },\n {\n title: 'Risk Response',\n binding: 'riskAcceptanceAnswerId',\n width: 250,\n template: (dataItem) => {\n if (dataItem.riskAcceptanceAnswerId == null) {\n return ' ';\n }\n\n const item = DataSources.IsraRiskAcceptanceAnswers.get(dataItem.riskAcceptanceAnswerId);\n\n if (item == null) {\n return '';\n }\n\n const text = '' +\n Helpers.sanitizeHTML(item.translations[selectedLanguage].answer) + '';\n return text;\n },\n editor: (container, options) => this.answerSelector(container, options),\n },\n {\n title: 'Risk Response
Comments',\n binding: 'comments',\n width: 200,\n },\n ],\n },\n // {\n // title: \"Initial Risk\",\n // fieldName: 'initialRisk',\n // editable: () => false,\n // collapse: true,\n // template: (dataItem) => {\n // let likelihood = (dataItem.defaultLikelihood - dataItem.profileDrop);\n // let risk = likelihood * dataItem.impact;\n //\n // let title = String.format(\"Risk ({2}) = Likelihood ({0}) x Impact ({1})\", FormBase.round(likelihood), FormBase.round(dataItem.impact), FormBase.round(risk));\n // let riskScale = this.getRiskScale(risk);\n // return \"
 \" + riskScale.translations[selectedLanguage].name + \"
\";\n // }\n // },\n ];\n\n this.questionColumns = [\n {\n title: 'Id',\n fieldName: 'controlId',\n editable: () => false,\n width: 50,\n template: (dataItem) => {\n const item = this.riskManagementControls.get(dataItem.riskManagementControlId);\n\n if (item == null) {\n Helpers.showError(`Unable to find control with id: ${item.riskManagementControlId}`);\n return '';\n }\n\n return Helpers.sanitizeHTML(item.controlId);\n },\n },\n {\n title: ' ',\n fieldName: 'question',\n collapse: true,\n editable: false,\n template: (dataItem) => {\n const item = this.riskManagementControls.get(dataItem.riskManagementControlId);\n\n if (item == null) {\n Helpers.showError(`Unable to find control with id: ${item.riskManagementControlId}`);\n return '';\n }\n\n let title = `Question: ${item.translations[selectedLanguage].question.replace('\\n', ' ')}`;\n title += ' Answer: ' + DataSources.IsraAnswers.get(dataItem.questionAnswerId).translations[selectedLanguage].answer;\n\n if (dataItem.answerComments != null) {\n title += ' Comments: ' + dataItem.answerComments;\n }\n\n const ret = ``;\n\n return ret;\n },\n },\n {\n title: 'Recommended Actions',\n fieldName: 'recommendedActions',\n editable: false,\n width: '300px',\n template: (dataItem) => {\n const item = this.riskManagementControls.get(dataItem.riskManagementControlId);\n\n if (item == null) {\n Helpers.showError(`Unable to find control with id: ${item.riskManagementControlId}`);\n return '';\n }\n\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].recommendedActions);\n },\n datasource: this.riskManagementControls,\n sortField: 'translations.' + selectedLanguage + '.recommendedActions',\n sortId: 'riskManagementControlId',\n },\n {\n title: 'Implementation Answer',\n editable: () => false,\n binding: 'treatmentAnswerId',\n sortable: true,\n width: 250,\n datasource: DataSources.IsraTreatmentAnswers,\n sortField: 'translations.' + selectedLanguage + '.answer',\n sortId: 'treatmentAnswerId',\n template: (dataItem) => {\n const answer = DataSources.IsraTreatmentAnswers.get(dataItem.treatmentAnswerId);\n\n if (answer == null) {\n return ' ';\n }\n\n return Helpers.sanitizeHTML(answer.translations[selectedLanguage].answer);\n },\n },\n {\n title: 'Implementation Responsible',\n binding: 'implementationResponsible',\n width: 200,\n editable: false,\n },\n {\n title: 'Implementation
Due Date',\n binding: 'implementationDueDate',\n template: (dataItem) => Selectors.DateTemplate(dataItem, 'implementationDueDate', 'Not set'),\n editable: () => false,\n width: 150,\n },\n {\n title: 'Implementation Status',\n binding: 'implementationStatusId',\n width: 200,\n defaultValue: null,\n template: (dataItem) => {\n if (dataItem.implementationStatusId == null) {\n return '';\n }\n\n const item = DataSources.ImplementationScales.get(dataItem.implementationStatusId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n },\n editable: () => false,\n },\n {\n editable: () => true,\n title: 'Comments',\n binding: 'comments',\n width: 200,\n },\n {\n title: ' ',\n width: 5,\n binding: 'none',\n editable: false,\n },\n {\n title: 'Prioritization',\n binding: 'prioritizationScaleId',\n width: 200,\n editable: false,\n template: (dataItem) => {\n if (dataItem.prioritizationScaleId == null) {\n return ' ';\n }\n\n const item = DataSources.IsraTreatmentPrioritizationScales.get(dataItem.prioritizationScaleId);\n\n if (item == null) {\n return '';\n }\n\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n },\n },\n ];\n }\n\n getRiskScale(value) {\n const data = DataSources.IsraRiskScales.view();\n let i;\n for (i = 0; i < data.length - 1; ++i) {\n if (data[i].value > value) {\n break;\n }\n }\n\n return data[i];\n }\n\n require() {\n this.riskManagementControls = DataSources.IsraRiskManagementControls(this.deployment.riskManagementId);\n this.riskManagementRisks = DataSources.IsraRiskManagementRisks(this.deployment.riskManagementId);\n\n return [\n DataSources.IsraAnswers,\n DataSources.IsraTreatmentAnswers,\n DataSources.IsraRiskAcceptanceAnswers,\n DataSources.IsraRiskScales,\n DataSources.IsraTreatmentPrioritizationScales,\n DataSources.ImplementationScales,\n this.riskManagementControls,\n this.riskManagementRisks,\n ];\n }\n\n setCustomMenuItems(menu) {\n delete menu.delete;\n }\n\n setCustomGridProperties(grid) {\n delete grid.toolbar;\n\n grid.selectable = true;\n grid.filterable = false;\n\n if (this.readonly === true) {\n grid.editable = false;\n grid.columns.splice(-1);\n } else {\n grid.columns[grid.columns.length - 1].command = ['edit'];\n }\n\n // grid.columns.splice(-1);\n\n const databound = grid.dataBound;\n // const firstDataBound = true;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n // e.sender.thead.find(\"tr th:nth-child(4)\").css('background-color', 'black');\n\n // $(this.grid + \" > .k-grid-content > table > tbody > tr td:nth-child(5)\").css('background-color', 'black');\n\n const data = e.sender.dataSource.data();\n\n $.each(data, function (i, row) {\n if (row.riskAcceptanceAnswerId == null) {\n $('tr[data-uid=\"' + row.uid + '\"] ')\n .addClass('deployment-pending');\n }\n });\n };\n\n const controlValuesModel = Helpers.createModel(selectedMasterPlan, this.questionColumns);\n const controlValuesColumns = Helpers.createColumns(selectedMasterPlan, this.questionColumns);\n controlValuesColumns.pop(); // remove last\n // controlValuesColumns.splice(-1);\n\n grid.detailInit = (e) => {\n const detail = Helpers.getDefaultGrid(selectedMasterPlan, this.api);\n\n // detail.editable = 'inline';\n delete detail.toolbar;\n delete detail.height;\n\n detail.dataSource = {\n transport: {\n read: function (options) {\n options.success(e.data.controls);\n },\n },\n // autoSync: true,\n pageSize: 10,\n schema: controlValuesModel,\n };\n\n detail.editable = false;\n\n detail.columns = controlValuesColumns;\n\n const db = detail.dataBound;\n detail.dataBound = (e) => {\n db.call(e.sender, e);\n\n const data = e.sender.dataSource.data();\n $.each(data, (i, row) => {\n if (row.treatmentAnswerId == null) {\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(4)')\n .attr('colspan', 9);\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(4)')\n .text('Control is already implemented');\n\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(n + 5)')\n .css('display', 'none');\n } else {\n const plan = DataSources.IsraTreatmentPrioritizationScales.get(row.prioritizationScaleId);\n // let future = DataSources.IsraRiskScales.get(row.futureRiskScaleId);\n // let strength = DataSources.IsraControlStrengthScales.get(row.controlStrengthScaleId);\n //\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(9)')\n .css('background-color', plan.color);\n // $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(11)').css('background-color', strength.color);\n }\n });\n };\n\n $('
')\n .appendTo(e.detailCell)\n .kendoGrid(detail);\n\n $('#controlValuesDetails')\n .off(\n 'mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')',\n this.disableButtonsOnEdit,\n )\n .on(\n 'mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')',\n this.disableButtonsOnEdit,\n );\n };\n }\n\n async checkAllQuestionsFinished() {\n const data = $(this.grid)\n .data('kendoGrid')\n .dataSource\n .data();\n\n const found = [];\n for (let i = 0; i < data.length; ++i) {\n if (data[i].riskAcceptanceAnswerId == null) {\n found.push(data[i].riskId);\n }\n }\n\n if (found.length > 0) {\n // let length = 0;\n // let txt = '';\n // for (let i = 0; i < found.length; ++i) {\n // txt += found[i];\n // if (i < found.length - 1) {\n // length += ('' + found[i]).length + 2;\n // txt += ', ';\n // if (length > 60) {\n // txt += '
';\n // length = 0;\n // }\n // }\n // }\n\n const promise = new Promise((resolve) => {\n Helpers.showPopUp2({\n title: 'Approve \"' + this.deployment.translations[selectedLanguage].name + '\"',\n content: 'You have not select a treatment for all risks.
Are you sure you want to proceed with the approval?',\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n resolve(true);\n },\n },\n {\n text: 'Cancel',\n action: () => {\n resolve(false);\n },\n },\n ],\n });\n });\n return promise;\n }\n return true;\n }\n\n async customApproveCheck() {\n return await this.checkAllQuestionsFinished();\n }\n\n answerSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n optionLabel: Constants.NoDeploymentQuestionnaireAnswer,\n optionLabelTemplate: '',\n valuePrimitive: true,\n template: ' #: data.translations[\"' + selectedLanguage +\n '\"].answer #',\n valueTemplate: ' #: data.translations[\"' + selectedLanguage +\n '\"].answer #',\n dataValueField: 'id',\n dataSource: DataSources.IsraRiskAcceptanceAnswers,\n });\n }\n}\n","import FormBase from '../../FormBase.js';\nimport { selectedLanguage } from '../../../main.js';\n\nexport default class Associates extends FormBase {\n constructor() {\n super('Associates', 'general');\n this.api = 'bc/Associates';\n\n this.confirmation = 'translations.' + selectedLanguage + '.name';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n required: false,\n sort: 'asc',\n translatable: true,\n },\n ];\n }\n}\n","import { selectedMasterPlan, selectedLanguage } from '../../main.js';\nimport FormBase from '../FormBase.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport Selectors from '../../Core/Selectors';\n\nexport default class IsraRiskManagementTreatmentProgress extends FormBase {\n constructor(deployment) {\n super(`'${deployment.translations[selectedLanguage].name}' Treatment Progress`, 'general', {\n readOnly: false,\n });\n\n this.api = 'isra/RiskManagements/' + deployment.id + '/TreatmentProgress';\n this.deployment = deployment;\n\n this.columns = [\n {\n title: 'Id',\n fieldName: 'controlId',\n editable: () => false,\n width: 50,\n template: (dataItem) => {\n const item = this.riskManagementControls.get(dataItem.riskManagementControlId);\n\n if (item == null) {\n Helpers.showError(`Unable to find control with id: ${item.riskManagementControlId}`);\n return '';\n }\n\n return Helpers.sanitizeHTML(item.controlId);\n },\n },\n {\n title: ' ',\n fieldName: 'question',\n collapse: true,\n editable: false,\n template: (dataItem) => {\n const item = this.riskManagementControls.get(dataItem.riskManagementControlId);\n\n if (item == null) {\n Helpers.showError(`Unable to find control with id: ${item.riskManagementControlId}`);\n return '';\n }\n\n const title = `Question: ${item.translations[selectedLanguage].question.replace('\\n', ' ')}`;\n const ret = ``;\n\n return ret;\n },\n },\n {\n title: 'Recommended Actions',\n fieldName: 'recommendedActions',\n editable: false,\n template: (dataItem) => {\n const item = this.riskManagementControls.get(dataItem.riskManagementControlId);\n\n if (item == null) {\n Helpers.showError(`Unable to find control with id: ${item.riskManagementControlId}`);\n return '';\n }\n\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].recommendedActions);\n },\n datasource: this.riskManagementControls,\n sortField: 'translations.' + selectedLanguage + '.recommendedActions',\n sortId: 'riskManagementControlId',\n },\n {\n title: 'Implementation',\n binding: 'treatmentAnswerId',\n width: 300,\n editable: false,\n template: (dataItem) => {\n if (dataItem.treatmentAnswerId == null) {\n return ' ';\n }\n\n const item = DataSources.IsraTreatmentAnswers.get(dataItem.treatmentAnswerId);\n\n if (item == null) {\n return '';\n }\n\n const text = '' +\n Helpers.sanitizeHTML(item.translations[selectedLanguage].answer) + '';\n return text;\n },\n },\n {\n title: 'Implementation Responsible',\n binding: 'implementationResponsible',\n width: 200,\n },\n {\n title: 'Implementation
Due Date',\n binding: 'implementationDueDate',\n template: (dataItem) => Selectors.DateTemplate(dataItem, 'implementationDueDate', 'Not set'),\n editor: (container, options) => {\n Selectors.DatePicker(container, options, 'implementationDueDate');\n },\n width: 150,\n },\n {\n title: 'Implementation Status',\n binding: 'implementationStatusId',\n width: 250,\n defaultValue: null,\n template: (dataItem) => {\n if (dataItem.implementationStatusId == null) {\n return '';\n }\n\n const item = DataSources.ImplementationScales.get(dataItem.implementationStatusId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n },\n editor: (container, options) => this.implementationStatusSelector(container, options),\n },\n {\n editable: () => true,\n title: 'Comments',\n binding: 'comments',\n width: 200,\n },\n ];\n\n this.menu = {\n sep1: {\n cssClass: 'k-separator',\n },\n };\n }\n\n implementationStatusSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.ImplementationScales,\n });\n }\n\n static async prerequisites(options = {}) {\n if (options.deployment == null) {\n Helpers.showError('Error: Cannot check IsraRiskManagementTreatmentReview prerequisites() without a deployment parameter');\n return false;\n }\n\n try {\n await Promise.resolve($.get(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${options.deployment}/AllowEditingTreatmentProgress`));\n\n return true;\n } catch (e) {\n Helpers.showError(e.responseText);\n return false;\n }\n }\n\n require() {\n this.riskManagementControls = DataSources.IsraRiskManagementControls(this.deployment.id);\n\n return [\n DataSources.ImplementationScales,\n this.riskManagementControls,\n ];\n }\n\n setCustomGridProperties(grid) {\n delete grid.toolbar;\n\n grid.columns[grid.columns.length - 1].command = ['edit'];\n }\n}\n","import FormBase from '../../FormBase.js';\nimport Selectors from '../../../Core/Selectors.js';\nimport { userRole } from '../../../main.js';\nimport Constants from '../../../Core/constants.js';\n\nexport default class ImplementationScales extends FormBase {\n constructor() {\n super('Implementation Scales', 'general', {\n readOnly: !userRole.includes(Constants.RoleTypes.BCM.Administrator),\n });\n\n this.api = 'bc/ImplementationScales';\n\n this.columns = [\n {\n title: 'Value',\n binding: 'value',\n type: 'number',\n sort: 'asc',\n required: false,\n format: '{0:p2}',\n validation: {\n minmax: function (input) {\n if (input.is('[name=\\'value\\']') && input.val() !== '') {\n console.log(input.val());\n if (input.val() < 0 || input.val() > 1) {\n input.attr('data-minmax-msg', 'Value must be between 0 (0%) and 1 (100%)');\n return false;\n }\n }\n return true;\n },\n },\n },\n {\n title: 'Name',\n binding: 'name',\n required: true,\n translatable: true,\n defaultValue: 'New Name',\n },\n {\n title: 'Color',\n binding: 'color',\n defaultValue: null,\n required: false,\n template: (dataItem) => Selectors.ColorTemplate(dataItem, 'color'),\n editor: (container, options) => Selectors.ColorSelector(container, options),\n },\n ];\n }\n\n setCustomGridProperties(grid) {\n if (userRole.includes(Constants.RoleTypes.ISRA.Administrator)) {\n grid.editable = false;\n grid.toolbar = [{ name: 'excel' }];\n delete grid.columns[grid.columns.length - 1];\n delete this.menu;\n }\n }\n}\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcmDashboard.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcmDashboard.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdRichTextEditor.vue?vue&type=style&index=0&id=1942be09&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdRichTextEditor.vue?vue&type=style&index=0&id=1942be09&scoped=true&lang=css&\"","import FormBase from '../FormBase.js';\n\nexport default class IsraRiskAcceptanceAnswers extends FormBase {\n constructor() {\n super('Risk Acceptance Answers', 'general');\n this.api = 'isra/RiskAcceptanceAnswers';\n\n this.columns = [\n {\n title: 'Answer',\n binding: 'answer',\n defaultValue: 'New Value',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n {\n title: 'Explanation',\n binding: 'explanation',\n defaultValue: '',\n required: true,\n translatable: true,\n },\n ];\n }\n}\n","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterTestFinalizationLine.vue?vue&type=style&index=0&id=20029f33&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterTestFinalizationLine.vue?vue&type=style&index=0&id=20029f33&scoped=true&lang=css&\"","import { DocumentFileFormat, FileDto } from '@/dtos/all';\n\nexport default class DownloadService {\n public static DownloadFile(file: FileDto) : void {\n let type = '';\n if (file.format === DocumentFileFormat.Pdf) {\n type += 'application/pdf';\n } else if (file.format === DocumentFileFormat.Word) {\n type += 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\n } else if (file.format === DocumentFileFormat.Excel) {\n type += 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\n } else if (file.format === DocumentFileFormat.Csv) {\n type += 'text/csv';\n }\n\n //\n const byteCharacters = atob(file.data);\n const byteNumbers = new Array(byteCharacters.length);\n\n for (let i = 0; i < byteCharacters.length; i++) {\n byteNumbers[i] = byteCharacters.charCodeAt(i);\n }\n\n const byteArray = new Uint8Array(byteNumbers);\n\n const blob = new Blob(\n [byteArray],\n {\n type: type,\n },\n );\n\n if (window.top.navigator.msSaveOrOpenBlob) {\n // Store Blob in IE\n window.top.navigator.msSaveOrOpenBlob(blob, file.name);\n } else {\n // Store Blob in others\n const aElement = document.body.appendChild(document.createElement('a'));\n aElement.href = URL.createObjectURL(blob);\n aElement.download = file.name;\n aElement.style.display = 'none';\n aElement.click();\n\n if (aElement.parentNode != null) {\n aElement.parentNode.removeChild(aElement);\n } else {\n throw new Error('aElement is null in DowloadService...');\n }\n }\n }\n}\n","import { selectedLanguage } from '../../../main.js';\nimport FormBase from '../../FormBase.js';\nimport DataSources from '../../../Core/datasources.js';\nimport { Helpers } from '../../../Core/Helpers.js';\n\nexport default class Assets extends FormBase {\n constructor() {\n super('Assets', 'general');\n this.api = 'bc/Assets';\n\n this.columns = [\n {\n title: 'Mandatory',\n binding: 'mandatory',\n type: 'boolean',\n defaultValue: true,\n collapse: true,\n },\n {\n title: 'Capacity
Measurement',\n binding: 'capacityMeasurement',\n type: 'boolean',\n defaultValue: false,\n collapse: true,\n },\n {\n title: 'Name',\n binding: 'name',\n required: true,\n sort: 'asc',\n translatable: true,\n defaultValue: 'New Asset',\n },\n ];\n\n this.confirmation = 'translations.' + selectedLanguage + '.name';\n\n this.assetCostColumns = [\n {\n title: 'Cost Unit',\n binding: 'costUnitId',\n editable: false,\n sort: 'asc',\n template: (dataItem) => {\n const item = DataSources.CostUnits.get(dataItem.costUnitId);\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].description) + ' (' +\n Helpers.sanitizeHTML(item.translations[selectedLanguage].unitOfMeasurement) + ')';\n },\n },\n {\n title: 'Cost Per Unit',\n binding: 'costPerUnit',\n type: 'number',\n required: true,\n defaultValue: 0,\n },\n ];\n\n this.preventBinding = false;\n }\n\n require() {\n return [DataSources.CostUnits];\n }\n\n detailConfirmation(e) {\n return '\\'' +\n DataSources.CostUnits.get(e.costUnitId).translations[selectedLanguage].description + '\\'';\n }\n\n setCustomGridProperties(grid) {\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n const data = e.sender.dataSource.data();\n\n $.each(data, function (i, row) {\n if (row.isNew()) {\n $('tr[data-uid=\"' + row.uid + '\"] ')\n .find('.k-hierarchy-cell a')\n .remove();\n }\n });\n };\n\n // Details\n grid.detailTemplate = 'Costs:';\n\n grid.detailInit = (e) => {\n const assetCostsGrid = this.createGrid({\n api: 'bc/AssetCosts/' + e.data.id,\n columns: this.assetCostColumns,\n confirmation: (e) => {\n return DataSources.CostUnits.get(e.costUnitId).translations[selectedLanguage].name;\n },\n // selector: '[name=recoverySiteAssets]',\n // menu: this.menu,\n });\n\n assetCostsGrid.toolbar = [\n {\n template: 'Add new cost unit',\n },\n ];\n\n const databound = assetCostsGrid.dataBound;\n assetCostsGrid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n $('[name=\"Add-AssetCost\"]')\n .off('click')\n .on('click', (e) => {\n const data = $(e.target)\n .closest('[data-role=\"grid\"]')\n .data('kendoGrid').dataSource;\n\n const content = '
';\n Helpers.showPopUp('Select Asset', content, [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const di = $('#costUnitsList')\n .data('kendoDropDownList')\n .dataItem();\n if (di != null) {\n data.add({\n costUnitId: di.id,\n costPerUnit: 0,\n });\n data.sync();\n return true;\n }\n return false;\n },\n },\n {\n text: 'Cancel',\n action: () => true,\n },\n ], () => {\n const filters = [];\n for (let i = 0; i < data.data().length; ++i) {\n filters.push({\n field: 'id',\n operator: 'neq',\n value: data.data()[i].costUnitId,\n });\n }\n\n const template = '#=data.translations[\"' + selectedLanguage +\n '\"].description# (#=data.translations[\"' + selectedLanguage +\n '\"].unitOfMeasurement#)';\n\n $('#costUnitsList')\n .width(500)\n .kendoDropDownList({\n template: template,\n valueTemplate: template,\n dataValueField: 'id',\n dataSource: {\n data: DataSources.CostUnits.view(),\n filter: {\n logic: 'and',\n filters: filters,\n },\n },\n valuePrimitive: true,\n filter: 'contains',\n });\n });\n });\n };\n\n $('
')\n .appendTo(e.detailCell)\n .kendoGrid(assetCostsGrid);\n };\n }\n}\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListCategory.vue?vue&type=style&index=0&id=04fdb48b&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListCategory.vue?vue&type=style&index=0&id=04fdb48b&scoped=true&lang=css&\"","import FormBase from '../../FormBase.js';\nimport { selectedLanguage } from '../../../main.js';\n\nexport default class LocationGroups extends FormBase {\n constructor() {\n super('Location Groups', 'general');\n this.api = 'bc/LocationGroups';\n\n this.confirmation = 'translations.' + selectedLanguage + '.name';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n required: true,\n sort: 'asc',\n translatable: true,\n defaultValue: 'New Group (e.g. `City Center`)',\n },\n ];\n }\n}\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangePasswordView.vue?vue&type=style&index=0&id=db131236&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangePasswordView.vue?vue&type=style&index=0&id=db131236&scoped=true&lang=css&\"","import { selectedLanguage, selectedMasterPlan } from '../main.js';\n\nexport default class DataSources {\n static init() {\n DataSources.Users = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/Users/GetAllUsersForDeployments',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'info',\n dir: 'asc',\n },\n {\n field: 'username',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.CoordinatorTypes = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/CoordinatorTypes',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'name',\n dir: 'asc',\n },\n ],\n });\n }\n\n static ChangeMasterPlan() {\n if(selectedMasterPlan == null){\n return;\n }\n\n delete DataSources._groupableLocationsDataSource;\n delete DataSources._groupableRecoverySitesDataSource;\n delete DataSources._groupableRisksDataSource;\n\n DataSources.Locations = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Locations',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].country',\n dir: 'asc',\n },\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].state',\n dir: 'asc',\n },\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].city',\n dir: 'asc',\n },\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].address',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.RTOScales = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/RTOScales',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'value',\n dir: 'asc',\n },\n });\n\n DataSources.RtoApplicationScales = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/RtoApplicationScales',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'value',\n dir: 'asc',\n },\n });\n\n DataSources.RpoScales = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/RpoScales',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'value',\n dir: 'asc',\n },\n });\n\n DataSources.OperationalImpactScales = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/OperationalImpactScales',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'value',\n dir: 'asc',\n },\n });\n\n DataSources.FinancialImpactScales = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/FinancialImpactScales',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'value',\n dir: 'asc',\n },\n });\n\n DataSources.Partitions = new kendo.data.TreeListDataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Partitions',\n type: 'GET',\n dataType: 'json',\n },\n },\n schema: {\n model: {\n id: 'id',\n parentId: 'parentId',\n expanded: true,\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.AllPartitions = new kendo.data.TreeListDataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Partitions/All',\n type: 'GET',\n dataType: 'json',\n },\n },\n schema: {\n model: {\n id: 'id',\n parentId: 'parentId',\n expanded: true,\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.HierarchicalPartitions = new kendo.data.HierarchicalDataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Partitions/hierarchical/?language=' +\n selectedLanguage,\n type: 'GET',\n dataType: 'json',\n },\n },\n schema: {\n model: {\n id: 'id',\n hasChildren: true,\n children: 'subPartitions',\n },\n },\n sort: [\n {\n field: 'name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.HierarchicalAllPartitions = new kendo.data.HierarchicalDataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Partitions/AllHierarchical/?language=' +\n selectedLanguage,\n type: 'GET',\n dataType: 'json',\n },\n },\n schema: {\n model: {\n id: 'id',\n hasChildren: true,\n children: 'subPartitions',\n },\n },\n sort: [\n {\n field: 'name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.TreeListPartitions = new kendo.data.TreeListDataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Partitions',\n type: 'GET',\n dataType: 'json',\n },\n },\n schema: {\n model: {\n id: 'id',\n parentId: 'parentId',\n expanded: true,\n },\n },\n });\n\n DataSources.Positions = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Positions',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.BcpTemplates = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/BcpTemplates',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.SurveyQuestionTypes = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/bc/SurveyQuestionTypes',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'text',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.Surveys = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Surveys',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'identification',\n dir: 'asc',\n },\n });\n\n DataSources.Assets = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Assets',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.CostUnits = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/CostUnits',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].description',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.Applications = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Applications?detailed=false',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n ],\n filter: {\n field: 'isActive',\n operator: 'eq',\n value: 'true',\n },\n });\n\n DataSources.Associates = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Associates',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.Services = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Services',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.OperationalImpactQuestions = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/OperationalImpactQuestions',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.FinancialImpactQuestions = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/FinancialImpactQuestions',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.Risks = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Risks',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.RiskGroups = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/RiskGroups',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.RiskImpactAreas = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/RiskImpactAreas',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].impact',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.RiskImpactScales = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/RiskImpactScales',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'value',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.RiskControlEvaluations = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/RiskControlEvaluations',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'value',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.RiskLevels = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/RiskLevels',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'value',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.RiskProbabilities = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/RiskProbabilities',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'value',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.RiskTreatments = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/RiskTreatments',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.ImplementationScales = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/ImplementationScales',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'value',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.LocationGroups = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/LocationGroups',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\']',\n dir: 'asc',\n },\n });\n\n DataSources.RecoverySiteTypes = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/RecoverySiteTypes',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n });\n\n DataSources.RecoverySites = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/RecoverySites',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n group: { field: 'recoverySiteTypeId' },\n });\n\n DataSources.IsraAnswerGroups = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/AnswerGroups',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n });\n\n DataSources.IsraAssessments = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/Assessments',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n });\n\n DataSources.IsraStandardizations = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/Standardizations',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'name',\n dir: 'asc',\n },\n });\n\n DataSources.IsraRisks = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/Risks',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n });\n\n DataSources.IsraControlQuestions = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/ControlQuestions',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].question',\n dir: 'asc',\n },\n });\n\n DataSources.IsraIctRiskCategories = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/IctRiskCategories',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n });\n\n DataSources.HierarchicalIsraQuestionGroups = new kendo.data.HierarchicalDataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id +\n '/isra/QuestionGroups/hierarchical/?language=' + selectedLanguage,\n type: 'GET',\n dataType: 'json',\n },\n },\n schema: {\n model: {\n id: 'id',\n hasChildren: true,\n children: 'subGroups',\n },\n },\n sort: [\n {\n field: 'name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.IsraAnswers = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/Answers',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].answer',\n dir: 'asc',\n },\n });\n\n DataSources.IsraRiskAcceptanceAnswers = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskAcceptanceAnswers',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].answer',\n dir: 'asc',\n },\n });\n\n DataSources.IsraTreatmentAnswers = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/TreatmentAnswers',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'value',\n dir: 'asc',\n },\n });\n\n DataSources.IsraClassificationQuestionnaires = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/ClassificationQuestionnaires?archived=true',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n });\n\n DataSources.IsraClassificationDeployments = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/ClassificationDeployments?archived=true',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n });\n\n DataSources.IsraControlQuestionnaires = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/ControlQuestionnaires?archived=true',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n });\n\n DataSources.HierarchicalIsraQuestions = new kendo.data.HierarchicalDataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/Questions/hierarchical?language=' +\n selectedLanguage,\n type: 'GET',\n dataType: 'json',\n },\n },\n schema: {\n model: {\n id: 'id',\n hasChildren: true,\n children: 'subGroups',\n },\n },\n sort: [\n {\n field: 'name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.IsraQuestions = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/Questions',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].question',\n dir: 'asc',\n },\n });\n\n DataSources.IsraControlQuestions = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/ControlQuestions',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].question',\n dir: 'asc',\n },\n });\n\n DataSources.IsraClassificationQuestions = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/ClassificationQuestions',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].question',\n dir: 'asc',\n },\n });\n\n DataSources.IsraClassificationScales = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/ClassificationScales',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'value',\n dir: 'asc',\n },\n });\n\n DataSources.IsraQuestionGroups = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/QuestionGroups',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n });\n\n DataSources.IsraThreats = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/Threats',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n });\n\n DataSources.IsraVulnerabilities = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/Vulnerabilities',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n });\n\n DataSources.IsraIsoDomains = new kendo.data.HierarchicalDataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/IsoDomains/hierarchical?language=' +\n selectedLanguage,\n type: 'GET',\n dataType: 'json',\n },\n },\n schema: {\n model: {\n id: 'id',\n hasChildren: true,\n children: 'subGroups',\n },\n },\n sort: [\n {\n field: 'name',\n dir: 'asc',\n },\n ],\n });\n\n DataSources.IsraVulnerabilityCategories = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/VulnerabilityCategories',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n });\n\n DataSources.IsraImpactScales = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/ImpactScales',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'value',\n dir: 'asc',\n },\n });\n\n DataSources.IsraLikelihoodScales = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/LikelihoodScales',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'value',\n dir: 'asc',\n },\n });\n\n DataSources.IsraControlStrengthScales = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/ControlStrengthScales',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'value',\n dir: 'asc',\n },\n });\n\n DataSources.IsraRiskScales = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskScales',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'value',\n dir: 'asc',\n },\n });\n\n DataSources.IsraTreatmentPrioritizationScales = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/TreatmentPrioritizationScales',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'value',\n dir: 'asc',\n },\n });\n }\n\n static QuestionnaireQuestions(questionnaireId) {\n return new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/Questionnaires/' + questionnaireId +\n '/questions',\n type: 'GET',\n dataType: 'json',\n },\n },\n });\n }\n\n static IsraRiskManagementRisks(riskManagementId) {\n DataSources._israRiskManagementRisks = new kendo.data.DataSource({\n transport: {\n read: {\n url: `/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${riskManagementId}/Risks`,\n type: 'GET',\n dataType: 'json',\n },\n },\n });\n\n return DataSources._israRiskManagementRisks;\n }\n\n static IsraRiskManagementControls(riskManagementId) {\n DataSources._israRiskManagementControls = new kendo.data.DataSource({\n transport: {\n read: {\n url: `/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${riskManagementId}/Controls`,\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n ],\n });\n\n return DataSources._israRiskManagementControls;\n }\n\n static RiskDeploymentQuestionnaireQuestion(deployment) {\n DataSources._deploymentQuestionnaireQuestion = new kendo.data.DataSource({\n transport: {\n read: {\n url: `/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${deployment.riskManagementId}/AssessmentQuestionnaires/${deployment.id}/questions`,\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n ],\n });\n\n return DataSources._deploymentQuestionnaireQuestion;\n }\n\n static GroupableLocations() {\n if (DataSources._groupableLocationsDataSource == null) {\n DataSources._groupableLocationsDataSource = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Locations/groupable/' +\n selectedLanguage,\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'name',\n dir: 'asc',\n },\n group: { field: 'group' },\n });\n }\n\n return DataSources._groupableLocationsDataSource;\n }\n\n static GroupableRecoverySite() {\n if (DataSources._groupableRecoverySitesDataSource == null) {\n DataSources._groupableRecoverySitesDataSource = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/RecoverySites/groupable/' +\n selectedLanguage,\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'name',\n dir: 'asc',\n },\n group: { field: 'type' },\n });\n }\n\n return DataSources._groupableRecoverySitesDataSource;\n }\n\n static GroupableRisks() {\n if (DataSources._groupableRisksDataSource == null) {\n DataSources._groupableRisksDataSource = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Risks/groupable/' + selectedLanguage,\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'name',\n dir: 'asc',\n },\n group: { field: 'group' },\n });\n }\n\n return DataSources._groupableRisksDataSource;\n }\n}\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginView.vue?vue&type=style&index=0&id=345afd9d&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginView.vue?vue&type=style&index=0&id=345afd9d&scoped=true&lang=css&\"","var map = {\n\t\"./el-GR.json\": \"4b7d\",\n\t\"./en-US.json\": \"2f91\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4818\";","import FormBase from '../../FormBase.js';\nimport Selectors from '../../../Core/Selectors.js';\n\nexport default class RiskImpactScales extends FormBase {\n constructor() {\n super('Risk Impact Scales', 'general');\n this.api = 'bc/RiskImpactScales';\n\n this.columns = [\n {\n title: 'Value',\n binding: 'value',\n type: 'number',\n sort: 'asc',\n validation: { min: 0 },\n },\n {\n title: 'Name',\n binding: 'name',\n required: true,\n translatable: true,\n defaultValue: 'New Impact Scale',\n },\n {\n title: 'Color',\n binding: 'color',\n defaultValue: null,\n required: false,\n template: (dataItem) => Selectors.ColorTemplate(dataItem, 'color'),\n editor: (container, options) => Selectors.ColorSelector(container, options),\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteGeneral.vue?vue&type=style&index=0&id=5c73e06e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteGeneral.vue?vue&type=style&index=0&id=5c73e06e&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireUserLine.vue?vue&type=style&index=0&id=c21b5ab4&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireUserLine.vue?vue&type=style&index=0&id=c21b5ab4&scoped=true&lang=css&\"","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireReviewRiskColumn.vue?vue&type=style&index=0&id=0f3937db&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireReviewRiskColumn.vue?vue&type=style&index=0&id=0f3937db&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationsView.vue?vue&type=style&index=0&id=51e570da&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationsView.vue?vue&type=style&index=0&id=51e570da&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedTypes.vue?vue&type=style&index=0&id=05d76a34&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedTypes.vue?vue&type=style&index=0&id=05d76a34&scoped=true&lang=css&\"","import FormBase from '../FormBase.js';\nimport { selectedLanguage } from '../../main.js';\nimport DataSources from '../../Core/datasources.js';\nimport Constants from '../../Core/constants.js';\nimport { Helpers } from '../../Core/Helpers';\n\nexport default class IsraClassificationQuestions extends FormBase {\n constructor() {\n super('Classification Questions', 'general');\n this.api = 'isra/ClassificationQuestions';\n\n this.options.errorCallBack = {\n delete: () => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .cancelChanges();\n },\n };\n\n this.columns = [\n {\n title: 'Id',\n binding: 'id',\n editable: () => false,\n defaultValue: 0,\n required: false,\n sort: 'asc',\n width: 55,\n },\n {\n title: 'Question Group',\n binding: 'questionGroupId',\n defaultValue: null,\n groupHeaderTemplate: (e) => {\n const item = DataSources.IsraQuestionGroups.get(e.value);\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return 'None';\n }\n },\n template: (dataItem) => {\n const item = DataSources.IsraQuestionGroups.get(dataItem.questionGroupId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return Constants.NoQuestionGroup.translations[selectedLanguage].name;\n }\n },\n editor: (container, options) => {\n this.questionGroupSelector(container, options);\n },\n },\n {\n title: 'Question',\n binding: 'question',\n defaultValue: 'New Question',\n required: 'true',\n translatable: true,\n groupable: false,\n },\n {\n title: 'Comment',\n binding: 'comment',\n translatable: true,\n groupable: false,\n },\n {\n title: 'Answer Group',\n binding: 'answerGroupId',\n required: true,\n groupHeaderTemplate: (e) => {\n const item = DataSources.IsraAnswerGroups.get(e.value);\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return 'None';\n }\n },\n template: (dataItem) => {\n const item = DataSources.IsraAnswerGroups.get(dataItem.answerGroupId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return 'Select a QuestionGroup';\n }\n },\n editor: (container, options) => this.answerGroupSelector(container, options),\n },\n {\n title: 'Questionnaires',\n binding: 'questionnaires',\n required: true,\n groupable: false,\n editable: () => false,\n template: (dataItem) => {\n let q = '';\n for (let i = 0; i < dataItem.questionnaires.length; ++i) {\n q += DataSources.IsraQuestionnaires.get(dataItem.questionnaires[i].id).translations[selectedLanguage].name;\n\n if (i < dataItem.questionnaires.length - 1) {\n q += ', ';\n }\n }\n return q;\n },\n defaultValue: [],\n },\n ];\n\n this.answerColumns = [\n {\n title: 'Answer',\n binding: 'answerId',\n editable: false,\n sort: 'asc',\n template: (dataItem) => {\n return DataSources.IsraAnswers.get(dataItem.answerId).translations[selectedLanguage].answer;\n },\n },\n {\n title: 'Confidentiality',\n binding: 'confidentialityValue',\n sort: 'asc',\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 100,\n step: 1,\n },\n },\n {\n title: 'Integrity',\n binding: 'integrityValue',\n sort: 'asc',\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 100,\n step: 1,\n },\n },\n {\n title: 'Availability',\n binding: 'availabilityValue',\n sort: 'asc',\n type: 'number',\n required: true,\n format: '{0:n0}',\n validation: {\n min: 0,\n max: 100,\n step: 1,\n },\n },\n ];\n }\n\n init() {\n // likelihood max\n const l = [];\n DataSources.IsraImpactScales.data()\n .forEach(i => l.push(i.value));\n const max = Math.max(...l);\n this.answerColumns[1].validation.max = max;\n this.answerColumns[2].validation.max = max;\n this.answerColumns[3].validation.max = max;\n super.init();\n }\n\n setCustomGridProperties(grid) {\n grid.groupable = true;\n\n // Details\n grid.detailTemplate = 'Possible Answers:';\n\n grid.detailInit = (e) => {\n const answersGrid = this.createGrid({\n api: 'isra/ClassificationQuestionAnswers/' + e.data.id,\n columns: this.answerColumns,\n selector: '[name=\"possibleAnswers\"]',\n menu: this.menu,\n });\n\n answersGrid.columns[answersGrid.columns.length - 1] = { command: ['edit'] };\n\n delete answersGrid.toolbar;\n\n $('
')\n .appendTo(e.detailCell)\n .kendoGrid(answersGrid);\n };\n }\n\n require() {\n return [\n DataSources.IsraClassificationQuestionnaires,\n DataSources.IsraAnswerGroups,\n DataSources.IsraQuestionGroups,\n DataSources.HierarchicalIsraQuestionGroups,\n DataSources.IsraAnswers,\n DataSources.IsraImpactScales,\n ];\n }\n\n questionGroupSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownTree({\n optionLabel: Constants.NoQuestionGroup,\n height: 'auto',\n dataSource: DataSources.HierarchicalIsraQuestionGroups,\n valuePrimitive: true,\n dataTextField: 'name',\n dataValueField: 'id',\n loadOnDemand: false,\n });\n }\n\n answerGroupSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.IsraAnswerGroups,\n });\n\n $('')\n .appendTo(container);\n }\n}\n","import { selectedMasterPlan, selectedLanguage } from '../../main.js';\nimport FormBase from '../FormBase.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\n\nexport default class IsraRiskManagementRiskControls extends FormBase {\n constructor(riskManagement) {\n super(`'${riskManagement.translations[selectedLanguage].name}' Risk - Controls`, 'general');\n this.api = 'isra/RiskManagements/' + riskManagement.id + '/RiskControls';\n\n this.riskManagement = riskManagement;\n\n this.columns = [\n {\n title: 'Risk',\n binding: 'riskManagementRiskId',\n required: true,\n sort: 'asc',\n groupHeaderTemplate: (dataItem) => this.riskTemplate(dataItem.value),\n editable: false,\n template: (dataItem) => this.riskTemplate(dataItem),\n hidden: true,\n },\n {\n title: 'Id',\n fieldName: 'controId',\n width: 50,\n editable: () => false,\n template: (dataItem) => {\n const item = this.riskManagementControls.get(dataItem.riskManagementControlId);\n\n if (item == null) { return ''; }\n\n return item.controlId;\n },\n },\n {\n title: 'Control',\n fiendName: 'control',\n template: (dataItem) => this.controlTemplate(dataItem),\n editable: () => false,\n },\n {\n title: 'Impact',\n binding: 'impactWeight',\n defaultValue: 0,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 100,\n step: 1,\n },\n width: '100px',\n hidden: false,\n },\n {\n title: 'Likelihood',\n binding: 'probabilityWeight',\n defaultValue: 0,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 100,\n step: 1,\n },\n width: '100px',\n hidden: false,\n },\n ];\n }\n\n init() {\n // likelihood max\n const l = [];\n DataSources.IsraImpactScales.data()\n .forEach(i => l.push(i.value));\n this.columns[3].validation.max = Math.max(...l);\n\n DataSources.IsraLikelihoodScales.data()\n .forEach(i => l.push(i.value));\n this.columns[4].validation.max = Math.max(...l);\n super.init();\n }\n\n require() {\n this.riskManagementRisks = DataSources.IsraRiskManagementRisks(this.riskManagement.id);\n this.riskManagementControls = DataSources.IsraRiskManagementControls(this.riskManagement.id);\n\n return [\n this.riskManagementRisks,\n this.riskManagementControls,\n DataSources.IsraRisks,\n DataSources.IsraImpactScales,\n DataSources.IsraLikelihoodScales];\n }\n\n setCustomDatasourceProperties(source) {\n source.group = { field: 'riskManagementRiskId' };\n }\n\n setCustomGridProperties(grid) {\n grid.toolbar = [\n {\n name: 'excel',\n text: 'Export',\n },\n { template: 'Reset Deleted Risk-Controls' },\n { template: 'Add Risk-Control' },\n ];\n\n const databound = grid.dataBound;\n let firstDataBound = true;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n if (firstDataBound) {\n firstDataBound = false;\n $('[name=\\'ResetRiskControls\\']')\n .off('click')\n .on('click', () => {\n kendo.ui.progress($(this.grid), true);\n $.post(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${this.riskManagement.id}/RiskControls/RecreateBrokenConnections`)\n .then(() => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .read();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n });\n\n $('[name=\\'AddRiskControl\\']')\n .off('click')\n .on('click', () => {\n const content = 'Risk

' +\n 'Control
';\n\n Helpers.showPopUp('Select Risk and Control', content, [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const risk = $('#risksComboBox')\n .data('kendoDropDownList')\n .dataItem();\n const control = $('#controlsComboBox')\n .data('kendoDropDownList')\n .dataItem();\n\n if (risk != null && control != null) {\n $.post(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${this.riskManagement.id}/RiskControls/Add/Risk/${risk.id}/Control/${control.id}`)\n .then(() => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .read();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n });\n return true;\n }\n return false;\n },\n },\n {\n text: 'Cancel',\n action: function () {\n return true;\n },\n }]);\n\n let controlsFilters = [];\n\n $('#risksComboBox')\n .width(500)\n .kendoDropDownList({\n autoBind: true,\n dataTextField: 'risk.translations[\\'' + selectedLanguage + '\\'].name',\n dataValueField: 'id',\n valuePrimitive: true,\n dataSource: this.riskManagementRisks,\n filter: 'contains',\n filtering: function (e) {\n const filterValue = e.filter !== undefined ? e.filter.value : '';\n e.preventDefault();\n\n this.dataSource.filter({\n logic: 'and',\n filters: [\n {\n field: 'risk.translations[\\'' + selectedLanguage + '\\'].name',\n operator: 'contains',\n value: filterValue,\n },\n ],\n });\n },\n suggest: true,\n dataBound: (e) => {\n const data = $(this.grid)\n .data('kendoGrid')\n .dataSource\n .data();\n controlsFilters = [];\n for (let i = 0; i < data.length; ++i) {\n const selected = e.sender.value();\n if (data[i].riskId === selected) {\n controlsFilters.push({\n field: 'id',\n operator: 'neq',\n value: data[i].controlId,\n });\n }\n }\n\n const c = $('#controlsComboBox')\n .data('kendoDropDownList');\n if (c != null) {\n c.dataSource.filter(controlsFilters);\n c.listView.setDSFilter(c.dataSource.filter());\n }\n },\n change: (e) => {\n const data = $(this.grid)\n .data('kendoGrid')\n .dataSource\n .data();\n controlsFilters = [];\n for (let i = 0; i < data.length; ++i) {\n const selected = e.sender.value();\n if (data[i].riskId === selected) {\n controlsFilters.push({\n field: 'id',\n operator: 'neq',\n value: data[i].controlId,\n });\n }\n }\n\n const c = $('#controlsComboBox')\n .data('kendoDropDownList');\n c.dataSource.filter(controlsFilters);\n c.listView.setDSFilter(c.dataSource.filter());\n },\n });\n\n $('#controlsComboBox')\n .width(500)\n .kendoDropDownList({\n autoBind: true,\n dataTextField: 'translations[\\'' + selectedLanguage + '\\'].question',\n dataValueField: 'id',\n valuePrimitive: true,\n dataSource: this.riskManagementControls,\n filter: 'contains',\n filtering: function (e) {\n const filterValue = e.filter !== undefined ? e.filter.value : '';\n e.preventDefault();\n\n this.dataSource.filter({\n logic: 'and',\n filters: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].question',\n operator: 'contains',\n value: filterValue,\n },\n ...controlsFilters,\n ],\n });\n },\n suggest: true,\n });\n });\n }\n };\n }\n\n riskTemplate(dataItem) {\n // for group header\n if (typeof dataItem === 'number') { dataItem = { riskManagementRiskId: dataItem }; }\n\n const item = this.riskManagementRisks.get(dataItem.riskManagementRiskId);\n if (item == null) { return ''; }\n\n const risk = DataSources.IsraRisks.get(item.riskId);\n\n if (risk != null) {\n return Helpers.sanitizeHTML(risk.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n\n controlTemplate(dataItem) {\n const item = this.riskManagementControls.get(dataItem.riskManagementControlId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].question);\n } else {\n return '';\n }\n }\n}\n","import { DocumentFileFormat } from '@/dtos/all';\nimport DownloadService from '@/services/DownloadService';\nimport Constants from '../../Core/constants.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport { selectedLanguage, selectedMasterPlan } from '../../main.js';\nimport DeploymentQuestionnaireFormBase from '../DeploymentQuestionnaireFormBase.js';\n\nexport default class IsraClassificationDeploymentQuestionnaire extends DeploymentQuestionnaireFormBase {\n constructor(deployment) {\n super(\n deployment,\n '/api/masterplans/' + selectedMasterPlan.id + '/isra/ClassificationDeployments/' + deployment.id,\n 'classificationDeploymentQuestionnaire',\n 'Classification Questionnaire - \\'{0}\\'',\n );\n\n this.api = 'isra/ClassificationDeployments/' + deployment.id + '/questions';\n\n this.confidentiality = 0;\n this.integrity = 0;\n this.availability = 0;\n\n this.subTitleButtons.push({\n name: 'deploymentExportExcel',\n icon: 'excel.png',\n text: 'Export',\n actions: () => {\n //\n kendo.ui.progress($(this.grid), true);\n\n $.get(`/api/masterplans/${selectedMasterPlan.id}/isra/ClassificationDeployments/DownloadQuestionnaire/${deployment.id}`)\n .then(function (data) {\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Unknown,\n });\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($('.grid'), false);\n });\n },\n });\n\n this.columns = [\n {\n title: ' ',\n fieldName: 'comment',\n template: (dataItem) => {\n if (dataItem.comment != null) {\n return dataItem.comment;\n }\n\n const q = DataSources.IsraClassificationQuestions.get(dataItem.questionId);\n if (q.translations[selectedLanguage].comment == null ||\n q.translations[selectedLanguage].comment === '') {\n return '';\n } else {\n return '';\n }\n },\n width: '38px',\n editable: false,\n sortable: false,\n },\n {\n title: 'Id',\n binding: 'questionId',\n sort: 'asc',\n width: '55px',\n editable: false,\n },\n {\n title: 'Question',\n fieldName: 'question',\n template: (dataItem) => {\n const q = DataSources.IsraClassificationQuestions.get(dataItem.questionId);\n return Helpers.sanitizeHTML(q.translations[selectedLanguage].question)\n .replace('\\n', '
');\n },\n datasource: DataSources.IsraClassificationQuestions,\n sortField: 'translations.' + selectedLanguage + '.question',\n sortId: 'questionId',\n editable: false,\n },\n {\n title: 'Answer',\n binding: 'answerId',\n width: 130,\n sortable: false,\n template: (dataItem) => {\n if (dataItem.answerId == null) {\n return ' ';\n }\n\n const q = DataSources.IsraClassificationQuestions.get(dataItem.questionId);\n if (q == null) {\n Helpers.showError('Unable to find Classification Question with id ' + dataItem.questionId);\n return '';\n }\n\n // find question answer\n const answer = q.answers.find((element) => {\n return element.id === dataItem.answerId;\n });\n\n // find text for question answer\n const item = DataSources.IsraAnswers.get(answer.answerId);\n\n if (item == null) {\n return '';\n }\n\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].answer);\n },\n editor: (container, options) => this.answerSelector(container, options),\n },\n {\n title: 'Comments',\n binding: 'comments',\n sortable: false,\n },\n {\n binding: 'groups[0]',\n groupHeaderTemplate: (e) => {\n return e.value || '';\n },\n hidden: true,\n },\n {\n binding: 'groups[1]',\n groupHeaderTemplate: (e) => {\n return e.value || '';\n },\n hidden: true,\n },\n {\n binding: 'groups[2]',\n groupHeaderTemplate: (e) => {\n return e.value || '';\n },\n hidden: true,\n },\n {\n binding: 'groups[3]',\n groupHeaderTemplate: (e) => {\n return e.value || '';\n },\n hidden: true,\n },\n {\n binding: 'groups[4]',\n groupHeaderTemplate: (e) => {\n return e.value || '';\n },\n hidden: true,\n },\n ];\n }\n\n require() {\n return [\n DataSources.IsraAnswers,\n DataSources.IsraClassificationScales,\n DataSources.IsraClassificationQuestions,\n ];\n }\n\n setCustomMenuItems(menu) {\n if (this.readonly) {\n delete menu.edit;\n delete menu.delete;\n } else {\n super.setCustomMenuItems(menu);\n }\n }\n\n init() {\n $.get(String.format(\n '/api/masterplans/{0}/isra/ClassificationDeployments/{1}', selectedMasterPlan.id,\n this.deployment.id,\n ))\n .done((e) => {\n $.get(String.format(\n '/api/masterplans/{0}/bc/Applications/ApplicationRto/{1}', selectedMasterPlan.id,\n e.applicationId,\n ))\n .done((e) => {\n $('#rto_bia_value')\n .html('' +\n Helpers.sanitizeHTML(e.translations[selectedLanguage].name));\n })\n .fail((e) => {\n if (e.status === 404) {\n $('#rto_bia_value')\n .text('Not found');\n } else {\n Helpers.showPopUp2({\n title: 'Error',\n content: 'Error retrieving Classification Deployment:
' + e.status + ' - ' +\n e.statusText + '
' + e.responseText,\n });\n }\n });\n })\n .fail((e) => {\n Helpers.showPopUp2({\n title: 'Error',\n content: 'Error retrieving Classification Deployment:
' + e.status + ' - ' +\n e.statusText + '
' + e.responseText,\n });\n });\n\n // $.get(String.format(\"/api/masterplans/{0}/bc/Applications/ApplicationRto/{1}\", selectedMasterPlan.id, this.deployment))\n\n super.init();\n }\n\n setCustomGridProperties(grid) {\n delete grid.pageable;\n\n // remove add new record\n delete grid.toolbar;\n // grid.toolbar.splice(0, 1);\n\n let databound;\n\n // if readonly disable double click from databound\n if (this.readonly) {\n databound = () => {\n };\n } else {\n databound = grid.dataBound;\n }\n\n if (!this.readonly) {\n grid.columns[grid.columns.length - 1].command = ['edit'];\n } else {\n grid.columns[grid.columns.length - 1].command = [];\n }\n\n let firstDataBound = true;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n if (e.sender.dataSource._group.length > 0) {\n $('tbody .k-grouping-row')\n .filter(function () {\n return $(this).find('p')[0].innerText.trim() === '';\n })\n .hide();\n } else {\n $('tr td:empty')\n .parent()\n .show();\n }\n\n const data = e.sender.dataSource.data();\n\n this.confidentiality = 1;\n this.integrity = 1;\n this.availability = 1;\n\n $.each(data, (i, row) => {\n if (row.answerId == null) {\n $('tr[data-uid=\"' + row.uid + '\"] ')\n .addClass('deployment-pending');\n }\n\n const q = DataSources.IsraClassificationQuestions.get(row.questionId);\n if (q == null) {\n Helpers.showError('Unable to find Classification Question with id ' + row.questionId);\n return;\n }\n\n // find question answer\n const answer = q.answers.find((element) => {\n return element.id === row.answerId;\n });\n\n if (answer != null) {\n if (answer.confidentialityValue > this.confidentiality) {\n this.confidentiality = answer.confidentialityValue;\n }\n\n if (answer.integrityValue > this.integrity) {\n this.integrity = answer.integrityValue;\n }\n\n if (answer.availabilityValue > this.availability) {\n this.availability = answer.availabilityValue;\n }\n }\n });\n\n const scales = DataSources.IsraClassificationScales.data();\n\n const crit = Math.max(Math.round((this.confidentiality + this.availability + this.integrity) / 3), 1);\n const rto = Math.max(this.availability, 1);\n\n const confScale = scales.find((element) => {\n return element.value === this.confidentiality;\n });\n\n const inteScale = scales.find((element) => {\n return element.value === this.integrity;\n });\n\n const avaiScale = scales.find((element) => {\n return element.value === this.availability;\n });\n\n const critScale = scales.find((element) => {\n return element.value === crit;\n });\n\n const rtoScale = scales.find((element) => {\n return element.value === rto;\n });\n\n $('#conf_value')\n .html('' +\n Helpers.sanitizeHTML(confScale.value) + ' - ' +\n Helpers.sanitizeHTML(confScale.translations[selectedLanguage].name));\n $('#inte_value')\n .html('' +\n Helpers.sanitizeHTML(inteScale.value) + ' - ' +\n Helpers.sanitizeHTML(inteScale.translations[selectedLanguage].name));\n $('#avai_value')\n .html('' +\n Helpers.sanitizeHTML(avaiScale.value) + ' - ' +\n Helpers.sanitizeHTML(avaiScale.translations[selectedLanguage].name));\n\n // $('#classification_value').html('' + Helpers.sanitizeHTML(conf_scale.translations[selectedLanguage].confidentialityLabel));\n\n $('#crit_value')\n .html('' +\n Helpers.sanitizeHTML(critScale.value) + ' - ' +\n Helpers.sanitizeHTML(critScale.translations[selectedLanguage].name));\n $('#rto_value')\n .html('' +\n Helpers.sanitizeHTML(rtoScale.translations[selectedLanguage].classificationRTO));\n\n // check max questiongroup depth and add grouping\n if (firstDataBound) {\n firstDataBound = false;\n const grid = e.sender;\n const data = grid.dataSource.data();\n\n let maxdepth = 0;\n let recommendedActions = false;\n for (let i = 0; i < data.length; ++i) {\n if (data[i].groups.length > maxdepth) {\n maxdepth = data[i].groups.length;\n }\n\n const q = DataSources.IsraClassificationQuestions.get(data[i].questionId);\n if (q == null) {\n console.log('Question not found...');\n } else {\n const ra = q.translations[selectedLanguage].recommendedActions;\n if (ra != null && ra.trim() !== '') {\n recommendedActions = true;\n }\n }\n }\n\n if (recommendedActions === false) {\n grid.hideColumn('recommendedActions');\n }\n\n const groups = [];\n for (let i = 0; i < maxdepth; ++i) {\n groups.push({ field: 'groups[' + i + ']' });\n }\n grid.dataSource.group(groups);\n }\n };\n }\n\n setCustomDatasourceProperties(source) {\n delete source.pageable;\n }\n\n async checkAllQuestionsFinished() {\n const data = $(this.grid)\n .data('kendoGrid')\n .dataSource\n .data();\n\n const found = [];\n for (let i = 0; i < data.length; ++i) {\n if (data[i].answerId == null) {\n found.push(data[i].questionId);\n }\n }\n\n if (found.length > 0) {\n let length = 0;\n let txt = '';\n for (let i = 0; i < found.length; ++i) {\n txt += found[i];\n if (i < found.length - 1) {\n length += ('' + found[i]).length + 2;\n txt += ', ';\n if (length > 60) {\n txt += '
';\n length = 0;\n }\n }\n }\n\n const promise = new Promise((resolve) => {\n Helpers.showPopUp2({\n title: 'Approve \"' + this.deployment.translations[selectedLanguage].name + '\"',\n content: 'You have not answered all questions.
Are you sure you want to proceed with the approval?
Unanswered Questions:
' +\n txt,\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n resolve(true);\n },\n },\n {\n text: 'Cancel',\n action: () => {\n resolve(false);\n },\n },\n ],\n });\n });\n return promise;\n }\n return true;\n }\n\n async customApproveCheck() {\n return await this.checkAllQuestionsFinished();\n }\n\n answerSelector(container, options) {\n const question = DataSources.IsraClassificationQuestions.get(options.model.questionId);\n if (question == null) {\n Helpers.showError('Unable to find Classification Question with id ' + options.model.questionId);\n return;\n }\n\n const data = question.answers;\n\n $('')\n .appendTo(container)\n .kendoDropDownList({\n optionLabel: Constants.NoDeploymentQuestionnaireAnswer,\n optionLabelTemplate: () => {\n return ' ';\n },\n valuePrimitive: true,\n template: (dataItem) => {\n if (dataItem.answerId == null) {\n return ' ';\n }\n\n const answer = DataSources.IsraAnswers.get(dataItem.answerId);\n return Helpers.sanitizeHTML(answer.translations[selectedLanguage].answer);\n },\n valueTemplate: (dataItem) => {\n if (dataItem.answerId == null) {\n return ' ';\n }\n\n return Helpers.sanitizeHTML(DataSources.IsraAnswers.get(dataItem.answerId).translations[selectedLanguage].answer);\n },\n dataValueField: 'id',\n dataSource: {\n data: data,\n },\n });\n }\n}\n","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnColor.vue?vue&type=style&index=0&id=60a54810&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnColor.vue?vue&type=style&index=0&id=60a54810&scoped=true&lang=css&\"","const EmptyLocation = {\n id: '0',\n locationGroup: '0',\n translations: {\n 'en-US': {\n country: 'Select location',\n state: '',\n city: '',\n address: '',\n zipCode: '',\n language: 'en-US',\n },\n 'el-GR': {\n country: 'Select location',\n state: '',\n city: '',\n address: '',\n zipCode: '',\n language: 'el-GR',\n },\n },\n};\n\nconst EmptyGroup = {\n id: '0',\n locations: [],\n value: '',\n translations: {\n 'en-US': { name: 'None' },\n 'el-GR': { name: 'Κανένα' },\n },\n};\n\nconst Empty = {\n id: null,\n value: '',\n translations: {\n 'en-US': { name: 'None' },\n 'el-GR': { name: 'Κανένα' },\n },\n};\n\nconst RiskSelfAssessmentType = {\n None: 0,\n Registry: 1,\n Text: 2,\n Both: 3,\n};\n\nconst RiskSelfAssessmentTypeTranslations = [\n {\n id: 1,\n translations: {\n 'en-US': 'Registry',\n 'el-GR': 'Μητρώο',\n },\n },\n {\n id: 2,\n translations: {\n 'en-US': 'Free Text',\n 'el-GR': 'Ελεύθερο Κείμενο',\n },\n },\n {\n id: 3,\n translations: {\n 'en-US': 'User Choise',\n 'el-GR': 'Επιλογή Χρήστη',\n },\n },\n];\n\nconst EmptyRTOScale = {\n id: '0',\n value: 0,\n translations: {\n 'en-US': { name: 'Select RTO' },\n 'el-GR': { name: 'Select RTO' },\n },\n};\n\nconst NoRtoCalculated = {\n translations: {\n 'en-US': { name: 'No RTO Calculated' },\n 'el-GR': { name: 'No RTO Calculated' },\n },\n};\n\nconst NoMaoCalculated = {\n translations: {\n 'en-US': { name: 'No MAO Calculated' },\n 'el-GR': { name: 'No MAO Calculated' },\n },\n};\n\nconst SelectUser = {\n id: 0,\n username: ' ',\n info: 'Please select User',\n};\n\nconst SelectPosition = {\n id: '0',\n translations: {\n 'en-US': { name: 'Select Position' },\n 'el-GR': { name: 'Επιλέξτε Θέση' },\n },\n};\n\nconst SelectQuestionnaire = {\n id: null,\n translations: {\n 'en-US': { name: 'Select Questionnaire' },\n 'el-GR': { name: 'Επιλέξτε Ερωτηματολόγιο' },\n },\n};\n\nconst SelectQuestion = {\n id: null,\n translations: {\n 'en-US': { name: 'Select Question' },\n 'el-GR': { name: 'Επιλέξτε Ερώτηση' },\n },\n};\n\nconst SelectAnswerGroup = {\n id: null,\n translations: {\n 'en-US': { name: 'Select Group' },\n 'el-GR': { name: 'Επιλέξτε Ομάδα' },\n },\n};\n\nconst NoVulnerabilityCategory = {\n id: 0,\n translations: {\n 'en-US': { name: 'None' },\n 'el-GR': { name: 'Καμία' },\n },\n};\n\nconst NoQuestionGroup = {\n id: null,\n translations: {\n 'en-US': { name: 'None' },\n 'el-GR': { name: 'Κανένα' },\n },\n};\n\nconst NoThreat = {\n id: 0,\n translations: {\n 'en-US': { name: 'None' },\n 'el-GR': { name: 'Καμία' },\n },\n};\n\nconst NoVulnerability = {\n id: 0,\n translations: {\n 'en-US': { name: 'None' },\n 'el-GR': { name: 'Καμία' },\n },\n};\n\nconst NoIsoDomain = {\n id: 0,\n translations: {\n 'en-US': { name: 'None' },\n 'el-GR': { name: 'Καμία' },\n },\n};\n\nconst NoFinancialImpact = {\n id: '0',\n translations: {\n 'en-US': { name: 'No Financial Impact' },\n 'el-GR': { name: 'Καμία Οικονομική Επίπτωση' },\n },\n};\n\nconst NoDeploymentQuestionnaireAnswer = {\n id: null,\n answerId: null,\n};\n\nconst InternalExternalValues = [\n {\n id: 1,\n translations: {\n 'en-US': 'Internal',\n 'el-GR': 'Εσωτερικός',\n },\n },\n {\n id: 2,\n translations: {\n 'en-US': 'External',\n 'el-GR': 'Εξωτερικός',\n },\n },\n];\n\nconst InputOutputValues = [\n {\n id: 1,\n translations: {\n 'en-US': 'Input',\n 'el-GR': 'Είσοδος',\n },\n },\n {\n id: 2,\n translations: {\n 'en-US': 'Output',\n 'el-GR': 'Έξοδος',\n },\n },\n {\n id: 3,\n translations: {\n 'en-US': 'Input/Output',\n 'el-GR': 'Είσοδος/Έξοδος',\n },\n },\n];\n\nconst Comments = {\n 'en-US': 'Comments',\n 'el-GR': 'Σχόλια',\n};\n\nconst RoleTypes = {\n General: {\n Administrator: 'General.Administrator',\n User: 'General.User',\n UserManager: 'General.UserManager',\n },\n\n BCM: {\n Administrator: 'BCM.Administrator',\n Coordinator: 'BCM.Coordinator',\n },\n\n ISRA: {\n Administrator: 'ISRA.Administrator',\n Assessor: 'ISRA.Assessor',\n },\n};\n\nconst QuestionType = {\n Text: 1,\n Single: 2,\n Multiple: 3,\n};\n\nconst DeploymentStatus = {\n Undeployed: 0,\n DataEntry: 1,\n ApprovalPath: 2,\n AdminApproval: 3,\n Finished: 4,\n};\n\nconst DeploymentStatusTranslations = {\n [DeploymentStatus.Undeployed]: {\n translations: {\n 'en-US': 'Undeployed',\n },\n },\n [DeploymentStatus.DataEntry]: {\n translations: {\n 'en-US': 'Data Entry',\n },\n },\n [DeploymentStatus.ApprovalPath]: {\n translations: {\n 'en-US': 'Approval Path',\n },\n },\n [DeploymentStatus.Finished]: {\n translations: {\n 'en-US': 'Finished',\n },\n },\n [DeploymentStatus.AdminApproval]: {\n translations: {\n 'en-US': 'Waiting Approval',\n },\n },\n};\n\nconst RiskManagementStatus = {\n NotStarted: 0,\n Assessment: 1,\n ReadyForAssessmentReview: 3,\n AssessmentReview: 4,\n ReadyForTreatment: 5,\n Treatment: 6,\n ReadyForTreatmentReview: 7,\n TreatmentReview: 8,\n ReadyForAcceptance: 9,\n Acceptance: 10,\n Finished: 11,\n};\n\nconst RiskManagementStatusTranslations = {\n [RiskManagementStatus.NotStarted]: {\n translations: {\n 'en-US': 'Not Started',\n },\n },\n [RiskManagementStatus.Assessment]: {\n translations: {\n 'en-US': 'Risk Assessment',\n },\n },\n [RiskManagementStatus.ReadyForAssessmentReview]: {\n translations: {\n 'en-US': 'Awaiting Assessment Review',\n },\n },\n [RiskManagementStatus.AssessmentReview]: {\n translations: {\n 'en-US': 'Risk Assessment Review',\n },\n },\n [RiskManagementStatus.ReadyForTreatment]: {\n translations: {\n 'en-US': 'Ready for Treatment',\n },\n },\n [RiskManagementStatus.Treatment]: {\n translations: {\n 'en-US': 'Risk Treatment',\n },\n },\n [RiskManagementStatus.ReadyForTreatmentReview]: {\n translations: {\n 'en-US': 'Awaiting Treatment Review',\n },\n },\n [RiskManagementStatus.TreatmentReview]: {\n translations: {\n 'en-US': 'Treatment Review',\n },\n },\n [RiskManagementStatus.ReadyForAcceptance]: {\n translations: {\n 'en-US': 'Ready for Acceptance',\n },\n },\n [RiskManagementStatus.Acceptance]: {\n translations: {\n 'en-US': 'Risk Acceptance',\n },\n },\n [RiskManagementStatus.Finished]: {\n translations: {\n 'en-US': 'Finished',\n },\n },\n};\n\nconst ApprovalPathStatus = {\n Pending: 0,\n On: 1,\n Finished: 2,\n};\nconst UserRoles = {\n 1: 'Administrator',\n 2: 'Super User',\n 3: 'Coordinator',\n 4: 'User',\n 5: 'ISRA Manager',\n};\nconst IsraAnswerType = [\n {\n id: 1,\n translations: {\n 'en-US': 'Reference',\n 'el-GR': 'Αναφορά',\n },\n },\n {\n id: 2,\n translations: {\n 'en-US': 'Value',\n 'el-GR': 'Τιμή',\n },\n },\n];\n\nconst DeploymentType = {\n Classification: 1,\n Assessment: 2,\n Treatment: 3,\n Acceptance: 4,\n};\nconst DeploymentFamily = {\n Continuity: 1,\n Isra: 2,\n};\nconst DeploymentUserActionType = {\n Actions: 1,\n Pending: 2,\n Finished: 3,\n Approval: 5,\n None: 4,\n};\n\nconst DeploymentUserActionTypeTranslations = {\n [DeploymentUserActionType.Actions]: {\n 'en-US': 'Actions Required',\n 'el-GR': 'Απαιτούνται ενέργειες',\n },\n [DeploymentUserActionType.Approval]: {\n 'en-US': 'Super User Approval',\n 'el-GR': 'Έγκριση',\n },\n\n [DeploymentUserActionType.Pending]: {\n 'en-US': 'Pending',\n 'el-GR': 'Σε ανμονή',\n },\n\n [DeploymentUserActionType.Finished]: {\n 'en-US': 'Finished',\n 'el-GR': 'Ολοκληρωμένο',\n },\n\n [DeploymentUserActionType.None]: {\n 'en-US': 'None',\n 'el-GR': 'Καμία',\n },\n};\n\nexport default {\n EmptyLocation,\n RoleTypes,\n UserRoles,\n RiskSelfAssessmentTypeTranslations,\n RiskSelfAssessmentType,\n QuestionType,\n IsraAnswerType,\n InternalExternalValues,\n InputOutputValues,\n DeploymentUserActionTypeTranslations,\n DeploymentUserActionType,\n DeploymentType,\n RiskManagementStatus,\n RiskManagementStatusTranslations,\n DeploymentStatusTranslations,\n DeploymentStatus,\n DeploymentFamily,\n Comments,\n ApprovalPathStatus,\n Empty,\n EmptyGroup,\n EmptyRTOScale,\n NoDeploymentQuestionnaireAnswer,\n NoFinancialImpact,\n NoIsoDomain,\n NoMaoCalculated,\n NoQuestionGroup,\n NoRtoCalculated,\n NoThreat,\n NoVulnerability,\n NoVulnerabilityCategory,\n SelectAnswerGroup,\n SelectPosition,\n SelectQuestion,\n SelectQuestionnaire,\n SelectUser,\n};\n","import { DocumentFileFormat } from '@/dtos/all';\nimport DownloadService from '@/services/DownloadService';\nimport Constants from '../../Core/constants.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport Selectors from '../../Core/Selectors';\nimport { selectedLanguage, selectedMasterPlan } from '../../main.js';\nimport DeploymentQuestionnaireFormBase from '../DeploymentQuestionnaireFormBase.js';\n\nexport default class IsraRiskManagementTreatmentQuestionnaire extends DeploymentQuestionnaireFormBase {\n constructor(deployment) {\n super(\n deployment,\n `/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${deployment.riskManagementId}/TreatmentQuestionnaires/${deployment.id}`,\n 'general',\n 'Treatment Questionnaire - \\'{0}\\'',\n );\n\n this.api = `isra/RiskManagements/${deployment.riskManagementId}/TreatmentQuestionnaires/${deployment.id}/questions`;\n\n this.subTitleButtons.push({\n name: 'deploymentExportExcel',\n icon: 'excel.png',\n text: 'Export',\n actions: () => {\n //\n kendo.ui.progress($(this.grid), true);\n\n $.get(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${deployment.riskManagementId}/DownloadTreatmentQuestionnaire/${deployment.id}`)\n .then(function (data) {\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Unknown,\n });\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($('.grid'), false);\n });\n },\n });\n\n this.columns = [\n {\n title: 'Risk',\n binding: 'riskManagementRiskId',\n width: 30,\n editable: false,\n hidden: true,\n groupHeaderTemplate: (e) => {\n const item = this.riskManagementRisks.get(e.value);\n const scale = DataSources.IsraRiskScales.get(e.items[0].currentRiskScaleId);\n\n return `${Helpers.sanitizeHTML(item.risk.translations[selectedLanguage].name)} (Current Risk:  ${Helpers.sanitizeHTML(scale.translations[selectedLanguage].name)})`;\n },\n },\n {\n title: 'Id',\n fieldName: 'identification',\n template: (dataItem) => {\n return Helpers.sanitizeHTML(dataItem.question.controlId);\n },\n width: '55px',\n editable: false,\n },\n {\n title: ' ',\n fieldName: 'comment',\n template: (dataItem) => {\n const q = dataItem.question;\n const answer = DataSources.IsraAnswers.get(dataItem.answerId);\n\n let ret = ' {\n return Helpers.sanitizeHTML(dataItem.question.translations[selectedLanguage].recommendedActions);\n },\n width: '350px',\n editable: false,\n },\n // {\n // title: ' ',\n // width: 5,\n // binding: 'none',\n // editable: false,\n // },\n // {\n // title: 'Control Strength',\n // binding: 'controlStrengthId',\n // width: 100,\n // editable: false,\n // template: (dataItem) => {\n // if (dataItem.controlStrengthId == null)\n // return ' ';\n //\n // let item = DataSources.IsraControlStrengthScales.get(dataItem.controlStrengthId);\n //\n // if (item == null)\n // return \"\";\n //\n // return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n // },\n // },\n {\n title: 'Implementation',\n binding: 'treatmentAnswerId',\n width: 300,\n template: (dataItem) => {\n if (dataItem.treatmentAnswerId == null) {\n return ' ';\n }\n\n const item = DataSources.IsraTreatmentAnswers.get(dataItem.treatmentAnswerId);\n\n if (item == null) {\n return '';\n }\n\n const text = '' +\n Helpers.sanitizeHTML(item.translations[selectedLanguage].answer) + '';\n return text;\n },\n editor: (container, options) => this.answerSelector(container, options),\n },\n {\n title: 'Implementation Responsible',\n binding: 'implementationResponsible',\n width: 250,\n },\n {\n title: ' ',\n width: 5,\n binding: 'none',\n editable: false,\n },\n {\n title: 'Prioritization',\n binding: 'prioritizationScaleId',\n width: 200,\n editable: false,\n template: (dataItem) => {\n if (dataItem.prioritizationScaleId == null) {\n return ' ';\n }\n\n const item = DataSources.IsraTreatmentPrioritizationScales.get(dataItem.prioritizationScaleId);\n\n if (item == null) {\n return '';\n }\n\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n },\n },\n {\n title: 'Implementation
Due Date',\n binding: 'implementationDueDate',\n collapsable: true,\n template: (dataItem) => Selectors.DateTemplate(\n dataItem, 'implementationDueDate',\n 'Not set',\n ),\n editor: (container, options) => {\n Selectors.DatePicker(container, options, 'implementationDueDate');\n },\n width: 200,\n },\n {\n title: 'Implementation Status',\n binding: 'implementationStatusId',\n width: 200,\n collapsable: true,\n defaultValue: null,\n template: (dataItem) => {\n if (dataItem.implementationStatusId == null) {\n return '';\n }\n\n const item = DataSources.ImplementationScales.get(dataItem.implementationStatusId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n },\n editor: (container, options) => this.implementationStatusSelector(container, options),\n editable: () => () => {\n console.log(this.deployment);\n return (!this.readonly || this.deployment.status === Constants.DeploymentStatus.Finished);\n },\n },\n {\n title: 'Comments',\n binding: 'comments',\n width: 200,\n },\n // {\n // title: ' ',\n // width: 5,\n // binding: 'none',\n // editable: false,\n // },\n // {\n // title: 'Future Risk',\n // binding: 'futureRiskScaleId',\n // width: 100,\n // editable: false,\n // template: (dataItem) => {\n // if (dataItem.futureRiskScaleId == null)\n // return ' ';\n //\n // let item = DataSources.IsraRiskScales.get(dataItem.futureRiskScaleId);\n //\n // if (item == null)\n // return \"\";\n //\n // return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n // },\n // },\n ];\n }\n\n require() {\n this.riskManagementRisks = DataSources.IsraRiskManagementRisks(this.deployment.riskManagementId);\n\n return [\n this.riskManagementRisks,\n DataSources.IsraRiskScales,\n DataSources.IsraAnswers,\n DataSources.IsraTreatmentAnswers,\n DataSources.IsraTreatmentPrioritizationScales,\n DataSources.ImplementationScales,\n ];\n }\n\n setCustomMenuItems(menu) {\n if (this.readonly) {\n delete menu.edit;\n delete menu.delete;\n } else {\n super.setCustomMenuItems(menu);\n }\n }\n\n setCustomGridProperties(grid) {\n // remove add new record\n delete grid.toolbar;\n // grid.toolbar.splice(0, 1);\n\n let databound;\n\n // if readonly disable double click from databound\n if (this.readonly) {\n databound = () => {\n };\n } else {\n databound = grid.dataBound;\n }\n\n if (!this.readonly) {\n grid.columns[grid.columns.length - 1].command = ['edit'];\n } else {\n grid.columns[grid.columns.length - 1].command = [];\n }\n\n // const firstDataBound = true;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n const data = e.sender.dataSource.data();\n\n $.each(data, (i, row) => {\n if (row.treatmentAnswerId == null) {\n $('tr[data-uid=\"' + row.uid + '\"] ')\n .addClass('deployment-pending');\n }\n\n const plan = DataSources.IsraTreatmentPrioritizationScales.get(row.prioritizationScaleId);\n // let future = DataSources.IsraRiskScales.get(row.futureRiskScaleId);\n // let strength = DataSources.IsraControlStrengthScales.get(row.controlStrengthId);\n\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(8)')\n .css('background-color', plan.color);\n // $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(13)').css('background-color', future.color);\n // $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(6)').css('background-color', strength.color);\n });\n };\n }\n\n setCustomDatasourceProperties(source) {\n super.setCustomDatasourceProperties(source);\n\n source.group = [{ field: 'riskManagementRiskId' }];\n\n source.change = (e) => {\n if (e.action === 'itemchange') {\n const data = $(this.grid)\n .data('kendoGrid')\n .dataSource\n .data();\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].id === e.items[0].id) {\n data[i].treatmentAnswerId = e.items[0].treatmentAnswerId;\n data[i].implementationDueDate = e.items[0].implementationDueDate;\n data[i].implementationResponsible = e.items[0].implementationResponsible;\n data[i].implementationStatusId = e.items[0].implementationStatusId;\n data[i].comments = e.items[0].comments;\n }\n }\n }\n };\n }\n\n async checkAllQuestionsFinished() {\n const data = $(this.grid)\n .data('kendoGrid')\n .dataSource\n .data();\n\n const found = [];\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].treatmentAnswerId == null) {\n found.push(data[i].question.controlId);\n }\n }\n\n if (found.length > 0) {\n let length = 0;\n let txt = '';\n for (let i = 0; i < found.length; ++i) {\n txt += found[i];\n if (i < found.length - 1) {\n length += ('' + found[i]).length + 2;\n txt += ', ';\n if (length > 60) {\n txt += '
';\n length = 0;\n }\n }\n }\n\n const promise = new Promise((resolve) => {\n Helpers.showPopUp2({\n title: 'Approve \"' + this.deployment.translations[selectedLanguage].name + '\"',\n content: 'You have not answered all questions.
Are you sure you want to proceed with the approval?
Unanswered Questions:
' +\n txt,\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n resolve(true);\n },\n },\n {\n text: 'Cancel',\n action: () => {\n resolve(false);\n },\n },\n ],\n });\n });\n return promise;\n }\n return true;\n }\n\n async customApproveCheck() {\n return await this.checkAllQuestionsFinished();\n }\n\n implementationStatusSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.ImplementationScales,\n });\n }\n\n answerSelector(container, options) {\n // const selected = options.model[options.field];\n\n // if(selected != null && selected != 0){\n // this.updateContainerReadOnly(selected);\n // }\n\n $('')\n .appendTo(container)\n .kendoDropDownList({\n optionLabel: Constants.NoDeploymentQuestionnaireAnswer,\n optionLabelTemplate: '',\n valuePrimitive: true,\n template: (item) => {\n console.log('template', item);\n return `${item.translations[selectedLanguage].answer}`;\n },\n valueTemplate: (item) => {\n console.log('valuetemplate', item);\n return item.translations[selectedLanguage].answer;\n },\n dataValueField: 'id',\n dataSource: DataSources.IsraTreatmentAnswers,\n change: (e) => {\n this.updateContainerReadOnly(e.sender.value());\n },\n });\n }\n\n updateContainerReadOnly(treatmentAnswer) {\n const t = DataSources.IsraTreatmentAnswers.get(treatmentAnswer);\n\n const resp = $('[name=\"implementationResponsible\"]');\n const due = $('[name=\"implementationDueDate\"]');\n const status = $('[name=\"implementationStatusId\"]');\n\n if (t != null && t.value > 0) {\n resp.prop('disabled', false);\n resp.removeClass('k-state-disabled');\n resp.prop('required', true);\n\n due.data('kendoDatePicker')\n .enable(true);\n due.prop('required', true);\n\n status.data('kendoDropDownList')\n .enable(true);\n status.prop('required', true);\n } else {\n resp.prop('disabled', true);\n resp.addClass('k-state-disabled');\n resp.prop('required', false);\n\n due.data('kendoDatePicker')\n .enable(false);\n due.prop('required', false);\n\n status.data('kendoDropDownList')\n .enable(false);\n status.prop('required', false);\n }\n }\n}\n","import Vue from 'vue';\nimport VueI18n from 'vue-i18n';\nimport Axios from 'axios';\n\nVue.use(VueI18n);\n\nconst context = require.context('./translations', true, /[a-zA-Z0-9-_]+\\.json$/i);\n\nexport const i18n = new VueI18n({\n locale: 'en-US', // set locale\n fallbackLocale: 'en-US',\n messages: {\n 'en-US': require('./translations/en-US.json'),\n }, // set locale messages\n});\n\nconst loadedLanguages = ['en-US']; // our default language that is preloaded\n\nfunction setI18nLanguage(lang: string) {\n i18n.locale = lang;\n Axios.defaults.headers.common = { 'Accept-Language': lang };\n const doc = document.querySelector('html');\n if (doc != null) { doc.setAttribute('lang', lang); }\n\n return lang;\n}\n\nexport function loadLanguageAsync(lang: string, force = true): Promise {\n // If the same language\n if (!force && i18n.locale === lang) {\n return Promise.resolve(setI18nLanguage(lang));\n }\n\n // If the language was already loaded\n if (loadedLanguages.includes(lang)) {\n return Promise.resolve(setI18nLanguage(lang));\n }\n\n // If the language hasn't been loaded yet\n return import(/* webpackChunkName: \"lang-[request]\" */ `./translations/${lang}.json`).then(messages => {\n i18n.setLocaleMessage(lang, messages.default);\n loadedLanguages.push(lang);\n return setI18nLanguage(lang);\n });\n}\n\nif (module.hot) {\n module.hot.accept(context.id, () => {\n loadLanguageAsync(i18n.locale, true);\n });\n}\n\nexport enum SupportedLanguage {\n English = 'en-US',\n Greek = 'el-GR',\n}\n\nexport default i18n;\n","import FormBase from '../../FormBase.js';\nimport { selectedLanguage, userRole } from '../../../main.js';\nimport Selectors from '../../../Core/Selectors.js';\nimport Constants from '../../../Core/constants.js';\n\nexport default class RtoApplications extends FormBase {\n constructor() {\n super('Recovery Time Objective for Applications Scale', 'general', {\n readOnly: !userRole.includes(Constants.RoleTypes.BCM.Administrator),\n });\n this.api = 'bc/RtoApplicationScales';\n\n this.confirmation = 'translations.' + selectedLanguage + '.name';\n\n this.columns = [\n {\n title: 'Value',\n binding: 'value',\n type: 'number',\n defaultValue: 0.0,\n sort: 'asc',\n required: true,\n },\n {\n title: 'Name',\n binding: 'name',\n required: true,\n sort: 'asc',\n translatable: true,\n defaultValue: 'New Name',\n },\n {\n title: 'Color',\n binding: 'color',\n defaultValue: null,\n required: false,\n template: (dataItem) => Selectors.ColorTemplate(dataItem, 'color'),\n editor: (container, options) => Selectors.ColorSelector(container, options),\n },\n ];\n }\n}\n","import FormBase from '../../FormBase.js';\nimport Selectors from '../../../Core/Selectors.js';\nimport { userRole } from '../../../main.js';\nimport Constants from '../../../Core/constants.js';\n\nexport default class FinancialImpactScales extends FormBase {\n constructor() {\n super('Financial Impact Scales', 'general', {\n readOnly: !userRole.includes(Constants.RoleTypes.BCM.Administrator),\n });\n this.api = 'bc/FinancialImpactScales';\n\n this.columns = [\n {\n title: 'Value',\n binding: 'value',\n type: 'number',\n sort: 'asc',\n },\n {\n title: 'Name',\n binding: 'name',\n required: true,\n translatable: true,\n },\n {\n title: 'Color',\n binding: 'color',\n defaultValue: null,\n required: false,\n template: (dataItem) => Selectors.ColorTemplate(dataItem, 'color'),\n editor: (container, options) => Selectors.ColorSelector(container, options),\n },\n ];\n }\n}\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdNavigation.vue?vue&type=style&index=0&id=11e3bdec&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdNavigation.vue?vue&type=style&index=0&id=11e3bdec&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestConfirmationView.vue?vue&type=style&index=0&id=7977e54a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestConfirmationView.vue?vue&type=style&index=0&id=7977e54a&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireUserControlLine.vue?vue&type=style&index=0&id=6e003296&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireUserControlLine.vue?vue&type=style&index=0&id=6e003296&scoped=true&lang=css&\"","import { Helpers } from '../../Core/Helpers.js';\nimport { selectedLanguage, selectedMasterPlan } from '../../main.js';\nimport FormBase from '../FormBase.js';\n\nexport default class QuickView extends FormBase {\n constructor() {\n super('QuickView', 'quickView');\n\n this.QuickViewTypes = {\n Applications: 1,\n Assets: 2,\n Associates: 3,\n FinancialImpact: 4,\n OperationalImpact: 5,\n RiskAssessments: 6,\n };\n }\n\n showSubTitle() {\n const sub = $('#pageSubTitle');\n sub.empty();\n\n let toolbar = '
';\n\n toolbar += 'QuickView:
';\n\n toolbar += '';\n toolbar += '';\n toolbar += 'Download';\n toolbar += '';\n toolbar += '
';\n\n sub.append(toolbar);\n\n $('#downloadExcelData')\n .off('click')\n .on('click', () => {\n const list = $('#quickViewSelector')\n .data('kendoDropDownList');\n const data = list.dataItem(list.select());\n\n const div = $('#quickView');\n kendo.ui.progress(div, true);\n\n $.ajax({\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/QuickView/' + data.api + '?language=' +\n selectedLanguage + '&download=true',\n method: 'GET',\n success: function (data) {\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Excel,\n });\n },\n error(data) {\n Helpers.showError(data.responseText);\n },\n complete: () => {\n kendo.ui.progress(div, false);\n },\n processData: false,\n });\n });\n\n $('#quickViewSelector')\n .kendoDropDownList({\n dataTextField: 'name',\n dataValueField: 'id',\n autoWidth: true,\n dataSource: {\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/QuickView/GetItems',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: {\n field: 'order',\n dir: 'asc',\n },\n },\n change: (e) => {\n this.changeQuickView(e.sender.dataItem(e.sender.select()));\n },\n });\n }\n\n changeQuickView(item) {\n kendo.ui.progress($(this.div), true);\n\n this.setPivotTable();\n\n $.get('/api/masterplans/' + selectedMasterPlan.id + '/bc/QuickView/' + item.api + '?language=' +\n selectedLanguage)\n .then((data) => {\n let min = 1;\n for (let i = 0; i < data.length; ++i) {\n if (data[i]['level' + min] !== undefined) {\n min += 1;\n // retry current\n i--;\n }\n }\n\n let func;\n if (item.id === this.QuickViewTypes.Applications) {\n func = this.setApplications;\n } else if (item.id === this.QuickViewTypes.Assets) {\n func = this.setAssets;\n } else if (item.id === this.QuickViewTypes.Associates) {\n func = this.setAssociates;\n } else if (item.id === this.QuickViewTypes.FinancialImpact) {\n func = this.setFinancialImpact;\n } else if (item.id === this.QuickViewTypes.OperationalImpact) {\n func = this.setOperationalImpact;\n } else if (item.id === this.QuickViewTypes.RiskAssessments) {\n func = this.setRiskAssessments;\n }\n\n if (func != null) {\n func.call(this, {\n data,\n levels: min,\n });\n }\n })\n .fail((error) => {\n Helpers.showError(error.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.div), false);\n });\n }\n\n init() {\n kendo.ui.progress($(this.div), true);\n // $(this.div).empty();\n if (QuickView.vue == null) {\n Vue.use(VuePivot);\n\n QuickView.vue = new Vue({\n el: '#quickViewGrid',\n data: {\n data: [],\n fields: [],\n rowFields: [],\n colFields: [],\n valueFields: [],\n defaultShowSettings: false,\n hideEmpty: true,\n },\n });\n }\n this.changeQuickView({\n name: 'Systems',\n order: 1,\n api: 'Applications',\n id: 1,\n });\n kendo.ui.progress($(this.div), false);\n }\n\n setApplications({ data = [], levels = 0 } = {}) {\n const fields = this.getLevelFields(levels)\n .concat([\n {\n getter: item => item.address,\n label: 'Address',\n }, {\n getter: item => item.rto,\n label: 'RTO',\n }, {\n getter: item => item.rpo,\n label: 'RPO',\n },\n ]);\n\n fields.shift();\n\n const rowFields = [\n {\n getter: item => item.level0,\n label: 'Level 0',\n },\n {\n getter: item => item.application,\n label: 'System',\n },\n ];\n\n const colFields = [];\n\n const valueFields = [\n {\n label: 'RTO',\n getter: item => item.rto,\n type: 'min',\n title: 'Min',\n },\n {\n label: 'RPO',\n getter: item => item.rpo,\n type: 'min',\n title: 'Min',\n },\n ];\n\n this.setPivotTable({\n data,\n fields,\n rowFields,\n colFields,\n valueFields,\n hideEmpty: true,\n });\n }\n\n setAssets({ data = [], levels = 0 } = {}) {\n const fields = this.getLevelFields(levels)\n .concat([\n {\n getter: item => item.address,\n label: 'Address',\n }, {\n getter: item => item.value,\n label: 'Value',\n },\n ]);\n\n fields.shift();\n\n const rowFields = [\n {\n getter: item => item.level0,\n label: 'Level 0',\n },\n {\n getter: item => item.asset,\n label: 'Asset',\n },\n ];\n\n const colFields = [\n {\n getter: item => item.rto,\n label: 'RTO',\n }];\n\n const valueFields = [\n {\n label: 'Value',\n getter: item => item.value,\n type: 'sum',\n title: 'Sum',\n }];\n\n this.setPivotTable({\n data,\n fields,\n rowFields,\n colFields,\n valueFields,\n hideEmpty: true,\n });\n }\n\n setAssociates({ data = [], levels = 0 } = {}) {\n const fields = this.getLevelFields(levels)\n .concat([\n {\n getter: item => item.address,\n label: 'Address',\n },\n {\n getter: item => item.direction,\n label: 'Direction',\n }, {\n getter: item => item.relation,\n label: 'Relation',\n }, {\n getter: item => item.isCritical,\n label: 'Is Critical?',\n }, {\n getter: item => item.whyCritical,\n label: 'Why Critical?',\n }, {\n getter: item => item.criticalActions,\n label: 'Critical Actions',\n },\n ]);\n\n fields.shift();\n\n const rowFields = [\n {\n getter: item => item.level0,\n label: 'Level 0',\n },\n {\n getter: item => item.associate,\n label: 'Associate',\n },\n ];\n\n const colFields = [\n {\n getter: item => item.direction,\n label: 'I/O',\n }, {\n getter: item => item.relation,\n label: 'Internal/External',\n },\n ];\n\n const valueFields = [\n {\n getter: item => item.isCritical,\n label: 'Is Critical',\n type: 'count',\n title: 'Count',\n }];\n\n this.setPivotTable({\n data,\n fields,\n rowFields,\n colFields,\n valueFields,\n hideEmpty: true,\n });\n }\n\n setOperationalImpact({ data = [], levels = 0 } = {}) {\n const fields = this.getLevelFields(levels)\n .concat([\n {\n getter: item => item.address,\n label: 'Address',\n },\n {\n getter: item => item.impactName,\n label: 'Impact-Name',\n },\n {\n getter: item => item.impactValue,\n label: 'Impact-Value',\n },\n ]);\n\n fields.shift();\n\n const rowFields = [\n {\n getter: item => item.level0,\n label: 'Level 0',\n },\n {\n getter: item => item.question,\n label: 'Question',\n },\n ];\n\n const colFields = [\n {\n getter: item => item.rto,\n label: 'Rto',\n },\n ];\n\n const valueFields = [\n {\n getter: item => item.impactValue,\n label: 'Impact-Value',\n type: 'max',\n title: 'Max',\n }];\n\n this.setPivotTable({\n data,\n fields,\n rowFields,\n colFields,\n valueFields,\n hideEmpty: true,\n });\n }\n\n setFinancialImpact({ data = [], levels = 0 } = {}) {\n const fields = this.getLevelFields(levels)\n .concat([\n {\n getter: item => item.address,\n label: 'Address',\n },\n {\n getter: item => item.impactName,\n label: 'Impact-Name',\n },\n {\n getter: item => item.impactValue,\n label: 'Impact-Value',\n },\n ]);\n\n fields.shift();\n\n const rowFields = [\n {\n getter: item => item.level0,\n label: 'Level 0',\n },\n {\n getter: item => item.question,\n label: 'Question',\n },\n ];\n\n const colFields = [\n {\n getter: item => item.rto,\n label: 'Rto',\n },\n ];\n\n const valueFields = [\n {\n getter: item => item.impactValue,\n label: 'Impact-Value',\n type: 'max',\n title: 'Max',\n }];\n\n this.setPivotTable({\n data,\n fields,\n rowFields,\n colFields,\n valueFields,\n hideEmpty: true,\n });\n }\n\n setRiskAssessments({ data = [], levels = 0 } = {}) {\n const fields = this.getLevelFields(levels)\n .concat([\n {\n getter: item => item.address,\n label: 'Address',\n },\n // {\n // getter: item => item.risk,\n // label: 'Risk'\n // },\n {\n getter: item => item.controlTools,\n label: 'ControlTools',\n },\n {\n getter: item => item.controlEvaluation,\n label: 'Control-Evaluation',\n },\n {\n getter: item => item.probability,\n label: 'Probability-Name',\n },\n {\n getter: item => item.probabilityValue,\n label: 'Probability-Value',\n },\n {\n getter: item => item.treatment,\n label: 'Treatment',\n },\n {\n getter: item => item.actionPlan,\n label: 'ActionPlan',\n },\n {\n getter: item => item.actionPlanDueDate,\n label: 'ActionPlan Due-Date',\n },\n {\n getter: item => item.implementation,\n label: 'Implementation Status',\n },\n {\n getter: item => item.implementationDueDate,\n label: 'Implementation Due-Date',\n },\n {\n getter: item => item.impactValue,\n label: 'Impact-Value',\n },\n {\n getter: item => item.riskLevel,\n label: 'Risk-Level',\n },\n {\n getter: item => item.riskValue,\n label: 'Risk-Value',\n },\n ]);\n\n fields.shift();\n\n const rowFields = [\n {\n getter: item => item.level0,\n label: 'Level 0',\n },\n {\n getter: item => item.risk,\n label: 'Risk',\n },\n ];\n\n const colFields = [];\n\n const valueFields = [\n {\n getter: item => item.riskValue,\n label: 'Risk-Value',\n type: 'max',\n title: 'Max',\n },\n {\n getter: item => item.risk,\n label: 'Risk',\n type: 'count',\n title: 'Count',\n },\n ];\n\n this.setPivotTable({\n data,\n fields,\n rowFields,\n colFields,\n valueFields,\n hideEmpty: true,\n });\n }\n\n getLevelFields(levels) {\n const fields = [];\n for (let i = 0; i < levels; ++i) {\n fields.push({\n getter: item => item[`level${i}`],\n label: `Level ${i}`,\n });\n }\n\n return fields;\n }\n\n setPivotTable({ data = [], fields = [], rowFields = [], colFields = [], valueFields = [], hideEmpty = false } = {}) {\n QuickView.vue.fields = fields;\n QuickView.vue.rowFields = rowFields;\n QuickView.vue.colFields = colFields;\n QuickView.vue.valueFields = valueFields;\n QuickView.vue.hideEmpty = hideEmpty;\n QuickView.vue.data = data;\n }\n}\n","import { selectedLanguage } from '../../../main.js';\nimport FormBase from '../../FormBase.js';\nimport DataSources from '../../../Core/datasources.js';\nimport { Helpers } from '../../../Core/Helpers.js';\n\nexport default class RecoverySites extends FormBase {\n constructor() {\n super('Recovery Sites', 'general');\n this.api = 'bc/RecoverySites';\n\n this.preventBinding = false;\n\n this.columns = [\n {\n title: 'Active',\n binding: 'status',\n type: 'boolean',\n defaultValue: true,\n sort: 'desc',\n },\n {\n title: 'Type',\n binding: 'recoverySiteTypeId',\n editor: (container, options) => this.recoverySiteTypeDropDownEditor(container, options),\n template: (dataItem) => {\n const item = DataSources.RecoverySiteTypes.get(dataItem.recoverySiteTypeId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return 'Select Type';\n }\n },\n defaultValue: null,\n },\n {\n title: 'Location',\n binding: 'locationId',\n editor: (container, options) => this.locationDropDownEditor(container, options),\n template: (dataItem) => {\n const item = DataSources.Locations.get(dataItem.locationId);\n\n if (item != null) {\n const i = item.translations[selectedLanguage];\n return Helpers.sanitizeHTML(i.country + ' ' + i.city + ' ' + i.address);\n } else {\n return 'Select Location';\n }\n },\n defaultValue: 0,\n },\n {\n title: 'Name',\n binding: 'name',\n required: true,\n sort: 'asc',\n translatable: true,\n defaultValue: 'New Recovery Site',\n },\n {\n title: 'Notes',\n binding: 'notes',\n required: false,\n translatable: true,\n defaultValue: '',\n },\n {\n binding: 'recoverySiteAssets',\n defaultValue: [],\n hidden: true,\n },\n ];\n\n this.recoverySiteAssetsColumns = [\n {\n title: 'Asset',\n binding: 'assetId',\n editable: false,\n template: (dataItem) => {\n return Helpers.sanitizeHTML(DataSources.Assets.get(dataItem.assetId).translations[selectedLanguage].name);\n },\n },\n {\n title: 'Capacity',\n binding: 'capacity',\n type: 'number',\n },\n {\n title: 'Existing',\n binding: 'existing',\n type: 'number',\n },\n ];\n }\n\n require() {\n return [DataSources.RecoverySiteTypes, DataSources.Locations, DataSources.Assets];\n }\n\n init() {\n if (DataSources.Locations.data().length === 0) {\n kendo.alert('Locations are empty. Please fill locations before adding recovery sites');\n return;\n }\n\n if (DataSources.RecoverySiteTypes.data().length === 0) {\n kendo.alert('Recovery Site Types are empty. Please fill types before adding recovery sites');\n return;\n }\n\n super.init();\n }\n\n locationDropDownEditor(container, options) {\n const templateBase = '#:data.translations[\"' + selectedLanguage + '\"]';\n const template = templateBase + '.country# ' + templateBase + '.city# ' + templateBase +\n '.address# ';\n\n $('')\n .appendTo(container)\n .kendoDropDownList({\n valuePrimitive: true,\n autoBind: true,\n dataTextField: 'id',\n dataValueField: 'id',\n valueTemplate: template,\n template: template,\n dataSource: DataSources.Locations,\n });\n }\n\n recoverySiteTypeDropDownEditor(container, options) {\n $('')\n .appendTo(container)\n .kendoComboBox({\n autoBind: true,\n valuePrimitive: true,\n dataTextField: 'translations[\\'' + selectedLanguage + '\\'].name',\n dataValueField: 'id',\n dataSource: DataSources.RecoverySiteTypes,\n suggest: true,\n });\n }\n\n detailConfirmation(e) {\n return '\\'' + DataSources.Assets.get(e.assetId).translations[selectedLanguage].name + '\\'';\n }\n\n setCustomGridProperties(grid) {\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n const data = e.sender.dataSource.data();\n\n $.each(data, function (i, row) {\n if (row.isNew()) {\n $('tr[data-uid=\"' + row.uid + '\"] ')\n .find('.k-hierarchy-cell a')\n .remove();\n }\n });\n };\n\n // Details\n grid.detailTemplate = 'Site Assets:';\n\n grid.detailInit = (e) => {\n const assetsGrid = this.createGrid({\n api: 'bc/RecoverySiteAssets/' + e.data.id,\n columns: this.recoverySiteAssetsColumns,\n confirmation: (e) => {\n return DataSources.Assets.get(e.assetId).translations[selectedLanguage].name;\n },\n // selector: '[name=recoverySiteAssets]',\n // menu: this.menu,\n });\n\n assetsGrid.toolbar = [\n {\n template: 'Add new Asset',\n },\n ];\n\n const databound = assetsGrid.dataBound;\n assetsGrid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n $('[name=\"Add-RecoverySiteAsset\"]')\n .off('click')\n .on('click', (e) => {\n const data = $(e.target)\n .closest('[data-role=\"grid\"]')\n .data('kendoGrid').dataSource;\n\n const content = '
';\n Helpers.showPopUp('Select Asset', content, [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const di = $('#recoverySiteAssetsList')\n .data('kendoComboBox')\n .dataItem();\n if (di != null) {\n data.add({\n assetId: di.id,\n capacity: 0,\n existing: 0,\n });\n data.sync();\n return true;\n }\n return false;\n },\n },\n {\n text: 'Cancel',\n action: () => true,\n },\n ], () => {\n const filters = [];\n for (let i = 0; i < data.data().length; ++i) {\n filters.push({\n field: 'id',\n operator: 'neq',\n value: data.data()[i].assetId,\n });\n }\n\n $('#recoverySiteAssetsList')\n .width(500)\n .kendoComboBox({\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: {\n data: DataSources.Assets.view(),\n filter: {\n logic: 'and',\n filters: filters,\n },\n },\n valuePrimitive: true,\n suggest: true,\n filter: 'contains',\n });\n });\n });\n };\n\n $('
')\n .appendTo(e.detailCell)\n .kendoGrid(assetsGrid);\n };\n }\n}\n","import FormBase from '../../FormBase.js';\n\nexport default class RiskProbabilities extends FormBase {\n constructor() {\n super('Risk Likelihood Scale', 'general');\n this.api = 'bc/RiskProbabilities';\n\n this.columns = [\n {\n title: 'Value',\n binding: 'value',\n type: 'float',\n defaultValue: 0,\n sort: 'asc',\n },\n {\n title: 'Occurrence',\n binding: 'occurrence',\n required: true,\n translatable: true,\n defaultValue: 'New Risk Probability',\n },\n ];\n }\n}\n","import FormBase from '../../FormBase.js';\nimport { selectedLanguage } from '../../../main.js';\n\nexport default class RecoverySiteTypes extends FormBase {\n constructor() {\n super('Recovery Site Types', 'general');\n this.api = 'bc/RecoverySiteTypes';\n\n this.confirmation = 'translations.' + selectedLanguage + '.name';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n required: true,\n sort: 'asc',\n translatable: true,\n defaultValue: 'New Recovery Site Type',\n },\n ];\n }\n}\n","import FormBase from '../../FormBase.js';\nimport DataSources from '../../../Core/datasources.js';\nimport { selectedLanguage } from '../../../main.js';\nimport Constants from '../../../Core/constants';\n\nexport default class Risks extends FormBase {\n constructor() {\n super('Risk Registry', 'general');\n this.api = 'bc/Risks';\n\n this.columns = [\n {\n title: 'Group',\n binding: 'riskGroupId',\n defaultValue: null,\n required: false,\n sortField: 'translations.' + selectedLanguage + '.name',\n datasource: DataSources.RiskGroups,\n editor: (container, options) => this.riskGroupSelector(container, options),\n },\n {\n title: 'Name',\n binding: 'name',\n required: true,\n translatable: true,\n defaultValue: 'New Risk',\n },\n ];\n }\n\n // setCustomDatasourceProperties(source) {\n // // source.group = {field: 'riskGroupId'};\n // }\n\n setCustomGridProperties(grid) {\n grid.groupable = true;\n }\n\n require() {\n return [DataSources.RiskGroups];\n }\n\n riskGroupSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n optionLabel: Constants.Empty,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.RiskGroups,\n });\n }\n}\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioCostDialog.vue?vue&type=style&index=0&id=79eb4330&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioCostDialog.vue?vue&type=style&index=0&id=79eb4330&scoped=true&lang=css&\"","import FormBase from '../../FormBase.js';\nimport { selectedLanguage, userRole } from '../../../main.js';\nimport Constants from '../../../Core/constants.js';\nimport DataSources from '../../../Core/datasources';\nimport { Helpers } from '../../../Core/Helpers';\n\nexport default class Applications extends FormBase {\n constructor() {\n super('Systems', 'general', {\n readOnly: !userRole.includes(Constants.RoleTypes.BCM.Administrator) &&\n !userRole.includes(Constants.RoleTypes.BCM.Coordinator),\n });\n\n this.api = 'bc/Applications';\n\n this.confirmation = 'translations.' + selectedLanguage + '.name';\n\n this.columns = [\n {\n title: 'Is Active',\n binding: 'isActive',\n type: 'boolean',\n defaultValue: true,\n sort: 'desc',\n collapse: true,\n editable: () => userRole !== 'ISRA Manager',\n },\n {\n title: 'Name',\n binding: 'name',\n required: false,\n sort: 'asc',\n translatable: true,\n },\n ];\n\n this.standardizationColumns = [\n {\n title: 'Regulation or Standard',\n binding: 'standardizationId',\n editable: false,\n sort: 'asc',\n template: (dataItem) => {\n const item = DataSources.IsraStandardizations.get(dataItem.standardizationId);\n return Helpers.sanitizeHTML(item.name);\n },\n },\n ];\n }\n\n setCustomGridProperties(grid) {\n if (userRole.includes(Constants.RoleTypes.ISRA.Administrator)) {\n grid.toolbar.push({\n template: 'Collapse All',\n });\n\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n const data = e.sender.dataSource.data();\n\n $.each(data, function (i, row) {\n if (row.isNew()) {\n $('tr[data-uid=\"' + row.uid + '\"] ')\n .find('.k-hierarchy-cell a')\n .remove();\n }\n });\n\n $('#Applications-CollapseAll')\n .off('click')\n .on('click', () => {\n const grid = $(this.grid)\n .data('kendoGrid');\n $('.k-master-row')\n .each(function () {\n grid.collapseRow(this);\n });\n });\n };\n\n // Details\n grid.detailTemplate = 'Regulatory Compliance and Standardization:';\n\n grid.detailInit = (e) => {\n const standardizationGrid = this.createGrid({\n api: 'isra/ApplicationStandardizations/' + e.data.id,\n columns: this.standardizationColumns,\n confirmation: (e) => {\n return DataSources.IsraStandardizations.get(e.standardizationId).name;\n },\n });\n\n standardizationGrid.toolbar = [\n {\n template: 'Add Standard',\n },\n ];\n\n const databound = standardizationGrid.dataBound;\n standardizationGrid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n $('[name=\"Add-Standardization\"]')\n .off('click')\n .on('click', (e) => {\n const data = $(e.target)\n .closest('[data-role=\"grid\"]')\n .data('kendoGrid').dataSource;\n\n const content = '
';\n Helpers.showPopUp('Select Regulation or Standard', content, [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const di = $('#standardizationsList')\n .data('kendoDropDownList')\n .dataItem();\n if (di != null) {\n data.add({\n standardizationId: di.id,\n });\n data.sync();\n return true;\n }\n return false;\n },\n },\n {\n text: 'Cancel',\n action: () => true,\n },\n ], () => {\n const filters = [];\n for (let i = 0; i < data.data().length; ++i) {\n filters.push({\n field: 'id',\n operator: 'neq',\n value: data.data()[i].standardizationId,\n });\n }\n\n // const template = '#=data.translations[\"' + selectedLanguage +\n // '\"].description# (#=data.translations[\"' + selectedLanguage +\n // '\"].unitOfMeasurement#)';\n\n $('#standardizationsList')\n .width(500)\n .kendoDropDownList({\n dataTextField: 'name',\n dataValueField: 'id',\n dataSource: {\n data: DataSources.IsraStandardizations.view(),\n filter: {\n logic: 'and',\n filters: filters,\n },\n },\n valuePrimitive: true,\n filter: 'contains',\n });\n });\n });\n };\n\n $('
')\n .appendTo(e.detailCell)\n .kendoGrid(standardizationGrid);\n };\n }\n }\n\n detailConfirmation(e) {\n return '\\'' + DataSources.IsraStandardizations.get(e.standardizationId).name + '\\'';\n }\n\n require() {\n if (userRole.includes(Constants.RoleTypes.ISRA.Administrator)) {\n return [DataSources.IsraStandardizations];\n }\n\n return [];\n }\n}\n","import { selectedLanguage } from '../main.js';\nimport { Helpers } from './Helpers';\nimport DataSources from './datasources.js';\nimport Constants from './constants.js';\n\nexport default class Selectors {\n static AnswerGroupSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoComboBox({\n placeholder: 'Search...',\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.IsraAnswerGroups,\n });\n }\n\n static AnswerGroupTemplate(dataItem) {\n const item = DataSources.IsraAnswerGroups.get(dataItem.answerGroupId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n\n static ColorTemplate(dataItem, property) {\n if (dataItem[property] == null) {\n return '';\n }\n\n return '
 
';\n }\n\n static ColorSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoColorPicker({\n buttons: false,\n clearButton: true,\n });\n }\n\n static DatePicker(container, options, property) {\n const dateString = kendo.toString(options.model[property], 'dd MMM yyyy');\n\n $('')\n .appendTo(container)\n .kendoDatePicker({\n format: 'dd MMM yyyy',\n dateInput: true,\n depth: 'year',\n });\n }\n\n static DateTemplate(dataItem, property, message) {\n if (dataItem[property] == null) {\n return message || 'Not set';\n }\n\n return kendo.toString(new Date(dataItem[property]), 'dd MMM yyyy');\n }\n\n static GetDefaultDueDate() {\n const now = new Date();\n now.setMonth(now.getMonth() + 1);\n return now;\n }\n\n static PositionTemplate(dataItem) {\n const item = DataSources.Positions.get(dataItem.positionId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return Constants.SelectPosition.translations[selectedLanguage].name;\n }\n }\n\n static PositionEditor(container, options) {\n const template = '#:data.translations[\"' + selectedLanguage + '\"].name#';\n\n $('')\n .appendTo(container)\n .kendoDropDownList({\n autoBind: true,\n dataTextField: 'id',\n dataValueField: 'id',\n valueTemplate: template,\n valuePrimitive: true,\n template: template,\n dataSource: DataSources.Positions,\n });\n\n $('')\n .appendTo(container);\n }\n\n static UserTemplate(dataItem) {\n let item = null;\n\n item = DataSources.Users.data()\n .filter((item) => {\n return item.username === dataItem.userId;\n })[0];\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.info);\n } else {\n return Constants.SelectUser.info;\n }\n }\n\n static UserEditor(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n autoBind: true,\n dataTextField: 'info',\n dataValueField: 'username',\n dataSource: DataSources.Users,\n valuePrimitive: true,\n filter: 'contains',\n change() {\n console.log('change');\n options.model.parent()\n .parent().dirty = true;\n },\n filtering: function (e) {\n const filterValue = e.filter !== undefined ? e.filter.value : '';\n e.preventDefault();\n\n this.dataSource.filter({\n logic: 'or',\n filters: [\n {\n field: 'info',\n operator: 'contains',\n value: filterValue,\n },\n ],\n });\n },\n suggest: true,\n });\n }\n}\n","import FormBase from '../FormBase.js';\nimport DataSources from '../../Core/datasources.js';\nimport { selectedLanguage } from '../../main.js';\nimport { Helpers } from '../../Core/Helpers';\n\nexport default class IsraControlStrengthReductions extends FormBase {\n constructor() {\n super('Control Significance Reduction', 'general');\n this.api = 'isra/ControlStrengthReductions';\n\n this.options.parse = (data) => this.parseData(data);\n this.options.parameterMap = (data) => this.parameterMap(data);\n\n this.columns = [\n {\n title: 'Impact Scale',\n binding: 'impactScaleId',\n editable: false,\n template: (dataItem) => {\n const item = DataSources.IsraImpactScales.get(dataItem.impactScaleId);\n\n return item.value + ' - ' + Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n },\n },\n {\n title: 'Control Strength',\n columns: [],\n },\n ];\n }\n\n parseData(data) {\n this.keys = Object.keys(data[0].controlStrengthScales);\n for (let i = 0; i < data.length; ++i) {\n for (let j = 0; j < this.keys.length; ++j) { data[i]['controlStrengthScales_' + this.keys[j]] = data[i].controlStrengthScales[this.keys[j]]; }\n }\n\n return data;\n }\n\n parameterMap(data) {\n for (let j = 0; j < this.keys.length; ++j) {\n data.controlStrengthScales[this.keys[j]] = data['controlStrengthScales_' + this.keys[j]];\n }\n\n return data;\n }\n\n customInit(resolve, reject) {\n const strengths = DataSources.IsraControlStrengthScales.view();\n this.data = {};\n let prev = 0;\n\n for (let i = 0; i < strengths.length; ++i) {\n this.data[strengths[i].id] = {\n id: strengths[i].id,\n name: Helpers.sanitizeHTML(strengths[i].translations[selectedLanguage].name) + ' (' + (prev * 100) + ' - ' + (strengths[i].value * 100) + ')',\n };\n\n this.columns[1].columns.push({\n title: Helpers.sanitizeHTML(strengths[i].translations[selectedLanguage].name) + ' (' + (prev * 100) + ' - ' + (strengths[i].value * 100) + ')',\n binding: 'controlStrengthScales_' + strengths[i].id,\n defaultValue: 0,\n template: (dataItem) => this.data[dataItem.controlStrengthScales[strengths[i].id]].name,\n editor: (container, options) => this.controlStrengthScaleSelector(container, options),\n });\n\n prev = strengths[i].value;\n }\n\n super.customInit(resolve, reject);\n }\n\n controlStrengthScaleSelector(container, options) {\n const id = options.field.slice(options.field.lastIndexOf('_') + 1);\n\n $('')\n .appendTo(container)\n .kendoDropDownList({\n valuePrimitive: true,\n template: (dataItem) => Helpers.sanitizeHTML(this.data[dataItem.id].name),\n valueTemplate: (dataItem) => Helpers.sanitizeHTML(this.data[dataItem.id].name),\n dataTextField: 'name',\n dataValueField: 'id',\n dataSource: {\n data: DataSources.IsraControlStrengthScales.view(),\n filter: { field: 'value', operator: 'lte', value: DataSources.IsraControlStrengthScales.get(id).value },\n },\n });\n }\n\n setCustomGridProperties(grid) {\n grid.columns[grid.columns.length - 1].command.splice(-1);// remove delete\n\n grid.toolbar = grid.toolbar.slice(1);\n }\n\n require() {\n return [DataSources.IsraImpactScales, DataSources.IsraControlStrengthScales];\n }\n}\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdPopupCard.vue?vue&type=style&index=0&id=77f099e0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdPopupCard.vue?vue&type=style&index=0&id=77f099e0&scoped=true&lang=css&\"","import FormBase from '../FormBase.js';\nimport Selectors from '../../Core/Selectors.js';\n\nexport default class IsraLikelihoodScales extends FormBase {\n constructor() {\n super('Likelihood Scales', 'general');\n this.api = 'isra/LikelihoodScales';\n\n this.columns = [\n {\n title: 'Value',\n binding: 'value',\n required: true,\n sort: 'asc',\n defaultValue: 0,\n validation: {\n min: 0,\n max: 10,\n step: 1,\n },\n type: 'number',\n },\n {\n title: 'Color',\n binding: 'color',\n defaultValue: null,\n required: false,\n template: (dataItem) => Selectors.ColorTemplate(dataItem, 'color'),\n editor: (container, options) => Selectors.ColorSelector(container, options),\n },\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Value',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n ];\n }\n}\n","import { DocumentFileFormat } from '@/dtos/all';\nimport DownloadService from '@/services/DownloadService';\nimport Constants from '../../Core/constants.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport Selectors from '../../Core/Selectors.js';\nimport { jwt, selectedLanguage, selectedMasterPlan, settings, userRole } from '../../main.js';\nimport FormBase from '../FormBase.js';\n\nexport default class OrganizationStructure extends FormBase {\n constructor() {\n super('Organization Structure', 'general');\n this.api = 'bc/Partitions';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n required: false,\n sort: 'asc',\n translatable: true,\n },\n {\n title: 'Location',\n binding: 'locationId',\n defaultValue: 0,\n },\n {\n title: 'RTO',\n binding: 'rtoId',\n editable: false,\n defaultValue: 0,\n },\n {\n title: 'MAO',\n binding: 'maoId',\n editable: false,\n defaultValue: 0,\n },\n {\n title: 'Assigned Users',\n binding: 'assignedUsers',\n defaultValue: [],\n hidden: true,\n },\n ];\n\n if (userRole.includes(Constants.RoleTypes.BCM.Administrator)) {\n this.columns.push({\n title: 'Coordinator Type',\n binding: 'coordinatorTypeId',\n defaultValue: null,\n });\n }\n\n if (settings.sso) {\n this.columns.push({\n title: 'Active Directory Group',\n binding: 'activeDirectoryGroup',\n defaultValue: '',\n required: false,\n hidden: !settings.sso,\n });\n }\n }\n\n coordinatorTypeDropDownEditor(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n optionLabel: {\n id: null,\n name: 'None',\n },\n valuePrimitive: true,\n dataTextField: 'name',\n dataValueField: 'id',\n dataSource: DataSources.CoordinatorTypes,\n });\n }\n\n require() {\n const data = [DataSources.Locations, DataSources.Positions, DataSources.RTOScales];\n\n if (userRole.includes(Constants.RoleTypes.BCM.Administrator)) {\n data.push(DataSources.CoordinatorTypes);\n }\n\n if (!settings.sso) {\n data.push(DataSources.Users);\n }\n\n return data;\n }\n\n init() {\n if (DataSources.Locations.data().length === 0) {\n kendo.alert('Locations are empty. Please fill locations before creating organization structure');\n return;\n }\n\n const source = Helpers.createDataSource(selectedMasterPlan, this.api, jwt, this.columns);\n source.schema.model.parentId = 'parentId';\n source.schema.model.expanded = true;\n delete source.pageSize;\n this.datasource = new kendo.data.TreeListDataSource(source);\n\n let cols = [];\n\n for (let j = 0; j < selectedMasterPlan.languages.length; ++j) {\n const language = selectedMasterPlan.languages[j].language;\n\n cols.push({\n title: 'Name (' + language + ')',\n field: 'name_' + language.replace('-', '_'),\n filterable: true,\n });\n }\n\n cols = cols.concat([\n {\n field: 'locationId',\n title: 'Location',\n editor: (container, options) => this.locationDropDownEditor(container, options),\n template: (dataItem) => {\n const item = DataSources.Locations.get(dataItem.locationId);\n\n if (item != null) {\n const i = item.translations[selectedLanguage];\n return i.country + ' ' + i.city + ' ' + i.address;\n } else {\n return Constants.EmptyLocation.translations[selectedLanguage].name;\n }\n },\n filterable: false,\n width: '150px',\n },\n {\n field: 'rtoId',\n title: 'RTO',\n editable: () => false,\n template: (dataItem) => {\n const item = DataSources.RTOScales.get(dataItem.rtoId);\n\n if (item != null) {\n return '
 ' + Helpers.sanitizeHTML(item.translations[selectedLanguage].name) +\n '
';\n } else {\n return Constants.NoRtoCalculated.translations[selectedLanguage].name;\n }\n },\n filterable: false,\n },\n {\n field: 'maoId',\n title: 'MAO',\n editable: () => false,\n template: (dataItem) => {\n const item = DataSources.RTOScales.get(dataItem.maoId);\n\n if (item != null) {\n return '
 ' + Helpers.sanitizeHTML(item.translations[selectedLanguage].name) +\n '
';\n } else {\n return Constants.NoMaoCalculated.translations[selectedLanguage].name;\n }\n },\n filterable: false,\n },\n ]);\n if (userRole.includes(Constants.RoleTypes.BCM.Administrator)) {\n cols.push({\n title: 'Coordinator Type',\n field: 'coordinatorTypeId',\n defaultValue: 0,\n editor: (container, options) => this.coordinatorTypeDropDownEditor(container, options),\n template: (dataItem) => {\n const item = DataSources.CoordinatorTypes.get(dataItem.coordinatorTypeId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.name);\n } else {\n return 'None';\n }\n },\n filterable: false,\n });\n }\n\n if (settings.sso) {\n cols.push({\n title: 'Active Directory Group',\n field: 'activeDirectoryGroup',\n defaultValue: '',\n required: false,\n filterable: false,\n });\n }\n\n cols = cols.concat([\n {\n field: 'assignedUsers',\n title: 'Users',\n defaultValue: [],\n hidden: true,\n editor: (container, options) => this.userPositionsEditor(container, options),\n },\n {\n command: ['edit', 'destroy', 'createChild'],\n width: 350,\n },\n ]);\n\n const grid = Helpers.getDefaultGrid(selectedMasterPlan, this.api);\n grid.toolbar = [];\n if (userRole.includes(Constants.RoleTypes.BCM.Administrator)) {\n grid.toolbar.push({\n name: 'create',\n text: 'New',\n });\n }\n grid.toolbar.push({\n name: 'expand',\n text: 'Expand All',\n click() {\n const rows = $('tr.k-treelist-group', this.tbody);\n\n $.each(rows, (idx, row) => {\n this.expand(row);\n });\n },\n });\n\n grid.toolbar.push({\n name: 'collapse',\n text: 'Collapse All',\n click() {\n const rows = $('tr.k-treelist-group', this.tbody);\n\n $.each(rows, (idx, row) => {\n this.collapse(row);\n });\n },\n });\n grid.toolbar.push({\n name: 'export',\n text: 'Export',\n click(){\n const url = `/api/masterplans/${selectedMasterPlan.id}/bc/Partitions/Export?language=${selectedLanguage}`;\n $.ajax({\n url: url,\n method: 'GET',\n })\n .then(function (data) {\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Excel,\n });\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($('.grid'), false);\n });\n }\n });\n\n grid.columns = cols;\n grid.dataSource = this.datasource;\n grid.pageable = false;\n\n grid.editable = {\n mode: 'popup',\n };\n\n const edit = grid.edit;\n grid.edit = (e) => {\n edit.call(e.sender, e);\n\n if (settings.sso) {\n $('#UsersAdd')\n .off('click')\n .on('click', () => {\n const dataItem = e.sender.dataItem(e.sender.select());\n console.log('fetching users for ad group ' + dataItem.activeDirectoryGroup);\n\n $.get('/api/Users/GetSsoUsers?group=' + dataItem.activeDirectoryGroup)\n .then((e) => {\n dataItem.set('assignedUsers', e);\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n });\n });\n }\n };\n\n grid.remove = (e) => {\n const r = confirm('Are you sure you want to remove the selected partition!');\n if (r === false) {\n e.preventDefault();\n }\n };\n\n $(this.grid)\n .kendoTreeList(grid);\n\n $('#OrganizationStructure-ExpandAll')\n .off('click')\n .on('click', () => {\n console.log('expand');\n });\n\n $('#OrganizationStructure-CollapseAll')\n .off('click')\n .on('click', () => {\n console.log('expand');\n });\n }\n\n locationDropDownEditor(container, options) {\n const templateBase = '#:data.translations[\"' + selectedLanguage + '\"]';\n const template = templateBase + '.country# ' + templateBase + '.city# ' + templateBase +\n '.address# ';\n\n $('')\n .appendTo(container)\n .kendoDropDownList({\n autoBind: true,\n dataTextField: 'id',\n dataValueField: 'id',\n valueTemplate: template,\n template: template,\n dataSource: DataSources.Locations,\n valuePrimitive: true,\n });\n }\n\n userPositionsEditor(container, options) {\n const buttons = settings.sso\n ? [\n { template: 'Fetch Users' },\n ]\n : [\n {\n name: 'create',\n text: 'New',\n }];\n\n const columns = [\n {\n field: 'userId',\n title: 'User',\n template: (dataItem) => {\n return dataItem.lastName + ' ' + dataItem.firstName + ' (' + dataItem.email + ')';\n },\n },\n ];\n\n if (!settings.sso) {\n columns[0].template = Selectors.UserTemplate;\n columns[0].editor = Selectors.UserEditor;\n\n columns.push({\n field: 'positionId',\n title: 'Positions',\n template: Selectors.PositionTemplate,\n editor: Selectors.PositionEditor,\n });\n columns.push({\n command: ['destroy'],\n title: ' ',\n width: 100,\n });\n }\n\n $('
')\n .appendTo(container)\n .kendoGrid({\n toolbar: buttons,\n columns: columns,\n resizable: true,\n sortable: true,\n editable: settings.sso ? false : 'incell',\n scrollable: true,\n selectable: 'row',\n autoBind: true,\n height: 300,\n })\n .data('kendoGrid');\n }\n\n destroy() {\n const div = $(this.grid);\n const data = div.data('kendoTreeList');\n\n super.destroy(data);\n }\n}\n","import Constants from '../../Core/constants';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers';\nimport FormBase from '../FormBase.js';\n\nexport default class UserManagement extends FormBase {\n constructor() {\n super('Users', 'general');\n this.api = 'Users';\n this.baseApi = true;\n\n this.errorCallBack = {\n delete: (e) => this.errorDelete(e),\n };\n\n this.ModuleType = {\n General: 0,\n BPM: 1,\n BCM: 2,\n TRA: 3,\n ISRA: 4,\n Audit: 5,\n };\n this.RoleType = {\n Administrator: 1,\n User: 2,\n Coordinator: 3,\n Assessor: 4,\n UserManager: 5,\n };\n this.RoleAttributeType = { CoordinatorType: 1 };\n\n this.ModuleTypeName = {\n 0: 'General',\n 1: 'BPM',\n 2: 'BCM',\n 3: 'TRA',\n 4: 'ISRA',\n 5: 'Audit',\n };\n this.RoleTypeName = {\n 1: 'Administrator',\n 2: 'User',\n 3: 'Coordinator',\n 4: 'Assessor',\n 5: 'UserManager',\n };\n\n this.columns = [\n {\n title: 'Username',\n binding: 'username',\n defaultValue: 'New User',\n required: true,\n sort: 'asc',\n editable: (dataItem) => dataItem.isNew(),\n },\n {\n title: 'Password',\n binding: 'password',\n defaultValue: 'asd123!@#',\n hidden: true,\n },\n {\n title: 'First Name',\n binding: 'firstName',\n defaultValue: 'First Name',\n required: true,\n },\n {\n title: 'Last Name',\n binding: 'lastName',\n defaultValue: 'Last Name',\n required: true,\n },\n {\n title: 'Phone',\n binding: 'phone',\n defaultValue: '',\n required: true,\n },\n {\n title: 'E-Mail',\n binding: 'email',\n type: 'email',\n defaultValue: '',\n required: true,\n },\n {\n title: 'User Modules',\n binding: 'modules',\n required: false,\n defaultValue: [],\n template: (dataItem) => {\n let str = '';\n if (dataItem.modules.length > 0) {\n let i = 0;\n for (; i < dataItem.modules.length - 1; ++i) {\n // ignore General.User\n if (dataItem.modules[i].module === 0 && dataItem.modules[i].role === 2) {\n continue;\n }\n\n str += this.ModuleTypeName[dataItem.modules[i].module] + '.' +\n this.RoleTypeName[dataItem.modules[i].role] + ', ';\n }\n\n if (!(dataItem.modules[i].module === 0 && dataItem.modules[i].role === 2)) {\n str += this.ModuleTypeName[dataItem.modules[i].module] + '.' +\n this.RoleTypeName[dataItem.modules[i].role];\n }\n }\n return Helpers.sanitizeHTML(str);\n },\n compare: (a, b) => {\n function template(dataItem) {\n if (dataItem == null) {\n return Constants.Empty;\n }\n\n let str = '';\n let i = 0;\n for (; i < dataItem.modules.length - 1; ++i) {\n // ignore General.User\n if (dataItem.modules[i].module === 0 && dataItem.modules[i].role === 2) {\n continue;\n }\n\n str += this.ModuleTypeName[dataItem.modules[i].module] + '.' +\n this.RoleTypeName[dataItem.modules[i].role] + ', ';\n }\n\n if (!(dataItem.modules[i].module === 0 && dataItem.modules[i].role === 2)) {\n str += this.ModuleTypeName[dataItem.modules[i].module] + '.' +\n this.RoleTypeName[dataItem.modules[i].role];\n }\n\n // if only General.Users move to end\n if (str === '') {\n return 'zzzzzz';\n }\n\n return str;\n }\n\n return template.call(this, a)\n .localeCompare(template.call(this, b));\n },\n editor: (container, options) => {\n $('label[for=\"modules\"]')\n .hide();\n\n options.model.bcmType = 'none';\n options.model.israType = 'none';\n options.model.traType = 'none';\n options.model.cbUserManager = false;\n\n for (let i = 0; i < options.model.modules.length; ++i) {\n if (options.model.modules[i].module === this.ModuleType.General) {\n if (options.model.modules[i].role === this.RoleType.UserManager) {\n options.model.cbUserManager = true;\n }\n }\n\n if (options.model.modules[i].module === this.ModuleType.BCM) {\n if (options.model.modules[i].role === this.RoleType.Administrator) {\n options.model.bcmType = 'administrator';\n } else if (options.model.modules[i].role === this.RoleType.Coordinator) {\n options.model.bcmType = 'coordinator';\n for (let j = 0; j < options.model.modules[i].attributes.length; ++j) {\n if (options.model.modules[i].attributes[j].roleAttribute ===\n this.RoleAttributeType.CoordinatorType) {\n options.model.bcmCoordinatorType = options.model.modules[i].attributes[j].value;\n break;\n }\n }\n }\n }\n\n if (options.model.modules[i].module === this.ModuleType.ISRA) {\n if (options.model.modules[i].role === this.RoleType.Administrator) {\n options.model.israType = 'administrator';\n } else if (options.model.modules[i].role === this.RoleType.Assessor) {\n options.model.israType = 'assessor';\n }\n }\n\n if (options.model.modules[i].module === this.ModuleType.TRA) {\n if (options.model.modules[i].role === this.RoleType.Administrator) {\n options.model.traType = 'administrator';\n } else if (options.model.modules[i].role === this.RoleType.Assessor) {\n options.model.traType = 'assessor';\n }\n }\n }\n\n let set = `
\n \n \n
\n
\n
Modules
`;\n\n if (this.modules.includes(2)) {\n set += `
\n
\n

BCM

\n
    \n
  • \n \n \n
  • \n
  • \n \n \n
  • \n
  • \n \n \n
  • \n
  • \n \n
    \n \n
  • \n
\n
\n
`;\n }\n\n if (this.modules.includes(3)) {\n set += `
\n
\n

TRA

\n
    \n
  • \n \n \n
  • \n
  • \n \n \n
  • \n
  • \n \n \n
  • \n
\n
\n
`;\n }\n\n if (this.modules.includes(4)) {\n set += `
\n
\n

ISRA

\n
    \n
  • \n \n \n
  • \n
  • \n \n \n
  • \n
  • \n \n \n
  • \n
\n
\n
`;\n }\n\n set += '
';\n\n $(set)\n .appendTo(container);\n\n $('[name=\"cbUserManager\"]')\n .change((e) => {\n const value = e.currentTarget.checked;\n\n let i = 0;\n for (i = 0; i < options.model.modules.length; ++i) {\n if (options.model.modules[i].module === this.ModuleType.General &&\n options.model.modules[i].role === this.RoleType.UserManager) {\n if (value === false) {\n options.model.modules.splice(i, 1);\n }\n\n break;\n }\n }\n\n if (value === true && i === options.model.modules.length) {\n options.model.modules.push({\n id: 0,\n module: this.ModuleType.General,\n role: this.RoleType.UserManager,\n });\n }\n });\n\n // dropdownlist.select(function(dataItem) {\n // return dataItem.name === \"Apples\";\n // });\n\n $('#bcmCoordinatorType')\n .kendoDropDownList({\n dataTextField: 'name',\n dataValueField: 'id',\n valuePrimitive: true,\n dataSource: DataSources.CoordinatorTypes,\n value: options.model.bcmCoordinatorType,\n change: (e) => {\n let i = 0;\n for (; i < options.model.modules.length; ++i) {\n if (options.model.modules[i].module === this.ModuleType.BCM &&\n options.model.modules[i].role === this.RoleType.Coordinator) {\n // CoordinatorType: coordinatorTypeId\n options.model.modules[i].attributes = [\n {\n id: 0,\n roleAttribute: 1,\n value: e.sender.value(),\n },\n ];\n break;\n }\n }\n },\n });\n\n $('[name=\"bcmType\"]')\n .change((e) => {\n const value = e.currentTarget.value;\n\n if (value === 'coordinator') {\n $('#bcmCoordinatorTypeList')\n .show();\n } else {\n $('#bcmCoordinatorTypeList')\n .hide();\n }\n\n const modules = options.model.modules;\n let current = null;\n let i;\n for (i = 0; i < options.model.modules.length; ++i) {\n if (modules[i].module === this.ModuleType.BCM) {\n if (value === 'none') {\n modules.splice(i, 1);\n return;\n }\n current = modules[i];\n break;\n }\n }\n // not found in modules but not needed\n if (value === 'none') {\n return;\n }\n\n if (current == null) {\n current = {\n module: this.ModuleType.BCM,\n role: 0,\n attributes: [],\n };\n\n modules.push(current);\n current = modules[modules.length - 1];\n }\n\n if (value === 'administrator') {\n current.role = this.RoleType.Administrator;\n } else if (value === 'coordinator') {\n current.role = this.RoleType.Coordinator;\n // CoordinatorType: coordinatorTypeId\n const c = $('#bcmCoordinatorType')\n .data('kendoDropDownList');\n c.select(0);\n current.attributes = [\n {\n id: 0,\n roleAttribute: 1,\n value: c.value(),\n },\n ];\n }\n });\n\n $('[name=\"traType\"]')\n .change((e) => {\n const value = e.currentTarget.value;\n\n const modules = options.model.modules;\n let current = null;\n let i;\n for (i = 0; i < options.model.modules.length; ++i) {\n if (modules[i].module === this.ModuleType.TRA) {\n if (value === 'none') {\n modules.splice(i, 1);\n return;\n }\n current = modules[i];\n break;\n }\n }\n // not found in modules but not needed\n if (value === 'none') {\n return;\n }\n\n if (current == null) {\n current = {\n module: this.ModuleType.TRA,\n role: 0,\n attributes: [],\n };\n\n modules.push(current);\n current = modules[modules.length - 1];\n }\n\n if (value === 'administrator') {\n current.role = this.RoleType.Administrator;\n } else if (value === 'assessor') {\n current.role = this.RoleType.Assessor;\n }\n });\n\n $('[name=\"israType\"]')\n .change((e) => {\n const value = e.currentTarget.value;\n\n const modules = options.model.modules;\n let current = null;\n let i;\n for (i = 0; i < options.model.modules.length; ++i) {\n if (modules[i].module === this.ModuleType.ISRA) {\n if (value === 'none') {\n modules.splice(i, 1);\n return;\n }\n current = modules[i];\n break;\n }\n }\n // not found in modules but not needed\n if (value === 'none') {\n return;\n }\n\n if (current == null) {\n current = {\n module: this.ModuleType.ISRA,\n role: 0,\n attributes: [],\n };\n\n modules.push(current);\n current = modules[modules.length - 1];\n }\n\n if (value === 'administrator') {\n current.role = this.RoleType.Administrator;\n } else if (value === 'assessor') {\n current.role = this.RoleType.Assessor;\n }\n });\n },\n },\n ];\n }\n\n getLicenceModules() {\n return new Promise((resolve, reject) => {\n $.get('/api/Licences/GetAvailableModules')\n .then((data) => {\n resolve(data);\n })\n .fail(() => {\n reject();\n });\n });\n }\n\n async init() {\n this.modules = await this.getLicenceModules();\n\n super.init();\n }\n\n require() {\n return [DataSources.CoordinatorTypes];\n }\n\n setCustomGridProperties(grid) {\n grid.editable = 'popup';\n }\n\n errorDelete(e) {\n if (e) {\n if (e.status === 400) {\n this.datasource.cancelChanges();\n }\n }\n }\n}\n","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterTestFinishedLine.vue?vue&type=style&index=0&id=b4087d74&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterTestFinishedLine.vue?vue&type=style&index=0&id=b4087d74&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdPivotTable.vue?vue&type=style&index=0&id=25e56c2a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdPivotTable.vue?vue&type=style&index=0&id=25e56c2a&scoped=true&lang=css&\"","import { jwt, selectedMasterPlan } from '../main.js';\nimport { Helpers } from '../Core/Helpers.js';\n\nexport default class FormBase {\n constructor(title, divName, options = { readOnly: false }) {\n if (new.target === FormBase) {\n throw new TypeError('Cannot construct FormBase instances directly');\n }\n\n this.title = title;\n this.div = '#' + divName;\n this.grid = this.div + 'Grid';\n this.datasource = null;\n this.api = null;\n this.columns = null;\n this.confirmation = null;\n\n this.loading = this.div + 'Loading';\n\n this.baseApi = this.errorCallBack = this.flatout = null;\n\n this.options = options;\n\n this.contextMenu = {};\n\n this.subTitleButtons = [];\n\n if (options.readOnly === false) {\n this.menu = {\n edit: {\n title: 'Edit',\n action: (e) => {\n $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .editRow($(e.target));\n },\n },\n delete: {\n title: 'Remove',\n action: (e) => {\n $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .removeRow($(e.target));\n },\n },\n };\n }\n\n this.menuOptions = {};\n }\n\n static round(num) {\n return Math.round(num * 100) / 100;\n }\n\n static async prerequisites() {\n return await Promise.resolve(true);\n }\n\n disableButtonsOnEdit(e) {\n const grid = $(this)\n .closest('.k-grid');\n const editRow = grid.find('.k-grid-edit-row');\n\n if (editRow.length > 0) {\n Helpers.showError('Please save or cancel your changes before doing something else.', 'Error');\n e.preventDefault();\n }\n }\n\n customInit(resolve) {\n if (this.options.errorCallBack == null) {\n this.options.errorCallBack = {};\n }\n\n if (this.options.errorCallBack.delete == null) {\n this.options.errorCallBack.delete = (event) => {\n if (event.status !== 200) {\n const grid = $(this.grid)\n .data('kendoGrid');\n if (grid != null) {\n grid.dataSource.cancelChanges();\n }\n }\n };\n }\n\n this.createDataSource(resolve);\n\n const cols = Helpers.createColumns(selectedMasterPlan, this.columns, this.options);\n const grid = Helpers.getDefaultGrid(selectedMasterPlan, this.api, this.confirmation, this.options);\n grid.columns = cols;\n grid.dataSource = this.datasource;\n\n this.setCustomGridProperties(grid);\n $(this.grid).kendoGrid(grid);\n\n this.setCustomMenuItems(this.menu);\n this.createMenu();\n\n $(this.grid)\n .off('mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')', this.disableButtonsOnEdit)\n .on('mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')', this.disableButtonsOnEdit);\n }\n\n createDataSource(resolve) {\n const source = Helpers.createDataSource(\n selectedMasterPlan, this.api, jwt, this.columns, this.baseApi,\n this.errorCallBack, this.flatout, this.options,\n );\n source.requestEnd = (e) => {\n if (e.type === 'read') {\n if (resolve != null) {\n resolve();\n }\n }\n };\n\n this.setCustomDatasourceProperties(source);\n this.datasource = new kendo.data.DataSource(source);\n }\n\n init() {\n const loader = this.options.loader || this.grid;\n kendo.ui.progress($(loader), true);\n\n const promise = new Promise((resolve, reject) => {\n if (this.api == null) {\n throw new TypeError('Form Base api not found');\n }\n\n if (this.columns == null) {\n throw new TypeError('Form Base columns not found');\n }\n\n this.customInit(resolve, reject);\n });\n\n promise.then(() => {\n this.initDone();\n })\n .catch(reason => {\n Helpers.showError(reason, this.title);\n })\n .finally(() => {\n kendo.ui.progress($(loader), false);\n });\n }\n\n initDone() {\n\n }\n\n createGrid(options) {\n if (options.errorCallBack == null) {\n options.errorCallBack = {};\n }\n\n if (options.errorCallBack.delete == null) {\n options.errorCallBack.delete = (event) => {\n if (event.status !== 200) {\n const grid = $(this.grid)\n .data('kendoGrid');\n if (grid != null) {\n grid.dataSource.cancelChanges();\n }\n }\n };\n }\n\n const source = Helpers.createDataSource(selectedMasterPlan, options.api, jwt, options.columns, false, null, false, options);\n\n if (options.pageable === false) {\n delete source.pageSize;\n }\n\n const datasource = new kendo.data.DataSource(source);\n\n const cols = Helpers.createColumns(selectedMasterPlan, options.columns, options);\n const grid = Helpers.getDefaultGrid(selectedMasterPlan, options.api, options.confirmation, options);\n if (options.pageable === false) {\n delete grid.pageable;\n }\n grid.columns = cols;\n grid.dataSource = datasource;\n\n if (options.selector != null && options.menu != null) {\n this.createMenu({\n selector: options.selector,\n menu: options.menu,\n });\n }\n\n return grid;\n }\n\n createMenu(parameters = {}) {\n const gridSelector = parameters.selector || this.grid;\n const menu = parameters.menu || this.menu;\n const options = parameters.options || this.menuOptions;\n\n FormBase.menuCounter = FormBase.menuCounter || 0;\n ++FormBase.menuCounter;\n\n const menuItems = [];\n\n for (const i in menu) {\n menuItems.push({\n text: menu[i].title,\n cssClass: menu[i].cssClass,\n encoded: false,\n attr: { action: i },\n });\n }\n\n if (menuItems.length > 0) {\n $('body')\n .append('
    ');\n\n const s = gridSelector + ' > div.k-grid-content > table > tbody > tr[role=row]';\n\n this.contextMenu[gridSelector] = $('#context-menu_' + FormBase.menuCounter)\n .kendoContextMenu({\n target: '#general',\n filter: s,\n dataSource: menuItems,\n select: (e) => {\n const grid = $(gridSelector)\n .data('kendoGrid');\n const row = grid.tbody.find('.k-grid-edit-row');\n\n if (row.length > 0) {\n $.when(grid.saveRow())\n .then(() => {\n menu[e.item.attributes.action.nodeValue].action(e);\n });\n } else {\n menu[e.item.attributes.action.nodeValue].action(e);\n }\n },\n open: options.open,\n });\n }\n }\n\n setCustomMenuItems() {\n }\n\n setCustomGridProperties(grid) {\n const change = grid.change;\n grid.change = (e) => {\n change.call(e.sender, e);\n\n // const grid = e.sender.data('kendoGrid');\n const selectedItem = e.sender.dataItem(e.sender.select());\n\n this.selectedItemChanged(selectedItem);\n };\n\n const databound = grid.dataBound;\n let first = true;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n const data = e.sender.dataSource.data();\n\n if (first) {\n this.firstDataBound(e.sender, data);\n first = false;\n }\n\n this.dataBound(e.sender, data);\n };\n }\n\n setCustomDatasourceProperties() {\n }\n\n selectedItemChanged() {\n // when selected item changes\n }\n\n firstDataBound() {\n // run only once\n }\n\n dataBound() {\n // run on every change\n }\n\n save() {\n return new Promise((resolve, reject) => {\n if (this.datasource != null) {\n this.datasource.sync()\n .then(() => {\n resolve();\n })\n .fail((reason) => {\n reject(reason);\n });\n }\n });\n }\n\n require() {\n return [];\n }\n\n destroy(data) {\n $('#pageTitle')\n .empty();\n\n const div = $(this.grid);\n\n if (data == null) {\n data = div.data('kendoGrid');\n }\n\n if (data != null) {\n data.destroy();\n }\n\n div.empty();\n\n // remove context menus\n for (const i in this.contextMenu) {\n const context = $(this.contextMenu[i])\n .data('kendoContextMenu');\n if (context != null) {\n context.destroy();\n }\n }\n\n this.hide();\n }\n\n discard() {\n if (this.hasChanges()) {\n this.datasource.cancelChanges();\n }\n }\n\n hasChanges() {\n if (this.datasource != null) {\n return this.datasource.hasChanges();\n }\n\n return false;\n }\n\n hide() {\n if (this.div != null) {\n $(this.div)\n .addClass('hidden');\n }\n }\n\n show() {\n if (this.div != null) {\n $(this.div)\n .removeClass('hidden');\n }\n\n this.showTitle();\n this.finishedShow();\n }\n\n finishedShow() {\n }\n\n showTitle() {\n $('#pageTitle')\n .text(this.title.replace(/&/g, '&'));\n this.showSubTitle();\n }\n\n showSubTitle() {\n const sub = $('#pageSubTitle');\n sub.empty();\n\n const buttons = this.subTitleButtons;\n\n if (buttons == null || !Array.isArray(buttons) || buttons.length === 0) {\n return;\n }\n\n let toolbar = '
    ';\n\n for (let i = 0; i < buttons.length; ++i) {\n if (buttons[i].type == null || buttons[i].type === 'button') {\n if (buttons[i].name == null || buttons[i].text == null || buttons[i].actions == null) {\n continue;\n }\n\n let item = '';\n\n if (buttons[i].icon != null) {\n item += '';\n }\n\n item += buttons[i].text;\n item += '';\n\n toolbar += item;\n } else if (buttons[i].type === 'raw') {\n toolbar += buttons[i].template;\n }\n }\n\n toolbar += '
    ';\n $('#pageSubTitle')\n .append(toolbar);\n\n for (let i = 0; i < buttons.length; ++i) {\n if (buttons[i].type == null || buttons[i].type === 'button') {\n if (buttons[i].name == null || buttons[i].text == null || buttons[i].actions == null) {\n continue;\n }\n\n $('#' + buttons[i].name)\n .off('click')\n .on('click', (e) => buttons[i].actions(e));\n }\n }\n }\n}\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemsView.vue?vue&type=style&index=0&id=11c0e367&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemsView.vue?vue&type=style&index=0&id=11c0e367&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTranslationsEditor.vue?vue&type=style&index=0&id=28550bd7&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTranslationsEditor.vue?vue&type=style&index=0&id=28550bd7&scoped=true&lang=css&\"","import { selectedLanguage } from '../../../main.js';\nimport FormBase from '../../FormBase.js';\nimport DataSources from '../../../Core/datasources.js';\nimport Constants from '../../../Core/constants.js';\nimport { Helpers } from '../../../Core/Helpers';\n\nexport default class Locations extends FormBase {\n constructor() {\n super('Locations', 'general');\n this.api = 'bc/Locations';\n\n this.confirmation = this.confirmationDialog;\n\n this.columns = [\n {\n title: 'Location Group',\n binding: 'locationGroupId',\n editor: (container, options) => this.locationGroupDropDownEditor(container, options),\n template: (dataItem) => {\n const item = DataSources.LocationGroups.get(dataItem.locationGroupId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return 'None';\n }\n },\n groupHeaderTemplate: (dataItem) => {\n const item = DataSources.LocationGroups.get(dataItem.value);\n\n let text;\n\n if (item != null) {\n text = Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n text = 'None';\n }\n\n return text + ' (' + dataItem.items.length + ')';\n },\n defaultValue: '0',\n },\n {\n title: 'Country',\n binding: 'country',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n {\n title: 'State',\n binding: 'state',\n sort: 'asc',\n translatable: true,\n },\n {\n title: 'City',\n binding: 'city',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n {\n title: 'Address',\n binding: 'address',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n {\n title: 'ZipCode',\n binding: 'zipCode',\n sort: 'asc',\n translatable: true,\n },\n ];\n }\n\n setCustomDatasourceProperties(source) {\n source.group = { field: 'locationGroupId' };\n }\n\n require() {\n return [DataSources.LocationGroups];\n }\n\n confirmationDialog(e) {\n const t = e.translations[selectedLanguage];\n\n return String.format(\n '\"{0}, {1}, {2}, {3}, {4}\"', t.country, t.state, t.city, t.address,\n t.zipCode,\n );\n }\n\n locationGroupDropDownEditor(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n optionLabel: Constants.EmptyGroup,\n autoBind: true,\n valuePrimitive: true,\n dataTextField: 'translations[\\'' + selectedLanguage + '\\'].name',\n dataValueField: 'id',\n dataSource: DataSources.LocationGroups,\n });\n }\n}\n","module.exports = __webpack_public_path__ + \"img/file.aa8d5f4a.png\";","import FormBase from '../../../FormBase.js';\n\nexport default class DeploymentTabBase extends FormBase {\n constructor(title, divName, deployment, readonly, question) {\n super(title, divName);\n\n // make class abstract\n if (new.target === DeploymentTabBase) {\n throw new TypeError('Cannot construct DeploymentTab instances directly');\n }\n\n if (deployment == null) {\n throw Error('Cannot initialize deployment tab without deployment...');\n }\n\n this.li = '#' + divName;\n\n this.deployment = deployment;\n this.readonly = readonly;\n this.question = question;\n\n this.options.readOnly = this.readonly;\n }\n\n init() {\n if (this.question != null && this.deployment[this.question] === false) {\n return;\n }\n\n // Remove hidden class\n $(this.li)\n .removeClass('hidden');\n\n super.init();\n }\n\n setCustomGridProperties(grid) {\n if (this.readonly === true) {\n grid.editable = false;\n }\n }\n}\n","import DeploymentTabBase from './DeploymentTabBase.js';\nimport { jwt, selectedMasterPlan, selectedLanguage } from '../../../../main.js';\nimport { Helpers } from '../../../../Core/Helpers.js';\nimport Constants from '../../../../Core/constants.js';\n\nexport default class DeploymentSurveys extends DeploymentTabBase {\n constructor(deployment, readonly) {\n super('Surveys', 'deploymentSurveys', deployment, readonly);\n\n this.grid = '#deploymentSurveysGridLeft';\n this.api = 'bc/deployments/' + deployment.id + '/DeploymentSurveys/surveys';\n\n this.options = {\n readOnly: true,\n loader: '#deploymentSurveysGrid',\n };\n\n this.columns = [\n {\n binding: 'translations[\"' + selectedLanguage + '\"].name',\n title: 'Survey',\n editable: false,\n },\n ];\n }\n\n setCustomGridProperties(grid) {\n grid.change = () => {\n const grid = $('#deploymentSurveysGridLeft')\n .data('kendoGrid');\n const selected = grid.dataItem(grid.select());\n this.displaySurvey(selected.id);\n };\n }\n\n customInit(resolve, reject) {\n const source = Helpers.createDataSource(\n selectedMasterPlan,\n 'bc/deployments/' + this.deployment.id + '/DeploymentSurveys', jwt, [],\n );\n\n let firstRequest = true;\n source.requestEnd = () => {\n if (firstRequest) {\n super.customInit(resolve, reject);\n firstRequest = false;\n }\n };\n\n this.deploymentSurveys = new kendo.data.DataSource(source);\n\n this.deploymentSurveys.read();\n }\n\n init() {\n $('#test123')\n .click(() => {\n $('#horizontal')\n .kendoSplitter({\n height: '100%',\n panes: [\n {\n collapsible: true,\n size: '270px',\n }],\n });\n\n $('#horizontal')\n .data('kendoSplitter')\n .resize();\n });\n super.init();\n }\n\n displaySurvey(surveyId) {\n const div = $('#deploymentSurveysGridRight');\n div.empty();\n\n let deploymentSurvey = null;\n let surveyIndex = 0;\n const data = this.deploymentSurveys.data();\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].surveyId === surveyId) {\n deploymentSurvey = data[i];\n surveyIndex = i;\n break;\n }\n }\n\n for (let i = 0; i < deploymentSurvey.questions.length; ++i) {\n const survey = this.datasource.get(surveyId);\n let question = null;\n\n for (let j = 0; j < survey.questions.length; ++j) {\n if (survey.questions[j].id === deploymentSurvey.questions[i].questionId) {\n question = survey.questions[j];\n break;\n }\n }\n\n const id = surveyIndex + '_' + i;\n\n $('
    ' + Helpers.sanitizeHTML(question.translations[selectedLanguage].text) + '
    ')\n .appendTo(div);\n\n if (question.questionType === Constants.QuestionType.Text) {\n const text = 'text_' + id;\n $('')\n .appendTo(div);\n $('#' + text)\n .change((e) => {\n this.surveyAnswerChange(e);\n });\n } else if (question.questionType === Constants.QuestionType.Single) {\n const text = 'radio_' + id;\n for (let j = 0; j < question.options.length; ++j) {\n const id = text + question.options[j].id;\n let checked = '';\n if ($.inArray(question.options[j].id, deploymentSurvey.questions[i].answers) > -1) {\n checked = ' checked=\"checked\"';\n }\n\n $(' ' +\n '
    ')\n .appendTo(div);\n\n // tha tou perasei to this san koumpi\n $('#' + id)\n .change((e) => {\n this.surveyAnswerChange(e);\n });\n }\n } else if (question.questionType === Constants.QuestionType.Multiple) {\n const text = 'checkbox_' + id;\n for (let j = 0; j < question.options.length; ++j) {\n const id = text + question.options[j].id;\n let checked = '';\n if ($.inArray(question.options[j].id, deploymentSurvey.questions[i].answers) > -1) {\n checked = ' checked=\"checked\"';\n }\n\n $('' +\n '
    ')\n .appendTo(div);\n\n $('#' + id)\n .change((e) => {\n this.surveyAnswerChange(e);\n });\n }\n }\n\n if (question.allowComments === true) {\n const comments = 'comment_' + id;\n $('
    ' + Constants.Comments[selectedLanguage] + '
    ')\n .appendTo(div);\n\n $('#' + comments)\n .change((e) => {\n this.surveyAnswerChange(e);\n });\n }\n\n $('
    ')\n .appendTo(div);\n }\n //\n }\n\n surveyAnswerChange(e) {\n const element = e.currentTarget;\n\n if (this.readonly === true) {\n // Helpers.showError('You are not allowed to edit this deployment');\n // return;\n }\n\n kendo.ui.progress($('#deploymentSurveysGrid'), true);\n\n const first = element.name.indexOf('_');\n const second = element.name.indexOf('_', first + 1);\n\n const survey = element.name.substring(first + 1, second);\n const question = element.name.substring(second + 1);\n\n if (element.type === 'textarea') {\n // text answer or comment\n if (element.name.startsWith('text')) {\n this.deploymentSurveys.data()[survey].set(\n 'questions[' + question + '].text',\n element.value,\n );\n } else {\n this.deploymentSurveys.data()[survey].set(\n 'questions[' + question + '].comment',\n element.value,\n );\n }\n } else if (element.type === 'radio') {\n this.deploymentSurveys.data()[survey].set(\n 'questions[' + question + '].answers',\n [parseInt(element.value)],\n );\n this.deploymentSurveys.data()[survey].dirty = true;\n } else if (element.type === 'checkbox') {\n const answers = this.deploymentSurveys.data()[survey].questions[question].answers || [];\n if (element.checked === true) {\n answers.push(parseInt(element.value));\n } else {\n const index = answers.indexOf(parseInt(element.value));\n\n if (index !== -1) {\n answers.splice(index, 1);\n }\n }\n this.deploymentSurveys.data()[survey].set('questions[' + question + '].answers', answers);\n\n this.deploymentSurveys.data()[survey].dirty = true;\n }\n\n const deferred = this.deploymentSurveys.sync();\n\n deferred.then(() => {\n })\n .fail((e) => {\n Helpers.showError(e.responseText, 'Deployment Surveys');\n\n this.deploymentSurveys.cancelChanges();\n const grid = $(this.grid)\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n this.displaySurvey(selectedItem.id);\n })\n .always(() => {\n kendo.ui.progress($('#deploymentSurveysGrid'), false);\n });\n }\n}\n","import DeploymentTabBase from './DeploymentTabBase.js';\nimport DataSources from '../../../../Core/datasources.js';\nimport { selectedLanguage } from '../../../../main.js';\nimport { Helpers } from '../../../../Core/Helpers.js';\n\nexport default class DeploymentAssets extends DeploymentTabBase {\n constructor(deployment, readonly) {\n super('Assets', 'deploymentAssets', deployment, readonly, 'hasAssets');\n\n this.api = 'bc/deployments/' + deployment.id + '/DeploymentAssets';\n\n this.confirmation = (e) => {\n return DataSources.Assets.get(e.assetId).translations[selectedLanguage].name;\n };\n\n this.columns = [\n // {\n // title: \" \",\n // fieldName: 'mandatory',\n // template: (dataItem) => {\n // let item = DataSources.Assets.get(dataItem.assetId);\n //\n // if (item != null && item.mandatory === true)\n // return 'M';\n //\n // return ' ';\n // },\n // width: '26px',\n // editable: false,\n // },\n {\n title: 'Asset',\n binding: 'assetId',\n editable: false,\n datasource: DataSources.Assets,\n sortField: 'translations.' + selectedLanguage + '.name',\n template: (dataItem) => {\n const item = DataSources.Assets.get(dataItem.assetId);\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n },\n },\n ];\n }\n\n init() {\n this.defaultRtoValues = {};\n for (let i = 0; i < DataSources.RTOScales.view().length; ++i) {\n const item = DataSources.RTOScales.view()[i];\n\n this.defaultRtoValues[item.id] = 0;\n\n this.columns.push({\n fieldName: 'rtoValues_' + item.id,\n title: Helpers.sanitizeHTML(item.translations[selectedLanguage].name),\n binding: 'rtoValues[\"' + item.id + '\"]',\n type: 'number',\n defaultValue: 0,\n });\n }\n\n super.init();\n }\n\n setCustomDatasourceProperties(source) {\n source.change = (e) => {\n if (e.action === 'itemchange') {\n for (let i = 1; i < DataSources.RTOScales.view().length; ++i) {\n const item = DataSources.RTOScales.view()[i];\n const prev = DataSources.RTOScales.view()[i - 1];\n\n if (e.items[0]['rtoValues_' + item.id] < e.items[0]['rtoValues_' + prev.id]) {\n e.items[0].set('rtoValues_' + item.id, e.items[0]['rtoValues_' + prev.id]);\n }\n }\n }\n };\n\n super.setCustomDatasourceProperties(source);\n }\n\n setCustomGridProperties(grid) {\n if (this.readonly === false) {\n grid.toolbar = [\n {\n template: 'Add',\n },\n {\n name: 'excel',\n text: 'Export',\n },\n ];\n\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n $('#DeploymentAssets-Add')\n .off('click')\n .on('click', () => this.addAsset());\n };\n\n grid.remove = (e) => {\n const asset = DataSources.Assets.get(e.model.assetId);\n if (asset.mandatory === true) {\n e.preventDefault();\n e.sender.dataSource.cancelChanges();\n\n Helpers.showError('Cannot delete a mandatory asset!');\n }\n };\n }\n\n super.setCustomGridProperties(grid);\n }\n\n require() {\n return [DataSources.Assets, DataSources.RTOScales];\n }\n\n addAsset() {\n const data = $(this.grid)\n .data('kendoGrid')\n .dataSource\n .data();\n\n const content = '
    ';\n Helpers.showPopUp('Select Asset', content, [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const di = $('#assetsComboBox')\n .data('kendoComboBox')\n .dataItem();\n const deploymentAsset = {\n assetId: di.id,\n rtoValues: this.defaultRtoValues,\n };\n\n for (let i = 0; i < DataSources.RTOScales.view().length; ++i) {\n deploymentAsset['rtoValues_' + DataSources.RTOScales.view()[i].id] = 0;\n }\n\n if (di != null) {\n data.push(deploymentAsset);\n return true;\n }\n return false;\n },\n },\n {\n text: 'Cancel',\n action: () => {\n return true;\n },\n }]);\n\n const filters = [];\n for (let i = 0; i < data.length; ++i) {\n filters.push({\n field: 'id',\n operator: 'neq',\n value: data[i].assetId,\n });\n }\n\n $('#assetsComboBox')\n .width(500)\n .kendoComboBox({\n // template: template,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n valuePrimitive: true,\n placeholder: 'Search...',\n index: 0,\n dataSource: {\n data: DataSources.Assets.view(),\n filter: {\n logic: 'and',\n filters: filters,\n },\n },\n filter: 'contains',\n suggest: true,\n });\n }\n}\n","import { selectedLanguage } from '../../../../main.js';\nimport DataSources from '../../../../Core/datasources.js';\nimport DeploymentTabBase from './DeploymentTabBase.js';\nimport { Helpers } from '../../../../Core/Helpers.js';\n\nexport default class DeploymentApplications extends DeploymentTabBase {\n constructor(deployment, readonly) {\n super('Systems', 'deploymentApplications', deployment, readonly, 'hasApplications');\n\n this.api = 'bc/deployments/' + deployment.id + '/DeploymentApplications';\n\n this.confirmation = (e) => {\n return DataSources.Applications.get(e.applicationId).translations[selectedLanguage].name;\n };\n\n this.columns = [\n {\n title: 'Application',\n binding: 'applicationId',\n editable: false,\n datasource: DataSources.Applications,\n sortField: 'translations.' + selectedLanguage + '.name',\n template: (dataItem) => {\n const item = DataSources.Applications.get(dataItem.applicationId);\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n },\n },\n {\n title: 'RTO',\n binding: 'rtoId',\n datasource: DataSources.RtoApplicationScales,\n sortField: 'translations.' + selectedLanguage + '.name',\n editor: (container, options) => {\n this.rtoSelector(container, options);\n },\n },\n {\n title: 'RPO',\n binding: 'rpoId',\n datasource: DataSources.RpoScales,\n sortField: 'translations.' + selectedLanguage + '.name',\n template: (dataItem) => {\n const item = DataSources.RpoScales.get(dataItem.rpoId);\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n },\n editor: (container, options) => {\n this.rpoSelector(container, options);\n },\n },\n ];\n }\n\n setCustomGridProperties(grid) {\n if (this.readonly === false) {\n grid.toolbar = [\n {\n template: 'Add',\n },\n {\n name: 'excel',\n text: 'Export',\n },\n ];\n\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n $('#DeploymentApplications-Add')\n .off('click')\n .on('click', () => this.addApplication());\n };\n }\n super.setCustomGridProperties(grid);\n }\n\n require() {\n return [DataSources.Applications, DataSources.RtoApplicationScales, DataSources.RpoScales];\n }\n\n addApplication() {\n const grid = $(this.grid)\n .data('kendoGrid');\n const data = grid.dataSource;\n\n const content = '
    ';\n Helpers.showPopUp('Select System', content, [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const di = $('#applicationsComboBox')\n .data('kendoComboBox')\n .dataItem();\n if (di != null) {\n const a = data.add({\n applicationId: di.id,\n rtoId: DataSources.RtoApplicationScales.view()[DataSources.RtoApplicationScales.view().length -\n 1].id,\n rpoId: DataSources.RpoScales.view()[DataSources.RpoScales.view().length - 1].id,\n });\n\n const row = grid.tbody.find('tr[data-uid=\\'' + a.uid + '\\']');\n grid.editRow(row);\n\n return true;\n }\n return false;\n },\n },\n {\n text: 'Cancel',\n action: () => {\n return true;\n },\n }]);\n\n const filters = [];\n for (let i = 0; i < data.data().length; ++i) {\n filters.push({\n field: 'id',\n operator: 'neq',\n value: data.data()[i].applicationId,\n });\n }\n\n console.log(filters);\n\n $('#applicationsComboBox')\n .width(500)\n .kendoComboBox({\n // template: template,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n valuePrimitive: true,\n placeholder: 'Search...',\n index: 0,\n dataSource: {\n data: DataSources.Applications.view(),\n filter: {\n logic: 'and',\n filters: filters,\n },\n },\n filter: 'contains',\n suggest: true,\n });\n }\n\n rtoSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoComboBox({\n placeholder: 'Search...',\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.RtoApplicationScales,\n });\n }\n\n rpoSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoComboBox({\n placeholder: 'Search...',\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.RpoScales,\n });\n }\n}\n","import DeploymentTabBase from './DeploymentTabBase.js';\n\nexport default class DeploymentExternalContacts extends DeploymentTabBase {\n constructor(deployment, readonly) {\n super('External Contacts', 'deploymentExternalContacts', deployment, readonly, 'hasContacts');\n\n this.api = 'bc/deployments/' + deployment.id + '/DeploymentExternalContacts';\n\n this.confirmation = (e) => {\n return String.format('\\'{0} {1}\\'', e.lastName, e.firstName);\n };\n\n this.columns = [\n {\n title: 'Company',\n binding: 'name',\n required: true,\n },\n {\n title: 'Service Provided',\n binding: 'service',\n required: true,\n },\n {\n title: 'Contact',\n binding: 'contact',\n required: true,\n },\n {\n title: 'Email',\n binding: 'email',\n type: 'email',\n required: true,\n },\n {\n title: 'Phone (Work)',\n binding: 'phone1',\n required: true,\n },\n {\n title: 'Phone (Cell)',\n binding: 'phone2',\n },\n {\n title: 'Phone (Home)',\n binding: 'phone3',\n },\n ];\n }\n}\n","import DeploymentTabBase from './DeploymentTabBase.js';\nimport DataSources from '../../../../Core/datasources.js';\nimport { selectedLanguage } from '../../../../main.js';\nimport { Helpers } from '../../../../Core/Helpers';\n\nexport default class DeploymentFinancialImpact extends DeploymentTabBase {\n constructor(deployment, readonly) {\n super(\n 'Financial Impact', 'deploymentFinancialImpact', deployment, readonly,\n 'hasFinancialImpact',\n );\n\n this.api = 'bc/deployments/' + deployment.id + '/DeploymentFinancialImpacts';\n\n this.defaultRtoValues = {};\n\n this.columns = [\n {\n title: ' ',\n fieldName: 'explanation',\n template: (dataItem) => {\n const item = DataSources.FinancialImpactQuestions.get(dataItem.questionId);\n\n return '';\n },\n width: '38px',\n editable: false,\n },\n {\n title: 'Question',\n binding: 'questionId',\n editable: false,\n template: (dataItem) => {\n const item = DataSources.FinancialImpactQuestions.get(dataItem.questionId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].question);\n } else {\n return '';\n }\n },\n },\n ];\n }\n\n require() {\n return [\n DataSources.FinancialImpactQuestions,\n DataSources.FinancialImpactScales,\n DataSources.RTOScales];\n }\n\n init() {\n for (let i = 0; i < DataSources.RTOScales.view().length; ++i) {\n const item = DataSources.RTOScales.view()[i];\n\n this.defaultRtoValues[item.id] = DataSources.FinancialImpactScales.view()[DataSources.FinancialImpactScales.view().length -\n 1];\n\n this.columns.push({\n fieldName: 'rtoValues_' + item.id,\n title: Helpers.sanitizeHTML(item.translations[selectedLanguage].name),\n binding: 'rtoValues[\"' + item.id + '\"]',\n editable: () => !this.readonly,\n template: (dataItem) => {\n const scale = DataSources.FinancialImpactScales.get(dataItem['rtoValues_' + item.id]);\n\n if (scale != null) {\n return Helpers.sanitizeHTML(scale.translations[selectedLanguage].name);\n } else {\n return '';\n }\n },\n editor: (container, options) => this.scaleSelector(container, options),\n });\n }\n\n super.init();\n }\n\n setCustomDatasourceProperties(source) {\n source.change = (e) => {\n if (e.action === 'itemchange') {\n for (let i = 1; i < DataSources.RTOScales.view().length; ++i) {\n const item = DataSources.RTOScales.view()[i];\n const prev = DataSources.RTOScales.view()[i - 1];\n\n let itemValue = 0,\n prevValue = 0;\n\n const itemRto = e.items[0]['rtoValues_' + item.id],\n prevRto = e.items[0]['rtoValues_' + prev.id];\n\n if (itemRto != null) {\n itemValue = DataSources.FinancialImpactScales.get(itemRto).value;\n }\n\n if (prevRto != null) {\n prevValue = DataSources.FinancialImpactScales.get(prevRto).value;\n }\n\n if (itemValue < prevValue) {\n e.items[0].set('rtoValues_' + item.id, e.items[0]['rtoValues_' + prev.id]);\n }\n }\n }\n };\n\n super.setCustomDatasourceProperties(source);\n }\n\n setCustomGridProperties(grid) {\n if (this.readonly !== true) {\n grid.columns[grid.columns.length - 1].command = [{ name: 'edit' }];\n }\n\n grid.toolbar = grid.toolbar.slice(1);\n\n super.setCustomGridProperties(grid);\n }\n\n scaleSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.FinancialImpactScales,\n });\n }\n}\n","import DeploymentTabBase from './DeploymentTabBase.js';\nimport DataSources from '../../../../Core/datasources.js';\nimport { selectedLanguage } from '../../../../main.js';\nimport Constants from '../../../../Core/constants.js';\nimport { Helpers } from '../../../../Core/Helpers';\n\nexport default class DeploymentInterdependencies extends DeploymentTabBase {\n constructor(deployment, readonly) {\n super(\n 'Interdependencies', 'deploymentInterdependencies', deployment, readonly,\n 'hasInterdependencies',\n );\n\n this.api = 'bc/deployments/' + deployment.id + '/DeploymentInterdependencies';\n\n this.columns = [\n {\n title: 'Associate',\n binding: 'associateId',\n required: true,\n template: (dataItem) => {\n const item = DataSources.Associates.get(dataItem.associateId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return 'Select...';\n }\n },\n editor: (container, options) => this.associatesSelector(container, options),\n },\n {\n title: 'Relation',\n binding: 'relation',\n required: true,\n defaultValue: 1,\n template: (dataItem) => {\n return $.grep(Constants.InternalExternalValues, (element) => {\n return element.id === dataItem.relation;\n })[0].translations[selectedLanguage];\n },\n editor: (container, options) => this.relationSelector(container, options),\n },\n {\n title: 'Direction',\n binding: 'direction',\n required: true,\n defaultValue: 1,\n template: (dataItem) => {\n return $.grep(Constants.InputOutputValues, (element) => {\n return element.id === dataItem.direction;\n })[0].translations[selectedLanguage];\n },\n editor: (container, options) => this.directionSelector(container, options),\n },\n {\n title: 'Service',\n binding: 'serviceId',\n required: true,\n template: (dataItem) => {\n const item = DataSources.Services.get(dataItem.serviceId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return 'Select...';\n }\n },\n editor: (container, options) => this.servicesSelector(container, options),\n },\n {\n title: 'Critical',\n binding: 'isCritical',\n type: 'boolean',\n },\n {\n title: 'Why Critical',\n binding: 'whyCritical',\n // editor: (container, options) => this.criticalTextEditor(container, options),\n },\n {\n title: 'Actions Needed',\n binding: 'criticalActions',\n // editor: (container, options) => this.criticalTextEditor(container, options),\n },\n ];\n }\n\n require() {\n return [DataSources.Services, DataSources.Associates];\n }\n\n associatesSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoComboBox({\n // template: template,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n valuePrimitive: true,\n placeholder: 'Search...',\n index: 0,\n dataSource: DataSources.Associates,\n suggest: true,\n });\n }\n\n setCustomGridProperties(grid) {\n super.setCustomGridProperties(grid);\n\n const edit = grid.edit;\n grid.edit = (e) => {\n edit.call(e.sender, e);\n\n this.updateContainerReadOnly(e.model.isCritical);\n };\n }\n\n setCustomDatasourceProperties(source) {\n super.setCustomDatasourceProperties(source);\n\n source.change = (e) => {\n if (e.action === 'itemchange') {\n if (e.field === 'isCritical') {\n this.updateContainerReadOnly(e.items[0].isCritical);\n }\n }\n };\n }\n\n updateContainerReadOnly(enable) {\n const whyCritical = $('[name=\"whyCritical\"]');\n const criticalActions = $('[name=\"criticalActions\"]');\n\n if (enable) {\n whyCritical.removeClass('k-state-disabled');\n criticalActions.removeClass('k-state-disabled');\n } else {\n whyCritical.addClass('k-state-disabled');\n criticalActions.addClass('k-state-disabled');\n }\n\n whyCritical.prop('disabled', !enable);\n criticalActions.prop('disabled', !enable);\n }\n\n servicesSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoComboBox({\n // template: template,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n valuePrimitive: true,\n placeholder: 'Search...',\n index: 0,\n dataSource: DataSources.Services,\n suggest: true,\n });\n }\n\n relationSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n // template: template,\n dataTextField: 'translations[\"' + selectedLanguage + '\"]',\n dataValueField: 'id',\n valuePrimitive: true,\n index: 0,\n dataSource: Constants.InternalExternalValues,\n });\n }\n\n directionSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n // template: template,\n dataTextField: 'translations[\"' + selectedLanguage + '\"]',\n dataValueField: 'id',\n valuePrimitive: true,\n index: 0,\n dataSource: Constants.InputOutputValues,\n });\n }\n}\n","import DeploymentTabBase from './DeploymentTabBase.js';\nimport DataSources from '../../../../Core/datasources.js';\nimport { selectedLanguage } from '../../../../main.js';\nimport { Helpers } from '../../../../Core/Helpers';\n\nexport default class DeploymentOperationalImpact extends DeploymentTabBase {\n constructor(deployment, readonly) {\n super(\n 'Operational Impact', 'deploymentOperationalImpact', deployment, readonly,\n 'hasOperationalImpact',\n );\n\n this.api = 'bc/deployments/' + deployment.id + '/DeploymentOperationalImpacts';\n\n this.defaultRtoValues = {};\n\n this.columns = [\n {\n title: ' ',\n fieldName: 'explanation',\n template: (dataItem) => {\n const item = DataSources.OperationalImpactQuestions.get(dataItem.questionId);\n\n return '';\n },\n width: '38px',\n editable: false,\n },\n {\n title: 'Question',\n binding: 'questionId',\n editable: false,\n template: (dataItem) => {\n const item = DataSources.OperationalImpactQuestions.get(dataItem.questionId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].question);\n } else {\n return '';\n }\n },\n },\n ];\n }\n\n require() {\n return [\n DataSources.OperationalImpactQuestions,\n DataSources.OperationalImpactScales,\n DataSources.RTOScales];\n }\n\n init() {\n for (let i = 0; i < DataSources.RTOScales.view().length; ++i) {\n const item = DataSources.RTOScales.view()[i];\n\n this.defaultRtoValues[item.id] = DataSources.OperationalImpactScales.view()[DataSources.OperationalImpactScales.view().length -\n 1];\n\n this.columns.push({\n fieldName: 'rtoValues_' + item.id,\n title: Helpers.sanitizeHTML(item.translations[selectedLanguage].name),\n binding: 'rtoValues[\"' + item.id + '\"]',\n editable: () => !this.readonly,\n footerTemplate: '
    ',\n template: (dataItem) => {\n const scale = DataSources.OperationalImpactScales.get(dataItem['rtoValues_' + item.id]);\n\n if (scale != null) {\n return Helpers.sanitizeHTML(scale.translations[selectedLanguage].name);\n } else {\n return '';\n }\n },\n editor: (container, options) => this.scaleSelector(container, options),\n });\n }\n\n const data = DataSources.OperationalImpactQuestions.data();\n\n this.totalWeight = 0;\n this.rtoTrigger = 0;\n this.maoTrigger = 0;\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].rtoIndicator === true) {\n this.totalWeight += data[i].weight;\n }\n }\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].rtoIndicator === true) {\n this.rtoTrigger += ((data[i].weight *\n DataSources.OperationalImpactScales.get(data[i].rtoTriggerId).value) / this.totalWeight);\n this.maoTrigger += ((data[i].weight *\n DataSources.OperationalImpactScales.get(data[i].maoTriggerId).value) / this.totalWeight);\n }\n }\n\n this.rtoTrigger = (Math.round(this.rtoTrigger * 1000) / 1000);\n this.maoTrigger = (Math.round(this.maoTrigger * 1000) / 1000);\n\n super.init();\n }\n\n setCustomDatasourceProperties(source) {\n delete source.pageSize;\n\n source.change = (e) => {\n if (e.action === 'itemchange') {\n for (let i = 1; i < DataSources.RTOScales.view().length; ++i) {\n const item = DataSources.RTOScales.view()[i];\n const prev = DataSources.RTOScales.view()[i - 1];\n\n let itemValue = 0,\n prevValue = 0;\n\n const itemRto = e.items[0]['rtoValues_' + item.id],\n prevRto = e.items[0]['rtoValues_' + prev.id];\n\n if (itemRto != null) {\n itemValue = DataSources.OperationalImpactScales.get(itemRto).value;\n }\n\n if (prevRto != null) {\n prevValue = DataSources.OperationalImpactScales.get(prevRto).value;\n }\n\n if (itemValue < prevValue) {\n e.items[0].set('rtoValues_' + item.id, e.items[0]['rtoValues_' + prev.id]);\n }\n }\n }\n };\n\n super.setCustomDatasourceProperties(source);\n }\n\n setCustomGridProperties(grid) {\n if (this.readonly !== true) {\n grid.columns[grid.columns.length - 1].command = [{ name: 'edit' }];\n }\n\n grid.toolbar = grid.toolbar.slice(1);\n\n delete grid.pageable;\n\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n const data = grid.dataSource.data();\n const rtos = DataSources.RTOScales.data();\n\n const sum = {};\n $.each(data, (i, row) => {\n for (let i = 0; i < rtos.length; ++i) {\n if (sum[rtos[i].id] == null) {\n sum[rtos[i].id] = 0;\n }\n\n const q = DataSources.OperationalImpactQuestions.get(row.questionId);\n if (q.rtoIndicator === true) {\n if (DataSources.OperationalImpactScales.get(row['rtoValues_' + rtos[i].id]) == null) {\n continue;\n }\n sum[rtos[i].id] += DataSources.OperationalImpactScales.get(row['rtoValues_' + rtos[i].id]).value * (q.weight / this.totalWeight);\n }\n }\n });\n\n this.partitionRto = null;\n this.partitionMao = null;\n\n for (let i = 0; i < rtos.length; ++i) {\n if (this.partitionRto == null &&\n (sum[rtos[i].id] >= this.rtoTrigger || i === rtos.length - 1)) {\n this.partitionRto = rtos[i];\n }\n\n if (this.partitionMao == null &&\n (sum[rtos[i].id] >= this.maoTrigger || i === rtos.length - 1)) {\n this.partitionMao = rtos[i];\n }\n }\n\n const rtoFooter = $('#rtoFooter_' + this.partitionRto.id);\n rtoFooter.append('RTO Trigger: ' +\n this.partitionRto.translations[selectedLanguage].name + '');\n rtoFooter.closest('td')\n .css('background-color', this.partitionRto.color);\n\n const maoFooter = $('#rtoFooter_' + this.partitionMao.id);\n maoFooter.append('MAO Trigger: ' +\n this.partitionMao.translations[selectedLanguage].name + '');\n maoFooter.closest('td')\n .css('background-color', this.partitionMao.color);\n };\n\n super.setCustomGridProperties(grid);\n }\n\n scaleSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.OperationalImpactScales,\n });\n }\n}\n","import { selectedLanguage } from '../../../../main.js';\nimport DeploymentTabBase from './DeploymentTabBase.js';\nimport DataSources from '../../../../Core/datasources.js';\nimport { Helpers } from '../../../../Core/Helpers';\n\nexport default class DeploymentInternalContacts extends DeploymentTabBase {\n constructor(deployment, readonly) {\n super('Internal Contacts', 'deploymentInternalContacts', deployment, readonly, 'hasContacts');\n\n this.api = 'bc/deployments/' + deployment.id + '/DeploymentInternalContacts';\n\n this.confirmation = (e) => {\n return String.format('\\'{0}\\'', e.contact);\n };\n\n this.columns = [\n {\n title: 'Partition',\n binding: 'partitionId',\n required: true,\n template: (dataItem) => {\n const item = DataSources.AllPartitions.get(dataItem.partitionId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return 'Error... Please refresh page without saving';\n }\n },\n editor: (container, options) => this.partitionSelector(container, options),\n },\n {\n title: 'Contact',\n binding: 'contact',\n required: true,\n },\n {\n title: 'Email',\n binding: 'email',\n type: 'email',\n required: true,\n },\n {\n title: 'Phone (Work)',\n binding: 'phone1',\n required: true,\n },\n {\n title: 'Phone (Cell)',\n binding: 'phone2',\n },\n {\n title: 'Phone (Home)',\n binding: 'phone3',\n },\n ];\n }\n\n require() {\n return [DataSources.AllPartitions, DataSources.HierarchicalAllPartitions];\n }\n\n partitionSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownTree({\n placeholder: 'Select ...',\n height: 'auto',\n dataSource: DataSources.HierarchicalAllPartitions,\n valuePrimitive: true,\n dataTextField: 'name',\n dataValueField: 'id',\n loadOnDemand: false,\n filter: 'contains',\n });\n }\n}\n","import { DocumentFileFormat } from '@/dtos/all';\nimport DownloadService from '@/services/DownloadService';\nimport DataSources from '../../../../Core/datasources.js';\nimport { Helpers } from '../../../../Core/Helpers.js';\nimport Selectors from '../../../../Core/Selectors.js';\nimport { jwt, selectedLanguage, selectedMasterPlan } from '../../../../main.js';\nimport DeploymentTabBase from './DeploymentTabBase.js';\n\nexport default class DeploymentPersonnels extends DeploymentTabBase {\n constructor(deployment, readonly) {\n super('Personnel', 'deploymentPersonnel', deployment, readonly, 'hasContacts');\n\n this.api = 'bc/deployments/' + deployment.id + '/DeploymentPersonnel';\n\n this.confirmation = (e) => {\n return String.format('\\'{0} {1}\\'', e.lastName, e.firstName);\n };\n\n this.columns = [\n {\n title: 'Last Name',\n binding: 'lastName',\n required: true,\n defaultValue: 'New Last Name',\n sort: 'asc',\n },\n {\n title: 'First Name',\n binding: 'firstName',\n required: true,\n sort: 'asc',\n },\n {\n title: 'Position',\n binding: 'positionId',\n required: true,\n template: Selectors.PositionTemplate,\n editor: Selectors.PositionEditor,\n },\n {\n title: 'Position Description',\n binding: 'positionDescription',\n required: false,\n defaultValue: '',\n },\n {\n title: 'Email',\n binding: 'email',\n type: 'email',\n required: true,\n },\n {\n title: 'Phone (Work)',\n binding: 'phone1',\n },\n {\n title: 'Phone (Cell)',\n binding: 'phone2',\n },\n {\n title: 'Phone (Home)',\n binding: 'phone3',\n },\n {\n title: 'Recovery Responsible',\n binding: 'recoveryResponsible',\n type: 'boolean',\n defaultValue: false,\n },\n ];\n }\n\n require() {\n return [DataSources.Positions];\n }\n\n init() {\n if (this.deployment[this.question] === false) {\n return;\n }\n\n if (this.readonly === true) {\n for (let i = 0; i < this.columns.length; ++i) {\n this.columns[i].editable = false;\n }\n }\n\n // Remove hidden class\n $(this.li)\n .removeClass('hidden');\n\n const source = Helpers.createDataSource(\n selectedMasterPlan, this.api, jwt, this.columns, this.baseApi,\n this.errorCallBack, this.flatout, this.options,\n );\n\n source.schema.model.parentId = 'parentId';\n source.schema.model.expanded = true;\n\n this.setCustomDatasourceProperties(source);\n\n this.datasource = new kendo.data.TreeListDataSource(source);\n\n const cols = Helpers.createColumns(selectedMasterPlan, this.columns);\n if (this.readonly) {\n cols.splice(cols.length - 1, 1);\n } else {\n cols[cols.length - 1] = {\n command: ['edit', 'destroy', 'createChild'],\n width: 350,\n };\n }\n\n const grid = Helpers.getDefaultGrid(selectedMasterPlan, this.api, this.confirmation);\n\n if (this.readonly) {\n grid.toolbar = [];\n } else {\n grid.toolbar = [\n {\n name: 'create',\n text: 'New',\n }\n ];\n }\n\n grid.toolbar.push({\n name: 'export',\n text: 'Export',\n click: () => {\n //bc/deployments/' + deployment.id + '/DeploymentPersonnel\n const url = `/api/masterplans/${selectedMasterPlan.id}/bc/deployments/${this.deployment.id}/DeploymentPersonnel/Export?language=${selectedLanguage}`;\n $.ajax({\n url: url,\n method: 'GET',\n })\n .then(function (data) {\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Unknown,\n });\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($('.grid'), false);\n });\n }\n });\n\n grid.columns = cols;\n grid.dataSource = this.datasource;\n\n grid.editable = {\n mode: 'inline',\n move: true,\n };\n\n grid.dragend = (e) => {\n kendo.ui.progress($(this.grid), true);\n e.sender.dataSource.sync()\n .done(() => {\n kendo.ui.progress($(this.grid), false);\n })\n .fail(() => {\n\n });\n };\n\n this.setCustomGridProperties(grid);\n\n this.createMenu();\n\n $(this.grid)\n .off('mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')', this.disableButtonsOnEdit)\n .on('mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')', this.disableButtonsOnEdit);\n\n $(this.grid)\n .kendoTreeList(grid);\n }\n}\n","import DeploymentTabBase from './DeploymentTabBase.js';\nimport DataSources from '../../../../Core/datasources.js';\nimport { selectedMasterPlan, selectedLanguage } from '../../../../main.js';\nimport Selectors from '../../../../Core/Selectors.js';\nimport { Helpers } from '../../../../Core/Helpers.js';\nimport Constants from '../../../../Core/constants.js';\n\nexport default class DeploymentRisks extends DeploymentTabBase {\n constructor(deployment, readonly) {\n super(\n 'Risk Controls Self Assessment', 'deploymentRiskAssessments', deployment, readonly,\n 'hasRiskAssessment',\n );\n\n this.api = 'bc/deployments/' + deployment.id + '/DeploymentRiskAssessments';\n\n this.columns = [\n {\n title: 'Risk',\n binding: 'risk',\n field: 'risk',\n template: (dataItem) => {\n if (dataItem.riskId == null) {\n return Helpers.sanitizeHTML(dataItem.riskText);\n }\n\n return Helpers.sanitizeHTML(DataSources.GroupableRisks()\n .get(dataItem.riskId).name);\n },\n editor: (container, options) => this.riskEditor(container, options),\n editable: () => !this.readonly,\n },\n {\n title: 'Control Tools',\n binding: 'controlTools',\n editable: () => !this.readonly,\n },\n {\n title: 'Control Evaluation',\n binding: 'controlEvaluationId',\n defaultValue: null,\n required: true,\n template: (dataItem) => {\n const item = DataSources.RiskControlEvaluations.get(dataItem.controlEvaluationId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].controlEvaluation);\n } else {\n return '';\n }\n },\n editable: () => !this.readonly,\n editor: (container, options) => this.controlEvaluationSelector(container, options),\n },\n {\n title: 'Likelihood',\n binding: 'probabilityId',\n defaultValue: null,\n required: true,\n template: (dataItem) => {\n const item = DataSources.RiskProbabilities.get(dataItem.probabilityId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].occurrence);\n } else {\n return '';\n }\n },\n editable: () => !this.readonly,\n editor: (container, options) => this.probabilitySelector(container, options),\n },\n {\n title: 'Impact',\n binding: 'impacts',\n defaultValue: [],\n hidden: true,\n editor: (container, options) => this.qualitativeImpactsGrid(container, options),\n },\n {\n title: ' ',\n fieldName: 'riskLevelColor',\n width: 8,\n editable: () => false,\n editorHidden: true,\n },\n {\n title: 'Risk Level',\n binding: 'riskLevelId',\n template: (dataItem) => {\n if (dataItem.riskLevelId == null) {\n dataItem.riskLevelId = this.calculateRiskLevel(dataItem);\n }\n\n const item = DataSources.RiskLevels.get(dataItem.riskLevelId);\n\n if (item == null) {\n return '';\n } else {\n return '
    ' +\n Helpers.sanitizeHTML(item.translations[selectedLanguage].name) + '
    ';\n }\n },\n editor: (container, options) => {\n if (options.model.riskLevelId == null) {\n options.model.riskLevelId = this.calculateRiskLevel(options.model);\n }\n\n const item = DataSources.RiskLevels.get(options.model.riskLevelId);\n\n if (item == null) {\n $('
    ')\n .appendTo(container);\n } else {\n $('
    ' +\n Helpers.sanitizeHTML(item.translations[selectedLanguage].name) + '
    ')\n .appendTo(container);\n }\n },\n },\n {\n title: 'Risk Treatment',\n binding: 'riskTreatmentId',\n defaultValue: null,\n template: (dataItem) => {\n if (dataItem.riskTreatmentId == null) {\n return '';\n }\n\n const item = DataSources.RiskTreatments.get(dataItem.riskTreatmentId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n },\n editor: (container, options) => this.riskTreatmentSelector(container, options),\n editable: () => !this.readonly,\n },\n {\n title: 'Actions Plan',\n binding: 'actionPlan',\n editable: () => !this.readonly,\n },\n {\n title: 'Actions Plan Due Date',\n binding: 'actionPlanDueDate',\n template: (dataItem) => Selectors.DateTemplate(dataItem, 'actionPlanDueDate'),\n editor: (container, options) => Selectors.DatePicker(\n container, options,\n 'actionPlanDueDate',\n ),\n editable: () => !this.readonly,\n },\n {\n title: 'Implementation Status',\n binding: 'implementationScaleId',\n defaultValue: null,\n template: (dataItem) => {\n if (dataItem.implementationScaleId == null) {\n return '';\n }\n\n const item = DataSources.ImplementationScales.get(dataItem.implementationScaleId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n },\n editor: (container, options) => this.implementationStatusSelector(container, options),\n editable: () => () => {\n return (!this.readonly || this.deployment.status ===\n Constants.DeploymentStatus.Finished || this.deployment.status ===\n Constants.DeploymentStatus.AdminApproval);\n },\n },\n {\n title: 'Implementation Due Date',\n binding: 'implementationDueDate',\n template: (dataItem) => Selectors.DateTemplate(dataItem, 'implementationDueDate'),\n editor: (container, options) => Selectors.DatePicker(\n container, options,\n 'implementationDueDate',\n ),\n editable: () => !this.readonly,\n },\n ];\n\n this.impactColumns = [\n {\n title: 'Impact Area',\n binding: 'riskImpactAreaId',\n editable: () => false,\n template: (dataItem) => {\n const item = DataSources.RiskImpactAreas.get(dataItem.riskImpactAreaId);\n\n if (item != null) {\n const t = item.translations[selectedLanguage];\n\n return `${t.impact}`;\n }\n return '';\n },\n },\n {\n title: 'Impact Scale',\n binding: 'riskImpactAreaScaleId',\n editable: () => !this.readonly,\n template: (dataItem) => {\n if (dataItem.riskImpactAreaScaleId == null) {\n return '';\n }\n\n const item = DataSources.RiskImpactAreas.get(dataItem.riskImpactAreaId);\n\n for (let i = 0; i < item.impactAreaScales.length; ++i) {\n if (item.impactAreaScales[i].id === dataItem.riskImpactAreaScaleId) {\n const explanation = item.impactAreaScales[i].translations[selectedLanguage].explanation ||\n 'No Explanation';\n const scale = DataSources.RiskImpactScales.get(item.impactAreaScales[i].riskImpactScaleId).translations[selectedLanguage].name;\n\n return `${Helpers.sanitizeHTML(scale)}`;\n }\n }\n return '';\n },\n editor: (container, options) => this.riskImpactAreaScaleSelector(container, options),\n },\n ];\n }\n\n customInit(resolve, reject) {\n $.when(\n DataSources.GroupableRisks()\n .read(),\n DataSources.RiskImpactAreas.read(),\n DataSources.RiskImpactScales.read(),\n DataSources.RiskProbabilities.read(),\n DataSources.RiskLevels.read(),\n DataSources.RiskControlEvaluations.read(),\n DataSources.RiskTreatments.read(),\n DataSources.ImplementationScales.read(),\n )\n .done(() => {\n this.options.readOnly = false;\n super.customInit(resolve, reject);\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n });\n }\n\n setCustomGridProperties(grid) {\n grid.editable = 'popup';\n\n const edit = grid.edit;\n grid.edit = (e) => {\n edit.call(e.sender, e);\n\n const grid = e.sender;\n\n this.editing = grid.dataItem(grid.select());\n\n this.calculateRiskLevel(this.editing);\n };\n\n const databound = grid.dataBound;\n\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n const data = e.sender.items();\n\n $.each(data, (i, row) => {\n const dataItem = e.sender.dataItem(row);\n const risk = DataSources.RiskLevels.get(dataItem.riskLevelId);\n\n if (risk != null) {\n $('tr[data-uid=\"' + dataItem.uid + '\"] td:nth-child(6)')\n .css('background-color', risk.color || 'inherit');\n }\n });\n };\n\n if (this.readonly) {\n grid.columns = grid.columns.slice(0, grid.columns.length - 1);\n grid.toolbar = grid.toolbar.slice(1);\n }\n }\n\n riskEditor(container, options) {\n if (this.deployment.selfAssessmentType === 1) {\n options.model.riskAnswerType = 1;\n } else if (this.deployment.selfAssessmentType === 2) {\n options.model.riskAnswerType = 2;\n } else if (options.model.riskAnswerType == null) {\n options.model.riskAnswerType = 1;\n }\n\n console.log(this.deployment.selfAssessmentType);\n\n if (this.deployment.selfAssessmentType === 3) {\n $('')\n .appendTo(container);\n }\n\n if (this.deployment.selfAssessmentType === 1 || this.deployment.selfAssessmentType === 3) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n placeholder: 'Search...',\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n dataTextField: 'name',\n dataValueField: 'id',\n dataSource: DataSources.GroupableRisks(),\n });\n }\n\n if (this.deployment.selfAssessmentType === 3) {\n $('
    ')\n .appendTo(container);\n }\n\n if (this.deployment.selfAssessmentType === 2 || this.deployment.selfAssessmentType === 3) {\n $('')\n .appendTo(container);\n }\n\n if (this.deployment.selfAssessmentType === 1) { // registry\n $('input[name=\"riskId\"]').prop('required', true);\n } else if (this.deployment.selfAssessmentType === 2) { // text\n $('textarea[name=\"riskText\"]').prop('required', true);\n } else { // both\n const disableItems = (type) => {\n const risk = $('input[name=\"riskId\"]');\n const textarea = $('textarea[name=\"riskText\"]');\n\n if (parseInt(type) === 1) {\n risk.data('kendoDropDownList')\n .enable(true);\n risk.attr('required', true);\n\n textarea.attr('disabled', true);\n textarea.attr('required', false);\n } else {\n risk.data('kendoDropDownList')\n .enable(false);\n risk.attr('required', false);\n\n textarea.attr('disabled', false);\n textarea.attr('required', true);\n }\n };\n\n disableItems(options.model.riskAnswerType);\n\n $('input[name=\"riskAnswerType\"]')\n .off('change')\n .on('change', (e) => {\n disableItems($(e.target)\n .prop('value'));\n });\n }\n }\n\n controlEvaluationSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].controlEvaluation',\n dataValueField: 'id',\n dataSource: DataSources.RiskControlEvaluations,\n });\n }\n\n probabilitySelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].occurrence',\n dataValueField: 'id',\n dataSource: DataSources.RiskProbabilities,\n change: () => this.calculateRiskLevel(),\n });\n }\n\n riskTreatmentSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n optionLabel: Constants.Empty,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.RiskTreatments,\n });\n }\n\n implementationStatusSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n optionLabel: Constants.Empty,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.ImplementationScales,\n });\n }\n\n qualitativeImpactsGrid(container, data) {\n const model = Helpers.createModel(selectedMasterPlan, this.impactColumns, { readOnly: this.readonly });\n\n const cols = Helpers.createColumns(selectedMasterPlan, this.impactColumns, { readOnly: this.readonly });\n\n const grid = Helpers.getDefaultGrid(selectedMasterPlan, '', (e) => {\n return Helpers.sanitizeHTML(DataSources.RiskImpactAreas.get(e.riskImpactAreaId).translations[selectedLanguage].name);\n }, { readOnly: this.readonly });\n\n grid.columns = cols;\n\n grid.toolbar = [\n { template: 'Add' },\n ];\n\n grid.height = 200;\n\n grid.dataSource = {\n transport: {\n read: (options) => {\n options.success(data.model.impacts);\n },\n update: (options) => {\n data.model.dirty = true;\n options.success();\n },\n // thelei sigoura to create allios skaei...\n create: (options) => {\n data.model.dirty = true;\n options.success();\n },\n destroy: (options) => {\n data.model.dirty = true;\n options.success();\n },\n },\n pageSize: 10,\n schema: model,\n };\n\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n this.calculateRiskLevel();\n\n if (this.readonly !== true) {\n $('#DeploymentRisks-AddQualitativeImpact')\n .off('click')\n .on('click', () => this.addQualitativeImpact());\n }\n };\n\n $('
    ')\n .appendTo(container)\n .kendoGrid(grid);\n }\n\n riskImpactAreaScaleSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n template: (dataItem) => this.riskImpactAreaScaleTemplate(dataItem),\n valueTemplate: (dataItem) => this.riskImpactAreaScaleTemplate(dataItem),\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].severity',\n dataValueField: 'id',\n dataSource: DataSources.RiskImpactAreas.get(options.model.riskImpactAreaId).impactAreaScales,\n });\n }\n\n riskImpactAreaScaleTemplate(dataItem) {\n const explanation = dataItem.translations[selectedLanguage].explanation;\n\n const scale = DataSources.RiskImpactScales.get(dataItem.riskImpactScaleId).translations[selectedLanguage].name;\n\n return `${Helpers.sanitizeHTML(scale)}`;\n }\n\n addQualitativeImpact() {\n const grid = $('#qualitativeImpactsGrid')\n .data('kendoGrid');\n\n const content = '
    ';\n Helpers.showPopUp('Select Qualitative Impact', content, [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const impact = $('#qualitativeImpactsComboBox')\n .data('kendoDropDownList')\n .dataItem();\n\n // find minimum impact value and id\n const impactArea = DataSources.RiskImpactAreas.get(impact.id);\n\n let impactAreaScaleId = impactArea.impactAreaScales[0].id;\n let impactAreaScaleValue = impactArea.impactAreaScales[0].value;\n\n for (let i = 1; i < impactArea.impactAreaScales.length; ++i) {\n if (impactArea.impactAreaScales[i].value < impactAreaScaleValue) {\n impactAreaScaleId = impactArea.impactAreaScales[i].id;\n impactAreaScaleValue = impactArea.impactAreaScales[i].value;\n }\n }\n //\n\n if (impact != null) {\n grid.dataSource.add({\n riskImpactAreaId: impact.id,\n riskImpactAreaScaleId: impactAreaScaleId,\n });\n\n return true;\n }\n\n return false;\n },\n },\n {\n text: 'Cancel',\n action: () => {\n return true;\n },\n }]);\n\n const filters = [];\n const impacts = grid.dataSource.data();\n console.log(impacts);\n for (let i = 0; i < impacts.length; ++i) {\n filters.push({\n field: 'id',\n operator: 'neq',\n value: impacts[i].riskImpactAreaId,\n });\n }\n\n $('#qualitativeImpactsComboBox')\n .width(500)\n .kendoDropDownList({\n // template: template,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].impact',\n dataValueField: 'id',\n valuePrimitive: true,\n index: 0,\n dataSource: {\n data: DataSources.RiskImpactAreas.view(),\n filter: {\n logic: 'and',\n filters: filters,\n },\n sort: [\n {\n field: 'translations[\"' + selectedLanguage + '\"].impact',\n dir: 'asc',\n },\n ],\n },\n filter: 'contains',\n suggest: true,\n });\n }\n\n calculateRiskLevel(dataItem) {\n dataItem = dataItem || this.editing;\n\n if (dataItem == null) {\n return;\n }\n\n if (dataItem.probabilityId == null || dataItem.impacts.length === 0) {\n return '';\n }\n\n const probability = DataSources.RiskProbabilities.get(dataItem.probabilityId).value;\n let impact = 0;\n for (let i = 0; i < dataItem.impacts.length; ++i) {\n // impact values;\n const item = DataSources.RiskImpactAreas.get(dataItem.impacts[i].riskImpactAreaId);\n\n for (let j = 0; j < item.impactAreaScales.length; ++j) {\n if (item.impactAreaScales[j].id === dataItem.impacts[i].riskImpactAreaScaleId) {\n const scale = DataSources.RiskImpactScales.get(item.impactAreaScales[j].riskImpactScaleId).value;\n if (scale > impact) {\n impact = scale;\n }\n }\n }\n }\n\n const risk = probability * impact;\n const riskLevels = DataSources.RiskLevels.view();\n let i = 0;\n for (; i < riskLevels.length; ++i) {\n if (i === riskLevels.length - 1) {\n break;\n }\n\n if (risk < riskLevels[i].value) {\n break;\n }\n }\n\n const box = $('label[for=riskLevelId]')\n .parent()\n .next('div.k-edit-field')\n .children('.color-element');\n\n box.css('background-color', riskLevels[i].color);\n box.text(riskLevels[i].translations[selectedLanguage].name);\n\n return riskLevels[i].id;\n }\n}\n","import { selectedMasterPlan, selectedLanguage } from '../../../../main.js';\n\nimport DeploymentSurveys from './DeploymentSurveys.js';\nimport DeploymentAssets from './DeploymentAssets.js';\nimport DeploymentApplications from './DeploymentApplications.js';\nimport DeploymentExternalContacts from './DeploymentExternalContacts.js';\nimport DeploymentFinancialImpact from './DeploymentFinancialImpact.js';\nimport DeploymentInterdependencies from './DeploymentInterdependencies.js';\nimport DeploymentOperationalImpact from './DeploymentOperationalImpact.js';\nimport DeploymentInternalContacts from './DeploymentInternalContacts.js';\nimport DeploymentPersonnel from './DeploymentPersonnel.js';\nimport DeploymentRisks from './DeploymentRisks.js';\nimport DeploymentQuestionnaireFormBase from '../../../DeploymentQuestionnaireFormBase.js';\nimport { Helpers } from '../../../../Core/Helpers.js';\nimport DataSources from '../../../../Core/datasources';\n\nexport default class DeploymentTabs extends DeploymentQuestionnaireFormBase {\n constructor(deployment) {\n super(\n deployment,\n '/api/masterplans/' + selectedMasterPlan.id + '/bc/Deployments/' + deployment.id,\n 'deploymentTabs',\n 'BCM - \\'{0}\\'',\n );\n\n this.tabs = [];\n }\n\n init() {\n return new Promise(() => {\n // const div = $(this.grid);\n\n $('#deploymentTabStrip')\n .kendoTabStrip({\n height: 'inherit',\n animation: {\n open: {\n effects: 'fadeIn',\n },\n },\n });\n\n $.get({\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/Deployments/' + this.deployment.id,\n dataType: 'json',\n })\n .done((data) => {\n this.deployment = data;\n\n const progress = $('#spinner')\n .kendoProgressBar({\n type: 'percent',\n animation: {\n duration: 100,\n },\n })\n .data('kendoProgressBar');\n\n this.tabs.push(new DeploymentSurveys(this.deployment, this.readonly));\n this.tabs.push(new DeploymentOperationalImpact(this.deployment, this.readonly));\n this.tabs.push(new DeploymentAssets(this.deployment, this.readonly));\n this.tabs.push(new DeploymentApplications(this.deployment, this.readonly));\n this.tabs.push(new DeploymentExternalContacts(this.deployment, this.readonly));\n this.tabs.push(new DeploymentFinancialImpact(this.deployment, this.readonly));\n this.tabs.push(new DeploymentInterdependencies(this.deployment, this.readonly));\n this.tabs.push(new DeploymentInternalContacts(this.deployment, this.readonly));\n this.tabs.push(new DeploymentPersonnel(this.deployment, this.readonly));\n this.tabs.push(new DeploymentRisks(this.deployment, this.readonly));\n\n progress.value(0);\n\n let required = [];\n for (let i = 0; i < this.tabs.length; ++i) {\n required.push(...this.tabs[i].require());\n }\n\n required = [...new Set(required)];\n\n const promises = [];\n for (let i = 0; i < required.length; ++i) {\n promises.push(required[i].read());\n }\n\n let counter = 0;\n const max = promises.length;\n for (let i = 0; i < promises.length; ++i) {\n promises[i].then(() => {\n ++counter;\n progress.value(100 * counter / max);\n });\n }\n\n Promise.all(promises)\n .then(() => {\n if (this.cancel === true) {\n return;\n }\n\n if (this.deployment.message != null) {\n Helpers.showPopUp2({\n title: 'Approval Message',\n content: Helpers.sanitizeHTML(this.deployment.message)\n .replace(/\\n/g, '
    '),\n });\n } else if (this.deployment.rejectMessage != null) {\n Helpers.showPopUp2({\n title: 'Deployment was rejected',\n content: Helpers.sanitizeHTML(this.deployment.rejectMessage)\n .replace(/\\n/g, '
    '),\n });\n }\n\n // initialize tabs\n for (let i = 0; i < this.tabs.length; ++i) {\n if (this.tabs[i] !== undefined) {\n promises.push(this.tabs[i].init());\n }\n }\n\n $('#loader')\n .addClass('hidden');\n\n // unhide tabstrip and select first li (surveys)\n const tabstrip = $('#deploymentTabStrip');\n tabstrip.removeClass('hidden');\n tabstrip.data('kendoTabStrip')\n .select('li:first');\n });\n });\n\n // $(window).on(\"resize\", this.resize);\n });\n }\n\n destroy() {\n this.cancel = true;\n\n for (const t in this.tabs) {\n this.tabs[t].destroy();\n }\n\n this.hide();\n\n const strip = $('#deploymentTabStrip').data('kendoTabStrip');\n if(strip != null){\n strip.destroy();\n }\n\n $('#loader').addClass('hidden');\n\n $('#deploymentTabStrip').addClass('hidden');\n }\n\n menuItem(item) {\n if (item == null) {\n return;\n }\n\n $('.dropdown-content')\n .hide();\n\n if (item === 'save') {\n this.saveChanges();\n } else if (item === 'discard') {\n this.discardChanges();\n } else if (item === 'close') {\n this.closeDeployment();\n }\n }\n\n async approveDeployment() {\n let operationalImpact = null,\n assets = null,\n applications = null;\n\n const lowerAssets = [];\n const lowerApplications = [];\n\n for (let i = 0; i < this.tabs.length; ++i) {\n if (this.tabs[i].div === '#deploymentOperationalImpact') {\n operationalImpact = this.tabs[i];\n }\n\n if (this.tabs[i].div === '#deploymentAssets') {\n assets = this.tabs[i];\n }\n\n if (this.tabs[i].div === '#deploymentApplications') {\n applications = this.tabs[i];\n }\n }\n\n if (operationalImpact != null && operationalImpact.partitionRto != null) {\n if (assets != null && assets.datasource != null) {\n const rtoValues = [];\n\n // sorted by value\n const rtoScales = DataSources.RTOScales.view();\n for (let i = 0; i < rtoScales.length; ++i) {\n // sorted by value\n if (rtoScales[i].value < operationalImpact.partitionRto.value) {\n rtoValues.push(rtoScales[i]);\n } else {\n break;\n }\n }\n\n const allAssets = assets.datasource.data();\n\n for (let i = 0; i < allAssets.length; ++i) {\n for (let j = 0; j < rtoValues.length; ++j) {\n const value = allAssets[i][`rtoValues_${rtoValues[j].id}`];\n if (value != null && value > 0) {\n lowerAssets.push(allAssets[i]);\n break;\n }\n }\n }\n }\n\n if (applications != null && applications.datasource != null) {\n const rtoValues = [];\n\n // sorted by value\n const rtoScales = DataSources.RtoApplicationScales.view();\n for (let i = 0; i < rtoScales.length; ++i) {\n // sorted by value\n if (rtoScales[i].value < operationalImpact.partitionRto.value) {\n rtoValues.push(rtoScales[i]);\n } else {\n break;\n }\n }\n\n const allApplications = applications.datasource.data();\n\n for (let i = 0; i < allApplications.length; ++i) {\n for (let j = 0; j < rtoValues.length; ++j) {\n const value = allApplications[i].rtoId;\n if (value != null && value === rtoValues[j].id) {\n lowerApplications.push(allApplications[i]);\n break;\n }\n }\n }\n }\n }\n\n if (lowerAssets.length === 0 && lowerApplications.length === 0) {\n super.approveDeployment();\n } else {\n let content = `There are discrepancies between Activity RTO (${Helpers.sanitizeHTML(operationalImpact.partitionRto.translations[selectedLanguage].name)}) and the minimum required RTOs for:`;\n\n if (lowerAssets.length > 0) {\n let txt = '

    Assets:
    ';\n for (let i = 0; i < lowerAssets.length - 1; ++i) {\n txt += Helpers.sanitizeHTML(DataSources.Assets.get(lowerAssets[i].assetId).translations[selectedLanguage].name) +\n ', ';\n if (txt.length > 80) {\n txt += '
    ';\n }\n }\n\n txt += Helpers.sanitizeHTML(DataSources.Assets.get(lowerAssets[lowerAssets.length - 1].assetId).translations[selectedLanguage].name);\n\n content += txt;\n }\n\n if (lowerApplications.length > 0) {\n let txt = '

    Applications:
    ';\n for (let i = 0; i < lowerApplications.length - 1; ++i) {\n txt += Helpers.sanitizeHTML(DataSources.Applications.get(lowerApplications[i].applicationId).translations[selectedLanguage].name) + ', ';\n if (txt.length > 80) {\n txt += '
    ';\n }\n }\n\n txt += Helpers.sanitizeHTML(DataSources.Applications.get(lowerApplications[lowerApplications.length -\n 1].applicationId).translations[selectedLanguage].name);\n\n content += txt;\n }\n\n content += '

    Do you want to continue?';\n\n Helpers.showPopUp2({\n title: 'Approve Deployment',\n content: content,\n actions: [\n {\n text: 'Yes',\n primary: true,\n action: () => {\n super.approveDeployment();\n },\n },\n {\n text: 'No',\n action: () => {\n return true;\n },\n },\n ],\n });\n }\n }\n}\n","import FormBase from '../FormBase.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport { selectedMasterPlan } from '../../main.js';\n\nexport default class ProjectManagement extends FormBase {\n constructor() {\n super('Project Management', 'general');\n this.api = '';\n\n this.columns = [];\n }\n\n error(e) {\n if (e.xhr != null) {\n e.xhr.responseJSON = e.xhr.responseJSON || {};\n\n if (e.xhr.status === 403 || e.xhr.status === 401) {\n if (e.xhr.status === 401 && e.xhr.responseJSON.Message === 'HOTP Failed') {\n Helpers.showError('User Authentication failed. Multiple loggins are not allowed');\n Helpers.logout();\n } else {\n Helpers.showError('Access Denied');\n }\n } else {\n Helpers.showError(e.xhr.responseText);\n }\n }\n\n if (e.errors != null) {\n if (Array.isArray(e.errors)) {\n Helpers.showError(e.errors.join('
    '), '');\n } else {\n Helpers.showError(e.errors, '');\n }\n }\n }\n\n initDone() {\n const baseApi = `/api/masterplans/${selectedMasterPlan.id}/bc/`;\n const tasksApi = baseApi + 'ProjectManagementTasks';\n const dependenciesApi = baseApi + 'ProjectManagementDependencies';\n\n const tasksDataSource = new kendo.data.GanttDataSource({\n transport: {\n read: {\n type: 'GET',\n url: tasksApi,\n dataType: 'json',\n },\n create: {\n url: tasksApi,\n type: 'POST',\n dataType: 'json',\n contentType: 'application/json',\n },\n update: {\n url: function (item) {\n return tasksApi + '/' + item.id;\n },\n type: 'PUT',\n dataType: 'json',\n contentType: 'application/json',\n },\n destroy: {\n url: function (item) {\n return tasksApi + '/' + item.id;\n },\n type: 'DELETE',\n dataType: 'json',\n },\n parameterMap: function (data, type) {\n if (type === 'create' || type === 'update') {\n return JSON.stringify(data);\n }\n },\n },\n schema: {\n model: {\n id: 'id',\n fields: {\n id: { type: 'number', defaultValue: 0 },\n orderId: { from: 'order', type: 'number', defaultValue: 0 },\n parentId: { type: 'number', defaultValue: null, validation: { required: true } },\n start: { type: 'date' },\n end: { type: 'date' },\n title: { defaultValue: '', type: 'string', validation: { required: true } },\n percentComplete: { from: 'progress', type: 'number' },\n summary: { type: 'boolean', defaultValue: true },\n expanded: { type: 'boolean', defaultValue: true },\n },\n },\n },\n error: this.error,\n });\n\n $(this.grid).kendoGantt({\n dataSource: tasksDataSource,\n dependencies: {\n transport: {\n read: {\n type: 'GET',\n url: dependenciesApi,\n dataType: 'json',\n },\n create: {\n url: dependenciesApi,\n type: 'POST',\n dataType: 'json',\n contentType: 'application/json',\n },\n update: {\n url: function (item) {\n return dependenciesApi + '/' + item.id;\n },\n type: 'PUT',\n dataType: 'json',\n contentType: 'application/json',\n },\n destroy: {\n url: function (item) {\n return dependenciesApi + '/' + item.id;\n },\n type: 'DELETE',\n dataType: 'json',\n },\n parameterMap: function (data, type) {\n if (type === 'create' || type === 'update') {\n return JSON.stringify(data);\n }\n },\n },\n error: this.error,\n schema: {\n model: {\n id: 'id',\n fields: {\n id: { type: 'number', defaultValue: 0 },\n predecessorId: { from: 'predecessorId', type: 'number' },\n successorId: { from: 'successorId', type: 'number' },\n type: { from: 'type', type: 'number' },\n },\n },\n },\n },\n\n resizable: true,\n columnResizeHandleWidth: 6,\n views: [\n {\n type: 'week',\n },\n {\n type: 'month',\n },\n {\n type: 'year',\n selected: true,\n },\n ],\n\n columns: [\n { field: 'title', title: 'Title', editable: true, sortable: true },\n { field: 'start', title: 'Start Time', format: '{0:dd/MM/yyyy}', width: 110, editable: true, sortable: true },\n { field: 'end', title: 'End Time', format: '{0:dd/MM/yyyy}', width: 110, editable: true, sortable: true },\n ],\n height: '650px',\n\n snap: false,\n\n // dataSource: ,\n });\n\n // $(this.grid).kendoGantt({\n // dataSource: {\n // transport: {\n // read: {\n // type: 'GET',\n // url: tasksApi,\n // dataType: 'json',\n // },\n // create: {\n // url: tasksApi,\n // type: 'POST',\n // dataType: 'json',\n // contentType: 'application/json',\n // },\n // update: {\n // url: function (item) {\n // return tasksApi + '/' + item.id;\n // },\n // type: 'PUT',\n // dataType: 'json',\n // contentType: 'application/json',\n // },\n // destroy: {\n // url: function (item) {\n // return tasksApi + '/' + item.id;\n // },\n // type: 'DELETE',\n // dataType: 'json',\n // },\n // },\n // schema: {\n // model: {\n // id: 'id',\n // fields: {\n // id: { from: 'id', type: 'number' },\n // orderId: { from: 'order', type: 'number', validation: { required: true } },\n // parentId: { from: 'parentId', type: 'number', validation: { required: true } },\n // start: { from: 'start', type: 'date' },\n // end: { from: 'end', type: 'date' },\n // title: { from: 'title', defaultValue: '', type: 'string', validation: { required: true } },\n // percentComplete: { from: 'progress', type: 'number' },\n // summary: { from: 'summary' },\n // expanded: { from: 'expanded' },\n // },\n // },\n // },\n // },\n\n // views: [\n // 'week',\n // { type: 'month', selected: true },\n // 'year',\n // ],\n\n // columns: [\n // { field: 'title', title: 'Title', editable: true, sortable: true },\n // { field: 'start', title: 'Start Time', format: '{0:dd/MM/yyyy}', width: 100, editable: true, sortable: true },\n // { field: 'end', title: 'End Time', format: '{0:dd/MM/yyyy}', width: 100, editable: true, sortable: true },\n // ],\n // height: 700,\n\n // snap: true,\n // });\n }\n\n customInit(resolve) {\n resolve();\n }\n\n destroy() {\n const div = $(this.grid);\n const data = div.data('kendoGantt');\n\n super.destroy(data);\n }\n}\n","import FormBase from '../FormBase.js';\nimport { selectedLanguage } from '../../main.js';\nimport { Helpers } from '../../Core/Helpers';\n\nexport default class IsraRiskManagementControls extends FormBase {\n constructor(riskManagement) {\n super(`'${riskManagement.translations[selectedLanguage].name}' Controls`, 'general');\n this.api = 'isra/RiskManagements/' + riskManagement.id + '/Controls';\n\n this.columns = [\n {\n title: 'Id',\n binding: 'controlId',\n editable: false,\n width: 50,\n },\n {\n title: 'Question',\n binding: 'controlId',\n editable: false,\n template: (dataItem) => {\n return Helpers.sanitizeHTML(dataItem.translations[selectedLanguage].question);\n },\n },\n {\n title: 'Recommended Actions',\n binding: 'recommendedActions',\n required: true,\n translatable: true,\n },\n {\n title: 'Comments',\n binding: 'comment',\n required: false,\n translatable: true,\n },\n {\n title: 'C',\n binding: 'confidentiality',\n type: 'boolean',\n required: true,\n defaultValue: true,\n width: 45,\n },\n {\n title: 'I',\n binding: 'integrity',\n type: 'boolean',\n required: true,\n defaultValue: true,\n width: 45,\n },\n {\n title: 'A',\n binding: 'availability',\n type: 'boolean',\n required: true,\n defaultValue: true,\n width: 45,\n },\n ];\n\n delete this.menu.delete;\n }\n\n setCustomGridProperties(grid) {\n // remove delete\n grid.toolbar.splice(0, 1);\n grid.columns[grid.columns.length - 1].command = ['edit'];\n }\n\n require() {\n return [];\n }\n}\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./empty-layout.vue?vue&type=style&index=0&id=47b928c7&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./empty-layout.vue?vue&type=style&index=0&id=47b928c7&scoped=true&lang=css&\"","import FormBase from '../FormBase.js';\nimport { selectedMasterPlan, selectedLanguage } from '../../main.js';\nimport { Helpers } from '../../Core/Helpers.js';\n\nexport default class VersionableFormBase extends FormBase {\n constructor(title, divName, options = { readOnly: false }) {\n super(title, divName, options);\n\n this.showArchived = false;\n this.archivedFetched = false;\n\n this.currentFilter = {\n logic: 'and',\n filters: [],\n };\n\n this.constantFilter = null;\n\n this.options.get = { urlParameters: { archived: false } };\n }\n\n static versionPrototype() {\n return 'v.' + new Date().toJSON().slice(0, 10).replace(/-/g, '-');\n }\n\n setFilter({ name, filters, logic = 'and' } = {}) {\n for (let i = 0; i < this.currentFilter.filters.length; ++i) {\n if (this.currentFilter.filters[i].name === name) {\n this.currentFilter.filters.splice(i, 1);\n break;\n }\n }\n\n this.currentFilter.filters.push({\n name,\n filters,\n logic,\n });\n }\n\n removeFilter(name) {\n if (this.currentFilter != null) {\n for (let i = 0; i < this.currentFilter.filters.length; ++i) {\n if (this.currentFilter.filters[i].name === name) {\n this.currentFilter.filters.splice(i, 1);\n break;\n }\n }\n }\n }\n\n setCustomDatasourceProperties(source) {\n source.group = { field: 'versionRootId' };\n\n this.setFilter({\n name: 'archived',\n filters: [\n { field: 'archived', operator: 'eq', value: this.showArchived },\n ],\n });\n\n source.filter = this.currentFilter;\n\n const requestEnd = source.requestEnd;\n source.requestEnd = (e) => {\n if (requestEnd != null) {\n requestEnd.call(e.sender, e);\n }\n\n if (e.type === 'update' && e.response && e.response.id === e.response.versionRootId) {\n e.sender.read();\n $(this.grid).data('kendoGrid').refresh();\n }\n };\n }\n\n selectedItemChanged(selectedItem) {\n if (selectedItem != null) {\n $('#itemVersionNew').show();\n\n if (selectedItem.archived) {\n $('#itemVersionUnarchive').show();\n $('#itemVersionArchive').hide();\n } else {\n $('#itemVersionArchive').show();\n $('#itemVersionUnarchive').hide();\n }\n\n $('#questionnaireDuplicate').show();\n } else {\n $('#itemVersionNew').hide();\n $('#itemVersionArchive').hide();\n $('#itemVersionUnarchive').hide();\n }\n }\n\n setCustomGridProperties(grid) {\n super.setCustomGridProperties(grid);\n\n grid.editable = 'popup';\n\n if (grid.toolbar == null) {\n grid.toolbar = [];\n }\n\n grid.toolbar.push(\n { template: ' ' },\n { template: 'Show Archived Versions' },\n { template: 'Hide Archived Versions' },\n { template: ' ' },\n { template: 'New Version' },\n { template: 'Archive' },\n { template: 'Restore from Archive' },\n );\n }\n\n dataBound(grid, data) {\n super.dataBound(grid, data);\n\n $.each(data, function (i, row) {\n if (row.archived) {\n $('tr[data-uid=\"' + row.uid + '\"]').addClass('archived');\n }\n });\n }\n\n newVersionPopupItems() {\n }\n\n newVersionUrlGenerator({ mp, api, id, version }) {\n return `/api/masterplans/${mp}/${api}/${id}/newVersion?version=${version}`;\n }\n\n newVersionPrepostChecks() {\n const version = $('#version').val();\n if (!version) {\n throw new Error('Version is required');\n }\n }\n\n getItemName(item) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n }\n\n firstDataBound(grid, data) {\n super.firstDataBound(grid, data);\n\n // console.log('this.firstDataBound');\n\n grid.hideColumn('archived');\n\n $('#itemVersionNew')\n .off('click')\n .on('click', () => {\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select an item to add new version');\n return;\n }\n\n const popup = [\n {\n title: 'Previous Version:',\n editor: `${selectedItem.version}`,\n },\n {\n title: 'New Version:',\n editor: '',\n },\n ];\n\n this.newVersionPopupItems(selectedItem, popup);\n\n let content = '';\n for (let i = 0; i < popup.length; ++i) {\n if (popup[i].content != null) {\n content += ``;\n } else {\n content += ``;\n }\n }\n content += '';\n\n Helpers.showPopUp2({\n title: `New Version for '${this.getItemName(selectedItem)}'`,\n content,\n initOpen: () => {\n kendo.ui.progress($(this.grid), true);\n\n for (let i = 0; i < popup.length; ++i) {\n if (popup[i].actions != null && typeof popup[i].actions === 'function') {\n popup[i].actions();\n }\n }\n\n $('#version').val(VersionableFormBase.versionPrototype());\n },\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const version = $('#version').val();\n\n try {\n this.newVersionPrepostChecks();\n } catch (error) {\n Helpers.showError(error);\n return false;\n }\n\n const post = this.newVersionUrlGenerator({ mp: selectedMasterPlan.id, api: this.api, id: selectedItem.id, version: version });\n\n $.post(post)\n .done(() => {\n this.datasource.read().always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n const grid = $(this.grid).data('kendoGrid');\n grid.refresh();\n })\n .fail((error) => {\n Helpers.showError(error.responseText, 'New Version failed');\n kendo.ui.progress($(this.grid), false);\n });\n },\n },\n {\n text: 'Cancel',\n action: () => {\n kendo.ui.progress($(this.grid), false);\n },\n },\n ],\n });\n });\n\n $('#itemVersionArchive')\n .off('click')\n .on('click', () => {\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select an item to archive');\n return;\n }\n\n const content = `
    Are you sure you want to archive \"${selectedItem.translations[selectedLanguage].name}\" (Version: ${selectedItem.version})?
    `;\n\n Helpers.showPopUp2({\n title: 'Archive Version',\n content: content,\n initOpen: () => {\n kendo.ui.progress($(this.grid), true);\n $('#popupContent').text();\n },\n actions: [\n {\n text: 'Yes',\n primary: true,\n action: () => {\n $.post(`/api/masterplans/${selectedMasterPlan.id}/${this.api}/${selectedItem.id}/archive`)\n .done(() => {\n this.datasource.read().always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n const grid = $(this.grid).data('kendoGrid');\n grid.refresh();\n })\n .fail((error) => {\n Helpers.showError(error.responseText, 'Archive failed');\n kendo.ui.progress($(this.grid), false);\n });\n },\n },\n {\n text: 'No',\n action: () => {\n kendo.ui.progress($(this.grid), false);\n },\n },\n ],\n });\n });\n\n $('#itemVersionUnarchive')\n .off('click')\n .on('click', () => {\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select an item to remove from archive');\n return;\n }\n\n const content = `
    Are you sure you want to remove from archive \"${selectedItem.translations[selectedLanguage].name}\" (Version: ${selectedItem.version})?
    `;\n\n Helpers.showPopUp2({\n title: 'Remove from archive',\n content: content,\n initOpen: () => {\n kendo.ui.progress($(this.grid), true);\n $('#popupContent').text();\n },\n actions: [\n {\n text: 'Yes',\n primary: true,\n action: () => {\n $.post(`/api/masterplans/${selectedMasterPlan.id}/${this.api}/${selectedItem.id}/unarchive`)\n .done(() => {\n this.datasource.read().always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n const grid = $(this.grid).data('kendoGrid');\n grid.refresh();\n })\n .fail((error) => {\n Helpers.showError(error.responseText, 'Removing from archive failed');\n kendo.ui.progress($(this.grid), false);\n });\n },\n },\n {\n text: 'No',\n action: () => {\n kendo.ui.progress($(this.grid), false);\n },\n },\n ],\n });\n });\n\n $('#itemVersionShowArchived')\n .off('click')\n .on('click', () => {\n this.showArchived = true;\n $(this.grid).data('kendoGrid').showColumn('archived');\n\n if (this.archivedFetched === false) {\n this.archivedFetched = true;\n this.options.get.urlParameters.archived = true;\n\n this.createDataSource();\n\n $(this.grid).data('kendoGrid').setDataSource(this.datasource);\n }\n\n this.removeFilter('archived');\n\n // console.log(this.currentFilter);\n this.datasource.filter(this.currentFilter);\n\n $('#itemVersionShowArchived').hide();\n $('#itemVersionHideArchived').show();\n });\n\n $('#itemVersionHideArchived')\n .off('click')\n .on('click', () => {\n this.showArchived = false;\n\n $(this.grid).data('kendoGrid').hideColumn('archived');\n\n this.setFilter({\n name: 'archived',\n filters: [\n { field: 'archived', operator: 'neq', value: true },\n ],\n });\n\n // console.log(this.currentFilter);\n this.datasource.filter(this.currentFilter);\n\n $('#itemVersionShowArchived').show();\n $('#itemVersionHideArchived').hide();\n });\n }\n}\n","import { DocumentFileFormat } from '@/dtos/all';\nimport DownloadService from '@/services/DownloadService';\nimport Constants from '../../Core/constants.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport { selectedLanguage, selectedMasterPlan, toggleAppear } from '../../main.js';\nimport FormBase from '../FormBase.js';\n\nexport default class IsraRiskManagementAssessmentReview extends FormBase {\n constructor(deployment) {\n super(`Review '${deployment.translations[selectedLanguage].name}' Answers`, 'general');\n\n this.api = 'isra/RiskManagements/' + deployment.id + '/AssessmentReview';\n this.deployment = deployment;\n\n this.options.errorCallBack = {\n update: (e) => {\n if (e.status === 200) {\n if (this.deployment.status > Constants.RiskManagementStatus.ReadyForTreatment) {\n $('#Review-Accept')\n .removeClass('k-state-disabled')\n .off('click')\n .on('click', () => this.acceptReview());\n $('#Review-Accept span')\n .text('Accept Review');\n\n this.deployment.questionnairesReviewed = false;\n }\n } else {\n $(this.grid)\n .data('kendoGrid')\n .cancelChanges();\n }\n },\n };\n\n this.columns = [\n {\n title: 'Risk',\n binding: 'riskId',\n required: true,\n editable: false,\n template: (dataItem) => {\n return Helpers.sanitizeHTML(dataItem.risk.translations[selectedLanguage].name);\n },\n datasource: DataSources.IsraRisks,\n sortField: 'translations.' + selectedLanguage + '.name',\n },\n\n {\n title: 'C',\n binding: 'confidentiality',\n defaultValue: false,\n type: 'boolean',\n collapse: true,\n },\n {\n title: 'I',\n binding: 'integrity',\n defaultValue: false,\n type: 'boolean',\n collapse: true,\n },\n {\n title: 'A',\n binding: 'availability',\n defaultValue: false,\n type: 'boolean',\n collapse: true,\n },\n\n {\n title: 'Default
    Likelihood',\n binding: 'defaultLikelihood',\n defaultValue: 6,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 20,\n step: 0.1,\n },\n collapse: true,\n },\n {\n title: 'Profile
    Likelihood Drop',\n binding: 'profileDrop',\n collapse: true,\n editable: () => false,\n },\n {\n title: 'Likelihood
    Reduction',\n binding: 'probabilityReduction',\n defaultValue: 1,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 1,\n step: 0.1,\n },\n format: '{0:p2}',\n collapse: true,\n },\n {\n title: 'Impact
    Reduction',\n binding: 'impactReduction',\n defaultValue: 1,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 1,\n step: 0.1,\n },\n format: '{0:p2}',\n collapse: true,\n },\n {\n title: 'Inherent
    Risk (LxI)',\n binding: 'inherentRisk',\n sortable: false,\n collapse: true,\n editable: () => false,\n template: (dataItem) => {\n return dataItem.inherentRisk;\n },\n },\n {\n title: 'Current
    Risk (LxI)',\n binding: 'currentRisk',\n sortable: false,\n collapse: true,\n editable: () => false,\n template: (dataItem) => {\n return dataItem.currentRisk;\n },\n },\n {\n title: 'Best Case
    Risk (LxI)',\n binding: 'bestCaseRisk',\n sortable: false,\n collapse: true,\n editable: () => false,\n template: (dataItem) => {\n return dataItem.bestCaseRisk;\n },\n },\n ];\n\n this.answerColumns = [\n {\n title: 'Id',\n fieldName: 'controlId',\n editable: () => false,\n collapse: true,\n template: (dataItem) => {\n const item = this.riskManagementControls.get(dataItem.riskManagementControlId);\n\n if (item == null) {\n Helpers.showError(`Unable to find control with id: ${item.riskManagementControlId}`);\n return '';\n }\n\n return Helpers.sanitizeHTML(item.controlId);\n },\n },\n {\n title: 'Control',\n fieldName: 'control',\n editable: false,\n template: (dataItem) => {\n const item = this.riskManagementControls.get(dataItem.riskManagementControlId);\n\n if (item == null) {\n Helpers.showError(`Unable to find control with id: ${item.riskManagementControlId}`);\n return '';\n }\n\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].question);\n },\n datasource: this.riskManagementControls,\n sortField: 'translations.' + selectedLanguage + '.question',\n sortId: 'controlId',\n },\n {\n title: 'Answer',\n binding: 'newAnswerId',\n sortable: false,\n width: '150px',\n sortField: 'translations.' + selectedLanguage + '.answer',\n template: (dataItem) => {\n if (dataItem.newAnswerId == null) {\n return ' ';\n }\n const answer = DataSources.IsraAnswers.get(dataItem.newAnswerId);\n\n if (answer == null) {\n return ' ';\n }\n\n return Helpers.sanitizeHTML(answer.translations[selectedLanguage].answer);\n },\n editor: (container, options) => this.answerSelector(container, options),\n datasource: DataSources.IsraAnswers,\n },\n {\n title: 'Answer Comments',\n binding: 'comments',\n editable: () => true,\n sortable: false,\n },\n {\n title: 'Impact',\n binding: 'impactWeight',\n defaultValue: 0,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 20,\n step: 1,\n },\n width: '100px',\n },\n {\n title: 'Likelihood',\n binding: 'probabilityWeight',\n defaultValue: 0,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 20,\n step: 1,\n },\n width: '100px',\n },\n ];\n\n this.menu = {\n edit: this.menu.edit,\n\n sep1: {\n cssClass: 'k-separator',\n },\n\n // resetValues: {\n // title: 'Reset Values',\n // action: (e) => {\n // const item = $(e.target.closest('.k-grid')).data(\"kendoGrid\").dataItem(e.target);\n // this.resetRiskValues(item);\n // }\n // },\n // resetAnswers: {\n // title: 'Reset Answers',\n // action: (e) => {\n // const item = $(e.target.closest('.k-grid')).data(\"kendoGrid\").dataItem(e.target);\n // this.resetRiskAnswers(item);\n // }\n // },\n // sep2: {\n // cssClass: 'k-separator'\n // },\n // applyValues: {\n // title: 'Apply Values',\n // action: (e) => {\n // const item = $(e.target.closest('.k-grid')).data(\"kendoGrid\").dataItem(e.target);\n // this.applyRiskValues(item);\n // }\n // },\n };\n\n this.answersMenu = {\n edit: this.menu.edit,\n\n // sep1: {\n // cssClass: 'k-separator'\n // },\n //\n // resetValues: {\n // title: 'Reset Values',\n // action: (e) => {\n // const item = $(e.target.closest('.k-grid')).data(\"kendoGrid\").dataItem(e.target);\n // this.resetRiskControlValues(item);\n // }\n // },\n // applyValues: {\n // title: 'Apply Values',\n // action: (e) => {\n // const item = $(e.target.closest('.k-grid')).data(\"kendoGrid\").dataItem(e.target);\n // this.applyRiskControlValues(item);\n // }\n // },\n //\n // sep2: {\n // cssClass: 'k-separator'\n // },\n //\n // resetAnswer: {\n // title: 'Reset Answer',\n // action: (e) => {\n // const item = $(e.target.closest('.k-grid')).data(\"kendoGrid\").dataItem(e.target);\n // this.resetRiskControlAnswers(item.id);\n // }\n // },\n };\n }\n\n static async prerequisites(options = {}) {\n if (options.deployment == null) {\n Helpers.showError('Error: Cannot check IsraRiskManagementAssessmentReview prerequisites() without a deployment parameter');\n return false;\n }\n\n try {\n await Promise.resolve($.get(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${options.deployment}/ReadyForAssessmentReview`));\n\n return true;\n } catch (e) {\n Helpers.showError(e.responseText);\n return false;\n }\n }\n\n answerSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n valuePrimitive: true,\n template: (dataItem) => {\n if (dataItem == null) {\n return '';\n }\n\n return Helpers.sanitizeHTML(dataItem.translations[selectedLanguage].answer);\n },\n valueTemplate: (dataItem) => {\n if (dataItem == null) {\n return '';\n }\n\n return Helpers.sanitizeHTML(dataItem.translations[selectedLanguage].answer);\n },\n dataValueField: 'id',\n dataSource: {\n data: DataSources.IsraAnswers.data(),\n filter: {\n field: 'answerGroupId',\n operator: 'eq',\n value: options.model.answerGroupId,\n },\n },\n });\n }\n\n async getClassification() {\n const j = await Promise.resolve($.get('/api/masterplans/' + selectedMasterPlan.id + '/isra/ClassificationDeployments/' +\n this.deployment.classificationDeploymentId));\n\n return j;\n }\n\n async init() {\n this.classification = await this.getClassification();\n\n this.Confidentiality = DataSources.IsraClassificationScales.get(this.classification.confidentialityId).value;\n this.Integrity = DataSources.IsraClassificationScales.get(this.classification.integrityId).value;\n this.Availability = DataSources.IsraClassificationScales.get(this.classification.availabilityId).value;\n\n // likelihood max\n const l = [];\n DataSources.IsraLikelihoodScales.data()\n .forEach(i => l.push(i.value));\n this.columns[4].validation.max = Math.max(...l);\n\n super.init();\n }\n\n initDone() {\n if (this.deployment.questionnairesReviewed === true) {\n $('#Review-Accept')\n .addClass('k-state-disabled')\n .off('click');\n $('#Review-Accept span')\n .text('Already Accepted');\n }\n }\n\n require() {\n this.riskManagementControls = DataSources.IsraRiskManagementControls(this.deployment.id);\n return [\n DataSources.IsraLikelihoodScales,\n DataSources.IsraRiskScales,\n this.riskManagementControls,\n DataSources.IsraAnswers,\n DataSources.IsraClassificationScales,\n ];\n }\n\n setCustomDatasourceProperties(source) {\n source.requestEnd = (e) => {\n // set parameters\n if (e.type === 'read') {\n for (let i = 0; i < e.response.length; ++i) {\n this.calculateItemRisks(e.response[i]);\n }\n } else if (e.type === 'update') {\n this.calculateItemRisks(e.response);\n }\n\n kendo.ui.progress($(this.grid), false);\n };\n }\n\n calculateItemRisks(dataItem) {\n const inherentLikelihood = Math.max(dataItem.defaultLikelihood - dataItem.profileDrop, 1);\n\n const inherentImpact = Math.max(Math.max(\n dataItem.confidentiality ? this.Confidentiality : 0,\n dataItem.integrity ? this.Integrity : 0,\n dataItem.availability ? this.Availability : 0,\n ), 1);\n\n let controlsLikelihood = 0;\n let controlsImpact = 0;\n let impactSum = 0;\n let likelihoodSum = 0;\n\n for (let j = 0; j < dataItem.controlValues.length; ++j) {\n const control = dataItem.controlValues[j];\n if (control.newAnswerValue == null) {\n continue;\n }\n\n impactSum += control.impactWeight;\n likelihoodSum += control.probabilityWeight;\n\n controlsImpact += (control.impactWeight * control.newAnswerValue);\n controlsLikelihood += (control.probabilityWeight * control.newAnswerValue);\n }\n\n // inherent - (inherent * percentage drop) * reduction\n const currentImpact = Math.max(\n inherentImpact -\n (inherentImpact * (controlsImpact * dataItem.impactReduction / Math.max(impactSum, 1))),\n 1,\n );\n\n const currentLikelihood = Math.max(\n inherentLikelihood - (inherentLikelihood *\n (controlsLikelihood * dataItem.probabilityReduction / Math.max(likelihoodSum, 1))),\n 1,\n );\n\n // inherent - (inherent * percentage drop) * reduction\n const bestCaseImpact = Math.max(\n inherentImpact -\n (inherentImpact * (impactSum * dataItem.impactReduction / Math.max(impactSum, 1))),\n 1,\n );\n\n const bestCaseLikelihood = Math.max(\n inherentLikelihood - (inherentLikelihood *\n (likelihoodSum * dataItem.probabilityReduction / Math.max(likelihoodSum, 1))),\n 1,\n );\n\n dataItem.inherentRisk = this.getRiskTemplate(inherentLikelihood, inherentImpact);\n dataItem.currentRisk = this.getRiskTemplate(currentLikelihood, currentImpact);\n dataItem.bestCaseRisk = this.getRiskTemplate(bestCaseLikelihood, bestCaseImpact);\n }\n\n getRiskScale(riskValue) {\n const data = DataSources.IsraRiskScales.view();\n let i;\n for (i = 0; i < data.length - 1; ++i) {\n if (data[i].value > riskValue) {\n break;\n }\n }\n return data[i];\n }\n\n getRiskTemplate(likelihood, impact) {\n const riskValue = Math.round(likelihood * impact * 100) / 100;\n const riskScale = this.getRiskScale(riskValue);\n\n likelihood = Math.round(likelihood * 100) / 100;\n impact = Math.round(impact * 100) / 100;\n\n return `
    \n  \n ${riskValue} (${likelihood}x${impact})
    `;\n }\n\n setCustomGridProperties(grid) {\n const readOnly = this.deployment.status > Constants.RiskManagementStatus.ReadyForTreatment;\n grid.toolbar = [\n { template: 'Export' },\n ];\n\n if (!readOnly) {\n grid.toolbar = [\n { template: 'Accept Review' },\n { template: 'Reset Answers' },\n { template: 'Reset Risk/Control Values' },\n ];\n }\n\n grid.toolbar.push(\n { template: 'Expand All' },\n { template: 'Collapse All' },\n );\n\n if (readOnly) {\n grid.editable = false;\n delete grid.columns[grid.columns.length - 1];\n } else {\n grid.columns[grid.columns.length - 1].command = ['edit'];\n }\n\n const model = Helpers.createModel(selectedMasterPlan, this.answerColumns);\n const answerCols = Helpers.createColumns(selectedMasterPlan, this.answerColumns, {\n readOnly,\n delete: false,\n });\n\n // function to prevent rebinding\n const dataBinding = grid.dataBinding;\n grid.dataBinding = (e) => {\n dataBinding.call(e.sender, e);\n\n if (this.preventBinding) {\n e.preventDefault();\n const acd = $('#controlsDetails')\n .data('kendoGrid');\n if (acd != null) {\n acd.dataSource.read();\n acd.refresh();\n }\n }\n\n this.preventBinding = false;\n };\n\n let firstBound = true;\n const dataBound = grid.dataBound;\n grid.dataBound = (e) => {\n dataBound.call(e.sender, e);\n\n if (firstBound) {\n firstBound = false;\n\n $('#Review-ExpandAll')\n .off('click')\n .on('click', () => {\n const grid = e.sender;\n $('.k-master-row')\n .each(function () {\n grid.expandRow(this);\n });\n });\n\n $('#Review-CollapseAll')\n .off('click')\n .on('click', () => {\n const grid = e.sender;\n $('.k-master-row')\n .each(function () {\n grid.collapseRow(this);\n });\n });\n\n $('#Review-Accept')\n .off('click')\n .on('click', (e) => this.acceptReview(e));\n\n $('#Review-ResetAnswers')\n .off('click')\n .on('click', () => {\n kendo.ui.progress($(this.grid), true);\n $.post(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${this.deployment.id}/AssessmentReview/ResetAnswers`)\n .then(() => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .read();\n\n $('#Review-Accept')\n .removeClass('k-state-disabled')\n .off('click')\n .on('click', () => this.acceptReview());\n $('#Review-Accept span')\n .text('Accept Review');\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n });\n\n $('#Review-ResetValues')\n .off('click')\n .on('click', () => {\n kendo.ui.progress($(this.grid), true);\n $.post('/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskManagements/' +\n this.deployment.id +\n '/AssessmentReview/ResetRiskControlValues')\n .then(() => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .read();\n\n $('#Review-Accept')\n .removeClass('k-state-disabled')\n .off('click')\n .on('click', () => this.acceptReview());\n $('#Review-Accept span')\n .text('Accept Review');\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n });\n\n $('#Review-Export')\n .off('click')\n .on('click', () => {\n kendo.ui.progress($(this.grid), true);\n\n $.get(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${this.deployment.id}/AssessmentReview?export=true`)\n .then(function (data) {\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Unknown,\n });\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($('.grid'), false);\n });\n });\n }\n };\n\n grid.detailInit = (e) => {\n const detail = Helpers.getDefaultGrid(selectedMasterPlan, this.api);\n\n const detailDataBound = detail.dataBound;\n detail.dataBound = (e) => {\n detailDataBound.call(e.sender, e);\n\n const data = e.sender.dataSource.data();\n\n $.each(data, function (i, row) {\n if (row.newAnswerId !== row.oldAnswerId) {\n $('tr[data-uid=\"' + row.uid + '\"]')\n .addClass('deployment-pending');\n\n // find text for question answer\n const item = DataSources.IsraAnswers.get(row.oldAnswerId);\n\n let answer = '';\n if (item != null) {\n answer = item.translations[selectedLanguage].answer;\n }\n\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(3)')\n .attr('title', 'Initial Answer: ' + Helpers.sanitizeHTML(answer));\n }\n });\n };\n\n // detail.editable = 'inline';\n delete detail.toolbar;\n delete detail.height;\n\n detail.dataSource = {\n transport: {\n read: function (options) {\n options.success(e.data.controlValues);\n },\n update: (options) => {\n e.data.dirty = true;\n\n const data = $(this.grid)\n .data('kendoGrid')\n .dataSource\n .data();\n for (let i = 0; i < data.length; ++i) {\n for (let j = 0; j < data[i].controlValues.length; ++j) {\n if (data[i].controlValues[j].riskManagementControlId ===\n options.data.riskManagementControlId) {\n data[i].dirty = true;\n data[i].controlValues[j].newAnswerId = options.data.newAnswerId;\n data[i].controlValues[j].comments = options.data.comments;\n break;\n }\n }\n }\n\n const promise = e.sender.dataSource.sync();\n\n promise.then(() => {\n const grid = e.sender;\n const row = grid.tbody.children('[data-uid=\\'' + e.data.uid + '\\']');\n grid.select(row);\n grid.expandRow(row);\n })\n .fail((e) => {\n options.error(e);\n });\n },\n create: function (options) {\n options.success();\n },\n destroy: function (options) {\n options.success();\n },\n },\n autoSync: true,\n pageSize: 10,\n schema: model,\n };\n\n detail.columns = answerCols;\n\n if (readOnly) {\n detail.editable = false;\n }\n\n $('
    ')\n .appendTo(e.detailCell)\n .kendoGrid(detail);\n\n $('#controlsDetails')\n .off(\n 'mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')',\n this.disableButtonsOnEdit,\n )\n .on(\n 'mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')',\n this.disableButtonsOnEdit,\n );\n\n // menu for risk-controls\n // on enable causes weird bugs on other forms (causes menu to get stuck)\n // most probably wants proper destroy and recreate\n\n // destroy context menu if exists and recreate it\n // if (this.contextMenu['[name=controlsDetails]'] != null)\n // $(this.contextMenu['[name=controlsDetails]']).data('kendoContextMenu').destroy();\n //\n // this.createMenu('[name=controlsDetails]', this.answersMenu);\n };\n }\n\n acceptReview() {\n // deep copy\n const data = this.datasource.data();\n\n const changed = new Map();\n\n for (let i = 0; i < data.length; ++i) {\n for (let j = 0; j < data[i].controlValues.length; ++j) {\n if (data[i].controlValues[j].newAnswerId !== data[i].controlValues[j].oldAnswerId) {\n const newAnswer = DataSources.IsraAnswers.get(data[i].controlValues[j].newAnswerId).translations[selectedLanguage].answer;\n const oldAnswer = DataSources.IsraAnswers.get(data[i].controlValues[j].oldAnswerId).translations[selectedLanguage].answer;\n const control = this.riskManagementControls.get(data[i].controlValues[j].riskManagementControlId).controlId;\n\n changed.set(\n data[i].controlValues[j].riskManagementControlId,\n Helpers.sanitizeHTML(`${control}: ${oldAnswer} -> ${newAnswer}`),\n );\n }\n }\n }\n\n let message = '';\n\n if (changed.size > 0) {\n message = 'Accepting current review will apply all changes to Risks/Controls values and will reject all deployments with changed answers
    Are you sure you want to continue?
    Changed Controls:
    ';\n changed.forEach((value) => {\n message += `${value}
    `;\n });\n } else {\n message = 'Accepting current review will apply all changes to Risks/Controls values and will move to treatment.
    Are you sure you want to continue?';\n }\n\n Helpers.showPopUp2({\n title: 'Warning',\n content: message,\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n kendo.ui.progress($(this.grid), true);\n $.post(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${this.deployment.id}/AssessmentReview/AcceptReview`)\n .then((response) => {\n let message = '';\n\n if (response.result === 'reject') {\n message = 'The following questionnaires have been rejected:
    ';\n for (let i = 0; i < response.rejected.length; ++i) {\n message += `${i + 1}. ${response.rejected[i].translations[selectedLanguage].name}`;\n }\n } else {\n message = 'Review Accepted. You can now move to treatment!';\n }\n\n $('#Review-Accept')\n .addClass('k-state-disabled')\n .off('click');\n $('#Review-Accept span')\n .text('Review Accepted');\n\n Helpers.showPopUp2({\n title: 'Review Accepted',\n content: message,\n actions: [\n {\n text: 'Ok',\n action: () => {\n toggleAppear('israRiskManagementAssessments');\n return true;\n },\n },\n ],\n });\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n },\n },\n {\n text: 'Cancel',\n },\n ],\n });\n }\n}\n","import FormBase from '../../FormBase.js';\nimport { selectedLanguage } from '../../../main.js';\n\nexport default class Positions extends FormBase {\n constructor() {\n super('Job Positions', 'general');\n this.api = 'bc/Positions';\n\n this.confirmation = 'translation.' + selectedLanguage + '.name';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n required: true,\n translatable: true,\n },\n ];\n }\n}\n","import FormBase from '../FormBase.js';\nimport Selectors from '../../Core/Selectors.js';\n\nexport default class IsraTreatmentPrioritizationScales extends FormBase {\n constructor() {\n super('Prioritization Scales', 'general');\n this.api = 'isra/TreatmentPrioritizationScales';\n\n this.columns = [\n {\n title: 'Value',\n binding: 'value',\n required: true,\n sort: 'asc',\n defaultValue: 0,\n validation: {\n min: 0,\n max: 1000,\n step: 1,\n },\n translatable: false,\n type: 'number',\n },\n {\n title: 'Color',\n binding: 'color',\n defaultValue: null,\n required: false,\n template: (dataItem) => Selectors.ColorTemplate(dataItem, 'color'),\n editor: (container, options) => Selectors.ColorSelector(container, options),\n },\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Value',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionCallTree.vue?vue&type=style&index=0&id=29623acb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionCallTree.vue?vue&type=style&index=0&id=29623acb&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"img/pdf_icon.5a9681c8.svg\";","import FormBase from '../../FormBase.js';\n\nexport default class RiskGroups extends FormBase {\n constructor() {\n super('Risk Groups', 'general');\n this.api = 'bc/RiskGroups';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n required: true,\n translatable: true,\n defaultValue: 'New Group (e.g. Financial Risks)',\n },\n ];\n }\n}\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDataTable.vue?vue&type=style&index=0&id=02afb3c8&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDataTable.vue?vue&type=style&index=0&id=02afb3c8&scoped=true&lang=css&\"","import { DocumentFileFormat } from '@/dtos/all';\nimport DownloadService from '@/services/DownloadService';\nimport DataSources from '../../../Core/datasources.js';\nimport { Helpers } from '../../../Core/Helpers.js';\nimport { jwt, selectedLanguage, selectedMasterPlan } from '../../../main.js';\nimport FormBase from '../../FormBase.js';\n\nexport default class BcpGenerator extends FormBase {\n constructor() {\n super('BCR Generator', 'general');\n this.api = 'bc/BcpGenerator';\n\n this.subTitleButtons = [\n {\n name: 'generateBcp',\n icon: 'generator.png',\n text: 'Generate BCP',\n actions: () => this.openTemplateSelector(),\n },\n ];\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n required: false,\n sort: 'asc',\n },\n ];\n }\n\n openTemplateSelector() {\n const grid = $(this.grid)\n .data('kendoTreeList');\n let selected = grid.select();\n\n if (grid.select() == null) {\n Helpers.showError('Please select a partition first');\n return;\n }\n\n selected = grid.dataItem(selected);\n\n let content = '
    ';\n\n content += '
    ';\n content += '
    ';\n\n content += '
    ';\n content += '
    ';\n\n content += '
    ';\n\n Helpers.showPopUp2({\n title: 'Generate BCP for \"' + selected.name + '\"',\n content: content,\n actions: [\n {\n text: 'Cancel',\n action: function () {\n $('#bcpTemplateSelector')\n .data('kendoDropDownList')\n .destroy();\n $('#bcpTemplateLanguageSelector')\n .data('kendoDropDownList')\n .destroy();\n return true;\n },\n },\n {\n text: 'Ok',\n action: function () {\n const template = $('#bcpTemplateSelector')\n .data('kendoDropDownList')\n .dataItem();\n const language = $('#bcpTemplateLanguageSelector')\n .data('kendoDropDownList')\n .dataItem();\n\n if (template == null || language == null) {\n Helpers.showError('Please select template and language');\n return false;\n }\n\n kendo.ui.progress($('.grid'), true);\n const url = '/api/masterplans/' + selectedMasterPlan.id + '/bc/BcpGenerator/Generate/' +\n selected.id + '/' + template.id + '/' + language;\n\n $.ajax({\n url: url,\n method: 'GET',\n })\n .then(function (data) {\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Word,\n });\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($('.grid'), false);\n });\n\n $('#bcpTemplateSelector')\n .data('kendoDropDownList')\n .destroy();\n $('#bcpTemplateLanguageSelector')\n .data('kendoDropDownList')\n .destroy();\n return true;\n },\n },\n ],\n });\n\n $('#bcpTemplateLanguageSelector')\n .kendoDropDownList({});\n\n $('#bcpTemplateSelector')\n .kendoDropDownList({\n dataTextField: 'name',\n dataValueField: 'id',\n dataSource: DataSources.BcpTemplates,\n dataBound: (e) => {\n const data = e.sender.dataItem().translations;\n\n const ret = [];\n for (let j = 0; j < selectedMasterPlan.languages.length; ++j) {\n const language = selectedMasterPlan.languages[j].language;\n if (data[language] != null && data[language].hasFile === true) {\n ret.push(language);\n }\n }\n\n const drop = $('#bcpTemplateLanguageSelector')\n .data('kendoDropDownList');\n drop.setDataSource(ret);\n drop.select(0);\n },\n change: (e) => {\n const data = e.sender.dataItem().translations;\n\n const ret = [];\n for (let j = 0; j < selectedMasterPlan.languages.length; ++j) {\n const language = selectedMasterPlan.languages[j].language;\n if (data[language] != null && data[language].hasFile === true) {\n ret.push(language);\n }\n }\n\n const drop = $('#bcpTemplateLanguageSelector')\n .data('kendoDropDownList');\n drop.setDataSource(ret);\n drop.select(0);\n },\n });\n }\n\n require() {\n return [DataSources.BcpTemplates];\n }\n\n init() {\n const source = Helpers.createDataSource(selectedMasterPlan, this.api, jwt, this.columns);\n source.schema.model.parentId = 'parentId';\n source.schema.model.expanded = true;\n delete source.pageSize;\n this.datasource = new kendo.data.TreeListDataSource(source);\n\n const grid = Helpers.getDefaultGrid(selectedMasterPlan, this.api);\n\n delete grid.toolbar;\n\n grid.columns = Helpers.createColumns(selectedMasterPlan, this.columns);\n\n grid.columns.splice(-1);\n grid.dataSource = this.datasource;\n grid.pageable = false;\n grid.editable = false;\n\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n e.sender.element\n .off('dblclick', 'tbody tr[data-uid]')\n .on('dblclick', 'tbody tr[data-uid]', () => {\n this.openTemplateSelector();\n });\n };\n\n $(this.grid)\n .kendoTreeList(grid);\n }\n\n destroy() {\n const div = $(this.grid);\n const data = div.data('kendoTreeList');\n\n super.destroy(data);\n }\n}\n","import { selectedLanguage } from '../../main.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport VersionableFormBase from './VersionableFormBase.js';\n\nexport default class IsraAssessments extends VersionableFormBase {\n constructor() {\n super('Assessment Types', 'general');\n this.api = 'isra/Assessments';\n\n this.confirmation = 'translations.' + selectedLanguage + '.name';\n\n this.columns = [\n {\n title: 'Questionnaire',\n binding: 'versionRootId',\n editable: () => false,\n hidden: true,\n groupHeaderTemplate: (e) => {\n return this.datasource.get(e.items[0].id).translations[selectedLanguage].name;\n },\n editorHidden: true,\n },\n {\n title: 'Name',\n binding: 'name',\n required: true,\n hidden: true,\n sort: 'asc',\n defaultValue: 'New Assessment',\n translatable: true,\n editable: (e) => {\n return e.id === e.versionRootId || e.isNew();\n },\n },\n {\n title: 'Version',\n binding: 'version',\n defaultValue: VersionableFormBase.versionPrototype(),\n required: false,\n sort: 'asc',\n translatable: false,\n editable: () => true,\n },\n {\n title: 'Archived',\n binding: 'archived',\n editable: () => false,\n template: (dataItem) => dataItem.archived ? 'Archived' : '',\n width: '120px',\n editorHidden: true,\n },\n {\n title: 'Based On',\n binding: 'versionBasedOn',\n editable: () => false,\n editorHidden: true,\n width: '120px',\n },\n {\n binding: 'questionnaires',\n defaultValue: [],\n hidden: true,\n editorHidden: true,\n },\n ];\n\n this.questionnaireColumns = [\n {\n title: 'Questionnaire',\n binding: 'questionnaireId',\n editable: false,\n sort: 'asc',\n template: (dataItem) => {\n const q = DataSources.IsraControlQuestionnaires.get(dataItem.questionnaireId);\n if (q == null) {\n return '';\n }\n\n return Helpers.sanitizeHTML(`${q.translations[selectedLanguage].name} (${q.version})`);\n },\n },\n ];\n\n this.preventBinding = false;\n }\n\n require() {\n this.questionnaires = DataSources.IsraControlQuestionnaires;\n this.questionnaires.filter({ field: 'archived', operator: 'eq', value: false });\n\n return [this.questionnaires];\n }\n\n setCustomGridProperties(grid) {\n super.setCustomGridProperties(grid);\n\n grid.toolbar.unshift(\n { name: 'create' },\n { name: 'excel' },\n );\n\n // Details\n grid.detailTemplate = 'Questionnaires:';\n\n grid.detailInit = (model) => {\n const readonly = !!model.data.archived;\n\n const questionnairesGrid = this.createGrid({\n api: 'isra/AssessmentQuestionnaires/' + model.data.id,\n columns: this.questionnaireColumns,\n readOnly: readonly,\n confirmation: (e) => {\n return DataSources.IsraControlQuestionnaires.get(e.questionnaireId).translations[selectedLanguage].name;\n },\n cancelOnError: true,\n edit: false,\n });\n\n if (!readonly) {\n questionnairesGrid.toolbar = [\n {\n template: 'Add Questionnaire',\n },\n ];\n }\n\n const databound = questionnairesGrid.dataBound;\n questionnairesGrid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n $('[name=\"Add-Questionnaire\"]')\n .off('click')\n .on('click', (e) => {\n const data = $(e.target)\n .closest('[data-role=\"grid\"]')\n .data('kendoGrid').dataSource;\n\n if (this.questionnairesData == null) {\n const qView = this.questionnaires.view();\n\n const map = [];\n for (let i = 0; i < qView.length; ++i) {\n const existing = data.data();\n const found = false;\n for (let j = 0; j < existing.length; ++j) {\n if (qView[i].id === existing[j].id) {\n break;\n }\n }\n if (found) {\n continue;\n }\n\n const name = qView[i].translations[selectedLanguage].name;\n if (map[name] == null) {\n map[name] = {\n text: name,\n expanded: false,\n items: [],\n disabled: true,\n };\n }\n\n map[name].items.push({\n text: qView[i].version,\n base: name,\n id: qView[i].id,\n });\n }\n\n this.questionnairesData = [];\n for (const key in map) {\n // flat questionnaires with only one version\n if (map[key].items.length === 1) {\n map[key].text += ` (${map[key].items[0].text})`;\n map[key].disabled = false;\n map[key].id = map[key].items[0].id;\n delete map[key].items;\n }\n\n this.questionnairesData.push(map[key]);\n }\n }\n\n const content = '
    ';\n Helpers.showPopUp2({\n title: 'Select Questionnaire',\n content,\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const di = $('#questionnairesList')\n .data('kendoDropDownTree')\n .value();\n console.log('IsraAssessments -> questionnairesGrid.dataBound -> di', di);\n if (di != null) {\n data.add({\n questionnaireId: di,\n });\n data.sync();\n return true;\n }\n return false;\n },\n },\n {\n text: 'Cancel',\n action: () => true,\n },\n ],\n initOpen: () => {\n $('#questionnairesList')\n .width(500)\n .kendoDropDownTree({\n placeholder: 'Select ...',\n valuePrimitive: true,\n dataTextField: 'text',\n dataValueField: 'id',\n valueTemplate: (e) => {\n if (e.base == null) {\n return Helpers.sanitizeHTML(e.text);\n } else {\n return Helpers.sanitizeHTML(`${e.base} (${e.text})`);\n }\n },\n height: 'auto',\n dataSource: this.questionnairesData,\n });\n },\n });\n });\n };\n\n $('
    ')\n .appendTo(model.detailCell)\n .kendoGrid(questionnairesGrid);\n };\n }\n}\n","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteApplications.vue?vue&type=style&index=0&id=aa87b792&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteApplications.vue?vue&type=style&index=0&id=aa87b792&scoped=true&lang=css&\"","import FormBase from '../FormBase.js';\nimport { selectedLanguage } from '../../main.js';\nimport DataSources from '../../Core/datasources.js';\nimport Constants from '../../Core/constants.js';\nimport { Helpers } from '../../Core/Helpers';\n\nexport default class IsraControlQuestions extends FormBase {\n constructor() {\n super('Control Questions', 'general');\n this.api = 'isra/ControlQuestions';\n\n this.options.errorCallBack = {\n delete: () => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .cancelChanges();\n },\n };\n\n this.columns = [\n {\n title: 'Id',\n binding: 'id',\n collapse: true,\n editable: () => false,\n defaultValue: 0,\n required: false,\n sort: 'asc',\n width: 55,\n },\n // {\n // title: 'Question
    Group',\n // binding: 'questionGroupId',\n // defaultValue: null,\n // template: (dataItem) => {\n // let item = DataSources.IsraQuestionGroups.get(dataItem.questionGroupId);\n //\n // if (item != null)\n // return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n // else\n // return Constants.NoQuestionGroup.translations[selectedLanguage].name;\n // },\n // editor: (container, options) => {\n // this.questionGroupSelector(container, options)\n // },\n // },\n {\n title: 'Question',\n binding: 'question',\n defaultValue: 'New Question',\n required: true,\n translatable: true,\n },\n {\n title: 'Recommended Actions',\n binding: 'recommendedActions',\n translatable: true,\n },\n {\n title: 'Comment',\n binding: 'comment',\n translatable: true,\n },\n {\n title: 'Answer Group',\n binding: 'answerGroupId',\n hidden: true,\n required: true,\n template: (dataItem) => {\n const item = DataSources.IsraAnswerGroups.get(dataItem.answerGroupId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return 'Select a QuestionGroup';\n }\n },\n editor: (container, options) => {\n this.answerGroupSelector(container, options);\n },\n },\n {\n title: 'C',\n collapse: true,\n binding: 'confidentiality',\n type: 'boolean',\n required: true,\n defaultValue: true,\n },\n {\n title: 'I',\n collapse: true,\n binding: 'integrity',\n type: 'boolean',\n required: true,\n defaultValue: true,\n },\n {\n title: 'A',\n collapse: true,\n binding: 'availability',\n type: 'boolean',\n required: true,\n defaultValue: true,\n },\n {\n title: 'ISO/IEC
    27001 Control',\n binding: 'isoDomainId',\n template: (dataItem) => {\n const item = DataSources.IsraIsoDomains.get(dataItem.isoDomainId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.name);\n } else {\n return Constants.NoIsoDomain.translations[selectedLanguage].name;\n }\n },\n editor: (container, options) => this.isoDomainSelector(container, options),\n },\n {\n title: 'Threat',\n binding: 'threatId',\n defaultValue: 0,\n template: (dataItem) => {\n const item = DataSources.IsraThreats.get(dataItem.threatId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return Constants.NoThreat.translations[selectedLanguage].name;\n }\n },\n editor: (container, options) => {\n this.threatSelector(container, options);\n },\n },\n {\n title: 'Vulnerability',\n binding: 'vulnerabilityId',\n defaultValue: 0,\n template: (dataItem) => {\n const item = DataSources.IsraVulnerabilities.get(dataItem.vulnerabilityId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return Constants.NoVulnerability.translations[selectedLanguage].name;\n }\n },\n editor: (container, options) => {\n this.vulnerabilitySelector(container, options);\n },\n },\n // {\n // title: 'Questionnaires',\n // hidden: true,\n // binding: 'questionnaires',\n // required: true,\n // editable: () => false,\n // template: (dataItem) => {\n // let q = '';\n // for (let i = 0; i < dataItem.questionnaires.length; ++i) {\n // q += DataSources.IsraQuestionnaires.get(dataItem.questionnaires[i].id).translations[selectedLanguage].name;\n //\n // if (i < dataItem.questionnaires.length - 1)\n // q += ', ';\n // }\n // return q;\n // },\n // defaultValue: [],\n // },\n ];\n\n this.answerColumns = [\n {\n title: 'Answer',\n binding: 'answerId',\n editable: false,\n sort: 'asc',\n template: (dataItem) => {\n return Helpers.sanitizeHTML(DataSources.IsraAnswers.get(dataItem.answerId).translations[selectedLanguage].answer);\n },\n },\n {\n title: 'Value',\n binding: 'value',\n type: 'number',\n required: false,\n },\n ];\n }\n\n setCustomGridProperties(grid) {\n grid.editable = 'popup';\n\n grid.detailInit = (e) => {\n const answersGrid = this.createGrid({\n api: 'isra/ControlQuestionAnswers/' + e.data.id,\n columns: this.answerColumns,\n selector: '[name=\"possibleAnswers\"]',\n menu: this.menu,\n });\n\n answersGrid.columns[answersGrid.columns.length - 1] = { command: ['edit'] };\n\n delete answersGrid.toolbar;\n\n $('
    ')\n .appendTo(e.detailCell)\n .kendoGrid(answersGrid);\n };\n }\n\n require() {\n return [\n DataSources.IsraControlQuestionnaires,\n DataSources.IsraAnswerGroups,\n DataSources.IsraQuestionGroups,\n DataSources.HierarchicalIsraQuestionGroups,\n DataSources.IsraAnswers,\n DataSources.IsraIsoDomains,\n DataSources.IsraThreats,\n DataSources.IsraVulnerabilities,\n ];\n }\n\n answerGroupSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n optionLabel: Constants.SelectAnswerGroup,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.IsraAnswerGroups,\n });\n }\n\n questionGroupSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownTree({\n optionLabel: Constants.NoQuestionGroup,\n height: 'auto',\n dataSource: DataSources.HierarchicalIsraQuestionGroups,\n valuePrimitive: true,\n dataTextField: 'name',\n dataValueField: 'id',\n loadOnDemand: false,\n });\n }\n\n isoDomainSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownTree({\n placeholder: 'Select ...',\n height: 'auto',\n dataSource: DataSources.IsraIsoDomains,\n valuePrimitive: true,\n dataTextField: 'name',\n dataValueField: 'id',\n loadOnDemand: false,\n filter: 'contains',\n });\n }\n\n threatSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n optionLabel: Constants.NoThreat,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.IsraThreats,\n });\n }\n\n vulnerabilitySelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n optionLabel: Constants.NoVulnerability,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.IsraVulnerabilities,\n });\n }\n}\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaAssetLine.vue?vue&type=style&index=0&id=7b27ae2c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaAssetLine.vue?vue&type=style&index=0&id=7b27ae2c&scoped=true&lang=css&\"","/* eslint-disable no-new */\nimport { DocumentFileFormat } from '@/dtos/all';\nimport DownloadService from '@/services/DownloadService';\nimport Constants from '../../Core/constants.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport { selectedLanguage, selectedMasterPlan } from '../../main.js';\nimport DashboardBase from '../DashboardBase.js';\n\nexport default class IsraDashboard extends DashboardBase {\n constructor() {\n super();\n\n this.applications = null;\n\n this.currentType = 0;\n this.currentStandard = null;\n this.currentApplication = null;\n this.currentAssessment = null;\n }\n\n showSubTitle() {\n const sub = $('#pageSubTitle');\n sub.empty();\n\n let toolbar = '
    ';\n\n toolbar += toolbar += 'Export';\n toolbar += '
    Type:
    ';\n toolbar += '
    Standard:
    ';\n toolbar += '
    System:
    ';\n toolbar += '
    Assessment:
    ';\n toolbar += '
    ';\n\n sub.append(toolbar);\n\n this.dashboardTypes = [\n { id: 0, name: 'General Statistics' },\n { id: 1, name: 'Standardization & Compliance' },\n { id: 2, name: 'Per Application' },\n ];\n }\n\n require() {\n return [\n DataSources.IsraClassificationScales,\n DataSources.IsraRiskScales,\n DataSources.IsraIctRiskCategories,\n DataSources.IsraControlStrengthScales,\n DataSources.IsraTreatmentAnswers,\n DataSources.IsraTreatmentPrioritizationScales,\n ];\n }\n\n init() {\n // $.when(standardization, apps).done(() => { this.initDone(); });\n }\n\n // after elements are placed\n finishedShow() {\n super.finishedShow();\n\n $('#exportExcel')\n .off('click')\n .on('click', () => {\n console.log('currentType ' + this.currentType);\n console.log('currentStandard ' + this.currentStandard);\n console.log('currentApplication ' + this.currentApplication);\n console.log('currentAssessment ' + this.currentAssessment);\n\n let queries = `?language=${selectedLanguage}`;\n let api = `/api/masterplans/${selectedMasterPlan.id}/isra/Statistics/download/`;\n\n if (this.currentType === 0) {\n api += 'general';\n } else if (this.currentType === 1 && (this.currentApplication == null || this.currentApplication.id === 0)) {\n api += 'standardization';\n queries += `&standard=${this.currentStandard || ''}`;\n } else {\n api += 'application';\n queries += `&assessment=${this.currentAssessment.id}`;\n }\n\n kendo.ui.progress($(this.div), true);\n\n $.get(api + queries)\n .then((data) => {\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Unknown,\n });\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.div), false);\n });\n });\n\n $('#statisticsSelector')\n .kendoDropDownList({\n dataTextField: 'name',\n dataValueField: 'id',\n dataSource: {\n data: this.dashboardTypes,\n },\n change: (e) => {\n const value = e.sender.value();\n this.currentType = value;\n this.refreshDashboard();\n },\n });\n\n // get standardization and applications\n $.get('/api/masterplans/' + selectedMasterPlan.id + '/isra/Statistics/standardization?language=' + selectedLanguage)\n .done((data) => {\n const standards = [\n { id: 0, name: 'All' },\n ...data,\n ];\n\n $('#standardizationSelector')\n .kendoDropDownList({\n dataTextField: 'name',\n dataValueField: 'id',\n valuePrimitive: true,\n dataSource: {\n data: standards,\n },\n change: (e) => {\n const value = e.sender.value();\n this.currentStandard = value;\n this.standardChanged();\n },\n });\n });\n\n $.get('/api/masterplans/' + selectedMasterPlan.id + '/isra/Statistics/applications?language=' + selectedLanguage)\n .done((data) => {\n this.applications = new kendo.data.DataSource({\n data: [\n { id: 0, application: 'All' },\n ...data,\n ],\n });\n\n $('#applicationSelector')\n .kendoDropDownList({\n dataTextField: 'application',\n dataSource: this.applications,\n change: (e) => {\n const value = e.sender.value();\n this.currentApplication = value;\n this.applicationChanged();\n },\n });\n\n $('#deploymentSelector')\n .kendoDropDownList({\n dataTextField: 'name',\n dataSource: {\n data: [],\n },\n change: (e) => {\n const value = e.sender.value();\n this.currentAssessment = value;\n this.assessmentChanged(value);\n },\n });\n });\n\n this.refreshDashboard();\n }\n\n refreshDashboard() {\n // console.log('refreshDashboard');\n $(this.div).empty();\n\n if (this.currentType === 0) {\n $('#standardizationSelectorContainer').hide();\n $('#applicationSelectorContainer').hide();\n $('#deploymentSelectorContainer').hide();\n //\n this.currentStandard = null;\n this.currentApplication = null;\n this.currentAssessment = null;\n //\n this.showDeploymentStatus();\n this.showClassifications();\n //\n } else if (this.currentType === 1) {\n $('#standardizationSelectorContainer').show();\n $('#applicationSelectorContainer').hide();\n $('#deploymentSelectorContainer').hide();\n //\n this.currentApplication = null;\n this.currentAssessment = null;\n this.currentStandard = null;\n //\n this.standardChanged();\n //\n } else if (this.currentType === 2) {\n $('#standardizationSelectorContainer').hide();\n $('#applicationSelectorContainer').show();\n $('#deploymentSelectorContainer').hide();\n //\n this.currentStandard = null;\n this.currentAssessment = null;\n this.currentApplication = null; // first after all\n //\n this.applications.filter({ field: 'id', operator: 'gt', value: 0 });\n $('#applicationSelector').data('kendoDropDownList').select(0);\n //\n this.applicationChanged();\n }\n }\n\n standardChanged() {\n // console.log('IsraDashboard -> standardChanged -> standard', this.currentStandard);\n\n if (this.currentStandard == null || this.currentStandard === 0) {\n $('#applicationSelectorContainer').hide();\n $('#deploymentSelectorContainer').hide();\n this.applications.filter({});\n } else {\n $('#applicationSelectorContainer').show();\n //\n this.applications.filter({\n field: 'standards',\n operator: function (itemValue, value) {\n if (itemValue === undefined) {\n return true;\n }\n\n return itemValue && itemValue.find(function (item) {\n return item.id === value;\n });\n },\n value: this.currentStandard,\n });\n }\n\n $('#applicationSelector').data('kendoDropDownList').select(0); // select all\n\n this.applicationChanged();\n }\n\n applicationChanged() {\n $(this.div).empty();\n if (this.currentApplication == null) {\n this.currentApplication = $('#applicationSelector').data('kendoDropDownList').value();\n }\n\n if (this.currentApplication.id === 0) {\n $('#deploymentSelectorContainer').hide();\n this.showDeploymentStatus(this.currentStandard);\n this.showClassifications(this.currentStandard);\n this.showStandardizationDetails(this.currentStandard);\n return;\n }\n\n // console.log(this.currentApplication);\n $('#deploymentSelectorContainer').show();\n const deployments = $('#deploymentSelector').data('kendoDropDownList');\n\n deployments.setDataSource({ data: this.currentApplication.deployments });\n deployments.select(0);\n\n this.currentAssessment = null;\n\n this.assessmentChanged();\n }\n\n assessmentChanged() {\n $(this.div).empty();\n // console.log(this.currentAssessment);\n\n if (this.currentAssessment == null) {\n this.currentAssessment = $('#deploymentSelector').data('kendoDropDownList').value();\n }\n\n // console.log(this.currentAssessment);\n\n // console.log('IsraDashboard -> assessmentChanged -> value', this.currentAssessment);\n this.showApplicationDashboard(this.currentAssessment.id);\n }\n\n showGeneralStatistics() {\n $('#standardizationSelectorContainer').hide();\n $('#applicationSelectorContainer').hide();\n $('#deploymentSelectorContainer').hide();\n\n this.showDeploymentStatus();\n this.showClassifications();\n }\n\n showStandardizationStatistics() {\n $('#standardizationSelectorContainer').show();\n $('#applicationSelectorContainer').hide();\n $('#deploymentSelectorContainer').hide();\n\n const applications = $('#applicationSelector').data('kendoDropDownList');\n\n this.applications.filter({ field: 'id', operator: 'gte', value: 0 });\n applications.value(this.applications.view()[0]);\n }\n\n showApplicationStatistics() {\n $('#standardizationSelectorContainer').hide();\n $('#applicationSelectorContainer').show();\n $('#deploymentSelectorContainer').show();\n\n const applications = $('#applicationSelector').data('kendoDropDownList');\n\n this.applications.filter({ field: 'id', operator: 'gt', value: 0 });\n\n applications.value(this.applications.view()[0]);\n }\n\n showApplicationDashboard(deployment) {\n $(this.div).empty();\n // Questionnaires Status - classification - Current Risks - Residual Risks\n\n const s1 = $.get('/api/masterplans/' + selectedMasterPlan.id + '/isra/Statistics/ApplicationRisks/' + deployment +\n '?language=' + selectedLanguage);\n\n s1.done((data) => {\n const title = '
    ' + Helpers.sanitizeHTML(data.application) +\n '
    ';\n\n $(this.div)\n .append(title);\n\n const riskScales = DataSources.IsraRiskScales.view();\n const implementationValues = DataSources.IsraTreatmentAnswers.view();\n const controlStrengthScales = DataSources.IsraControlStrengthScales.view();\n const treatmentPrioritizationScales = DataSources.IsraTreatmentPrioritizationScales.view();\n\n const riskScaleNames = [];\n const riskScaleColors = [];\n const riskScaleTranslations = {};\n\n const currentRisks = [];\n const currentRisksStatus = [];\n\n const residualRisks = [];\n const residualRisksStatus = [];\n\n // ict\n // labels = ICT Categories\n // datasets = risk scales\n\n const ictRiskCategoriesNames = [];\n const ictRiskCategoriesDatasets = [];\n const ictRiskCategoriesDatasetsTranslation = {};\n\n const controlStrengthNames = [];\n const controlStrengthDatasets = [];\n const controlStrengthDatasetsTranslation = {};\n\n const controlStrengthImplementationDatasets = [];\n const implementationTranslation = {};\n\n const treatmentPrioritizationScalesValues = [];\n const treatmentPrioritizationScalesColors = [];\n const treatmentPrioritizationScalesLabels = [];\n const treatmentPrioritizationScalesTranslations = [];\n const treatmentPrioritizationStatus = [];\n\n for (let i = 0; i < treatmentPrioritizationScales.length; ++i) {\n treatmentPrioritizationScalesValues.push(0);\n treatmentPrioritizationScalesColors.push(treatmentPrioritizationScales[i].color);\n treatmentPrioritizationScalesLabels.push(treatmentPrioritizationScales[i].translations[selectedLanguage].name);\n treatmentPrioritizationScalesTranslations[treatmentPrioritizationScales[i].translations[selectedLanguage].name] = i;\n treatmentPrioritizationStatus[i] = [];\n }\n\n const colors = ['#ffcccc', '#ffffcc', '#ccffcc'];\n for (let i = 0; i < implementationValues.length; ++i) {\n implementationTranslation[implementationValues[i].translations[selectedLanguage].answer] = i;\n\n controlStrengthImplementationDatasets.push({\n label: implementationValues[i].translations[selectedLanguage].answer,\n data: [],\n tooltips: [],\n backgroundColor: colors[i],\n });\n }\n implementationTranslation.None = implementationValues.length;\n controlStrengthImplementationDatasets.push({\n label: 'No Data',\n data: [],\n tooltips: [],\n });\n\n for (let i = 0; i < controlStrengthScales.length; ++i) {\n controlStrengthNames.push(controlStrengthScales[i].translations[selectedLanguage].name);\n\n controlStrengthDatasetsTranslation[controlStrengthScales[i].translations[selectedLanguage].name] = i;\n\n controlStrengthDatasets.push({\n label: controlStrengthScales[i].translations[selectedLanguage].name,\n data: [],\n backgroundColor: riskScales[i].color,\n tooltips: [],\n });\n\n // + 1 for none\n for (let j = 0; j < implementationValues.length + 1; ++j) {\n controlStrengthImplementationDatasets[j].data.push(0);\n controlStrengthImplementationDatasets[j].tooltips.push([]);\n }\n }\n\n const riskRadarLabels = [];\n const riskRadarTooltips = {};\n const riskRadarDataset = [\n {\n label: 'Current',\n data: [],\n borderColor: '#ff5555',\n pointBackgroundColor: '#ff5555',\n },\n {\n label: 'Residual',\n data: [],\n borderColor: '#5555ff',\n pointBackgroundColor: '#5555ff',\n }];\n\n for (let i = 0; i < riskScales.length; ++i) {\n riskScaleNames.push(riskScales[i].translations[selectedLanguage].name);\n riskScaleColors.push(riskScales[i].color);\n riskScaleTranslations[riskScales[i].translations[selectedLanguage].name] = i;\n\n currentRisks[i] = 0;\n currentRisksStatus[i] = [];\n\n residualRisks[i] = 0;\n residualRisksStatus[i] = [];\n\n ictRiskCategoriesDatasets.push({\n label: riskScales[i].translations[selectedLanguage].name,\n data: [],\n backgroundColor: riskScales[i].color,\n tooltips: [],\n });\n\n for (let j = 0; j < controlStrengthDatasets.length; ++j) {\n controlStrengthDatasets[j].data.push(0);\n controlStrengthDatasets[j].tooltips.push([]);\n }\n }\n\n const ictRiskCategories = DataSources.IsraIctRiskCategories.view();\n for (let i = 0; i < ictRiskCategories.length; ++i) {\n for (let j = 0; j < ictRiskCategoriesDatasets.length; ++j) {\n ictRiskCategoriesDatasets[j].data.push(0);\n ictRiskCategoriesDatasets[j].tooltips.push([]);\n }\n\n ictRiskCategoriesDatasetsTranslation[ictRiskCategories[i].translations[selectedLanguage].name] = i;\n\n ictRiskCategoriesNames.push(ictRiskCategories[i].translations[selectedLanguage].name);\n }\n\n if (data.risks != null) {\n for (let i = 0; i < data.risks.length; ++i) {\n if (data.risks[i].currentValue !== 0) {\n currentRisks[riskScaleTranslations[data.risks[i].current]] += 1;\n currentRisksStatus[riskScaleTranslations[data.risks[i].current]].push(data.risks[i].name);\n\n ictRiskCategoriesDatasets[riskScaleTranslations[data.risks[i].current]].data[ictRiskCategoriesDatasetsTranslation[data.risks[i].ictCategory]] += 1;\n ictRiskCategoriesDatasets[riskScaleTranslations[data.risks[i].current]].tooltips[ictRiskCategoriesDatasetsTranslation[data.risks[i].ictCategory]].push(data.risks[i].name);\n }\n\n if (data.risks[i].residualValue !== 0) {\n residualRisks[riskScaleTranslations[data.risks[i].residual]] += 1;\n residualRisksStatus[riskScaleTranslations[data.risks[i].residual]].push(data.risks[i].name);\n }\n\n if (data.risks[i].currentValue >= 1) {\n riskRadarLabels.push(data.risks[i].id);\n riskRadarTooltips[data.risks[i].id] = data.risks[i].name;\n riskRadarDataset[0].data.push(Math.round(data.risks[i].currentValue));\n riskRadarDataset[1].data.push(Math.round(data.risks[i].residualValue));\n\n for (let j = 0; j < data.risks[i].controls.length; ++j) {\n if (!data.risks[i].controls[j].needsImplementation) {\n continue;\n }\n\n controlStrengthDatasets[controlStrengthDatasetsTranslation[data.risks[i].controls[j].controlStrength]].data[riskScaleTranslations[data.risks[i].current]] += 1;\n controlStrengthDatasets[controlStrengthDatasetsTranslation[data.risks[i].controls[j].controlStrength]].tooltips[riskScaleTranslations[data.risks[i].current]].push(data.risks[i].controls[j].control);\n\n const answer = implementationTranslation[(data.risks[i].controls[j].treatmentAnswer || 'None')];\n controlStrengthImplementationDatasets[answer].data[controlStrengthDatasetsTranslation[data.risks[i].controls[j].controlStrength]] += 1;\n controlStrengthImplementationDatasets[answer].tooltips[controlStrengthDatasetsTranslation[data.risks[i].controls[j].controlStrength]].push(data.risks[i].controls[j].control);\n\n treatmentPrioritizationScalesValues[treatmentPrioritizationScalesTranslations[data.risks[i].controls[j].treatmentPrioritizationScale]] += 1;\n treatmentPrioritizationStatus[treatmentPrioritizationScalesTranslations[data.risks[i].controls[j].treatmentPrioritizationScale]].push(data.risks[i].controls[j].control);\n }\n }\n }\n }\n\n this.addDashboardItem({\n stats: {\n id: 'chart_currentrisks',\n title: 'Current Risks',\n },\n cols: 4,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_residualrisks',\n title: 'Residual Risks',\n },\n cols: 4,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_prioritization',\n title: 'Implementation Prioritization',\n },\n cols: 4,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_ictCurrentRisks',\n title: 'ICT Risk Categories - Current Risks',\n },\n cols: 12,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_risksradar',\n title: 'Current - Residual Risks',\n },\n cols: 5,\n rows: 2,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_risk_control_strength',\n title: 'Risk Levels / Control Strength',\n },\n cols: 7,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_control_strength_implementation',\n title: 'Control Strength / Implementation',\n },\n cols: 7,\n });\n\n new Chart('chart_currentrisks', this.getDefaultChart({\n type: 'pie',\n labels: riskScaleNames,\n datasets: [\n {\n label: 'Current Risk Levels',\n data: currentRisks,\n backgroundColor: riskScaleColors,\n tooltips: currentRisksStatus,\n },\n ],\n }));\n\n new Chart('chart_residualrisks', this.getDefaultChart({\n type: 'pie',\n labels: riskScaleNames,\n datasets: [\n {\n label: 'Residual Risk Levels',\n data: residualRisks,\n backgroundColor: riskScaleColors,\n tooltips: residualRisksStatus,\n },\n ],\n }));\n\n new Chart('chart_prioritization', this.getDefaultChart({\n type: 'pie',\n labels: treatmentPrioritizationScalesLabels,\n datasets: [\n {\n data: treatmentPrioritizationScalesValues,\n backgroundColor: treatmentPrioritizationScalesColors,\n tooltips: treatmentPrioritizationStatus,\n },\n ],\n }));\n\n new Chart('chart_ictCurrentRisks', this.getDefaultChart({\n type: 'bar',\n labels: ictRiskCategoriesNames,\n datasets: ictRiskCategoriesDatasets,\n }));\n\n new Chart('chart_risksradar', this.getDefaultChart({\n type: 'radar',\n labels: riskRadarLabels,\n datasets: riskRadarDataset,\n options: {\n tooltipCallback: function (tooltipItem, data) {\n return riskRadarTooltips[data.labels[tooltipItem.index]];\n },\n },\n }));\n\n new Chart('chart_risk_control_strength', this.getDefaultChart({\n type: 'bar',\n labels: riskScaleNames,\n datasets: controlStrengthDatasets,\n options: {\n scales: {\n xAxes: [\n {\n scaleLabel: {\n display: true,\n labelString: 'Current Risk Level',\n },\n }],\n yAxes: [\n {\n scaleLabel: {\n display: true,\n labelString: 'Number of Controls per Control Strength',\n },\n }],\n },\n },\n }));\n\n new Chart('chart_control_strength_implementation', this.getDefaultChart({\n type: 'bar',\n labels: controlStrengthNames,\n datasets: controlStrengthImplementationDatasets,\n options: {\n scales: {\n xAxes: [\n {\n scaleLabel: {\n display: true,\n labelString: 'Control Strength',\n },\n }],\n yAxes: [\n {\n ticks: {\n beginAtZero: true,\n },\n scaleLabel: {\n display: true,\n labelString: 'Implementation Answer',\n },\n }],\n },\n },\n }));\n\n // =====================================================\n // Flows\n // =====================================================\n let classificationContent = '';\n if (data.classification != null) {\n let conf = '';\n let confColor = '';\n\n let inte = '';\n let inteColor = '';\n\n let avai = '';\n let avaiColor = '';\n\n let crit = '';\n let critColor = '';\n\n if (data.classification.confidentiality > 0) {\n let scale = DataSources.IsraClassificationScales.get(data.classification.confidentiality);\n conf = Helpers.sanitizeHTML(scale.translations[selectedLanguage].name);\n confColor = Helpers.sanitizeHTML(scale.color);\n\n scale = DataSources.IsraClassificationScales.get(data.classification.integrity);\n inte = Helpers.sanitizeHTML(scale.translations[selectedLanguage].name);\n inteColor = Helpers.sanitizeHTML(scale.color);\n\n scale = DataSources.IsraClassificationScales.get(data.classification.availability);\n avai = Helpers.sanitizeHTML(scale.translations[selectedLanguage].name);\n avaiColor = Helpers.sanitizeHTML(scale.color);\n\n scale = DataSources.IsraClassificationScales.get(data.classification.criticality);\n crit = Helpers.sanitizeHTML(scale.translations[selectedLanguage].name);\n critColor = Helpers.sanitizeHTML(scale.color);\n }\n\n let classificationApprovalPath = '
    ';\n classificationApprovalPath += '
    Data Entry:';\n if (data.classification.dataEntry != null) {\n for (let i = 0; i < data.classification.dataEntry.length; ++i) {\n classificationApprovalPath += `
     ${Helpers.sanitizeHTML(data.classification.dataEntry[i].info)}
    `;\n }\n }\n classificationApprovalPath += '
    Approval Path:';\n\n if (data.classification.approvalPath != null) {\n for (let i = 0; i < data.classification.approvalPath.length; ++i) {\n let clas = 'approval-path-user-pending';\n\n if (data.classification.approvalPath[i].status === Constants.ApprovalPathStatus.On) {\n clas = 'approval-path-user-on';\n } else if (data.classification.approvalPath[i].status === Constants.ApprovalPathStatus.Finished) {\n clas = 'approval-path-user-finished';\n }\n\n classificationApprovalPath += `
     ${i + 1}. ${Helpers.sanitizeHTML(data.classification.approvalPath[i].user.info)}
    `;\n }\n }\n classificationApprovalPath += '
    ';\n\n classificationContent = `\n
    \n
    \n
    ${data.classification.name} (${data.classification.questionnaire})\n
    \n ${data.classification.questionsAnswered}/${data.classification.questionsTotal}
    \n
    ${classificationApprovalPath}
    \n
    \n
    \n
    \n
    ${popup[i].content}
    ${popup[i].title}${popup[i].editor}
    \n \n \n \n \n \n
    Confidentiality:${conf}
    Integrity:${inte}
    Availability:${avai}
     
    Criticality:${crit}
    \n
    \n
    `;\n } else {\n classificationContent = 'No Classification info...';\n }\n\n let acceptanceContent = '';\n if (data.acceptance != null) {\n let acceptanceApprovalPath = '
    ';\n acceptanceApprovalPath += '
    Data Entry:';\n if (data.acceptance.dataEntry != null) {\n for (let i = 0; i < data.acceptance.dataEntry.length; ++i) {\n acceptanceApprovalPath += `
     ${Helpers.sanitizeHTML(data.acceptance.dataEntry[i].info)}
    `;\n }\n }\n acceptanceApprovalPath += '
    Approval Path:';\n\n if (data.acceptance.approvalPath != null) {\n for (let i = 0; i < data.acceptance.approvalPath.length; ++i) {\n let clas = 'approval-path-user-pending';\n\n if (data.acceptance.approvalPath[i].status === Constants.ApprovalPathStatus.On) {\n clas = 'approval-path-user-on';\n } else if (data.acceptance.approvalPath[i].status === Constants.ApprovalPathStatus.Finished) {\n clas = 'approval-path-user-finished';\n }\n\n acceptanceApprovalPath += `
     ${i + 1}. ${Helpers.sanitizeHTML(data.acceptance.approvalPath[i].user.info)}
    `;\n }\n }\n acceptanceApprovalPath += '
    ';\n\n acceptanceContent = `\n
    \n
    \n
    ${data.acceptance.name}\n
    \n ${data.acceptance.questionsAnswered}/${data.acceptance.questionsTotal}\n
    \n
    \n
    \n
    \n ${acceptanceApprovalPath}\n
    \n
    \n
    `;\n } else {\n acceptanceContent = 'No Acceptance info...';\n }\n\n let assessmentsContent = '';\n if (data.assessments != null) {\n assessmentsContent = '
    ';\n for (let i = 0; i < data.assessments.length; ++i) {\n let assessmentApprovalPath = '
    ';\n assessmentApprovalPath += '
    Data Entry:';\n if (data.assessments[i].dataEntry != null) {\n for (let j = 0; j < data.assessments[i].dataEntry.length; ++j) {\n assessmentApprovalPath += `
     ${Helpers.sanitizeHTML(data.assessments[i].dataEntry[j].info)}
    `;\n }\n }\n assessmentApprovalPath += '
    Approval Path:';\n\n if (data.assessments[i].approvalPath != null) {\n for (let j = 0; j < data.assessments[i].approvalPath.length; ++j) {\n let clas = 'approval-path-user-pending';\n\n if (data.assessments[i].approvalPath[j].status === Constants.ApprovalPathStatus.On) {\n clas = 'approval-path-user-on';\n } else if (data.assessments[i].approvalPath[j].status === Constants.ApprovalPathStatus.Finished) {\n clas = 'approval-path-user-finished';\n }\n\n assessmentApprovalPath += `
     ${j + 1}. ${Helpers.sanitizeHTML(data.assessments[i].approvalPath[j].user.info)}
    `;\n }\n }\n assessmentApprovalPath += '
    ';\n\n assessmentsContent += `\n
    \n
    ${data.assessments[i].name}\n
    \n
    \n ${data.assessments[i].questionsAnswered}/${data.assessments[i].questionsTotal}\n
    \n
    \n
    \n
    \n ${assessmentApprovalPath}\n
    \n
    \n
    `;\n }\n assessmentsContent += '
    ';\n } else {\n assessmentsContent = 'No Assessments info...';\n }\n\n let treatmentsContent = '';\n if (data.treatments != null) {\n treatmentsContent = '
    ';\n for (let i = 0; i < data.treatments.length; ++i) {\n let treatmentApprovalPath = '
    ';\n treatmentApprovalPath += '
    Data Entry:';\n if (data.treatments[i].dataEntry != null) {\n for (let j = 0; j < data.treatments[i].dataEntry.length; ++j) {\n treatmentApprovalPath += `
     ${Helpers.sanitizeHTML(data.treatments[i].dataEntry[j].info)}
    `;\n }\n }\n treatmentApprovalPath += '
    Approval Path:';\n\n if (data.treatments[i].approvalPath != null) {\n for (let j = 0; j < data.treatments[i].approvalPath.length; ++j) {\n let clas = 'approval-path-user-pending';\n\n if (data.treatments[i].approvalPath[j].status === Constants.ApprovalPathStatus.On) {\n clas = 'approval-path-user-on';\n } else if (data.treatments[i].approvalPath[j].status === Constants.ApprovalPathStatus.Finished) {\n clas = 'approval-path-user-finished';\n }\n\n treatmentApprovalPath += `
     ${j + 1}. ${Helpers.sanitizeHTML(data.treatments[i].approvalPath[j].user.info)}
    `;\n }\n }\n treatmentApprovalPath += '
    ';\n\n treatmentsContent += `\n
    \n
    ${data.treatments[i].name}\n
    \n
    \n ${data.treatments[i].questionsAnswered}/${data.treatments[i].questionsTotal}\n
    \n
    \n
    \n
    \n ${treatmentApprovalPath}\n
    \n
    \n
    `;\n }\n treatmentsContent += '
    ';\n } else {\n treatmentsContent = 'No Treatments info...';\n }\n\n this.addDashboardItem({\n stats: {\n id: 'info_classification',\n title: 'Classification',\n content: classificationContent,\n },\n rows: 2,\n cols: 3,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'info_assessment',\n title: 'Assessments',\n content: assessmentsContent,\n },\n rows: 2,\n cols: 3,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'info_treatment',\n title: 'Treatments',\n content: treatmentsContent,\n },\n rows: 2,\n cols: 3,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'info_questionnaires',\n title: 'Acceptance',\n content: acceptanceContent,\n },\n rows: 2,\n cols: 3,\n });\n });\n }\n\n showDeploymentStatus(standard) {\n this.addDashboardItem({\n stats: {\n id: 'chart_classifications',\n title: 'Classifications',\n },\n cols: 3,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_risk_assessment',\n title: 'Risk Assessments',\n },\n cols: 3,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_risk_treatments',\n title: 'Risk Treatments',\n },\n cols: 3,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_risk_owner',\n title: 'Risk Acceptance',\n },\n cols: 3,\n });\n\n const queries = `language=${selectedLanguage}&standard=${standard || ''}`;\n const s1 = $.get(`/api/masterplans/${selectedMasterPlan.id}/isra/Statistics/DeploymentStatuses?${queries}`);\n\n s1.done((data) => {\n // const total = 0;\n // undeployed, deployed, finished,\n\n const classification = [0, 0, 0];\n const classificationStatus = [[], [], []];\n\n const assessment = [0, 0, 0];\n const assessmentStatus = [[], [], []];\n\n const treatment = [0, 0, 0];\n const treatmentStatus = [[], [], []];\n\n const acceptance = [0, 0, 0];\n const acceptanceStatus = [[], [], []];\n\n for (let i = 0; i < data.length; ++i) {\n let pos = 0;\n\n // Classifications\n if (data[i].classification === Constants.DeploymentStatus.Finished) {\n pos = 0;\n } else if (data[i].classification === Constants.DeploymentStatus.DataEntry) {\n pos = 1;\n } else {\n pos = 2;\n }\n\n classification[pos] += 1;\n classificationStatus[pos].push(data[i].application);\n\n // Questionnaires\n if (data[i].assessment === Constants.DeploymentStatus.Finished) {\n pos = 0;\n } else if (data[i].assessment === Constants.DeploymentStatus.DataEntry) {\n pos = 1;\n } else {\n pos = 2;\n }\n\n assessment[pos] += 1;\n assessmentStatus[pos].push(data[i].application);\n\n // Treatment\n if (data[i].treatment === Constants.DeploymentStatus.Finished) {\n pos = 0;\n } else if (data[i].treatment === Constants.DeploymentStatus.DataEntry) {\n pos = 1;\n } else {\n pos = 2;\n }\n\n treatment[pos] += 1;\n treatmentStatus[pos].push(data[i].application);\n\n // Acceptance\n if (data[i].acceptance === Constants.DeploymentStatus.Finished) {\n pos = 0;\n } else if (data[i].acceptance === Constants.DeploymentStatus.DataEntry) {\n pos = 1;\n } else {\n pos = 2;\n }\n\n acceptance[pos] += 1;\n acceptanceStatus[pos].push(data[i].application);\n }\n\n new Chart('chart_classifications', this.getDefaultChart({\n type: 'doughnut',\n labels: ['Finished', 'In Progress', 'Undeployed'],\n datasets: [\n {\n label: 'Classification Deployments',\n data: classification,\n backgroundColor: ['#aaffaa', '#fff0aa', '#ffaaaa'],\n tooltips: classificationStatus,\n },\n ],\n options: {\n circumference: Math.PI,\n rotation: -Math.PI,\n cutoutPercentage: 60,\n },\n }));\n\n new Chart('chart_risk_assessment', this.getDefaultChart({\n type: 'doughnut',\n labels: ['Finished', 'In Progress', 'Undeployed'],\n datasets: [\n {\n label: 'Risk Assessment Deployments',\n data: assessment,\n backgroundColor: ['#aaffaa', '#fff0aa', '#ffaaaa'],\n tooltips: assessmentStatus,\n },\n ],\n options: {\n circumference: Math.PI,\n rotation: -Math.PI,\n cutoutPercentage: 60,\n },\n }));\n\n new Chart('chart_risk_treatments', this.getDefaultChart({\n type: 'doughnut',\n labels: ['Finished', 'In Progress', 'Undeployed'],\n datasets: [\n {\n label: 'Risk Treatment Deployments',\n data: treatment,\n backgroundColor: ['#aaffaa', '#fff0aa', '#ffaaaa'],\n tooltips: treatmentStatus,\n },\n ],\n options: {\n circumference: Math.PI,\n rotation: -Math.PI,\n cutoutPercentage: 60,\n },\n }));\n\n new Chart('chart_risk_owner', this.getDefaultChart({\n type: 'doughnut',\n labels: ['Finished', 'In Progress', 'Undeployed'],\n datasets: [\n {\n label: 'Risk Assessment Deployments',\n data: acceptance,\n backgroundColor: ['#aaffaa', '#fff0aa', '#ffaaaa'],\n tooltips: acceptanceStatus,\n },\n ],\n options: {\n circumference: Math.PI,\n rotation: -Math.PI,\n cutoutPercentage: 60,\n },\n }));\n })\n .fail((error) => {\n Helpers.showError(error.responseText, 'Getting statistics failed');\n })\n .always(() => {\n // kendo.ui.progress($(this.div), false);\n });\n }\n\n showClassifications(standard) {\n this.addDashboardItem({\n stats: {\n id: 'chart_confidentiality',\n title: 'Confidentiality',\n },\n cols: 3,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_integrity',\n title: 'Integrity',\n },\n cols: 3,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_availability',\n title: 'Availability',\n },\n cols: 3,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_criticality',\n title: 'Criticality',\n },\n cols: 3,\n });\n\n const queries = `language=${selectedLanguage}&standard=${standard || ''}`;\n const s1 = $.get(`/api/masterplans/${selectedMasterPlan.id}/isra/Statistics/Classifications?${queries}`);\n\n s1.done((data) => {\n const labels = ['Not Calculated'];\n const conf = [0];\n const confTooltips = [[]];\n\n const inte = [0];\n const inteTooltips = [[]];\n\n const avai = [0];\n const avaiTooltips = [[]];\n\n const crit = [0];\n const critTooltips = [[]];\n\n const scales = DataSources.IsraClassificationScales.view();\n\n const colors = ['#bbbbbb'];\n\n for (let i = 0; i < scales.length; ++i) {\n labels.push(scales[i].translations[selectedLanguage].name);\n colors.push(scales[i].color);\n\n // const pos = i + 1;\n\n conf.push(0);\n confTooltips.push([]);\n\n inte.push(0);\n inteTooltips.push([]);\n\n avai.push(0);\n avaiTooltips.push([]);\n\n crit.push(0);\n critTooltips.push([]);\n }\n\n for (let i = 0; i < data.length; ++i) {\n let pos = 0;\n\n if (data[i].confidentiality !== 0) {\n while (scales[pos].id !== data[i].confidentiality) {\n ++pos;\n }\n pos += 1; // because 0 is not existing\n }\n conf[pos]++;\n confTooltips[pos].push(data[i].application);\n\n pos = 0;\n if (data[i].integrity !== 0) {\n while (scales[pos].id !== data[i].integrity) {\n ++pos;\n }\n pos += 1; // because 0 is not existing\n }\n inte[pos]++;\n inteTooltips[pos].push(data[i].application);\n\n pos = 0;\n if (data[i].availability !== 0) {\n while (scales[pos].id !== data[i].availability) {\n ++pos;\n }\n pos += 1; // because 0 is not existing\n }\n avai[pos]++;\n avaiTooltips[pos].push(data[i].application);\n\n pos = 0;\n if (data[i].criticality !== 0) {\n while (scales[pos].id !== data[i].criticality) {\n ++pos;\n }\n pos += 1; // because 0 is not existing\n }\n crit[pos]++;\n critTooltips[pos].push(data[i].application);\n }\n\n new Chart('chart_confidentiality', this.getDefaultChart({\n type: 'bar',\n labels: labels,\n datasets: [\n {\n data: conf,\n backgroundColor: colors,\n tooltips: confTooltips,\n },\n ],\n options: {\n legend: {\n display: false,\n },\n },\n }));\n\n new Chart('chart_integrity', this.getDefaultChart({\n type: 'bar',\n labels: labels,\n datasets: [\n {\n data: inte,\n backgroundColor: colors,\n tooltips: inteTooltips,\n },\n ],\n options: {\n legend: {\n display: false,\n },\n },\n }));\n\n new Chart('chart_availability', this.getDefaultChart({\n type: 'bar',\n labels: labels,\n datasets: [\n {\n data: avai,\n backgroundColor: colors,\n tooltips: avaiTooltips,\n },\n ],\n options: {\n legend: {\n display: false,\n },\n },\n }));\n\n new Chart('chart_criticality', this.getDefaultChart({\n type: 'bar',\n labels: labels,\n datasets: [\n {\n data: crit,\n backgroundColor: colors,\n tooltips: critTooltips,\n },\n ],\n options: {\n legend: {\n display: false,\n },\n },\n }));\n })\n .fail((error) => {\n Helpers.showError(error.responseText, 'Getting statistics failed');\n })\n .always(() => {\n // kendo.ui.progress($(this.div), false);\n });\n }\n\n showStandardizationDetails(standard) {\n // Questionnaires Status - classification - Current Risks - Residual Risks\n\n const queries = `language=${selectedLanguage}&standard=${standard || ''}`;\n const s1 = $.get(`/api/masterplans/${selectedMasterPlan.id}/isra/Statistics/StandardizationRisks?${queries}`);\n\n s1.done((data) => {\n const riskScales = DataSources.IsraRiskScales.view();\n // const implementationValues = DataSources.IsraTreatmentAnswers.view();\n // const controlStrengthScales = DataSources.IsraControlStrengthScales.view();\n // const treatmentPrioritizationScales = DataSources.IsraTreatmentPrioritizationScales.view();\n\n const riskScaleNames = [];\n const riskScaleColors = [];\n const riskScaleTranslations = {};\n\n const currentRisks = [];\n const currentRisksStatus = [];\n\n const residualRisks = [];\n const residualRisksStatus = [];\n\n // ict\n // labels = ICT Categories\n // datasets = risk scales\n\n const ictRiskCategoriesNames = [];\n const ictRiskCategoriesDatasets = [];\n const ictRiskCategoriesDatasetsTranslation = {};\n\n // const controlStrengthNames = [];\n // const controlStrengthDatasets = [];\n // const controlStrengthDatasetsTranslation = {};\n\n // const controlStrengthImplementationDatasets = [];\n // const implementationTranslation = {};\n\n // const treatmentPrioritizationScalesValues = [];\n // const treatmentPrioritizationScalesColors = [];\n // const treatmentPrioritizationScalesLabels = [];\n // const treatmentPrioritizationScalesTranslations = [];\n // const treatmentPrioritizationStatus = [];\n\n // for (let i = 0; i < treatmentPrioritizationScales.length; ++i) {\n // treatmentPrioritizationScalesValues.push(0);\n // treatmentPrioritizationScalesColors.push(treatmentPrioritizationScales[i].color);\n // treatmentPrioritizationScalesLabels.push(treatmentPrioritizationScales[i].translations[selectedLanguage].name);\n // treatmentPrioritizationScalesTranslations[treatmentPrioritizationScales[i].translations[selectedLanguage].name] = i;\n // treatmentPrioritizationStatus[i] = [];\n // }\n\n // const colors = ['#ffcccc', '#ffffcc', '#ccffcc'];\n // for (let i = 0; i < implementationValues.length; ++i) {\n // implementationTranslation[implementationValues[i].translations[selectedLanguage].answer] = i;\n\n // controlStrengthImplementationDatasets.push({\n // label: implementationValues[i].translations[selectedLanguage].answer,\n // data: [],\n // tooltips: [],\n // backgroundColor: colors[i],\n // });\n // }\n // implementationTranslation.None = implementationValues.length;\n // controlStrengthImplementationDatasets.push({\n // label: 'No Data',\n // data: [],\n // tooltips: [],\n // });\n\n // for (let i = 0; i < controlStrengthScales.length; ++i) {\n // controlStrengthNames.push(controlStrengthScales[i].translations[selectedLanguage].name);\n\n // controlStrengthDatasetsTranslation[controlStrengthScales[i].translations[selectedLanguage].name] = i;\n\n // controlStrengthDatasets.push({\n // label: controlStrengthScales[i].translations[selectedLanguage].name,\n // data: [],\n // backgroundColor: riskScales[i].color,\n // tooltips: [],\n // });\n\n // // + 1 for none\n // for (let j = 0; j < implementationValues.length + 1; ++j) {\n // controlStrengthImplementationDatasets[j].data.push(0);\n // controlStrengthImplementationDatasets[j].tooltips.push([]);\n // }\n // }\n\n const riskRadarLabels = [];\n const riskRadarTooltips = {};\n const riskRadarDataset = [\n {\n label: 'Current',\n data: [],\n borderColor: '#ff5555',\n pointBackgroundColor: '#ff5555',\n },\n {\n label: 'Residual',\n data: [],\n borderColor: '#5555ff',\n pointBackgroundColor: '#5555ff',\n }];\n\n for (let i = 0; i < riskScales.length; ++i) {\n riskScaleNames.push(riskScales[i].translations[selectedLanguage].name);\n riskScaleColors.push(riskScales[i].color);\n riskScaleTranslations[riskScales[i].translations[selectedLanguage].name] = i;\n\n currentRisks[i] = 0;\n currentRisksStatus[i] = [];\n\n residualRisks[i] = 0;\n residualRisksStatus[i] = [];\n\n ictRiskCategoriesDatasets.push({\n label: riskScales[i].translations[selectedLanguage].name,\n data: [],\n backgroundColor: riskScales[i].color,\n tooltips: [],\n });\n\n // for (let j = 0; j < controlStrengthDatasets.length; ++j) {\n // controlStrengthDatasets[j].data.push(0);\n // controlStrengthDatasets[j].tooltips.push([]);\n // }\n }\n\n const ictRiskCategories = DataSources.IsraIctRiskCategories.view();\n for (let i = 0; i < ictRiskCategories.length; ++i) {\n for (let j = 0; j < ictRiskCategoriesDatasets.length; ++j) {\n ictRiskCategoriesDatasets[j].data.push(0);\n ictRiskCategoriesDatasets[j].tooltips.push([]);\n }\n\n ictRiskCategoriesDatasetsTranslation[ictRiskCategories[i].translations[selectedLanguage].name] = i;\n\n ictRiskCategoriesNames.push(ictRiskCategories[i].translations[selectedLanguage].name);\n }\n\n if (data != null) {\n for (let i = 0; i < data.length; ++i) {\n if (data[i].currentValue !== 0) {\n currentRisks[riskScaleTranslations[data[i].current]] += 1;\n currentRisksStatus[riskScaleTranslations[data[i].current]].push(data[i].name);\n\n ictRiskCategoriesDatasets[riskScaleTranslations[data[i].current]].data[ictRiskCategoriesDatasetsTranslation[data[i].ictCategory]] += 1;\n ictRiskCategoriesDatasets[riskScaleTranslations[data[i].current]].tooltips[ictRiskCategoriesDatasetsTranslation[data[i].ictCategory]].push(data[i].name);\n }\n\n if (data[i].residualValue !== 0) {\n residualRisks[riskScaleTranslations[data[i].residual]] += 1;\n residualRisksStatus[riskScaleTranslations[data[i].residual]].push(data[i].name);\n }\n\n if (data[i].currentValue >= 1) {\n riskRadarLabels.push(data[i].id);\n riskRadarTooltips[data[i].id] = data[i].name;\n riskRadarDataset[0].data.push(Math.round(data[i].currentValue));\n riskRadarDataset[1].data.push(Math.round(data[i].residualValue));\n\n for (let j = 0; j < data[i].controls.length; ++j) {\n if (!data[i].controls[j].needsImplementation) {\n continue;\n }\n\n // controlStrengthDatasets[controlStrengthDatasetsTranslation[data[i].controls[j].controlStrength]].data[riskScaleTranslations[data[i].current]] += 1;\n // controlStrengthDatasets[controlStrengthDatasetsTranslation[data[i].controls[j].controlStrength]].tooltips[riskScaleTranslations[data[i].current]].push(data[i].controls[j].control);\n\n // const answer = implementationTranslation[(data[i].controls[j].treatmentAnswer || 'None')];\n // controlStrengthImplementationDatasets[answer].data[controlStrengthDatasetsTranslation[data[i].controls[j].controlStrength]] += 1;\n // controlStrengthImplementationDatasets[answer].tooltips[controlStrengthDatasetsTranslation[data[i].controls[j].controlStrength]].push(data[i].controls[j].control);\n\n // treatmentPrioritizationScalesValues[treatmentPrioritizationScalesTranslations[data[i].controls[j].treatmentPrioritizationScale]] += 1;\n // treatmentPrioritizationStatus[treatmentPrioritizationScalesTranslations[data[i].controls[j].treatmentPrioritizationScale]].push(data[i].controls[j].control);\n }\n }\n }\n }\n\n this.addDashboardItem({\n stats: {\n id: 'chart_risksradar',\n title: 'Current - Residual Risks',\n },\n cols: 6,\n rows: 2,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_currentrisks',\n title: 'Current Risks',\n },\n cols: 3,\n });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_residualrisks',\n title: 'Residual Risks',\n },\n cols: 3,\n });\n\n // this.addDashboardItem({\n // stats: {\n // id: 'chart_prioritization',\n // title: 'Implementation Prioritization',\n // },\n // cols: 4,\n // });\n\n this.addDashboardItem({\n stats: {\n id: 'chart_ictCurrentRisks',\n title: 'ICT Risk Categories - Current Risks',\n },\n cols: 6,\n });\n\n // this.addDashboardItem({\n // stats: {\n // id: 'chart_risk_control_strength',\n // title: 'Risk Levels / Control Strength',\n // },\n // cols: 7,\n // });\n\n // this.addDashboardItem({\n // stats: {\n // id: 'chart_control_strength_implementation',\n // title: 'Control Strength / Implementation',\n // },\n // cols: 7,\n // });\n\n new Chart('chart_currentrisks', this.getDefaultChart({\n type: 'pie',\n labels: riskScaleNames,\n datasets: [\n {\n label: 'Current Risk Levels',\n data: currentRisks,\n backgroundColor: riskScaleColors,\n tooltips: currentRisksStatus,\n },\n ],\n }));\n\n new Chart('chart_residualrisks', this.getDefaultChart({\n type: 'pie',\n labels: riskScaleNames,\n datasets: [\n {\n label: 'Residual Risk Levels',\n data: residualRisks,\n backgroundColor: riskScaleColors,\n tooltips: residualRisksStatus,\n },\n ],\n }));\n\n // new Chart('chart_prioritization', this.getDefaultChart({\n // type: 'pie',\n // labels: treatmentPrioritizationScalesLabels,\n // datasets: [\n // {\n // data: treatmentPrioritizationScalesValues,\n // backgroundColor: treatmentPrioritizationScalesColors,\n // tooltips: treatmentPrioritizationStatus,\n // },\n // ],\n // }));\n\n new Chart('chart_ictCurrentRisks', this.getDefaultChart({\n type: 'bar',\n labels: ictRiskCategoriesNames,\n datasets: ictRiskCategoriesDatasets,\n }));\n\n new Chart('chart_risksradar', this.getDefaultChart({\n type: 'radar',\n labels: riskRadarLabels,\n datasets: riskRadarDataset,\n options: {\n tooltipCallback: function (tooltipItem, data) {\n return riskRadarTooltips[data.labels[tooltipItem.index]];\n },\n },\n }));\n\n // new Chart('chart_risk_control_strength', this.getDefaultChart({\n // type: 'bar',\n // labels: riskScaleNames,\n // datasets: controlStrengthDatasets,\n // options: {\n // scales: {\n // xAxes: [\n // {\n // scaleLabel: {\n // display: true,\n // labelString: 'Current Risk Level',\n // },\n // }],\n // yAxes: [\n // {\n // scaleLabel: {\n // display: true,\n // labelString: 'Number of Controls per Control Strength',\n // },\n // }],\n // },\n // },\n // }));\n\n // new Chart('chart_control_strength_implementation', this.getDefaultChart({\n // type: 'bar',\n // labels: controlStrengthNames,\n // datasets: controlStrengthImplementationDatasets,\n // options: {\n // scales: {\n // xAxes: [\n // {\n // scaleLabel: {\n // display: true,\n // labelString: 'Control Strength',\n // },\n // }],\n // yAxes: [\n // {\n // ticks: {\n // beginAtZero: true,\n // },\n // scaleLabel: {\n // display: true,\n // labelString: 'Implementation Answer',\n // },\n // }],\n // },\n // },\n // }));\n });\n }\n}\n","import { selectedMasterPlan, selectedLanguage, settings } from '../../../main.js';\nimport DataSources from '../../../Core/datasources.js';\nimport Selectors from '../../../Core/Selectors.js';\nimport { Helpers } from '../../../Core/Helpers.js';\nimport Constants from '../../../Core/constants.js';\nimport DeploymentFormBase from '../../DeploymentFormBase';\n\nexport default class Deployments extends DeploymentFormBase {\n constructor() {\n super('Deployments', 'general');\n this.api = 'bc/Deployments';\n\n this.firstDataBound = true;\n\n this.options = {\n parse: this.parseData,\n parameterMap: this.mapData,\n // cancelOnError: true,\n };\n\n this.menuOptions.open = function (e) {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem($(e.target));\n\n const edit = item.status === Constants.DeploymentStatus.Undeployed;\n\n this.enable('[action=edit]', edit);\n this.enable('[action=delete]', edit);\n\n this.enable('[action=deploy]', edit);\n\n // const abort = !edit && item.status !== Constants.DeploymentStatus.Finished;\n\n this.enable('[action=abort]', !edit);\n this.enable('[action=reject]', false);\n };\n\n this.menu = {\n edit: {\n title: 'Edit',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.editDeployment(item, e.target);\n },\n },\n delete: {\n title: 'Remove',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.destroyDeployment(item, e.target);\n },\n },\n\n sep1: {\n cssClass: 'k-separator',\n },\n\n deploy: {\n title: 'Deploy',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.deployDeployment(\n `/api/masterplans/${selectedMasterPlan.id}/bc/Deployments/${item.id}/deploy`,\n item,\n );\n },\n },\n\n abort: {\n title: 'Abort',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.abortDeployment(\n `/api/masterplans/${selectedMasterPlan.id}/bc/Deployments/${item.id}/abort`,\n item,\n );\n },\n },\n\n reject: {\n title: 'Reject',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.rejectDeployment(item);\n },\n },\n };\n\n this.columns = [\n {\n title: 'Status',\n binding: 'status',\n defaultValue: '0',\n editable: () => false,\n sort: 'asc',\n template: function (dataItem) {\n return Constants.DeploymentStatusTranslations[dataItem.status].translations[selectedLanguage];\n },\n },\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Deployment',\n required: true,\n translatable: true,\n editable: (dataItem) => (dataItem.status === Constants.DeploymentStatus.Undeployed) ||\n dataItem.isNew(),\n sort: 'asc',\n filterable: true,\n },\n {\n title: 'Comment',\n binding: 'comment',\n defaultValue: '',\n required: false,\n translatable: true,\n editable: (dataItem) => (dataItem.status === Constants.DeploymentStatus.Undeployed) ||\n dataItem.isNew(),\n },\n {\n title: 'Partition',\n binding: 'partitionId',\n required: true,\n editable: (dataItem) => (dataItem.status === Constants.DeploymentStatus.Undeployed) ||\n dataItem.isNew(),\n template: (dataItem) => {\n const item = DataSources.Partitions.get(dataItem.partitionId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return 'No Partition Selected';\n }\n },\n editor: (container, options) => this.partitionSelector(container, options),\n },\n {\n title: 'Types',\n binding: 'types',\n template: (dataItem) => {\n let str = '';\n let first = true;\n if (dataItem.hasAssets) {\n str += 'Assets';\n\n first = false;\n }\n if (dataItem.hasApplications) {\n if (!first) {\n str += ', ';\n }\n\n first = false;\n\n str += 'Apps';\n }\n if (dataItem.hasInterdependencies) {\n if (!first) {\n str += ', ';\n }\n\n first = false;\n\n str += 'Inter';\n }\n if (dataItem.hasOperationalImpact) {\n if (!first) {\n str += ', ';\n }\n\n first = false;\n\n str += 'Oper';\n }\n if (dataItem.hasFinancialImpact) {\n if (!first) {\n str += ', ';\n }\n\n first = false;\n\n str += 'Fin';\n }\n if (dataItem.hasContacts) {\n if (!first) {\n str += ', ';\n }\n\n first = false;\n\n str += 'Cont';\n }\n if (dataItem.hasRiskAssessment) {\n if (!first) {\n str += ', ';\n }\n\n first = false;\n\n str += 'Risk';\n }\n\n return str;\n },\n editable: false,\n editor: () => null, // return null\n },\n {\n title: 'Surveys',\n binding: 'surveys',\n defaultValue: [],\n hidden: true,\n editor: (container, options) => this.surveysGrid(container, options),\n },\n {\n title: 'Due Date',\n binding: 'dueDate',\n defaultValue: this.getDefaultDueDate(),\n template: (dataItem) => Selectors.DateTemplate(dataItem, 'dueDate'),\n editor: (container, options) => Selectors.DatePicker(container, options, 'dueDate'),\n editable: (dataItem) => (dataItem.status === Constants.DeploymentStatus.Undeployed) ||\n dataItem.isNew(),\n },\n {\n title: 'Assets',\n binding: 'hasAssets',\n hidden: true,\n type: 'boolean',\n editable: (dataItem) => (dataItem.status === Constants.DeploymentStatus.Undeployed) ||\n dataItem.isNew(),\n },\n {\n title: 'Systems',\n binding: 'hasApplications',\n hidden: true,\n type: 'boolean',\n editable: (dataItem) => (dataItem.status === Constants.DeploymentStatus.Undeployed) ||\n dataItem.isNew(),\n },\n {\n title: 'Interdependencies',\n binding: 'hasInterdependencies',\n hidden: true,\n type: 'boolean',\n editable: (dataItem) => (dataItem.status === Constants.DeploymentStatus.Undeployed) ||\n dataItem.isNew(),\n },\n {\n title: 'Operational Impact',\n binding: 'hasOperationalImpact',\n hidden: true,\n type: 'boolean',\n editable: (dataItem) => (dataItem.status === Constants.DeploymentStatus.Undeployed) ||\n dataItem.isNew(),\n },\n {\n title: 'Financial Impact',\n binding: 'hasFinancialImpact',\n hidden: true,\n type: 'boolean',\n editable: (dataItem) => (dataItem.status === Constants.DeploymentStatus.Undeployed) ||\n dataItem.isNew(),\n },\n {\n title: 'Contacts',\n binding: 'hasContacts',\n hidden: true,\n type: 'boolean',\n editable: (dataItem) => (dataItem.status === Constants.DeploymentStatus.Undeployed) ||\n dataItem.isNew(),\n },\n {\n title: 'Risk Assessment',\n binding: 'hasRiskAssessment',\n defaultValue: false,\n hidden: true,\n editable: (dataItem) => (dataItem.status === Constants.DeploymentStatus.Undeployed) ||\n dataItem.isNew(),\n template: (dataItem) => {\n let txt = '';\n if (dataItem.hasRiskAssessment !== false && dataItem.selfAssessmentType > 0) {\n txt = ' - ' + Constants.RiskSelfAssessmentTypeTranslations[dataItem.selfAssessmentType -\n 1].translations[selectedLanguage];\n }\n\n return '' + txt;\n },\n editor: (container, options) => {\n $('')\n .appendTo(container);\n\n $('')\n .appendTo(container)\n .kendoDropDownList({\n autoBind: true,\n valuePrimitive: true,\n optionLabel: {\n translations: {\n 'en-US': 'Select a Risk Deployment Type...',\n 'el-GR': 'Select a Risk Deployment Type...',\n },\n id: null,\n },\n dataTextField: 'translations[\\'' + selectedLanguage + '\\']',\n dataValueField: 'id',\n dataSource: Constants.RiskSelfAssessmentTypeTranslations,\n });\n\n const drop = $('[name=\"selfAssessmentType\"]')\n .data('kendoDropDownList');\n\n if (options.model.hasRiskAssessment === false) {\n drop.wrapper.hide();\n }\n\n $('[name=\"hasRiskAssessment\"]')\n .on('change', function (e) {\n if (e.target.checked === true) {\n $('[name=\"selfAssessmentType\"]')\n .attr('required', true);\n drop.wrapper.show();\n } else {\n $('[name=\"selfAssessmentType\"]')\n .attr('required', false);\n drop.wrapper.hide();\n }\n });\n },\n },\n {\n title: 'Data Entry',\n binding: 'dataEntry',\n defaultValue: [],\n hidden: true,\n editor: (container, options) => this.dataEntryEditor(container, options),\n },\n {\n title: 'Approval Path',\n binding: 'approvalPath',\n defaultValue: [],\n hidden: true,\n editor: (container, options) => this.approvalPathEditor(container, options),\n },\n ];\n }\n\n require() {\n const data = [\n DataSources.Surveys,\n DataSources.Partitions,\n DataSources.Users,\n DataSources.HierarchicalPartitions];\n return data;\n }\n\n init() {\n if (!settings.sso && DataSources.Users.data().length === 0) {\n kendo.alert('Users are empty. Please add users before creating deployments');\n return;\n }\n\n if (DataSources.Surveys.data().length === 0) {\n kendo.alert('Surveys are empty. Please add a survey before creating deployments.');\n return;\n }\n\n if (DataSources.Partitions.data().length === 0) {\n kendo.alert('Partitions are empty. Please add a partition before creating deployments.');\n return;\n }\n\n super.init();\n }\n\n setCustomDatasourceProperties() {\n // do not call parent\n // super.setCustomDatasourceProperties(source);\n }\n\n setCustomGridProperties(grid) {\n grid.columns[grid.columns.length - 1] = {\n command: [\n {\n text: 'Edit',\n click: (e) => {\n const row = $(e.currentTarget)\n .closest('tr');\n const dataItem = $(this.grid)\n .data('kendoGrid')\n .dataItem(row);\n this.editDeployment(dataItem, row);\n },\n }, {\n text: 'Delete',\n click: (e) => {\n const row = $(e.currentTarget)\n .closest('tr');\n const dataItem = $(this.grid)\n .data('kendoGrid')\n .dataItem(row);\n this.destroyDeployment(dataItem, row);\n },\n }],\n width: 100,\n };\n\n grid.toolbar = [\n {\n name: 'create',\n text: 'New',\n },\n {\n template: 'Deploy',\n },\n {\n template: 'Abort',\n },\n {\n name: 'excel',\n text: 'Export',\n },\n ];\n\n grid.editable = 'popup';\n\n const edit = grid.edit;\n grid.edit = (e) => {\n edit.call(e.sender, e);\n\n e.container.find('label[for=status]')\n .parent('div .k-edit-label')\n .hide();\n e.container.find('label[for=status]')\n .parent()\n .next('div .k-edit-field')\n .hide();\n\n e.container.find('label[for=types]')\n .parent('div .k-edit-label')\n .hide();\n e.container.find('label[for=types]')\n .parent()\n .next('div .k-edit-field')\n .hide();\n };\n\n this.firstDataBound = true;\n\n // handle edit on double click\n grid.dataBound = () => {\n if (this.firstDataBound) {\n this.firstDataBound = false;\n\n $('#Deployments-Deploy')\n .click((e) => this.deployDeploymentEvent(e));\n $('#Deployments-Abort')\n .click((e) => this.abortDeploymentEvent(e));\n\n const grid = $(this.grid)\n .data('kendoGrid');\n\n grid.element\n .off('dblclick', 'tbody tr[data-uid]')\n .on('dblclick', 'tbody tr[data-uid]', (e) => {\n const row = $(e.currentTarget)\n .closest('tr');\n const dataItem = $(this.grid)\n .data('kendoGrid')\n .dataItem(row);\n this.editDeployment(dataItem, row);\n });\n }\n };\n }\n\n parseData(data) {\n // const offsetMiliseconds = new Date().getTimezoneOffset() * 60000;\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].start != null) {\n data[i].start = data[i].start + 'Z';\n }\n\n if (data[i].dueDate != null) {\n if (data[i].dueDate.slice(-1) !== 'Z') {\n data[i].dueDate = data[i].dueDate + 'Z';\n }\n }\n\n if (data[i].finish != null) {\n data[i].finish = data[i].finish + 'Z';\n }\n\n // if(i.start != null)\n // i.start = i.start + offsetMiliseconds;\n }\n return data;\n }\n\n mapData(data) {\n return data;\n }\n\n editDeployment(deployment, row) {\n $(this.grid)\n .data('kendoGrid')\n .editRow(row);\n }\n\n destroyDeployment(deployment, row) {\n if (deployment.status > 0) {\n Helpers.showError('Cannot delete a deployed deployment');\n return;\n }\n\n $(this.grid)\n .data('kendoGrid')\n .removeRow(row);\n }\n\n rejectDeployment() {\n }\n\n deployDeploymentEvent() {\n const grid = $(this.grid)\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n this.deployDeployment(\n `/api/masterplans/${selectedMasterPlan.id}/bc/Deployments/${selectedItem.id}/deploy`,\n selectedItem,\n );\n }\n\n abortDeploymentEvent() {\n const grid = $(this.grid)\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n this.abortDeployment(\n `/api/masterplans/${selectedMasterPlan.id}/bc/Deployments/${selectedItem.id}/abort`,\n selectedItem,\n );\n }\n\n partitionSelector(container, options) {\n const that = this;\n $('')\n .appendTo(container)\n .kendoDropDownTree({\n placeholder: 'Select ...',\n height: 'auto',\n dataSource: DataSources.HierarchicalPartitions,\n valuePrimitive: true,\n dataTextField: 'name',\n dataValueField: 'id',\n loadOnDemand: false,\n filter: 'contains',\n change: function() {\n const value = DataSources.HierarchicalPartitions.get(this.value());\n if(value == null || (value.subPartitions != null && value.subPartitions.length > 0)){\n $('[for=\"hasAssets\"]').parent().hide();\n $('[data-container-for=\"hasAssets\"]').hide();\n $('[for=\"hasApplications\"]').parent().hide();\n $('[data-container-for=\"hasApplications\"]').hide();\n $('[for=\"hasInterdependencies\"]').parent().hide();\n $('[data-container-for=\"hasInterdependencies\"]').hide();\n $('[for=\"hasOperationalImpact\"]').parent().hide();\n $('[data-container-for=\"hasOperationalImpact\"]').hide();\n $('[for=\"hasFinancialImpact\"]').parent().hide();\n $('[data-container-for=\"hasFinancialImpact\"]').hide();\n $('[for=\"hasContacts\"]').parent().hide();\n $('[data-container-for=\"hasContacts\"]').hide();\n $('[for=\"hasRiskAssessment\"]').parent().hide();\n $('[data-container-for=\"hasRiskAssessment\"]').hide();\n }else{\n $('[for=\"hasAssets\"]').parent().show();\n $('[data-container-for=\"hasAssets\"]').show();\n $('[for=\"hasApplications\"]').parent().show();\n $('[data-container-for=\"hasApplications\"]').show();\n $('[for=\"hasInterdependencies\"]').parent().show();\n $('[data-container-for=\"hasInterdependencies\"]').show();\n $('[for=\"hasOperationalImpact\"]').parent().show();\n $('[data-container-for=\"hasOperationalImpact\"]').show();\n $('[for=\"hasFinancialImpact\"]').parent().show();\n $('[data-container-for=\"hasFinancialImpact\"]').show();\n $('[for=\"hasContacts\"]').parent().show();\n $('[data-container-for=\"hasContacts\"]').show();\n $('[for=\"hasRiskAssessment\"]').parent().show();\n $('[data-container-for=\"hasRiskAssessment\"]').show();\n }\n }\n });\n }\n\n getDefaultDueDate() {\n const now = new Date();\n now.setMonth(now.getMonth() + 1);\n return now;\n }\n\n surveysGrid(container, options) {\n const enabled = options.model.status === Constants.DeploymentStatus.Undeployed ||\n options.model.isNew();\n\n let surveysfirst = true;\n $('
    ')\n .appendTo(container)\n .kendoGrid({\n toolbar: !enabled ? undefined : [\n { template: 'Add' },\n { template: 'Remove' },\n ],\n columns: [\n {\n field: 'surveyId',\n title: 'Survey',\n template: (dataItem) => this.surveyTemplate(dataItem),\n },\n ],\n resizable: true,\n sortable: true,\n editable: false,\n scrollable: true,\n selectable: 'row',\n autoBind: true,\n height: 120,\n dataBound: () => {\n if (enabled && surveysfirst === true) {\n surveysfirst = false;\n $('#Deployments-AddSurvey')\n .click((e) => this.addSurvey(e));\n $('#Deployments-RemoveSurvey')\n .click((e) => this.removeSurvey(e));\n }\n },\n })\n .data('kendoGrid');\n }\n\n surveyTemplate(dataItem) {\n const item = DataSources.Surveys.get(dataItem.surveyId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return 'Select a Survey';\n }\n }\n\n addSurvey() {\n const grid = $('#surveysListGrid')\n .data('kendoGrid');\n const parent = grid.dataSource.data()\n .parent();\n\n const content = '
    ';\n Helpers.showPopUp('Select Survey', content, [\n {\n text: 'Ok',\n primary: true,\n action: function () {\n const di = $('#surveysComboBox')\n .data('kendoComboBox')\n .dataItem();\n if (di != null) {\n parent.surveys.push({\n surveyId: di.id,\n });\n return true;\n }\n return false;\n },\n },\n {\n text: 'Cancel',\n action: function () {\n return true;\n },\n }]);\n\n const filters = [];\n for (let i = 0; i < parent.surveys.length; ++i) {\n filters.push({\n field: 'id',\n operator: 'neq',\n value: parent.surveys[i].surveyId,\n });\n }\n\n $('#surveysComboBox')\n .width(500)\n .kendoComboBox({\n // template: template,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n valuePrimitive: true,\n placeholder: 'Search...',\n index: 0,\n dataSource: {\n data: DataSources.Surveys.data(),\n filter: {\n logic: 'and',\n filters: filters,\n },\n sort: [\n {\n field: 'translations[\"' + selectedLanguage + '\"].name',\n dir: 'asc',\n },\n ],\n },\n filter: 'contains',\n suggest: true,\n });\n }\n\n removeSurvey() {\n const grid = $('#surveysListGrid')\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select a survey first');\n return;\n }\n\n grid.dataSource.remove(selectedItem);\n }\n\n destroy() {\n const grid = $(this.grid)\n .data('kendoGrid');\n if (grid) {\n grid.element.off('dblclick', 'tbody tr[data-uid]');\n }\n super.destroy();\n }\n}\n","import { selectedLanguage } from '../../main.js';\nimport FormBase from '../FormBase.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers';\n\nexport default class IsraRisks extends FormBase {\n constructor() {\n super('Risks', 'general');\n this.api = 'isra/Risks';\n\n this.columns = [\n {\n title: 'Id',\n binding: 'id',\n editable: () => false,\n defaultValue: '0',\n },\n {\n title: 'Risk',\n binding: 'name',\n required: true,\n sort: 'asc',\n defaultValue: 'New Risk',\n translatable: true,\n },\n {\n title: 'ICT Risk Category',\n binding: 'ictRiskCategoryId',\n required: true,\n template: this.ictRiskCategoryTemplate,\n editor: this.ictRiskCategorySelector,\n datasource: DataSources.IsraIctRiskCategories,\n sortField: 'translations.' + selectedLanguage + '.name',\n },\n {\n title: 'C',\n binding: 'confidentiality',\n defaultValue: false,\n type: 'boolean',\n width: 45,\n },\n {\n title: 'I',\n binding: 'integrity',\n defaultValue: false,\n type: 'boolean',\n width: 45,\n },\n {\n title: 'A',\n binding: 'availability',\n defaultValue: false,\n type: 'boolean',\n width: 45,\n },\n\n {\n title: 'Default Likelihood',\n binding: 'defaultLikelihood',\n defaultValue: 6,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 20,\n step: 0.1,\n },\n width: 150,\n },\n {\n title: 'Impact Reduction',\n binding: 'impactReduction',\n defaultValue: 1,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 1,\n step: 0.1,\n },\n format: '{0:p2}',\n width: 150,\n },\n {\n title: 'Probability Reduction',\n binding: 'probabilityReduction',\n defaultValue: 1,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 1,\n step: 0.1,\n },\n format: '{0:p2}',\n width: 150,\n },\n ];\n }\n\n init() {\n // likelihood max\n const l = [];\n DataSources.IsraLikelihoodScales.view()\n .forEach(i => l.push(i.value));\n this.columns[6].validation.max = Math.max(...l);\n\n super.init();\n }\n\n require() {\n return [DataSources.IsraIctRiskCategories, DataSources.IsraLikelihoodScales];\n }\n\n setCustomGridProperties(grid) {\n grid.groupable = true;\n }\n\n ictRiskCategoryTemplate(dataItem) {\n const item = DataSources.IsraIctRiskCategories.get(dataItem.ictRiskCategoryId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n\n ictRiskCategorySelector(container, options) {\n $('')\n .appendTo(container)\n .kendoComboBox({\n placeholder: 'Search...',\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.IsraIctRiskCategories,\n });\n }\n}\n","import { DeploymentUserDto } from '.';\nimport { IDto } from '..';\nimport { ApprovalPathStatus } from './DeploymentUserDto';\n\nexport enum DeploymentStatus\n{\n Undeployed = 0,\n DataEntry = 1,\n ApprovalPath = 2,\n AdminApproval = 3,\n Finished = 4,\n}\n\nexport interface BaseDeploymentDto extends IDto{\n name: string\n\n status: DeploymentStatus\n\n created: string\n started?: string\n dueDate?: string\n finished?: string\n\n message: string\n\n editable: boolean\n approvable: boolean\n rejectable: boolean\n\n currentUserStatus: ApprovalPathStatus\n\n users: Array\n}\n","import { IDto, SimpleUserDto } from '..';\n\nexport enum ApprovalPathStatus\n{\n Pending = 0,\n On = 1,\n Finished = 2\n}\n\nexport interface DeploymentUserDto extends IDto {\n user: SimpleUserDto\n\n pathStatus: ApprovalPathStatus\n\n order: number\n allowFinishingDataEntry: boolean\n\n assigned?: string\n finished?: string\n}\n","import { IDto } from '..';\n\nenum DocumentType\n{\n BusinessContinuityReport = 1\n}\n\nenum DocumentFileFormat\n{\n Unknown = 0,\n Pdf = 1,\n Word = 2,\n Excel = 3,\n Csv = 4,\n}\n\ninterface DocumentDto extends IDto\n{\n type: DocumentType\n fileName: string\n format: DocumentFileFormat\n size: string\n multilingual: boolean\n languages?: Array\n}\n\ninterface FileDto {\n name: string\n data: string // base64 encoded\n format: DocumentFileFormat\n}\n\nexport {\n DocumentDto, DocumentFileFormat, DocumentType, FileDto,\n};\n","import FormBase from '../FormBase.js';\n\nexport default class IsraVulnerabilityCategories extends FormBase {\n constructor() {\n super('Vulnerability Categories', 'general');\n this.api = 'isra/VulnerabilityCategories';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Value',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n ];\n }\n}\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentTasks.vue?vue&type=style&index=0&id=5bfbd098&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentTasks.vue?vue&type=style&index=0&id=5bfbd098&scoped=true&lang=css&\"","import FormBase from '../../FormBase.js';\nimport Selectors from '../../../Core/Selectors.js';\nimport DataSources from '../../../Core/datasources.js';\n\nexport default class RiskLevels extends FormBase {\n constructor() {\n super('Risk Levels', 'riskLevels');\n this.api = 'bc/RiskLevels';\n\n this.columns = [\n {\n title: 'Value',\n binding: 'value',\n type: 'number',\n sort: 'asc',\n validation: { min: 0 },\n },\n {\n title: 'Name',\n binding: 'name',\n required: true,\n translatable: true,\n defaultValue: 'New Risk Scale',\n },\n {\n title: 'Color',\n binding: 'color',\n defaultValue: null,\n required: false,\n template: (dataItem) => Selectors.ColorTemplate(dataItem, 'color'),\n editor: (container, options) => Selectors.ColorSelector(container, options),\n },\n ];\n }\n\n require() {\n return [DataSources.RiskImpactScales, DataSources.RiskProbabilities];\n }\n\n setCustomGridProperties(grid) {\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n const lik = DataSources.RiskProbabilities.view();\n const imp = DataSources.RiskImpactScales.view();\n\n function compare(a, b) {\n if (a.value < b.value) {\n return -1;\n }\n if (a.value > b.value) {\n return 1;\n }\n return 0;\n }\n\n const data = this.datasource.data()\n .sort(compare);\n\n let prev = 0;\n for (let r = 0; r < data.length; ++r) {\n const max = data[r].value;\n for (let i = 0; i < lik.length; ++i) {\n for (let j = 0; j < imp.length; ++j) {\n const v = lik[i].value * imp[j].value;\n if (r < data.length - 1) {\n if (v < max && v >= prev) {\n $('#imp_lik_' + imp[j].value + '_' + lik[i].value)\n .css('background-color', data[r].color);\n }\n } else {\n if (v <= max && v >= prev) {\n $('#imp_lik_' + imp[j].value + '_' + lik[i].value)\n .css('background-color', data[r].color);\n }\n }\n }\n }\n prev = max;\n }\n };\n }\n\n init() {\n const container = $('#riskLevelsImpactProbabilityTable');\n container.empty();\n\n const lik = DataSources.RiskProbabilities.view();\n const imp = DataSources.RiskImpactScales.view();\n\n let table = '';\n\n table += '';\n\n for (let i = 0; i < imp.length; ++i) {\n table += '';\n }\n\n table += '';\n\n for (let i = 0; i < lik.length; ++i) {\n table += '';\n for (let j = 0; j < imp.length; ++j) {\n table += '';\n }\n\n table += '';\n\n if (i !== lik.length - 1) {\n table += '';\n }\n }\n table += '
    Impact
    ' + imp[i].value + '
    Probability' + lik[i].value + '' +\n (imp[j].value * lik[i].value) + '
    ';\n\n container.append(table);\n\n super.init();\n }\n}\n","import { DocumentFileFormat } from '@/dtos/all';\nimport DownloadService from '@/services/DownloadService';\nimport { Helpers } from '../../../Core/Helpers';\nimport { jwt, selectedLanguage, selectedMasterPlan } from '../../../main';\nimport FormBase from '../../FormBase';\n\nexport default class BcpDocument extends FormBase {\n constructor() {\n super('BCR Documents', 'general');\n this.api = 'bc/BcpGenerator';\n this.documentsApi = 'bc/BcpDocuments';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n required: false,\n sort: 'asc',\n },\n ];\n\n this.documentColumns = [\n {\n title: 'Name',\n binding: 'name',\n required: true,\n translatable: false,\n sort: 'asc',\n },\n {\n title: 'File',\n binding: 'hasFile',\n translatable: true,\n defaultValue: false,\n editable: () => false,\n template: (dataItem, language) => {\n if (dataItem.isNew()) {\n return '';\n }\n\n let t = '';\n if (dataItem.translations[language].hasFile === true) {\n const downloadApi = '/api/masterplans/' + selectedMasterPlan.id + '/bc/BcpDocuments/' +\n dataItem.partitionId + '/DownloadFile/' + dataItem.id + '/' + language;\n t += '';\n t += 'Download File';\n t += '';\n }\n\n t += '';\n t += 'Upload File';\n t += '';\n\n const api = '/api/masterplans/' + selectedMasterPlan.id + '/bc/BcpDocuments/' +\n dataItem.partitionId + '/UploadFile/' + dataItem.id + '/' + language;\n t += '
    ';\n\n t += '
    ';\n\n return t;\n },\n },\n ];\n }\n\n openTemplateSelector() {\n const grid = $(this.grid)\n .data('kendoTreeList');\n let selected = grid.select();\n\n if (grid.select() == null) {\n Helpers.showError('Please select a partition first');\n return;\n }\n\n selected = grid.dataItem(selected);\n\n let content = '
    ';\n content += '
    ';\n content += '
    ';\n\n Helpers.showPopUp2({\n title: 'BCP Documents for \"' + selected.name + '\"',\n content: content,\n actions: [\n {\n text: 'Cancel',\n action: function () {\n $('#bcpDocuments')\n .data('kendoGrid')\n .destroy();\n return true;\n },\n },\n {\n text: 'Ok',\n action: function () {\n $('#bcpDocuments')\n .data('kendoGrid')\n .destroy();\n return true;\n },\n },\n ],\n initOpen: () => {\n const tree = $(this.grid)\n .data('kendoTreeList');\n const partitionId = tree.dataItem(tree.select()).id;\n\n const source = Helpers.createDataSource(\n selectedMasterPlan, this.documentsApi + '/' + partitionId,\n jwt, this.documentColumns,\n );\n this.documentsDatasource = new kendo.data.DataSource(source);\n const documentCols = Helpers.createColumns(selectedMasterPlan, this.documentColumns);\n const documentGrid = Helpers.getDefaultGrid(selectedMasterPlan, this.documentsApi);\n documentGrid.height = 550;\n documentGrid.columns = documentCols;\n documentGrid.dataSource = this.documentsDatasource;\n const db = documentGrid.dataBound;\n documentGrid.dataBound = (e) => {\n db.call(e.sender, e);\n\n $('[name=\"downloadFile\"]')\n .off('click')\n .on('click', (e) => {\n kendo.ui.progress($('#bcpDocuments'), true);\n\n $.ajax({\n url: e.target.getAttribute('action'),\n method: 'GET',\n success: function (data) {\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Unknown,\n });\n\n },\n error(data) {\n Helpers.showError(data.responseText);\n },\n complete: () => {\n kendo.ui.progress($('#bcpDocuments'), false);\n },\n processData: false,\n });\n });\n\n $('[name=\"uploadFile\"]')\n .off('click')\n .on('click', (e) => {\n console.log('asdfasdf');\n $(e.target.closest('td'))\n .find('[name=\"fileSelector\"]')\n .click();\n });\n\n $('[name=\"fileSelector\"]')\n .off('change')\n .on('change', (e) => {\n const form = e.target.closest('form');\n const url = form.getAttribute('action');\n\n kendo.ui.progress($('#bcpDocuments'), true);\n\n const fd = new FormData();\n fd.append('file', $(e.target)[0].files[0]);\n\n $.ajax({\n url: url,\n type: 'POST',\n data: fd,\n success: () => {\n Helpers.showPopUp2({\n title: 'Success',\n content: 'File Uploaded successfully',\n });\n\n const grid = $('#bcpDocuments')\n .data('kendoGrid');\n const dataItem = grid.dataItem(e.target.closest('tr'));\n dataItem.translations[e.target.getAttribute('language')].hasFile = true;\n grid.refresh();\n\n kendo.ui.progress($('#bcpDocuments'), false);\n },\n error: function (data) {\n Helpers.showError(data.responseText);\n\n kendo.ui.progress($('#bcpDocuments'), true);\n },\n cache: false,\n contentType: false,\n processData: false,\n });\n });\n };\n\n $('#bcpDocuments')\n .kendoGrid(documentGrid);\n\n $('#bcpDocuments')\n .off(\n 'mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')',\n this.disableButtonsOnEdit,\n )\n .on(\n 'mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')',\n this.disableButtonsOnEdit,\n );\n },\n });\n }\n\n require() {\n return [];\n }\n\n init() {\n const source = Helpers.createDataSource(selectedMasterPlan, this.api, jwt, this.columns);\n source.schema.model.parentId = 'parentId';\n source.schema.model.expanded = true;\n delete source.pageSize;\n this.datasource = new kendo.data.TreeListDataSource(source);\n\n const grid = Helpers.getDefaultGrid(selectedMasterPlan, this.api);\n\n delete grid.toolbar;\n\n grid.columns = Helpers.createColumns(selectedMasterPlan, this.columns);\n\n grid.columns.splice(-1);\n grid.dataSource = this.datasource;\n grid.pageable = false;\n grid.editable = false;\n\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n e.sender.element\n .off('dblclick', 'tbody tr[data-uid]')\n .on('dblclick', 'tbody tr[data-uid]', () => {\n this.openTemplateSelector();\n });\n };\n\n $(this.grid)\n .kendoTreeList(grid);\n }\n\n destroy() {\n const div = $(this.grid);\n const data = div.data('kendoTreeList');\n\n super.destroy(data);\n }\n}\n","import FormBase from '../../FormBase.js';\nimport { selectedLanguage, userRole } from '../../../main.js';\nimport Selectors from '../../../Core/Selectors.js';\nimport Constants from '../../../Core/constants.js';\n\nexport default class Rpo extends FormBase {\n constructor() {\n super('Recovery Point Objective Scale', 'general', {\n readOnly: !userRole.includes(Constants.RoleTypes.BCM.Administrator),\n });\n this.api = 'bc/RpoScales';\n\n this.confirmation = 'translations.' + selectedLanguage + '.name';\n\n this.columns = [\n {\n title: 'Value',\n binding: 'value',\n type: 'number',\n defaultValue: 0.0,\n sort: 'asc',\n required: true,\n },\n {\n title: 'Name',\n binding: 'name',\n required: true,\n sort: 'asc',\n translatable: true,\n defaultValue: 'New Name',\n },\n {\n title: 'Color',\n binding: 'color',\n defaultValue: null,\n required: false,\n template: (dataItem) => Selectors.ColorTemplate(dataItem, 'color'),\n editor: (container, options) => Selectors.ColorSelector(container, options),\n },\n ];\n }\n}\n","import FormBase from './FormBase.js';\nimport { Helpers } from '../Core/Helpers.js';\n\nexport default class Licences extends FormBase {\n constructor() {\n super('Licence Management', 'licenceManagement');\n }\n\n init() {\n $.get('/api/Licences/GetLicence')\n .then((data) => {\n if (data != null) {\n this.showLicence(data);\n }\n })\n .fail((e) => {\n Helpers.showError(e.xhr.responseJSON);\n });\n\n $('#btnChangeLicence')\n .off('click')\n .on('click', () => {\n $.get('/api/Licences/GetMessage')\n .then((data) => {\n $('#licenceMessage')\n .text(data.response);\n });\n\n Helpers.showPopUp2({\n title: 'Change Licence',\n content: `
    \n
    \n

    \n \n
    \n
    \n
    `,\n actions: [\n {\n text: 'Cancel',\n action: function () {\n return true;\n },\n },\n {\n text: 'Ok',\n action: () => {\n const licence = $('#licenceKey')\n .val()\n .trim();\n if (licence === '') {\n Helpers.showError('Cannot add an empty licence');\n }\n\n $.ajax('/api/Licences/AddLicence', {\n type: 'post',\n data: '\"' + licence + '\"',\n contentType: 'application/json',\n })\n .then((data) => {\n Helpers.showPopUp2({\n title: 'Succeed',\n content: '
    Licence succesfully applied
    ',\n });\n this.showLicence(data);\n })\n .fail((error) => {\n Helpers.showError(error.xhr.responseJSON);\n });\n },\n },\n ],\n });\n });\n }\n\n showLicence(licence) {\n $('#companyName')\n .val(licence.company);\n $('#issuedBy')\n .val(licence.issuedBy);\n $('#issuedDate')\n .val(licence.issuedDate);\n $('#modules')\n .val(licence.modules);\n $('#expire')\n .val(licence.expire);\n $('#userLimit')\n .val(licence.userLimit);\n }\n\n destroy() {\n super.destroy();\n }\n\n hasChanges() {\n return false;\n }\n}\n","import FormBase from '../../FormBase.js';\nimport { selectedLanguage } from '../../../main.js';\n\nexport default class Services extends FormBase {\n constructor() {\n super('Services', 'general');\n this.api = 'bc/Services';\n\n this.confirmation = 'translations.' + selectedLanguage + '.name';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n ];\n }\n}\n","import FormBase from '../FormBase.js';\nimport Selectors from '../../Core/Selectors.js';\n\nexport default class IsraControlStrengthScales extends FormBase {\n constructor() {\n super('Control Significance Scales', 'general');\n this.api = 'isra/ControlStrengthScales';\n\n this.columns = [\n {\n title: 'Value',\n binding: 'value',\n required: true,\n sort: 'asc',\n defaultValue: 0,\n type: 'number',\n format: '{0:p2}',\n validation: {\n min: 0,\n max: 1,\n step: 0.1,\n },\n translatable: false,\n },\n {\n title: 'Color',\n binding: 'color',\n defaultValue: null,\n required: false,\n template: (dataItem) => Selectors.ColorTemplate(dataItem, 'color'),\n editor: (container, options) => Selectors.ColorSelector(container, options),\n },\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Value',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n ];\n }\n}\n","import FormBase from '../../FormBase.js';\nimport Selectors from '../../../Core/Selectors.js';\n\nexport default class RiskTreatments extends FormBase {\n constructor() {\n super('Risk Treatments', 'general');\n this.api = 'bc/RiskTreatments';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n required: true,\n translatable: true,\n defaultValue: 'New Risk treatment',\n },\n {\n title: 'Explanation',\n binding: 'explanation',\n translatable: true,\n defaultValue: '',\n },\n {\n title: 'Color',\n binding: 'color',\n defaultValue: null,\n required: false,\n template: (dataItem) => Selectors.ColorTemplate(dataItem, 'color'),\n editor: (container, options) => Selectors.ColorSelector(container, options),\n },\n ];\n }\n}\n","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeploymentListLine.vue?vue&type=style&index=0&id=64b4b9f0&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeploymentListLine.vue?vue&type=style&index=0&id=64b4b9f0&scoped=true&lang=css&\"","import { selectedLanguage } from '../../main.js';\nimport FormBase from '../FormBase.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers';\n\nexport default class IsraRiskControls extends FormBase {\n constructor() {\n super('Risk - Controls', 'general');\n this.api = 'isra/RiskControls';\n\n this.columns = [\n {\n title: 'Risk',\n binding: 'riskId',\n required: true,\n template: this.riskTemplate,\n editor: this.riskSelector,\n sortField: 'translations.' + selectedLanguage + '.name',\n datasource: DataSources.IsraRisks,\n },\n {\n title: 'Control Id',\n binding: 'controlQuestionId',\n collapse: true,\n required: true,\n sort: 'asc',\n editable: () => false,\n },\n {\n title: 'Control',\n binding: 'controlQuestionId',\n required: true,\n sortField: 'translations.' + selectedLanguage + '.question',\n template: this.controlTemplate,\n editor: this.controlSelector,\n datasource: DataSources.IsraControlQuestions,\n },\n {\n title: 'Impact',\n binding: 'impactWeight',\n defaultValue: 0,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 100,\n step: 1,\n },\n width: '100px',\n },\n {\n title: 'Likelihood',\n binding: 'probabilityWeight',\n defaultValue: 0,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 100,\n step: 1,\n },\n width: '100px',\n },\n ];\n }\n\n // init() {\n // // likelihood max\n // let l = [];\n // DataSources.IsraImpactScales.data().forEach(i => l.push(i.value));\n // this.columns[3].validation.max = Math.max(...l);\n //\n //\n // DataSources.IsraLikelihoodScales.data().forEach(i => l.push(i.value));\n // this.columns[4].validation.max = Math.max(...l);\n // super.init();\n // }\n\n require() {\n return [\n DataSources.IsraRisks,\n DataSources.IsraControlQuestions,\n DataSources.IsraImpactScales,\n DataSources.IsraLikelihoodScales];\n }\n\n setCustomDatasourceProperties(source) {\n source.group = { field: 'riskId' };\n }\n\n setCustomGridProperties(grid) {\n grid.groupable = true;\n }\n\n riskTemplate(dataItem) {\n const item = DataSources.IsraRisks.get(dataItem.riskId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n\n riskSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoComboBox({\n placeholder: 'Search...',\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.IsraRisks,\n });\n }\n\n controlTemplate(dataItem) {\n const item = DataSources.IsraControlQuestions.get(dataItem.controlQuestionId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].question);\n } else {\n return '';\n }\n }\n\n controlSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoComboBox({\n placeholder: 'Search...',\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].question',\n dataValueField: 'id',\n dataSource: DataSources.IsraControlQuestions,\n });\n }\n}\n","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteAssets.vue?vue&type=style&index=0&id=5712edd4&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteAssets.vue?vue&type=style&index=0&id=5712edd4&scoped=true&lang=css&\"","var map = {\n\t\"./af\": \"838d\",\n\t\"./af.js\": \"838d\",\n\t\"./ar\": \"784e\",\n\t\"./ar-dz\": \"73b7\",\n\t\"./ar-dz.js\": \"73b7\",\n\t\"./ar-kw\": \"90b7\",\n\t\"./ar-kw.js\": \"90b7\",\n\t\"./ar-ly\": \"d532\",\n\t\"./ar-ly.js\": \"d532\",\n\t\"./ar-ma\": \"e1cf\",\n\t\"./ar-ma.js\": \"e1cf\",\n\t\"./ar-sa\": \"d8a0\",\n\t\"./ar-sa.js\": \"d8a0\",\n\t\"./ar-tn\": \"3405\",\n\t\"./ar-tn.js\": \"3405\",\n\t\"./ar.js\": \"784e\",\n\t\"./az\": \"1551\",\n\t\"./az.js\": \"1551\",\n\t\"./be\": \"74a2\",\n\t\"./be.js\": \"74a2\",\n\t\"./bg\": \"818d\",\n\t\"./bg.js\": \"818d\",\n\t\"./bm\": \"9a9a\",\n\t\"./bm.js\": \"9a9a\",\n\t\"./bn\": \"733a\",\n\t\"./bn-bd\": \"c505\",\n\t\"./bn-bd.js\": \"c505\",\n\t\"./bn.js\": \"733a\",\n\t\"./bo\": \"3fae\",\n\t\"./bo.js\": \"3fae\",\n\t\"./br\": \"e578\",\n\t\"./br.js\": \"e578\",\n\t\"./bs\": \"aa1c\",\n\t\"./bs.js\": \"aa1c\",\n\t\"./ca\": \"bf58\",\n\t\"./ca.js\": \"bf58\",\n\t\"./cs\": \"39b3\",\n\t\"./cs.js\": \"39b3\",\n\t\"./cv\": \"d077\",\n\t\"./cv.js\": \"d077\",\n\t\"./cy\": \"7b15\",\n\t\"./cy.js\": \"7b15\",\n\t\"./da\": \"7012\",\n\t\"./da.js\": \"7012\",\n\t\"./de\": \"8ef4\",\n\t\"./de-at\": \"c2c4\",\n\t\"./de-at.js\": \"c2c4\",\n\t\"./de-ch\": \"59e8\",\n\t\"./de-ch.js\": \"59e8\",\n\t\"./de.js\": \"8ef4\",\n\t\"./dv\": \"8229\",\n\t\"./dv.js\": \"8229\",\n\t\"./el\": \"3df5\",\n\t\"./el.js\": \"3df5\",\n\t\"./en-au\": \"64fc\",\n\t\"./en-au.js\": \"64fc\",\n\t\"./en-ca\": \"d02e\",\n\t\"./en-ca.js\": \"d02e\",\n\t\"./en-gb\": \"e4ab\",\n\t\"./en-gb.js\": \"e4ab\",\n\t\"./en-ie\": \"2078\",\n\t\"./en-ie.js\": \"2078\",\n\t\"./en-il\": \"30ea\",\n\t\"./en-il.js\": \"30ea\",\n\t\"./en-in\": \"0929\",\n\t\"./en-in.js\": \"0929\",\n\t\"./en-nz\": \"9e37\",\n\t\"./en-nz.js\": \"9e37\",\n\t\"./en-sg\": \"5930\",\n\t\"./en-sg.js\": \"5930\",\n\t\"./eo\": \"03d2\",\n\t\"./eo.js\": \"03d2\",\n\t\"./es\": \"f014\",\n\t\"./es-do\": \"c04e4\",\n\t\"./es-do.js\": \"c04e4\",\n\t\"./es-mx\": \"70f2\",\n\t\"./es-mx.js\": \"70f2\",\n\t\"./es-us\": \"678d\",\n\t\"./es-us.js\": \"678d\",\n\t\"./es.js\": \"f014\",\n\t\"./et\": \"7005\",\n\t\"./et.js\": \"7005\",\n\t\"./eu\": \"53ec\",\n\t\"./eu.js\": \"53ec\",\n\t\"./fa\": \"ccae\",\n\t\"./fa.js\": \"ccae\",\n\t\"./fi\": \"4bbe\",\n\t\"./fi.js\": \"4bbe\",\n\t\"./fil\": \"8cbc\",\n\t\"./fil.js\": \"8cbc\",\n\t\"./fo\": \"bee3\",\n\t\"./fo.js\": \"bee3\",\n\t\"./fr\": \"1f77\",\n\t\"./fr-ca\": \"ffd0\",\n\t\"./fr-ca.js\": \"ffd0\",\n\t\"./fr-ch\": \"3236\",\n\t\"./fr-ch.js\": \"3236\",\n\t\"./fr.js\": \"1f77\",\n\t\"./fy\": \"37c5\",\n\t\"./fy.js\": \"37c5\",\n\t\"./ga\": \"a451\",\n\t\"./ga.js\": \"a451\",\n\t\"./gd\": \"1ba1\",\n\t\"./gd.js\": \"1ba1\",\n\t\"./gl\": \"34cf\",\n\t\"./gl.js\": \"34cf\",\n\t\"./gom-deva\": \"c18e\",\n\t\"./gom-deva.js\": \"c18e\",\n\t\"./gom-latn\": \"313c\",\n\t\"./gom-latn.js\": \"313c\",\n\t\"./gu\": \"a4b4\",\n\t\"./gu.js\": \"a4b4\",\n\t\"./he\": \"cee8\",\n\t\"./he.js\": \"cee8\",\n\t\"./hi\": \"cb39\",\n\t\"./hi.js\": \"cb39\",\n\t\"./hr\": \"cea2\",\n\t\"./hr.js\": \"cea2\",\n\t\"./hu\": \"97cb\",\n\t\"./hu.js\": \"97cb\",\n\t\"./hy-am\": \"d0b1\",\n\t\"./hy-am.js\": \"d0b1\",\n\t\"./id\": \"7113\",\n\t\"./id.js\": \"7113\",\n\t\"./is\": \"269f\",\n\t\"./is.js\": \"269f\",\n\t\"./it\": \"1c5f\",\n\t\"./it-ch\": \"0137\",\n\t\"./it-ch.js\": \"0137\",\n\t\"./it.js\": \"1c5f\",\n\t\"./ja\": \"7c17\",\n\t\"./ja.js\": \"7c17\",\n\t\"./jv\": \"fc82\",\n\t\"./jv.js\": \"fc82\",\n\t\"./ka\": \"b0a4\",\n\t\"./ka.js\": \"b0a4\",\n\t\"./kk\": \"5858\",\n\t\"./kk.js\": \"5858\",\n\t\"./km\": \"024c\",\n\t\"./km.js\": \"024c\",\n\t\"./kn\": \"eeda\",\n\t\"./kn.js\": \"eeda\",\n\t\"./ko\": \"c9f3\",\n\t\"./ko.js\": \"c9f3\",\n\t\"./ku\": \"a0f3\",\n\t\"./ku.js\": \"a0f3\",\n\t\"./ky\": \"2886\",\n\t\"./ky.js\": \"2886\",\n\t\"./lb\": \"0691\",\n\t\"./lb.js\": \"0691\",\n\t\"./lo\": \"c132\",\n\t\"./lo.js\": \"c132\",\n\t\"./lt\": \"0413\",\n\t\"./lt.js\": \"0413\",\n\t\"./lv\": \"9a87\",\n\t\"./lv.js\": \"9a87\",\n\t\"./me\": \"07b9\",\n\t\"./me.js\": \"07b9\",\n\t\"./mi\": \"6da7\",\n\t\"./mi.js\": \"6da7\",\n\t\"./mk\": \"8f7a\",\n\t\"./mk.js\": \"8f7a\",\n\t\"./ml\": \"f2fd\",\n\t\"./ml.js\": \"f2fd\",\n\t\"./mn\": \"374e\",\n\t\"./mn.js\": \"374e\",\n\t\"./mr\": \"3b71\",\n\t\"./mr.js\": \"3b71\",\n\t\"./ms\": \"0660\",\n\t\"./ms-my\": \"bdd0\",\n\t\"./ms-my.js\": \"bdd0\",\n\t\"./ms.js\": \"0660\",\n\t\"./mt\": \"65a9\",\n\t\"./mt.js\": \"65a9\",\n\t\"./my\": \"5e5c\",\n\t\"./my.js\": \"5e5c\",\n\t\"./nb\": \"dcfb\",\n\t\"./nb.js\": \"dcfb\",\n\t\"./ne\": \"cba4\",\n\t\"./ne.js\": \"cba4\",\n\t\"./nl\": \"aa9a\",\n\t\"./nl-be\": \"9610\",\n\t\"./nl-be.js\": \"9610\",\n\t\"./nl.js\": \"aa9a\",\n\t\"./nn\": \"0461\",\n\t\"./nn.js\": \"0461\",\n\t\"./oc-lnc\": \"47d8\",\n\t\"./oc-lnc.js\": \"47d8\",\n\t\"./pa-in\": \"53d5\",\n\t\"./pa-in.js\": \"53d5\",\n\t\"./pl\": \"a609\",\n\t\"./pl.js\": \"a609\",\n\t\"./pt\": \"3417\",\n\t\"./pt-br\": \"f586\",\n\t\"./pt-br.js\": \"f586\",\n\t\"./pt.js\": \"3417\",\n\t\"./ro\": \"2f06\",\n\t\"./ro.js\": \"2f06\",\n\t\"./ru\": \"6d99\",\n\t\"./ru.js\": \"6d99\",\n\t\"./sd\": \"c4b0\",\n\t\"./sd.js\": \"c4b0\",\n\t\"./se\": \"43f2\",\n\t\"./se.js\": \"43f2\",\n\t\"./si\": \"3389\",\n\t\"./si.js\": \"3389\",\n\t\"./sk\": \"753b\",\n\t\"./sk.js\": \"753b\",\n\t\"./sl\": \"5e34\",\n\t\"./sl.js\": \"5e34\",\n\t\"./sq\": \"33bf\",\n\t\"./sq.js\": \"33bf\",\n\t\"./sr\": \"8843\",\n\t\"./sr-cyrl\": \"4068\",\n\t\"./sr-cyrl.js\": \"4068\",\n\t\"./sr.js\": \"8843\",\n\t\"./ss\": \"339e\",\n\t\"./ss.js\": \"339e\",\n\t\"./sv\": \"1428\",\n\t\"./sv.js\": \"1428\",\n\t\"./sw\": \"7581\",\n\t\"./sw.js\": \"7581\",\n\t\"./ta\": \"2e92\",\n\t\"./ta.js\": \"2e92\",\n\t\"./te\": \"9bcc\",\n\t\"./te.js\": \"9bcc\",\n\t\"./tet\": \"dc6d\",\n\t\"./tet.js\": \"dc6d\",\n\t\"./tg\": \"ba9f\",\n\t\"./tg.js\": \"ba9f\",\n\t\"./th\": \"8854\",\n\t\"./th.js\": \"8854\",\n\t\"./tk\": \"ccfc\",\n\t\"./tk.js\": \"ccfc\",\n\t\"./tl-ph\": \"9f93\",\n\t\"./tl-ph.js\": \"9f93\",\n\t\"./tlh\": \"8429\",\n\t\"./tlh.js\": \"8429\",\n\t\"./tr\": \"109e\",\n\t\"./tr.js\": \"109e\",\n\t\"./tzl\": \"593e\",\n\t\"./tzl.js\": \"593e\",\n\t\"./tzm\": \"a007\",\n\t\"./tzm-latn\": \"5d9b\",\n\t\"./tzm-latn.js\": \"5d9b\",\n\t\"./tzm.js\": \"a007\",\n\t\"./ug-cn\": \"6f4b\",\n\t\"./ug-cn.js\": \"6f4b\",\n\t\"./uk\": \"1e2a\",\n\t\"./uk.js\": \"1e2a\",\n\t\"./ur\": \"f26f\",\n\t\"./ur.js\": \"f26f\",\n\t\"./uz\": \"a18a\",\n\t\"./uz-latn\": \"c96c\",\n\t\"./uz-latn.js\": \"c96c\",\n\t\"./uz.js\": \"a18a\",\n\t\"./vi\": \"2fe7\",\n\t\"./vi.js\": \"2fe7\",\n\t\"./x-pseudo\": \"95bd\",\n\t\"./x-pseudo.js\": \"95bd\",\n\t\"./yo\": \"352b\",\n\t\"./yo.js\": \"352b\",\n\t\"./zh-cn\": \"865c\",\n\t\"./zh-cn.js\": \"865c\",\n\t\"./zh-hk\": \"0302\",\n\t\"./zh-hk.js\": \"0302\",\n\t\"./zh-mo\": \"eb8e\",\n\t\"./zh-mo.js\": \"eb8e\",\n\t\"./zh-tw\": \"a24e\",\n\t\"./zh-tw.js\": \"a24e\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"a7d7\";","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedTypeLine.vue?vue&type=style&index=0&id=cf50d22a&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedTypeLine.vue?vue&type=style&index=0&id=cf50d22a&scoped=true&lang=css&\"","import { selectedLanguage, selectedMasterPlan } from '../../main.js';\nimport DataSources from '../../Core/datasources.js';\nimport Selectors from '../../Core/Selectors.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport Constants from '../../Core/constants.js';\nimport DeploymentFormBase from '../DeploymentFormBase';\nimport VersionableFormBase from './VersionableFormBase.js';\n\nexport default class IsraRiskManagementAcceptances extends DeploymentFormBase {\n constructor() {\n super('Risk Acceptances', 'general', { readOnly: false });\n this.api = 'isra/RiskManagements/Acceptances';\n\n this.options.parse = (data) => {\n data.forEach(element => {\n // system\n const item = DataSources.Applications.get(element.applicationId);\n if (item != null) {\n element.system = item.translations[selectedLanguage].name;\n }\n });\n return data;\n };\n\n this.columns = [\n // {\n // title: 'Name',\n // binding: `translations[\"${selectedLanguage}\"].name`,\n // sort: 'asc',\n // editable: () => false,\n // },\n {\n title: 'System',\n binding: 'system',\n editorHidden: true,\n groupHeaderTemplate: (e) => {\n return e.value;\n },\n },\n {\n title: 'Version',\n binding: 'version',\n defaultValue: VersionableFormBase.versionPrototype(),\n required: false,\n width: '120px',\n translatable: false,\n editable: () => false,\n },\n {\n title: 'Assessment',\n binding: 'assessmentText',\n editorHidden: true,\n groupHeaderTemplate: (e) => {\n return e.value;\n },\n },\n {\n title: 'Status',\n binding: 'status',\n editable: () => false,\n template: function (dataItem) {\n return Constants.DeploymentStatusTranslations[dataItem.status].translations[selectedLanguage];\n },\n groupHeaderTemplate: (e) => {\n return Constants.DeploymentStatusTranslations[e.value].translations[selectedLanguage];\n },\n },\n {\n title: 'Due Date',\n binding: 'dueDate',\n defaultValue: Selectors.GetDefaultDueDate(),\n template: (dataItem) => Selectors.DateTemplate(\n dataItem, 'dueDate',\n 'No Due Date',\n ),\n editor: (container, options) => {\n if (options.model.status === Constants.DeploymentStatus.Undeployed) {\n Selectors.DatePicker(container, options, 'dueDate');\n } else {\n container.append(Selectors.DateTemplate(options.model, 'dueDate'));\n }\n },\n },\n {\n title: 'Active',\n binding: 'active',\n editable: () => false,\n editorHidden: true,\n width: '70px',\n template: function (dataItem) {\n return dataItem.active ? 'Active' : '';\n },\n groupable: false,\n },\n {\n title: 'Archived',\n binding: 'archived',\n editable: () => false,\n template: (dataItem) => dataItem.archived ? 'Archived' : '',\n width: '120px',\n editorHidden: true,\n },\n {\n title: 'Based On',\n binding: 'versionBasedOn',\n editable: () => false,\n editorHidden: true,\n width: '120px',\n },\n {\n title: 'Finish',\n binding: 'finished',\n editable: () => false,\n template: (dataItem) => Selectors.DateTemplate(\n dataItem, 'finished',\n 'Not Finished',\n ),\n editor: (container, options) => {\n Selectors.DateTemplate(options.model, 'finished', 'Not Finished');\n },\n },\n {\n title: 'Data Entry',\n binding: 'dataEntry',\n hidden: true,\n editor: (container, options) => this.dataEntryEditor(container, options),\n },\n {\n title: 'Approval Path',\n binding: 'approvalPath',\n hidden: true,\n editor: (container, options) => this.approvalPathEditor(container, options),\n },\n ];\n\n this.menu = {};\n }\n\n require() {\n return [\n DataSources.Applications,\n DataSources.Users,\n DataSources.IsraStandardizations,\n ];\n }\n\n setCustomDatasourceProperties(source) {\n super.setCustomDatasourceProperties(source);\n\n source.group = { field: 'system' };\n\n source.filter = this.currentFilter;\n }\n\n setCustomGridProperties(grid) {\n super.setCustomGridProperties(grid);\n\n grid.groupable = true;\n\n grid.columns[grid.columns.length - 1] = { command: ['edit'], width: 100 };\n\n grid.editable = 'popup';\n\n grid.toolbar = grid.toolbar.slice(1, 5);\n\n grid.toolbar.push(\n { template: 'Deploy' },\n { template: 'Abort' },\n { template: 'Filter:
    ' },\n );\n\n let first = true;\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n if (first === true) {\n first = false;\n\n const standardizations = [\n {\n id: 0,\n name: 'None',\n },\n ...DataSources.IsraStandardizations.view(),\n ];\n\n $('#standardizationFilter')\n .kendoDropDownList({\n dataTextField: 'name',\n dataSource: { data: standardizations },\n change: (e) => {\n const filter = [];\n const value = e.sender.value();\n\n if (value.id !== 0) {\n const apps = value.applications;\n if (apps.length === 0) {\n filter.push({\n field: 'applicationId',\n operator: 'eq',\n value: '-1',\n });\n }\n\n for (let i = 0; i < apps.length; ++i) {\n filter.push({\n field: 'applicationId',\n operator: 'eq',\n value: apps[i].applicationId,\n });\n }\n }\n\n if (filter.length === 0) {\n this.removeFilter('standardization');\n } else {\n this.setFilter({\n name: 'standardization',\n logic: 'or',\n filters: filter,\n });\n }\n\n this.datasource.filter(this.currentFilter);\n },\n });\n\n $('[name=\"Deployment-Deploy\"]')\n .off('click')\n .on('click', (e) => {\n const grid = $(e.target.closest('.k-grid'))\n .data('kendoGrid');\n const deployment = grid.dataItem(grid.select());\n\n if (deployment == null) {\n Helpers.showError('Please select an acceptance first');\n return;\n }\n\n const rm = $(this.grid)\n .data('kendoGrid')\n .dataItem($(e.target.closest('.k-detail-row'))\n .prev());\n\n deployment.rm = rm;\n\n this.deployDeployment(\n `/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/Acceptances/${deployment.id}/deploy`,\n deployment,\n );\n });\n\n $('[name=\"Deployment-Abort\"]')\n .off('click')\n .on('click', (e) => {\n const grid = $(e.target.closest('.k-grid'))\n .data('kendoGrid');\n const deployment = grid.dataItem(grid.select());\n\n if (deployment == null) {\n Helpers.showError('Please select an acceptance first');\n return;\n }\n\n const rm = $(this.grid)\n .data('kendoGrid')\n .dataItem($(e.target.closest('.k-detail-row'))\n .prev());\n\n deployment.rm = rm;\n\n this.abortDeployment(\n `/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/Acceptances/${deployment.id}/abort`,\n deployment,\n );\n });\n }\n };\n }\n\n applicationTemplate(dataItem) {\n const item = DataSources.Applications.get(dataItem.applicationId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n}\n","import DataSources from '../../../Core/datasources.js';\nimport FormBase from '../../FormBase.js';\nimport { selectedLanguage, userRole } from '../../../main.js';\nimport Constants from '../../../Core/constants.js';\n\nexport default class Surveys extends FormBase {\n constructor() {\n super('Surveys', 'general', {\n readOnly: !userRole.includes(Constants.RoleTypes.BCM.Administrator),\n });\n this.api = 'bc/Surveys';\n\n this.preventBinding = false;\n this.preventBindingQuestions = false;\n\n const language = '_' + selectedLanguage.replace('-', '_');\n this.confirmation = 'name' + language;\n this.questionConfirmation = 'text' + language;\n this.questionOptionConfirmation = 'text' + language;\n\n // this.options.flatout = true;\n\n this.columns = [\n {\n title: 'Identification',\n binding: 'id',\n editable: false,\n defaultValue: 0,\n width: 120,\n },\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Survey',\n required: true,\n translatable: true,\n sort: 'asc',\n },\n {\n title: 'Questions',\n binding: 'questions',\n defaultValue: [],\n translatable: false,\n editable: false,\n hidden: true,\n },\n ];\n\n this.questionColumns = [\n {\n title: 'Question Type',\n binding: 'questionType',\n defaultValue: 1,\n required: true,\n editor: (container, options) => this.questionTypesDropDownEditor(container, options),\n template: (dataItem) => {\n const item = DataSources.SurveyQuestionTypes.get(dataItem.questionType);\n\n if (item != null) {\n return item.text;\n } else {\n return 'Select Type';\n }\n },\n },\n {\n title: 'Allow Comments',\n binding: 'allowComments',\n defaultValue: false,\n type: 'boolean',\n },\n {\n title: 'Question',\n binding: 'text',\n translatable: true,\n required: true,\n defaultValue: 'New Question',\n },\n {\n title: 'Options',\n binding: 'options',\n defaultValue: [],\n editable: false,\n hidden: true,\n },\n ];\n\n this.questionOptionColumns = [\n {\n title: 'Option',\n translatable: true,\n binding: 'text',\n required: true,\n defaultValue: 'New Option',\n },\n ];\n }\n\n require() {\n return [DataSources.SurveyQuestionTypes];\n }\n\n setCustomGridProperties(grid) {\n grid.columns[grid.columns.length - 1].width = undefined;\n\n // Details\n grid.detailTemplate = 'Questions:';\n\n grid.detailInit = (e) => {\n const questionsGrid = this.createGrid({\n api: 'bc/SurveyQuestions/' + e.data.id,\n columns: this.questionColumns,\n confirmation: this.questionConfirmation,\n selector: '[name=questions]',\n menu: this.menu,\n readOnly: !userRole.includes(Constants.RoleTypes.BCM.Administrator),\n });\n\n const databound = questionsGrid.dataBound;\n questionsGrid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n const data = e.sender.dataSource.data();\n $.each(data, function (i, row) {\n if (row.questionType === Constants.QuestionType.Text) {\n $('tr[data-uid=\"' + row.uid + '\"] ')\n .find('.k-hierarchy-cell a')\n .remove();\n }\n });\n };\n\n questionsGrid.detailTemplate = 'Possible Answers';\n questionsGrid.detailInit = (eqo) => {\n const questionOptionsGrid = this.createGrid({\n api: 'bc/SurveyQuestionOptions/' + e.data.id + '/' + eqo.data.id,\n columns: this.questionOptionColumns,\n confirmation: this.questionOptionConfirmation,\n selector: '[name=questionOptions]',\n menu: this.menu,\n readOnly: !userRole.includes(Constants.RoleTypes.BCM.Administrator),\n });\n\n $('
    ')\n .appendTo(eqo.detailCell)\n .kendoGrid(questionOptionsGrid);\n };\n\n $('
    ')\n .appendTo(e.detailCell)\n .kendoGrid(questionsGrid);\n };\n }\n\n setCustomDatasourceProperties(source) {\n // add function to prevent rebinding on child changes\n source.change = (e) => {\n if (this.preventBindingQuestions || (e.field && e.field.indexOf('questions') >= 0)) {\n this.preventBinding = true;\n }\n };\n }\n\n questionTypesDropDownEditor(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n dataTextField: 'text',\n dataValueField: 'id',\n dataSource: DataSources.SurveyQuestionTypes,\n valuePrimitive: true,\n });\n }\n}\n","import { Helpers } from '../Core/Helpers.js';\nimport FormBase from './FormBase.js';\n\nexport default class ApplicationSettings extends FormBase {\n constructor() {\n super('Setting', 'applicationSettings');\n\n this.subTitleButtons.push({\n name: 'save',\n icon: 'save.png',\n text: 'Save Changes',\n actions: () => {\n kendo.ui.progress($('#applicationSettings'), true);\n\n $.ajax({\n url: '/api/Settings',\n type: 'PUT',\n dataType: 'json',\n contentType: 'application/json',\n data: JSON.stringify(this.settings), // Some data e.g. Valid JSON as a string\n })\n .fail((e) => {\n let resp = '';\n console.log(typeof e.responseJSON);\n if (typeof e.responseJSON === 'string') {\n resp += e.responseJSON + '
    ';\n } else {\n for (const i in e.responseJSON) {\n for (let j = 0; j < e.responseJSON[i].length; ++j) {\n resp += e.responseJSON[i][j] + '
    ';\n }\n }\n }\n Helpers.showError(resp);\n })\n .always(() => {\n kendo.ui.progress($('#applicationSettings'), false);\n });\n },\n });\n\n this.settings = {};\n }\n\n init() {\n $.get('/api/Settings')\n .then((data) => {\n if (data != null) {\n this.settings = data;\n this.showSettings(data);\n }\n })\n .fail((e) => {\n Helpers.showError(e.xhr.responseJSON);\n });\n }\n\n showSettings(data) {\n // $('#companyName').val(licence.company);\n const logolink = $('#settingsLogoLink');\n logolink.val(data.logo);\n\n logolink.off('change')\n .on('change', () => {\n this.settings.logo = logolink.val();\n $('#settingsLogoPreview')\n .attr('src', this.settings.logo);\n });\n\n $('#settingsLogoPreview')\n .attr('src', this.settings.logo);\n\n const segegationOfDutiesEnabled = $('#segegationOfDutiesEnabled');\n segegationOfDutiesEnabled.prop('checked', this.settings.segegationOfDuties);\n segegationOfDutiesEnabled.off('change')\n .on('change', (e) => {\n this.settings.segregationOfDuties = e.target.checked;\n });\n\n const emailNotificationsEnabled = $('#emailNotificationsEnabled');\n const emailNotificationsSettings = $('#emailNotificationsSettings');\n\n emailNotificationsEnabled.prop('checked', this.settings.emailSettings.enableNotifications);\n\n if (this.settings.emailSettings.enableNotifications === true) {\n emailNotificationsSettings.show();\n } else {\n emailNotificationsSettings.hide();\n }\n\n emailNotificationsEnabled.off('change')\n .on('change', (e) => {\n this.settings.emailSettings.enableNotifications = e.target.checked;\n\n if (e.target.checked) {\n emailNotificationsSettings.show();\n } else {\n emailNotificationsSettings.hide();\n }\n });\n\n const emailNotificationsDatabaseSettings = $('#emailNotificationsDatabaseSettings');\n const emailNotificationsApplicationSettings = $('#emailNotificationsApplicationSettings');\n\n const emailDatabase = $('#emailDatabase');\n const emailApplication = $('#emailApplication');\n\n emailDatabase.prop('checked', this.settings.emailSettings.databaseNotifications);\n if (this.settings.emailSettings.databaseNotifications === true) {\n emailNotificationsDatabaseSettings.show();\n } else {\n emailNotificationsDatabaseSettings.hide();\n }\n\n emailApplication.prop('checked', this.settings.emailSettings.applicationNotifications);\n if (this.settings.emailSettings.applicationNotifications === true) {\n emailNotificationsApplicationSettings.show();\n } else {\n emailNotificationsApplicationSettings.hide();\n }\n\n emailDatabase.off('change')\n .on('change', (e) => {\n this.settings.emailSettings.databaseNotifications = e.target.checked;\n this.settings.emailSettings.applicationNotifications = !e.target.checked;\n\n if (e.target.checked) {\n emailNotificationsDatabaseSettings.show();\n emailNotificationsApplicationSettings.hide();\n } else {\n emailNotificationsDatabaseSettings.hide();\n emailNotificationsApplicationSettings.show();\n }\n });\n\n emailApplication.off('change')\n .on('change', (e) => {\n this.settings.emailSettings.applicationNotifications = e.target.checked;\n this.settings.emailSettings.databaseNotifications = !e.target.checked;\n\n if (e.target.checked) {\n emailNotificationsDatabaseSettings.hide();\n emailNotificationsApplicationSettings.show();\n } else {\n emailNotificationsDatabaseSettings.show();\n emailNotificationsApplicationSettings.hide();\n }\n });\n\n const emailApplicationSmtpServer = $('#emailApplicationSmtpServer');\n const emailApplicationSmtpPort = $('#emailApplicationSmtpPort');\n const emailApplicationSmtpSecure = $('#emailApplicationSmtpSecure');\n const emailApplicationSmtpUsername = $('#emailApplicationSmtpUsername');\n const emailApplicationSmtpPassword = $('#emailApplicationSmtpPassword');\n const emailApplicationDisplayName = $('#emailApplicationDisplayName');\n const emailApplicationDisplayEmail = $('#emailApplicationDisplayEmail');\n\n emailApplicationSmtpServer.val(this.settings.emailSettings.smtpServer);\n emailApplicationSmtpServer.off('change')\n .on('change', (e) => {\n this.settings.emailSettings.smtpServer = e.target.value;\n });\n\n emailApplicationSmtpPort.val(this.settings.emailSettings.smtpPort);\n emailApplicationSmtpPort.off('change')\n .on('change', (e) => {\n this.settings.emailSettings.smtpPort = e.target.value;\n });\n\n emailApplicationSmtpSecure.prop('checked', this.settings.emailSettings.smtpSecure);\n emailApplicationSmtpSecure.off('change')\n .on('change', (e) => {\n this.settings.emailSettings.smtpSecure = e.target.checked;\n });\n\n emailApplicationSmtpUsername.val(this.settings.emailSettings.smtpUsername);\n emailApplicationSmtpUsername.off('change')\n .on('change', (e) => {\n this.settings.emailSettings.smtpUsername = e.target.value;\n });\n\n emailApplicationSmtpPassword.val(this.settings.emailSettings.smtpPassword);\n emailApplicationSmtpPassword.off('change')\n .on('change', (e) => {\n this.settings.emailSettings.smtpPassword = e.target.value;\n });\n\n emailApplicationDisplayName.val(this.settings.emailSettings.displayName);\n emailApplicationDisplayName.off('change')\n .on('change', (e) => {\n this.settings.emailSettings.displayName = e.target.value;\n });\n\n emailApplicationDisplayEmail.val(this.settings.emailSettings.displayEmail);\n emailApplicationDisplayEmail.off('change')\n .on('change', (e) => {\n this.settings.emailSettings.displayEmail = e.target.value;\n });\n\n const emailDatabaseProfile = $('#emailDatabaseProfile');\n const emailDatabaseSeparateConnection = $('#emailDatabaseSeparateConnection');\n\n emailDatabaseProfile.val(this.settings.emailSettings.emailProfile);\n emailDatabaseProfile.off('change')\n .on('change', (e) => {\n this.settings.emailSettings.emailProfile = e.target.value;\n });\n\n emailDatabaseSeparateConnection.prop(\n 'checked',\n this.settings.emailSettings.useSeparateConnection,\n );\n emailDatabaseSeparateConnection.off('change')\n .on('change', (e) => {\n this.settings.emailSettings.useSeparateConnection = e.target.checked;\n });\n }\n\n destroy() {\n super.destroy();\n }\n\n hasChanges() {\n return false;\n }\n}\n","import FormBase from '../FormBase.js';\nimport DataSources from '../../Core/datasources.js';\nimport { selectedLanguage } from '../../main.js';\nimport Constants from '../../Core/constants.js';\nimport { Helpers } from '../../Core/Helpers';\n\nexport default class IsraVulnerabilities extends FormBase {\n constructor() {\n super('Vulnerabilities', 'general');\n this.api = 'isra/Vulnerabilities';\n\n this.columns = [\n {\n title: 'Vulnerability Category',\n binding: 'categoryId',\n defaultValue: 0,\n sort: 'asc',\n groupHeaderTemplate: (e) => {\n const item = DataSources.IsraVulnerabilityCategories.get(e.value);\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return 'None';\n }\n },\n template: this.vulnerabilityCategoryTemplate,\n editor: this.vulnerabilityCategorySelector,\n compare: function (a, b) {\n const itemA = DataSources.IsraVulnerabilityCategories.get(a.categoryId).translations[selectedLanguage].name;\n const itemB = DataSources.IsraVulnerabilityCategories.get(b.categoryId).translations[selectedLanguage].name;\n //\n // console.log(a);\n // console.log(b);\n //\n // console.log(item_a.localeCompare(item_b));\n return itemA.localeCompare(itemB);\n // return a.item] - numbers[b.item];\n },\n },\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Value',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n ];\n }\n\n // setCustomDatasourceProperties(source) {\n // // source.group = \"categoryId\";\n // }\n\n setCustomGridProperties(grid) {\n grid.groupable = true;\n }\n\n require() {\n return [DataSources.IsraVulnerabilityCategories];\n }\n\n vulnerabilityCategoryTemplate(dataItem) {\n const item = DataSources.IsraVulnerabilityCategories.get(dataItem.categoryId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n\n vulnerabilityCategorySelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n optionLabel: Constants.NoVulnerabilityCategory,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.IsraVulnerabilityCategories,\n });\n }\n}\n","import Vue from 'vue';\nimport VueRouter from 'vue-router';\n\nVue.use(VueRouter);\n\nconst router = new VueRouter();\n\nexport default router;\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContractEditor.vue?vue&type=style&index=0&id=420117f7&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContractEditor.vue?vue&type=style&index=0&id=420117f7&scoped=true&lang=css&\"","import { selectedLanguage, selectedMasterPlan, toggleAppear } from '../../main.js';\nimport DataSources from '../../Core/datasources.js';\nimport Selectors from '../../Core/Selectors.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport Constants from '../../Core/constants.js';\nimport VersionableFormBase from './VersionableFormBase.js';\nimport DeploymentFormBase from '../DeploymentFormBase';\nimport IsraRiskManagementTreatmentReview from './RiskManagementTreatmentReview';\nimport IsraRiskManagementTreatmentProgress from './RiskManagementTreatmentProgress';\n\nexport default class IsraRiskManagementTreatments extends DeploymentFormBase {\n constructor() {\n super('Risk Treatments', 'general', { readOnly: true });\n this.api = 'isra/RiskManagements';\n\n this.options.parse = (data) => {\n data.forEach(element => {\n // system\n let item = DataSources.Applications.get(element.applicationId);\n if (item != null) {\n element.system = item.translations[selectedLanguage].name;\n }\n\n // assessment\n item = DataSources.IsraAssessments.get(element.assessmentId);\n if (item != null) {\n element.assessmentText = `${item.translations[selectedLanguage].name} (${item.version})`;\n }\n\n // classification\n item = DataSources.IsraClassificationDeployments.get(element.classificationDeploymentId);\n if (item != null) {\n item = DataSources.IsraClassificationQuestionnaires.get(item.classificationQuestionnaireId);\n element.classificationText = `${item.translations[selectedLanguage].name} (${item.version})`;\n }\n });\n return data;\n };\n\n this.columns = [\n {\n title: 'System',\n binding: 'system',\n editorHidden: true,\n groupHeaderTemplate: (e) => {\n return e.value;\n },\n },\n {\n title: 'Assessment',\n binding: 'assessmentText',\n editorHidden: true,\n groupHeaderTemplate: (e) => {\n return e.value;\n },\n },\n {\n title: 'System',\n binding: 'applicationId',\n required: true,\n hidden: true,\n template: this.applicationTemplate,\n editor: this.applicationSelector,\n },\n {\n title: 'Classification',\n binding: 'classificationText',\n editorHidden: true,\n groupHeaderTemplate: (e) => {\n return e.value;\n },\n },\n {\n title: 'Risk Appetite',\n binding: 'riskAppetiteId',\n required: true,\n template: this.riskAppetiteTemplate,\n groupHeaderTemplate: (e) => {\n const item = DataSources.IsraRiskScales.get(e.value);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n },\n editable: () => false,\n },\n {\n title: 'Version',\n binding: 'version',\n defaultValue: VersionableFormBase.versionPrototype(),\n required: false,\n width: '120px',\n translatable: false,\n editable: () => false,\n },\n {\n title: 'Status',\n binding: 'status',\n defaultValue: 0,\n editable: () => false,\n template: (dataItem) => {\n return Constants.RiskManagementStatusTranslations[dataItem.status].translations[selectedLanguage];\n },\n },\n {\n title: 'Active',\n binding: 'active',\n editable: () => false,\n editorHidden: true,\n width: '70px',\n template: function (dataItem) {\n return dataItem.active ? 'Active' : '';\n },\n groupable: false,\n },\n {\n title: 'Archived',\n binding: 'archived',\n editable: () => false,\n template: (dataItem) => dataItem.archived ? 'Archived' : '',\n width: '120px',\n editorHidden: true,\n },\n {\n title: 'Based On',\n binding: 'versionBasedOn',\n editable: () => false,\n editorHidden: true,\n width: '120px',\n },\n ];\n\n this.treatmentQuestionnaireColumns = [\n {\n title: '',\n width: '10px',\n },\n {\n title: 'Questionnaire',\n binding: 'controlQuestionnaireId',\n template: (dataItem) => {\n return Helpers.sanitizeHTML(DataSources.IsraControlQuestionnaires.get((dataItem.controlQuestionnaireId)).translations[selectedLanguage].name);\n },\n editor: (container, options) => {\n container.append(Helpers.sanitizeHTML(DataSources.IsraControlQuestionnaires.get((options.model.controlQuestionnaireId)).translations[selectedLanguage].name));\n },\n required: true,\n editable: () => false,\n sort: 'asc',\n },\n {\n title: 'Status',\n binding: 'status',\n editable: () => false,\n template: function (dataItem) {\n return Constants.DeploymentStatusTranslations[dataItem.status].translations[selectedLanguage];\n },\n },\n {\n title: 'Due Date',\n binding: 'dueDate',\n defaultValue: Selectors.GetDefaultDueDate(),\n template: (dataItem) => Selectors.DateTemplate(\n dataItem, 'dueDate',\n 'No Due Date',\n ),\n editor: (container, options) => {\n if (options.model.status === Constants.DeploymentStatus.Undeployed) {\n Selectors.DatePicker(container, options, 'dueDate');\n } else {\n container.append(Selectors.DateTemplate(options.model, 'dueDate'));\n }\n },\n },\n {\n title: 'Finish',\n binding: 'finished',\n editable: () => false,\n template: (dataItem) => Selectors.DateTemplate(\n dataItem, 'finished',\n 'Not Finished',\n ),\n editor: (container, options) => {\n Selectors.DateTemplate(options.model, 'finished', 'Not Finished');\n },\n },\n {\n title: 'Data Entry',\n binding: 'dataEntry',\n hidden: true,\n editor: (container, options) => this.dataEntryEditor(container, options),\n },\n {\n title: 'Approval Path',\n binding: 'approvalPath',\n hidden: true,\n editor: (container, options) => this.approvalPathEditor(container, options),\n },\n ];\n\n this.menu = {\n reviewAnswers: {\n title: 'Review Treatment',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.reviewAnswers(item);\n },\n },\n treatmentProgress: {\n title: 'Change Treatment Progress',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.treatmentProgress(item);\n },\n },\n };\n }\n\n deleteError() {\n $(this.grid)\n .data('kendoGrid')\n .cancelChanges();\n }\n\n async reviewAnswers(deployment) {\n const result = await IsraRiskManagementTreatmentReview.prerequisites({ deployment: deployment.id });\n\n if (result) {\n toggleAppear('IsraRiskManagementTreatmentReview', deployment.id);\n // this.openForm(new IsraRiskManagementTreatmentReview(deployment));\n }\n }\n\n async treatmentProgress(deployment) {\n const result = await IsraRiskManagementTreatmentProgress.prerequisites({ deployment: deployment.id });\n\n if (result) {\n toggleAppear('IsraRiskManagementTreatmentProgress', deployment.id);\n // this.openForm(new IsraRiskManagementTreatmentProgress(deployment));\n }\n }\n\n require() {\n return [\n DataSources.Applications,\n DataSources.IsraAssessments,\n DataSources.IsraClassificationDeployments,\n DataSources.IsraClassificationQuestionnaires,\n DataSources.IsraControlQuestionnaires,\n DataSources.IsraRiskScales,\n DataSources.Users,\n DataSources.IsraStandardizations,\n ];\n }\n\n setCustomDatasourceProperties(source) {\n super.setCustomDatasourceProperties(source);\n\n this.setFilter({\n name: 'treatments',\n filters: [\n {\n field: 'status',\n operator: 'gte',\n value: Constants.RiskManagementStatus.ReadyForTreatment,\n },\n ],\n });\n\n source.group = { field: 'system' };\n\n source.filter = this.currentFilter;\n }\n\n setCustomGridProperties(grid) {\n super.setCustomGridProperties(grid);\n\n grid.groupable = true;\n\n grid.editable = 'popup';\n\n grid.toolbar = grid.toolbar.slice(0, 5);\n\n grid.toolbar.push({\n template: 'Filter:
    ',\n });\n\n let first = true;\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n if (first === true) {\n first = false;\n\n const standardizations = [\n {\n id: 0,\n name: 'None',\n },\n ...DataSources.IsraStandardizations.view(),\n ];\n\n $('#standardizationFilter')\n .kendoDropDownList({\n dataTextField: 'name',\n dataSource: { data: standardizations },\n change: (e) => {\n const filter = [];\n const value = e.sender.value();\n\n if (value.id !== 0) {\n const apps = value.applications;\n if (apps.length === 0) {\n filter.push({\n field: 'applicationId',\n operator: 'eq',\n value: '-1',\n });\n }\n\n for (let i = 0; i < apps.length; ++i) {\n filter.push({\n field: 'applicationId',\n operator: 'eq',\n value: apps[i].applicationId,\n });\n }\n }\n\n if (filter.length === 0) {\n this.removeFilter('standardization');\n } else {\n this.setFilter({\n name: 'standardization',\n logic: 'or',\n filters: filter,\n });\n }\n\n this.datasource.filter(this.currentFilter);\n },\n });\n }\n };\n\n grid.detailInit = (e) => {\n const questionnairesGrid = this.createGrid({\n api: 'isra/RiskManagements/' + e.data.id + '/TreatmentQuestionnaires',\n columns: this.treatmentQuestionnaireColumns,\n selector: '[name=\"questionnairesDetails\"]',\n });\n\n questionnairesGrid.editable = 'popup';\n\n questionnairesGrid.toolbar = [\n { template: 'Deploy' },\n { template: 'Abort' },\n ];\n\n const databound = questionnairesGrid.dataBound;\n\n questionnairesGrid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n // Color grid\n const grid = e.sender;\n const data = grid.dataSource.data();\n $.each(data, (i, row) => {\n if (row.status === Constants.DeploymentStatus.Finished) {\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(1)')\n .addClass('deployment-status-finished');\n } else if (row.status === Constants.DeploymentStatus.Undeployed) {\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(1)')\n .addClass('deployment-status-undeployed');\n } else {\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(1)')\n .addClass('deployment-status-pending');\n }\n });\n\n $('[name=\"Deployment-Deploy\"]')\n .off('click')\n .on('click', (e) => {\n const grid = $(e.target.closest('.k-grid'))\n .data('kendoGrid');\n const deployment = grid.dataItem(grid.select());\n\n if (deployment == null) {\n Helpers.showError('Please select an treatment first');\n return;\n }\n\n const rm = $(this.grid)\n .data('kendoGrid')\n .dataItem($(e.target.closest('.k-detail-row'))\n .prev());\n\n deployment.rm = rm;\n\n this.deployDeployment(\n `/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${deployment.rm.id}/TreatmentQuestionnaires/${deployment.id}/deploy`,\n deployment,\n );\n });\n\n $('[name=\"Deployment-Abort\"]')\n .off('click')\n .on('click', (e) => {\n const grid = $(e.target.closest('.k-grid'))\n .data('kendoGrid');\n const deployment = grid.dataItem(grid.select());\n\n if (deployment == null) {\n Helpers.showError('Please select an treatment first');\n return;\n }\n\n const rm = $(this.grid)\n .data('kendoGrid')\n .dataItem($(e.target.closest('.k-detail-row'))\n .prev());\n\n deployment.rm = rm;\n\n this.abortDeployment(\n `/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${deployment.rm.id}/TreatmentQuestionnaires/${deployment.id}/abort`,\n deployment,\n );\n });\n };\n\n questionnairesGrid.columns[questionnairesGrid.columns.length - 1].command = ['edit'];\n\n $('
    ')\n .appendTo(e.detailCell)\n .kendoGrid(questionnairesGrid);\n };\n }\n\n assessmentTemplate(dataItem) {\n const item = DataSources.IsraAssessments.get(dataItem.assessmentId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n\n applicationTemplate(dataItem) {\n const item = DataSources.Applications.get(dataItem.applicationId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n\n classificationDeploymentTemplate(dataItem) {\n const item = DataSources.IsraClassificationDeployments.get(dataItem.classificationDeploymentId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n\n riskAppetiteTemplate(dataItem) {\n const item = DataSources.IsraRiskScales.get(dataItem.riskAppetiteId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n}\n","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterTestApplicationLine.vue?vue&type=style&index=0&id=099187b3&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterTestApplicationLine.vue?vue&type=style&index=0&id=099187b3&scoped=true&lang=css&\"","import FormBase from '../FormBase.js';\nimport DataSources from '../../Core/datasources.js';\nimport { selectedLanguage } from '../../main.js';\nimport { Helpers } from '../../Core/Helpers';\n\nexport default class IsraDeploymentControlValues extends FormBase {\n constructor(deployment) {\n super('\\'' + deployment.translations[selectedLanguage].name + '\\' Control Values', 'general');\n this.api = 'isra/RiskDeployments/' + deployment.id + '/ControlValues';\n\n this.columns = [\n {\n title: 'Id',\n binding: 'controlId',\n editable: false,\n width: 50,\n },\n {\n title: 'Question',\n binding: 'controlId',\n editable: false,\n template: (dataItem) => {\n const item = DataSources.IsraControlQuestions.get(dataItem.controlId);\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].question);\n },\n },\n {\n title: 'Recommended Actions',\n binding: 'recommendedActions',\n required: true,\n translatable: true,\n },\n {\n title: 'C',\n binding: 'confidentiality',\n type: 'boolean',\n required: true,\n defaultValue: true,\n width: 45,\n },\n {\n title: 'I',\n binding: 'integrity',\n type: 'boolean',\n required: true,\n defaultValue: true,\n width: 45,\n },\n {\n title: 'A',\n binding: 'availability',\n type: 'boolean',\n required: true,\n defaultValue: true,\n width: 45,\n },\n ];\n\n delete this.menu.delete;\n }\n\n setCustomGridProperties(grid) {\n // remove delete\n grid.toolbar.splice(0, 1);\n grid.columns[grid.columns.length - 1].command = ['edit'];\n }\n\n require() {\n return [DataSources.IsraControlQuestions];\n }\n}\n","import { selectedMasterPlan, selectedLanguage } from '../../main.js';\nimport FormBase from '../FormBase.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\n\nexport default class IsraRiskDeploymentRiskValues extends FormBase {\n constructor(deployment) {\n super('\\'' + deployment.translations[selectedLanguage].name + '\\' Risk Values', 'general');\n this.api = 'isra/RiskDeployments/' + deployment.id + '/RiskValues';\n\n this.deployment = deployment;\n\n this.columns = [\n {\n title: 'Risk',\n binding: 'name',\n required: true,\n sort: 'asc',\n editable: false,\n template: (dataItem) => {\n const item = DataSources.IsraRisks.get(dataItem.riskId);\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n },\n },\n\n {\n title: 'C',\n binding: 'confidentiality',\n defaultValue: false,\n type: 'boolean',\n width: 45,\n },\n {\n title: 'I',\n binding: 'integrity',\n defaultValue: false,\n type: 'boolean',\n width: 45,\n },\n {\n title: 'A',\n binding: 'availability',\n defaultValue: false,\n type: 'boolean',\n width: 45,\n },\n\n {\n title: 'Default Likelihood',\n binding: 'defaultLikelihood',\n defaultValue: 6,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 20,\n step: 0.1,\n },\n width: 150,\n },\n {\n title: 'Impact Reduction',\n binding: 'impactReduction',\n defaultValue: 1,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 1,\n step: 0.1,\n },\n format: '{0:p2}',\n width: 150,\n },\n {\n title: 'Probability Reduction',\n binding: 'probabilityReduction',\n defaultValue: 1,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 1,\n step: 0.1,\n },\n format: '{0:p2}',\n width: 150,\n },\n ];\n\n delete this.menu.delete;\n }\n\n init() {\n // likelihood max\n const l = [];\n DataSources.IsraLikelihoodScales.data()\n .forEach(i => l.push(i.value));\n this.columns[4].validation.max = Math.max(...l);\n\n super.init();\n }\n\n require() {\n return [DataSources.IsraLikelihoodScales, DataSources.IsraRisks];\n }\n\n setCustomGridProperties(grid) {\n grid.toolbar = [\n {\n name: 'excel',\n text: 'Export',\n },\n { template: 'Reset Deleted Risks' },\n { template: 'Add Risk' },\n ];\n\n const databound = grid.dataBound;\n let firstDataBound = true;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n if (firstDataBound) {\n firstDataBound = false;\n $('[name=\\'ResetRisks\\']')\n .off('click')\n .on('click', () => {\n kendo.ui.progress($(this.grid), true);\n $.post('/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' + this.deployment.id +\n '/RiskValues/RecreateDeletedRisks')\n .then(() => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .read();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n });\n\n $('[name=\\'AddRisk\\']')\n .off('click')\n .on('click', () => {\n const grid = $(this.grid)\n .data('kendoGrid');\n const data = grid.dataSource.data();\n\n const content = '
    ';\n Helpers.showPopUp('Select Risk', content, [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const di = $('#risksComboBox')\n .data('kendoDropDownList')\n .dataItem();\n if (di != null) {\n $.post('/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' +\n this.deployment.id + '/RiskValues/' + di.id)\n .then(() => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .read();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n });\n return true;\n }\n return false;\n },\n },\n {\n text: 'Cancel',\n action: function () {\n return true;\n },\n }]);\n\n const filters = [];\n for (let i = 0; i < data.length; ++i) {\n filters.push({\n field: 'id',\n operator: 'neq',\n value: data[i].riskId,\n });\n }\n\n $('#risksComboBox')\n .width(500)\n .kendoDropDownList({\n autoBind: true,\n dataTextField: 'translations[\\'' + selectedLanguage + '\\'].name',\n dataValueField: 'id',\n valuePrimitive: true,\n dataSource: {\n data: DataSources.IsraRisks.view(),\n filter: {\n logic: 'and',\n filters: filters,\n },\n },\n filter: filters,\n filtering: function (e) {\n const filterValue = e.filter !== undefined ? e.filter.value : '';\n e.preventDefault();\n\n this.dataSource.filter({\n logic: 'and',\n filters: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n operator: 'contains',\n value: filterValue,\n },\n ...filters,\n ],\n });\n },\n suggest: true,\n });\n });\n }\n };\n }\n}\n","import { selectedMasterPlan, selectedLanguage } from '../../main.js';\nimport FormBase from '../FormBase.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\n\nexport default class IsraDeploymentRiskControlValues extends FormBase {\n constructor(deployment) {\n super('\\'' + deployment.translations[selectedLanguage].name + '\\' Risk - Controls', 'general');\n this.api = 'isra/RiskDeployments/' + deployment.id + '/RiskControlValues';\n\n this.deployment = deployment;\n\n this.columns = [\n {\n title: 'Risk',\n binding: 'riskId',\n required: true,\n sort: 'asc',\n editable: false,\n template: (dataItem) => this.riskTemplate(dataItem),\n sortField: 'translations.' + selectedLanguage + '.name',\n datasource: DataSources.IsraRisks,\n hidden: true,\n },\n {\n title: 'Id',\n binding: 'controlId',\n width: 50,\n editable: () => false,\n },\n {\n title: 'Control',\n fiendName: 'control',\n template: (dataItem) => this.controlTemplate(dataItem),\n datasource: DataSources.IsraControlQuestions,\n sortId: 'controlId',\n sortField: 'translations.' + selectedLanguage + '.question',\n editable: () => false,\n },\n {\n title: 'Impact',\n binding: 'impactWeight',\n defaultValue: 0,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 20,\n step: 1,\n },\n width: '100px',\n hidden: true,\n },\n {\n title: 'Probability',\n binding: 'probabilityWeight',\n defaultValue: 0,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 20,\n step: 1,\n },\n width: '100px',\n hidden: true,\n },\n ];\n }\n\n init() {\n // likelihood max\n const l = [];\n DataSources.IsraImpactScales.data()\n .forEach(i => l.push(i.value));\n this.columns[3].validation.max = Math.max(...l);\n\n DataSources.IsraLikelihoodScales.data()\n .forEach(i => l.push(i.value));\n this.columns[4].validation.max = Math.max(...l);\n super.init();\n }\n\n require() {\n return [\n DataSources.IsraRisks,\n DataSources.IsraControlQuestions,\n DataSources.IsraImpactScales,\n DataSources.IsraLikelihoodScales];\n }\n\n setCustomDatasourceProperties(source) {\n source.group = { field: 'riskId' };\n }\n\n setCustomGridProperties(grid) {\n grid.toolbar = [\n {\n name: 'excel',\n text: 'Export',\n },\n { template: 'Reset Deleted Risk-Controls' },\n { template: 'Add Risk-Control' },\n ];\n\n const databound = grid.dataBound;\n let firstDataBound = true;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n if (firstDataBound) {\n firstDataBound = false;\n $('[name=\\'ResetRiskControls\\']')\n .off('click')\n .on('click', () => {\n kendo.ui.progress($(this.grid), true);\n $.post('/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' + this.deployment.id +\n '/RiskControlValues/RecreateBrokenConnections')\n .then(() => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .read();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n });\n\n $('[name=\\'AddRiskControl\\']')\n .off('click')\n .on('click', () => {\n const content = 'Risk

    ' +\n 'Control
    ';\n\n Helpers.showPopUp('Select Risk and Control', content, [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const risk = $('#risksComboBox')\n .data('kendoDropDownList')\n .dataItem();\n const control = $('#controlsComboBox')\n .data('kendoDropDownList')\n .dataItem();\n\n if (risk != null && control != null) {\n $.post('/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' +\n this.deployment.id + '/RiskControlValues/' + risk.id + '/' + control.id)\n .then(() => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .read();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n });\n return true;\n }\n return false;\n },\n },\n {\n text: 'Cancel',\n action: function () {\n return true;\n },\n }]);\n\n let controlsFilters = [];\n\n $('#risksComboBox')\n .width(500)\n .kendoDropDownList({\n autoBind: true,\n dataTextField: 'translations[\\'' + selectedLanguage + '\\'].name',\n dataValueField: 'id',\n valuePrimitive: true,\n dataSource: {\n type: 'json',\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' +\n this.deployment.id + '/RiskControlValues/GetRisks',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n dir: 'asc',\n },\n ],\n },\n filter: 'contains',\n filtering: function (e) {\n const filterValue = e.filter !== undefined ? e.filter.value : '';\n e.preventDefault();\n\n this.dataSource.filter({\n logic: 'and',\n filters: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n operator: 'contains',\n value: filterValue,\n },\n ],\n });\n },\n suggest: true,\n dataBound: (e) => {\n const data = $(this.grid)\n .data('kendoGrid')\n .dataSource\n .data();\n controlsFilters = [];\n for (let i = 0; i < data.length; ++i) {\n const selected = e.sender.value();\n if (data[i].riskId === selected) {\n controlsFilters.push({\n field: 'id',\n operator: 'neq',\n value: data[i].controlId,\n });\n }\n }\n\n const c = $('#controlsComboBox')\n .data('kendoDropDownList');\n c.dataSource.filter(controlsFilters);\n c.listView.setDSFilter(c.dataSource.filter());\n },\n change: (e) => {\n const data = $(this.grid)\n .data('kendoGrid')\n .dataSource\n .data();\n controlsFilters = [];\n for (let i = 0; i < data.length; ++i) {\n const selected = e.sender.value();\n if (data[i].riskId === selected) {\n controlsFilters.push({\n field: 'id',\n operator: 'neq',\n value: data[i].controlId,\n });\n }\n }\n\n const c = $('#controlsComboBox')\n .data('kendoDropDownList');\n c.dataSource.filter(controlsFilters);\n c.listView.setDSFilter(c.dataSource.filter());\n },\n });\n\n $('#controlsComboBox')\n .width(500)\n .kendoDropDownList({\n autoBind: true,\n dataTextField: 'translations[\\'' + selectedLanguage + '\\'].question',\n dataValueField: 'id',\n valuePrimitive: true,\n dataSource: {\n type: 'json',\n transport: {\n read: {\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' +\n this.deployment.id + '/RiskControlValues/GetControls',\n },\n },\n sort: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].question',\n dir: 'asc',\n },\n ],\n },\n filter: 'contains',\n filtering: function (e) {\n const filterValue = e.filter !== undefined ? e.filter.value : '';\n e.preventDefault();\n\n this.dataSource.filter({\n logic: 'and',\n filters: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].question',\n operator: 'contains',\n value: filterValue,\n },\n ...controlsFilters,\n ],\n });\n },\n suggest: true,\n });\n });\n }\n };\n }\n\n riskTemplate(dataItem) {\n const item = DataSources.IsraRisks.get(dataItem.riskId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n\n controlTemplate(dataItem) {\n const item = DataSources.IsraControlQuestions.get(dataItem.controlId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].question);\n } else {\n return '';\n }\n }\n}\n","import { selectedMasterPlan, selectedLanguage, toggleAppear } from '../../main.js';\nimport FormBase from '../FormBase.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport Constants from '../../Core/constants.js';\n\nexport default class IsraRiskDeploymentRiskTestValues extends FormBase {\n constructor(deployment) {\n super('Review \\'' + deployment.translations[selectedLanguage].name + '\\' Answers', 'general');\n\n this.api = 'isra/RiskDeployments/' + deployment.id + '/TestValues';\n this.deployment = deployment;\n\n this.options.errorCallBack = {\n update: (e) => {\n if (e.status === 200) {\n if (this.deployment.questionnairesReviewed === true) {\n $('#Test-Accept')\n .removeClass('k-state-disabled')\n .off('click')\n .on('click', () => this.acceptReview());\n $('#Test-Accept span')\n .text('Accept Review');\n\n this.deployment.questionnairesReviewed = false;\n }\n } else {\n $(this.grid)\n .data('kendoGrid')\n .cancelChanges();\n }\n },\n };\n\n this.columns = [\n {\n title: 'Risk',\n binding: 'riskId',\n required: true,\n editable: false,\n template: (dataItem) => {\n const item = DataSources.IsraRisks.get(dataItem.riskId);\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n },\n datasource: DataSources.IsraRisks,\n sortField: 'translations.' + selectedLanguage + '.name',\n },\n\n {\n title: 'C',\n binding: 'confidentiality',\n defaultValue: false,\n type: 'boolean',\n collapse: true,\n },\n {\n title: 'I',\n binding: 'integrity',\n defaultValue: false,\n type: 'boolean',\n collapse: true,\n },\n {\n title: 'A',\n binding: 'availability',\n defaultValue: false,\n type: 'boolean',\n collapse: true,\n },\n\n {\n title: 'Default
    Likelihood',\n binding: 'defaultLikelihood',\n defaultValue: 6,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 20,\n step: 0.1,\n },\n collapse: true,\n },\n {\n title: 'Profile
    Likelihood Drop',\n binding: 'profileReduction',\n collapse: true,\n },\n {\n title: 'Probability
    Reduction',\n binding: 'probabilityReduction',\n defaultValue: 1,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 1,\n step: 0.1,\n },\n format: '{0:p2}',\n collapse: true,\n },\n {\n title: 'Impact
    Reduction',\n binding: 'impactReduction',\n defaultValue: 1,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 1,\n step: 0.1,\n },\n format: '{0:p2}',\n collapse: true,\n },\n {\n title: 'Inherent
    Risk (LxI)',\n binding: 'riskValue',\n sortable: false,\n collapse: true,\n editable: () => false,\n template: (dataItem) => {\n const likelihood = Math.max(dataItem.defaultLikelihood - dataItem.profileReduction, 1);\n const impact = Math.max(Math.max(\n dataItem.confidentiality ? this.Confidentiality : 0,\n dataItem.integrity ? this.Integrity : 0,\n dataItem.availability ? this.Availability : 0,\n ), 1);\n\n let risk = likelihood * impact;\n\n risk = Math.round(risk * 100) / 100;\n\n const data = DataSources.IsraRiskScales.view();\n let i;\n for (i = 0; i < data.length - 1; ++i) {\n if (data[i].value > risk) {\n break;\n }\n }\n\n return '
     ' + risk + ' (' + likelihood + 'x' + impact + ')
    ';\n },\n },\n {\n title: 'Current
    Risk (LxI)',\n binding: 'riskValue',\n sortable: false,\n collapse: true,\n editable: () => false,\n template: (dataItem) => {\n const data = DataSources.IsraRiskScales.view();\n let i;\n for (i = 0; i < data.length - 1; ++i) {\n if (data[i].value > dataItem.riskValue) {\n break;\n }\n }\n\n return '
     ' + dataItem.riskValue + ' (' + dataItem.riskProbability + 'x' +\n dataItem.riskImpact + ')
    ';\n },\n },\n {\n title: 'Best Case
    Risk (LxI)',\n binding: 'riskValue',\n sortable: false,\n collapse: true,\n editable: () => false,\n template: (dataItem) => {\n let likelihood = Math.max(dataItem.defaultLikelihood - dataItem.profileReduction, 1);\n let impact = Math.max(Math.max(\n dataItem.confidentiality ? this.Confidentiality : 0,\n dataItem.integrity ? this.Integrity : 0,\n dataItem.availability ? this.Availability : 0,\n ), 1);\n\n let imp = false,\n pro = false;\n\n for (let i = 0; i < dataItem.controlValues.length; ++i) {\n const q = DataSources.IsraControlQuestions.get(dataItem.controlValues[i].controlId);\n if (q == null) {\n Helpers.showError('Unable to find Control Question with id ' + dataItem.controlId);\n return '';\n }\n\n // find question answer\n const answer = q.answers.find((element) => {\n return element.id === dataItem.controlValues[i].answerId;\n });\n\n if (answer == null || answer.value != null) {\n if (dataItem.controlValues[i].impactWeight > 0) {\n imp = true;\n }\n\n if (dataItem.controlValues[i].probabilityWeight > 0) {\n pro = true;\n }\n\n if (imp === true && pro === true) {\n break;\n }\n }\n }\n if (imp) {\n impact = Math.max(impact - impact * dataItem.impactReduction, 1);\n }\n\n if (pro) {\n likelihood = Math.max(likelihood - likelihood * dataItem.probabilityReduction, 1);\n }\n\n let risk = likelihood * impact;\n\n risk = Math.round(risk * 100) / 100;\n\n const data = DataSources.IsraRiskScales.view();\n let i;\n for (i = 0; i < data.length - 1; ++i) {\n if (data[i].value > risk) {\n break;\n }\n }\n return '
     ' + risk + ' (' + likelihood + 'x' + impact + ')
    ';\n },\n },\n ];\n\n this.answerColumns = [\n {\n title: 'Id',\n fieldName: 'controlId',\n editable: () => false,\n collapse: true,\n },\n {\n title: 'Control',\n fieldName: 'control',\n editable: false,\n template: (dataItem) => {\n const item = DataSources.IsraControlQuestions.get(dataItem.controlId);\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].question);\n },\n datasource: DataSources.IsraControlQuestions,\n sortField: 'translations.' + selectedLanguage + '.question',\n sortId: 'controlId',\n },\n {\n title: 'Answer',\n binding: 'answerId',\n sortable: false,\n width: '150px',\n sortField: 'translations.' + selectedLanguage + '.answer',\n template: (dataItem) => {\n if (dataItem.answerId == null) {\n return ' ';\n }\n\n const q = DataSources.IsraControlQuestions.get(dataItem.controlId);\n if (q == null) {\n Helpers.showError('Unable to find Control Question with id ' + dataItem.controlId);\n return '';\n }\n\n // find question answer\n const answer = q.answers.find((element) => {\n return element.id === dataItem.answerId;\n });\n\n // find text for question answer\n const item = DataSources.IsraAnswers.get(answer.answerId);\n\n if (item == null) {\n return '';\n }\n\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].answer);\n },\n editor: (container, options) => this.answerSelector(container, options),\n datasource: DataSources.IsraAnswers,\n },\n {\n title: 'Answer Comments',\n binding: 'answerComments',\n editable: () => true,\n sortable: false,\n },\n // {\n // title: 'Control
    Effectiveness',\n // binding: 'answerValue',\n // width: '150px',\n // template: (dataItem) => {\n // if (dataItem.answerId == null)\n // return ' ';\n //\n // let q = DataSources.IsraControlQuestions.get(dataItem.controlId);\n // if (q == null) {\n // Helpers.showError('Unable to find Control Question with id ' + dataItem.controlId);\n // return '';\n // }\n //\n // // find question answer\n // let answer = q.answers.find((element) => {\n // return element.id === dataItem.answerId;\n // });\n //\n // console.log(answer);\n // // find text for question answer\n // let item = DataSources.IsraAnswers.get(answer.answerId);\n //\n // if (item == null)\n // return \"\";\n //\n // return item.defaultValue;\n // },\n // type: 'number',\n // required: true,\n // validation: {min: 0, max: 1, step: 0.1},\n // },\n {\n title: 'Impact',\n binding: 'impactWeight',\n defaultValue: 0,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 20,\n step: 1,\n },\n width: '100px',\n },\n {\n title: 'Probability',\n binding: 'probabilityWeight',\n defaultValue: 0,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 20,\n step: 1,\n },\n width: '100px',\n },\n ];\n\n this.menu = {\n edit: this.menu.edit,\n\n sep1: {\n cssClass: 'k-separator',\n },\n\n // resetValues: {\n // title: 'Reset Values',\n // action: (e) => {\n // const item = $(e.target.closest('.k-grid')).data(\"kendoGrid\").dataItem(e.target);\n // this.resetRiskValues(item);\n // }\n // },\n // resetAnswers: {\n // title: 'Reset Answers',\n // action: (e) => {\n // const item = $(e.target.closest('.k-grid')).data(\"kendoGrid\").dataItem(e.target);\n // this.resetRiskAnswers(item);\n // }\n // },\n // sep2: {\n // cssClass: 'k-separator'\n // },\n // applyValues: {\n // title: 'Apply Values',\n // action: (e) => {\n // const item = $(e.target.closest('.k-grid')).data(\"kendoGrid\").dataItem(e.target);\n // this.applyRiskValues(item);\n // }\n // },\n };\n\n this.answersMenu = {\n edit: this.menu.edit,\n\n // sep1: {\n // cssClass: 'k-separator'\n // },\n //\n // resetValues: {\n // title: 'Reset Values',\n // action: (e) => {\n // const item = $(e.target.closest('.k-grid')).data(\"kendoGrid\").dataItem(e.target);\n // this.resetRiskControlValues(item);\n // }\n // },\n // applyValues: {\n // title: 'Apply Values',\n // action: (e) => {\n // const item = $(e.target.closest('.k-grid')).data(\"kendoGrid\").dataItem(e.target);\n // this.applyRiskControlValues(item);\n // }\n // },\n //\n // sep2: {\n // cssClass: 'k-separator'\n // },\n //\n // resetAnswer: {\n // title: 'Reset Answer',\n // action: (e) => {\n // const item = $(e.target.closest('.k-grid')).data(\"kendoGrid\").dataItem(e.target);\n // this.resetRiskControlAnswers(item.id);\n // }\n // },\n };\n }\n\n static async prerequisites(options = {}) {\n if (options.deployment == null) {\n Helpers.showError('Error: Cannot check IsraRiskDeploymentRiskTestValues prerequisites() without a deployment parameter');\n return false;\n }\n\n const j = await Promise.resolve($.get('/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' + options.deployment +\n '/CheckReview'));\n\n const result = JSON.parse(j);\n\n if (result.result === 'true') {\n return true;\n } else {\n let msg = '';\n if (result.message === 'controls') {\n msg = 'Cannot review while a control questionnaire is not finished';\n } else {\n msg = 'Cannot review while classification questionnaire is not finished';\n }\n\n Helpers.showError(msg);\n\n return false;\n }\n }\n\n answerSelector(container, options) {\n const question = DataSources.IsraControlQuestions.get(options.model.controlId);\n if (question == null) {\n Helpers.showError('Unable to find Classification Question with id ' + options.model.controlId);\n return;\n }\n\n const data = question.answers;\n\n $('')\n .appendTo(container)\n .kendoDropDownList({\n optionLabel: Constants.NoDeploymentQuestionnaireAnswer,\n optionLabelTemplate: () => {\n return ' ';\n },\n valuePrimitive: true,\n template: (dataItem) => {\n if (dataItem.answerId == null) {\n return ' ';\n }\n\n const answer = DataSources.IsraAnswers.get(dataItem.answerId);\n return Helpers.sanitizeHTML(answer.translations[selectedLanguage].answer);\n },\n valueTemplate: (dataItem) => {\n if (dataItem.answerId == null) {\n return ' ';\n }\n\n return Helpers.sanitizeHTML(DataSources.IsraAnswers.get(dataItem.answerId).translations[selectedLanguage].answer);\n },\n dataValueField: 'id',\n dataSource: {\n data: data,\n },\n });\n }\n\n async getClassification() {\n const j = await Promise.resolve($.get('/api/masterplans/' + selectedMasterPlan.id + '/isra/ClassificationDeployments/' +\n this.deployment.classificationDeploymentId));\n\n return j;\n }\n\n async init() {\n this.classification = await this.getClassification();\n\n this.Confidentiality = DataSources.IsraClassificationScales.get(this.classification.confidentialityId).value;\n this.Integrity = DataSources.IsraClassificationScales.get(this.classification.integrityId).value;\n this.Availability = DataSources.IsraClassificationScales.get(this.classification.availabilityId).value;\n\n // likelihood max\n const l = [];\n DataSources.IsraLikelihoodScales.data()\n .forEach(i => l.push(i.value));\n this.columns[4].validation.max = Math.max(...l);\n\n super.init();\n }\n\n initDone() {\n if (this.deployment.questionnairesReviewed === true) {\n $('#Test-Accept')\n .addClass('k-state-disabled')\n .off('click');\n $('#Test-Accept span')\n .text('Already Accepted');\n }\n }\n\n require() {\n return [\n DataSources.IsraLikelihoodScales,\n DataSources.IsraRisks,\n DataSources.IsraRiskScales,\n DataSources.IsraControlQuestions,\n DataSources.IsraAnswers,\n DataSources.IsraAnswerGroups,\n DataSources.IsraClassificationScales,\n ];\n }\n\n // setCustomDatasourceProperties(source) {\n // // console.log(source);\n // }\n\n setCustomGridProperties(grid) {\n grid.toolbar = [\n // {name: \"excel\", title: \"Export\"},\n {\n template: 'Accept Review',\n },\n { template: 'Reset Answers' },\n { template: 'Reset Risk/Control Values' },\n { template: 'Expand All' },\n { template: 'Collapse All' },\n ];\n\n grid.columns[grid.columns.length - 1].command = ['edit'];\n\n const model = Helpers.createModel(selectedMasterPlan, this.answerColumns);\n const answerCols = Helpers.createColumns(selectedMasterPlan, this.answerColumns);\n answerCols.splice(-1);\n // answerCols[answerCols.length - 1].command = [{\n // name: \"edit\", visible: function () {\n // return true;\n // }\n // }];\n\n // function to prevent rebinding\n const dataBinding = grid.dataBinding;\n grid.dataBinding = (e) => {\n dataBinding.call(e.sender, e);\n\n if (this.preventBinding) {\n e.preventDefault();\n const acd = $('#answersDetails')\n .data('kendoGrid');\n if (acd != null) {\n acd.dataSource.read();\n acd.refresh();\n }\n }\n\n this.preventBinding = false;\n\n const data = e.sender.dataSource.data();\n\n // console.log(data);\n\n for (let i = 0; i < data.length; ++i) {\n let probabilitySum = 0,\n impactSum = 0,\n controlsProbability = 0,\n controlsImpact = 0;\n\n const initialImpact = Math.max(Math.max(this.Confidentiality, this.Integrity, this.Availability), 1),\n initialProbability = Math.max(data[i].defaultLikelihood - data[i].profileReduction, 1);\n\n for (let j = 0; j < data[i].controlValues.length; ++j) {\n const question = DataSources.IsraControlQuestions.get(data[i].controlValues[j].controlId);\n let answerValue = 0;\n\n for (let k = 0; k < question.answers.length; ++k) {\n if (question.answers[k].id === data[i].controlValues[j].answerId) {\n answerValue = question.answers[k].value;\n break;\n }\n }\n // data[i].controlValues[j];\n if (answerValue == null) {\n continue;\n }\n\n impactSum += data[i].controlValues[j].impactWeight;\n probabilitySum += data[i].controlValues[j].probabilityWeight;\n\n controlsProbability += (data[i].controlValues[j].probabilityWeight * answerValue);\n controlsImpact += (data[i].controlValues[j].impactWeight * answerValue);\n }\n\n let impact = initialImpact - (initialImpact *\n (controlsImpact * data[i].impactReduction / (impactSum === 0 ? 1 : impactSum)));\n if (impact < 1) {\n impact = 1;\n }\n\n let probability = initialProbability - (initialProbability *\n (controlsProbability * data[i].probabilityReduction /\n (probabilitySum === 0 ? 1 : probabilitySum)));\n if (probability < 1) {\n probability = 1;\n }\n\n // console.log('RiskId: ' + data[i].riskId + ', Impact: ' + impact + ', Probability: ' + probability + ', Risk: ' + impact * probability);\n\n data[i].riskValue = Math.round(impact * probability * 100) / 100;\n data[i].riskImpact = Math.round(impact * 100) / 100;\n data[i].riskProbability = Math.round(probability * 100) / 100;\n // e.sender.dataSource.pushUpdate({id: data[i].id, riskValue: impact * probability});\n }\n };\n\n let firstBound = true;\n const dataBound = grid.dataBound;\n grid.dataBound = (e) => {\n dataBound.call(e.sender, e);\n\n if (firstBound) {\n firstBound = false;\n\n $('#Test-ExpandAll')\n .off('click')\n .on('click', () => {\n const grid = e.sender;\n $('.k-master-row')\n .each(function () {\n grid.expandRow(this);\n });\n });\n\n $('#Test-CollapseAll')\n .off('click')\n .on('click', () => {\n const grid = e.sender;\n $('.k-master-row')\n .each(function () {\n grid.collapseRow(this);\n });\n });\n\n $('#Test-Accept')\n .off('click')\n .on('click', (e) => this.acceptReview(e));\n\n $('#Test-ResetAnswers')\n .off('click')\n .on('click', () => {\n kendo.ui.progress($(this.grid), true);\n $.post('/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' + this.deployment.id +\n '/TestValues/ResetAnswers')\n .then(() => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .read();\n\n this.deployment.questionnairesReviewed = false;\n $('#Test-Accept')\n .removeClass('k-state-disabled')\n .off('click')\n .on('click', () => this.acceptReview());\n $('#Test-Accept span')\n .text('Accept Review');\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n });\n\n $('#Test-ResetValues')\n .off('click')\n .on('click', () => {\n kendo.ui.progress($(this.grid), true);\n $.post('/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' + this.deployment.id +\n '/TestValues/ResetRiskControlValues')\n .then(() => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .read();\n\n this.deployment.questionnairesReviewed = false;\n $('#Test-Accept')\n .removeClass('k-state-disabled')\n .off('click')\n .on('click', () => this.acceptReview());\n $('#Test-Accept span')\n .text('Accept Review');\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n });\n }\n };\n\n grid.detailInit = (e) => {\n const detail = Helpers.getDefaultGrid(selectedMasterPlan, this.api);\n\n const detailDataBound = detail.dataBound;\n detail.dataBound = (e) => {\n detailDataBound.call(e.sender, e);\n\n const data = e.sender.dataSource.data();\n\n $.each(data, function (_i, row) {\n if (row.answerId !== row.initialAnswerId) {\n $('tr[data-uid=\"' + row.uid + '\"]').addClass('deployment-pending');\n\n const answer = 'empty';\n\n if (row.initialAnswerId != null) {\n const q = DataSources.IsraControlQuestions.get(row.controlId);\n if (q == null) {\n Helpers.showError('Unable to find Control Question with id ' + dataItem.controlId);\n return '';\n }\n\n console.log(q.answers);\n console.log(row);\n\n // find question answer\n let answer = q.answers.find((element) => {\n return element.id === row.initialAnswerId;\n });\n\n // find text for question answer\n const item = DataSources.IsraAnswers.get(answer.answerId);\n\n answer = '';\n if (item != null) {\n answer = item.translations[selectedLanguage].answer;\n }\n }\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(3)')\n .attr('title', 'Initial Answer: ' + Helpers.sanitizeHTML(answer));\n }\n });\n };\n\n // detail.editable = 'inline';\n delete detail.toolbar;\n delete detail.height;\n\n detail.dataSource = {\n transport: {\n read: function (options) {\n options.success(e.data.controlValues);\n },\n update: (options) => {\n console.log('options', options);\n e.data.dirty = true;\n\n const data = $(this.grid)\n .data('kendoGrid')\n .dataSource\n .data();\n for (let i = 0; i < data.length; ++i) {\n for (let j = 0; j < data[i].controlValues.length; ++j) {\n if (data[i].controlValues[j].controlId === options.data.controlId) {\n data[i].dirty = true;\n data[i].controlValues[j].answerId = options.data.answerId;\n data[i].controlValues[j].answerComments = options.data.answerComments;\n break;\n }\n }\n }\n\n const promise = e.sender.dataSource.sync();\n\n promise.then(() => {\n const grid = e.sender;\n const row = grid.tbody.children('[data-uid=\\'' + e.data.uid + '\\']');\n grid.select(row);\n grid.expandRow(row);\n })\n .fail((e) => {\n options.error(e);\n });\n },\n create: function (options) {\n options.success();\n },\n destroy: function (options) {\n options.success();\n },\n },\n autoSync: true,\n pageSize: 10,\n schema: model,\n };\n\n detail.columns = answerCols;\n\n $('
    ')\n .appendTo(e.detailCell)\n .kendoGrid(detail);\n\n $('#answersDetails')\n .off(\n 'mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')',\n this.disableButtonsOnEdit,\n )\n .on(\n 'mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')',\n this.disableButtonsOnEdit,\n );\n\n // menu for risk-controls\n // on enable causes weird bugs on other forms (causes menu to get stuck)\n // most probably wants proper destroy and recreate\n\n // destroy context menu if exists and recreate it\n // if (this.contextMenu['[name=answersDetails]'] != null)\n // $(this.contextMenu['[name=answersDetails]']).data('kendoContextMenu').destroy();\n //\n // this.createMenu('[name=answersDetails]', this.answersMenu);\n };\n }\n\n acceptReview() {\n Helpers.showPopUp2({\n title: 'Warning',\n content: 'Accepting current review will apply all changes to Risks/Controls values and will reject all deployments with changed answers
    Are you sure you want to continue?',\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n kendo.ui.progress($(this.grid), true);\n $.post('/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' + this.deployment.id +\n '/TestValues/AcceptReview')\n .then(() => {\n this.deployment.questionnairesReviewed = true;\n\n $('#Test-Accept')\n .addClass('k-state-disabled')\n .off('click');\n $('#Test-Accept span')\n .text('Review Accepted');\n\n Helpers.showPopUp2({\n title: 'Review Accepted',\n content: 'Review Accepted Succesfully.',\n actions: [\n {\n text: 'Ok',\n action: () => {\n toggleAppear('israRiskDeployments');\n return true;\n },\n },\n ],\n });\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n },\n },\n {\n text: 'Cancel',\n },\n ],\n });\n }\n}\n","import FormBase from '../FormBase.js';\nimport { selectedMasterPlan, selectedLanguage, toggleAppear } from '../../main.js';\nimport DataSources from '../../Core/datasources.js';\nimport Selectors from '../../Core/Selectors.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport Constants from '../../Core/constants.js';\n\nexport default class IsraRiskDeploymentTreatmentReview extends FormBase {\n constructor(deployment) {\n super('Review \\'' + deployment.translations[selectedLanguage].name + '\\' Treatment', 'general');\n\n if (deployment == null) {\n throw new Error('DeploymentTabs - Deployment is null');\n }\n\n this.api = 'isra/RiskDeployments/' + deployment.id + '/TreatmentReview/RiskValues';\n\n this.deployment = deployment;\n\n this.options.errorCallBack = {\n update: (e) => {\n if (e.status === 200) {\n if (this.deployment.treatmentReviewed === true) {\n $('#TreatmentReview-Approve')\n .removeClass('k-state-disabled')\n .off('click')\n .on('click', () => this.acceptReview());\n $('#TreatmentReview-Approve span')\n .text('Accept Treatment');\n\n this.deployment.treatmentReviewed = false;\n }\n } else {\n $(this.grid)\n .data('kendoGrid')\n .cancelChanges();\n }\n },\n };\n\n this.columns = [\n {\n title: 'Risk',\n binding: 'riskId',\n datasource: DataSources.IsraRisks,\n sort: 'asc',\n sortField: 'translations.' + selectedLanguage + '.name',\n editable: () => false,\n template: (dataItem) => {\n const item = DataSources.IsraRisks.get(dataItem.riskId);\n // let scale = DataSources.IsraRiskScales.get(dataItem.currentRiskScaleId);\n\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n // return '' + item.translations[selectedLanguage].name +\n // '-Risk:   ' +\n // scale.translations[selectedLanguage].name + ' (Current)' +\n // '  ' +\n // scale.translations[selectedLanguage].name + ' (Future)' +\n // '  ' +\n // scale.translations[selectedLanguage].name + ' (Best Case)';\n },\n },\n {\n title: 'Inherent Risk',\n fieldName: 'initialRisk',\n editable: () => false,\n collapse: true,\n template: (dataItem) => {\n const likelihood = (dataItem.defaultLikelihood - dataItem.profileDrop);\n const risk = likelihood * dataItem.impact;\n\n const title = String.format(\n 'Risk ({2}) = Likelihood ({0}) x Impact ({1})',\n FormBase.round(likelihood), FormBase.round(dataItem.impact), FormBase.round(risk),\n );\n const riskScale = this.getRiskScale(risk);\n return '
     ' + riskScale.translations[selectedLanguage].name + '
    ';\n },\n },\n {\n title: 'Current Risk',\n fieldName: 'currentRisk',\n editable: () => false,\n collapse: true,\n template: (dataItem) => {\n const likelihood = (dataItem.defaultLikelihood - dataItem.profileDrop);\n const currentLikelihood = Math.max(likelihood - likelihood *\n ((dataItem.currentProbabilityWeight / dataItem.totalProbabilityWeight) *\n dataItem.probabilityReduction), 1);\n const impact = Math.max(dataItem.impact - dataItem.impact *\n ((dataItem.currentImpactWeight / dataItem.totalImpactWeight) *\n dataItem.impactReduction), 1);\n\n const risk = currentLikelihood * impact;\n const title = String.format(\n 'Risk ({2}) = Likelihood ({0}) x Impact ({1})',\n FormBase.round(currentLikelihood), FormBase.round(impact), FormBase.round(risk),\n );\n const riskScale = this.getRiskScale(risk);\n return '
     ' + riskScale.translations[selectedLanguage].name + '
    ';\n },\n },\n {\n title: 'Future Risk',\n fieldName: 'futureRisk',\n collapse: true,\n editable: () => false,\n template: (dataItem) => {\n const likelihood = (dataItem.defaultLikelihood - dataItem.profileDrop);\n\n let currentProbabilityWeight = dataItem.currentProbabilityWeight;\n let currentImpactWeight = dataItem.currentImpactWeight;\n\n for (let i = 0; i < dataItem.controlValues.length; ++i) {\n const control = dataItem.controlValues[i];\n currentProbabilityWeight += control.probabilityWeight *\n control.treatmentProbabilityImplementationValue;\n currentImpactWeight += control.impactWeight *\n control.treatmentImpactImplementationValue;\n }\n\n const currentLikelihood = Math.max(likelihood - likelihood *\n ((currentProbabilityWeight / dataItem.totalProbabilityWeight) *\n dataItem.probabilityReduction), 1);\n const impact = Math.max(dataItem.impact - dataItem.impact *\n ((currentImpactWeight / dataItem.totalImpactWeight) * dataItem.impactReduction), 1);\n\n const risk = currentLikelihood * impact;\n const title = String.format(\n 'Risk ({2}) = Likelihood ({0}) x Impact ({1})',\n FormBase.round(currentLikelihood), FormBase.round(impact), FormBase.round(risk),\n );\n const riskScale = this.getRiskScale(risk);\n return '
     ' + riskScale.translations[selectedLanguage].name + '
    ';\n },\n },\n {\n title: 'Best Case Risk',\n fieldName: 'bestCaseRisk',\n collapse: true,\n editable: () => false,\n template: (dataItem) => {\n const likelihood = (dataItem.defaultLikelihood - dataItem.profileDrop);\n const currentLikelihood = Math.max(\n likelihood - likelihood * dataItem.probabilityReduction,\n 1,\n );\n const impact = Math.max(dataItem.impact - dataItem.impact * dataItem.impactReduction, 1);\n const risk = currentLikelihood * impact;\n const title = String.format(\n 'Risk ({2}) = Likelihood ({0}) x Impact ({1})',\n FormBase.round(currentLikelihood), FormBase.round(impact), FormBase.round(risk),\n );\n const riskScale = this.getRiskScale(risk);\n return '
     ' + riskScale.translations[selectedLanguage].name + '
    ';\n },\n },\n ];\n\n this.questionColumns = [\n {\n title: 'Id',\n fieldName: 'identification',\n template: (dataItem) => {\n return dataItem.questionId;\n },\n width: '55px',\n editable: () => false,\n },\n {\n title: ' ',\n fieldName: 'comment',\n template: (dataItem) => {\n const q = DataSources.IsraControlQuestions.get(dataItem.questionId);\n if (q == null) {\n Helpers.showError('Unable to find Control Question with id ' + dataItem.questionId);\n return '';\n }\n\n let answer = null;\n\n if (dataItem.questionAnswerId != null) {\n // find question answer\n const a = q.answers.find((element) => {\n return element.id === dataItem.questionAnswerId;\n });\n\n // find text for question answer\n answer = DataSources.IsraAnswers.get(a.answerId);\n }\n\n let ret = '';\n\n return ret;\n },\n width: '38px',\n editable: () => false,\n },\n {\n title: 'Recommended Action',\n fieldName: 'recommended',\n sortField: 'translations.' + selectedLanguage + '.question',\n datasource: DataSources.IsraControlQuestions,\n template: (dataItem) => {\n const q = DataSources.IsraControlQuestions.get(dataItem.questionId);\n return q.translations[selectedLanguage].recommendedActions;\n },\n editable: () => false,\n },\n {\n title: 'Implementation',\n binding: 'treatmentAnswerId',\n width: 150,\n template: (dataItem) => {\n if (dataItem.treatmentAnswerId == null) {\n return ' ';\n }\n\n const item = DataSources.IsraTreatmentAnswers.get(dataItem.treatmentAnswerId);\n\n if (item == null) {\n return '';\n }\n\n const text = '' +\n Helpers.sanitizeHTML(item.translations[selectedLanguage].answer) + '';\n return text;\n },\n editable: () => false,\n },\n {\n title: 'Likelihood
    Implementation %',\n binding: 'treatmentProbabilityImplementationValue',\n type: 'number',\n format: '{0:p2}',\n validation: {\n min: 0,\n max: 1,\n step: 0.1,\n },\n },\n {\n title: 'Impact
    Implementation %',\n binding: 'treatmentImpactImplementationValue',\n type: 'number',\n format: '{0:p2}',\n validation: {\n min: 0,\n max: 1,\n step: 0.1,\n },\n },\n {\n title: 'Implementation
    Responsible',\n binding: 'implementationResponsible',\n editable: () => false,\n },\n {\n title: 'Implementation
    Due Date',\n binding: 'implementationDueDate',\n collapsable: true,\n template: (dataItem) => Selectors.DateTemplate(\n dataItem, 'implementationDueDate',\n 'Not set',\n ),\n editable: () => false,\n },\n {\n title: 'Implementation Status',\n binding: 'implementationStatusId',\n collapsable: true,\n defaultValue: null,\n template: (dataItem) => {\n if (dataItem.implementationStatusId == null) {\n return '';\n }\n\n const item = DataSources.ImplementationScales.get(dataItem.implementationStatusId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n },\n editable: () => false,\n },\n {\n title: 'Comments',\n binding: 'treatmentComments',\n editable: () => false,\n },\n {\n title: ' ',\n width: 5,\n binding: 'none',\n editable: () => false,\n },\n {\n title: 'Prioritization',\n binding: 'treatmentPrioritizationScaleId',\n width: 200,\n editable: () => false,\n template: (dataItem) => {\n if (dataItem.treatmentPrioritizationScaleId == null) {\n return ' ';\n }\n\n const item = DataSources.IsraTreatmentPrioritizationScales.get(dataItem.treatmentPrioritizationScaleId);\n\n if (item == null) {\n return '';\n }\n\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n },\n },\n // {\n // title: ' ',\n // width: 5,\n // binding: 'none',\n // editable: () => false,\n // },\n // {\n // title: 'Future Risk',\n // binding: 'futureRiskScaleId',\n // width: 100,\n // editable: () => false,\n // template: (dataItem) => {\n // if (dataItem.futureRiskScaleId == null)\n // return ' ';\n //\n // let item = DataSources.IsraRiskScales.get(dataItem.futureRiskScaleId);\n //\n // if (item == null)\n // return \"\";\n //\n // return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n // },\n // },\n {\n title: ' ',\n width: 5,\n binding: 'none',\n editable: () => false,\n },\n {\n title: 'Control Strength',\n binding: 'controlStrengthScaleId',\n width: 100,\n editable: () => false,\n template: (dataItem) => {\n if (dataItem.controlStrengthScaleId == null) {\n return ' ';\n }\n\n const item = DataSources.IsraControlStrengthScales.get(dataItem.controlStrengthScaleId);\n\n if (item == null) {\n return '';\n }\n\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n },\n },\n ];\n }\n\n static async prerequisites(options = {}) {\n if (options.deployment == null) {\n Helpers.showError('Error: Cannot check IsraRiskDeploymentTreatmentReview prerequisites() without a deployment parameter');\n return false;\n }\n\n const j = await Promise.resolve($.get('/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' + options.deployment +\n '/CheckTreatmentReview'));\n\n const result = JSON.parse(j);\n\n if (result.result === 'true') {\n return true;\n } else {\n let msg = '';\n if (result.message === 'treatment') {\n msg = 'Cannot review while a Treatment Plan is not finished';\n }\n\n Helpers.showError(msg);\n\n return false;\n }\n }\n\n getRiskScale(value) {\n const data = DataSources.IsraRiskScales.view();\n let i = 0;\n for (; i < data.length - 1; ++i) {\n if (data[i].value > value) {\n return data[i];\n }\n }\n\n return data[i];\n }\n\n require() {\n return [\n DataSources.IsraControlQuestions,\n DataSources.IsraAnswers,\n DataSources.IsraTreatmentAnswers,\n DataSources.IsraRisks,\n DataSources.IsraRiskScales,\n DataSources.IsraTreatmentPrioritizationScales,\n DataSources.IsraControlStrengthScales,\n DataSources.ImplementationScales,\n ];\n }\n\n setCustomMenuItems(menu) {\n delete menu.delete;\n }\n\n initDone() {\n if (this.deployment.treatmentReviewed === true) {\n $('#TreatmentReview-Approve')\n .addClass('k-state-disabled')\n .off('click');\n $('#TreatmentReview-Approve span')\n .text('Already Accepted');\n }\n\n if (this.deployment.riskOwnerStatus !== Constants.DeploymentStatus.Undeployed) {\n $('#TreatmentReview-Reset')\n .addClass('k-state-disabled')\n .off('click');\n $('#TreatmentReview-Reset span')\n .attr('title', 'Cannot reset values while Risk Owner Deployment is deployed.');\n }\n }\n\n setCustomGridProperties(grid) {\n // remove add new record\n grid.toolbar = [\n // {name: \"excel\", text: \"Export\"},\n {\n template: 'Accept Review',\n },\n {\n template: 'Reset Values',\n },\n { template: 'Expand All' },\n { template: 'Collapse All' },\n ];\n grid.selectable = true;\n grid.filterable = false;\n\n grid.columns.splice(-1);\n\n const databound = grid.dataBound;\n let firstDataBound = true;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n if (firstDataBound) {\n firstDataBound = false;\n\n $('#TreatmentReview-ExpandAll')\n .off('click')\n .on('click', () => {\n const grid = e.sender;\n $('.k-master-row')\n .each(function () {\n grid.expandRow(this);\n });\n });\n\n $('#TreatmentReview-CollapseAll')\n .off('click')\n .on('click', () => {\n const grid = e.sender;\n $('.k-master-row')\n .each(function () {\n grid.collapseRow(this);\n });\n });\n\n $('#TreatmentReview-Approve')\n .off('click')\n .on('click', (e) => this.acceptReview(e));\n\n $('#TreatmentReview-Reset')\n .off('click')\n .on('click', () => {\n kendo.ui.progress($(this.grid), true);\n $.post('/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' + this.deployment.id +\n '/TreatmentReview/ResetAnswers')\n .then(() => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .read();\n\n $('#TreatmentReview-Approve')\n .removeClass('k-state-disabled')\n .off('click')\n .on('click', () => this.acceptReview());\n $('#TreatmentReview-Approve span')\n .text('Accept Treatment');\n })\n .fail((e) => {\n Helpers.showError(e);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n });\n }\n };\n\n const controlValuesModel = Helpers.createModel(selectedMasterPlan, this.questionColumns);\n const controlValuesColumns = Helpers.createColumns(selectedMasterPlan, this.questionColumns);\n controlValuesColumns.splice(-1);\n\n grid.detailInit = (e) => {\n const detail = Helpers.getDefaultGrid(selectedMasterPlan, this.api);\n\n // detail.editable = 'inline';\n delete detail.toolbar;\n delete detail.height;\n\n detail.dataSource = {\n transport: {\n read: function (options) {\n options.success(e.data.controlValues);\n },\n update: (options) => {\n e.data.dirty = true;\n // console.log(e.sender.dataSource.hasChanges());\n\n const data = $(this.grid)\n .data('kendoGrid')\n .dataSource\n .data();\n for (let i = 0; i < data.length; ++i) {\n for (let j = 0; j < data[i].controlValues.length; ++j) {\n console.log(data[i].controlValues);\n console.log(data[i].controlValues[j].questionId);\n if (data[i].controlValues[j].questionId === options.data.questionId) {\n data[i].dirty = true;\n data[i].controlValues[j].treatmentProbabilityImplementationValue = options.data.treatmentProbabilityImplementationValue;\n data[i].controlValues[j].treatmentImpactImplementationValue = options.data.treatmentImpactImplementationValue;\n break;\n }\n }\n }\n\n const promise = e.sender.dataSource.sync();\n\n promise.then(() => {\n\n })\n .fail((e) => {\n options.error(e);\n });\n },\n create: function (options) {\n options.success();\n },\n destroy: function (options) {\n options.success();\n },\n },\n // autoSync: true,\n pageSize: 10,\n schema: controlValuesModel,\n };\n\n detail.columns = controlValuesColumns;\n\n const db = detail.dataBound;\n detail.dataBound = (e) => {\n db.call(e.sender, e);\n\n const data = e.sender.dataSource.data();\n $.each(data, (i, row) => {\n const plan = DataSources.IsraTreatmentPrioritizationScales.get(row.treatmentPrioritizationScaleId);\n // let future = DataSources.IsraRiskScales.get(row.futureRiskScaleId);\n const strength = DataSources.IsraControlStrengthScales.get(row.controlStrengthScaleId);\n\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(11)')\n .css('background-color', plan.color);\n // $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(15)').css('background-color', future.color);\n $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(13)')\n .css('background-color', strength.color);\n });\n };\n\n $('
    ')\n .appendTo(e.detailCell)\n .kendoGrid(detail);\n\n $('#controlValuesDetails')\n .off(\n 'mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')',\n this.disableButtonsOnEdit,\n )\n .on(\n 'mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')',\n this.disableButtonsOnEdit,\n );\n };\n\n // // Details\n // grid.detailInit = (e) => {\n // let questionsGrid = this.createGrid({\n // api: 'isra/RiskDeployments/' + this.deployment.id + '/TreatmentReview/RiskValues/' + e.data.id + '/RiskControlValues',\n // columns: this.questionColumns,\n // });\n // delete questionsGrid.toolbar;\n // questionsGrid.columns.splice(-1);\n //\n // let db = questionsGrid.dataBound;\n // questionsGrid.dataBound = (e) => {\n // db.call(e.sender, e);\n //\n // let data = e.sender.dataSource.data();\n // $.each(data, (i, row) => {\n // let plan = DataSources.IsraTreatmentPrioritizationScales.get(row.treatmentPrioritizationScaleId);\n // // let future = DataSources.IsraRiskScales.get(row.futureRiskScaleId);\n // let strength = DataSources.IsraControlStrengthScales.get(row.controlStrengthScaleId);\n //\n // $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(11)').css('background-color', plan.color);\n // // $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(15)').css('background-color', future.color);\n // $('tr[data-uid=\"' + row.uid + '\"] td:nth-child(13)').css('background-color', strength.color);\n // });\n // };\n //\n // $(\"
    \").appendTo(e.detailCell).kendoGrid(questionsGrid);\n // }\n }\n\n acceptReview() {\n kendo.ui.progress($(this.grid), true);\n $.post('/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' + this.deployment.id +\n '/TreatmentReview/AcceptReview')\n .then(() => {\n this.deployment.treatmentReviewed = true;\n\n $('#TreatmentReview-Approve')\n .addClass('k-state-disabled')\n .off('click');\n $('#TreatmentReview-Approve span')\n .text('Treatment Accepted');\n\n Helpers.showPopUp2({\n title: 'Review Accepted',\n content: 'Review Accepted Succesfully.',\n actions: [\n {\n text: 'Ok',\n action: () => {\n toggleAppear('israRiskDeployments');\n return true;\n },\n },\n ],\n });\n })\n .fail((e) => {\n Helpers.showError(e);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n }\n}\n","import { selectedMasterPlan, selectedLanguage, setCurrent } from '../../main.js';\nimport DataSources from '../../Core/datasources.js';\nimport FormBase from '../FormBase.js';\nimport Selectors from '../../Core/Selectors.js';\nimport DeploymentControlValues from './RiskDeploymentControlValues.js';\nimport DeploymentRiskValues from './RiskDeploymentRiskValues.js';\nimport DeploymentRiskControlValues from './RiskDeploymentRiskControlValues.js';\nimport IsraRiskDeploymentRiskTestValues from './RiskDeploymentRiskTestValues.js';\nimport IsraRiskDeploymentTreatmentReview from './RiskDeploymentTreatmentReview.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport Constants from '../../Core/constants.js';\n\nexport default class IsraRiskDeployments extends FormBase {\n constructor() {\n super('Risk Deployments', 'general');\n this.api = 'isra/RiskDeployments';\n\n // show questions that exist in multiple questionnaires in the same assessment\n this.options.errorCallBack = {\n create: (e) => {\n if (e.status === 200) {\n return;\n }\n\n if (e.responseJSON.error === 'DuplicateQuestions') {\n const data = e.responseJSON.data;\n const questions = {};\n\n for (let i = 0; i < data.length; ++i) {\n if (questions[data[i].questionId] == null) {\n questions[data[i].questionId] = { questionnaires: [] };\n }\n\n questions[data[i].questionId].questionnaires.push(DataSources.IsraControlQuestionnaires.get(data[i].questionnaireId).translations[selectedLanguage].name);\n }\n\n let txt = 'The following Questions exist in more than one Questionnaires:';\n for (const i in questions) {\n txt += '

    ';\n txt += 'Question ' + i + ':
    ';\n\n for (let j = 0; j < questions[i].questionnaires.length; ++j) {\n txt += '' +\n Helpers.sanitizeHTML(questions[i].questionnaires[j]) + '
    ';\n }\n }\n\n txt += '
    ';\n\n Helpers.showError(txt);\n } else {\n Helpers.showError(e.responseText, this.options.errorTitle);\n }\n },\n };\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Deployment',\n required: true,\n translatable: true,\n sort: 'asc',\n filterable: true,\n },\n {\n title: 'Assessment',\n binding: 'assessmentId',\n required: true,\n template: this.assessmentTemplate,\n editor: this.assessmentSelector,\n },\n {\n title: 'Application',\n binding: 'applicationId',\n required: true,\n template: this.applicationTemplate,\n editor: this.applicationSelector,\n },\n {\n title: 'Classification',\n binding: 'classificationDeploymentId',\n required: true,\n template: this.classificationDeploymentTemplate,\n editor: this.classificationDeploymentSelector,\n },\n {\n title: 'Due Date',\n binding: 'riskOwnerDueDate',\n defaultValue: Selectors.GetDefaultDueDate(),\n template: (dataItem) => Selectors.DateTemplate(dataItem, 'riskOwnerDueDate', 'No Due Date'),\n editor: (container, options) => {\n if (options.model.riskOwnerStatus === Constants.DeploymentStatus.Undeployed) {\n Selectors.DatePicker(container, options, 'riskOwnerDueDate');\n } else {\n container.append(Selectors.DateTemplate(options.model, 'riskOwnerDueDate'));\n }\n },\n },\n {\n title: 'Risk Owner
    Approval Path',\n binding: 'riskOwnerApprovalPath',\n defaultValue: [],\n template: () => '',\n editor: (container, options) => this.deploymentApprovalPathGrid(container, options),\n hidden: true,\n },\n {\n title: 'Status',\n binding: 'riskOwnerStatus',\n defaultValue: 0,\n hidden: true,\n },\n ];\n\n this.deploymentQuestionnaireColumns = [\n {\n title: 'Questionnaire',\n binding: 'controlQuestionnaireId',\n template: (dataItem) => {\n return Helpers.sanitizeHTML(DataSources.IsraControlQuestionnaires.get((dataItem.controlQuestionnaireId)).translations[selectedLanguage].name);\n },\n editor: (container, options) => {\n container.append(Helpers.sanitizeHTML(DataSources.IsraControlQuestionnaires.get((options.model.controlQuestionnaireId)).translations[selectedLanguage].name));\n },\n required: true,\n editable: () => false,\n sort: 'asc',\n },\n {\n title: 'Questionnaire',\n columns: [\n {\n title: 'ISRA Status',\n binding: 'questionnaireStatus',\n editable: () => false,\n template: function (dataItem) {\n return Constants.DeploymentStatusTranslations[dataItem.questionnaireStatus].translations[selectedLanguage];\n },\n },\n {\n title: 'ISRA Start',\n binding: 'questionnaireStart',\n editable: () => false,\n template: (dataItem) => Selectors.DateTemplate(\n dataItem, 'questionnaireStart',\n 'Not Started',\n ),\n editor: (container, options) => {\n container.append(Selectors.DateTemplate(options.model, 'questionnaireStart', 'Not Started'));\n },\n },\n {\n title: 'ISRA Due Date',\n binding: 'questionnaireDueDate',\n defaultValue: Selectors.GetDefaultDueDate(),\n template: (dataItem) => Selectors.DateTemplate(\n dataItem, 'questionnaireDueDate',\n 'No Due Date',\n ),\n editor: (container, options) => {\n if (options.model.questionnaireStatus === Constants.DeploymentStatus.Undeployed) {\n Selectors.DatePicker(container, options, 'questionnaireDueDate');\n } else {\n container.append(Selectors.DateTemplate(options.model, 'questionnaireDueDate'));\n }\n },\n },\n {\n title: 'ISRA Finish',\n binding: 'questionnaireFinished',\n editable: () => false,\n template: (dataItem) => Selectors.DateTemplate(\n dataItem, 'questionnaireFinished',\n 'Not Finished',\n ),\n editor: (container, options) => {\n Selectors.DateTemplate(options.model, 'questionnaireFinished', 'Not Finished');\n },\n },\n ],\n },\n {\n title: ' ',\n binding: 'test',\n hidden: true,\n template: () => {\n return '
    ';\n },\n editable: () => false,\n },\n {\n title: 'Treatment Plan',\n columns: [\n {\n title: 'Treatment Status',\n binding: 'treatmentStatus',\n editable: () => false,\n template: function (dataItem) {\n return Constants.DeploymentStatusTranslations[dataItem.treatmentStatus].translations[selectedLanguage];\n },\n },\n\n {\n title: 'Treatment Start',\n binding: 'treatmentStart',\n editable: () => false,\n template: (dataItem) => Selectors.DateTemplate(\n dataItem, 'treatmentStart',\n 'Not Started',\n ),\n },\n {\n title: 'Treatment Due Date',\n binding: 'treatmentDueDate',\n defaultValue: Selectors.GetDefaultDueDate(),\n template: (dataItem) => Selectors.DateTemplate(\n dataItem, 'treatmentDueDate',\n 'No Due Date',\n ),\n editor: (container, options) => {\n if (options.model.treatmentStatus === Constants.DeploymentStatus.Undeployed) {\n Selectors.DatePicker(container, options, 'treatmentDueDate');\n } else {\n container.append(Selectors.DateTemplate(options.model, 'treatmentDueDate'));\n }\n },\n },\n {\n title: 'Treatment Finish',\n binding: 'treatmentFinished',\n editable: () => false,\n template: (dataItem) => Selectors.DateTemplate(\n dataItem, 'treatmentFinished',\n 'Not Finished',\n ),\n },\n ],\n },\n {\n binding: 'approvalPath',\n title: 'Questionnaire
    Approval Path',\n defaultValue: [],\n template: () => '',\n editor: (container, options) => this.questionnaireApprovalPathGrid(container, options),\n hidden: true,\n },\n\n ];\n\n this.menu = {\n edit: this.menu.edit,\n delete: this.menu.delete,\n\n sep1: {\n cssClass: 'k-separator',\n },\n\n controlValues: {\n title: 'Control Questions Values',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.openControlValues(item);\n },\n },\n riskValues: {\n title: 'Risk Values',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.openRiskValues(item);\n },\n },\n riskControlValues: {\n title: 'Risk Control Values',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.openRiskControlValues(item);\n },\n },\n\n sep2: {\n cssClass: 'k-separator',\n },\n\n reviewAnswers: {\n title: 'Review Answers',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.reviewAnswers(item);\n },\n },\n\n reviewTreatment: {\n title: 'Review Treatment',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.reviewTreatment(item);\n },\n },\n sep3: {\n cssClass: 'k-separator',\n },\n\n deployRiskOwner: {\n title: 'Deploy for Risk Owner',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.deployRiskOwner(item.id);\n },\n },\n\n abortRiskOwner: {\n title: 'Abort Risk Owner',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.abortRiskOwner(item.id);\n },\n },\n };\n\n this.questionnaireMenu = {\n edit: this.menu.edit,\n\n sep1: {\n cssClass: 'k-separator',\n },\n\n deployQuestionnaire: {\n title: 'Deploy Questionnaire',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n const deployment = $(this.grid)\n .data('kendoGrid')\n .dataItem($(e.target.closest('[data-role=grid]')\n .closest('.k-detail-row'))\n .prev());\n this.deployQuestionnaire(deployment.id, item.id);\n },\n },\n\n abortQuestionnaire: {\n title: 'Abort Questionnaire',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n const deployment = $(this.grid)\n .data('kendoGrid')\n .dataItem($(e.target.closest('[data-role=grid]')\n .closest('.k-detail-row'))\n .prev());\n this.abortQuestionnaire(deployment.id, item.id);\n },\n },\n\n sep2: {\n cssClass: 'k-separator',\n },\n\n deployTreatment: {\n title: 'Deploy for Treatment',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n const deployment = $(this.grid)\n .data('kendoGrid')\n .dataItem($(e.target.closest('[data-role=grid]')\n .closest('.k-detail-row'))\n .prev());\n this.deployTreatment(deployment.id, item.id);\n },\n },\n\n abortTreatment: {\n title: 'Abort Treatment',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n const deployment = $(this.grid)\n .data('kendoGrid')\n .dataItem($(e.target.closest('[data-role=grid]')\n .closest('.k-detail-row'))\n .prev());\n this.abortTreatment(deployment.id, item.id);\n },\n },\n\n };\n }\n\n deleteError() {\n $(this.grid)\n .data('kendoGrid')\n .cancelChanges();\n }\n\n // initDone() {\n // const grid = $(this.grid)\n // .data('kendoGrid');\n\n // // $(\".k-master-row\").each(function (index) {\n // // grid.expandRow(this);\n // // grid.collapseRow(this);\n // // });\n // }\n\n init() {\n super.init();\n\n $(this.contextMenu[this.grid])\n .data('kendoContextMenu')\n .unbind('open')\n .bind('open', function (e) {\n const grid = $(e.target.closest('.k-grid'))\n .data('kendoGrid');\n const item = grid.dataItem($(e.target));\n\n let del = true;\n let reviewAnswers = true,\n reviewTreatment = true;\n\n let questionnaires = $($(e.target.closest('tr')))\n .siblings('.k-detail-row');\n\n if (questionnaires.length === 0) {\n grid.expandRow($(e.target.closest('tr')));\n }\n\n questionnaires = $($(e.target.closest('tr')))\n .siblings('.k-detail-row')\n .find('.k-grid')\n .data('kendoGrid')\n .dataSource\n .data();\n\n for (let i = 0; i < questionnaires.length; ++i) {\n if (questionnaires[i].questionnaireStatus !== Constants.DeploymentStatus.Undeployed) {\n del = false;\n }\n\n if (questionnaires[i].questionnaireStatus !== Constants.DeploymentStatus.Finished) {\n reviewAnswers = false;\n }\n\n if (questionnaires[i].treatmentStatus !== Constants.DeploymentStatus.Finished) {\n reviewTreatment = false;\n }\n }\n\n this.enable('[action=edit]', true);\n this.enable('[action=delete]', del);\n\n this.enable('[action=reviewAnswers]', reviewAnswers);\n this.enable('[action=reviewTreatment]', reviewTreatment);\n\n const deploy = item.riskOwnerStatus === Constants.DeploymentStatus.Undeployed &&\n item.questionnairesReviewed && item.treatmentReviewed, // && finished,\n abort = item.riskOwnerStatus !== Constants.DeploymentStatus.Undeployed;\n\n this.enable('[action=deployRiskOwner]', deploy);\n this.enable('[action=abortRiskOwner]', abort);\n this.enable('[action=openRiskOwner]', abort);\n });\n }\n\n require() {\n return [\n DataSources.IsraAssessments,\n DataSources.Applications,\n DataSources.IsraControlQuestionnaires,\n DataSources.Users,\n DataSources.IsraClassificationDeployments,\n DataSources.IsraStandardizations,\n ];\n }\n\n setCustomGridProperties(grid) {\n const edit = grid.edit;\n grid.edit = (e) => {\n edit.call(e.sender, e);\n\n this.passCheck = false;\n\n e.container.find('label[for=riskOwnerStatus]')\n .parent('div .k-edit-label')\n .hide();\n e.container.find('label[for=riskOwnerStatus]')\n .parent()\n .next('div .k-edit-field')\n .hide();\n };\n\n grid.editable = 'popup';\n\n grid.toolbar.push({\n template: 'Filter:
    ',\n });\n\n let first = true;\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n if (first === true) {\n first = false;\n\n const standardizations = [\n {\n id: 0,\n name: 'None',\n },\n ...DataSources.IsraStandardizations.view(),\n ];\n\n $('#standardizationFilter')\n .kendoDropDownList({\n dataTextField: 'name',\n dataSource: { data: standardizations },\n change: (e) => {\n const filter = [];\n const value = e.sender.value();\n\n if (value.id !== 0) {\n const apps = value.applications;\n if (apps.length === 0) {\n filter.push({\n field: 'applicationId',\n operator: 'eq',\n value: '-1',\n });\n }\n\n for (let i = 0; i < apps.length; ++i) {\n filter.push({\n field: 'applicationId',\n operator: 'eq',\n value: apps[i].applicationId,\n });\n }\n }\n\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .filter({\n logic: 'or',\n filters: filter,\n });\n },\n });\n }\n };\n\n grid.detailInit = (e) => {\n const questionnairesGrid = this.createGrid({\n api: 'isra/RiskDeployments/' + e.data.id + '/Questionnaires',\n columns: this.deploymentQuestionnaireColumns,\n selector: '[name=\"questionnairesDetails\"]',\n menu: this.questionnaireMenu,\n });\n\n questionnairesGrid.editable = 'popup';\n\n delete questionnairesGrid.toolbar;\n\n questionnairesGrid.columns[questionnairesGrid.columns.length - 1].command = ['edit'];\n\n const databound = questionnairesGrid.dataBound;\n questionnairesGrid.dataBound = (e) => {\n databound.call(e.sender, e);\n };\n\n $('
    ')\n .appendTo(e.detailCell)\n .kendoGrid(questionnairesGrid);\n\n // this.createMenu('[name=questionnairesDetails]', this.questionnaireMenu);\n $(this.contextMenu['[name=\"questionnairesDetails\"]'])\n .data('kendoContextMenu')\n .bind('open', function (e1) {\n const grid = $(e1.target.closest('.k-grid'))\n .data('kendoGrid');\n const item = grid.dataItem($(e1.target));\n\n const parentRow = $(e1.target.closest('.k-grid'))\n .closest('.k-detail-row')\n .prev();\n const parentGrid = parentRow.closest('[data-role=grid]')\n .data('kendoGrid');\n const p = parentGrid.dataItem(parentRow);\n\n let treatmentStarted = false;\n let allFinished = true;\n\n if (item.treatmentStatus !== Constants.DeploymentStatus.Undeployed) {\n treatmentStarted = true;\n allFinished = true;\n } else {\n const others = $(e1.target.closest('tr'))\n .siblings();\n\n for (let i = 0; i < others.length; ++i) {\n const dataItem = grid.dataItem(others[i]);\n if (dataItem.treatmentStatus !== Constants.DeploymentStatus.Undeployed) {\n treatmentStarted = true;\n allFinished = true;\n break;\n }\n if (dataItem.questionnaireStatus !== Constants.DeploymentStatus.Finished) {\n treatmentStarted = false;\n allFinished = false;\n break;\n }\n }\n }\n\n const deployQuestionnaire = item.questionnaireStatus ===\n Constants.DeploymentStatus.Undeployed,\n abortQuestionnaire = !deployQuestionnaire && !treatmentStarted,\n deployTreatment = allFinished && item.treatmentStatus ===\n Constants.DeploymentStatus.Undeployed,\n abortTreatment = item.treatmentStatus !== Constants.DeploymentStatus.Undeployed &&\n p.riskOwnerStatus === Constants.DeploymentStatus.Undeployed;\n\n this.enable('[action=deployQuestionnaire]', deployQuestionnaire);\n this.enable('[action=abortQuestionnaire]', abortQuestionnaire);\n this.enable('[action=openQuestionnaire]', abortQuestionnaire);\n this.enable('[action=deployTreatment]', deployTreatment);\n this.enable('[action=abortTreatment]', abortTreatment);\n this.enable('[action=openTreatment]', abortTreatment);\n });\n };\n\n grid.save = (e) => {\n if (this.passCheck == null || this.passCheck === false) {\n e.preventDefault();\n this.testDuplicates(e);\n }\n };\n }\n\n async testDuplicates(e) {\n let response = true;\n\n if (e.model.isNew() === true) {\n response = await this.checkDuplicateAssessmentApplication({\n data: e.sender.dataSource.data(),\n assessment: e.model.assessmentId,\n application: e.model.applicationId,\n });\n }\n\n if (response === true) {\n this.passCheck = true;\n e.sender.saveRow();\n }\n }\n\n async checkDuplicateAssessmentApplication({ data, assessment = 0, application = 0 } = {}) {\n const duplicates = [];\n for (let i = 0; i < data.length; ++i) {\n if (data[i].applicationId === application && data[i].assessmentId === assessment) {\n duplicates.push(Helpers.sanitizeHTML(data[i].translations[selectedLanguage].name));\n }\n }\n\n if (duplicates.length > 1) {\n const app = Helpers.sanitizeHTML(DataSources.Applications.get(application).translations[selectedLanguage].name);\n const ass = Helpers.sanitizeHTML(DataSources.IsraAssessments.get(assessment).translations[selectedLanguage].name);\n\n let content = `Application '${app}' has already ${duplicates.length -\n 1} assessments of '${ass}'.
    `;\n content += 'Do you want to create a new one?';\n content += '

    ';\n\n content += 'Deployments:
    ';\n let length = 0;\n for (let i = 0; i < duplicates.length - 1; ++i) {\n if (duplicates[i] === '') {\n continue;\n }\n\n content += `${duplicates[i]}, `;\n length += duplicates[i].length + 2;\n if (length > 100) {\n content += '
    ';\n length = 0;\n }\n }\n content += duplicates[duplicates.length - 1];\n\n return new Promise((resolve) => {\n Helpers.showPopUp2({\n title: 'Duplicate Assessment',\n content: content,\n actions: [\n {\n text: 'Yes',\n action: () => {\n resolve(true);\n return true;\n },\n },\n {\n text: 'No',\n action: function () {\n resolve(false);\n return true;\n },\n },\n ],\n });\n });\n }\n\n return true;\n }\n\n // QuestionnaireActions() {\n // const grid = $(e.currentTarget)\n // .closest('.k-grid')\n // .data('kendoGrid');\n\n // const dataItem = grid.dataItem($(e.currentTarget).closest('tr'));\n // console.log(e);\n // $(this.contextMenu['[name=questionnairesDetails]']).data('kendoContextMenu').open();\n // }\n\n openForm(form) {\n this.hide();\n this.destroy();\n\n const required = form.require();\n const promises = [];\n for (let i = 0; i < required.length; ++i) {\n promises.push(required[i].read());\n }\n\n Promise.all(promises)\n .then(() => {\n form.init();\n form.show();\n });\n\n setCurrent(form);\n }\n\n openControlValues(deployment) {\n this.openForm(new DeploymentControlValues(deployment));\n }\n\n openRiskValues(deployment) {\n this.openForm(new DeploymentRiskValues(deployment));\n }\n\n openRiskControlValues(deployment) {\n this.openForm(new DeploymentRiskControlValues(deployment));\n }\n\n async reviewAnswers(deployment) {\n const result = await IsraRiskDeploymentRiskTestValues.prerequisites({ deployment: deployment.id });\n\n if (result) {\n this.openForm(new IsraRiskDeploymentRiskTestValues(deployment));\n }\n }\n\n async reviewTreatment(deployment) {\n const result = await IsraRiskDeploymentTreatmentReview.prerequisites({ deployment: deployment.id });\n\n if (result) {\n this.openForm(new IsraRiskDeploymentTreatmentReview(deployment));\n }\n }\n\n deployRiskOwner(id) {\n const grid = $(this.grid);\n const kendoGrid = grid.data('kendoGrid');\n\n this.expanded = $.map(\n kendoGrid.tbody.children(':has(> .k-hierarchy-cell .k-i-collapse)'),\n function (row) {\n return $(row)\n .data('uid');\n },\n );\n\n kendo.ui.progress(grid, true);\n\n $.ajax({\n type: 'POST',\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' + id +\n '/RiskOwnerReview/deploy',\n })\n .done(() => {\n Helpers.showPopUp('Deployed', 'Deployment deployed succesfully.');\n kendoGrid.dataSource.read();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress(grid, false);\n });\n }\n\n abortRiskOwner(id) {\n const grid = $(this.grid);\n const kendoGrid = grid.data('kendoGrid');\n\n kendo.ui.progress(grid, true);\n\n $.ajax({\n type: 'POST',\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' + id +\n '/RiskOwnerReview/abort',\n })\n .done(() => {\n Helpers.showPopUp('Deployed', 'Deployment aborted succesfully.');\n kendoGrid.dataSource.read();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress(grid, false);\n });\n }\n\n deployQuestionnaire(deployment, id) {\n const grid = $(this.grid);\n const kendoGrid = grid.data('kendoGrid');\n\n this.expanded = $.map(\n kendoGrid.tbody.children(':has(> .k-hierarchy-cell .k-i-collapse)'),\n function (row) {\n return $(row)\n .data('uid');\n },\n );\n\n kendo.ui.progress(grid, true);\n\n $.ajax({\n type: 'POST',\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' + deployment +\n '/Questionnaires/' + id + '/questionnaire/deploy',\n })\n .done(() => {\n Helpers.showPopUp('Deployed', 'Questionnaire deployed succesfully.');\n kendoGrid.dataSource.read();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress(grid, false);\n });\n }\n\n abortQuestionnaire(deployment, id) {\n const grid = $(this.grid);\n const kendoGrid = grid.data('kendoGrid');\n\n kendo.ui.progress(grid, true);\n\n $.ajax({\n type: 'POST',\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' + deployment +\n '/Questionnaires/' + id + '/questionnaire/abort',\n })\n .done(() => {\n Helpers.showPopUp('Deployed', 'Questionnaire aborted succesfully.');\n kendoGrid.dataSource.read();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress(grid, false);\n });\n }\n\n deployTreatment(deployment, id) {\n const grid = $(this.grid);\n const kendoGrid = grid.data('kendoGrid');\n\n this.expanded = $.map(\n kendoGrid.tbody.children(':has(> .k-hierarchy-cell .k-i-collapse)'),\n function (row) {\n return $(row)\n .data('uid');\n },\n );\n\n kendo.ui.progress(grid, true);\n\n $.ajax({\n type: 'POST',\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' + deployment +\n '/Questionnaires/' + id + '/treatment/deploy',\n })\n .done((e) => {\n let message = JSON.parse(e).message || '';\n if (message === '') {\n message = 'Treatment deployed succesfully.';\n }\n\n Helpers.showPopUp('Deployed', message);\n kendoGrid.dataSource.read();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress(grid, false);\n });\n }\n\n abortTreatment(deployment, id) {\n const grid = $(this.grid);\n kendo.ui.progress(grid, true);\n\n $.ajax({\n type: 'POST',\n url: '/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskDeployments/' + deployment +\n '/Questionnaires/' + id + '/treatment/abort',\n })\n .done(() => {\n Helpers.showPopUp('Deployed', 'Treatment aborted succesfully.');\n grid.data('kendoGrid')\n .dataSource\n .read();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress(grid, false);\n });\n }\n\n setCustomDatasourceProperties(source) {\n source.change = (e) => {\n if (e.field && e.field.indexOf('questionnaires') >= 0) {\n this.preventBinding = true;\n }\n };\n }\n\n assessmentSelector(container, options) {\n let readonly = false;\n if (!options.model.isNew()) {\n readonly = true;\n }\n\n if (readonly) {\n const item = DataSources.IsraAssessments.get(options.model.assessmentId);\n $('' + Helpers.sanitizeHTML(item.translations[selectedLanguage].name) + '')\n .appendTo(container);\n } else {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n placeholder: 'Search...',\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.IsraAssessments,\n });\n }\n }\n\n assessmentTemplate(dataItem) {\n const item = DataSources.IsraAssessments.get(dataItem.assessmentId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n\n applicationSelector(container, options) {\n const readonly = !options.model.isNew();\n\n if (readonly) {\n const item = DataSources.Applications.get(options.model.applicationId);\n $('' + Helpers.sanitizeHTML(item.translations[selectedLanguage].name) + '')\n .appendTo(container);\n } else {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n placeholder: 'Search...',\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: {\n data: DataSources.Applications.data(),\n filter: {},\n },\n\n clearButton: false,\n change: () => {\n // options.model.set('classificationDeploymentId', null);\n $('[name=\"classificationDeploymentId\"]')\n .data('kendoDropDownList')\n .dataSource\n .filter({\n field: 'applicationId',\n operator: 'eq',\n value: options.model.applicationId,\n });\n },\n });\n }\n }\n\n applicationTemplate(dataItem) {\n const item = DataSources.Applications.get(dataItem.applicationId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n\n classificationDeploymentSelector(container, options) {\n let readonly = false;\n if (!options.model.isNew()) {\n for (let i = 0; i < options.model.questionnaires.length; ++i) {\n if (options.model.questionnaires[i].questionnaireStatus !==\n Constants.DeploymentStatus.Undeployed) {\n readonly = true;\n break;\n }\n }\n }\n\n if (readonly) {\n const item = DataSources.IsraClassificationDeployments.get(options.model.classificationDeploymentId);\n $('' + Helpers.sanitizeHTML(item.translations[selectedLanguage].name) + '')\n .appendTo(container);\n } else {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n placeholder: 'Search...',\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n clearButton: false,\n dataSource: {\n data: DataSources.IsraClassificationDeployments.data(),\n filter: {\n field: 'applicationId',\n operator: 'eq',\n value: options.model.applicationId,\n },\n },\n });\n }\n }\n\n classificationDeploymentTemplate(dataItem) {\n const item = DataSources.IsraClassificationDeployments.get(dataItem.classificationDeploymentId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return '';\n }\n }\n\n deploymentApprovalPathGrid(container, options) {\n let toolbar = [];\n if (options.model.riskOwnerStatus === Constants.DeploymentStatus.Undeployed) {\n toolbar = [\n { template: 'Add' },\n { template: 'Move Up' },\n { template: 'Move Down' },\n { template: 'Remove' },\n ];\n }\n\n let approvalBinding = true;\n $('
    ')\n .appendTo(container)\n .kendoGrid({\n toolbar: toolbar,\n dataSource: {\n schema: {\n model: {\n id: 'userId',\n fields: {\n userId: {\n nullable: false,\n },\n order: {\n defaultValue: 1,\n },\n },\n },\n },\n sort: {\n field: 'order',\n dir: 'asc',\n },\n },\n columns: [\n {\n field: 'order',\n title: 'Order',\n sortable: {\n initialDirection: 'asc',\n },\n width: 100,\n },\n {\n field: 'userId',\n title: 'User',\n template: (dataItem) => Selectors.UserTemplate(dataItem),\n },\n ],\n resizable: true,\n sortable: {\n mode: 'single',\n allowUnsort: false,\n },\n editable: false,\n scrollable: true,\n selectable: 'row',\n autoBind: true,\n height: 160,\n dataBound: () => {\n if (approvalBinding) {\n approvalBinding = false;\n $('#Deployment-AddUser')\n .click((e) => this.riskOwnerAddUser(e));\n $('#Deployment-MoveUserUp')\n .click((e) => this.riskOwnerMoveUserUp(e));\n $('#Deployment-MoveUserDown')\n .click((e) => this.riskOwnerMoveUserDown(e));\n $('#Deployment-RemoveUser')\n .click((e) => this.riskOwnerRemoveUser(e));\n }\n },\n })\n .data('kendoGrid');\n }\n\n questionnaireApprovalPathGrid(container, options) {\n let toolbar = [];\n if (options.model.questionnaireStatus === Constants.DeploymentStatus.Undeployed) {\n toolbar = [\n { template: 'Add' },\n { template: 'Move Up' },\n { template: 'Move Down' },\n { template: 'Remove' },\n ];\n }\n\n let approvalBinding = true;\n $('
    ')\n .appendTo(container)\n .kendoGrid({\n toolbar: toolbar,\n dataSource: {\n schema: {\n model: {\n id: 'userId',\n fields: {\n userId: {\n nullable: false,\n },\n order: {\n defaultValue: 1,\n },\n },\n },\n },\n sort: {\n field: 'order',\n dir: 'asc',\n },\n },\n columns: [\n {\n field: 'order',\n title: 'Order',\n sortable: {\n initialDirection: 'asc',\n },\n width: 100,\n },\n {\n field: 'userId',\n title: 'User',\n template: (dataItem) => Selectors.UserTemplate(dataItem),\n },\n ],\n resizable: true,\n sortable: {\n mode: 'single',\n allowUnsort: false,\n },\n editable: false,\n scrollable: true,\n selectable: 'row',\n autoBind: true,\n height: 160,\n dataBound: () => {\n if (approvalBinding) {\n approvalBinding = false;\n $('#Questionnaire-AddUser')\n .click((e) => this.questionnaireAddUser(e));\n $('#Questionnaire-MoveUserUp')\n .click((e) => this.questionnaireMoveUserUp(e));\n $('#Questionnaire-MoveUserDown')\n .click((e) => this.questionnaireMoveUserDown(e));\n $('#Questionnaire-RemoveUser')\n .click((e) => this.questionnaireRemoveUser(e));\n }\n },\n })\n .data('kendoGrid');\n }\n\n riskOwnerAddUser() {\n const grid = $('#riskOwnerApprovalPathGrid')\n .data('kendoGrid');\n const parent = grid.dataSource.data()\n .parent();\n\n const content = '
    ';\n Helpers.showPopUp2({\n title: 'Select User',\n content: content,\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: function () {\n const grid = $('#userSelectionUsers')\n .data('kendoGrid');\n const select = grid.select();\n\n if (select.length === 0) {\n Helpers.showError('Please select a user first');\n return false;\n }\n\n const di = grid.dataItem(select);\n parent.riskOwnerApprovalPath.push({\n userId: di.username,\n order: parent.riskOwnerApprovalPath.length + 1,\n });\n return true;\n },\n },\n {\n text: 'Cancel',\n action: function () {\n return true;\n },\n },\n ],\n initOpen: () => {\n const filters = [];\n for (let i = 0; i < parent.riskOwnerApprovalPath.length; ++i) {\n filters.push({\n field: 'username',\n operator: 'neq',\n value: parent.riskOwnerApprovalPath[i].userId,\n });\n }\n\n $('#userSelectionPartitions')\n .kendoTreeList({\n dataSource: DataSources.TreeListPartitions,\n selectable: true,\n columns: [\n {\n field: 'translations[\"' + selectedLanguage + '\"].name',\n title: 'Name',\n },\n ],\n change: (e) => {\n const item = e.sender.dataItem(e.sender.select());\n const users = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/Users/GetAllUsersForDeployments?partitionId=' + item.id,\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'info',\n dir: 'asc',\n },\n {\n field: 'username',\n dir: 'asc',\n },\n ],\n filter: filters,\n });\n\n $('#userSelectionUsers')\n .data('kendoGrid')\n .setDataSource(users);\n },\n });\n\n const users = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/Users/GetAllUsersForDeployments',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'info',\n dir: 'asc',\n },\n {\n field: 'username',\n dir: 'asc',\n },\n ],\n filter: filters,\n });\n\n $('#userSelectionUsers')\n .kendoGrid({\n dataSource: users,\n selectable: true,\n columns: [\n {\n field: 'info',\n title: 'User',\n },\n ],\n });\n },\n\n close: () => {\n console.log('closing');\n const partitions = $('#userSelectionPartitions')\n .data('kendoTreeList');\n if (partitions != null) {\n partitions.destroy();\n }\n\n const users = $('#userSelectionUsers')\n .data('kendoGrid');\n if (users != null) {\n users.destroy();\n }\n },\n });\n }\n\n riskOwnerMoveUserUp() {\n const grid = $('#riskOwnerApprovalPathGrid')\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select a user first');\n return;\n }\n\n if (selectedItem.order === 1) {\n return;\n }\n\n const data = grid.dataSource.data();\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].order === selectedItem.order - 1) {\n data[i].set('order', data[i].order + 1);\n }\n }\n selectedItem.set('order', selectedItem.order - 1);\n\n data.parent().dirty = true;\n data.parent().dirtyFields.riskOwnerApprovalPath = true;\n\n grid.select('tr:eq(' + (selectedItem.order - 1) + ')');\n }\n\n riskOwnerMoveUserDown() {\n const grid = $('#riskOwnerApprovalPathGrid')\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select a user first');\n return;\n }\n\n const data = grid.dataSource.data();\n\n if (selectedItem.order === data.length) {\n return;\n }\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].order === selectedItem.order + 1) {\n data[i].set('order', data[i].order - 1);\n }\n }\n\n data.parent().dirty = true;\n data.parent().dirtyFields.riskOwnerApprovalPath = true;\n\n selectedItem.set('order', selectedItem.order + 1);\n\n grid.select('tr:eq(' + (selectedItem.order - 1) + ')');\n }\n\n riskOwnerRemoveUser() {\n const grid = $('#riskOwnerApprovalPathGrid')\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select a user first');\n return;\n }\n\n const data = grid.dataSource.data();\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].order > selectedItem.order) {\n data[i].set('order', data[i].order - 1);\n }\n }\n\n grid.dataSource.remove(selectedItem);\n\n grid.select('tr:eq(' + (selectedItem.order - 1) + ')');\n }\n\n questionnaireAddUser() {\n const grid = $('#questionnaireApprovalPathGrid')\n .data('kendoGrid');\n const parent = grid.dataSource.data()\n .parent();\n\n const content = '
    ';\n Helpers.showPopUp2({\n title: 'Select User',\n content: content,\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: function () {\n const grid = $('#userSelectionUsers')\n .data('kendoGrid');\n const select = grid.select();\n\n if (select.length === 0) {\n Helpers.showError('Please select a user first');\n return false;\n }\n\n const di = grid.dataItem(select);\n parent.approvalPath.push({\n userId: di.username,\n order: parent.approvalPath.length + 1,\n });\n return true;\n },\n },\n {\n text: 'Cancel',\n action: function () {\n return true;\n },\n },\n ],\n initOpen: () => {\n const filters = [];\n for (let i = 0; i < parent.approvalPath.length; ++i) {\n filters.push({\n field: 'username',\n operator: 'neq',\n value: parent.approvalPath[i].userId,\n });\n }\n\n $('#userSelectionPartitions')\n .kendoTreeList({\n dataSource: DataSources.TreeListPartitions,\n selectable: true,\n columns: [\n {\n field: 'translations[\"' + selectedLanguage + '\"].name',\n title: 'Name',\n },\n ],\n change: (e) => {\n const item = e.sender.dataItem(e.sender.select());\n const users = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/Users/GetAllUsersForDeployments?partitionId=' + item.id,\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'info',\n dir: 'asc',\n },\n {\n field: 'username',\n dir: 'asc',\n },\n ],\n filter: filters,\n });\n\n $('#userSelectionUsers')\n .data('kendoGrid')\n .setDataSource(users);\n },\n });\n\n const users = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/Users/GetAllUsersForDeployments',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'info',\n dir: 'asc',\n },\n {\n field: 'username',\n dir: 'asc',\n },\n ],\n filter: filters,\n });\n\n $('#userSelectionUsers')\n .kendoGrid({\n dataSource: users,\n selectable: true,\n columns: [\n {\n field: 'info',\n title: 'User',\n },\n ],\n });\n },\n\n close: () => {\n console.log('closing');\n const partitions = $('#userSelectionPartitions')\n .data('kendoTreeList');\n if (partitions != null) {\n partitions.destroy();\n }\n\n const users = $('#userSelectionUsers')\n .data('kendoGrid');\n if (users != null) {\n users.destroy();\n }\n },\n });\n }\n\n questionnaireMoveUserUp() {\n const grid = $('#questionnaireApprovalPathGrid')\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select a user first');\n return;\n }\n\n if (selectedItem.order === 1) {\n return;\n }\n\n const data = grid.dataSource.data();\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].order === selectedItem.order - 1) {\n data[i].set('order', data[i].order + 1);\n }\n }\n selectedItem.set('order', selectedItem.order - 1);\n\n data.parent().dirty = true;\n data.parent().dirtyFields.approvalPath = true;\n\n grid.select('tr:eq(' + (selectedItem.order - 1) + ')');\n }\n\n questionnaireMoveUserDown() {\n const grid = $('#questionnaireApprovalPathGrid')\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select a user first');\n return;\n }\n\n const data = grid.dataSource.data();\n\n if (selectedItem.order === data.length) {\n return;\n }\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].order === selectedItem.order + 1) {\n data[i].set('order', data[i].order - 1);\n }\n }\n\n data.parent().dirty = true;\n data.parent().dirtyFields.approvalPath = true;\n\n selectedItem.set('order', selectedItem.order + 1);\n\n grid.select('tr:eq(' + (selectedItem.order - 1) + ')');\n }\n\n questionnaireRemoveUser() {\n const grid = $('#questionnaireApprovalPathGrid')\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select a user first');\n return;\n }\n\n const data = grid.dataSource.data();\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].order > selectedItem.order) {\n data[i].set('order', data[i].order - 1);\n }\n }\n\n grid.dataSource.remove(selectedItem);\n\n grid.select('tr:eq(' + (selectedItem.order - 1) + ')');\n }\n\n sendForTreatmentPlan() {\n\n }\n}\n","import { selectedLanguage } from '../../main.js';\nimport FormBase from '../FormBase.js';\nimport DataSources from '../../Core/datasources.js';\nimport Selectors from '../../Core/Selectors.js';\nimport { Helpers } from '../../Core/Helpers';\n\nexport default class IsraAnswers extends FormBase {\n constructor() {\n super('Answers', 'general');\n this.api = 'isra/Answers';\n\n this.columns = [\n {\n title: 'Answer Group',\n binding: 'answerGroupId',\n editable: (dataItem) => dataItem.isNew(),\n required: true,\n sort: 'asc',\n template: Selectors.AnswerGroupTemplate,\n editor: Selectors.AnswerGroupSelector,\n groupHeaderTemplate: (e) => {\n const item = DataSources.IsraAnswerGroups.get(e.value);\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return 'Save changes to apply group';\n }\n },\n },\n {\n title: 'Default Value',\n binding: 'defaultValue',\n sort: 'desc',\n },\n {\n title: 'Answer',\n binding: 'answer',\n required: true,\n sort: 'asc',\n defaultValue: 'New Answer',\n translatable: true,\n },\n ];\n }\n\n require() {\n return [DataSources.IsraAnswerGroups];\n }\n\n setCustomDatasourceProperties(source) {\n source.group = { field: 'answerGroupId' };\n }\n}\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestSchedulingView.vue?vue&type=style&index=0&id=5a52d9fb&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestSchedulingView.vue?vue&type=style&index=0&id=5a52d9fb&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedApplications.vue?vue&type=style&index=0&id=6ad00e08&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedApplications.vue?vue&type=style&index=0&id=6ad00e08&scoped=true&lang=css&\"","import { selectedLanguage, selectedMasterPlan } from '../../main.js';\nimport DataSources from '../../Core/datasources.js';\nimport Selectors from '../../Core/Selectors.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport Constants from '../../Core/constants.js';\nimport DeploymentFormBase from '../DeploymentFormBase';\nimport VersionableFormBase from './VersionableFormBase.js';\n\nexport default class IsraClassificationDeployments extends DeploymentFormBase {\n constructor() {\n super('Classification Deployments', 'general');\n this.api = 'isra/ClassificationDeployments';\n\n this.options.parse = (data) => this.parseData(data);\n\n this.menuOptions.open = function (e) {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem($(e.target));\n\n const edit = item.status === Constants.DeploymentStatus.Undeployed;\n\n this.enable('[action=edit]', edit);\n this.enable('[action=delete]', edit);\n\n this.enable('[action=deploy]', edit);\n\n // const abort = !edit && item.status !== Constants.DeploymentStatus.Finished;\n\n this.enable('[action=abort]', !edit);\n this.enable('[action=reject]', false);\n };\n\n this.menu = {\n edit: {\n title: 'Edit',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.editDeployment(item, e.target);\n },\n },\n delete: {\n title: 'Remove',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.destroyDeployment(item, e.target);\n },\n },\n\n sep1: {\n cssClass: 'k-separator',\n },\n\n deploy: {\n title: 'Deploy',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.deployDeployment(\n `/api/masterplans/${selectedMasterPlan.id}/isra/ClassificationDeployments/${item.id}/deploy`,\n item,\n );\n },\n },\n\n abort: {\n title: 'Abort',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.abortDeployment(\n `/api/masterplans/${selectedMasterPlan.id}/isra/ClassificationDeployments/${item.id}/abort`,\n item,\n );\n },\n },\n\n reject: {\n title: 'Reject',\n action: (e) => {\n const item = $(e.target.closest('.k-grid'))\n .data('kendoGrid')\n .dataItem(e.target);\n this.rejectDeployment(item);\n },\n },\n };\n\n this.columns = [\n {\n title: 'System',\n binding: 'system',\n required: true,\n hidden: false,\n editorHidden: true,\n groupHeaderTemplate: (e) => {\n return e.value;\n },\n },\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Deployment',\n hidden: true,\n required: true,\n translatable: true,\n editable: (dataItem) => dataItem.status === Constants.DeploymentStatus.Undeployed || dataItem.isNew(),\n },\n {\n title: 'System',\n binding: 'applicationId',\n required: true,\n hidden: true,\n editable: (dataItem) => dataItem.isNew(),\n template: (dataItem) => {\n const item = DataSources.Applications.get(dataItem.applicationId);\n\n if (item != null) {\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n } else {\n return 'No System Selected';\n }\n },\n editor: (container, options) => this.applicationSelector(container, options),\n },\n {\n title: 'Questionnaire',\n binding: 'questionnaireText',\n hidden: false,\n editorHidden: true,\n editable: false,\n },\n {\n title: 'Questionnaire',\n binding: 'classificationQuestionnaireId',\n required: true,\n hidden: true,\n editorHidden: false,\n editable: (dataItem) => dataItem.isNew(),\n editor: (container, options) => this.questionnaireSelector(container, options),\n template: (dataItem) => {\n return dataItem.questionnaireText;\n },\n },\n {\n title: 'Version',\n binding: 'version',\n defaultValue: VersionableFormBase.versionPrototype(),\n required: false,\n width: '120px',\n translatable: false,\n editable: () => true,\n },\n {\n title: 'Due Date',\n binding: 'dueDate',\n width: '120px',\n hidden: false,\n defaultValue: this.getDefaultDueDate(),\n template: (dataItem) => Selectors.DateTemplate(dataItem, 'dueDate'),\n editor: (container, options) => Selectors.DatePicker(container, options, 'dueDate'),\n editable: (dataItem) => dataItem.status === Constants.DeploymentStatus.Undeployed || dataItem.isNew(),\n },\n {\n title: 'Status',\n binding: 'status',\n defaultValue: '0',\n width: '120px',\n editable: () => false,\n editorHidden: true,\n sort: 'asc',\n template: function (dataItem) {\n return Constants.DeploymentStatusTranslations[dataItem.status].translations[selectedLanguage];\n },\n groupHeaderTemplate: function (e) {\n return Constants.DeploymentStatusTranslations[e.value].translations[selectedLanguage];\n },\n },\n {\n title: 'Active',\n binding: 'active',\n editable: () => false,\n editorHidden: true,\n width: '70px',\n template: function (dataItem) {\n return dataItem.active ? 'Active' : '';\n },\n groupable: false,\n },\n {\n title: 'Archived',\n binding: 'archived',\n editable: () => false,\n template: (dataItem) => dataItem.archived ? 'Archived' : '',\n width: '120px',\n editorHidden: true,\n },\n {\n title: 'Based On',\n binding: 'versionBasedOn',\n editable: () => false,\n editorHidden: true,\n width: '120px',\n },\n {\n title: 'Data Entry',\n binding: 'dataEntry',\n defaultValue: [],\n hidden: true,\n editor: (container, options) => this.dataEntryEditor(container, options),\n },\n {\n title: 'Approval Path',\n binding: 'approvalPath',\n defaultValue: [],\n hidden: true,\n editor: (container, options) => this.approvalPathEditor(container, options),\n },\n ];\n }\n\n require() {\n this.questionnaires = DataSources.IsraClassificationQuestionnaires;\n this.questionnaires.filter({ field: 'archived', operator: 'eq', value: false });\n\n return [\n DataSources.Users,\n DataSources.Applications,\n this.questionnaires,\n ];\n }\n\n init() {\n if (DataSources.Users.data().length === 0) {\n kendo.alert('Users are empty. Please add users before creating ClassificationDeployments');\n return;\n }\n\n if (DataSources.Applications.data().length === 0) {\n kendo.alert('Systems list is empty. Please add an applications before creating Classification Deployments.');\n return;\n }\n\n super.init();\n }\n\n setCustomDatasourceProperties(source) {\n super.setCustomDatasourceProperties(source);\n\n source.group = { field: 'system' };\n }\n\n selectedItemChanged(selectedItem) {\n super.selectedItemChanged(selectedItem);\n\n if (selectedItem != null) {\n $('#ClassificationDeployments-MarkActive').show();\n\n if (selectedItem.status > Constants.DeploymentStatus.Undeployed) {\n $('#ClassificationDeployments-Abort').show();\n $('#ClassificationDeployments-Deploy').hide();\n } else {\n $('#ClassificationDeployments-Abort').hide();\n $('#ClassificationDeployments-Deploy').show();\n }\n } else {\n $('#ClassificationDeployments-Deploy').hide();\n $('#ClassificationDeployments-Abort').hide();\n $('#ClassificationDeployments-MarkActive').hide();\n }\n }\n\n setCustomGridProperties(grid) {\n grid.toolbar = [];\n super.setCustomGridProperties(grid);\n\n grid.groupable = true;\n\n grid.columns[grid.columns.length - 1] = {\n command: [\n {\n text: 'Edit',\n click: (e) => {\n const row = $(e.currentTarget).closest('tr');\n const dataItem = $(this.grid).data('kendoGrid').dataItem(row);\n this.editDeployment(dataItem, row);\n },\n }, {\n text: 'Delete',\n click: (e) => {\n const row = $(e.currentTarget).closest('tr');\n const dataItem = $(this.grid).data('kendoGrid').dataItem(row);\n this.destroyDeployment(dataItem, row);\n },\n }],\n width: 100,\n };\n\n grid.toolbar.unshift({\n name: 'excel',\n text: 'Export',\n });\n\n grid.toolbar.splice(5, 0, {\n name: 'create',\n text: 'New',\n });\n\n grid.toolbar.push(\n {\n template: 'Mark Active',\n },\n {\n template: 'Deploy',\n },\n {\n template: 'Abort',\n },\n );\n\n grid.editable = 'popup';\n\n const edit = grid.edit;\n grid.edit = (e) => {\n edit.call(e.sender, e);\n\n e.container.find('label[for=status]')\n .parent('div .k-edit-label')\n .hide();\n e.container.find('label[for=status]')\n .parent()\n .next('div .k-edit-field')\n .hide();\n\n e.container.find('label[for=types]')\n .parent('div .k-edit-label')\n .hide();\n e.container.find('label[for=types]')\n .parent()\n .next('div .k-edit-field')\n .hide();\n };\n }\n\n firstDataBound(grid, data) {\n super.firstDataBound(grid, data);\n\n $('#ClassificationDeployments-Deploy')\n .off('click')\n .on('click', (e) => this.deployDeploymentEvent(e));\n\n $('#ClassificationDeployments-Abort')\n .off('click')\n .on('click', (e) => this.abortDeploymentEvent(e));\n\n $('#ClassificationDeployments-MarkActive')\n .off('click')\n .on('click', () => {\n const grid = $(this.grid).data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select a deployment first...');\n return;\n }\n\n kendo.ui.progress($(this.grid), true);\n\n const api = `/api/masterplans/${selectedMasterPlan.id}/isra/ClassificationDeployments/${selectedItem.id}/active`;\n\n $.post(api)\n .done(() => {\n this.datasource.read();\n const grid = $(this.grid).data('kendoGrid');\n grid.refresh();\n })\n .fail((error) => {\n Helpers.showError(error.responseText, 'Failed');\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n });\n\n // grid.element\n // .off('dblclick', 'tbody tr[data-uid]')\n // .on('dblclick', 'tbody tr[data-uid]', (e) => {\n // const row = $(e.currentTarget)\n // .closest('tr');\n // const dataItem = $(this.grid)\n // .data('kendoGrid')\n // .dataItem(row);\n // this.editDeployment(dataItem, row);\n // });\n }\n\n applicationSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n placeholder: 'Search...',\n filter: 'contains',\n suggest: true,\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.Applications,\n });\n }\n\n initQuestionnairesDataTree() {\n if (this.questionnairesData == null) {\n const data = this.questionnaires.view();\n\n const map = [];\n for (let i = 0; i < data.length; ++i) {\n const name = data[i].translations[selectedLanguage].name;\n if (map[name] == null) {\n map[name] = {\n text: name,\n expanded: false,\n items: [],\n disabled: true,\n };\n }\n\n map[name].items.push({\n text: data[i].version,\n base: name,\n id: data[i].id,\n });\n }\n\n this.questionnairesData = [];\n for (const key in map) {\n // flat questionnaires with only one version\n if (map[key].items.length === 1) {\n map[key].text += ` (${map[key].items[0].text})`;\n map[key].disabled = false;\n map[key].id = map[key].items[0].id;\n delete map[key].items;\n }\n\n this.questionnairesData.push(map[key]);\n }\n }\n }\n\n questionnaireSelector(container, options) {\n this.initQuestionnairesDataTree();\n\n $(``)\n .appendTo(container)\n .kendoDropDownTree({\n placeholder: 'Select ...',\n valuePrimitive: true,\n dataTextField: 'text',\n dataValueField: 'id',\n valueTemplate: (e) => {\n if (e.base == null) {\n return Helpers.sanitizeHTML(e.text);\n } else {\n return Helpers.sanitizeHTML(`${e.base} (${e.text})`);\n }\n },\n height: 'auto',\n dataSource: this.questionnairesData,\n select: (e) => {\n const dataItem = e.sender.dataItem(e.node);\n if (dataItem.disabled) {\n e.preventDefault();\n } else {\n if (options.model.classificationQuestionnaireId !== dataItem.id) {\n options.model.classificationQuestionnaireId = dataItem.id;\n options.model.dirty = true;\n }\n }\n },\n });\n }\n\n getItemName(item) {\n return item.system;\n }\n\n newVersionPopupItems(selectedItem, items) {\n items.push({\n title: 'Questionnaire:',\n editor: '',\n actions: () => {\n this.initQuestionnairesDataTree();\n\n $('#questionnaireSelector').kendoDropDownTree({\n placeholder: 'Select ...',\n valuePrimitive: true,\n dataTextField: 'text',\n dataValueField: 'id',\n value: selectedItem.classificationQuestionnaireId,\n valueTemplate: (e) => {\n if (e.base == null) {\n return Helpers.sanitizeHTML(e.text);\n } else {\n return Helpers.sanitizeHTML(`${e.base} (${e.text})`);\n }\n },\n height: 'auto',\n dataSource: this.questionnairesData,\n select: (e) => {\n const dataItem = e.sender.dataItem(e.node);\n if (dataItem.disabled) {\n e.preventDefault();\n }\n },\n });\n },\n });\n }\n\n newVersionPrepostChecks() {\n super.newVersionPrepostChecks();\n\n const questionnaire = $('#questionnaireSelector').data('kendoDropDownTree').value();\n if (!questionnaire) {\n throw new Error('Please select a questionnaire!');\n }\n }\n\n newVersionUrlGenerator({ mp, api, id, version }) {\n let post = super.newVersionUrlGenerator({ mp, api, id, version });\n post += `&questionnaire=${$('#questionnaireSelector').data('kendoDropDownTree').value()}`;\n return post;\n }\n\n parseData(data) {\n // const offsetMiliseconds = new Date().getTimezoneOffset() * 60000;\n\n for (let i = 0; i < data.length; ++i) {\n let item = DataSources.Applications.get(data[i].applicationId);\n if (item != null) {\n data[i].system = item.translations[selectedLanguage].name;\n }\n\n item = this.questionnaires.get(data[i].classificationQuestionnaireId);\n\n if (item != null) {\n data[i].questionnaireText = `${item.translations[selectedLanguage].name} (${item.version})`;\n } else {\n data[i].questionnaireText = 'No Questionnaire Selected';\n }\n\n if (data[i].start != null) {\n data[i].start = data[i].start + 'Z';\n }\n\n if (data[i].dueDate != null) {\n if (data[i].dueDate.slice(-1) !== 'Z') {\n data[i].dueDate = data[i].dueDate + 'Z';\n }\n }\n\n if (data[i].finish != null) {\n data[i].finish = data[i].finish + 'Z';\n }\n }\n return data;\n }\n\n mapData(data) {\n return data;\n }\n\n editDeployment(deployment, row) {\n $(this.grid)\n .data('kendoGrid')\n .editRow(row);\n }\n\n destroyDeployment(deployment, row) {\n if (deployment.status > 0) {\n Helpers.showError('Cannot delete a deployed questionnaire');\n return;\n }\n\n $(this.grid)\n .data('kendoGrid')\n .removeRow(row);\n }\n\n deployDeploymentEvent() {\n const grid = $(this.grid)\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n console.log(selectedItem);\n\n this.deployDeployment(\n `/api/masterplans/${selectedMasterPlan.id}/isra/ClassificationDeployments/${selectedItem.id}/deploy`,\n selectedItem,\n );\n }\n\n abortDeploymentEvent() {\n const grid = $(this.grid)\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n this.abortDeployment(\n `/api/masterplans/${selectedMasterPlan.id}/isra/ClassificationDeployments/${selectedItem.id}/abort`,\n selectedItem,\n );\n }\n\n getDefaultDueDate() {\n const now = new Date();\n now.setMonth(now.getMonth() + 1);\n return now;\n }\n\n destroy() {\n const grid = $(this.grid)\n .data('kendoGrid');\n if (grid) {\n grid.element.off('dblclick', 'tbody tr[data-uid]');\n }\n super.destroy();\n }\n}\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaInterdependencyEditor.vue?vue&type=style&index=0&id=5fce1c14&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaInterdependencyEditor.vue?vue&type=style&index=0&id=5fce1c14&scoped=true&lang=css&\"","import FormBase from '../FormBase.js';\n\nexport default class IsraThreats extends FormBase {\n constructor() {\n super('Threats', 'general');\n this.api = 'isra/Threats';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Value',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n {\n title: 'Description',\n binding: 'description',\n defaultValue: '',\n required: false,\n translatable: true,\n },\n ];\n }\n}\n","import FormBase from '../FormBase.js';\n\nexport default class IsraStandardizations extends FormBase {\n constructor() {\n super('Regulatory Compliance and Standardization', 'general');\n this.api = 'isra/Standardizations';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n required: true,\n sort: 'asc',\n },\n ];\n }\n}\n","import FormBase from '../FormBase.js';\nimport { jwt, selectedMasterPlan } from '../../main.js';\nimport { Helpers } from '../../Core/Helpers.js';\n\nexport default class IsraIsoDomains extends FormBase {\n constructor() {\n super('ISO/IEC 27001 Controls', 'general');\n this.api = 'isra/IsoDomains';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Value',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n ];\n }\n\n init() {\n const source = Helpers.createDataSource(\n selectedMasterPlan, this.api, jwt, this.columns, null, null,\n true,\n );\n source.schema.model.parentId = 'parentId';\n source.schema.model.expanded = false;\n delete source.pageSize;\n this.datasource = new kendo.data.TreeListDataSource(source);\n\n let cols = [];\n\n for (let j = 0; j < selectedMasterPlan.languages.length; ++j) {\n const language = selectedMasterPlan.languages[j].language;\n\n cols.push({\n title: 'Name (' + language + ')',\n field: 'name_' + language.replace('-', '_'),\n filterable: true,\n });\n }\n\n cols = cols.concat([\n {\n command: ['edit', 'destroy', 'createChild'],\n width: 350,\n },\n ]);\n\n const grid = Helpers.getDefaultGrid(selectedMasterPlan, this.api);\n\n delete grid.pageable;\n delete grid.height;\n grid.columns = cols;\n\n grid.editable = {\n mode: 'inline',\n move: true,\n };\n\n grid.dragend = (e) => {\n kendo.ui.progress($(this.grid), true);\n e.sender.dataSource.sync()\n .done(() => {\n kendo.ui.progress($(this.grid), false);\n })\n .fail(() => {\n\n });\n };\n\n grid.dataSource = this.datasource;\n\n grid.remove = (e) => {\n const r = confirm('Are you sure you want to remove the selected group?');\n if (r === false) {\n e.preventDefault();\n }\n };\n\n $(this.grid)\n .kendoTreeList(grid);\n\n $(this.grid)\n .off('mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')', this.disableButtonsOnEdit)\n .on('mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')', this.disableButtonsOnEdit);\n }\n\n destroy() {\n const div = $(this.grid);\n const data = div.data('kendoTreeList');\n\n super.destroy(data);\n }\n}\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPasswordView.vue?vue&type=style&index=0&id=3f0082c2&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPasswordView.vue?vue&type=style&index=0&id=3f0082c2&scoped=true&lang=css&\"","import { DocumentFileFormat } from '@/dtos/all';\nimport DownloadService from '@/services/DownloadService';\nimport { Helpers } from '../../../Core/Helpers.js';\nimport { selectedMasterPlan } from '../../../main.js';\nimport FormBase from '../../FormBase.js';\n\nexport default class BcpTemplates extends FormBase {\n constructor() {\n super('BCR Templates', 'general');\n this.api = 'bc/BcpTemplates';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n required: true,\n translatable: false,\n sort: 'asc',\n },\n {\n title: 'File',\n binding: 'hasFile',\n translatable: true,\n defaultValue: false,\n editable: () => false,\n template: (dataItem, language) => {\n if (dataItem.isNew()) {\n return '';\n }\n\n let t = '';\n if (dataItem.translations[language].hasFile === true) {\n const downloadApi = '/api/masterplans/' + selectedMasterPlan.id +\n '/bc/BcpTemplates/DownloadFile/' + dataItem.id + '/' + language;\n t += '';\n t += 'Download File';\n t += '';\n }\n\n t += '';\n t += 'Upload File';\n t += '';\n\n const api = '/api/masterplans/' + selectedMasterPlan.id + '/bc/BcpTemplates/UploadFile/' +\n dataItem.id + '/' + language;\n t += '
    ';\n\n t += '
    ';\n\n return t;\n },\n },\n ];\n }\n\n setCustomGridProperties(grid) {\n super.setCustomGridProperties(grid);\n\n const databound = grid.dataBound;\n\n let first = true;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n if (first) {\n $('#downloadTemplate')\n .off('click')\n .on('click', () => {\n kendo.ui.progress($(this.grid), true);\n\n $.ajax({\n url: '/api/masterplans/' + selectedMasterPlan.id + '/bc/BcpTemplates/DownloadFile/Template',\n method: 'GET',\n success: (data) => {\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Unknown,\n });\n },\n error: (data) => {\n Helpers.showError(data.responseText);\n },\n complete: () => {\n kendo.ui.progress($(this.grid), false);\n },\n processData: false,\n });\n });\n\n first = false;\n }\n\n $('[name=\"downloadFile\"]')\n .off('click')\n .on('click', (e) => {\n kendo.ui.progress($(this.grid), true);\n\n $.ajax({\n url: e.target.getAttribute('action'),\n method: 'GET',\n success: function (data) {\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Unknown,\n });\n },\n error(data) {\n Helpers.showError(data.responseText);\n },\n complete: () => {\n kendo.ui.progress($(this.grid), false);\n },\n processData: false,\n });\n });\n\n $('[name=\"uploadFile\"]')\n .off('click')\n .on('click', (e) => {\n $(e.target.closest('td'))\n .find('[name=\"fileSelector\"]')\n .click();\n });\n\n $('[name=\"fileSelector\"]')\n .off('change')\n .on('change', (e) => {\n const form = e.target.closest('form');\n const url = form.getAttribute('action');\n\n const fd = new FormData();\n fd.append('file', $(e.target)[0].files[0]);\n\n kendo.ui.progress($(this.grid), true);\n\n $.ajax({\n url: url,\n type: 'POST',\n data: fd,\n success: () => {\n Helpers.showPopUp2({\n title: 'Success',\n content: 'File Uploaded successfully',\n });\n\n const grid = $(this.grid)\n .data('kendoGrid');\n const dataItem = grid.dataItem(e.target.closest('tr'));\n dataItem.translations[e.target.getAttribute('language')].hasFile = true;\n kendo.ui.progress($(this.grid), false);\n grid.refresh();\n },\n error: function (data) {\n Helpers.showError(data.responseText);\n },\n cache: false,\n contentType: false,\n processData: false,\n });\n });\n };\n\n grid.toolbar.push({\n template: 'Download Template File',\n });\n }\n}\n","import { settings } from '../../main.js';\nimport FormBase from '../FormBase.js';\n\nexport default class CoordinatorTypes extends FormBase {\n constructor() {\n super('Coordinator Types', 'general');\n this.api = 'CoordinatorTypes';\n\n this.baseApi = true;\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Coordinator Type',\n required: true,\n sort: 'asc',\n },\n {\n title: 'Description',\n binding: 'description',\n defaultValue: '',\n required: false,\n },\n {\n title: 'Active Directory Group',\n binding: 'activeDirectoryGroup',\n defaultValue: '',\n required: false,\n hidden: !settings.sso,\n },\n ];\n }\n}\n","import FormBase from '../../FormBase.js';\nimport { selectedLanguage, userRole } from '../../../main.js';\nimport Selectors from '../../../Core/Selectors.js';\nimport Constants from '../../../Core/constants.js';\n\nexport default class Rto extends FormBase {\n constructor() {\n super('Recovery Time Objective Scale', 'general', {\n readOnly: !userRole.includes(Constants.RoleTypes.BCM.Administrator),\n });\n this.api = 'bc/RTOScales';\n\n this.confirmation = 'translations.' + selectedLanguage + '.name';\n\n this.columns = [\n {\n title: 'Value',\n binding: 'value',\n type: 'number',\n defaultValue: 0.0,\n sort: 'asc',\n required: true,\n },\n {\n title: 'Name',\n binding: 'name',\n required: true,\n sort: 'asc',\n translatable: true,\n defaultValue: 'New Name',\n },\n {\n title: 'Color',\n binding: 'color',\n defaultValue: null,\n required: false,\n template: (dataItem) => Selectors.ColorTemplate(dataItem, 'color'),\n editor: (container, options) => Selectors.ColorSelector(container, options),\n },\n ];\n }\n}\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentFiles.vue?vue&type=style&index=0&id=61ae9e91&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentFiles.vue?vue&type=style&index=0&id=61ae9e91&scoped=true&lang=css&\"","import { selectedMasterPlan, selectedLanguage } from '../../main.js';\nimport FormBase from '../FormBase.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\n\nexport default class IsraRiskManagementRisks extends FormBase {\n constructor(riskManagement) {\n super(`'${riskManagement.translations[selectedLanguage].name}' Risks`, 'general');\n this.api = 'isra/RiskManagements/' + riskManagement.id + '/Risks';\n\n this.riskManagement = riskManagement;\n\n this.columns = [\n {\n title: 'Risk',\n binding: 'name',\n required: true,\n sort: 'asc',\n editable: false,\n template: (dataItem) => {\n const item = DataSources.IsraRisks.get(dataItem.riskId);\n return Helpers.sanitizeHTML(item.translations[selectedLanguage].name);\n },\n },\n\n {\n title: 'C',\n binding: 'confidentiality',\n defaultValue: false,\n type: 'boolean',\n width: 45,\n },\n {\n title: 'I',\n binding: 'integrity',\n defaultValue: false,\n type: 'boolean',\n width: 45,\n },\n {\n title: 'A',\n binding: 'availability',\n defaultValue: false,\n type: 'boolean',\n width: 45,\n },\n\n {\n title: 'Default Likelihood',\n binding: 'defaultLikelihood',\n defaultValue: 6,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 20,\n step: 0.1,\n },\n width: 150,\n },\n {\n title: 'Impact Reduction',\n binding: 'impactReduction',\n defaultValue: 1,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 1,\n step: 0.1,\n },\n format: '{0:p2}',\n width: 150,\n },\n {\n title: 'Probability Reduction',\n binding: 'probabilityReduction',\n defaultValue: 1,\n type: 'number',\n required: true,\n validation: {\n min: 0,\n max: 1,\n step: 0.1,\n },\n format: '{0:p2}',\n width: 150,\n },\n ];\n\n delete this.menu.delete;\n }\n\n init() {\n // likelihood max\n const l = [];\n DataSources.IsraLikelihoodScales.data()\n .forEach(i => l.push(i.value));\n this.columns[4].validation.max = Math.max(...l);\n\n super.init();\n }\n\n require() {\n return [DataSources.IsraLikelihoodScales, DataSources.IsraRisks];\n }\n\n setCustomGridProperties(grid) {\n grid.toolbar = [\n {\n name: 'excel',\n text: 'Export',\n },\n { template: 'Reset Risk Values' },\n { template: 'Reset Deleted Risks' },\n { template: 'Add Risk' },\n ];\n\n const databound = grid.dataBound;\n let firstDataBound = true;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n if (firstDataBound) {\n firstDataBound = false;\n $('[name=\\'ResetDeletedRisks\\']')\n .off('click')\n .on('click', () => {\n kendo.ui.progress($(this.grid), true);\n $.post(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${this.riskManagement.id}/Risks/RecreateDeletedRisks`)\n .then(() => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .read();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n });\n\n $('[name=\\'ResetRiskValues\\']')\n .off('click')\n .on('click', () => {\n kendo.ui.progress($(this.grid), true);\n $.post(`/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${this.riskManagement.id}/Risks/ResetToDefaults`)\n .then(() => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .read();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n });\n\n $('[name=\\'AddRisk\\']')\n .off('click')\n .on('click', () => {\n const grid = $(this.grid)\n .data('kendoGrid');\n const data = grid.dataSource.data();\n\n const content = '
    ';\n Helpers.showPopUp('Select Risk', content, [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const di = $('#risksComboBox')\n .data('kendoDropDownList')\n .dataItem();\n if (di != null) {\n $.post('/api/masterplans/' + selectedMasterPlan.id + '/isra/RiskManagements/' +\n this.riskManagement.id + '/Risks/' + di.id)\n .then(() => {\n $(this.grid)\n .data('kendoGrid')\n .dataSource\n .read();\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n });\n return true;\n }\n return false;\n },\n },\n {\n text: 'Cancel',\n action: function () {\n return true;\n },\n }]);\n\n const filters = [];\n for (let i = 0; i < data.length; ++i) {\n filters.push({\n field: 'id',\n operator: 'neq',\n value: data[i].riskId,\n });\n }\n\n $('#risksComboBox')\n .width(500)\n .kendoDropDownList({\n autoBind: true,\n dataTextField: 'translations[\\'' + selectedLanguage + '\\'].name',\n dataValueField: 'id',\n valuePrimitive: true,\n dataSource: {\n data: DataSources.IsraRisks.view(),\n filter: {\n logic: 'and',\n filters: filters,\n },\n },\n filter: filters,\n filtering: function (e) {\n const filterValue = e.filter !== undefined ? e.filter.value : '';\n e.preventDefault();\n\n this.dataSource.filter({\n logic: 'and',\n filters: [\n {\n field: 'translations[\\'' + selectedLanguage + '\\'].name',\n operator: 'contains',\n value: filterValue,\n },\n ...filters,\n ],\n });\n },\n suggest: true,\n });\n });\n }\n };\n }\n}\n","import Constants from './constants.js';\n\nconst Helpers = (function () {\n // const dialog_counter = 0;\n // selected grid to be used for single selection between detailgrids\n // const previousGrid = null;\n\n function sanitizeHTML(str) {\n const temp = document.createElement('div');\n temp.textContent = str;\n return temp.innerHTML;\n }\n\n function createModel(mp, bindings, options) {\n options = options || {};\n options.flatout = options.flatout || false;\n\n const model = {\n id: 'id',\n fields: {\n id: {\n type: 'Number',\n editable: false,\n },\n translations: { defaultValue: {} },\n },\n };\n\n const sort = [];\n const aggregate = [];\n\n for (let i = 0; i < bindings.length; ++i) {\n if (Array.isArray(bindings[i].columns)) {\n for (let j = 0; j < bindings[i].columns.length; ++j) {\n createBinding(mp, bindings[i].columns[j], options, model, sort, aggregate);\n }\n } else {\n createBinding(mp, bindings[i], options, model, sort, aggregate);\n }\n }\n\n return {\n model: model,\n sort: sort,\n aggregate: aggregate,\n };\n }\n\n function createBinding(mp, binding, options, model, sort, aggregate) {\n if (mp != null && binding.translatable === true) {\n for (let j = 0; j < mp.languages.length; ++j) {\n const language = mp.languages[j].language;\n\n if (!options.flatout) {\n model.fields.translations.defaultValue[language] = {};\n }\n\n const fieldName = binding.binding + '_' + language.replace('-', '_');\n\n let field = fieldName;\n\n if (!options.flatout) {\n field = 'translations[\\'' + language + '\\'].' + binding.binding;\n }\n\n let validation = binding.validation || {\n required: binding.required,\n };\n\n validation.required = binding.required || false;\n\n if (binding.validation != null) {\n validation = binding.validation;\n }\n\n if (binding.type === 'email') {\n binding.type = undefined;\n validation.email = true;\n }\n\n model.fields[fieldName] = {\n name: fieldName,\n field: field,\n defaultValue: binding.defaultValue,\n type: binding.type,\n editable: binding.editable,\n validation: validation,\n };\n\n if (binding.sort != null) {\n sort.push({\n field: field,\n dir: binding.sort,\n });\n }\n\n if (binding.aggregates != null) {\n for (let k = 0; k < binding.aggregates.length; ++k) {\n aggregate.push({\n field: field,\n aggregate: binding.aggregates[k],\n });\n }\n }\n }\n } else {\n if (binding.fieldName == null) {\n binding.fieldName = binding.binding;\n }\n\n model.fields[binding.fieldName] = {\n name: binding.binding,\n field: binding.binding,\n defaultValue: binding.defaultValue,\n type: binding.type,\n editable: binding.editable,\n validation: binding.validation,\n };\n if (binding.sort != null) {\n sort.push({\n field: binding.fieldName,\n dir: binding.sort,\n });\n }\n\n if (binding.aggregates != null) {\n for (let k = 0; k < binding.aggregates.length; ++k) {\n aggregate.push({\n field: binding.fieldName,\n aggregate: binding.aggregates[k],\n });\n }\n }\n }\n }\n\n function createDataSource(mp, api, bearer, bindings, baseApi, errorCallBack, flatout, options) {\n options = options || {};\n\n flatout = flatout || options.flatout || false;\n\n errorCallBack = options.errorCallBack || errorCallBack || {};\n\n options.flatout = flatout;\n\n if (bindings == null) {\n return;\n }\n\n let baseurl = '';\n\n if (baseApi === true) {\n baseurl = '/api/' + api;\n } else {\n baseurl = '/api/masterplans/' + mp.id + '/' + api;\n }\n\n const ret = createModel(mp, bindings, options);\n const model = ret.model;\n const sort = ret.sort;\n const aggregate = ret.aggregate;\n\n let readUrl = baseurl;\n if (options.get != null && options.get.urlParameters != null) {\n readUrl += '?';\n for (const key in options.get.urlParameters) {\n readUrl += `${key}=${options.get.urlParameters[key]}&`;\n }\n }\n\n const source = {\n transport: {\n read: {\n url: readUrl,\n type: 'GET',\n dataType: 'json',\n complete: errorCallBack.read,\n },\n create: {\n url: baseurl,\n type: 'POST',\n dataType: 'json',\n contentType: 'application/json',\n complete: errorCallBack.create,\n },\n update: {\n url: function (item) {\n return baseurl + '/' + item.id;\n },\n type: 'PUT',\n dataType: 'json',\n contentType: 'application/json',\n complete: errorCallBack.update,\n },\n destroy: {\n url: function (item) {\n return baseurl + '/' + item.id;\n },\n type: 'DELETE',\n dataType: 'json',\n complete: errorCallBack.delete,\n },\n parameterMap: function (data, type) {\n if (type === 'create' || type === 'update') {\n if (flatout) {\n // data = 1 survey\n if (data.translations == null) {\n data.translations = {};\n }\n\n data = unflatTranslationObject(data, mp);\n\n if (data.impactSeverities != null) {\n for (let i = 0; i < data.impactSeverities.length; ++i) {\n data.impactSeverities[i] = unflatTranslationObject(data.impactSeverities[i], mp);\n }\n }\n }\n\n if (options != null) {\n if (options.parameterMap != null) {\n data = options.parameterMap(data, type);\n }\n }\n\n return JSON.stringify(data);\n }\n },\n },\n sort: sort,\n aggregate: aggregate,\n pageSize: 50,\n // autoSync: true,\n // batch: true,\n schema: {\n parse: function (data) {\n // no parsing if there are errors\n if (data.errors != null) {\n return data;\n }\n\n // in case of single item\n if (!Array.isArray(data)) {\n data = [data];\n }\n\n // check all languages\n for (let k = 0; k < data.length; ++k) {\n for (let i = 0; i < bindings.length; ++i) {\n const field = bindings[i].binding;\n if (bindings[i].parse !== undefined) {\n bindings[i].parse(data[k]);\n }\n\n if (bindings[i].translatable === true) {\n for (let j = 0; j < mp.languages.length; ++j) {\n const language = mp.languages[j].language;\n\n // set default values for selected languages\n if (data[k].translations[language] === undefined) {\n data[k].translations[language] = {};\n }\n\n if (data[k].translations[language][field] === undefined) {\n data[k].translations[language][field] = 'Unset ' + field;\n }\n\n // Flat translations if necessary\n if (flatout === true) {\n const fieldName = bindings[i].binding + '_' + language.replace('-', '_');\n data[k][fieldName] = data[k].translations[language][field];\n }\n }\n } else {\n if (data[k][field] === undefined) {\n data[k][field] = bindings[i].defaultValue;\n }\n }\n }\n\n if (flatout === true) {\n delete data[k].translations;\n }\n\n if (options.flatout && options.flatoutCallback != null) {\n options.flatoutCallback(data);\n }\n\n // surveys\n if (flatout) {\n // Risk Qualitative Impacts\n if (data[k].impactSeverities != null) {\n for (let i = 0; i < data[k].impactSeverities.length; ++i) {\n for (let j = 0; j < mp.languages.length; ++j) {\n const language = mp.languages[j].language;\n if (data[k].impactSeverities[i].translations[language] === undefined) {\n data[k].impactSeverities[i].translations[language] = {};\n }\n\n if (data[k].impactSeverities[i].translations[language].severity ===\n undefined) {\n data[k].impactSeverities[i].translations[language].severity = 'Unset severity';\n }\n\n if (data[k].impactSeverities[i].translations[language].explanation ===\n undefined) {\n data[k].impactSeverities[i].translations[language].explanation = 'Unset explanation';\n }\n\n let fieldName = 'severity_' + language.replace('-', '_');\n data[k].impactSeverities[i][fieldName] = data[k].impactSeverities[i].translations[language].severity;\n\n fieldName = 'explanation_' + language.replace('-', '_');\n data[k].impactSeverities[i][fieldName] = data[k].impactSeverities[i].translations[language].explanation;\n }\n delete data[k].impactSeverities[i].translations;\n }\n }\n }\n }\n\n if (options != null) {\n if (options.parse != null) {\n data = options.parse(data);\n }\n }\n\n return data;\n },\n model: model,\n },\n error: function (e) {\n if (e.xhr != null) {\n if (options.cancelOnError === true) {\n this.cancelChanges();\n }\n\n e.xhr.responseJSON = e.xhr.responseJSON || {};\n\n if (e.xhr.responseJSON.operation === 'create' && errorCallBack.create != null) {\n return;\n } else if (e.xhr.status === 403 || e.xhr.status === 401) {\n if (e.xhr.status === 401 && e.xhr.responseJSON.Message === 'HOTP Failed') {\n showError('User Authentication failed. Multiple loggins are not allowed');\n // logout();\n } else {\n showError('Access Denied');\n }\n } else {\n showError(e.xhr.responseText, options.errorTitle);\n }\n\n // let text = '';\n // let json = JSON.parse(e.xhr.responseText);\n //\n // for(let i in json){\n // text += json[i] + \"
    \";\n // }\n //\n // showError(text, options.errorTitle);\n }\n\n if (e.errors != null) {\n if (Array.isArray(e.errors)) {\n showError(e.errors.join('
    '), options.errorTitle);\n } else {\n showError(e.errors, options.errorTitle);\n }\n }\n },\n };\n\n if (options.readOnly === true && options.allowSave !== true) {\n delete source.transport.create;\n delete source.transport.destroy;\n delete source.transport.update;\n delete source.transport.parameterMap;\n }\n\n return source;\n }\n\n // function getField(item) {\n // return {\n // name: item.Name,\n // field: item.binding,\n // defaultValue: item.defaultValue,\n // type: item.type,\n // validation: {\n // required: item.required,\n // validation: item.validation,\n // }\n // }\n // }\n\n function getColumn(item) {\n if (item.selectable != null) {\n return item;\n }\n\n let field = item.fieldName;\n if (field == null) {\n field = item.binding;\n }\n\n const attributes = {\n };\n\n if (item.align != null) { attributes.style = `text-align: ${item.align}`; }\n\n const c = {\n field: field,\n title: item.title,\n type: item.type,\n width: item.width,\n filterable: item.filterable || false,\n editable: item.editable,\n editorHidden: item.editorHidden,\n aggregates: item.aggregates,\n footerTemplate: item.footerTemplate,\n groupHeaderTemplate: item.groupHeaderTemplate,\n groupFooterTemplate: item.groupFooterTemplate,\n groupable: item.groupable,\n collapse: item.collapse,\n attributes: attributes,\n };\n\n if (item.hidden === true) {\n c.hidden = true;\n }\n\n if (item.type === 'boolean') {\n c.template = '';\n }\n\n if (item.editor != null) {\n c.editor = item.editor;\n // c.width = '150px';\n }\n\n if (item.template != null) {\n c.template = item.template;\n }\n\n if (item.format != null) {\n c.format = item.format;\n }\n\n if (item.datasource != null) {\n if (item.compare == null) {\n c.sortable = {\n compare: function (a, b) {\n let itemA,\n itemB;\n\n const key = item.sortId || item.binding;\n\n if (a[key] == null) {\n itemA = Constants.Empty;\n } else {\n itemA = item.datasource.get(a[key]);\n }\n\n if (b[key] == null) {\n itemB = Constants.Empty;\n } else {\n itemB = item.datasource.get(b[key]);\n }\n\n const valueA = (normalize(resolve(item.sortField, itemA)) || '').toLowerCase();\n const valueB = (normalize(resolve(item.sortField, itemB)) || '').toLowerCase();\n\n if (valueA < valueB) {\n return -1;\n } else if (valueA > valueB) {\n return 1;\n } else {\n return 0;\n }\n },\n };\n }\n\n if (item.groupHeaderTemplate == null) {\n c.groupHeaderTemplate = (e) => {\n const i = item.datasource.get(e.value);\n if (i != null) {\n return sanitizeHTML(resolve(item.sortField, i));\n } else {\n if (item.required === true) {\n return 'Save changes to apply group';\n } else {\n return 'None';\n }\n }\n };\n }\n\n if (item.template == null) {\n c.template = (e) => {\n const i = item.datasource.get(e[item.binding]);\n if (i != null) {\n return resolve(item.sortField, i);\n } else {\n return 'None';\n }\n };\n }\n }\n\n if (item.sortable === false) {\n c.sortable = false;\n } else if (item.compare != null) {\n c.sortable = {\n compare: item.compare,\n };\n }\n\n if (item.columns != null) {\n c.columns = [];\n for (let i = 0; i < item.columns.length; ++i) {\n c.columns.push(getColumn(item.columns[i]));\n }\n }\n\n return c;\n }\n\n function createColumns(mp, bindings, options) {\n const columns = [];\n const dictionary = {}; // holds language column position\n\n for (let i = 0; i < bindings.length; ++i) {\n if (mp != null && bindings[i].translatable === true) {\n for (let j = 0; j < mp.languages.length; ++j) {\n const language = mp.languages[j].language;\n\n let pos = dictionary[language];\n if (pos == null) {\n dictionary[language] = columns.length;\n columns.push({\n title: mp.languages[j].language,\n columns: [],\n });\n pos = dictionary[language];\n }\n\n // clone object\n const x = jQuery.extend(true, {}, bindings[i]);\n // change binding to correct column\n x.binding = (bindings[i].binding + '_' + language.replace('-', '_'));\n\n if (bindings[i].template != null) {\n x.template = (dataItem) => bindings[i].template(dataItem, language);\n }\n\n // get column and add it to languagea\n columns[pos].columns.push(getColumn(x));\n }\n } else {\n columns.push(getColumn(bindings[i]));\n }\n }\n\n options = options || {};\n if (options.readOnly !== true) {\n const commands = [];\n\n if (options.edit !== false) { commands.push('edit'); }\n\n if (options.delete !== false) { commands.push('destroy'); }\n\n columns.push({\n command: commands,\n width: commands.length * 90,\n });\n }\n\n return columns;\n }\n\n function getDefaultGrid(mp, api, confirmation, options) {\n let fileName = 'CG_';\n if (mp != null) {\n fileName += mp.name + '_';\n }\n\n fileName += api + '.xlsx';\n\n let rowIndex = null;\n\n let firstDataBound = true;\n let expanded = [];\n\n let toolbar = [];\n let editable = {};\n\n options = options || { readOnly: false };\n\n if (options != null && options.readOnly === true) {\n toolbar = [\n {\n name: 'excel',\n text: 'Export',\n }];\n editable = false;\n } else {\n toolbar = [\n {\n name: 'create',\n text: 'Add New',\n },\n {\n name: 'excel',\n text: 'Export',\n }];\n editable = {\n mode: 'inline',\n confirmation: function (e) {\n let txt = 'Are you sure you want to remove ';\n\n if (confirmation == null) {\n txt += 'this record?';\n } else if (typeof (confirmation) === 'function') {\n txt += confirmation(e) + '?';\n } else {\n txt += '\\'' + resolve(confirmation, e) + '\\'?';\n }\n\n return txt;\n },\n };\n }\n\n return {\n pageable: {\n pageSizes: [10, 50, 100, 'All'],\n numeric: false,\n },\n // height: '90%',\n scrollable: true,\n resizable: true,\n sortable: true,\n reorderable: true,\n filterable: true,\n // filterable: false,\n navigatable: true,\n selectable: true,\n noRecords: true,\n toolbar: toolbar,\n // dataSource: datasource,\n excel: {\n fileName: fileName,\n allPages: true,\n },\n excelExport: function (e) {\n const sheet = e.workbook.sheets[0];\n\n const templates = [];\n for (let i = 0; i < this.columns.length; ++i) {\n if (this.columns[i].hidden === true) {\n continue;\n }\n\n // nested columns (column groups)\n if (this.columns[i].columns != null) {\n for (let j = 0; j < this.columns[i].columns.length; ++j) {\n if (this.columns[i].columns[j].hidden === true) {\n continue;\n }\n templates.push({\n template: this.columns[i].columns[j].template,\n field: this.columns[i].columns[j].field,\n });\n }\n } else {\n templates.push({\n template: this.columns[i].template,\n field: this.columns[i].field,\n });\n }\n }\n\n const tree = {\n items: e.data,\n };\n\n // -1 for (+1) in for loop and -1 for offest (offset will be at least 1 (because of header)\n let i = -2;\n let offset = 0;\n\n let rowoffset;\n for (rowoffset = 0; sheet.rows[rowoffset].type === 'header'; ++rowoffset) ;\n\n const rec = function (current) {\n if (current == null) {\n return;\n }\n\n i += 1;\n\n const row = sheet.rows[i + rowoffset];\n\n if (row.type === 'group-header') {\n offset += 1;\n }\n\n if (row.type !== 'header' && row.type !== 'group-header') {\n for (let j = 0; j < templates.length; ++j) {\n // ignore non existing templates and boolean values (checkboxes)\n // some templates are functions, so we need the typeof template\n\n if (templates[j] === undefined || templates[j].template === undefined ||\n ((typeof templates[j].template === 'string') &&\n templates[j].template.includes('checkbox'))) {\n continue;\n }\n\n row.cells[j + offset].value = kendo.template(templates[j].template)(current);\n }\n }\n\n if (current.items != null) {\n for (let k = 0; k < current.items.length; ++k) {\n rec(current.items[k]);\n }\n }\n\n if (row.type === 'group-header') {\n offset -= 1;\n }\n };\n\n rec(tree);\n },\n cancel: function () {\n this.dataSource.cancelChanges();\n },\n change: function () {\n // // single selection between grid-detailgrid\n // if (previousGrid !== e.sender) {\n // if (previousGrid != null) {\n // previousGrid.clearSelection();\n // }\n // previousGrid = e.sender;\n // }\n //\n // if (this.options.editable !== 'popup') {\n //\n // // some times it changes to null before adding new\n // if (this.dataItem(this.select()) == null) {\n // // save changes if grid is in edit mode\n // if (this.element.find('.k-grid-edit-row').length) {\n // this.saveRow();\n // }\n // return;\n // }\n //\n // let row = this.tbody.find('.k-grid-edit-row:not(.k-state-selected)');\n //\n //\n // let isNew = false;\n // if (typeof this.dataItem(this.select()).isNew === 'function' &&\n // this.dataItem(this.select())\n // .isNew()) {\n // isNew = true;\n // }\n //\n // if ((row.length > 0) || (!isNew && this.dataSource.hasChanges())) {\n // this.saveRow();\n // }\n //\n // }\n },\n dataBinding: function (e, currentGrid) {\n const grid = currentGrid || this;\n\n // keep expanded open\n expanded = $.map(\n grid.tbody.children(':has(> .k-hierarchy-cell .k-i-collapse)'),\n function (row) {\n return grid.dataItem(row).id;\n // return $(row).data(\"uid\");\n },\n );\n\n // keep selected row\n const current = e.sender.current() || [];\n if (current[0]) {\n rowIndex = current.parent()\n .index();\n }\n },\n // handle edit on double click\n dataBound: function (e, currentGrid) {\n const grid = currentGrid || this;\n\n // collapse columns\n for (let i = 0; i < this.columns.length; i++) {\n if (this.columns[i].collapse === true) {\n this.autoFitColumn(i);\n }\n }\n\n // keep selected row\n if (grid.options && grid.options.selectable && !isNaN(rowIndex)) {\n grid.select(e.sender.tbody.children()\n .eq(rowIndex));\n }\n\n // keep expanded ope\n if (expanded.length > 0) {\n grid.expandRow(grid.tbody.children()\n .filter(function (_idx, row) {\n return $.inArray(grid.dataItem(row).id, expanded) >= 0;\n // return $.inArray($(row).data(\"uid\"), expanded) >= 0;\n }));\n }\n\n const data = grid.dataSource.data();\n\n $.each(data, function (i, row) {\n if (row.isNew != null && (typeof row.isNew === 'function') && row.isNew()) {\n $('tr[data-uid=\"' + row.uid + '\"] ')\n .find('.k-hierarchy-cell a')\n .remove();\n }\n });\n\n if (firstDataBound) {\n firstDataBound = false;\n\n if (options.readOnly !== true && options.edit !== false) {\n grid.element\n .off('dblclick', 'tbody tr[data-uid]')\n .on('dblclick', 'tbody tr[data-uid]', function (e) {\n // do not apply double click on editing lines\n if (!$(e.target)\n .closest('tr')\n .hasClass('k-grid-edit-row')) {\n if (options == null || options.readOnly !== true) {\n grid.editRow($(e.target)\n .closest('tr'));\n }\n }\n });\n }\n }\n },\n edit: function (e) {\n let row = this.tbody.find('tr[data-uid=\\'' + e.model.uid + '\\']');\n\n if (!Array.isArray(row)) {\n row = [row];\n }\n\n this.select(row[0]);\n\n if (this.options.editable === 'popup') {\n for (let i = 0; i < this.columns.length; ++i) {\n if (this.columns[i].editorHidden != null) {\n let hideEditor = false;\n\n if (typeof this.columns[i].editorHidden === 'function') {\n hideEditor = this.columns[i].editorHidden(e);\n } else if (typeof this.columns[i].editorHidden === 'boolean') {\n hideEditor = this.columns[i].editorHidden;\n }\n\n if (hideEditor) {\n e.container.find('label[for=' + this.columns[i].field + ']')\n .parent('div .k-edit-label')\n .hide();\n e.container.find('label[for=' + this.columns[i].field + ']')\n .parent()\n .next('div .k-edit-field')\n .hide();\n }\n }\n\n // translatable labels for popup editors\n if (this.columns[i].columns != null) {\n const cols = this.columns[i].columns;\n for (let j = 0; j < cols.length; ++j) {\n // if there is an index\n if (cols[j].field.indexOf('_') > 0) {\n // get the field name + _\n const label = cols[j].field.substr(0, cols[j].field.length - 5);\n\n e.container.find('label[for^=' + label + ']')\n .each((index, element) => {\n const language = $(element)\n .attr('for')\n .substr(-5)\n .replace('_', '-');\n element.innerText += ' (' + language + ')';\n });\n }\n }\n // break;\n }\n }\n }\n },\n editable: editable,\n };\n }\n\n function addChildButton(columns, title, action) {\n if (columns[columns.length - 1].command == null) {\n columns.push({ command: [] });\n }\n\n columns[columns.length - 1].command.push({\n name: title,\n click: action,\n });\n }\n\n function showError(text, title) {\n let dialog = $('#error_dialog');\n if (dialog.data('kendoDialog') != null) {\n dialog.data('kendoDialog')\n .destroy();\n }\n\n dialog = $('#error_dialog');\n\n if (dialog.length === 0) {\n $('
    ').appendTo('body');\n }\n\n $('#error_dialog')\n .kendoDialog({\n title: title || 'Error',\n closable: false,\n modal: true,\n // width: 500,\n content: '
    ' +\n text + '
    ',\n actions: [\n {\n text: 'Ok',\n primary: true,\n }],\n });\n }\n\n let counter = 0;\n\n function getLastDialog() {\n return '#dialogs_' + counter;\n }\n\n function closeLastDialog() {\n if (counter === 0) {\n return null;\n }\n\n const dialog = $(Helpers.getLastDialog());\n if (dialog.data('kendoDialog') != null) {\n dialog.data('kendoDialog')\n .close();\n }\n\n counter--;\n }\n\n function showPopUp2({\n title = '',\n content = 'No content...',\n actions = [\n {\n text: 'Ok',\n primary: true,\n }],\n initOpen,\n close,\n width,\n height,\n }) {\n const dialog = $('
    ')\n .appendTo('body');\n\n dialog.kendoDialog({\n title: title,\n closable: false,\n modal: true,\n content: content,\n actions: actions,\n width: width,\n height: height,\n initOpen: (e) => {\n if (initOpen != null) {\n initOpen(e);\n }\n },\n close: (e) => {\n if (close != null) {\n close(e);\n }\n\n --counter;\n e.sender.destroy();\n },\n });\n }\n\n function showPopUp(title, content, actions, initOpen, close) {\n if (title.actions != null) {\n showPopUp1(title);\n return;\n }\n if (actions == null) {\n actions = [\n {\n text: 'Ok',\n primary: true,\n }];\n }\n\n let dialog = $('#dialogs');\n if (dialog.data('kendoDialog') != null) {\n dialog.data('kendoDialog')\n .destroy();\n }\n\n dialog = $('#dialogs');\n\n if (dialog.length === 0) {\n const dialog = $('
    ')\n .appendTo('body');\n dialog.attr('id', 'dialogs');\n }\n\n $('#dialogs')\n .kendoDialog({\n title: title,\n closable: false,\n modal: true,\n initOpen: initOpen,\n content: content,\n actions: actions,\n close: close,\n });\n }\n\n function showPopUp1(data) {\n if (data.actions == null) {\n data.actions = [\n {\n text: 'Ok',\n primary: true,\n }];\n }\n\n let dialog = $('#dialogs');\n if (dialog.data('kendoDialog') != null) {\n dialog.data('kendoDialog').destroy();\n }\n\n dialog = $('#dialogs');\n\n if (dialog.length === 0) {\n const dialog = $('
    ')\n .appendTo('body');\n dialog.attr('id', 'dialogs');\n }\n\n $('#dialogs')\n .kendoDialog({\n title: data.title,\n closable: false,\n visible: false,\n modal: true,\n width: 800,\n height: 600,\n initOpen: data.initOpen,\n content: data.content,\n actions: data.actions,\n });\n\n $('#dialogs')\n .data('kendoDialog')\n .open();\n }\n\n function unflatTranslationObject(data, mp) {\n // survey without questions or question without options\n // if (data == null)\n // return;\n\n if (data.translations == null) {\n data.translations = {};\n }\n\n for (let i = 0; i < mp.languages.length; ++i) {\n const language = mp.languages[i].language;\n\n if (data.translations[language] == null) {\n data.translations[language] = {};\n }\n\n const fields = [];\n for (const key in data) {\n if (key.endsWith(language.replace('-', '_'))) {\n fields.push(key.substr(0, key.length - 6));\n }\n }\n\n if (fields.length === 0) {\n continue;\n }\n\n for (let j = 0; j < fields.length; ++j) {\n const fieldName = fields[j] + '_' + language.replace('-', '_');\n data.translations[language][fields[j]] = data[fieldName];\n delete data[fieldName];\n }\n }\n\n return data;\n }\n\n // eslint-disable-next-line no-unused-vars\n function flatTranslationObject(data, mp) {\n for (let i = 0; i < mp.languages.length; ++i) {\n const language = mp.languages[i].language;\n\n if (data.translations[language] == null) {\n data.translations[language] = {};\n }\n\n let field = '';\n for (const key in data) {\n if (key.endsWith(language.replace('-', '_'))) {\n field = key.substr(0, key.lastIndexOf('_', 5));\n }\n }\n if (field === '') {\n continue;\n }\n\n const fieldName = field + '_' + language.replace('-', '_');\n\n data.translations[language][field] = data[fieldName];\n delete data[fieldName];\n }\n\n return data;\n }\n\n function resolve(path, obj = self, separator = '.') {\n const properties = Array.isArray(path) ? path : path.split(separator);\n return properties.reduce((prev, curr) => prev && prev[curr], obj);\n }\n\n function normalize(str) {\n if (str == null) {\n return str;\n }\n\n if (typeof str !== 'string') {\n return '' + str;\n }\n\n return str\n .replace(/Α|Ά|ά/g, 'α')\n .replace(/Ε|Έ|έ/g, 'ε')\n .replace(/Η|Ή|ή/g, 'η')\n .replace(/Ι|Ί|Ϊ|ί|ϊ|ΐ/g, 'ι')\n .replace(/Ο|Ό|ό/g, 'ο')\n .replace(/Υ|Ύ|Ϋ|ύ|ϋ|ΰ/g, 'υ')\n .replace(/Ω|Ώ|ώ/g, 'ω')\n .replace(/Σ|ς/g, 'σ');\n }\n\n return {\n sanitizeHTML: sanitizeHTML,\n createDataSource: createDataSource,\n createColumns: createColumns,\n getDefaultGrid: getDefaultGrid,\n showError: showError,\n showPopUp: showPopUp,\n showPopUp2: showPopUp2,\n createModel: createModel,\n addChildButton: addChildButton,\n getLastDialog: getLastDialog,\n closeLastDialog: closeLastDialog,\n };\n})();\n\nexport { Helpers };\n","import FormBase from './FormBase.js';\nimport { selectedLanguage, toggleAppear } from '../main.js';\nimport { Helpers } from '../Core/Helpers.js';\nimport Constants from '../Core/constants.js';\n\nexport default class DeploymentQuestionnaireFormBase extends FormBase {\n constructor(deployment, approveRejectApi, divName = 'general', title) {\n super(Helpers.sanitizeHTML(deployment.translations[selectedLanguage].name), divName);\n\n if (deployment == null) {\n throw new Error('DeploymentFormBase - Deployment is null');\n }\n\n if (approveRejectApi == null) {\n throw new Error('DeploymentFormBase - approve-reject api is null');\n }\n\n if (title != null) {\n this.title = title.replace(\n '{0}',\n Helpers.sanitizeHTML(deployment.translations[selectedLanguage].name),\n );\n }\n\n this.deployment = deployment;\n this.approveRejectApi = approveRejectApi; // 'isra/ClassificationDeployments/' + deployment.id + '/questions';\n\n this.readonly = !(deployment.userAction === Constants.DeploymentUserActionType.Actions || deployment.userAction === Constants.DeploymentUserActionType.Approval);\n\n this.subTitleButtons = [];\n\n if (!this.readonly && deployment.allowApprove) {\n this.subTitleButtons = [\n {\n name: 'deploymentApprove',\n icon: 'submit.png',\n text: 'Approve',\n actions: () => this.approveDeployment(),\n }];\n\n if (deployment.status !== Constants.DeploymentStatus.DataEntry) {\n this.subTitleButtons.push({\n name: 'deploymentReject',\n icon: 'reject.png',\n text: 'Reject',\n actions: () => this.rejectDeployment(),\n });\n }\n ;\n }\n\n this.subTitleButtons.push({\n name: 'deploymentClose',\n icon: 'abort.png',\n text: 'Return',\n actions: () => this.closeDeployment(),\n });\n }\n\n setCustomMenuItems(menu) {\n delete menu.delete;\n\n if (this.readonly) {\n delete menu.edit;\n } else {\n super.setCustomMenuItems(menu);\n }\n }\n\n init() {\n if (this.deployment.message != null && this.deployment.message !== '') {\n Helpers.showPopUp2({\n title: 'Message',\n content: Helpers.sanitizeHTML(this.deployment.message)\n .replace(/\\n/g, '
    '),\n });\n }\n\n super.init();\n }\n\n closeDeployment() {\n $('.dropdown-content')\n .hide();\n toggleAppear('allDeployments');\n }\n\n async customApproveCheck() {\n return true;\n }\n\n async approveDeployment() {\n $('.dropdown-content')\n .hide();\n const grid = $(this.div);\n kendo.ui.progress(grid, true);\n\n const result = await this.customApproveCheck();\n if (result === false) {\n kendo.ui.progress(grid, false);\n return;\n }\n\n Helpers.showPopUp2({\n title: 'Approve \"' +\n Helpers.sanitizeHTML(this.deployment.translations[selectedLanguage].name) + '\"',\n content: 'Message:
    ',\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const text = $('#message')\n .val();\n\n $.ajax({\n type: 'POST',\n url: this.approveRejectApi + '/approve?message=' + encodeURIComponent(text),\n })\n .done(() => {\n Helpers.showPopUp('Approved', 'Deployment Approved!', [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n this.closeDeployment();\n return true;\n },\n }]);\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress(grid, false);\n });\n },\n },\n {\n text: 'Cancel',\n action: () => {\n kendo.ui.progress(grid, false);\n },\n },\n ],\n });\n }\n\n rejectDeployment() {\n $('.dropdown-content')\n .hide();\n const grid = $(this.div);\n kendo.ui.progress(grid, true);\n\n Helpers.showPopUp2({\n title: 'Reject \"' +\n Helpers.sanitizeHTML(this.deployment.translations[selectedLanguage].name) + '\"',\n content: 'Reason:
    ',\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const text = $('#rejectReason')\n .val();\n\n $.ajax({\n type: 'POST',\n url: this.approveRejectApi + '/reject?message=' + encodeURIComponent(text),\n })\n .done(() => {\n Helpers.showPopUp('Rejected', 'Deployment Rejected!', [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n this.closeDeployment();\n return true;\n },\n }]);\n })\n .fail((e) => {\n Helpers.showError(e.responseText);\n })\n .always(() => {\n kendo.ui.progress(grid, false);\n });\n },\n },\n {\n text: 'Cancel',\n action: () => {\n kendo.ui.progress(grid, false);\n },\n },\n ],\n });\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.layout,{tag:\"component\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('pd-message'),_c('v-overlay',{attrs:{\"value\":true,\"z-index\":\"10\",\"opacity\":\"0.8\"}},[_c('v-row',{staticClass:\"red--text\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"text-center\"},[_c('v-progress-circular',{attrs:{\"color\":\"white\",\"indeterminate\":\"\",\"size\":\"60\",\"width\":\"8\"}})],1)],1),_c('v-fade-transition',[_c('div',{staticClass:\"mt-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('loadingProgram'))+\" \")])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',_vm._l((_vm.messages),function(message){return _c('pd-popup',{key:message.id,attrs:{\"visible\":true,\"index\":message.index}},[_c('v-card',{attrs:{\"light\":\"\",\"min-width\":\"300px\",\"max-width\":\"900px\",\"max-height\":\"800px\"}},[_c('v-card-title',{staticClass:\"py-3\"},[_vm._v(\" \"+_vm._s(message.title)+\" \")]),_c('v-divider',{staticClass:\"ma-0\"}),_c('v-card-text',{staticClass:\"text-left text-none\"},[(message.text && message.text.split)?[_vm._l((message.text.split('\\n')),function(text,index){return [(text)?_c('div',{key:index},[_vm._v(\" \"+_vm._s(text)+\" \")]):_c('br',{key:index})]})]:[_c('div',[_vm._v(\" \"+_vm._s(message)+\" \")])]],2),_c('v-divider',{staticClass:\"ma-0\"}),_c('v-card-actions',{staticClass:\"justify-center\"},[(message.buttons && message.buttons.length > 0)?_vm._l((message.buttons),function(b){return _c('v-btn',{key:b.id,staticClass:\"text-none\",attrs:{\"min-width\":\"100px\",\"color\":b.color},on:{\"click\":function($event){return _vm.buttonClick(message, b)}}},[_vm._v(\" \"+_vm._s(b.text)+\" \")])}):[_c('v-btn',{staticClass:\"text-none\",attrs:{\"min-width\":\"100px\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.close(message)}}},[_vm._v(\" \"+_vm._s(_vm.$t('ok'))+\" \")])]],2)],1)],1)}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"value\":_vm.visible,\"z-index\":_vm.index,\"opacity\":\"0.2\",\"width\":_vm.width}},[_c('v-row',{staticClass:\"red--text\",style:({width: _vm.width}),attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"text-center\"},[_vm._t(\"default\")],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'PdPopup',\n\n props: {\n visible: {\n type: Boolean,\n required: true,\n },\n\n index: {\n type: Number,\n default: 11,\n },\n\n width: {\n type: [Number, String],\n },\n },\n\n setup() {\n return {};\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdPopup.vue?vue&type=template&id=517ede28&scoped=true&\"\nimport script from \"./PdPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdPopup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"517ede28\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VOverlay,VRow})\n","import i18n from '@/i18n';\nimport { ApplicationModule } from '@/store';\nimport { TranslateResult } from 'vue-i18n';\n\nexport interface PopupMessageButton {\n id: string\n text: string | TranslateResult,\n color?: string,\n callback?: () => void\n close?: () => boolean\n}\n\nexport function PopupMessageButtonYes(callback?: (() => void)) : PopupMessageButton {\n const call = callback || (() => { /**/ });\n return {\n id: 'yes',\n text: i18n.t('yes'),\n callback: call,\n color: 'success',\n close: () => true,\n };\n}\n\nexport function PopupMessageButtonNo(callback?: (() => void)) : PopupMessageButton {\n const call = callback || (() => { /**/ });\n return {\n id: 'no',\n text: i18n.t('no'),\n callback: call,\n color: 'error',\n close: () => true,\n };\n}\n\nexport interface PopupMessage{\n id: number\n title: string | TranslateResult\n text: string | TranslateResult\n index?: number\n callback?: () => void\n buttons?: Array\n}\n\nexport default class PopupMessageService {\n private static counter = 1;\n\n static SetMessage(message: Pick>) : void {\n ApplicationModule.SetPopupMessage({\n id: PopupMessageService.counter++,\n text: message.text,\n title: message.title,\n index: message.index,\n callback: message.callback,\n buttons: message.buttons,\n });\n }\n\n static RemoveMessage(message: PopupMessage): void {\n ApplicationModule.RemovePopupMessage(message.id);\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { ApplicationModule } from '@/store';\nimport PdPopup from './PdPopup.vue';\nimport PopupMessageService, { PopupMessage, PopupMessageButton } from '@/services/PopupMessageService';\n\nexport default defineComponent({\n name: 'PdMessage',\n\n components: {\n PdPopup,\n },\n\n setup() {\n const messages = ref(ApplicationModule.PopupMessages);\n\n function close(message: PopupMessage) {\n if (message.callback != null) {\n message.callback();\n }\n\n PopupMessageService.RemoveMessage(message);\n }\n\n function buttonClick(message: PopupMessage, button: PopupMessageButton) {\n if (button.callback != null) {\n button.callback();\n }\n\n if (button.close != null) {\n const closeDialog = button.close();\n if (closeDialog) {\n close(message);\n }\n }\n }\n\n return {\n messages,\n close,\n buttonClick,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdMessage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdMessage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdMessage.vue?vue&type=template&id=095f070a&scoped=true&\"\nimport script from \"./PdMessage.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdMessage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PdMessage.vue?vue&type=style&index=0&id=095f070a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"095f070a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VDivider})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport PdMessage from '@/components/core/PdMessage.vue';\n\nexport default defineComponent({\n name: 'LoadingLayout',\n\n components: {\n PdMessage,\n },\n\n setup() {\n return {};\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loading-layout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loading-layout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./loading-layout.vue?vue&type=template&id=1f338b7c&scoped=true&\"\nimport script from \"./loading-layout.vue?vue&type=script&lang=ts&\"\nexport * from \"./loading-layout.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f338b7c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VApp,VCol,VFadeTransition,VOverlay,VProgressCircular,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',{staticClass:\"login-background\"},[_c('pd-timeout'),_c('pd-busy'),_c('pd-message'),_vm._t(\"app\"),_c('pd-header'),_c('v-main',[_c('router-view')],1),_c('pd-footer')],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-footer',{staticClass:\"py-1 text-caption\",attrs:{\"app\":\"\"}},[_c('v-spacer'),_vm._v(\" \"+_vm._s(_vm.companyName)+\" \"),_c('v-spacer')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { ApplicationModule } from '@/store';\n\nexport default defineComponent({\n name: 'PdFooter',\n props: {},\n setup() {\n const companyName = ref(ApplicationModule.CompanyName);\n return { companyName };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdFooter.vue?vue&type=template&id=0bcdcbd1&scoped=true&\"\nimport script from \"./PdFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdFooter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0bcdcbd1\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VFooter,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app-bar',{attrs:{\"app\":\"\",\"clipped-left\":\"\",\"dark\":\"\",\"height\":\"60px\",\"color\":\"app-bar-background\"}},[_c('v-row',{staticClass:\"align-center\"},[_c('v-col',[_c('v-row',{staticClass:\"align-center\",attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('v-toolbar-title',[_c('span',{staticClass:\"d-inline-block\"},[_c('router-link',{attrs:{\"to\":{name: 'home'}}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":\"/img/logo_horizontally_white_continuity.png\",\"alt\":\"Continuity Guardian\",\"title\":\"Continuity Guardian\",\"height\":\"40px\"}})])],1)])],1)],1)],1),(_vm.entity)?_c('v-col',{staticStyle:{\"text-align\":\"center\"}},[_c('a',{staticClass:\"white--text d-block text-uppercase\",attrs:{\"text\":\"\",\"block\":\"\"},on:{\"click\":_vm.changeEntity}},[_vm._v(\" \"+_vm._s(_vm.$t('entity'))+\": \"+_vm._s(_vm.entity.name)+\" \"),_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.icons.mdiChevronDownCircle))])],1),(_vm.isTra)?_c('a',{staticClass:\"pt-1 white--text d-block body-2\",attrs:{\"small\":\"\",\"text\":\"\",\"block\":\"\"},on:{\"click\":_vm.changeTraCategory}},[_vm._v(\" \"+_vm._s(_vm.$t('traCategory'))+\": \"+_vm._s(_vm.categoryName)+\" \"),_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(_vm._s(_vm.icons.mdiChevronDownCircle))])],1):_vm._e()]):_vm._e(),_c('v-col',[_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"center\",\"justify\":\"end\"}},[(_vm.loggedIn)?_c('v-col',{staticClass:\"shrink\"},[_c('span',{staticClass:\"d-inline-block\"},[_c('v-menu',{attrs:{\"open-on-hover\":\"\",\"bottom\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"large\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(_vm._s(_vm.icons.mdiAccount))])],1)]}}],null,false,3167701465)},[_c('v-list',[_c('v-list-item',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.userInfo)+\" \")])],1),(!_vm.sso)?_c('v-list-item',{attrs:{\"to\":{name: 'changePassword'}}},[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('users.changePasswordButton'))+\" \")]),_c('v-list-item-icon',[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.mdiFormTextboxPassword)+\" \")])],1)],1):_vm._e(),_c('v-list-item',{on:{\"click\":_vm.logout}},[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('logout'))+\" \")]),_c('v-list-item-icon',[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.mdiLogout)+\" \")])],1)],1)],1)],1)],1)]):_vm._e(),_c('v-col',{staticClass:\"shrink\"},[_c('span',{staticClass:\"d-inline-block\"},[_c('a',{attrs:{\"href\":_vm.companyLink,\"target\":\"_blank\"}},[_c('img',{staticStyle:{\"vertical-align\":\"middle\"},attrs:{\"src\":_vm.companyLogo,\"alt\":_vm.companyName,\"title\":_vm.companyName,\"height\":\"40px\"}})])])])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export enum UserRole {\n GeneralAdministrator = 'General.Administrator',\n GeneralUser = 'General.User',\n GeneralUserManager = 'General.UserManager',\n\n BcmAdministrator = 'BCM.Administrator',\n BcmCoordinator = 'BCM.Coordinator',\n\n IsraAdministrator = 'ISRA.Administrator',\n IsraAssessor = 'ISRA.Assessor',\n\n TraAdministrator = 'TRA.Administrator',\n TraAssessor = 'TRA.Assessor',\n}\n\nexport interface User {\n userKey: string\n token: string\n tokenExpiration: Date\n username: string\n displayName: string\n language: string\n email: string\n roles: UserRole[]\n}\n","import { LoginDto } from '@/dtos/LoginDto';\nimport { ApplicationModule } from '@/store';\nimport axios from './axios';\n\nexport interface LoginResponse {\n token: string\n username: string\n userInfo: string\n role: string\n expires: string\n language: string\n userKey: string\n}\n\nexport default class AuthenticationApi {\n static async Login(info: LoginDto) : Promise {\n let login = 'auth/login';\n if (ApplicationModule.Settings.sso) {\n login += '/sso';\n }\n const response = await axios.post(login, info);\n\n return response.data;\n }\n\n static async LoginOAuth(parameters: { state: string, code: string }) : Promise {\n const response = await axios.get('/auth/oauth', { params: parameters });\n\n return response.data;\n }\n\n static async Logout() : Promise {\n return await axios.get('/auth/logout');\n }\n}\n","import { EntityDto, SimpleSettingsDto } from '@/dtos';\nimport { User, UserRole } from '@/dtos/UserDto';\nimport { changeMasterPlan, setJwt, setRoles, setSettings } from '@/legacy/js/main';\nimport { AuthenticationModule } from '@/store';\n\nexport default class LegacyService {\n public static SetSettings(settings: SimpleSettingsDto): void {\n setSettings(settings);\n }\n\n public static Init(): void {\n //\n }\n\n public static ChangeMasterPlan(masterplan: EntityDto | null): void {\n if (!AuthenticationModule.Roles.some(i => i === UserRole.GeneralAdministrator)) {\n changeMasterPlan(masterplan);\n }\n }\n\n public static SetUserVariables(user: User): void {\n setRoles(user.roles);\n\n setJwt(`Bearer ${user.token}`);\n }\n\n public static ClearUserVariables(): void {\n setRoles([]);\n setJwt('');\n }\n}\n","import AuthenticationApi from '@/api/AuthenticationApi';\nimport { Api } from '@/api/axios';\nimport { PersistentStorage } from '@/core/storage';\nimport { LoginDto } from '@/dtos/LoginDto';\nimport { User, UserRole } from '@/dtos/UserDto';\nimport { SupportedLanguage } from '@/i18n';\nimport router from '@/router';\nimport store, { ApplicationModule, AuthenticationModule, NavigationModule, TraModule } from '@/store';\nimport LegacyService from './LegacyService';\n\nexport default class AuthenticationService {\n static async Init(): Promise {\n store.watch(\n () => AuthenticationModule.User,\n (user) => {\n if (user == null) {\n LegacyService.ClearUserVariables();\n } else {\n LegacyService.SetUserVariables(user);\n }\n },\n );\n\n const user = PersistentStorage.GetValue('cg');\n if (user != null) {\n const u : User = JSON.parse(user);\n await AuthenticationModule.SetUser(u);\n Api.SetAuthenticationHeader(u.token);\n\n if (u.language === 'en-US') {\n ApplicationModule.SetLanguage(SupportedLanguage.English);\n } else if (u.language === 'el-GR') {\n ApplicationModule.SetLanguage(SupportedLanguage.Greek);\n } else {\n ApplicationModule.SetLanguage(SupportedLanguage.English);\n console.log('Unsupported language');\n }\n\n return u;\n }\n\n return null;\n }\n\n static async Login(info: LoginDto) : Promise {\n const response = await AuthenticationApi.Login(info);\n\n const user: User = {\n userKey: response.userKey,\n username: response.username,\n token: response.token,\n tokenExpiration: new Date(response.expires),\n roles: AuthenticationService.parseRoles(response.role),\n displayName: response.userInfo,\n language: response.language,\n email: '',\n };\n\n AuthenticationModule.SetUser(user);\n Api.SetAuthenticationHeader(user.token);\n\n ApplicationModule.SetLanguage(response.language as SupportedLanguage);\n\n PersistentStorage.SetValue('cg', JSON.stringify(user));\n\n PersistentStorage.SetValue('cg_hotp', JSON.stringify({ userKey: user.userKey, counter: 1 }));\n\n return user;\n }\n\n static async Logout(): Promise {\n NavigationModule.ClearNavigationHistory();\n ApplicationModule.ClearEntity();\n\n AuthenticationApi.Logout();\n\n TraModule.SetTraCategory(null);\n\n PersistentStorage.RemoveKey('cg');\n PersistentStorage.RemoveKey('cg_hotp');\n PersistentStorage.RemoveKey('entity');\n PersistentStorage.RemoveKey('tra');\n\n AuthenticationModule.SetUser(null);\n Api.SetAuthenticationHeader();\n\n router.push({ name: 'login' });\n }\n\n private static parseRoles(roles: string): UserRole[] {\n const ret: UserRole[] = [];\n\n const r = roles.split(',');\n for (let i = 0; i < r.length - 1; ++i) { // ends with ','\n if (r[i] === 'General.Administrator') {\n ret.push(UserRole.GeneralAdministrator);\n } else if (r[i] === 'General.User') {\n ret.push(UserRole.GeneralUser);\n } else if (r[i] === 'General.UserManager') {\n ret.push(UserRole.GeneralUserManager);\n } else if (r[i] === 'BCM.Administrator') {\n ret.push(UserRole.BcmAdministrator);\n } else if (r[i] === 'BCM.Coordinator') {\n ret.push(UserRole.BcmCoordinator);\n } else if (r[i] === 'ISRA.Administrator') {\n ret.push(UserRole.IsraAdministrator);\n } else if (r[i] === 'ISRA.Assessor') {\n ret.push(UserRole.IsraAssessor);\n } else if (r[i] === 'TRA.Administrator') {\n ret.push(UserRole.TraAdministrator);\n } else if (r[i] === 'TRA.Assessor') {\n ret.push(UserRole.TraAssessor);\n }\n }\n\n return ret;\n }\n\n public static async LoginOAuth(parameters: {state: string, code: string}) : Promise {\n const response = await AuthenticationApi.LoginOAuth(parameters);\n\n const user: User = {\n userKey: response.userKey,\n username: response.username,\n token: response.token,\n tokenExpiration: new Date(response.expires),\n roles: AuthenticationService.parseRoles(response.role),\n displayName: response.userInfo,\n language: response.language,\n email: '',\n };\n\n AuthenticationModule.SetUser(user);\n Api.SetAuthenticationHeader(user.token);\n\n ApplicationModule.SetLanguage(response.language as SupportedLanguage);\n\n PersistentStorage.SetValue('cg', JSON.stringify(user));\n\n PersistentStorage.SetValue('cg_hotp', JSON.stringify({ userKey: user.userKey, counter: 1 }));\n\n return user;\n }\n}\n","import { ITranslatableDto } from '@/dtos/IDto';\nimport { TemplateReturnType } from '@/components/core/PdDataTable';\nimport { ApplicationModule } from '@/store';\n\nexport function LanguageTemplate(item: ITranslatableDto, property: string): TemplateReturnType {\n const ret: TemplateReturnType = {\n text: '',\n };\n let depth = 0;\n\n let translation = item.translations[ApplicationModule.Language];\n\n if (translation == null) {\n depth = 1;\n ret.tooltip = 'Translation for \"en-US\"';\n translation = item.translations['en-US'];\n\n if (translation == null) {\n for (const t in item.translations) {\n translation = item.translations[t];\n depth = 2;\n ret.tooltip = `Translation for \"${t}\"`;\n break;\n }\n }\n }\n\n const padding = '*'.repeat(depth);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ret.text = padding + (translation as any)[property] + padding;\n\n return ret;\n}\n","import { TemplateReturnType } from '@/components/core/PdDataTable';\nimport { LocationDto } from '@/dtos/bcm';\nimport { ApplicationModule } from '@/store';\n\nexport function LocationTemplate(item: LocationDto): TemplateReturnType {\n const ret: TemplateReturnType = {\n text: '',\n };\n let depth = 0;\n\n let translation = item.translations[ApplicationModule.Language];\n\n if (translation == null) {\n depth = 1;\n ret.tooltip = 'Translation for \"en-US\"';\n translation = item.translations['en-US'];\n\n if (translation == null) {\n for (const t in item.translations) {\n translation = item.translations[t];\n depth = 2;\n ret.tooltip = `Translation for \"${t}\"`;\n break;\n }\n }\n }\n\n const padding = '*'.repeat(depth);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n ret.text = `${padding}${translation.address} ${translation.city} ${translation.zipCode} (${translation.country})${padding}`;\n\n return ret;\n}\n","import { TemplateReturnType } from '@/components/core/PdDataTable';\nimport i18n from '@/i18n';\n\nexport function BooleanTemplate(item: boolean): Promise {\n return Promise.resolve({\n text: item ? i18n.t('true').toString() : i18n.t('false').toString(),\n });\n}\n","import { TemplateReturnType } from '@/components/core/PdDataTable';\nimport { DateTime } from 'luxon';\n\nexport enum DateFormat {\n Iso = 'iso',\n Local = 'local'\n}\n\nexport function DateTemplate(date: string, format = DateFormat.Iso): TemplateReturnType {\n const dt = DateTime.fromISO(date);\n\n let value = '';\n if (format === DateFormat.Iso) {\n value = dt.toISODate();\n } else {\n value = dt.toFormat('dd/LL/yyyy');\n }\n return {\n text: value,\n };\n}\n\nexport function DateTimeTemplate(date: string): TemplateReturnType {\n const dt = DateTime.fromISO(date);\n\n const value = dt.toFormat('yyyy-MM-dd HH:mm');\n\n return {\n text: value,\n };\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, ref } from '@vue/composition-api';\nimport { ApplicationModule, AuthenticationModule, TraModule } from '@/store';\nimport { mdiFormTextboxPassword, mdiAccount, mdiLogout, mdiChevronDownCircle } from '@mdi/js';\nimport AuthenticationService from '@/services/AuthenticationService';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport router from '@/router';\n\nexport default defineComponent({\n name: 'PdHeader',\n setup(_, { root }) {\n const loggedIn = ref(AuthenticationModule.LoggedIn);\n const userInfo = ref(AuthenticationModule.UserInfo);\n const companyLogo = ref(ApplicationModule.CompanyLogo);\n const companyName = ref(ApplicationModule.CompanyName);\n const companyLink = ref(ApplicationModule.CompanyLink);\n const entity = ref(ApplicationModule.Entity);\n const sso = ApplicationModule.Settings.sso;\n\n function logout() {\n AuthenticationService.Logout();\n }\n\n function changeEntity() {\n root.$router.push({ name: 'entities' });\n }\n\n const isTra = computed(() => {\n return TraModule.CurrentCategory != null;\n });\n\n const categoryName = computed(() => {\n const category = TraModule.CurrentCategory;\n if (category != null) {\n return LanguageTemplate(category, 'name').text;\n }\n return '';\n });\n\n function changeTraCategory() {\n router.push({ name: 'tra.categories' });\n }\n\n return {\n loggedIn,\n userInfo,\n companyLogo,\n companyName,\n companyLink,\n entity,\n changeEntity,\n sso,\n\n isTra,\n changeTraCategory,\n categoryName,\n\n logout,\n icons: {\n mdiFormTextboxPassword,\n mdiAccount,\n mdiLogout,\n mdiChevronDownCircle,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pd-header.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pd-header.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./pd-header.vue?vue&type=template&id=111176ff&scoped=true&\"\nimport script from \"./pd-header.vue?vue&type=script&lang=ts&\"\nexport * from \"./pd-header.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"111176ff\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VAppBar,VBtn,VCol,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu,VRow,VToolbarTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"value\":_vm.visible,\"z-index\":\"90\",\"opacity\":\"0.8\"}},[_c('v-row',{staticClass:\"red--text\",attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"text-center\"},[_c('v-progress-circular',{attrs:{\"color\":\"white\",\"indeterminate\":\"\",\"size\":\"60\",\"width\":\"8\"}})],1)],1),_c('v-fade-transition',{attrs:{\"group\":\"\"}},_vm._l((_vm.messages),function(i){return _c('div',{key:i.id,staticClass:\"mt-1\"},[_vm._v(\" \"+_vm._s(i.text)+\" \")])}),0)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, computed, ref } from '@vue/composition-api';\nimport { ApplicationModule } from '../../store';\nimport { BusyMessage } from '../../services/BusyIndicatorService';\n\nexport default defineComponent({\n name: 'PdBusy',\n setup() {\n const messages = ref(ApplicationModule.BusyMessages);\n\n const visible = computed(() => messages.value.length > 0);\n\n return { messages, visible };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdBusy.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdBusy.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdBusy.vue?vue&type=template&id=2ca755b7&scoped=true&\"\nimport script from \"./PdBusy.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdBusy.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2ca755b7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VFadeTransition,VOverlay,VProgressCircular,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup',{attrs:{\"visible\":_vm.visible}},[_c('v-card',{staticClass:\"pa-4\",attrs:{\"light\":\"\"}},[_c('span',{staticClass:\"mb-2\"},[_vm._v(\" You will get disconnected in \"+_vm._s(_vm.count)+\" seconds due to inactivity. \")]),_c('v-progress-linear',{attrs:{\"value\":_vm.percent,\"striped\":\"\",\"stream\":\"\",\"height\":\"20px\"}}),_c('v-btn',{staticClass:\"mt-4 text-none\",attrs:{\"small\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.continueSession($event)}}},[_vm._v(\" Continue Session \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport AuthenticationService from '@/services/AuthenticationService';\nimport { AuthenticationModule } from '@/store';\nimport { defineComponent, onBeforeUnmount, ref, watch } from '@vue/composition-api';\nimport PdPopup from './PdPopup.vue';\n\nexport default defineComponent({\n name: 'PdTimeout',\n\n components: {\n PdPopup,\n },\n\n setup() {\n // timeout 10 minutes\n const timeoutTimer = 10 * 60 * 1000;\n // warning in 9 minutes\n const warningTimer = 9 * 60 * 1000;\n\n let interval = 0;\n let timeout = 0;\n\n const visible = ref(false);\n const count = ref(0);\n const percent = ref(0);\n\n let startDate: Date | null = null;\n\n watch(\n () => AuthenticationModule.LoggedIn,\n (loggedIn) => {\n if (loggedIn) {\n window.removeEventListener('click', startTimeoutTimer);\n window.addEventListener('click', startTimeoutTimer);\n startTimeoutTimer();\n } else {\n window.removeEventListener('click', startTimeoutTimer);\n }\n },\n {\n immediate: true,\n },\n );\n\n function startTimeoutTimer() {\n if (!AuthenticationModule.LoggedIn) {\n window.removeEventListener('click', startTimeoutTimer);\n return;\n }\n\n startDate = new Date();\n\n if (timeout) {\n window.clearTimeout(timeout);\n }\n\n if (interval) {\n window.clearInterval(interval);\n }\n\n timeout = window.setTimeout(startNotificationTimer, warningTimer);\n }\n\n function startNotificationTimer() {\n // check if timeout time has passed (browser throttling timers)\n if (startDate != null && ((new Date()).getTime() - startDate.getTime()) > timeoutTimer) {\n AuthenticationService.Logout();\n return;\n }\n\n visible.value = true;\n\n // clear window timeout (only click on button)\n window.removeEventListener('click', startTimeoutTimer);\n\n interval = window.setInterval(function () {\n if (!AuthenticationModule.LoggedIn) {\n visible.value = false;\n window.clearInterval(interval);\n }\n\n if (startDate == null) {\n window.clearInterval(interval);\n AuthenticationService.Logout();\n return;\n }\n\n const ellapsed = (new Date()).getTime() - startDate.getTime();\n\n if (ellapsed > timeoutTimer) {\n window.clearInterval(interval);\n AuthenticationService.Logout();\n return;\n }\n\n const countdown = ((timeoutTimer - ellapsed) / 1000) + 1;\n\n count.value = Math.round(countdown);\n percent.value = (countdown / 60) * 100;\n }, 100);\n }\n\n function continueSession() {\n visible.value = false;\n window.removeEventListener('click', startTimeoutTimer);\n window.clearTimeout(timeout);\n window.clearInterval(interval);\n\n window.addEventListener('click', startTimeoutTimer);\n startTimeoutTimer();\n }\n\n onBeforeUnmount(() => {\n clearTimeout(timeout);\n clearInterval(interval);\n window.removeEventListener('click', startTimeoutTimer);\n });\n\n return {\n visible,\n count,\n percent,\n continueSession,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTimeout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTimeout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdTimeout.vue?vue&type=template&id=1a28f698&scoped=true&\"\nimport script from \"./PdTimeout.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdTimeout.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a28f698\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\ninstallComponents(component, {VBtn,VCard,VProgressLinear})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport PdFooter from '@/components/core/PdFooter.vue';\nimport PdHeader from '@/components/core/pd-header.vue';\nimport PdBusy from '@/components/core/PdBusy.vue';\nimport PdTimeout from '@/components/core/PdTimeout.vue';\nimport PdMessage from '@/components/core/PdMessage.vue';\n\nexport default defineComponent({\n name: 'EmptyLayout',\n\n components: {\n PdFooter,\n PdHeader,\n PdBusy,\n PdTimeout,\n PdMessage,\n },\n\n setup() {\n return {};\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./empty-layout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./empty-layout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./empty-layout.vue?vue&type=template&id=47b928c7&scoped=true&\"\nimport script from \"./empty-layout.vue?vue&type=script&lang=ts&\"\nexport * from \"./empty-layout.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./empty-layout.vue?vue&type=style&index=0&id=47b928c7&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"47b928c7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('pd-timeout'),_c('pd-snackbar'),_c('pd-busy'),_c('pd-message'),_vm._t(\"app\"),_c('pd-header'),_c('pd-navigation'),_c('v-main',[_c('router-view')],1),_c('pd-footer')],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-navigation-drawer',{staticClass:\"no-print\",class:{'hide-scroll': _vm.state},attrs:{\"disable-resize-watcher\":\"\",\"mini-variant\":_vm.state,\"expand-on-hover\":\"\",\"app\":\"\",\"permanent\":\"\",\"clipped\":\"\",\"dense\":\"\",\"width\":\"300px\"},on:{\"update:miniVariant\":function($event){_vm.state=$event},\"update:mini-variant\":function($event){_vm.state=$event}}},[_c('navigation-menu')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return ((_vm.item.items == null || _vm.item.items.length === 0))?_c('v-list-item',{attrs:{\"to\":{name: _vm.to},\"exact\":\"\"}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-badge',{attrs:{\"value\":_vm.counter,\"content\":_vm.counter,\"color\":\"#008cd2ee\",\"offset-x\":\"12\",\"offset-y\":\"10\"}},[_c('v-icon',{attrs:{\"color\":\"#cb111a\"}},[_vm._v(\" \"+_vm._s(_vm.item.icon)+\" \")])],1)],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.item.text)+\" \")])],1):_c('v-list-group',{attrs:{\"sub-group\":_vm.sub},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [(!_vm.sub)?_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"color\":\"#cb111a\"}},[_vm._v(\" \"+_vm._s(_vm.item.icon)+\" \")])],1):_vm._e(),_c('v-list-item-title',[_vm._v(_vm._s(_vm.item.text))])]},proxy:true}]),model:{value:(_vm.current),callback:function ($$v) {_vm.current=$$v},expression:\"current\"}},_vm._l((_vm.item.items),function(m,i){return _c('pd-menu-entry',{key:i,attrs:{\"item\":m,\"sub\":\"\"},on:{\"navigation\":_vm.navigationOpen}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { MenuEntry } from '@/core/navigation/interfaces';\nimport { computed, defineComponent, ref, watch, PropType } from '@vue/composition-api';\nimport { EntityModule, NavigationModule } from '@/store';\n\nexport default defineComponent({\n name: 'PdMenuEntry',\n props: {\n item: {\n required: true,\n type: Object as PropType,\n },\n sub: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, { root, emit }) {\n const current = ref(false);\n\n const to = computed(() => {\n if (props.item.name != null) {\n return props.item.name;\n } else if (props.item.to != null) {\n return props.item.to;\n }\n });\n\n const counter = computed(() => {\n if (props.item.counter) {\n return EntityModule.Tasks[props.item.counter];\n }\n return 0;\n });\n\n watch(\n () => NavigationModule.NavigationDrawerState,\n (drawer) => {\n if (NavigationModule.KeepNavigationOpen) {\n if (drawer === false) {\n current.value = false;\n } else {\n if (props.item.to != null && props.item.to === root.$route.name) {\n current.value = true;\n emit('navigation');\n }\n }\n } else {\n current.value = false;\n }\n },\n );\n\n function navigationOpen() {\n current.value = true;\n }\n\n return {\n to,\n counter,\n navigationOpen,\n current,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdMenuEntry.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdMenuEntry.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdMenuEntry.vue?vue&type=template&id=b605a1fc&scoped=true&\"\nimport script from \"./PdMenuEntry.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdMenuEntry.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b605a1fc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListGroup } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBadge,VIcon,VListGroup,VListItem,VListItemIcon,VListItemTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list',{attrs:{\"nav\":\"\",\"dense\":\"\"}},[_vm._l((_vm.menu),function(m,i){return [(m.divider)?_c('v-divider',{key:i.toString()+_vm.menu.counter,staticClass:\"mb-2\"}):_c('pd-menu-entry',{key:i.toString()+_vm.menu.counter,attrs:{\"item\":m}})]})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IDto } from '@/dtos';\n\nexport enum InterdependencyDirection { Input = 1, Output = 2, Both = 3 };\nexport interface PartitionInterdependencyDto extends IDto{\n associatePartitionId: number\n direction: InterdependencyDirection\n serviceId: number\n\n isCritical: boolean\n whyCritical: string\n criticalActions: string\n\n contact: string\n phone1: string\n phone2: string\n phone3: string\n email: string\n}\n","import { ISelectItem } from '@/core';\nimport i18n from '@/i18n';\n\nexport * from './BiaPartitionDto';\nexport * from './PartitionApplicationDto';\nexport * from './PartitionAssetDto';\nexport * from './PartitionAssociateDto';\nexport * from './PartitionDeploymentDto';\nexport * from './PartitionFinancialImpactDto';\nexport * from './PartitionInterdependencyDto';\nexport * from './PartitionOperationalImpactDto';\nexport * from './PartitionPersonnelDto';\nexport * from './PartitionRiskAssessmentDto';\nexport * from './PartitionRiskAssessmentImpactDto';\nexport * from './PartitionRtoMaoDto';\nexport * from './PartitionServiceApplicationDto';\nexport * from './PartitionServiceAssociateDto';\nexport * from './PartitionServiceDto';\nexport * from './PartitionServicePersonnelDto';\nexport * from './PartitionSurveyDto';\nexport * from './PartitionSurveyQuestionDto';\nexport * from './PartitionSurveyQuestionOptionDto';\n\nexport enum DegreeOfDependency\n{\n Low = 1,\n Medium = 2,\n High = 3,\n}\n\nexport enum DegreeOfComparability\n{\n Low = 1,\n Medium = 2,\n High = 3,\n}\n\nexport enum TimeToEnableSubstitutability\n{\n Instant = 1,\n DayToWeek = 2,\n WeekToMonth = 3,\n MonthToHalfYear = 4,\n HalfYearToYear = 5,\n OverAYear = 6,\n}\n\nexport enum CostOfAlternative\n{\n ComparableToCurrent = 1,\n NotComparableToCurrent = 2,\n}\n\nexport enum DegreeOfSubstitutability\n{\n NotSubstitutable = 1,\n Low = 2,\n Medium = 3,\n High = 4,\n}\n\nexport enum SubstituteType\n{\n Internal = 1,\n External = 2,\n NA = 3,\n}\n\nexport const DegreeOfDependenciesSelect: Array = [\n {\n text: i18n.t('bcm.partitions.deployments.services.degreeOfDependencies.low').toString(),\n value: DegreeOfDependency.Low,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.degreeOfDependencies.medium').toString(),\n value: DegreeOfDependency.Medium,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.degreeOfDependencies.high').toString(),\n value: DegreeOfDependency.High,\n },\n];\n\nexport const DegreeOfComparabilitiesSelect: Array = [\n {\n text: i18n.t('bcm.partitions.deployments.services.degreeOfComparabilities.low').toString(),\n value: DegreeOfComparability.Low,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.degreeOfComparabilities.medium').toString(),\n value: DegreeOfComparability.Medium,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.degreeOfComparabilities.high').toString(),\n value: DegreeOfComparability.High,\n },\n];\n\nexport const TimeToEnableSubstitutabilitiesSelect: Array = [\n {\n text: i18n.t('bcm.partitions.deployments.services.timeToEnableSubstitutes.instant').toString(),\n value: TimeToEnableSubstitutability.Instant,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.timeToEnableSubstitutes.week').toString(),\n value: TimeToEnableSubstitutability.DayToWeek,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.timeToEnableSubstitutes.month').toString(),\n value: TimeToEnableSubstitutability.WeekToMonth,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.timeToEnableSubstitutes.semiAnnual').toString(),\n value: TimeToEnableSubstitutability.MonthToHalfYear,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.timeToEnableSubstitutes.annual').toString(),\n value: TimeToEnableSubstitutability.HalfYearToYear,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.timeToEnableSubstitutes.overAYear').toString(),\n value: TimeToEnableSubstitutability.OverAYear,\n },\n\n];\n\nexport const CostOfAlternativesSelect: Array = [\n {\n text: i18n.t('bcm.partitions.deployments.services.costOfAlternativeServices.comparableToCurrent').toString(),\n value: CostOfAlternative.ComparableToCurrent,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.costOfAlternativeServices.notComparableToCurrent').toString(),\n value: CostOfAlternative.NotComparableToCurrent,\n },\n];\n\nexport const DegreeOfSubstitutabilitiesSelect: Array = [\n {\n text: i18n.t('bcm.partitions.deployments.services.degreeOfSubstitutabilities.notSubstitutable').toString(),\n value: DegreeOfSubstitutability.NotSubstitutable,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.degreeOfSubstitutabilities.low').toString(),\n value: DegreeOfSubstitutability.Low,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.degreeOfSubstitutabilities.medium').toString(),\n value: DegreeOfSubstitutability.Medium,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.degreeOfSubstitutabilities.high').toString(),\n value: DegreeOfSubstitutability.High,\n },\n];\n\nexport const CriticalitiesSelect: Array = [\n {\n text: i18n.t('bcm.partitions.deployments.services.criticalities.no').toString(),\n value: false,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.criticalities.yes').toString(),\n value: true,\n },\n];\n\nexport const SubstituteTypeSelect: Array = [\n {\n text: i18n.t('bcm.partitions.deployments.services.substituteTypes.internal').toString(),\n value: SubstituteType.Internal,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.substituteTypes.external').toString(),\n value: SubstituteType.External,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.substituteTypes.na').toString(),\n value: SubstituteType.NA,\n },\n];\n\nexport const SubstituteTypeExternalSelect: Array = [\n {\n text: i18n.t('bcm.partitions.deployments.services.substituteTypes.external').toString(),\n value: SubstituteType.External,\n },\n {\n text: i18n.t('bcm.partitions.deployments.services.substituteTypes.na').toString(),\n value: SubstituteType.NA,\n },\n];\n","import { IDto, ITranslatableDto, SimpleUserDto } from '..';\n\nexport interface UserPositionDto extends IDto {\n user: SimpleUserDto\n positionId?: number\n}\n\nexport interface PartitionTranslationDto {\n name: string\n}\n\nexport enum RiskSelfAssessmentType {\n None = 0,\n Registry = 1,\n Text = 2,\n Both = 3\n}\nexport interface PartitionDto extends ITranslatableDto {\n locationId: number\n parentId: number\n rtoId: number\n maoId: number\n\n coordinatorTypeId: number\n\n activeDirectoryGroup: string\n\n assignedUsers: Array\n}\n","import { IDto } from '..';\n\nexport enum SurveyQuestionType\n{\n Text = 1,\n Single = 2,\n Multiple = 3,\n}\n\nexport type SurveyQuestionDto = IDto;\n","import { ITranslatableDto } from '../IDto';\nimport { SimpleUserDto } from '../SimpleUserDto';\n\nexport enum ApplicationType\n{\n ExternalPortal = 0,\n CustomBuild = 1,\n PurchasedAsIs = 2,\n PurchasedWithModifications = 3,\n}\n\nexport interface SystemTranslationDto {\n name: string\n description: string\n}\n\nexport interface SystemDto extends ITranslatableDto {\n isActive: boolean\n applicationType: ApplicationType\n disasterRecoveryTest: boolean\n infrastructureRtoId?: number\n infrastructureRpoId?: number\n\n isHorizontalService: boolean\n isSrbCritical: boolean\n isInHouse: boolean\n\n modules: Array\n\n itsdOfficers?: Array\n businessOwners?: Array\n serviceOwners?: Array\n applicationOwners?: Array\n\n itsdOfficersAdGroups?: Array\n businessOwnersAdGroups?: Array\n serviceOwnersAdGroups?: Array\n applicationOwnersAdGroups?: Array\n}\n","import { IDto } from '.';\n\nexport enum NotificationType {\n Email = 1,\n Teams = 2,\n}\n\nexport interface NotificationDto extends IDto {\n type: NotificationType,\n\n emails?:string[]\n partitions?: number[]\n locations?: number[]\n\n // teamsGroup?: string\n\n subject: string\n body: string\n}\n","export interface UploadFileDto{\n file: File\n}\n\nexport function UploadFileDtoToFormData(data: UploadFileDto) : FormData {\n const fd = new FormData();\n fd.append('file', data.file);\n\n return fd;\n}\n","import { UploadFileDto, UploadFileDtoToFormData } from './UploadFileDto';\n\nexport interface UploadCsvFileDto extends UploadFileDto{\n ignoreFirstLine: boolean\n delimiter: string\n language?: number\n clearExisting?: boolean\n ignoreDuplicates?: boolean\n}\n\nexport function UploadCsvFileDtoToFormData(data: UploadCsvFileDto) : FormData {\n const fd = UploadFileDtoToFormData(data);\n\n fd.append('ignoreFirstLine', data.ignoreFirstLine ? 'true' : 'false');\n fd.append('language', (data.language || 0).toString());\n fd.append('delimiter', data.delimiter);\n fd.append('clearExistingData', data.clearExisting ? 'true' : 'false');\n fd.append('ignoreDuplicates', data.ignoreDuplicates ? 'true' : 'false');\n\n return fd;\n}\n","import { UserRole } from '@/dtos/UserDto';\nimport { EntityModule } from '@/store';\nimport {\n mdiAccountVoice, mdiAlertOutline, mdiChartAreaspline, mdiChartGantt, mdiClipboardCheckOutline, mdiCog,\n mdiCompassOutline, mdiEye, mdiFileDocument, mdiSitemap, mdiTestTube, mdiViewDashboardOutline,\n} from '@mdi/js';\nimport type { MenuDivider, MenuEntry } from './interfaces';\n\n// eslint-disable-next-line max-len\nconst mdiSailBoatSink = 'M20.96 21C19.9 21 18.9 20.74 17.96 20.24C16.12 21.24 13.81 21.24 11.97 20.24C10.13 21.24 7.82 21.24 6 20.24C4.77 20.93 3.36 21.04 2 21V19C3.41 19.04 4.77 18.89 6 18C7.74 19.24 10.21 19.24 11.97 18C13.74 19.24 16.2 19.24 17.96 18C19.17 18.89 20.54 19.04 21.94 19V21H20.96M22 3.5L7.11 5.96L13.11 12.17L22 3.5M10.81 16.36L11.97 15.54L13.12 16.36C13.65 16.72 14.3 16.93 14.97 16.93C15.12 16.93 15.28 16.91 15.43 16.89L5.2 6.31C4.29 7.65 3.9 9.32 4 10.92L9.74 16.83C10.13 16.74 10.5 16.58 10.81 16.36Z';\n\nexport default class BcmNavigationEntries {\n static TopNavigation() : Array {\n return [\n {\n roles: [\n UserRole.BcmAdministrator,\n ],\n text: 'BCM Dashboard',\n icon: mdiViewDashboardOutline,\n to: 'bcm.dashboard',\n },\n ];\n }\n\n static MiddleNavigation(): Array {\n return [\n {\n roles: [UserRole.BcmAdministrator],\n text: 'Project Management',\n icon: mdiChartGantt,\n to: 'bcm.projectManagement',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Organization Structure',\n icon: mdiSitemap,\n to: 'bcm.organizationStructure',\n },\n {\n roles: [\n UserRole.BcmAdministrator,\n UserRole.IsraAdministrator,\n UserRole.BcmCoordinator,\n ],\n text: 'Parameters',\n icon: mdiCog,\n items: [\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Assets',\n to: 'bcm.assets',\n },\n {\n roles: [\n UserRole.BcmAdministrator,\n UserRole.IsraAdministrator,\n UserRole.BcmCoordinator,\n ],\n text: 'Systems',\n to: 'bcm.systems',\n },\n {\n roles: [\n UserRole.BcmAdministrator,\n UserRole.BcmCoordinator,\n ],\n text: 'Employees',\n to: 'bcm.employees',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Associates',\n to: 'bcm.associates',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Srb Service Types',\n to: 'srb.srbServiceTypes',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Contracts',\n to: 'bcm.contracts',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Criticalities',\n to: 'srb.criticalities',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Cost Units',\n to: 'bcm.costUnits',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Financial Impact Scales',\n to: 'bcm.financialImpactScales',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Operational Impact Scales',\n to: 'bcm.operationalImpactScales',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Location Groups',\n to: 'bcm.locationGroups',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Locations',\n to: 'bcm.locations',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Job Positions',\n to: 'bcm.positions',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Recovery Site Types',\n to: 'bcm.recoverySiteTypes',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Recovery Sites',\n to: 'bcm.recoverySites',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'RPO',\n to: 'bcm.rpo',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'RTO Assets',\n to: 'bcm.rto',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'RTO Systems',\n to: 'bcm.rtoApplications',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Services',\n to: 'bcm.services',\n },\n {\n roles: [\n UserRole.BcmAdministrator,\n UserRole.IsraAdministrator,\n UserRole.BcmCoordinator,\n ],\n text: 'Implementation Scales',\n to: 'bcm.implementationScales',\n },\n ],\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Business Impact Analysis (BIA)',\n icon: mdiChartAreaspline,\n items: [\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Deployments',\n to: 'bcm.bia',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Financial Impact Questions',\n to: 'bcm.financialImpactQuestions',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Operational Impact Questions',\n to: 'bcm.operationalImpactQuestions',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Surveys',\n to: 'bcm.surveys',\n },\n ],\n },\n {\n roles: [UserRole.BcmAdministrator],\n text: 'Risk Analysis',\n icon: mdiAlertOutline,\n items: [\n {\n text: 'Risk Groups',\n to: 'bcm.riskGroups',\n },\n {\n text: 'Risk Registry',\n to: 'bcm.risks',\n },\n {\n text: 'Risk Likelihood Scale',\n to: 'bcm.riskProbabilities',\n },\n {\n text: 'Risk Impact Scales',\n to: 'bcm.riskImpactScales',\n },\n {\n text: 'Risk Impact Areas',\n to: 'bcm.riskImpactAreas',\n },\n {\n text: 'Risk Control Evaluations',\n to: 'bcm.riskControlEvaluations',\n },\n {\n text: 'Risk Levels',\n to: 'bcm.riskLevels',\n },\n {\n text: 'Risk Treatments',\n to: 'bcm.riskTreatments',\n },\n ],\n },\n {\n roles: [UserRole.BcmAdministrator],\n text: 'Testing',\n icon: mdiTestTube,\n items: [\n {\n text: 'DR Testing',\n to: 'bcm.testing.dr',\n },\n {\n text: 'BCP Functional Test',\n items: [\n {\n text: 'Scenarios',\n to: 'bcm.testing.bcp.scenarios',\n },\n {\n text: 'Functional Tests',\n to: 'bcm.testing.bcp.admin.tests',\n },\n ],\n },\n ],\n },\n {\n roles: [UserRole.BcmAdministrator],\n text: 'Business Continuity Reports (BCR)',\n icon: mdiFileDocument,\n items: [\n {\n text: 'BCR Templates',\n to: 'bcm.bcpTemplates',\n },\n {\n text: 'BCR Generator',\n to: 'bcm.bcpGenerator',\n },\n {\n text: 'BCR Documents',\n to: 'bcm.bcpDocuments',\n },\n ],\n },\n {\n roles: [UserRole.BcmAdministrator],\n text: 'Strategies',\n icon: mdiCompassOutline,\n to: 'bcm.strategy',\n },\n {\n roles: [UserRole.BcmAdministrator],\n text: 'Incident Management',\n icon: mdiAccountVoice,\n items: [\n {\n text: 'Sectors',\n to: 'bcm.incident.sectors',\n },\n {\n text: 'Types',\n to: 'bcm.incident.types',\n },\n {\n text: 'Prioritization Scales',\n to: 'bcm.incident.prioritization',\n },\n {\n text: 'Resolution Status',\n to: 'bcm.incident.resolutions',\n },\n {\n text: 'Resolution Evaluations',\n to: 'bcm.incident.evaluations',\n },\n {\n text: 'Email Templates',\n to: 'bcm.incident.templates',\n },\n {\n text: 'Incidents',\n name: 'bcm.incidents',\n },\n ],\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n text: 'Quick View',\n icon: mdiEye,\n to: 'bcm.quickView',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.IsraAdministrator],\n text: 'Compliance',\n icon: mdiClipboardCheckOutline,\n to: 'compliance.lists',\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.GeneralUser],\n permision: () => {\n return EntityModule.Tasks.hasApplicationsTaxonomy || EntityModule.Tasks.hasLocationsTaxonomy;\n },\n text: 'SRB-OCIR',\n icon: mdiSailBoatSink,\n items: [\n {\n text: 'Systems Taxonomy',\n to: 'bcm.srb.taxonomy.applications',\n roles: [UserRole.BcmAdministrator, UserRole.GeneralUser],\n permision: () => {\n return EntityModule.Tasks.hasApplicationsTaxonomy;\n },\n },\n {\n text: 'Real Estate Taxonomy',\n to: 'bcm.srb.taxonomy.locations',\n roles: [UserRole.BcmAdministrator, UserRole.GeneralUser],\n permision: () => {\n return EntityModule.Tasks.hasLocationsTaxonomy;\n },\n },\n {\n text: 'Associates Taxonomy',\n to: 'bcm.srb.taxonomy.associates',\n roles: [UserRole.BcmAdministrator, UserRole.GeneralUser],\n permision: () => {\n return EntityModule.Tasks.hasAssociatesTaxonomy;\n },\n },\n {\n text: 'Personnel Taxonomy',\n to: 'bcm.srb.taxonomy.personnel',\n roles: [UserRole.BcmAdministrator, UserRole.GeneralUser],\n permision: () => {\n return EntityModule.Tasks.hasPersonnelTaxonomy;\n },\n },\n {\n text: 'Reporting',\n to: 'bcm.srb.reporting',\n roles: [UserRole.BcmAdministrator],\n },\n ],\n },\n {\n roles: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n divider: true,\n },\n ];\n }\n\n static BottomNavigation(): Array {\n return [];\n }\n}\n","import { UserRole } from '@/dtos/UserDto';\nimport {\n mdiAltimeter,\n mdiCardBulletedSettingsOutline,\n mdiShieldAlertOutline,\n mdiTag,\n mdiUmbrella,\n mdiViewDashboardOutline,\n} from '@mdi/js';\nimport type { MenuDivider, MenuEntry } from './interfaces';\n\nexport default class IsraNavigationEntries {\n static TopNavigation() : Array {\n return [\n {\n roles: [\n UserRole.IsraAdministrator,\n ],\n text: 'ISRA Dashboard',\n icon: mdiViewDashboardOutline,\n to: 'isra.dashboard',\n },\n ];\n }\n\n static MiddleNavigation(): Array {\n return [\n {\n roles: [UserRole.IsraAdministrator],\n text: 'Risk Management Strategy',\n icon: mdiCardBulletedSettingsOutline,\n items: [\n {\n roles: [UserRole.IsraAdministrator],\n text: 'Scales Management',\n items: [\n {\n text: 'Classification Scales',\n to: 'isra.classificationScales',\n },\n {\n text: 'Impact Scales',\n to: 'isra.impactScales',\n },\n {\n text: 'Likelihood Scales',\n to: 'isra.likelihoodScales',\n },\n {\n text: 'Control Significance Scales',\n to: 'isra.controlStrengthScales',\n },\n {\n text: 'Control Significance Reduction',\n to: 'isra.controlStrengthReduction',\n },\n {\n text: 'Risk Scales',\n to: 'isra.riskScales',\n },\n ],\n },\n {\n roles: [UserRole.IsraAdministrator],\n text: 'Answers Management',\n items: [\n {\n text: 'Answer Groups',\n to: 'isra.answerGroups',\n },\n {\n text: 'Answers',\n to: 'isra.answers',\n },\n ],\n },\n {\n roles: [UserRole.IsraAdministrator],\n text: 'Standardization & Compliance',\n items: [\n {\n text: 'ISO 27001 Controls',\n to: 'isra.isoDomains',\n },\n {\n text: 'Ict Risk Categories',\n to: 'isra.ictRiskCategories',\n },\n {\n text: 'Standards',\n to: 'isra.Standardizations',\n },\n ],\n },\n ],\n },\n {\n roles: [UserRole.IsraAdministrator],\n text: 'System Characterization',\n icon: mdiTag,\n items: [\n {\n text: 'Question Groups',\n to: 'isra.questionGroups',\n },\n {\n text: 'Classification Questions',\n to: 'isra.classificationQuestions',\n },\n {\n text: 'Classification Questionnaires',\n to: 'isra.classificationQuestionnaires',\n },\n {\n text: 'Classification Deployments',\n to: 'isra.ClassificationDeployments',\n },\n ],\n },\n {\n roles: [UserRole.IsraAdministrator],\n text: 'Risk Assessment',\n icon: mdiAltimeter,\n items: [\n {\n roles: [UserRole.IsraAdministrator],\n text: 'Risk Identification',\n\n items: [\n {\n text: 'Threats',\n to: 'isra.threats',\n },\n {\n text: 'Vulnerability Categories',\n to: 'isra.vulnerabilityCategories',\n },\n {\n text: 'Vulnerabilities',\n to: 'isra.vulnerabilities',\n },\n {\n roles: [UserRole.IsraAdministrator],\n text: 'Risks',\n to: 'isra.Risks',\n },\n ],\n },\n {\n roles: [UserRole.IsraAdministrator],\n text: 'Risk Analysis',\n\n items: [\n {\n text: 'Controls',\n to: 'isra.controlQuestions',\n },\n {\n text: 'Profile Questions',\n to: 'isra.profileQuestions',\n },\n {\n text: 'Risks - Controls',\n to: 'isra.risksControls',\n },\n ],\n },\n {\n roles: [UserRole.IsraAdministrator],\n text: 'Risk Evaluation',\n items: [\n {\n text: 'Control Questionnaires',\n to: 'isra.controlQuestionnaires',\n },\n {\n text: 'Assessment Types',\n to: 'isra.assessments',\n },\n ],\n },\n {\n text: 'Risk Assessments',\n to: 'isra.riskmanagement.assessments',\n },\n ],\n },\n {\n roles: [UserRole.IsraAdministrator],\n text: 'Risk Treatment',\n icon: mdiUmbrella,\n items: [\n {\n roles: [UserRole.IsraAdministrator],\n text: 'Action Plan',\n items: [\n {\n text: 'Prioritization Scales',\n to: 'isra.TreatmentPrioritizationScales',\n },\n {\n text: 'Prioritization Plan',\n to: 'isra.riskTreatmentPlans',\n },\n {\n text: 'Implementation Answers',\n to: 'isra.treatmentAnswers',\n },\n ],\n },\n {\n text: 'Risk Treatments',\n to: 'isra.riskmanagement.treatments',\n },\n ],\n },\n {\n roles: [UserRole.IsraAdministrator],\n text: 'Risk Acceptance',\n icon: mdiShieldAlertOutline,\n items: [\n {\n text: 'Risk Acceptance Answers',\n to: 'isra.riskAcceptanceAnswers',\n },\n {\n text: 'Risk Acceptances',\n to: 'isra.riskmanagement.acceptances',\n },\n ],\n },\n {\n roles: [UserRole.IsraAdministrator],\n divider: true,\n },\n ];\n }\n\n static BottomNavigation(): Array {\n return [];\n }\n}\n","import { UserRole } from '@/dtos/UserDto';\nimport { mdiAltimeter, mdiCardBulletedSettingsOutline, mdiViewDashboardOutline } from '@mdi/js';\n//, mdiShieldAlertOutline, mdiUmbrella\nimport type { MenuDivider, MenuEntry } from './interfaces';\n\nexport default class TraNavigationEntries {\n static TopNavigation() : Array {\n return [\n {\n roles: [\n UserRole.TraAdministrator,\n ],\n text: 'TRA Dashboard',\n icon: mdiViewDashboardOutline,\n to: 'tra.dashboard',\n },\n ];\n }\n\n static MiddleNavigation(): Array {\n return [\n {\n roles: [UserRole.TraAdministrator],\n text: 'Risk Management Parameters',\n icon: mdiCardBulletedSettingsOutline,\n items: [\n {\n text: 'Likelihood Scales',\n to: 'tra.likelihoodScales',\n },\n {\n text: 'Impact Scales',\n to: 'tra.impactScales',\n },\n {\n text: 'Risk Scales',\n to: 'tra.riskScales',\n },\n {\n text: 'Control Answer Templates',\n to: 'tra.answerGroups',\n },\n {\n text: 'Treatment Answers',\n to: 'tra.treatmentAnswers',\n },\n ],\n },\n {\n roles: [UserRole.TraAdministrator],\n text: 'Risk Assessment',\n icon: mdiAltimeter,\n items: [\n {\n roles: [UserRole.TraAdministrator],\n text: 'Controls Categories',\n to: 'tra.controlCategories',\n },\n {\n text: 'Controls',\n to: 'tra.controls',\n },\n {\n roles: [UserRole.TraAdministrator],\n text: 'Risk Categories',\n to: 'tra.riskCategories',\n },\n {\n roles: [UserRole.TraAdministrator],\n text: 'Risk Registry',\n to: 'tra.risks',\n },\n {\n text: 'Questionnaires',\n to: 'tra.questionnaires',\n },\n {\n text: 'Assessments',\n to: 'tra.assessmentsList',\n },\n ],\n },\n // {\n // roles: [UserRole.TraAdministrator],\n // text: 'Risk Treatment',\n // icon: mdiUmbrella,\n // items: [\n // {\n // text: 'Risk Treatment Answers',\n // to: 'tra.treatments.answers',\n // },\n // {\n // text: 'Risk Treatments',\n // to: 'tra.treatments',\n // },\n // ],\n // },\n // {\n // roles: [UserRole.TraAdministrator],\n // text: 'Risk Acceptance',\n // icon: mdiShieldAlertOutline,\n // items: [\n // {\n // text: 'Risk Acceptance Answers',\n // to: 'tra.acceptances.answers',\n // },\n // {\n // text: 'Risk Acceptances',\n // to: 'tra.acceptances',\n // },\n // ],\n // },\n {\n roles: [UserRole.TraAdministrator, UserRole.TraAssessor],\n divider: true,\n },\n ];\n }\n\n static BottomNavigation(): Array {\n return [];\n }\n}\n","import { UserRole } from '@/dtos';\nimport {\n mdiAccount,\n mdiAccountVoice,\n mdiBook,\n mdiCog,\n mdiExitRun,\n mdiFileDocument, mdiForum, mdiHarddisk,\n mdiShieldKey,\n mdiShieldSearch,\n} from '@mdi/js';\nimport BcmNavigationEntries from './navigation/bcm';\nimport { MenuDivider, MenuEntry } from './navigation/interfaces';\nimport IsraNavigationEntries from './navigation/isra';\nimport TraNavigationEntries from './navigation/tra';\n\nexport const MenuItems: (MenuEntry | MenuDivider)[] = [\n ...BcmNavigationEntries.TopNavigation(),\n ...IsraNavigationEntries.TopNavigation(),\n ...TraNavigationEntries.TopNavigation(),\n\n {\n roles: [UserRole.GeneralAdministrator],\n text: 'Application Settings',\n icon: mdiCog,\n to: 'admin.applicationSettings',\n },\n {\n roles: [UserRole.GeneralAdministrator],\n text: 'Licence Management',\n icon: mdiShieldKey,\n to: 'admin.licences',\n },\n {\n roles: [UserRole.GeneralAdministrator],\n divider: true,\n },\n {\n roles: [\n UserRole.GeneralAdministrator,\n UserRole.BcmAdministrator,\n UserRole.GeneralUserManager,\n ],\n text: 'User Management',\n icon: mdiAccount,\n items: [\n {\n roles: [UserRole.BcmAdministrator, UserRole.GeneralAdministrator],\n text: 'Coordinator Types',\n to: 'bcm.coordinatorTypes',\n },\n {\n roles: [UserRole.GeneralAdministrator, UserRole.GeneralUserManager],\n text: 'Users',\n to: 'admin.users',\n parameters: { hideSso: true },\n },\n ],\n },\n\n ...BcmNavigationEntries.MiddleNavigation(),\n ...IsraNavigationEntries.MiddleNavigation(),\n ...TraNavigationEntries.MiddleNavigation(),\n\n {\n roles: [UserRole.GeneralUser],\n text: 'BCM Deployments',\n counter: 'bcm',\n icon: mdiForum,\n to: 'all.bcm.deployments',\n },\n {\n roles: [UserRole.GeneralUser],\n text: 'ISRA Deployments',\n counter: 'isra',\n icon: mdiBook,\n to: 'all.isra.deployments',\n },\n {\n roles: [UserRole.GeneralUser],\n text: 'TRA Deployments',\n counter: 'tra',\n icon: mdiShieldSearch,\n to: 'all.tra.deployments',\n },\n {\n roles: [UserRole.GeneralUser],\n text: 'Disaster Test Deployments',\n counter: 'disasterTests',\n icon: mdiHarddisk,\n to: 'bcm.testing.dr.deployments',\n },\n {\n roles: [UserRole.GeneralUser],\n text: 'BCP Functional Tests',\n counter: 'bcpFunctionalTests',\n icon: mdiExitRun,\n to: 'bcm.testing.bcp.tests',\n },\n {\n roles: [UserRole.GeneralUser],\n text: 'Incidents',\n counter: 'incidents',\n icon: mdiAccountVoice,\n to: 'bcm.incidents',\n },\n {\n roles: [UserRole.GeneralUser],\n icon: mdiFileDocument,\n text: 'Documents',\n to: 'all.documents',\n },\n {\n hidden: true,\n text: 'landing',\n icon: mdiHarddisk,\n to: 'all.landing',\n },\n];\n","import { MenuItems } from '@/core/MenuItems';\nimport { IMenuEntry, MenuDivider, MenuEntry } from '@/core/navigation/interfaces';\nimport { UserRole } from '@/dtos';\nimport store, { AuthenticationModule, NavigationModule } from '@/store';\nimport cloneDeep from 'lodash.clonedeep';\n\nexport default class NavigationService {\n public static async Init(): Promise {\n store.watch(\n () => AuthenticationModule.User,\n (user) => {\n if (user == null) {\n NavigationModule.SetMenu([]);\n } else {\n NavigationModule.SetMenu(this.GetUserMenu(user.roles));\n }\n },\n {\n immediate: true,\n },\n );\n }\n\n private static GetUserMenu(roles: UserRole[]) : Array {\n const clone = cloneDeep(MenuItems);\n return this.recurseMenuItems(clone, roles);\n }\n\n private static recurseMenuItems(menu: (MenuEntry | MenuDivider)[], roles: UserRole[]) : Array {\n for (let i = 0; i < menu.length; ++i) {\n if (menu[i].hidden === true) {\n menu.splice(i, 1);\n i--;\n continue;\n } else {\n const r = menu[i].roles;\n if (r !== undefined && r.length > 0) {\n if (!r.some((v1) => roles.some((v2) => v1 === v2))) {\n menu.splice(i, 1);\n i--;\n continue;\n }\n\n // found in role\n const permision = menu[i].permision;\n\n if (permision != null && permision() === false) {\n menu.splice(i, 1);\n i--;\n continue;\n }\n\n const items = (menu[i] as MenuEntry).items;\n if (items != null && items.length > 0) {\n (menu[i] as MenuEntry).items = this.recurseMenuItems(items, roles);\n }\n }\n }\n }\n\n return menu;\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { IMenuEntry } from '@/core/navigation/interfaces';\nimport { UserRole } from '@/dtos';\nimport NavigationService from '@/services/NavigationService';\nimport { AuthenticationModule, EntityModule, NavigationModule } from '@/store';\nimport { computed, defineComponent, watch } from '@vue/composition-api';\nimport PdMenuEntry from '../core/PdNavigation/PdMenuEntry.vue';\n\nexport default defineComponent({\n name: 'NavigationMenu',\n\n components: {\n PdMenuEntry,\n },\n\n setup() {\n const isGeneralAdministrator = computed(() => AuthenticationModule.Roles.find(i => i === UserRole.GeneralAdministrator) != null);\n\n const isBcmAdministrator = computed(() => AuthenticationModule.Roles.find(i => i === UserRole.BcmAdministrator) != null);\n const isBcmCoordinator = computed(() => AuthenticationModule.Roles.find(i => i === UserRole.BcmCoordinator) != null);\n const isIsraAdministrator = computed(() => AuthenticationModule.Roles.find(i => i === UserRole.IsraAdministrator) != null);\n const isISraAssessor = computed(() => AuthenticationModule.Roles.find(i => i === UserRole.IsraAssessor) != null);\n const isTraAdministrator = computed(() => AuthenticationModule.Roles.find(i => i === UserRole.TraAdministrator) != null);\n const isTraAssessor = computed(() => AuthenticationModule.Roles.find(i => i === UserRole.TraAssessor) != null);\n\n const isTaxonomyApplications = computed(() => {\n return EntityModule.Tasks.hasApplicationsTaxonomy;\n });\n\n const isTaxonomyLocations = computed(() => {\n return EntityModule.Tasks.hasApplicationsTaxonomy;\n });\n\n watch(\n [\n isBcmAdministrator,\n isBcmAdministrator,\n isBcmCoordinator,\n isIsraAdministrator,\n isISraAssessor,\n isTraAdministrator,\n isTraAssessor,\n isTaxonomyApplications,\n isTaxonomyLocations,\n ],\n () => {\n refreshMenu();\n },\n );\n\n function refreshMenu() {\n NavigationService.Init();\n }\n\n const menu = computed>(() => NavigationModule.Menu);\n\n return {\n menu,\n isGeneralAdministrator,\n isBcmAdministrator,\n isBcmCoordinator,\n isIsraAdministrator,\n isISraAssessor,\n isTraAdministrator,\n isTraAssessor,\n isTaxonomyApplications,\n isTaxonomyLocations,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavigationMenu.vue?vue&type=template&id=303f4151&scoped=true&\"\nimport script from \"./NavigationMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavigationMenu.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"303f4151\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VList } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VDivider,VList})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport { NavigationModule } from '@/store';\nimport PdMenuEntry from '@/components/core/PdNavigation/PdMenuEntry.vue';\nimport NavigationMenu from '@/components/all/NavigationMenu.vue';\n\nexport default defineComponent({\n name: 'PdNavigation',\n components: {\n PdMenuEntry,\n NavigationMenu,\n },\n setup() {\n const state = ref(true);\n const menu = computed(() => NavigationModule.Menu);\n const history = computed(() => NavigationModule.NavigationHistory);\n\n watch(\n () => state.value,\n (value: boolean) => {\n NavigationModule.SetNavigationDrawerState(!value);\n },\n );\n\n return {\n state,\n menu,\n history,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdNavigation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdNavigation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdNavigation.vue?vue&type=template&id=11e3bdec&scoped=true&\"\nimport script from \"./PdNavigation.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdNavigation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PdNavigation.vue?vue&type=style&index=0&id=11e3bdec&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11e3bdec\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\ninstallComponents(component, {VNavigationDrawer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_vm._l((_vm.messages),function(m){return [_c('v-snackbar',{key:m.id,attrs:{\"value\":true,\"dense\":\"\",\"light\":\"\",\"timeout\":2000},on:{\"input\":function($event){return _vm.close(m)}},scopedSlots:_vm._u([{key:\"action\",fn:function(ref){\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._b({attrs:{\"color\":m.color || 'blue',\"text\":\"\"},on:{\"click\":function($event){return _vm.close(m)}}},'v-btn',attrs,false),[_vm._v(\" Close \")])]}}],null,true)},[_vm._v(\" \"+_vm._s(m.text)+\" \")])]})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ApplicationModule } from '@/store';\nimport { TranslateResult } from 'vue-i18n';\n\nexport interface SnackbarMessage{\n id: number\n text: string | TranslateResult\n color?: string\n}\n\nexport default class SnackbarMessageService {\n private static counter = 1;\n\n static SetMessage(message: Pick>) : void {\n ApplicationModule.SetSnackbarMessage({\n id: SnackbarMessageService.counter++,\n text: message.text,\n color: message.color,\n });\n }\n\n static RemoveMessage(message: SnackbarMessage): void {\n ApplicationModule.RemoveSnackbarMessage(message.id);\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport SnackbarMessageService, { SnackbarMessage } from '@/services/SnackbarMessageService';\nimport { ApplicationModule } from '@/store';\nimport { defineComponent, ref } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'PdSnackbar',\n\n components: {\n },\n\n setup() {\n const messages = ref(ApplicationModule.SnackbarMessages);\n\n function close(message: SnackbarMessage) {\n SnackbarMessageService.RemoveMessage(message);\n }\n\n return {\n messages,\n close,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdSnackbar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdSnackbar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdSnackbar.vue?vue&type=template&id=75d38f2b&scoped=true&\"\nimport script from \"./PdSnackbar.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdSnackbar.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"75d38f2b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\ninstallComponents(component, {VBtn,VSnackbar})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport PdFooter from '@/components/core/PdFooter.vue';\nimport PdHeader from '@/components/core/pd-header.vue';\nimport PdNavigation from '@/components/core/PdNavigation/PdNavigation.vue';\nimport PdBusy from '@/components/core/PdBusy.vue';\nimport PdMessage from '@/components/core/PdMessage.vue';\nimport PdSnackbar from '@/components/core/PdSnackbar.vue';\nimport PdTimeout from '@/components/core/PdTimeout.vue';\n\nexport default defineComponent({\n name: 'DefaultLayout',\n\n components: {\n PdFooter,\n PdHeader,\n PdNavigation,\n PdBusy,\n PdMessage,\n PdSnackbar,\n PdTimeout,\n },\n\n setup() {\n return {};\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./default-layout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./default-layout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./default-layout.vue?vue&type=template&id=78ef1b24&scoped=true&\"\nimport script from \"./default-layout.vue?vue&type=script&lang=ts&\"\nexport * from \"./default-layout.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78ef1b24\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VMain})\n","import i18n from '@/i18n';\nimport { AxiosError } from 'axios';\nimport PopupMessageService from './PopupMessageService';\n\nexport enum ErrorType{\n Unknown = 999,\n Unauthorized = 100,\n Validation = 200,\n BadRequest = 300,\n NotFound = 400,\n}\n\nexport interface ErrorDto {\n type: ErrorType\n errors: Array\n}\n\nexport default class ErrorHandlingService {\n static Handle(error: AxiosError): void {\n const title = i18n.t('error').toString();\n let text = '';\n\n console.log(error);\n\n const data = error.response?.data;\n if (data) {\n if (data.errors != null) {\n for (let i = 0; i < data.errors.length - 1; ++i) {\n text += data.errors[i] + '\\n';\n }\n text += data.errors[data.errors.length - 1];\n } else {\n text = data;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } else if ((error as any).data) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n text = (error as any).data;\n } else if (error) {\n text = JSON.stringify(error.message);\n } else {\n text = JSON.stringify(error);\n }\n\n PopupMessageService.SetMessage({\n title,\n text,\n index: 100,\n });\n }\n}\n","import { UserRole } from '@/dtos';\nimport { AuthenticationModule } from '@/store';\nimport { Route } from 'vue-router';\n\nexport default class AuthorizationService {\n public static async Init(): Promise {\n //\n }\n\n static userCanAccessRoute(route: Route): boolean {\n if (route.meta == null || !Array.isArray(route.meta.auth) || route.meta.auth.length === 0) {\n return true;\n }\n\n const auth = route.meta.auth as Array;\n\n const roles = AuthenticationModule.User?.roles;\n if (roles == null) {\n return false;\n }\n\n const found = auth.find(a => roles.find(r => r === a));\n\n if (found) {\n return true;\n }\n return false;\n }\n}\n","import { UserTasksDto } from '@/dtos';\nimport { EntityDto } from '@/dtos/EntityDto';\nimport { ApplicationModule } from '@/store';\nimport axios from './axios';\n\nexport default class EntitiesApi {\n static async GetAll(): Promise> {\n const response = await axios.get>('masterplans');\n\n return response.data;\n }\n\n static async GetUserTasks(): Promise {\n const entity = ApplicationModule.Entity;\n if (entity != null) {\n const response = await axios.get(`/masterplans/${entity.id}/UserTasks`);\n return response.data;\n }\n\n throw new Error('Entity is not set');\n }\n}\n","import EntitiesApi from '@/api/EntitiesApi';\nimport { EntityDto } from '@/dtos/EntityDto';\nimport store, { ApplicationModule, EntityModule } from '@/store';\nimport { AxiosError } from 'axios';\nimport ErrorHandlingService from './ErrorHandlingService';\nimport LegacyService from './LegacyService';\n\nexport default class EntitiesService {\n private static _interval = 0;\n\n static async GetAll() : Promise> {\n return EntitiesApi.GetAll();\n }\n\n static async Init(): Promise {\n store.watch(\n () => ApplicationModule.Entity,\n (entity) => {\n if (entity == null) {\n clearInterval(this._interval);\n } else {\n EntitiesService.UpdateUserTasks();\n clearInterval(this._interval);\n this._interval = window.setInterval(EntitiesService.UpdateUserTasks, 1 * 60 * 1000);\n }\n },\n {\n immediate: true,\n },\n );\n\n LegacyService.ChangeMasterPlan(ApplicationModule.Entity);\n }\n\n static async UpdateUserTasks(): Promise {\n try {\n const tasks = await EntitiesApi.GetUserTasks();\n EntityModule.SetTasks(tasks);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n }\n }\n}\n","import axios from './axios';\nimport { SimpleSettingsDto } from '@/dtos/SimpleSettingsDto';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\n\nexport default class SettingsService {\n static async GetSettings(): Promise {\n try {\n const response = await axios.get('/Settings/GetSettings');\n\n return Promise.resolve(response.data);\n } catch (error) {\n ErrorHandlingService.Handle(error);\n return Promise.reject();\n }\n }\n}\n","import SettingsApi from '@/api/SettingsApi';\nimport { SimpleSettingsDto } from '@/dtos/SimpleSettingsDto';\nimport { ApplicationModule } from '@/store';\nimport LegacyService from './LegacyService';\n\nexport default class SettingsService {\n static async Init(): Promise {\n const settings = await SettingsService.GetSettings();\n ApplicationModule.SetSettings(settings);\n LegacyService.SetSettings(settings);\n }\n\n static async GetSettings(): Promise {\n return SettingsApi.GetSettings();\n }\n}\n","import AuthenticationService from './AuthenticationService';\nimport AuthorizationService from './AuthorizationService';\nimport EntitiesService from './EntitiesService';\nimport NavigationService from './NavigationService';\nimport SettingsService from './SettingsService';\n\nexport default class ApplicationService {\n public static async Init(): Promise {\n await SettingsService.Init();\n await AuthenticationService.Init();\n await EntitiesService.Init();\n await AuthorizationService.Init();\n await NavigationService.Init();\n }\n}\n","\n\n\n\n\nimport { defineComponent, ref, computed } from '@vue/composition-api';\nimport LoadingLayout from '@/layouts/loading-layout.vue';\nimport EmptyLayout from '@/layouts/empty-layout.vue';\nimport DefaultLayout from '@/layouts/default-layout.vue';\nimport ApplicationService from '@/services/ApplicationService';\nimport { AxiosError } from 'axios';\nimport ErrorHandlingService from './services/ErrorHandlingService';\n\nexport default defineComponent({\n name: 'App',\n\n components: {\n LoadingLayout,\n EmptyLayout,\n DefaultLayout,\n },\n\n setup(_, { root }) {\n const initialized = ref(false);\n\n const layout = computed(() => {\n if (!initialized.value) {\n return 'LoadingLayout';\n }\n\n if (root.$route.meta.layout === 'empty') {\n return 'EmptyLayout';\n }\n\n return 'DefaultLayout';\n });\n\n (async function init() {\n try {\n await ApplicationService.Init();\n\n initialized.value = true;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n }\n })();\n\n return {\n layout,\n initialized,\n };\n },\n});\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=8d409d1e&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: {\n themes: {\n light: {\n 'background-color': '#fafafa',\n anchor: '#000000',\n 'app-bar-background': '#1c4074',\n },\n },\n },\n //\n icons: {\n iconfont: 'mdiSvg',\n },\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"z-index\":\"8\",\"value\":true,\"light\":\"\"}},[_c('v-row',[_c('v-col',[_c('v-card',{attrs:{\"width\":\"800px\",\"light\":\"\",\"disabled\":_vm.loading}},[_c('pd-data-table',{ref:\"table\",attrs:{\"height\":\"350px\",\"headers\":_vm.headers,\"search\":\"\",\"datasource\":_vm.entities,\"selected-item\":_vm.selectedEntity,\"requires\":_vm.requires,\"disable-edit-on-double-click\":\"\"},on:{\"update:selectedItem\":function($event){_vm.selectedEntity=$event},\"update:selected-item\":function($event){_vm.selectedEntity=$event},\"dblclick\":_vm.selectEntity,\"loading-state-changed\":_vm.loadingStateChanged}}),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancel}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":function($event){return _vm.selectEntity(null)}}},[_vm._v(\" \"+_vm._s(_vm.$t('select'))+\" \")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{directives:[{name:\"resize\",rawName:\"v-resize\",value:(_vm.onResize),expression:\"onResize\"}],attrs:{\"flat\":\"\",\"disabled\":_vm.loading || _vm.working,\"width\":\"100%\"}},[(_vm.showTranslations)?_c('pd-data-table-translations',{attrs:{\"columns\":_vm.translatableColumns,\"item\":_vm.editingItem},on:{\"cancel\":_vm.cancelTranslations,\"save\":_vm.saveTranslations}}):_vm._e(),(_vm.editable !== false && _vm.editingItem != null && _vm.editable.mode === 'popup' && !_vm.showTranslations)?_c('pd-data-table-popup-editor',{attrs:{\"title\":_vm.$t('testing.dr.title'),\"item\":_vm.editingItem,\"dummy\":_vm.dummy,\"validation-errors\":_vm.validationErrors},on:{\"save\":_vm.saveChanges,\"cancel\":_vm.cancelChanges},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._t(\"PopupEditorTitle\",null,{\"item\":_vm.editingItem})]},proxy:true},{key:\"content\",fn:function(){return [_vm._t(\"PopupEditorContent\",[_vm._v(\" Default PdDataTable Content \")],{\"item\":_vm.editingItem,\"save\":_vm.saveChanges,\"cancel\":_vm.cancelChanges,\"validationErrors\":_vm.validationErrors})]},proxy:true}],null,true)}):_vm._e(),(_vm.search || _vm.editable !== false || _vm.editable.add === true)?_c('v-card-title',{staticClass:\"py-1\"},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pr-1\",attrs:{\"cols\":\"6\"}},[(_vm.editingItem == null)?[(_vm.showSelectAll && _vm.selectMultiple)?_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.selectAll}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCheckboxMultipleOutline)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('table.selectAll'))+\" \")],1):_vm._e(),(!(_vm.editable === false || (typeof(_vm.editable) === 'object' && _vm.editable.add !== true)))?_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.addNewItem}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlus)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('table.add'))+\" \")],1):_vm._e(),_vm._t(\"customTableActions\"),(_vm.selection != null)?void 0:_vm._e(),_vm._l((_vm.tableActions),function(action){return _c('v-btn',{key:action.id,staticClass:\"mr-2 text-none px-2\",attrs:{\"color\":action.color,\"depressed\":\"\",\"disabled\":_vm.editingItem != null,\"small\":\"\"},on:{\"click\":function($event){return _vm.$emit('table-action', action.id, _vm.selection)}}},[(action.icon)?_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(action.icon)+\" \")]):_vm._e(),_vm._v(\" \"+_vm._s(action.text)+\" \")],1)})]:[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"small\":\"\",\"depressed\":\"\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.save'))+\" \")]),_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"small\":\"\",\"depressed\":\"\"},on:{\"click\":_vm.cancelChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.cancel '))+\" \")])]],2),(_vm.search)?_c('v-col',{staticClass:\"pl-1\",attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"append-icon\":_vm.icons.mdiMagnify,\"label\":\"Search\",\"disabled\":_vm.editingItem != null,\"hide-details\":\"\",\"dense\":\"\",\"single-line\":\"\"},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:\"searchText\"}})],1):_vm._e()],1)],1):_vm._e(),_c('v-simple-table',{staticStyle:{\"table-layout\":\"fixed\"},attrs:{\"height\":_vm.tableHeight,\"fixed-header\":\"\"}},[_c('thead',[_c('tr',[(_vm.selectMultiple)?[_c('th',{staticClass:\"px-0\",staticStyle:{\"width\":\"0\"}})]:_vm._e(),(_vm.options.hasDetails)?[_c('th',{staticClass:\"px-0\",staticStyle:{\"width\":\"0\"}})]:_vm._e(),_vm._l((_vm.customHeaders),function(header){return [(!(header.visible != null && !((typeof(header.visible)==='boolean' && header.visible !== false) || (typeof(header.visible)==='function' && header.visible() !== false))))?[(header.id === 'pd_data_table_actions')?[(_vm.customRowActions != null && _vm.customRowActions.length > 0)?_c('th',{key:header.id,staticClass:\"asdfasdf\",staticStyle:{\"width\":\"40px\"}}):_vm._e()]:_c('th',{key:header.id,class:{'text--disabled': _vm.editingItem != null,'text-center': header.align === 'center'},staticStyle:{\"word-wrap\":\"break-word\"},style:({cursor: header.sortable === false ? '' : 'pointer', width: header.width}),on:{\"click\":function($event){return _vm.columnSort(header)}}},[_vm._v(\" \"+_vm._s(header.text)+\" \"),_c('v-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.tableSortBy != null && _vm.tableSortBy.id == header.id),expression:\"tableSortBy != null && tableSortBy.id == header.id\"}],class:{'sort-rotated': _vm.tableSortDirection === 'desc'},attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.sort)+\" \")]),(header.actions != null)?[_c('span',{staticClass:\"ml-4\"},_vm._l((header.actions),function(action){return _c('v-btn',{key:action.id,attrs:{\"icon\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return action.callback()}}},[_c('v-icon',[_vm._v(\" \"+_vm._s(action.icon)+\" \")])],1)}),1)]:_vm._e()],2)]:_vm._e()]})],2)]),(_vm.loading || _vm.working)?_c('thead',[_c('tr',{staticClass:\"v-data-table__progress\"},[_c('th',{staticClass:\"pa-0\",attrs:{\"colspan\":_vm.totalColumns}},[_c('v-progress-linear',{attrs:{\"indeterminate\":\"\"}})],1)])]):_vm._e(),(!_vm.loading)?_c('tbody',[(_vm.pagedItems.value.length === 0 && _vm.editingItem == null)?[_c('tr',[_c('td',{staticClass:\"text-center\",attrs:{\"colspan\":_vm.totalColumns}},[_vm._v(\" No records available... \")])])]:_vm._e(),(_vm.editingItem != null && _vm.editingItem.id === 0)?[_c('pd-data-table-edit-row',{attrs:{\"row-class\":_vm.rowClass(_vm.editItem, 0),\"headers\":_vm.customHeaders,\"editable\":_vm.editable,\"item\":_vm.editingItem,\"has-details\":_vm.options.hasDetails,\"is-new\":\"\"}})]:_vm._e(),_vm._l((_vm.pagedItems.value),function(item,i){return [(_vm.editingItem == null || _vm.editingItem.id != item.id || _vm.editable.mode === 'popup')?[_vm._t(\"row\",[_c('tr',{key:item.uuid,class:_vm.rowClass(item, i),staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.changeSelection(item)},\"dblclick\":function($event){return _vm.dblclick(item)}}},[(_vm.selectMultiple)?[_c('td',{staticClass:\"px-0\",staticStyle:{\"width\":\"20px\"}},[_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\"}},[_c('v-icon',{on:{\"click\":function($event){return _vm.switchMultiSelect(item)}}},[(_vm.partOfMultiSelect(item))?[_vm._v(\" \"+_vm._s(_vm.icons.mdiCheckboxMarkedOutline)+\" \")]:[_vm._v(\" \"+_vm._s(_vm.icons.mdiCheckboxBlankOutline)+\" \")]],2)],1)],1)]:_vm._e(),(_vm.options.hasDetails)?[_c('td',{staticClass:\"px-0\",staticStyle:{\"width\":\"20px\"}},[_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.expandRow(item)},\"dblclick\":function($event){$event.stopPropagation();}}},[_c('v-icon',{class:{'details-rotated': item.uuid === _vm.currentDetails}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiMenuRight)+\" \")])],1)],1)]:_vm._e(),_vm._l((_vm.customHeaders),function(h){return [(!(h.visible != null && !((typeof(h.visible)==='boolean' && h.visible !== false) || (typeof(h.visible)==='function' && h.visible() !== false))))?[(h.id === 'pd_data_table_actions')?[(_vm.customRowActions != null && _vm.customRowActions.length > 0)?_c('td',{key:h.id,staticClass:\"asdfasdf\",staticStyle:{\"width\":\"40px\"}},[(_vm.customRowActions != null && _vm.customRowActions.length > 0)?_c('pd-data-table-actions-menu',{attrs:{\"actions\":_vm.customRowActions,\"item\":item},on:{\"action-click\":function($event){return _vm.rowActionClick(item, $event)}}}):_vm._e()],1):_vm._e()]:[_vm._t((\"column-\" + (h.id)),[_c(_vm.getComponent(h),_vm._b({key:h.id + item.uuid,tag:\"component\",class:{'text-start': h.align === 'start', 'text-end': h.align === 'end', 'text-center': h.align === 'center'},attrs:{\"value\":item[h.value],\"item\":item,\"parameters\":h.parameters,\"text\":_vm.visibleText[item.id][h.id],\"header\":h}},'component',h.props,false),[_vm._v(\" \"+_vm._s(item[h.value])+\" \")])],{\"item\":item})]]:_vm._e()]})],2)],{\"item\":item,\"headers\":_vm.headers}),(_vm.options.hasDetails && item.uuid === _vm.currentDetails)?[_c('tr',{key:item.uuid + 'expand'},[_c('td',{attrs:{\"colspan\":_vm.customHeaders.length + 1}},[_vm._t(\"details\",null,{\"item\":item})],2)])]:_vm._e()]:[_c('pd-data-table-edit-row',{key:item.uuid,attrs:{\"row-class\":_vm.rowClass(_vm.editItem, i),\"headers\":_vm.customHeaders,\"editable\":_vm.editable,\"item\":_vm.editingItem,\"has-details\":_vm.options.hasDetails}})]]})],2):_vm._e()]),(_vm.options.pagination !== false)?_c('v-row',{staticClass:\"border-top border-bottom mx-0 caption\"},[_c('v-col',[_c('div',{staticClass:\"d-flex align-items-center justify-end\"},[_c('div',{staticClass:\"v-data-footer__select\",class:{'text--disabled': _vm.editingItem != null}},[_vm._v(\" Rows per page: \"),_c('v-select',{staticClass:\"my-0\",attrs:{\"dense\":\"\",\"disabled\":_vm.editingItem != null,\"items\":_vm.itemsPerPageArray,\"item-text\":\"text\",\"item-value\":\"value\"},model:{value:(_vm.itemsPerPage),callback:function ($$v) {_vm.itemsPerPage=$$v},expression:\"itemsPerPage\"}})],1),_c('div',{staticClass:\"mx-8\",class:{'text--disabled': _vm.editingItem != null}},[_vm._v(\" \"+_vm._s(_vm.firstItemPosition)+\" - \"+_vm._s(_vm.lastItemPosition)+\" of \"+_vm._s(_vm.totalItems)+\" \")]),_c('div',[_c('v-btn',{staticClass:\"mr-4\",attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":_vm.prevPageDisabled || _vm.editingItem != null},on:{\"click\":_vm.prevPage}},[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.left)+\" \")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":_vm.nextPageDisabled || _vm.editingItem != null},on:{\"click\":_vm.nextPage}},[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.right)+\" \")])],1)],1)])])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"value\":true,\"width\":\"unset\",\"max-width\":\"1000px\",\"persistent\":\"\"},on:{\"input\":_vm.sync}},[_c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t('table.translations.button'))+\" \")]),_c('v-card-text',[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('table.translations.language'))+\" \")]),_vm._l((_vm.columns),function(i){return _c('th',{key:i.id},[_vm._v(\" \"+_vm._s(i.text)+\" \")])})],2)]),_c('tbody',_vm._l((_vm.entity.languages),function(value){return _c('tr',{key:value.language},[_c('td',[_vm._v(\" \"+_vm._s(_vm.languages[value.language].name)+\" \")]),_vm._l((_vm.columns),function(col){return _c('td',{key:col.id,attrs:{\"width\":col.translationWidth}},[_c('v-text-field',{model:{value:(_vm.item.translations[value.language][col.id]),callback:function ($$v) {_vm.$set(_vm.item.translations[value.language], col.id, $$v)},expression:\"item.translations[value.language][col.id]\"}})],1)})],2)}),0)])],1),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancel}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.save'))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { IDto, ITranslatableDto } from '@/dtos/IDto';\nimport { ApplicationModule } from '@/store';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { PdDataTableHeader } from './PdDataTableHeader';\n\nexport default defineComponent({\n name: 'PdDataTableTranslations',\n props: {\n columns: {\n type: Array as () => Array>>,\n required: true,\n },\n item: {\n type: Object as () => ITranslatableDto,\n required: true,\n },\n },\n setup(props, { emit }) {\n function sync(value: boolean) {\n emit('closing', value);\n }\n\n function saveChanges() {\n emit('save');\n }\n\n function cancel() {\n emit('cancel');\n }\n\n const languages = ref(ApplicationModule.AllLanguages);\n const entity = ref(ApplicationModule.Entity);\n\n if (entity.value != null) {\n for (let i = 0; i < entity.value.languages.length; ++i) {\n if (props.item.translations[entity.value.languages[i].language] == null) {\n props.item.translations[entity.value.languages[i].language] = {};\n }\n }\n }\n\n return {\n sync,\n saveChanges,\n cancel,\n languages,\n entity,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDataTableTranslations.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDataTableTranslations.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdDataTableTranslations.vue?vue&type=template&id=12c7ada5&scoped=true&\"\nimport script from \"./PdDataTableTranslations.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdDataTableTranslations.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"12c7ada5\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VDialog,VSimpleTable,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup-card',{attrs:{\"visible\":true,\"width\":\"unset\",\"max-width\":\"1000px\",\"persistent\":\"\",\"index\":5},on:{\"input\":_vm.sync},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._t(\"title\",[(_vm.item.id === 0)?[_vm._v(\" \"+_vm._s(_vm.$t('table.editing.new', {title: _vm.title}))+\" \")]:[_vm._v(\" \"+_vm._s(_vm.$t('table.editing.edit', {title: _vm.title}))+\" \")]])]},proxy:true},{key:\"default\",fn:function(){return [_vm._t(\"content\",[_vm._v(\" DEFAULT SLOT OF PdDataTablePopupEditor \")])]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancel}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.save'))+\" \")])]},proxy:true}],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-overlay',{attrs:{\"value\":true,\"z-index\":_vm.index,\"opacity\":\"0.2\",\"width\":_vm.width}},[_c('v-row',{directives:[{name:\"resize\",rawName:\"v-resize\",value:(_vm.onResize),expression:\"onResize\"}],ref:\"overlay\",staticClass:\"red--text\",staticStyle:{\"height\":\"100vh\"},attrs:{\"justify\":\"center\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"text-center\"},[_c('v-card',{attrs:{\"light\":\"\",\"width\":_vm.cardWidth}},[_c('v-card-title',[_vm._t(\"title\")],2),_c('v-card-text',{staticClass:\"popup-card text-left\",style:({'max-height': _vm.maxHeight})},[_vm._t(\"default\")],2),_c('v-card-actions',{staticClass:\"justify-center\"},[_vm._t(\"actions\")],2)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, ref, watch, nextTick } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'PdPopupCard',\n\n props: {\n index: {\n type: Number,\n default: 11,\n },\n\n width: {\n type: [Number, String],\n default: '900px',\n },\n },\n\n setup(props) {\n const overlay = ref(null);\n const overlayHeight = ref(0);\n\n const cardWidth = computed(() => {\n if (typeof (props.width) === 'number') {\n return props.width + 'px';\n } else {\n return props.width;\n }\n });\n\n function onResize() {\n nextTick(() => {\n if (overlay.value === null) {\n overlayHeight.value = 0;\n } else {\n overlayHeight.value = overlay.value.clientHeight;\n }\n });\n }\n\n watch(\n overlay,\n () => {\n onResize();\n },\n { immediate: true },\n );\n\n const maxHeight = computed(() => {\n return (overlayHeight.value - 200) + 'px';\n });\n\n return {\n overlay,\n overlayHeight,\n cardWidth,\n onResize,\n maxHeight,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdPopupCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdPopupCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdPopupCard.vue?vue&type=template&id=77f099e0&scoped=true&\"\nimport script from \"./PdPopupCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdPopupCard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PdPopupCard.vue?vue&type=style&index=0&id=77f099e0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"77f099e0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardActions,VCardText,VCardTitle,VCol,VOverlay,VRow})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Resize from 'vuetify/lib/directives/resize'\ninstallDirectives(component, {Resize})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\n\nexport default defineComponent({\n name: 'PdDataTablePopupEditor',\n\n components: {\n PdPopupCard,\n },\n\n props: {\n title: String,\n\n item: {\n type: Object,\n required: true,\n },\n\n validationErrors: {\n type: Object,\n default: () => { return {}; },\n },\n },\n\n setup(props, { emit }) {\n function sync(value: boolean) {\n emit('closing', value);\n }\n\n function saveChanges() {\n emit('save');\n }\n\n function cancel() {\n emit('cancel');\n }\n\n return {\n sync,\n saveChanges,\n cancel,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDataTablePopupEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDataTablePopupEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdDataTablePopupEditor.vue?vue&type=template&id=572dee85&scoped=true&\"\nimport script from \"./PdDataTablePopupEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdDataTablePopupEditor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"572dee85\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.editMode)?_c('td',[_c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({staticStyle:{\"min-width\":\"50px\",\"width\":\"100%\",\"height\":\"20px\",\"border\":\"1px solid rgba(0,0,0, 0.5)\"},style:({'background-color': _vm.value})},'div',attrs,false),on))]}}],null,false,862943752)},[_c('v-color-picker',{attrs:{\"value\":_vm.value,\"dot-size\":\"25\",\"swatches-max-height\":\"250\"},on:{\"input\":_vm.change}})],1)],1):_c('td',[_c('div',{staticStyle:{\"min-width\":\"50px\",\"width\":\"100%\",\"height\":\"20px\"},style:({'background-color': _vm.value})})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IDto } from '@/dtos';\nimport { PropType } from '@vue/composition-api';\nimport type { PdColumnParameters } from '.';\nimport { PdDataTableHeader, TemplateReturnType } from '..';\n\nexport const PdColumnProps = {\n item: {\n required: false,\n type: Object as PropType,\n },\n value: {\n required: true,\n },\n text: {\n required: false,\n type: [Object, String, Number, Boolean] as PropType,\n },\n header: {\n required: true,\n type: Object as () => PdDataTableHeader,\n },\n editMode: {\n type: Boolean,\n default: false,\n },\n isNew: {\n type: Boolean,\n default: false,\n },\n parameters: {\n type: Object as PropType>,\n required: false,\n },\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { PdColumnProps } from './PdColumnProps';\n\nexport default defineComponent({\n name: 'PdColumnColor',\n props: {\n ...PdColumnProps,\n },\n setup(props, { emit }) {\n const visibleText = ref('');\n const title = ref('');\n\n if (!props.editMode) {\n visibleText.value = props.value as string;\n }\n\n function change(value: unknown) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const v = (value as any).hex;\n if (v != null) {\n value = v;\n }\n\n emit('input', value);\n }\n\n return {\n visibleText,\n title,\n change,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnColor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnColor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdColumnColor.vue?vue&type=template&id=60a54810&scoped=true&\"\nimport script from \"./PdColumnColor.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdColumnColor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PdColumnColor.vue?vue&type=style&index=0&id=60a54810&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"60a54810\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VColorPicker } from 'vuetify/lib/components/VColorPicker';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VColorPicker,VMenu})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.editMode)?_c('td',[_c('v-combobox',{attrs:{\"value\":_vm.value,\"clearable\":\"\",\"dense\":\"\",\"hide-details\":\"auto\",\"items\":_vm.items},on:{\"change\":_vm.change}})],1):_c('td',{attrs:{\"title\":_vm.title}},[_vm._v(\" \"+_vm._s(_vm.visibleText)+\" \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { PdColumnProps } from './PdColumnProps';\n\nexport default defineComponent({\n name: 'PdColumnComboBox',\n\n props: {\n ...PdColumnProps,\n },\n\n setup(props, { emit }) {\n const visibleText = ref('');\n const title = ref('');\n\n if (typeof props.text === 'object') {\n visibleText.value = props.text.text;\n title.value = props.text.tooltip || '';\n } else {\n visibleText.value = props.text?.toString() || '';\n }\n\n function change(value: unknown) {\n emit('input', value);\n }\n\n let items: Array = [];\n if (props.parameters != null && props.parameters.items != null && Array.isArray(props.parameters.items)) {\n items = props.parameters.items;\n }\n\n return {\n change,\n visibleText,\n title,\n items,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnComboBox.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnComboBox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdColumnComboBox.vue?vue&type=template&id=f7d28006&scoped=true&\"\nimport script from \"./PdColumnComboBox.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdColumnComboBox.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f7d28006\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\ninstallComponents(component, {VCombobox})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.editMode)?_c('td',[_c('date-time-picker',{attrs:{\"id\":_vm.header.id,\"value\":_vm.value,\"no-button-now\":\"\",\"locale\":\"en-US\",\"formatted\":\"DD MMM YYYY HH:mm\",\"format\":\"YYYY-MM-DD HH:mm Z\",\"minute-interval\":5,\"label\":_vm.header.title,\"no-header\":\"\"},on:{\"input\":_vm.change}})],1):_c('td',[_vm._v(\" \"+_vm._s(_vm.visibleText)+\" \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { DateTimeTemplate } from '@/core/helpers/templates/DateTemplate';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { PdColumnProps } from './PdColumnProps';\n\nexport default defineComponent({\n name: 'PdColumnDateTime',\n props: {\n ...PdColumnProps,\n },\n setup(props, { emit }) {\n const visibleText = ref('');\n const title = ref('');\n\n if (!props.editMode) {\n visibleText.value = DateTimeTemplate(props.value as string).text;\n }\n\n function change(value: unknown) {\n emit('input', value);\n }\n\n return {\n visibleText,\n title,\n change,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnDateTime.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnDateTime.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdColumnDateTime.vue?vue&type=template&id=6e623487&scoped=true&\"\nimport script from \"./PdColumnDateTime.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdColumnDateTime.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6e623487\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.editMode)?_c('td',[_c('v-text-field',{attrs:{\"value\":_vm.value,\"label\":_vm.header.title},on:{\"change\":_vm.change}})],1):_c('td',{attrs:{\"title\":_vm.title}},[_vm._t(\"prepend\"),_vm._v(\" \"+_vm._s(_vm.visibleText)+\" \")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { PdColumnProps } from './PdColumnProps';\n\nexport default defineComponent({\n name: 'PdColumnDefault',\n props: {\n ...PdColumnProps,\n },\n setup(props, { emit }) {\n const visibleText = ref('');\n const title = ref('');\n\n if (props.text == null) {\n visibleText.value = '';\n } else if (typeof props.text === 'object') {\n visibleText.value = props.text.text;\n title.value = props.text.tooltip || '';\n } else {\n visibleText.value = props.text.toString();\n }\n\n function change(value: unknown) {\n emit('input', value);\n }\n\n return {\n change,\n visibleText,\n title,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnDefault.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnDefault.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdColumnDefault.vue?vue&type=template&id=12a3c020&scoped=true&\"\nimport script from \"./PdColumnDefault.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdColumnDefault.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"12a3c020\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.editMode)?_c('td',[_c('v-select',{attrs:{\"value\":_vm.value,\"dense\":\"\",\"hide-details\":\"auto\",\"items\":_vm.items},on:{\"change\":_vm.change}})],1):_c('td',{attrs:{\"title\":_vm.title}},[_vm._v(\" \"+_vm._s(_vm.visibleText)+\" \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { PdColumnProps } from './PdColumnProps';\n\nexport default defineComponent({\n name: 'PdColumnDropDown',\n\n props: {\n ...PdColumnProps,\n },\n\n setup(props, { emit }) {\n const visibleText = ref('');\n const title = ref('');\n\n if (typeof props.text === 'object') {\n visibleText.value = props.text.text;\n title.value = props.text.tooltip || '';\n } else {\n visibleText.value = props.text?.toString() || '';\n }\n\n function change(value: unknown) {\n emit('input', value);\n }\n\n let items: Array = [];\n if (props.editMode === true && props.parameters != null && props.parameters.items != null) {\n if (Array.isArray(props.parameters.items)) {\n items = props.parameters.items;\n } else if (typeof (props.parameters.items) === 'function') {\n if (props.item != null) {\n items = props.parameters.items(props.item);\n }\n }\n }\n\n return {\n change,\n visibleText,\n title,\n items,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnDropDown.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnDropDown.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdColumnDropDown.vue?vue&type=template&id=5cb8b53d&scoped=true&\"\nimport script from \"./PdColumnDropDown.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdColumnDropDown.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5cb8b53d\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.editMode)?_c('td',[_c('v-text-field',{attrs:{\"value\":_vm.value,\"label\":_vm.header.title,\"type\":\"number\"},on:{\"input\":_vm.change,\"keypress\":_vm.preventNonNumericalInput}})],1):_c('td',{attrs:{\"title\":_vm.title}},[_vm._v(\" \"+_vm._s(_vm.visibleText)+\" \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function preventNonNumericalInput(e: KeyboardEvent): void {\n if (!e.key.match(/^[0-9.]+$/)) {\n e.preventDefault();\n }\n}\n\nexport function preventNonIntegerInput(e: KeyboardEvent): void {\n if (!e.key.match(/^[0-9]+$/)) {\n e.preventDefault();\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport preventNonNumericalInput from '@/components/core/PreventNonNumericalInput';\nimport { PdColumnProps } from './PdColumnProps';\n\nexport default defineComponent({\n name: 'PdColumnNumber',\n props: {\n ...PdColumnProps,\n },\n setup(props, { emit }) {\n const visibleText = ref('');\n const title = ref('');\n if (props.text == null) {\n visibleText.value = '';\n } else if (typeof props.text === 'object') {\n visibleText.value = props.text.text;\n title.value = props.text.tooltip || '';\n } else {\n visibleText.value = props.text.toString();\n }\n\n function change(value: unknown) {\n emit('input', value);\n }\n\n return {\n change,\n visibleText,\n title,\n preventNonNumericalInput,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnNumber.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnNumber.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdColumnNumber.vue?vue&type=template&id=26c74d6c&scoped=true&\"\nimport script from \"./PdColumnNumber.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdColumnNumber.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"26c74d6c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.editMode && _vm.watchPassed)?_c('td',[_c('v-text-field',{model:{value:(_vm.value[_vm.language][_vm.header.id]),callback:function ($$v) {_vm.$set(_vm.value[_vm.language], _vm.header.id, $$v)},expression:\"value[language][header.id]\"}})],1):_c('td',{attrs:{\"title\":_vm.title}},[_vm._t(\"prepend\"),_vm._v(\" \"+_vm._s(_vm.visibleText)+\" \")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { ApplicationModule } from '@/store';\nimport { PdColumnProps } from './PdColumnProps';\n\nexport default defineComponent({\n name: 'PdColumnTranslation',\n props: {\n ...PdColumnProps,\n },\n setup(props) {\n const visibleText = ref('');\n const title = ref('');\n const language = ref(ApplicationModule.Language);\n const watchPassed = ref(false);\n\n watch(\n () => props.editMode,\n (value) => {\n if (value) {\n edit();\n } else {\n watchPassed.value = false;\n }\n },\n );\n\n function edit() {\n const translations = props.value as { [key: string]: { [key: string]: unknown } };\n\n if (translations[ApplicationModule.Language] == null) {\n translations[ApplicationModule.Language] = {};\n }\n\n if (props.header != null && translations[ApplicationModule.Language][props.header.id] === undefined) {\n if (!props.isNew && translations['en-US'] != null) {\n translations[ApplicationModule.Language][props.header.id] = translations['en-US'][props.header.id];\n } else {\n if (props.header.defaultValue !== undefined) {\n const def = props.header.defaultValue;\n if (typeof (def) === 'function') {\n translations[ApplicationModule.Language][props.header.id] = def();\n } else {\n translations[ApplicationModule.Language][props.header.id] = def;\n }\n } else {\n translations[ApplicationModule.Language][props.header.id] = '';\n }\n }\n }\n\n if (props.isNew && props.header != null && props.header.defaultValue !== undefined) {\n const def = props.header.defaultValue;\n if (typeof (def) === 'function') {\n translations[ApplicationModule.Language][props.header.id] = def();\n } else {\n translations[ApplicationModule.Language][props.header.id] = def;\n }\n }\n\n watchPassed.value = true;\n }\n\n if (props.editMode) {\n edit();\n } else {\n if (props.text == null) {\n visibleText.value = '';\n } else if (typeof props.text === 'object') {\n visibleText.value = props.text.text || '';\n title.value = props.text.tooltip || '';\n } else {\n visibleText.value = props.text.toString();\n }\n }\n\n function textChanged(newValue: string) {\n const translations = props.value as { [key: string]: { [key: string]: unknown } };\n if (props.header != null) {\n translations[ApplicationModule.Language][props.header.id] = newValue;\n }\n }\n\n return {\n visibleText,\n title,\n textChanged,\n language,\n watchPassed,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnTranslation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnTranslation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdColumnTranslation.vue?vue&type=template&id=afdb5366&scoped=true&\"\nimport script from \"./PdColumnTranslation.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdColumnTranslation.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"afdb5366\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.editMode)?_c('td',[_c('v-switch',{attrs:{\"input-value\":_vm.value,\"title\":_vm.header.title,\"true-value\":true,\"false-value\":false,\"dense\":\"\"},on:{\"change\":_vm.change}})],1):_c('td',[_vm._v(\" \"+_vm._s(_vm.visibleText)+\" \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { PdColumnProps } from './PdColumnProps';\n\nimport i18n from '@/i18n';\n\nexport default defineComponent({\n name: 'PdColumnYesNo',\n props: {\n ...PdColumnProps,\n },\n setup(props, { emit }) {\n const visibleText = ref('');\n const title = ref('');\n\n if (!props.editMode) {\n if (props.text == null) {\n visibleText.value = '';\n } else if (typeof props.text === 'object') {\n visibleText.value = props.text.text;\n title.value = props.text.tooltip || '';\n } else {\n visibleText.value = props.text ? i18n.t('true').toString() : i18n.t('false').toString();\n }\n }\n\n function change(value: unknown) {\n emit('input', value);\n }\n\n return {\n visibleText,\n title,\n change,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnYesNo.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnYesNo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdColumnYesNo.vue?vue&type=template&id=1a883ae0&scoped=true&\"\nimport script from \"./PdColumnYesNo.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdColumnYesNo.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a883ae0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VSwitch})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.editMode && _vm.editable)?_c('td',[_c('v-select',{attrs:{\"items\":_vm.items,\"dense\":\"\",\"hide-details\":\"auto\"},model:{value:(_vm.selectedItem),callback:function ($$v) {_vm.selectedItem=$$v},expression:\"selectedItem\"}})],1):_c('td',[_vm._t(\"prepend\"),_vm._v(\" \"+_vm._s(_vm.displayText)+\" \")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport { PdColumnProps } from './PdColumnProps';\n\nexport default defineComponent({\n name: 'PdDropDownColumn',\n\n props: {\n ...PdColumnProps,\n },\n\n setup(props) {\n const displayText = ref('');\n const selectedItem = ref(0);\n\n watch(\n () => props.text,\n () => refreshDisplayText,\n );\n\n const editable = computed(() => {\n if (props.header == null) {\n return false;\n }\n\n if (props.header.editable != null) {\n if (typeof (props.header.editable) === 'function') {\n return props.header.editable(props.item || { id: 0 });\n } else {\n return props.header.editable;\n }\n }\n\n return true;\n });\n\n var items = computed>(() => {\n if (props.editMode && props.header != null && props.header.parameters != null && props.header.parameters.items != null) {\n if (typeof (props.header.parameters.items) === 'function') {\n return props.header.parameters.items(props.item || { id: 0 });\n } else {\n return props.header.parameters.items;\n }\n }\n return [];\n });\n\n if (props.item != null && props.header != null) {\n const v = props.value;\n if (typeof (v) === 'string' || typeof (v) === 'number') {\n selectedItem.value = v;\n } else {\n selectedItem.value = null;\n }\n }\n\n watch(\n selectedItem,\n () => {\n if (props.header == null) {\n throw new Error('Header cannot be null on editing...');\n }\n\n if (props.item == null) {\n const error = 'Item cannot be emtpy on editing ' + props.header.id;\n console.error(error);\n throw new Error(error);\n }\n\n props.item[props.header.value] = selectedItem.value;\n },\n );\n\n async function refreshDisplayText() {\n if (props.text == null) {\n if (props.item != null && props.header?.template != null) {\n displayText.value = (await props.header.template(props.item)).text;\n return;\n }\n\n if (props.header == null || props.item == null) {\n displayText.value = '';\n return;\n }\n\n const v = props.item[props.header.value];\n\n const items = props.header?.parameters?.items;\n if (items == null) {\n displayText.value = '';\n return;\n }\n\n let search;\n if (typeof (items) === 'function') {\n search = items(props.item || { id: 0 });\n } else {\n search = items;\n }\n\n const val = search.find(i => {\n if (typeof (i) === 'string') {\n return i === v;\n } else {\n return i.value === v;\n }\n });\n\n if (val == null) {\n displayText.value = '';\n return;\n }\n\n if (typeof (val) === 'string') {\n displayText.value = val;\n return;\n }\n\n displayText.value = val.text.toString();\n }\n }\n refreshDisplayText();\n\n return {\n displayText,\n editable,\n selectedItem,\n items,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDropDownColumn.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDropDownColumn.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdDropDownColumn.vue?vue&type=template&id=0e13387c&scoped=true&\"\nimport script from \"./PdDropDownColumn.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdDropDownColumn.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0e13387c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.editMode && _vm.editable)?_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"auto\"},model:{value:(_vm.displayText),callback:function ($$v) {_vm.displayText=$$v},expression:\"displayText\"}})],1):_c('td',[_vm._t(\"prepend\"),_vm._v(\" \"+_vm._s(_vm.displayText)+\" \")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { IDto, ITranslatableDto } from '@/dtos/IDto';\nimport { ApplicationModule } from '@/store';\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport { PdColumnProps } from './PdColumnProps';\n\nexport default defineComponent({\n name: 'PdTextColumn',\n\n props: {\n ...PdColumnProps,\n },\n\n setup(props) {\n const displayText = ref('');\n\n watch(\n () => props.text,\n () => refreshDisplayText,\n );\n\n const editable = computed(() => {\n if (props.header == null) {\n return false;\n }\n\n if (props.header.editable != null) {\n if (typeof (props.header.editable) === 'function') {\n return props.header.editable(props.item || { id: 0 });\n } else {\n return props.header.editable;\n }\n }\n\n return true;\n });\n\n watch(\n displayText,\n () => {\n if (props.header == null) {\n throw new Error('Header cannot be null on editing...');\n }\n\n if (props.item == null) {\n const error = 'Item cannot be emtpy on editing ' + props.header.id;\n console.error(error);\n throw new Error(error);\n }\n\n if (props.header.translatable === true) {\n if (!props.header.translationValue) {\n const error = 'TranslationValue cannot be empty for translatable column' + props.header.id;\n console.error(error);\n throw new Error(error);\n }\n\n if ((props.item as ITranslatableDto).translations == null) {\n (props.item as ITranslatableDto).translations = {};\n }\n\n if ((props.item as ITranslatableDto).translations[ApplicationModule.Language] == null) {\n (props.item as ITranslatableDto).translations[ApplicationModule.Language] = { id: 0 };\n }\n\n (props.item as ITranslatableDto).translations[ApplicationModule.Language][props.header.translationValue] = displayText.value;\n } else {\n if (props.header.template == null) {\n props.item[props.header.value] = displayText.value;\n }\n }\n },\n );\n\n async function refreshDisplayText() {\n if (props.text == null) {\n if (props.item != null && props.header?.template != null) {\n displayText.value = (await props.header.template(props.item)).text;\n return;\n }\n\n if (props.item != null && props.header != null && props.header.translatable === true) {\n if (!props.header.translationValue) {\n const message = 'TranslationValue cannot be empty for column: ' + props.header.id;\n console.error(message);\n throw new Error(message);\n }\n\n displayText.value = LanguageTemplate(props.item as ITranslatableDto, props.header.translationValue).text;\n return;\n } else if (props.item != null && props.header != null) {\n displayText.value = props.item[props.header.value] as string;\n return;\n }\n }\n\n if (props.text != null && typeof (props.text) === 'object') {\n displayText.value = props.text.text;\n return;\n }\n\n if (props.text != null && typeof (props.text) === 'boolean') {\n displayText.value = props.text ? 'Yes' : 'No';\n return;\n }\n\n displayText.value = props.text?.toString() || '';\n }\n\n refreshDisplayText();\n\n return {\n displayText,\n editable,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTextColumn.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTextColumn.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdTextColumn.vue?vue&type=template&id=3037a9a0&scoped=true&\"\nimport script from \"./PdTextColumn.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdTextColumn.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3037a9a0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\",\"close-on-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"},on:{\"dblclick\":function($event){$event.stopPropagation();}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.mdiDotsVertical)+\" \")])],1)]}}])},[_c('v-list',{attrs:{\"dense\":\"\"}},_vm._l((_vm.actions),function(action){return _c('v-list-item',{key:action.id,attrs:{\"disabled\":action.disabled != null && action.disabled(_vm.item) === true},on:{\"click\":function($event){return _vm.$emit('action-click', action)}}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\",\"disabled\":action.disabled != null && action.disabled(_vm.item) === true}},[_vm._v(\" \"+_vm._s(action.icon)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(action.text)+\" \")])],1)}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport { mdiDotsVertical } from '@mdi/js';\n\nexport default defineComponent({\n name: 'PdDataTableActionsMenu',\n\n props: {\n actions: {\n type: Array,\n required: true,\n },\n\n item: {\n type: Object,\n required: true,\n },\n },\n\n setup() {\n return {\n mdiDotsVertical,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDataTableActionsMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDataTableActionsMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdDataTableActionsMenu.vue?vue&type=template&id=f59ed728&scoped=true&\"\nimport script from \"./PdDataTableActionsMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdDataTableActionsMenu.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f59ed728\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.editable.mode !== 'popup')?_c('tr',{class:_vm.rowClass},[(_vm.hasDetails)?[_c('td')]:_vm._e(),_vm._l((_vm.headers),function(h){return [(h.id === 'pd_data_table_actions')?_c('td',{key:h.id,staticClass:\"px-0\",style:({width: h.width})}):_c(_vm.getComponent(h),_vm._b({key:h.id,tag:\"component\",attrs:{\"value\":_vm.item[h.value],\"edit-mode\":h.editable !== false,\"is-new\":_vm.isNew,\"item\":_vm.item,\"text\":_vm.getText(h),\"parameters\":h.parameters,\"header\":h},on:{\"input\":function($event){return _vm.itemChanged(h.value, $event)}}},'component',h.editProps,false))]})],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { PdDataTableHeader, TemplateReturnType } from '@/components/core/PdDataTable';\nimport { IDto } from '@/dtos';\nimport { ITranslatableDto } from '@/dtos/IDto';\nimport { DateTemplate, LanguageTemplate } from './templates';\n\nexport enum SortDirection {\n Original = 'ori',\n Ascending = 'asc',\n Descending = 'desc'\n}\n\nexport function sort(\n items: Array,\n text: { [key: number]: { [key: string]: string | TemplateReturnType } },\n direction: SortDirection,\n header: PdDataTableHeader | null,\n): Array {\n //\n let ret: T[] = JSON.parse(JSON.stringify(items));\n\n if (header != null && header.id != null && direction !== SortDirection.Original) {\n ret = ret.sort((a: T, b: T) => {\n if (header.sort != null) {\n if (direction === SortDirection.Ascending) {\n return header.sort(a[header.id], b[header.id]);\n } else {\n return header.sort(b[header.id], a[header.id]);\n }\n }\n\n const first = (text[a.id] || {})[header.id];\n const second = (text[b.id] || {})[header.id];\n\n const firstText = '' + (typeof (first) === 'object' ? first.text : first);\n const secondText = '' + (typeof (second) === 'object' ? second.text : second);\n\n if (direction === SortDirection.Ascending) {\n return firstText.localeCompare(secondText);\n } else {\n return secondText.localeCompare(firstText);\n }\n });\n }\n\n return ret;\n}\n\nexport function NumberComparison(a: number | string, b: number | string) : number {\n if (typeof (a) === 'string') {\n a = parseFloat(a);\n }\n\n if (typeof (b) === 'string') {\n b = parseFloat(b);\n }\n\n return a - b;\n}\n\ntype TranslatableComparisonReturnType = ((a: ITranslatableDto, b: ITranslatableDto) => number);\n\nexport function TranslatableComparison(parameter: string) : TranslatableComparisonReturnType {\n return (a:ITranslatableDto, b: ITranslatableDto) => {\n const first = LanguageTemplate(a, parameter).text.toLocaleLowerCase();\n const second = LanguageTemplate(b, parameter).text.toLocaleLowerCase();\n\n return first.localeCompare(second);\n };\n}\n\nexport function DateComparison(a: string, b: string) : number {\n return DateTemplate(a).text.localeCompare(DateTemplate(b).text);\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { IDto } from '@/dtos';\nimport { defineComponent } from '@vue/composition-api';\nimport { PdDataTableHeader } from '.';\nimport { PdColumnDefault } from './columns';\n\nexport default defineComponent({\n name: 'PdDataTableEditRow',\n props: {\n headers: {\n type: Array as () => Array>,\n required: true,\n },\n editable: {\n type: [Boolean, Object],\n required: true,\n },\n rowClass: {\n type: Object,\n required: true,\n },\n item: {\n type: Object as () => IDto,\n required: true,\n },\n isNew: {\n type: Boolean,\n default: false,\n },\n hasDetails: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n function getComponent(h: PdDataTableHeader) {\n return h.component || PdColumnDefault;\n }\n\n function itemChanged(column: string, value: unknown) {\n if (props.item != null) {\n props.item[column] = value;\n }\n }\n\n function getText(header: PdDataTableHeader) {\n if (header.editable === false) {\n if (header.template !== null && typeof (header.template) === 'function') {\n return header.template(props.item);\n } else {\n return props.item[header.value];\n }\n } else {\n return '';\n }\n }\n\n return {\n itemChanged,\n getComponent,\n getText,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDataTableEditRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDataTableEditRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdDataTableEditRow.vue?vue&type=template&id=8fb0476a&scoped=true&\"\nimport script from \"./PdDataTableEditRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdDataTableEditRow.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8fb0476a\",\n null\n \n)\n\nexport default component.exports","import { IDto } from '@/dtos';\nimport { IDataSource } from '.';\n\nexport interface DataSourceOptions {\n readonly?: boolean\n // validator?: DtoValidator\n dataChanged?: () => void\n loadingStateChanged?: (state: boolean) => void\n}\n\nexport abstract class DataSourceBase implements IDataSource {\n protected _data: T[] | null;\n // protected readonly key: string;\n protected readonly readonly: boolean;\n\n public dataChanged?: () => void;\n public loadingStateChanged?: (state: boolean) => void;\n\n public get Name(): string {\n return 'datasource';\n }\n\n protected loading: boolean;\n\n protected setLoadingState(state: boolean) : void {\n this.loading = state;\n if (this.loadingStateChanged != null) { this.loadingStateChanged(state); }\n }\n\n public get LoadingState(): boolean {\n return this.loading;\n }\n\n protected constructor(options: DataSourceOptions) {\n this._data = null;\n\n this.readonly = options.readonly || false;\n this.dataChanged = options.dataChanged;\n this.loadingStateChanged = options.loadingStateChanged;\n\n this.loading = false;\n }\n\n abstract data(): Promise>;\n\n abstract get(): Promise>;\n\n public async getById(id: number): Promise {\n if (this._data == null) {\n await this.get();\n }\n\n if (this._data != null && this._data.length > 0) {\n for (let i = 0; i < this._data.length; ++i) {\n if (this._data[i].id === id) {\n return Promise.resolve(this._data[i]);\n }\n }\n }\n return Promise.resolve(null);\n }\n\n abstract update(item: T): Promise;\n\n abstract create(item: T): Promise;\n\n abstract delete(item: T): Promise;\n\n // getValidator(): DtoValidator | undefined {\n // return this.validator;\n // }\n\n // setValidator(validator: DtoValidator): void {\n // this.validator = validator;\n // }\n\n // validateItem(item: T): FieldErrors | undefined {\n // if (this.validator != null) { return this.validator.validate(item); }\n\n // return undefined;\n // }\n\n // validateField(field: string, item: T): string[] | undefined {\n // if (this.validator != null) { return this.validator.validateField(field, item); }\n\n// return undefined;\n// }\n}\n","import axios from '@/api/axios';\nimport { IDto } from '@/dtos';\nimport { AxiosResponse } from 'axios';\nimport { v4 } from 'uuid';\nimport { DataSourceBase, DataSourceOptions } from './DataSourceBase';\n\nexport interface ApiDataSourceOptions extends DataSourceOptions {\n api: string,\n immediate?: boolean\n readonly?: boolean\n parameters?: Map\n}\n\nexport default class ApiDataSource extends DataSourceBase {\n private readonly zero = new Date(0);\n private updated: Date = new Date(0);\n private readonly parameters?: Map;\n\n private currentOperation: Promise | null = null;\n\n private readonly api: string;\n // private readonly apiGet: string;\n // private readonly apiGetById: string;\n // private readonly apiPost: string;\n // private readonly apiPut: string;\n // private readonly apiDelete: string;\n\n constructor(options: ApiDataSourceOptions) {\n super(options);\n\n this.api = options.api;\n\n this.parameters = options.parameters;\n\n if (options.immediate) {\n this.get();\n }\n }\n\n get Name(): string {\n return this.api;\n }\n\n data(): Promise {\n if (this._data != null) {\n return Promise.resolve(JSON.parse(JSON.stringify(this._data)));\n }\n\n if (this.currentOperation === null) {\n this.currentOperation = this.get();\n }\n\n return this.currentOperation;\n }\n\n get(): Promise {\n if (this.currentOperation === null) {\n this._data = null;\n this.setLoadingState(true);\n\n this.currentOperation = new Promise((resolve, reject) => {\n let parameters = '';\n if (this.parameters != null) {\n parameters += '?';\n this.parameters.forEach((v, k) => { parameters += `&${k}=${v}`; });\n }\n\n axios.get(this.api + parameters)\n .then((response: AxiosResponse) => {\n if (this._data == null) {\n this._data = [];\n }\n\n for (let i = 0; i < response.data.length; ++i) {\n this._data.push({ ...JSON.parse(JSON.stringify(response.data[i])), uuid: v4() });\n }\n\n this.updated = new Date();\n\n if (this.dataChanged != null) { this.dataChanged(); }\n\n resolve(JSON.parse(JSON.stringify(this._data)));\n })\n .catch((reason) => {\n reject(reason);\n this._data = [];\n })\n .finally(() => {\n this.currentOperation = null;\n this.setLoadingState(false);\n });\n });\n }\n\n return this.currentOperation;\n }\n\n async create(item: T): Promise {\n this.setLoadingState(true);\n\n if (this.updated === this.zero) {\n await this.get();\n }\n\n try {\n let parameters = '';\n if (this.parameters != null) {\n parameters += '?';\n this.parameters.forEach((v, k) => { parameters += `&${k}=${v}`; });\n }\n\n const response = await axios.post(this.api + parameters, item);\n\n const apiItem = JSON.parse(JSON.stringify(response.data));\n apiItem.uuid = v4();\n\n if (this._data == null) {\n this._data = [];\n }\n\n this._data.push(apiItem);\n\n return Promise.resolve(apiItem);\n } catch (reason) {\n return Promise.reject(reason);\n } finally {\n this.setLoadingState(false);\n }\n }\n\n async update(item: T): Promise {\n this.setLoadingState(true);\n\n if (this.updated === this.zero) {\n await this.get();\n }\n\n if (this._data == null || this._data.length === 0) {\n return Promise.reject(null);\n }\n\n try {\n for (let i = 0; i < this._data.length; ++i) {\n if (this._data[i].id === item.id) {\n // send request\n let parameters = '';\n if (this.parameters != null) {\n parameters += '?';\n this.parameters.forEach((v, k) => { parameters += `&${k}=${v}`; });\n }\n\n const response = await axios.put(`${this.api}/${item.id}${parameters}`, item);\n this._data[i] = JSON.parse(JSON.stringify(response.data));\n return Promise.resolve(this._data[i]);\n }\n }\n } catch (reason) {\n return Promise.reject(reason);\n } finally {\n this.setLoadingState(false);\n };\n\n return Promise.reject(null);\n this.setLoadingState(false);\n }\n\n async delete(item: T): Promise {\n this.setLoadingState(true);\n\n if (this._data == null || this._data.length === 0) {\n return Promise.reject();\n }\n\n if (this.updated === this.zero) {\n await this.get();\n }\n\n try {\n for (let i = 0; i < this._data.length; ++i) {\n if (this._data[i].id === item.id) {\n let parameters = '';\n if (this.parameters != null) {\n parameters += '?';\n this.parameters.forEach((v, k) => { parameters += `&${k}=${v}`; });\n }\n\n await axios.delete(`${this.api}/${item.id}${parameters}`);\n this._data.splice(i, 1);\n return Promise.resolve();\n }\n }\n } catch (reason) {\n return Promise.reject(reason);\n } finally {\n this.setLoadingState(false);\n }\n\n this.setLoadingState(false);\n return Promise.reject();\n }\n}\n","import { IDto } from '@/dtos';\nimport { DataSourceOptions, DataSourceBase } from './DataSourceBase';\nimport cloneDeep from 'lodash.clonedeep';\n\nexport default class ArrayDataSource extends DataSourceBase {\n private original: Array;\n private id = 1;\n\n constructor(data: Array, options: DataSourceOptions) {\n super(options);\n\n this._data = [];\n this.original = data;\n\n if (data.length > 0) {\n const cloned = cloneDeep(data);\n\n if (typeof (cloned[0]) !== 'object') {\n for (let i = 0; i < data.length; ++i) {\n const item: unknown = {\n id: this.id++,\n value: cloned[i],\n };\n\n this._data.push(item as IDto);\n }\n } else {\n for (let i = 0; i < data.length; ++i) {\n this._data.push(data[i] as IDto);\n }\n }\n }\n }\n\n data(): Promise {\n return this.get();\n }\n\n get(): Promise {\n this.setLoadingState(false);\n return new Promise((resolve) => {\n resolve(this._data || []);\n });\n }\n\n async create(item: IDto): Promise {\n if (this._data === null) {\n this._data = [];\n }\n\n item.id = this.id++;\n this._data.push(item);\n this.original.push(item.value);\n\n if (this.dataChanged != null) {\n this.dataChanged();\n }\n\n return Promise.resolve(item);\n }\n\n async update(item: IDto): Promise {\n if (this._data === null || this._data.length === 0) {\n return Promise.reject(null);\n }\n for (let i = 0; i < this._data.length; ++i) {\n if (this._data[i].id === item.id) {\n this._data[i] = item;\n this.original[i] = item.value;\n return Promise.resolve(this._data[i]);\n }\n }\n\n if (this.dataChanged != null) {\n this.dataChanged();\n }\n\n return Promise.reject(null);\n }\n\n delete(item: IDto): Promise {\n if (this._data == null || this._data.length === 0) {\n return Promise.reject('array null');\n }\n\n for (let i = 0; i < this._data.length; ++i) {\n if (this._data[i].id === item.id) {\n this._data.splice(i, 1);\n this.original.splice(i, 1);\n if (this.dataChanged != null) {\n this.dataChanged();\n }\n return Promise.resolve();\n }\n }\n\n return Promise.reject();\n }\n}\n","import { TemplateReturnType } from '@/components/core/PdDataTable';\nimport { IDto } from '@/dtos';\n\nexport function search(\n items: Array,\n text: { [key: number]: { [key: string]: string | TemplateReturnType } },\n searchTerm: string,\n): Array {\n //\n const ret:Array = [];\n\n searchTerm = searchTerm.toLowerCase();\n\n const found: {[key: number]: boolean} = {};\n\n for (const k in text) {\n for (const p in text[k]) {\n const i = text[k][p] as string | TemplateReturnType;\n if (i == null) {\n continue;\n }\n\n let t = '';\n if (typeof i === 'object') {\n t = i.text;\n } else {\n t = i;\n }\n\n if (t.toString) {\n t = t.toString();\n }\n\n if (t.toLowerCase) {\n t = t.toLowerCase();\n }\n\n if (t.includes(searchTerm)) {\n found[k] = true;\n break;\n }\n }\n }\n\n for (let i = 0; i < items.length; ++i) {\n if (found[items[i].id] != null) {\n ret.push(JSON.parse(JSON.stringify(items[i])));\n }\n }\n\n return ret;\n}\n","import { cloneDeep } from 'lodash';\n\nexport function paginate(\n items: Array,\n itemsPerPage: number | null,\n currentPage: number,\n): Array {\n //\n const ret: Array = cloneDeep(items);\n\n if (itemsPerPage == null) {\n return ret;\n }\n\n const totalPages = Math.ceil(ret.length / itemsPerPage);\n\n if (currentPage > totalPages) {\n currentPage = totalPages;\n }\n\n return ret.slice(itemsPerPage * (currentPage - 1), itemsPerPage * currentPage);\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, watch, reactive, computed, PropType } from '@vue/composition-api';\nimport { IDto } from '@/dtos';\nimport { PdDataTableHeader, PdDataTableAction, PdDataTableRowAction, TemplateReturnType, PdDataTableEditable, PdDataTableOptions } from '.';\nimport PdDataTableTranslations from './PdDataTableTranslations.vue';\nimport PdDataTablePopupEditor from './PdDataTablePopupEditor.vue';\nimport { PdColumnDefault } from './columns';\nimport PdDataTableActionsMenu from './PdDataTableActionsMenu.vue';\nimport PdDataTableEditRow from './PdDataTableEditRow.vue';\nimport { ArrayDataSource, IDataSource } from '@/core/datasource';\nimport {\n mdiMagnify,\n mdiArrowDown,\n mdiChevronRight,\n mdiChevronLeft,\n mdiPlus,\n mdiMinus,\n mdiPencil,\n mdiEarthArrowRight,\n mdiMenuRight,\n mdiCheckboxBlankOutline,\n mdiCheckboxMarkedOutline,\n mdiCheckboxMultipleOutline,\n} from '@mdi/js';\nimport { SortDirection, sort } from '@/core/helpers/sort';\nimport { search } from '@/core/helpers/search';\nimport { paginate } from '@/core/helpers/pagination';\nimport i18n from '@/i18n';\nimport { v4 as uuid } from 'uuid';\nimport cloneDeep from 'lodash.clonedeep';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\n\nconst PdDataTable = defineComponent({\n name: 'PdDataTable',\n\n components: {\n PdDataTableActionsMenu,\n PdDataTableTranslations,\n PdDataTableEditRow,\n PdDataTablePopupEditor,\n },\n\n props: {\n title: String,\n\n headers: {\n type: Array as () => Array>,\n required: true,\n },\n\n selectedItem: {\n type: Object as () => IDto,\n required: false,\n },\n\n selectMultiple: {\n type: Boolean,\n default: false,\n },\n\n showSelectAll: {\n type: Boolean,\n default: false,\n },\n\n selectedItems: {\n type: Array as () => Array,\n required: false,\n },\n\n datasource: {\n type: [Object, Array],\n required: false,\n },\n\n height: {\n type: [String, Number],\n required: false,\n },\n\n sort: String,\n\n sortDirection: {\n type: String as () => SortDirection,\n default: SortDirection.Original,\n },\n\n search: Boolean,\n\n requires: [Object, Array],\n\n options: {\n type: [Object],\n default: () => {\n return {\n pagination: true,\n editable: false,\n hasDetails: false,\n };\n },\n },\n\n disableEditOnDoubleClick: {\n type: Boolean,\n default: false,\n },\n\n tableActions: {\n type: Array as () => Array,\n default: () => [],\n },\n\n rowActions: {\n type: Array as () => Array,\n default: () => [],\n },\n\n expanded: {\n type: Object as () => IDto | null,\n default: null,\n },\n\n inEditMode: {\n type: Boolean,\n default: false,\n },\n\n rowsPerPage: {\n type: Number as PropType,\n default: null,\n },\n },\n\n setup(props, { emit }) {\n const dummy = ref(false);\n\n const _selectedItems = ref>([]);\n\n let datasource: IDataSource;\n if (Array.isArray(props.datasource)) {\n datasource = new ArrayDataSource(props.datasource, {});\n } else {\n datasource = props.datasource;\n }\n\n watch(\n () => props.datasource,\n async (newDatasource: IDataSource) => {\n if (Array.isArray(newDatasource)) {\n datasource = new ArrayDataSource(newDatasource, {});\n } else {\n datasource = newDatasource;\n }\n\n if (datasource) {\n const all = await datasource.data();\n updateItems(all || []);\n\n datasource.dataChanged = () => {\n datasource.data().then((data) => {\n updateItems(data || []);\n });\n };\n }\n },\n );\n\n const validationErrors = reactive<{ [key: string]: Array; }>({});\n\n for (let i = 0; i < props.headers.length; ++i) {\n validationErrors[props.headers[i].value] = [];\n }\n\n const editable = ref(false);\n if (props.options != null) {\n editable.value = props.options.editable || false;\n }\n\n let items: Array = [];\n const visibleText: { [key: number]: { [key: string]: string | TemplateReturnType; }; } = reactive({});\n const editingItem = ref(null);\n\n watch(\n editingItem,\n (value) => emit('editing-changed', value),\n );\n\n let filteredItems: Array = [];\n let sortedItems: Array = [];\n const pagedItems = reactive<{ value: Array; }>({\n value: [],\n });\n\n const currentDetails = ref('');\n const openedDetails = reactive<{ [key: string]: boolean; }>({});\n\n const totalPages = ref(1);\n const currentPage = ref(1);\n const firstItemPosition = ref(1);\n const totalItems = ref(1);\n const lastItemPosition = ref(1);\n const nextPageDisabled = ref(false);\n const prevPageDisabled = ref(false);\n const itemsPerPage = ref(props.rowsPerPage);\n const itemsPerPageArray = [\n {\n text: '10',\n value: 10,\n },\n {\n text: '50',\n value: 50,\n },\n {\n text: '100',\n value: 100,\n },\n {\n text: i18n.t('pagination.all'),\n value: null,\n },\n ];\n\n let translatable = false;\n const translatableColumns = ref>>([]);\n const showTranslations = ref(false);\n\n const customRowActions = ref>([]);\n const customTableActions = ref>([]);\n\n for (let i = 0; i < props.headers.length; ++i) {\n if (props.headers[i].translatable) {\n translatable = true;\n translatableColumns.value.push(props.headers[i]);\n }\n }\n\n const totalColumns = computed(() => {\n let total = props.headers.filter(i => i.visible !== false).length;\n if (props.options.hasDetails) {\n total += 1;\n }\n\n if (props.selectMultiple) {\n total += 2;\n }\n\n return total;\n });\n\n function createRowActions() {\n customRowActions.value = [];\n\n if (editable.value === true || (editable.value && editable.value.edit !== false)) {\n customRowActions.value.push({\n id: 'editItem',\n text: i18n.t('table.edit').toString(),\n icon: mdiPencil,\n action: edit,\n disabled: (typeof (props.options.editable) === 'object') ? props.options.editable.disableRowEdit : undefined,\n });\n\n if (translatable) {\n customRowActions.value.push({\n id: 'editTranslations',\n text: i18n.t('table.translations.button').toString(),\n icon: mdiEarthArrowRight,\n action: openTranslations,\n });\n }\n }\n\n if (editable.value === true || (editable.value && editable.value.delete !== false)) {\n customRowActions.value.push({\n id: 'removeItem',\n text: i18n.t('table.remove').toString(),\n icon: mdiMinus,\n action: deleteItem,\n disabled: (typeof (props.options.editable) === 'object') ? props.options.editable.disableRowDelete : undefined,\n });\n }\n\n if (props.rowActions != null && props.rowActions.length > 0) {\n for (let i = 0; i < props.rowActions.length; ++i) {\n customRowActions.value.push(props.rowActions[i]);\n }\n }\n };\n\n watch(\n () => props.rowActions,\n () => createRowActions(),\n );\n createRowActions();\n\n watch(itemsPerPage, () => {\n currentPage.value = 1;\n applyPagination();\n });\n\n function nextPage() {\n if (currentPage.value < totalPages.value) {\n currentPage.value += 1;\n applyPagination();\n }\n }\n\n function prevPage() {\n if (currentPage.value > 1) {\n currentPage.value -= 1;\n applyPagination();\n }\n }\n\n const tableSortBy = ref | null>(null);\n const tableSortDirection = ref(props.sortDirection);\n\n if (props.sort) {\n for (let i = 0; i < props.headers.length; ++i) {\n if (props.headers[i].id === props.sort) {\n tableSortBy.value = props.headers[i];\n tableSortDirection.value = props.sortDirection;\n break;\n }\n }\n }\n\n const tableHeight = ref(props.height);\n\n const customHeaders = ref>>(cloneDeep(props.headers));\n\n async function updateItems(all: Array) {\n emit('updated-data', all);\n\n items = JSON.parse(JSON.stringify(all));\n for (let i = 0; i < items.length; ++i) {\n items[i].uuid = uuid();\n }\n\n for (let i = 0; i < items.length; ++i) {\n await updateVisibleText(all[i]);\n }\n\n if (searchText.value) {\n filteredItems = search(items, visibleText, searchText.value);\n } else {\n filteredItems = JSON.parse(JSON.stringify(items));\n }\n\n if (tableSortDirection.value === SortDirection.Original) {\n sortedItems = JSON.parse(JSON.stringify(filteredItems));\n } else {\n sortedItems = sort(filteredItems, visibleText, tableSortDirection.value, tableSortBy.value as PdDataTableHeader);\n }\n\n applyPagination();\n }\n\n async function updateVisibleText(item: IDto) {\n for (let i = 0; i < customHeaders.value.length; ++i) {\n const header = customHeaders.value[i];\n if (header.id === 'pd_data_table_actions') {\n continue;\n }\n\n if (visibleText[item.id] == null) {\n visibleText[item.id] = {};\n }\n\n if (header.template != null) {\n visibleText[item.id][header.id] = await header.template(item);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n visibleText[item.id][header.id] = (item as any)[header.id];\n }\n }\n\n item.uuid = uuid();\n }\n\n function onResize() {\n if (props.height === '100%') {\n let offset = 240;\n if (props.search) {\n offset += 40;\n }\n const height = window.innerHeight - offset;\n if (tableHeight.value !== height) {\n tableHeight.value = height;\n }\n }\n }\n\n // const searchItems = ref>([]);\n\n const selection = ref(props.selectedItem as IDto);\n\n const working = ref(false);\n const loading = ref(false);\n const initialLoading = ref(true);\n\n watch(\n editingItem,\n (ei) => {\n emit('update:inEditMode', ei != null);\n },\n );\n\n const searchText = ref('');\n\n watch(searchText, (current, prev) => {\n current = current.toLowerCase();\n prev = prev.toLowerCase();\n\n let resort = false;\n // if there was no prev search there we can search directly sorted items (they are all there)\n if (prev.length <= current.length && current.startsWith(prev)) {\n // we can search in existing data\n // no need to sort again after search,\n filteredItems = search(sortedItems, visibleText, current);\n } else {\n // need to search all data\n filteredItems = search(items, visibleText, current);\n\n // need to sort\n if (tableSortBy.value != null && tableSortDirection.value !== SortDirection.Original) {\n resort = true;\n }\n }\n\n if (resort) {\n sortedItems = sort(filteredItems, visibleText, tableSortDirection.value, tableSortBy.value as PdDataTableHeader);\n } else {\n sortedItems = JSON.parse(JSON.stringify(filteredItems));\n }\n\n applyPagination();\n });\n\n function applyPagination() {\n totalItems.value = sortedItems.length;\n\n if (itemsPerPage.value == null) {\n currentPage.value = 1;\n } else if ((currentPage.value - 1) * itemsPerPage.value > sortedItems.length) {\n currentPage.value = Math.ceil(sortedItems.length / itemsPerPage.value);\n }\n\n let first = 1;\n let last = sortedItems.length;\n\n if (sortedItems.length === 0) {\n first = 0;\n last = 0;\n totalPages.value = 1;\n } else {\n totalPages.value = Math.ceil(sortedItems.length / (itemsPerPage.value || sortedItems.length));\n first = (currentPage.value - 1) * (itemsPerPage.value || 1) + 1;\n last = currentPage.value * (itemsPerPage.value || sortedItems.length);\n if (last > sortedItems.length) {\n last = sortedItems.length;\n }\n }\n\n firstItemPosition.value = first;\n lastItemPosition.value = last;\n\n prevPageDisabled.value = currentPage.value === 1;\n nextPageDisabled.value = currentPage.value === totalPages.value;\n\n pagedItems.value = paginate(sortedItems, itemsPerPage.value, currentPage.value);\n }\n\n watch(\n pagedItems,\n () => {\n if (itemsPerPage.value == null) {\n totalPages.value = 1;\n currentPage.value = 1;\n } else {\n totalPages.value = Math.ceil(sortedItems.length / itemsPerPage.value);\n if (totalPages.value === 0) {\n totalPages.value = 1;\n }\n if (currentPage.value > totalPages.value) {\n currentPage.value = totalPages.value;\n }\n }\n },\n );\n\n watch(loading, (value) => {\n emit('loading-state-changed', value);\n });\n\n if (customHeaders.value[customHeaders.value.length - 1].id !== 'pd_data_table_actions') {\n customHeaders.value.push({\n id: 'pd_data_table_actions',\n width: '40px',\n text: '',\n value: '',\n sortable: false,\n filterable: false,\n });\n }\n\n function columnSort(header: PdDataTableHeader): void {\n if (editingItem.value == null && header.sortable !== false) {\n if (tableSortBy.value != null && tableSortBy.value.id === header.id) {\n if (tableSortDirection.value === SortDirection.Ascending) {\n tableSortDirection.value = SortDirection.Descending;\n } else {\n tableSortBy.value = null;\n tableSortDirection.value = SortDirection.Ascending;\n }\n } else {\n tableSortBy.value = header;\n tableSortDirection.value = SortDirection.Ascending;\n }\n\n sortedItems = sort(filteredItems, visibleText, tableSortDirection.value, tableSortBy.value as PdDataTableHeader);\n applyPagination();\n }\n }\n\n const need: Array> = [];\n if (datasource) {\n need.push(datasource);\n }\n\n let loaded = 0;\n\n if (props.requires != null) {\n if (Array.isArray(props.requires)) {\n for (let i = 0; i < props.requires.length; ++i) {\n need.push(props.requires[i]);\n }\n } else {\n need.push(props.requires);\n }\n }\n\n const loadingDataSources = new Map();\n\n async function loadingStateChanged(ds: IDataSource, value: boolean) {\n if (initialLoading.value) {\n if (value) {\n loading.value = true;\n loadingDataSources.set(ds.Name, true);\n } else {\n loadingDataSources.delete(ds.Name);\n loaded += 1;\n }\n\n if (loaded === need.length) {\n if (datasource) {\n updateItems(await datasource.data() || []);\n }\n loading.value = false;\n initialLoading.value = false;\n }\n } else {\n working.value = value;\n }\n }\n\n for (let i = 0; i < need.length; ++i) {\n need[i].loadingStateChanged = (value: boolean) => {\n loadingStateChanged(need[i], value);\n };\n\n need[i].get();\n }\n\n function changeSelection(item: IDto) {\n if (editingItem.value == null) {\n selection.value = item;\n emit('update:selectedItem', item);\n }\n }\n\n function dblclick(item: IDto) {\n if (!props.disableEditOnDoubleClick && (editable.value === true || (editable.value && editable.value.edit !== false)) && editingItem.value == null) {\n edit(item);\n }\n\n emit('dblclick', item);\n }\n\n function edit(item: IDto) {\n selection.value = item;\n editingItem.value = JSON.parse(JSON.stringify(item));\n return Promise.resolve(null);\n }\n\n function getComponent(h: PdDataTableHeader) {\n return h.component || PdColumnDefault;\n }\n\n function remove() {\n console.log('PdDataTable.remove');\n }\n\n function rowClass(item: IDto, i: number): { [key: string]: boolean; } {\n const classes = {\n selected: false,\n 'even-row': false,\n 'odd-row': false,\n 'text--disabled': false,\n // red: false,\n };\n\n if (editingItem.value != null) {\n if (editingItem.value.id === item.id) {\n // classes.red = true;\n } else {\n classes['text--disabled'] = true;\n }\n }\n\n if (selection.value != null && item.id === selection.value.id) {\n classes.selected = true;\n } else {\n if (i % 2 === 0) {\n classes['even-row'] = true;\n } else {\n classes['odd-row'] = true;\n }\n }\n\n return classes;\n }\n\n function addNewItem() {\n const newItem: IDto = {\n id: 0,\n };\n\n for (let i = 0; i < props.headers.length; ++i) {\n if (props.headers[i].defaultValue != null) {\n const def = props.headers[i].defaultValue;\n if (typeof (def) === 'function') {\n newItem[props.headers[i].value] = cloneDeep(def());\n } else {\n newItem[props.headers[i].value] = cloneDeep(def);\n }\n } else {\n newItem[props.headers[i].value] = null;\n }\n }\n\n // allow translations to get created from parent\n if (translatable && newItem.translations == null) {\n newItem.translations = {};\n }\n\n selection.value = newItem;\n editingItem.value = newItem;\n }\n\n async function editItem() {\n if (selection.value != null) {\n edit(selection.value);\n }\n }\n\n async function deleteItem() {\n try {\n const item = JSON.parse(JSON.stringify(selection.value));\n await datasource.delete(item);\n emit('data-changed');\n\n for (let i = 0; i < items.length; ++i) {\n if (items[i].uuid === item.uuid) {\n items.splice(i, 1);\n break;\n }\n }\n\n if (searchText.value) {\n filteredItems = search(items, visibleText, searchText.value);\n } else {\n filteredItems = JSON.parse(JSON.stringify(items));\n }\n\n if (tableSortDirection.value === SortDirection.Original) {\n sortedItems = JSON.parse(JSON.stringify(filteredItems));\n } else {\n sortedItems = sort(filteredItems, visibleText, tableSortDirection.value, tableSortBy.value as PdDataTableHeader);\n }\n\n applyPagination();\n\n delete visibleText[item.id];\n\n return Promise.resolve(null);\n } catch (error) {\n ErrorHandlingService.Handle(error);\n return Promise.reject();\n }\n }\n\n function openTranslations() {\n if (selection.value != null) {\n edit(selection.value);\n showTranslations.value = true;\n return Promise.resolve(null);\n }\n\n return Promise.reject();\n }\n\n async function saveChanges() {\n try {\n let item = JSON.parse(JSON.stringify(editingItem.value as IDto));\n\n for (let i = 0; i < props.headers.length; ++i) {\n const validation = props.headers[i].validation;\n if (validation != null) {\n validationErrors[props.headers[i].value] = validation(item);\n }\n\n if (validation == null || !Array.isArray(validationErrors[props.headers[i].value]) || validationErrors[props.headers[i].value].length === 0) {\n delete validationErrors[props.headers[i].value];\n }\n }\n\n if (Object.keys(validationErrors).length > 0) {\n // dummy ref value to cause update!\n dummy.value = !dummy.value;\n return;\n }\n\n const options = props.options as PdDataTableOptions;\n if (options.saveChecks != null) {\n if (options.saveChecks(item) === false) {\n return;\n }\n }\n\n if (item.id === 0) {\n item = await datasource.create(item);\n emit('data-changed');\n\n item.uuid = uuid();\n items.push(item);\n\n await updateVisibleText(item);\n\n if (searchText.value) {\n filteredItems = search(items, visibleText, searchText.value);\n } else {\n filteredItems = JSON.parse(JSON.stringify(items));\n }\n\n if (tableSortDirection.value === SortDirection.Original) {\n sortedItems = JSON.parse(JSON.stringify(filteredItems));\n } else {\n sortedItems = sort(filteredItems, visibleText, tableSortDirection.value, tableSortBy.value as PdDataTableHeader);\n }\n\n applyPagination();\n // check if it is in search\n // position in order\n // apply pagination\n } else {\n item = await datasource.update(item);\n item.uuid = uuid();\n emit('data-changed');\n\n for (let i = 0; i < items.length; ++i) {\n if (items[i].id === item.id) {\n items[i] = item;\n await updateVisibleText(items[i]);\n break;\n }\n }\n\n let found = false;\n for (let i = 0; i < filteredItems.length; ++i) {\n if (filteredItems[i].id === item.id) {\n found = true;\n filteredItems[i] = item;\n break;\n }\n }\n\n if (found) {\n for (let i = 0; i < sortedItems.length; ++i) {\n if (sortedItems[i].id === item.id) {\n found = true;\n sortedItems[i] = item;\n break;\n }\n }\n\n for (let i = 0; i < pagedItems.value.length; ++i) {\n if (pagedItems.value[i].id === item.id) {\n pagedItems.value[i] = item;\n break;\n }\n }\n }\n }\n editingItem.value = null;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n }\n\n async function saveTranslations() {\n showTranslations.value = false;\n await saveChanges();\n if (editingItem.value != null) {\n showTranslations.value = true;\n }\n }\n\n function cancelChanges() {\n if (editingItem.value != null && editingItem.value.id === 0) {\n selection.value = null;\n }\n editingItem.value = null;\n }\n\n function cancelTranslations() {\n showTranslations.value = false;\n cancelChanges();\n }\n\n async function rowActionClick(item: IDto, action: PdDataTableRowAction) {\n selection.value = item;\n const ret = await action.action(item);\n\n if (ret != null) {\n updateVisibleText(ret);\n }\n }\n\n function expandRow(item: IDto) {\n const uuid = item.uuid || '';\n\n if (currentDetails.value === uuid) {\n emit('update:expanded', null);\n currentDetails.value = '';\n } else {\n emit('update:expanded', item);\n currentDetails.value = uuid;\n openedDetails[uuid] = true;\n }\n }\n\n function partOfMultiSelect(item: IDto) {\n if (!props.selectMultiple) {\n return false;\n }\n\n return _selectedItems.value.filter(i => i.uuid === item.uuid).length > 0;\n }\n\n function switchMultiSelect(item: IDto) {\n for (let i = 0; i < _selectedItems.value.length; ++i) {\n if (_selectedItems.value[i].uuid === item.uuid) {\n _selectedItems.value.splice(i, 1);\n emit('update:selectedItems', _selectedItems.value);\n return;\n }\n }\n\n // reaching this means it didn't find it!\n _selectedItems.value.push(item);\n emit('update:selectedItems', _selectedItems.value);\n }\n\n function selectAll() {\n const items = sortedItems; // filtered - sorted\n const ret: Array = [];\n\n for (let i = 0; i < items.length; ++i) {\n ret.push(items[i]);\n }\n\n _selectedItems.value = ret;\n\n emit('update:selectedItems', _selectedItems.value);\n }\n\n return {\n visibleText,\n pagedItems,\n\n editingItem,\n\n customHeaders,\n totalColumns,\n\n translatableColumns,\n showTranslations,\n openTranslations,\n\n tableHeight,\n onResize,\n\n columnSort,\n tableSortBy,\n tableSortDirection,\n\n totalPages,\n itemsPerPage,\n itemsPerPageArray,\n currentPage,\n firstItemPosition,\n lastItemPosition,\n totalItems,\n nextPage,\n nextPageDisabled,\n prevPage,\n prevPageDisabled,\n\n getComponent,\n rowClass,\n dblclick,\n\n selection,\n changeSelection,\n _selectedItems,\n partOfMultiSelect,\n switchMultiSelect,\n selectAll,\n\n validationErrors,\n\n loading,\n working,\n\n searchText,\n customRowActions,\n rowActionClick,\n customTableActions,\n\n remove,\n\n addNewItem,\n editItem,\n deleteItem,\n saveChanges,\n cancelChanges,\n saveTranslations,\n cancelTranslations,\n\n editable,\n\n expandRow,\n currentDetails,\n openedDetails,\n\n dummy,\n\n icons: {\n mdiMagnify,\n sort: mdiArrowDown,\n left: mdiChevronLeft,\n right: mdiChevronRight,\n mdiPlus,\n mdiMinus,\n mdiPencil,\n mdiEarthArrowRight,\n mdiMenuRight,\n mdiCheckboxBlankOutline,\n mdiCheckboxMarkedOutline,\n mdiCheckboxMultipleOutline,\n },\n };\n },\n});\n\nexport default PdDataTable;\n","import { IDto } from '@/dtos';\nimport { TranslateResult } from 'vue-i18n';\nexport { default as PdDataTable } from './PdDataTable.vue';\nexport { default as PdDataTableActionsMenu } from './PdDataTableActionsMenu.vue';\nexport type { PdDataTableHeader, TemplateReturnType } from './PdDataTableHeader';\nexport { default as PdDataTableTranslations } from './PdDataTableTranslations.vue';\n\nexport enum PdDataTableEditMode {\n Inline = 'inline',\n Popup = 'popup',\n}\nexport interface PdDataTableEditable {\n mode?: PdDataTableEditMode,\n edit?: boolean,\n add?: boolean,\n delete?: boolean,\n\n disableRowEdit?: (item: IDto) => boolean,\n disableRowDelete?: (item: IDto) => boolean,\n}\n\nexport interface PdDataTableOptions {\n editable?: PdDataTableEditable | boolean\n pagination?: boolean\n hasDetails?: boolean\n saveChecks?: (item: IDto) => boolean\n selectMultiple?: boolean\n\n itemTemplate?: (item: T) => string | TranslateResult,\n defaultNew?: T\n}\n\nexport interface PdDataTableRowAction {\n id: string,\n text: string,\n icon?: string,\n action: (item: IDto) => Promise\n disabled?: (item: IDto) => boolean\n}\n\nexport interface PdDataTableAction {\n id: string,\n text: string,\n color?: string,\n icon?: string,\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDataTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDataTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdDataTable.vue?vue&type=template&id=02afb3c8&scoped=true&\"\nimport script from \"./PdDataTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdDataTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PdDataTable.vue?vue&type=style&index=0&id=02afb3c8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"02afb3c8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VCol,VIcon,VProgressLinear,VRow,VSelect,VSimpleTable,VTextField})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Resize from 'vuetify/lib/directives/resize'\ninstallDirectives(component, {Resize})\n","import { ApplicationModule } from '@/store';\n\nabstract class DatasourceBase {\n private static currentEntityId = 0;\n\n protected static get EntityId() : number {\n const entityId = ApplicationModule.Entity?.id;\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n if (this.currentEntityId !== entityId) {\n this.currentEntityId = entityId;\n this.Clear();\n }\n\n return entityId;\n }\n\n protected static Clear(): void {\n // console.log('DatasourceBase Clear()');\n }\n}\n\nexport default DatasourceBase;\n","import { ApiDataSource } from '@/core/datasource';\nimport {\n AssetDto,\n AssociateDto,\n CoordinatorTypeDto,\n FinancialImpactQuestionDto,\n FinancialImpactScaleDto,\n ImplementationScaleDto,\n LocationDto,\n LocationGroupDto,\n OperationalImpactQuestionDto,\n OperationalImpactScaleDto,\n PartitionDto,\n RiskControlEvaluationDto,\n RiskDto,\n RiskImpactAreaDto,\n RiskImpactScaleDto,\n RiskLevelDto,\n RiskProbabilityDto,\n RiskTreatmentDto,\n RpoScaleDto,\n RtoApplicationScaleDto,\n RtoScaleDto,\n SimpleRtoScaleDto,\n StrategyDto,\n StrategyScenarioDto,\n SurveyDto,\n SystemDto,\n} from '@/dtos/bcm';\nimport { HierarchicalPartitionDto } from '@/dtos/bcm/HierarchicalPartitionDto';\nimport { PositionDto } from '@/dtos/bcm/PositionDto';\nimport { RecoverySiteDto } from '@/dtos/bcm/RecoverySiteDto';\nimport { ServiceDto } from '@/dtos/srb';\nimport { ApplicationModule } from '@/store';\nimport DatasourceBase from './DatasourceBase';\n\nclass Bcm extends DatasourceBase {\n private static _associates : ApiDataSource | null = null;\n private static _rtoScales : ApiDataSource | null = null;\n private static _simpleRtoScales : ApiDataSource | null = null;\n private static _rtoApplicationScales : ApiDataSource | null = null;\n private static _rpoScales : ApiDataSource | null = null;\n private static _financialImpactScales: ApiDataSource | null = null;\n private static _operationalImpactScales: ApiDataSource | null = null;\n private static _partitions: ApiDataSource | null = null;\n private static _coordinatorTypes: ApiDataSource | null = null;\n private static _hierarchicalPartitions: ApiDataSource | null = null;\n private static _locations: ApiDataSource | null = null;\n private static _locationGroups: ApiDataSource | null = null;\n private static _applications: ApiDataSource | null = null;\n private static _assets: ApiDataSource | null = null;\n private static _strategies: ApiDataSource | null = null;\n private static _strategyScenarios: ApiDataSource | null = null;\n private static _recoverySites: ApiDataSource | null = null;\n private static _positions: ApiDataSource | null = null;\n private static _surveys: ApiDataSource | null = null;\n private static _operationalImpactQuestions: ApiDataSource | null = null;\n private static _financialImpactQuestions: ApiDataSource | null = null;\n private static _services: ApiDataSource | null = null;\n private static _activeServices: ApiDataSource | null = null;\n private static _risks: ApiDataSource | null = null;\n private static _riskControlEvaluations: ApiDataSource | null = null;\n private static _riskProbabilities: ApiDataSource | null = null;\n private static _riskimpactScales: ApiDataSource | null = null;\n private static _riskImpactAreas: ApiDataSource | null = null;\n private static _riskLevels: ApiDataSource | null = null;\n private static _riskTreatments: ApiDataSource | null = null;\n private static _implementationScales: ApiDataSource | null = null;\n\n protected static Clear(): void {\n this._associates = null;\n this._rtoScales = null;\n this._simpleRtoScales = null;\n this._rtoApplicationScales = null;\n this._rpoScales = null;\n this._operationalImpactScales = null;\n this._partitions = null;\n this._coordinatorTypes = null;\n this._locations = null;\n this._locationGroups = null;\n this._applications = null;\n this._assets = null;\n this._hierarchicalPartitions = null;\n this._strategies = null;\n this._strategyScenarios = null;\n this._recoverySites = null;\n this._positions = null;\n this._surveys = null;\n this._operationalImpactQuestions = null;\n this._financialImpactQuestions = null;\n this._services = null;\n this._activeServices = null;\n this._risks = null;\n this._riskControlEvaluations = null;\n this._riskProbabilities = null;\n this._riskimpactScales = null;\n this._riskImpactAreas = null;\n this._riskLevels = null;\n this._riskTreatments = null;\n this._implementationScales = null;\n }\n\n static get Associates(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._associates == null) {\n this._associates = new ApiDataSource({ api: `masterplans/${entityId}/bc/Associates` });\n }\n\n return this._associates;\n }\n\n static get RtoScales(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._rtoScales == null) {\n this._rtoScales = new ApiDataSource({ api: `masterplans/${entityId}/bc/RtoScales` });\n }\n\n return this._rtoScales;\n }\n\n static get SimpleRtoScales(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._simpleRtoScales == null) {\n this._simpleRtoScales = new ApiDataSource({ api: `masterplans/${entityId}/bc/RtoScales/Simple` });\n }\n\n return this._simpleRtoScales;\n }\n\n static get RtoApplicationScales(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._rtoApplicationScales == null) {\n this._rtoApplicationScales = new ApiDataSource({ api: `masterplans/${entityId}/bc/RtoApplicationScales` });\n }\n\n return this._rtoApplicationScales;\n }\n\n static get RpoScales(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._rpoScales == null) {\n this._rpoScales = new ApiDataSource({ api: `masterplans/${entityId}/bc/RpoScales` });\n }\n\n return this._rpoScales;\n }\n\n static get FinancialImpactScales(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._financialImpactScales == null) {\n this._financialImpactScales = new ApiDataSource({ api: `masterplans/${entityId}/bc/FinancialImpactScales` });\n }\n\n return this._financialImpactScales;\n }\n\n static get FinancialImpactQuestions(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._financialImpactQuestions == null) {\n this._financialImpactQuestions = new ApiDataSource({ api: `masterplans/${entityId}/bc/FinancialImpactQuestions` });\n }\n\n return this._financialImpactQuestions;\n }\n\n static get OperationalImpactScales(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._operationalImpactScales == null) {\n this._operationalImpactScales = new ApiDataSource({ api: `masterplans/${entityId}/bc/OperationalImpactScales` });\n }\n\n return this._operationalImpactScales;\n }\n\n static get OperationalImpactQuestions(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._operationalImpactQuestions == null) {\n this._operationalImpactQuestions = new ApiDataSource({ api: `masterplans/${entityId}/bc/OperationalImpactQuestions` });\n }\n\n return this._operationalImpactQuestions;\n }\n\n static get Partitions(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._partitions == null) {\n this._partitions = new ApiDataSource({ api: `masterplans/${entityId}/bc/Partitions/All` });\n }\n\n return this._partitions;\n }\n\n static get AllPartitionsHierarchical(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._hierarchicalPartitions == null) {\n this._hierarchicalPartitions = new ApiDataSource({ api: `masterplans/${entityId}/bc/Partitions/AllHierarchical?language=${ApplicationModule.Language}` });\n }\n\n return this._hierarchicalPartitions;\n }\n\n static get CoordinatorTypes(): ApiDataSource {\n if (this._coordinatorTypes == null) {\n this._coordinatorTypes = new ApiDataSource({ api: 'CoordinatorTypes' });\n }\n\n return this._coordinatorTypes;\n }\n\n static get Locations(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._locations == null) {\n this._locations = new ApiDataSource({ api: `masterplans/${entityId}/bc/Locations` });\n }\n\n return this._locations;\n }\n\n static get LocationGroups(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._locationGroups == null) {\n this._locationGroups = new ApiDataSource({ api: `masterplans/${entityId}/bc/LocationGroups` });\n }\n\n return this._locationGroups;\n }\n\n static get Assets(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._assets == null) {\n this._assets = new ApiDataSource({ api: `masterplans/${entityId}/bc/Assets` });\n }\n\n return this._assets;\n }\n\n static get Applications(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._applications == null) {\n this._applications = new ApiDataSource({ api: `masterplans/${entityId}/bc/Applications?detailed=false` });\n }\n\n return this._applications;\n }\n\n static get StrategyScenarios(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._strategyScenarios == null) {\n this._strategyScenarios = new ApiDataSource({ api: `masterplans/${entityId}/bc/Strategies/GetActive` });\n }\n\n return this._strategyScenarios;\n }\n\n static get Strategies(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._strategies == null) {\n this._strategies = new ApiDataSource({ api: `masterplans/${entityId}/bc/Strategies` });\n }\n\n return this._strategies;\n }\n\n static get RecoverySites(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._recoverySites == null) {\n this._recoverySites = new ApiDataSource({ api: `masterplans/${entityId}/bc/RecoverySites` });\n }\n\n return this._recoverySites;\n }\n\n static get Positions(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._positions == null) {\n this._positions = new ApiDataSource({ api: `masterplans/${entityId}/bc/Positions` });\n }\n\n return this._positions;\n }\n\n static get Surveys(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._surveys == null) {\n this._surveys = new ApiDataSource({ api: `masterplans/${entityId}/bc/Surveys` });\n }\n\n return this._surveys;\n }\n\n static get Services(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._services == null) {\n this._services = new ApiDataSource({ api: `masterplans/${entityId}/srb/Services` });\n }\n\n return this._services;\n }\n\n static get ActiveServices(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._activeServices == null) {\n this._activeServices = new ApiDataSource({ api: `masterplans/${entityId}/srb/Services?deprecated=false` });\n }\n\n return this._activeServices;\n }\n\n static get Risks(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._risks == null) {\n this._risks = new ApiDataSource({ api: `masterplans/${entityId}/bc/Risks` });\n }\n\n return this._risks;\n }\n\n static get RiskControlEvaluations(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._riskControlEvaluations == null) {\n this._riskControlEvaluations = new ApiDataSource({ api: `masterplans/${entityId}/bc/RiskControlEvaluations` });\n }\n\n return this._riskControlEvaluations;\n }\n\n static get RiskProbabilities(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._riskProbabilities == null) {\n this._riskProbabilities = new ApiDataSource({ api: `masterplans/${entityId}/bc/RiskProbabilities` });\n }\n\n return this._riskProbabilities;\n }\n\n static get RiskImpactScales(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._riskimpactScales == null) {\n this._riskimpactScales = new ApiDataSource({ api: `masterplans/${entityId}/bc/RiskimpactScales` });\n }\n\n return this._riskimpactScales;\n }\n\n static get RiskImpactAreas(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._riskImpactAreas == null) {\n this._riskImpactAreas = new ApiDataSource({ api: `masterplans/${entityId}/bc/RiskImpactAreas` });\n }\n\n return this._riskImpactAreas;\n }\n\n static get RiskLevels(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._riskLevels == null) {\n this._riskLevels = new ApiDataSource({ api: `masterplans/${entityId}/bc/RiskLevels` });\n }\n\n return this._riskLevels;\n }\n\n static get RiskTreatments(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._riskTreatments == null) {\n this._riskTreatments = new ApiDataSource({ api: `masterplans/${entityId}/bc/RiskTreatments` });\n }\n\n return this._riskTreatments;\n }\n\n static get ImplementationScales(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._implementationScales == null) {\n this._implementationScales = new ApiDataSource({ api: `masterplans/${entityId}/bc/ImplementationScales` });\n }\n\n return this._implementationScales;\n }\n};\n\nexport default Bcm;\n","import { ApiDataSource } from '@/core/datasource';\nimport { BcpFunctionalScenarioDto } from '@/dtos/bcm/testing/BcpFunctionalScenarioDto';\nimport { BcpFunctionalTestDto } from '@/dtos/bcm/testing/BcpFunctionalTestDto';\nimport DatasourceBase from './DatasourceBase';\n\nclass BcpFunctionalTestDatasources extends DatasourceBase {\n private static _scenarios : ApiDataSource | null = null;\n\n protected static Clear(): void {\n this._scenarios = null;\n }\n\n static get Scenarios(): ApiDataSource {\n return new ApiDataSource({ api: `masterplans/${this.EntityId}/bc/testing/BcpFunctionalScenarios` });\n }\n\n static get Tests(): ApiDataSource {\n return new ApiDataSource({ api: `masterplans/${this.EntityId}/bc/testing/BcpFunctionalTests` });\n }\n};\n\nexport default BcpFunctionalTestDatasources;\n","import { ApiDataSource } from '@/core/datasource';\nimport { ComplianceListDto } from '@/dtos/compliance/ComplianceListDto';\nimport DatasourceBase from './DatasourceBase';\n\nclass ComplianceDatasources extends DatasourceBase {\n private static _lists : ApiDataSource | null = null;\n\n protected static Clear(): void {\n this._lists = null;\n }\n\n static get Lists(): ApiDataSource {\n const entity = this.EntityId;\n\n if (this._lists == null) {\n this._lists = new ApiDataSource({ api: `masterplans/${entity}/Compliance/Lists` });\n }\n return this._lists;\n }\n};\n\nexport default ComplianceDatasources;\n","import { ApiDataSource } from '@/core/datasource';\nimport { DisasterRecoveryTestDto } from '@/dtos/bcm/testing/DisasterRecoveryTestDto';\nimport DatasourceBase from './DatasourceBase';\n\nclass DisasterRecoveryTestDatasources extends DatasourceBase {\n private static _disasterRecoveryTests : ApiDataSource | null = null;\n\n protected static Clear(): void {\n this._disasterRecoveryTests = null;\n }\n\n static get DisasterRecoveryTests(): ApiDataSource {\n const entity = this.EntityId;\n\n if (this._disasterRecoveryTests == null) {\n this._disasterRecoveryTests = new ApiDataSource({ api: `masterplans/${entity}/bc/testing/DisasterRecoveryTests` });\n }\n return this._disasterRecoveryTests;\n }\n};\n\nexport default DisasterRecoveryTestDatasources;\n","import { ApiDataSource } from '@/core/datasource';\nimport { IncidentDto, PrioritizationScaleDto, ResolutionEvaluationDto, ResolutionStatusDto, SectorDto, TypeDto } from '@/dtos/bcm/incident';\nimport { EmailTemplateDto } from '@/dtos/EmailTemplate';\nimport DatasourceBase from './DatasourceBase';\n\nclass IncidentDatasources extends DatasourceBase {\n private static _incidents : ApiDataSource | null = null;\n private static _sectors : ApiDataSource | null = null;\n private static _resolutionStatuses : ApiDataSource | null = null;\n private static _prioritizationScales : ApiDataSource | null = null;\n private static _resolutionEvaluations : ApiDataSource | null = null;\n private static _types : ApiDataSource | null = null;\n private static _emailTemplates: ApiDataSource | null = null;\n\n protected static Clear(): void {\n this._incidents = null;\n this._sectors = null;\n this._resolutionStatuses = null;\n this._prioritizationScales = null;\n this._resolutionEvaluations = null;\n this._types = null;\n }\n\n static get Incidents(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._incidents == null) {\n this._incidents = new ApiDataSource({ api: `masterplans/${entityId}/bc/Incidents` });\n }\n\n return this._incidents;\n }\n\n static get Sectors(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._sectors == null) {\n this._sectors = new ApiDataSource({ api: `masterplans/${entityId}/bc/incident/Sectors` });\n }\n\n return this._sectors;\n }\n\n static get ResolutionStatuses(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._resolutionStatuses == null) {\n this._resolutionStatuses = new ApiDataSource({ api: `masterplans/${entityId}/bc/incident/ResolutionStatuses` });\n }\n\n return this._resolutionStatuses;\n }\n\n static get PrioritizationScales(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._prioritizationScales == null) {\n this._prioritizationScales = new ApiDataSource({ api: `masterplans/${entityId}/bc/incident/PrioritizationScales` });\n }\n\n return this._prioritizationScales;\n }\n\n static get ResolutionEvaluations(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._resolutionEvaluations == null) {\n this._resolutionEvaluations = new ApiDataSource({ api: `masterplans/${entityId}/bc/incident/ResolutionEvaluations` });\n }\n\n return this._resolutionEvaluations;\n }\n\n static get Types(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._types == null) {\n this._types = new ApiDataSource({ api: `masterplans/${entityId}/bc/incident/Types` });\n }\n\n return this._types;\n }\n\n static get EmailTemplates(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._emailTemplates == null) {\n this._emailTemplates = new ApiDataSource({ api: `masterplans/${entityId}/bc/incident/EmailTemplates` });\n }\n\n return this._emailTemplates;\n }\n};\n\nexport default IncidentDatasources;\n","import { ApiDataSource } from '@/core/datasource';\nimport {\n ContractDto,\n CriticalityDto,\n ServiceDto,\n SrbServiceTypeDto,\n} from '@/dtos/srb';\nimport DatasourceBase from './DatasourceBase';\n\nclass Srb extends DatasourceBase {\n private static _services: ApiDataSource | null = null;\n private static _contracts: ApiDataSource | null = null;\n private static _srbServiceTypes: ApiDataSource | null = null;\n private static _criticalities: ApiDataSource | null = null;\n\n protected static Clear(): void {\n this._services = null;\n this._contracts = null;\n this._srbServiceTypes = null;\n }\n\n static get Services(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._services == null) {\n this._services = new ApiDataSource({ api: `masterplans/${entityId}/srb/Services` });\n }\n\n return this._services;\n }\n\n static get Contracts(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._contracts == null) {\n this._contracts = new ApiDataSource({ api: `masterplans/${entityId}/srb/Contracts` });\n }\n\n return this._contracts;\n }\n\n static get SrbServiceTypes(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._srbServiceTypes == null) {\n this._srbServiceTypes = new ApiDataSource({ api: `masterplans/${entityId}/srb/SrbServiceTypes` });\n }\n\n return this._srbServiceTypes;\n }\n\n static get Criticalities(): ApiDataSource {\n const entityId = this.EntityId;\n if (this._criticalities == null) {\n this._criticalities = new ApiDataSource({ api: `masterplans/${entityId}/srb/Criticalities` });\n }\n\n return this._criticalities;\n }\n};\n\nexport default Srb;\n","import { ApiDataSource } from '@/core/datasource';\nimport { DisasterRecoveryTestTimeZoneDto } from '@/dtos/bcm/testing/DisasterRecoveryTestTimeZoneDto';\nimport DatasourceBase from './DatasourceBase';\n\nclass TestingDatasources extends DatasourceBase {\n static TimeZones(testId: number): ApiDataSource {\n return new ApiDataSource({ api: `masterplans/${this.EntityId}/bc/testing/DisasterRecoveryTests/${testId}/TimeZones` });\n }\n};\n\nexport default TestingDatasources;\n","import { ApiDataSource } from '@/core/datasource';\nimport BcmDatasources from '@/core/helpers/datasources/BcmDatasources';\nimport BcpFunctionalTestDatasources from '@/core/helpers/datasources/BcpFunctionalTestDatasources';\nimport ComplianceDatasources from '@/core/helpers/datasources/ComplianceDatasources';\nimport DisasterRecoveryTestDatasources from '@/core/helpers/datasources/DisasterRecoveryTestDatasources';\nimport IncidentDatasources from '@/core/helpers/datasources/IncidentDatasources';\nimport SrbDatasources from '@/core/helpers/datasources/SrbDatasources';\nimport TestingDatasources from '@/core/helpers/datasources/TestingDatasources';\nimport { EntityDto, LanguageDto } from '@/dtos';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nexport default class DatasourcesService {\n private static _users = new ApiDataSource({ api: 'Users/GetAllUsersForDeployments' });\n private static _languages = new ApiDataSource({ api: 'languages' });\n private static _entities = new ApiDataSource({ api: 'masterplans' });\n\n static get Users(): ApiDataSource {\n return DatasourcesService._users;\n }\n\n static get Languages(): ApiDataSource {\n return DatasourcesService._languages;\n }\n\n static get Entities(): ApiDataSource {\n return DatasourcesService._entities;\n }\n\n public static Incidents = IncidentDatasources;\n\n public static Bcm = BcmDatasources;\n\n public static DisasterRecoveryTest = DisasterRecoveryTestDatasources;\n\n public static Testing = TestingDatasources;\n\n public static BcpFunctionalTesting = BcpFunctionalTestDatasources;\n\n public static Compliance = ComplianceDatasources;\n\n public static Srb = SrbDatasources;\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { mdiMagnify } from '@mdi/js';\nimport { EntityDto } from '@/dtos/EntityDto';\nimport { ApplicationModule } from '@/store';\nimport AuthenticationService from '@/services/AuthenticationService';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport LegacyService from '@/services/LegacyService';\n\nexport default defineComponent({\n name: 'EntitiesView',\n components: {\n PdDataTable,\n },\n setup(_, { root }) {\n const languages = DatasourcesService.Languages;\n const entities = ref(DatasourcesService.Entities);\n const loading = ref(false);\n const table = ref(null);\n entities.value.data().then((entitiesData) => {\n if (entitiesData.length === 1 && ApplicationModule.Entity == null) {\n selectEntity(entitiesData[0]);\n }\n });\n\n function selectEntity(item: EntityDto | null) {\n LegacyService.ChangeMasterPlan(item);\n\n if (item == null) {\n if (selectedEntity.value != null) {\n selectEntity(selectedEntity.value);\n }\n } else {\n ApplicationModule.SetEntity(item);\n root.$router.push({ name: 'home' });\n }\n }\n\n function loadingStateChanged(value: boolean) {\n loading.value = value;\n }\n\n function cancel() {\n if (!ApplicationModule.Entity) {\n AuthenticationService.Logout();\n } else {\n root.$router.back();\n }\n }\n\n const selectedEntity = ref(null);\n\n if (ApplicationModule.Entity != null) {\n selectedEntity.value = ApplicationModule.Entity;\n }\n\n function rowAction(action: string, row: EntityDto) {\n console.log('rowAction', action, row);\n if (action === 'remove') {\n if (table != null) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const t = table.value as any;\n t.remove();\n }\n }\n }\n\n const headers: Array> = [\n {\n id: 'name',\n text: 'Entity Name',\n align: 'start',\n value: 'name',\n },\n {\n id: 'languages',\n text: 'Languages',\n align: 'start',\n value: 'languages',\n template: async (item) => {\n const langs = (item as EntityDto).languages;\n let ret = '';\n\n for (let i = 0; i < langs.length - 1; ++i) {\n const translation = await languages.getById(langs[i].languageId);\n if (translation != null) {\n ret += translation.name + ', ';\n } else {\n console.error(`could not find translation with id: ${langs[i].languageId}`);\n }\n }\n\n const translation = await languages.getById(langs[langs.length - 1].languageId);\n if (translation != null) {\n ret += translation.name;\n } else {\n console.error(`could not find translation with id: ${langs[langs.length - 1].languageId}`);\n }\n\n return {\n text: ret,\n };\n },\n },\n ];\n\n return {\n table,\n selectEntity,\n selectedEntity,\n loadingStateChanged,\n loading,\n cancel,\n mdiMagnify,\n entities,\n headers,\n rowAction,\n requires: [\n languages,\n ],\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EntitiesView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EntitiesView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EntitiesView.vue?vue&type=template&id=d8c57afe&scoped=true&\"\nimport script from \"./EntitiesView.vue?vue&type=script&lang=ts&\"\nexport * from \"./EntitiesView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d8c57afe\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VOverlay } from 'vuetify/lib/components/VOverlay';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCol,VOverlay,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticStyle:{\"margin-top\":\"85px\"},attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"xs\":\"12\",\"sm\":\"10\",\"md\":\"7\",\"lg\":\"6\",\"xl\":\"4\"}},[_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"}},[_c('v-card',{staticClass:\"mb-4 py-2 round-corners\",attrs:{\"color\":\"app-bar-background\",\"height\":\"80px\"}},[_c('v-img',{attrs:{\"src\":\"/img/logo_prudea.svg\",\"height\":\"60px\",\"contain\":\"\"}})],1),_c('v-card',{staticClass:\"p-2 round-corners\"},[_c('v-card-title',{staticClass:\"pb-6\"},[_c('v-img',{attrs:{\"src\":\"/img/logo_centered.svg\",\"height\":\"100px\",\"contain\":\"\"}})],1),_c('v-card-text',[_c('div',{staticClass:\"title font-weight-bold text-center mt-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('users.userRequestResetPasswordTitle'))+\" \")]),_c('v-text-field',{attrs:{\"label\":_vm.$t('users.username'),\"autofocus\":\"\"},model:{value:(_vm.username),callback:function ($$v) {_vm.username=$$v},expression:\"username\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('users.email')},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}})],1),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"min-width\":\"150px\",\"color\":\"success\",\"disabled\":!_vm.resetPasswordEnabled},on:{\"click\":_vm.resetPassword}},[_vm._v(\" \"+_vm._s(_vm.$t('users.userResetPasswordButton'))+\" \")])],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { DocumentDto, FileDto } from '@/dtos/all';\nimport { HierarchicalPartitionDto } from '@/dtos/bcm/HierarchicalPartitionDto';\nimport { ApplicationModule } from '@/store';\nimport axios from '../axios';\n\nexport default class DocumentManagementApi {\n static async GetUserPartitions() : Promise> {\n const entity = ApplicationModule.Entity?.id;\n if (entity == null) {\n throw new Error('Entity is not set...');\n }\n\n try {\n const response = await axios.get>(`/masterplans/${entity}/DocumentManagement/partitions?language=${ApplicationModule.Language}`);\n return Promise.resolve(response.data);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n static async GetPartitionDocuments(partitionId: number) : Promise> {\n const entity = ApplicationModule.Entity?.id;\n if (entity == null) {\n throw new Error('Entity is not set...');\n }\n\n try {\n const response = await axios.get>(`/masterplans/${entity}/DocumentManagement/partition/${partitionId}?language=${ApplicationModule.Language}`);\n return Promise.resolve(response.data);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n static async DownloadDocument(documentId: number, language: string) : Promise {\n const entity = ApplicationModule.Entity?.id;\n if (entity == null) {\n throw new Error('Entity is not set...');\n }\n\n try {\n const response = await axios.get(`/masterplans/${entity}/DocumentManagement/download/${documentId}/${language}`);\n return Promise.resolve(response.data);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n}\n","import DocumentManagementApi from '@/api/all/DocumentManagementApi';\nimport { DocumentDto, FileDto } from '@/dtos/all';\nimport { HierarchicalPartitionDto } from '@/dtos/bcm/HierarchicalPartitionDto';\n\nexport default class DocumentManagementService {\n public static GetUserPartitions(): Promise> {\n return DocumentManagementApi.GetUserPartitions();\n }\n\n public static GetPartitionDocuments(partitionId: number) : Promise> {\n return DocumentManagementApi.GetPartitionDocuments(partitionId);\n }\n\n public static DownloadDocument(documentId: number, language: string) : Promise {\n return DocumentManagementApi.DownloadDocument(documentId, language);\n }\n}\n","import { ApplicationModule } from '@/store';\n\nexport class EntityApiBase {\n protected static get EntityId(): number {\n const entity = ApplicationModule.Entity;\n if (entity == null) {\n throw new Error('Entity is not set...');\n }\n\n return entity.id;\n }\n}\n","import axios from '@/api/axios';\nimport { EntityApiBase } from '@/api/EntityApiBase';\nimport { UserChangePasswordDto, UserResetPasswordDto } from '@/dtos/all';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\n\nexport default class UserApi extends EntityApiBase {\n static async GetSsoUsers(group: string): Promise> {\n const response = await axios.get>(`/Users/GetSsoUsers?group=${group}`);\n return Promise.resolve(response.data);\n }\n\n public static async RequestResetUserPasswordAsync(dto: UserResetPasswordDto) : Promise {\n await axios.post>('/Users/RequestResetUserPassword', dto);\n return Promise.resolve();\n }\n\n public static async ValidateUserResetPasswordToken(token: string) : Promise {\n await axios.get>(`/Users/ValidateUserResetPasswordToken/${token}`);\n return Promise.resolve();\n }\n\n public static async ResetUserPassword(dto: UserChangePasswordDto) : Promise {\n await axios.post>('/Users/ResetUserPassword', dto);\n return Promise.resolve();\n }\n\n public static async ChangeUserPassword(dto: UserChangePasswordDto) : Promise {\n await axios.post>('/Users/ChangeUserPassword', dto);\n return Promise.resolve();\n }\n}\n","import { UsersApi } from '@/api/all';\nimport { UserChangePasswordDto, UserResetPasswordDto } from '@/dtos/all';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\n\nexport default class UsersService {\n public static async GetSsoUsers(group: string): Promise> {\n return UsersApi.GetSsoUsers(group);\n }\n\n public static async RequestResetUserPasswordAsync(dto: UserResetPasswordDto): Promise {\n return UsersApi.RequestResetUserPasswordAsync(dto);\n }\n\n public static async ValidateUserResetPasswordToken(token: string): Promise {\n return UsersApi.ValidateUserResetPasswordToken(token);\n }\n\n public static async ResetUserPassword(dto: UserChangePasswordDto): Promise {\n return UsersApi.ResetUserPassword(dto);\n }\n\n public static async ChangeUserPassword(dto: UserChangePasswordDto): Promise {\n return UsersApi.ChangeUserPassword(dto);\n }\n}\n","import { ApplicationModule } from '@/store';\n\nexport interface BusyMessage{\n id: number\n text: string\n}\n\nexport default class BusyIndicatorService {\n private static counter = 1;\n\n static SetBusy(text: string) : number {\n const message: BusyMessage = {\n id: BusyIndicatorService.counter++,\n text,\n };\n\n ApplicationModule.SetBusyMessage(message);\n\n return message.id;\n }\n\n static RemoveBusy(id: number):void {\n ApplicationModule.RemoveBusyMessage(id);\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport i18n from '@/i18n';\nimport router from '@/router';\nimport { UsersService } from '@/services/all';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { computed, defineComponent, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\n\nexport default defineComponent({\n name: 'ForgotPasswordView',\n\n components: {\n\n },\n\n setup() {\n const username = ref('');\n const email = ref('');\n\n const domain = window.location.host;\n\n const resetPasswordEnabled = computed(() => {\n return !!username.value || !!email.value;\n });\n\n async function resetPassword() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n await UsersService.RequestResetUserPasswordAsync({\n domain,\n username: username.value,\n email: email.value,\n });\n\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('users.resetPasswordMailSent').toString(),\n });\n router.replace({ name: 'login' });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n username,\n email,\n resetPassword,\n resetPasswordEnabled,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPasswordView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPasswordView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ForgotPasswordView.vue?vue&type=template&id=3f0082c2&scoped=true&\"\nimport script from \"./ForgotPasswordView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotPasswordView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ForgotPasswordView.vue?vue&type=style&index=0&id=3f0082c2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3f0082c2\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VForm,VImg,VRow,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('div',{attrs:{\"id\":\"content\"}},[_c('div',{staticClass:\"page-title\"},[_c('div',{attrs:{\"id\":\"pageTitle\"}}),_c('v-divider'),_c('div',{attrs:{\"id\":\"pageSubTitle\"}})],1),_c('div',{staticClass:\"module hidden dashboard\",attrs:{\"id\":\"dashboard\"}}),_c('div',{staticClass:\"module hidden\",attrs:{\"id\":\"deploymentTabs\"}},[_c('div',{attrs:{\"id\":\"loader\"}},[_c('div',{attrs:{\"id\":\"loading\"}},[_vm._v(\" Loading... \")]),_c('div',{attrs:{\"id\":\"spinner\"}})]),_c('div',{staticClass:\"hidden\",attrs:{\"id\":\"deploymentTabStrip\"}},[_c('ul',[_c('li',{attrs:{\"id\":\"deploymentSurveys\"}},[_vm._v(\" Surveys \")]),_c('li',{staticClass:\"hidden\",attrs:{\"id\":\"deploymentOperationalImpact\"}},[_vm._v(\" Operational Impact \")]),_c('li',{staticClass:\"hidden\",attrs:{\"id\":\"deploymentAssets\"}},[_vm._v(\" Assets \")]),_c('li',{staticClass:\"hidden\",attrs:{\"id\":\"deploymentApplications\"}},[_vm._v(\" Systems \")]),_c('li',{staticClass:\"hidden\",attrs:{\"id\":\"deploymentInterdependencies\"}},[_vm._v(\" Interdependencies \")]),_c('li',{staticClass:\"hidden\",attrs:{\"id\":\"deploymentFinancialImpact\"}},[_vm._v(\" Financial Impact \")]),_c('li',{staticClass:\"hidden\",attrs:{\"id\":\"deploymentPersonnel\"}},[_vm._v(\" Personnel \")]),_c('li',{staticClass:\"hidden\",attrs:{\"id\":\"deploymentInternalContacts\"}},[_vm._v(\" Internal Contacts \")]),_c('li',{staticClass:\"hidden\",attrs:{\"id\":\"deploymentExternalContacts\"}},[_vm._v(\" External Contacts \")]),_c('li',{staticClass:\"hidden\",attrs:{\"id\":\"deploymentRiskAssessments\"}},[_vm._v(\" Risk Control Self-Assessment \")])]),_c('div',{staticStyle:{\"min-height\":\"100px\",\"position\":\"relative\"},attrs:{\"id\":\"deploymentSurveysGrid\"}},[_c('div',{attrs:{\"id\":\"horizontal\"}},[_c('div',{attrs:{\"id\":\"deploymentSurveysGridLeft\"}}),_c('div',{staticStyle:{\"margin-left\":\"10px\"},attrs:{\"id\":\"deploymentSurveysGridRight\"}})])]),_c('div',{staticClass:\"tabstrip-outter\"},[_c('div',{staticClass:\"tabstrip-inner grid-container\",attrs:{\"id\":\"deploymentOperationalImpactGrid\"}})]),_c('div',{staticClass:\"tabstrip-outter\"},[_c('div',{staticClass:\"tabstrip-inner grid-container\",attrs:{\"id\":\"deploymentAssetsGrid\"}})]),_c('div',{staticClass:\"tabstrip-outter\"},[_c('div',{staticClass:\"tabstrip-inner grid-container\",attrs:{\"id\":\"deploymentApplicationsGrid\"}})]),_c('div',{staticClass:\"tabstrip-outter\"},[_c('div',{staticClass:\"tabstrip-inner grid-container\",attrs:{\"id\":\"deploymentInterdependenciesGrid\"}})]),_c('div',{staticClass:\"tabstrip-outter\"},[_c('div',{staticClass:\"tabstrip-inner grid-container\",attrs:{\"id\":\"deploymentFinancialImpactGrid\"}})]),_c('div',{staticClass:\"tabstrip-outter\"},[_c('div',{staticClass:\"tabstrip-inner grid-container\",attrs:{\"id\":\"deploymentPersonnelGrid\"}})]),_c('div',{staticClass:\"tabstrip-outter\"},[_c('div',{staticClass:\"tabstrip-inner grid-container\",attrs:{\"id\":\"deploymentInternalContactsGrid\"}})]),_c('div',{staticClass:\"tabstrip-outter\"},[_c('div',{staticClass:\"tabstrip-inner grid-container\",attrs:{\"id\":\"deploymentExternalContactsGrid\"}})]),_c('div',{staticClass:\"tabstrip-outter\"},[_c('div',{staticClass:\"tabstrip-inner grid-container\",attrs:{\"id\":\"deploymentRiskAssessmentsGrid\"}})])])]),_c('div',{staticClass:\"module hidden grid-container\",attrs:{\"id\":\"riskLevels\"}},[_c('div',{attrs:{\"id\":\"riskLevelsGrid\"}}),_c('br'),_c('div',{attrs:{\"id\":\"riskLevelsImpactProbabilityTable\"}})]),_c('div',{staticClass:\"module hidden grid-container\",attrs:{\"id\":\"general\"}},[_c('div',{attrs:{\"id\":\"generalGrid\"}})]),_c('div',{staticClass:\"module hidden grid-container\",attrs:{\"id\":\"classificationDeploymentQuestionnaire\"}},[_c('div',{attrs:{\"id\":\"classificationDeploymentQuestionnaireGrid\"}}),_c('div',{attrs:{\"id\":\"classificationFooter\"}},[_c('table',[_c('thead',[_c('tr',[_c('th'),_c('th',[_vm._v(\"Εμπιστευτικότητα\")]),_c('th',[_vm._v(\"Ακεραιότητα\")]),_c('th',[_vm._v(\"Διαθεσιμότητα\")])])]),_c('tbody',[_c('tr',[_c('td',[_vm._v(\"Προκύπτουσα Διαβάθμιση\")]),_c('td',{attrs:{\"id\":\"conf_value\"}}),_c('td',{attrs:{\"id\":\"inte_value\"}}),_c('td',{attrs:{\"id\":\"avai_value\"}})]),_c('tr',[_c('td',[_vm._v(\"Κρισιμότητα Συστήματος\")]),_c('td',{attrs:{\"id\":\"crit_value\",\"colspan\":\"3\"}})]),_c('tr',[_c('td',[_vm._v(\"Απαιτήσεις Ανακάμψεως Συστήματος\")]),_c('td',{attrs:{\"id\":\"rto_value\",\"colspan\":\"3\"}})]),_c('tr',[_c('td',[_vm._v(\"Δηλωθέν RTO στο BIA\")]),_c('td',{attrs:{\"id\":\"rto_bia_value\",\"colspan\":\"3\"}})])])])])]),_c('div',{staticClass:\"module hidden grid-container\",attrs:{\"id\":\"israRiskScales\"}},[_c('div',{attrs:{\"id\":\"israRiskScalesGrid\"}}),_c('br'),_c('div',{attrs:{\"id\":\"impactProbabilityTable\"}})]),_c('div',{staticClass:\"module hidden grid-container\",attrs:{\"id\":\"licenceManagement\"}},[_c('table',[_c('thead',[_c('tr',[_c('th',{attrs:{\"colspan\":\"2\"}},[_vm._v(\" Licence Details \")])])]),_c('tbody',[_c('tr',[_c('td',[_c('label',{attrs:{\"for\":\"companyName\"}},[_vm._v(\"Company\")])]),_c('td',[_c('input',{staticClass:\"k-textbox\",staticStyle:{\"width\":\"100%\"},attrs:{\"id\":\"companyName\",\"readonly\":\"readonly\",\"placeholder\":\"No active licence\"}})])]),_c('tr',[_c('td',[_c('label',{attrs:{\"for\":\"issuedBy\"}},[_vm._v(\"Issued By\")])]),_c('td',[_c('input',{staticClass:\"k-textbox\",staticStyle:{\"width\":\"100%\"},attrs:{\"id\":\"issuedBy\",\"readonly\":\"readonly\"}})])]),_c('tr',[_c('td',[_c('label',{attrs:{\"for\":\"issuedDate\"}},[_vm._v(\"Issued Date\")])]),_c('td',[_c('input',{staticClass:\"k-textbox\",staticStyle:{\"width\":\"100%\"},attrs:{\"id\":\"issuedDate\",\"readonly\":\"adonly\"}})])]),_c('tr',[_c('td',[_c('label',{attrs:{\"for\":\"modules\"}},[_vm._v(\"Available Modules\")])]),_c('td',[_c('input',{staticClass:\"k-textbox\",staticStyle:{\"width\":\"100%\"},attrs:{\"id\":\"modules\",\"readonly\":\"readonly\"}})])]),_c('tr',[_c('td',[_c('label',{attrs:{\"for\":\"expire\"}},[_vm._v(\"Expiration Date\")])]),_c('td',[_c('input',{staticClass:\"k-textbox\",staticStyle:{\"width\":\"100%\"},attrs:{\"id\":\"expire\",\"readonly\":\"readonly\"}})])]),_c('tr',[_c('td',[_c('label',{attrs:{\"for\":\"userLimit\"}},[_vm._v(\"User Limit\")])]),_c('td',[_c('input',{staticClass:\"k-textbox\",staticStyle:{\"width\":\"100%\"},attrs:{\"id\":\"userLimit\",\"readonly\":\"readonly\"}})])])])]),_c('br'),_c('input',{staticClass:\"button\",attrs:{\"id\":\"btnChangeLicence\",\"type\":\"submit\",\"value\":\"Change Licence\"}})]),_c('div',{staticClass:\"module hidden grid-container\",attrs:{\"id\":\"applicationSettings\"}},[_c('div',[_c('fieldset',[_c('legend',[_vm._v(\"Logo\")]),_c('img',{staticClass:\"settings-logo-preview\",attrs:{\"id\":\"settingsLogoPreview\"}}),_c('br'),_c('textarea',{staticClass:\"settings-logo-link\",attrs:{\"id\":\"settingsLogoLink\",\"type\":\"text\",\"rows\":\"5\",\"wrap\":\"soft\"}})]),_c('br'),_c('br'),_c('fieldset',[_c('legend',[_vm._v(\"Segregation of Duties\")]),_c('label',{attrs:{\"title\":\"Use this setting if you want to prevent a user from sending a deployment only to himself\",\"for\":\"segegationOfDutiesEnabled\"}},[_vm._v(\"Enable Segregation of Duties\")]),_c('input',{attrs:{\"id\":\"segegationOfDutiesEnabled\",\"type\":\"checkbox\"}})]),_c('br'),_c('br'),_c('fieldset',[_c('legend',[_vm._v(\"Email Notifications\")]),_c('label',{attrs:{\"for\":\"emailNotificationsEnabled\"}},[_vm._v(\"Enable Email Notifications\")]),_c('input',{attrs:{\"id\":\"emailNotificationsEnabled\",\"type\":\"checkbox\"}}),_c('br'),_c('div',{attrs:{\"id\":\"emailNotificationsSettings\"}},[_c('input',{attrs:{\"id\":\"emailDatabase\",\"type\":\"radio\",\"name\":\"emailType\",\"value\":\"database\"}}),_c('label',{attrs:{\"for\":\"emailDatabase\"}},[_c('img',{attrs:{\"src\":\"/img/info.png\",\"height\":\"18\",\"width\":\"18\",\"title\":\"Not available for Azure!\"}}),_vm._v(\"Database Mail\")]),_c('input',{staticStyle:{\"margin-left\":\"20px\"},attrs:{\"id\":\"emailApplication\",\"type\":\"radio\",\"name\":\"emailType\",\"value\":\"application\"}}),_c('label',{attrs:{\"for\":\"emailApplication\"}},[_vm._v(\"Application Mail\")]),_c('br'),_c('br'),_c('div',{attrs:{\"id\":\"emailNotificationsApplicationSettings\"}},[_c('table',[_c('thead'),_c('tbody',[_c('tr',[_c('td',[_c('label',{attrs:{\"for\":\"emailApplicationSmtpServer\"}},[_vm._v(\"SMTP Server\")])]),_c('td',[_c('input',{attrs:{\"id\":\"emailApplicationSmtpServer\"}})])]),_c('tr',[_c('td',[_c('label',{attrs:{\"for\":\"emailApplicationSmtpPort\"}},[_vm._v(\"SMTP Port\")])]),_c('td',[_c('input',{attrs:{\"id\":\"emailApplicationSmtpPort\",\"type\":\"number\",\"min\":\"1\",\"max\":\"65535\"}})])]),_c('tr',[_c('td',[_c('label',{attrs:{\"for\":\"emailApplicationSmtpSecure\"}},[_vm._v(\"Use SMTP Secure\")])]),_c('td',[_c('input',{attrs:{\"id\":\"emailApplicationSmtpSecure\",\"type\":\"checkbox\",\"value\":\"true\"}})])]),_c('tr',[_c('td',[_c('label',{attrs:{\"for\":\"emailApplicationSmtpUsername\"}},[_vm._v(\"SMTP Username\")])]),_c('td',[_c('input',{attrs:{\"id\":\"emailApplicationSmtpUsername\"}})])]),_c('tr',[_c('td',[_c('label',{attrs:{\"for\":\"emailApplicationSmtpPassword\"}},[_vm._v(\"SMTP Password\")])]),_c('td',[_c('input',{attrs:{\"id\":\"emailApplicationSmtpPassword\",\"type\":\"password\"}})])]),_c('tr',[_c('td',[_c('label',{attrs:{\"for\":\"emailApplicationDisplayName\"}},[_vm._v(\"Display Name\")])]),_c('td',[_c('input',{attrs:{\"id\":\"emailApplicationDisplayName\"}})])]),_c('tr',[_c('td',[_c('label',{attrs:{\"for\":\"emailApplicationDisplayEmail\"}},[_vm._v(\"Display Email\")])]),_c('td',[_c('input',{attrs:{\"id\":\"emailApplicationDisplayEmail\"}})])])])])]),_c('div',{staticStyle:{\"padding\":\"5px\"},attrs:{\"id\":\"emailNotificationsDatabaseSettings\"}},[_c('label',{attrs:{\"for\":\"emailDatabaseProfile\"}},[_vm._v(\"Profile Name\")]),_c('input',{attrs:{\"id\":\"emailDatabaseProfile\"}}),_c('br'),_c('br'),_c('label',{attrs:{\"for\":\"emailDatabaseSeparateConnection\"}},[_vm._v(\"Use Separate Connection\"),_c('img',{attrs:{\"src\":\"/img/info.png\",\"height\":\"18\",\"width\":\"18\",\"title\":\"This will use a separate connection string ('emailConnection') to connect to the database!\"}})]),_c('input',{attrs:{\"id\":\"emailDatabaseSeparateConnection\",\"type\":\"checkbox\"}})])])])])])]),_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onMounted, watch } from '@vue/composition-api';\nimport { legacyAppearDiv } from '@/legacy/js/main';\n\nexport default defineComponent({\n name: 'LegacyFormView',\n props: {\n form: {\n required: true,\n type: String,\n },\n },\n setup(props, { root }) {\n onMounted(() => {\n if (props.form) {\n if (root.$route.params != null && root.$route.params.id != null) {\n legacyAppearDiv(props.form, root.$route.params.id);\n } else {\n legacyAppearDiv(props.form);\n }\n }\n });\n\n watch(\n () => props.form,\n () => {\n if (root.$route.params != null && root.$route.params.id != null) {\n legacyAppearDiv(props.form, root.$route.params.id);\n } else {\n legacyAppearDiv(props.form);\n }\n },\n );\n\n return {};\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyFormView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyFormView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LegacyFormView.vue?vue&type=template&id=9daed84a&scoped=true&\"\nimport script from \"./LegacyFormView.vue?vue&type=script&lang=ts&\"\nexport * from \"./LegacyFormView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9daed84a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\ninstallComponents(component, {VContainer,VDivider})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\nimport { UserRole } from '@/dtos';\nimport i18n, { loadLanguageAsync } from '@/i18n';\nimport router from '@/router';\nimport AuthenticationService from '@/services/AuthenticationService';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { ApplicationModule, AuthenticationModule } from '@/store';\nimport { defineComponent } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\n\nexport default defineComponent({\n name: 'LoginOAuthView',\n\n components: {\n\n },\n\n props: {\n\n },\n\n setup() {\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('Logging in...').toString());\n try {\n await AuthenticationService.LoginOAuth({ state: router.currentRoute.query.state as string, code: router.currentRoute.query.code as string });\n\n if (AuthenticationModule.LoggedIn) {\n if (AuthenticationModule.User == null) {\n throw new Error('User is not set!');\n }\n var selectedLanguage = ApplicationModule.AllLanguages[AuthenticationModule.User.language];\n await loadLanguageAsync(selectedLanguage.code);\n\n if (AuthenticationModule.Roles.some((role) => role === UserRole.GeneralAdministrator)) {\n router.push({ name: 'home' });\n } else {\n router.push({ name: 'entities' });\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n router.push({ name: 'login' });\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {};\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginOAuthView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginOAuthView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoginOAuthView.vue?vue&type=template&id=1c057111&scoped=true&\"\nimport script from \"./LoginOAuthView.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoginOAuthView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1c057111\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticStyle:{\"margin-top\":\"85px\"},attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"xs\":\"12\",\"sm\":\"10\",\"md\":\"7\",\"lg\":\"6\",\"xl\":\"4\"}},[_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.login($event)}}},[_c('v-card',{staticClass:\"mb-4 py-2 round-corners\",attrs:{\"color\":\"app-bar-background\",\"height\":\"80px\"}},[_c('v-img',{attrs:{\"src\":\"/img/logo_prudea.svg\",\"height\":\"60px\",\"contain\":\"\"}})],1),_c('v-card',{staticClass:\"p-2 round-corners\"},[_c('v-card-title',{staticClass:\"pb-6\"},[_c('v-img',{attrs:{\"src\":\"/img/logo_centered.svg\",\"height\":\"100px\",\"contain\":\"\"}})],1),_c('v-card-text',[(!_vm.sso)?[_c('v-text-field',{attrs:{\"label\":_vm.$t('username'),\"prepend-icon\":_vm.icons.mdiAccount,\"rules\":_vm.rules.username,\"autofocus\":\"\",\"autocomplete\":\"username\"},model:{value:(_vm.user.username),callback:function ($$v) {_vm.$set(_vm.user, \"username\", $$v)},expression:\"user.username\"}}),_c('v-text-field',{staticClass:\"mb-4\",attrs:{\"label\":_vm.$t('password'),\"prepend-icon\":_vm.icons.mdiLock,\"rules\":_vm.rules.password,\"type\":\"password\",\"autocomplete\":\"current-password\"},model:{value:(_vm.user.password),callback:function ($$v) {_vm.$set(_vm.user, \"password\", $$v)},expression:\"user.password\"}})]:_vm._e(),_c('v-select',{attrs:{\"items\":_vm.languages,\"label\":_vm.$t('language'),\"prepend-icon\":_vm.icons.mdiEarth,\"rules\":_vm.rules.language,\"dense\":\"\",\"item-text\":\"name\",\"item-value\":\"id\"},model:{value:(_vm.user.language),callback:function ($$v) {_vm.$set(_vm.user, \"language\", $$v)},expression:\"user.language\"}}),(!_vm.sso)?_c('div',{staticClass:\"text-right\"},[_c('router-link',{attrs:{\"to\":{name: 'forgotPassword'}}},[_vm._v(\" Forgot Password \")])],1):_vm._e()],2),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"min-width\":\"150px\",\"color\":\"success\",\"type\":\"submit\"}},[_vm._v(\" \"+_vm._s(_vm.$t('login_btn'))+\" \")])],1)],1)],1),_c('v-expand-transition',[(_vm.snackbar.enabled)?_c('v-card',{staticClass:\"mt-2\",attrs:{\"color\":\"error\",\"dark\":\"\",\"flat\":\"\"}},[_c('v-card-title',[(_vm.errorMessage)?[_vm._v(\" \"+_vm._s(_vm.errorMessage)+\" \")]:[_vm._v(\" \"+_vm._s(_vm.$t('loginFailed'))+\" \")],_c('v-spacer'),_c('v-icon',{on:{\"click\":function($event){_vm.snackbar.enabled = false}}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCancel)+\" \")])],2)],1):_vm._e()],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import i18n from '@/i18n';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const Required = function (field: string): (v: any) => boolean | string {\n return (v: unknown) => !!v || i18n.t('rules.required', { field: field }).toString();\n};\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, reactive, ref, watch } from '@vue/composition-api';\nimport { mdiAccount, mdiLock, mdiCancel, mdiEarth } from '@mdi/js';\nimport { LoginDto } from '@/dtos/LoginDto';\nimport { ApplicationModule, AuthenticationModule } from '@/store';\nimport { Required } from '@/core/rules/required';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport { loadLanguageAsync } from '@/i18n';\nimport AuthenticationService from '../services/AuthenticationService';\nimport { UserRole } from '@/dtos/UserDto';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport Axios from '@/api/axios';\n\ninterface Snackbar {\n timer: number | null\n enabled: boolean\n}\n\nexport default defineComponent({\n name: 'LoginView',\n props: {},\n\n setup(_, { root }) {\n const sso = ApplicationModule.Settings.sso;\n\n const user = reactive({\n username: '',\n password: '',\n language: ApplicationModule.AllLanguages['en-US'].id,\n });\n\n const snackbar = reactive({\n enabled: false,\n timer: null,\n });\n\n const errorMessage = ref('');\n\n watch(\n () => snackbar.enabled,\n (value: boolean) => {\n if (value === true) {\n if (snackbar.timer != null) {\n clearTimeout(snackbar.timer);\n }\n setTimeout(() => { snackbar.enabled = false; }, 2000);\n }\n },\n );\n\n const form = ref(null);\n\n const rules: {\n username?: Array<(v: unknown) => (string | boolean)>,\n password?: Array<(v: unknown) => (string | boolean)>,\n language?: Array<(v: unknown) => (string | boolean)>\n } = reactive({});\n\n function refreshRules() {\n rules.username = [\n Required(root.$t('username').toString()),\n ];\n rules.password = [\n Required(root.$t('password').toString()),\n ];\n rules.language = [\n Required(root.$t('language').toString()),\n ];\n }\n\n refreshRules();\n\n const login = async () => {\n if (form != null && form.value != null) {\n // eslint-disable-next-line\n const res = (form.value as any).validate();\n if (!res) {\n return;\n }\n }\n\n const id = BusyIndicatorService.SetBusy('Logging in...');\n\n if (ApplicationModule.Settings.authenticationMethod === 'OAuth') {\n const url = Axios.defaults.baseURL + `/auth/OAuth/Authenticate/?language=${user.language}`;\n window.location.href = url;\n return;\n }\n\n try {\n errorMessage.value = '';\n await AuthenticationService.Login(user);\n } catch (error) {\n if (error.response) {\n // Request made and server responded\n if (error.response.status === 401) {\n console.log('Unauthorized');\n } else if (error.response.status === 400) {\n console.log(error.response.data);\n errorMessage.value = error.response.data;\n } else {\n ErrorHandlingService.Handle(error);\n return;\n }\n snackbar.enabled = true;\n } else if (error.request) {\n // The request was made but no response was received\n console.log('Error contacting server... ' + error.request);\n } else {\n // Something happened in setting up the request that triggered an Error\n console.log('Error', error.message);\n }\n } finally {\n BusyIndicatorService.RemoveBusy(id);\n }\n\n if (AuthenticationModule.LoggedIn) {\n if (AuthenticationModule.Roles.some((role) => role === UserRole.GeneralAdministrator)) {\n root.$router.push({ name: 'home' });\n } else {\n root.$router.push({ name: 'entities' });\n }\n }\n };\n\n const allLanguages = ApplicationModule.AllLanguages;\n const languages: { id: number, name: string, code: string }[] = [];\n\n for (const lang in allLanguages) {\n languages.push({\n id: allLanguages[lang].id,\n name: allLanguages[lang].name,\n code: lang,\n });\n }\n\n watch(\n () => user.language,\n async (value: number) => {\n const id = BusyIndicatorService.SetBusy('Loading Language...');\n\n for (let i = 0; i < languages.length; ++i) {\n if (languages[i].id === value) {\n await loadLanguageAsync(languages[i].code);\n break;\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (form.value as any).resetValidation();\n refreshRules();\n\n BusyIndicatorService.RemoveBusy(id);\n },\n );\n\n return {\n sso,\n languages,\n form,\n user,\n rules,\n login,\n snackbar,\n errorMessage,\n icons: {\n mdiCancel,\n mdiAccount,\n mdiLock,\n mdiEarth,\n },\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoginView.vue?vue&type=template&id=345afd9d&scoped=true&\"\nimport script from \"./LoginView.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoginView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoginView.vue?vue&type=style&index=0&id=345afd9d&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"345afd9d\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VExpandTransition,VForm,VIcon,VImg,VRow,VSelect,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',[_c('h1',[_vm._v(\"(404) Page NotFound\")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_vm._t(\"header\",[_vm._t(\"title\",[_c('div',{staticClass:\"text-h6 text-center\",class:{'mb-4': !_vm.showSubtitle}},[_vm._t(\"title-text\",[_vm._v(\" \"+_vm._s(_vm.title)+\" \")])],2)]),_vm._t(\"subtitle\",[(_vm.showSubtitle)?_c('v-row',{attrs:{\"dense\":\"\",\"no-gutters\":\"\"}},[_c('v-col',[_vm._t(\"subtitle-left\")],2),_c('v-col',{staticClass:\"shrink\"},[_vm._t(\"subtitle-center\",[_c('div',{staticClass:\"text-subtitle-1 text-center\",staticStyle:{\"white-space\":\"nowrap\"}},[_vm._t(\"subtitle-text\",[_vm._v(\" \"+_vm._s(_vm.subtitle)+\" \")])],2)])],2),_c('v-col',[_vm._t(\"subtitle-right\")],2)],1):_vm._e()])]),_c('v-divider'),(_vm.loading)?_c('v-progress-linear',{attrs:{\"indeterminate\":\"\"}}):_vm._e(),(_vm.showOnLoading || !_vm.loading)?_vm._t(\"default\"):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'PdFormBase',\n\n props: {\n title: String,\n subtitle: String,\n\n loading: {\n type: Boolean,\n default: false,\n },\n\n showOnLoading: {\n type: Boolean,\n default: false,\n },\n\n forceSubtitle: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props) {\n const showSubtitle = computed(() => {\n return !!props.subtitle || props.forceSubtitle;\n });\n return {\n showSubtitle,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdFormBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdFormBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdFormBase.vue?vue&type=template&id=c5b115c8&scoped=true&\"\nimport script from \"./PdFormBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdFormBase.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c5b115c8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VDivider,VProgressLinear,VRow})\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageNotFoundView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageNotFoundView.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PageNotFoundView.vue?vue&type=template&id=7a2c1a2c&\"\nimport script from \"./PageNotFoundView.vue?vue&type=script&lang=js&\"\nexport * from \"./PageNotFoundView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticStyle:{\"margin-top\":\"85px\"},attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"justify\":\"center\"}},[_c('v-col',{attrs:{\"xs\":\"12\",\"sm\":\"10\",\"md\":\"7\",\"lg\":\"6\",\"xl\":\"4\"}},[_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"}},[_c('v-card',{staticClass:\"mb-4 py-2 round-corners\",attrs:{\"color\":\"app-bar-background\",\"height\":\"80px\"}},[_c('v-img',{attrs:{\"src\":\"/img/logo_prudea.svg\",\"height\":\"60px\",\"contain\":\"\"}})],1),_c('v-card',{staticClass:\"p-2 round-corners\"},[_c('v-card-title',{staticClass:\"pb-6\"},[_c('v-img',{attrs:{\"src\":\"/img/logo_centered.svg\",\"height\":\"100px\",\"contain\":\"\"}})],1),_c('v-card-text',[_c('div',{staticClass:\"title font-weight-bold text-center mt-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('users.userResetPasswordTitle'))+\" \")]),_c('v-text-field',{attrs:{\"label\":_vm.$t('users.password'),\"type\":\"password\",\"autofocus\":\"\",\"error\":!!_vm.passwordMessage,\"messages\":_vm.passwordMessage},model:{value:(_vm.newPassword),callback:function ($$v) {_vm.newPassword=$$v},expression:\"newPassword\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('users.repeatPassword'),\"type\":\"password\",\"error\":!!_vm.repeatPasswordMessage,\"messages\":_vm.repeatPasswordMessage},model:{value:(_vm.repeatPassword),callback:function ($$v) {_vm.repeatPassword=$$v},expression:\"repeatPassword\"}}),_c('div',[_vm._v(\" Password Complexity \"),_c('ul',[_c('li',[_vm._v(\"The password is at least eight characters long.\")]),_c('li',[_vm._v(\"Latin uppercase letters (A through Z)\")]),_c('li',[_vm._v(\"Latin lowercase letters (a through z)\")]),_c('li',[_vm._v(\"Base 10 digits (0 through 9)\")]),_c('li',[_vm._v(\"Non-alphanumeric characters such as: exclamation point (!), dollar sign ($), number sign (#), or percent (%).\")])])])],1),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"min-width\":\"150px\",\"color\":\"success\",\"disabled\":!_vm.resetPasswordEnabled},on:{\"click\":_vm.resetPassword}},[_vm._v(\" \"+_vm._s(_vm.$t('users.userResetPasswordButton'))+\" \")])],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport i18n from '@/i18n';\nimport router from '@/router';\nimport { UsersService } from '@/services/all';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { computed, defineComponent, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\n\nexport default defineComponent({\n name: 'ResetPasswordView',\n\n components: {\n\n },\n\n props: {\n guid: {\n type: String,\n required: true,\n },\n },\n\n setup(props) {\n const newPassword = ref(null);\n const repeatPassword = ref(null);\n\n const resetPasswordEnabled = computed(() => {\n return !!newPassword.value &&\n !!repeatPassword.value &&\n !passwordMessage.value &&\n !repeatPasswordMessage.value;\n });\n\n const passwordComplexity = new RegExp('((?=.*\\\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\\\\W_]).{8,})');\n const passwordMessage = computed(() => {\n if (newPassword.value == null) {\n return '';\n }\n\n const complex = passwordComplexity.test(newPassword.value);\n if (complex) {\n return '';\n }\n\n return i18n.t('users.passwordDoesNotMeetComplexity').toString();\n });\n\n const repeatPasswordMessage = computed(() => {\n if (repeatPassword.value == null) {\n return '';\n }\n\n return newPassword.value === repeatPassword.value ? '' : i18n.t('users.passordAndRepeatDoesNotMatch').toString();\n });\n\n async function resetPassword() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n if (newPassword.value == null) {\n return;\n }\n\n await UsersService.ResetUserPassword({\n currentPassword: props.guid,\n newPassword: newPassword.value,\n });\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('users.passwordChangedSuccessfully').toString(),\n });\n router.push({ name: 'login' });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n await UsersService.ValidateUserResetPasswordToken(props.guid);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n router.push({ name: 'login' });\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n newPassword,\n repeatPassword,\n resetPassword,\n resetPasswordEnabled,\n\n passwordMessage,\n repeatPasswordMessage,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPasswordView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPasswordView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResetPasswordView.vue?vue&type=template&id=a4179e9e&scoped=true&\"\nimport script from \"./ResetPasswordView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResetPasswordView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a4179e9e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VContainer,VForm,VImg,VRow,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('admin.settings'),\"loading\":_vm.loading}},[_c('div',{staticClass:\"my-2\"},[_c('v-btn',{staticClass:\"text-none mr-2\",on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")]),_c('v-btn',{staticClass:\"text-none\",on:{\"click\":_vm.discardChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")])],1),_c('v-card',{staticClass:\"mb-2\"},[_c('v-card-title',[_vm._v(\" Logo \")]),_c('v-card-text',[_c('img',{attrs:{\"src\":_vm.settings.logo,\"alt\":\"Logo goes here...\",\"height\":\"40px\"}}),_c('v-textarea',{attrs:{\"label\":\"URL or BASE64 image\",\"rows\":\"2\"},model:{value:(_vm.settings.logo),callback:function ($$v) {_vm.$set(_vm.settings, \"logo\", $$v)},expression:\"settings.logo\"}})],1)],1),_c('v-card',{staticClass:\"mb-2\"},[_c('v-card-title',[_vm._v(\" Options \")]),_c('v-card-text',[_c('v-checkbox',{attrs:{\"label\":\"Segregation of Duties\"},model:{value:(_vm.settings.segregationOfDuties),callback:function ($$v) {_vm.$set(_vm.settings, \"segregationOfDuties\", $$v)},expression:\"settings.segregationOfDuties\"}})],1)],1),_c('v-card',{staticClass:\"mb-2\"},[_c('v-card-title',[_vm._v(\" Email Notifications \")]),_c('v-card-text',[_c('v-checkbox',{staticClass:\"mb-2\",attrs:{\"label\":\"Enable Email Notifications\"},model:{value:(_vm.settings.emailSettings.enableNotifications),callback:function ($$v) {_vm.$set(_vm.settings.emailSettings, \"enableNotifications\", $$v)},expression:\"settings.emailSettings.enableNotifications\"}}),(_vm.settings.emailSettings.enableNotifications)?_c('v-radio-group',{staticClass:\"mb-2\",attrs:{\"value\":_vm.emailSettings},on:{\"change\":_vm.changeEmailNotification}},[_c('v-radio',{attrs:{\"label\":\"Database Email\",\"value\":\"database\"}}),_c('v-radio',{attrs:{\"label\":\"Application Email\",\"value\":\"application\"}}),(_vm.settings.emailSettings.applicationNotifications)?_c('div',[_c('v-text-field',{attrs:{\"label\":\"SMTP Server\"},model:{value:(_vm.settings.emailSettings.smtpServer),callback:function ($$v) {_vm.$set(_vm.settings.emailSettings, \"smtpServer\", $$v)},expression:\"settings.emailSettings.smtpServer\"}}),_c('v-text-field',{attrs:{\"label\":\"SMTP Port\"},model:{value:(_vm.settings.emailSettings.smtpPort),callback:function ($$v) {_vm.$set(_vm.settings.emailSettings, \"smtpPort\", $$v)},expression:\"settings.emailSettings.smtpPort\"}}),_c('v-checkbox',{attrs:{\"label\":\"Trust Certificate\"},model:{value:(_vm.settings.emailSettings.trustCertificate),callback:function ($$v) {_vm.$set(_vm.settings.emailSettings, \"trustCertificate\", $$v)},expression:\"settings.emailSettings.trustCertificate\"}}),_c('v-checkbox',{attrs:{\"label\":\"Authenticate User\"},model:{value:(_vm.settings.emailSettings.authenticateUser),callback:function ($$v) {_vm.$set(_vm.settings.emailSettings, \"authenticateUser\", $$v)},expression:\"settings.emailSettings.authenticateUser\"}}),(_vm.settings.emailSettings.authenticateUser)?_c('v-text-field',{attrs:{\"label\":\"Username\"},model:{value:(_vm.settings.emailSettings.smtpUsername),callback:function ($$v) {_vm.$set(_vm.settings.emailSettings, \"smtpUsername\", $$v)},expression:\"settings.emailSettings.smtpUsername\"}}):_vm._e(),(_vm.settings.emailSettings.authenticateUser)?_c('v-text-field',{attrs:{\"label\":\"Password\"},model:{value:(_vm.settings.emailSettings.smtpPassword),callback:function ($$v) {_vm.$set(_vm.settings.emailSettings, \"smtpPassword\", $$v)},expression:\"settings.emailSettings.smtpPassword\"}}):_vm._e(),_c('v-text-field',{attrs:{\"label\":\"Display Name\"},model:{value:(_vm.settings.emailSettings.displayName),callback:function ($$v) {_vm.$set(_vm.settings.emailSettings, \"displayName\", $$v)},expression:\"settings.emailSettings.displayName\"}}),_c('v-text-field',{attrs:{\"label\":\"Display Email\"},model:{value:(_vm.settings.emailSettings.displayEmail),callback:function ($$v) {_vm.$set(_vm.settings.emailSettings, \"displayEmail\", $$v)},expression:\"settings.emailSettings.displayEmail\"}}),_c('v-checkbox',{attrs:{\"label\":\"Send Test Email?\"},model:{value:(_vm.settings.emailSettings.sendTestEmail),callback:function ($$v) {_vm.$set(_vm.settings.emailSettings, \"sendTestEmail\", $$v)},expression:\"settings.emailSettings.sendTestEmail\"}}),(_vm.settings.emailSettings.sendTestEmail)?_c('v-text-field',{attrs:{\"label\":\"Send Test Email to\"},model:{value:(_vm.settings.emailSettings.testEmail),callback:function ($$v) {_vm.$set(_vm.settings.emailSettings, \"testEmail\", $$v)},expression:\"settings.emailSettings.testEmail\"}}):_vm._e()],1):(_vm.settings.emailSettings.databaseNotifications)?_c('div',[_c('v-text-field',{attrs:{\"label\":\"Database Mail Profile\"},model:{value:(_vm.settings.emailSettings.emailProfile),callback:function ($$v) {_vm.$set(_vm.settings.emailSettings, \"emailProfile\", $$v)},expression:\"settings.emailSettings.emailProfile\"}}),_c('v-checkbox',{attrs:{\"label\":\"Use Separate Connections\"},model:{value:(_vm.settings.emailSettings.useSeparateConnection),callback:function ($$v) {_vm.$set(_vm.settings.emailSettings, \"useSeparateConnection\", $$v)},expression:\"settings.emailSettings.useSeparateConnection\"}})],1):_vm._e()],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { computed, defineComponent, reactive, ref } from '@vue/composition-api';\nimport { SettingsDto } from '@/dtos/admin';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport i18n from '@/i18n';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport Axios from '@/api/axios';\n\nexport default defineComponent({\n name: 'ApplicationSettingsView',\n\n components: {\n PdFormBase,\n\n },\n\n props: {\n\n },\n\n setup() {\n const loading = ref(true);\n\n const emailSettings = computed<'application' | 'database'>(() => {\n if (settings.emailSettings.enableNotifications && settings.emailSettings.databaseNotifications) {\n return 'database';\n }\n return 'application';\n });\n\n const settings = reactive({\n logo: '',\n segregationOfDuties: false,\n\n emailSettings: {\n applicationNotifications: false,\n databaseNotifications: false,\n displayEmail: '',\n displayName: '',\n emailProfile: '',\n enableNotifications: false,\n smtpPassword: '',\n smtpPort: 25,\n trustCertificate: false,\n smtpSecure: false,\n smtpServer: '',\n smtpUsername: '',\n testEmail: '',\n sendTestEmail: false,\n useSeparateConnection: false,\n authenticateUser: false,\n },\n });\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n var resp = (await Axios.get('Settings')).data;\n settings.logo = resp.logo;\n settings.segregationOfDuties = resp.segregationOfDuties;\n settings.emailSettings = resp.emailSettings;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n init();\n\n return {\n settings,\n emailSettings,\n loading,\n\n async saveChanges() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n var resp = (await Axios.put('Settings', settings)).data;\n\n settings.logo = resp.logo;\n settings.segregationOfDuties = resp.segregationOfDuties;\n settings.emailSettings = resp.emailSettings;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n\n discardChanges() {\n init();\n },\n\n changeEmailNotification(value: 'application' | 'database') {\n if (value === 'application') {\n settings.emailSettings.applicationNotifications = true;\n settings.emailSettings.databaseNotifications = false;\n } else {\n settings.emailSettings.applicationNotifications = false;\n settings.emailSettings.databaseNotifications = true;\n }\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplicationSettingsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplicationSettingsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ApplicationSettingsView.vue?vue&type=template&id=5d20b714&scoped=true&\"\nimport script from \"./ApplicationSettingsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ApplicationSettingsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d20b714\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VCheckbox,VRadio,VRadioGroup,VTextField,VTextarea})\n","import { UserRole } from '@/dtos';\nimport { LegacyFormView } from '@/views';\nimport ApplicationSettingsView from '@/views/admin/ApplicationSettingsView.vue';\nimport { RouteConfig } from 'vue-router';\n\nexport const Routes: Array = [\n {\n name: 'admin.applicationSettings',\n path: 'applicationSettings',\n component: ApplicationSettingsView,\n meta: { auth: [UserRole.GeneralAdministrator] },\n },\n {\n name: 'admin.licences',\n path: 'licence',\n component: LegacyFormView,\n props: { form: 'licences' },\n meta: { auth: [UserRole.GeneralAdministrator] },\n },\n {\n name: 'admin.users',\n path: 'users',\n component: LegacyFormView,\n props: { form: 'userManagement' },\n meta: { auth: [UserRole.GeneralAdministrator, UserRole.GeneralUserManager] },\n },\n];\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-alert',{attrs:{\"border\":\"left\",\"dense\":\"\",\"text\":\"\",\"type\":\"info\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.rtoInfoMessageForTabs'))+\" \")]),(_vm.showApplicationSelector)?_c('item-selector',{attrs:{\"datasource\":_vm.applicationsDatasource,\"exclude\":_vm.currentApplications},on:{\"select\":_vm.addApplication,\"cancel\":function($event){_vm.showApplicationSelector = false}}}):_vm._e(),_c('table',{staticStyle:{\"width\":\"100%\"}},[_c('thead',[_c('tr',[_c('th',{staticStyle:{\"width\":\"10rem\",\"text-align\":\"left\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.application'))+\" \"),(!_vm.readonly)?_c('v-btn',{staticClass:\"mb-1 ml-4 text-none\",attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showApplicationSelector = true}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.add)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \")],1):_vm._e()],1),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.applicationRtoScale'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.applicationRpoScale'))+\" \")])])]),_c('tbody',_vm._l((_vm.applications),function(a){return _c('bia-application-line',{key:a.uuid,attrs:{\"application\":a,\"rto-scales\":_vm.rtoScales,\"rpo-scales\":_vm.rpoScales,\"readonly\":_vm.readonly,\"partition-rto\":_vm.partitionRto},on:{\"update\":_vm.updateApplication,\"remove\":_vm.removeApplication}})}),1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticClass:\"py-2\",staticStyle:{\"width\":\"20rem\"}},[_vm._v(\" \"+_vm._s(_vm._application.application)+\" \"),(!_vm.readonly)?_c('v-btn',{staticClass:\"mb-1\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.removeApplication}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.remove)+\" \")])],1):_vm._e()],1),_c('td',{staticClass:\"pr-2 py-2\",class:_vm.rtoClass},[_c('v-select',{attrs:{\"items\":_vm.rtoScales,\"label\":_vm.$t('bcm.partitions.deployments.applicationRtoScale'),\"dense\":\"\",\"hide-details\":\"\",\"disabled\":_vm.readonly},on:{\"change\":_vm.valueChanged},model:{value:(_vm._application.rtoId),callback:function ($$v) {_vm.$set(_vm._application, \"rtoId\", $$v)},expression:\"_application.rtoId\"}})],1),_c('td',{staticClass:\"pr-2 py-2\"},[_c('v-select',{attrs:{\"items\":_vm.rpoScales,\"label\":_vm.$t('bcm.partitions.deployments.applicationRpoScale'),\"dense\":\"\",\"hide-details\":\"\",\"disabled\":_vm.readonly},on:{\"change\":_vm.valueChanged},model:{value:(_vm._application.rpoId),callback:function ($$v) {_vm.$set(_vm._application, \"rpoId\", $$v)},expression:\"_application.rpoId\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-text-field',{attrs:{\"label\":_vm.label,\"type\":_vm._inputType,\"readonly\":_vm.readonly,\"disabled\":_vm.disabled,\"name\":_vm.name,\"dense\":_vm.dense,\"hide-details\":_vm.hideDetails},on:{\"keypress\":_vm.preventType,\"change\":_vm.valueChanged},model:{value:(_vm.fieldValue),callback:function ($$v) {_vm.fieldValue=$$v},expression:\"fieldValue\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport preventNonNumericalInput, { preventNonIntegerInput } from '@/components/core/PreventNonNumericalInput';\n\nexport default defineComponent({\n name: 'PdNumberField',\n\n props: {\n value: {\n type: Number,\n required: true,\n },\n\n label: {\n type: String,\n required: false,\n },\n\n integerOnly: {\n type: Boolean,\n default: false,\n },\n\n max: {\n type: Number as PropType,\n required: false,\n },\n\n min: {\n type: Number as PropType,\n required: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n name: {\n type: String,\n required: false,\n },\n\n dense: {\n type: Boolean,\n required: false,\n },\n\n hideDetails: {\n type: Boolean,\n required: false,\n },\n\n inputType: {\n type: String as PropType<'number' | 'text'>,\n default: 'number',\n },\n },\n\n setup(props, { emit }) {\n const fieldValue = ref(props.value);\n\n watch(\n fieldValue,\n (newValue) => {\n if (newValue == null || newValue === '') {\n newValue = 0;\n }\n\n if (typeof (newValue) === 'string') {\n newValue = parseFloat(newValue);\n }\n\n if (props.max != null && newValue > props.max) {\n newValue = props.max;\n }\n\n if (props.min != null && newValue < props.min) {\n newValue = props.min;\n }\n\n if (fieldValue.value !== newValue) {\n fieldValue.value = newValue;\n }\n\n if (props.value !== newValue) {\n emit('input', newValue);\n }\n },\n );\n\n watch(\n () => props.value,\n (newValue) => {\n fieldValue.value = newValue;\n },\n );\n\n const preventType = computed(() => {\n if (props.integerOnly) {\n return preventNonIntegerInput;\n } else {\n return preventNonNumericalInput;\n }\n });\n\n const _inputType = computed(() => {\n if (props.inputType === 'text') {\n return 'text';\n }\n\n return 'number';\n });\n\n function valueChanged(val: number) {\n emit('change', val);\n }\n return {\n preventType,\n fieldValue,\n valueChanged,\n _inputType,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdNumberField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdNumberField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdNumberField.vue?vue&type=template&id=7c28c4eb&scoped=true&\"\nimport script from \"./PdNumberField.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdNumberField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7c28c4eb\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","import {\n mdiAccount,\n mdiAccountVoice,\n mdiAlert,\n mdiArrowULeftBottom,\n mdiBook,\n mdiBookOpen,\n mdiCalendar,\n mdiChevronDown,\n mdiChevronRight,\n mdiClose,\n mdiCollapseAllOutline,\n mdiDatabaseExport,\n mdiDatabaseImport,\n mdiDotsVertical,\n mdiEarthArrowRight,\n mdiExitRun,\n mdiExpandAllOutline,\n mdiFileDocument,\n mdiFloppy,\n mdiForum,\n mdiHandBackLeft,\n mdiHarddisk,\n mdiInformation,\n mdiMapOutline,\n mdiMessageReplyTextOutline,\n mdiMessageTextOutline,\n mdiMinus,\n mdiOfficeBuildingCog,\n mdiOfficeBuildingRemove,\n mdiPencil,\n mdiPlaylistPlus,\n mdiPlus,\n mdiPlusBoxMultipleOutline,\n mdiShieldSearch,\n mdiThumbDown,\n mdiThumbUp,\n mdiTimelineTextOutline,\n mdiTrafficLight,\n mdiTrashCan,\n mdiTrashCanOutline,\n} from '@mdi/js';\n\nconst icons = {\n plus: mdiPlus,\n minus: mdiMinus,\n menu: mdiDotsVertical,\n save: mdiFloppy,\n edit: mdiPencil,\n delete: mdiTrashCan,\n discardChanges: mdiTrashCanOutline,\n deploy: mdiTimelineTextOutline,\n abort: mdiHandBackLeft,\n return: mdiArrowULeftBottom,\n remove: mdiClose,\n approve: mdiThumbUp,\n reject: mdiThumbDown,\n\n translations: mdiEarthArrowRight,\n\n expanded: mdiChevronDown,\n collapsed: mdiChevronRight,\n\n expandAll: mdiExpandAllOutline,\n collapseAll: mdiCollapseAllOutline,\n\n addChildRecord: mdiPlaylistPlus,\n\n import: mdiDatabaseImport,\n export: mdiDatabaseExport,\n\n open: mdiBookOpen,\n info: mdiInformation,\n user: mdiAccount,\n\n trafficLight: mdiTrafficLight,\n\n messageRight: mdiMessageTextOutline,\n messageLeft: mdiMessageReplyTextOutline,\n\n biaDeployments: mdiForum,\n israDeployments: mdiBook,\n traDeployments: mdiShieldSearch,\n disasterTests: mdiHarddisk,\n bcpFunctionalTests: mdiExitRun,\n incidents: mdiAccountVoice,\n documents: mdiFileDocument,\n\n attention: mdiAlert,\n\n move: mdiPlusBoxMultipleOutline,\n\n map: mdiMapOutline,\n\n calendar: mdiCalendar,\n\n buildingUnavailable: mdiOfficeBuildingRemove,\n recoverySiteBuilding: mdiOfficeBuildingCog,\n};\n\nexport default icons;\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PartitionApplicationDto, PartitionRtoMaoDto } from '@/dtos';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport PdNumberField from '@/components/core/PdNumberField.vue';\nimport { ISelectItem } from '@/core';\nimport icons from '@/core/icons';\nimport { cloneDeep } from 'lodash';\nimport PopupMessageService, { PopupMessageButtonNo, PopupMessageButtonYes } from '@/services/PopupMessageService';\nimport i18n from '@/i18n';\n\nexport default defineComponent({\n name: 'BiaApplicationLine',\n\n components: {\n PdNumberField,\n },\n\n props: {\n application: {\n type: Object as PropType,\n required: true,\n },\n\n rtoScales: {\n type: Array as PropType>,\n required: true,\n },\n\n rpoScales: {\n type: Array as PropType>,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n\n partitionRto: {\n type: Object as PropType,\n required: false,\n },\n },\n\n setup(props, { emit }) {\n const _application = ref(cloneDeep(props.application));\n\n watch(\n () => props.application,\n (a) => {\n _application.value = cloneDeep(a);\n },\n );\n\n function valueChanged() {\n emit('update', _application.value);\n }\n\n function removeApplication() {\n PopupMessageService.SetMessage({\n title: i18n.t('confirm'),\n text: i18n.t('bcm.partitions.deployments.removeConfirmation', { name: _application.value.application }),\n buttons: [\n PopupMessageButtonYes(() => {\n emit('remove', _application.value);\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n const rtoClass = computed(() => {\n if (props.partitionRto == null || props.partitionRto.rtoValue == null || props.application.rtoId == null) {\n return '';\n }\n\n const current = props.rtoScales.find(i => i.value === props.application.rtoId);\n if (current == null) {\n return '';\n }\n\n if (current.rtoValue as number < props.partitionRto.rtoValue) {\n return 'marked';\n }\n\n return '';\n });\n\n return {\n _application,\n valueChanged,\n removeApplication,\n\n rtoClass,\n\n remove: icons.remove,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaApplicationLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaApplicationLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaApplicationLine.vue?vue&type=template&id=14569570&scoped=true&\"\nimport script from \"./BiaApplicationLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaApplicationLine.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BiaApplicationLine.vue?vue&type=style&index=0&id=14569570&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"14569570\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VIcon,VSelect})\n","import { EntityApiBase } from '@/api/EntityApiBase';\nimport axios from '@/api/axios';\nimport { AssetCostDto } from '@/dtos';\n\nexport default class AssetsApi extends EntityApiBase {\n static async GetAssetsCosts(assetId: number) : Promise {\n const ret = await axios.get(`/masterplans/${this.EntityId}/bc/AssetCosts/${assetId}`);\n return ret.data;\n }\n}\n","import AssetsApi from '@/api/bcm/AssetsApi';\nimport { AssetCostDto } from '@/dtos';\n\nexport default class AssetsService {\n public static async GetAssetsCosts(assetId: number) : Promise {\n return AssetsApi.GetAssetsCosts(assetId);\n }\n}\n","import { FileDto } from '@/dtos/all';\nimport { EntityApiBase } from '../EntityApiBase';\nimport axios from '../axios';\n\nexport default class AssociateApi extends EntityApiBase {\n static async Import(data: FormData) : Promise {\n return await axios.post(`/masterplans/${this.EntityId}/bc/Associates/import`, data);\n }\n\n static async Export() : Promise {\n const resp = await axios.get(`/masterplans/${this.EntityId}/bc/Associates/export`);\n return resp.data;\n }\n}\n","import AssociatesApi from '@/api/bcm/AssociatesApi';\nimport { UploadCsvFileDto, UploadCsvFileDtoToFormData } from '@/dtos';\nimport { FileDto } from '@/dtos/all';\n\nexport default class AssociatesService {\n public static async Import(parameters: UploadCsvFileDto) : Promise {\n const fd = UploadCsvFileDtoToFormData(parameters);\n\n return AssociatesApi.Import(fd);\n }\n\n public static async Export() : Promise {\n return AssociatesApi.Export();\n }\n}\n","import axios from '@/api/axios';\nimport { FileDto } from '@/dtos/all';\nimport { EntityApiBase } from '../EntityApiBase';\n\nexport default class ContractsApi extends EntityApiBase {\n static async ImportContracts(data: FormData): Promise> {\n const req = await axios.post(`/masterplans/${this.EntityId}/srb/Contracts/Import`, data);\n return req.data;\n }\n\n static async Export(type: string, inactive: boolean): Promise {\n const resp = await axios.get(`/masterplans/${this.EntityId}/srb/Contracts/Export?type=${type}&inactive=${inactive}`);\n return resp.data;\n }\n}\n","import ContractsApi from '@/api/bcm/ContractsApi';\nimport { UploadCsvFileDto } from '@/dtos';\nimport { FileDto } from '@/dtos/all';\n\nexport default class ContractsService {\n public static async Export(type: string, inactive: boolean): Promise {\n return ContractsApi.Export(type, inactive);\n }\n\n public static async ImportContracts(parameters: UploadCsvFileDto): Promise> {\n const fd = new FormData();\n fd.append('file', parameters.file);\n fd.append('ignoreFirstLine', parameters.ignoreFirstLine ? 'true' : 'false');\n fd.append('clearExisting', parameters.clearExisting ? 'true' : 'false');\n fd.append('delimiter', parameters.delimiter);\n\n return ContractsApi.ImportContracts(fd);\n }\n}\n","import { EmployeePartitionDto } from '@/dtos';\nimport axios from '../axios';\nimport { EntityApiBase } from '../EntityApiBase';\n\nexport default class EmployeePartitionsApi extends EntityApiBase {\n static async GetAllPartitions(employeeId: number): Promise> {\n const resp = await axios.get>(`/masterplans/${this.EntityId}/bc/Employees/${employeeId}/Partitions`);\n return resp.data;\n }\n\n static async AddPartition(employeeId: number, partitionId: number): Promise {\n const resp = await axios.post(`/masterplans/${this.EntityId}/bc/Employees/${employeeId}/Partitions`, { partitionId });\n return resp.data;\n }\n\n static async RemovePartition(employeeId: number, partitionId: number): Promise {\n await axios.delete(`/masterplans/${this.EntityId}/bc/Employees/${employeeId}/Partitions/${partitionId}`);\n return Promise.resolve();\n }\n}\n","import EmployeePartitionsApi from '@/api/bcm/EmployeePartitionsApi';\nimport { EmployeeDto, EmployeePartitionDto } from '@/dtos';\n\nexport default class EmployeePartitions {\n public static async GetAllPartitions(employee: EmployeeDto): Promise> {\n return EmployeePartitionsApi.GetAllPartitions(employee.id);\n }\n\n public static async AddPartition(employee: EmployeeDto, partition: EmployeePartitionDto): Promise {\n return EmployeePartitionsApi.AddPartition(employee.id, partition.partitionId);\n }\n\n public static async RemovePartition(employee: EmployeeDto, partition: EmployeePartitionDto): Promise {\n return EmployeePartitionsApi.RemovePartition(employee.id, partition.id);\n }\n}\n","import { FileDto } from '@/dtos/all';\nimport { EntityApiBase } from '../EntityApiBase';\nimport axios from '../axios';\n\nexport default class EmployeesApi extends EntityApiBase {\n static async ImportEmployees(data: FormData): Promise> {\n const req = await axios.post(`/masterplans/${this.EntityId}/bc/Employees/import`, data);\n return req.data;\n }\n\n static async ExportEmployees(): Promise {\n const resp = await axios.get(`/masterplans/${this.EntityId}/bc/Employees/Export`);\n return resp.data;\n }\n}\n","import EmployeesApi from '@/api/bcm/EmployeesApi';\nimport { FileDto } from '@/dtos/all';\nimport { UploadCsvFileDto } from '@/dtos/UploadCsvFileDto';\n\nexport default class EmployeesService {\n public static async ImportEmployees(parameters: UploadCsvFileDto): Promise> {\n const fd = new FormData();\n fd.append('file', parameters.file);\n fd.append('ignoreFirstLine', parameters.ignoreFirstLine ? 'true' : 'false');\n fd.append('clearExisting', parameters.clearExisting ? 'true' : 'false');\n fd.append('delimiter', parameters.delimiter);\n\n return EmployeesApi.ImportEmployees(fd);\n }\n\n public static async ExportEmployees(): Promise {\n return EmployeesApi.ExportEmployees();\n }\n}\n","import { EntityApiBase } from '@/api/EntityApiBase';\nimport axios from '@/api/axios';\nimport { LocationDto } from '@/dtos';\n\nexport default class LocationApi extends EntityApiBase {\n static async Update(data: LocationDto) : Promise {\n const ret = await axios.put(`/masterplans/${this.EntityId}/bc/Locations/${data.id}`, data);\n\n return ret.data;\n }\n}\n","import LocationsApi from '@/api/bcm/LocationsApi';\nimport { LocationDto } from '@/dtos';\n\nexport default class LocationsService {\n public static async UpdateLocation(locationDto: LocationDto) : Promise {\n return LocationsApi.Update(locationDto);\n }\n}\n","import { FileDto } from '@/dtos/all';\nimport { PartitionDto } from '@/dtos/bcm';\nimport { IncidentAffectedItemStatsDto } from '@/dtos/bcm/incident/IncidentAffectedItemStatsDto';\nimport { ApplicationModule } from '@/store';\nimport axios from './axios';\n\nexport default class PartitionsApi {\n static async GetPartitionIncidentStats(partition: PartitionDto): Promise {\n const entity = ApplicationModule.Entity;\n if (entity != null) {\n const resp = await axios.get(`/masterplans/${entity.id}/bc/Partitions/${partition.id}/IncidentStats`);\n return resp.data;\n }\n\n throw new Error('Entity is not set!');\n }\n\n static async ExportOrganizationStructure(entityId: number): Promise {\n const resp = await axios.get(`/masterplans/${entityId}/bc/Partitions/export`);\n return resp.data;\n }\n\n static async ClearPartitionBiaInfo(entityId: number, partitionId: number): Promise {\n await axios.post(`/masterplans/${entityId}/bc/Partitions/${partitionId}/ClearBiaInfo`);\n return Promise.resolve();\n }\n\n static async ChangePartitionParent(entityId: number, partitionId: number, newParentId: number): Promise {\n await axios.post(`/masterplans/${entityId}/bc/Partitions/${partitionId}/ChangeParent/${newParentId}`);\n return Promise.resolve();\n }\n}\n","import PartitionsApi from '@/api/PartitionsApi';\nimport { PartitionDto } from '@/dtos';\nimport { FileDto } from '@/dtos/all';\nimport { ApplicationModule } from '@/store';\n\nexport default class PartitionsService {\n public static get Entity(): number {\n const entity = ApplicationModule.Entity;\n if (entity == null) {\n throw new Error('Entity is null in BiaService');\n }\n\n return entity.id;\n }\n\n public static async DownloadOrganizationStructure(): Promise {\n return PartitionsApi.ExportOrganizationStructure(PartitionsService.Entity);\n }\n\n public static async ClearPartitionBiaInfo(partitionId: number): Promise {\n return PartitionsApi.ClearPartitionBiaInfo(PartitionsService.Entity, partitionId);\n }\n\n public static async ChangePartitionParent(partition: PartitionDto, newParent: PartitionDto): Promise {\n return PartitionsApi.ChangePartitionParent(PartitionsService.Entity, partition.id, newParent?.id ?? 0);\n }\n}\n","import { RtoApplicationScaleDto } from '@/dtos/bcm';\nimport { IncidentAffectedItemStatsDto } from '@/dtos/bcm/incident/IncidentAffectedItemStatsDto';\nimport { SystemDto } from '@/dtos/bcm/SystemDto';\nimport axios from './axios';\nimport { EntityApiBase } from './EntityApiBase';\n\nexport default class SystemApi extends EntityApiBase {\n static async GetApplicationRto(system: SystemDto): Promise {\n const resp = await axios.get(`/masterplans/${this.EntityId}/bc/Applications/ApplicationRto/${system.id}`);\n return resp.data;\n }\n\n static async GetApplicationIncidentStats(system: SystemDto): Promise {\n const resp = await axios.get(`/masterplans/${this.EntityId}/bc/Applications/${system.id}/IncidentStats`);\n return resp.data;\n }\n\n static async UpdateBusinessOwnersFromDeployments():Promise {\n return await axios.post(`/masterplans/${this.EntityId}/bc/Applications/UpdateFromDeployments`);\n }\n\n static async ImportSystems(data: FormData) : Promise {\n return await axios.post(`/masterplans/${this.EntityId}/bc/Applications/UploadFile/Import`, data);\n }\n}\n","import SystemsApi from '@/api/SystemsApi';\nimport { UploadCsvFileDto, UploadCsvFileDtoToFormData } from '@/dtos';\n\nexport default class SystemsService {\n public static async ImportSystems(parameters: UploadCsvFileDto) : Promise {\n const fd = UploadCsvFileDtoToFormData(parameters);\n\n return SystemsApi.ImportSystems(fd);\n }\n}\n","import axios from '@/api/axios';\nimport { EntityApiBase } from '@/api/EntityApiBase';\nimport type {\n BiaPartitionDto,\n PartitionApplicationDto,\n PartitionAssetDto,\n PartitionAssociateDto,\n PartitionDeploymentDto,\n PartitionFinancialImpactDto,\n PartitionInterdependencyDto,\n PartitionOperationalImpactDto,\n PartitionPersonnelDto,\n PartitionRtoMaoDto,\n PartitionServiceApplicationDto,\n PartitionServiceAssociateDto,\n PartitionServiceDto,\n PartitionServicePersonnelDto,\n PartitionSurveyDto,\n PartitionSurveyQuestionDto,\n} from '@/dtos/bcm/bia';\n\nexport default class BiaApi extends EntityApiBase {\n static async GetPartitionInfo(entityId:number, partitionId: number): Promise {\n const response = await axios.get(`/masterplans/${entityId}/bc/bia/Partitions/${[partitionId]}/info`);\n return Promise.resolve(response.data);\n }\n\n static async GetSelfAssessmentType(entityId:number, partitionId: number): Promise {\n const response = await axios.get(`/masterplans/${entityId}/bc/bia/Partitions/${[partitionId]}/SelfAssessmentType`);\n return Promise.resolve(response.data);\n }\n\n static async UpdateSelfAssessmentType(entityId:number, partitionId: number, partition: BiaPartitionDto): Promise {\n const response = await axios.put(`/masterplans/${entityId}/bc/bia/Partitions/${[partitionId]}/UpdateSelfAssessmentType`, partition);\n return Promise.resolve(response.data);\n }\n\n static async GetPartitionDeployments(entityId:number, partitionId: number): Promise> {\n const response = await axios.get>(`/masterplans/${entityId}/bc/bia/Partitions/${[partitionId]}/Deployments`);\n return Promise.resolve(response.data);\n }\n\n static async GetAllPartitionSurveys(entityId:number, partitionId: number): Promise> {\n const response = await axios.get>(`/masterplans/${entityId}/bc/bia/Partitions/${[partitionId]}/surveys`);\n return Promise.resolve(response.data);\n }\n\n static async GetPartitionSurveyDetails(entityId:number, partitionId: number, partitionSurveyId: number): Promise {\n const response = await axios.get(`/masterplans/${entityId}/bc/bia/Partitions/${[partitionId]}/surveys/${partitionSurveyId}`);\n return Promise.resolve(response.data);\n }\n\n static async GetPartitionOperationalImpacts(entityId:number, partitionId: number): Promise> {\n const response = await axios.get>(`/masterplans/${entityId}/bc/bia/Partitions/${[partitionId]}/operationalImpacts`);\n return Promise.resolve(response.data);\n }\n\n static async GetPartitionRtoAndMao(entityId:number, partitionId: number): Promise {\n const response = await axios.get(`/masterplans/${entityId}/bc/bia/Partitions/${[partitionId]}/RtoMao`);\n return Promise.resolve(response.data);\n }\n\n static async GetPartitionFinancialImpacts(entityId:number, partitionId: number): Promise> {\n const response = await axios.get>(`/masterplans/${entityId}/bc/bia/Partitions/${[partitionId]}/FinancialImpacts`);\n return Promise.resolve(response.data);\n }\n\n static async GetPartitionAssets(entityId:number, partitionId: number): Promise> {\n const response = await axios.get>(`/masterplans/${entityId}/bc/bia/Partitions/${[partitionId]}/Assets`);\n return Promise.resolve(response.data);\n }\n\n static async GetPartitionApplications(entityId:number, partitionId: number): Promise> {\n const response = await axios.get>(`/masterplans/${entityId}/bc/bia/Partitions/${[partitionId]}/Applications`);\n return Promise.resolve(response.data);\n }\n\n static async GetPartitionInterdependencies(entityId:number, partitionId: number): Promise> {\n const response = await axios.get>(`/masterplans/${entityId}/bc/bia/Partitions/${[partitionId]}/Interdependencies`);\n return Promise.resolve(response.data);\n }\n\n static async GetPartitionAssociates(entityId:number, partitionId: number): Promise> {\n const response = await axios.get>(`/masterplans/${entityId}/bc/bia/Partitions/${[partitionId]}/Associates`);\n return Promise.resolve(response.data);\n }\n\n static async GetPartitionPersonnel(entityId:number, partitionId: number): Promise> {\n const response = await axios.get>(`/masterplans/${entityId}/bc/bia/Partitions/${[partitionId]}/Personnel`);\n return Promise.resolve(response.data);\n }\n\n static async GetUserDeployments(entityId:number): Promise> {\n const response = await axios.get>(`/masterplans/${entityId}/bc/bia/Deployments/User`);\n return Promise.resolve(response.data);\n }\n\n static async GetDeployment(entityId:number, deploymentId: number): Promise {\n const response = await axios.get(`/masterplans/${entityId}/bc/bia/Deployments/${deploymentId}`);\n return Promise.resolve(response.data);\n }\n\n static async GetDeploymentSurveys(entityId:number, deploymentId: number): Promise> {\n const response = await axios.get>(`/masterplans/${entityId}/bc/bia/Deployments/${deploymentId}/Surveys`);\n return Promise.resolve(response.data);\n }\n\n public static async UpdateDeploymentSurveyQuestion(entityId:number, deploymentId: number, surveyId: number, question: PartitionSurveyQuestionDto): Promise {\n const response = await axios.put(`/masterplans/${entityId}/bc/bia/Deployments/${deploymentId}/Surveys/${surveyId}/Questions/${question.id}`, question);\n return Promise.resolve(response.data);\n }\n\n public static async UpdateOperationalImpactQuestion(entityId:number, partitionId: number, question: PartitionOperationalImpactDto): Promise {\n const response = await axios.put(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/OperationalImpacts/${question.id}`, question);\n return Promise.resolve(response.data);\n }\n\n public static async UpdateFinancialImpactQuestion(entityId:number, partitionId: number, question: PartitionFinancialImpactDto): Promise {\n const response = await axios.put(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/FinancialImpacts/${question.id}`, question);\n return Promise.resolve(response.data);\n }\n\n public static async CreateAsset(entityId:number, partitionId: number, assetId: number): Promise {\n const response = await axios.post(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Assets/${assetId}`);\n return Promise.resolve(response.data);\n }\n\n public static async UpdateAsset(entityId:number, partitionId: number, asset: PartitionAssetDto): Promise {\n const response = await axios.put(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Assets/${asset.id}`, asset);\n return Promise.resolve(response.data);\n }\n\n public static async DeleteAsset(entityId:number, partitionId: number, assetId: number): Promise {\n return await axios.delete(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Assets/${assetId}`);\n }\n\n public static async CreateApplication(entityId:number, partitionId: number, applicationId: number): Promise {\n const response = await axios.post(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Applications/${applicationId}`);\n return Promise.resolve(response.data);\n }\n\n public static async UpdateApplication(entityId:number, partitionId: number, application: PartitionApplicationDto): Promise {\n console.log(application);\n const response = await axios.put(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Applications/${application.id}`, application);\n return Promise.resolve(response.data);\n }\n\n public static async DeleteApplication(entityId:number, partitionId: number, applicationId: number): Promise {\n return await axios.delete(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Applications/${applicationId}`);\n }\n\n public static async ApproveDeployment(entityId:number, deploymentId: number, message: string): Promise {\n await axios.post(`/masterplans/${entityId}/bc/bia/Deployments/${deploymentId}/Approve`, { message });\n }\n\n public static async RejectDeployment(entityId:number, deploymentId: number, message: string): Promise {\n await axios.post(`/masterplans/${entityId}/bc/bia/Deployments/${deploymentId}/Reject`, { message });\n }\n\n public static async DeployDeployment(entityId:number, deploymentId: number): Promise {\n await axios.post(`/masterplans/${entityId}/bc/bia/Deployments/${deploymentId}/Deploy`);\n }\n\n public static async AbortDeployment(entityId:number, deploymentId: number): Promise {\n await axios.post(`/masterplans/${entityId}/bc/bia/Deployments/${deploymentId}/Abort`);\n }\n\n public static async CreateDeployment(entityId:number, partitionId: number, deployment: PartitionDeploymentDto): Promise {\n const response = await axios.post(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Deployments`, deployment);\n return Promise.resolve(response.data);\n }\n\n public static async UpdateDeployment(entityId:number, partitionId: number, deploymentId: number, deployment: PartitionDeploymentDto): Promise {\n const response = await axios.put(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Deployments/${deploymentId}`, deployment);\n return Promise.resolve(response.data);\n }\n\n public static async DeleteDeployment(entityId:number, partitionId: number, deploymentId: number): Promise {\n await axios.delete(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Deployments/${deploymentId}`);\n }\n\n static async GetPartitionServices(entityId:number, partitionId: number): Promise> {\n const response = await axios.get>(`/masterplans/${entityId}/bc/bia/Partitions/${[partitionId]}/Services`);\n return Promise.resolve(response.data);\n }\n\n static async CreatePartitionService(entityId:number, partitionId: number, service: PartitionServiceDto): Promise {\n const response = await axios.post(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Services`, service);\n return Promise.resolve(response.data);\n }\n\n static async DeletePartitionService(entityId:number, partitionId: number, serviceId: number): Promise {\n await axios.delete(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Services/${serviceId}`);\n }\n\n static async CreatePartitionServiceApplication(entityId:number, partitionId: number, serviceId: number, application: PartitionServiceApplicationDto): Promise {\n const response = await axios.post(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Services/${serviceId}/Applications`, application);\n return Promise.resolve(response.data);\n }\n\n static async DeletePartitionServiceApplication(entityId:number, partitionId: number, serviceId: number, partitionServiceApplicationId: number): Promise {\n await axios.delete(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Services/${serviceId}/Applications/${partitionServiceApplicationId}`);\n }\n\n static async CreatePartitionServiceAssociate(entityId:number, partitionId: number, serviceId: number, associate: PartitionServiceAssociateDto): Promise {\n const response = await axios.post(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Services/${serviceId}/Associates`, associate);\n return Promise.resolve(response.data);\n }\n\n static async UpdatePartitionServiceRto(entityId:number, partitionId: number, serviceId: number, dto: PartitionServiceDto): Promise {\n const response = await axios.put(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Services/${serviceId}`, dto);\n return Promise.resolve(response.data);\n }\n\n static async UpdatePartitionServiceAssociate(entityId:number, partitionId: number, serviceId: number, partitionServiceAssociateId: number, partitionServiceAssociate: PartitionServiceAssociateDto): Promise {\n const response = await axios.put(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Services/${serviceId}/Associates/${partitionServiceAssociateId}`, partitionServiceAssociate);\n return Promise.resolve(response.data);\n }\n\n static async DeletePartitionServiceAssociate(entityId:number, partitionId: number, serviceId: number, partitionServiceAssociateId: number): Promise {\n await axios.delete(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Services/${serviceId}/Associates/${partitionServiceAssociateId}`);\n }\n\n static async CreatePartitionServicePersonnel(entityId:number, partitionId: number, serviceId: number, personnel: PartitionServicePersonnelDto): Promise {\n const response = await axios.post(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Services/${serviceId}/Personnel`, personnel);\n return Promise.resolve(response.data);\n }\n\n static async UpdatePartitionServicePersonnel(entityId:number, partitionId: number, serviceId: number, partitionServicePersonnelId: number, partitionServicePersonnel: PartitionServicePersonnelDto): Promise {\n const response = await axios.put(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Services/${serviceId}/Personnel/${partitionServicePersonnelId}`, partitionServicePersonnel);\n return Promise.resolve(response.data);\n }\n\n static async DeletePartitionServicePersonnel(entityId:number, partitionId: number, serviceId: number, partitionServicePersonnelId: number): Promise {\n await axios.delete(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Services/${serviceId}/Personnel/${partitionServicePersonnelId}`);\n }\n\n static async ChangePersonParent(entityId: number, partitionId: number, personId:number, newParentId: number): Promise {\n await axios.post(`/masterplans/${entityId}/bc/bia/Partitions/${partitionId}/Personnel/${personId}/ChangeParent/${newParentId}`);\n return Promise.resolve();\n }\n}\n","import { BiaApi } from '@/api/bcm';\nimport { AssetDto, SystemDto } from '@/dtos';\nimport {\n BiaPartitionDto,\n DegreeOfDependency,\n PartitionApplicationDto,\n PartitionAssetDto,\n PartitionAssociateDto,\n PartitionDeploymentDto,\n PartitionFinancialImpactDto,\n PartitionInterdependencyDto,\n PartitionOperationalImpactDto,\n PartitionPersonnelDto,\n PartitionRtoMaoDto,\n PartitionServiceApplicationDto,\n PartitionServiceAssociateDto,\n PartitionServiceDto,\n PartitionServicePersonnelDto,\n PartitionSurveyDto,\n PartitionSurveyQuestionDto,\n SubstituteType,\n} from '@/dtos/bcm/bia';\nimport { ServiceDto } from '@/dtos/srb';\nimport { ApplicationModule } from '@/store';\n\nexport default class BiaService {\n public static get Entity(): number {\n const entity = ApplicationModule.Entity;\n if (entity == null) {\n throw new Error('Entity is null in BiaService');\n }\n\n return entity.id;\n }\n\n public static async GetPartitionInfo(partitionId: number): Promise {\n return BiaApi.GetPartitionInfo(BiaService.Entity, partitionId);\n }\n\n public static async GetSelfAssessmentType(partitionId: number): Promise {\n return BiaApi.GetSelfAssessmentType(BiaService.Entity, partitionId);\n }\n\n public static async UpdateSelfAssessmentType(partition: BiaPartitionDto): Promise {\n return BiaApi.UpdateSelfAssessmentType(BiaService.Entity, partition.id, partition);\n }\n\n public static async GetPartitionDeployments(partitionId: number): Promise> {\n return BiaApi.GetPartitionDeployments(BiaService.Entity, partitionId);\n }\n\n public static async GetAllPartitionSurveys(partitionId: number): Promise> {\n return BiaApi.GetAllPartitionSurveys(BiaService.Entity, partitionId);\n }\n\n public static async GetPartitionSurveyDetails(partitionId: number, partitionSurveyId: number): Promise {\n return BiaApi.GetPartitionSurveyDetails(BiaService.Entity, partitionId, partitionSurveyId);\n }\n\n public static async GetPartitionOperationalImpacts(partitionId: number): Promise> {\n return BiaApi.GetPartitionOperationalImpacts(BiaService.Entity, partitionId);\n }\n\n public static async GetPartitionRtoAndMao(partitionId: number): Promise {\n return BiaApi.GetPartitionRtoAndMao(BiaService.Entity, partitionId);\n }\n\n public static async GetPartitionFinancialImpacts(partitionId: number): Promise> {\n return BiaApi.GetPartitionFinancialImpacts(BiaService.Entity, partitionId);\n }\n\n public static async GetPartitionAssets(partitionId: number): Promise> {\n return BiaApi.GetPartitionAssets(BiaService.Entity, partitionId);\n }\n\n public static async GetPartitionApplications(partitionId: number): Promise> {\n return BiaApi.GetPartitionApplications(BiaService.Entity, partitionId);\n }\n\n public static async GetPartitionInterdependencies(partitionId: number): Promise> {\n return BiaApi.GetPartitionInterdependencies(BiaService.Entity, partitionId);\n }\n\n public static async GetPartitionAssociates(partitionId: number): Promise> {\n return BiaApi.GetPartitionAssociates(BiaService.Entity, partitionId);\n }\n\n public static async GetPartitionPersonnel(partitionId: number): Promise> {\n return BiaApi.GetPartitionPersonnel(BiaService.Entity, partitionId);\n }\n\n public static async GetUserDeployments(): Promise> {\n return BiaApi.GetUserDeployments(BiaService.Entity);\n }\n\n public static async GetDeployment(deploymentId: number): Promise {\n return BiaApi.GetDeployment(BiaService.Entity, deploymentId);\n }\n\n public static async GetDeploymentSurveys(deploymentId: number): Promise> {\n return BiaApi.GetDeploymentSurveys(BiaService.Entity, deploymentId);\n }\n\n public static async UpdateDeploymentSurveyQuestion(deploymentId: number, surveyId: number, question: PartitionSurveyQuestionDto): Promise {\n return BiaApi.UpdateDeploymentSurveyQuestion(BiaService.Entity, deploymentId, surveyId, question);\n }\n\n public static async UpdateOperationalImpactQuestion(partitionId: number, question: PartitionOperationalImpactDto): Promise {\n return BiaApi.UpdateOperationalImpactQuestion(BiaService.Entity, partitionId, question);\n }\n\n public static async UpdateFinancialImpactQuestion(partitionId: number, question: PartitionFinancialImpactDto): Promise {\n return BiaApi.UpdateFinancialImpactQuestion(BiaService.Entity, partitionId, question);\n }\n\n public static async CreateAsset(partitionId: number, asset: AssetDto): Promise {\n return BiaApi.CreateAsset(BiaService.Entity, partitionId, asset.id);\n }\n\n public static async UpdateAsset(partitionId: number, asset: PartitionAssetDto): Promise {\n return BiaApi.UpdateAsset(BiaService.Entity, partitionId, asset);\n }\n\n public static async DeleteAsset(partitionId: number, asset: PartitionAssetDto): Promise {\n return BiaApi.DeleteAsset(BiaService.Entity, partitionId, asset.id);\n }\n\n public static async CreateApplication(partitionId: number, application: SystemDto): Promise {\n return BiaApi.CreateApplication(BiaService.Entity, partitionId, application.id);\n }\n\n public static async UpdateApplication(partitionId: number, application: PartitionApplicationDto): Promise {\n return BiaApi.UpdateApplication(BiaService.Entity, partitionId, application);\n }\n\n public static async DeleteApplication(partitionId: number, application: PartitionApplicationDto): Promise {\n return BiaApi.DeleteApplication(BiaService.Entity, partitionId, application.id);\n }\n\n public static async ApproveDeployment(deploymentId: number, message: string): Promise {\n return BiaApi.ApproveDeployment(BiaService.Entity, deploymentId, message);\n }\n\n public static async RejectDeployment(deploymentId: number, message: string): Promise {\n return BiaApi.RejectDeployment(BiaService.Entity, deploymentId, message);\n }\n\n public static async DeployDeployment(deploymentId: number): Promise {\n return BiaApi.DeployDeployment(BiaService.Entity, deploymentId);\n }\n\n public static async AbortDeployment(deploymentId: number): Promise {\n return BiaApi.AbortDeployment(BiaService.Entity, deploymentId);\n }\n\n public static async SaveDeployment(partitionId: number, deployment: PartitionDeploymentDto): Promise {\n if (deployment.id === 0) {\n return BiaApi.CreateDeployment(BiaService.Entity, partitionId, deployment);\n } else {\n return BiaApi.UpdateDeployment(BiaService.Entity, partitionId, deployment.id, deployment);\n }\n }\n\n public static async DeleteDeployment(partitionId: number, deployment: PartitionDeploymentDto): Promise {\n return BiaApi.DeleteDeployment(BiaService.Entity, partitionId, deployment.id);\n }\n\n public static async GetPartitionServices(partitionId: number): Promise> {\n return BiaApi.GetPartitionServices(BiaService.Entity, partitionId);\n }\n\n public static async CreatePartitionService(partitionId: number, service: ServiceDto): Promise {\n const ps: PartitionServiceDto = {\n id: 0,\n serviceId: service.id,\n service: '',\n isDeprecated: false,\n needsTaxonomy: false,\n applications: [],\n associates: [],\n personnel: [],\n rtoId: null,\n };\n return BiaApi.CreatePartitionService(BiaService.Entity, partitionId, ps);\n }\n\n public static async UpdatePartitionServiceRto(partitionId: number, service: PartitionServiceDto): Promise {\n return BiaApi.UpdatePartitionServiceRto(BiaService.Entity, partitionId, service.id, service);\n }\n\n public static async DeletePartitionService(partitionId: number, partitionServiceId: number): Promise {\n return BiaApi.DeletePartitionService(BiaService.Entity, partitionId, partitionServiceId);\n }\n\n public static async CreatePartitionServiceApplication(partitionId: number, serviceId: number, partitionApplication: PartitionApplicationDto): Promise {\n const add: PartitionServiceApplicationDto = {\n id: 0,\n partitionApplicationId: partitionApplication.id,\n application: '',\n };\n\n return BiaApi.CreatePartitionServiceApplication(BiaService.Entity, partitionId, serviceId, add);\n }\n\n public static async DeletePartitionServiceApplication(partitionId: number, serviceId: number, partitionServiceApplication: PartitionServiceApplicationDto): Promise {\n return BiaApi.DeletePartitionServiceApplication(BiaService.Entity, partitionId, serviceId, partitionServiceApplication.id);\n }\n\n public static async CreatePartitionServiceAssociate(partitionId: number, serviceId: number, partitionAssociate: PartitionAssociateDto): Promise {\n const add: PartitionServiceAssociateDto = {\n id: 0,\n partitionAssociateId: partitionAssociate.id,\n associate: '',\n srbComment: '',\n substitute: '',\n degreeOfDependency: DegreeOfDependency.Low,\n existingContract: false,\n substituteType: SubstituteType.NA,\n };\n\n return BiaApi.CreatePartitionServiceAssociate(BiaService.Entity, partitionId, serviceId, add);\n }\n\n public static async UpdatePartitionServiceAssociate(partitionId: number, serviceId: number, partitionServiceAssociate: PartitionServiceAssociateDto): Promise {\n return BiaApi.UpdatePartitionServiceAssociate(BiaService.Entity, partitionId, serviceId, partitionServiceAssociate.id, partitionServiceAssociate);\n }\n\n public static async DeletePartitionServiceAssociate(partitionId: number, serviceId: number, partitionServiceAssociate: PartitionServiceAssociateDto): Promise {\n return BiaApi.DeletePartitionServiceAssociate(BiaService.Entity, partitionId, serviceId, partitionServiceAssociate.id);\n }\n\n public static async CreatePartitionServicePersonnel(partitionId: number, serviceId: number, partitionPersonnel: PartitionPersonnelDto): Promise {\n const add: PartitionServicePersonnelDto = {\n id: 0,\n partitionPersonnelId: partitionPersonnel.id,\n degreeOfDependency: DegreeOfDependency.Low,\n substituteType: SubstituteType.NA,\n substitutePerson: '',\n };\n\n return BiaApi.CreatePartitionServicePersonnel(BiaService.Entity, partitionId, serviceId, add);\n }\n\n public static async UpdatePartitionServicePersonnel(partitionId: number, serviceId: number, partitionServicePersonnel: PartitionServicePersonnelDto): Promise {\n return BiaApi.UpdatePartitionServicePersonnel(BiaService.Entity, partitionId, serviceId, partitionServicePersonnel.id, partitionServicePersonnel);\n }\n\n public static async DeletePartitionServicePersonnel(partitionId: number, serviceId: number, partitionServicePersonnel: PartitionServicePersonnelDto): Promise {\n return BiaApi.DeletePartitionServicePersonnel(BiaService.Entity, partitionId, serviceId, partitionServicePersonnel.id);\n }\n\n public static async ChangePersonParent(partitionId: number, person: PartitionPersonnelDto, newParent: PartitionPersonnelDto): Promise {\n return BiaApi.ChangePersonParent(BiaService.Entity, partitionId, person.id, newParent?.id ?? 0);\n }\n}\n","import axios from '@/api/axios';\nimport { EntityApiBase } from '@/api/EntityApiBase';\nimport { IDto } from '@/dtos';\nimport { PartitionDto, RecoverySiteAssetDto, StrategyDto, StrategyScenarioAllocationDto, StrategyScenarioAutomaticPartitionAllocations, StrategyScenarioDto, StrategyScenarioLocationDto, StrategyScenarioRecoverySiteAssignementDto, StrategyScenarioRecoverySiteDto } from '@/dtos/bcm';\n\nexport default class StrategyApi extends EntityApiBase {\n static async GetStrategy(strategyId: number): Promise {\n const response = await axios.get(`/masterplans/${EntityApiBase.EntityId}/bc/strategies/${strategyId}`);\n\n return Promise.resolve(response.data);\n }\n\n static async GetStrategyScenario(strategyId: number, scenarioId: number): Promise {\n const response = await axios.get(`/masterplans/${EntityApiBase.EntityId}/bc/strategies/${strategyId}/StrategyScenarios/${scenarioId}`);\n\n return Promise.resolve(response.data);\n }\n\n static async GetStrategyScenarioLocations(strategyId: number, scenarioId: number): Promise> {\n const response = await axios.get>(`/masterplans/${EntityApiBase.EntityId}/bc/strategies/${strategyId}/StrategyScenarios/${scenarioId}/locations`);\n return Promise.resolve(response.data);\n }\n\n static async GetStrategyScenarioRecoverySites(strategyId: number, scenarioId: number): Promise> {\n const response = await axios.get>(`/masterplans/${EntityApiBase.EntityId}/bc/strategies/${strategyId}/StrategyScenarios/${scenarioId}/recovery_sites`);\n return Promise.resolve(response.data);\n }\n\n static async GetStrategyScenarioPartitions(strategyId: number, scenarioId: number): Promise> {\n const response = await axios.get>(`/masterplans/${EntityApiBase.EntityId}/bc/strategies/${strategyId}/StrategyScenarios/${scenarioId}/Partitions`);\n return Promise.resolve(response.data);\n }\n\n static async GetStrategyScenarioPartitionRtoAllocations(strategyId: number, scenarioId: number, partitionId: number, rtoId: number): Promise> {\n const response = await axios.get>(`/masterplans/${EntityApiBase.EntityId}/bc/strategies/${strategyId}/StrategyScenarios/${scenarioId}/Partitions/${partitionId}/Rto/${rtoId}/Allocations`);\n return Promise.resolve(response.data);\n }\n\n static async GetRecoverySiteCapacities(recoverySiteId: number): Promise> {\n const response = await axios.get>(`/masterplans/${EntityApiBase.EntityId}/bc/RecoverySiteAssets/${recoverySiteId}`);\n return Promise.resolve(response.data);\n }\n\n static async GetRecoverySiteAssignements(strategyId: number, scenarioId: number, recoverySiteId: number): Promise> {\n const response = await axios.get>(`/masterplans/${EntityApiBase.EntityId}/bc/strategies/${strategyId}/StrategyScenarios/${scenarioId}/RecoverySites/${recoverySiteId}/Allocations`);\n return Promise.resolve(response.data);\n }\n\n static async StrategyScenarioUpdateAllocation(strategyId: number, scenarioId: number, allocations: StrategyScenarioAllocationDto): Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/strategies/${strategyId}/StrategyScenarios/${scenarioId}/allocations/${allocations.id}`, allocations);\n return Promise.resolve(response.data);\n }\n\n static async StrategyScenarioRefreshFromBia(strategyId: number, scenarioId: number): Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/strategies/${strategyId}/StrategyScenarios/${scenarioId}/RefreshNeeds`, {});\n return Promise.resolve(response.data);\n }\n\n static async AddUnavailableLocations(strategyId: number, scenarioId: number, locations: Array): Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/strategies/${strategyId}/StrategyScenarios/${scenarioId}/locations`, locations);\n return Promise.resolve(response.data);\n }\n\n static async RemoveUnavailableLocations(strategyId: number, scenarioId: number, locations: Array): Promise {\n await axios.delete(`/masterplans/${EntityApiBase.EntityId}/bc/strategies/${strategyId}/StrategyScenarios/${scenarioId}/locations`, { data: locations });\n return Promise.resolve();\n }\n\n static async AddRecoverySites(strategyId: number, scenarioId: number, recoverySites: Array): Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/strategies/${strategyId}/StrategyScenarios/${scenarioId}/recovery_sites`, recoverySites);\n return Promise.resolve(response.data);\n }\n\n static async RemoveRecoverySites(strategyId: number, scenarioId: number, recoverySites: Array): Promise {\n await axios.delete(`/masterplans/${EntityApiBase.EntityId}/bc/strategies/${strategyId}/StrategyScenarios/${scenarioId}/recovery_sites`, { data: recoverySites });\n return Promise.resolve();\n }\n\n static async ClearAllocations(strategyId: number, scenarioId: number, partitions: Array>): Promise {\n await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/strategies/${strategyId}/StrategyScenarios/${scenarioId}/ClearAllocations`, partitions);\n return Promise.resolve();\n }\n\n static async AutomaticAllocations(strategyId: number, scenarioId: number, allocations: {partitions: Array, recoverySite:IDto, assets: Array}): Promise {\n await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/strategies/${strategyId}/StrategyScenarios/${scenarioId}/AutomaticAllocations`, allocations);\n return Promise.resolve();\n }\n\n static async AutomaticPartitionAllocations(strategyId: number, scenarioId: number, partitionId: number, allocations: StrategyScenarioAutomaticPartitionAllocations): Promise {\n await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/strategies/${strategyId}/StrategyScenarios/${scenarioId}/Partitions/${partitionId}/AutomaticAllocations`, allocations);\n return Promise.resolve();\n }\n}\n","import { ApplicationModule } from '@/store';\n\nexport default class EntityServiceBase {\n protected static get Entity(): number {\n const entity = ApplicationModule.Entity;\n if (entity == null) {\n throw new Error('Entity is null in EntityServiceBase');\n }\n\n return entity.id;\n }\n}\n","import StrategyApi from '@/api/bcm/StrategyApi';\nimport { IDto, LocationDto, PartitionDto, RecoverySiteAssetDto, StrategyDto, StrategyScenarioAllocationDto, StrategyScenarioAutomaticPartitionAllocations, StrategyScenarioDto, StrategyScenarioLocationDto, StrategyScenarioRecoverySiteAssignementDto, StrategyScenarioRecoverySiteDto } from '@/dtos';\nimport { RecoverySiteDto } from '@/dtos/bcm/RecoverySiteDto';\nimport EntityServiceBase from '@/services/EntityServiceBase';\n\nexport default class StrategyService extends EntityServiceBase {\n public static async GetStrategy(strategyId: number) : Promise {\n return await StrategyApi.GetStrategy(strategyId);\n }\n\n public static async GetStrategyScenario(strategyId: number, scenarioId: number) : Promise {\n return await StrategyApi.GetStrategyScenario(strategyId, scenarioId);\n }\n\n public static async GetStrategyScenarioLocations(strategyId: number, scenarioId: number) : Promise> {\n return await StrategyApi.GetStrategyScenarioLocations(strategyId, scenarioId);\n }\n\n public static async GetStrategyScenarioRecoverySites(strategyId: number, scenarioId: number) : Promise> {\n return await StrategyApi.GetStrategyScenarioRecoverySites(strategyId, scenarioId);\n }\n\n public static async GetStrategyScenarioAllocations(strategyId: number, scenarioId: number) : Promise {\n return await StrategyApi.GetStrategyScenario(strategyId, scenarioId);\n }\n\n public static async GetStrategyScenarioPartitionRtoAllocations(strategyId: number, scenarioId: number, partitionId: number, rtoId: number) : Promise> {\n return await StrategyApi.GetStrategyScenarioPartitionRtoAllocations(strategyId, scenarioId, partitionId, rtoId);\n }\n\n public static async GetRecoverySiteCapacities(recoverySiteId: number): Promise> {\n return await StrategyApi.GetRecoverySiteCapacities(recoverySiteId);\n }\n\n public static async GetRecoverySiteAssignements(strategyId: number, scenarioId: number, recoverySiteId: number): Promise> {\n return await StrategyApi.GetRecoverySiteAssignements(strategyId, scenarioId, recoverySiteId);\n }\n\n public static async StrategyScenarioUpdateAllocation(strategyId: number, scenarioId: number, allocations: StrategyScenarioAllocationDto): Promise {\n return await StrategyApi.StrategyScenarioUpdateAllocation(strategyId, scenarioId, allocations);\n }\n\n public static async StrategyScenarioRefreshFromBia(strategyId: number, scenarioId: number): Promise {\n return await StrategyApi.StrategyScenarioRefreshFromBia(strategyId, scenarioId);\n }\n\n public static async AddUnavailableLocations(strategyId: number, scenarioId: number, locations: Array): Promise {\n const locs: Array = locations.map(i => {\n return {\n locationId: i.id,\n locationName: '',\n id: 0,\n partitions: [],\n };\n });\n\n return await StrategyApi.AddUnavailableLocations(strategyId, scenarioId, locs);\n }\n\n public static async RemoveUnavailableLocations(strategyId: number, scenarioId: number, location: StrategyScenarioLocationDto): Promise {\n return await StrategyApi.RemoveUnavailableLocations(strategyId, scenarioId, [location]);\n }\n\n public static async AddRecoverySites(strategyId: number, scenarioId: number, recoverysites: Array): Promise {\n const rs: Array = recoverysites.map(i => {\n return {\n recoverySiteId: i.id,\n recoverySiteName: '',\n id: 0,\n };\n });\n\n return await StrategyApi.AddRecoverySites(strategyId, scenarioId, rs);\n }\n\n public static async RemoveRecoverySites(strategyId: number, scenarioId: number, recoverysite: StrategyScenarioRecoverySiteDto): Promise {\n return await StrategyApi.RemoveRecoverySites(strategyId, scenarioId, [recoverysite]);\n }\n\n public static async ClearAllocations(strategyId: number, scenarioId: number, partitions: Array): Promise {\n const pars: Array> = partitions.map(p => {\n return {\n id: p.id,\n };\n });\n\n return await StrategyApi.ClearAllocations(strategyId, scenarioId, pars);\n }\n\n public static async AutomaticAllocations(strategyId: number, scenarioId: number, partitions: Array, recoverySite: IDto, assets: Array): Promise {\n return await StrategyApi.AutomaticAllocations(strategyId, scenarioId, {\n partitions,\n recoverySite,\n assets,\n });\n }\n\n public static async AutomaticPartitionAllocations(strategyId: number, scenarioId: number, allocations: StrategyScenarioAutomaticPartitionAllocations): Promise {\n return await StrategyApi.AutomaticPartitionAllocations(strategyId, scenarioId, allocations.partitionId, allocations);\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"value\":_vm.visible,\"width\":_vm.width,\"max-width\":\"1200px\",\"persistent\":\"\"}},[_c('v-card',[_c('pd-data-table',{attrs:{\"height\":\"500px\",\"search\":\"\",\"datasource\":_vm.availableItems,\"headers\":_vm._headers,\"options\":{editable: false, pagination: false},\"selected-item\":_vm.selectedItem,\"select-multiple\":_vm.selectMultiple,\"show-select-all\":_vm.showSelectAll,\"selected-items\":_vm.selectedItems,\"sort\":\"name\",\"sort-direction\":\"asc\"},on:{\"update:selectedItem\":function($event){_vm.selectedItem=$event},\"update:selected-item\":function($event){_vm.selectedItem=$event},\"update:selectedItems\":function($event){_vm.selectedItems=$event},\"update:selected-items\":function($event){_vm.selectedItems=$event},\"dblclick\":_vm.selectItem}}),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\",\"disabled\":_vm.disableSelect},on:{\"click\":_vm.selectItem}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.select'))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { IDataSource } from '@/core/datasource';\nimport { IDto } from '@/dtos';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { ITranslatableDto } from '@/dtos/IDto';\n\nexport default defineComponent({\n name: 'ItemSelector',\n\n components: {\n PdDataTable,\n },\n\n props: {\n datasource: {\n type: Object as PropType>,\n required: true,\n },\n\n exclude: {\n type: Array as PropType>,\n default: () => [],\n },\n\n headers: {\n type: Array as PropType>>,\n required: false,\n },\n\n visible: {\n type: Boolean,\n default: true,\n },\n\n selectMultiple: {\n type: Boolean,\n default: false,\n },\n\n showSelectAll: {\n type: Boolean,\n default: false,\n },\n\n translatable: {\n type: Boolean,\n default: true,\n },\n\n column: {\n type: String,\n default: 'name',\n },\n\n width: {\n type: String,\n default: '800px',\n },\n },\n\n setup(props, { emit }) {\n const _headers = ref>>([]);\n if (props.headers != null) {\n _headers.value = props.headers;\n } else {\n if (props.translatable) {\n _headers.value = [{\n id: props.column,\n text: '',\n value: 'translations',\n translatable: true,\n template: async (value: unknown) => {\n return LanguageTemplate(value as ITranslatableDto, 'name');\n },\n }];\n } else {\n _headers.value = [{\n id: props.column,\n text: '',\n value: props.column,\n }];\n }\n }\n\n const allItems = ref>([]);\n\n const disableSelect = computed(() => {\n if (props.selectMultiple) {\n if (selectedItems.value.length === 0) {\n return true;\n }\n } else {\n if (selectedItem.value == null) {\n return true;\n }\n }\n return false;\n });\n\n props.datasource.data().then((data: Array | null) => {\n allItems.value = data || [];\n }).catch((error) => {\n ErrorHandlingService.Handle(error);\n });\n\n const availableItems = ref>([]);\n\n const selectedItem = ref(null);\n const selectedItems = ref>([]);\n\n function selectItem() {\n if (props.selectMultiple) {\n if (selectedItems.value.length === 0) {\n return;\n }\n emit('select', selectedItems.value);\n } else {\n if (selectedItem.value == null) {\n return;\n }\n emit('select', selectedItem.value);\n }\n }\n\n function close() {\n emit('cancel');\n }\n\n function calculateAvailableItems() {\n let exclude: Array = [];\n\n if (props.exclude.length === 0) {\n availableItems.value = allItems.value;\n } else {\n if (typeof props.exclude[0] === 'number') {\n exclude = props.exclude as Array;\n } else {\n exclude = (props.exclude as Array).map(i => i.id);\n }\n }\n\n const ret: Array = [];\n for (let i = 0; i < allItems.value.length; ++i) {\n if (!exclude.includes(allItems.value[i].id)) {\n ret.push(allItems.value[i]);\n }\n }\n\n availableItems.value = ret;\n }\n\n watch(\n () => props.exclude,\n () => {\n calculateAvailableItems();\n },\n );\n\n watch(\n () => allItems.value,\n () => {\n calculateAvailableItems();\n },\n );\n\n return {\n availableItems,\n _headers,\n\n selectItem,\n selectedItem,\n\n selectedItems,\n disableSelect,\n\n close,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ItemSelector.vue?vue&type=template&id=8518e16c&scoped=true&\"\nimport script from \"./ItemSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./ItemSelector.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8518e16c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\ninstallComponents(component, {VBtn,VCard,VCardActions,VDialog})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { PartitionApplicationDto, PartitionRtoMaoDto, SystemDto } from '@/dtos';\nimport BiaApplicationLine from './BiaApplicationLine.vue';\nimport i18n from '@/i18n';\nimport { BiaService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport icons from '@/core/icons';\nimport { v4 } from 'uuid';\nimport SnackbarMessageService from '@/services/SnackbarMessageService';\nimport PopupMessageService from '@/services/PopupMessageService';\n\nexport default defineComponent({\n name: 'BiaApplications',\n\n components: {\n BiaApplicationLine,\n ItemSelector,\n },\n\n props: {\n partitionId: {\n type: Number,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props) {\n const applications = ref>([]);\n const rtoScales = ref>([]);\n const rpoScales = ref>([]);\n const partitionRto = ref(null);\n\n const showApplicationSelector = ref(false);\n const applicationsDatasource = DatasourcesService.Bcm.Applications;\n\n const rtoValues = new Map();\n\n watch(\n () => props.partitionId,\n () => {\n init();\n },\n { immediate: true },\n );\n\n const currentApplications = computed>(() => {\n const ret: Array = [];\n applications.value.forEach(a => ret.push(a.applicationId));\n\n return ret;\n });\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n partitionRto.value = await BiaService.GetPartitionRtoAndMao(props.partitionId);\n\n (await DatasourcesService.Bcm.RtoApplicationScales.data())\n .sort((a, b) => {\n return a.value - b.value;\n }).forEach(s => {\n rtoScales.value.push({\n value: s.id,\n text: LanguageTemplate(s, 'name').text,\n rtoValue: s.value,\n });\n\n rtoValues.set(s.id, s.value);\n });\n\n (await DatasourcesService.Bcm.RpoScales.data())\n .sort((a, b) => {\n return a.value - b.value;\n }).forEach(s => {\n rpoScales.value.push({\n value: s.id,\n text: LanguageTemplate(s, 'name').text,\n });\n });\n\n let assignementsBellowPartitionRto = false;\n\n const a = await BiaService.GetPartitionApplications(props.partitionId);\n a.forEach(i => {\n i.uuid = v4();\n\n const rtoValue = rtoValues.get(i.rtoId);\n\n if (rtoValue != null && partitionRto.value != null && partitionRto.value.rtoValue != null && rtoValue < partitionRto.value.rtoValue) {\n assignementsBellowPartitionRto = true;\n }\n });\n\n applications.value = a;\n\n if (assignementsBellowPartitionRto) {\n PopupMessageService.SetMessage({\n title: i18n.t('warning'),\n text: i18n.t('bcm.partitions.deployments.applications.assignementsBellowPartitionRto', { rto: partitionRto.value.rtoName }),\n index: 10,\n });\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n\n async function updateApplication(application: PartitionApplicationDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const a = await BiaService.UpdateApplication(props.partitionId, application);\n a.uuid = v4();\n\n for (let i = 0; i < applications.value.length; ++i) {\n if (applications.value[i].uuid === application.uuid) {\n applications.value.splice(i, 1, a);\n }\n }\n\n const rtoValue = rtoValues.get(a.rtoId);\n\n if (rtoValue != null && partitionRto.value != null && partitionRto.value.rtoValue != null && rtoValue < partitionRto.value.rtoValue) {\n PopupMessageService.SetMessage({\n title: i18n.t('warning'),\n text: i18n.t('bcm.partitions.deployments.applications.assignementsBellowPartitionRto', { rto: partitionRto.value.rtoName }),\n index: 10,\n });\n }\n\n SnackbarMessageService.SetMessage({ text: i18n.t('saved').toString() });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n applications.value.every((a) => {\n // refresh uuid to refresh component\n if (a.uuid === application.uuid) {\n a.uuid = v4();\n return false;\n }\n\n return true;\n });\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function removeApplication(application: PartitionApplicationDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await BiaService.DeleteApplication(props.partitionId, application);\n\n for (let i = 0; i < applications.value.length; ++i) {\n if (applications.value[i].uuid === application.uuid) {\n applications.value.splice(i, 1);\n break;\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function addApplication(application: SystemDto) {\n showApplicationSelector.value = false;\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const a = await BiaService.CreateApplication(props.partitionId, application);\n a.uuid = v4();\n applications.value.push(a);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n return {\n rtoScales,\n rpoScales,\n applications,\n\n showApplicationSelector,\n applicationsDatasource,\n currentApplications,\n updateApplication,\n removeApplication,\n addApplication,\n\n partitionRto,\n\n icons: {\n add: icons.plus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaApplications.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaApplications.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaApplications.vue?vue&type=template&id=ed6fc124&scoped=true&\"\nimport script from \"./BiaApplications.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaApplications.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ed6fc124\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VAlert,VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading)?_c('v-progress-linear',{attrs:{\"indeterminate\":\"\"}}):[_c('v-alert',{attrs:{\"border\":\"left\",\"dense\":\"\",\"text\":\"\",\"type\":\"info\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.rtoInfoMessageForTabs'))+\" \")]),(_vm.showAssetSelector)?_c('item-selector',{attrs:{\"datasource\":_vm.assetsDatasource,\"exclude\":_vm.currentAssets},on:{\"select\":_vm.addAsset,\"cancel\":function($event){_vm.showAssetSelector = false}}}):_vm._e(),_c('table',{staticStyle:{\"width\":\"100%\"}},[_c('thead',[_c('tr',[_c('th',{staticStyle:{\"width\":\"10rem\",\"text-align\":\"left\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.asset'))+\" \"),(!_vm.readonly)?_c('v-btn',{staticClass:\"mb-1 ml-4 text-none\",attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showAssetSelector = true}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.add)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \")],1):_vm._e()],1),_vm._l((_vm.rtoScales),function(s){return _c('th',{key:s.value,staticStyle:{\"width\":\"10%\"}},[_vm._v(\" \"+_vm._s(s.text)+\" \")])})],2)]),_c('tbody',_vm._l((_vm.assets),function(a){return _c('bia-asset-line',{key:a.uuid,attrs:{\"asset\":a,\"rto-scales\":_vm.rtoScales,\"readonly\":_vm.readonly,\"partition-rto\":_vm.partitionRto},on:{\"update\":_vm.updateAsset,\"remove\":_vm.removeAsset}})}),1)])]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{},[_vm._v(\" \"+_vm._s(_vm._asset.asset)+\" \"),(!_vm.readonly && !_vm._asset.mandatory)?_c('v-btn',{staticClass:\"mb-1\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.removeAsset}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.remove)+\" \")])],1):_vm._e()],1),_vm._l((_vm.rtoScales),function(s){return _c('td',{key:s.value,staticClass:\"pr-2\",class:_vm.rtoClass(s, _vm._asset.answers[s.value])},[_c('pd-number-field',{attrs:{\"label\":s.text,\"hide-details\":\"\",\"disabled\":_vm.readonly,\"name\":_vm._asset.id + '-' + s.value},on:{\"change\":_vm.valueChanged},model:{value:(_vm._asset.answers[s.value]),callback:function ($$v) {_vm.$set(_vm._asset.answers, s.value, $$v)},expression:\"_asset.answers[s.value]\"}})],1)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PartitionAssetDto, PartitionRtoMaoDto } from '@/dtos';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport PdNumberField from '@/components/core/PdNumberField.vue';\nimport { ISelectItem } from '@/core';\nimport { cloneDeep } from 'lodash';\nimport icons from '@/core/icons';\nimport PopupMessageService, { PopupMessageButtonNo, PopupMessageButtonYes } from '@/services/PopupMessageService';\nimport i18n from '@/i18n';\n\nexport default defineComponent({\n name: 'BiaAssetLine',\n\n components: {\n PdNumberField,\n },\n\n props: {\n asset: {\n type: Object as PropType,\n required: true,\n },\n\n rtoScales: {\n type: Array as PropType>,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n\n partitionRto: {\n type: Object as PropType,\n required: false,\n },\n },\n\n setup(props, { emit }) {\n const _asset = ref(cloneDeep(props.asset));\n\n watch(\n () => props.asset,\n (a) => {\n _asset.value = cloneDeep(a);\n },\n );\n\n function valueChanged() {\n setTimeout(() => {\n emit('update', _asset.value);\n }, 10);\n }\n\n function removeAsset() {\n PopupMessageService.SetMessage({\n title: i18n.t('confirm'),\n text: i18n.t('bcm.partitions.deployments.removeConfirmation', { name: _asset.value.asset }),\n buttons: [\n PopupMessageButtonYes(() => {\n emit('remove', _asset.value);\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n function rtoClass(rto: ISelectItem, assigned: number) {\n if (props.partitionRto == null || props.partitionRto.rtoValue == null) {\n return;\n }\n\n if (rto.rtoValue as number < props.partitionRto.rtoValue) {\n return assigned > 0 ? 'marked' : 'below';\n }\n }\n\n return {\n _asset,\n valueChanged,\n removeAsset,\n rtoClass,\n\n remove: icons.delete,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaAssetLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaAssetLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaAssetLine.vue?vue&type=template&id=7b27ae2c&scoped=true&\"\nimport script from \"./BiaAssetLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaAssetLine.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BiaAssetLine.vue?vue&type=style&index=0&id=7b27ae2c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7b27ae2c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { AssetDto, PartitionAssetDto, PartitionRtoMaoDto } from '@/dtos';\nimport BiaAssetLine from './BiaAssetLine.vue';\nimport i18n from '@/i18n';\nimport { BiaService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { defineComponent, ref, watch, nextTick, computed } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { v4 } from 'uuid';\nimport SnackbarMessageService from '@/services/SnackbarMessageService';\nimport icons from '@/core/icons';\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport PopupMessageService from '@/services/PopupMessageService';\n\nexport default defineComponent({\n name: 'BiaAssets',\n\n components: {\n BiaAssetLine,\n ItemSelector,\n },\n\n props: {\n partitionId: {\n type: Number,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n const rtoScales = ref>([]);\n const assets = ref>([]);\n const showAssetSelector = ref(false);\n const partitionRto = ref(null);\n\n const assetsDatasource = DatasourcesService.Bcm.Assets;\n\n const rtosBelowPartitionRto = new Set();\n\n watch(\n () => props.partitionId,\n () => {\n init();\n },\n { immediate: true },\n );\n\n const currentAssets = computed>(() => {\n const ret: Array = [];\n assets.value.forEach(a => ret.push(a.id));\n\n return ret;\n });\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n await Promise.all([\n DatasourcesService.Bcm.RtoScales.get(),\n ]);\n\n partitionRto.value = await BiaService.GetPartitionRtoAndMao(props.partitionId);\n\n (await DatasourcesService.Bcm.RtoScales.data())\n .sort((a, b) => {\n return a.value - b.value;\n }).forEach(s => {\n rtoScales.value.push({\n value: s.id,\n text: LanguageTemplate(s, 'name').text,\n rtoValue: s.value,\n });\n\n if (partitionRto.value != null && partitionRto.value.rtoValue != null && s.value < partitionRto.value.rtoValue) {\n rtosBelowPartitionRto.add(s.id);\n }\n });\n\n let assignementsBellowPartitionRto = false;\n\n const a = await BiaService.GetPartitionAssets(props.partitionId);\n a.forEach(i => {\n i.uuid = v4();\n rtosBelowPartitionRto.forEach(rto => {\n if (i.answers[rto] > 0) {\n assignementsBellowPartitionRto = true;\n }\n });\n });\n assets.value = a;\n\n if (assignementsBellowPartitionRto) {\n PopupMessageService.SetMessage({\n title: i18n.t('warning'),\n text: i18n.t('bcm.partitions.deployments.assets.assignementsBellowPartitionRto', { rto: partitionRto.value.rtoName }),\n index: 10,\n });\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n\n async function updateAsset(asset: PartitionAssetDto) {\n const active = document.activeElement;\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const a = await BiaService.UpdateAsset(props.partitionId, asset);\n a.uuid = v4();\n\n for (let i = 0; i < assets.value.length; ++i) {\n if (assets.value[i].uuid === asset.uuid) {\n assets.value.splice(i, 1, a);\n }\n }\n\n let assignementsBellowPartitionRto = false;\n rtosBelowPartitionRto.forEach(rto => {\n if (a.answers[rto] > 0) {\n assignementsBellowPartitionRto = true;\n }\n });\n\n if (assignementsBellowPartitionRto) {\n PopupMessageService.SetMessage({\n title: i18n.t('warning'),\n text: i18n.t('bcm.partitions.deployments.assets.assignementsBellowPartitionRto', { rto: partitionRto.value?.rtoName }),\n index: 10,\n });\n }\n\n SnackbarMessageService.SetMessage({ text: i18n.t('saved').toString() });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n assets.value.every((a) => {\n // refresh uuid to refresh component\n if (a.uuid === asset.uuid) {\n a.uuid = v4();\n return false;\n }\n\n return true;\n });\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n nextTick(() => {\n if (active != null) {\n const name = active.getAttribute('name');\n const el = document.querySelector(`[name=\"${name}\"]`);\n if (el != null) {\n (el as HTMLElement).focus();\n (el as HTMLInputElement).select();\n }\n }\n });\n }\n }\n\n async function removeAsset(asset: PartitionAssetDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await BiaService.DeleteAsset(props.partitionId, asset);\n\n for (let i = 0; i < assets.value.length; ++i) {\n if (assets.value[i].uuid === asset.uuid) {\n assets.value.splice(i, 1);\n break;\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function addAsset(asset: AssetDto) {\n showAssetSelector.value = false;\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const a = await BiaService.CreateAsset(props.partitionId, asset);\n a.uuid = v4();\n assets.value.push(a);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n loading,\n rtoScales,\n assets,\n addAsset,\n updateAsset,\n removeAsset,\n\n showAssetSelector,\n assetsDatasource,\n currentAssets,\n\n partitionRto,\n\n icons: {\n add: icons.plus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaAssets.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaAssets.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaAssets.vue?vue&type=template&id=17db2eed&scoped=true&\"\nimport script from \"./BiaAssets.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaAssets.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"17db2eed\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\ninstallComponents(component, {VAlert,VBtn,VIcon,VProgressLinear})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading)?_c('v-progress-linear',{attrs:{\"indeterminate\":\"\"}}):[_c('pd-data-table',{attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.headers,\"options\":_vm.options},on:{\"editing-changed\":_vm.editingChanged},scopedSlots:_vm._u([{key:\"details\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-simple-table',{staticClass:\"ml-10\"},[_c('thead',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('bcm.partitions.deployments.associates.contact')))]),_c('th',[_vm._v(_vm._s(_vm.$t('bcm.partitions.deployments.associates.email')))]),_c('th',[_vm._v(_vm._s(_vm.$t('bcm.partitions.deployments.associates.phone1')))]),_c('th',[_vm._v(_vm._s(_vm.$t('bcm.partitions.deployments.associates.phone2')))]),_c('th',[_vm._v(_vm._s(_vm.$t('bcm.partitions.deployments.associates.phone3')))])])]),_c('tbody',[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(item.contact)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.email)+\" \")]),_c('td',{staticStyle:{\"width\":\"12rem\"}},[_vm._v(\" \"+_vm._s(item.phone1)+\" \")]),_c('td',{staticStyle:{\"width\":\"12rem\"}},[_vm._v(\" \"+_vm._s(item.phone2)+\" \")]),_c('td',{staticStyle:{\"width\":\"12rem\"}},[_vm._v(\" \"+_vm._s(item.phone3)+\" \")])])])])]}},{key:\"PopupEditorTitle\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.associates.editTitle'))+\" \")]},proxy:true},{key:\"PopupEditorContent\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('bia-associate-editor',{attrs:{\"associate\":item,\"existing-partitions\":_vm.existingPartitions}})]}}])})]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticStyle:{\"width\":\"50rem\"}},[_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.associates.associate'))+\" \")]),_c('td',[_c('item-selector-text-field',{attrs:{\"datasource\":_vm.associates,\"translatable\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.associates.associatePlaceholder')},model:{value:(_vm.associate.associateId),callback:function ($$v) {_vm.$set(_vm.associate, \"associateId\", $$v)},expression:\"associate.associateId\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.interdependencies.direction.title'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.directions,\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.associate.direction),callback:function ($$v) {_vm.$set(_vm.associate, \"direction\", $$v)},expression:\"associate.direction\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.associates.isCritical'))+\" \")]),_c('td',[_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.associate.isCritical),callback:function ($$v) {_vm.$set(_vm.associate, \"isCritical\", $$v)},expression:\"associate.isCritical\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.associates.whyCritical'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"disabled\":!_vm.associate.isCritical,\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.associate.isCritical ? _vm.$t('bcm.partitions.deployments.associates.whyCriticalPlaceholder') : ''},model:{value:(_vm.associate.whyCritical),callback:function ($$v) {_vm.$set(_vm.associate, \"whyCritical\", $$v)},expression:\"associate.whyCritical\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.associates.criticalActions'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"disabled\":!_vm.associate.isCritical,\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.associate.isCritical ? _vm.$t('bcm.partitions.deployments.associates.criticalActionsPlaceholder') : ''},model:{value:(_vm.associate.criticalActions),callback:function ($$v) {_vm.$set(_vm.associate, \"criticalActions\", $$v)},expression:\"associate.criticalActions\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.associates.contact'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.associates.associateContactPlaceholder')},model:{value:(_vm.associate.contact),callback:function ($$v) {_vm.$set(_vm.associate, \"contact\", $$v)},expression:\"associate.contact\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.associates.email'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.associates.emailPlaceholder')},model:{value:(_vm.associate.email),callback:function ($$v) {_vm.$set(_vm.associate, \"email\", $$v)},expression:\"associate.email\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.associates.phone1'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.associates.contactPhone1Placeholder')},model:{value:(_vm.associate.phone1),callback:function ($$v) {_vm.$set(_vm.associate, \"phone1\", $$v)},expression:\"associate.phone1\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.associates.phone2'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.associates.contactPhone2Placeholder')},model:{value:(_vm.associate.phone2),callback:function ($$v) {_vm.$set(_vm.associate, \"phone2\", $$v)},expression:\"associate.phone2\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.associates.phone3'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.associates.contactPhone3Placeholder')},model:{value:(_vm.associate.phone3),callback:function ($$v) {_vm.$set(_vm.associate, \"phone3\", $$v)},expression:\"associate.phone3\"}})],1)])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"100%\"}},[_c('item-selector',{attrs:{\"visible\":_vm.selectorVisible,\"datasource\":_vm.datasource,\"exclude\":_vm.excludedItems,\"translatable\":_vm.translatable,\"headers\":_vm.headers},on:{\"select\":_vm.selectItem,\"cancel\":function($event){_vm.selectorVisible = false}}}),_c('v-text-field',{attrs:{\"readonly\":\"\",\"disabled\":_vm.disabled,\"label\":_vm.label,\"value\":_vm.selectedItem,\"dense\":_vm.dense,\"hide-details\":_vm.hideDetails,\"placeholder\":_vm.placeholder},on:{\"click\":_vm.openSelector,\"focus\":_vm.openSelector}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport ItemSelector from './ItemSelector.vue';\n\nimport { IDto, ITranslatableDto } from '@/dtos';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { IDataSource } from '@/core/datasource';\nimport icons from '@/core/icons';\nimport { PdDataTableHeader } from '../core/PdDataTable';\n\nexport default defineComponent({\n name: 'ItemSelectorTextField',\n\n components: {\n ItemSelector,\n },\n\n props: {\n datasource: {\n type: Object as PropType>,\n required: true,\n },\n\n value: {\n type: [Object, Number] as PropType,\n required: false,\n },\n\n select: {\n type: String as PropType<'object' | 'id'>,\n default: () => 'id',\n },\n\n excludedItems: {\n type: Array as PropType>,\n default: () => [],\n },\n\n label: {\n type: String,\n required: false,\n },\n\n dense: {\n type: Boolean,\n default: false,\n },\n\n hideDetails: {\n type: [Boolean, String] as PropType,\n default: false,\n },\n\n translatable: {\n type: Boolean,\n default: false,\n },\n\n headers: {\n type: Array as PropType>>,\n required: false,\n },\n\n displayField: {\n type: [String, Function] as PropType string)>,\n default: () => 'name',\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n placeholder: {\n type: String,\n required: false,\n },\n },\n\n setup(props, { emit }) {\n const selectorVisible = ref(false);\n\n const currentItem = ref(null);\n\n watch(\n () => props.value,\n async (newValue) => {\n if (typeof newValue === 'number') {\n const item = await props.datasource.getById(newValue);\n if (item != null) {\n currentItem.value = item;\n }\n } else if (typeof newValue === 'object') {\n currentItem.value = newValue;\n } else {\n currentItem.value = null;\n }\n },\n { immediate: true },\n );\n\n const selectedItem = computed(() => {\n if (currentItem.value == null) {\n return '';\n } else {\n if (typeof (props.displayField) === 'function') {\n return props.displayField(currentItem.value);\n } else {\n if (props.translatable) {\n return LanguageTemplate(currentItem.value as ITranslatableDto, props.displayField).text;\n } else {\n return currentItem.value[props.displayField];\n }\n }\n }\n });\n\n function selectItem(item: IDto) {\n if (props.select === 'object') {\n emit('input', item);\n } else {\n emit('input', item.id);\n }\n\n selectorVisible.value = false;\n }\n\n function openSelector() {\n if (!props.readonly && !props.disabled) {\n selectorVisible.value = true;\n }\n }\n\n return {\n selectorVisible,\n currentItem,\n selectedItem,\n selectItem,\n openSelector,\n\n clearIcon: icons.remove,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemSelectorTextField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ItemSelectorTextField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ItemSelectorTextField.vue?vue&type=template&id=02213109&scoped=true&\"\nimport script from \"./ItemSelectorTextField.vue?vue&type=script&lang=ts&\"\nexport * from \"./ItemSelectorTextField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"02213109\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { InterdependencyDirection, PartitionAssociateDto } from '@/dtos';\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport ItemSelectorTextField from '@/components/all/ItemSelectorTextField.vue';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { ISelectItem } from '@/core';\nimport i18n from '@/i18n';\n\nexport default defineComponent({\n name: 'BiaAssociateEditor',\n\n components: {\n ItemSelectorTextField,\n },\n\n props: {\n associate: {\n type: Object as PropType,\n required: true,\n },\n\n existingAssociates: {\n type: Array as PropType>,\n default: () => [],\n },\n },\n\n setup() {\n const directions: Array = [\n {\n text: i18n.t('bcm.partitions.deployments.interdependencies.direction.input').toString(),\n value: InterdependencyDirection.Input,\n },\n {\n text: i18n.t('bcm.partitions.deployments.interdependencies.direction.output').toString(),\n value: InterdependencyDirection.Output,\n },\n {\n text: i18n.t('bcm.partitions.deployments.interdependencies.direction.both').toString(),\n value: InterdependencyDirection.Both,\n },\n ];\n\n return {\n associates: DatasourcesService.Bcm.Associates,\n directions,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaAssociateEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaAssociateEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaAssociateEditor.vue?vue&type=template&id=16597f38&scoped=true&\"\nimport script from \"./BiaAssociateEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaAssociateEditor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"16597f38\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCheckbox,VSelect,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PdDataTable, PdDataTableEditMode, PdDataTableHeader, PdDataTableOptions } from '@/components/core/PdDataTable';\nimport PdColumnYesNo from '@/components/core/PdDataTable/columns/PdColumnYesNo.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { InterdependencyDirection, PartitionAssociateDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { ApplicationModule } from '@/store';\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport BiaAssociateEditor from './BiaAssociateEditor.vue';\nexport default defineComponent({\n name: 'BiaAssociates',\n\n components: {\n PdDataTable,\n BiaAssociateEditor,\n },\n\n props: {\n partitionId: {\n type: Number,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n\n const associates = DatasourcesService.Bcm.Associates;\n const existingPartitions = ref>([]);\n\n const entityId = ApplicationModule.Entity?.id;\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n watch(\n () => props.partitionId,\n () => {\n init();\n },\n { immediate: true },\n );\n\n const datasource = ref>(new ApiDataSource({ api: `/masterplans/${entityId}/bc/bia/${[props.partitionId]}/Associates` }));\n\n const headers: Array> = [\n {\n id: 'associateId',\n text: i18n.t('bcm.partitions.deployments.associates.associate').toString(),\n value: 'associateId',\n template: async (item) => {\n const p = await associates.getById(item.associateId);\n if (p == null) {\n console.error(`Partition \"${item.associatePartitionId}\" not found in partitions...`);\n return { text: '' };\n }\n\n return LanguageTemplate(p, 'name');\n },\n },\n {\n id: 'direction',\n text: i18n.t('bcm.partitions.deployments.interdependencies.direction.title').toString(),\n value: 'direction',\n template: async (item) => {\n switch (item.direction) {\n case InterdependencyDirection.Input:\n return { text: i18n.t('bcm.partitions.deployments.interdependencies.direction.input').toString() };\n case InterdependencyDirection.Output:\n return { text: i18n.t('bcm.partitions.deployments.interdependencies.direction.output').toString() };\n case InterdependencyDirection.Both:\n return { text: i18n.t('bcm.partitions.deployments.interdependencies.direction.both').toString() };\n default:\n return { text: `Unknown direction '${item.direction}'` };\n }\n },\n defaultValue: () => InterdependencyDirection.Input,\n },\n {\n id: 'isCritical',\n text: i18n.t('bcm.partitions.deployments.associates.isCritical').toString(),\n value: 'isCritical',\n component: PdColumnYesNo,\n defaultValue: () => false,\n },\n {\n id: 'whyCritical',\n text: i18n.t('bcm.partitions.deployments.associates.whyCritical').toString(),\n value: 'whyCritical',\n },\n {\n id: 'criticalActions',\n text: i18n.t('bcm.partitions.deployments.associates.criticalActions').toString(),\n value: 'criticalActions',\n },\n {\n id: 'contact',\n text: i18n.t('bcm.partitions.deployments.associates.contact').toString(),\n value: 'contact',\n visible: false,\n },\n {\n id: 'email',\n text: i18n.t('bcm.partitions.deployments.associates.email').toString(),\n value: 'email',\n visible: false,\n },\n {\n id: 'phone1',\n text: i18n.t('bcm.partitions.deployments.associates.phone1').toString(),\n value: 'phone1',\n visible: false,\n },\n {\n id: 'phone2',\n text: i18n.t('bcm.partitions.deployments.associates.phone2').toString(),\n value: 'phone2',\n visible: false,\n },\n {\n id: 'phone3',\n text: i18n.t('bcm.partitions.deployments.associates.phone3').toString(),\n value: 'phone3',\n visible: false,\n },\n ];\n\n const options: PdDataTableOptions = {\n editable: {\n mode: PdDataTableEditMode.Popup,\n add: !props.readonly,\n edit: !props.readonly,\n delete: !props.readonly,\n },\n hasDetails: true,\n };\n\n function editingChanged(value: PartitionAssociateDto | null) {\n if (value == null) {\n console.log('null');\n return;\n }\n\n console.log('write');\n }\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n await Promise.all([associates.get()]);\n datasource.value = new ApiDataSource({ api: `/masterplans/${entityId}/bc/bia/Partitions/${[props.partitionId]}/Associates` });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n return {\n loading,\n datasource,\n headers,\n options,\n editingChanged,\n existingPartitions,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaAssociates.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaAssociates.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaAssociates.vue?vue&type=template&id=6c9ee95e&scoped=true&\"\nimport script from \"./BiaAssociates.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaAssociates.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c9ee95e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VProgressLinear,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading)?_c('v-progress-linear',{attrs:{\"indeterminate\":\"\"}}):[_vm._l((_vm.questions),function(q){return [_c('div',{key:q.uuid,staticClass:\"mb-8\"},[_c('div',{staticClass:\"mb-2\"},[_c('h4',[_vm._v(\" \"+_vm._s(q.question)+\" \")]),_c('div',{staticClass:\"caption\"},[_vm._v(\" \"+_vm._s(q.explanation)+\" \")])]),_c('bia-financial-impact-question',{attrs:{\"question\":q,\"rto-scales\":_vm.rtoScales,\"impact-scales\":_vm.impactScales,\"readonly\":_vm.readonly},on:{\"update\":_vm.updateQuestion}})],1)]})]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{attrs:{\"dense\":\"\",\"no-gutters\":\"\"}},[_c('v-col',_vm._l((_vm.rtoScales),function(s){return _c('div',{key:s.value,staticClass:\"mr-2 mb-4\"},[_c('v-select',{attrs:{\"items\":_vm.availableImpactScales[s.value],\"label\":s.text,\"disabled\":_vm.readonly,\"dense\":\"\",\"hide-details\":\"\"},on:{\"input\":_vm.changedValue},model:{value:(_vm._question.answers[s.value]),callback:function ($$v) {_vm.$set(_vm._question.answers, s.value, $$v)},expression:\"_question.answers[s.value]\"}})],1)}),0)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport { PartitionOperationalImpactDto } from '@/dtos';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { cloneDeep } from 'lodash';\n\nexport default defineComponent({\n name: 'BiaOperationalImpactQuestion',\n\n components: {\n\n },\n\n props: {\n question: {\n type: Object as PropType,\n required: true,\n },\n\n rtoScales: {\n type: Array as PropType>,\n required: true,\n },\n\n impactScales: {\n type: Array as PropType>,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props, { emit }) {\n const availableImpactScales = ref<{ [key: number]: Array }>({});\n\n const _question = ref(cloneDeep(props.question));\n\n watch(\n () => props.question,\n (q) => {\n _question.value = cloneDeep(q);\n calculateAvailableImpacts();\n },\n { immediate: true },\n );\n\n function calculateAvailableImpacts() {\n // scale.value = id (scale: ISelectItem)\n availableImpactScales.value[props.rtoScales[0].value as number] = cloneDeep(props.impactScales);\n\n // assume already sorted!\n for (let i = 1; i < props.rtoScales.length; ++i) {\n // previous rto impact scale value\n const value = props.impactScales.find(s => s.value === _question.value.answers[props.rtoScales[i - 1].value as number])?.other as number;\n\n let min = props.impactScales[props.impactScales.length - 1];\n availableImpactScales.value[props.rtoScales[i].value as number] = cloneDeep(props.impactScales).filter(s => {\n if (s.other as number >= value) {\n if ((min.other as number) > (s.other as number)) {\n min = s;\n }\n return true;\n }\n return false;\n });\n }\n }\n\n function changedValue() {\n emit('update', _question.value);\n }\n\n return {\n changedValue,\n _question,\n availableImpactScales,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaFinancialImpactQuestion.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaFinancialImpactQuestion.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaFinancialImpactQuestion.vue?vue&type=template&id=6b9043c4&scoped=true&\"\nimport script from \"./BiaFinancialImpactQuestion.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaFinancialImpactQuestion.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b9043c4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VCol,VRow,VSelect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport icons from '@/core/icons';\nimport type { PartitionFinancialImpactDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport { BiaService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport SnackbarMessageService from '@/services/SnackbarMessageService';\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { v4 } from 'uuid';\nimport BiaFinancialImpactQuestion from './BiaFinancialImpactQuestion.vue';\n\nexport default defineComponent({\n name: 'BiaFinancialImpact',\n\n components: {\n BiaFinancialImpactQuestion,\n },\n\n props: {\n partitionId: {\n type: Number,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n const rtoScales = ref>([]);\n const impactScales = ref>([]);\n\n const questions = ref>([]);\n\n watch(\n () => props.partitionId,\n () => {\n init();\n },\n { immediate: true },\n );\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n await Promise.all([\n DatasourcesService.Bcm.RtoScales.get(),\n DatasourcesService.Bcm.FinancialImpactScales.get(),\n ]);\n\n (await DatasourcesService.Bcm.RtoScales.data())\n .sort((a, b) => {\n return a.value - b.value;\n }).forEach(s => {\n rtoScales.value.push({\n value: s.id,\n text: LanguageTemplate(s, 'name').text,\n });\n });\n\n (await DatasourcesService.Bcm.FinancialImpactScales.data())\n .sort((a, b) => {\n return a.value - b.value;\n })\n .forEach(s => {\n impactScales.value.push({\n value: s.id,\n text: LanguageTemplate(s, 'name').text,\n other: s.value,\n });\n });\n\n const q = await BiaService.GetPartitionFinancialImpacts(props.partitionId);\n\n q.forEach(i => { i.uuid = v4(); });\n\n questions.value = q;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n\n async function updateQuestion(question: PartitionFinancialImpactDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n const q = await BiaService.UpdateFinancialImpactQuestion(props.partitionId, question);\n q.uuid = v4();\n\n for (let i = 0; i < questions.value.length; ++i) {\n if (questions.value[i].uuid === question.uuid) {\n questions.value.splice(i, 1, q);\n }\n }\n\n SnackbarMessageService.SetMessage({ text: i18n.t('saved').toString() });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n questions.value.every((q) => {\n // refresh uuid to refresh component\n if (q.uuid === question.uuid) {\n q.uuid = v4();\n return false;\n }\n\n return true;\n });\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n loading,\n rtoScales,\n questions,\n impactScales,\n updateQuestion,\n\n icons: {\n info: icons.info,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaFinancialImpact.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaFinancialImpact.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaFinancialImpact.vue?vue&type=template&id=46bdf5ce&scoped=true&\"\nimport script from \"./BiaFinancialImpact.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaFinancialImpact.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"46bdf5ce\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\ninstallComponents(component, {VProgressLinear})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading)?_c('v-progress-linear',{attrs:{\"indeterminate\":\"\"}}):[_c('pd-data-table',{attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.headers,\"options\":_vm.options},on:{\"editing-changed\":_vm.editingChanged},scopedSlots:_vm._u([{key:\"details\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-simple-table',{staticClass:\"ml-10\"},[_c('thead',[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('bcm.partitions.deployments.associates.contact')))]),_c('th',[_vm._v(_vm._s(_vm.$t('bcm.partitions.deployments.associates.email')))]),_c('th',[_vm._v(_vm._s(_vm.$t('bcm.partitions.deployments.associates.phone1')))]),_c('th',[_vm._v(_vm._s(_vm.$t('bcm.partitions.deployments.associates.phone2')))]),_c('th',[_vm._v(_vm._s(_vm.$t('bcm.partitions.deployments.associates.phone3')))])])]),_c('tbody',[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(item.contact)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(item.email)+\" \")]),_c('td',{staticStyle:{\"width\":\"12rem\"}},[_vm._v(\" \"+_vm._s(item.phone1)+\" \")]),_c('td',{staticStyle:{\"width\":\"12rem\"}},[_vm._v(\" \"+_vm._s(item.phone2)+\" \")]),_c('td',{staticStyle:{\"width\":\"12rem\"}},[_vm._v(\" \"+_vm._s(item.phone3)+\" \")])])])])]}},{key:\"PopupEditorTitle\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.interdependencies.editTitle'))+\" \")]},proxy:true},{key:\"PopupEditorContent\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('bia-interdependency-editor',{attrs:{\"interdependency\":item,\"existing-partitions\":_vm.existingPartitions}})]}}])})]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"50rem\"}},[_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.interdependencies.associatePartitionId'))+\" \")]),_c('td',[_c('partition-selector-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.interdependencies.associatePartitionPlaceholder')},model:{value:(_vm.interdependency.associatePartitionId),callback:function ($$v) {_vm.$set(_vm.interdependency, \"associatePartitionId\", $$v)},expression:\"interdependency.associatePartitionId\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.interdependencies.direction.title'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.directions,\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.interdependency.direction),callback:function ($$v) {_vm.$set(_vm.interdependency, \"direction\", $$v)},expression:\"interdependency.direction\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.interdependencies.serviceId'))+\" \")]),_c('td',[_c('tree-item-selector-text-field',{staticClass:\"mt-0\",attrs:{\"datasource\":_vm.services,\"translatable\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.interdependencies.servicePlaceholder')},model:{value:(_vm.interdependency.serviceId),callback:function ($$v) {_vm.$set(_vm.interdependency, \"serviceId\", $$v)},expression:\"interdependency.serviceId\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.associates.isCritical'))+\" \")]),_c('td',[_c('v-checkbox',{attrs:{\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.interdependency.isCritical),callback:function ($$v) {_vm.$set(_vm.interdependency, \"isCritical\", $$v)},expression:\"interdependency.isCritical\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.associates.whyCritical'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"disabled\":!_vm.interdependency.isCritical,\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.interdependency.isCritical ? _vm.$t('bcm.partitions.deployments.interdependencies.whyCriticalPlaceholder') : ''},model:{value:(_vm.interdependency.whyCritical),callback:function ($$v) {_vm.$set(_vm.interdependency, \"whyCritical\", $$v)},expression:\"interdependency.whyCritical\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.associates.criticalActions'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"disabled\":!_vm.interdependency.isCritical,\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.interdependency.isCritical ? _vm.$t('bcm.partitions.deployments.interdependencies.criticalActionsPlaceholder') : ''},model:{value:(_vm.interdependency.criticalActions),callback:function ($$v) {_vm.$set(_vm.interdependency, \"criticalActions\", $$v)},expression:\"interdependency.criticalActions\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.interdependencies.contact'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.interdependencies.associateContactPlaceholder')},model:{value:(_vm.interdependency.contact),callback:function ($$v) {_vm.$set(_vm.interdependency, \"contact\", $$v)},expression:\"interdependency.contact\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.interdependencies.email'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.interdependencies.emailPlaceholder')},model:{value:(_vm.interdependency.email),callback:function ($$v) {_vm.$set(_vm.interdependency, \"email\", $$v)},expression:\"interdependency.email\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.interdependencies.phone1'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.interdependencies.contactPhone1Placeholder')},model:{value:(_vm.interdependency.phone1),callback:function ($$v) {_vm.$set(_vm.interdependency, \"phone1\", $$v)},expression:\"interdependency.phone1\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.interdependencies.phone2'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.interdependencies.contactPhone2Placeholder')},model:{value:(_vm.interdependency.phone2),callback:function ($$v) {_vm.$set(_vm.interdependency, \"phone2\", $$v)},expression:\"interdependency.phone2\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.interdependencies.phone3'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.interdependencies.contactPhone3Placeholder')},model:{value:(_vm.interdependency.phone3),callback:function ($$v) {_vm.$set(_vm.interdependency, \"phone3\", $$v)},expression:\"interdependency.phone3\"}})],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('tree-item-selector',{attrs:{\"visible\":_vm.selectorVisible,\"datasource\":_vm.partitions,\"exclude\":_vm.exclude,\"translatable\":\"\"},on:{\"select\":_vm.selectPartition,\"cancel\":function($event){_vm.selectorVisible = false}}}),_c('v-text-field',{attrs:{\"readonly\":\"\",\"label\":_vm.label,\"value\":_vm.selectedPartition,\"dense\":_vm.dense,\"hide-details\":_vm.hideDetails,\"placeholder\":_vm.placeholder},on:{\"click\":function($event){_vm.selectorVisible = true},\"focus\":function($event){_vm.selectorVisible = true}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"value\":_vm.visible,\"width\":\"800\",\"max-width\":\"1000px\",\"persistent\":\"\"}},[_c('v-card',[_c('v-card-text',[_c('div',{staticClass:\"pt-2 pr-1\",staticStyle:{\"height\":\"500px\",\"overflow-y\":\"auto\"}},[_c('pd-tree-view',{attrs:{\"items\":_vm.availableItems,\"selected-item\":_vm.selectedItem,\"select-multiple\":_vm.selectMultiple,\"selected-items\":_vm.selectedItems,\"translatable\":_vm.translatable,\"value-property\":_vm.column},on:{\"update:selectedItem\":function($event){_vm.selectedItem=$event},\"update:selected-item\":function($event){_vm.selectedItem=$event},\"update:selectedItems\":function($event){_vm.selectedItems=$event},\"update:selected-items\":function($event){_vm.selectedItems=$event},\"dblclick\":_vm.selectItem}})],1)]),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.selectItem}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.select'))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('div',{staticClass:\"ma-1\"},[(_vm.addVisibility)?_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.addNewItem}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlus)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('table.add'))+\" \")],1):_vm._e(),_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"small\":\"\",\"depressed\":\"\"},on:{\"click\":_vm.expandAllItems}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiExpandAllOutline)+\" \")]),_vm._v(\" Expand All \")],1),_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"small\":\"\",\"depressed\":\"\"},on:{\"click\":_vm.collapseAllItems}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCollapseAllOutline)+\" \")]),_vm._v(\" Collapse All \")],1)],1),_vm._l((_vm.hierarchicalItems),function(item){return _c('pd-tree-view-line',{key:item.uuid,attrs:{\"item\":item,\"children\":_vm.children,\"allow-add\":_vm.allowAdd,\"allow-edit\":_vm.allowEdit,\"allow-remove\":_vm.allowRemove,\"max-depth\":_vm.maxDepth,\"selected-item\":_vm.selectedItem,\"select-multiple\":_vm.selectMultiple,\"selected-items\":_vm._selectedItems,\"value-property\":_vm.valueProperty,\"translatable\":_vm.translatable,\"open-items\":_vm.openItems},on:{\"update:selectedItems\":function($event){_vm._selectedItems=$event},\"update:selected-items\":function($event){_vm._selectedItems=$event},\"add-selection\":_vm.addMultiSelect,\"remove-selection\":_vm.removeMultiSelect,\"select-item\":_vm.selectedChanged,\"dblclick\":function($event){return _vm.$emit('dblclick', $event)},\"add-item\":function($event){return _vm.$emit('add-item', $event)},\"edit-item\":function($event){return _vm.$emit('edit-item', $event)},\"remove-item\":function($event){return _vm.$emit('remove-item', $event)},\"open-item\":_vm.openItem,\"close-item\":_vm.closeItem}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"selectableRow d-inline-block test\",class:_vm.currentclass,on:{\"click\":_vm.selectItem,\"dblclick\":_vm.dblClick}},[_vm._l((_vm.depth),function(i){return _c('div',{key:i,staticClass:\"ml-3 d-inline-block\"})}),(_vm.selectMultiple)?_c('div',{staticClass:\"ml-3 d-inline-block\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\"}},[_c('v-icon',{on:{\"click\":_vm.switchMultiSelect}},[(_vm.selected)?[_vm._v(\" \"+_vm._s(_vm.icons.mdiCheckboxMarkedOutline)+\" \")]:[_vm._v(\" \"+_vm._s(_vm.icons.mdiCheckboxBlankOutline)+\" \")]],2)],1)],1):_vm._e(),_c('div',{staticClass:\"d-inline-block mx-2\",staticStyle:{\"width\":\"22px\"}},[(_vm.hasChildren)?_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.switchDetails($event)}}},[_c('v-icon',{class:{'details-rotated': _vm.open}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiMenuRight)+\" \")])],1):_vm._e()],1),_c('div',{staticClass:\"d-inline-block\"},[(_vm.translatable)?[_vm._v(\" \"+_vm._s(_vm.item.translations['en-US'][_vm.valueProperty])+\" \")]:[_vm._v(\" \"+_vm._s(_vm.item[_vm.valueProperty])+\" \")],_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\",\"close-on-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.showMenu)?_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiDotsVertical)+\" \")])],1):_vm._e()]}}])},[_c('v-list',{attrs:{\"dense\":\"\"}},[(_vm.addVisibility)?_c('v-list-item',{on:{\"click\":_vm.addItem}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistPlus)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('treeView.add'))+\" \")])],1):_vm._e(),(_vm.editVisibility)?_c('v-list-item',{on:{\"click\":_vm.editItem}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistEdit)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('treeView.edit'))+\" \")])],1):_vm._e(),(_vm.removeVisibility)?_c('v-list-item',{on:{\"click\":_vm.removeItem}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistMinus)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('treeView.remove'))+\" \")])],1):_vm._e()],1)],1)],2),_c('v-divider')],2),_c('v-expand-transition',[(_vm.open)?_c('div',_vm._l((_vm.item[_vm.children]),function(i){return _c('pd-tree-view-line',{key:i.uuid,attrs:{\"item\":i,\"parent\":_vm.item,\"allow-add\":_vm.allowAdd,\"allow-edit\":_vm.allowEdit,\"allow-remove\":_vm.allowRemove,\"depth\":_vm.depth+1,\"max-depth\":_vm.maxDepth,\"selected-item\":_vm.selectedItem,\"select-multiple\":_vm.selectMultiple,\"selected-items\":_vm.selectedItems,\"children\":_vm.children,\"value-property\":_vm.valueProperty,\"translatable\":_vm.translatable,\"open-items\":_vm.openItems},on:{\"add-selection\":function($event){return _vm.$emit('add-selection', $event)},\"remove-selection\":function($event){return _vm.$emit('remove-selection', $event)},\"select-item\":function($event){return _vm.$emit('select-item', $event)},\"dblclick\":function($event){return _vm.$emit('dblclick', $event)},\"add-item\":function($event){return _vm.$emit('add-item', $event)},\"edit-item\":function($event){return _vm.$emit('edit-item', $event)},\"remove-item\":function($event){return _vm.$emit('remove-item', $event)},\"open-item\":function($event){return _vm.$emit('open-item', $event)},\"close-item\":function($event){return _vm.$emit('close-item', $event)}}})}),1):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, ref, watch, PropType } from '@vue/composition-api';\nimport {\n mdiMenuRight,\n mdiDotsVertical,\n mdiPlaylistEdit,\n mdiPlaylistPlus,\n mdiPlaylistMinus,\n mdiCheckboxBlankOutline,\n mdiCheckboxMarkedOutline,\n} from '@mdi/js';\nimport { IDto } from '@/dtos';\n\nexport default defineComponent({\n name: 'PdTreeViewLine',\n\n components: {\n },\n\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n\n valueProperty: {\n type: String,\n default: 'name',\n },\n\n parent: {\n type: Object as PropType,\n required: false,\n default: () => null,\n },\n\n depth: {\n type: Number,\n default: 0,\n },\n\n children: {\n type: String,\n default: 'children',\n },\n\n allowAdd: {\n type: [Boolean, Function] as PropType boolean)>,\n default: () => false,\n },\n\n allowEdit: {\n type: [Boolean, Function] as PropType boolean)>,\n default: () => false,\n },\n\n allowRemove: {\n type: [Boolean, Function] as PropType boolean)>,\n default: () => false,\n },\n\n translatable: {\n type: Boolean,\n default: false,\n },\n\n maxDepth: {\n type: Number as PropType,\n required: false,\n },\n\n selectedItem: {\n type: Object as PropType,\n required: false,\n },\n\n selectMultiple: {\n type: Boolean,\n default: false,\n },\n\n selectedItems: {\n type: Array as PropType>,\n required: false,\n },\n\n openItems: {\n type: Array as PropType>,\n default: () => [],\n },\n },\n\n setup(props, { emit }) {\n const open = ref(false);\n\n const selected = ref(false);\n\n watch(\n () => props.openItems,\n () => {\n for (let i = 0; i < props.openItems.length; ++i) {\n if (props.openItems[i].id === props.item.id) {\n open.value = true;\n return;\n }\n }\n\n open.value = false;\n },\n {\n immediate: true,\n },\n );\n\n watch(\n () => props.selectedItems,\n () => {\n if (props.selectedItems != null) {\n for (let i = 0; i < props.selectedItems.length; ++i) {\n if (props.selectedItems[i].uuid === props.item.uuid) {\n selected.value = true;\n return;\n }\n }\n }\n\n selected.value = false;\n },\n );\n\n function switchDetails() {\n if (open.value) {\n emit('close-item', props.item);\n } else {\n emit('open-item', props.item);\n }\n }\n\n function addItem() {\n emit('add-item', props.item);\n }\n\n function editItem() {\n emit('edit-item', { item: props.item, parent: props.parent });\n }\n\n function removeItem() {\n emit('remove-item', { item: props.item, parent: props.parent });\n }\n\n const showMenu = computed(() => {\n return addVisibility.value || removeVisibility.value || editVisibility.value;\n });\n\n const addVisibility = computed(() => {\n if (typeof (props.allowAdd) === 'boolean') {\n return props.allowAdd;\n } else {\n return (props.allowAdd as (depth: number, item: IDto | null) => boolean)(props.depth, props.item);\n }\n });\n\n const removeVisibility = computed(() => {\n if (typeof (props.allowRemove) === 'boolean') {\n return props.allowRemove;\n } else {\n return (props.allowRemove as (depth: number, item: IDto | null) => boolean)(props.depth, props.item);\n }\n });\n\n const editVisibility = computed(() => {\n if (typeof (props.allowEdit) === 'boolean') {\n return props.allowEdit;\n } else {\n return (props.allowEdit as (depth: number, item: IDto | null) => boolean)(props.depth, props.item);\n }\n });\n\n const hasChildren = computed(() => {\n return (props.maxDepth == null || props.depth < props.maxDepth - 1) && (props.item[props.children] != null && (props.item[props.children] as Array).length > 0);\n });\n\n const currentclass = computed(() => {\n if (props.selectedItem != null && props.item.id === props.selectedItem.id) {\n return 'selectedRow';\n }\n });\n\n function selectItem() {\n emit('select-item', props.item);\n }\n\n function switchMultiSelect() {\n if (selected.value) {\n emit('remove-selection', props.item);\n } else {\n emit('add-selection', props.item);\n }\n }\n\n function dblClick() {\n if (props.selectMultiple) {\n switchMultiSelect();\n } else {\n emit('dblclick', props.item);\n }\n }\n\n return {\n open,\n switchDetails,\n showMenu,\n addVisibility,\n removeVisibility,\n editVisibility,\n addItem,\n selectItem,\n selected,\n switchMultiSelect,\n dblClick,\n editItem,\n removeItem,\n hasChildren,\n currentclass,\n icons: {\n mdiMenuRight,\n mdiDotsVertical,\n mdiPlaylistEdit,\n mdiPlaylistPlus,\n mdiPlaylistMinus,\n mdiCheckboxBlankOutline,\n mdiCheckboxMarkedOutline,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTreeViewLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTreeViewLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdTreeViewLine.vue?vue&type=template&id=041243eb&scoped=true&\"\nimport script from \"./PdTreeViewLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdTreeViewLine.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PdTreeViewLine.vue?vue&type=style&index=0&id=041243eb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"041243eb\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VDivider,VExpandTransition,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, nextTick, ref, watch } from '@vue/composition-api';\nimport { mdiPlus, mdiExpandAllOutline, mdiCollapseAllOutline } from '@mdi/js';\nimport PdTreeViewLine from './PdTreeViewLine.vue';\nimport { IDto } from '@/dtos';\n\nexport default defineComponent({\n name: 'PdTreeView',\n\n components: {\n PdTreeViewLine,\n },\n\n props: {\n items: {\n type: Array as () => Array,\n required: true,\n },\n\n valueProperty: {\n type: String,\n default: 'name',\n },\n\n children: {\n type: String,\n default: 'children',\n },\n\n allowAdd: {\n type: [Boolean, Function],\n default: () => false,\n },\n\n allowEdit: {\n type: [Boolean, Function],\n default: () => false,\n },\n\n allowRemove: {\n type: [Boolean, Function],\n default: () => false,\n },\n\n translatable: {\n type: Boolean,\n default: false,\n },\n\n maxDepth: {\n type: Number as () => number | undefined,\n required: false,\n },\n\n selectedItem: {\n type: Object as () => IDto,\n required: false,\n },\n\n selectMultiple: {\n type: Boolean,\n default: false,\n },\n\n selectedItems: {\n type: Array as () => Array,\n required: false,\n },\n\n expandAll: {\n type: Boolean,\n default: false,\n },\n\n collapseAll: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const hierarchicalItems = ref>([]);\n\n const _selectedItems = ref>([]);\n\n const openItems = ref>([]);\n\n watch(\n () => props.items,\n (newItems) => {\n hierarchicalItems.value = [];\n const newHierarchicalItems: Array = [];\n\n const parents = new Map>([]);\n const items = new Map([]);\n\n for (let i = 0; i < newItems.length; ++i) {\n items.set(newItems[i].id, newItems[i]);\n\n if (newItems[i].parentId == null) {\n newHierarchicalItems.push(newItems[i]);\n } else {\n const parentId = (newItems[i].parentId as number);\n\n if (!parents.has(parentId)) {\n parents.set(parentId, []);\n }\n\n parents.get(parentId)?.push(newItems[i]);\n }\n }\n\n parents.forEach((value: IDto[], key: number) => {\n const p = items.get(key);\n if (p != null) {\n p.children = value;\n } else {\n console.log(`ParentId '${key}' not found in list`);\n }\n });\n\n hierarchicalItems.value = newHierarchicalItems;\n },\n {\n immediate: true,\n },\n );\n\n function selectedChanged(item: IDto) {\n emit('update:selectedItem', item);\n }\n\n watch(\n () => props.selectedItems,\n () => {\n const newArray: Array = [];\n\n if (props.selectedItems != null) {\n for (let i = 0; i < props.selectedItems.length; ++i) {\n newArray.push(props.selectedItems[i]);\n }\n }\n\n _selectedItems.value = newArray;\n },\n );\n\n function addMultiSelect(item: IDto) {\n _selectedItems.value.push(item);\n emit('update:selectedItems', _selectedItems.value);\n }\n\n function removeMultiSelect(item: IDto) {\n for (let i = 0; i < _selectedItems.value.length; ++i) {\n if (_selectedItems.value[i].uuid === item.uuid) {\n _selectedItems.value.splice(i, 1);\n emit('update:selectedItems', _selectedItems.value);\n return;\n }\n }\n }\n\n function addNewItem() {\n emit('add-item', null);\n }\n\n const addVisibility = computed(() => {\n if (typeof (props.allowAdd) === 'boolean') {\n return props.allowAdd;\n } else {\n return (props.allowAdd as (depth: number, item: IDto | null) => boolean)(0, null);\n }\n });\n\n function openItem(item: IDto) {\n for (let i = 0; i < openItems.value.length; ++i) {\n if (openItems.value[i].id === item.id) {\n return;\n }\n }\n\n openItems.value.push(item);\n }\n\n function closeItem(item: IDto) {\n for (let i = 0; i < openItems.value.length; ++i) {\n if (openItems.value[i].id === item.id) {\n openItems.value.splice(i, 1);\n return;\n }\n }\n }\n\n watch(\n () => props.expandAll,\n (expand) => {\n expandAllItems(expand);\n nextTick(() => emit('update:expand-all', false));\n },\n {\n immediate: true,\n },\n );\n\n watch(\n () => props.collapseAll,\n (collapse) => {\n collapseAllItems(collapse);\n nextTick(() => emit('update:collapse-all', false));\n },\n {\n immediate: true,\n },\n );\n\n function expandAllItems(expand: boolean) {\n if (expand) {\n openItems.value = recursiveGetAll(hierarchicalItems.value);\n }\n }\n\n function collapseAllItems(collapse: boolean) {\n if (collapse) {\n openItems.value = [];\n }\n }\n\n function recursiveGetAll(items: Array, returnList: Array = []): Array {\n for (let i = 0; i < items.length; ++i) {\n if (items[i][props.children] != null && Array.isArray(items[i][props.children]) && (items[i][props.children] as Array).length > 0) {\n returnList.push(items[i]);\n recursiveGetAll((items[i][props.children] as Array), returnList);\n }\n }\n\n return returnList;\n }\n\n return {\n hierarchicalItems,\n selectedChanged,\n\n _selectedItems,\n addMultiSelect,\n removeMultiSelect,\n\n addVisibility,\n addNewItem,\n\n openItems,\n openItem,\n closeItem,\n\n expandAllItems,\n collapseAllItems,\n\n icons: {\n mdiPlus,\n mdiExpandAllOutline,\n mdiCollapseAllOutline,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTreeView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTreeView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdTreeView.vue?vue&type=template&id=37783f2c&scoped=true&\"\nimport script from \"./PdTreeView.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdTreeView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"37783f2c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport PdTreeView from '@/components/core/PdTreeView/PdTreeView.vue';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { IDataSource } from '@/core/datasource';\nimport { IDto } from '@/dtos';\n\nexport default defineComponent({\n name: 'TreeItemSelector',\n\n components: {\n PdTreeView,\n },\n\n props: {\n datasource: {\n type: Object as () => IDataSource,\n required: true,\n },\n\n exclude: {\n type: Array as () => Array,\n default: () => [],\n },\n\n visible: {\n type: Boolean,\n default: true,\n },\n\n selectMultiple: {\n type: Boolean,\n default: false,\n },\n\n translatable: {\n type: Boolean,\n default: false,\n },\n\n column: {\n type: String,\n default: 'name',\n },\n },\n\n setup(props, { emit }) {\n const allItems = ref>([]);\n\n props.datasource.data().then((data: Array | null) => {\n allItems.value = data || [];\n }).catch((error) => {\n ErrorHandlingService.Handle(error);\n });\n\n const availableItems = ref>([]);\n\n const selectedItem = ref(null);\n const selectedItems = ref>([]);\n\n function selectItem() {\n if (!props.selectMultiple) {\n emit('select', selectedItem.value);\n } else {\n emit('select', selectedItems.value);\n }\n }\n\n function close() {\n emit('cancel');\n }\n\n function calculateAvailableItems() {\n let exclude: Array = [];\n\n if (props.exclude.length === 0) {\n availableItems.value = allItems.value;\n } else {\n if (typeof props.exclude[0] === 'number') {\n exclude = props.exclude as Array;\n } else {\n exclude = (props.exclude as Array).map(i => i.id);\n }\n }\n\n const ret: Array = [];\n for (let i = 0; i < allItems.value.length; ++i) {\n if (!exclude.includes(allItems.value[i].id)) {\n ret.push(allItems.value[i]);\n }\n }\n\n availableItems.value = ret;\n }\n\n watch(\n () => props.exclude,\n () => {\n calculateAvailableItems();\n },\n );\n\n watch(\n () => allItems.value,\n () => {\n calculateAvailableItems();\n },\n );\n\n return {\n availableItems,\n\n selectItem,\n selectedItem,\n selectedItems,\n\n close,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TreeItemSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TreeItemSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TreeItemSelector.vue?vue&type=template&id=6df45e04&scoped=true&\"\nimport script from \"./TreeItemSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./TreeItemSelector.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6df45e04\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VDialog})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport TreeItemSelector from './TreeItemSelector.vue';\n\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { PartitionDto } from '@/dtos';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'PartitionSelectorTextField',\n\n components: {\n TreeItemSelector,\n },\n\n props: {\n value: {\n type: [Object, Number] as PropType,\n required: false,\n },\n\n select: {\n type: String as PropType<'object' | 'id'>,\n default: () => 'id',\n },\n\n exclude: {\n type: Array as PropType>,\n default: () => [],\n },\n\n label: {\n type: String,\n required: false,\n },\n\n dense: {\n type: Boolean,\n default: false,\n },\n\n hideDetails: {\n type: [Boolean, String] as PropType,\n default: false,\n },\n\n placeholder: {\n type: String,\n required: false,\n },\n },\n\n setup(props, { emit }) {\n const partitions = DatasourcesService.Bcm.Partitions;\n const selectorVisible = ref(false);\n\n const currentPartition = ref(null);\n\n watch(\n () => props.value,\n async (newValue) => {\n if (typeof newValue === 'number') {\n const partition = await partitions.getById(newValue);\n if (partition != null) {\n currentPartition.value = partition;\n }\n } else if (typeof newValue === 'object') {\n currentPartition.value = newValue;\n } else {\n currentPartition.value = null;\n }\n },\n { immediate: true },\n );\n\n const selectedPartition = computed(() => {\n if (currentPartition.value == null) {\n return '';\n } else {\n return LanguageTemplate(currentPartition.value, 'name').text;\n }\n });\n\n function selectPartition(partition: PartitionDto) {\n if (props.select === 'object') {\n emit('input', partition);\n } else {\n emit('input', partition.id);\n }\n\n selectorVisible.value = false;\n }\n\n return {\n partitions,\n selectorVisible,\n currentPartition,\n selectedPartition,\n selectPartition,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartitionSelectorTextField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartitionSelectorTextField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PartitionSelectorTextField.vue?vue&type=template&id=25a0c772&scoped=true&\"\nimport script from \"./PartitionSelectorTextField.vue?vue&type=script&lang=ts&\"\nexport * from \"./PartitionSelectorTextField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"25a0c772\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"100%\"}},[_c('tree-item-selector',{attrs:{\"visible\":_vm.selectorVisible,\"datasource\":_vm.datasource,\"exclude\":_vm.excludedItems,\"translatable\":_vm.translatable,\"headers\":_vm.headers},on:{\"select\":_vm.selectItem,\"cancel\":function($event){_vm.selectorVisible = false}}}),_c('v-text-field',{attrs:{\"readonly\":\"\",\"disabled\":_vm.disabled,\"label\":_vm.label,\"value\":_vm.selectedItem,\"dense\":_vm.dense,\"hide-details\":_vm.hideDetails,\"placeholder\":_vm.placeholder},on:{\"click\":_vm.openSelector,\"focus\":_vm.openSelector}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { IDto, ITranslatableDto } from '@/dtos';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { IDataSource } from '@/core/datasource';\nimport icons from '@/core/icons';\nimport { PdDataTableHeader } from '../core/PdDataTable';\nimport TreeItemSelector from './TreeItemSelector.vue';\n\nexport default defineComponent({\n name: 'TreeItemSelectorTextField',\n\n components: {\n TreeItemSelector,\n },\n\n props: {\n datasource: {\n type: Object as PropType>,\n required: true,\n },\n\n value: {\n type: [Object, Number] as PropType,\n required: false,\n },\n\n select: {\n type: String as PropType<'object' | 'id'>,\n default: () => 'id',\n },\n\n excludedItems: {\n type: Array as PropType>,\n default: () => [],\n },\n\n label: {\n type: String,\n required: false,\n },\n\n dense: {\n type: Boolean,\n default: false,\n },\n\n hideDetails: {\n type: [Boolean, String] as PropType,\n default: false,\n },\n\n translatable: {\n type: Boolean,\n default: false,\n },\n\n headers: {\n type: Array as PropType>>,\n required: false,\n },\n\n displayField: {\n type: [String, Function] as PropType string)>,\n default: () => 'name',\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n placeholder: {\n type: String,\n required: false,\n },\n },\n\n setup(props, { emit }) {\n const selectorVisible = ref(false);\n\n const currentItem = ref(null);\n\n watch(\n () => props.value,\n async (newValue) => {\n if (typeof newValue === 'number') {\n const item = await props.datasource.getById(newValue);\n if (item != null) {\n currentItem.value = item;\n }\n } else if (typeof newValue === 'object') {\n currentItem.value = newValue;\n } else {\n currentItem.value = null;\n }\n },\n { immediate: true },\n );\n\n const selectedItem = computed(() => {\n if (currentItem.value == null) {\n return '';\n } else {\n if (typeof (props.displayField) === 'function') {\n return props.displayField(currentItem.value);\n } else {\n if (props.translatable) {\n return LanguageTemplate(currentItem.value as ITranslatableDto, props.displayField).text;\n } else {\n return currentItem.value[props.displayField];\n }\n }\n }\n });\n\n function selectItem(item: IDto) {\n if (props.select === 'object') {\n emit('input', item);\n } else {\n emit('input', item.id);\n }\n\n selectorVisible.value = false;\n }\n\n function openSelector() {\n if (!props.readonly && !props.disabled) {\n selectorVisible.value = true;\n }\n }\n\n return {\n selectorVisible,\n currentItem,\n selectedItem,\n selectItem,\n openSelector,\n\n clearIcon: icons.remove,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TreeItemSelectorTextField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TreeItemSelectorTextField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TreeItemSelectorTextField.vue?vue&type=template&id=9800c110&scoped=true&\"\nimport script from \"./TreeItemSelectorTextField.vue?vue&type=script&lang=ts&\"\nexport * from \"./TreeItemSelectorTextField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9800c110\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { InterdependencyDirection, PartitionInterdependencyDto } from '@/dtos';\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport PartitionSelectorTextField from '@/components/all/PartitionSelectorTextField.vue';\nimport TreeItemSelectorTextField from '@/components/all/TreeItemSelectorTextField.vue';\nimport { ISelectItem } from '@/core';\nimport i18n from '@/i18n';\nimport DatasourcesService from '@/services/DatasourcesService';\n\nexport default defineComponent({\n name: 'BiaInterdependencyEditor',\n\n components: {\n PartitionSelectorTextField,\n TreeItemSelectorTextField,\n },\n\n props: {\n interdependency: {\n type: Object as PropType,\n required: true,\n },\n\n existingPartitions: {\n type: Array as PropType>,\n default: [],\n },\n },\n\n setup() {\n const directions: Array = [\n {\n text: i18n.t('bcm.partitions.deployments.interdependencies.direction.input').toString(),\n value: InterdependencyDirection.Input,\n },\n {\n text: i18n.t('bcm.partitions.deployments.interdependencies.direction.output').toString(),\n value: InterdependencyDirection.Output,\n },\n {\n text: i18n.t('bcm.partitions.deployments.interdependencies.direction.both').toString(),\n value: InterdependencyDirection.Both,\n },\n ];\n\n return {\n directions,\n services: DatasourcesService.Bcm.ActiveServices,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaInterdependencyEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaInterdependencyEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaInterdependencyEditor.vue?vue&type=template&id=5fce1c14&scoped=true&\"\nimport script from \"./BiaInterdependencyEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaInterdependencyEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BiaInterdependencyEditor.vue?vue&type=style&index=0&id=5fce1c14&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5fce1c14\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCheckbox,VSelect,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PdDataTable, PdDataTableEditMode, PdDataTableHeader, PdDataTableOptions } from '@/components/core/PdDataTable';\nimport { PdColumnYesNo } from '@/components/core/PdDataTable/columns';\nimport { ApiDataSource } from '@/core/datasource';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { InterdependencyDirection, PartitionInterdependencyDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { ApplicationModule } from '@/store';\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport BiaInterdependencyEditor from './BiaInterdependencyEditor.vue';\n\nexport default defineComponent({\n name: 'BiaInterdependencies',\n\n components: {\n PdDataTable,\n BiaInterdependencyEditor,\n },\n\n props: {\n partitionId: {\n type: Number,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n\n const partitions = DatasourcesService.Bcm.Partitions;\n const services = DatasourcesService.Bcm.Services;\n\n const existingPartitions = ref>([]);\n\n const entityId = ApplicationModule.Entity?.id;\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n watch(\n () => props.partitionId,\n () => {\n init();\n },\n { immediate: true },\n );\n\n const datasource = ref>(new ApiDataSource({ api: `/masterplans/${entityId}/bc/bia/Partitions/${[props.partitionId]}/Interdependencies` }));\n\n const headers: Array> = [\n {\n id: 'associatePartitionId',\n text: i18n.t('bcm.partitions.deployments.interdependencies.associatePartitionId').toString(),\n value: 'associatePartitionId',\n template: async (item) => {\n const p = await partitions.getById(item.associatePartitionId);\n if (p == null) {\n console.error(`Partition \"${item.associatePartitionId}\" not found in partitions...`);\n return { text: '' };\n }\n\n return LanguageTemplate(p, 'name');\n },\n },\n {\n id: 'direction',\n text: i18n.t('bcm.partitions.deployments.interdependencies.direction.title').toString(),\n value: 'direction',\n template: async (item) => {\n switch (item.direction) {\n case InterdependencyDirection.Input:\n return { text: i18n.t('bcm.partitions.deployments.interdependencies.direction.input').toString() };\n case InterdependencyDirection.Output:\n return { text: i18n.t('bcm.partitions.deployments.interdependencies.direction.output').toString() };\n case InterdependencyDirection.Both:\n return { text: i18n.t('bcm.partitions.deployments.interdependencies.direction.both').toString() };\n default:\n return { text: `Unknown direction '${item.direction}'` };\n }\n },\n defaultValue: InterdependencyDirection.Input,\n },\n {\n id: 'serviceId',\n text: i18n.t('bcm.partitions.deployments.interdependencies.serviceId').toString(),\n value: 'serviceId',\n template: async (item) => {\n const p = await services.getById(item.serviceId);\n if (p == null) {\n console.error(`Service \"${item.serviceId}\" not found in services...`);\n return { text: '' };\n }\n\n return LanguageTemplate(p, 'name');\n },\n },\n {\n id: 'isCritical',\n text: i18n.t('bcm.partitions.deployments.associates.isCritical').toString(),\n value: 'isCritical',\n component: PdColumnYesNo,\n },\n {\n id: 'whyCritical',\n text: i18n.t('bcm.partitions.deployments.associates.whyCritical').toString(),\n value: 'whyCritical',\n },\n {\n id: 'criticalActions',\n text: i18n.t('bcm.partitions.deployments.associates.criticalActions').toString(),\n value: 'criticalActions',\n },\n {\n id: 'contact',\n text: i18n.t('bcm.partitions.deployments.interdependencies.contact').toString(),\n value: 'contact',\n visible: false,\n },\n {\n id: 'email',\n text: i18n.t('bcm.partitions.deployments.interdependencies.email').toString(),\n value: 'email',\n visible: false,\n },\n {\n id: 'phone1',\n text: i18n.t('bcm.partitions.deployments.interdependencies.phone1').toString(),\n value: 'phone1',\n visible: false,\n },\n {\n id: 'phone2',\n text: i18n.t('bcm.partitions.deployments.interdependencies.phone2').toString(),\n value: 'phone2',\n visible: false,\n },\n {\n id: 'phone3',\n text: i18n.t('bcm.partitions.deployments.interdependencies.phone3').toString(),\n value: 'phone3',\n visible: false,\n },\n ];\n\n const options: PdDataTableOptions = {\n editable: {\n mode: PdDataTableEditMode.Popup,\n add: !props.readonly,\n edit: !props.readonly,\n delete: !props.readonly,\n },\n hasDetails: true,\n };\n\n function editingChanged(value: PartitionInterdependencyDto | null) {\n if (value == null) {\n console.log('null');\n return;\n }\n\n console.log('write');\n }\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n await Promise.all([partitions.get(), services.get()]);\n datasource.value = new ApiDataSource({ api: `/masterplans/${entityId}/bc/bia/Partitions/${[props.partitionId]}/Interdependencies` });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n return {\n loading,\n datasource,\n headers,\n options,\n editingChanged,\n existingPartitions,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaInterdependencies.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaInterdependencies.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaInterdependencies.vue?vue&type=template&id=21b8716c&scoped=true&\"\nimport script from \"./BiaInterdependencies.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaInterdependencies.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"21b8716c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VProgressLinear,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading)?_c('v-progress-linear',{attrs:{\"indeterminate\":\"\"}}):[_c('v-row',{staticClass:\"mt-0 mb-4\"},[_c('v-col',{staticClass:\"shrink mr-4\"},[_c('h5',{staticStyle:{\"white-space\":\"nowrap\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.bia.partition.operationalImpacts.rtoTrigger'))+\": \"),_c('v-chip',{staticClass:\"ml-2 px-8\",attrs:{\"color\":_vm.rtoTriggerColor}},[_vm._v(\" \"+_vm._s(_vm.rtoTrigger)+\" \")])],1)]),_c('v-col',[_c('h5',{staticStyle:{\"white-space\":\"nowrap\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.bia.partition.operationalImpacts.maoTrigger'))+\": \"),_c('v-chip',{staticClass:\"ml-2 px-8\",attrs:{\"color\":_vm.maoTriggerColor}},[_vm._v(\" \"+_vm._s(_vm.maoTrigger)+\" \")])],1)])],1),_vm._l((_vm.questions),function(q){return [_c('div',{key:q.uuid,staticClass:\"mb-8\"},[_c('div',{staticClass:\"mb-2\"},[_c('h4',[_vm._v(\" \"+_vm._s(q.question)+\" \")]),_c('div',{staticClass:\"caption\"},[_vm._v(\" \"+_vm._s(q.explanation)+\" \")])]),_c('bia-operational-impact-question',{attrs:{\"question\":q,\"rto-scales\":_vm.rtoScales,\"impact-scales\":_vm.impactScales,\"readonly\":_vm.readonly},on:{\"update\":_vm.updateQuestion}})],1)]})]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{attrs:{\"dense\":\"\",\"no-gutters\":\"\"}},_vm._l((_vm.rtoScales),function(s){return _c('v-col',{key:s.value,staticClass:\"mr-2\"},[_c('v-select',{attrs:{\"items\":_vm.availableImpactScales[s.value],\"label\":s.text,\"disabled\":_vm.readonly,\"dense\":\"\",\"hide-details\":\"\"},on:{\"input\":_vm.changedValue},model:{value:(_vm._question.answers[s.value]),callback:function ($$v) {_vm.$set(_vm._question.answers, s.value, $$v)},expression:\"_question.answers[s.value]\"}})],1)}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport { PartitionOperationalImpactDto } from '@/dtos';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { cloneDeep } from 'lodash';\n\nexport default defineComponent({\n name: 'BiaOperationalImpactQuestion',\n\n components: {\n\n },\n\n props: {\n question: {\n type: Object as PropType,\n required: true,\n },\n\n rtoScales: {\n type: Array as PropType>,\n required: true,\n },\n\n impactScales: {\n type: Array as PropType>,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props, { emit }) {\n const availableImpactScales = ref<{ [key: number]: Array }>({});\n\n const _question = ref(cloneDeep(props.question));\n\n watch(\n () => props.question,\n (q) => {\n _question.value = cloneDeep(q);\n calculateAvailableImpacts();\n },\n { immediate: true },\n );\n\n function calculateAvailableImpacts() {\n // scale.value = id (scale: ISelectItem)\n availableImpactScales.value[props.rtoScales[0].value as number] = cloneDeep(props.impactScales);\n\n // assume already sorted!\n for (let i = 1; i < props.rtoScales.length; ++i) {\n // previous rto impact scale value\n const value = props.impactScales.find(s => s.value === _question.value.answers[props.rtoScales[i - 1].value as number])?.other as number;\n\n let min = props.impactScales[props.impactScales.length - 1];\n availableImpactScales.value[props.rtoScales[i].value as number] = cloneDeep(props.impactScales).filter(s => {\n if (s.other as number >= value) {\n if ((min.other as number) > (s.other as number)) {\n min = s;\n }\n return true;\n }\n return false;\n });\n }\n }\n\n function changedValue() {\n emit('update', _question.value);\n }\n\n return {\n changedValue,\n _question,\n availableImpactScales,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaOperationalImpactQuestion.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaOperationalImpactQuestion.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaOperationalImpactQuestion.vue?vue&type=template&id=bc9c5900&scoped=true&\"\nimport script from \"./BiaOperationalImpactQuestion.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaOperationalImpactQuestion.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bc9c5900\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VCol,VRow,VSelect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport icons from '@/core/icons';\nimport { PartitionOperationalImpactDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport { BiaService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport SnackbarMessageService from '@/services/SnackbarMessageService';\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { v4 } from 'uuid';\nimport BiaOperationalImpactQuestion from './BiaOperationalImpactQuestion.vue';\n\nexport default defineComponent({\n name: 'BiaOperationalImpact',\n\n components: {\n BiaOperationalImpactQuestion,\n },\n\n props: {\n partitionId: {\n type: Number,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n const rtoScales = ref>([]);\n const impactScales = ref>([]);\n\n const questions = ref>([]);\n\n const rtoTriggerColor = ref('');\n const rtoTrigger = ref('');\n const maoTriggerColor = ref('');\n const maoTrigger = ref('');\n\n watch(\n () => props.partitionId,\n () => {\n init();\n },\n { immediate: true },\n );\n\n async function getRtoAndMaoTriggers() {\n const rtoMao = await BiaService.GetPartitionRtoAndMao(props.partitionId);\n\n rtoTrigger.value = rtoMao.rtoName;\n rtoTriggerColor.value = rtoMao.rtoColor;\n\n maoTrigger.value = rtoMao.maoName;\n maoTriggerColor.value = rtoMao.maoColor;\n }\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n await Promise.all([\n DatasourcesService.Bcm.RtoScales.get(),\n DatasourcesService.Bcm.OperationalImpactScales.get(),\n ]);\n\n (await DatasourcesService.Bcm.RtoScales.data())\n .sort((a, b) => {\n return a.value - b.value;\n }).forEach(s => {\n rtoScales.value.push({\n value: s.id,\n text: LanguageTemplate(s, 'name').text,\n other: s.value,\n color: s.color,\n });\n });\n\n (await DatasourcesService.Bcm.OperationalImpactScales.data())\n .sort((a, b) => {\n return a.value - b.value;\n })\n .forEach(s => {\n impactScales.value.push({\n value: s.id,\n text: LanguageTemplate(s, 'name').text,\n other: s.value,\n });\n });\n\n const q = await BiaService.GetPartitionOperationalImpacts(props.partitionId);\n\n q.forEach(quest => {\n quest.uuid = v4();\n });\n\n questions.value = q;\n\n await getRtoAndMaoTriggers();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n\n async function updateQuestion(question: PartitionOperationalImpactDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n const q = await BiaService.UpdateOperationalImpactQuestion(props.partitionId, question);\n q.uuid = v4();\n\n for (let i = 0; i < questions.value.length; ++i) {\n if (questions.value[i].uuid === question.uuid) {\n questions.value.splice(i, 1, q);\n }\n }\n\n SnackbarMessageService.SetMessage({ text: i18n.t('saved').toString() });\n\n await getRtoAndMaoTriggers();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n questions.value.every((q) => {\n // refresh uuid to refresh component\n if (q.uuid === question.uuid) {\n q.uuid = v4();\n return false;\n }\n\n return true;\n });\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n loading,\n rtoScales,\n questions,\n impactScales,\n updateQuestion,\n\n rtoTriggerColor,\n rtoTrigger,\n maoTriggerColor,\n maoTrigger,\n\n icons: {\n info: icons.info,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaOperationalImpact.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaOperationalImpact.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaOperationalImpact.vue?vue&type=template&id=588fa1ed&scoped=true&\"\nimport script from \"./BiaOperationalImpact.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaOperationalImpact.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"588fa1ed\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VChip,VCol,VProgressLinear,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading)?_c('v-progress-linear',{attrs:{\"indeterminate\":\"\"}}):[_c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.partition.name)+\" \")]),_c('v-card-subtitle',[_vm._v(\" \"+_vm._s(_vm.partition.location)+\" \"),_c('div',{staticClass:\"mt-2\"},[(_vm.partition.rto != null)?_c('v-chip',{staticClass:\"mr-2\",attrs:{\"small\":\"\",\"color\":_vm.partition.rto.color}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.rto'))+\": \"+_vm._s(_vm.partition.rto.name)+\" \")]):_c('v-chip',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.noRto'))+\" \")]),(_vm.partition.mao != null)?_c('v-chip',{attrs:{\"color\":_vm.partition.mao.color,\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.mao'))+\": \"+_vm._s(_vm.partition.mao.name)+\" \")]):_c('v-chip',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.noMao'))+\" \")])],1)]),_c('v-card-text',[(!_vm.partition.hasChildren)?[_c('v-divider'),_c('h3',{staticClass:\"mt-3\"},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.bia.partition.rcsaType'))+\" \")]),_c('v-select',{attrs:{\"items\":_vm.riskSelfAssessmentTypes,\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.partition.selfAssessmentType),callback:function ($$v) {_vm.$set(_vm.partition, \"selfAssessmentType\", $$v)},expression:\"partition.selfAssessmentType\"}})]:_vm._e(),_c('v-divider',{staticClass:\"mt-3\"}),_c('bia-partition-deployments',{attrs:{\"partition\":_vm.partition}})],2)],1)]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',{staticClass:\"my-3\"},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.bia.partition.deployments'))+\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\"},on:{\"click\":_vm.newDeployment}},[_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.add)+\" \")])],1)],1),(_vm.showEditor)?_c('bia-partition-deployment-editor',{attrs:{\"deployment\":_vm.editingItem,\"existing-surveys\":_vm.existingSurveys,\"disable-bia\":_vm.disableBia,\"disable-rcsa\":_vm.disableRcsa},on:{\"save\":_vm.saveChanges,\"cancel\":_vm.cancelChanges}}):_vm._e(),_c('v-expansion-panels',{attrs:{\"focusable\":\"\",\"popout\":\"\"}},_vm._l((_vm.deployments),function(d){return _c('bia-partition-deployment',{key:d.uuid,attrs:{\"deployment\":d,\"disable-bia\":_vm.partition.hasChildren,\"disable-rcsa\":_vm.partition.hasChildren},on:{\"edit\":_vm.editDeployment,\"delete\":_vm.deleteDeployment}})}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('v-row',{attrs:{\"dense\":\"\",\"no-gutters\":\"\",\"justify\":\"space-between\",\"align\":\"center\"}},[_c('v-col',[_c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.menu)+\" \")])],1)]}}])},[_c('v-list',[(_vm.deployment.status > 0)?_c('v-list-item',{on:{\"click\":_vm.openDeployment}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.open)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('all.deployments.open'))+\" \")])],1):_vm._e(),_c('v-list-item',{on:{\"click\":_vm.editDeployment}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.edit)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('all.deployments.edit'))+\" \")])],1),_c('v-divider'),(_vm.deployment.status > 0)?_c('v-list-item',{on:{\"click\":_vm.abortDeployment}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.abort)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('all.deployments.abort'))+\" \")])],1):_vm._e(),(_vm.deployment.status === 0)?_c('v-list-item',{on:{\"click\":_vm.deployDeployment}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.deploy)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('all.deployments.deploy'))+\" \")])],1):_vm._e(),_c('v-divider'),(_vm.deployment.status === 0)?_c('v-list-item',{on:{\"click\":_vm.deleteDeployment}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.icons.delete)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('all.deployments.delete'))+\" \")])],1):_vm._e()],1)],1),_vm._v(\" \"+_vm._s(_vm.deployment.name)+\" \"),_c('v-chip',{staticClass:\"ml-2\",staticStyle:{\"cursor\":\"auto\"},attrs:{\"small\":\"\",\"color\":_vm.statusColor}},[_vm._v(\" \"+_vm._s(_vm.status)+\" \")])],1),_c('v-col',{staticClass:\"text-caption text-right mr-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('all.deployments.dueDate'))+\": \"+_vm._s(_vm.dueDate)+\" \")])],1)],1),_c('v-expansion-panel-content',[_c('div',[_c('v-row',{attrs:{\"dense\":\"\"}},[(!_vm.disableBia)?_c('v-col',{staticClass:\"shrink\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"input-value\":_vm.deployment.hasBiaParameters,\"readonly\":\"\",\"label\":_vm.$t('bcm.partitions.deployments.hasBiaParameters'),\"dense\":\"\",\"hide-details\":\"\"}})],1):_vm._e(),(!_vm.disableRcsa)?_c('v-col',{staticClass:\"shrink\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"input-value\":_vm.deployment.hasRiskAssessment,\"readonly\":\"\",\"label\":_vm.$t('bcm.partitions.deployments.hasRiskAssessment'),\"dense\":\"\",\"hide-details\":\"\"}})],1):_vm._e()],1),(_vm.deployment.hasBiaParameters)?_c('v-row',[_c('v-col',{staticClass:\"shrink\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"input-value\":_vm.deployment.showFinancialImpacts,\"readonly\":\"\",\"label\":_vm.$t('bcm.partitions.deployments.showFinancialImpacts'),\"dense\":\"\",\"hide-details\":\"\"}})],1),_c('v-col',{staticClass:\"shrink\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"input-value\":_vm.deployment.showServices,\"readonly\":\"\",\"label\":_vm.$t('bcm.partitions.deployments.showServices'),\"dense\":\"\",\"hide-details\":\"\"}})],1)],1):_vm._e(),(_vm.deployment.surveys && _vm.deployment.surveys.length > 0)?[_c('div',{staticClass:\"mt-4\"},[_c('h4',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.surveys'))+\" \")]),_c('v-simple-table',[_c('tbody',_vm._l((_vm.deployment.surveys),function(s){return _c('bia-partition-deployment-survey',{key:s,attrs:{\"survey\":s}})}),1)])],1)]:_vm._e(),[_c('h4',{staticClass:\"mt-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.users'))+\" \")]),_c('v-simple-table',[_c('tbody',[(_vm.dataEntryUsers.length > 0)?[_c('tr',[_c('td',[_c('h4',[_vm._v(_vm._s(_vm.$t('all.deployments.dataEntry')))])])]),_vm._l((_vm.dataEntryUsers),function(u,i){return _c('tr',{key:'de-' + i},[_c('td',{style:({'background-color': u.color})},[_vm._v(\" \"+_vm._s(u.user)+\" \")])])})]:_vm._e(),(_vm.approvalPathUsers.length > 0)?[_c('tr',[_c('td',[_c('h4',[_vm._v(_vm._s(_vm.$t('all.deployments.approvalPath')))])])]),_vm._l((_vm.approvalPathUsers),function(u,i){return _c('tr',{key:'a-' + i},[_c('td',{style:({'background-color': u.color})},[_vm._v(\" \"+_vm._s(u.user)+\" \")])])})]:_vm._e()],2)])]],2)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:\"editor-table\"},[_c('tbody',[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('all.deployment.name'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.deployment.name),callback:function ($$v) {_vm.$set(_vm.deployment, \"name\", $$v)},expression:\"deployment.name\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('all.deployment.dueDate'))+\" \")]),_c('td',[_c('pd-date-picker',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"min\":_vm.today},model:{value:(_vm.deployment.dueDate),callback:function ($$v) {_vm.$set(_vm.deployment, \"dueDate\", $$v)},expression:\"deployment.dueDate\"}})],1)]),_vm._t(\"default\",null,{\"deployment\":_vm.deployment}),_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('base-deployment-users',{attrs:{\"deployment\":_vm.deployment}})],1)])],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-menu',{attrs:{\"close-on-content-click\":false,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"min-width\":\"290px\",\"disabled\":_vm.readonly},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-text-field',_vm._g(_vm._b({style:(_vm.textFieldStyle),attrs:{\"outlined\":_vm.outlined,\"hide-details\":_vm.hideDetails,\"label\":_vm.title,\"prepend-inner-icon\":_vm.mdiCalendar,\"error-messages\":_vm.errorMessages,\"readonly\":\"\",\"disabled\":_vm.disabled,\"dense\":_vm.dense,\"placeholder\":_vm.placeholder},model:{value:(_vm.dateFormatted),callback:function ($$v) {_vm.dateFormatted=$$v},expression:\"dateFormatted\"}},'v-text-field',attrs,false),on))]}}]),model:{value:(_vm.datePicker),callback:function ($$v) {_vm.datePicker=$$v},expression:\"datePicker\"}},[_c('v-date-picker',{attrs:{\"no-title\":\"\",\"scrollable\":\"\",\"min\":_vm.min,\"max\":_vm.max},on:{\"input\":function($event){_vm.datePicker = false}},model:{value:(_vm.date),callback:function ($$v) {_vm.date=$$v},expression:\"date\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { mdiCalendar } from '@mdi/js';\n\nexport default defineComponent({\n name: 'PdDatePicker',\n props: {\n value: {\n type: [String, Number, Date],\n required: false,\n },\n\n title: {\n type: String,\n default: '',\n },\n\n errorMessages: {\n type: [Array, String],\n },\n\n min: {\n type: String,\n },\n\n max: {\n type: String,\n },\n\n outlined: {\n type: Boolean,\n default: false,\n },\n\n hideDetails: {\n type: [String, Boolean],\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n dense: {\n type: Boolean,\n default: false,\n },\n\n textFieldStyle: {\n type: String,\n },\n\n placeholder: {\n type: String,\n required: false,\n },\n },\n setup(props, { emit }) {\n const datePicker = ref(false);\n\n const date = ref('');\n const dateFormatted = ref('');\n\n function parseDate(d: string | number | Date) {\n if (d) {\n if (typeof d === 'string') {\n if (d.indexOf('+') === -1 && d.indexOf('Z') === -1) {\n d += 'Z';\n }\n }\n const parsed = new Date(d);\n if (parsed) {\n date.value = parsed.toISOString().substring(0, 10);\n dateFormatted.value = parsed.toLocaleDateString('el-GR');\n }\n }\n }\n\n if (props.value != null) {\n parseDate(props.value);\n }\n\n watch(\n () => props.value,\n (value) => {\n if (value != null) {\n parseDate(value);\n } else {\n date.value = '';\n dateFormatted.value = '';\n }\n },\n );\n\n watch(\n date,\n (value: string) => {\n const ret = new Date(value);\n emit('input', ret);\n },\n );\n\n return {\n date,\n dateFormatted,\n datePicker,\n mdiCalendar,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDatePicker.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDatePicker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdDatePicker.vue?vue&type=template&id=9b6da2ac&scoped=true&\"\nimport script from \"./PdDatePicker.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdDatePicker.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9b6da2ac\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VDatePicker,VMenu,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{attrs:{\"dense\":\"\"}},[(_vm.userSelectorVisible)?_c('user-selector',{attrs:{\"visible\":\"\",\"datasource\":_vm.allUsers,\"exclude\":_vm.excludedUsers},on:{\"select\":_vm.addUser,\"cancel\":function($event){_vm.userSelectorVisible = false}}}):_vm._e(),_c('v-col',[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('all.deployments.dataEntry'))+\" \")]),_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.addUserForDataEntry}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.plus)+\" \")])],1),_c('v-simple-table',{attrs:{\"dense\":\"\",\"fixed-header\":\"\",\"height\":\"15rem\"}},[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-center\",staticStyle:{\"min-width\":\"75px\"}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('all.deployments.allowFinishing'))+\" \")])]),_c('th',{staticClass:\"text-left pl-2\",staticStyle:{\"width\":\"100%\"}},[_vm._v(\" \"+_vm._s(_vm.$t('all.deployments.userInfo'))+\" \")])])]),_c('tbody',_vm._l((_vm.dataEntryUsers),function(u,i){return _c('base-deployment-user-line',{key:u.uuid,attrs:{\"user\":u,\"status\":_vm.deployment.status,\"first\":i === 0,\"last\":i === _vm.dataEntryUsers.length - 1},on:{\"remove\":_vm.removeUser}})}),1)])],1),_c('v-col',[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('all.deployments.approvalPath'))+\" \")]),_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.addUserForApprovalPath}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.plus)+\" \")])],1),_c('v-simple-table',{attrs:{\"dense\":\"\",\"fixed-header\":\"\",\"height\":\"15rem\"}},[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-center\",staticStyle:{\"min-width\":\"75px\"}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('all.deployments.order'))+\" \")])]),_c('th',{staticClass:\"text-left pl-2\",staticStyle:{\"width\":\"100%\"}},[_vm._v(\" \"+_vm._s(_vm.$t('all.deployments.userInfo'))+\" \")])])]),_c('tbody',_vm._l((_vm.approvalPathUsers),function(u,i){return _c('base-deployment-user-line',{key:u.uuid,attrs:{\"user\":u,\"status\":_vm.deployment.status,\"first\":i === 0,\"last\":i === _vm.approvalPathUsers.length - 1},on:{\"move-up\":_vm.moveUp,\"move-down\":_vm.moveDown,\"remove\":_vm.removeUser}})}),1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{style:({'background-color': _vm.color})},[_c('td',{staticClass:\"text-center\"},[(_vm.dataEntry)?[_c('v-simple-checkbox',{directives:[{name:\"ripple\",rawName:\"v-ripple\"}],attrs:{\"type\":\"checkbox\",\"disabled\":!_vm.allowChangeFinishing},model:{value:(_vm.user.allowFinishingDataEntry),callback:function ($$v) {_vm.$set(_vm.user, \"allowFinishingDataEntry\", $$v)},expression:\"user.allowFinishingDataEntry\"}})]:[(_vm.allowEdit)?_c('v-icon',{staticClass:\"mb-1\",staticStyle:{\"cursor\":\"pointer\"},style:({visibility: _vm.first ? 'hidden' : ''}),attrs:{\"small\":\"\"},on:{\"click\":_vm.moveUp}},[_vm._v(\" \"+_vm._s(_vm.icons.up)+\" \")]):_vm._e(),_c('span',[_vm._v(\" \"+_vm._s(_vm.user.order)+\" \")]),(_vm.allowEdit)?_c('v-icon',{staticClass:\"mb-1\",staticStyle:{\"cursor\":\"pointer\"},style:({visibility: _vm.last ? 'hidden' : ''}),attrs:{\"small\":\"\"},on:{\"click\":_vm.moveDown}},[_vm._v(\" \"+_vm._s(_vm.icons.down)+\" \")]):_vm._e()]],2),_c('td',{staticClass:\"pl-2\"},[(_vm.allowEdit)?_c('v-icon',{staticClass:\"mb-1\",staticStyle:{\"cursor\":\"pointer\"},attrs:{\"small\":\"\"},on:{\"click\":_vm.remove}},[_vm._v(\" \"+_vm._s(_vm.icons.remove)+\" \")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.user.user.info)+\" \"),(!_vm.dataEntry)?void 0:_vm._e()],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ApprovalPathStatus } from '@/dtos/all';\nimport i18n from '@/i18n';\n\nexport function getUserStatus(status: ApprovalPathStatus): string {\n switch (status) {\n case ApprovalPathStatus.Pending:\n return i18n.t('all.deployments.userStatus.pending').toString();\n case ApprovalPathStatus.On:\n return i18n.t('all.deployments.userStatus.on').toString();\n case ApprovalPathStatus.Finished:\n return i18n.t('all.deployments.userStatus.finished').toString();\n default:\n return '';\n }\n}\n\nexport function getUserStatusColor(status: ApprovalPathStatus): string {\n switch (status) {\n case ApprovalPathStatus.Pending:\n return '';\n case ApprovalPathStatus.On:\n return '#F0D38E44';\n case ApprovalPathStatus.Finished:\n return '#9EF08E44';\n default:\n return '';\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport { mdiArrowUp, mdiArrowDown } from '@mdi/js';\nimport icons from '@/core/icons';\nimport i18n from '@/i18n';\nimport { ApprovalPathStatus, DeploymentStatus, DeploymentUserDto } from '@/dtos/all';\nimport PopupMessageService, { PopupMessageButtonNo, PopupMessageButtonYes } from '@/services/PopupMessageService';\nimport { getUserStatusColor } from './DeploymentUserStatus';\n\nexport default defineComponent({\n name: 'BaseDeploymentUserLine',\n\n components: {\n\n },\n\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n\n status: {\n type: Number as PropType,\n required: true,\n },\n\n first: {\n type: Boolean,\n default: false,\n },\n\n last: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const dataEntry = computed(() => {\n return props.user.order === 0;\n });\n\n const allowEdit = computed(() => {\n return props.user.pathStatus === ApprovalPathStatus.Pending;\n });\n\n const allowChangeFinishing = computed(() => {\n return props.user.pathStatus !== ApprovalPathStatus.Finished;\n });\n\n const color = computed(() => {\n return getUserStatusColor(props.user.pathStatus);\n });\n\n function moveUp() {\n if (allowEdit.value === true) {\n emit('move-up', props.user);\n }\n }\n\n function moveDown() {\n if (allowEdit.value === true) {\n emit('move-down', props.user);\n }\n }\n\n function remove() {\n if (allowEdit.value === true) {\n PopupMessageService.SetMessage({\n title: i18n.t('confirmation'),\n text: i18n.t('all.deployments.removeUserMessage', { user: props.user.user.info }),\n index: 100,\n buttons: [\n PopupMessageButtonYes(() => emit('remove', props.user)),\n PopupMessageButtonNo(),\n ],\n });\n }\n }\n\n return {\n dataEntry,\n\n allowEdit,\n allowChangeFinishing,\n\n moveUp,\n moveDown,\n remove,\n\n color,\n\n icons: {\n up: mdiArrowUp,\n down: mdiArrowDown,\n remove: icons.remove,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseDeploymentUserLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseDeploymentUserLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseDeploymentUserLine.vue?vue&type=template&id=978b9b38&scoped=true&\"\nimport script from \"./BaseDeploymentUserLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseDeploymentUserLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"978b9b38\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\ninstallComponents(component, {VIcon,VSimpleCheckbox})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Ripple from 'vuetify/lib/directives/ripple'\ninstallDirectives(component, {Ripple})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"value\":_vm.visible,\"width\":\"500\",\"max-width\":\"1000px\",\"persistent\":\"\"}},[_c('v-card',[_c('pd-data-table',{attrs:{\"height\":\"400px\",\"search\":\"\",\"datasource\":_vm.availableUsers,\"headers\":_vm.availableUsersHeaders,\"options\":{editable: false, pagination: false},\"selected-item\":_vm.selectedUser},on:{\"update:selectedItem\":function($event){_vm.selectedUser=$event},\"update:selected-item\":function($event){_vm.selectedUser=$event},\"dblclick\":_vm.selectUser}}),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\",\"disabled\":_vm.selectedUser == null},on:{\"click\":_vm.selectUser}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.select'))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { IDataSource } from '@/core/datasource';\n\nexport default defineComponent({\n name: 'UserSelector',\n\n components: {\n PdDataTable,\n },\n\n props: {\n datasource: {\n type: Object as () => IDataSource,\n required: true,\n },\n\n exclude: {\n type: Array as () => Array,\n default: () => [],\n },\n\n visible: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props, { emit }) {\n const availableUsersHeaders: Array> = [\n {\n id: 'info',\n text: 'User',\n value: 'info',\n },\n ];\n\n const allUsers = ref>([]);\n\n props.datasource.data().then((data: Array | null) => {\n allUsers.value = data || [];\n }).catch((error) => {\n ErrorHandlingService.Handle(error);\n });\n\n const availableUsers = ref>([]);\n\n const selectedUser = ref(null);\n\n function selectUser() {\n emit('select', selectedUser.value);\n }\n\n function close() {\n emit('cancel');\n }\n\n function calculateAvailableUsers() {\n let exclude: Array = [];\n\n if (props.exclude.length === 0) {\n availableUsers.value = allUsers.value;\n } else {\n if (typeof props.exclude[0] === 'string') {\n exclude = props.exclude as Array;\n } else {\n exclude = (props.exclude as Array).map(i => i.username);\n }\n }\n\n const ret: Array = [];\n for (let i = 0; i < allUsers.value.length; ++i) {\n if (!exclude.includes(allUsers.value[i].username)) {\n ret.push(allUsers.value[i]);\n }\n }\n\n availableUsers.value = ret;\n }\n\n watch(\n () => props.exclude,\n () => {\n calculateAvailableUsers();\n },\n );\n\n watch(\n () => allUsers.value,\n () => {\n calculateAvailableUsers();\n },\n );\n\n return {\n availableUsers,\n availableUsersHeaders,\n\n selectUser,\n selectedUser,\n\n close,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserSelector.vue?vue&type=template&id=bc38e552&scoped=true&\"\nimport script from \"./UserSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserSelector.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bc38e552\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\ninstallComponents(component, {VBtn,VCard,VCardActions,VDialog})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport icons from '@/core/icons';\nimport { ApprovalPathStatus, BaseDeploymentDto, DeploymentUserDto } from '@/dtos/all';\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport { v4 } from 'uuid';\nimport BaseDeploymentUserLine from './BaseDeploymentUserLine.vue';\nimport UserSelector from '@/components/all/UserSelector.vue';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { SimpleUserDto } from '@/dtos';\n\nexport default defineComponent({\n name: 'BaseDeploymentUsers',\n\n components: {\n BaseDeploymentUserLine,\n UserSelector,\n },\n\n props: {\n deployment: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const userSelectorVisible = ref(false);\n\n if (props.deployment.users == null) {\n props.deployment.users = [];\n }\n\n props.deployment.users.forEach(u => {\n u.uuid = v4();\n });\n\n const dataEntryUsers = computed(() => {\n return props.deployment.users.filter(i => i.order === 0);\n });\n\n const approvalPathUsers = computed(() => {\n return props.deployment.users.filter(i => i.order > 0).sort((a, b) => a.order - b.order);\n });\n\n const allUsers = DatasourcesService.Users;\n\n const excludedUsers = computed>(() => {\n return props.deployment.users.map(i => i.user);\n });\n\n async function moveUp(user: DeploymentUserDto) {\n const users = props.deployment.users.sort((a, b) => a.order - b.order);\n\n for (let i = 1; i < props.deployment.users.length; ++i) {\n if (users[i].uuid === user.uuid) {\n users[i - 1].order += 1;\n users[i - 1].uuid = v4();\n\n users[i].order -= 1;\n users[i].uuid = v4();\n\n const temp = users[i];\n users.splice(i, 1, users[i - 1]);\n users.splice(i - 1, 1, temp);\n\n return;\n }\n }\n }\n\n async function moveDown(user: DeploymentUserDto) {\n const users = props.deployment.users.sort((a, b) => a.order - b.order);\n\n for (let i = 0; i < users.length - 1; ++i) {\n if (users[i].uuid === user.uuid) {\n users[i + 1].order -= 1;\n users[i + 1].uuid = v4();\n\n users[i].order += 1;\n users[i].uuid = v4();\n\n const temp = users[i];\n users.splice(i, 1, users[i + 1]);\n users.splice(i + 1, 1, temp);\n\n return;\n }\n }\n }\n\n let addUserFor: 'entry' | 'approval' = 'entry';\n\n function addUserForDataEntry() {\n addUserFor = 'entry';\n userSelectorVisible.value = true;\n }\n\n function addUserForApprovalPath() {\n addUserFor = 'approval';\n userSelectorVisible.value = true;\n }\n\n function addUser(user: SimpleUserDto) {\n const u: DeploymentUserDto = {\n id: 0,\n user: user,\n pathStatus: ApprovalPathStatus.Pending,\n order: addUserFor === 'entry' ? 0 : props.deployment.users.filter(i => i.order > 0).length + 1,\n allowFinishingDataEntry: false,\n uuid: v4(),\n };\n\n props.deployment.users.push(u);\n\n userSelectorVisible.value = false;\n }\n\n async function removeUser(user: DeploymentUserDto) {\n let found = false;\n\n const users = props.deployment.users.sort((a, b) => a.order - b.order);\n\n for (let i = 0; i < users.length; ++i) {\n if (users[i].uuid === user.uuid) {\n users.splice(i, 1);\n found = true;\n\n if (user.order === 0) {\n return;\n } else {\n i--;\n continue;\n }\n }\n\n if (found) {\n users[i].order -= 1;\n }\n }\n }\n\n return {\n dataEntryUsers,\n approvalPathUsers,\n moveUp,\n moveDown,\n removeUser,\n addUser,\n addUserForDataEntry,\n addUserForApprovalPath,\n\n userSelectorVisible,\n allUsers,\n excludedUsers,\n\n icons: {\n minus: icons.minus,\n plus: icons.plus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseDeploymentUsers.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseDeploymentUsers.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseDeploymentUsers.vue?vue&type=template&id=136c9a80&scoped=true&\"\nimport script from \"./BaseDeploymentUsers.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseDeploymentUsers.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"136c9a80\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VBtn,VCol,VIcon,VRow,VSimpleTable})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { DeploymentStatus, BaseDeploymentDto } from '@/dtos/all';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport PdDatePicker from '@/components/core/PdDatePicker.vue';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport BaseDeploymentUsers from './BaseDeploymentUsers.vue';\n\nexport default defineComponent({\n name: 'BaseDeploymentEditor',\n\n components: {\n PdPopupCard,\n PdDatePicker,\n BaseDeploymentUsers,\n },\n\n props: {\n deployment: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const editable = computed(() => {\n return props.deployment.status === DeploymentStatus.Undeployed;\n });\n\n const today = computed(() => {\n return (new Date()).toISOString().substring(0, 10);\n });\n\n return {\n editable,\n today,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseDeploymentEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseDeploymentEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseDeploymentEditor.vue?vue&type=template&id=15cdf196&scoped=true&\"\nimport script from \"./BaseDeploymentEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseDeploymentEditor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"15cdf196\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","import { PartitionDeploymentDto } from '@/dtos';\nimport { DeploymentStatus } from '@/dtos/all';\nimport i18n from '@/i18n';\n\nexport function DeploymentStatusColor(deployment: PartitionDeploymentDto): string {\n switch (deployment.status) {\n case DeploymentStatus.Undeployed:\n return '';\n case DeploymentStatus.DataEntry:\n return '#F0D38E';\n case DeploymentStatus.ApprovalPath:\n return '#EDF08E';\n case DeploymentStatus.AdminApproval:\n return '#D3F08E';\n case DeploymentStatus.Finished:\n return '#9EF08E';\n default:\n return '';\n }\n}\n\nexport function DeploymentStatusTitle(deployment: PartitionDeploymentDto): string {\n switch (deployment.status) {\n case DeploymentStatus.Undeployed:\n return i18n.t('all.deployments.status.undeployed').toString();\n case DeploymentStatus.DataEntry:\n return i18n.t('all.deployments.status.dataEntry').toString();\n case DeploymentStatus.ApprovalPath:\n return i18n.t('all.deployments.status.approvalPath').toString();\n case DeploymentStatus.AdminApproval:\n return i18n.t('all.deployments.status.adminApproval').toString();\n case DeploymentStatus.Finished:\n return i18n.t('all.deployments.status.finished').toString();\n default:\n return `Unknown DeploymentStatus ${deployment.status}`;\n }\n}\n\nexport function StatusTitle(status: DeploymentStatus): string {\n switch (status) {\n case DeploymentStatus.Undeployed:\n return i18n.t('all.deployments.status.undeployed').toString();\n case DeploymentStatus.DataEntry:\n return i18n.t('all.deployments.status.dataEntry').toString();\n case DeploymentStatus.ApprovalPath:\n return i18n.t('all.deployments.status.approvalPath').toString();\n case DeploymentStatus.AdminApproval:\n return i18n.t('all.deployments.status.adminApproval').toString();\n case DeploymentStatus.Finished:\n return i18n.t('all.deployments.status.finished').toString();\n default:\n return `Unknown DeploymentStatus ${status}`;\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[(_vm.editable)?_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\",\"title\":_vm.$t('remove')},on:{\"click\":_vm.remove}},[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.remove)+\" \")])],1):_vm._e(),_vm._v(\" \"+_vm._s(_vm.surveyName)+\" \")],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport icons from '@/core/icons';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { defineComponent, ref, watch } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'BiaPartitionDeploymentSurvey',\n\n props: {\n survey: {\n type: Number,\n required: true,\n },\n\n editable: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const surveyName = ref('');\n\n function remove() {\n if (props.editable) {\n emit('remove', props.survey);\n }\n }\n\n watch(\n () => props.survey,\n async (value) => {\n const survey = await DatasourcesService.Bcm.Surveys.getById(value);\n surveyName.value = '';\n if (survey == null) {\n return;\n }\n\n surveyName.value = `(ID: ${survey.id}) - ${LanguageTemplate(survey, 'name').text}`;\n },\n { immediate: true },\n );\n\n return {\n surveyName,\n remove,\n\n icons: {\n remove: icons.remove,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPartitionDeploymentSurvey.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPartitionDeploymentSurvey.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaPartitionDeploymentSurvey.vue?vue&type=template&id=bf33ce50&scoped=true&\"\nimport script from \"./BiaPartitionDeploymentSurvey.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaPartitionDeploymentSurvey.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bf33ce50\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { DeploymentStatusColor, DeploymentStatusTitle, getUserStatus, getUserStatusColor } from '@/components/all/deployments';\nimport { DateTemplate } from '@/core/helpers/templates';\nimport { DateFormat } from '@/core/helpers/templates/DateTemplate';\nimport icons from '@/core/icons';\nimport { PartitionDeploymentDto } from '@/dtos';\nimport { DeploymentStatus } from '@/dtos/all';\nimport i18n from '@/i18n';\nimport router from '@/router';\nimport { BiaService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService, { PopupMessageButtonYes, PopupMessageButtonNo } from '@/services/PopupMessageService';\nimport { defineComponent, PropType, computed } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport BiaPartitionDeploymentSurvey from './BiaPartitionDeploymentSurvey.vue';\n\ninterface DeploymentUserDisplay {\n user: string;\n status: string;\n color: string;\n}\n\nexport default defineComponent({\n name: 'BiaPartitionDeployment',\n\n components: {\n BiaPartitionDeploymentSurvey,\n },\n\n props: {\n deployment: {\n type: Object as PropType,\n required: true,\n },\n\n disableBia: {\n type: Boolean,\n default: false,\n },\n\n disableRcsa: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const dueDate = computed(() => {\n if (props.deployment.dueDate == null) {\n return '';\n }\n\n return DateTemplate(props.deployment.dueDate, DateFormat.Local).text;\n });\n\n function openDeployment() {\n router.push({ name: 'bcm.deployment', params: { deploymentId: props.deployment.id.toString() } });\n }\n\n function abortDeployment() {\n PopupMessageService.SetMessage({\n title: i18n.t('confirm'),\n text: i18n.t('all.deployments.abortConfirmation', { name: props.deployment.name }),\n buttons: [\n PopupMessageButtonYes(async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n await BiaService.AbortDeployment(props.deployment.id);\n props.deployment.status = DeploymentStatus.Undeployed;\n if (props.deployment.hasBiaParameters) {\n //\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n function deployDeployment() {\n PopupMessageService.SetMessage({\n title: i18n.t('confirm'),\n text: i18n.t('all.deployments.deployConfirmation', { name: props.deployment.name }),\n buttons: [\n PopupMessageButtonYes(async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n await BiaService.DeployDeployment(props.deployment.id);\n if (dataEntryUsers.value.length > 0) {\n props.deployment.status = DeploymentStatus.DataEntry;\n } else {\n props.deployment.status = DeploymentStatus.ApprovalPath;\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n const dataEntryUsers = computed>(() => {\n const ret: Array = [];\n\n props.deployment.users.filter(i => i.order === 0).forEach(u => {\n ret.push({\n user: u.user.info,\n status: getUserStatus(u.pathStatus),\n color: getUserStatusColor(u.pathStatus),\n });\n });\n\n return ret;\n });\n\n const approvalPathUsers = computed>(() => {\n const ret: Array = [];\n\n props.deployment.users.filter(i => i.order > 0).forEach(u => {\n ret.push({\n user: u.user.info,\n status: getUserStatus(u.pathStatus),\n color: getUserStatusColor(u.pathStatus),\n });\n });\n\n return ret;\n });\n\n const status = computed(() => {\n return DeploymentStatusTitle(props.deployment);\n });\n\n const statusColor = computed(() => {\n return DeploymentStatusColor(props.deployment);\n });\n\n function editDeployment() {\n emit('edit', props.deployment);\n }\n\n function deleteDeployment() {\n emit('delete', props.deployment);\n }\n\n return {\n dueDate,\n status,\n statusColor,\n openDeployment,\n abortDeployment,\n deployDeployment,\n editDeployment,\n deleteDeployment,\n dataEntryUsers,\n approvalPathUsers,\n\n icons: {\n menu: icons.menu,\n open: icons.open,\n edit: icons.edit,\n abort: icons.abort,\n deploy: icons.deploy,\n delete: icons.delete,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPartitionDeployment.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPartitionDeployment.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaPartitionDeployment.vue?vue&type=template&id=608c01b6&scoped=true&\"\nimport script from \"./BiaPartitionDeployment.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaPartitionDeployment.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"608c01b6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VBtn,VCheckbox,VChip,VCol,VDivider,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu,VRow,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showSurveySelector)?_c('item-selector',{attrs:{\"datasource\":_vm.surveys,\"exclude\":_vm.excludedSurveys,\"select-multiple\":\"\"},on:{\"cancel\":function($event){_vm.showSurveySelector = false},\"select\":_vm.addNewSurvey}}):_vm._e(),_c('pd-popup-card',{scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancelChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")])]},proxy:true}])},[_c('base-deployment-editor',{attrs:{\"deployment\":_vm.deployment}},[_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('bcm.partitions.deployments.hasBiaParameters'),\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.editable || _vm.disableBia},model:{value:(_vm.deployment.hasBiaParameters),callback:function ($$v) {_vm.$set(_vm.deployment, \"hasBiaParameters\", $$v)},expression:\"deployment.hasBiaParameters\"}})],1),_c('v-col',{staticClass:\"shrink\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('bcm.partitions.deployments.hasRiskAssessment'),\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.editable || _vm.disableRcsa},model:{value:(_vm.deployment.hasRiskAssessment),callback:function ($$v) {_vm.$set(_vm.deployment, \"hasRiskAssessment\", $$v)},expression:\"deployment.hasRiskAssessment\"}})],1)],1),(_vm.deployment.hasBiaParameters)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('bcm.partitions.deployments.showFinancialImpacts'),\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.editable || _vm.disableBia},model:{value:(_vm.deployment.showFinancialImpacts),callback:function ($$v) {_vm.$set(_vm.deployment, \"showFinancialImpacts\", $$v)},expression:\"deployment.showFinancialImpacts\"}})],1),_c('v-col',{staticClass:\"shrink\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('bcm.partitions.deployments.showServices'),\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.editable || _vm.disableBia},model:{value:(_vm.deployment.showServices),callback:function ($$v) {_vm.$set(_vm.deployment, \"showServices\", $$v)},expression:\"deployment.showServices\"}})],1)],1):_vm._e()],1)]),_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('v-simple-table',{attrs:{\"height\":\"15rem\",\"fixed-header\":\"\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.surveys'))+\" \"),(_vm.editable)?_c('v-btn',{attrs:{\"icon\":\"\",\"right\":\"\",\"small\":\"\"},on:{\"click\":function($event){_vm.showSurveySelector = true}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.add)+\" \")])],1):_vm._e()],1)])]),_c('tbody',_vm._l((_vm.deployment.surveys),function(s){return _c('bia-partition-deployment-survey',{key:s,attrs:{\"survey\":s,\"editable\":_vm.editable},on:{\"remove\":_vm.removeSurvey}})}),1)])],1)])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport icons from '@/core/icons';\nimport { IDto, PartitionDeploymentDto, SurveyDto } from '@/dtos';\nimport { DeploymentStatus } from '@/dtos/all';\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport BiaPartitionDeploymentSurvey from './BiaPartitionDeploymentSurvey.vue';\nimport { BaseDeploymentEditor } from '@/components/all/deployments';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ItemSelector from '@/components/all/ItemSelector.vue';\n\nexport default defineComponent({\n name: 'BiaPartitionDeploymentEditor',\n\n components: {\n BaseDeploymentEditor,\n BiaPartitionDeploymentSurvey,\n PdPopupCard,\n ItemSelector,\n },\n\n props: {\n deployment: {\n type: Object as PropType,\n required: true,\n },\n\n existingSurveys: {\n type: Array as PropType>,\n default: () => [],\n },\n\n disableBia: {\n type: Boolean,\n default: false,\n },\n\n disableRcsa: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const showSurveySelector = ref(false);\n const surveys = DatasourcesService.Bcm.Surveys;\n\n const excludedSurveys = ref>([\n ...props.deployment.surveys.map(i => { return { id: i }; }),\n ...props.existingSurveys.map(i => { return { id: i }; }),\n ]);\n\n const editable = computed(() => {\n return props.deployment.status === DeploymentStatus.Undeployed;\n });\n\n function addNewSurvey(surveys: Array) {\n surveys.forEach(s => {\n props.deployment.surveys.push(s.id);\n excludedSurveys.value.push(s);\n });\n\n showSurveySelector.value = false;\n }\n\n function removeSurvey(survey: number) {\n for (let i = 0; i < props.deployment.surveys.length; ++i) {\n if (props.deployment.surveys[i] === survey) {\n props.deployment.surveys.splice(i, 1);\n break;\n }\n }\n excludedSurveys.value = excludedSurveys.value.filter(i => i.id !== survey);\n }\n\n function saveChanges() {\n emit('save');\n }\n\n function cancelChanges() {\n emit('cancel');\n }\n\n return {\n editable,\n\n saveChanges,\n cancelChanges,\n\n showSurveySelector,\n surveys,\n excludedSurveys,\n addNewSurvey,\n removeSurvey,\n\n icons: {\n add: icons.plus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPartitionDeploymentEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPartitionDeploymentEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaPartitionDeploymentEditor.vue?vue&type=template&id=43da7ca0&scoped=true&\"\nimport script from \"./BiaPartitionDeploymentEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaPartitionDeploymentEditor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"43da7ca0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VBtn,VCheckbox,VCol,VIcon,VRow,VSimpleTable})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport icons from '@/core/icons';\nimport { ApprovalPathStatus, DeploymentStatus } from '@/dtos/all';\nimport { BiaPartitionDto, PartitionDeploymentDto } from '@/dtos/bcm/bia';\nimport i18n from '@/i18n';\nimport { BiaService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService, { PopupMessageButtonNo, PopupMessageButtonYes } from '@/services/PopupMessageService';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { cloneDeep } from 'lodash';\nimport { v4 } from 'uuid';\nimport BiaPartitionDeployment from './BiaPartitionDeployment.vue';\nimport BiaPartitionDeploymentEditor from './BiaPartitionDeploymentEditor.vue';\n\nexport default defineComponent({\n name: 'BiaPartitionDeployments',\n\n components: {\n BiaPartitionDeployment,\n BiaPartitionDeploymentEditor,\n },\n\n props: {\n partition: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const deployments = ref>([]);\n\n const editingItem = ref(null);\n\n const showEditor = computed(() => {\n return editingItem.value != null;\n });\n\n const existingSurveys = computed>(() => {\n const all = deployments.value.flatMap(i => i.surveys);\n return all.filter(i => {\n if (editingItem.value == null) {\n return true;\n }\n\n return editingItem.value.surveys.every(j => j !== i);\n });\n });\n\n const disableRcsa = computed(() => {\n const other = deployments.value.find(i => {\n if (editingItem.value == null) {\n return false;\n }\n\n return i.hasRiskAssessment && i.uuid !== editingItem.value.uuid;\n });\n\n return props.partition.hasChildren || other != null;\n });\n\n const disableBia = computed(() => {\n const other = deployments.value.find(i => {\n if (editingItem.value == null) {\n return false;\n }\n\n return i.hasBiaParameters && i.uuid !== editingItem.value.uuid;\n });\n\n return props.partition.hasChildren || other != null;\n });\n\n function newDeployment() {\n editingItem.value = {\n id: 0,\n uuid: v4(),\n surveys: [],\n hasBiaParameters: false,\n hasRiskAssessment: false,\n showFinancialImpacts: true,\n showServices: true,\n partitionId: props.partition.id,\n name: 'New Deployment',\n partition: props.partition.name,\n status: DeploymentStatus.Undeployed,\n created: '',\n message: '',\n editable: true,\n approvable: false,\n rejectable: false,\n currentUserStatus: ApprovalPathStatus.Pending,\n users: [],\n };\n }\n\n async function saveChanges() {\n if (editingItem.value == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const resp = await BiaService.SaveDeployment(props.partition.id, editingItem.value);\n\n resp.uuid = v4();\n\n if (editingItem.value.id === 0) {\n deployments.value.push(resp);\n } else {\n for (let i = 0; i < deployments.value.length; ++i) {\n if (deployments.value[i].uuid === editingItem.value.uuid) {\n deployments.value.splice(i, 1, resp);\n }\n }\n }\n\n editingItem.value = null;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function cancelChanges() {\n editingItem.value = null;\n }\n\n function editDeployment(deployment: PartitionDeploymentDto) {\n editingItem.value = cloneDeep(deployment);\n }\n\n function deleteDeployment(deployment: PartitionDeploymentDto) {\n PopupMessageService.SetMessage({\n title: i18n.t('confirm'),\n text: i18n.t('all.deployments.removeConfirmation', { name: deployment.name }),\n buttons: [\n PopupMessageButtonYes(async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n await BiaService.DeleteDeployment(props.partition.id, deployment);\n for (let i = 0; i < deployments.value.length; ++i) {\n if (deployments.value[i].uuid === deployment.uuid) {\n deployments.value.splice(i, 1);\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n watch(\n () => props.partition,\n () => {\n init();\n },\n { immediate: true },\n );\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n deployments.value = [];\n deployments.value = await BiaService.GetPartitionDeployments(props.partition.id);\n\n deployments.value.forEach(d => {\n d.uuid = v4();\n });\n\n // await DatasourcesService.Bcm.Surveys.get();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n\n return {\n deployments,\n\n editingItem,\n showEditor,\n\n newDeployment,\n editDeployment,\n deleteDeployment,\n\n existingSurveys,\n\n disableRcsa,\n disableBia,\n\n saveChanges,\n cancelChanges,\n\n add: icons.plus,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPartitionDeployments.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPartitionDeployments.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaPartitionDeployments.vue?vue&type=template&id=8800d6dc&scoped=true&\"\nimport script from \"./BiaPartitionDeployments.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaPartitionDeployments.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8800d6dc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VExpansionPanels,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport { RiskSelfAssessmentType } from '@/dtos';\nimport { BiaPartitionDto } from '@/dtos/bcm/bia';\nimport i18n from '@/i18n';\nimport { BiaService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport SnackbarMessageService from '@/services/SnackbarMessageService';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport BiaPartitionDeployments from './BiaPartitionDeployments.vue';\n\nexport default defineComponent({\n name: 'BiaPartitionInfo',\n\n components: {\n BiaPartitionDeployments,\n },\n\n props: {\n partition: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n\n const riskSelfAssessmentTypes: Array = [\n {\n value: RiskSelfAssessmentType.Registry,\n text: i18n.t('bcm.bia.partition.selfAssessmentType.registry'),\n },\n {\n value: RiskSelfAssessmentType.Text,\n text: i18n.t('bcm.bia.partition.selfAssessmentType.text'),\n },\n {\n value: RiskSelfAssessmentType.Both,\n text: i18n.t('bcm.bia.partition.selfAssessmentType.both'),\n },\n ];\n\n watch(\n () => props.partition.selfAssessmentType,\n async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n await BiaService.UpdateSelfAssessmentType(props.partition);\n SnackbarMessageService.SetMessage({ text: i18n.t('saved') });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n );\n\n return {\n loading,\n riskSelfAssessmentTypes,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPartitionInfo.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPartitionInfo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaPartitionInfo.vue?vue&type=template&id=f907f908&scoped=true&\"\nimport script from \"./BiaPartitionInfo.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaPartitionInfo.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f907f908\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VCard,VCardSubtitle,VCardText,VCardTitle,VChip,VDivider,VProgressLinear,VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading)?_c('v-progress-linear',{attrs:{\"indeterminate\":\"\"}}):[(_vm.showPersonSelector)?_c('tree-item-selector',{attrs:{\"visible\":\"\",\"datasource\":_vm.datasource,\"column\":\"person\"},on:{\"select\":_vm.changePersonParent,\"cancel\":function($event){_vm.showPersonSelector = false}}}):_vm._e(),_c('pd-tree-grid',{key:_vm.refresh,attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.columns,\"options\":_vm.gridOptions,\"tree-column\":\"employeeId\",\"row-actions\":_vm.rowActions,\"height\":600,\"sort\":\"lastName\",\"sort-direction\":\"asc\"},scopedSlots:_vm._u([{key:\"editor-fields\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('bia-personnel-editor',{attrs:{\"partition-id\":_vm.partitionId,\"person\":item,\"positions\":_vm.positions}})]}}])})]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loading)?_c('div',[_vm._v(\" Loading... \")]):_c('div',[(_vm.showActionsBar)?_c('div',{staticClass:\"mt-2\"},[(_vm.showAddButton)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":_vm.addNewItem}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.add)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \")],1):_vm._e(),(!_vm.hideExpandAll)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.expandAllItems(true)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.expandAll)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('expandAll'))+\" \")],1):_vm._e(),(!_vm.hideCollapseAll)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.expandAllItems(false)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.collapseAll)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('collapseAll'))+\" \")],1):_vm._e(),_vm._t(\"grid-buttons\")],2):_vm._e(),(_vm.showEditor)?_c('pd-tree-grid-editor',{attrs:{\"editing-item\":_vm.editingItem,\"headers\":_vm._headers},on:{\"save\":_vm.saveItemChanges,\"cancel\":_vm.cancelItemChanges},scopedSlots:_vm._u([{key:\"editor-title\",fn:function(){return [_vm._t(\"editor-title\")]},proxy:true},{key:\"editor-fields\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._t(\"editor-fields\",null,{\"item\":item})]}}],null,true)}):_vm._e(),(_vm.showTranslationsEditor)?_c('pd-translations-editor',{attrs:{\"item\":_vm.editingItem,\"headers\":_vm._headers},on:{\"save\":_vm.saveItemChanges,\"cancel\":_vm.cancelItemChanges}}):_vm._e(),_c('v-simple-table',{attrs:{\"fixed-header\":\"\"}},[_c('thead',[_c('tr',[_vm._l((_vm._headers),function(h){return [(h.visible !== false)?_c('th',{key:h.id,style:({width: h.width, 'text-align': h.align})},[_vm._v(\" \"+_vm._s(h.text)+\" \")]):_vm._e()]}),(_vm.showRowActionsColumn)?_c('th',{staticStyle:{\"width\":\"2rem\"}}):_vm._e()],2)]),_c('tbody',[_vm._l((_vm._gridItems),function(item){return [(item.visible)?_c('tr',{key:item.uuid,class:{selected: (_vm._selectedItem != null && _vm._selectedItem.uuid === item.uuid)},attrs:{\"data-key\":item.uuid},on:{\"click\":function($event){return _vm.changeSelection(item)},\"dblclick\":function($event){return _vm.dblclick(item)}}},[_vm._l((_vm.headers),function(h,index){return _vm._t('item-' + h.id,[(h.visible !== false)?_c(h.component || _vm.DefaultComponent,{key:h.id,tag:\"component\",staticClass:\"column\",attrs:{\"value\":item.item[h.value],\"item\":item.item,\"text\":null,\"header\":h},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [(index === 0)?[(item.depth > 0)?_vm._l((item.depth),function(_){return _c('span',{key:_,staticStyle:{\"width\":\"1rem\"}})}):_vm._e(),_c('span',{staticStyle:{\"width\":\"1.5rem\"}},[(item.hasChildren)?[_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.expand(item, !item.open)},\"dblclick\":function($event){$event.stopPropagation();}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[(item.open)?[_vm._v(\" \"+_vm._s(_vm.icons.expanded)+\" \")]:[_vm._v(\" \"+_vm._s(_vm.icons.collapsed)+\" \")]],2)],1)]:_vm._e()],2)]:_vm._e()]},proxy:true}],null,true)}):_vm._e()])}),(_vm.showRowActionsColumn)?_c('td',[_c('pd-tree-grid-actions-column',{attrs:{\"actions\":_vm._rowActions,\"item\":item}})],1):_vm._e()],2):_vm._e()]})],2)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup-card',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._t(\"editor-title\",[_vm._v(\" \"+_vm._s(_vm.$t('edit.item'))+\" \")])]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancelChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"disabled\":_vm.hasErrors,\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")])]},proxy:true}],null,true)},[_vm._t(\"editor-fields\",[_c('table',{staticClass:\"editor-table\"},_vm._l((_vm._headers),function(h){return _c('tr',{key:h.id},[_c('td',[_vm._v(\" \"+_vm._s(h.text)+\" \")]),(h.editorVisible == undefined || h.editorVisible !== false)?_c(h.component || _vm.defaultEditComponent,{tag:\"component\",attrs:{\"item\":_vm._item,\"header\":h,\"text\":null,\"edit-mode\":\"\"},model:{value:(_vm._item[h.value]),callback:function ($$v) {_vm.$set(_vm._item, h.value, $$v)},expression:\"_item[h.value]\"}}):_vm._e()],1)}),0)],{\"item\":_vm._item})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { IDto } from '@/dtos';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { cloneDeep } from 'lodash';\nimport { PdTextColumn } from '../PdDataTable/columns';\nimport PdPopupCard from '../PdPopupCard.vue';\nimport { PdTreeGridHeader } from '.';\n\nexport default defineComponent({\n name: 'PdTreeGridEditor',\n\n components: {\n PdPopupCard,\n },\n\n props: {\n editingItem: {\n type: Object as PropType,\n required: true,\n },\n\n headers: {\n type: Array as PropType>>,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const defaultEditComponent = PdTextColumn;\n const _item = ref(cloneDeep(props.editingItem));\n const _headers = ref(cloneDeep(props.headers));\n\n for (let i = 0; i < _headers.value.length; ++i) {\n if (_headers.value[i].editorVisible != null) {\n const val = _headers.value[i].editorVisible;\n let vis = val;\n if (typeof (val) === 'function') {\n vis = val();\n }\n\n if (vis === false) {\n _headers.value.splice(i, 1);\n --i;\n }\n }\n }\n\n watch(\n () => props.editingItem,\n (newValue) => {\n _item.value = cloneDeep(newValue);\n },\n );\n\n const hasErrors = ref(false);\n\n function saveChanges() {\n validateInput();\n emit('save', _item.value);\n }\n\n function cancelChanges() {\n emit('cancel');\n }\n\n function validateInput() {\n //\n }\n\n return {\n defaultEditComponent,\n _item,\n _headers,\n hasErrors,\n\n saveChanges,\n cancelChanges,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTreeGridEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTreeGridEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdTreeGridEditor.vue?vue&type=template&id=5d7a3092&scoped=true&\"\nimport script from \"./PdTreeGridEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdTreeGridEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PdTreeGridEditor.vue?vue&type=style&index=0&id=5d7a3092&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d7a3092\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup-card',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('table.translations.title'))+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancelChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"disabled\":_vm.hasErrors,\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")])]},proxy:true}])},[_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('language')))]),_vm._l((_vm._headers),function(h){return _c('th',{key:h.id},[_vm._v(\" \"+_vm._s(h.text)+\" \")])})],2),_vm._l((_vm.languages),function(l){return _c('pd-translation-field-editor',{key:l.languageId,attrs:{\"value\":_vm._item.translations[l.language],\"headers\":_vm._headers,\"language\":l.language}})})],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.language)+\" \")]),_vm._l((_vm.headers),function(h){return _c('td',{key:h.id,style:({width: h.translationWidth + 'px'})},[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"auto\"},model:{value:( _vm.value[h.id]),callback:function ($$v) {_vm.$set(_vm.value, h.id, $$v)},expression:\" value[h.id]\"}})],1)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { IDto, ITranslatableDto } from '@/dtos/IDto';\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport { PdDataTableHeader } from './PdDataTable';\n\nexport default defineComponent({\n name: 'PdTranslationFieldEditor',\n\n components: {},\n\n props: {\n value: {\n type: Object as PropType, // translation\n required: true,\n },\n\n headers: {\n type: Array as PropType>>>,\n required: true,\n },\n\n language: {\n type: String,\n required: true,\n },\n },\n\n setup() {\n return {};\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTranslationFieldEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTranslationFieldEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdTranslationFieldEditor.vue?vue&type=template&id=f4b9c7be&scoped=true&\"\nimport script from \"./PdTranslationFieldEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdTranslationFieldEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PdTranslationFieldEditor.vue?vue&type=style&index=0&id=f4b9c7be&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f4b9c7be\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { IDto, ITranslatableDto } from '@/dtos/IDto';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { ApplicationModule } from '@/store';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { cloneDeep } from 'lodash';\nimport { PdDataTableHeader } from './PdDataTable';\nimport PdPopupCard from './PdPopupCard.vue';\nimport PdTranslationFieldEditor from './PdTranslationFieldEditor.vue';\n\nexport default defineComponent({\n name: 'PdTranslationsEditor',\n\n components: { PdPopupCard, PdTranslationFieldEditor },\n\n props: {\n item: {\n type: Object as PropType>,\n required: true,\n },\n\n headers: {\n type: Array as PropType>>>,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const hasErrors = ref(false);\n\n const _item = ref(cloneDeep(props.item));\n const _headers = ref>>>([]);\n\n const entity = ApplicationModule.Entity;\n if (entity == null) {\n PopupMessageService.SetMessage({ title: 'Error', text: 'Entity is null... :(' });\n return {};\n }\n\n const languages = entity.languages;\n\n watch(\n () => props.item,\n (newValue) => {\n _item.value = cloneDeep(newValue);\n },\n );\n\n watch(\n () => props.headers,\n (newValue) => {\n const h = cloneDeep(newValue);\n _headers.value = h.filter(i => i.translatable === true);\n console.log(newValue);\n },\n { immediate: true },\n );\n\n for (let i = 0; i < languages.length; ++i) {\n if (_item.value.translations[languages[i].language] == null) {\n _item.value.translations[languages[i].language] = { id: 0 };\n }\n }\n\n function saveChanges() {\n emit('save', _item.value);\n }\n\n function cancelChanges() {\n emit('cancel');\n }\n\n return {\n hasErrors,\n\n saveChanges,\n cancelChanges,\n\n languages,\n _item,\n _headers,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTranslationsEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTranslationsEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdTranslationsEditor.vue?vue&type=template&id=28550bd7&scoped=true&\"\nimport script from \"./PdTranslationsEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdTranslationsEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PdTranslationsEditor.vue?vue&type=style&index=0&id=28550bd7&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"28550bd7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\",\"close-on-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.mdiDotsVertical)+\" \")])],1)]}}])},[_c('v-list',{attrs:{\"dense\":\"\"}},[_vm._l((_vm.actions),function(action){return [(action.text==='divider')?_c('v-divider',{key:action.id}):_c('v-list-item',{key:action.id,attrs:{\"disabled\":action.disabled != null && action.disabled(_vm.item.item) === true},on:{\"click\":function($event){return _vm.rowActionClicked(action)}}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\",\"color\":action.color,\"disabled\":action.disabled != null && action.disabled(_vm.item.item) === true}},[_vm._v(\" \"+_vm._s(action.icon)+\" \")])],1),_c('v-list-item-title',[_c('span',{class:((action.color) + \"--text\")},[_vm._v(\" \"+_vm._s(action.text)+\" \")])])],1)]})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport { mdiDotsVertical } from '@mdi/js';\nimport { GridItem, PdTreeGridRowAction } from '.';\n\nexport default defineComponent({\n name: 'PdTreeGridActionsColumn',\n\n props: {\n actions: {\n type: Array as PropType>,\n required: true,\n },\n\n item: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n function rowActionClicked(rowAction: PdTreeGridRowAction) {\n rowAction.action(props.item);\n emit('action-click', { action: rowAction, gridItem: props.item });\n };\n\n return {\n rowActionClicked,\n mdiDotsVertical,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTreeGridActionsColumn.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTreeGridActionsColumn.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdTreeGridActionsColumn.vue?vue&type=template&id=7ed75936&scoped=true&\"\nimport script from \"./PdTreeGridActionsColumn.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdTreeGridActionsColumn.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ed75936\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VDivider,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, nextTick, PropType, ref, watch } from '@vue/composition-api';\nimport { IDataSource } from '@/core/datasource';\nimport { PdDataTableAction } from '../PdDataTable';\nimport PdPopupCard from '../PdPopupCard.vue';\nimport icons from '@/core/icons';\nimport { IDto } from '@/dtos';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport PdTreeGridEditor from './PdTreeGridEditor.vue';\nimport PdTranslationsEditor from '../PdTranslationsEditor.vue';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport { SortDirection } from '@/core/helpers/sort';\nimport { v4 } from 'uuid';\nimport { PdTextColumn } from '../PdDataTable/columns';\nimport { cloneDeep } from 'lodash';\nimport PdTreeGridActionsColumn from './PdTreeGridActionsColumn.vue';\nimport { TranslateResult } from 'vue-i18n';\nimport SnackbarMessageService from '@/services/SnackbarMessageService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { ITranslatableDto } from '@/dtos/IDto';\nimport { ApplicationModule } from '@/store';\nimport vuetify from '@/plugins/vuetify';\nimport { GridItem, IHierarchicalDto, PdTreeGridHeader, PdTreeGridOptions, PdTreeGridRowAction } from '.';\n\nexport default defineComponent({\n name: 'PdTreeGrid',\n\n components: {\n PdPopupCard,\n PdTreeGridEditor,\n PdTranslationsEditor,\n PdTreeGridActionsColumn,\n },\n\n props: {\n datasource: {\n type: Object as PropType>,\n required: true,\n },\n\n headers: {\n type: Array as PropType>>,\n required: true,\n },\n\n options: {\n type: Object as PropType>,\n required: false,\n default: () => {\n return {} as PdTreeGridOptions;\n },\n },\n\n selectedItem: {\n type: Object as PropType,\n required: false,\n default: null,\n },\n\n hideExpandAll: {\n type: Boolean,\n default: false,\n },\n\n hideCollapseAll: {\n type: Boolean,\n default: false,\n },\n\n showButtons: {\n type: Boolean,\n default: false,\n },\n\n sort: {\n type: String,\n default: null,\n },\n\n sortDirection: {\n type: String as PropType,\n default: SortDirection.Original,\n },\n\n gridActions: {\n type: Array as PropType>,\n required: false,\n },\n\n rowActions: {\n type: Array as PropType>,\n required: false,\n defaultValue: [],\n },\n },\n\n setup(props, { emit }) {\n const loading = ref(true);\n\n const showEditor = ref(false);\n const showTranslationsEditor = ref(false);\n\n let data: Array = [];\n const _gridItems = ref>([]);\n\n const _sort = ref(props.sort);\n const _sortDirection = ref(props.sortDirection);\n\n const _selectedItem = ref(null);\n\n let addChildRecordTo: string | null = null;\n\n const DefaultComponent = PdTextColumn;\n\n const showRowActionsColumn = computed(() => {\n return _rowActions.value.length > 0;\n });\n\n const showAddButton = computed(() => {\n return props.options.editable === true || (\n props.options.editable != null &&\n typeof (props.options.editable) === 'object' &&\n props.options.editable.add === true);\n });\n\n const showActionsBar = computed(() => {\n return showAddButton.value ||\n !props.hideExpandAll ||\n !props.hideCollapseAll ||\n props.showButtons;\n });\n\n const _rowActions = computed>(() => {\n const actions: Array = [];\n\n if (props.options.editable === true ||\n (\n props.options.editable != null &&\n typeof (props.options.editable) === 'object' &&\n props.options.editable.edit === true\n )\n ) {\n actions.push({\n id: v4(),\n text: 'divider',\n action: () => false,\n });\n\n actions.push({\n id: 'editItem',\n text: i18n.t('edit.edit'),\n action: editItem,\n icon: icons.edit,\n disabled: (typeof (props.options.editable) === 'object') ? props.options.editable.disableRowEdit : undefined,\n });\n\n if (props.headers.find(i => i.translatable === true)) {\n actions.push({\n id: 'translateItem',\n text: i18n.t('treeGrid.editTranslations'),\n action: editTranslations,\n icon: icons.translations,\n });\n }\n\n actions.push({\n id: v4(),\n text: 'divider',\n action: () => false,\n });\n\n actions.push({\n id: 'addChild',\n text: i18n.t('treeGrid.addChild'),\n action: addChildRecord,\n icon: icons.addChildRecord,\n });\n }\n\n if (props.rowActions != null && props.rowActions.length > 0) {\n actions.push({\n id: v4(),\n text: 'divider',\n action: () => false,\n });\n\n props.rowActions?.forEach(a => {\n actions.push(a);\n });\n }\n\n if (props.options.editable === true ||\n (\n props.options.editable != null &&\n typeof (props.options.editable) === 'object' &&\n props.options.editable.delete === true\n )\n ) {\n actions.push({\n id: v4(),\n text: 'divider',\n action: () => false,\n });\n\n actions.push({\n id: 'removeItem',\n text: i18n.t('table.remove'),\n icon: icons.remove,\n color: 'error',\n action: removeItem,\n disabled: (typeof (props.options.editable) === 'object') ? props.options.editable.disableRowDelete : undefined,\n });\n }\n\n actions.push({\n id: v4(),\n text: 'divider',\n action: () => false,\n });\n\n return actions;\n });\n\n watch(\n () => props.sort,\n (newValue) => {\n _sort.value = newValue;\n refreshGridData();\n },\n );\n\n watch(\n () => props.sortDirection,\n (newValue) => {\n _sortDirection.value = newValue;\n refreshGridData();\n },\n );\n\n watch(\n () => props.selectedItem,\n (newValue) => {\n for (let i = 0; i < _gridItems.value.length; ++i) {\n if (_gridItems.value[i].item.id === newValue.id) {\n _selectedItem.value = _gridItems.value[i];\n }\n }\n },\n );\n\n const editingItem = ref({\n id: 0,\n parentId: null,\n });\n\n watch(\n () => props.datasource,\n () => {\n init();\n },\n );\n\n const _headers = ref>>([]);\n\n watch(\n () => props.headers,\n (headers) => {\n _headers.value = [];\n headers.forEach(h => {\n _headers.value.push(h);\n });\n },\n { immediate: true },\n );\n\n async function saveItemChanges(item: IHierarchicalDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n let response: IHierarchicalDto;\n if (item.id === 0) {\n response = await props.datasource.create(item);\n\n var added: GridItem = {\n item: cloneDeep(response),\n visible: true,\n open: true,\n hasChildren: false,\n parentUuid: null,\n depth: 0,\n uuid: v4(),\n };\n\n if (item.parentId == null) {\n _gridItems.value.unshift(added);\n } else {\n added.parentUuid = addChildRecordTo;\n for (let i = 0; i < _gridItems.value.length; ++i) {\n if (_gridItems.value[i].uuid === added.parentUuid) {\n added.depth = _gridItems.value[i].depth + 1;\n _gridItems.value.splice(i + 1, 0, added);\n _gridItems.value[i].hasChildren = true;\n expand(_gridItems.value[i], true);\n break;\n }\n }\n\n addChildRecordTo = null;\n }\n\n _selectedItem.value = added;\n } else {\n response = await props.datasource.update(item);\n\n for (let i = 0; i < _gridItems.value.length; ++i) {\n if (_gridItems.value[i].item.id === item.id) {\n _gridItems.value[i].item = cloneDeep(response);\n _gridItems.value[i].uuid = v4();\n _selectedItem.value = _gridItems.value[i];\n break;\n }\n }\n }\n\n SnackbarMessageService.SetMessage({ text: i18n.t('saved').toString() });\n\n editingItem.value = null;\n showEditor.value = false;\n showTranslationsEditor.value = false;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function cancelItemChanges() {\n editingItem.value = null;\n showEditor.value = false;\n showTranslationsEditor.value = false;\n }\n\n function addChildRecord(item: GridItem) {\n addChildRecordTo = item.uuid;\n addNewItem(item.item.id);\n }\n\n function editItem(item: GridItem) {\n if (props.options.editable === true ||\n (\n typeof (props.options.editable) === 'object' &&\n props.options.editable.edit === true\n )\n ) {\n nextTick(() => vuetify.framework.goTo(document.querySelector(`[data-key=\"${item.uuid}\"]`) as HTMLElement));\n editingItem.value = item.item;\n showEditor.value = true;\n }\n }\n\n function removeItem(item: GridItem) {\n _selectedItem.value = item;\n\n let editRemoveMessage: TranslateResult = i18n.t('edit.removeMessage');\n\n if (props.options.itemTemplate != null) {\n editRemoveMessage = i18n.t('edit.removeItemMessage', { item: props.options.itemTemplate(item.item) });\n }\n\n PopupMessageService.SetMessage({\n title: i18n.t('confirmation'),\n text: editRemoveMessage.toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n close: () => true,\n callback: async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('deleting').toString());\n try {\n await props.datasource.delete(item.item);\n let parent = null;\n let itemFound = false;\n\n for (let i = 0; i < _gridItems.value.length; ++i) {\n if (item.parentUuid === _gridItems.value[i].uuid) {\n parent = _gridItems.value[i];\n }\n\n if (_gridItems.value[i].uuid === item.uuid) {\n _gridItems.value.splice(i, 1);\n itemFound = true;\n }\n\n if (parent != null && itemFound === true) {\n break;\n }\n }\n\n // check if parent has more children\n if (parent) {\n checkForChildren(parent);\n }\n\n SnackbarMessageService.SetMessage({ text: i18n.t('saved').toString() });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n }\n\n function checkForChildren(parent: GridItem) {\n for (const item of _gridItems.value) {\n if (item.parentUuid === parent.uuid) {\n parent.hasChildren = true;\n return;\n }\n }\n parent.hasChildren = false;\n }\n\n function editTranslations(item: GridItem) {\n if (props.options.editable === true ||\n (\n typeof (props.options.editable) === 'object' &&\n props.options.editable.edit === true\n )\n ) {\n editingItem.value = item.item;\n showTranslationsEditor.value = true;\n }\n }\n\n function refreshGridData() {\n _gridItems.value = [];\n if (data != null) {\n // null = 0\n const children = new Map>();\n const parents = new Map(); // id to uuid\n\n data.forEach(s => {\n const parentId = s.parentId || 0;\n\n if (!children.has(parentId)) {\n children.set(parentId, []);\n }\n\n children.get(parentId)?.push(s);\n });\n\n const grid: Array = [];\n\n const recurse = function (parent = 0, depth = 0) {\n const c = children.get(parent);\n if (c == null) {\n return;\n }\n\n // sort\n if (_sort.value && _sortDirection.value !== SortDirection.Original) {\n const sortColumn = _headers.value.find(i => i.id === _sort.value);\n\n if (sortColumn != null) {\n c.sort((a, b) => {\n if (sortColumn.sort != null) {\n if (_sortDirection.value === SortDirection.Ascending) {\n return sortColumn.sort(a, b);\n } else {\n return sortColumn.sort(b, a);\n }\n } else {\n let aText = a[sortColumn.id] == null ? '' : a[sortColumn.id] as string;\n const bText = a[sortColumn.id] == null ? '' : b[sortColumn.id] as string;\n\n aText = aText.toLowerCase();\n b.text = bText.toLowerCase();\n\n if (_sortDirection.value === SortDirection.Ascending) {\n return aText.localeCompare(bText);\n } else {\n return bText.localeCompare(aText);\n }\n }\n });\n }\n } // end sort\n\n c.forEach(i => {\n const add: GridItem = {\n item: i,\n visible: true,\n open: true,\n parentUuid: null,\n hasChildren: (children.get(i.id)?.length || 0) > 0,\n depth: depth,\n uuid: v4(),\n };\n\n parents.set(i.id, add.uuid);\n\n if (i.parentId != null) {\n add.parentUuid = parents.get(i.parentId) || null;\n }\n\n grid.push(add);\n\n recurse(i.id, depth + 1);\n });\n };\n\n recurse();\n\n _gridItems.value = grid;\n }\n }\n\n function changeSelection(item: GridItem) {\n for (let i = 0; i < _gridItems.value.length; ++i) {\n if (_gridItems.value[i].uuid === item.uuid) {\n _selectedItem.value = item;\n emit('update:selectedItem', item.item);\n return;\n }\n }\n }\n\n function expandAllItems(status: boolean) {\n for (let i = 0; i < _gridItems.value.length; ++i) {\n const item = _gridItems.value[i];\n if (item.depth === 0) {\n item.open = status;\n } else {\n item.open = status;\n item.visible = status;\n }\n }\n }\n\n function expand(item: GridItem, status: boolean): void {\n item.open = status;\n\n _gridItems.value\n .filter(i => i.parentUuid === item.uuid)\n .forEach(i => {\n if (status === false && i.hasChildren) {\n expand(i, status);\n }\n i.visible = status;\n });\n }\n\n function addNewItem(parentId: number | null = null) {\n let item: IHierarchicalDto;\n\n if (parentId != null && typeof (parentId) !== 'number') {\n parentId = null;\n }\n\n if (props.options.defaultNew != null) {\n item = cloneDeep(props.options.defaultNew);\n item.id = 0;\n item.parentId = parentId;\n item.uuid = v4();\n } else {\n item = {\n id: 0,\n parentId: parentId,\n uuid: v4(),\n };\n\n props.headers.forEach((h) => {\n if (h.translatable === true) {\n if (item.translations == null) {\n item.translations = {\n [ApplicationModule.Language]: {},\n };\n }\n\n if (h.translationValue != null) {\n (item as unknown as ITranslatableDto).translations[ApplicationModule.Language][h.translationValue] = h.defaultValue || '';\n }\n } else {\n item[h.value] = cloneDeep(h.defaultValue ?? '');\n }\n });\n }\n\n item.parentId = parentId;\n editingItem.value = item;\n showEditor.value = true;\n }\n\n function dblclick(item: GridItem) {\n emit('dblclick', item.item);\n editItem(item);\n }\n\n async function init() {\n try {\n data = await props.datasource.data() || [];\n refreshGridData();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n }\n };\n\n init();\n\n return {\n DefaultComponent,\n\n loading,\n _headers,\n _gridItems,\n\n showActionsBar,\n showAddButton,\n\n showRowActionsColumn,\n _rowActions,\n\n showEditor,\n showTranslationsEditor,\n\n saveItemChanges,\n cancelItemChanges,\n\n addNewItem,\n editItem,\n editingItem,\n\n _selectedItem,\n changeSelection,\n\n expand,\n expandAllItems,\n\n dblclick,\n\n icons: {\n add: icons.plus,\n remove: icons.delete,\n\n expanded: icons.expanded,\n collapsed: icons.collapsed,\n expandAll: icons.expandAll,\n collapseAll: icons.collapseAll,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTreeGrid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTreeGrid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdTreeGrid.vue?vue&type=template&id=57926046&scoped=true&\"\nimport script from \"./PdTreeGrid.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdTreeGrid.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PdTreeGrid.vue?vue&type=style&index=0&id=57926046&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"57926046\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VBtn,VIcon,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',{attrs:{\"align\":_vm.header.align}},[_c('div',{staticStyle:{\"width\":\"28px\"}},[_c('v-checkbox',{staticClass:\"ma-0 pa-0\",attrs:{\"input-value\":_vm.value,\"true-value\":true,\"false-value\":false,\"readonly\":!_vm.editMode,\"disabled\":!_vm.editMode,\"dense\":\"\",\"hide-details\":\"auto\"},on:{\"change\":_vm.change}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { PdColumnProps } from './PdColumnProps';\n\nimport i18n from '@/i18n';\n\nexport default defineComponent({\n name: 'PdColumnCheckbox',\n props: {\n ...PdColumnProps,\n },\n setup(props, { emit }) {\n const visibleText = ref('');\n const title = ref('');\n\n if (!props.editMode) {\n if (props.text == null) {\n visibleText.value = '';\n } else if (typeof props.text === 'object') {\n visibleText.value = props.text.text;\n title.value = props.text.tooltip || '';\n } else {\n visibleText.value = props.text ? i18n.t('true').toString() : i18n.t('false').toString();\n }\n }\n\n function change(value: unknown) {\n emit('input', value);\n }\n\n return {\n visibleText,\n title,\n change,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnCheckbox.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdColumnCheckbox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdColumnCheckbox.vue?vue&type=template&id=f2d4d24e&scoped=true&\"\nimport script from \"./PdColumnCheckbox.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdColumnCheckbox.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f2d4d24e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\ninstallComponents(component, {VCheckbox})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showEmployeeSelector)?_c('item-selector',{attrs:{\"datasource\":_vm.employeesDatasource,\"headers\":_vm.employeesHeaders},on:{\"select\":_vm.addEmployee,\"cancel\":_vm.cancelNewEmployee}}):_vm._e(),_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.personnel.position'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.positions,\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.personnel.positionPlaceholder')},model:{value:(_vm.person.positionId),callback:function ($$v) {_vm.$set(_vm.person, \"positionId\", $$v)},expression:\"person.positionId\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.personnel.positionDescription'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.personnel.positionDescription')},model:{value:(_vm.person.positionDescription),callback:function ($$v) {_vm.$set(_vm.person, \"positionDescription\", $$v)},expression:\"person.positionDescription\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.personnel.recoveryResponsible'))+\" \")]),_c('td',[_c('v-simple-checkbox',{directives:[{name:\"ripple\",rawName:\"v-ripple\"}],attrs:{\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.person.recoveryResponsible),callback:function ($$v) {_vm.$set(_vm.person, \"recoveryResponsible\", $$v)},expression:\"person.recoveryResponsible\"}})],1)]),_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"center\"}},[_c('v-col',[_c('v-divider')],1),_c('v-col',{staticClass:\"text-center shrink\"},[_c('span',{staticStyle:{\"white-space\":\"nowrap\"}},[_vm._v(\" Employee Details \")])]),_c('v-col',[_c('v-divider')],1)],1)],1)]),(!_vm.person.allowEditing)?_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('v-alert',{attrs:{\"border\":\"left\",\"dense\":\"\",\"text\":\"\",\"icon\":_vm.icons.warning}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.personnel.multiplePartitionsWarning'))+\" \")])],1)]):_vm._e(),(_vm.isNew)?_c('tr',[_c('td',[_c('v-radio-group',{attrs:{\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.selectionType),callback:function ($$v) {_vm.selectionType=$$v},expression:\"selectionType\"}},[_c('v-radio',{attrs:{\"label\":\"Add New\",\"value\":1}}),_c('v-radio',{attrs:{\"label\":\"Select from list\",\"value\":2}})],1)],1)]):_vm._e(),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.personnel.employeeId'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"readonly\":_vm.selectionType === 2 || !_vm.person.allowEditing,\"disabled\":_vm.selectionType === 2 || !_vm.person.allowEditing,\"placeholder\":_vm.$t('bcm.partitions.deployments.personnel.employeeIdPlaceholder')},model:{value:(_vm.person.employeeId),callback:function ($$v) {_vm.$set(_vm.person, \"employeeId\", $$v)},expression:\"person.employeeId\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.personnel.lastName'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"readonly\":_vm.selectionType === 2 || !_vm.person.allowEditing,\"disabled\":_vm.selectionType === 2 || !_vm.person.allowEditing,\"placeholder\":_vm.$t('bcm.partitions.deployments.personnel.lastNamePlaceholder')},model:{value:(_vm.person.lastName),callback:function ($$v) {_vm.$set(_vm.person, \"lastName\", $$v)},expression:\"person.lastName\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.personnel.firstName'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"readonly\":_vm.selectionType === 2 || !_vm.person.allowEditing,\"disabled\":_vm.selectionType === 2 || !_vm.person.allowEditing,\"placeholder\":_vm.$t('bcm.partitions.deployments.personnel.firstNamePlaceholder')},model:{value:(_vm.person.firstName),callback:function ($$v) {_vm.$set(_vm.person, \"firstName\", $$v)},expression:\"person.firstName\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.personnel.email'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"readonly\":_vm.selectionType === 2 || !_vm.person.allowEditing,\"disabled\":_vm.selectionType === 2 || !_vm.person.allowEditing,\"placeholder\":_vm.$t('bcm.partitions.deployments.personnel.emailPlaceholder')},model:{value:(_vm.person.email),callback:function ($$v) {_vm.$set(_vm.person, \"email\", $$v)},expression:\"person.email\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.personnel.phone1'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"readonly\":_vm.selectionType === 2 || !_vm.person.allowEditing,\"disabled\":_vm.selectionType === 2 || !_vm.person.allowEditing,\"placeholder\":_vm.$t('bcm.partitions.deployments.personnel.phone1Placeholder')},model:{value:(_vm.person.phone1),callback:function ($$v) {_vm.$set(_vm.person, \"phone1\", $$v)},expression:\"person.phone1\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.personnel.phone2'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"readonly\":_vm.selectionType === 2 || !_vm.person.allowEditing,\"disabled\":_vm.selectionType === 2 || !_vm.person.allowEditing,\"placeholder\":_vm.$t('bcm.partitions.deployments.personnel.phone2Placeholder')},model:{value:(_vm.person.phone2),callback:function ($$v) {_vm.$set(_vm.person, \"phone2\", $$v)},expression:\"person.phone2\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.personnel.phone3'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"readonly\":_vm.selectionType === 2 || !_vm.person.allowEditing,\"disabled\":_vm.selectionType === 2 || !_vm.person.allowEditing,\"placeholder\":_vm.$t('bcm.partitions.deployments.personnel.phone3Placeholder')},model:{value:(_vm.person.phone3),callback:function ($$v) {_vm.$set(_vm.person, \"phone3\", $$v)},expression:\"person.phone3\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.personnel.external'))+\" \")]),_c('td',[_c('v-simple-checkbox',{directives:[{name:\"ripple\",rawName:\"v-ripple\"}],attrs:{\"dense\":\"\",\"hide-details\":\"\",\"readonly\":_vm.selectionType === 2 || !_vm.person.allowEditing,\"disabled\":_vm.selectionType === 2 || !_vm.person.allowEditing},model:{value:(_vm.person.external),callback:function ($$v) {_vm.$set(_vm.person, \"external\", $$v)},expression:\"person.external\"}})],1)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport { PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { ISelectItem } from '@/core';\nimport { ApiDataSource } from '@/core/datasource';\nimport icons from '@/core/icons';\nimport { EmployeeDto, IDto, PartitionPersonnelDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport { ApplicationModule } from '@/store';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'BiaPersonnelEditor',\n\n components: {\n ItemSelector,\n },\n\n props: {\n partitionId: {\n type: Number,\n required: true,\n },\n\n person: {\n type: Object as PropType,\n required: true,\n },\n\n positions: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props) {\n const entityId = ApplicationModule.Entity?.id;\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const selectionType = ref(1);\n const showEmployeeSelector = ref(false);\n const employeesHeaders: Array> = [\n {\n id: 'employeeId',\n value: 'employeeId',\n text: i18n.t('bcm.partitions.deployments.personnel.employeeId').toString(),\n },\n {\n id: 'lastName',\n value: 'lastName',\n text: i18n.t('bcm.partitions.deployments.personnel.lastName').toString(),\n },\n {\n id: 'firstName',\n value: 'firstName',\n text: i18n.t('bcm.partitions.deployments.personnel.firstName').toString(),\n },\n {\n id: 'email',\n value: 'email',\n text: i18n.t('bcm.partitions.deployments.personnel.email').toString(),\n },\n ];\n\n const isNew = computed(() => {\n return props.person.id === 0;\n });\n\n const employeesDatasource = new ApiDataSource({ api: `/masterplans/${entityId}/bc/bia/Partitions/${props.partitionId}/Personnel/AvailableEmployees` });\n\n watch(\n selectionType,\n (value) => {\n if (isNew.value === false) {\n return;\n }\n\n props.person.employeeId = '';\n props.person.lastName = '';\n props.person.firstName = '';\n props.person.email = '';\n props.person.phone1 = '';\n props.person.phone2 = '';\n props.person.phone3 = '';\n props.person.external = false;\n\n if (value === 2) {\n showEmployeeSelector.value = true;\n }\n },\n );\n\n function addEmployee(employee: EmployeeDto | null) {\n if (employee == null) {\n return;\n }\n\n props.person.employeeId = employee.employeeId;\n props.person.lastName = employee.lastName;\n props.person.firstName = employee.firstName;\n props.person.email = employee.email;\n props.person.phone1 = employee.phone1;\n props.person.phone2 = employee.phone2;\n props.person.phone3 = employee.phone3;\n props.person.external = employee.external;\n\n showEmployeeSelector.value = false;\n }\n\n function cancelNewEmployee() {\n selectionType.value = 1;\n showEmployeeSelector.value = false;\n }\n\n return {\n isNew,\n selectionType,\n showEmployeeSelector,\n employeesHeaders,\n addEmployee,\n cancelNewEmployee,\n employeesDatasource,\n icons: {\n warning: icons.attention,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPersonnelEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPersonnelEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaPersonnelEditor.vue?vue&type=template&id=6d8a379a&scoped=true&\"\nimport script from \"./BiaPersonnelEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaPersonnelEditor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6d8a379a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VCol,VDivider,VRadio,VRadioGroup,VRow,VSelect,VSimpleCheckbox,VTextField})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Ripple from 'vuetify/lib/directives/ripple'\ninstallDirectives(component, {Ripple})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PartitionPersonnelDto } from '@/dtos';\nimport { PdTreeGrid, PdTreeGridHeader, PdTreeGridOptions, PdTreeGridRowAction } from '@/components/core/PdTreeGrid';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { ApiDataSource } from '@/core/datasource';\nimport { ApplicationModule } from '@/store';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { ISelectItem } from '@/core';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { PdDropDownColumn } from '@/components/core/PdDataTable/columns';\nimport PdColumnCheckbox from '@/components/core/PdDataTable/columns/PdColumnCheckbox.vue';\nimport BiaPersonnelEditor from './BiaPersonnelEditor.vue';\nimport icons from '@/core/icons';\nimport { v4 } from 'uuid';\nimport { BiaService } from '@/services/bcm';\nimport TreeItemSelector from '@/components/all/TreeItemSelector.vue';\n\nexport default defineComponent({\n name: 'BiaPersonnel',\n\n components: {\n PdTreeGrid,\n BiaPersonnelEditor,\n TreeItemSelector,\n },\n\n props: {\n partitionId: {\n type: Number,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n const positions = ref>([]);\n\n const entityId = ApplicationModule.Entity?.id;\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const datasource = ref>(new ApiDataSource({ api: `/masterplans/${entityId}/bc/bia/Partitions/${[props.partitionId]}/Personnel` }));\n\n const gridOptions: PdTreeGridOptions = {\n editable: {\n add: !props.readonly,\n edit: !props.readonly,\n delete: !props.readonly,\n },\n };\n\n const showPersonSelector = ref(false);\n const personToChangeParent = ref(null);\n const refresh = ref(v4());\n\n const rowActions: Array = props.readonly ? [] : [\n {\n id: 'changeParent',\n text: i18n.t('bcm.partitions.deployments.personnel.changeParent').toString(),\n icon: icons.move,\n action: (gridItem) => {\n const person = gridItem.item as PartitionPersonnelDto;\n personToChangeParent.value = person;\n showPersonSelector.value = true;\n\n return Promise.resolve(null);\n },\n },\n ];\n\n const columns: Array> = [\n {\n id: 'positionId',\n text: i18n.t('bcm.partitions.deployments.personnel.position').toString(),\n value: 'positionId',\n defaultValue: 0,\n width: '15rem',\n component: PdDropDownColumn,\n parameters: { items: () => positions.value },\n },\n {\n id: 'lastName',\n text: i18n.t('bcm.partitions.deployments.personnel.lastName').toString(),\n value: 'lastName',\n defaultValue: '',\n },\n {\n id: 'firstName',\n text: i18n.t('bcm.partitions.deployments.personnel.firstName').toString(),\n value: 'firstName',\n defaultValue: '',\n },\n {\n id: 'employeeId',\n text: i18n.t('bcm.partitions.deployments.personnel.employeeId').toString(),\n value: 'employeeId',\n visible: false,\n },\n {\n id: 'positionDescription',\n text: i18n.t('bcm.partitions.deployments.personnel.positionDescription').toString(),\n value: 'positionDescription',\n defaultValue: '',\n visible: false,\n },\n {\n id: 'email',\n text: i18n.t('bcm.partitions.deployments.personnel.email').toString(),\n value: 'email',\n defaultValue: '',\n },\n {\n id: 'phone1',\n text: i18n.t('bcm.partitions.deployments.personnel.phone1').toString(),\n value: 'phone1',\n defaultValue: '',\n },\n {\n id: 'phone2',\n text: i18n.t('bcm.partitions.deployments.personnel.phone2').toString(),\n value: 'phone2',\n defaultValue: '',\n },\n {\n id: 'phone3',\n text: i18n.t('bcm.partitions.deployments.personnel.phone3').toString(),\n value: 'phone3',\n defaultValue: '',\n },\n {\n id: 'external',\n text: i18n.t('bcm.partitions.deployments.personnel.external').toString(),\n value: 'external',\n component: PdColumnCheckbox,\n defaultValue: false,\n width: '3rem',\n },\n {\n id: 'recoveryResponsible',\n text: i18n.t('bcm.partitions.deployments.personnel.recoveryResponsible').toString(),\n value: 'recoveryResponsible',\n component: PdColumnCheckbox,\n defaultValue: false,\n width: '3rem',\n },\n {\n id: 'allowEditing',\n text: '',\n value: 'allowEditing',\n defaultValue: true,\n visible: false,\n editorVisible: false,\n },\n ];\n\n async function changePersonParent(newParent: PartitionPersonnelDto) {\n if (personToChangeParent.value == null) {\n return;\n }\n showPersonSelector.value = false;\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n await BiaService.ChangePersonParent(props.partitionId, personToChangeParent.value, newParent);\n await datasource.value.get();\n refresh.value = v4();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n watch(\n () => props.partitionId,\n () => {\n init();\n },\n { immediate: true },\n );\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n const positionsDatasource = await DatasourcesService.Bcm.Positions.get();\n\n positionsDatasource.forEach(p => {\n positions.value.push({\n text: LanguageTemplate(p, 'name').text,\n value: p.id,\n });\n });\n\n datasource.value = new ApiDataSource({ api: `/masterplans/${entityId}/bc/bia/Partitions/${[props.partitionId]}/Personnel` });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n\n return {\n loading,\n datasource,\n gridOptions,\n rowActions,\n columns,\n positions,\n showPersonSelector,\n personToChangeParent,\n changePersonParent,\n refresh,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPersonnel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPersonnel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaPersonnel.vue?vue&type=template&id=3222b1de&scoped=true&\"\nimport script from \"./BiaPersonnel.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaPersonnel.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3222b1de\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\ninstallComponents(component, {VProgressLinear})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading)?_c('v-progress-linear',{attrs:{\"indeterminate\":\"\"}}):[(_vm.selfAssessmentType !== 0)?[_c('pd-data-table',{attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.headers,\"options\":_vm.options},on:{\"editing-changed\":_vm.editingChanged},scopedSlots:_vm._u([{key:\"details\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('rcsa-details',{attrs:{\"risk\":item,\"implementation-scales\":_vm.implementationScales,\"impact-areas\":_vm.riskImpactAreas,\"impact-area-scales\":_vm.riskImpactAreaScales}})]}},{key:\"PopupEditorTitle\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.rcsa.editTitle'))+\" \")]},proxy:true},{key:\"PopupEditorContent\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('bia-rcsa-editor',{attrs:{\"rcsa\":item,\"rcsa-type\":_vm.selfAssessmentType,\"risk-registry\":_vm.riskRegistry,\"control-evaluations\":_vm.controlEvaluations,\"probabilities\":_vm.probabilities,\"implementation-scales\":_vm.implementationScales,\"risk-levels\":_vm.riskLevels,\"risk-treatments\":_vm.riskTreatments,\"readonly\":_vm.readonly,\"impact-areas\":_vm.riskImpactAreas,\"impact-area-scales\":_vm.riskImpactAreaScales,\"existing-risks\":_vm.existingRisks}})]}}],null,false,745449327)})]:_vm._e()]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"75rem\"}},[_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.rcsa.risk'))+\" \")]),_c('td',[(_vm.rcsaType === 3)?_c('v-radio-group',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"row\":\"\",\"disabled\":_vm.readonly},model:{value:(_vm.riskAnswerType),callback:function ($$v) {_vm.riskAnswerType=$$v},expression:\"riskAnswerType\"}},[_c('v-radio',{attrs:{\"label\":_vm.$t('bcm.bia.partition.rcsa.selectFromRegistry'),\"value\":\"registry\"}}),_c('v-radio',{attrs:{\"label\":_vm.$t('bcm.bia.partition.rcsa.enterCustomRisk'),\"value\":\"text\"}})],1):_vm._e(),(_vm.riskAnswerType=== 'registry')?_c('item-selector-text-field',{attrs:{\"datasource\":_vm.riskRegistry,\"excluded-items\":_vm._existingRisks,\"translatable\":\"\",\"display-field\":\"name\",\"dense\":\"\",\"hide-details\":\"\",\"disabled\":_vm.readonly,\"placeholder\":_vm.$t('bcm.bia.partition.rcsa.selectRiskPlaceholder')},model:{value:(_vm.rcsa.riskId),callback:function ($$v) {_vm.$set(_vm.rcsa, \"riskId\", $$v)},expression:\"rcsa.riskId\"}}):_vm._e(),(_vm.riskAnswerType=== 'text')?_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"disabled\":_vm.readonly,\"placeholder\":_vm.$t('bcm.bia.partition.rcsa.customRiskPlaceholder')},model:{value:(_vm.rcsa.riskText),callback:function ($$v) {_vm.$set(_vm.rcsa, \"riskText\", $$v)},expression:\"rcsa.riskText\"}}):_vm._e()],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.bia.partition.rcsa.controlTools'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"disabled\":_vm.readonly,\"placeholder\":_vm.$t('bcm.bia.partition.rcsa.controlToolsPlaceholder')},model:{value:(_vm.rcsa.controlTools),callback:function ($$v) {_vm.$set(_vm.rcsa, \"controlTools\", $$v)},expression:\"rcsa.controlTools\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.bia.partition.rcsa.controlEvaluation'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.controlEvaluations,\"hide-details\":\"\",\"dense\":\"\",\"disabled\":_vm.readonly,\"placeholder\":_vm.$t('bcm.bia.partition.rcsa.controlEvaluationPlaceholder')},model:{value:(_vm.rcsa.controlEvaluationId),callback:function ($$v) {_vm.$set(_vm.rcsa, \"controlEvaluationId\", $$v)},expression:\"rcsa.controlEvaluationId\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.bia.partition.rcsa.likelihood'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.probabilities,\"hide-details\":\"\",\"dense\":\"\",\"disabled\":_vm.readonly,\"placeholder\":_vm.$t('bcm.bia.partition.rcsa.likelihoodPlaceholder')},model:{value:(_vm.rcsa.probabilityId),callback:function ($$v) {_vm.$set(_vm.rcsa, \"probabilityId\", $$v)},expression:\"rcsa.probabilityId\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.bia.partition.rcsa.impacts'))+\" \")]),_c('td',[_c('bia-rcsa-impacts',{attrs:{\"impacts\":_vm.rcsa.impacts,\"readonly\":_vm.readonly,\"impact-areas\":_vm.impactAreas,\"impact-area-scales\":_vm.impactAreaScales},on:{\"impact-level-changed\":_vm.impactLevelChanged}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.bia.partition.rcsa.riskLevel'))+\" \")]),_c('td',[_c('v-chip',{staticClass:\"px-8\",attrs:{\"color\":_vm._riskColor}},[_vm._v(\" \"+_vm._s(_vm._riskLevel)+\" \")])],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.bia.partition.rcsa.riskTreatment'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.riskTreatments,\"hide-details\":\"\",\"dense\":\"\",\"disabled\":_vm.readonly,\"placeholder\":_vm.$t('bcm.bia.partition.rcsa.riskTreatmentPlaceholder')},model:{value:(_vm.rcsa.riskTreatmentId),callback:function ($$v) {_vm.$set(_vm.rcsa, \"riskTreatmentId\", $$v)},expression:\"rcsa.riskTreatmentId\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.bia.partition.rcsa.actionsPlan'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"disabled\":_vm.readonly,\"placeholder\":_vm.$t('bcm.bia.partition.rcsa.actionPlanPlaceholder')},model:{value:(_vm.rcsa.actionPlan),callback:function ($$v) {_vm.$set(_vm.rcsa, \"actionPlan\", $$v)},expression:\"rcsa.actionPlan\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.bia.partition.rcsa.actionPlanDueDate'))+\" \")]),_c('td',[_c('pd-date-picker',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"disabled\":_vm.readonly,\"placeholder\":_vm.$t('bcm.bia.partition.rcsa.actionPlanDueDatePlaceholder')},model:{value:(_vm.rcsa.actionPlanDueDate),callback:function ($$v) {_vm.$set(_vm.rcsa, \"actionPlanDueDate\", $$v)},expression:\"rcsa.actionPlanDueDate\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.bia.partition.rcsa.implementationStatus'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.implementationScales,\"hide-details\":\"\",\"dense\":\"\",\"placeholder\":_vm.$t('bcm.bia.partition.rcsa.implementationStatusPlaceholder')},model:{value:(_vm.rcsa.implementationScaleId),callback:function ($$v) {_vm.$set(_vm.rcsa, \"implementationScaleId\", $$v)},expression:\"rcsa.implementationScaleId\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.bia.partition.rcsa.implementationDueDate'))+\" \")]),_c('td',[_c('pd-date-picker',{attrs:{\"hide-details\":\"\",\"dense\":\"\",\"placeholder\":_vm.$t('bcm.bia.partition.rcsa.implementationDueDatePlaceholder')},model:{value:(_vm.rcsa.implementationDueDate),callback:function ($$v) {_vm.$set(_vm.rcsa, \"implementationDueDate\", $$v)},expression:\"rcsa.implementationDueDate\"}})],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.impactSelectorVisible)?_c('item-selector',{attrs:{\"datasource\":_vm._impactAreas,\"headers\":_vm.areasHeaders,\"exclude\":_vm.excludedAreas},on:{\"select\":_vm.addImpactArea,\"cancel\":function($event){_vm.impactSelectorVisible = false}}}):_vm._e(),_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',{staticStyle:{\"width\":\"50%\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.rcsa.impactArea'))+\" \"),(!_vm.readonly)?_c('v-btn',{attrs:{\"right\":\"\",\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){_vm.impactSelectorVisible = true}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.add)+\" \")])],1):_vm._e()],1),_c('th',{staticStyle:{\"width\":\"50%\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.rcsa.impactScale'))+\" \")]),(!_vm.readonly)?_c('th'):_vm._e()])]),_c('tbody',_vm._l((_vm.impacts),function(i){return _c('impact-area-line',{key:i.uuid,attrs:{\"risk-impact-area\":i,\"readonly\":_vm.readonly,\"impact-areas\":_vm.impactAreas,\"impact-area-scales\":_vm.impactAreaScales},on:{\"value\":_vm.updateValue,\"remove\":_vm.removeImpactArea}})}),1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{attrs:{\"valign\":\"top\"}},[_c('td',{staticStyle:{\"width\":\"50%\"}},[_vm._v(\" \"+_vm._s(_vm.area)+\" \"),_c('div',{staticClass:\"caption\"},[_vm._v(\" \"+_vm._s(_vm.areaInfo)+\" \")])]),(_vm.readonly)?[_c('td',{staticStyle:{\"width\":\"50%\"}},[_vm._v(\" \"+_vm._s(_vm.scale)+\" \"),_c('div',{staticClass:\"caption\"},[_vm._v(\" \"+_vm._s(_vm.scaleInfo)+\" \")])])]:[_c('td',[_c('v-select',{staticClass:\"mb-2\",attrs:{\"items\":_vm.availableScales,\"hint\":_vm.scaleInfo,\"persistent-hint\":\"\",\"dense\":\"\"},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-tooltip',{attrs:{\"left\":\"\",\"color\":\"#000D\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({staticStyle:{\"width\":\"100%\"}},'div',attrs,false),on),[_vm._v(\" \"+_vm._s(item.text)+\" \")])]}}],null,true)},[_c('div',{staticStyle:{\"max-width\":\"20rem\"}},[_vm._v(\" \"+_vm._s(item.other)+\" \")])])]}}]),model:{value:(_vm.riskImpactArea.riskImpactAreaScaleId),callback:function ($$v) {_vm.$set(_vm.riskImpactArea, \"riskImpactAreaScaleId\", $$v)},expression:\"riskImpactArea.riskImpactAreaScaleId\"}})],1)],(!_vm.readonly)?_c('td',{staticStyle:{\"vertical-align\":\"middle\"}},[_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":_vm.remove}},[_c('v-icon',{attrs:{\"color\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.icons.remove)+\" \")])],1)],1):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport icons from '@/core/icons';\nimport { PartitionRiskAssessmentImpactDto } from '@/dtos';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'ImpactAreaLine',\n\n components: {\n\n },\n\n props: {\n riskImpactArea: {\n type: Object as PropType,\n required: true,\n },\n\n impactAreas: {\n type: Array as PropType>,\n required: true,\n },\n\n impactAreaScales: {\n type: Map as PropType>>,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props, { emit }) {\n const area = ref('');\n const areaInfo = ref('');\n const scale = ref('');\n const scaleInfo = ref('');\n\n const availableScales = computed>(() => {\n return props.impactAreaScales.get(props.riskImpactArea.riskImpactAreaId) ?? [];\n });\n\n watch(\n () => props.riskImpactArea.riskImpactAreaId,\n async (impactAreaId) => {\n area.value = '';\n areaInfo.value = '';\n\n const ia = props.impactAreas.find(i => i.value === impactAreaId);\n if (ia != null) {\n area.value = ia.text.toString();\n areaInfo.value = (ia.other as string);\n }\n },\n { immediate: true },\n );\n\n watch(\n () => props.riskImpactArea.riskImpactAreaScaleId,\n (rias) => {\n scale.value = '';\n scaleInfo.value = '';\n\n const s = availableScales.value.find(i => i.value === rias);\n\n if (s != null) {\n scale.value = s.text.toString();\n scaleInfo.value = (s.other as string);\n\n emit('value', props.riskImpactArea, s.scaleValue);\n }\n },\n { immediate: true },\n );\n\n function remove() {\n emit('remove', props.riskImpactArea);\n }\n\n return {\n area,\n areaInfo,\n scale,\n scaleInfo,\n availableScales,\n\n remove,\n icons: {\n remove: icons.delete,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImpactAreaLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImpactAreaLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ImpactAreaLine.vue?vue&type=template&id=63014a34&scoped=true&\"\nimport script from \"./ImpactAreaLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./ImpactAreaLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"63014a34\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VIcon,VSelect,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport { PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { ISelectItem } from '@/core';\nimport { ArrayDataSource, IDataSource } from '@/core/datasource';\nimport icons from '@/core/icons';\nimport { IDto, PartitionRiskAssessmentImpactDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { v4 } from 'uuid';\nimport ImpactAreaLine from './ImpactAreaLine.vue';\n\nexport default defineComponent({\n name: 'BiaRcsaImpacts',\n\n components: {\n ImpactAreaLine,\n ItemSelector,\n },\n\n props: {\n impacts: {\n type: Array as PropType>,\n required: true,\n },\n\n impactAreas: {\n type: Array as PropType>,\n required: true,\n },\n\n impactAreaScales: {\n type: Map as PropType>>,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props, { emit }) {\n const impactSelectorVisible = ref(false);\n const _impactAreas = ref | null>(null);\n const areasHeaders: Array> = [\n {\n id: 'name',\n value: 'name',\n text: i18n.t('bcm.bia.partition.rcsa.impactAreas').toString(),\n },\n {\n id: 'explanation',\n value: 'explanation',\n text: '',\n },\n ];\n const excludedAreas = computed>(() => {\n return props.impacts.map(i => i.riskImpactAreaId);\n });\n\n watch(\n () => props.impactAreas,\n (ia) => {\n const ret: Array = [];\n ia.forEach(i => {\n ret.push({\n id: i.value as number,\n name: i.text.toString(),\n explanation: i.other as string,\n });\n });\n _impactAreas.value = new ArrayDataSource(ret, {});\n },\n { immediate: true },\n );\n\n const values = new Map();\n let maxImpactValue = 0;\n\n function updateValue(riskImpactArea: PartitionRiskAssessmentImpactDto, value: number) {\n values.set(riskImpactArea.riskImpactAreaId, value);\n\n let max = 0;\n values.forEach((v) => {\n if (v > max) {\n max = v;\n }\n });\n\n if (maxImpactValue !== max) {\n maxImpactValue = max;\n emit('impact-level-changed', maxImpactValue);\n }\n }\n\n function addImpactArea(area: IDto) {\n try {\n //\n const s = props.impactAreaScales.get(area.id);\n if (s == null) {\n throw new Error('Impact Area Scales not found...');\n }\n props.impacts.push({\n id: 0,\n uuid: v4(),\n riskImpactAreaId: area.id,\n riskImpactAreaScaleId: s[0].value as number,\n });\n\n impactSelectorVisible.value = false;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n }\n }\n\n function removeImpactArea(area: PartitionRiskAssessmentImpactDto) {\n for (let i = 0; i < props.impacts.length; ++i) {\n if (props.impacts[i].uuid === area.uuid) {\n props.impacts.splice(i, 1);\n return;\n }\n }\n }\n\n return {\n updateValue,\n impactSelectorVisible,\n _impactAreas,\n areasHeaders,\n excludedAreas,\n addImpactArea,\n removeImpactArea,\n icons: {\n add: icons.plus,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaRcsaImpacts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaRcsaImpacts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaRcsaImpacts.vue?vue&type=template&id=95a38852&scoped=true&\"\nimport script from \"./BiaRcsaImpacts.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaRcsaImpacts.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"95a38852\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VBtn,VIcon,VSimpleTable})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdDatePicker from '@/components/core/PdDatePicker.vue';\nimport { ISelectItem } from '@/core';\nimport { PartitionRiskAssessmentDto, RiskSelfAssessmentType } from '@/dtos';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport BiaRcsaImpacts from './BiaRcsaImpacts.vue';\nimport ItemSelectorTextField from '@/components/all/ItemSelectorTextField.vue';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { v4 } from 'uuid';\n\nexport default defineComponent({\n name: 'BiaRcsaEditor',\n\n components: {\n PdDatePicker,\n BiaRcsaImpacts,\n ItemSelectorTextField,\n },\n\n props: {\n rcsa: {\n type: Object as PropType,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n\n rcsaType: {\n type: Number as PropType,\n required: true,\n },\n\n controlEvaluations: {\n type: Array as PropType>,\n required: true,\n },\n\n probabilities: {\n type: Array as PropType>,\n required: true,\n },\n\n riskLevels: {\n type: Array as PropType>,\n required: true,\n },\n\n riskTreatments: {\n type: Array as PropType>,\n required: true,\n },\n\n implementationScales: {\n type: Array as PropType>,\n required: true,\n },\n\n impactAreas: {\n type: Array as PropType>,\n required: true,\n },\n\n impactAreaScales: {\n type: Map as PropType>>,\n required: true,\n },\n\n existingRisks: {\n type: Array as PropType>,\n default: () => [],\n },\n },\n\n setup(props) {\n const riskAnswerType = ref<'registry' | 'text'>('registry');\n const _impactLevel = ref(0);\n const _riskLevel = ref('');\n const _riskColor = ref('');\n\n const _existingRisks = props.existingRisks.filter(i => i !== props.rcsa.riskId);\n\n switch (props.rcsaType) {\n case RiskSelfAssessmentType.Registry:\n case RiskSelfAssessmentType.Both:\n riskAnswerType.value = 'registry';\n props.rcsa.riskAnswerType = RiskSelfAssessmentType.Registry;\n break;\n case RiskSelfAssessmentType.Text:\n riskAnswerType.value = 'text';\n props.rcsa.riskAnswerType = RiskSelfAssessmentType.Text;\n break;\n default:\n riskAnswerType.value = 'registry';\n props.rcsa.riskAnswerType = RiskSelfAssessmentType.Registry;\n }\n\n if (props.rcsaType === RiskSelfAssessmentType.Both) {\n if (props.rcsa.riskId == null) {\n riskAnswerType.value = 'text';\n props.rcsa.riskAnswerType = RiskSelfAssessmentType.Text;\n }\n }\n\n watch(\n riskAnswerType,\n (value) => {\n if (value === 'text') {\n props.rcsa.riskId = undefined;\n props.rcsa.riskAnswerType = RiskSelfAssessmentType.Text;\n } else {\n props.rcsa.riskText = '';\n props.rcsa.riskAnswerType = RiskSelfAssessmentType.Registry;\n }\n },\n );\n\n function impactLevelChanged(value: number) {\n _impactLevel.value = value;\n }\n\n props.rcsa.impacts.forEach(r => {\n r.uuid = v4();\n });\n\n watch(\n _impactLevel,\n calculateRisk,\n );\n\n watch(\n () => props.rcsa.probabilityId,\n calculateRisk,\n );\n\n function calculateRisk() {\n _riskLevel.value = '';\n _riskColor.value = '';\n\n if (props.rcsa.probabilityId != null && props.rcsa.probabilityId !== 0) {\n const p = props.probabilities.find(i => i.value === props.rcsa.probabilityId);\n if (p == null) {\n console.error(`Probability '${props.rcsa.probabilityId}' not found...`);\n return;\n }\n\n const riskValue = p.other as number * _impactLevel.value;\n\n props.riskLevels\n .sort((a, b) => {\n return (b.other as number) - (a.other as number);\n })\n .every(i => {\n if ((i.other as number) >= riskValue) {\n _riskLevel.value = i.text.toString();\n _riskColor.value = i.color as string;\n return true;\n }\n\n return false;\n });\n }\n }\n\n return {\n riskAnswerType,\n impactLevelChanged,\n _riskLevel,\n _riskColor,\n _impactLevel,\n\n riskRegistry: DatasourcesService.Bcm.Risks,\n _existingRisks,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaRcsaEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaRcsaEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaRcsaEditor.vue?vue&type=template&id=00b03cfc&scoped=true&\"\nimport script from \"./BiaRcsaEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaRcsaEditor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00b03cfc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VChip,VRadio,VRadioGroup,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pl-10 pb-2 mb-4\",staticStyle:{\"background-color\":\"white\"}},[_c('div',{staticClass:\"my-4\"},[_c('bia-rcsa-impacts',{attrs:{\"impacts\":_vm.risk.impacts,\"impact-areas\":_vm.impactAreas,\"impact-area-scales\":_vm.impactAreaScales}})],1),_c('v-row',[_c('v-col',[_c('v-text-field',{attrs:{\"readonly\":\"\",\"label\":_vm.$t('bcm.partitions.deployments.rcsa.actionPlan'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.actionPlan),callback:function ($$v) {_vm.actionPlan=$$v},expression:\"actionPlan\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"shrink\"},[_c('v-text-field',{staticStyle:{\"width\":\"10rem\"},attrs:{\"readonly\":\"\",\"label\":_vm.$t('bcm.partitions.deployments.rcsa.actionPlanDueDate'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.actionPlanDueDate),callback:function ($$v) {_vm.actionPlanDueDate=$$v},expression:\"actionPlanDueDate\"}})],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"15rem\"},attrs:{\"items\":_vm.implementationScales,\"readonly\":\"\",\"label\":_vm.$t('bcm.partitions.deployments.rcsa.implementationScale'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.risk.implementationScaleId),callback:function ($$v) {_vm.$set(_vm.risk, \"implementationScaleId\", $$v)},expression:\"risk.implementationScaleId\"}})],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-text-field',{staticStyle:{\"width\":\"10rem\"},attrs:{\"readonly\":\"\",\"label\":_vm.$t('bcm.partitions.deployments.rcsa.implementationDueDate'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.implementationDueDate),callback:function ($$v) {_vm.implementationDueDate=$$v},expression:\"implementationDueDate\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport { DateTemplate } from '@/core/helpers/templates';\nimport { DateFormat } from '@/core/helpers/templates/DateTemplate';\nimport { PartitionRiskAssessmentDto } from '@/dtos';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport BiaRcsaImpacts from './BiaRcsaImpacts.vue';\n\nexport default defineComponent({\n name: 'RcsaDetails',\n\n components: {\n BiaRcsaImpacts,\n },\n\n props: {\n risk: {\n type: Object as PropType,\n required: true,\n },\n\n implementationScales: {\n type: Array as PropType>,\n required: true,\n },\n\n impactAreas: {\n type: Array as PropType>,\n required: true,\n },\n\n impactAreaScales: {\n type: Map as PropType>>,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props) {\n const actionPlan = ref('');\n const actionPlanDueDate = ref('');\n const implementationDueDate = ref('');\n\n watch(\n () => props.risk,\n async (risk) => {\n actionPlan.value = risk.actionPlan;\n if (risk.actionPlanDueDate == null) {\n actionPlanDueDate.value = '';\n } else {\n actionPlanDueDate.value = DateTemplate(risk.actionPlanDueDate, DateFormat.Local).text;\n }\n\n if (risk.implementationDueDate == null) {\n implementationDueDate.value = '';\n } else {\n implementationDueDate.value = DateTemplate(risk.implementationDueDate, DateFormat.Local).text;\n }\n },\n { immediate: true },\n );\n\n return {\n actionPlan,\n actionPlanDueDate,\n implementationDueDate,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RcsaDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RcsaDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RcsaDetails.vue?vue&type=template&id=5e8b6b68&scoped=true&\"\nimport script from \"./RcsaDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./RcsaDetails.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e8b6b68\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCol,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[_vm._v(\" \"+_vm._s(_vm.displayText)+\" \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { PartitionRiskAssessmentDto } from '@/dtos';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'ImpactColumn',\n\n components: {\n },\n\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const displayText = ref('');\n const color = ref('');\n\n watch(\n () => props.item,\n async (risk) => {\n const impacts = (await DatasourcesService.Bcm.RiskImpactScales.data())\n .sort((a, b) => a.value - b.value);\n\n const impactAreas = await DatasourcesService.Bcm.RiskImpactAreas.data();\n\n if (!Array.isArray(risk.impacts) || risk.impacts.length === 0) {\n displayText.value = LanguageTemplate(impacts[0], 'name').text;\n color.value = impacts[0].color;\n return;\n }\n\n let max = impacts[0];\n\n for (let i = 0; i < risk.impacts.length; ++i) {\n const impactArea = impactAreas.find(a => a.id === risk.impacts[i].riskImpactAreaId);\n if (impactArea == null) {\n console.error('impactArea null...');\n continue;\n }\n\n const impactAreaScale = impactArea.impactAreaScales.find(s => s.id === risk.impacts[i].riskImpactAreaScaleId);\n if (impactAreaScale == null) {\n console.error('impactAreaScale null...');\n continue;\n }\n\n const scale = impacts.find(s => s.id === impactAreaScale.riskImpactScaleId);\n\n if (scale == null) {\n console.error('scale is null...');\n continue;\n }\n\n if (scale.value > max.value) {\n max = scale;\n }\n }\n\n displayText.value = LanguageTemplate(max, 'name').text + ` (${max.value})`;\n color.value = max.color;\n },\n { immediate: true },\n );\n\n return {\n displayText,\n color,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImpactColumn.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImpactColumn.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ImpactColumn.vue?vue&type=template&id=41d68982&scoped=true&\"\nimport script from \"./ImpactColumn.vue?vue&type=script&lang=ts&\"\nexport * from \"./ImpactColumn.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"41d68982\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[_c('v-row',{staticStyle:{\"height\":\"98%\"},attrs:{\"dense\":\"\",\"no-gutters\":\"\",\"align\":\"center\"}},[(_vm.color != null)?_c('v-col',{staticClass:\"shrink mr-1\",staticStyle:{\"height\":\"80%\"},style:({'background-color': _vm.color})},[_c('span',{staticStyle:{\"width\":\"10px\",\"height\":\"100%\"}})]):_vm._e(),_c('v-col',[_vm._v(\" \"+_vm._s(_vm.displayText)+\" \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { PartitionRiskAssessmentDto } from '@/dtos';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'RiskLevelColumn',\n\n components: {\n },\n\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const displayText = ref('');\n const color = ref('');\n\n watch(\n () => props.item,\n async (risk) => {\n const impacts = (await DatasourcesService.Bcm.RiskImpactScales.data())\n .sort((a, b) => a.value - b.value);\n\n const impactAreas = await DatasourcesService.Bcm.RiskImpactAreas.data();\n\n if (!Array.isArray(risk.impacts) || risk.impacts.length === 0) {\n displayText.value = LanguageTemplate(impacts[0], 'name').text;\n color.value = impacts[0].color;\n return;\n }\n\n let max = impacts[0];\n\n for (let i = 0; i < risk.impacts.length; ++i) {\n const impactArea = impactAreas.find(a => a.id === risk.impacts[i].riskImpactAreaId);\n if (impactArea == null) {\n console.error('impactArea null...');\n continue;\n }\n\n const impactAreaScale = impactArea.impactAreaScales.find(s => s.id === risk.impacts[i].riskImpactAreaScaleId);\n if (impactAreaScale == null) {\n console.error('impactAreaScale null...');\n continue;\n }\n\n const scale = impacts.find(s => s.id === impactAreaScale.riskImpactScaleId);\n\n if (scale == null) {\n console.error('scale is null...');\n continue;\n }\n\n if (scale.value > max.value) {\n max = scale;\n }\n }\n\n const likelihood = await DatasourcesService.Bcm.RiskProbabilities.getById(props.item.probabilityId);\n if (likelihood == null) {\n console.error('likelihood is null');\n return;\n }\n\n const riskLevel = max.value * likelihood.value;\n\n const risks = (await DatasourcesService.Bcm.RiskLevels.data()).sort((a, b) => b.value - a.value);\n\n let actualRisk = risks[0];\n risks.every(r => {\n if (r.value >= riskLevel) {\n actualRisk = r;\n return true;\n }\n\n return false;\n });\n\n displayText.value = LanguageTemplate(actualRisk, 'name').text + ` (${riskLevel})`;\n color.value = actualRisk.color;\n },\n { immediate: true },\n );\n\n return {\n displayText,\n color,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RiskLevelColumn.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RiskLevelColumn.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RiskLevelColumn.vue?vue&type=template&id=0da4f525&scoped=true&\"\nimport script from \"./RiskLevelColumn.vue?vue&type=script&lang=ts&\"\nexport * from \"./RiskLevelColumn.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0da4f525\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VRow})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PdDataTable, PdDataTableEditMode, PdDataTableHeader, PdDataTableOptions } from '@/components/core/PdDataTable';\nimport PdColumnYesNo from '@/components/core/PdDataTable/columns/PdColumnYesNo.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { PartitionRiskAssessmentDto, RiskSelfAssessmentType } from '@/dtos';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { ApplicationModule } from '@/store';\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport BiaRcsaEditor from './rcsa/BiaRcsaEditor.vue';\nimport RcsaDetails from './rcsa/RcsaDetails.vue';\nimport ImpactColumnVue from './rcsa/ImpactColumn.vue';\nimport RiskLevelColumnVue from './rcsa/RiskLevelColumn.vue';\nimport { ISelectItem } from '@/core';\nimport { BiaService } from '@/services/bcm';\nexport default defineComponent({\n name: 'BiaRcsa',\n\n components: {\n PdDataTable,\n BiaRcsaEditor,\n RcsaDetails,\n },\n\n props: {\n partitionId: {\n type: Number,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n\n const selfAssessmentType = ref(RiskSelfAssessmentType.None);\n\n const implementationScales = ref>([]);\n const riskRegistry = ref>([]);\n const controlEvaluations = ref>([]);\n const probabilities = ref>([]);\n const riskLevels = ref>([]);\n const riskTreatments = ref>([]);\n const riskImpactAreas = ref>([]);\n const riskImpactAreaScales = ref>>(new Map());\n\n const existingRisks = ref>([]);\n\n const entityId = ApplicationModule.Entity?.id;\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n watch(\n () => props.partitionId,\n () => {\n init();\n },\n { immediate: true },\n );\n\n const datasource = ref>(new ApiDataSource({ api: `/masterplans/${entityId}/bc/bia/Partitions/${[props.partitionId]}/Rcsa` }));\n\n const headers: Array> = [\n {\n id: 'risk',\n text: i18n.t('bcm.partitions.deployments.rcsa.risk').toString(),\n value: 'risk',\n template: (item) => {\n if (item.riskId == null || item.riskAnswerType === RiskSelfAssessmentType.Text) {\n return { text: item.riskText };\n }\n\n const r = riskRegistry.value.find(i => i.value === item.riskId);\n if (r == null) {\n console.error(`Risk \"${item.riskId}\" not found in risk...`);\n return { text: '' };\n }\n\n return { text: r.text.toString() };\n },\n },\n {\n id: 'probabilityId',\n text: i18n.t('bcm.partitions.deployments.rcsa.probability').toString(),\n value: 'probabilityId',\n sortable: false,\n template: (item) => {\n const i = probabilities.value.find(i => i.value === item.probabilityId);\n if (i == null) {\n console.error(`Probability \"${item.probabilityId}\" not found in probabilities...`);\n return { text: '' };\n }\n\n return { text: i.text.toString() + ` (${i.other})` };\n },\n },\n {\n id: 'impactId',\n text: i18n.t('bcm.partitions.deployments.rcsa.impact').toString(),\n value: 'impactId',\n component: ImpactColumnVue,\n sortable: false,\n },\n {\n id: 'riskLevelId',\n text: i18n.t('bcm.partitions.deployments.rcsa.riskLevel').toString(),\n value: 'riskLevelId',\n component: RiskLevelColumnVue,\n sortable: false,\n },\n {\n id: 'controlEvaluationId',\n text: i18n.t('bcm.partitions.deployments.rcsa.controlEvaluation').toString(),\n value: 'controlEvaluationId',\n template: async (item) => {\n const i = controlEvaluations.value.find(i => i.value === item.controlEvaluationId);\n if (i == null) {\n console.error(`Control Evaluation \"${item.controlEvaluationId}\" not found in controlEvaluations...`);\n return { text: '' };\n }\n\n return { text: i.text.toString() };\n },\n },\n {\n id: 'impacts',\n text: '',\n value: 'impacts',\n defaultValue: () => [],\n visible: false,\n },\n {\n id: 'actionPlan',\n text: '',\n value: 'actionPlan',\n component: PdColumnYesNo,\n visible: false,\n },\n {\n id: 'actionPlanDueDate',\n text: '',\n value: 'actionPlanDueDate',\n visible: false,\n },\n {\n id: 'implementationScaleId',\n text: '',\n value: 'implementationScaleId',\n visible: false,\n },\n {\n id: 'implementationDueDate',\n text: '',\n value: 'implementationDueDate',\n visible: false,\n },\n ];\n\n const options: PdDataTableOptions = {\n editable: {\n mode: PdDataTableEditMode.Popup,\n add: !props.readonly,\n edit: true,\n delete: !props.readonly,\n },\n hasDetails: true,\n };\n\n async function editingChanged(value: PartitionRiskAssessmentDto | null) {\n if (value == null) {\n return;\n }\n\n existingRisks.value = [];\n const all = await datasource.value.data();\n\n all.forEach(r => {\n if (r.riskId != null) {\n existingRisks.value.push(r.riskId);\n }\n });\n }\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n await Promise.all([\n DatasourcesService.Bcm.Risks.get(),\n DatasourcesService.Bcm.RiskControlEvaluations.get(),\n DatasourcesService.Bcm.RiskProbabilities.get(),\n DatasourcesService.Bcm.RiskImpactScales.get(),\n DatasourcesService.Bcm.RiskImpactAreas.get(),\n DatasourcesService.Bcm.RiskLevels.get(),\n DatasourcesService.Bcm.RiskTreatments.get(),\n ]);\n\n const info = await BiaService.GetSelfAssessmentType(props.partitionId);\n selfAssessmentType.value = info.selfAssessmentType;\n\n (await DatasourcesService.Bcm.Risks.data())\n .forEach(r => riskRegistry.value.push({ value: r.id, text: LanguageTemplate(r, 'name').text, other: r.riskGroup }));\n\n (await DatasourcesService.Bcm.RiskControlEvaluations.data())\n .sort((a, b) => a.value - b.value)\n .forEach(i => controlEvaluations.value.push({ value: i.id, text: LanguageTemplate(i, 'controlEvaluation').text }));\n\n (await DatasourcesService.Bcm.RiskProbabilities.data())\n .sort((a, b) => a.value - b.value)\n .forEach(i => probabilities.value.push({ value: i.id, text: LanguageTemplate(i, 'occurrence').text, other: i.value }));\n\n (await DatasourcesService.Bcm.RiskLevels.data())\n .sort((a, b) => a.value - b.value)\n .forEach(i => riskLevels.value.push({\n value: i.id,\n text: LanguageTemplate(i, 'name').text,\n other: i.value,\n color: i.color,\n }));\n\n (await DatasourcesService.Bcm.RiskTreatments.data())\n .forEach(i => riskTreatments.value.push({ value: i.id, text: LanguageTemplate(i, 'name').text, other: i.value }));\n\n (await DatasourcesService.Bcm.ImplementationScales.get())\n .sort((a, b) => a.value - b.value)\n .forEach(s => {\n implementationScales.value.push({\n text: LanguageTemplate(s, 'name').text,\n value: s.id,\n });\n });\n\n (await DatasourcesService.Bcm.RiskImpactAreas.data())\n .forEach(ia => {\n riskImpactAreas.value.push({\n text: LanguageTemplate(ia, 'impact').text,\n value: ia.id,\n other: LanguageTemplate(ia, 'explanation').text,\n });\n\n if (ia.impactAreaScales != null && ia.impactAreaScales.length > 0) {\n const scales: Array = [];\n\n ia.impactAreaScales.forEach(async s => {\n const scale = await DatasourcesService.Bcm.RiskImpactScales.getById(s.riskImpactScaleId);\n if (scale != null) {\n scales.push({\n value: s.id,\n text: LanguageTemplate(scale, 'name').text,\n other: LanguageTemplate(s, 'explanation').text,\n scaleValue: scale.value,\n });\n }\n });\n riskImpactAreaScales.value.set(ia.id, scales);\n }\n });\n\n datasource.value = new ApiDataSource({ api: `/masterplans/${entityId}/bc/bia/Partitions/${[props.partitionId]}/RiskAssessments` });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n\n return {\n loading,\n selfAssessmentType,\n datasource,\n headers,\n options,\n editingChanged,\n\n riskRegistry,\n existingRisks,\n controlEvaluations,\n probabilities,\n implementationScales,\n riskLevels,\n riskTreatments,\n riskImpactAreas,\n riskImpactAreaScales,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaRcsa.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaRcsa.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaRcsa.vue?vue&type=template&id=5215e3fe&scoped=true&\"\nimport script from \"./BiaRcsa.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaRcsa.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5215e3fe\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\ninstallComponents(component, {VProgressLinear})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading)?_c('v-progress-linear',{attrs:{\"indeterminate\":\"\"}}):[_c('v-alert',{attrs:{\"border\":\"left\",\"dense\":\"\",\"text\":\"\",\"type\":\"info\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.rtoInfoMessageForTabs'))+\" \")]),(_vm.showServiceSelector)?_c('tree-item-selector',{attrs:{\"visible\":\"\",\"datasource\":_vm.activeServices,\"exclude\":_vm.existingServices,\"translatable\":\"\"},on:{\"select\":_vm.addNewService,\"cancel\":function($event){_vm.showServiceSelector = false}}}):_vm._e(),(!_vm.readonly)?_c('div',{staticClass:\"mb-4\"},[_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){_vm.showServiceSelector = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.add)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('bcm.bia.partition.services.addNew'))+\" \")],1)],1):_vm._e(),_c('v-expansion-panels',{attrs:{\"hover\":\"\",\"focusable\":\"\",\"popout\":\"\"}},_vm._l((_vm.services),function(service){return _c('bia-service-details',{key:service.uuid,attrs:{\"partition-id\":_vm.partitionId,\"service\":service,\"applications\":_vm.applications,\"associates\":_vm.associates,\"personnel\":_vm.personnel,\"rto-scales\":_vm.rtoScales,\"readonly\":_vm.readonly},on:{\"remove\":_vm.removeService}})}),1)]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panel',[_c('v-expansion-panel-header',{attrs:{\"hide-actions\":\"\"}},[_c('div',[_c('div',{staticClass:\"text-h6\"},[_vm._v(\" \"+_vm._s(_vm.service.service)+\" \"),(!_vm.readonly)?_c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mb-1\",attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.menu)+\" \")])],1)]}}],null,false,3925235539)},[_c('v-list',[_c('v-list-item',{on:{\"click\":_vm.deleteService}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.icons.delete)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('remove'))+\" \")])],1)],1)],1):_vm._e()],1),_c('div',[_c('span',{staticClass:\"mr-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.rto'))+\": \"+_vm._s(_vm.rtoName)+\" \")]),_c('span',{staticClass:\"mr-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.applications'))+\": \"+_vm._s(_vm.applicationsCount)+\" \")]),_c('span',{staticClass:\"mr-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.associates'))+\": \"+_vm._s(_vm.associatesCount)+\" \")]),_c('span',{staticClass:\"mr-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.personnel'))+\": \"+_vm._s(_vm.personnelCount)+\" \")])])])]),_c('v-expansion-panel-content',[_c('div',{staticClass:\"mt-6 mb-10\"},[_c('v-select',{staticClass:\"mt-0\",attrs:{\"items\":_vm.rtoScales,\"label\":_vm.$t('bcm.partitions.deployments.services.rto'),\"dense\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.rtoChange},model:{value:(_vm.newRtoId),callback:function ($$v) {_vm.newRtoId=$$v},expression:\"newRtoId\"}})],1),_c('bia-service-details-applications',{staticClass:\"mt-4 mb-8\",attrs:{\"partition-id\":_vm.partitionId,\"service\":_vm.service,\"applications\":_vm.applications,\"readonly\":_vm.readonly}}),_c('bia-service-details-associates',{staticClass:\"mt-4 mb-8\",attrs:{\"partition-id\":_vm.partitionId,\"service\":_vm.service,\"associates\":_vm.associates,\"readonly\":_vm.readonly}}),_c('bia-service-details-personnel',{staticClass:\"mt-4 mb-8\",attrs:{\"partition-id\":_vm.partitionId,\"service\":_vm.service,\"personnel\":_vm.personnel,\"readonly\":_vm.readonly}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showApplicationsSelector)?_c('item-selector',{attrs:{\"datasource\":_vm.applications,\"translatable\":false,\"column\":\"application\",\"exclude\":_vm.existingApplications},on:{\"select\":_vm.addApplication,\"cancel\":function($event){_vm.showApplicationsSelector = false}}}):_vm._e(),_c('v-row',{attrs:{\"dense\":\"\",\"no-gutters\":\"\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"shrink mr-4\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('h4',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.applications'))+\" \")])]),_c('v-col',[(!_vm.readonly)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showApplicationsSelector = true}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.add)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \")],1):_vm._e()],1)],1),_c('v-simple-table',{staticClass:\"mt-2\",attrs:{\"fixed-header\":\"\"}},[_c('tbody',_vm._l((_vm.service.applications),function(a){return _c('tr',{key:a.uuid},[_c('td',[_c('v-row',{attrs:{\"dense\":\"\",\"no-gutters\":\"\",\"align\":\"center\"}},[(!_vm.readonly)?_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"icon\":\"\",\"left\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.remove(a)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.remove)+\" \")])],1)],1):_vm._e(),_c('v-col',[_vm._v(\" \"+_vm._s(a.application)+\" \")])],1)],1)])}),0)]),_c('v-divider')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport { ArrayDataSource } from '@/core/datasource';\nimport icons from '@/core/icons';\nimport { PartitionApplicationDto, PartitionServiceApplicationDto, PartitionServiceDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport { BiaService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService, { PopupMessageButtonNo, PopupMessageButtonYes } from '@/services/PopupMessageService';\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { v4 } from 'uuid';\n\nexport default defineComponent({\n name: 'BiaServiceDetailsApplications',\n\n components:\n {\n ItemSelector,\n },\n\n props: {\n partitionId: {\n type: Number,\n required: true,\n },\n\n service: {\n type: Object as PropType,\n required: true,\n },\n\n applications: {\n type: Object as PropType,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props) {\n const showApplicationsSelector = ref(false);\n\n const existingApplications = computed>(() => {\n return props.service.applications.map(i => i.partitionApplicationId);\n });\n\n function remove(application: PartitionServiceApplicationDto) {\n PopupMessageService.SetMessage({\n title: i18n.t('confirmation'),\n text: i18n.t('bcm.bia.partition.services.removeApplicationMessage', { application: application.application, service: props.service.service }),\n index: 100,\n buttons: [\n PopupMessageButtonYes(async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await BiaService.DeletePartitionServiceApplication(props.partitionId, props.service.id, application);\n\n for (let i = 0; i < props.service.applications.length; ++i) {\n if (props.service.applications[i].uuid === application.uuid) {\n props.service.applications.splice(i, 1);\n return;\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n async function addApplication(application: PartitionApplicationDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n showApplicationsSelector.value = false;\n const resp = await BiaService.CreatePartitionServiceApplication(props.partitionId, props.service.id, application);\n resp.uuid = v4();\n props.service.applications.push(resp);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n showApplicationsSelector,\n addApplication,\n existingApplications,\n remove,\n\n icons: {\n add: icons.plus,\n remove: icons.remove,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServiceDetailsApplications.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServiceDetailsApplications.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaServiceDetailsApplications.vue?vue&type=template&id=45e353c8&scoped=true&\"\nimport script from \"./BiaServiceDetailsApplications.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaServiceDetailsApplications.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"45e353c8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VBtn,VCol,VDivider,VIcon,VRow,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showAssociatesSelector)?_c('item-selector',{attrs:{\"datasource\":_vm.associates,\"translatable\":false,\"column\":\"associate\",\"exclude\":_vm.existingAssociates},on:{\"select\":_vm.addAssociate,\"cancel\":function($event){_vm.showAssociatesSelector = false}}}):_vm._e(),(_vm.showAssociateEditor)?_c('bia-service-details-associate-editor',{attrs:{\"service\":_vm.service.service,\"associate\":_vm.editingAssociate},on:{\"save\":_vm.saveAssociateEdit,\"cancel\":_vm.cancelEdit}}):_vm._e(),_c('v-row',{attrs:{\"dense\":\"\",\"no-gutters\":\"\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"shrink mr-4\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('h4',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.associates'))+\" \")])]),(!_vm.readonly)?_c('v-col',[_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showAssociatesSelector = true}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.add)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \")],1)],1):_vm._e()],1),_vm._l((_vm.service.associates),function(a){return _c('bia-service-details-associate-line',{key:a.uuid,attrs:{\"associate\":a,\"readonly\":_vm.readonly,\"needs-taxonomy\":_vm.service.needsTaxonomy},on:{\"edit\":_vm.editAssociateTaxonomy,\"remove\":_vm.remove}})}),_c('v-divider')],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup-card',{attrs:{\"index\":10},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.service)+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancelChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")])]},proxy:true}])},[_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.associate.name'))+\" \")]),_c('td',[_c('v-text-field',{staticClass:\"my-0\",attrs:{\"value\":_vm.associate.associate,\"disabled\":\"\",\"dense\":\"\",\"hide-details\":\"\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.associate.existingContract'))+\" \")]),_c('td',[_c('v-checkbox',{staticClass:\"my-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.associate.existingContract),callback:function ($$v) {_vm.$set(_vm.associate, \"existingContract\", $$v)},expression:\"associate.existingContract\"}})],1)]),(_vm.associate.existingContract)?_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.associate.contract'))+\" \")]),_c('td',[_c('item-selector-text-field',{attrs:{\"datasource\":_vm.contracts,\"display-field\":_vm.contractTemplate,\"headers\":_vm.contractHeaders,\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.services.associate.contractPlaceholder')},model:{value:(_vm.associate.contractId),callback:function ($$v) {_vm.$set(_vm.associate, \"contractId\", $$v)},expression:\"associate.contractId\"}})],1)]):_vm._e(),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfDependency'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.degreeOfDependencies,\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.services.degreeOfDependencyPlaceholder')},model:{value:(_vm.associate.degreeOfDependency),callback:function ($$v) {_vm.$set(_vm.associate, \"degreeOfDependency\", $$v)},expression:\"associate.degreeOfDependency\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.substituteType'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.substituteTypes,\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.services.substituteTypePlaceholder')},model:{value:(_vm.associate.substituteType),callback:function ($$v) {_vm.$set(_vm.associate, \"substituteType\", $$v)},expression:\"associate.substituteType\"}})],1)]),(_vm.associate.substituteType === _vm.substituteExternal)?[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.substituteServiceProvider'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.services.substituteServiceProviderPlaceholder')},model:{value:(_vm.associate.substitute),callback:function ($$v) {_vm.$set(_vm.associate, \"substitute\", $$v)},expression:\"associate.substitute\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfComparability'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.degreeOfComparabilities,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.enableSubstitutability,\"placeholder\":_vm.$t('bcm.partitions.deployments.services.degreeOfComparabilityPlaceholder')},model:{value:(_vm.associate.degreeOfComparability),callback:function ($$v) {_vm.$set(_vm.associate, \"degreeOfComparability\", $$v)},expression:\"associate.degreeOfComparability\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.timeToEnableSubstitute'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.timeToEnableSubstitutes,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.enableSubstitutability,\"placeholder\":_vm.$t('bcm.partitions.deployments.services.timeToEnableSubstitutePlaceholder')},model:{value:(_vm.associate.timeToEnableSubstitutability),callback:function ($$v) {_vm.$set(_vm.associate, \"timeToEnableSubstitutability\", $$v)},expression:\"associate.timeToEnableSubstitutability\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.costOfAlternativeService'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.costOfAlternativeServices,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.enableSubstitutability,\"placeholder\":_vm.$t('bcm.partitions.deployments.services.costOfAlternativeServicePlaceholder')},model:{value:(_vm.associate.costOfAlternative),callback:function ($$v) {_vm.$set(_vm.associate, \"costOfAlternative\", $$v)},expression:\"associate.costOfAlternative\"}})],1)])]:_vm._e(),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfSubstitutability'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.degreeOfSubstitutabilities,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":\"\"},model:{value:(_vm.degreeOfSubstitutability),callback:function ($$v) {_vm.degreeOfSubstitutability=$$v},expression:\"degreeOfSubstitutability\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.criticality'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.criticalitiesSelect,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":\"\"},model:{value:(_vm.isCritical),callback:function ($$v) {_vm.isCritical=$$v},expression:\"isCritical\"}})],1)]),(_vm.isCritical)?[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.criticality'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.criticalities,\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.associate.criticalityId),callback:function ($$v) {_vm.$set(_vm.associate, \"criticalityId\", $$v)},expression:\"associate.criticalityId\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.srbComment'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.services.justificationPlaceholder')},model:{value:(_vm.associate.srbComment),callback:function ($$v) {_vm.$set(_vm.associate, \"srbComment\", $$v)},expression:\"associate.srbComment\"}})],1)])]:_vm._e()],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport {\n CostOfAlternative,\n CostOfAlternativesSelect,\n CriticalitiesSelect,\n DegreeOfComparabilitiesSelect,\n DegreeOfComparability,\n DegreeOfDependenciesSelect,\n DegreeOfDependency,\n DegreeOfSubstitutabilitiesSelect,\n DegreeOfSubstitutability,\n PartitionServiceAssociateDto,\n SubstituteType,\n SubstituteTypeExternalSelect,\n TimeToEnableSubstitutabilitiesSelect,\n TimeToEnableSubstitutability,\n} from '@/dtos';\nimport { ContractDto } from '@/dtos/srb';\nimport { ApplicationModule } from '@/store';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport ItemSelectorTextField from '@/components/all/ItemSelectorTextField.vue';\nimport { PdDataTableHeader } from '@/components/core/PdDataTable';\nimport i18n from '@/i18n';\nimport { ISelectItem } from '@/core';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\n\nexport default defineComponent({\n name: 'BiaServiceDetailsAssociateEditor',\n\n components: {\n PdPopupCard,\n ItemSelectorTextField,\n },\n\n props: {\n service: {\n type: String,\n required: true,\n },\n\n associate: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const entityId = ApplicationModule.Entity?.id;\n if (entityId == null) {\n throw new Error('entity is null...');\n }\n\n const contracts = new ApiDataSource({ api: `masterplans/${entityId}/bc/Associates/${props.associate.associateId}/Contracts` });\n\n const criticalities = ref>([]);\n\n const enableSubstitutability = computed(() => {\n return props.associate.substituteType === SubstituteType.External;\n });\n\n const degreeOfSubstitutability = computed(() => {\n if (!enableSubstitutability.value) {\n return DegreeOfSubstitutability.NotSubstitutable;\n }\n\n if (props.associate.timeToEnableSubstitutability == null || props.associate.timeToEnableSubstitutability < 1 ||\n props.associate.degreeOfComparability == null || props.associate.degreeOfComparability < 1 ||\n props.associate.costOfAlternative == null || props.associate.costOfAlternative < 1\n ) {\n return DegreeOfSubstitutability.NotSubstitutable;\n }\n\n if (props.associate.timeToEnableSubstitutability >= TimeToEnableSubstitutability.HalfYearToYear) {\n return DegreeOfSubstitutability.Low;\n }\n\n if (props.associate.degreeOfComparability === DegreeOfComparability.Low) {\n return DegreeOfSubstitutability.Low;\n }\n\n if (props.associate.degreeOfComparability === DegreeOfComparability.High &&\n props.associate.timeToEnableSubstitutability <= TimeToEnableSubstitutability.WeekToMonth &&\n props.associate.costOfAlternative === CostOfAlternative.ComparableToCurrent) {\n return DegreeOfSubstitutability.High;\n }\n\n if (props.associate.degreeOfComparability === DegreeOfComparability.Medium &&\n props.associate.costOfAlternative === CostOfAlternative.NotComparableToCurrent) {\n return DegreeOfSubstitutability.Low;\n }\n\n if (props.associate.degreeOfComparability === DegreeOfComparability.High &&\n props.associate.timeToEnableSubstitutability > TimeToEnableSubstitutability.WeekToMonth &&\n props.associate.costOfAlternative === CostOfAlternative.NotComparableToCurrent) {\n return DegreeOfSubstitutability.Low;\n }\n\n return DegreeOfSubstitutability.Medium;\n });\n\n const isCritical = computed(() => {\n if (props.associate.degreeOfDependency == null ||\n props.associate.degreeOfDependency < DegreeOfDependency.Low ||\n props.associate.degreeOfSubstitutability == null ||\n props.associate.degreeOfComparability == null) {\n return false;\n }\n\n if (props.associate.degreeOfDependency === DegreeOfDependency.Low ||\n props.associate.degreeOfSubstitutability === DegreeOfSubstitutability.High ||\n props.associate.degreeOfComparability >= DegreeOfComparability.Medium) {\n return false;\n } else {\n return true;\n }\n });\n\n watch(\n () => props.associate.existingContract,\n (newValue) => {\n if (newValue === false) {\n props.associate.contractId = undefined;\n }\n },\n );\n\n function saveChanges() {\n emit('save');\n }\n\n function cancelChanges() {\n emit('cancel');\n }\n\n function contractTemplate(contract: ContractDto): string {\n return `(${contract.contractId}) ${contract.description}`;\n }\n\n const contractHeaders: Array> = [\n {\n id: 'contractId',\n text: i18n.t('srb.contracts.contractId').toString(),\n value: 'contractId',\n },\n {\n id: 'description',\n text: i18n.t('srb.contracts.description').toString(),\n value: 'description',\n defaultValue: '',\n },\n ];\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n (await DatasourcesService.Srb.Criticalities.data())\n .forEach(c => {\n criticalities.value.push({ text: LanguageTemplate(c, 'name').text, value: c.id });\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n saveChanges,\n cancelChanges,\n contracts,\n contractTemplate,\n contractHeaders,\n\n enableSubstitutability,\n\n degreeOfDependencies: DegreeOfDependenciesSelect,\n degreeOfComparabilities: DegreeOfComparabilitiesSelect,\n timeToEnableSubstitutes: TimeToEnableSubstitutabilitiesSelect,\n costOfAlternativeServices: CostOfAlternativesSelect,\n degreeOfSubstitutabilities: DegreeOfSubstitutabilitiesSelect,\n criticalitiesSelect: CriticalitiesSelect,\n substituteTypes: SubstituteTypeExternalSelect,\n\n degreeOfSubstitutability,\n isCritical,\n\n criticalities,\n\n substituteExternal: SubstituteType.External,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServiceDetailsAssociateEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServiceDetailsAssociateEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaServiceDetailsAssociateEditor.vue?vue&type=template&id=4018f15a&scoped=true&\"\nimport script from \"./BiaServiceDetailsAssociateEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaServiceDetailsAssociateEditor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4018f15a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCheckbox,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"my-2\",staticStyle:{\"font-size\":\".875rem\"}},[_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(!_vm.readonly)?_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.menu)+\" \")])],1):_vm._e()]}}])},[_c('v-list',[(_vm.needsTaxonomy)?_c('v-list-item',{on:{\"click\":_vm.editTaxonomy}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.edit)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.editTaxonomy'))+\" \")])],1):_vm._e(),_c('v-list-item',{on:{\"click\":_vm.remove}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.remove)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('remove'))+\" \")])],1)],1)],1)],1),_c('v-col',[_c('h4',[_vm._v(\" \"+_vm._s(_vm.associate.associate)+\" \")])])],1),(_vm.needsTaxonomy)?_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.associate.contract'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfDependency'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.substituteServiceProvider'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfComparability'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.timeToEnableSubstitute'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.costOfAlternativeService'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfSubstitutability'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.criticality'))+\" \")])])]),_c('tbody',[_c('tr',{staticStyle:{\"cursor\":\"pointer\"},style:(_vm.taxonomyStyle),on:{\"dblclick\":function($event){$event.stopPropagation();return _vm.editTaxonomy($event)}}},[_c('td',{staticStyle:{\"width\":\"30%\"}},[_c('h5',[_vm._v(\" \"+_vm._s(_vm.associate.displayContractId)+\" \")]),_vm._v(\" \"+_vm._s(_vm.associate.displayContractDescription)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm.degreeOfDependency)+\" \")]),_c('td',[(_vm.associate.substituteType === _vm.substituteExternal)?[_vm._v(\" \"+_vm._s(_vm.associate.substitute)+\" \")]:[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.substituteTypes.na'))+\" \")]],2),_c('td',[_vm._v(\" \"+_vm._s(_vm.degreeOfComparability)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm.timeToEnableSubstitutability)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm.costOfAlternative)+\" \")]),_c('td',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(\" \"+_vm._s(_vm.degreeOfSubstitutability)+\" \")]),_c('td',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(\" \"+_vm._s(_vm.isCritical)+\" \")])]),(_vm.associate.isCritical)?_c('tr',[_c('td',{attrs:{\"colspan\":\"5\"}}),_c('td',{attrs:{\"colspan\":\"3\"}},[_c('h5',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.srbComment'))+\": \")]),_vm._v(\" \"+_vm._s(_vm.associate.srbComment)+\" \")])]):_vm._e()])]):_vm._e(),(_vm.needsTaxonomy)?_c('v-divider'):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport icons from '@/core/icons';\nimport {\n CostOfAlternativesSelect,\n CriticalitiesSelect,\n DegreeOfComparabilitiesSelect,\n DegreeOfDependenciesSelect,\n DegreeOfSubstitutabilitiesSelect,\n PartitionServiceAssociateDto,\n SubstituteType,\n TimeToEnableSubstitutabilitiesSelect,\n} from '@/dtos';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport { TranslateResult } from 'vue-i18n';\n\nexport default defineComponent({\n name: 'BiaServiceDetailsAssociateLine',\n\n props: {\n associate: {\n type: Object as PropType,\n required: true,\n },\n\n needsTaxonomy: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props, { emit }) {\n function remove() {\n emit('remove', props.associate);\n }\n\n function editTaxonomy() {\n if (!props.readonly) {\n emit('edit', props.associate);\n }\n }\n\n const taxonomyStyle = computed(() => {\n if (props.associate.degreeOfSubstitutability == null || props.associate.degreeOfSubstitutability < 1) {\n return { 'background-color': '#ff000022' };\n }\n });\n\n const degreeOfDependency = computed(() => {\n const v = DegreeOfDependenciesSelect.find(i => i.value === props.associate.degreeOfDependency);\n if (v == null) {\n return '';\n }\n\n return v.text;\n });\n const degreeOfComparability = computed(() => {\n const v = DegreeOfComparabilitiesSelect.find(i => i.value === props.associate.degreeOfComparability);\n if (v == null) {\n return '';\n }\n\n return v.text;\n });\n const timeToEnableSubstitutability = computed(() => {\n const v = TimeToEnableSubstitutabilitiesSelect.find(i => i.value === props.associate.timeToEnableSubstitutability);\n if (v == null) {\n return '';\n }\n\n return v.text;\n });\n const costOfAlternative = computed(() => {\n const v = CostOfAlternativesSelect.find(i => i.value === props.associate.costOfAlternative);\n if (v == null) {\n return '';\n }\n\n return v.text;\n });\n const degreeOfSubstitutability = computed(() => {\n const v = DegreeOfSubstitutabilitiesSelect.find(i => i.value === props.associate.degreeOfSubstitutability);\n if (v == null) {\n return '';\n }\n\n return v.text;\n });\n const isCritical = computed(() => {\n if (degreeOfSubstitutability.value === '') {\n return '';\n }\n const v = CriticalitiesSelect.find(i => i.value === props.associate.isCritical);\n if (v == null) {\n return '';\n }\n\n return v.text;\n });\n\n return {\n remove,\n editTaxonomy,\n\n taxonomyStyle,\n\n degreeOfDependency,\n degreeOfComparability,\n timeToEnableSubstitutability,\n costOfAlternative,\n degreeOfSubstitutability,\n isCritical,\n\n substituteExternal: SubstituteType.External,\n\n icons: {\n remove: icons.delete,\n edit: icons.edit,\n menu: icons.menu,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServiceDetailsAssociateLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServiceDetailsAssociateLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaServiceDetailsAssociateLine.vue?vue&type=template&id=4b7c000e&scoped=true&\"\nimport script from \"./BiaServiceDetailsAssociateLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaServiceDetailsAssociateLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4b7c000e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VBtn,VCol,VDivider,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu,VRow,VSimpleTable})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport { ArrayDataSource } from '@/core/datasource';\nimport icons from '@/core/icons';\nimport { PartitionAssociateDto, PartitionServiceAssociateDto, PartitionServiceDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport { BiaService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService, { PopupMessageButtonNo, PopupMessageButtonYes } from '@/services/PopupMessageService';\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { cloneDeep } from 'lodash';\nimport { v4 } from 'uuid';\nimport BiaServiceDetailsAssociateEditor from './BiaServiceDetailsAssociateEditor.vue';\nimport BiaServiceDetailsAssociateLine from './BiaServiceDetailsAssociateLine.vue';\n\nexport default defineComponent({\n name: 'BiaServiceDetailsAssociates',\n\n components:\n {\n ItemSelector,\n BiaServiceDetailsAssociateLine,\n BiaServiceDetailsAssociateEditor,\n },\n\n props: {\n partitionId: {\n type: Number,\n required: true,\n },\n\n service: {\n type: Object as PropType,\n required: true,\n },\n\n associates: {\n type: Object as PropType,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props) {\n const showAssociatesSelector = ref(false);\n const editingAssociate = ref(null);\n\n const showAssociateEditor = computed(() => editingAssociate.value != null);\n\n const existingAssociates = computed>(() => {\n return props.service.associates.map(i => i.partitionAssociateId);\n });\n\n function editAssociateTaxonomy(associate: PartitionServiceAssociateDto) {\n editingAssociate.value = cloneDeep(associate);\n }\n\n function cancelEdit() {\n editingAssociate.value = null;\n }\n\n async function saveAssociateEdit() {\n if (editingAssociate.value == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const ret = await BiaService.UpdatePartitionServiceAssociate(props.partitionId, props.service.id, editingAssociate.value);\n\n for (let i = 0; i < props.service.associates.length; ++i) {\n if (props.service.associates[i].uuid === editingAssociate.value.uuid) {\n props.service.associates.splice(i, 1, ret);\n break;\n }\n }\n\n editingAssociate.value = null;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function remove(associate: PartitionServiceAssociateDto) {\n PopupMessageService.SetMessage({\n title: i18n.t('confirmation'),\n text: i18n.t('bcm.bia.partition.services.removeAssociateMessage', { associate: associate.associate, service: props.service.service }),\n index: 100,\n buttons: [\n PopupMessageButtonYes(async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await BiaService.DeletePartitionServiceAssociate(props.partitionId, props.service.id, associate);\n\n for (let i = 0; i < props.service.associates.length; ++i) {\n if (props.service.associates[i].uuid === associate.uuid) {\n props.service.associates.splice(i, 1);\n return;\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n async function addAssociate(associate: PartitionAssociateDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n showAssociatesSelector.value = false;\n const resp = await BiaService.CreatePartitionServiceAssociate(props.partitionId, props.service.id, associate);\n resp.uuid = v4();\n props.service.associates.push(resp);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n showAssociatesSelector,\n addAssociate,\n existingAssociates,\n\n remove,\n\n editAssociateTaxonomy,\n editingAssociate,\n showAssociateEditor,\n saveAssociateEdit,\n cancelEdit,\n\n icons: {\n add: icons.plus,\n remove: icons.delete,\n edit: icons.edit,\n menu: icons.menu,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServiceDetailsAssociates.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServiceDetailsAssociates.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaServiceDetailsAssociates.vue?vue&type=template&id=1d5f69fb&scoped=true&\"\nimport script from \"./BiaServiceDetailsAssociates.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaServiceDetailsAssociates.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1d5f69fb\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VDivider,VIcon,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showPersonnelSelector)?_c('item-selector',{attrs:{\"datasource\":_vm.personnel,\"translatable\":false,\"column\":\"person\",\"exclude\":_vm.existingPersonnel},on:{\"select\":_vm.addPersonnel,\"cancel\":function($event){_vm.showPersonnelSelector = false}}}):_vm._e(),(_vm.showPersonnelEditor)?_c('bia-service-details-personnel-editor',{attrs:{\"service\":_vm.service.service,\"person\":_vm.editingPerson,\"personnel\":_vm.personnel},on:{\"save\":_vm.savePersonnelEdit,\"cancel\":_vm.cancelEdit}}):_vm._e(),_c('v-row',{attrs:{\"dense\":\"\",\"no-gutters\":\"\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"shrink mr-4\",staticStyle:{\"white-space\":\"nowrap\"}},[_c('h4',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.personnel'))+\" \")])]),(!_vm.readonly)?_c('v-col',[_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showPersonnelSelector = true}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.add)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \")],1)],1):_vm._e()],1),_vm._l((_vm.service.personnel),function(p){return _c('bia-service-details-personnel-line',{key:p.uuid,attrs:{\"person\":p,\"readonly\":_vm.readonly,\"needs-taxonomy\":_vm.service.needsTaxonomy},on:{\"edit\":_vm.editPersonTaxonomy,\"remove\":_vm.remove}})}),_c('v-divider')],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup-card',{attrs:{\"index\":10},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.service)+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancelChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")])]},proxy:true}])},[_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.personnels.currentPerson'))+\" \")]),_c('td',[_c('v-text-field',{staticClass:\"my-0\",attrs:{\"value\":_vm.person.person,\"disabled\":\"\",\"dense\":\"\",\"hide-details\":\"\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfDependency'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.degreeOfDependencies,\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.services.degreeOfDependencyPlaceholder')},model:{value:(_vm.person.degreeOfDependency),callback:function ($$v) {_vm.$set(_vm.person, \"degreeOfDependency\", $$v)},expression:\"person.degreeOfDependency\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.substituteType'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.substituteTypes,\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.services.substituteTypePlaceholder')},model:{value:(_vm.person.substituteType),callback:function ($$v) {_vm.$set(_vm.person, \"substituteType\", $$v)},expression:\"person.substituteType\"}})],1)]),(_vm.enableSubstitutability)?[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.substituteServiceProvider'))+\" \")]),_c('td',[(_vm.person.substituteType === _vm.substituteExternal)?_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.services.externalSubstitutePlaceholder')},model:{value:(_vm.person.substitute),callback:function ($$v) {_vm.$set(_vm.person, \"substitute\", $$v)},expression:\"person.substitute\"}}):_c('item-selector-text-field',{attrs:{\"datasource\":_vm.personnel,\"display-field\":_vm.personTemplate,\"headers\":_vm.personnelHeaders,\"excluded-items\":[_vm.person.partitionPersonnelId],\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.services.internalSubstitutePlaceholder')},model:{value:(_vm.person.substitutePersonId),callback:function ($$v) {_vm.$set(_vm.person, \"substitutePersonId\", $$v)},expression:\"person.substitutePersonId\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfComparability'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.degreeOfComparabilities,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.enableSubstitutability,\"placeholder\":_vm.$t('bcm.partitions.deployments.services.degreeOfComparabilityPlaceholder')},model:{value:(_vm.person.degreeOfComparability),callback:function ($$v) {_vm.$set(_vm.person, \"degreeOfComparability\", $$v)},expression:\"person.degreeOfComparability\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.timeToEnableSubstitute'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.timeToEnableSubstitutes,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.enableSubstitutability,\"placeholder\":_vm.$t('bcm.partitions.deployments.services.timeToEnableSubstitutePlaceholder')},model:{value:(_vm.person.timeToEnableSubstitutability),callback:function ($$v) {_vm.$set(_vm.person, \"timeToEnableSubstitutability\", $$v)},expression:\"person.timeToEnableSubstitutability\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.costOfAlternativeService'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.costOfAlternativeServices,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.enableSubstitutability,\"placeholder\":_vm.$t('bcm.partitions.deployments.services.costOfAlternativeServicePlaceholder')},model:{value:(_vm.person.costOfAlternative),callback:function ($$v) {_vm.$set(_vm.person, \"costOfAlternative\", $$v)},expression:\"person.costOfAlternative\"}})],1)])]:_vm._e(),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfSubstitutability'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.degreeOfSubstitutabilities,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":\"\"},model:{value:(_vm.degreeOfSubstitutability),callback:function ($$v) {_vm.degreeOfSubstitutability=$$v},expression:\"degreeOfSubstitutability\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.isCritical'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.criticalitiesSelect,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":\"\"},model:{value:(_vm.isCritical),callback:function ($$v) {_vm.isCritical=$$v},expression:\"isCritical\"}})],1)]),(_vm.isCritical)?[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.criticality'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.criticalities,\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.person.criticalityId),callback:function ($$v) {_vm.$set(_vm.person, \"criticalityId\", $$v)},expression:\"person.criticalityId\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.srbComment'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"placeholder\":_vm.$t('bcm.partitions.deployments.services.justificationPlaceholder')},model:{value:(_vm.person.srbComment),callback:function ($$v) {_vm.$set(_vm.person, \"srbComment\", $$v)},expression:\"person.srbComment\"}})],1)])]:_vm._e()],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport {\n CostOfAlternative,\n CostOfAlternativesSelect,\n CriticalitiesSelect,\n DegreeOfComparabilitiesSelect,\n DegreeOfComparability,\n DegreeOfDependenciesSelect,\n DegreeOfDependency,\n DegreeOfSubstitutabilitiesSelect,\n DegreeOfSubstitutability,\n PartitionPersonnelDto,\n PartitionServicePersonnelDto,\n SubstituteType,\n SubstituteTypeSelect,\n TimeToEnableSubstitutabilitiesSelect,\n TimeToEnableSubstitutability,\n} from '@/dtos';\nimport { ContractDto } from '@/dtos/srb';\nimport { ApplicationModule } from '@/store';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport ItemSelectorTextField from '@/components/all/ItemSelectorTextField.vue';\nimport { PdDataTableHeader } from '@/components/core/PdDataTable';\nimport i18n from '@/i18n';\nimport DatasourceBase from '@/core/helpers/datasources/DatasourceBase';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { ISelectItem } from '@/core';\n\nexport default defineComponent({\n name: 'BiaServiceDetailsPersonnelEditor',\n\n components: {\n PdPopupCard,\n ItemSelectorTextField,\n },\n\n props: {\n service: {\n type: String,\n required: true,\n },\n\n person: {\n type: Object as PropType,\n required: true,\n },\n\n personnel: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const entityId = ApplicationModule.Entity?.id;\n if (entityId == null) {\n throw new Error('entity is null...');\n }\n\n const criticalities = ref>([]);\n\n const enableSubstitutability = computed(() => {\n return props.person.substituteType != null &&\n props.person.substituteType !== SubstituteType.NA;\n });\n\n const degreeOfSubstitutability = computed(() => {\n if (props.person.substituteType === SubstituteType.NA) {\n return DegreeOfSubstitutability.NotSubstitutable;\n }\n\n if (props.person.substituteType === SubstituteType.Internal) {\n if (props.person.timeToEnableSubstitutability == null || props.person.timeToEnableSubstitutability < 1 ||\n props.person.degreeOfComparability == null || props.person.degreeOfComparability < 1 ||\n props.person.costOfAlternative == null || props.person.costOfAlternative < 1\n ) {\n return DegreeOfSubstitutability.NotSubstitutable;\n }\n\n if (props.person.timeToEnableSubstitutability >= TimeToEnableSubstitutability.HalfYearToYear) {\n return DegreeOfSubstitutability.Low;\n }\n\n if (props.person.degreeOfComparability === DegreeOfComparability.High &&\n props.person.timeToEnableSubstitutability <= TimeToEnableSubstitutability.WeekToMonth) {\n return DegreeOfSubstitutability.High;\n }\n\n return DegreeOfSubstitutability.Medium;\n }\n\n // external\n if (props.person.timeToEnableSubstitutability == null || props.person.timeToEnableSubstitutability < 1 ||\n props.person.degreeOfComparability == null || props.person.degreeOfComparability < 1 ||\n props.person.costOfAlternative == null || props.person.costOfAlternative < 1\n ) {\n return DegreeOfSubstitutability.NotSubstitutable;\n }\n\n if (props.person.timeToEnableSubstitutability >= TimeToEnableSubstitutability.HalfYearToYear) {\n return DegreeOfSubstitutability.Low;\n }\n\n if (props.person.degreeOfComparability === DegreeOfComparability.Low) {\n return DegreeOfSubstitutability.Low;\n }\n\n if (props.person.degreeOfComparability === DegreeOfComparability.High &&\n props.person.timeToEnableSubstitutability <= TimeToEnableSubstitutability.WeekToMonth &&\n props.person.costOfAlternative === CostOfAlternative.ComparableToCurrent) {\n return DegreeOfSubstitutability.High;\n }\n\n if (props.person.degreeOfComparability === DegreeOfComparability.Medium &&\n props.person.costOfAlternative === CostOfAlternative.NotComparableToCurrent) {\n return DegreeOfSubstitutability.Low;\n }\n\n if (props.person.degreeOfComparability === DegreeOfComparability.High &&\n props.person.timeToEnableSubstitutability > TimeToEnableSubstitutability.WeekToMonth &&\n props.person.costOfAlternative === CostOfAlternative.NotComparableToCurrent) {\n return DegreeOfSubstitutability.Low;\n }\n\n return DegreeOfSubstitutability.Medium;\n });\n\n const isCritical = computed(() => {\n if (props.person.degreeOfDependency == null ||\n props.person.degreeOfDependency < DegreeOfDependency.Low ||\n props.person.degreeOfSubstitutability == null ||\n props.person.degreeOfComparability == null) {\n return false;\n }\n\n if (props.person.degreeOfDependency === DegreeOfDependency.Low ||\n props.person.degreeOfSubstitutability === DegreeOfSubstitutability.High ||\n props.person.degreeOfComparability >= DegreeOfComparability.Medium) {\n return false;\n } else {\n return true;\n }\n });\n\n watch(\n () => props.person.existingContract,\n (newValue) => {\n if (newValue === false) {\n props.person.contractId = undefined;\n }\n },\n );\n\n function saveChanges() {\n emit('save');\n }\n\n function cancelChanges() {\n emit('cancel');\n }\n\n function personTemplate(person: PartitionPersonnelDto): string {\n return `${person.person}`;\n }\n\n const personnelHeaders: Array> = [\n {\n id: 'person',\n text: i18n.t('name').toString(),\n value: 'person',\n },\n ];\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n (await DatasourcesService.Srb.Criticalities.data())\n .forEach(c => {\n criticalities.value.push({ text: LanguageTemplate(c, 'name').text, value: c.id });\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n saveChanges,\n cancelChanges,\n personTemplate,\n personnelHeaders,\n\n enableSubstitutability,\n\n degreeOfDependencies: DegreeOfDependenciesSelect,\n degreeOfComparabilities: DegreeOfComparabilitiesSelect,\n timeToEnableSubstitutes: TimeToEnableSubstitutabilitiesSelect,\n costOfAlternativeServices: CostOfAlternativesSelect,\n degreeOfSubstitutabilities: DegreeOfSubstitutabilitiesSelect,\n criticalitiesSelect: CriticalitiesSelect,\n substituteTypes: SubstituteTypeSelect,\n\n degreeOfSubstitutability,\n isCritical,\n\n criticalities,\n\n substituteExternal: SubstituteType.External,\n substituteInternal: SubstituteType.Internal,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServiceDetailsPersonnelEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServiceDetailsPersonnelEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaServiceDetailsPersonnelEditor.vue?vue&type=template&id=e72360f0&scoped=true&\"\nimport script from \"./BiaServiceDetailsPersonnelEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaServiceDetailsPersonnelEditor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e72360f0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"my-2\",staticStyle:{\"font-size\":\".875rem\"}},[_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(!_vm.readonly)?_c('v-btn',_vm._g(_vm._b({attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.menu)+\" \")])],1):_vm._e()]}}])},[_c('v-list',[(_vm.needsTaxonomy)?_c('v-list-item',{on:{\"click\":_vm.editTaxonomy}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.edit)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.editTaxonomy'))+\" \")])],1):_vm._e(),_c('v-list-item',{on:{\"click\":_vm.remove}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.remove)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('remove'))+\" \")])],1)],1)],1)],1),_c('v-col',[_c('h4',[_vm._v(\" \"+_vm._s(_vm.person.person)+\" \")])])],1),(_vm.needsTaxonomy)?_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfDependency'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.substituteType'))+\" \")]),(_vm.showSubstituteColumns)?[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.substituteServiceProvider'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfComparability'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.timeToEnableSubstitute'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.costOfAlternativeService'))+\" \")])]:_vm._e(),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfSubstitutability'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.criticality'))+\" \")])],2)]),_c('tbody',[_c('tr',{staticStyle:{\"cursor\":\"pointer\"},style:(_vm.taxonomyStyle),on:{\"dblclick\":function($event){$event.stopPropagation();return _vm.editTaxonomy($event)}}},[_c('td',[_vm._v(\" \"+_vm._s(_vm.degreeOfDependency)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm.substituteType)+\" \")]),(_vm.showSubstituteColumns)?[_c('td',[(_vm.person.substituteType === _vm.substituteInternal)?[_vm._v(\" \"+_vm._s(_vm.person.substitutePerson)+\" \")]:[_vm._v(\" \"+_vm._s(_vm.person.substitute)+\" \")]],2),_c('td',[_vm._v(\" \"+_vm._s(_vm.degreeOfComparability)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm.timeToEnableSubstitutability)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm.costOfAlternative)+\" \")])]:_vm._e(),_c('td',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(\" \"+_vm._s(_vm.degreeOfSubstitutability)+\" \")]),_c('td',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(\" \"+_vm._s(_vm.isCritical)+\" \")])],2),(_vm.person.isCritical)?_c('tr',[_c('td',{attrs:{\"colspan\":_vm.person.substituteType === _vm.substituteNA ? 2 : 4}}),_c('td',{attrs:{\"colspan\":_vm.person.substituteType === _vm.substituteNA ? 2 : 4}},[_c('h5',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.srbComment'))+\": \")]),_vm._v(\" \"+_vm._s(_vm.person.srbComment)+\" \")])]):_vm._e()])]):_vm._e(),(_vm.needsTaxonomy)?_c('v-divider'):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport icons from '@/core/icons';\nimport {\n CostOfAlternativesSelect,\n CriticalitiesSelect,\n DegreeOfComparabilitiesSelect,\n DegreeOfDependenciesSelect,\n DegreeOfSubstitutabilitiesSelect,\n PartitionServicePersonnelDto,\n SubstituteType,\n SubstituteTypeSelect,\n TimeToEnableSubstitutabilitiesSelect,\n} from '@/dtos';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport { TranslateResult } from 'vue-i18n';\n\nexport default defineComponent({\n name: 'BiaServiceDetailsPersonnelLine',\n\n props: {\n person: {\n type: Object as PropType,\n required: true,\n },\n\n needsTaxonomy: {\n type: Boolean,\n default: false,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props, { emit }) {\n function remove() {\n emit('remove', props.person);\n }\n\n function editTaxonomy() {\n if (!props.readonly) {\n emit('edit', props.person);\n }\n }\n\n const taxonomyStyle = computed(() => {\n if (props.person.degreeOfSubstitutability == null || props.person.degreeOfSubstitutability < 1) {\n return { 'background-color': '#ff000022' };\n }\n });\n\n const degreeOfDependency = computed(() => {\n const v = DegreeOfDependenciesSelect.find(i => i.value === props.person.degreeOfDependency);\n if (v == null) {\n return '';\n }\n\n return v.text;\n });\n\n const substituteType = computed(() => {\n const v = SubstituteTypeSelect.find(i => i.value === props.person.substituteType);\n if (v == null) {\n return '';\n }\n\n return v.text;\n });\n\n const showSubstituteColumns = computed(() => {\n return props.person.substituteType !== SubstituteType.NA;\n });\n\n const degreeOfComparability = computed(() => {\n const v = DegreeOfComparabilitiesSelect.find(i => i.value === props.person.degreeOfComparability);\n if (v == null) {\n return '';\n }\n\n return v.text;\n });\n const timeToEnableSubstitutability = computed(() => {\n const v = TimeToEnableSubstitutabilitiesSelect.find(i => i.value === props.person.timeToEnableSubstitutability);\n if (v == null) {\n return '';\n }\n\n return v.text;\n });\n const costOfAlternative = computed(() => {\n const v = CostOfAlternativesSelect.find(i => i.value === props.person.costOfAlternative);\n if (v == null) {\n return '';\n }\n\n return v.text;\n });\n const degreeOfSubstitutability = computed(() => {\n const v = DegreeOfSubstitutabilitiesSelect.find(i => i.value === props.person.degreeOfSubstitutability);\n if (v == null) {\n return '';\n }\n\n return v.text;\n });\n const isCritical = computed(() => {\n if (degreeOfSubstitutability.value === '') {\n return '';\n }\n const v = CriticalitiesSelect.find(i => i.value === props.person.isCritical);\n if (v == null) {\n return '';\n }\n\n return v.text;\n });\n\n return {\n remove,\n editTaxonomy,\n\n taxonomyStyle,\n\n degreeOfDependency,\n substituteType,\n showSubstituteColumns,\n degreeOfComparability,\n timeToEnableSubstitutability,\n costOfAlternative,\n degreeOfSubstitutability,\n isCritical,\n\n substituteExternal: SubstituteType.External,\n substituteInternal: SubstituteType.Internal,\n substituteNA: SubstituteType.NA,\n\n icons: {\n remove: icons.delete,\n edit: icons.edit,\n menu: icons.menu,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServiceDetailsPersonnelLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServiceDetailsPersonnelLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaServiceDetailsPersonnelLine.vue?vue&type=template&id=93e61afa&scoped=true&\"\nimport script from \"./BiaServiceDetailsPersonnelLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaServiceDetailsPersonnelLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"93e61afa\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VBtn,VCol,VDivider,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu,VRow,VSimpleTable})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport { ArrayDataSource } from '@/core/datasource';\nimport icons from '@/core/icons';\nimport { PartitionPersonnelDto, PartitionServicePersonnelDto, PartitionServiceDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport { BiaService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService, { PopupMessageButtonNo, PopupMessageButtonYes } from '@/services/PopupMessageService';\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { cloneDeep } from 'lodash';\nimport { v4 } from 'uuid';\nimport BiaServiceDetailsPersonnelEditor from './BiaServiceDetailsPersonnelEditor.vue';\nimport BiaServiceDetailsPersonnelLine from './BiaServiceDetailsPersonnelLine.vue';\n\nexport default defineComponent({\n name: 'BiaServiceDetailsPersonnel',\n\n components:\n {\n ItemSelector,\n BiaServiceDetailsPersonnelLine,\n BiaServiceDetailsPersonnelEditor,\n },\n\n props: {\n partitionId: {\n type: Number,\n required: true,\n },\n\n service: {\n type: Object as PropType,\n required: true,\n },\n\n personnel: {\n type: Object as PropType,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props) {\n const showPersonnelSelector = ref(false);\n const editingPerson = ref(null);\n\n const showPersonnelEditor = computed(() => editingPerson.value != null);\n\n const existingPersonnel = computed>(() => {\n return props.service.personnel.map(i => i.partitionPersonnelId);\n });\n\n function editPersonTaxonomy(personnel: PartitionServicePersonnelDto) {\n editingPerson.value = cloneDeep(personnel);\n }\n\n function cancelEdit() {\n editingPerson.value = null;\n }\n\n async function savePersonnelEdit() {\n if (editingPerson.value == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const ret = await BiaService.UpdatePartitionServicePersonnel(props.partitionId, props.service.id, editingPerson.value);\n\n for (let i = 0; i < props.service.personnel.length; ++i) {\n if (props.service.personnel[i].uuid === editingPerson.value.uuid) {\n props.service.personnel.splice(i, 1, ret);\n break;\n }\n }\n\n editingPerson.value = null;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function remove(personnel: PartitionServicePersonnelDto) {\n PopupMessageService.SetMessage({\n title: i18n.t('confirmation'),\n text: i18n.t('bcm.bia.partition.services.removePersonnelMessage', { personnel: personnel.personnel, service: props.service.service }),\n index: 100,\n buttons: [\n PopupMessageButtonYes(async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await BiaService.DeletePartitionServicePersonnel(props.partitionId, props.service.id, personnel);\n\n for (let i = 0; i < props.service.personnel.length; ++i) {\n if (props.service.personnel[i].uuid === personnel.uuid) {\n props.service.personnel.splice(i, 1);\n return;\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n async function addPersonnel(personnel: PartitionPersonnelDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n showPersonnelSelector.value = false;\n const resp = await BiaService.CreatePartitionServicePersonnel(props.partitionId, props.service.id, personnel);\n resp.uuid = v4();\n props.service.personnel.push(resp);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n showPersonnelSelector,\n addPersonnel,\n existingPersonnel,\n\n remove,\n\n editPersonTaxonomy,\n editingPerson,\n showPersonnelEditor,\n savePersonnelEdit,\n cancelEdit,\n\n icons: {\n add: icons.plus,\n remove: icons.delete,\n edit: icons.edit,\n menu: icons.menu,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServiceDetailsPersonnel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServiceDetailsPersonnel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaServiceDetailsPersonnel.vue?vue&type=template&id=75105e30&scoped=true&\"\nimport script from \"./BiaServiceDetailsPersonnel.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaServiceDetailsPersonnel.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"75105e30\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VDivider,VIcon,VRow})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport { ArrayDataSource } from '@/core/datasource';\nimport icons from '@/core/icons';\nimport { PartitionServiceDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport { BiaService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService, { PopupMessageButtonNo, PopupMessageButtonYes } from '@/services/PopupMessageService';\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { cloneDeep } from 'lodash';\nimport BiaServiceDetailsApplications from './BiaServiceDetailsApplications.vue';\nimport BiaServiceDetailsAssociates from './BiaServiceDetailsAssociates.vue';\nimport BiaServiceDetailsPersonnel from './BiaServiceDetailsPersonnel.vue';\n\nexport default defineComponent({\n name: 'BiaServiceDetails',\n\n components: {\n BiaServiceDetailsApplications,\n BiaServiceDetailsAssociates,\n BiaServiceDetailsPersonnel,\n },\n\n props: {\n partitionId: {\n type: Number,\n required: true,\n },\n\n service: {\n type: Object as PropType,\n required: true,\n },\n\n applications: {\n type: Object as PropType,\n required: true,\n },\n\n associates: {\n type: Object as PropType,\n required: true,\n },\n\n rtoScales: {\n type: Array as PropType>,\n required: true,\n },\n\n personnel: {\n type: Object as PropType,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props, { emit }) {\n const applicationsCount = computed(() => {\n return props.service.applications.length;\n });\n\n const associatesCount = computed(() => {\n return props.service.associates.length;\n });\n\n const personnelCount = computed(() => {\n return props.service.personnel.length;\n });\n\n const rtoName = computed(() => {\n if (props.service.rtoId == null) {\n return '';\n }\n\n var scale = props.rtoScales.find((i) => i.value === props.service.rtoId);\n\n if (scale != null) {\n return scale.text.toString();\n }\n\n return '';\n });\n\n const newRtoId = ref(props.service.rtoId || null);\n\n function deleteService() {\n PopupMessageService.SetMessage({\n title: i18n.t('confirmation'),\n text: i18n.t('all.deployments.services.removeServiceConfirmation', { service: props.service.service }),\n index: 100,\n buttons: [\n PopupMessageButtonYes(() => emit('remove', props.service)),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n async function rtoChange() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const dto = cloneDeep(props.service);\n dto.rtoId = newRtoId.value;\n\n var res = await BiaService.UpdatePartitionServiceRto(props.partitionId, dto);\n props.service.rtoId = res.rtoId;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n\n newRtoId.value = props.service.rtoId || null;\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n applicationsCount,\n associatesCount,\n personnelCount,\n rtoName,\n\n deleteService,\n\n newRtoId,\n rtoChange,\n\n icons: {\n menu: icons.menu,\n delete: icons.delete,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServiceDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServiceDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaServiceDetails.vue?vue&type=template&id=341c0673&scoped=true&\"\nimport script from \"./BiaServiceDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaServiceDetails.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"341c0673\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu,VSelect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport icons from '@/core/icons';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport TreeItemSelector from '@/components/all/TreeItemSelector.vue';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { IDto, PartitionServiceDto } from '@/dtos';\nimport { ServiceDto } from '@/dtos/srb';\nimport { BiaService } from '@/services/bcm';\nimport { v4 } from 'uuid';\nimport BiaServiceDetails from './services/BiaServiceDetails.vue';\nimport { ArrayDataSource } from '@/core/datasource';\nimport { ISelectItem } from '@/core';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'BiaServices',\n\n components: {\n TreeItemSelector,\n BiaServiceDetails,\n },\n\n props: {\n partitionId: {\n type: Number,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n\n const activeServices = DatasourcesService.Bcm.ActiveServices;\n const existingServices = computed>(() => {\n return [];\n });\n\n const applications = ref(null);\n const associates = ref(null);\n const personnel = ref(null);\n const rtoScales = ref>([]);\n\n const showServiceSelector = ref(false);\n\n const services = ref>([]);\n\n watch(\n () => props.partitionId,\n () => {\n init();\n },\n { immediate: true },\n );\n\n async function addNewService(service: ServiceDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n showServiceSelector.value = false;\n const created = await BiaService.CreatePartitionService(props.partitionId, service);\n created.uuid = v4();\n services.value.push(created);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function removeService(service: PartitionServiceDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await BiaService.DeletePartitionService(props.partitionId, service.id);\n for (let i = 0; i < services.value.length; ++i) {\n if (services.value[i].uuid === service.uuid) {\n services.value.splice(i, 1);\n break;\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n var rtoAndMao = await BiaService.GetPartitionRtoAndMao(props.partitionId);\n\n var s = await BiaService.GetPartitionServices(props.partitionId);\n s.forEach(i => {\n i.uuid = v4();\n if (i.applications == null) {\n i.applications = [];\n }\n\n if (i.associates == null) {\n i.associates = [];\n }\n\n if (i.personnel == null) {\n i.personnel = [];\n }\n\n i.applications.forEach(j => { j.uuid = v4(); });\n i.associates.forEach(j => { j.uuid = v4(); });\n i.personnel.forEach(j => { j.uuid = v4(); });\n });\n\n services.value = s;\n\n var data = await DatasourcesService.Bcm.RtoScales.get();\n data.sort((a, b) => a.value - b.value).forEach(i => {\n if (i.value < (rtoAndMao.rtoValue || 0)) {\n return;\n }\n\n rtoScales.value.push({\n text: LanguageTemplate(i, 'name').text + ` (${i.value})`,\n value: i.id,\n });\n });\n\n applications.value = new ArrayDataSource(await BiaService.GetPartitionApplications(props.partitionId), {});\n associates.value = new ArrayDataSource(await BiaService.GetPartitionAssociates(props.partitionId), {});\n personnel.value = new ArrayDataSource(await BiaService.GetPartitionPersonnel(props.partitionId), {});\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n\n return {\n services,\n loading,\n\n showServiceSelector,\n activeServices,\n existingServices,\n addNewService,\n\n applications,\n associates,\n personnel,\n rtoScales,\n\n removeService,\n\n icons: {\n add: icons.plus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServices.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaServices.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaServices.vue?vue&type=template&id=2f950ad4&scoped=true&\"\nimport script from \"./BiaServices.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaServices.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2f950ad4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\ninstallComponents(component, {VAlert,VBtn,VExpansionPanels,VIcon,VProgressLinear})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup-card',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.partitionName)+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancelChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.warning)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.clearBia'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.warning)+\" \")])],1)]},proxy:true}])},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.clearBiaConfirmationMessage'))+\" \"),_c('br'),_c('b',[_vm._v(\" \"+_vm._s(_vm.confirmationMessage)+\" \")]),_c('v-text-field',{attrs:{\"error-messages\":_vm.userInputErrors},model:{value:(_vm.userInput),callback:function ($$v) {_vm.userInput=$$v},expression:\"userInput\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport icons from '@/core/icons';\nimport { BiaPartitionDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport { PartitionsService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport SnackbarMessageService from '@/services/SnackbarMessageService';\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\n\nexport default defineComponent({\n name: 'ClearBiaPopup',\n\n components: {\n PdPopupCard,\n\n },\n\n props: {\n partition: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const confirmationMessage = 'YES I AGREE';\n const userInput = ref('');\n const userInputErrors = ref('');\n\n const partitionName = computed(() => {\n return props.partition.name;\n });\n\n async function saveChanges() {\n userInputErrors.value = '';\n if (userInput.value.localeCompare(confirmationMessage) !== 0) {\n userInputErrors.value = 'Text does not match...';\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await PartitionsService.ClearPartitionBiaInfo(props.partition.id);\n\n SnackbarMessageService.SetMessage({ text: i18n.t('bcm.partitions.clearBiaSuccessfull') });\n emit('close');\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n partitionName,\n confirmationMessage,\n\n userInput,\n userInputErrors,\n\n saveChanges,\n cancelChanges: () => emit('close'),\n\n icons: {\n warning: icons.attention,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClearBiaPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClearBiaPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClearBiaPopup.vue?vue&type=template&id=4cb5ed09&scoped=true&\"\nimport script from \"./ClearBiaPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClearBiaPopup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4cb5ed09\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VIcon,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){$event.stopPropagation();},\"dblclick\":_vm.open}},[_c('td',{attrs:{\"slot\":\"column-name\"},slot:\"column-name\"},[_c('h4',[_vm._v(\" \"+_vm._s(_vm.deployment.name)+\" \")]),_c('div',{staticClass:\"caption\"},[_vm._v(\" \"+_vm._s(_vm.deployment.partition)+\" \")])]),_c('td',[_vm._v(\" \"+_vm._s(_vm.status)+\" \")]),_c('td',[_c('v-chip',{attrs:{\"small\":\"\",\"color\":_vm.userStatusColor}},[_vm._v(\" \"+_vm._s(_vm.userStatus)+\" \")])],1),_c('v-tooltip',{staticStyle:{\"background-color\":\"red\"},attrs:{\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('td',_vm._g(_vm._b({},'td',attrs,false),on),[(_vm.currentUser.length === 0)?_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.users)+\" \")]):_vm._l((_vm.currentUser),function(u){return _c('div',{key:u},[_vm._v(\" \"+_vm._s(u)+\" \")])})],2)]}}])},[_c('div',[(_vm.dataEntry.length > 0)?_c('div',{staticClass:\"mb-4\"},[_c('div',[_vm._v(_vm._s(_vm.$t('bcm.partitions.deployments.dataEntryUsers')))]),_vm._l((_vm.dataEntry),function(u){return _c('div',{key:u.id},[_vm._v(\" - \"+_vm._s(u.user.info)+\" - \"+_vm._s(_vm.getUserStatus(u.pathStatus))+\" \")])})],2):_vm._e(),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.approvalPathUsers'))+\" \")]),_vm._l((_vm.approvalPath),function(u){return _c('div',{key:u.id},[_vm._v(\" \"+_vm._s(u.order)+\" - \"+_vm._s(u.user.info)+\" - \"+_vm._s(_vm.getUserStatus(u.pathStatus))+\" \")])})],2)]),_c('td',{class:_vm.dueDateClass},[_vm._v(\" \"+_vm._s(_vm.dueDate)+\" \")]),_c('td',[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.open($event)}}},[_c('v-icon',{attrs:{\"title\":\"Open\"}},[_vm._v(\" \"+_vm._s(_vm.icons.open)+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { DeploymentStatusColor, DeploymentStatusTitle, getUserStatus, getUserStatusColor } from '@/components/all/deployments';\nimport { DateTemplate } from '@/core/helpers/templates';\nimport { DateFormat } from '@/core/helpers/templates/DateTemplate';\nimport icons from '@/core/icons';\nimport { PartitionDeploymentDto } from '@/dtos';\nimport { ApprovalPathStatus, DeploymentStatus, DeploymentUserDto } from '@/dtos/all';\nimport router from '@/router';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'DeploymentListLine',\n\n props: {\n deployment: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const statusClass = computed(() => {\n // color based on user status and due date\n if (props.deployment.status === DeploymentStatus.Finished) {\n return 'finished';\n }\n\n if (props.deployment.currentUserStatus === ApprovalPathStatus.Finished) {\n return 'user-finished';\n }\n\n if (props.deployment.dueDate != null) {\n const due = new Date(props.deployment.dueDate);\n const now = new Date();\n\n if (due > now) {\n return 'due-date-pass';\n }\n }\n\n if (props.deployment.currentUserStatus === ApprovalPathStatus.On) {\n return 'user-on';\n }\n\n if (props.deployment.currentUserStatus === ApprovalPathStatus.Pending) {\n return 'user-pending';\n }\n\n return '';\n });\n\n const dataEntry = computed>(() => {\n return props.deployment.users.filter(i => i.order === 0);\n });\n\n const approvalPath = computed>(() => {\n return props.deployment.users.filter(i => i.order > 0);\n });\n\n const dueDate = computed(() => {\n return DateTemplate(props.deployment.dueDate ?? '', DateFormat.Local).text;\n });\n\n const dueDateClass = computed(() => {\n if (props.deployment.status !== DeploymentStatus.Finished && props.deployment.dueDate != null) {\n const due = new Date(props.deployment.dueDate);\n const now = new Date();\n if (due < now) {\n return 'due-date-pass';\n }\n }\n\n return '';\n });\n\n const userStatus = computed(() => {\n return getUserStatus(props.deployment.currentUserStatus);\n });\n\n const userStatusColor = computed(() => {\n return getUserStatusColor(props.deployment.currentUserStatus);\n });\n\n const currentUser = computed>(() => {\n return props.deployment.users.filter(i => i.pathStatus === ApprovalPathStatus.On).map(i => i.user.info);\n });\n\n const status = computed(() => {\n return DeploymentStatusTitle(props.deployment);\n });\n\n function open() {\n router.push({ name: 'bcm.deployment', params: { deploymentId: props.deployment.id.toString() } });\n }\n\n return {\n open,\n statusClass,\n\n status,\n statusColor: DeploymentStatusColor(props.deployment),\n\n dueDate,\n dueDateClass,\n\n userStatus,\n userStatusColor,\n currentUser,\n\n dataEntry,\n approvalPath,\n\n getUserStatus: getUserStatus,\n\n icons: {\n open: icons.open,\n users: icons.user,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeploymentListLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeploymentListLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeploymentListLine.vue?vue&type=template&id=64b4b9f0&scoped=true&\"\nimport script from \"./DeploymentListLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeploymentListLine.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DeploymentListLine.vue?vue&type=style&index=0&id=64b4b9f0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"64b4b9f0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VChip,VIcon,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading)?_c('v-progress-linear',{attrs:{\"indeterminate\":\"\"}}):[_c('v-expansion-panels',{attrs:{\"focusable\":\"\",\"popout\":\"\"}},_vm._l((_vm.surveys),function(s){return _c('v-expansion-panel',{key:s.id},[_c('v-expansion-panel-header',[_vm._v(\" \"+_vm._s(s.text)+\" \")]),_c('v-expansion-panel-content',[_c('partition-survey',{attrs:{\"partition-id\":_vm.deployment.partitionId,\"partition-survey-id\":s.value,\"readonly\":false,\"deployment-id\":_vm.deployment.id}})],1)],1)}),1)]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading)?_c('v-progress-linear',{attrs:{\"indeterminate\":\"\"}}):_vm._l((_vm.survey.questions),function(q){return _c('partition-survey-question',{key:q.uuid,attrs:{\"question\":q,\"readonly\":!_vm.survey.editable},on:{\"update\":_vm.updateAnswer}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"my-4 pb-6\"},[_c('h3',[_vm._v(\" \"+_vm._s(_vm._question.question)+\" \")]),(_vm.isText)?_c('v-textarea',{attrs:{\"readonly\":_vm.readonly,\"disabled\":_vm.readonly,\"rows\":\"0\",\"auto-grow\":\"\",\"hide-details\":\"\",\"label\":_vm.$t('bcm.partitions.deployments.survey.textAnswer')},on:{\"change\":_vm.update},model:{value:(_vm._question.text),callback:function ($$v) {_vm.$set(_vm._question, \"text\", $$v)},expression:\"_question.text\"}}):(_vm.isSingle)?[_c('v-radio-group',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"readonly\":_vm.readonly,\"disabled\":_vm.readonly},model:{value:(_vm.selectedAnswers),callback:function ($$v) {_vm.selectedAnswers=$$v},expression:\"selectedAnswers\"}},_vm._l((_vm._question.answers),function(a){return _c('v-radio',{key:a.id,attrs:{\"label\":a.answer,\"value\":a.id}})}),1)]:_vm._l((_vm._question.answers),function(a){return _c('v-checkbox',{key:a.id,staticClass:\"my-0\",attrs:{\"readonly\":_vm.readonly,\"disabled\":_vm.readonly,\"dense\":\"\",\"hide-details\":\"\",\"label\":a.answer,\"value\":a.id},model:{value:(_vm.selectedAnswers),callback:function ($$v) {_vm.selectedAnswers=$$v},expression:\"selectedAnswers\"}})}),(_vm._question.allowComments)?_c('v-text-field',{attrs:{\"readonly\":_vm.readonly,\"disabled\":_vm.readonly,\"hide-details\":\"\",\"label\":_vm.$t('bcm.partitions.deployments.survey.comments')},on:{\"change\":_vm.update},model:{value:(_vm._question.comment),callback:function ($$v) {_vm.$set(_vm._question, \"comment\", $$v)},expression:\"_question.comment\"}}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PartitionSurveyQuestionDto, SurveyQuestionType } from '@/dtos';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { cloneDeep } from 'lodash';\n\nexport default defineComponent({\n name: 'PartitionSurveyQuestion',\n\n components: {\n\n },\n\n props: {\n question: {\n type: Object as PropType,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: true,\n },\n },\n\n setup(props, { emit }) {\n const selectedAnswers = ref | number>([]);\n const _question = ref(cloneDeep(props.question));\n\n watch(\n () => props.question,\n (q) => {\n _question.value = cloneDeep(q);\n\n if (q.type !== SurveyQuestionType.Text) {\n if (q.answers != null && q.answers.length > 0) {\n q.answers.forEach(a => {\n if (a.selected) {\n if (q.type === SurveyQuestionType.Single) {\n selectedAnswers.value = a.id;\n } else {\n if (!Array.isArray(selectedAnswers.value)) {\n selectedAnswers.value = [];\n }\n selectedAnswers.value.push(a.id);\n }\n }\n });\n }\n }\n },\n { immediate: true },\n );\n\n watch(\n selectedAnswers,\n (v) => {\n if (_question.value.type === SurveyQuestionType.Text) {\n return;\n }\n\n _question.value.answers.forEach(a => {\n if (typeof (v) === 'number') {\n if (a.id === v) {\n a.selected = true;\n } else {\n a.selected = false;\n }\n } else {\n if (v.find(i => i === a.id)) {\n a.selected = true;\n } else {\n a.selected = false;\n }\n }\n });\n\n emit('update', _question.value);\n },\n );\n\n const isText = computed(() => {\n return _question.value.type === SurveyQuestionType.Text;\n });\n\n const isSingle = computed(() => {\n return _question.value.type === SurveyQuestionType.Single;\n });\n\n const isMultiple = computed(() => {\n return _question.value.type === SurveyQuestionType.Multiple;\n });\n\n function update() {\n emit('update', _question.value);\n }\n\n return {\n _question,\n isText,\n isSingle,\n isMultiple,\n selectedAnswers,\n update,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartitionSurveyQuestion.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartitionSurveyQuestion.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PartitionSurveyQuestion.vue?vue&type=template&id=5f918860&scoped=true&\"\nimport script from \"./PartitionSurveyQuestion.vue?vue&type=script&lang=ts&\"\nexport * from \"./PartitionSurveyQuestion.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5f918860\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VCheckbox,VRadio,VRadioGroup,VTextField,VTextarea})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PartitionSurveyDto, PartitionSurveyQuestionDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport { BiaService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport SnackbarMessageService from '@/services/SnackbarMessageService';\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { v4 } from 'uuid';\nimport PartitionSurveyQuestion from './PartitionSurveyQuestion.vue';\n\nexport default defineComponent({\n name: 'PartitionSurvey',\n\n components: {\n PartitionSurveyQuestion,\n },\n\n props: {\n deploymentId: {\n type: Number,\n required: false,\n },\n\n partitionId: {\n type: Number,\n required: true,\n },\n\n partitionSurveyId: {\n type: Number,\n required: true,\n },\n },\n\n setup(props) {\n const loading = ref(true);\n const survey = ref({ survey: '', questions: [], id: 0, editable: false });\n\n watch(\n () => props.partitionSurveyId,\n () => {\n init();\n },\n { immediate: true },\n );\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n const s = await BiaService.GetPartitionSurveyDetails(props.partitionId, props.partitionSurveyId);\n\n if (s.questions != null) {\n s.questions.forEach(q => {\n q.uuid = v4();\n });\n }\n\n survey.value = s;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n\n async function updateAnswer(question: PartitionSurveyQuestionDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n if (props.deploymentId == null) {\n throw new Error('DeploymentId is empty...');\n }\n const q = await BiaService.UpdateDeploymentSurveyQuestion(props.deploymentId, survey.value.id, question);\n\n q.uuid = v4();\n\n for (let i = 0; i < survey.value.questions.length; ++i) {\n if (survey.value.questions[i].uuid === question.uuid) {\n survey.value.questions.splice(i, 1, q);\n }\n }\n\n SnackbarMessageService.SetMessage({ text: i18n.t('saved').toString() });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n survey.value.questions.every((q) => {\n // refresh uuid to refresh component\n if (q.uuid === question.uuid) {\n q.uuid = v4();\n return false;\n }\n\n return true;\n });\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n loading,\n survey,\n updateAnswer,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartitionSurvey.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartitionSurvey.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PartitionSurvey.vue?vue&type=template&id=9cdd3dfe&scoped=true&\"\nimport script from \"./PartitionSurvey.vue?vue&type=script&lang=ts&\"\nexport * from \"./PartitionSurvey.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9cdd3dfe\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\ninstallComponents(component, {VProgressLinear})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport { PartitionDeploymentDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport { BiaService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport PartitionSurvey from '../PartitionSurvey.vue';\n\nexport default defineComponent({\n name: 'DeploymentSurveyList',\n\n components: {\n PartitionSurvey,\n },\n\n props: {\n deployment: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const surveys = ref>([]);\n const loading = ref(true);\n\n const selectedSurvey = ref(0);\n\n watch(\n () => props.deployment,\n () => {\n surveys.value = [];\n init();\n },\n { immediate: true },\n );\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n const survs = await BiaService.GetDeploymentSurveys(props.deployment.id);\n\n survs.forEach((s) => {\n surveys.value.push({\n text: s.survey,\n value: s.id,\n });\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n\n return {\n loading,\n surveys,\n selectedSurvey,\n };\n },\n\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeploymentSurveyList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeploymentSurveyList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeploymentSurveyList.vue?vue&type=template&id=30619fd6&scoped=true&\"\nimport script from \"./DeploymentSurveyList.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeploymentSurveyList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"30619fd6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\ninstallComponents(component, {VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VProgressLinear})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading)?_c('v-progress-linear',{attrs:{\"indeterminate\":\"\"}}):[_c('v-expansion-panels',{attrs:{\"focusable\":\"\",\"popout\":\"\"}},_vm._l((_vm.surveys),function(s){return _c('v-expansion-panel',{key:s.id},[_c('v-expansion-panel-header',[_vm._v(\" \"+_vm._s(s.text)+\" \")]),_c('v-expansion-panel-content',[_c('partition-survey',{attrs:{\"partition-id\":_vm.partition.id,\"partition-survey-id\":s.value}})],1)],1)}),1)]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport { BiaPartitionDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport { BiaService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport PartitionSurvey from './PartitionSurvey.vue';\n\nexport default defineComponent({\n name: 'PartitionSurveyList',\n\n components: {\n PartitionSurvey,\n },\n\n props: {\n partition: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const surveys = ref>([]);\n const loading = ref(true);\n\n const selectedSurvey = ref(0);\n\n watch(\n () => props.partition,\n () => {\n surveys.value = [];\n init();\n },\n { immediate: true },\n );\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n const survs = await BiaService.GetAllPartitionSurveys(props.partition.id);\n\n survs.forEach((s) => {\n surveys.value.push({\n text: s.survey,\n value: s.id,\n });\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n\n return {\n loading,\n surveys,\n selectedSurvey,\n };\n },\n\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartitionSurveyList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartitionSurveyList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PartitionSurveyList.vue?vue&type=template&id=6ef2f658&scoped=true&\"\nimport script from \"./PartitionSurveyList.vue?vue&type=script&lang=ts&\"\nexport * from \"./PartitionSurveyList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6ef2f658\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\ninstallComponents(component, {VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VProgressLinear})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showUserSelector)?_c('pd-popup-card',{attrs:{\"visible\":\"\",\"width\":\"40rem\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.assignedUserTitle'))+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancelNewUserPosition}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveNewUserPosition}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")])]},proxy:true}],null,false,3493728395)},[_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.user'))+\" \")]),_c('td',[_c('user-selector-box',{attrs:{\"excluded-users\":_vm.excludedUsers},model:{value:(_vm.editingUser),callback:function ($$v) {_vm.editingUser=$$v},expression:\"editingUser\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.userPosition'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.positions,\"dense\":\"\"},model:{value:(_vm.editingPosition),callback:function ($$v) {_vm.editingPosition=$$v},expression:\"editingPosition\"}})],1)])])]):_vm._e(),_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.name'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"auto\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.location'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.locations,\"dense\":\"\",\"hide-details\":\"auto\"},model:{value:(_vm.partition.locationId),callback:function ($$v) {_vm.$set(_vm.partition, \"locationId\", $$v)},expression:\"partition.locationId\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.partitionId'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"auto\"},model:{value:(_vm.partition.partitionId),callback:function ($$v) {_vm.$set(_vm.partition, \"partitionId\", $$v)},expression:\"partition.partitionId\"}})],1)]),_c('tr',[_c('td',{staticStyle:{\"width\":\"3rem\"}},[_vm._v(\" RTO: \")]),_c('partition-rto',{attrs:{\"item\":_vm.partition,\"header\":_vm.rtoAndMaoColumns[0],\"value\":_vm.partition.rtoId}})],1),_c('tr',[_c('td',{staticStyle:{\"width\":\"3rem\"}},[_vm._v(\" MAO: \")]),_c('partition-rto',{attrs:{\"item\":_vm.partition,\"header\":_vm.rtoAndMaoColumns[1],\"value\":_vm.partition.maoId}})],1),(_vm.administrator)?_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.coordinatorType'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.coordinatorTypes,\"dense\":\"\"},model:{value:(_vm.partition.coordinatorTypeId),callback:function ($$v) {_vm.$set(_vm.partition, \"coordinatorTypeId\", $$v)},expression:\"partition.coordinatorTypeId\"}})],1)]):_vm._e(),(!_vm.sso)?[_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('span',{staticClass:\"titlespan\"},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.assignedUsers'))+\" \")]),_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":_vm.addUser}},[_vm._v(\" \"+_vm._s(_vm.icons.add)+\" \")])],1)]),_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('pd-data-table',{attrs:{\"headers\":_vm.assignedUsersHeaders,\"datasource\":_vm.assignedUsers,\"options\":_vm.assignedUsersOptions}})],1)])]:[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.activeDirectoryGroup'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\"},model:{value:(_vm.partition.activeDirectoryGroup),callback:function ($$v) {_vm.$set(_vm.partition, \"activeDirectoryGroup\", $$v)},expression:\"partition.activeDirectoryGroup\"}})],1)]),_c('tr',{key:_vm.forceRefreshTable},[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('v-btn',{staticClass:\"text-none mb-2\",attrs:{\"small\":\"\"},on:{\"click\":_vm.fetchSsoUsers}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.fetchSsoUsers'))+\" \")]),_c('pd-data-table',{attrs:{\"headers\":_vm.assignedUsersHeaders,\"datasource\":_vm.assignedUsers,\"options\":_vm.assignedUsersOptions}})],1)])]],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('user-selector',{attrs:{\"visible\":_vm.userSelector,\"datasource\":_vm.users,\"exclude\":_vm.excludedUsers},on:{\"select\":_vm.addSelectedUser,\"cancel\":function($event){_vm.userSelector = false}}}),_c('v-text-field',{attrs:{\"readonly\":\"\",\"full-width\":\"\",\"label\":_vm.label,\"value\":_vm.displayUser},on:{\"click\":function($event){_vm.userSelector = true}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport UserSelector from './UserSelector.vue';\n\nimport DatasourcesService from '@/services/DatasourcesService';\n\nexport default defineComponent({\n name: 'UserSelectorBox',\n\n components: {\n UserSelector,\n },\n\n props: {\n value: {\n type: [Object, String, Number] as PropType,\n required: false,\n },\n\n select: {\n type: String as PropType<'user | username | id'>,\n default: 'user',\n },\n\n excludedUsers: {\n type: Array as PropType>,\n required: false,\n },\n\n label: {\n type: String,\n required: false,\n },\n },\n\n setup(props, { emit }) {\n const users = DatasourcesService.Users;\n const userSelector = ref(false);\n\n const currentUser = ref(null);\n\n watch(\n () => props.value,\n async (newValue) => {\n if (typeof newValue === 'number' && props.select === 'id') {\n const user = await users.getById(newValue);\n if (user != null) {\n currentUser.value = user;\n }\n } else if (typeof newValue === 'string' && props.select === 'username') {\n const all = await users.data();\n for (let i = 0; i < all.length; ++i) {\n if (all[i].username === newValue) {\n currentUser.value = all[i];\n }\n }\n } else if (typeof newValue === 'object') {\n currentUser.value = newValue;\n } else {\n currentUser.value = null;\n }\n },\n { immediate: true },\n );\n\n const displayUser = computed(() => {\n if (currentUser.value == null) {\n return '';\n } else {\n return currentUser.value.info;\n }\n });\n\n function addSelectedUser(user: SimpleUserDto) {\n if (props.select === 'user') {\n emit('input', user);\n } else if (props.select === 'id') {\n emit('input', user.id);\n } else {\n emit('input', user.username);\n }\n\n userSelector.value = false;\n }\n\n return {\n users,\n userSelector,\n currentUser,\n displayUser,\n addSelectedUser,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSelectorBox.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSelectorBox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserSelectorBox.vue?vue&type=template&id=329d6a08&scoped=true&\"\nimport script from \"./UserSelectorBox.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserSelectorBox.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"329d6a08\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[_c('v-row',{staticStyle:{\"height\":\"100%\"},attrs:{\"dense\":\"\",\"no-gutters\":\"\",\"align\":\"center\"}},[(_vm.color != null)?_c('v-col',{staticClass:\"shrink mr-1\",staticStyle:{\"height\":\"80%\"},style:({'background-color': _vm.color})},[_c('span',{staticStyle:{\"width\":\"10px\",\"height\":\"100%\"}})]):_vm._e(),_c('v-col',[_vm._v(\" \"+_vm._s(_vm.displayText)+\" \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { PdColumnProps } from '@/components/core/PdDataTable/columns/PdColumnProps';\nimport { RtoScaleDto } from '@/dtos/bcm';\nimport i18n from '@/i18n';\nimport { ISelectItem } from '@/core';\n\nexport default defineComponent({\n name: 'PdTextColumn',\n\n props: {\n ...PdColumnProps,\n },\n\n setup(props) {\n const displayText = ref('');\n const color = ref(null);\n\n if (props.header == null || props.header.parameters == null || props.header.parameters.items == null) {\n console.error('header.parameters.items cannot be null...');\n throw new Error('header.parameters.items cannot be null...');\n }\n\n if (props.value == null) {\n if (props.header.parameters.column === 'rto') {\n displayText.value = i18n.t('bcm.partitions.noRto').toString();\n } else {\n displayText.value = i18n.t('bcm.partitions.noMao').toString();\n }\n } else {\n const scales: () => Array = props.header.parameters.items as (() => Array);\n\n const r = scales().find(i => i.value === props.value);\n\n if (r == null) {\n console.error(`RTO scale ${props.value} not found in scales`);\n } else {\n displayText.value = LanguageTemplate(r.other as RtoScaleDto, 'name').text;\n color.value = (r.other as RtoScaleDto).color;\n }\n }\n\n return {\n displayText,\n color,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartitionRto.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartitionRto.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PartitionRto.vue?vue&type=template&id=f0bf7ef6&scoped=true&\"\nimport script from \"./PartitionRto.vue?vue&type=script&lang=ts&\"\nexport * from \"./PartitionRto.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f0bf7ef6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VRow})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport icons from '@/core/icons';\nimport { PartitionDto } from '@/dtos/bcm';\nimport { UserPositionDto } from '@/dtos/bcm/PartitionDto';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nimport i18n from '@/i18n';\nimport { ApplicationModule, AuthenticationModule } from '@/store';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { v4 } from 'uuid';\nimport UserSelectorBox from '@/components/all/UserSelectorBox.vue';\nimport { PdDataTableHeader, PdDataTable, PdDataTableOptions } from '../core/PdDataTable';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport PartitionRto from './PartitionRto.vue';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { UsersService } from '@/services/all';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport { UserRole } from '@/dtos';\n\nexport default defineComponent({\n name: 'PartitionEditor',\n\n components: {\n PartitionRto,\n PdDataTable,\n UserSelectorBox,\n PdPopupCard,\n },\n\n props: {\n partition: {\n type: Object as PropType,\n required: true,\n },\n\n rtos: {\n type: Array as PropType>,\n required: true,\n },\n\n locations: {\n type: Array as PropType>,\n required: true,\n },\n\n coordinatorTypes: {\n type: Array as PropType>,\n required: true,\n },\n\n positions: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props) {\n const sso = ApplicationModule.Settings.sso;\n const showUserSelector = ref(false);\n\n const editingUser = ref(null);\n const editingPosition = ref(null);\n\n const forceRefreshTable = ref(v4());\n\n const administrator = AuthenticationModule.Roles.includes(UserRole.BcmAdministrator);\n\n if (props.partition.translations == null) {\n props.partition.translations = {};\n }\n\n if (props.partition.translations[ApplicationModule.Language] == null) {\n props.partition.translations[ApplicationModule.Language] = { name: 'New Partition' };\n }\n\n const name = ref(props.partition.translations[ApplicationModule.Language].name);\n\n watch(\n name,\n (newValue) => {\n props.partition.translations[ApplicationModule.Language].name = newValue;\n },\n );\n\n const rtoAndMaoColumns: Array> = [\n {\n id: 'rtoId',\n text: '',\n value: 'rtoId',\n component: PartitionRto,\n parameters: {\n column: 'rto',\n items: () => props.rtos,\n },\n },\n {\n id: 'maoId',\n text: '',\n value: 'maoId',\n component: PartitionRto,\n parameters: {\n column: 'mao',\n items: () => props.rtos,\n },\n },\n ];\n\n const assignedUsersHeaders: Array> = [\n {\n id: 'user',\n text: i18n.t('bcm.partitions.user').toString(),\n value: 'user',\n template: (item) => {\n console.log(item);\n return { text: (item as UserPositionDto).user.info };\n },\n },\n {\n id: 'positionId',\n text: i18n.t('bcm.partitions.userPosition').toString(),\n value: 'positionId',\n template: (item) => {\n if (item.positionId == null) {\n return { text: '' };\n }\n\n const p = props.positions.find(i => i.value === item.positionId);\n if (p == null) {\n return { text: '' };\n }\n\n return { text: p.text.toString() };\n },\n },\n ];\n\n if (sso) {\n assignedUsersHeaders.splice(0, 2);\n assignedUsersHeaders.push({\n id: 'user',\n text: i18n.t('bcm.partitions.user').toString(),\n value: 'user',\n template: (item) => {\n return { text: (item as SimpleUserDto).info };\n },\n });\n }\n\n function addUser() {\n editingUser.value = null;\n editingPosition.value = null;\n showUserSelector.value = true;\n }\n\n const excludedUsers = computed>(() => {\n return props.partition.assignedUsers.map(i => i.user);\n });\n\n if (props.partition.assignedUsers == null) {\n props.partition.assignedUsers = [];\n }\n\n function saveNewUserPosition() {\n if (props.partition.assignedUsers == null) {\n props.partition.assignedUsers = [];\n }\n\n const u = editingUser.value as (SimpleUserDto | null);\n if (u == null || editingPosition.value == null) {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: i18n.t('bcm.partitions.assignedUsersRequiredMessage').toString(),\n index: 100,\n });\n\n return;\n }\n\n props.partition.assignedUsers.push({\n id: Math.floor(1000 + Math.random() * 1000000000),\n user: u,\n positionId: editingPosition.value,\n uuid: v4(),\n });\n\n showUserSelector.value = false;\n }\n\n function cancelNewUserPosition() {\n showUserSelector.value = false;\n }\n\n const assignedUsers = ref | Array>([]);\n\n if (!sso) {\n assignedUsers.value = props.partition.assignedUsers;\n } else {\n assignedUsers.value = [];\n }\n\n async function fetchSsoUsers() {\n assignedUsers.value = [];\n if (!sso) {\n return;\n }\n\n if (props.partition.activeDirectoryGroup == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n assignedUsers.value = await UsersService.GetSsoUsers(props.partition.activeDirectoryGroup);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n\n forceRefreshTable.value = v4();\n }\n\n const assignedUsersOptions: PdDataTableOptions = {\n editable: { add: false, edit: false, delete: !sso },\n pagination: true,\n };\n\n return {\n sso,\n name,\n rtoAndMaoColumns,\n\n administrator,\n\n assignedUsersHeaders,\n assignedUsers,\n assignedUsersOptions,\n\n addUser,\n showUserSelector,\n excludedUsers,\n editingUser,\n editingPosition,\n saveNewUserPosition,\n cancelNewUserPosition,\n fetchSsoUsers,\n\n forceRefreshTable,\n\n icons: {\n add: icons.plus,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartitionEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartitionEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PartitionEditor.vue?vue&type=template&id=f3b99738&scoped=true&\"\nimport script from \"./PartitionEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./PartitionEditor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f3b99738\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VIcon,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup-card',{attrs:{\"visible\":\"\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Automatic Allocations of Partitions to Recovery Site \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-row',[_c('v-col',{staticClass:\"text-start\"},[(_vm.step > 1)?_c('v-btn',{on:{\"click\":function($event){_vm.step = _vm.step - 1}}},[_vm._v(\" \"+_vm._s(_vm.$t('previous'))+\" \")]):_vm._e()],1),_c('v-col',{staticClass:\"text-center\"},[_c('v-btn',{on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_vm._v(\" Cancel \")])],1),_c('v-col',{staticClass:\"text-end\"},[(_vm.step == 5)?_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.finishDialog}},[_vm._v(\" \"+_vm._s(_vm.$t('finish'))+\" \")]):_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.allowedNext},on:{\"click\":function($event){_vm.step = _vm.step + 1}}},[_vm._v(\" \"+_vm._s(_vm.$t('next'))+\" \")])],1)],1)]},proxy:true}])},[_c('v-stepper',{staticStyle:{\"height\":\"550px\"},attrs:{\"light\":\"\"},model:{value:(_vm.step),callback:function ($$v) {_vm.step=$$v},expression:\"step\"}},[_c('v-stepper-header',[_c('v-stepper-step',{attrs:{\"complete\":_vm.step > 1,\"step\":\"1\"}},[_vm._v(\" Information \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"complete\":_vm.step > 2,\"step\":\"2\"}},[_vm._v(\" Partitions \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"complete\":_vm.step > 3,\"step\":\"3\"}},[_vm._v(\" Recovery Site \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"complete\":_vm.step > 4,\"step\":\"4\"}},[_vm._v(\" Assets \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"step\":\"5\"}},[_vm._v(\" Review \")])],1),_c('v-stepper-items',[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_vm._v(\" This dialog will help you automatically allocate resources for specific Partitions to a Recovery Site. \"),_c('br'),_c('br'),_vm._v(\" The allocation will be on the remaining of the resources Needed, it will NOT clear any allocations already specified! \")]),_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_c('pd-data-table',{attrs:{\"height\":\"400px\",\"search\":\"\",\"datasource\":_vm.partitions,\"headers\":_vm.partitionsHeaders,\"options\":{editable: false, pagination: false},\"select-multiple\":\"\",\"show-select-all\":\"\",\"selected-items\":_vm.selectedPartitions,\"sort\":\"text\",\"sort-direction\":\"asc\"},on:{\"update:selectedItems\":function($event){_vm.selectedPartitions=$event},\"update:selected-items\":function($event){_vm.selectedPartitions=$event}}})],1),_c('v-stepper-content',{attrs:{\"step\":\"3\"}},[_c('pd-data-table',{attrs:{\"height\":\"400px\",\"search\":\"\",\"datasource\":_vm.allRecoverySites,\"headers\":_vm.recoverySitesHeaders,\"options\":{editable: false, pagination: false},\"select-multiple\":false,\"selected-item\":_vm.selectedRecoverySite,\"sort\":\"text\",\"sort-direction\":\"asc\"},on:{\"update:selectedItem\":function($event){_vm.selectedRecoverySite=$event},\"update:selected-item\":function($event){_vm.selectedRecoverySite=$event}}})],1),_c('v-stepper-content',{attrs:{\"step\":\"4\"}},[_c('pd-data-table',{attrs:{\"height\":\"400px\",\"search\":\"\",\"datasource\":_vm.allAssets,\"headers\":_vm.assetsHeaders,\"options\":{editable: false, pagination: false},\"select-multiple\":\"\",\"show-select-all\":\"\",\"selected-items\":_vm.selectedAssets,\"sort\":\"text\",\"sort-direction\":\"asc\"},on:{\"update:selectedItems\":function($event){_vm.selectedAssets=$event},\"update:selected-items\":function($event){_vm.selectedAssets=$event}}})],1),_c('v-stepper-content',{attrs:{\"step\":\"5\"}},[_c('div',{staticStyle:{\"height\":\"400px\",\"overflow-y\":\"auto\"}},[_vm._v(\" The following Assets \"),_c('div',{staticClass:\"my-2\"},[_c('ul',_vm._l((_vm.selectedAssets),function(a){return _c('li',{key:a.id},[_vm._v(\" \"+_vm._s(a.text)+\" \")])}),0)]),_vm._v(\" of the following Partitions \"),_c('div',{staticClass:\"my-2\"},[_c('ul',_vm._l((_vm.selectedPartitions),function(p){return _c('li',{key:p.id},[_vm._v(\" \"+_vm._s(p.text)+\" \")])}),0)]),_vm._v(\" will be assigned to \"),(_vm.selectedRecoverySite != null)?_c('span',{staticClass:\"font-weight-bold red--text\"},[_vm._v(\" \"+_vm._s(_vm.selectedRecoverySite.recoverySiteName)+\" \")]):_vm._e(),_vm._v(\"! \"),_c('div',{staticClass:\"mt-4\"},[_vm._v(\" Click finish to Allocate the resources! \")])])])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { ArrayDataSource } from '@/core/datasource';\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport { IDto, StrategyScenarioRecoverySiteDto } from '@/dtos';\n\nexport default defineComponent({\n name: 'StrategyScenarioAllocationsDialog',\n\n components: {\n PdPopupCard,\n PdDataTable,\n },\n\n props: {\n partitions: {\n type: Object as PropType,\n required: true,\n },\n\n recoverySites: {\n type: Array as PropType>,\n required: true,\n },\n\n assets: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const step = ref(1);\n\n const allowedNext = computed(() => {\n return (step.value === 1) ||\n (step.value === 2 && selectedPartitions.value.length > 0) ||\n (step.value === 3 && selectedRecoverySite.value != null) ||\n (step.value === 4 && selectedAssets.value.length > 0);\n });\n\n const partitionsHeaders: Array> = [\n {\n id: 'text',\n text: 'Partition',\n value: 'text',\n },\n ];\n const selectedPartitions = ref>([]);\n\n const allRecoverySites = computed(() => new ArrayDataSource(\n props.recoverySites,\n {},\n ));\n\n const recoverySitesHeaders: Array> = [\n {\n id: 'recoverySiteName',\n text: 'Recovery Site',\n value: 'recoverySiteName',\n },\n ];\n\n const selectedRecoverySite = ref(null);\n\n const allAssets = computed(() => new ArrayDataSource(\n props.assets,\n {},\n ));\n\n const assetsHeaders: Array> = [\n {\n id: 'text',\n text: 'Asset',\n value: 'text',\n },\n ];\n\n const selectedAssets = ref>([]);\n\n function finishDialog() {\n if (selectedPartitions.value.length === 0 ||\n selectedRecoverySite.value == null ||\n selectedAssets.value.length === 0) {\n return;\n }\n\n emit('allocate', selectedPartitions.value, selectedRecoverySite.value, selectedAssets.value);\n }\n\n return {\n step,\n finishDialog,\n allowedNext,\n\n partitionsHeaders,\n selectedPartitions,\n\n allRecoverySites,\n recoverySitesHeaders,\n selectedRecoverySite,\n\n allAssets,\n assetsHeaders,\n selectedAssets,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioAllocationsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioAllocationsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StrategyScenarioAllocationsDialog.vue?vue&type=template&id=e14785e0&scoped=true&\"\nimport script from \"./StrategyScenarioAllocationsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./StrategyScenarioAllocationsDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e14785e0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VStepper } from 'vuetify/lib/components/VStepper';\nimport { VStepperContent } from 'vuetify/lib/components/VStepper';\nimport { VStepperHeader } from 'vuetify/lib/components/VStepper';\nimport { VStepperItems } from 'vuetify/lib/components/VStepper';\nimport { VStepperStep } from 'vuetify/lib/components/VStepper';\ninstallComponents(component, {VBtn,VCol,VDivider,VRow,VStepper,VStepperContent,VStepperHeader,VStepperItems,VStepperStep})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup-card',{attrs:{\"visible\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{staticClass:\"text-none\",on:{\"click\":function($event){return _vm.$emit('close')}}},[_vm._v(\" \"+_vm._s(_vm.$t('close'))+\" \")])]},proxy:true}])},[_c('pd-map',{attrs:{\"locations\":_vm.mapLocations,\"lines\":_vm.mapLines}}),(_vm.notFound)?_c('div',[_vm._v(\" The following locations do not have their map position set, therefore they are not visible on the map:\"),_c('br'),_c('ul',_vm._l((_vm.notFound),function(n,i){return _c('li',{key:i},[_vm._v(\" \"+_vm._s(n)+\" \")])}),0)]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"mapContainer\",staticClass:\"mt-4\",staticStyle:{\"height\":\"600px\",\"width\":\"100%\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* eslint-disable no-undef */\nimport '@here/maps-api-for-javascript';\n\nexport interface MapTypes{\n raster: {\n normal?:{\n base?: H.map.layer.Layer,\n basenight?: H.map.layer.Layer,\n labels?: H.map.layer.Layer,\n map?: H.map.layer.Layer,\n mapnight?: H.map.layer.Layer,\n metaInfo?: H.map.layer.Layer,\n trafficincidents?: H.map.layer.Layer,\n transit?: H.map.layer.Layer,\n xbase?: H.map.layer.Layer,\n xbasenight?: H.map.layer.Layer,\n },\n satellite?:{\n base?: H.map.layer.Layer,\n labels?: H.map.layer.Layer,\n map?: H.map.layer.Layer,\n xbase?: H.map.layer.Layer,\n },\n terrain?: {\n base?: H.map.layer.Layer,\n labels?: H.map.layer.Layer,\n map?: H.map.layer.Layer,\n xbase?: H.map.layer.Layer,\n }\n },\n vector:{\n normal: {\n map: H.map.layer.Layer\n traffic?: H.map.layer.Layer,\n trafficincidents?: H.map.layer.Layer,\n truck?: H.map.layer.Layer,\n },\n traffic?: {\n map?: H.map.layer.Layer,\n }\n }\n}\n\nexport default class MapsService {\n private static _apikey = 'n0v0EZrcXEt43tKpUkLCIE8A2ibJ1vhRAKIiXNwHIVY';\n private static _platform: H.service.Platform;\n\n public static IsMapEnabled(): boolean {\n return this._platform != null || this._apikey != null;\n }\n\n public static get Platform(): H.service.Platform {\n if (this._platform == null) {\n if (this._apikey == null) {\n throw new Error('Api key not found');\n }\n this._platform = new H.service.Platform({\n apikey: this._apikey,\n });\n }\n\n return this._platform;\n }\n\n public static get DefaultMapTypes(): MapTypes {\n const maptypes = MapsService.Platform.createDefaultLayers() as MapTypes;\n\n delete maptypes.vector.traffic;\n delete maptypes.vector.normal.traffic;\n delete maptypes.vector.normal.trafficincidents;\n delete maptypes.vector.normal.truck;\n\n delete maptypes.raster.normal;\n delete maptypes.raster.terrain;\n\n maptypes.vector.normal.map.setMin(4);\n maptypes.vector.normal.map.setMax(19);\n\n maptypes.raster.satellite?.map?.setMin(4);\n maptypes.raster.satellite?.map?.setMax(19);\n\n return maptypes;\n }\n}\n","\n\n\n\n\n\n\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any, no-undef */\nimport { defineComponent, onMounted, PropType, ref, watch } from '@vue/composition-api';\nimport { MapsService } from '@/services/core';\nimport { GeoLocationDto, GeoLocationLineDto } from '@/dtos';\n\nexport default defineComponent({\n name: 'Map',\n\n components: {\n },\n\n props: {\n locations: {\n type: Array as PropType>,\n required: true,\n },\n\n lines: {\n type: Array as PropType>,\n required: false,\n },\n },\n\n setup(props) {\n const mapContainer = ref(null);\n let map: H.Map;\n const markersGroup: H.map.Group = new H.map.Group();\n const linesGroup: H.map.Group = new H.map.Group();\n const center = { lat: 38.6325817, lng: 24.3400536 };\n const zoom = 7;\n\n onMounted(async () => {\n if (mapContainer.value == null) {\n return;\n }\n\n const maptypes = MapsService.DefaultMapTypes;\n\n map = new H.Map(mapContainer.value, maptypes.vector.normal.map, {\n zoom,\n center,\n });\n\n window.addEventListener('resize', () => map.getViewPort().resize());\n // eslint-disable-next-line no-new\n new H.mapevents.Behavior(new H.mapevents.MapEvents(map));\n\n if (props.locations.length > 0) {\n for (let i = 0; i < props.locations.length; ++i) {\n const marker = new H.map.Marker(props.locations[i], {\n data: props.locations[i].description,\n });\n\n markersGroup.addObject(marker);\n }\n\n map.addObject(markersGroup);\n\n // get geo bounding box for the group and set it to the map\n const box = markersGroup.getBoundingBox();\n (box as any).c += 1; // leave room for top marker\n (box as any).f -= 1; // leave room for bottom marker\n map.getViewModel().setLookAtData({\n bounds: box,\n });\n }\n\n const ui = H.ui.UI.createDefault(map, maptypes);\n\n markersGroup.addEventListener('tap', function (evt: {target: {getGeometry: (() => GeoLocationDto), getData: () => string}}) {\n var bubble = new H.ui.InfoBubble(evt.target.getGeometry(), {\n content: evt.target.getData(),\n });\n ui.addBubble(bubble);\n }, false);\n });\n\n watch(\n () => props.locations,\n () => {\n if (props.locations.length === 0) {\n map.removeObject(markersGroup);\n\n map.setCenter(center);\n map.setZoom(zoom);\n return;\n }\n\n markersGroup.removeAll();\n\n for (let i = 0; i < props.locations.length; ++i) {\n let icon: H.map.Icon | undefined;\n if (props.locations[i].icon != null) {\n icon = new H.map.Icon(props.locations[i].icon ?? '');\n }\n\n const marker = new H.map.Marker(props.locations[i], {\n data: props.locations[i].description,\n icon,\n });\n\n markersGroup.addObject(marker);\n }\n\n map.addObject(markersGroup);\n\n // get geo bounding box for the group and set it to the map\n const box = markersGroup.getBoundingBox();\n (box as any).c += 1; // leave room for top marker\n (box as any).f -= 1; // leave room for bottom marker\n map.getViewModel().setLookAtData({\n bounds: box,\n });\n },\n );\n\n watch(\n () => props.lines,\n () => {\n if (props.lines == null || props.lines.length === 0) {\n map.removeObject(linesGroup);\n\n map.setCenter(center);\n map.setZoom(zoom);\n return;\n }\n\n linesGroup.removeAll();\n\n for (let i = 0; i < props.lines.length; ++i) {\n const lineString = new H.geo.LineString();\n\n for (let j = 0; j < props.lines[i].points.length; ++j) {\n lineString.pushPoint(props.lines[i].points[j]);\n }\n const polyline = new H.map.Polyline(lineString, { style: { lineWidth: 4 }, data: null });\n if (props.lines[i].color != null) {\n polyline.setStyle({ lineWidth: 4, strokeColor: props.lines[0].color });\n }\n\n linesGroup.addObject(polyline);\n }\n\n map.addObject(linesGroup);\n },\n );\n\n return {\n mapContainer,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdMap.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdMap.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdMap.vue?vue&type=template&id=c85cfdac&scoped=true&\"\nimport script from \"./PdMap.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdMap.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c85cfdac\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdMap from '@/components/core/HereMaps/PdMap.vue';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport { LocationTemplate } from '@/core/helpers/templates';\nimport icons from '@/core/icons';\nimport { GeoLocationDto, GeoLocationLineDto, StrategyScenarioLocationDto, StrategyScenarioRecoverySiteDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { defineComponent, PropType, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\n\nexport default defineComponent({\n name: 'StrategyScenarioMapDialog',\n\n components: {\n PdPopupCard,\n PdMap,\n },\n\n props: {\n recoverySites: {\n type: Array as PropType>,\n required: true,\n },\n\n affectedLocations: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props) {\n const mapLocations = ref>([]);\n const mapLines = ref>([]);\n\n const notFound = ref>([]);\n\n const allLocations = DatasourcesService.Bcm.Locations;\n const allRecoverySites = DatasourcesService.Bcm.RecoverySites;\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n const fromLocations:Array = [];\n const toLocations:Array = [];\n\n for (let i = 0; i < props.affectedLocations.length; ++i) {\n const loc = await allLocations.getById(props.affectedLocations[i].locationId);\n if (loc == null) {\n continue;\n }\n\n if (loc.latitude == null || loc.longitude == null) {\n notFound.value.push(LocationTemplate(loc).text);\n continue;\n }\n\n fromLocations.push({\n lat: loc.latitude,\n lng: loc.longitude,\n });\n\n mapLocations.value.push({\n lat: loc.latitude,\n lng: loc.longitude,\n description: LocationTemplate(loc).text,\n icon: 'office-building-cog-outline',\n });\n }\n\n for (let i = 0; i < props.recoverySites.length; ++i) {\n const recSite = await allRecoverySites.getById(props.recoverySites[i].recoverySiteId);\n if (recSite == null) {\n continue;\n }\n\n const loc = await allLocations.getById(recSite.locationId);\n if (loc == null) {\n continue;\n }\n\n if (loc.latitude == null || loc.longitude == null) {\n notFound.value.push(LocationTemplate(loc).text);\n continue;\n }\n\n toLocations.push({\n lat: loc.latitude,\n lng: loc.longitude,\n });\n\n mapLocations.value.push({\n lat: loc.latitude,\n lng: loc.longitude,\n description: LocationTemplate(loc).text,\n icon: 'office-building-cog-outline',\n });\n }\n\n for (let i = 0; i < fromLocations.length; ++i) {\n for (let j = 0; j < toLocations.length; ++j) {\n mapLines.value.push({\n points: [fromLocations[i], toLocations[j]],\n });\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n mapLocations,\n mapLines,\n notFound,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioMapDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioMapDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StrategyScenarioMapDialog.vue?vue&type=template&id=753ec3f0&scoped=true&\"\nimport script from \"./StrategyScenarioMapDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./StrategyScenarioMapDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"753ec3f0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup-card',{attrs:{\"visible\":\"\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Automatic Allocations of Partition \"),_c('span',{staticClass:\"font-weight-bold mx-1\"},[_vm._v(_vm._s(_vm.partition.text))]),_vm._v(\" to Recovery Site. \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-row',[_c('v-col',{staticClass:\"text-start\"},[(_vm.step > 1)?_c('v-btn',{on:{\"click\":function($event){_vm.step = _vm.step - 1}}},[_vm._v(\" \"+_vm._s(_vm.$t('previous'))+\" \")]):_vm._e()],1),_c('v-col',{staticClass:\"text-center\"},[_c('v-btn',{on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_vm._v(\" Cancel \")])],1),_c('v-col',{staticClass:\"text-end\"},[(_vm.step == 5)?_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.finishDialog}},[_vm._v(\" \"+_vm._s(_vm.$t('finish'))+\" \")]):_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!_vm.allowedNext},on:{\"click\":function($event){_vm.step = _vm.step + 1}}},[_vm._v(\" \"+_vm._s(_vm.$t('next'))+\" \")])],1)],1)]},proxy:true}])},[_c('v-stepper',{staticStyle:{\"height\":\"550px\"},attrs:{\"light\":\"\"},model:{value:(_vm.step),callback:function ($$v) {_vm.step=$$v},expression:\"step\"}},[_c('v-stepper-header',[_c('v-stepper-step',{attrs:{\"complete\":_vm.step > 1,\"step\":\"1\"}},[_vm._v(\" Information \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"complete\":_vm.step > 2,\"step\":\"2\"}},[_vm._v(\" Recovery Site \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"complete\":_vm.step > 3,\"step\":\"3\"}},[_vm._v(\" Parameters \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"complete\":_vm.step > 4,\"step\":\"4\"}},[_vm._v(\" Assets \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"step\":\"5\"}},[_vm._v(\" Review \")])],1),_c('v-stepper-items',[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_vm._v(\" This dialog will help you automatically allocate resources for Partition \"),_c('span',{staticClass:\"font-weight-bold red--text\"},[_vm._v(_vm._s(_vm.partition.text))]),_vm._v(\" to a Recovery Site. \"),_c('br'),_c('br'),_vm._v(\" The allocation will be on the remaining of the resources Needed, it will NOT clear any allocations already specified! \")]),_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_c('pd-data-table',{attrs:{\"height\":\"400px\",\"search\":\"\",\"datasource\":_vm.allRecoverySites,\"headers\":_vm.recoverySitesHeaders,\"options\":{editable: false, pagination: false},\"select-multiple\":false,\"selected-item\":_vm.selectedRecoverySite,\"sort\":\"text\",\"sort-direction\":\"asc\"},on:{\"update:selectedItem\":function($event){_vm.selectedRecoverySite=$event},\"update:selected-item\":function($event){_vm.selectedRecoverySite=$event}}})],1),_c('v-stepper-content',{attrs:{\"step\":\"3\"}},[_c('v-select',{attrs:{\"items\":_vm.rtoScales,\"label\":\"From RTO\",\"item-text\":\"name\",\"return-object\":\"\"},model:{value:(_vm.selectedMinimumRtoScale),callback:function ($$v) {_vm.selectedMinimumRtoScale=$$v},expression:\"selectedMinimumRtoScale\"}}),_c('v-select',{attrs:{\"items\":_vm.remainingRtoScales,\"label\":\"To RTO\",\"item-text\":\"name\",\"return-object\":\"\"},model:{value:(_vm.selectedMaximumRtoScale),callback:function ($$v) {_vm.selectedMaximumRtoScale=$$v},expression:\"selectedMaximumRtoScale\"}})],1),_c('v-stepper-content',{attrs:{\"step\":\"4\"}},[_c('v-simple-table',{attrs:{\"fixed-header\":\"\",\"height\":\"420px\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(\" Asset \")]),_c('th',{staticClass:\"text-center\",staticStyle:{\"width\":\"8rem\"}},[_vm._v(\" Already Allocated \")]),_c('th',{staticClass:\"text-center\",staticStyle:{\"width\":\"8rem\"}},[_vm._v(\" Max Required \")]),_c('th',{staticClass:\"text-center\",staticStyle:{\"width\":\"8rem\"}},[_vm._v(\" Allocate\"),_c('br'),_vm._v(\"On-Top \")])]),_c('tr')]),_c('tbody',_vm._l((_vm.selectedAssets),function(a){return _c('tr',{key:a.id},[_c('td',[_vm._v(\" \"+_vm._s(a.name)+\" \")]),_c('td',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(a.allocated)+\" \")]),_c('td',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(a.needed)+\" \")]),_c('td',[_c('pd-number-field',{staticClass:\"centered-input\",attrs:{\"min\":0,\"max\":a.needed - a.allocated,\"integer-only\":\"\",\"input-type\":\"text\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(a.assigned),callback:function ($$v) {_vm.$set(a, \"assigned\", $$v)},expression:\"a.assigned\"}})],1)])}),0)])],1),_c('v-stepper-content',{attrs:{\"step\":\"5\"}},[(_vm.step === 5)?_c('div',{staticStyle:{\"height\":\"400px\",\"overflow-y\":\"auto\"}},[_vm._v(\" Automatic Allocations of Resources, from Partition \"),_c('span',{staticClass:\"font-weight-bold red--text\"},[_vm._v(_vm._s(_vm.partition.text))]),_vm._v(\" to Recovery Site \"),_c('span',{staticClass:\"font-weight-bold green-text\"},[_vm._v(_vm._s(_vm.selectedRecoverySite.recoverySiteName))]),_c('v-simple-table',{attrs:{\"dense\":\"\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(\" Asset \")]),_c('th',{staticClass:\"text-center\",staticStyle:{\"width\":\"8rem\"}},[_vm._v(\" Already Allocated \")]),_c('th',{staticClass:\"text-center\",staticStyle:{\"width\":\"8rem\"}},[_vm._v(\" Max Required \")]),_c('th',{staticClass:\"text-center\",staticStyle:{\"width\":\"8rem\"}},[_vm._v(\" Allocate\"),_c('br'),_vm._v(\"On-Top \")])]),_c('tr')]),_c('tbody',_vm._l((_vm.selectedAssets),function(a){return _c('tr',{key:a.id},[_c('td',[_vm._v(\" \"+_vm._s(a.name)+\" \")]),_c('td',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(a.allocated)+\" \")]),_c('td',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(a.needed)+\" \")]),_c('td',{staticClass:\"text-center grey1--text\"},[_vm._v(\" \"+_vm._s(a.assigned)+\" \")])])}),0)]),_c('div',{staticClass:\"mt-4\"},[_vm._v(\" Click finish to Allocate the resources! \")])],1):_vm._e()])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { ArrayDataSource } from '@/core/datasource';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { IDto, SimpleRtoScaleDto, StrategyScenarioRecoverySiteDto } from '@/dtos';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport i18n from '@/i18n';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport { StrategyService } from '@/services/bcm';\nimport PdNumberField from '@/components/core/PdNumberField.vue';\n\nexport default defineComponent({\n name: 'StrategyScenarioPartitionAllocationsDialog',\n\n components: {\n PdPopupCard,\n PdDataTable,\n PdNumberField,\n },\n\n props: {\n strategyId: {\n type: Number,\n required: true,\n },\n\n scenarioId: {\n type: Number,\n required: true,\n },\n\n partition: {\n type: Object as PropType,\n required: true,\n },\n\n recoverySites: {\n type: Array as PropType>,\n required: true,\n },\n\n rtoScales: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const step = ref(1);\n\n let min = props.rtoScales[0];\n let max = props.rtoScales[0];\n\n props.rtoScales.forEach(r => {\n if (r.value < min.value) {\n min = r;\n }\n\n if (r.value > max.value) {\n max = r;\n }\n });\n\n const selectedMinimumRtoScale = ref(min);\n const selectedMaximumRtoScale = ref(max);\n\n const remainingRtoScales = ref>(props.rtoScales);\n\n watch(\n selectedMinimumRtoScale,\n () => {\n remainingRtoScales.value = props.rtoScales.filter(r => r.value >= selectedMinimumRtoScale.value.value);\n },\n );\n\n watch(\n selectedMaximumRtoScale,\n async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n const allocations = await StrategyService.GetStrategyScenarioPartitionRtoAllocations(props.strategyId, props.scenarioId, props.partition.id, selectedMaximumRtoScale.value.id);\n\n selectedAssets.value = allocations.map(a => {\n let alloc = 0;\n Object.entries(a.allocations)\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n .forEach(([_, value]) => {\n alloc += value;\n });\n\n return {\n id: a.assetId,\n name: a.assetName,\n needed: a.needed,\n assigned: 0,\n allocated: alloc,\n };\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n { immediate: true },\n );\n\n const allowedNext = computed(() => {\n return (step.value === 1) ||\n (step.value === 2 && selectedRecoverySite.value != null) ||\n (step.value === 3) ||\n (step.value === 4 && selectedAssets.value.length > 0);\n });\n\n const allRecoverySites = computed(() => new ArrayDataSource(\n props.recoverySites,\n {},\n ));\n\n const recoverySitesHeaders: Array> = [\n {\n id: 'recoverySiteName',\n text: 'Recovery Site',\n value: 'recoverySiteName',\n },\n ];\n\n const selectedRecoverySite = ref(null);\n\n const selectedAssets = ref>([]);\n\n function finishDialog() {\n if (selectedRecoverySite.value == null ||\n selectedAssets.value.length === 0) {\n return;\n }\n\n emit('allocate', {\n partitionId: props.partition.id,\n recoverySiteId: selectedRecoverySite.value.id,\n minRtoId: selectedMinimumRtoScale.value.id,\n maxRtoId: selectedMaximumRtoScale.value.id,\n assets: selectedAssets.value,\n });\n }\n\n return {\n step,\n finishDialog,\n allowedNext,\n\n allRecoverySites,\n recoverySitesHeaders,\n selectedRecoverySite,\n\n selectedAssets,\n\n selectedMinimumRtoScale,\n selectedMaximumRtoScale,\n remainingRtoScales,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioPartitionAllocationsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioPartitionAllocationsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StrategyScenarioPartitionAllocationsDialog.vue?vue&type=template&id=689e00cc&scoped=true&\"\nimport script from \"./StrategyScenarioPartitionAllocationsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./StrategyScenarioPartitionAllocationsDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"689e00cc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VStepper } from 'vuetify/lib/components/VStepper';\nimport { VStepperContent } from 'vuetify/lib/components/VStepper';\nimport { VStepperHeader } from 'vuetify/lib/components/VStepper';\nimport { VStepperItems } from 'vuetify/lib/components/VStepper';\nimport { VStepperStep } from 'vuetify/lib/components/VStepper';\ninstallComponents(component, {VBtn,VCol,VDivider,VRow,VSelect,VSimpleTable,VStepper,VStepperContent,VStepperHeader,VStepperItems,VStepperStep})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"v-card__subtitle\"},[_c('div',[_c('v-menu',{attrs:{\"offset-x\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"text-none mr-2 mb-1\",attrs:{\"small\":\"\",\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.menu)+\" \")])],1)]}}])},[_c('v-list',[_c('v-list-item',{on:{\"click\":_vm.automaticallyAssign}},[_c('v-list-item-title',[_vm._v(\" Automatic Allocations \")])],1),_c('v-list-item',{on:{\"click\":_vm.clearAllocations}},[_c('v-list-item-title',[_vm._v(\" Clear Allocations \")])],1)],1)],1),_vm._v(\" \"+_vm._s(_vm.partitionName)+\" \")],1)]),_c('v-expansion-panel-content',[_c('v-tabs',{attrs:{\"value\":_vm.selectedRto},on:{\"change\":_vm.changeSelectedRto}},[_c('v-tabs-slider'),_vm._l((_vm.rtoScales),function(rto){return _c('v-tab',{key:rto.id},[_vm._v(\" \"+_vm._s(rto.name)+\" (\"+_vm._s(rto.value)+\") \")])})],2),_c('v-tabs-items',{attrs:{\"value\":_vm.selectedRto}},_vm._l((_vm.rtoScales),function(rto){return _c('strategy-scenario-partition-rto',{key:rto.id,attrs:{\"strategy-id\":_vm.strategyId,\"scenario-id\":_vm.scenarioId,\"partition-id\":_vm.partitionId,\"recovery-sites\":_vm.recoverySites,\"recovery-sites-assignements\":_vm.recoverySitesAssignements,\"recovery-sites-capacities\":_vm.recoverySitesCapacities,\"rto-id\":rto.id,\"rto-name\":rto.name}})}),1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-tab-item',[_c('v-simple-table',{attrs:{\"dense\":\"\",\"height\":_vm.allocations.length > 20 ? '700px' : undefined,\"fixed-header\":\"\"}},[_c('thead',[_c('tr',[_c('th'),_c('th'),_c('th'),_vm._l((_vm.recoverySites),function(rs){return _c('th',{key:rs.recoverySiteId,staticClass:\"text-center\",attrs:{\"colspan\":\"3\"}},[_vm._v(\" \"+_vm._s(rs.recoverySiteName)+\" \")])})],2),_c('tr',[_c('th',[_vm._v(\" Assets \")]),_c('th',{staticClass:\"text-center\",staticStyle:{\"width\":\"5rem\"}},[_vm._v(\" Needed \")]),_c('th',{staticClass:\"text-center\",staticStyle:{\"width\":\"5rem\"}},[_vm._v(\" Assigned \")]),_vm._l((_vm.recoverySites),function(rs){return [_c('th',{key:'cap'+rs.recoverySiteId,staticClass:\"text-center\",staticStyle:{\"width\":\"5rem\"}},[_vm._v(\" Capacity \")]),_c('th',{key:'av'+rs.recoverySiteId,staticClass:\"text-center\",staticStyle:{\"width\":\"5rem\"}},[_vm._v(\" Available \")]),_c('th',{key:'as'+rs.recoverySiteId,staticClass:\"text-center\",staticStyle:{\"width\":\"5rem\"}},[_vm._v(\" Assigned \")])]})],2)]),_c('tbody',_vm._l((_vm.allocations),function(allocation){return _c('strategy-scenario-partition-rto-asset-line',{key:allocation.assetId,attrs:{\"recovery-sites\":_vm.recoverySites,\"recovery-sites-assignements\":_vm.recoverySitesAssignements,\"recovery-sites-capacities\":_vm.recoverySitesCapacities,\"allocation\":allocation},on:{\"change\":function($event){return _vm.allocationChanged($event, allocation)}}})}),1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.allocation.assetName)+\" \")]),_c('td',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.allocation.needed)+\" \")]),_c('td',{staticClass:\"text-center\",style:({'background-color': _vm.assignedColor})},[_vm._v(\" \"+_vm._s(_vm.assigned)+\" \")]),_vm._l((_vm.recoverySites),function(rs){return [_c('strategy-scenario-partition-rto-asset-recovery-site',{key:rs.recoverySiteId,attrs:{\"asset-id\":_vm.allocation.assetId,\"assigned\":_vm.allocation.allocations[rs.recoverySiteId],\"recovery-site-id\":rs.recoverySiteId,\"recovery-sites-assignements\":_vm.recoverySitesAssignements,\"recovery-sites-capacities\":_vm.recoverySitesCapacities,\"rto-id\":_vm.allocation.rtoId},on:{\"change\":function($event){return _vm.$emit('change', {recoverySiteId: rs.recoverySiteId, value: $event})}}})]})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('td',{key:'cap' + _vm.recoverySiteId,staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.recoverySiteCapacity)+\" \")]),_c('td',{key:'av' + _vm.recoverySiteId,staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.recoverySiteAssigned)+\" \")]),_c('td',{key:'as' + _vm.recoverySiteId,staticClass:\"text-center\"},[_c('pd-number-field',{staticClass:\"centered-input\",style:({'background-color': _vm.color}),attrs:{\"min\":0,\"integer-only\":\"\",\"input-type\":\"text\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"change\":_vm.changedValue},model:{value:(_vm._assigned),callback:function ($$v) {_vm._assigned=$$v},expression:\"_assigned\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ref, computed, defineComponent, PropType, watch } from '@vue/composition-api';\nimport PdNumberField from '@/components/core/PdNumberField.vue';\n\nexport default defineComponent({\n name: 'StrategyScenarioPartitionRtoAssetLine',\n\n components: {\n PdNumberField,\n },\n\n props: {\n rtoId: {\n type: Number as PropType,\n required: true,\n },\n\n assetId: {\n type: Number as PropType,\n required: true,\n },\n\n recoverySiteId: {\n type: Number as PropType,\n required: true,\n },\n\n assigned: {\n type: Number as PropType,\n default: 0,\n },\n\n recoverySitesAssignements: {\n type: Object as PropType<{ [key: string]: number; }>,\n required: true,\n },\n\n recoverySitesCapacities: {\n type: Object as PropType<{ [key: string]: number; }>,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const recoverySiteCapacity = props.recoverySitesCapacities[`${props.recoverySiteId}-${props.assetId}`] || 0;\n\n const recoverySiteAssigned = computed(() => {\n return recoverySiteCapacity - props.recoverySitesAssignements[`${props.recoverySiteId}-${props.assetId}-${props.rtoId}`] || 0;\n });\n\n const color = computed(() => {\n if (props.assigned > 0) {\n return '#0001';\n }\n return '';\n });\n\n const _assigned = ref(props.assigned);\n\n watch(\n () => props.assigned,\n (newValue) => {\n _assigned.value = newValue;\n },\n );\n\n return {\n recoverySiteAssigned,\n recoverySiteCapacity,\n\n _assigned,\n\n color,\n\n changedValue(val: never) {\n _assigned.value = props.assigned;\n emit('change', val);\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioPartitionRtoAssetRecoverySite.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioPartitionRtoAssetRecoverySite.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StrategyScenarioPartitionRtoAssetRecoverySite.vue?vue&type=template&id=eef3d7dc&scoped=true&\"\nimport script from \"./StrategyScenarioPartitionRtoAssetRecoverySite.vue?vue&type=script&lang=ts&\"\nexport * from \"./StrategyScenarioPartitionRtoAssetRecoverySite.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eef3d7dc\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { StrategyScenarioAllocationDto, StrategyScenarioRecoverySiteDto } from '@/dtos';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport PdNumberField from '@/components/core/PdNumberField.vue';\nimport StrategyScenarioPartitionRtoAssetRecoverySite from './StrategyScenarioPartitionRtoAssetRecoverySite.vue';\n\nexport default defineComponent({\n name: 'StrategyScenarioPartitionRtoAssetLine',\n\n components: {\n PdNumberField,\n StrategyScenarioPartitionRtoAssetRecoverySite,\n },\n\n props: {\n allocation: {\n type: Object as PropType,\n required: true,\n },\n\n recoverySites: {\n type: Array as PropType>,\n required: true,\n },\n\n recoverySitesAssignements: {\n type: Object as PropType<{ [key: string]: number; }>,\n required: true,\n },\n\n recoverySitesCapacities: {\n type: Object as PropType<{ [key: string]: number; }>,\n required: true,\n },\n },\n\n setup(props) {\n const assigned = computed(() => {\n let sum = 0;\n for (const a in props.allocation.allocations) {\n sum += props.allocation.allocations[a];\n }\n return sum;\n });\n\n const assignedColor = computed(() => {\n if (assigned.value === props.allocation.needed) {\n return '#0f02';\n } else if (assigned.value < props.allocation.needed) {\n return '#f002';\n } else {\n return '#ff02';\n }\n });\n\n return {\n assigned,\n assignedColor,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioPartitionRtoAssetLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioPartitionRtoAssetLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StrategyScenarioPartitionRtoAssetLine.vue?vue&type=template&id=a25b5984&scoped=true&\"\nimport script from \"./StrategyScenarioPartitionRtoAssetLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./StrategyScenarioPartitionRtoAssetLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a25b5984\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { StrategyScenarioAllocationDto, StrategyScenarioRecoverySiteDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport { StrategyService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport SnackbarMessageService from '@/services/SnackbarMessageService';\nimport { defineComponent, PropType, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { cloneDeep } from 'lodash';\nimport StrategyScenarioPartitionRtoAssetLine from './StrategyScenarioPartitionRtoAssetLine.vue';\n\nexport default defineComponent({\n name: 'StrategyScenarioPartitionRto',\n\n components: {\n StrategyScenarioPartitionRtoAssetLine,\n },\n\n props: {\n strategyId: {\n type: Number as PropType,\n required: true,\n },\n\n scenarioId: {\n type: Number as PropType,\n required: true,\n },\n\n partitionId: {\n type: Number as PropType,\n required: true,\n },\n\n rtoId: {\n type: Number as PropType,\n required: true,\n },\n\n rtoName: {\n type: String as PropType,\n required: true,\n },\n\n recoverySites: {\n type: Array as PropType>,\n required: true,\n },\n\n recoverySitesAssignements: {\n type: Object as PropType<{ [key: string]: number; }>,\n required: true,\n },\n\n recoverySitesCapacities: {\n type: Object as PropType<{ [key: string]: number; }>,\n required: true,\n },\n },\n\n setup(props) {\n const allocations = ref>([]);\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(`Loading RTO ${props.rtoName}...`);\n try {\n allocations.value = await StrategyService.GetStrategyScenarioPartitionRtoAllocations(props.strategyId, props.scenarioId, props.partitionId, props.rtoId);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n allocations,\n\n async allocationChanged(parameters: { recoverySiteId: number, value: number; }, allocation: StrategyScenarioAllocationDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n let send = cloneDeep(allocation);\n send.allocations[parameters.recoverySiteId] = parameters.value;\n send = await StrategyService.StrategyScenarioUpdateAllocation(props.strategyId, props.scenarioId, send);\n\n allocation.allocations[parameters.recoverySiteId] = send.allocations[parameters.recoverySiteId];\n\n SnackbarMessageService.SetMessage({ text: i18n.t('saved').toString() });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioPartitionRto.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioPartitionRto.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StrategyScenarioPartitionRto.vue?vue&type=template&id=ea3ddf2a&scoped=true&\"\nimport script from \"./StrategyScenarioPartitionRto.vue?vue&type=script&lang=ts&\"\nexport * from \"./StrategyScenarioPartitionRto.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ea3ddf2a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VSimpleTable,VTabItem})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport icons from '@/core/icons';\nimport { SimpleRtoScaleDto, StrategyScenarioRecoverySiteDto } from '@/dtos';\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport StrategyScenarioPartitionRto from './StrategyScenarioPartitionRto.vue';\n\nexport default defineComponent({\n name: 'StrategyScenarioPartitionDetailed',\n\n components: {\n StrategyScenarioPartitionRto,\n },\n\n props: {\n strategyId: {\n type: Number as PropType,\n required: true,\n },\n\n scenarioId: {\n type: Number as PropType,\n required: true,\n },\n\n partitionId: {\n type: Number as PropType,\n required: true,\n },\n\n partitionName: {\n type: String as PropType,\n required: true,\n },\n\n recoverySites: {\n type: Array as PropType>,\n required: true,\n },\n\n recoverySitesAssignements: {\n type: Object as PropType<{ [key: string]: number; }>,\n required: true,\n },\n\n recoverySitesCapacities: {\n type: Object as PropType<{ [key: string]: number; }>,\n required: true,\n },\n\n rtoScales: {\n type: Array as PropType>,\n required: true,\n },\n\n selectedRto: {\n type: Number,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n return {\n changeSelectedRto(val1: number) {\n emit('update:selectedRto', val1);\n },\n\n automaticallyAssign() {\n emit('allocate', { id: props.partitionId, text: props.partitionName });\n },\n\n clearAllocations() {\n emit('clear', { id: props.partitionId, text: props.partitionName });\n },\n\n icons: icons,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioPartitionDetailed.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioPartitionDetailed.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StrategyScenarioPartitionDetailed.vue?vue&type=template&id=f537d544&scoped=true&\"\nimport script from \"./StrategyScenarioPartitionDetailed.vue?vue&type=script&lang=ts&\"\nexport * from \"./StrategyScenarioPartitionDetailed.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f537d544\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTabsSlider } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VBtn,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VIcon,VList,VListItem,VListItemTitle,VMenu,VTab,VTabs,VTabsItems,VTabsSlider})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"50rem\",\"height\":\"700px\"}},[_c('div',{staticClass:\"row mt-2\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('bcm.systems.name'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1),_c('div',{staticClass:\"row mt-2\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('bcm.systems.description'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.description),callback:function ($$v) {_vm.description=$$v},expression:\"description\"}})],1),_c('div',{staticClass:\"row\"},[_c('v-switch',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('bcm.systems.isActive'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.system.isActive),callback:function ($$v) {_vm.$set(_vm.system, \"isActive\", $$v)},expression:\"system.isActive\"}})],1),_c('div',{staticClass:\"row\"},[_c('v-switch',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('bcm.systems.disasterRecoveryTest'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.system.disasterRecoveryTest),callback:function ($$v) {_vm.$set(_vm.system, \"disasterRecoveryTest\", $$v)},expression:\"system.disasterRecoveryTest\"}})],1),_c('div',{staticClass:\"row my-4\"},[_c('v-row',{staticClass:\"pa-0\",attrs:{\"dense\":\"\",\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pr-4\"},[_c('v-select',{staticClass:\"mt-0\",attrs:{\"items\":_vm.rtoScales,\"label\":_vm.$t('bcm.systems.infrastructureRto'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.system.infrastructureRtoId),callback:function ($$v) {_vm.$set(_vm.system, \"infrastructureRtoId\", $$v)},expression:\"system.infrastructureRtoId\"}})],1),_c('v-col',{staticClass:\"pr-4\"},[_c('v-select',{staticClass:\"mt-0\",attrs:{\"items\":_vm.rpoScales,\"label\":_vm.$t('bcm.systems.infrastructureRpo'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.system.infrastructureRpoId),callback:function ($$v) {_vm.$set(_vm.system, \"infrastructureRpoId\", $$v)},expression:\"system.infrastructureRpoId\"}})],1)],1)],1),_c('div',{staticClass:\"row\"},[_c('v-select',{staticClass:\"mt-0\",attrs:{\"items\":_vm.applicationTypes,\"label\":_vm.$t('bcm.systems.applicationType'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.system.applicationType),callback:function ($$v) {_vm.$set(_vm.system, \"applicationType\", $$v)},expression:\"system.applicationType\"}})],1),_c('div',{staticClass:\"row\"},[_c('v-switch',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('bcm.systems.isHorizontalService'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.system.isHorizontalService),callback:function ($$v) {_vm.$set(_vm.system, \"isHorizontalService\", $$v)},expression:\"system.isHorizontalService\"}})],1),_c('v-expand-transition',[(_vm.system.isHorizontalService)?_c('div',{staticClass:\"row\"},[_c('v-switch',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('bcm.systems.isSrbCritical'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.system.isSrbCritical),callback:function ($$v) {_vm.$set(_vm.system, \"isSrbCritical\", $$v)},expression:\"system.isSrbCritical\"}})],1):_vm._e()]),_c('div',{staticClass:\"row\"},[_c('v-switch',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('bcm.systems.isInHouse'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.system.isInHouse),callback:function ($$v) {_vm.$set(_vm.system, \"isInHouse\", $$v)},expression:\"system.isInHouse\"}})],1),_c('div',{staticClass:\"mt-3\"},[_c('v-simple-table',{staticClass:\"mr-2\",staticStyle:{\"width\":\"100%\"},attrs:{\"dense\":\"\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.services.modules'))+\" \")])])]),_c('tbody',_vm._l((_vm.system.modules),function(m,i){return _c('tr',{key:i},[_c('td',[_vm._v(\" \"+_vm._s(m)+\" \")])])}),0)])],1),_c('div',{staticClass:\"mt-3\"},[_c('v-simple-table',{staticClass:\"mr-2\",staticStyle:{\"width\":\"100%\"},attrs:{\"dense\":\"\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.services.itsdOfficers'))+\" \")])])]),_c('tbody',_vm._l((_vm.system.itsdOfficers),function(m,i){return _c('tr',{key:i},[_c('td',[_vm._v(\" \"+_vm._s(m.info)+\" \")])])}),0)])],1),_c('div',{staticClass:\"mt-3\"},[_c('v-simple-table',{staticClass:\"mr-2\",staticStyle:{\"width\":\"100%\"},attrs:{\"dense\":\"\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.services.businessOwners'))+\" \")])])]),_c('tbody',_vm._l((_vm.system.businessOwners),function(m,i){return _c('tr',{key:i},[_c('td',[_vm._v(\" \"+_vm._s(m.info)+\" \")])])}),0)])],1),_c('div',{staticClass:\"mt-3\"},[_c('v-simple-table',{staticClass:\"mr-2\",staticStyle:{\"width\":\"100%\"},attrs:{\"dense\":\"\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.services.serviceOwners'))+\" \")])])]),_c('tbody',_vm._l((_vm.system.serviceOwners),function(m,i){return _c('tr',{key:i},[_c('td',[_vm._v(\" \"+_vm._s(m.info)+\" \")])])}),0)])],1),_c('div',{staticClass:\"mt-3\"},[_c('v-simple-table',{staticClass:\"mr-2\",staticStyle:{\"width\":\"100%\"},attrs:{\"dense\":\"\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.services.applicationOwners'))+\" \")])])]),_c('tbody',_vm._l((_vm.system.applicationOwners),function(m,i){return _c('tr',{key:i},[_c('td',[_vm._v(\" \"+_vm._s(m.info)+\" \")])])}),0)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport { ApplicationType, SystemDto } from '@/dtos/bcm';\nimport i18n from '@/i18n';\nimport { ApplicationModule } from '@/store';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'SystemEdit',\n\n components: {\n\n },\n\n props: {\n system: {\n type: Object as PropType,\n required: true,\n },\n\n rtoScales: {\n type: Array as PropType>,\n required: true,\n },\n\n rpoScales: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props) {\n const name = ref('');\n const description = ref('');\n\n const applicationTypes: Array = [\n {\n value: ApplicationType.ExternalPortal,\n text: i18n.t('bcm.systems.applicationTypes.externalPortal'),\n },\n {\n value: ApplicationType.CustomBuild,\n text: i18n.t('bcm.systems.applicationTypes.customBuild'),\n },\n {\n value: ApplicationType.PurchasedAsIs,\n text: i18n.t('bcm.systems.applicationTypes.purchasedAsIs'),\n },\n {\n value: ApplicationType.PurchasedWithModifications,\n text: i18n.t('bcm.systems.applicationTypes.purchasedWithModifications'),\n },\n ];\n\n watch(\n () => props.system,\n (newValue) => {\n if (newValue.translations == null) {\n newValue.translations = {};\n }\n\n if (newValue.translations[ApplicationModule.Language] == null) {\n newValue.translations[ApplicationModule.Language] = { name: '', description: '' };\n }\n\n name.value = newValue.translations[ApplicationModule.Language].name;\n description.value = newValue.translations[ApplicationModule.Language].description;\n },\n { immediate: true },\n );\n\n watch(\n name,\n (newValue) => {\n props.system.translations[ApplicationModule.Language].name = newValue;\n },\n );\n\n watch(\n description,\n (newValue) => {\n props.system.translations[ApplicationModule.Language].description = newValue;\n },\n );\n\n watch(\n () => props.system.isHorizontalService,\n (newValue) => {\n if (newValue === false) {\n props.system.isSrbCritical = false;\n }\n },\n );\n\n return {\n applicationTypes,\n name,\n description,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemEdit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemEdit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SystemEdit.vue?vue&type=template&id=dde1c6c4&scoped=true&\"\nimport script from \"./SystemEdit.vue?vue&type=script&lang=ts&\"\nexport * from \"./SystemEdit.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SystemEdit.vue?vue&type=style&index=0&id=dde1c6c4&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dde1c6c4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCol,VExpandTransition,VRow,VSelect,VSimpleTable,VSwitch,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{key:_vm.refresh,attrs:{\"title\":_vm.$t('bcm.associates.title')}},[(_vm.showImportDialog)?_c('pd-file-import-dialog',{attrs:{\"title\":_vm.$t('bcm.associates.importTitle').toString(),\"hide-clear-existing\":\"\",\"show-ignore-duplicates\":\"\"},on:{\"save\":_vm.uploadCsvFile,\"cancel\":function($event){_vm.showImportDialog = false}},scopedSlots:_vm._u([{key:\"importFileFormat\",fn:function(){return [_c('i18n',{attrs:{\"path\":\"bcm.associates.importFormat\"}},[_c('br')])]},proxy:true}],null,false,2866038093)}):_vm._e(),_c('pd-data-table',{attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.headers,\"options\":{ editable: true},\"sort\":\"name_en-US\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\",\"rows-per-page\":100},scopedSlots:_vm._u([{key:\"customTableActions\",fn:function(){return [_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.exportData}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.export)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1),_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":function($event){_vm.showImportDialog = true}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.import)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('import'))+\" \")],1)]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup-card',{attrs:{\"visible\":\"\",\"width\":\"45rem\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.title)+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.submit}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")])]},proxy:true}])},[_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('v-file-input',{attrs:{\"accept\":\".csv\",\"counter\":\"\",\"show-size\":\"\",\"truncate-length\":\"50\",\"placeholder\":\"Select file...\"},model:{value:(_vm.importSelectedFile),callback:function ($$v) {_vm.importSelectedFile=$$v},expression:\"importSelectedFile\"}})],1)]),(!_vm.hideLanguages)?_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.language'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.availableLanguages},model:{value:(_vm.importLanguage),callback:function ($$v) {_vm.importLanguage=$$v},expression:\"importLanguage\"}})],1)]):_vm._e(),(!_vm.hideClearExisting)?_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.clearExisting'))+\" \")]),_c('td',[_c('v-simple-checkbox',{directives:[{name:\"ripple\",rawName:\"v-ripple\"}],model:{value:(_vm.clearExisting),callback:function ($$v) {_vm.clearExisting=$$v},expression:\"clearExisting\"}})],1)]):_vm._e(),(_vm.showIgnoreDuplicates)?_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.ignoreDuplicates'))+\" \")]),_c('td',[_c('v-simple-checkbox',{directives:[{name:\"ripple\",rawName:\"v-ripple\"}],model:{value:(_vm.importIgnoreDuplicates),callback:function ($$v) {_vm.importIgnoreDuplicates=$$v},expression:\"importIgnoreDuplicates\"}})],1)]):_vm._e(),(!_vm.hideIgnoreFirstLine)?_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.ignoreFirstLine'))+\" \")]),_c('td',[_c('v-simple-checkbox',{directives:[{name:\"ripple\",rawName:\"v-ripple\"}],model:{value:(_vm.importIgnoreFirstLine),callback:function ($$v) {_vm.importIgnoreFirstLine=$$v},expression:\"importIgnoreFirstLine\"}})],1)]):_vm._e(),(!_vm.hideDelimiter)?_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.delimiter'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"value\":\";\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.importDelimiter),callback:function ($$v) {_vm.importDelimiter=$$v},expression:\"importDelimiter\"}})],1)]):_vm._e(),(!_vm.hideImportFileFormat)?_c('tr',[_c('td',{staticClass:\"text-caption\",attrs:{\"colspan\":\"2\"}},[_vm._t(\"importFileFormat\",[_vm._v(\" \"+_vm._s(_vm.importFileFormat)+\" \")])],2)]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport { UploadCsvFileDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { ApplicationModule } from '@/store';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport PdPopupCard from './PdPopupCard.vue';\n\nexport default defineComponent({\n name: 'PdFileImportDialog',\n\n components: {\n PdPopupCard,\n },\n\n props: {\n title: {\n type: String,\n default: '',\n },\n\n importFileFormat: {\n type: String,\n default: '',\n },\n\n hideImportFileFormat: {\n type: Boolean,\n default: false,\n },\n\n hideClearExisting: {\n type: Boolean,\n default: false,\n },\n\n hideLanguages: {\n type: Boolean,\n default: false,\n },\n\n hideDelimiter: {\n type: Boolean,\n default: false,\n },\n\n hideIgnoreFirstLine: {\n type: Boolean,\n default: false,\n },\n\n showIgnoreDuplicates: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const importSelectedFile = ref(null);\n const importLanguage = ref(0);\n const importIgnoreFirstLine = ref(true);\n const importIgnoreDuplicates = ref(true);\n const importDelimiter = ref(';');\n const clearExisting = ref(false);\n\n const availableLanguages: Array = [];\n\n if (!props.hideLanguages) {\n const entity = ApplicationModule.Entity;\n if (entity == null) { return; }\n\n for (let i = 0; i < entity.languages.length; ++i) {\n if (importLanguage.value === 0) {\n importLanguage.value = entity.languages[i].languageId;\n }\n\n availableLanguages.push({\n text: entity.languages[i].language,\n value: entity.languages[i].languageId,\n });\n }\n }\n\n function submit() {\n if (importSelectedFile.value == null) {\n PopupMessageService.SetMessage({\n title: i18n.t('error'),\n text: i18n.t('upload.selectFileError'),\n index: 100,\n });\n return;\n }\n\n if (!importDelimiter.value) {\n PopupMessageService.SetMessage({\n title: i18n.t('error'),\n text: i18n.t('upload.selectDelimiterError'),\n index: 100,\n });\n return;\n }\n\n const data: UploadCsvFileDto = {\n file: importSelectedFile.value,\n language: importLanguage.value,\n ignoreFirstLine: importIgnoreFirstLine.value,\n delimiter: importDelimiter.value,\n clearExisting: clearExisting.value,\n ignoreDuplicates: importIgnoreDuplicates.value,\n };\n\n emit('save', data);\n }\n\n return {\n importSelectedFile,\n importLanguage,\n importIgnoreFirstLine,\n importIgnoreDuplicates,\n importDelimiter,\n clearExisting,\n\n availableLanguages,\n\n submit,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdFileImportDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdFileImportDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdFileImportDialog.vue?vue&type=template&id=275d4f22&scoped=true&\"\nimport script from \"./PdFileImportDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdFileImportDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"275d4f22\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VFileInput } from 'vuetify/lib/components/VFileInput';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VFileInput,VSelect,VSimpleCheckbox,VTextField})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Ripple from 'vuetify/lib/directives/ripple'\ninstallDirectives(component, {Ripple})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport i18n from '@/i18n';\nimport { PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { AssociateDto } from '@/dtos/bcm';\nimport { ApplicationModule } from '@/store';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport PdColumnCheckboxVue from '@/components/core/PdDataTable/columns/PdColumnCheckbox.vue';\nimport { UploadCsvFileDto } from '@/dtos';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport { v4 } from 'uuid';\nimport icons from '@/core/icons';\nimport PdFileImportDialog from '@/components/core/PdFileImportDialog.vue';\nimport DownloadService from '@/services/DownloadService';\nimport { AssociatesService } from '@/services/bcm';\n\nexport default defineComponent({\n name: 'Sector',\n\n components: {\n PdFormBase,\n PdDataTable,\n PdFileImportDialog,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const datasource = DatasourcesService.Bcm.Associates;\n\n const loading = ref(true);\n const refresh = ref(v4());\n const showImportDialog = ref(false);\n const importType = ref('');\n const importTitle = ref('');\n const importFormat = ref('');\n\n const headers: Array> = [\n {\n id: 'name',\n text: i18n.t('bcm.associates.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n // defaultValue: { [ApplicationModule.Language]: { name: 'New System' } },\n template: (item) => {\n return LanguageTemplate(item as AssociateDto, 'name');\n },\n },\n {\n id: 'vat',\n text: i18n.t('bcm.associates.vat').toString(),\n value: 'vat',\n width: '20rem',\n },\n {\n id: 'isIntragroup',\n text: i18n.t('bcm.associates.isIntragroup').toString(),\n value: 'isIntragroup',\n component: PdColumnCheckboxVue,\n defaultValue: false,\n },\n ];\n\n async function uploadCsvFile(data: UploadCsvFileDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('uploading').toString());\n try {\n showImportDialog.value = false;\n\n await AssociatesService.Import(data);\n\n init();\n\n PopupMessageService.SetMessage({\n title: i18n.t('success'),\n text: i18n.t('upload.success'),\n index: 100,\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function exportData() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('downloading').toString());\n try {\n var file = await AssociatesService.Export();\n DownloadService.DownloadFile(file);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n refresh.value = v4();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n datasource,\n headers,\n\n loading,\n refresh,\n showImportDialog,\n importType,\n importTitle,\n importFormat,\n uploadCsvFile,\n exportData,\n\n icons: {\n import: icons.import,\n export: icons.export,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssociatesView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssociatesView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssociatesView.vue?vue&type=template&id=802eb23c&scoped=true&\"\nimport script from \"./AssociatesView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssociatesView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"802eb23c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.loading)?_c('div',[_c('v-row',{staticClass:\"border-bottom\"},[_c('v-col',{staticClass:\"border-right\"},[_c('pd-echart-pie',{attrs:{\"title\":\"Deployment Status\",\"title-font-size\":\"18\",\"legend-position\":\"top\",\"data\":_vm.statuses,\"pie-style\":{borderRadius: 2, borderColor: 'white', borderWidth: 1},\"tooltips\":_vm.statusesTooltips,\"downloadable\":\"\",\"background-colors\":['#f8a176', '#d1f891', '#bad483', '#29c090'],\"labels\":['Data Entry', 'Approval', 'Admin Approval', 'Finished']}})],1),_c('v-col',[_c('pd-echart-pie',{attrs:{\"title\":\"Deployment Timelines\",\"data\":_vm.timelines,\"title-font-size\":\"18\",\"legend-position\":\"top\",\"tooltips\":_vm.timelinesTooltips,\"background-colors\":['#29c090', '#f8a176'],\"downloadable\":\"\",\"labels\":['On Time', 'Delayed'],\"styling\":\"width: 100%; height: 300px\"}})],1)],1),_c('v-row',{staticClass:\"border-bottom\"},[_c('v-col',{staticClass:\"border-right\"},[_c('pd-echart-bar',{attrs:{\"title\":\"Recovery Time Objectives (RTO)\",\"labels\":_vm.rtoMaoLabels,\"title-font-size\":\"18\",\"data\":_vm.rto,\"show-background\":\"\",\"background-colors\":_vm.rtoMaoColors,\"tooltips\":_vm.rtoTooltip,\"x-axis\":{type: 'category', data: _vm.rtoMaoLabels, axisLabel: {interval: 0, rotate: 10},},\"zoom-x\":\"\",\"downloadable\":\"\",\"enable-chart-switcher\":\"\"}})],1),_c('v-col',[_c('pd-echart-bar',{attrs:{\"title\":\"Maximum Acceptable Outages (MAO)\",\"labels\":_vm.rtoMaoLabels,\"data\":_vm.mao,\"title-font-size\":\"18\",\"background-colors\":_vm.rtoMaoColors,\"tooltips\":_vm.maoTooltip,\"x-axis\":{type: 'category', data: _vm.rtoMaoLabels, axisLabel: {interval: 0, rotate: 0},},\"y-axis\":{type: 'value'},\"downloadable\":\"\",\"show-background\":\"\",\"zoom-x\":\"\",\"enable-chart-switcher\":\"\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"border-right\"},[_c('pd-echart-pie',{attrs:{\"title-font-size\":\"18\",\"title\":\"Risk Levels\",\"doughnut\":\"\",\"labels\":_vm.riskLevelLabels,\"data\":Object.values(_vm.riskLevelsData),\"background-colors\":_vm.riskLevelColors,\"tooltips\":Object.values(_vm.riskLevelsTooltips),\"pie-style\":{borderWidth: 4, borderColor: 'white'},\"downloadable\":\"\"}})],1),_c('v-divider',{attrs:{\"vertical\":\"\"}}),_c('v-col',{staticClass:\"border-right\"},[_c('pd-echart-pie',{attrs:{\"title\":\"Risk Treatments\",\"doughnut\":\"\",\"title-font-size\":\"18\",\"labels\":_vm.riskTreatmentLabels,\"data\":Object.values(_vm.riskTreatmentData),\"background-colors\":_vm.riskTreatmentColors,\"tooltips\":Object.values(_vm.riskTreatmentsTooltips),\"pie-style\":{borderWidth: 4, borderColor: 'white'},\"downloadable\":\"\"}})],1),_c('v-divider',{attrs:{\"vertical\":\"\"}}),_c('v-col',{staticClass:\"border-right\"},[_c('pd-echart-pie',{attrs:{\"title\":\"Risk Implementations\",\"doughnut\":\"\",\"title-font-size\":\"18\",\"labels\":_vm.riskImplementationLabels,\"data\":Object.values(_vm.riskImplementationData),\"background-colors\":_vm.riskImplementationColors,\"tooltips\":Object.values(_vm.riskImplementationsTooltips),\"downloadable\":\"\",\"pie-style\":{borderWidth: 4, borderColor: 'white'}}})],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-echarts',{attrs:{\"options\":_vm.barOptions,\"styling\":\"width: 100%; height: 300px\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"canvas\",style:(_vm.styling)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\nimport { defineComponent, onBeforeUnmount, onMounted, PropType, ref, watch } from '@vue/composition-api';\nimport * as echarts from 'echarts';\n\nexport type EChartsOption = echarts.EChartsOption;\n\nexport default defineComponent({\n name: 'PdEcharts',\n\n props: {\n styling: {\n type: String,\n },\n\n options: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const canvas = ref(null);\n\n watch(\n canvas,\n () => {\n refreshGraph();\n },\n { immediate: true },\n );\n\n watch(\n () => props.options,\n () => {\n refreshGraph();\n },\n { immediate: true },\n );\n\n let myChart :null | echarts.ECharts = null;\n\n onMounted(() => {\n window.addEventListener('resize', handleResize);\n window.addEventListener('focus', handleResize);\n });\n onBeforeUnmount(() => {\n window.removeEventListener('resize', handleResize);\n window.removeEventListener('focus', handleResize);\n });\n function handleResize() {\n if (myChart) {\n myChart.resize();\n }\n }\n\n function refreshGraph() {\n if (canvas.value == null) {\n return;\n }\n\n echarts.dispose(canvas.value);\n\n myChart = echarts.init(canvas.value);\n if (myChart) {\n myChart.setOption(props.options);\n }\n }\n\n return {\n canvas,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdEcharts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdEcharts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdEcharts.vue?vue&type=template&id=c942d40a&scoped=true&\"\nimport script from \"./PdEcharts.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdEcharts.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c942d40a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport PdEcharts, { EChartsOption } from '@/components/core/charts/echarts/PdEcharts.vue';\nimport { DataZoomComponentOption, YAXisComponentOption, XAXisComponentOption } from 'echarts';\n\nexport default defineComponent({\n name: 'PdEchartBar',\n\n components: {\n PdEcharts,\n },\n\n props: {\n title: {\n type: String,\n default: '',\n },\n titlePosition: {\n type: String as PropType<'left' | 'center' | 'right'>,\n default: 'center',\n },\n barStyle: {\n type: Object as PropType<{borderRadius: number, borderColor: string, borderWidth: number}>| null,\n default: null,\n },\n labels: {\n type: Array as PropType>,\n required: true,\n },\n data: {\n type: Array as PropType>,\n required: true,\n },\n backgroundColors:\n {\n type: Array as PropType>,\n required: true,\n },\n tooltips: {\n type: Array as PropType>>,\n required: true,\n },\n yAxis: {\n type: Object as PropType,\n default: () => ({ }),\n },\n xAxis: {\n type: Object as PropType,\n required: true,\n },\n titleFontSize: {\n type: String,\n default: '12px',\n },\n downloadable: {\n type: Boolean,\n default: false,\n },\n showBackground: {\n type: Boolean,\n default: false,\n },\n showDefaultTooltip: {\n type: Boolean,\n default: false,\n },\n zoomX: {\n type: Boolean,\n default: false,\n },\n zoomY: {\n type: Boolean,\n default: false,\n },\n enableChartSwitcher: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props) {\n const loaded = ref(false);\n\n const barOptions = computed(() => {\n const ret: EChartsOption = {\n title: {\n text: props.title,\n left: props.titlePosition,\n textStyle: {\n fontSize: props.titleFontSize,\n },\n },\n toolbox: {\n right: 50,\n feature: {\n magicType: props.enableChartSwitcher ? {\n type: ['bar', 'line'],\n } : {},\n saveAsImage: {\n show: props.downloadable,\n },\n },\n },\n dataZoom: getZoom.value,\n xAxis: props.xAxis,\n yAxis: props.yAxis,\n series: {\n showBackground: props.showBackground,\n backgroundStyle: {\n color: 'rgba(180, 180, 180, 0.2)',\n },\n type: 'bar',\n itemStyle: props.barStyle,\n data: props.data.map((ele:unknown, index:number) => {\n const e = ele as number;\n return {\n value: e,\n name: props.labels[index],\n label: { show: e > 0, formatter: (item) => item.value.toString() },\n labelLine: { show: e > 0 },\n itemStyle: { color: props.backgroundColors[index] as string },\n };\n }),\n },\n\n tooltip: tooltipContent.value,\n };\n return ret;\n });\n\n const tooltipContent = computed(() => {\n if (props.showDefaultTooltip) {\n return {};\n } else {\n return {\n extraCssText: 'overflow-y: auto; max-height:300px;',\n enterable: true,\n confine: true,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n formatter: (params: any) => {\n let content = '';\n let index = 0;\n if (!Array.isArray(params)) {\n index = params.dataIndex;\n } else {\n throw Error('Echarts formatter parameters is an array');\n }\n const data = props.tooltips[index];\n content += `${params.data.name}
    `;\n for (const d of data) {\n content += `
  • ${d}
  • `;\n }\n return content;\n },\n };\n }\n });\n\n const getZoom = computed(() => {\n const xZoom: DataZoomComponentOption = {\n id: 'dataZoomX',\n type: 'slider',\n xAxisIndex: [0],\n filterMode: 'filter',\n };\n const yZoom: DataZoomComponentOption = {\n id: 'dataZoomY',\n type: 'slider',\n yAxisIndex: [0],\n filterMode: 'filter',\n };\n\n const ret: Array = [];\n\n if (props.zoomX) {\n ret.push(xZoom);\n }\n if (props.zoomY) {\n ret.push(yZoom);\n }\n return ret;\n });\n\n return {\n loaded,\n barOptions,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdEchartBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdEchartBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdEchartBar.vue?vue&type=template&id=30ee0fbd&\"\nimport script from \"./PdEchartBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdEchartBar.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-echarts',{attrs:{\"options\":_vm.pieOptions,\"styling\":\"width: 100%; height: 300px\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport PdEcharts, { EChartsOption } from '@/components/core/charts/echarts/PdEcharts.vue';\nimport { TooltipComponentOption } from 'echarts';\n\nexport default defineComponent({\n name: 'PdEchartPie',\n\n components: {\n PdEcharts,\n },\n\n props: {\n title: {\n type: String,\n default: '',\n },\n titlePosition: {\n type: String as PropType<'left' | 'center' | 'right'>,\n default: 'center',\n },\n titleFontSize: {\n type: String,\n default: '12px',\n },\n showEmptyCircle: {\n type: Boolean,\n default: false,\n },\n radius: {\n type: String,\n default: '75%',\n },\n labels: {\n type: Array as PropType>,\n required: true,\n },\n legendPosition: {\n type: String as PropType<'top'|'bottom'>,\n default: 'bottom',\n },\n data: {\n type: Array as PropType>,\n required: true,\n },\n backgroundColors:\n {\n type: Array as PropType>,\n required: true,\n },\n tooltips: {\n type: Array as PropType>>,\n required: true,\n },\n doughnut: {\n type: Boolean,\n default: false,\n },\n pieStyle: {\n type: Object as PropType<{borderRadius: number, borderColor: string, borderWidth: number}>| null,\n default: null,\n },\n innerDoughnutWidth: {\n type: String,\n default: '40%',\n },\n downloadable: {\n type: Boolean,\n default: false,\n },\n showDefaultTooltip: {\n type: Boolean,\n default: false,\n },\n\n },\n\n setup(props) {\n const loaded = ref(false);\n\n const pieOptions = computed(() => {\n const ret: EChartsOption = {\n title: {\n text: props.title,\n left: props.titlePosition,\n textStyle: {\n fontSize: +props.titleFontSize,\n },\n },\n toolbox: {\n right: 50,\n feature: {\n saveAsImage: {\n show: props.downloadable,\n },\n },\n },\n legend: {\n data: props.labels,\n top: props.legendPosition === 'top' ? 30 : 'bottom',\n itemStyle: {\n borderColor: 'white',\n },\n },\n series: {\n top: props.legendPosition === 'top' ? '10%' : '',\n type: 'pie',\n itemStyle: props.pieStyle ? props.pieStyle : {},\n radius: props.doughnut ? [props.innerDoughnutWidth, props.radius] : props.radius,\n showEmptyCircle: props.showEmptyCircle,\n data: props.data.map((ele:unknown, index:number) => {\n const e = ele as number;\n return {\n value: e > 0 ? e : '-',\n name: props.labels[index],\n label: { show: e > 0, position: 'inner', formatter: (item) => item.value.toString() },\n labelLine: { show: e > 0 },\n itemStyle: { color: props.backgroundColors[index] as string },\n };\n }),\n },\n tooltip: tooltipContent.value,\n };\n return ret;\n });\n\n const tooltipContent = computed(() => {\n const ret: TooltipComponentOption = {};\n if (props.showDefaultTooltip) {\n return ret;\n }\n\n ret.extraCssText = 'overflow-y: auto; max-height:300px;';\n\n ret.enterable = true;\n ret.confine = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ret.formatter = (params: any) => {\n let content = '';\n let index = 0;\n if (!Array.isArray(params)) {\n index = params.dataIndex;\n } else {\n throw Error('Echarts formatter parameters is an array');\n }\n const data = props.tooltips[index];\n content += `${params.name}
    `;\n for (const d of data) {\n content += `
  • ${d}
  • `;\n }\n return content;\n };\n\n return ret;\n });\n\n return {\n loaded,\n pieOptions,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdEchartPie.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdEchartPie.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdEchartPie.vue?vue&type=template&id=9561cb86&\"\nimport script from \"./PdEchartPie.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdEchartPie.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdEchartBar from '@/components/all/PdEchartBar.vue';\nimport PdEchartPie from '@/components/all/PdEchartPie.vue';\nimport PdEcharts from '@/components/core/charts/echarts/PdEcharts.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport { DeploymentStatus } from '@/dtos/all';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { ApplicationModule } from '@/store';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\n\nexport default defineComponent({\n name: 'BcmDashboard',\n\n components: {\n PdEcharts,\n PdEchartPie,\n PdEchartBar,\n },\n\n setup() {\n const language = ApplicationModule.Language;\n const entity = ApplicationModule.Entity;\n const statusDatasource = new ApiDataSource({ api: `masterplans/${entity?.id}/bc/Statistics/DeploymentStatuses?language=${language}` });\n const rtoMaoDatasource = new ApiDataSource({ api: `masterplans/${entity?.id}/bc/Statistics/GetPartitionRtoMao?language=${language}` });\n const riskDatasource = new ApiDataSource({ api: `masterplans/${entity?.id}/bc/Statistics/GetRiskCounts?language=${language}` });\n const statuses = [0, 0, 0, 0];\n const statusesTooltips:Array> = [[], [], [], []];\n const timelines = [0, 0];\n const timelinesTooltips :Array> = [[], []];\n const rto = ref < Array>([]);\n const rtoTooltip = ref>>([]);\n const mao = ref>([]);\n const maoTooltip = ref>>([]);\n const rtoMaoColors = ['#AAAAAA'];\n const rtoMaoLabels = ['Not Calculated'];\n const loading = ref(false);\n\n const riskLevelsData :{[key:string] : number} = {};\n const riskLevelLabels: Array = [];\n const riskLevelColors: Array = [];\n const riskLevelsTooltips : {[key:string] : Array} = {};\n\n const riskTreatmentData:{[key:string] : number} = {};\n const riskTreatmentLabels: Array = [];\n const riskTreatmentColors: Array = [];\n const riskTreatmentsTooltips: {[key:string] : Array} = {};\n\n const riskImplementationData :{[key:string] : number} = {};\n const riskImplementationLabels:Array = [];\n const riskImplementationColors:Array = [];\n const riskImplementations: {[key:string] : number} = {};\n const riskImplementationsTooltips: {[key:string] : Array} = {};\n\n init();\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy('Loading BCM dashboard...');\n loading.value = true;\n try {\n // 1st row\n const data = await statusDatasource.data();\n for (let i = 0; i < data.length; ++i) {\n if (data[i].status !== DeploymentStatus.Finished) {\n if (new Date(data[i].dueDate as string) < new Date()) {\n timelines[1] += 1;\n timelinesTooltips[1].push(data[i].deployment as string);\n } else {\n timelines[0] += 1;\n timelinesTooltips[0].push(data[i].deployment as string);\n }\n } else {\n if (new Date(data[i].dueDate as string) < new Date(data[i].finished as string)) {\n timelines[1] += 1;\n timelinesTooltips[1].push(data[i].deployment as string);\n } else {\n timelines[0] += 1;\n timelinesTooltips[0].push(data[i].deployment as string);\n }\n }\n\n if (data[i].status === DeploymentStatus.DataEntry) {\n statuses[0] += 1;\n statusesTooltips[0].push(data[i].deployment as string);\n } else if (data[i].status === DeploymentStatus.ApprovalPath) {\n statuses[1] += 1;\n statusesTooltips[1].push(data[i].deployment as string);\n } else if (\n data[i].status === DeploymentStatus.AdminApproval\n ) {\n statuses[2] += 1;\n statusesTooltips[2].push(data[i].deployment as string);\n } else if (data[i].status === DeploymentStatus.Finished) {\n statuses[3] += 1;\n statusesTooltips[3].push(data[i].deployment as string);\n }\n }\n\n // 2nd row\n const rtoMaoData = await rtoMaoDatasource.data();\n const scales = await DatasourcesService.Bcm.RtoScales.data();\n\n const maoRtoValues: {[key: string]: Array} = {\n empty: [0, 0],\n };\n const maoRtoTooltips: {[key: string] : Array>} = {\n empty: [[], []],\n };\n\n for (let i = 0; i < scales.length; ++i) {\n rtoMaoLabels.push(scales[i].translations[language].name);\n rtoMaoColors.push(scales[i].color);\n maoRtoValues[scales[i].id] = [0, 0];\n maoRtoTooltips[scales[i].id] = [[], []];\n }\n\n for (let i = 0; i < rtoMaoData.length; ++i) {\n if (rtoMaoData[i].rto == null) {\n maoRtoValues.empty[0] += 1;\n maoRtoTooltips.empty[0].push(rtoMaoData[i].partition as string);\n } else {\n maoRtoValues[rtoMaoData[i].rto as string][0] += 1;\n maoRtoTooltips[rtoMaoData[i].rto as string][0].push(rtoMaoData[i].partition as string);\n }\n\n if (rtoMaoData[i].mao == null) {\n maoRtoValues.empty[1] += 1;\n maoRtoTooltips.empty[1].push(rtoMaoData[i].partition as string);\n } else {\n maoRtoValues[rtoMaoData[i].mao as string][1] += 1;\n maoRtoTooltips[rtoMaoData[i].mao as string][1].push(rtoMaoData[i].partition as string);\n }\n }\n\n rto.value = [maoRtoValues.empty[0]];\n mao.value = [maoRtoValues.empty[1]];\n\n rtoTooltip.value = [maoRtoTooltips.empty[0]];\n maoTooltip.value = [maoRtoTooltips.empty[1]];\n\n for (let i = 0; i < scales.length; ++i) {\n rto.value.push(maoRtoValues[scales[i].id][0]);\n mao.value.push(maoRtoValues[scales[i].id][1]);\n\n rtoTooltip.value.push(maoRtoTooltips[scales[i].id][0]);\n maoTooltip.value.push(maoRtoTooltips[scales[i].id][1]);\n }\n\n // 3rd row\n const riskData = await riskDatasource.get();\n const riskLevels = await DatasourcesService.Bcm.RiskLevels.get();\n const riskTreatments = await DatasourcesService.Bcm.RiskTreatments.get();\n const implementationScales = await DatasourcesService.Bcm.ImplementationScales.get();\n\n for (let i = 0; i < implementationScales.length; ++i) {\n riskImplementationData[implementationScales[i].id] = 0;\n riskImplementationsTooltips[implementationScales[i].id] = [];\n riskImplementationLabels.push(implementationScales[i].translations[language].name);\n riskImplementationColors.push(implementationScales[i].color);\n }\n\n try {\n for (let i = 0; i < riskLevels.length; ++i) {\n if (riskLevels[i].id) {\n riskLevelsData[riskLevels[i].id] = 0;\n riskLevelsTooltips[riskLevels[i].id] = [];\n riskLevelLabels.push(riskLevels[i].translations[language].name);\n riskLevelColors.push(riskLevels[i].color);\n }\n }\n } catch (error) {\n console.log(error);\n }\n try {\n for (let i = 0; i < riskTreatments.length; ++i) {\n riskTreatmentData[riskTreatments[i].id] = 0;\n riskTreatmentsTooltips[riskTreatments[i].id] = [];\n riskTreatmentLabels.push(riskTreatments[i].translations[language].name);\n riskTreatmentColors.push(riskTreatments[i].color);\n }\n } catch (error) {\n console.log(error);\n }\n for (let i = 0; i < riskData.length; ++i) {\n if (riskData[i].implementationStatus != null) {\n riskImplementationData[riskData[i].implementationStatus as string] += 1;\n riskImplementationsTooltips[riskData[i].implementationStatus as string].push(riskData[i].risk as string);\n }\n\n riskLevelsData[riskData[i].riskLevel as string] += 1;\n riskLevelsTooltips[riskData[i].riskLevel as string].push(riskData[i].risk as string);\n\n if (riskData[i].riskTreatment != null) {\n riskTreatmentData[riskData[i].riskTreatment as string] += 1;\n riskTreatmentsTooltips[riskData[i].riskTreatment as string].push(riskData[i].risk as string);\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n loading,\n statuses,\n statusesTooltips,\n timelinesTooltips,\n timelines,\n rtoMaoLabels,\n rtoMaoColors,\n rtoTooltip,\n maoTooltip,\n rto,\n mao,\n\n riskLevelLabels,\n riskLevelColors,\n riskLevelsTooltips,\n riskLevelsData,\n\n riskTreatmentLabels,\n riskTreatmentColors,\n riskTreatmentsTooltips,\n riskTreatmentData,\n\n riskImplementationLabels,\n riskImplementations,\n riskImplementationColors,\n riskImplementationsTooltips,\n riskImplementationData,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcmDashboard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcmDashboard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcmDashboard.vue?vue&type=template&id=2f9e9261&\"\nimport script from \"./BcmDashboard.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcmDashboard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BcmDashboard.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VDivider,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('bcm.deployments.all'),\"loading\":_vm.loading}},[_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.deployments,\"options\":_vm.options},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('deployment-list-line',{attrs:{\"deployment\":item}})]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport i18n from '@/i18n';\nimport { AxiosError } from 'axios';\nimport { BiaService } from '@/services/bcm';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { PartitionDeploymentDto } from '@/dtos';\nimport { DeploymentListLine } from '@/components/bcm/bia';\nimport { PdDataTable, PdDataTableHeader, PdDataTableOptions } from '@/components/core/PdDataTable';\nimport { ApprovalPathStatus } from '@/dtos/all';\n\nexport default defineComponent({\n name: 'BiaDeploymentsListView',\n\n components: {\n PdFormBase,\n PdDataTable,\n DeploymentListLine,\n },\n\n setup() {\n const loading = ref(true);\n\n const deployments = ref>([]);\n\n function open(deployment: PartitionDeploymentDto) {\n console.log(deployment);\n }\n\n const headers: Array> = [\n {\n id: 'name',\n text: i18n.t('all.deployments.deploymentNameColumn').toString(),\n value: 'name',\n },\n {\n id: 'status',\n text: i18n.t('all.deployments.deploymentStatusColumn').toString(),\n value: 'status',\n },\n {\n id: 'currentUserStatus',\n text: i18n.t('all.deployments.deploymentUserStatusColumn').toString(),\n value: 'currentUserStatus',\n sort: (a: ApprovalPathStatus, b: ApprovalPathStatus) => {\n if (a === ApprovalPathStatus.On && b === ApprovalPathStatus.On) {\n return 0;\n }\n\n if (a === ApprovalPathStatus.On) {\n return -1;\n }\n\n if (b === ApprovalPathStatus.On) {\n return 1;\n }\n\n return a - b;\n },\n },\n {\n id: 'currentUser',\n text: i18n.t('all.deployments.deploymentCurrentUserColumn').toString(),\n value: 'currentUser',\n sortable: false,\n },\n {\n id: 'dueDate',\n text: i18n.t('all.deployments.deploymentDueDateColumn').toString(),\n value: 'dueDate',\n },\n {\n id: 'open',\n text: '',\n value: 'open',\n sortable: false,\n width: '1%',\n },\n ];\n\n const options: PdDataTableOptions = {\n editable: false,\n };\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n deployments.value = await BiaService.GetUserDeployments();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n loading,\n deployments,\n open,\n headers,\n options,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaDeploymentsListView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaDeploymentsListView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaDeploymentsListView.vue?vue&type=template&id=41f3430f&scoped=true&\"\nimport script from \"./BiaDeploymentsListView.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaDeploymentsListView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"41f3430f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.title,\"subtitle\":_vm.subtitle,\"loading\":_vm.loading}},[(_vm.deployment!=null)?_c('base-deployment-buttons',{attrs:{\"slot\":\"subtitle-left\",\"deployment\":_vm.deployment},on:{\"approve\":_vm.approveDeployment,\"reject\":_vm.rejectDeployment},slot:\"subtitle-left\"}):_vm._e(),_c('base-deployment-message',{attrs:{\"slot\":\"subtitle-right\",\"deployment\":_vm.deployment},slot:\"subtitle-right\"}),(_vm.deployment!=null)?[_c('v-tabs',{staticClass:\"mb-4\",attrs:{\"show-arrows\":\"\"},model:{value:(_vm.currentTab),callback:function ($$v) {_vm.currentTab=$$v},expression:\"currentTab\"}},[(_vm.hasSurveys)?_c('v-tab',{key:\"surveys\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.deployment.surveys'},\"replace\":\"\"}},[_vm._v(\" Surveys \")]):_vm._e(),(_vm.deployment.hasBiaParameters)?_c('v-tab',{key:\"operational\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.deployment.operational'},\"replace\":\"\"}},[_vm._v(\" Operational Impact \")]):_vm._e(),(_vm.deployment.hasBiaParameters)?_c('v-tab',{key:\"assets\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.deployment.assets'},\"replace\":\"\"}},[_vm._v(\" Assets \")]):_vm._e(),(_vm.deployment.hasBiaParameters)?_c('v-tab',{key:\"applications\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.deployment.applications'},\"replace\":\"\"}},[_vm._v(\" Systems \")]):_vm._e(),(_vm.deployment.hasBiaParameters)?_c('v-tab',{key:\"personnel\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.deployment.personnel'},\"replace\":\"\"}},[_vm._v(\" Personnel \")]):_vm._e(),(_vm.deployment.hasBiaParameters && _vm.deployment.showFinancialImpacts)?_c('v-tab',{key:\"financial\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.deployment.financial'},\"replace\":\"\"}},[_vm._v(\" Financial Impact \")]):_vm._e(),(_vm.deployment.hasBiaParameters)?_c('v-tab',{key:\"interdependencies\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.deployment.interdependencies'},\"replace\":\"\"}},[_vm._v(\" Internal Dependencies \")]):_vm._e(),(_vm.deployment.hasBiaParameters)?_c('v-tab',{key:\"associates\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.deployment.associates'},\"replace\":\"\"}},[_vm._v(\" External Associates \")]):_vm._e(),(_vm.deployment.hasBiaParameters && _vm.deployment.showServices)?_c('v-tab',{key:\"services\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.deployment.services'},\"replace\":\"\"}},[_vm._v(\" Services \")]):_vm._e(),(_vm.deployment.hasRiskAssessment)?_c('v-tab',{key:\"rcsa\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.deployment.rcsa'},\"replace\":\"\"}},[_vm._v(\" RCSA \")]):_vm._e()],1),_c('router-view',{attrs:{\"deployment\":_vm.deployment,\"partition-id\":_vm.deployment.partitionId,\"readonly\":!_vm.deployment.editable}})]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mb-2\"},[(_vm.popupVisibility)?_c('pd-popup-card',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.popupTitle)+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.popupVisibility = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),(_vm.action === 'approve')?_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.approveDeployment}},[_vm._v(\" \"+_vm._s(_vm.$t('all.deployments.approve'))+\" \")]):_vm._e(),(_vm.action === 'reject')?_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.rejectDeployment}},[_vm._v(\" \"+_vm._s(_vm.$t('all.deployments.reject'))+\" \")]):_vm._e()]},proxy:true}],null,false,3311211968)},[_c('v-textarea',{attrs:{\"filled\":\"\",\"rows\":\"6\",\"autofocus\":\"\",\"placeholder\":\"Message\"},model:{value:(_vm.message),callback:function ($$v) {_vm.message=$$v},expression:\"message\"}})],1):_vm._e(),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [(_vm.deployment.editable && (_vm.deployment.approvable || _vm.deployment.rejectable))?_c('v-btn',_vm._g(_vm._b({staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.menu)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('menu'))+\" \")],1):_vm._e()]}}])},[_c('v-list',[(_vm.deployment.approvable)?_c('v-list-item',{on:{\"click\":_vm.approveMessage}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.approve)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('all.deployments.approve'))+\" \")])],1):_vm._e(),(_vm.deployment.rejectable)?_c('v-list-item',{on:{\"click\":_vm.rejectMessage}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.reject)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('all.deployments.reject'))+\" \")])],1):_vm._e()],1)],1),_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"},on:{\"click\":_vm.goBack}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.return)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('return'))+\" \")],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport icons from '@/core/icons';\nimport { BaseDeploymentDto } from '@/dtos/all';\nimport i18n from '@/i18n';\nimport router from '@/router';\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport PdPopupCard from '../core/PdPopupCard.vue';\n\nexport default defineComponent({\n name: 'BaseDeploymentButtons',\n\n components: {\n PdPopupCard,\n },\n\n props: {\n deployment: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const popupVisibility = ref(false);\n const action = ref<'approve' | 'reject'>('approve');\n const message = ref('');\n\n function goBack() {\n router.back();\n }\n\n const popupTitle = computed(() => {\n if (action.value === 'approve') {\n return i18n.t('all.deployments.approve').toString() + ' - ' + props.deployment.name;\n } else {\n return i18n.t('all.deployments.reject').toString() + ' - ' + props.deployment.name;\n }\n });\n\n function approveMessage() {\n action.value = 'approve';\n message.value = '';\n popupVisibility.value = true;\n }\n\n function rejectMessage() {\n action.value = 'reject';\n message.value = '';\n popupVisibility.value = true;\n }\n\n function approveDeployment() {\n props.deployment.message = message.value;\n emit('approve', message.value);\n popupVisibility.value = false;\n }\n\n function rejectDeployment() {\n props.deployment.message = message.value;\n emit('reject', message.value);\n popupVisibility.value = false;\n }\n\n return {\n action,\n message,\n goBack,\n approveMessage,\n rejectMessage,\n approveDeployment,\n rejectDeployment,\n popupVisibility,\n popupTitle,\n icons: {\n menu: icons.menu,\n return: icons.return,\n approve: icons.approve,\n reject: icons.reject,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseDeploymentButtons.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseDeploymentButtons.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseDeploymentButtons.vue?vue&type=template&id=0d0ff33c&scoped=true&\"\nimport script from \"./BaseDeploymentButtons.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseDeploymentButtons.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d0ff33c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-tooltip',{attrs:{\"left\":\"\",\"color\":\"#000D\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.deploymentMessage.length > 0),expression:\"deploymentMessage.length > 0\"}],attrs:{\"right\":\"\"},on:{\"click\":_vm.showMessage}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.icons.message)+\" \")])]}}])},_vm._l((_vm.deploymentMessage),function(d,i){return _c('div',{key:i},[_vm._v(\" \"+_vm._s(d)+\" \")])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport icons from '@/core/icons';\nimport { BaseDeploymentDto } from '@/dtos/all';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'BaseDeploymentMessage',\n\n components: {\n\n },\n\n props: {\n deployment: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const deploymentMessage = computed>(() => {\n if (props.deployment == null || !props.deployment.message) {\n return [];\n }\n\n return props.deployment.message.split('\\n');\n });\n\n function showMessage() {\n if (props.deployment == null || !props.deployment.message) {\n return;\n }\n\n PopupMessageService.SetMessage({\n title: props.deployment.name,\n text: props.deployment.message,\n });\n }\n\n showMessage();\n\n return {\n deploymentMessage,\n showMessage,\n icons: {\n message: icons.messageRight,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseDeploymentMessage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseDeploymentMessage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseDeploymentMessage.vue?vue&type=template&id=4736c205&scoped=true&\"\nimport script from \"./BaseDeploymentMessage.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseDeploymentMessage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4736c205\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VIcon,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { PartitionDeploymentDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport {\n BiaApplications,\n BiaAssets,\n BiaAssociates,\n BiaFinancialImpact,\n BiaInterdependencies,\n BiaOperationalImpact,\n BiaPartitionInfo,\n BiaPersonnel,\n BiaRcsa,\n BiaServices,\n DeploymentSurveyList,\n} from '@/components/bcm';\nimport { BaseDeploymentButtons, BaseDeploymentMessage } from '@/components/all';\nimport { BiaService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport PopupMessageService from '@/services/PopupMessageService';\n\nexport default defineComponent({\n name: 'BiaDeploymentView',\n\n components: {\n PdFormBase,\n BiaApplications,\n BiaAssets,\n BiaAssociates,\n BiaFinancialImpact,\n BiaInterdependencies,\n BiaOperationalImpact,\n BiaPartitionInfo,\n BiaPersonnel,\n BiaRcsa,\n BiaServices,\n DeploymentSurveyList,\n BaseDeploymentButtons,\n BaseDeploymentMessage,\n },\n\n props: {\n deploymentId: {\n type: String,\n required: true,\n },\n },\n\n setup(props) {\n const loading = ref(true);\n const deployment = ref(null);\n const currentTab = ref('tab-1');\n\n const subtitle = computed(() => {\n if (deployment.value != null) {\n return i18n.t('bcm.deployments.deploymentSubtitle', { deployment: deployment.value.name }).toString();\n }\n return '';\n });\n const title = computed(() => {\n if (deployment.value != null) {\n return deployment.value.partition;\n }\n return '';\n });\n\n const hasSurveys = computed(() => {\n if (deployment.value != null &&\n deployment.value.surveys != null &&\n deployment.value.surveys.length > 0) {\n return true;\n }\n\n return false;\n });\n\n async function approveDeployment(message: string) {\n if (deployment.value == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n await BiaService.ApproveDeployment(deployment.value.id, message);\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('all.deployments.approvedSuccessfully'),\n });\n await init();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function rejectDeployment(message: string) {\n if (deployment.value == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n await BiaService.RejectDeployment(deployment.value.id, message);\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('all.deployments.rejectedSuccessfully'),\n });\n\n init();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n watch(\n () => props.deploymentId,\n () => {\n init();\n },\n { immediate: true },\n );\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n deployment.value = await BiaService.GetDeployment(parseInt(props.deploymentId));\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n loading.value = false;\n }\n };\n\n return {\n loading,\n deployment,\n\n title,\n subtitle,\n\n approveDeployment,\n rejectDeployment,\n\n hasSurveys,\n\n currentTab,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaDeploymentView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaDeploymentView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaDeploymentView.vue?vue&type=template&id=406f83de&scoped=true&\"\nimport script from \"./BiaDeploymentView.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaDeploymentView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"406f83de\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VTab,VTabs})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"loading\":_vm.loading,\"title\":_vm.$t('bcm.bia.partitions')}},[(_vm.showClearBiaPopup)?_c('clear-bia-popup',{attrs:{\"partition\":_vm.partitionToClear},on:{\"close\":function($event){_vm.showClearBiaPopup = false}}}):_vm._e(),_c('pd-tree-grid',{attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.columns,\"options\":_vm.gridOptions,\"tree-column\":\"name\",\"height\":600,\"sort\":\"name\",\"sort-direction\":\"asc\",\"row-actions\":_vm.rowActions},on:{\"dblclick\":_vm.openPartition}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { BiaPartitionDto, PartitionDto } from '@/dtos/bcm';\nimport { ApplicationModule } from '@/store';\nimport { ApiDataSource } from '@/core/datasource';\nimport i18n from '@/i18n';\nimport { GridItem, PdTreeGrid, PdTreeGridOptions } from '@/components/core/PdTreeGrid';\nimport { PdDataTableHeader, PdDataTableRowAction } from '@/components/core/PdDataTable';\nimport { ISelectItem } from '@/core';\nimport router from '@/router';\nimport icons from '@/core/icons';\nimport ClearBiaPopup from '@/components/bcm/bia/ClearBiaPopup.vue';\nimport { StatusTitle } from '@/components/all/deployments/DeploymentStatus';\n\nexport default defineComponent({\n name: 'BiaPartitionsTreeView',\n\n components: {\n PdFormBase,\n PdTreeGrid,\n ClearBiaPopup,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n const loading = ref(false);\n\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const datasource = ref>(new ApiDataSource({ api: `masterplans/${entityId}/bc/Partitions/BiaTree` }));\n\n const locations = ref>([]);\n\n const partitionToClear = ref(null);\n const showClearBiaPopup = ref(false);\n\n const gridOptions: PdTreeGridOptions = {\n editable: false,\n itemTemplate: (item) => {\n return item.name;\n },\n };\n\n const columns: Array> = [\n {\n id: 'name',\n text: i18n.t('bcm.partitions.name').toString(),\n value: 'name',\n },\n {\n id: 'biaStatus',\n text: i18n.t('bcm.bia.biaStatus').toString(),\n value: 'biaStatus',\n template: (item) => {\n if (item.biaStatus == null) {\n return { text: '' };\n }\n\n return {\n text: StatusTitle(item.biaStatus),\n };\n },\n },\n {\n id: 'rcsaStatus',\n text: i18n.t('bcm.bia.rcsaStatus').toString(),\n value: 'rcsaStatus',\n template: (item) => {\n if (item.rcsaStatus == null) {\n return { text: '' };\n }\n\n return {\n text: StatusTitle(item.rcsaStatus),\n };\n },\n },\n ];\n\n const rowActions: Array = [\n {\n id: 'open',\n text: i18n.t('open').toString(),\n icon: icons.open,\n action: (item) => {\n router.push({ name: 'bcm.bia.partition', params: { partitionId: (item as unknown as GridItem).item.id.toString() } });\n return Promise.resolve(null);\n },\n },\n {\n id: 'clearBia',\n text: i18n.t('bcm.partitions.clearBia').toString(),\n icon: icons.remove,\n action: (gridItem) => {\n const partition = (gridItem as unknown as GridItem).item as PartitionDto;\n partitionToClear.value = partition;\n showClearBiaPopup.value = true;\n\n return Promise.resolve(null);\n },\n },\n ];\n\n function openPartition(partition: PartitionDto) {\n router.push({ name: 'bcm.bia.partition', params: { partitionId: partition.id.toString() } });\n }\n\n return {\n datasource,\n columns,\n gridOptions,\n loading,\n rowActions,\n\n partitionToClear,\n showClearBiaPopup,\n\n locations,\n openPartition,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPartitionsTreeView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPartitionsTreeView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaPartitionsTreeView.vue?vue&type=template&id=0b26e8bc&scoped=true&\"\nimport script from \"./BiaPartitionsTreeView.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaPartitionsTreeView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0b26e8bc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.partition != null)?_c('pd-form-base',{attrs:{\"loading\":_vm.loading,\"title\":_vm.title,\"force-subtitle\":\"\"}},[_c('div',{attrs:{\"slot\":\"subtitle-left\"},slot:\"subtitle-left\"},[_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"},on:{\"click\":_vm.goBack}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.return)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('return'))+\" \")],1)],1),_c('v-breadcrumbs',{attrs:{\"items\":_vm.partition.breadcrumbs},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-breadcrumbs-item',{attrs:{\"to\":{ name: 'bcm.bia.partition', params: { partitionId: item.id }},\"replace\":\"\"}},[_vm._v(\" \"+_vm._s(item.name)+\" \")])]}}],null,false,1539666535)}),_c('v-tabs',{staticClass:\"mb-4\",attrs:{\"show-arrows\":\"\"},model:{value:(_vm.currentTab),callback:function ($$v) {_vm.currentTab=$$v},expression:\"currentTab\"}},[_c('v-tab',{key:\"info\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.bia.partition.info'},\"replace\":\"\"}},[_vm._v(\" Partition Info \")]),_c('v-tab',{key:\"surveys\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.bia.partition.surveys'},\"replace\":\"\"}},[_vm._v(\" Surveys \")]),(_vm.showBiaDetails)?[_c('v-tab',{key:\"operational\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.bia.partition.operational'},\"replace\":\"\"}},[_vm._v(\" Operational Impact \")]),_c('v-tab',{key:\"assets\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.bia.partition.assets'},\"replace\":\"\"}},[_vm._v(\" Assets \")]),_c('v-tab',{key:\"applications\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.bia.partition.applications'},\"replace\":\"\"}},[_vm._v(\" Systems \")]),_c('v-tab',{key:\"personnel\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.bia.partition.personnel'},\"replace\":\"\"}},[_vm._v(\" Personnel \")]),_c('v-tab',{key:\"financial\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.bia.partition.financial'},\"replace\":\"\"}},[_vm._v(\" Financial Impact \")]),_c('v-tab',{key:\"interdependencies\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.bia.partition.interdependencies'},\"replace\":\"\"}},[_vm._v(\" Internal Dependencies \")]),_c('v-tab',{key:\"associates\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.bia.partition.associates'},\"replace\":\"\"}},[_vm._v(\" External Associates \")]),_c('v-tab',{key:\"services\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.bia.partition.services'},\"replace\":\"\"}},[_vm._v(\" Services \")]),_c('v-tab',{key:\"rcsa\",staticClass:\"text-none px-2\",attrs:{\"to\":{name: 'bcm.bia.partition.rcsa'},\"replace\":\"\"}},[_vm._v(\" RCSA \")])]:_vm._e()],2),_c('router-view',{attrs:{\"partition\":_vm.partition,\"partition-id\":_vm.partition.id,\"readonly\":!_vm.partition.editable}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { BiaPartitionDto } from '@/dtos/bcm/bia';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport router from '@/router';\nimport { BiaService } from '@/services/bcm';\nimport icons from '@/core/icons';\n\nexport default defineComponent({\n name: 'BiaPartitionView',\n\n components: {\n PdFormBase,\n },\n\n props: {\n partitionId: {\n type: String,\n required: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n const title = ref('');\n const partition = ref(null);\n const currentTab = ref('tab-1');\n\n const showBiaDetails = computed(() => {\n return partition.value != null && partition.value.hasChildren === false;\n });\n\n watch(\n () => props.partitionId,\n (newValue) => {\n partition.value = null;\n const id = parseInt(newValue);\n\n if (isNaN(id)) {\n console.error(`props.partitionId isNaN: ${props.partitionId}`);\n router.back();\n return;\n }\n\n init();\n },\n { immediate: true },\n );\n\n watch(\n partition,\n (newValue) => {\n if (newValue == null) {\n title.value = '';\n currentTab.value = '';\n return;\n }\n\n title.value = i18n.t('bcm.bia.partition.title', { partition: newValue.name }).toString();\n },\n );\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n partition.value = await BiaService.GetPartitionInfo(parseInt(props.partitionId));\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n\n return {\n loading,\n title,\n currentTab,\n partition,\n showBiaDetails,\n goBack: () => {\n router.back();\n },\n\n icons: {\n return: icons.return,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPartitionView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiaPartitionView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiaPartitionView.vue?vue&type=template&id=211b75f8&scoped=true&\"\nimport script from \"./BiaPartitionView.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiaPartitionView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"211b75f8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBreadcrumbs } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VBreadcrumbsItem } from 'vuetify/lib/components/VBreadcrumbs';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\ninstallComponents(component, {VBreadcrumbs,VBreadcrumbsItem,VBtn,VIcon,VTab,VTabs})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('bcm.employees.title')}},[(_vm.showImportForm)?_c('pd-popup-card',{attrs:{\"visible\":\"\",\"width\":\"45rem\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('bcm.employees.import.title'))+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.showImportForm=false}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.submitFileImport}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")])]},proxy:true}],null,false,2845463876)},[_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('v-file-input',{attrs:{\"accept\":\".csv\",\"counter\":\"\",\"show-size\":\"\",\"truncate-length\":\"50\",\"placeholder\":\"Select file...\"},model:{value:(_vm.importSelectedFile),callback:function ($$v) {_vm.importSelectedFile=$$v},expression:\"importSelectedFile\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.employees.import.clearExisting'))+\" \")]),_c('td',[_c('v-simple-checkbox',{directives:[{name:\"ripple\",rawName:\"v-ripple\"}],model:{value:(_vm.importClearExisting),callback:function ($$v) {_vm.importClearExisting=$$v},expression:\"importClearExisting\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.employees.import.ignoreFirstLine'))+\" \")]),_c('td',[_c('v-simple-checkbox',{directives:[{name:\"ripple\",rawName:\"v-ripple\"}],model:{value:(_vm.importIgnoreFirstLine),callback:function ($$v) {_vm.importIgnoreFirstLine=$$v},expression:\"importIgnoreFirstLine\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.employees.import.delimiter'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"value\":\";\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.importDelimiter),callback:function ($$v) {_vm.importDelimiter=$$v},expression:\"importDelimiter\"}})],1)]),_c('tr',[_c('td',{staticClass:\"text-caption\",attrs:{\"colspan\":\"2\"}},[_c('i18n',{attrs:{\"path\":\"bcm.employees.import.format\"}},[_c('br')])],1)])])]):_vm._e(),_c('pd-data-table',{key:_vm.refresh,attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.headers,\"options\":_vm.tableOptions,\"table-actions\":_vm.tableActions,\"rows-per-page\":10,\"sort\":\"lastName\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"},on:{\"table-action\":_vm.tableActionEmmited},scopedSlots:_vm._u([{key:\"details\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('employee-partitions',{attrs:{\"employee\":item}})]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showPartitionSelector)?_c('tree-item-selector',{attrs:{\"visible\":\"\",\"datasource\":_vm.allPartitions,\"translatable\":\"\"},on:{\"select\":_vm.addPartition,\"cancel\":function($event){_vm.showPartitionSelector = false}}}):_vm._e(),_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.employees.partition'))+\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showPartitionSelector = true}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.add)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \")],1)],1)])]),_c('tbody',_vm._l((_vm.partitions),function(p){return _c('tr',{key:p.partitionId},[_c('td',[_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removePartition(p)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.remove)+\" \")])],1),_vm._v(\" \"+_vm._s(p.partition)+\" \")],1)])}),0)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport icons from '@/core/icons';\nimport { EmployeeDto, EmployeePartitionDto, PartitionDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport { EmployeePartitionsService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService, { PopupMessageButtonNo, PopupMessageButtonYes } from '@/services/PopupMessageService';\nimport { ApplicationModule } from '@/store';\nimport { defineComponent, PropType, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport TreeItemSelector from '@/components/all/TreeItemSelector.vue';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'EmployeePartitions',\n\n components: {\n TreeItemSelector,\n },\n\n props: {\n employee: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const entityId = ApplicationModule.Entity?.id;\n if (entityId == null) {\n throw new Error('Entity is null...');\n }\n\n const partitions = ref>([]);\n const showPartitionSelector = ref(false);\n\n async function addPartition(partition: PartitionDto) {\n if (partition == null) {\n return;\n }\n\n showPartitionSelector.value = false;\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const add = await EmployeePartitionsService.AddPartition(props.employee, {\n id: 0,\n partition: LanguageTemplate(partition, 'name').text,\n partitionId: partition.id,\n });\n\n partitions.value.push(add);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function removePartition(partition: EmployeePartitionDto) {\n PopupMessageService.SetMessage({\n title: i18n.t('confirm'),\n text: i18n.t('bcm.employees.partitionRemoveConfirmation', {\n employee: props.employee.person,\n partition: partition.partition,\n }),\n buttons: [\n PopupMessageButtonYes(async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await EmployeePartitionsService.RemovePartition(props.employee, partition);\n\n for (let i = 0; i < partitions.value.length; ++i) {\n if (partitions.value[i].id === partition.id) {\n partitions.value.splice(i, 1);\n break;\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n partitions.value = await EmployeePartitionsService.GetAllPartitions(props.employee);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n partitions,\n allPartitions: DatasourcesService.Bcm.Partitions,\n showPartitionSelector,\n addPartition,\n removePartition,\n icons: {\n add: icons.plus,\n remove: icons.delete,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmployeePartitions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmployeePartitions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EmployeePartitions.vue?vue&type=template&id=193fcfaf&scoped=true&\"\nimport script from \"./EmployeePartitions.vue?vue&type=script&lang=ts&\"\nexport * from \"./EmployeePartitions.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"193fcfaf\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VBtn,VIcon,VSimpleTable})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport EmployeePartitions from '@/components/bcm/EmployeePartitions.vue';\nimport { PdDataTable, PdDataTableAction, PdDataTableHeader, PdDataTableOptions } from '@/components/core/PdDataTable';\nimport PdColumnCheckbox from '@/components/core/PdDataTable/columns/PdColumnCheckbox.vue';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport icons from '@/core/icons';\nimport { EmployeeDto, UploadCsvFileDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport { EmployeesService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DownloadService from '@/services/DownloadService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { ApplicationModule } from '@/store';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { v4 } from 'uuid';\n\nexport default defineComponent({\n name: 'EmployeesView',\n\n components: {\n PdFormBase,\n PdDataTable,\n EmployeePartitions,\n PdPopupCard,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n if (entityId == null) {\n throw new Error('Entity is null...');\n }\n\n const datasource = new ApiDataSource({ api: `masterplans/${entityId}/bc/Employees` });\n\n const showImportForm = ref(false);\n const importSelectedFile = ref(null);\n const importClearExisting = ref(false);\n const importIgnoreFirstLine = ref(true);\n const importDelimiter = ref(';');\n\n const refresh = ref(v4());\n\n const tableOptions: PdDataTableOptions = {\n editable: true,\n hasDetails: true,\n };\n\n const tableActions: Array = [\n {\n id: 'export',\n text: i18n.t('bcm.employees.export.button').toString(),\n icon: icons.export,\n },\n {\n id: 'import',\n text: i18n.t('bcm.employees.import.button').toString(),\n icon: icons.import,\n },\n ];\n\n const headers: Array> = [\n {\n id: 'employeeId',\n text: i18n.t('bcm.employees.employeeId').toString(),\n value: 'employeeId',\n defaultValue: '',\n },\n {\n id: 'lastName',\n text: i18n.t('bcm.employees.lastName').toString(),\n value: 'lastName',\n defaultValue: '',\n },\n {\n id: 'firstName',\n text: i18n.t('bcm.employees.firstName').toString(),\n value: 'firstName',\n defaultValue: '',\n },\n {\n id: 'email',\n text: i18n.t('bcm.employees.email').toString(),\n value: 'email',\n defaultValue: '',\n },\n {\n id: 'phone1',\n text: i18n.t('bcm.employees.phone1').toString(),\n value: 'phone1',\n defaultValue: '',\n },\n {\n id: 'phone2',\n text: i18n.t('bcm.employees.phone2').toString(),\n value: 'phone2',\n defaultValue: '',\n },\n {\n id: 'phone3',\n text: i18n.t('bcm.employees.phone3').toString(),\n value: 'phone3',\n defaultValue: '',\n },\n {\n id: 'external',\n text: i18n.t('bcm.employees.external').toString(),\n value: 'external',\n component: PdColumnCheckbox,\n defaultValue: false,\n },\n ];\n\n function tableActionEmmited(action: string) {\n if (action === 'import') {\n importSelectedFile.value = null;\n importClearExisting.value = false;\n importIgnoreFirstLine.value = true;\n importDelimiter.value = ';';\n showImportForm.value = true;\n } else if (action === 'export') {\n exportData();\n } else {\n throw new Error(`Unknown action ${action}`);\n }\n }\n\n async function exportData() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n var file = await EmployeesService.ExportEmployees();\n DownloadService.DownloadFile(file);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function submitFileImport() {\n if (importSelectedFile.value == null) {\n PopupMessageService.SetMessage({\n title: i18n.t('error'),\n text: i18n.t('upload.selectFileError'),\n index: 100,\n });\n return;\n }\n\n if (!importDelimiter.value) {\n PopupMessageService.SetMessage({\n title: i18n.t('error'),\n text: i18n.t('upload.selectDelimiterError'),\n index: 100,\n });\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n const data: UploadCsvFileDto = {\n file: importSelectedFile.value,\n clearExisting: importClearExisting.value,\n ignoreFirstLine: importIgnoreFirstLine.value,\n delimiter: importDelimiter.value,\n };\n\n var warnings = await EmployeesService.ImportEmployees(data);\n\n showImportForm.value = false;\n\n refresh.value = v4();\n\n if (warnings != null && Array.isArray(warnings) && warnings.length > 0) {\n const msg = warnings.reduce((p, i) => (p + '\\n' + i));\n console.log(msg);\n PopupMessageService.SetMessage({\n title: i18n.t('success'),\n text: i18n.t('upload.warnings', { msg }),\n index: 100,\n });\n } else {\n PopupMessageService.SetMessage({\n title: i18n.t('success'),\n text: i18n.t('upload.success'),\n index: 100,\n });\n }\n\n await datasource.get();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n datasource,\n tableOptions,\n tableActions,\n headers,\n showImportForm,\n tableActionEmmited,\n submitFileImport,\n importSelectedFile,\n importClearExisting,\n importIgnoreFirstLine,\n importDelimiter,\n refresh,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmployeesView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmployeesView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EmployeesView.vue?vue&type=template&id=700433de&scoped=true&\"\nimport script from \"./EmployeesView.vue?vue&type=script&lang=ts&\"\nexport * from \"./EmployeesView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"700433de\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VFileInput } from 'vuetify/lib/components/VFileInput';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VFileInput,VSimpleCheckbox,VTextField})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Ripple from 'vuetify/lib/directives/ripple'\ninstallDirectives(component, {Ripple})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loaded)?_c('pd-form-base',{attrs:{\"title\":_vm.$t('bcm.locations.title')}},[(_vm.showLocationSelector)?_c('pd-map-location-selector',{attrs:{\"address\":_vm.selectedAddress,\"location\":_vm.selectedLocation},on:{\"save\":_vm.saveNewLocation,\"cancel\":function($event){_vm.showLocationSelector = false}}}):_vm._e(),_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":{editable: true},\"sort\":\"locationGroupId\",\"sort-direction\":\"asc\",\"search\":\"\",\"row-actions\":_vm.rowActions,\"height\":\"450px\"}}),_c('pd-map',{attrs:{\"locations\":_vm.locationsMarkers}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup-card',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('maps.selectLocation'))+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancelChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")])]},proxy:true}])},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"open-on-focus\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-text-field',_vm._g(_vm._b({staticClass:\"text-none mr-2\",attrs:{\"small\":\"\",\"dense\":\"\",\"autofocus\":_vm.searchInputAutoFocus,\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}},'v-text-field',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('menu'))+\" \")])]}}])},[_c('v-list',[(_vm.searchResults.length > 0)?_vm._l((_vm.searchResults),function(l,i){return _c('v-list-item',{key:i,on:{\"click\":function($event){return _vm.selectAddress(l)}}},[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(l.title)+\" \")])],1)}):[_c('v-list-item',[_c('v-list-item-title',[_vm._v(\" Search returned no results!\"),_c('br'),_vm._v(\"Please refine search or move marker on the map! \")])],1)]],2)],1),_c('div',{ref:\"mapContainer\",staticClass:\"mt-4\",staticStyle:{\"height\":\"600px\",\"width\":\"100%\"}}),_c('div',[_vm._v(\" Latitude: \"+_vm._s(_vm.selectedLocation.lat)+\" - Longitude \"+_vm._s(_vm.selectedLocation.lng)+\" \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* eslint-disable */\n\n/**\n * Adds a draggable marker to the map..\n *\n * @param {H.Map} map A HERE Map instance within the\n * application\n * @param {H.mapevents.Behavior} behavior Behavior implements\n * default interactions for pan/zoom\n */\nimport { ref } from '@vue/composition-api';\n\nexport function addDraggableMarker(map, loc) {\n const markerCenter = ref(loc);\n\n // eslint-disable-next-line no-undef\n var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));\n\n const marker = new H.map.Marker(loc, {\n // mark the object as volatile for the smooth dragging\n volatility: true,\n data: null,\n });\n // Ensure that the marker can receive drag events\n marker.draggable = true;\n map.addObject(marker);\n\n // disable the default draggability of the underlying map\n // and calculate the offset between mouse and target's position\n // when starting to drag a marker object:\n map.addEventListener('dragstart', function (ev) {\n const target = ev.target,\n pointer = ev.currentPointer;\n if (target instanceof H.map.Marker) {\n const targetPosition = map.geoToScreen(target.getGeometry());\n target.offset = new H.math.Point(pointer.viewportX - targetPosition.x, pointer.viewportY - targetPosition.y);\n behavior.disable();\n }\n }, false);\n\n // re-enable the default draggability of the underlying map\n // when dragging has completed\n map.addEventListener('dragend', function (ev) {\n const target = ev.target;\n if (target instanceof H.map.Marker) {\n behavior.enable();\n }\n markerCenter.value = marker.getGeometry();\n }, false);\n\n // Listen to the drag event and move the position of the marker\n // as necessary\n map.addEventListener('drag', function (ev) {\n const target = ev.target,\n pointer = ev.currentPointer;\n if (target instanceof H.map.Marker) {\n target.setGeometry(map.screenToGeo(pointer.viewportX - target.offset.x, pointer.viewportY - target.offset.y));\n }\n }, false);\n\n return {\n marker,\n markerLocation: markerCenter\n };\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { defineComponent, onMounted, PropType, ref, watch } from '@vue/composition-api';\nimport PdPopupCard from '../PdPopupCard.vue';\nimport { MapsService } from '@/services/core';\nimport { GeoLocationDto } from '@/dtos';\nimport { addDraggableMarker } from './addDraggableMarker';\n\ninterface HereSearchResult{\n title: string,\n center: {lng: number, lat: number},\n score: number\n}\n\nexport default defineComponent({\n name: 'MapLocationSelector',\n\n components: {\n PdPopupCard,\n },\n\n props: {\n address: {\n type: String,\n required: false,\n },\n\n location: {\n type: Object as PropType,\n required: false,\n },\n },\n\n setup(props, { emit }) {\n const mapContainer = ref(null);\n const search = ref(props.address);\n const searchResults = ref>([]);\n const selectedLocation = ref(props.location || { lat: 38.6325817, lng: 24.3400536 });\n const searchInputAutoFocus = ref(props.location == null);\n\n let map: H.Map; // eslint-disable-line no-undef\n let centerMarker: H.map.Marker; // eslint-disable-line no-undef\n\n onMounted(async () => {\n if (mapContainer.value == null) {\n return;\n }\n\n // Obtain the default map types from the platform object\n const maptypes = MapsService.DefaultMapTypes;\n\n let center = selectedLocation.value;\n let zoom = 7;\n\n if (props.location != null) {\n center = props.location;\n zoom = 17;\n } else if (props.address) {\n try {\n await findLocationFromAddress(props.address);\n\n if (searchResults.value.length === 1) {\n center = searchResults.value[0].center;\n zoom = 17;\n }\n } catch (error) {\n console.error(error);\n }\n }\n\n // eslint-disable-next-line no-undef\n map = new H.Map(mapContainer.value, maptypes.vector.normal.map, {\n zoom,\n center,\n });\n\n // eslint-disable-next-line no-undef\n H.ui.UI.createDefault(map, maptypes);\n\n const { marker, markerLocation } = addDraggableMarker(map, center);\n\n watch(\n markerLocation,\n (v) => {\n selectedLocation.value = v;\n },\n );\n\n centerMarker = marker;\n });\n\n let debounceTimer: unknown;\n watch(\n search,\n (value) => {\n // cancel pending call\n clearTimeout(debounceTimer as number);\n\n // delay new call 500ms\n debounceTimer = setTimeout(async () => {\n if (value != null && value.length >= 3) {\n await findLocationFromAddress(value.trim());\n } else {\n searchResults.value = [];\n }\n\n if (searchResults.value.length === 1) {\n const newCenter = searchResults.value[0].center;\n centerMarker.setGeometry(newCenter);\n map.setCenter(newCenter);\n selectedLocation.value = newCenter;\n }\n }, 500);\n },\n );\n\n function selectAddress(address: HereSearchResult) {\n map.setCenter(address.center);\n map.setZoom(17);\n centerMarker.setGeometry(address.center);\n\n selectedLocation.value = address.center;\n }\n\n async function findLocationFromAddress(address: string): Promise {\n const geocoder = MapsService.Platform.getSearchService();\n\n const geocodingParameters = {\n q: address,\n };\n\n return new Promise((resolve, reject) => {\n geocoder.geocode(\n geocodingParameters,\n (result) => {\n searchResults.value = (result as any).items\n .map((i: any) => {\n return {\n title: i.title,\n center: i.position,\n score: i.scoring.queryScore,\n };\n })\n .sort((a:HereSearchResult, b:HereSearchResult) => b.score - a.score);\n resolve();\n },\n (error) => {\n reject(error);\n },\n );\n });\n }\n\n function saveChanges() {\n emit('save', selectedLocation.value);\n }\n\n function cancelChanges() {\n emit('cancel');\n }\n\n return {\n mapContainer,\n search,\n searchResults,\n selectAddress,\n selectedLocation,\n saveChanges,\n cancelChanges,\n searchInputAutoFocus,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdMapLocationSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdMapLocationSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdMapLocationSelector.vue?vue&type=template&id=60f087fe&scoped=true&\"\nimport script from \"./PdMapLocationSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdMapLocationSelector.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"60f087fe\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VList,VListItem,VListItemTitle,VMenu,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport i18n from '@/i18n';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport PdMap from '@/components/core/HereMaps/PdMap.vue';\nimport PdMapLocationSelector from '@/components/core/HereMaps/PdMapLocationSelector.vue';\nimport { PdDataTable, PdDataTableHeader, PdDataTableRowAction } from '@/components/core/PdDataTable';\nimport { ApplicationModule } from '@/store';\nimport { LanguageTemplate, LocationTemplate } from '@/core/helpers/templates';\nimport { PdColumnDropDown, PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport { ISelectItem } from '@/core';\nimport { GeoLocationDto, LocationDto } from '@/dtos/bcm';\nimport PdColumnCheckbox from '@/components/core/PdDataTable/columns/PdColumnCheckbox.vue';\nimport icons from '@/core/icons';\nimport { LocationsService } from '@/services/bcm';\nimport cloneDeep from 'lodash.clonedeep';\n\nexport default defineComponent({\n name: 'LocationsView',\n\n components: {\n PdFormBase,\n PdDataTable,\n PdMap,\n PdMapLocationSelector,\n },\n\n setup() {\n const loaded = ref(false);\n const fileInput = ref(null);\n\n const datasource = DatasourcesService.Bcm.Locations;\n const locationGroupsDatasource = DatasourcesService.Bcm.LocationGroups;\n const locationGroups: Array = [\n {\n text: 'None',\n value: 0,\n },\n ];\n\n const locationsMarkers = ref>([]);\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n const allLocationGroups = await locationGroupsDatasource.get();\n\n await calculateLocationMarkers();\n\n allLocationGroups.forEach(i => {\n locationGroups.push({\n value: i.id,\n text: LanguageTemplate(i, 'name').text,\n });\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loaded.value = true;\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n const headers: Array> = [\n {\n id: 'owned',\n text: i18n.t('bcm.locations.owned').toString(),\n value: 'owned',\n width: '2rem',\n component: PdColumnCheckbox,\n align: 'center',\n },\n {\n id: 'locationGroupId',\n text: i18n.t('bcm.locations.locationGroup').toString(),\n value: 'locationGroupId',\n width: '10rem',\n component: PdColumnDropDown,\n parameters: {\n items: () => locationGroups,\n },\n template: (location) => {\n const ret = locationGroups.find(i => i.value === location.locationGroupId);\n if (ret == null) {\n return { text: 'None' };\n }\n\n return { text: ret.text.toString() };\n },\n defaultValue: 0,\n },\n {\n id: 'country',\n text: i18n.t('bcm.locations.country').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 200,\n component: PdColumnTranslation,\n width: '10rem',\n template: (item) => {\n return LanguageTemplate(item, 'country');\n },\n },\n {\n id: 'state',\n text: i18n.t('bcm.locations.state').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 200,\n component: PdColumnTranslation,\n width: '10rem',\n template: (item) => {\n return LanguageTemplate(item, 'state');\n },\n },\n {\n id: 'city',\n text: i18n.t('bcm.locations.city').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 200,\n component: PdColumnTranslation,\n width: '12rem',\n template: (item) => {\n return LanguageTemplate(item, 'city');\n },\n },\n {\n id: 'address',\n text: i18n.t('bcm.locations.address').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 600,\n component: PdColumnTranslation,\n template: (item) => {\n return LanguageTemplate(item, 'address');\n },\n },\n {\n id: 'zipCode',\n text: i18n.t('bcm.locations.zipCode').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 200,\n component: PdColumnTranslation,\n width: '6rem',\n template: (item) => {\n return LanguageTemplate(item, 'zipCode');\n },\n },\n ];\n\n let editingLocation: LocationDto | null = null;\n const rowActions: Array = [\n {\n id: 'selectOnMap',\n text: i18n.t('bcm.locations.selectOnMap').toString(),\n icon: icons.map,\n action: (item) => {\n const loc = item as LocationDto;\n editingLocation = loc;\n selectedLocation.value = null;\n\n if (loc.longitude != null && loc.longitude !== 0 && loc.latitude != null && loc.latitude !== 0) {\n selectedLocation.value = {\n lat: loc.latitude,\n lng: loc.longitude,\n };\n }\n\n let t = loc.translations[ApplicationModule.Language];\n if (t == null) {\n t = loc.translations['en-US'];\n }\n if (t == null) {\n for (const tr in loc.translations) {\n t = loc.translations[tr];\n break;\n }\n }\n\n selectedAddress.value = t.address + ' ' + t.city + ', ' + t.zipCode + ', ' + t.country;\n showLocationSelector.value = true;\n return Promise.resolve(null);\n },\n },\n ];\n\n const showLocationSelector = ref(false);\n const selectedAddress = ref('');\n const selectedLocation = ref (null);\n\n async function saveNewLocation(loc: GeoLocationDto) {\n if (editingLocation == null) {\n return;\n }\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n const dto = cloneDeep(editingLocation);\n dto.latitude = loc.lat;\n dto.longitude = loc.lng;\n\n const { longitude, latitude } = await LocationsService.UpdateLocation(dto);\n editingLocation.latitude = latitude;\n editingLocation.longitude = longitude;\n\n editingLocation = null;\n showLocationSelector.value = false;\n\n await calculateLocationMarkers();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function calculateLocationMarkers() {\n const newMarkers: Array = [];\n\n const locations = await datasource.get();\n locations.forEach(l => {\n if (l.latitude && l.longitude) {\n newMarkers.push({\n lat: l.latitude,\n lng: l.longitude,\n description: LocationTemplate(l).text,\n });\n }\n });\n locationsMarkers.value = newMarkers;\n }\n\n return {\n loaded,\n fileInput,\n headers,\n datasource,\n rowActions,\n showLocationSelector,\n selectedAddress,\n selectedLocation,\n saveNewLocation,\n locationsMarkers,\n icons: {\n map: icons.map,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LocationsView.vue?vue&type=template&id=51e570da&scoped=true&\"\nimport script from \"./LocationsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./LocationsView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LocationsView.vue?vue&type=style&index=0&id=51e570da&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"51e570da\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"loading\":_vm.loading,\"title\":_vm.$t('bcm.partitions.title')}},[(_vm.showPartitionSelector)?_c('tree-item-selector',{attrs:{\"visible\":\"\",\"datasource\":_vm.datasource,\"translatable\":\"\"},on:{\"select\":_vm.changePartitionParent,\"cancel\":function($event){_vm.showPartitionSelector = false}}}):_vm._e(),_c('pd-tree-grid',{key:_vm.refresh,attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.columns,\"options\":_vm.gridOptions,\"tree-column\":\"name\",\"height\":600,\"row-actions\":_vm.rowActions,\"sort\":\"name\",\"sort-direction\":\"asc\"},scopedSlots:_vm._u([{key:\"editor-fields\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('partition-editor',{attrs:{\"partition\":item,\"locations\":_vm.locations,\"rtos\":_vm.rtos,\"coordinator-types\":_vm.coordinatorTypes,\"positions\":_vm.positions}})]}},{key:\"grid-buttons\",fn:function(){return [_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":_vm.exportData}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.export)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1)]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { PartitionDto } from '@/dtos/bcm';\nimport { ApplicationModule, AuthenticationModule } from '@/store';\nimport { ApiDataSource } from '@/core/datasource';\nimport i18n from '@/i18n';\nimport { GridItem, PdTreeGrid, PdTreeGridOptions } from '@/components/core/PdTreeGrid';\nimport { PdDataTableHeader, PdDataTableRowAction } from '@/components/core/PdDataTable';\nimport { TranslatableComparison } from '@/core/helpers/sort';\nimport { LanguageTemplate, LocationTemplate } from '@/core/helpers/templates';\nimport { ISelectItem } from '@/core';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport { PdDropDownColumn } from '@/components/core/PdDataTable/columns';\nimport TreeItemSelector from '@/components/all/TreeItemSelector.vue';\nimport { PartitionRto, PartitionEditor } from '@/components/bcm';\nimport icons from '@/core/icons';\nimport PartitionsService from '@/services/bcm/PartitionsService';\nimport DownloadService from '@/services/DownloadService';\nimport { v4 } from 'uuid';\nimport { UserRole } from '@/dtos';\n\nexport default defineComponent({\n name: 'PartitionsView',\n\n components: {\n PdFormBase,\n PdTreeGrid,\n PartitionEditor,\n TreeItemSelector,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n const loading = ref(true);\n\n const administrator = AuthenticationModule.Roles.includes(UserRole.BcmAdministrator);\n\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const datasource = ref>(new ApiDataSource({ api: `masterplans/${entityId}/bc/Partitions` }));\n\n const locations = ref>([]);\n const rtos = ref>([]);\n const coordinatorTypes = ref>([]);\n const positions = ref>([]);\n\n const locationsDatasource = DatasourcesService.Bcm.Locations;\n const rtosDatasource = DatasourcesService.Bcm.RtoScales;\n const coordinatorsDatasource = DatasourcesService.Bcm.CoordinatorTypes;\n const positionsDatasource = DatasourcesService.Bcm.Positions;\n\n const showPartitionSelector = ref(false);\n const partitionToChangeParent = ref(null);\n const refresh = ref(v4());\n\n const gridOptions: PdTreeGridOptions = {\n editable: { add: administrator, edit: true, delete: true },\n itemTemplate: (item) => {\n return LanguageTemplate(item, 'name').text;\n },\n };\n\n const columns: Array> = [\n {\n id: 'name',\n text: i18n.t('bcm.partitions.name').toString(),\n value: 'translations',\n translatable: true,\n translationValue: 'name',\n defaultValue: 'New Partition',\n sort: TranslatableComparison('name'),\n },\n {\n id: 'locationId',\n text: i18n.t('bcm.partitions.location').toString(),\n value: 'locationId',\n component: PdDropDownColumn,\n width: '20rem',\n parameters: { items: () => locations.value },\n },\n {\n id: 'rtoId',\n text: i18n.t('bcm.partitions.rto').toString(),\n value: 'rtoId',\n component: PartitionRto,\n width: '8rem',\n parameters: {\n column: 'rto',\n items: () => rtos.value,\n },\n },\n {\n id: 'maoId',\n text: i18n.t('bcm.partitions.mao').toString(),\n value: 'maoId',\n component: PartitionRto,\n width: '8rem',\n parameters: {\n column: 'mao',\n items: () => rtos.value,\n },\n },\n ];\n\n if (administrator) {\n columns.push({\n id: 'coordinatorTypeId',\n text: i18n.t('bcm.partitions.coordinatorType').toString(),\n value: 'coordinatorTypeId',\n component: PdDropDownColumn,\n width: '6rem',\n parameters: { items: () => coordinatorTypes.value },\n template: (item) => {\n const val = coordinatorTypes.value.find(i => i.value === item.coordinatorTypeId);\n if (val == null) {\n return { text: '' };\n }\n\n return { text: val.text.toString() };\n },\n });\n }\n\n const rowActions: Array = [\n {\n id: 'changeParent',\n text: i18n.t('bcm.partitions.changeParent').toString(),\n icon: icons.move,\n action: (gridItem) => {\n const partition = (gridItem as unknown as GridItem).item as PartitionDto;\n partitionToChangeParent.value = partition;\n showPartitionSelector.value = true;\n\n return Promise.resolve(null);\n },\n },\n ];\n\n async function exportData() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n const resp = await PartitionsService.DownloadOrganizationStructure();\n\n DownloadService.DownloadFile(resp);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function changePartitionParent(newParent: PartitionDto) {\n if (partitionToChangeParent.value == null) {\n return;\n }\n showPartitionSelector.value = false;\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n await PartitionsService.ChangePartitionParent(partitionToChangeParent.value, newParent);\n await datasource.value.get();\n refresh.value = v4();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n if (administrator) {\n await Promise.all([\n locationsDatasource.get(),\n rtosDatasource.get(),\n coordinatorsDatasource.get(),\n positionsDatasource.get(),\n ]);\n } else {\n await Promise.all([\n locationsDatasource.get(),\n rtosDatasource.get(),\n positionsDatasource.get(),\n ]);\n }\n\n locations.value = [];\n (await locationsDatasource.data()).forEach(d => {\n locations.value.push({\n value: d.id,\n text: LocationTemplate(d).text,\n });\n });\n locations.value = locations.value.sort((a, b) => {\n return a.text.toString().toLocaleUpperCase().localeCompare(b.text.toString().toLocaleUpperCase());\n });\n\n rtos.value = [];\n (await rtosDatasource.data()).forEach(d => {\n rtos.value.push({\n value: d.id,\n text: LanguageTemplate(d, 'name').text + `(${d.value})`,\n other: d,\n });\n });\n rtos.value = rtos.value.sort((a, b) => {\n return a.text.toString().toLocaleUpperCase().localeCompare(b.text.toString().toLocaleUpperCase());\n });\n\n if (administrator) {\n coordinatorTypes.value = [];\n (await coordinatorsDatasource.data()).forEach(d => {\n coordinatorTypes.value.push({\n value: d.id,\n text: d.description,\n });\n });\n coordinatorTypes.value = coordinatorTypes.value.sort((a, b) => {\n return a.text.toString().toLocaleUpperCase().localeCompare(b.text.toString().toLocaleUpperCase());\n });\n\n coordinatorTypes.value.unshift({\n text: i18n.t('bcm.partitions.coordinatorTypeNone').toString(),\n value: null,\n });\n }\n\n positions.value = [];\n (await positionsDatasource.data()).forEach(d => {\n positions.value.push({\n value: d.id,\n text: LanguageTemplate(d, 'name').text,\n });\n });\n positions.value = positions.value.sort((a, b) => {\n return a.text.toString().toLocaleUpperCase().localeCompare(b.text.toString().toLocaleUpperCase());\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n refresh,\n datasource,\n columns,\n gridOptions,\n loading,\n\n locations,\n rtos,\n coordinatorTypes,\n positions,\n\n showPartitionSelector,\n partitionToChangeParent,\n rowActions,\n changePartitionParent,\n\n exportData,\n\n icons: {\n export: icons.export,\n },\n\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartitionsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartitionsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PartitionsView.vue?vue&type=template&id=5cbcbe73&scoped=true&\"\nimport script from \"./PartitionsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./PartitionsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5cbcbe73\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":\"QuickView\"}},[(_vm.loading)?_c('v-progress-linear',{staticClass:\"mb-4\",attrs:{\"indeterminate\":\"\"}}):_vm._e(),_c('v-card',{attrs:{\"elevation\":\"0\",\"disabled\":_vm.loading}},[_c('v-row',[_c('v-col',{staticClass:\"shrink py-0\"},[_c('v-select',{staticClass:\"mr-4 pb-0\",staticStyle:{\"width\":\"300px\"},attrs:{\"label\":_vm.$t('bcm.quickview.type'),\"items\":_vm.quickViewTypes,\"item-text\":\"name\",\"item-value\":\"id\"},model:{value:(_vm.selectedType),callback:function ($$v) {_vm.selectedType=$$v},expression:\"selectedType\"}})],1),_c('v-col',{staticClass:\"shrink py-0\"},[_c('v-select',{staticClass:\"mr-4 pb-0\",staticStyle:{\"width\":\"200px\"},attrs:{\"label\":_vm.$t('bcm.quickview.minStatus'),\"items\":_vm.statuses},model:{value:(_vm.minStatus),callback:function ($$v) {_vm.minStatus=$$v},expression:\"minStatus\"}})],1),_c('v-col',{staticClass:\"shrink py-0\"},[_c('v-select',{staticClass:\"mr-4 pb-0\",staticStyle:{\"width\":\"150px\"},attrs:{\"label\":_vm.$t('bcm.quickview.language'),\"items\":_vm.quickViewLanguages,\"item-text\":\"name\",\"item-value\":\"id\"},model:{value:(_vm.selectedLanguage),callback:function ($$v) {_vm.selectedLanguage=$$v},expression:\"selectedLanguage\"}})],1),_c('v-col',{staticClass:\"pb-0\"},[_c('v-btn',{staticClass:\"text-none\",on:{\"click\":_vm.downloadData}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.excel)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t(\"bcm.quickview.download\"))+\" \")],1)],1)],1),_c('v-row',[(_vm.selectedType <= 6)?_c('v-col',[_c('pd-pivot',{attrs:{\"data\":_vm.data,\"fields\":_vm.fields,\"row-fields\":_vm.rowFields,\"value-fields\":_vm.valueFields,\"col-fields\":_vm.colFields,\"default-show-settings\":_vm.defaultShowSettings,\"hide-empty\":_vm.hideEmpty}})],1):_c('v-col',[_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"items\":_vm.data,\"headers\":_vm.interdependenciesHeaders,\"dense\":\"\",\"disable-pagination\":\"\"}})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { DeploymentStatus } from '@/dtos/all';\nimport { ApplicationModule } from '@/store';\nimport axios from './axios';\n\nexport default class QuickViewApi {\n static async GetQuickViewData(api: string, status: DeploymentStatus): Promise> {\n const entity = ApplicationModule.Entity;\n const language = ApplicationModule.Language;\n if (entity != null) {\n const response = await axios.get>(`/masterplans/${entity.id}/bc/QuickView/${api}`, {\n params: {\n language: language,\n status: status,\n },\n });\n return response.data;\n }\n\n return Promise.resolve([]);\n }\n\n static async DownloadQuickViewData(api: string, language: string, status: DeploymentStatus): Promise<{data: string, name: string}> {\n const entity = ApplicationModule.Entity;\n if (entity != null) {\n const response = await axios.get(`/masterplans/${entity.id}/bc/QuickView/${api}`, {\n params: {\n language: language,\n status: status,\n download: true,\n },\n });\n return response.data;\n }\n\n return Promise.reject();\n }\n}\n","import QuickViewApi from '@/api/QuickViewApi';\nimport { LanguageDto } from '@/dtos';\nimport { DeploymentStatus, DocumentFileFormat } from '@/dtos/all';\nimport { QuickViewDto } from '@/dtos/bcm';\nimport DownloadService from './DownloadService';\n\nexport default class QuickViewService {\n static async GetQuickViewData(dto: QuickViewDto, status: DeploymentStatus): Promise> {\n return QuickViewApi.GetQuickViewData(dto.api, status);\n }\n\n static async DownloadQuickViewData(dto: QuickViewDto, language: LanguageDto, status: DeploymentStatus): Promise {\n const data = await QuickViewApi.DownloadQuickViewData(dto.api, language.code, status);\n\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Unknown,\n });\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showSettings)?_c('div',{staticClass:\"row grid-x flex-nowrap mb-4\"},[_c('div',{staticClass:\"col left-col\"},[_c('button',{staticClass:\"btn btn-outline-primary\",on:{\"click\":_vm.toggleShowSettings}},[_vm._v(\" \"+_vm._s(_vm.hideSettingsText)+\" \")])]),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"drag-area-label\"},[_vm._v(\" \"+_vm._s(_vm.availableFieldsLabelText)+\" \")]),_c('draggable',{key:_vm.getId,staticClass:\"d-flex flex-row drag-area flex-wrap\",class:_vm.dragAreaClass,attrs:{\"id\":\"disabledFields\",\"group\":{name: 'fields', pull: _vm.pullFunction},\"clone\":_vm.clone},on:{\"start\":_vm.start,\"end\":_vm.end},model:{value:(_vm.internal.fields),callback:function ($$v) {_vm.$set(_vm.internal, \"fields\", $$v)},expression:\"internal.fields\"}},_vm._l((_vm.internal.fields),function(field){return _c('div',{key:field.key},[_c('div',{staticClass:\"btn btn-draggable btn-secondary\"},[_c('svg',{staticClass:\"svg-inline--fa fa-grip-vertical fa-w-10\",attrs:{\"aria-hidden\":\"true\",\"role\":\"img\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 270 512\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M64 208c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48\\n 48-48zM16 104c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48\\n 21.5-48 48zm0 304c0 26.5 21.5 48 48 48s48-21.5\\n 48-48-21.5-48-48-48-48 21.5-48 48z M204 208c26.5 0 48 21.5 48 48s-21.5 48 -48 48 -48 -21.5 -48 -48 21.5 -48 48 -48zM156 104c0 26.5 21.5 48 48 48s48 -21.5 48 -48 -21.5 -48 -48 -48 -48 21.5 -48 48zm0 304c0 26.5 21.5 48 48 48s48 -21.5 48 -48 -21.5 -48 -48 -48 -48 21.5 -48 48z\"}})]),_vm._v(\" \"+_vm._s(field.label)+\" \")])])}),0)],1)]):_c('div',{staticClass:\"mb-4\"},[_c('button',{staticClass:\"btn btn-outline-primary\",on:{\"click\":_vm.toggleShowSettings}},[_vm._v(\" \"+_vm._s(_vm.showSettingsText)+\" \")])]),(_vm.showSettings)?_c('div',{staticClass:\"row grid-x mb-4\"},[_c('div',{staticClass:\"col left-col\"}),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"drag-area-label\"},[_vm._v(\" \"+_vm._s(_vm.colsLabelText)+\" \")]),_c('draggable',{staticClass:\"d-flex flex-row drag-area border-primary\",class:_vm.dragAreaClass,attrs:{\"id\":\"colFields\",\"group\":{name: 'fields', pull: _vm.pullFunction},\"clone\":_vm.clone,\"move\":_vm.moveCheck},on:{\"start\":_vm.start,\"end\":_vm.end},model:{value:(_vm.internal.colFields),callback:function ($$v) {_vm.$set(_vm.internal, \"colFields\", $$v)},expression:\"internal.colFields\"}},_vm._l((_vm.internal.colFields),function(field){return _c('div',{key:field.key},[_c('div',{staticClass:\"btn btn-draggable btn-primary\"},[_c('svg',{staticClass:\"svg-inline--fa fa-grip-vertical fa-w-10\",attrs:{\"aria-hidden\":\"true\",\"role\":\"img\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 270 512\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M64 208c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zM16\\n 104c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm0 304c0 26.5\\n 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48z M204 208c26.5 0 48 21.5 48\\n 48s-21.5 48 -48 48 -48 -21.5 -48 -48 21.5 -48 48 -48zM156 104c0 26.5 21.5 48 48 48s48 -21.5 48 -48 -21.5 -48 -48 -48 -48 21.5 -48 48zm0 304c0 26.5 21.5 48 48 48s48 -21.5 48 -48 -21.5 -48 -48 -48 -48 21.5 -48 48z\"}})]),_vm._v(\" \"+_vm._s(field.label)+\" \"),_c('svg',{staticClass:\"svg-inline--fa fa-times-circle fa-w-16\",staticStyle:{\"transform-origin\":\"0.625em 0.5625em\"},attrs:{\"aria-hidden\":\"true\",\"focusable\":\"false\",\"data-prefix\":\"fas\",\"data-icon\":\"times-circle\",\"role\":\"img\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 512 512\"},on:{\"click\":function($event){return _vm.fieldClose('colFields', field)}}},[_c('g',{attrs:{\"transform\":\"translate(256 256)\"}},[_c('g',{attrs:{\"transform\":\"translate(64, 32) scale(1, 1) rotate(0 0 0)\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6\\n 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1\\n 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3\\n 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\",\"transform\":\"translate(-256 -256)\"}})])])])])])}),0)],1)]):_vm._e(),(_vm.showSettings)?_c('div',{staticClass:\"row grid-x mb-4\"},[_c('div',{staticClass:\"col left-col\"},[_c('label',{staticClass:\"form-check-label\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.internal.hideEmpty),expression:\"internal.hideEmpty\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.internal.hideEmpty)?_vm._i(_vm.internal.hideEmpty,null)>-1:(_vm.internal.hideEmpty)},on:{\"change\":function($event){var $$a=_vm.internal.hideEmpty,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.internal, \"hideEmpty\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.internal, \"hideEmpty\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.internal, \"hideEmpty\", $$c)}}}}),_vm._v(\" Hide Empty \")]),_c('br'),_c('label',{staticClass:\"form-check-label\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.internal.sortColumns),expression:\"internal.sortColumns\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.internal.sortColumns)?_vm._i(_vm.internal.sortColumns,null)>-1:(_vm.internal.sortColumns)},on:{\"change\":function($event){var $$a=_vm.internal.sortColumns,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.internal, \"sortColumns\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.internal, \"sortColumns\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.internal, \"sortColumns\", $$c)}}}}),_vm._v(\" Sort Columns \")])]),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"drag-area-label\"},[_vm._v(\" \"+_vm._s(_vm.valuesLabelText)+\" \")]),_c('draggable',{staticClass:\"d-flex flex-row drag-area border-primary\",class:_vm.dragAreaClass,attrs:{\"id\":\"valueFields\",\"group\":{name: 'fields', pull: _vm.pullFunction},\"move\":_vm.moveCheck},model:{value:(_vm.internal.valueFields),callback:function ($$v) {_vm.$set(_vm.internal, \"valueFields\", $$v)},expression:\"internal.valueFields\"}},_vm._l((_vm.valueFieldsWithTitles),function(field){return _c('div',{key:field.key},[_c('div',{staticClass:\"btn btn-draggable btn-primary\"},[_c('svg',{staticClass:\"svg-inline--fa fa-grip-vertical fa-w-10\",attrs:{\"aria-hidden\":\"true\",\"role\":\"img\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 270 512\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M64 208c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zM16 104c0 26.5 21.5\\n 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm0 304c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48\\n 21.5-48 48z M204 208c26.5 0 48 21.5 48 48s-21.5 48 -48 48 -48 -21.5 -48 -48 21.5 -48 48 -48zM156 104c0 26.5 21.5 48 48 48s48 -21.5 48 -48 -21.5 -48 -48 -48 -48 21.5 -48 48zm0 304c0 26.5 21.5 48 48 48s48 -21.5 48 -48 -21.5 -48 -48 -48 -48 21.5 -48 48z\"}})]),_c('dropdown',{staticClass:\"dropdown-inline\",attrs:{\"close-on-click\":true}},[_c('template',{slot:\"btn\"},[_vm._v(\" \"+_vm._s(field.title)+\" \")]),_c('template',{slot:\"body\"},[_c('ul',{staticClass:\"dropdown-list\"},_vm._l((_vm.availableFunctions(field)),function(aggregate){return _c('li',{key:aggregate.function,on:{\"click\":function($event){return _vm.changeFunction(field, aggregate)}}},[_vm._v(\" \"+_vm._s(aggregate.title)+\" \")])}),0)])],2),_vm._v(\" (\"+_vm._s(field.label)+\") \"),_c('svg',{staticClass:\"svg-inline--fa fa-times-circle fa-w-16\",staticStyle:{\"transform-origin\":\"0.625em 0.5625em\"},attrs:{\"aria-hidden\":\"true\",\"focusable\":\"false\",\"data-prefix\":\"fas\",\"data-icon\":\"times-circle\",\"role\":\"img\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 512 512\"},on:{\"click\":function($event){return _vm.fieldClose('valueFields', field)}}},[_c('g',{attrs:{\"transform\":\"translate(256 256)\"}},[_c('g',{attrs:{\"transform\":\"translate(64, 32) scale(1, 1) rotate(0 0 0)\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7\\n 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3\\n 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\",\"transform\":\"translate(-256 -256)\"}})])])])],1)])}),0)],1)]):_vm._e(),_c('div',{staticClass:\"row flex-nowrap grid-x\"},[(_vm.showSettings)?_c('div',{staticClass:\"col left-col\"},[_c('div',{staticClass:\"drag-area-label\"},[_vm._v(\" \"+_vm._s(_vm.rowsLabelText)+\" \")]),_c('draggable',{staticClass:\"d-flex flex-column align-items-start drag-area border-primary\",class:_vm.dragAreaClass,attrs:{\"id\":\"rowFields\",\"group\":{name: 'fields', pull: _vm.pullFunction},\"clone\":_vm.clone,\"move\":_vm.moveCheck},on:{\"start\":_vm.start,\"end\":_vm.end},model:{value:(_vm.internal.rowFields),callback:function ($$v) {_vm.$set(_vm.internal, \"rowFields\", $$v)},expression:\"internal.rowFields\"}},_vm._l((_vm.internal.rowFields),function(field){return _c('div',{key:field.key},[_c('div',{staticClass:\"btn btn-draggable btn-primary\"},[_c('svg',{staticClass:\"svg-inline--fa fa-grip-vertical fa-w-10\",attrs:{\"aria-hidden\":\"true\",\"role\":\"img\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 270 512\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M64 208c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zM16 104c0 26.5 21.5 48 48\\n 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm0 304c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48\\n 21.5-48 48z M204 208c26.5 0 48 21.5 48 48s-21.5 48 -48 48 -48 -21.5 -48 -48 21.5 -48 48 -48zM156 104c0 26.5 21.5 48 48 48s48 -21.5 48 -48 -21.5 -48 -48 -48 -48 21.5 -48 48zm0 304c0 26.5 21.5 48 48 48s48 -21.5 48 -48 -21.5 -48 -48 -48 -48 21.5 -48 48z\"}})]),_vm._v(\" \"+_vm._s(field.label)+\" \"),_c('svg',{staticClass:\"svg-inline--fa fa-times-circle fa-w-16\",staticStyle:{\"transform-origin\":\"0.625em 0.5625em\"},attrs:{\"aria-hidden\":\"true\",\"focusable\":\"false\",\"data-prefix\":\"fas\",\"data-icon\":\"times-circle\",\"role\":\"img\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 512 512\"},on:{\"click\":function($event){return _vm.fieldClose('rowFields', field)}}},[_c('g',{attrs:{\"transform\":\"translate(256 256)\"}},[_c('g',{attrs:{\"transform\":\"translate(64, 32) scale(1, 1) rotate(0 0 0)\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7\\n 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3\\n 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z\",\"transform\":\"translate(-256 -256)\"}})])])])])])}),0)],1):_vm._e(),_c('div',{staticClass:\"col table-responsive\"},[_c('pivot-table',{ref:\"pivotTable\",attrs:{\"data\":_vm.data,\"row-fields\":_vm.internal.rowFields,\"col-fields\":_vm.internal.colFields,\"value-fields\":_vm.internal.valueFields,\"no-data-warning-text\":_vm.noDataWarningText,\"is-data-loading\":_vm.isDataLoading,\"hide-empty\":_vm.internal.hideEmpty,\"sort-columns\":_vm.internal.sortColumns},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(slot,slotName){return {key:slotName,fn:function(ref){\nvar value = ref.value;\nreturn [_vm._t(slotName,null,null,{ value: value })]}}})],null,true)},[_c('template',{slot:\"loading\"},[_vm._t(\"loading\")],2)],2)],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"table-responsive\"},[(_vm.isDataLoading)?[_vm._t(\"loading\",[_vm._v(\" Loading... \")])]:(_vm.data.length === 0)?_c('div',{staticClass:\"alert alert-warning\",attrs:{\"role\":\"alert\"}},[_vm._v(\" \"+_vm._s(_vm.noDataWarningText)+\" \")]):_vm._e(),_c('v-simple-table',{attrs:{\"fixed-header\":\"\"}},[_c('thead',[_vm._l((_vm.allColumns),function(colField,colFieldIndex){return [(colField.showHeader === undefined || colField.showHeader)?_c('tr',{key:(\"head-\" + (JSON.stringify(colField)))},[(colFieldIndex === _vm.firstColFieldHeaderIndex && _vm.rowHeaderSize > 0)?_c('th',{attrs:{\"colspan\":_vm.rowHeaderSize,\"rowspan\":_vm.colHeaderSize}}):_vm._e(),_vm._l((_vm.sortedCols),function(col,colIndex){return [(_vm.spanSize('col', _vm.sortedCols, colIndex, colFieldIndex) !== 0)?_c('th',{key:JSON.stringify(col),staticClass:\"text-center\",attrs:{\"colspan\":_vm.spanSize('col', _vm.sortedCols, colIndex, colFieldIndex)}},[(colField.headerSlotName)?_vm._t(colField.headerSlotName,[_vm._v(\" Missing slot \"),_c('code',[_vm._v(_vm._s(colField.headerSlotName))])],{\"value\":col[(\"col-\" + colFieldIndex)]}):[_vm._v(\" \"+_vm._s(col[(\"col-\" + colFieldIndex)])+\" \")]],2):_vm._e()]}),(colFieldIndex === _vm.firstColFieldHeaderIndex && _vm.rowFooterSize > 0)?_c('th',{attrs:{\"colspan\":_vm.rowFooterSize,\"rowspan\":_vm.colFooterSize}}):_vm._e()],2):_vm._e()]})],2),_c('tbody',_vm._l((_vm.sortedRows),function(row,rowIndex){return _c('tr',{key:JSON.stringify(row)},[_vm._l((_vm.rowFields),function(rowField,rowFieldIndex){return [((rowField.showHeader === undefined || rowField.showHeader) && _vm.spanSize('row', _vm.sortedRows, rowIndex, rowFieldIndex) !== 0)?_c('th',{key:(\"head-\" + (JSON.stringify(rowField))),attrs:{\"rowspan\":_vm.spanSize('row', _vm.sortedRows, rowIndex, rowFieldIndex)}},[(rowField.headerSlotName)?_vm._t(rowField.headerSlotName,[_vm._v(\" Missing slot \"),_c('code',[_vm._v(_vm._s(rowField.headerSlotName))])],{\"value\":row[(\"row-\" + rowFieldIndex)]}):[_vm._v(\" \"+_vm._s(row[(\"row-\" + rowFieldIndex)])+\" \")]],2):_vm._e()]}),_vm._l((_vm.sortedCols),function(col){return _c('td',{key:JSON.stringify(col),staticClass:\"text-center\"},[(_vm.$scopedSlots.value)?_vm._t(\"value\",null,{\"value\":_vm.value(row, col)}):[_vm._v(\" \"+_vm._s(_vm.value(row, col))+\" \")]],2)}),_vm._l((_vm.rowFieldsReverse),function(rowField,rowFieldIndex){return [(rowField.showFooter && _vm.spanSize('row', _vm.rows, rowIndex, _vm.rowFields.length - rowFieldIndex - 1) !== 0)?_c('th',{key:(\"foot-\" + (JSON.stringify(rowField))),attrs:{\"rowspan\":_vm.spanSize('row', _vm.rows, rowIndex, _vm.rowFields.length - rowFieldIndex - 1)}},[(rowField.footerSlotName)?_vm._t(rowField.footerSlotName,[_vm._v(\" Missing slot \"),_c('code',[_vm._v(_vm._s(rowField.footerSlotName))])],{\"value\":row[(\"row-\" + (_vm.rowFields.length - rowFieldIndex - 1))]}):[_vm._v(\" \"+_vm._s(row[(\"row-\" + (_vm.rowFields.length - rowFieldIndex - 1))])+\" \")]],2):_vm._e()]})],2)}),0),_c('tfoot',[_vm._l((_vm.colFieldsReverse),function(colField,colFieldIndex){return [(colField.showFooter)?_c('tr',{key:(\"foot-\" + (JSON.stringify(colField)))},[(colFieldIndex === _vm.firstColFieldFooterIndex && _vm.rowHeaderSize > 0)?_c('th',{attrs:{\"colspan\":_vm.rowHeaderSize,\"rowspan\":_vm.colHeaderSize}}):_vm._e(),_vm._l((_vm.sortedCols),function(col,colIndex){return [(_vm.spanSize('col', _vm.sortedCols, colIndex, _vm.colFields.length - colFieldIndex - 1) !== 0)?_c('th',{key:JSON.stringify(col),attrs:{\"colspan\":_vm.spanSize('col', _vm.sortedCols, colIndex, _vm.colFields.length - colFieldIndex - 1)}},[(colField.footerSlotName)?_vm._t(colField.footerSlotName,[_vm._v(\" Missing slot \"),_c('code',[_vm._v(_vm._s(colField.footerSlotName))])],{\"value\":col[(\"col-\" + (_vm.colFields.length - colFieldIndex - 1))]}):[_vm._v(\" \"+_vm._s(col[(\"col-\" + (_vm.colFields.length - colFieldIndex - 1))])+\" \")]],2):_vm._e()]}),(colFieldIndex === _vm.firstColFieldFooterIndex && _vm.rowFooterSize > 0)?_c('th',{attrs:{\"colspan\":_vm.rowFooterSize,\"rowspan\":_vm.colFooterSize}}):_vm._e()],2):_vm._e()]})],2)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class HashTable {\n constructor() {\n this.values = {};\n }\n\n calculateHash(key) {\n return JSON.stringify(key, Object.keys(key).sort());\n }\n\n set(key, value) {\n const hash = this.calculateHash(key);\n this.values[hash] = value;\n }\n\n get(key) {\n const hash = this.calculateHash(key);\n return this.values[hash];\n }\n}\n","\n\n\n\n \n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdPivotTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdPivotTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdPivotTable.vue?vue&type=template&id=25e56c2a&scoped=true&\"\nimport script from \"./PdPivotTable.vue?vue&type=script&lang=js&\"\nexport * from \"./PdPivotTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PdPivotTable.vue?vue&type=style&index=0&id=25e56c2a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"25e56c2a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VSimpleTable})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { mdiMicrosoftExcel } from '@mdi/js';\nimport { ApiDataSource } from '@/core/datasource';\nimport { ApplicationModule } from '@/store';\nimport { QuickViewDto } from '@/dtos/bcm';\nimport QuickViewService from '@/services/QuickViewService';\nimport { LanguageDto } from '@/dtos';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport { DeploymentStatus } from '@/dtos/all';\nimport { StatusTitle } from '@/components/all/deployments/DeploymentStatus';\nimport { DataTableHeader } from 'vuetify';\nimport PdPivot from '@/components/core/PdPivot/PdPivot.vue';\n\nenum QuickViewTypes {\n Applications = 1,\n Assets = 2,\n Associates = 3,\n FinancialImpact = 4,\n OperationalImpact = 5,\n RiskAssessments = 6,\n Interdependencies = 7,\n}\n\nconst statuses: Array<{ value: number; text: string }> = [\n {\n value: DeploymentStatus.DataEntry,\n text: StatusTitle(DeploymentStatus.DataEntry),\n },\n {\n value: DeploymentStatus.ApprovalPath,\n text: StatusTitle(DeploymentStatus.ApprovalPath),\n },\n {\n value: DeploymentStatus.AdminApproval,\n text: StatusTitle(DeploymentStatus.AdminApproval),\n },\n {\n value: DeploymentStatus.Finished,\n text: StatusTitle(DeploymentStatus.Finished),\n },\n];\n\ninterface PivotField {\n label: string;\n getter: (item: { [key: string]: unknown }) => unknown;\n type?: string;\n title?: string;\n}\n\nexport default defineComponent({\n name: 'QuickView',\n components: {\n PdFormBase,\n PdPivot,\n },\n setup() {\n const data = ref([]);\n const fields = ref>([]);\n const rowFields = ref>([]);\n const colFields = ref>([]);\n const valueFields = ref>([]);\n const defaultShowSettings = ref(false);\n const hideEmpty = ref(true);\n\n let level = 0;\n\n const quickViewTypes = ref>([]);\n const selectedType = ref(0);\n const minStatus = ref(DeploymentStatus.Finished);\n const loading = ref(true);\n\n const interdependenciesHeaders = ref>([]);\n\n const types = new ApiDataSource({\n api: `/masterplans/${ApplicationModule.Entity?.id}/bc/QuickView/GetItems`,\n readonly: true,\n });\n\n const quickViewLanguages = ref>([]);\n const selectedLanguage = ref(null);\n\n async function init() {\n await DatasourcesService.Languages.get();\n\n const entityLanguages = ApplicationModule.Entity?.languages || [];\n\n const langs = [];\n for (let i = 0; i < entityLanguages.length; ++i) {\n const l = await DatasourcesService.Languages.getById(entityLanguages[i].languageId);\n if (l != null) {\n langs.push(l);\n if (l.code === ApplicationModule.Language) {\n selectedLanguage.value = l.id;\n }\n }\n }\n\n if (selectedLanguage.value == null) {\n selectedLanguage.value = langs[0].id;\n }\n\n quickViewLanguages.value = langs;\n }\n\n init();\n\n watch(selectedType, reloadData);\n\n watch(minStatus, reloadData);\n\n async function reloadData() {\n loading.value = true;\n const dto = await types.getById(selectedType.value);\n if (dto != null) {\n const d = await QuickViewService.GetQuickViewData(dto, minStatus.value);\n getLevel(d as { [key: string]: unknown }[]);\n data.value = d as never[];\n\n if (dto.id === QuickViewTypes.Applications) {\n setApplications();\n } else if (dto.id === QuickViewTypes.Assets) {\n setAssets();\n } else if (dto.id === QuickViewTypes.Associates) {\n setAssociates();\n } else if (dto.id === QuickViewTypes.FinancialImpact) {\n setFinancialImpact();\n } else if (dto.id === QuickViewTypes.OperationalImpact) {\n setOperationalImpact();\n } else if (dto.id === QuickViewTypes.RiskAssessments) {\n setRiskAssessments();\n } else if (dto.id === QuickViewTypes.Interdependencies) {\n setInterdependencies();\n }\n\n loading.value = false;\n }\n }\n\n function setApplications() {\n fields.value = getLevelFields().concat([\n {\n getter: (item: { [key: string]: unknown }) => item.address,\n label: 'Address',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.rto,\n label: 'RTO',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.rpo,\n label: 'RPO',\n },\n ]);\n\n fields.value.shift();\n\n rowFields.value = [\n {\n getter: (item: { [key: string]: unknown }) => item.level0,\n label: 'Level 0',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.application,\n label: 'System',\n },\n ];\n\n colFields.value = [];\n\n valueFields.value = [\n {\n label: 'RTO',\n getter: (item: { [key: string]: unknown }) => item.rto,\n type: 'min',\n title: 'Min',\n },\n {\n label: 'RPO',\n getter: (item: { [key: string]: unknown }) => item.rpo,\n type: 'min',\n title: 'Min',\n },\n ];\n\n hideEmpty.value = true;\n }\n\n function setAssets() {\n fields.value = getLevelFields().concat([\n {\n getter: (item: { [key: string]: unknown }) => item.address,\n label: 'Address',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.value,\n label: 'Value',\n },\n ]);\n\n fields.value.shift();\n\n rowFields.value = [\n {\n getter: (item: { [key: string]: unknown }) => item.level0,\n label: 'Level 0',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.asset,\n label: 'Asset',\n },\n ];\n\n colFields.value = [\n {\n getter: (item: { [key: string]: unknown }) => item.rto,\n label: 'RTO',\n },\n ];\n\n valueFields.value = [\n {\n label: 'Value',\n getter: (item: { [key: string]: unknown }) => item.value,\n type: 'sum',\n title: 'Sum',\n },\n ];\n\n hideEmpty.value = true;\n }\n\n function setAssociates() {\n fields.value = getLevelFields().concat([\n {\n getter: (item: { [key: string]: unknown }) => item.address,\n label: 'Address',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.direction,\n label: 'Direction',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.isCritical,\n label: 'Is Critical?',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.whyCritical,\n label: 'Why Critical?',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.criticalActions,\n label: 'Critical Actions',\n },\n ]);\n\n fields.value.shift();\n\n rowFields.value = [\n {\n getter: (item: { [key: string]: unknown }) => item.level0,\n label: 'Level 0',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.associate,\n label: 'Associate',\n },\n ];\n\n colFields.value = [\n {\n getter: (item: { [key: string]: unknown }) => item.direction,\n label: 'I/O',\n },\n ];\n\n valueFields.value = [\n {\n getter: (item: { [key: string]: unknown }) => item.isCritical,\n label: 'Is Critical',\n type: 'count',\n title: 'Count',\n },\n ];\n\n hideEmpty.value = true;\n }\n\n function setOperationalImpact() {\n fields.value = getLevelFields().concat([\n {\n getter: (item: { [key: string]: unknown }) => item.address,\n label: 'Address',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.impactName,\n label: 'Impact-Name',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.impactValue,\n label: 'Impact-Value',\n },\n ]);\n\n fields.value.shift();\n\n rowFields.value = [\n {\n getter: (item: { [key: string]: unknown }) => item.level0,\n label: 'Level 0',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.question,\n label: 'Question',\n },\n ];\n\n colFields.value = [\n {\n getter: (item: { [key: string]: unknown }) => item.rto,\n label: 'Rto',\n },\n ];\n\n valueFields.value = [\n {\n getter: (item: { [key: string]: unknown }) => item.impactValue,\n label: 'Impact-Value',\n type: 'max',\n title: 'Max',\n },\n ];\n\n hideEmpty.value = true;\n }\n\n function setFinancialImpact() {\n fields.value = getLevelFields().concat([\n {\n getter: (item: { [key: string]: unknown }) => item.address,\n label: 'Address',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.impactName,\n label: 'Impact-Name',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.impactValue,\n label: 'Impact-Value',\n },\n ]);\n\n fields.value.shift();\n\n rowFields.value = [\n {\n getter: (item: { [key: string]: unknown }) => item.level0,\n label: 'Level 0',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.question,\n label: 'Question',\n },\n ];\n\n colFields.value = [\n {\n getter: (item: { [key: string]: unknown }) => item.rto,\n label: 'Rto',\n },\n ];\n\n valueFields.value = [\n {\n getter: (item: { [key: string]: unknown }) => item.impactValue,\n label: 'Impact-Value',\n type: 'max',\n title: 'Max',\n },\n ];\n\n hideEmpty.value = true;\n }\n\n function setRiskAssessments() {\n fields.value = getLevelFields().concat([\n {\n getter: (item: { [key: string]: unknown }) => item.address,\n label: 'Address',\n },\n // {\n // getter: (item: { [key: string]: unknown }) => item.risk,\n // label: 'Risk'\n // },\n {\n getter: (item: { [key: string]: unknown }) => item.controlTools,\n label: 'ControlTools',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.controlEvaluation,\n label: 'Control-Evaluation',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.probability,\n label: 'Probability-Name',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.probabilityValue,\n label: 'Probability-Value',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.treatment,\n label: 'Treatment',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.actionPlan,\n label: 'ActionPlan',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.actionPlanDueDate,\n label: 'ActionPlan Due-Date',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.implementation,\n label: 'Implementation Status',\n },\n {\n getter: (item: { [key: string]: unknown }) =>\n item.implementationDueDate,\n label: 'Implementation Due-Date',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.impactValue,\n label: 'Impact-Value',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.riskLevel,\n label: 'Risk-Level',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.riskValue,\n label: 'Risk-Value',\n },\n ]);\n\n fields.value.shift();\n\n rowFields.value = [\n {\n getter: (item: { [key: string]: unknown }) => item.level0,\n label: 'Level 0',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.risk,\n label: 'Risk',\n },\n ];\n\n colFields.value = [];\n\n valueFields.value = [\n {\n getter: (item: { [key: string]: unknown }) => item.riskValue,\n label: 'Risk-Value',\n type: 'max',\n title: 'Max',\n },\n {\n getter: (item: { [key: string]: unknown }) => item.risk,\n label: 'Risk',\n type: 'count',\n title: 'Count',\n },\n ];\n\n hideEmpty.value = true;\n }\n\n function setInterdependencies() {\n const headers: Array = [];\n if (data.value.length > 0) {\n Object.entries(data.value[0]).forEach(([key]) => {\n var title = key[0].toUpperCase() + key.substring(1);\n\n headers.push({\n text: title,\n value: key,\n });\n });\n }\n\n interdependenciesHeaders.value = headers;\n }\n\n function getLevelFields() {\n const fields = [];\n for (let i = 0; i < level; ++i) {\n fields.push({\n getter: (item: { [key: string]: unknown }) => item[`level${i}`],\n label: `Level ${i}`,\n });\n }\n\n return fields;\n }\n\n function getLevel(data: Array<{ [key: string]: unknown }>) {\n level = 1;\n for (let i = 0; i < data.length; ++i) {\n if (data[i]['level' + level] !== undefined) {\n level += 1;\n // retry current\n i--;\n }\n }\n }\n\n types.data().then((t) => {\n quickViewTypes.value = t;\n selectedType.value = t[0].id;\n loading.value = false;\n });\n\n async function downloadData() {\n loading.value = true;\n const dto = await types.getById(selectedType.value);\n if (dto != null) {\n const lang: LanguageDto = (await DatasourcesService.Languages.getById(selectedLanguage.value || 1)) || { id: 1, code: 'en-US', name: '' };\n try {\n console.log(lang);\n await QuickViewService.DownloadQuickViewData(\n dto,\n lang,\n minStatus.value,\n );\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n }\n }\n loading.value = false;\n }\n\n return {\n data,\n fields,\n rowFields,\n colFields,\n valueFields,\n defaultShowSettings,\n hideEmpty,\n\n selectedType,\n quickViewTypes,\n\n selectedLanguage,\n quickViewLanguages,\n\n downloadData,\n loading,\n excel: mdiMicrosoftExcel,\n\n statuses,\n minStatus,\n\n interdependenciesHeaders,\n };\n },\n});\n","\n \n \n
    \n
    \n
    \n\n\n\n\n \n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdPivot.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdPivot.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PdPivot.vue?vue&type=template&id=00307ceb&scoped=true&\"\nimport script from \"./PdPivot.vue?vue&type=script&lang=js&\"\nexport * from \"./PdPivot.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PdPivot.vue?vue&type=style&index=0&id=00307ceb&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00307ceb\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuickView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuickView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./QuickView.vue?vue&type=template&id=4585fbeb&scoped=true&\"\nimport script from \"./QuickView.vue?vue&type=script&lang=ts&\"\nexport * from \"./QuickView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4585fbeb\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VCard,VCol,VDataTable,VIcon,VProgressLinear,VRow,VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loaded)?_c('pd-form-base',{attrs:{\"title\":\"Systems\"}},[(_vm.showImportDialog)?_c('pd-file-import-dialog',{attrs:{\"title\":_vm.importTitle,\"hide-clear-existing\":\"\",\"show-ignore-duplicates\":\"\"},on:{\"save\":_vm.uploadCsvFile,\"cancel\":function($event){_vm.showImportDialog = false}},scopedSlots:_vm._u([{key:\"importFileFormat\",fn:function(){return [_c('i18n',{attrs:{\"path\":_vm.importFormat}},[_c('br')])]},proxy:true}],null,false,4076245126)}):_vm._e(),_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":_vm.options,\"sort\":\"name\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"},scopedSlots:_vm._u([{key:\"PopupEditorTitle\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.$t(\"bcm.systems.editTitle\")))])]},proxy:true},{key:\"PopupEditorContent\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('system-edit',{attrs:{\"system\":item,\"rto-scales\":_vm.rtoScales,\"rpo-scales\":_vm.rpoScales}})]}},{key:\"customTableActions\",fn:function(){return [_c('input',{ref:\"fileInput\",staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\"}}),_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.exportData}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.export)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('systems.export.button'))+\" \")],1),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.import)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('systems.import.button'))+\" \")],1)]}}],null,false,684094269)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.importData('import')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('systems.import.systems')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.importData('ucmdb')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('systems.import.ucmdb')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.importData('business')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('systems.import.business')))])],1),_c('v-list-item',{on:{\"click\":_vm.updateBusinessFromDeployments}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('systems.updateBusinessFromDeployments')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.importData('itsd')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('systems.import.itsd')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.importData('service')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('systems.import.service')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.importData('application')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('systems.import.application')))])],1)],1)],1)]},proxy:true}],null,false,749806651)})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ApplicationModule } from '@/store';\nimport axios from './axios';\n\nexport default class UcmdbFilesApi {\n static async UploadUcmdb(data: FormData): Promise {\n return UcmdbFilesApi.UploadFile('ucmdb', data);\n }\n\n static async UploadBusinessOwners(data: FormData): Promise {\n return UcmdbFilesApi.UploadFile('business', data);\n }\n\n static async UploadFile(api: string, data: FormData): Promise {\n const entity = ApplicationModule.Entity;\n try {\n if (entity != null) {\n const resp = await axios.post(`/masterplans/${entity.id}/bc/Applications/UploadFile/${api}`, data);\n return Promise.resolve(resp);\n }\n } catch (error) {\n if (error.response.status === 400) {\n return Promise.reject(error.response.data);\n } else {\n return Promise.reject(error.response);\n }\n }\n return Promise.reject();\n }\n\n static async DownloadApplicationsCsv(): Promise<{data: string, name: string}> {\n const entity = ApplicationModule.Entity;\n if (entity != null) {\n const response = await axios.get(`/masterplans/${entity.id}/bc/Applications/export`);\n return response.data;\n }\n\n return Promise.reject();\n }\n}\n","import UcmdbFilesApi from '@/api/UcmdbFilesApi';\nimport { DocumentFileFormat } from '@/dtos/all';\nimport DownloadService from './DownloadService';\n\nexport default class FileUploadService {\n static async UploadFile(api:string, data: FormData): Promise {\n return UcmdbFilesApi.UploadFile(api, data);\n }\n\n static async UcmdbFile(data: FormData): Promise {\n return UcmdbFilesApi.UploadUcmdb(data);\n }\n\n static async BusinessOwnersFile(data: FormData): Promise {\n return UcmdbFilesApi.UploadBusinessOwners(data);\n }\n\n static async DownloadApplications(): Promise {\n const data = await UcmdbFilesApi.DownloadApplicationsCsv();\n\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Unknown,\n });\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onUpdated, ref } from '@vue/composition-api';\nimport i18n from '@/i18n';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { PdDataTable, PdDataTableEditMode, PdDataTableHeader, PdDataTableOptions } from '@/components/core/PdDataTable';\nimport { ApplicationModule } from '@/store';\nimport { LanguageTemplate, BooleanTemplate } from '@/core/helpers/templates';\nimport { SystemDto } from '@/dtos/bcm/SystemDto';\nimport { PdColumnTranslation, PdColumnYesNo } from '@/components/core/PdDataTable/columns';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport FileUploadService from '@/services/FileUploadService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport PdPopup from '@/components/core/PdPopup.vue';\nimport SystemsApi from '@/api/SystemsApi';\nimport { IDto, UploadCsvFileDto } from '@/dtos';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport { ApiDataSource } from '@/core/datasource';\nimport icons from '@/core/icons';\nimport SystemEdit from '@/components/bcm/SystemEdit.vue';\nimport { ISelectItem } from '@/core';\nimport PdFileImportDialog from '@/components/core/PdFileImportDialog.vue';\nimport { SystemsService } from '@/services/bcm';\n\nexport default defineComponent({\n name: 'SystemsView',\n\n components: {\n PdFormBase,\n PdDataTable,\n PdPopup,\n SystemEdit,\n PdFileImportDialog,\n },\n\n setup() {\n const loaded = ref(false);\n const fileInput = ref(null);\n\n const rtoApplicationScalesDatasource = DatasourcesService.Bcm.RtoApplicationScales;\n const rpoScalesDatasource = DatasourcesService.Bcm.RpoScales;\n\n const rtoScales = ref>([]);\n const rpoScales = ref>([]);\n\n const showImportDialog = ref(false);\n const importType = ref('');\n const importTitle = ref('');\n const importFormat = ref('');\n\n const entityId = ApplicationModule.Entity?.id;\n\n const datasource = new ApiDataSource({ api: `masterplans/${entityId}/bc/applications` });\n\n const options: PdDataTableOptions = {\n editable: {\n mode: PdDataTableEditMode.Popup,\n edit: true,\n add: true,\n delete: true,\n },\n };\n\n const headers: Array> = [\n {\n id: 'isActive',\n text: i18n.t('active').toString(),\n align: 'center',\n value: 'isActive',\n width: '80px',\n component: PdColumnYesNo,\n defaultValue: true,\n template: (item) => {\n return BooleanTemplate((item as SystemDto).isActive);\n },\n },\n {\n id: 'disasterRecoveryTest',\n text: i18n.t('systems.disasterRecovery').toString(),\n align: 'center',\n value: 'disasterRecoveryTest',\n width: '80px',\n component: PdColumnYesNo,\n defaultValue: true,\n template: (item) => {\n return BooleanTemplate((item as SystemDto).disasterRecoveryTest);\n },\n },\n {\n id: 'name',\n text: i18n.t('system.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n defaultValue: { [ApplicationModule.Language]: { name: 'New System' } },\n template: (item) => {\n return LanguageTemplate(item as SystemDto, 'name');\n },\n },\n {\n id: 'description',\n text: i18n.t('system.description').toString(),\n value: 'translations',\n visible: false,\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n defaultValue: { [ApplicationModule.Language]: { description: '' } },\n },\n {\n id: 'infrastructureRpoId',\n text: '',\n value: 'infrastructureRpoId',\n visible: false,\n defaultValue: 0,\n },\n {\n id: 'infrastructureRtoId',\n text: '',\n value: 'infrastructureRtoId',\n visible: false,\n defaultValue: 0,\n },\n ];\n\n let fi: HTMLInputElement;\n let uploadApi = '';\n async function _listener() {\n if (fi.files != null) {\n const busy = BusyIndicatorService.SetBusy('Uploading...');\n const fd = new FormData();\n fd.append('file', fi.files[0]);\n\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var res = await FileUploadService.UploadFile(uploadApi, fd) as any;\n let title = i18n.t('success').toString();\n let text = i18n.t('systems.fileImportedSuccessfully').toString();\n if (res.data != null && Array.isArray(res.data.warnings) && res.data.warnings.length > 0) {\n title = i18n.t('warning').toString();\n text = i18n.t('systems.fileImportedWithWarnings').toString();\n for (let i = 0; i < res.data.warnings.length; ++i) {\n text += '\\n' + res.data.warnings[i];\n }\n }\n\n PopupMessageService.SetMessage({\n title,\n text,\n });\n\n await datasource?.get();\n } catch (error) {\n PopupMessageService.SetMessage({\n title: 'Error',\n text: error as string,\n });\n }\n\n fi.value = '';\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n onUpdated(() => {\n fi = fileInput.value as unknown as HTMLInputElement;\n\n fi.removeEventListener('change', _listener);\n fi.addEventListener('change', _listener);\n });\n\n function importData(type: string) {\n importType.value = type;\n\n if (type === 'import') {\n importFormat.value = 'systems.import.systemsFormat';\n importTitle.value = i18n.t('systems.import.systemsTitle').toString();\n showImportDialog.value = true;\n return;\n }\n\n uploadApi = type;\n fi.click();\n }\n\n async function uploadCsvFile(data: UploadCsvFileDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('uploading').toString());\n try {\n showImportDialog.value = false;\n\n if (importType.value === 'import') {\n await SystemsService.ImportSystems(data);\n } else {\n throw new Error(`Unknown import type \"${importType}\"`);\n }\n\n PopupMessageService.SetMessage({\n title: i18n.t('success'),\n text: i18n.t('upload.success'),\n index: 100,\n });\n\n init();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function updateBusinessFromDeployments() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('systems.updatingBusinessFromDeployments').toString());\n try {\n await SystemsApi.UpdateBusinessOwnersFromDeployments();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function exportData() {\n const busy = BusyIndicatorService.SetBusy('Exporting...');\n await FileUploadService.DownloadApplications();\n BusyIndicatorService.RemoveBusy(busy);\n }\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n loaded.value = false;\n\n const rto = await rtoApplicationScalesDatasource.get();\n const rpo = await rpoScalesDatasource.get();\n await datasource.get();\n\n rto.forEach(i => {\n rtoScales.value.push({\n value: i.id,\n text: LanguageTemplate(i, 'name').text,\n });\n });\n\n rpo.forEach(i => {\n rpoScales.value.push({\n value: i.id,\n text: LanguageTemplate(i, 'name').text,\n });\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loaded.value = true;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n init();\n\n return {\n loaded,\n fileInput,\n headers,\n options,\n datasource,\n updateBusinessFromDeployments,\n importData,\n exportData,\n\n showImportDialog,\n importTitle,\n importFormat,\n uploadCsvFile,\n\n rtoScales,\n rpoScales,\n icons: {\n import: icons.import,\n export: icons.export,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SystemsView.vue?vue&type=template&id=11c0e367&scoped=true&\"\nimport script from \"./SystemsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./SystemsView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SystemsView.vue?vue&type=style&index=0&id=11c0e367&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11c0e367\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VIcon,VList,VListItem,VListItemTitle,VMenu})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":\"Email Templates\"}},[(_vm.showTemplateDetails)?_c('pd-popup',{attrs:{\"visible\":true,\"index\":5}},[_c('v-card',{attrs:{\"light\":\"\",\"width\":\"900px\",\"max-height\":\"800px\"}},[_c('v-card-title',{staticClass:\"py-3\"},[_vm._v(\" \"+_vm._s(_vm.editingTemplateName)+\" \")]),_c('v-divider',{staticClass:\"ma-0\"}),_c('v-card-text',{staticClass:\"text-left text-none\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('incident.emailTemplate.subject')},model:{value:(_vm.editingTemplate.translations['en-US'].subject),callback:function ($$v) {_vm.$set(_vm.editingTemplate.translations['en-US'], \"subject\", $$v)},expression:\"editingTemplate.translations['en-US'].subject\"}}),_c('pd-rich-text-editor',{attrs:{\"text-commands\":_vm.textCommands},model:{value:(_vm.editingTemplate.translations['en-US'].body),callback:function ($$v) {_vm.$set(_vm.editingTemplate.translations['en-US'], \"body\", $$v)},expression:\"editingTemplate.translations['en-US'].body\"}})],1),_c('v-divider',{staticClass:\"ma-0\"}),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancelChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.save'))+\" \")])],1)],1)],1):_vm._e(),_c('pd-data-table',{attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.headers,\"row-actions\":_vm.rowActions,\"options\":{ editable: true },\"sort\":\"name_en-US\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ITranslatableDto } from './IDto';\n\nexport enum EmailTemplateType {\n DeploymentOnUser = 1,\n DeploymentOnAdmin = 2,\n DeploymentFinished = 3,\n Incident = 4,\n}\n\nexport interface EmailTemplateTranslationDto {\n name: string\n subject: string\n body: string\n}\n\nexport interface EmailTemplateDto extends ITranslatableDto {\n type: EmailTemplateType\n}\n\nexport const textCommands: Array<{title: string, command: string, action?: () => Promise}> = [\n {\n title: 'Current Date',\n command: '{current-date}',\n },\n {\n title: 'Incident Summary',\n command: '{incident-summary}',\n },\n {\n title: 'Incident Date',\n command: '{incident-date}',\n },\n {\n title: 'Incident Prioritization',\n command: '{incident-prioritization}',\n },\n {\n title: 'Incident Status',\n command: '{incident-status}',\n },\n {\n title: 'Incident Sectors (table)',\n command: '{incident-sectors-table}',\n },\n {\n title: 'Incident Sectors (list)',\n command: '{incident-sectors-list}',\n },\n {\n title: 'Incident Types (list)',\n command: '{incident-types-list}',\n },\n {\n title: 'Incident Tasks (table)',\n command: '{incident-tasks-table}',\n },\n {\n title: 'Affected Locations (table)',\n command: '{affected-locations-table}',\n },\n {\n title: 'Affected Partitions (table)',\n command: '{affected-partitions-table}',\n },\n {\n title: 'Affected Systems (table)',\n command: '{affected-systems-table}',\n },\n {\n title: 'Root Cause Analysis',\n command: '{root-cause-analysis}',\n },\n];\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"editor text-left\",on:{\"click\":_vm.focus}},[(!_vm.readonly)?_c('editor-menu-bar',{attrs:{\"editor\":_vm.editor},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar commands = ref.commands;\nvar isActive = ref.isActive;\nvar getMarkAttrs = ref.getMarkAttrs;\nreturn [_c('div',{staticClass:\"menubar\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"color\":isActive.bold() ? 'red' : '',\"title\":\"Bold\"},on:{\"click\":commands.bold}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiFormatBold)+\" \")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"color\":isActive.italic() ? 'red' : '',\"title\":\"Italic\"},on:{\"click\":commands.italic}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiFormatItalic)+\" \")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"color\":isActive.underline() ? 'red' : '',\"title\":\"Underline\"},on:{\"click\":commands.underline}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiFormatUnderline)+\" \")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"color\":isActive.strike() ? 'red' : '',\"title\":\"Strike Through\"},on:{\"click\":commands.strike}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiFormatStrikethrough)+\" \")])],1),_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-width\":200,\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"title\":\"Link\"},on:{\"click\":function($event){_vm.showLinkMenu(getMarkAttrs('link'))}}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiLinkVariant)+\" \")])],1)]}}],null,true),model:{value:(_vm.linkMenuIsActive),callback:function ($$v) {_vm.linkMenuIsActive=$$v},expression:\"linkMenuIsActive\"}},[_c('v-card',[_c('v-card-text',[_c('v-text-field',{attrs:{\"label\":\"Link Address\",\"placeholder\":\"https://\"},model:{value:(_vm.linkUrl),callback:function ($$v) {_vm.linkUrl=$$v},expression:\"linkUrl\"}})],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.linkMenuIsActive = false}}},[_vm._v(\" Cancel \")]),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.setLinkUrl(commands.link, _vm.linkUrl)}}},[_vm._v(\" Save \")]),_c('v-spacer')],1)],1)],1),_c('v-btn',{attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"color\":isActive.code() ? 'red' : '',\"title\":\"Code\"},on:{\"click\":commands.code}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCodeString)+\" \")])],1),(_vm.textCommands)?_c('v-menu',{attrs:{\"close-on-content-click\":true,\"nudge-width\":200,\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"title\":\"Insert Commands\"},on:{\"click\":function($event){_vm.commandsMenuIsActive = true}}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCodeJson)+\" \")])],1)]}}],null,true),model:{value:(_vm.commandsMenuIsActive),callback:function ($$v) {_vm.commandsMenuIsActive=$$v},expression:\"commandsMenuIsActive\"}},[_c('v-list',{staticClass:\"overflow-y-auto\",attrs:{\"dense\":\"\",\"max-height\":\"400\"}},_vm._l((_vm.textCommands),function(item){return _c('v-list-item',{key:item.command,on:{\"click\":function($event){return _vm.addTextCommand(item)}}},[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(item.title)+\" \")])],1)}),1)],1):_vm._e(),_c('v-btn',{attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"color\":isActive.paragraph() ? 'red' : '',\"title\":\"Paragraph\"},on:{\"click\":commands.paragraph}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiFormatPilcrow)+\" \")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"color\":isActive.heading({ level: 1 }) ? 'red' : '',\"title\":\"Heading 1\"},on:{\"click\":function($event){return commands.heading({ level: 1 })}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiFormatHeader1)+\" \")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"color\":isActive.heading({ level: 2 }) ? 'red' : '',\"title\":\"Heading 2\"},on:{\"click\":function($event){return commands.heading({ level: 2 })}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiFormatHeader2)+\" \")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"color\":isActive.heading({ level: 3 }) ? 'red' : '',\"title\":\"Heading 3\"},on:{\"click\":function($event){return commands.heading({ level: 3 })}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiFormatHeader3)+\" \")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"color\":isActive.bullet_list() ? 'red' : '',\"title\":\"Bullet list\"},on:{\"click\":commands.bullet_list}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiFormatListBulleted)+\" \")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"color\":isActive.ordered_list() ? 'red' : '',\"title\":\"Numbered list\"},on:{\"click\":commands.ordered_list}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiFormatListNumbered)+\" \")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"color\":isActive.blockquote() ? 'red' : '',\"title\":\"Block Quote\"},on:{\"click\":commands.blockquote}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCommentQuoteOutline)+\" \")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"title\":\"Horizontal Line\"},on:{\"click\":commands.horizontal_rule}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiFlipVertical)+\" \")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"title\":\"Undo\"},on:{\"click\":commands.undo}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiUndo)+\" \")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"title\":\"Redo\"},on:{\"click\":commands.redo}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiRedo)+\" \")])],1),_c('v-btn',{staticClass:\"menubar__button\",attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"title\":\"Create Table\"},on:{\"click\":function($event){return commands.createTable({rowsCount: 3, colsCount: 3, withHeaderRow: false })}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiTable)+\" \")])],1),(isActive.table())?_c('span',[_c('v-btn',{staticClass:\"menubar__button\",attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"title\":\"Delete Table\"},on:{\"click\":commands.deleteTable}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.icons.mdiTableRemove))])],1),_c('v-btn',{staticClass:\"menubar__button\",attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"title\":\"Add column to the left\"},on:{\"click\":commands.addColumnBefore}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.icons.mdiTableColumnPlusBefore))])],1),_c('v-btn',{staticClass:\"menubar__button\",attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"title\":\"Add column to the right\"},on:{\"click\":commands.addColumnAfter}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.icons.mdiTableColumnPlusAfter))])],1),_c('v-btn',{staticClass:\"menubar__button\",attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"title\":\"Delete Column\"},on:{\"click\":commands.deleteColumn}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.icons.mdiTableColumnRemove))])],1),_c('v-btn',{staticClass:\"menubar__button\",attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"title\":\"Add row above\"},on:{\"click\":commands.addRowBefore}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.icons.mdiTableRowPlusBefore))])],1),_c('v-btn',{staticClass:\"menubar__button\",attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"title\":\"Add row bellow\"},on:{\"click\":commands.addRowAfter}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.icons.mdiTableRowPlusAfter))])],1),_c('v-btn',{staticClass:\"menubar__button\",attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"title\":\"Delete Row\"},on:{\"click\":commands.deleteRow}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.icons.mdiTableRowRemove))])],1),_c('v-btn',{staticClass:\"menubar__button\",attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"title\":\"Merge Cells\"},on:{\"click\":commands.toggleCellMerge}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(_vm._s(_vm.icons.mdiTableMergeCells))])],1)],1):_vm._e(),(_vm.customCommands)?_vm._l((_vm.customCommands),function(c){return _c('v-btn',{key:c.command,staticClass:\"menubar__button\",attrs:{\"icon\":\"\",\"tile\":\"\",\"small\":\"\",\"title\":c.title},on:{\"click\":function($event){return _vm.$emit('custom-command', c.command)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(c.icon)+\" \")])],1)}):_vm._e()],2)]}}],null,false,2036211831)}):_vm._e(),_c('editor-content',{staticClass:\"editor__content\",style:({height: _vm.height + 'px'}),attrs:{\"editor\":_vm.editor}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, nextTick, onBeforeUnmount, ref, watch } from '@vue/composition-api';\nimport { Editor, EditorContent, EditorMenuBar, EditorMenuBubble } from 'tiptap';\nimport {\n Blockquote,\n HardBreak,\n Heading,\n HorizontalRule,\n OrderedList,\n BulletList,\n ListItem,\n Table,\n TableHeader,\n TableCell,\n TableRow,\n Bold,\n Code,\n Italic,\n Link,\n Strike,\n Underline,\n History,\n} from 'tiptap-extensions';\n\nimport {\n mdiFormatBold,\n mdiFormatItalic,\n mdiFormatStrikethrough,\n mdiFormatUnderline,\n mdiFormatPilcrow,\n mdiFormatListBulleted,\n mdiFormatListNumbered,\n mdiFormatHeader1,\n mdiFormatHeader2,\n mdiFormatHeader3,\n mdiCommentQuoteOutline,\n mdiCodeString,\n mdiFlipVertical,\n mdiUndo,\n mdiRedo,\n mdiLinkVariant,\n mdiCheckboxMultipleOutline,\n mdiTable,\n mdiTableColumnPlusAfter,\n mdiTableColumnPlusBefore,\n mdiTableColumnRemove,\n mdiTableMergeCells,\n mdiTableRemove,\n mdiTableRowPlusAfter,\n mdiTableRowPlusBefore,\n mdiTableRowRemove,\n mdiCodeJson,\n} from '@mdi/js';\n\nexport default defineComponent({\n name: 'PdRichTextEditor',\n\n components: {\n EditorMenuBar,\n EditorMenuBubble,\n EditorContent,\n },\n\n props: {\n value: {\n type: String,\n required: true,\n },\n\n textCommands: {\n type: Array,\n required: false,\n },\n\n customCommands: {\n type: Array,\n required: false,\n },\n\n height: {\n type: Number,\n default: 500,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const commandsMenuIsActive = ref(false);\n\n const linkMenuIsActive = ref(false);\n const linkUrl = ref(null);\n\n const linkInput = ref(null);\n\n function showLinkMenu(attrs: { href: string }) {\n linkUrl.value = attrs.href;\n linkMenuIsActive.value = true;\n nextTick(() => {\n const element = linkInput.value as HTMLElement | null;\n if (element != null) {\n element.focus();\n }\n });\n }\n\n function hideLinkMenu() {\n linkUrl.value = null;\n linkMenuIsActive.value = false;\n }\n\n function setLinkUrl(command: ((href: { href: string }) => void), url: string) {\n command({ href: url });\n hideLinkMenu();\n }\n\n const editor = ref(new Editor({\n editable: !props.readonly,\n extensions: [\n new Blockquote(),\n new BulletList(),\n new HardBreak(),\n new Heading({ levels: [1, 2, 3] }),\n new HorizontalRule(),\n new ListItem(),\n new OrderedList(),\n new Link({\n openOnClick: false,\n }),\n new Bold(),\n new Code(),\n new Italic(),\n new Strike(),\n new Underline(),\n new History(),\n new Table({\n resizable: true,\n }),\n new TableHeader(),\n new TableCell(),\n new TableRow(),\n ],\n content: props.value,\n\n onUpdate: ({ getHTML }: { getHTML: (() => string) }) => {\n // get new content on update\n emit('input', getHTML());\n },\n }));\n\n watch(\n () => props.readonly,\n () => {\n editor.value.setOptions({\n editable: !props.readonly,\n });\n },\n );\n\n onBeforeUnmount(() => {\n editor.value.destroy();\n });\n\n function focus() {\n editor.value.focus();\n }\n\n async function addTextCommand(textCommand: { command: string, action?: () => Promise }) {\n let text = textCommand.command;\n if (textCommand.action != null) {\n text = await textCommand.action();\n }\n\n const transaction = editor.value.state.tr.insertText(text);\n editor.value.view.dispatch(transaction);\n }\n\n return {\n editor,\n commandsMenuIsActive,\n showLinkMenu,\n hideLinkMenu,\n setLinkUrl,\n linkMenuIsActive,\n linkUrl,\n addTextCommand,\n focus,\n icons: {\n mdiFormatBold,\n mdiFormatItalic,\n mdiFormatStrikethrough,\n mdiFormatPilcrow,\n mdiFormatUnderline,\n mdiFormatListBulleted,\n mdiFormatListNumbered,\n mdiFormatHeader1,\n mdiFormatHeader2,\n mdiFormatHeader3,\n mdiCommentQuoteOutline,\n mdiCodeString,\n mdiFlipVertical,\n mdiUndo,\n mdiRedo,\n mdiLinkVariant,\n mdiCheckboxMultipleOutline,\n mdiTable,\n mdiTableColumnPlusAfter,\n mdiTableColumnPlusBefore,\n mdiTableColumnRemove,\n mdiTableMergeCells,\n mdiTableRemove,\n mdiTableRowPlusAfter,\n mdiTableRowPlusBefore,\n mdiTableRowRemove,\n mdiCodeJson,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdRichTextEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdRichTextEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdRichTextEditor.vue?vue&type=template&id=1942be09&scoped=true&\"\nimport script from \"./PdRichTextEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdRichTextEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PdRichTextEditor.vue?vue&type=style&index=0&id=1942be09&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1942be09\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VIcon,VList,VListItem,VListItemTitle,VMenu,VSpacer,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { PdDataTable, PdDataTableHeader, PdDataTableRowAction } from '@/components/core/PdDataTable';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport i18n from '@/i18n';\nimport { PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { EmailTemplateDto, textCommands } from '@/dtos/EmailTemplate';\nimport PdPopup from '@/components/core/PdPopup.vue';\nimport { mdiBallot } from '@mdi/js';\nimport cloneDeep from 'lodash.clonedeep';\nimport { v4 } from 'uuid';\nimport PdRichTextEditor from '@/components/core/PdRichTextEditor.vue';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\n\nexport default defineComponent({\n components: {\n PdFormBase,\n PdDataTable,\n PdPopup,\n PdRichTextEditor,\n },\n name: 'EmailTemplates',\n setup() {\n const datasource = DatasourcesService.Incidents.EmailTemplates;\n let selectedTemplate: EmailTemplateDto | null = null;\n const showTemplateDetails = ref(false);\n const editingTemplate = ref(null);\n const editingTemplateName = ref('');\n\n const headers: Array> = [\n {\n id: 'name',\n text: i18n.t('incident.emailTemplate.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n width: '100%',\n template: (item) => {\n return LanguageTemplate(item as EmailTemplateDto, 'name');\n },\n },\n ];\n\n const rowActions = ref>([\n {\n id: 'showDetails',\n text: i18n.t('incident.showDetails').toString(),\n icon: mdiBallot,\n action: async (item: unknown) => {\n const template = item as EmailTemplateDto;\n selectedTemplate = template;\n for (const i in template.translations) {\n if (template.translations[i].body == null) {\n template.translations[i].body = 'Email Body';\n }\n }\n\n editingTemplate.value = cloneDeep(template);\n\n console.log(editingTemplate.value);\n template.uuid = v4();\n editingTemplateName.value = LanguageTemplate(template, 'name').text;\n showTemplateDetails.value = true;\n return Promise.resolve(null);\n },\n },\n ]);\n\n async function saveChanges() {\n if (editingTemplate.value == null || selectedTemplate == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy('Saving...');\n\n const saved = await datasource.update(editingTemplate.value);\n\n selectedTemplate.uuid = v4();\n selectedTemplate.translations['en-US'].subject = saved.translations['en-US'].subject;\n selectedTemplate.translations['en-US'].body = saved.translations['en-US'].body;\n\n editingTemplate.value = null;\n editingTemplateName.value = '';\n showTemplateDetails.value = false;\n\n BusyIndicatorService.RemoveBusy(busy);\n }\n\n function cancelChanges() {\n editingTemplate.value = null;\n editingTemplateName.value = '';\n showTemplateDetails.value = false;\n }\n\n return {\n datasource,\n headers,\n rowActions,\n textCommands,\n editingTemplate,\n showTemplateDetails,\n editingTemplateName,\n saveChanges,\n cancelChanges,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailTemplates.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailTemplates.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EmailTemplates.vue?vue&type=template&id=633404c8&scoped=true&\"\nimport script from \"./EmailTemplates.vue?vue&type=script&lang=ts&\"\nexport * from \"./EmailTemplates.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"633404c8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VDivider,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('incident.incidentViewer')}},[(_vm.loaded)?[(_vm.showNotificationDialog)?_c('incident-notification-dialog',{attrs:{\"incident\":_vm.incident,\"notification\":_vm.notification},on:{\"sent-notification\":_vm.refreshNotifications},model:{value:(_vm.showNotificationDialog),callback:function ($$v) {_vm.showNotificationDialog=$$v},expression:\"showNotificationDialog\"}}):_vm._e(),(_vm.incident.writeEnabled)?_c('pd-popup',{attrs:{\"index\":5,\"visible\":_vm.showResolveDialog,\"width\":800}},[_c('v-card',{attrs:{\"light\":\"\"}},[_c('v-card-text',{staticClass:\"scroll\",staticStyle:{\"max-height\":\"700px\",\"width\":\"500px\"}},[_c('v-row',[_c('v-col',[_c('v-select',{attrs:{\"label\":_vm.$t('incident.management.resolutionStatus'),\"items\":_vm.resolveStatuses,\"hide-details\":\"\",\"item-text\":\"text\",\"item-value\":\"id\"},model:{value:(_vm.incidentResolution.resolutionStatusId),callback:function ($$v) {_vm.$set(_vm.incidentResolution, \"resolutionStatusId\", $$v)},expression:\"incidentResolution.resolutionStatusId\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-select',{attrs:{\"label\":_vm.$t('incident.management.resolutionEvaluation'),\"items\":_vm.resolutionEvaluations,\"hide-details\":\"\",\"item-text\":\"text\",\"item-value\":\"id\"},model:{value:(_vm.incidentResolution.resolutionEvaluationId),callback:function ($$v) {_vm.$set(_vm.incidentResolution, \"resolutionEvaluationId\", $$v)},expression:\"incidentResolution.resolutionEvaluationId\"}})],1)],1),_c('v-row',[_c('v-col',[_c('pd-date-picker',{attrs:{\"outlined\":\"\",\"hide-details\":\"\",\"max\":(new Date()).toISOString(),\"title\":_vm.$t('incident.management.resolutionDate')},model:{value:(_vm.incidentResolution.resolutionDate),callback:function ($$v) {_vm.$set(_vm.incidentResolution, \"resolutionDate\", $$v)},expression:\"incidentResolution.resolutionDate\"}})],1)],1)],1),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancelResolution}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.resolveIncident}},[_vm._v(\" \"+_vm._s(_vm.$t('ok'))+\" \")])],1)],1)],1):_vm._e(),_c('v-row',{attrs:{\"dense\":\"\"}},[(_vm.inEditMode)?[_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"color\":\"success\",\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.saveChanges}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiFloppy)+\" \")]),_vm._v(\" Save \")],1)],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"color\":\"error\",\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.discardChanges}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiTrashCanOutline)+\" \")]),_vm._v(\" Discard Changes \")],1)],1)]:[_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.closeIncident}},[_vm._v(\" Return \")])],1),(_vm.incident.writeEnabled)?_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":function($event){_vm.inEditMode = true}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPencil)+\" \")]),_vm._v(\" Edit \")],1)],1):_vm._e(),(_vm.incident.writeEnabled)?_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.newNotification}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiMessageAlertOutline)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('incident.management.notificationButton'))+\" \")],1)],1):_vm._e(),(_vm.incident.writeEnabled)?_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.resolveIncidentMessage}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiDoorClosedLock)+\" \")]),_vm._v(\" Resolve Incident \")],1)],1):_vm._e()]],2),_c('v-row',{staticClass:\"mt-4\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"8\"}},[_c('v-text-field',{attrs:{\"readonly\":!_vm.inEditMode,\"dense\":!_vm.inEditMode,\"hide-details\":\"\",\"outlined\":\"\",\"label\":_vm.$t('incident.management.summary')},model:{value:(_vm.incident.summary),callback:function ($$v) {_vm.$set(_vm.incident, \"summary\", $$v)},expression:\"incident.summary\"}})],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"2\"}},[_c('pd-date-picker',{attrs:{\"readonly\":!_vm.inEditMode,\"dense\":!_vm.inEditMode,\"max\":(new Date()).toISOString(),\"outlined\":\"\",\"hide-details\":\"\",\"title\":_vm.$t('incident.management.incidentDate')},model:{value:(_vm.incident.incidentDate),callback:function ($$v) {_vm.$set(_vm.incident, \"incidentDate\", $$v)},expression:\"incident.incidentDate\"}})],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"2\"}},[_c('v-select',{attrs:{\"readonly\":!_vm.inEditMode,\"dense\":!_vm.inEditMode,\"outlined\":\"\",\"hide-details\":\"\",\"items\":_vm.resolutionStatuses,\"item-text\":\"text\",\"item-value\":\"id\",\"label\":_vm.$t('incident.management.resolutionStatus')},model:{value:(_vm.incident.resolutionStatusId),callback:function ($$v) {_vm.$set(_vm.incident, \"resolutionStatusId\", $$v)},expression:\"incident.resolutionStatusId\"}})],1)],1),(_vm.completed)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\".d-sm-none\",attrs:{\"md\":\"8\"}},[_c('v-select',{attrs:{\"readonly\":\"\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"items\":_vm.resolutionEvaluations,\"item-text\":\"text\",\"item-value\":\"id\",\"label\":_vm.$t('incident.management.resolutionEvaluation')},model:{value:(_vm.incident.resolutionEvaluationId),callback:function ($$v) {_vm.$set(_vm.incident, \"resolutionEvaluationId\", $$v)},expression:\"incident.resolutionEvaluationId\"}})],1),_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"2\"}},[_c('pd-date-picker',{attrs:{\"readonly\":\"\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"max\":(new Date()).toISOString(),\"title\":_vm.$t('incident.management.resolutionDate')},model:{value:(_vm.incident.resolutionDate),callback:function ($$v) {_vm.$set(_vm.incident, \"resolutionDate\", $$v)},expression:\"incident.resolutionDate\"}})],1)],1):_vm._e(),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-card',{staticClass:\"pa-1\",staticStyle:{\"min-height\":\"85px\",\"max-height\":\"300px\",\"height\":\"100%\"},attrs:{\"outlined\":\"\",\"rounded\":\"\",\"elevation\":\"1\"}},[_c('affected-sectors',{attrs:{\"incident\":_vm.incident,\"sectors\":_vm.sectors,\"readonly\":!_vm.inEditMode}})],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('v-card',{staticClass:\"pa-1\",staticStyle:{\"min-height\":\"85px\",\"max-height\":\"300px\",\"height\":\"100%\"},attrs:{\"outlined\":\"\",\"rounded\":\"\",\"elevation\":\"1\"}},[_c('affected-types',{attrs:{\"incident\":_vm.incident,\"types\":_vm.types,\"readonly\":!_vm.inEditMode}})],1)],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-card',{staticClass:\"pa-1\",staticStyle:{\"min-height\":\"85px\",\"max-height\":\"300px\",\"height\":\"100%\"},attrs:{\"outlined\":\"\",\"rounded\":\"\",\"elevation\":\"1\"}},[_c('affected-locations',{attrs:{\"incident\":_vm.incident,\"locations\":_vm.locations,\"partitions\":_vm.partitions,\"readonly\":!_vm.inEditMode}})],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-card',{staticClass:\"pa-1\",staticStyle:{\"min-height\":\"85px\",\"max-height\":\"300px\",\"height\":\"100%\"},attrs:{\"outlined\":\"\",\"rounded\":\"\",\"elevation\":\"1\"}},[_c('affected-partitions',{attrs:{\"incident\":_vm.incident,\"partitions\":_vm.partitions,\"readonly\":!_vm.inEditMode}})],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-card',{staticClass:\"pa-1\",staticStyle:{\"min-height\":\"85px\",\"max-height\":\"300px\",\"height\":\"100%\"},attrs:{\"outlined\":\"\",\"rounded\":\"\",\"elevation\":\"1\"}},[_c('affected-applications',{attrs:{\"incident\":_vm.incident,\"applications\":_vm.applications,\"readonly\":!_vm.inEditMode}})],1)],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-select',{attrs:{\"readonly\":!_vm.inEditMode,\"dense\":!_vm.inEditMode,\"items\":_vm.prioritizationScales,\"item-text\":\"text\",\"item-value\":\"id\",\"label\":_vm.$t('incident.management.prioritization'),\"outlined\":\"\",\"hide-details\":\"\"},model:{value:(_vm.incident.prioritizationScaleId),callback:function ($$v) {_vm.$set(_vm.incident, \"prioritizationScaleId\", $$v)},expression:\"incident.prioritizationScaleId\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-textarea',{attrs:{\"readonly\":!_vm.inEditMode,\"dense\":!_vm.inEditMode,\"label\":_vm.$t('incident.management.analysis'),\"outlined\":\"\",\"rows\":\"4\",\"hide-details\":\"\"},model:{value:(_vm.incident.analysis),callback:function ($$v) {_vm.$set(_vm.incident, \"analysis\", $$v)},expression:\"incident.analysis\"}})],1)],1),_c('v-row',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.inEditMode),expression:\"!inEditMode\"}],attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"pa-1\",attrs:{\"outlined\":\"\",\"rounded\":\"\",\"elevation\":\"1\"}},[_c('incident-tasks',{attrs:{\"incident\":_vm.incident,\"sectors\":_vm.sectors,\"readonly\":!_vm.incident.writeEnabled}})],1)],1)],1),_c('v-row',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.inEditMode),expression:\"!inEditMode\"}],attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"pa-1\",attrs:{\"outlined\":\"\",\"rounded\":\"\",\"elevation\":\"1\"}},[_c('incident-files',{attrs:{\"incident\":_vm.incident,\"readonly\":!_vm.incident.writeEnabled}})],1)],1)],1),_c('incident-notifications',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.inEditMode),expression:\"!inEditMode\"}],attrs:{\"incident\":_vm.incident,\"refresh\":_vm.refreshNotificationsList,\"readonly\":!_vm.incident.writeEnabled},on:{\"show-notification\":_vm.viewNotification}})]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IncidentDto, IncidentNotificationDto, IncidentSectorDto, IncidentSectorTaskDto } from '@/dtos/bcm/incident';\nimport { IncidentResolutionDto } from '@/dtos/bcm/incident/IncidentResolutionDto';\nimport { ApplicationModule } from '@/store';\nimport axios from './axios';\n\nexport default class IncidentApi {\n static async GetIncident(test: number): Promise {\n const entity = ApplicationModule.Entity?.id;\n\n const response = await axios.get(`/masterplans/${entity}/bc/Incidents/${test}`);\n return Promise.resolve(response.data);\n }\n\n static async CanUserCreateIncident(): Promise {\n const entity = ApplicationModule.Entity?.id;\n\n const response = await axios.get(`/masterplans/${entity}/bc/Incidents/CanUserCreateIncident`);\n return Promise.resolve(response.data);\n }\n\n static async SaveIncident(incident: IncidentDto): Promise {\n const entity = ApplicationModule.Entity?.id;\n\n let response;\n\n if (incident.id === 0) {\n response =\n response = await axios.post(`/masterplans/${entity}/bc/Incidents`, incident);\n } else {\n response = await axios.put(`/masterplans/${entity}/bc/Incidents/${incident.id}`, incident);\n }\n return response.data;\n }\n\n static async GetIncidentFiles(incidentId: number): Promise> {\n const entity = ApplicationModule?.Entity;\n if (entity != null) {\n const resp = await axios.get>(`/masterplans/${entity.id}/bc/incidents/${incidentId}/files`);\n return resp.data;\n }\n\n throw new Error('Entity is not set');\n }\n\n static async UploadIncidentFile(incidentId: number, data: FormData): Promise> {\n const entity = ApplicationModule?.Entity;\n if (entity != null) {\n const resp = await axios.post>(`/masterplans/${entity.id}/bc/incidents/${incidentId}/files/upload`, data);\n return resp.data;\n }\n\n throw new Error('Entity is not set');\n }\n\n static async DownloadIncidentFile(incidentId: number, fileName: string): Promise {\n const entity = ApplicationModule?.Entity;\n if (entity != null) {\n const resp = await axios.get>(`/masterplans/${entity.id}/bc/incidents/${incidentId}/files/download?name=${fileName}`);\n return resp.data;\n }\n\n throw new Error('Entity is not set');\n }\n\n static async SendNotification(incidentId: number, notification: IncidentNotificationDto): Promise {\n const entity = ApplicationModule?.Entity;\n if (entity != null) {\n const resp = await axios.post(`/masterplans/${entity.id}/bc/incidents/${incidentId}/notifications/send`, notification);\n return resp.data;\n }\n\n throw new Error('Entity is not set');\n }\n\n static async GetIncidentNotifications(incidentId: number): Promise> {\n const entity = ApplicationModule?.Entity;\n if (entity != null) {\n const resp = await axios.get>(`/masterplans/${entity.id}/bc/incidents/${incidentId}/notifications`);\n return resp.data;\n }\n\n throw new Error('Entity is not set');\n }\n\n static async GetIncidentTasks(incidentId: number): Promise> {\n const entity = ApplicationModule?.Entity;\n if (entity != null) {\n const resp = await axios.get>(`/masterplans/${entity.id}/bc/incidents/${incidentId}/sectors`);\n return resp.data;\n }\n\n throw new Error('Entity is not set');\n }\n\n static async CreateIncidentTasks(incidentId: number, sectorId: number, task: IncidentSectorTaskDto): Promise {\n const entity = ApplicationModule?.Entity;\n if (entity != null) {\n const resp = await axios.post(`/masterplans/${entity.id}/bc/incidents/${incidentId}/sectors/${sectorId}/tasks`, task);\n return resp.data;\n }\n\n throw new Error('Entity is not set');\n }\n\n static async UpdateIncidentTasks(incidentId: number, sectorId: number, task: IncidentSectorTaskDto): Promise {\n const entity = ApplicationModule?.Entity;\n if (entity != null) {\n const resp = await axios.put(`/masterplans/${entity.id}/bc/incidents/${incidentId}/sectors/${sectorId}/tasks/${task.id}`, task);\n return resp.data;\n }\n\n throw new Error('Entity is not set');\n }\n\n static async DeleteIncidentTasks(incidentId: number, sectorId: number, taskId: number): Promise {\n const entity = ApplicationModule?.Entity;\n if (entity != null) {\n await axios.delete(`/masterplans/${entity.id}/bc/incidents/${incidentId}/sectors/${sectorId}/tasks/${taskId}`);\n return;\n }\n\n throw new Error('Entity is not set');\n }\n\n static async ResolveIncident(incidentId: number, resolution: IncidentResolutionDto): Promise {\n const entity = ApplicationModule?.Entity;\n if (entity != null) {\n await axios.post(`/masterplans/${entity.id}/bc/incidents/${incidentId}/Resolve`, resolution);\n return;\n }\n\n throw new Error('Entity is not set');\n }\n}\n","import IncidentApi from '@/api/IncidentApi';\nimport { IncidentDto, IncidentNotificationDto, IncidentSectorDto, IncidentSectorTaskDto } from '@/dtos/bcm/incident';\nimport { IncidentResolutionDto } from '@/dtos/bcm/incident/IncidentResolutionDto';\n\nexport default class IncidentService {\n public static async GetIncident(id: number): Promise {\n return IncidentApi.GetIncident(id);\n }\n\n public static async CanUserCreateIncident(): Promise {\n return IncidentApi.CanUserCreateIncident();\n }\n\n public static async SaveIncident(incident: IncidentDto): Promise {\n return IncidentApi.SaveIncident(incident);\n }\n\n public static async UploadIncidentFile(incident: IncidentDto, data: FormData): Promise> {\n return IncidentApi.UploadIncidentFile(incident.id, data);\n }\n\n public static async GetIncidentFiles(incident: IncidentDto): Promise> {\n return IncidentApi.GetIncidentFiles(incident.id);\n }\n\n public static async DonwloadIncidentFile(incident: IncidentDto, fileName: string): Promise {\n return IncidentApi.DownloadIncidentFile(incident.id, fileName);\n }\n\n public static async GetIncidentNotifications(incident: IncidentDto): Promise> {\n return IncidentApi.GetIncidentNotifications(incident.id);\n }\n\n public static async SendNotification(incident: IncidentDto, notification: IncidentNotificationDto): Promise {\n return IncidentApi.SendNotification(incident.id, notification);\n }\n\n public static async GetIncidentTasks(incident: IncidentDto): Promise> {\n return IncidentApi.GetIncidentTasks(incident.id);\n }\n\n public static async CreateIncidentTasks(incident: IncidentDto, sectorId: number, task: IncidentSectorTaskDto): Promise {\n return IncidentApi.CreateIncidentTasks(incident.id, sectorId, task);\n }\n\n public static async UpdateIncidentTask(incident: IncidentDto, sectorId: number, task: IncidentSectorTaskDto): Promise {\n return IncidentApi.UpdateIncidentTasks(incident.id, sectorId, task);\n }\n\n public static async DeleteIncidentTask(incident: IncidentDto, sectorId: number, task: IncidentSectorTaskDto): Promise {\n return IncidentApi.DeleteIncidentTasks(incident.id, sectorId, task.id);\n }\n\n public static async ResolveIncident(incident: IncidentDto, resolution: IncidentResolutionDto): Promise {\n return IncidentApi.ResolveIncident(incident.id, resolution);\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('item-selector',{attrs:{\"visible\":_vm.applicationSelector,\"datasource\":_vm.applications,\"exclude\":_vm.incident.applications},on:{\"select\":_vm.addApplication,\"cancel\":function($event){_vm.applicationSelector = false}}}),_c('v-label',[_vm._v(\" Affected Systems \")]),(!_vm.readonly)?_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){_vm.applicationSelector = true}}},[_c('v-icon',[_vm._v(_vm._s(_vm.icons.mdiPlaylistPlus))])],1):_vm._e(),_c('div',{staticClass:\"scroll\"},[_vm._l((_vm.incident.applications),function(application){return [_c('div',{key:application.uuid},[_c('affected-application-line',{attrs:{\"applications\":_vm.applications,\"item\":application,\"readonly\":_vm.readonly},on:{\"remove\":_vm.removeApplication}})],1)]})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[(_vm.application)?_c('v-btn',{staticClass:\"mr-3 my-1 text-none\",attrs:{\"disabled\":_vm.readonly,\"block\":\"\",\"small\":\"\"},on:{\"click\":_vm.remove}},[(_vm.loading)?_c('v-progress-circular',{staticClass:\"mr-4\",attrs:{\"indeterminate\":\"\",\"size\":\"20\",\"color\":\"blue\"}}):_vm._e(),_c('pd-translatable-reference',{attrs:{\"application\":_vm.application,\"item\":_vm.application}}),_c('v-spacer')],1):_vm._e(),(!_vm.loading)?_c('div',{staticClass:\"mb-4\"},[_c('v-chip',{staticClass:\"ml-2\",attrs:{\"small\":\"\"}},[_vm._v(\" RTO: \"+_vm._s(_vm.rtoValue)+\" \")]),_c('v-chip',{staticClass:\"ml-2\",attrs:{\"small\":\"\"}},[_vm._v(\" RPO: \"+_vm._s(_vm.rpoValue)+\" \")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{attrs:{\"title\":_vm.value.tooltip}},[_vm._v(\" \"+_vm._s(_vm.value.text)+\" \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport { IDataSource } from '@/core/datasource';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { IDto } from '@/dtos';\nimport { ITranslatableDto } from '@/dtos/IDto';\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { TemplateReturnType } from './PdDataTable';\n\nexport default defineComponent({\n name: 'PdTranslatableReference',\n\n props: {\n datasource: {\n type: Object as () => IDataSource>,\n required: false,\n },\n\n item: {\n type: [Object, Number],\n required: true,\n },\n\n property: {\n type: String,\n default: 'name',\n },\n\n template: {\n type: Function as () => unknown,\n default: LanguageTemplate,\n },\n },\n\n setup(props) {\n const value = ref({ text: '', tooltip: '' });\n\n watch(\n () => props.item,\n async (item: ITranslatableDto | number) => {\n if (typeof item === 'number') {\n if (props.datasource == null) {\n throw new Error('PdTranslatableReference: item reference without datasource');\n }\n\n const i = await props.datasource.getById(item);\n if (i == null) {\n value.value = { text: '', tooltip: '' };\n } else {\n value.value = (props.template as ((item: IDto, property?: string) => TemplateReturnType))(i, props.property);\n }\n } else {\n value.value = (props.template as ((item: IDto, property?: string) => TemplateReturnType))(item, props.property);\n }\n },\n {\n immediate: true,\n },\n );\n return {\n value,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTranslatableReference.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTranslatableReference.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdTranslatableReference.vue?vue&type=template&id=2c4ce51a&scoped=true&\"\nimport script from \"./PdTranslatableReference.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdTranslatableReference.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2c4ce51a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport PdTranslatableReference from '@/components/core/PdTranslatableReference.vue';\nimport { IDataSource } from '@/core/datasource';\nimport { SystemDto } from '@/dtos/bcm/SystemDto';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport SystemsApi from '@/api/SystemsApi';\n\nexport default defineComponent({\n name: 'AffectedApplicationLine',\n\n components: {\n PdTranslatableReference,\n },\n\n props: {\n applications: {\n type: Object as () => IDataSource,\n required: true,\n },\n\n item: {\n type: Number,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const application = ref(null);\n const rto = ref(null);\n const rpo = ref(null);\n const loading = ref(false);\n\n const rtoValue = computed(() => {\n if (rto.value == null) {\n return '-';\n }\n return rto.value;\n });\n\n const rpoValue = computed(() => {\n if (rpo.value == null) {\n return '-';\n }\n return rpo.value;\n });\n\n watch(\n () => props.item,\n async (item) => {\n loading.value = true;\n try {\n application.value = await props.applications.getById(item);\n\n if (application.value == null) {\n throw new Error('AffectedApplicationLine: ApplicationId {item} not found!');\n }\n\n try {\n const stats = await SystemsApi.GetApplicationIncidentStats(application.value);\n rto.value = stats.rto;\n rpo.value = stats.rpo;\n } catch (error) {\n if (error.response?.status !== 404) {\n throw error;\n }\n }\n\n loading.value = false;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n },\n {\n immediate: true,\n },\n );\n\n function remove() {\n emit('remove', props.item);\n }\n\n return {\n loading,\n application,\n rtoValue,\n rpoValue,\n remove,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedApplicationLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedApplicationLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AffectedApplicationLine.vue?vue&type=template&id=0ca9ed40&scoped=true&\"\nimport script from \"./AffectedApplicationLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./AffectedApplicationLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0ca9ed40\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VChip,VProgressCircular,VSpacer})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { IDataSource } from '@/core/datasource';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { IncidentDto } from '@/dtos/bcm/incident';\nimport { SystemDto } from '@/dtos/bcm/SystemDto';\nimport i18n from '@/i18n';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { mdiPlaylistPlus } from '@mdi/js';\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport AffectedApplicationLine from './AffectedApplicationLine.vue';\n\nexport default defineComponent({\n name: 'AffectedApplications',\n\n components: {\n ItemSelector,\n AffectedApplicationLine,\n },\n\n props: {\n applications: {\n type: Object as () => IDataSource,\n required: true,\n },\n\n incident: {\n type: Object as () => IncidentDto,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props) {\n const applicationSelector = ref(false);\n\n function addApplication(application: SystemDto) {\n if (application != null) {\n props.incident.applications.push(application.id);\n applicationSelector.value = false;\n }\n }\n\n async function removeApplication(applicationId: number) {\n const application = await props.applications.getById(applicationId);\n if (application == null) {\n return;\n }\n\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('incident.management.removeApplication', { app: LanguageTemplate(application, 'name').text }).toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n close: () => true,\n callback: async () => {\n const current = props.incident.applications || [];\n for (let i = 0; i < current.length; ++i) {\n if (current[i] === application.id) {\n current.splice(i, 1);\n return;\n }\n }\n },\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n }\n\n return {\n applicationSelector,\n addApplication,\n removeApplication,\n icons: {\n mdiPlaylistPlus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedApplications.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedApplications.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AffectedApplications.vue?vue&type=template&id=6ad00e08&scoped=true&\"\nimport script from \"./AffectedApplications.vue?vue&type=script&lang=ts&\"\nexport * from \"./AffectedApplications.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AffectedApplications.vue?vue&type=style&index=0&id=6ad00e08&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6ad00e08\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VLabel } from 'vuetify/lib/components/VLabel';\ninstallComponents(component, {VBtn,VIcon,VLabel})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('item-selector',{attrs:{\"visible\":_vm.locationSelector,\"datasource\":_vm.locations,\"exclude\":_vm.incident.locations,\"headers\":_vm.itemSelectorHeaders},on:{\"select\":_vm.addLocation,\"cancel\":function($event){_vm.locationSelector = false}}}),_c('v-label',[_vm._v(\" Affected Locations \")]),(!_vm.readonly)?_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){_vm.locationSelector = true}}},[_c('v-icon',[_vm._v(_vm._s(_vm.icons.mdiPlaylistPlus))])],1):_vm._e(),_c('div',{staticClass:\"scroll\"},[_vm._l((_vm.incident.locations),function(location){return [_c('div',{key:location.uuid},[_c('affected-location-line',{attrs:{\"locations\":_vm.locations,\"item\":location,\"readonly\":_vm.readonly},on:{\"remove\":_vm.removeLocation}})],1)]})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[(_vm.location)?_c('v-btn',{staticClass:\"mr-3 my-1 text-none\",attrs:{\"disabled\":_vm.readonly,\"block\":\"\",\"small\":\"\"},on:{\"click\":_vm.remove}},[(_vm.loading)?_c('v-progress-circular',{staticClass:\"mr-4\",attrs:{\"indeterminate\":\"\",\"size\":\"20\",\"color\":\"blue\"}}):_vm._e(),_c('pd-translatable-reference',{attrs:{\"locations\":_vm.locations,\"item\":_vm.location,\"template\":_vm.locationTemplate}}),_c('v-spacer')],1):_vm._e(),(!_vm.loading)?_c('div',{staticClass:\"mb-4\"},[_c('v-chip',{staticClass:\"ml-2\",attrs:{\"small\":\"\"}},[_vm._v(\" RTO: \"+_vm._s(_vm.rtoValue)+\" \")]),_c('v-chip',{staticClass:\"ml-2\",attrs:{\"small\":\"\"}},[_vm._v(\" MAO: \"+_vm._s(_vm.maoValue)+\" \")]),_c('v-chip',{staticClass:\"ml-2\",attrs:{\"small\":\"\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiHumanMaleFemale)+\" \")]),_vm._v(\": \"+_vm._s(_vm.personnelValue)+\" \")],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { LocationDto } from '@/dtos/bcm';\nimport { IncidentAffectedItemStatsDto } from '@/dtos/bcm/incident/IncidentAffectedItemStatsDto';\nimport { ApplicationModule } from '@/store';\nimport axios from './axios';\n\nexport default class LocationsApi {\n static async GetLocationIncidentStats(location: LocationDto): Promise {\n const entity = ApplicationModule.Entity;\n if (entity != null) {\n const resp = await axios.get(`/masterplans/${entity.id}/bc/Locations/${location.id}/IncidentStats`);\n return resp.data;\n }\n\n throw new Error('Entity is not set!');\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport PdTranslatableReference from '@/components/core/PdTranslatableReference.vue';\nimport { IDataSource } from '@/core/datasource';\nimport { LocationDto } from '@/dtos/bcm/LocationDto';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { LocationTemplate } from '@/core/helpers/templates';\nimport LocationsApi from '@/api/LocationsApi';\nimport { mdiHumanMaleFemale } from '@mdi/js';\n\nexport default defineComponent({\n name: 'AffectedLocationLine',\n\n components: {\n PdTranslatableReference,\n },\n\n props: {\n locations: {\n type: Object as () => IDataSource,\n required: true,\n },\n\n item: {\n type: Number,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const location = ref(null);\n const rto = ref(null);\n const mao = ref(null);\n const personnel = ref(null);\n const loading = ref(false);\n const locationTemplate = LocationTemplate;\n\n const rtoValue = computed(() => {\n if (rto.value == null) {\n return '-';\n }\n return rto.value;\n });\n\n const maoValue = computed(() => {\n if (mao.value == null) {\n return '-';\n }\n return mao.value;\n });\n\n const personnelValue = computed(() => {\n if (personnel.value == null) {\n return '-';\n }\n return personnel.value;\n });\n\n watch(\n () => props.item,\n async (item) => {\n loading.value = true;\n try {\n location.value = await props.locations.getById(item);\n\n if (location.value == null) {\n throw new Error('AffectedLocationLine: LocationId {item} not found!');\n }\n\n const stats = await LocationsApi.GetLocationIncidentStats(location.value);\n rto.value = stats.rto;\n mao.value = stats.mao;\n personnel.value = stats.personnel;\n\n loading.value = false;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n },\n {\n immediate: true,\n },\n );\n\n function remove() {\n emit('remove', props.item);\n }\n\n return {\n loading,\n location,\n locationTemplate,\n rtoValue,\n maoValue,\n personnelValue,\n remove,\n icons: {\n mdiHumanMaleFemale,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedLocationLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedLocationLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AffectedLocationLine.vue?vue&type=template&id=21897271&scoped=true&\"\nimport script from \"./AffectedLocationLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./AffectedLocationLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"21897271\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VChip,VIcon,VProgressCircular,VSpacer})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { IDataSource } from '@/core/datasource';\nimport { LocationTemplate } from '@/core/helpers/templates';\nimport { IncidentDto } from '@/dtos/bcm/incident';\nimport { LocationDto } from '@/dtos/bcm/LocationDto';\nimport i18n from '@/i18n';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { mdiPlaylistPlus } from '@mdi/js';\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport AffectedLocationLine from './AffectedLocationLine.vue';\nimport { PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { PartitionDto } from '@/dtos/bcm';\n\nexport default defineComponent({\n name: 'AffectedLocations',\n\n components: {\n ItemSelector,\n AffectedLocationLine,\n },\n\n props: {\n locations: {\n type: Object as () => IDataSource,\n required: true,\n },\n\n incident: {\n type: Object as () => IncidentDto,\n required: true,\n },\n\n partitions: {\n type: Object as () => IDataSource,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props) {\n const locationSelector = ref(false);\n\n const itemSelectorHeaders: Array> = [{\n id: 'name',\n text: '',\n value: 'translations',\n translatable: true,\n template: async (value: unknown) => {\n return LocationTemplate(value as LocationDto);\n },\n }];\n\n function addLocation(location: LocationDto) {\n if (location != null) {\n props.incident.locations.push(location.id);\n locationSelector.value = false;\n }\n }\n\n async function removeLocation(locationId: number) {\n const location = await props.locations.getById(locationId);\n if (location == null) {\n return;\n }\n\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('incident.management.removeLocation', { location: LocationTemplate(location).text }).toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n close: () => true,\n callback: async () => {\n const current = props.incident.locations || [];\n for (let i = 0; i < current.length; ++i) {\n if (current[i] === location.id) {\n current.splice(i, 1);\n return;\n }\n }\n },\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n }\n\n return {\n locationSelector,\n itemSelectorHeaders,\n addLocation,\n removeLocation,\n icons: {\n mdiPlaylistPlus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedLocations.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedLocations.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AffectedLocations.vue?vue&type=template&id=2ad6a6e6&scoped=true&\"\nimport script from \"./AffectedLocations.vue?vue&type=script&lang=ts&\"\nexport * from \"./AffectedLocations.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AffectedLocations.vue?vue&type=style&index=0&id=2ad6a6e6&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2ad6a6e6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VLabel } from 'vuetify/lib/components/VLabel';\ninstallComponents(component, {VBtn,VIcon,VLabel})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('tree-item-selector',{attrs:{\"visible\":_vm.partitionSelector,\"datasource\":_vm.partitions,\"exclude\":_vm.incident.partitions,\"headers\":_vm.itemSelectorHeaders,\"translatable\":\"\"},on:{\"select\":_vm.addPartition,\"cancel\":function($event){_vm.partitionSelector = false}}}),_c('v-label',[_vm._v(\" Affected Partitions \")]),(!_vm.readonly)?_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){_vm.partitionSelector = true}}},[_c('v-icon',[_vm._v(_vm._s(_vm.icons.mdiPlaylistPlus))])],1):_vm._e(),_c('div',{staticClass:\"scroll\"},[_vm._l((_vm.incident.partitions),function(partition){return [_c('div',{key:partition.uuid},[_c('affected-partition-line',{attrs:{\"partitions\":_vm.partitions,\"item\":partition,\"readonly\":_vm.readonly},on:{\"remove\":_vm.removePartition}})],1)]})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[(_vm.partition)?_c('v-btn',{staticClass:\"mr-3 my-1 text-none\",attrs:{\"disabled\":_vm.readonly,\"block\":\"\",\"small\":\"\"},on:{\"click\":_vm.remove}},[(_vm.loading)?_c('v-progress-circular',{staticClass:\"mr-4\",attrs:{\"indeterminate\":\"\",\"size\":\"20\",\"color\":\"blue\"}}):_vm._e(),_c('pd-translatable-reference',{attrs:{\"partitions\":_vm.partitions,\"item\":_vm.partition}}),_c('v-spacer')],1):_vm._e(),(!_vm.loading)?_c('div',{staticClass:\"mb-4\"},[_c('v-chip',{staticClass:\"ml-2\",attrs:{\"small\":\"\"}},[_vm._v(\" RTO: \"+_vm._s(_vm.rtoValue)+\" \")]),_c('v-chip',{staticClass:\"ml-2\",attrs:{\"small\":\"\"}},[_vm._v(\" MAO: \"+_vm._s(_vm.maoValue)+\" \")]),_c('v-chip',{staticClass:\"ml-2\",attrs:{\"small\":\"\"}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiHumanMaleFemale)+\" \")]),_vm._v(\": \"+_vm._s(_vm.personnelValue)+\" \")],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport PdTranslatableReference from '@/components/core/PdTranslatableReference.vue';\nimport { IDataSource } from '@/core/datasource';\nimport { PartitionDto } from '@/dtos/bcm/PartitionDto';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PartitionsApi from '@/api/PartitionsApi';\nimport { mdiHumanMaleFemale } from '@mdi/js';\n\nexport default defineComponent({\n name: 'AffectedPartitionLine',\n\n components: {\n PdTranslatableReference,\n },\n\n props: {\n partitions: {\n type: Object as () => IDataSource,\n required: true,\n },\n\n item: {\n type: Number,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const partition = ref(null);\n const rto = ref(null);\n const mao = ref(null);\n const personnel = ref(null);\n const loading = ref(false);\n\n const rtoValue = computed(() => {\n if (rto.value == null) {\n return '-';\n }\n return rto.value;\n });\n\n const maoValue = computed(() => {\n if (mao.value == null) {\n return '-';\n }\n return mao.value;\n });\n\n const personnelValue = computed(() => {\n if (personnel.value == null) {\n return '-';\n }\n return personnel.value;\n });\n\n watch(\n () => props.item,\n async (item) => {\n loading.value = true;\n try {\n partition.value = await props.partitions.getById(item);\n\n if (partition.value == null) {\n throw new Error('AffectedPartitionLine: PartitionId {item} not found!');\n }\n\n const stats = await PartitionsApi.GetPartitionIncidentStats(partition.value);\n rto.value = stats.rto;\n mao.value = stats.mao;\n personnel.value = stats.personnel;\n\n loading.value = false;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n },\n {\n immediate: true,\n },\n );\n\n function remove() {\n emit('remove', props.item);\n }\n\n return {\n loading,\n partition,\n rtoValue,\n maoValue,\n personnelValue,\n remove,\n icons: {\n mdiHumanMaleFemale,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedPartitionLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedPartitionLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AffectedPartitionLine.vue?vue&type=template&id=77159586&scoped=true&\"\nimport script from \"./AffectedPartitionLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./AffectedPartitionLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"77159586\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VChip,VIcon,VProgressCircular,VSpacer})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { IDataSource } from '@/core/datasource';\nimport { IncidentDto } from '@/dtos/bcm/incident';\nimport i18n from '@/i18n';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { mdiPlaylistPlus } from '@mdi/js';\nimport TreeItemSelector from '@/components/all/TreeItemSelector.vue';\nimport AffectedPartitionLine from './AffectedPartitionLine.vue';\nimport { PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { PartitionDto } from '@/dtos/bcm';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'AffectedPartitions',\n\n components: {\n TreeItemSelector,\n AffectedPartitionLine,\n },\n\n props: {\n partitions: {\n type: Object as () => IDataSource,\n required: true,\n },\n\n incident: {\n type: Object as () => IncidentDto,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props) {\n const partitionSelector = ref(false);\n\n const itemSelectorHeaders: Array> = [{\n id: 'name',\n text: '',\n value: 'translations',\n translatable: true,\n template: async (value: unknown) => {\n return LanguageTemplate(value as PartitionDto, 'name');\n },\n }];\n\n function addPartition(partition: PartitionDto) {\n if (partition != null) {\n props.incident.partitions.push(partition.id);\n partitionSelector.value = false;\n }\n }\n\n async function removePartition(partitionId: number) {\n const partition = await props.partitions.getById(partitionId);\n if (partition == null) {\n return;\n }\n\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('incident.management.removePartition', { partition: LanguageTemplate(partition, 'name').text }).toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n close: () => true,\n callback: async () => {\n const current = props.incident.partitions || [];\n for (let i = 0; i < current.length; ++i) {\n if (current[i] === partition.id) {\n current.splice(i, 1);\n return;\n }\n }\n },\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n }\n\n return {\n partitionSelector,\n itemSelectorHeaders,\n addPartition,\n removePartition,\n icons: {\n mdiPlaylistPlus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedPartitions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedPartitions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AffectedPartitions.vue?vue&type=template&id=d62996a6&scoped=true&\"\nimport script from \"./AffectedPartitions.vue?vue&type=script&lang=ts&\"\nexport * from \"./AffectedPartitions.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AffectedPartitions.vue?vue&type=style&index=0&id=d62996a6&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d62996a6\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VLabel } from 'vuetify/lib/components/VLabel';\ninstallComponents(component, {VBtn,VIcon,VLabel})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('tree-item-selector',{attrs:{\"visible\":_vm.typeSelector,\"datasource\":_vm.types,\"exclude\":_vm.excludedTypes,\"translatable\":\"\"},on:{\"select\":_vm.addType,\"cancel\":function($event){_vm.typeSelector = false}}}),_c('v-label',[_vm._v(\" Incident Type \")]),(!_vm.readonly)?_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){_vm.typeSelector = true}}},[_c('v-icon',[_vm._v(_vm._s(_vm.icons.mdiPlaylistPlus))])],1):_vm._e(),_c('div',{staticClass:\"scroll\"},[_vm._l((_vm.incident.types),function(type){return [_c('div',{key:type.uuid},[_c('affected-type-line',{attrs:{\"types\":_vm.types,\"item\":type,\"readonly\":_vm.readonly},on:{\"remove\":_vm.removeType}})],1)]})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.type)?_c('v-row',{staticClass:\"mr-2\",attrs:{\"dense\":\"\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"my-1\",attrs:{\"disabled\":_vm.readonly,\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.remove}},[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.mdiMinus)+\" \")])],1)],1),_c('v-col',{staticClass:\"grow\"},[_c('pd-translatable-reference',{attrs:{\"types\":_vm.types,\"item\":_vm.type}})],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-text-field',{staticClass:\"centered-input\",staticStyle:{\"width\":\"200px\"},attrs:{\"label\":\"Financial Impact\",\"dense\":\"\",\"readonly\":_vm.readonly,\"prepend-icon\":_vm.icons.mdiCashRemove,\"hide-details\":\"auto\",\"type\":\"number\"},model:{value:(_vm.item.financialImpact),callback:function ($$v) {_vm.$set(_vm.item, \"financialImpact\", $$v)},expression:\"item.financialImpact\"}})],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport PdTranslatableReference from '@/components/core/PdTranslatableReference.vue';\nimport { IDataSource } from '@/core/datasource';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { mdiMinus, mdiCashRemove } from '@mdi/js';\nimport { IncidentTypeDto, TypeDto } from '@/dtos/bcm/incident';\n\nexport default defineComponent({\n name: 'AffectedTypeLine',\n\n components: {\n PdTranslatableReference,\n },\n\n props: {\n types: {\n type: Object as () => IDataSource,\n required: true,\n },\n\n item: {\n type: Object as () => IncidentTypeDto,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const type = ref(null);\n const loading = ref(false);\n\n watch(\n () => props.item,\n async (item) => {\n loading.value = true;\n try {\n type.value = await props.types.getById(item.typeId);\n\n if (type.value == null) {\n throw new Error(`AffectedTypeLine: TypeId ${item} not found!`);\n }\n\n loading.value = false;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n },\n {\n immediate: true,\n },\n );\n\n function remove() {\n emit('remove', props.item);\n }\n\n return {\n loading,\n type,\n remove,\n icons: {\n mdiMinus,\n mdiCashRemove,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedTypeLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedTypeLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AffectedTypeLine.vue?vue&type=template&id=cf50d22a&scoped=true&\"\nimport script from \"./AffectedTypeLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./AffectedTypeLine.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AffectedTypeLine.vue?vue&type=style&index=0&id=cf50d22a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cf50d22a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VIcon,VRow,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { IDataSource } from '@/core/datasource';\nimport { IncidentDto, IncidentTypeDto, TypeDto } from '@/dtos/bcm/incident';\nimport i18n from '@/i18n';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { computed, defineComponent, ref } from '@vue/composition-api';\nimport { mdiPlaylistPlus } from '@mdi/js';\nimport TreeItemSelector from '@/components/all/TreeItemSelector.vue';\nimport AffectedTypeLine from './AffectedTypeLine.vue';\nimport { v4 } from 'uuid';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'AffectedTypes',\n\n components: {\n TreeItemSelector,\n AffectedTypeLine,\n },\n\n props: {\n types: {\n type: Object as () => IDataSource,\n required: true,\n },\n\n incident: {\n type: Object as () => IncidentDto,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props) {\n const typeSelector = ref(false);\n\n const excludedTypes = computed(() => {\n return props.incident.types.map(i => i.typeId);\n });\n\n function addType(type: TypeDto) {\n if (type != null) {\n props.incident.types.push({ id: 0, uuid: v4(), typeId: type.id });\n typeSelector.value = false;\n }\n }\n\n async function removeType(incidentType: IncidentTypeDto) {\n const type = await props.types.getById(incidentType.typeId);\n if (type == null) {\n return;\n }\n\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('incident.management.removeType', { type: LanguageTemplate(type, 'name').text }).toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n close: () => true,\n callback: async () => {\n const current = props.incident.types || [];\n for (let i = 0; i < current.length; ++i) {\n if (current[i].typeId === type.id) {\n current.splice(i, 1);\n return;\n }\n }\n },\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n }\n\n return {\n typeSelector,\n excludedTypes,\n addType,\n removeType,\n icons: {\n mdiPlaylistPlus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedTypes.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedTypes.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AffectedTypes.vue?vue&type=template&id=05d76a34&scoped=true&\"\nimport script from \"./AffectedTypes.vue?vue&type=script&lang=ts&\"\nexport * from \"./AffectedTypes.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AffectedTypes.vue?vue&type=style&index=0&id=05d76a34&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"05d76a34\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VLabel } from 'vuetify/lib/components/VLabel';\ninstallComponents(component, {VBtn,VIcon,VLabel})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('item-selector',{attrs:{\"visible\":_vm.sectorSelector,\"datasource\":_vm.sectors,\"exclude\":_vm.excludedSectors},on:{\"select\":_vm.addSector,\"cancel\":function($event){_vm.sectorSelector = false}}}),_c('v-label',[_vm._v(\" Sectors \")]),(!_vm.readonly)?_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){_vm.sectorSelector = true}}},[_c('v-icon',[_vm._v(_vm._s(_vm.icons.mdiPlaylistPlus))])],1):_vm._e(),_c('div',{staticClass:\"scroll\"},[_vm._l((_vm.incident.sectors),function(sector){return [_c('div',{key:sector.uuid},[_c('affected-sector-line',{attrs:{\"sectors\":_vm.sectors,\"item\":sector,\"readonly\":_vm.readonly},on:{\"remove\":_vm.removeSector}})],1)]})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('user-selector',{attrs:{\"visible\":_vm.userSelector,\"datasource\":_vm.users,\"exclude\":_vm.excludedUsers},on:{\"select\":_vm.addSelectedUser,\"cancel\":function($event){_vm.userSelector = false}}}),(_vm.sector)?[_c('v-row',{staticClass:\"mr-2 text-subtitle-1\",attrs:{\"dense\":\"\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"my-1\",attrs:{\"disabled\":_vm.readonly,\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.remove}},[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.mdiMinus)+\" \")])],1)],1),_c('v-col',{staticClass:\"grow\"},[_c('pd-translatable-reference',{attrs:{\"sectors\":_vm.sectors,\"item\":_vm.sector}}),(!_vm.readonly)?_c('v-btn',{staticClass:\"ml-2\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){_vm.userSelector = true}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiAccountPlus)+\" \")])],1):_vm._e()],1)],1),_vm._l((_vm.item.owners),function(owner){return _c('v-row',{key:owner.user.username,staticClass:\"mr-2 ml-12 text-subtitle-2\",attrs:{\"dense\":\"\",\"align\":\"center\"}},[_c('v-col',[(!_vm.readonly)?_c('v-btn',{staticClass:\"ml-2\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.removeSelectedUser(owner.user)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiAccountMinus)+\" \")])],1):_vm._e(),_vm._v(\" \"+_vm._s(owner.user.info)+\" \")],1)],1)})]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport PdTranslatableReference from '@/components/core/PdTranslatableReference.vue';\nimport { IDataSource } from '@/core/datasource';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { mdiMinus, mdiCashRemove, mdiAccountPlus, mdiAccountMinus } from '@mdi/js';\nimport { IncidentSectorDto, SectorDto } from '@/dtos/bcm/incident';\nimport UserSelector from '@/components/all/UserSelector.vue';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport i18n from '@/i18n';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'AffectedSectorLine',\n\n components: {\n PdTranslatableReference,\n UserSelector,\n },\n\n props: {\n sectors: {\n type: Object as () => IDataSource,\n required: true,\n },\n\n item: {\n type: Object as () => IncidentSectorDto,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const userSelector = ref(false);\n const users = DatasourcesService.Users;\n\n const sector = ref(null);\n const loading = ref(false);\n\n const excludedUsers = computed(() => {\n return [];\n // return props.item.owners.map(i => i.user);\n });\n\n watch(\n () => props.item,\n async (item) => {\n loading.value = true;\n try {\n sector.value = await props.sectors.getById(item.sectorId);\n\n if (sector.value == null) {\n throw new Error(`AffectedSectorLine: SectorId ${item} not found!`);\n }\n\n loading.value = false;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n },\n {\n immediate: true,\n },\n );\n\n function remove() {\n emit('remove', props.item);\n }\n\n function addSelectedUser(user: SimpleUserDto) {\n if (user != null) {\n props.item.owners.push({ id: 0, user: user });\n userSelector.value = false;\n }\n }\n\n function removeSelectedUser(user: SimpleUserDto) {\n if (sector.value != null) {\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('incident.management.removeSectorUser', { sector: LanguageTemplate(sector.value, 'name').text, user: user.info }).toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n close: () => true,\n callback: async () => {\n console.log(props.item.owners);\n for (let i = 0; i < props.item.owners.length; ++i) {\n if (props.item.owners[i].user?.username === user.username) {\n props.item.owners.splice(i, 1);\n break;\n }\n }\n },\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n }\n }\n\n return {\n loading,\n sector,\n remove,\n userSelector,\n users,\n excludedUsers,\n addSelectedUser,\n removeSelectedUser,\n icons: {\n mdiMinus,\n mdiCashRemove,\n mdiAccountPlus,\n mdiAccountMinus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedSectorLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedSectorLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AffectedSectorLine.vue?vue&type=template&id=4da2eca5&scoped=true&\"\nimport script from \"./AffectedSectorLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./AffectedSectorLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4da2eca5\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VIcon,VRow})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { IDataSource } from '@/core/datasource';\nimport { IncidentDto, IncidentSectorDto, SectorDto } from '@/dtos/bcm/incident';\nimport i18n from '@/i18n';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { computed, defineComponent, ref } from '@vue/composition-api';\nimport { mdiPlaylistPlus } from '@mdi/js';\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport AffectedSectorLine from './AffectedSectorLine.vue';\nimport { v4 } from 'uuid';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'AffectedSectors',\n\n components: {\n ItemSelector,\n AffectedSectorLine,\n },\n\n props: {\n sectors: {\n type: Object as () => IDataSource,\n required: true,\n },\n\n incident: {\n type: Object as () => IncidentDto,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props) {\n const sectorSelector = ref(false);\n\n const excludedSectors = computed(() => {\n return (props.incident as IncidentDto).sectors.map(i => i.sectorId);\n });\n\n function addSector(sector: SectorDto) {\n if (sector != null) {\n (props.incident as IncidentDto).sectors.push({ id: 0, uuid: v4(), sectorId: sector.id, owners: [], tasks: [] });\n sectorSelector.value = false;\n }\n }\n\n async function removeSector(incidentSector: IncidentSectorDto) {\n const sector = await (props.sectors as IDataSource).getById(incidentSector.sectorId);\n if (sector == null) {\n return;\n }\n\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('incident.management.removeSector', { sector: LanguageTemplate(sector, 'name').text }).toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n close: () => true,\n callback: async () => {\n const current = (props.incident as IncidentDto).sectors || [];\n for (let i = 0; i < current.length; ++i) {\n if (current[i].sectorId === sector.id) {\n current.splice(i, 1);\n return;\n }\n }\n },\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n }\n\n return {\n sectorSelector,\n excludedSectors,\n addSector,\n removeSector,\n icons: {\n mdiPlaylistPlus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedSectors.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedSectors.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AffectedSectors.vue?vue&type=template&id=8aa81b22&scoped=true&\"\nimport script from \"./AffectedSectors.vue?vue&type=script&lang=ts&\"\nexport * from \"./AffectedSectors.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AffectedSectors.vue?vue&type=style&index=0&id=8aa81b22&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8aa81b22\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VLabel } from 'vuetify/lib/components/VLabel';\ninstallComponents(component, {VBtn,VIcon,VLabel})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading)?[(_vm.loading)?_c('v-progress-circular',{staticClass:\"mr-4\",attrs:{\"indeterminate\":\"\",\"size\":\"20\",\"color\":\"blue\"}}):_vm._e()]:[_c('v-label',[_vm._v(\" Tasks \")]),_c('div',{staticClass:\"scroll\"},[_vm._l((_vm.sectors),function(sector){return [_c('div',{key:sector.uuid},[_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiMinus)+\" \")]),_c('pd-translatable-reference',{attrs:{\"datasource\":_vm.sectorsDatasource,\"item\":sector.sectorId}}),(_vm.incident.writeEnabled)?_c('v-btn',{staticClass:\"ml-2\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addSectorTask(sector)}}},[_c('v-icon',[_vm._v(_vm._s(_vm.icons.mdiPlaylistPlus))])],1):_vm._e(),_vm._l((sector.tasks),function(task){return [_c('incident-task-line',{key:task.uuid,attrs:{\"item\":task,\"incident\":_vm.incident,\"sector-id\":sector.id},on:{\"update\":_vm.updateTask,\"cancel\":_vm.cancelTask,\"delete\":_vm.deleteTask}})]})],2)]})],2)]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{staticClass:\"mr-2\",attrs:{\"dense\":\"\",\"align\":\"center\"}},[_c('user-selector',{attrs:{\"visible\":_vm.showUserSelector,\"datasource\":_vm.users,\"exclude\":[_vm.user]},on:{\"select\":_vm.changeAssignedUser,\"cancel\":function($event){_vm.showUserSelector = false}}}),_c('pd-popup',{attrs:{\"index\":5,\"visible\":_vm.showTaskEditor,\"width\":800}},[_c('v-card',{attrs:{\"light\":\"\"}},[_c('v-card-text',{staticClass:\"scroll\",staticStyle:{\"max-height\":\"700px\",\"width\":\"800px\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('incident.management.task.description'),\"disabled\":!_vm.incident.writeEnabled},model:{value:(_vm.task.description),callback:function ($$v) {_vm.$set(_vm.task, \"description\", $$v)},expression:\"task.description\"}}),_c('v-text-field',{key:_vm.user.id,attrs:{\"value\":_vm.user.info,\"label\":_vm.$t('incident.management.task.user'),\"readonly\":\"\",\"disabled\":!_vm.incident.writeEnabled},on:{\"click\":function($event){_vm.showUserSelector = true}}}),_c('v-select',{attrs:{\"label\":_vm.$t('incident.management.task.status'),\"items\":_vm.resolutionStatuses,\"item-text\":\"text\",\"item-value\":\"id\"},model:{value:(_vm.task.statusId),callback:function ($$v) {_vm.$set(_vm.task, \"statusId\", $$v)},expression:\"task.statusId\"}}),_c('v-textarea',{attrs:{\"disabled\":!_vm.item.admin,\"label\":_vm.$t('incident.management.task.comments'),\"rows\":\"4\"},model:{value:(_vm.task.comments),callback:function ($$v) {_vm.$set(_vm.task, \"comments\", $$v)},expression:\"task.comments\"}}),_c('v-textarea',{attrs:{\"label\":_vm.$t('incident.management.task.userComments'),\"disabled\":!_vm.item.currentUser,\"rows\":\"4\"},model:{value:(_vm.task.userComments),callback:function ($$v) {_vm.$set(_vm.task, \"userComments\", $$v)},expression:\"task.userComments\"}})],1),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancelEditing}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveTask}},[_vm._v(\" \"+_vm._s(_vm.$t('ok'))+\" \")])],1)],1)],1),(_vm.task.writeEnabled)?[_c('v-col',{staticClass:\"ml-4 shrink\"},[_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":_vm.editTask}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPencil)+\" \")])],1)],1),_c('v-col',{staticClass:\"shrink\"},[(_vm.incident.writeEnabled)?_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":_vm.removeTask}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiTrashCan)+\" \")])],1):_vm._e()],1)]:_vm._e(),_c('v-col',{class:{'ml-12': !_vm.task.writeEnabled}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('span',{staticClass:\"text-body-1 font-weight-bold\"},[_vm._v(_vm._s(_vm.item.description))])]),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"text-body-2\",staticStyle:{\"color\":\"rgba(0, 0, 0, 0.6)\"}},[_c('span',{staticStyle:{\"width\":\"250px\"}},[_vm._v(\" Status: \"),(_vm.item.statusId != null)?_c('pd-translatable-reference',{attrs:{\"datasource\":_vm.statuses,\"item\":_vm.item.statusId}}):_vm._e()],1),_c('span',[_vm._v(\" Assigned To: \"+_vm._s(_vm.user.info)+\" \")])])],1),(_vm.item.comments)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"text-body-2\",staticStyle:{\"color\":\"rgba(0, 0, 0, 0.6)\"}},[_vm._v(\" Comments: \"+_vm._s(_vm.item.comments)+\" \")])],1):_vm._e(),(_vm.item.userComments)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"text-body-2\",staticStyle:{\"color\":\"rgba(0, 0, 0, 0.6)\"}},[_vm._v(\" User Comments: \"+_vm._s(_vm.item.userComments)+\" \")])],1):_vm._e()],1)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport PdTranslatableReference from '@/components/core/PdTranslatableReference.vue';\nimport { mdiPencil, mdiTrashCan } from '@mdi/js';\nimport { IncidentDto, IncidentSectorTaskDto } from '@/dtos/bcm/incident';\nimport PdPopup from '@/components/core/PdPopup.vue';\nimport UserSelector from '@/components/all/UserSelector.vue';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { v4 } from 'uuid';\nimport IncidentService from '@/services/IncidentService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport i18n from '@/i18n';\n\ninterface SelectItem {\n id: number\n text: string\n}\n\nexport default defineComponent({\n name: 'IncidentTaskLine',\n\n components: {\n PdTranslatableReference,\n PdPopup,\n UserSelector,\n },\n\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n\n incident: {\n type: Object as PropType,\n required: true,\n },\n\n sectorId: {\n type: Number,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const task = ref({ id: 0, writeEnabled: true, currentUser: false, admin: true });\n const showTaskEditor = ref(false);\n const showUserSelector = ref(false);\n\n watch(\n () => props.item,\n (t) => {\n if (task.value == null) {\n task.value = { id: 0, writeEnabled: true, currentUser: false, admin: true };\n }\n\n task.value.id = t.id;\n task.value.user = t.user;\n task.value.description = t.description;\n task.value.statusId = t.statusId;\n task.value.comments = t.comments;\n task.value.userComments = t.userComments;\n task.value.writeEnabled = t.writeEnabled;\n task.value.uuid = v4();\n },\n {\n immediate: true,\n },\n );\n\n const statuses = DatasourcesService.Incidents.ResolutionStatuses;\n const resolutionStatuses = ref>([]);\n\n async function init() {\n const statusesItems = await statuses.data();\n\n for (let i = 0; i < statusesItems.length; ++i) {\n resolutionStatuses.value.push({ id: statusesItems[i].id, text: LanguageTemplate(statusesItems[i], 'name').text });\n }\n }\n init();\n\n const users = DatasourcesService.Users;\n\n if (task.value.id === 0) {\n showTaskEditor.value = true;\n }\n\n function editTask() {\n if (task.value == null) {\n task.value = { id: 0, writeEnabled: true, currentUser: false, admin: true };\n }\n\n task.value.id = props.item.id;\n task.value.user = props.item.user;\n task.value.description = props.item.description;\n task.value.statusId = props.item.statusId;\n task.value.comments = props.item.comments;\n task.value.userComments = props.item.userComments;\n task.value.writeEnabled = props.item.writeEnabled;\n task.value.uuid = v4();\n\n showTaskEditor.value = true;\n }\n\n const user = ref(task.value.user || { id: 0, info: '', username: '' });\n\n function changeAssignedUser(u: SimpleUserDto) {\n task.value.user = u;\n user.value = u;\n\n showUserSelector.value = false;\n }\n\n async function saveTask() {\n if (task.value == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy('Saving Task...');\n try {\n let resp;\n if (task.value.id === 0) {\n resp = await IncidentService.CreateIncidentTasks(props.incident, props.sectorId, task.value);\n } else {\n resp = await IncidentService.UpdateIncidentTask(props.incident, props.sectorId, task.value);\n }\n\n emit('update', props.sectorId, props.item, resp);\n\n showTaskEditor.value = false;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function cancelEditing() {\n showTaskEditor.value = false;\n if (task.value.id === 0) {\n emit('cancel', props.sectorId);\n }\n }\n\n async function removeTask() {\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('incident.management.removeSectorTask', { description: task.value.description }).toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n close: () => true,\n callback: async () => {\n const busy = BusyIndicatorService.SetBusy('Removing Task...');\n try {\n await IncidentService.DeleteIncidentTask(props.incident, props.sectorId, task.value);\n emit('delete', props.sectorId, props.item);\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n }\n\n return {\n task,\n removeTask,\n editTask,\n cancelEditing,\n showUserSelector,\n showTaskEditor,\n users,\n user,\n changeAssignedUser,\n resolutionStatuses,\n statuses,\n saveTask,\n icons: {\n mdiPencil,\n mdiTrashCan,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentTaskLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentTaskLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IncidentTaskLine.vue?vue&type=template&id=1f15e3ea&scoped=true&\"\nimport script from \"./IncidentTaskLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./IncidentTaskLine.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./IncidentTaskLine.vue?vue&type=style&index=0&id=1f15e3ea&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f15e3ea\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VIcon,VRow,VSelect,VTextField,VTextarea})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { IncidentDto, IncidentSectorDto, IncidentSectorTaskDto } from '@/dtos/bcm/incident';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { mdiPlaylistPlus, mdiMinus } from '@mdi/js';\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport IncidentTaskLine from './IncidentTaskLine.vue';\nimport PdTranslatableReference from '@/components/core/PdTranslatableReference.vue';\nimport { v4 } from 'uuid';\nimport IncidentService from '@/services/IncidentService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport DatasourcesService from '@/services/DatasourcesService';\n\nexport default defineComponent({\n name: 'IncidentTasks',\n\n components: {\n ItemSelector,\n IncidentTaskLine,\n PdTranslatableReference,\n },\n\n props: {\n incident: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const loading = ref(true);\n const sectorsDatasource = DatasourcesService.Incidents.Sectors;\n const sectors = ref>([]);\n\n watch(\n () => props.incident,\n async () => {\n if (props.incident.id === 0) {\n sectors.value = [];\n loading.value = false;\n }\n try {\n loading.value = true;\n const data = await IncidentService.GetIncidentTasks(props.incident);\n\n for (let i = 0; i < data.length; i++) {\n for (let j = 0; j < data[i].tasks.length; ++j) {\n data[i].tasks[j].uuid = v4();\n }\n }\n\n sectors.value = data;\n loading.value = false;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n },\n {\n immediate: true,\n },\n );\n\n function addSectorTask(incidentSector: IncidentSectorDto) {\n if (incidentSector.tasks == null) {\n incidentSector.tasks = [];\n }\n\n incidentSector.tasks.push({\n id: 0,\n writeEnabled: true,\n admin: true,\n currentUser: false,\n uuid: v4(),\n });\n }\n\n function updateTask(sectorId: number, oldValue: IncidentSectorTaskDto, newValue: IncidentSectorTaskDto) {\n // update current tasks\n for (let i = 0; i < sectors.value.length; ++i) {\n if (sectors.value[i].id === sectorId) {\n const sector = sectors.value[i];\n for (let j = 0; j < sector.tasks.length; ++j) {\n if (sector.tasks[j].uuid === oldValue.uuid) {\n sector.tasks[j].id = newValue.id;\n sector.tasks[j].description = newValue.description;\n sector.tasks[j].user = newValue.user;\n sector.tasks[j].statusId = newValue.statusId;\n sector.tasks[j].comments = newValue.comments;\n sector.tasks[j].userComments = newValue.userComments;\n sector.tasks[j].writeEnabled = newValue.writeEnabled;\n sector.tasks[j].admin = newValue.admin;\n sector.tasks[j].currentUser = newValue.currentUser;\n sector.tasks[j].uuid = v4();\n break;\n }\n }\n break;\n }\n }\n\n // update incident tasks\n for (let i = 0; i < props.incident.sectors.length; ++i) {\n if (props.incident.sectors[i].id === sectorId) {\n const sector = props.incident.sectors[i];\n let found = false;\n for (let j = 0; j < sector.tasks.length; ++j) {\n if (sector.tasks[j].id === oldValue.id) {\n sector.tasks[j].id = newValue.id;\n sector.tasks[j].description = newValue.description;\n sector.tasks[j].user = newValue.user;\n sector.tasks[j].statusId = newValue.statusId;\n sector.tasks[j].comments = newValue.comments;\n sector.tasks[j].userComments = newValue.userComments;\n sector.tasks[j].writeEnabled = newValue.writeEnabled;\n sector.tasks[j].admin = newValue.admin;\n sector.tasks[j].currentUser = newValue.currentUser;\n sector.tasks[j].uuid = v4();\n found = true;\n break;\n }\n }\n\n if (!found) {\n sector.tasks.push({\n id: newValue.id,\n description: newValue.description,\n user: newValue.user,\n statusId: newValue.statusId,\n comments: newValue.comments,\n userComments: newValue.userComments,\n writeEnabled: newValue.writeEnabled,\n admin: newValue.admin,\n currentUser: newValue.currentUser,\n uuid: v4(),\n });\n }\n break;\n }\n }\n }\n\n function cancelTask(sectorId: number) {\n // remove from current tasks\n for (let i = 0; i < sectors.value.length; ++i) {\n if (sectors.value[i].id === sectorId) {\n const sector = sectors.value[i];\n for (let j = 0; j < sector.tasks.length; ++j) {\n if (sector.tasks[j].id === 0) {\n sector.tasks.splice(j, 1);\n break;\n }\n }\n break;\n }\n }\n }\n\n function deleteTask(sectorId: number, oldValue: IncidentSectorTaskDto) {\n // update current tasks\n for (let i = 0; i < sectors.value.length; ++i) {\n if (sectors.value[i].id === sectorId) {\n const sector = sectors.value[i];\n for (let j = 0; j < sector.tasks.length; ++j) {\n if (sector.tasks[j].uuid === oldValue.uuid) {\n sector.tasks.splice(j, 1);\n break;\n }\n }\n break;\n }\n }\n\n // update incident tasks\n for (let i = 0; i < props.incident.sectors.length; ++i) {\n if (props.incident.sectors[i].id === sectorId) {\n const sector = props.incident.sectors[i];\n for (let j = 0; j < sector.tasks.length; ++j) {\n if (sector.tasks[j].id === oldValue.id) {\n sector.tasks.splice(j, 1);\n break;\n }\n }\n break;\n }\n }\n }\n\n return {\n loading,\n sectorsDatasource,\n sectors,\n addSectorTask,\n updateTask,\n deleteTask,\n cancelTask,\n icons: {\n mdiPlaylistPlus,\n mdiMinus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentTasks.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentTasks.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IncidentTasks.vue?vue&type=template&id=5bfbd098&scoped=true&\"\nimport script from \"./IncidentTasks.vue?vue&type=script&lang=ts&\"\nexport * from \"./IncidentTasks.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./IncidentTasks.vue?vue&type=style&index=0&id=5bfbd098&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5bfbd098\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VLabel } from 'vuetify/lib/components/VLabel';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\ninstallComponents(component, {VBtn,VIcon,VLabel,VProgressCircular})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('input',{ref:\"fileInput\",staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\"}}),_c('v-label',[_vm._v(\" Files \")]),(!_vm.readonly)?_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.addFile}},[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistPlus)+\" \")])],1):_vm._e(),_c('div',{staticClass:\"scroll\"},[_c('v-row',{staticClass:\"ma-2\",attrs:{\"dense\":\"\"}},_vm._l((_vm.files),function(name){return _c('v-col',{key:name,staticClass:\"shrink text-center mx-4 \",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.downloadFile(name)}}},[_c('v-menu',{attrs:{\"absolute\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-img',_vm._g(_vm._b({staticStyle:{\"display\":\"block\",\"margin-left\":\"auto\",\"margin-right\":\"auto\"},attrs:{\"src\":_vm.image,\"width\":\"80px\",\"contain\":\"\"}},'v-img',attrs,false),on)),_c('div',{staticStyle:{\"max-width\":\"100px\",\"overflow-wrap\":\"break-word\"}},[_vm._v(\" \"+_vm._s(name)+\" \")])]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.downloadFile(name)}}},[_c('v-list-item-title',[_vm._v(\"Open\")])],1),(!_vm.readonly)?_c('v-list-item',{on:{\"click\":function($event){return _vm.removeFile(name)}}},[_c('v-list-item-title',[_vm._v(\"Delete\")])],1):_vm._e()],1)],1)],1)}),1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { IncidentDto } from '@/dtos/bcm/incident';\nimport i18n from '@/i18n';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { defineComponent, onMounted, ref } from '@vue/composition-api';\nimport { mdiPlaylistPlus, mdiMinus } from '@mdi/js';\nimport image from '@/assets/file.png';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport IncidentService from '@/services/IncidentService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport DownloadService from '@/services/DownloadService';\nimport { DocumentFileFormat } from '@/dtos/all';\n\nexport default defineComponent({\n name: 'IncidentTasks',\n\n components: {\n },\n\n props: {\n incident: {\n type: Object as () => IncidentDto,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { root }) {\n const files = ref>([]);\n\n IncidentService.GetIncidentFiles(props.incident).then((data) => {\n files.value = data;\n }).catch((error) => {\n ErrorHandlingService.Handle(error);\n });\n\n async function removeFile(file: string) {\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('incident.management.removeFile', { file }).toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n close: () => true,\n callback: async () => {\n console.log(props.incident.id);\n },\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n }\n\n async function downloadFile(file: string) {\n const busy = BusyIndicatorService.SetBusy('Downloading...');\n\n try {\n const data = await IncidentService.DonwloadIncidentFile(props.incident, file) as { name: string, data: string };\n\n DownloadService.DownloadFile({\n name: data.name,\n data: data.data,\n format: DocumentFileFormat.Unknown,\n });\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n\n BusyIndicatorService.RemoveBusy(busy);\n }\n\n const fileInput = ref(null);\n let fi: HTMLInputElement;\n\n function addFile() {\n fi.click();\n }\n\n onMounted(() => {\n fi = fileInput.value as unknown as HTMLInputElement;\n fi.addEventListener('change', async function () {\n if (fi.files != null) {\n const busy = BusyIndicatorService.SetBusy('Uploading...');\n const fd = new FormData();\n fd.append('file', fi.files[0]);\n root.$forceUpdate();\n try {\n const data = await IncidentService.UploadIncidentFile(props.incident, fd);\n files.value = data;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n\n fi.value = '';\n BusyIndicatorService.RemoveBusy(busy);\n }\n });\n });\n\n return {\n files,\n addFile,\n removeFile,\n image,\n downloadFile,\n fileInput,\n icons: {\n mdiPlaylistPlus,\n mdiMinus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentFiles.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentFiles.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IncidentFiles.vue?vue&type=template&id=61ae9e91&scoped=true&\"\nimport script from \"./IncidentFiles.vue?vue&type=script&lang=ts&\"\nexport * from \"./IncidentFiles.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./IncidentFiles.vue?vue&type=style&index=0&id=61ae9e91&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"61ae9e91\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VLabel } from 'vuetify/lib/components/VLabel';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VIcon,VImg,VLabel,VList,VListItem,VListItemTitle,VMenu,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showPanel)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-card',{staticClass:\"pa-1\",attrs:{\"outlined\":\"\",\"rounded\":\"\",\"elevation\":\"1\"}},[_c('v-label',[_vm._v(\" Notifications \")]),_c('div',{staticClass:\"scroll\"},[(_vm.loading)?[(_vm.loading)?_c('v-progress-circular',{staticClass:\"mr-4\",attrs:{\"indeterminate\":\"\",\"size\":\"20\",\"color\":\"blue\"}}):_vm._e()]:_vm._l((_vm.notifications),function(n){return _c('div',{key:n.id,staticClass:\"ma-2\"},[_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"small\":\"\",\"title\":'Created By: ' + (n.createdBy || '')},on:{\"click\":function($event){return _vm.$emit('show-notification', n)}}},[_c('span',{staticClass:\"text--secondary\"},[_vm._v(\" \"+_vm._s(_vm.createdAtTemplate(n.createdAt))+\" \")]),_c('span',{staticClass:\"ml-4\"},[_vm._v(\" \"+_vm._s(n.subject)+\" \")])])],1)})],2)],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { IncidentDto, IncidentNotificationDto } from '@/dtos/bcm/incident';\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport { mdiPlaylistPlus, mdiMinus } from '@mdi/js';\nimport IncidentService from '@/services/IncidentService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { DateTimeTemplate } from '@/core/helpers/templates/DateTemplate';\n\nexport default defineComponent({\n name: 'IncidentNotifications',\n\n components: {\n },\n\n props: {\n incident: {\n type: Object as () => IncidentDto,\n required: true,\n },\n\n refresh: {\n type: Boolean,\n required: false,\n },\n },\n\n setup(props) {\n const notifications = ref>([]);\n const loading = ref(true);\n\n watch(\n () => props.refresh,\n (value) => {\n console.log(value);\n if (value === true) {\n loading.value = true;\n IncidentService.GetIncidentNotifications(props.incident).then((data) => {\n notifications.value = data;\n }).catch((error) => {\n ErrorHandlingService.Handle(error);\n }).finally(() => {\n loading.value = false;\n });\n }\n },\n );\n\n IncidentService.GetIncidentNotifications(props.incident).then((data) => {\n notifications.value = data;\n }).catch((error) => {\n ErrorHandlingService.Handle(error);\n }).finally(() => {\n loading.value = false;\n });\n\n function createdAtTemplate(createdAt: string) {\n createdAt += 'Z';\n const date = DateTimeTemplate(createdAt).text;\n return date;\n }\n\n const showPanel = computed(() => {\n return notifications.value.length > 0;\n });\n\n return {\n notifications,\n loading,\n showPanel,\n createdAtTemplate,\n icons: {\n mdiPlaylistPlus,\n mdiMinus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentNotifications.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentNotifications.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IncidentNotifications.vue?vue&type=template&id=43e73039&scoped=true&\"\nimport script from \"./IncidentNotifications.vue?vue&type=script&lang=ts&\"\nexport * from \"./IncidentNotifications.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./IncidentNotifications.vue?vue&type=style&index=0&id=43e73039&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"43e73039\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VLabel } from 'vuetify/lib/components/VLabel';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCol,VLabel,VProgressCircular,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('tree-item-selector',{attrs:{\"visible\":_vm.showPartitionSelector,\"datasource\":_vm.partitions,\"select-multiple\":\"\",\"translatable\":\"\"},on:{\"select\":_vm.addNotificationPartitions,\"cancel\":function($event){_vm.showPartitionSelector = false}}}),_c('item-selector',{attrs:{\"visible\":_vm.showLocationSelector,\"datasource\":_vm.locations,\"headers\":_vm.locationSelectorHeaders,\"select-multiple\":\"\"},on:{\"select\":_vm.addNotificationLocations,\"cancel\":function($event){_vm.showLocationSelector = false}}}),(_vm.showEmailTemplatesDialog)?_c('pd-popup',{attrs:{\"visible\":true,\"index\":10}},[_c('v-card',{attrs:{\"light\":\"\",\"width\":\"900px\",\"max-height\":\"700px\"}},[_c('v-card-title',{staticClass:\"py-3\"},[_vm._v(\" Email Templates \")]),_c('v-divider',{staticClass:\"ma-0\"}),_c('v-card-text',{staticClass:\"text-left text-none\"},[_c('pd-data-table',{attrs:{\"height\":'400px',\"datasource\":_vm.emailTemplates,\"headers\":_vm.emailTemplatesHeaders,\"selected-item\":_vm.selectedEmailTemplate},on:{\"update:selectedItem\":function($event){_vm.selectedEmailTemplate=$event},\"update:selected-item\":function($event){_vm.selectedEmailTemplate=$event},\"dblclick\":_vm.addEmailTemplate}})],1),_c('v-divider',{staticClass:\"ma-0\"}),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.showEmailTemplatesDialog = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.addEmailTemplate}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.save'))+\" \")])],1)],1)],1):_vm._e(),(_vm.value)?_c('pd-popup',{attrs:{\"index\":5,\"visible\":\"\"}},[_c('v-card',{attrs:{\"light\":\"\"}},[_c('v-card-title',{staticClass:\"pb-0\"},[_vm._v(\" Email Notification \")]),_c('v-card-text',{staticClass:\"scroll\",staticStyle:{\"max-height\":\"700px\",\"width\":\"1200px\"}},[_c('v-row',{class:{'v-card--disabled' : _vm.readonly},attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-combobox',{staticClass:\"hide-drop\",attrs:{\"label\":_vm.$t('incident.management.notification.recipientsList'),\"hide-details\":\"auto\",\"small-chips\":\"\",\"deletable-chips\":\"\",\"multiple\":\"\",\"search-input\":_vm.emailText},on:{\"update:searchInput\":function($event){_vm.emailText=$event},\"update:search-input\":function($event){_vm.emailText=$event},\"blur\":function($event){return _vm.parseEmailText(true)}},model:{value:(_vm.notification.emails),callback:function ($$v) {_vm.$set(_vm.notification, \"emails\", $$v)},expression:\"notification.emails\"}})],1)],1),_c('v-row',{class:{'v-card--disabled' : _vm.readonly},attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"text-left\",on:{\"click\":function($event){_vm.showPartitionSelector = true}}},[_c('div',{staticStyle:{\"cursor\":\"pointer\",\"font-size\":\"medium\"}},[_vm._v(\" Partitions \"),_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlus)+\" \")])],1),_vm._l((_vm._selectedPartitions),function(p){return [_c('v-chip',{key:p.uuid,staticClass:\"ml-1 mb-1\",attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.partitionTemplate(p).text)+\" \")])]}),_c('v-divider',{staticClass:\"mt-2\",attrs:{\"color\":\"#AFAFAF\"}})],2)],1),_c('v-row',{class:{'v-card--disabled' : _vm.readonly},attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"text-left\",on:{\"click\":function($event){_vm.showLocationSelector = true}}},[_c('div',{staticStyle:{\"cursor\":\"pointer\",\"font-size\":\"medium\"}},[_vm._v(\" Locations \"),_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlus)+\" \")])],1),_vm._l((_vm._selectedLocations),function(l){return [_c('v-chip',{key:l.uuid,staticClass:\"ml-1 mb-1\",attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.locationTemplate(l).text)+\" \")])]}),_c('v-divider',{staticClass:\"mt-2\",attrs:{\"color\":\"#AFAFAF\"}})],2)],1),_c('v-row',{class:{'v-card--disabled' : _vm.readonly},attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-text-field',{key:_vm.notification.uuid,attrs:{\"label\":_vm.$t('incident.management.notification.subject'),\"hide-details\":\"auto\"},model:{value:(_vm.notification.subject),callback:function ($$v) {_vm.$set(_vm.notification, \"subject\", $$v)},expression:\"notification.subject\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('pd-rich-text-editor',{key:_vm.notification.uuid,attrs:{\"readonly\":_vm.readonly,\"height\":300,\"text-commands\":_vm.notificationTextCommands,\"custom-commands\":_vm.notificationCustomCommands},on:{\"custom-command\":_vm.emailNotificationCustomCommand},model:{value:(_vm.notification.body),callback:function ($$v) {_vm.$set(_vm.notification, \"body\", $$v)},expression:\"notification.body\"}})],1)],1)],1),_c('v-card-actions',{staticClass:\"justify-center\"},[(!_vm.readonly)?_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){return _vm.$emit('input', false)}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]):_vm._e(),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.sendNotification}},[_vm._v(\" \"+_vm._s(_vm.$t('ok'))+\" \")])],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport PdPopup from '@/components/core/PdPopup.vue';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { LanguageTemplate, LocationTemplate } from '@/core/helpers/templates';\nimport { LocationDto, PartitionDto } from '@/dtos/bcm';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { v4 } from 'uuid';\nimport IncidentService from '@/services/IncidentService';\nimport { IncidentDto, IncidentNotificationDto } from '@/dtos/bcm/incident';\nimport { mdiContentDuplicate, mdiPlus } from '@mdi/js';\nimport i18n from '@/i18n';\nimport { PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { EmailTemplateDto, textCommands } from '@/dtos/EmailTemplate';\nimport { ApplicationModule } from '@/store';\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport TreeItemSelector from '@/components/all/TreeItemSelector.vue';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PdRichTextEditor from '@/components/core/PdRichTextEditor.vue';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport cloneDeep from 'lodash.clonedeep';\nimport LocationsApi from '@/api/LocationsApi';\nimport PartitionsApi from '@/api/PartitionsApi';\nimport SystemsApi from '@/api/SystemsApi';\n\ninterface SelectItem {\n id: number\n text: string\n}\n\nexport default defineComponent({\n name: 'IncidentNotificationDialog',\n\n components: {\n PdPopup,\n PdDataTable,\n ItemSelector,\n TreeItemSelector,\n PdRichTextEditor,\n },\n\n props: {\n value: {\n type: Boolean,\n required: true,\n },\n\n incident: {\n type: Object as () => IncidentDto,\n required: true,\n },\n\n notification: {\n type: Object as () => IncidentNotificationDto,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const entityId = ApplicationModule.Entity?.id;\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const readonly = computed(() => {\n return props.notification.id !== 0;\n });\n\n const locations = DatasourcesService.Bcm.Locations;\n const partitions = DatasourcesService.Bcm.Partitions;\n\n const showLocationSelector = ref(false);\n const showPartitionSelector = ref(false);\n\n const emailTemplates = DatasourcesService.Incidents.EmailTemplates;\n\n const _selectedPartitions = ref>([]);\n const _selectedLocations = ref>([]);\n\n const showEmailTemplatesDialog = ref(false);\n const notificationCustomCommands = ref([\n {\n title: 'Import Template',\n command: 'template',\n icon: mdiContentDuplicate,\n },\n ]);\n const emailTemplatesHeaders: Array> = [\n {\n id: 'name',\n text: i18n.t('incident.emailTemplate.name').toString(),\n value: 'translations',\n editable: false,\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n template: (item) => {\n return LanguageTemplate(item as EmailTemplateDto, 'name');\n },\n },\n ];\n const selectedEmailTemplate = ref(null);\n\n const notificationTypes: Array = [\n { id: 1, text: i18n.t('notification.type.email').toString() },\n // { id: 2, text: i18n.t('notification.type.teams').toString() },\n ];\n\n const locationSelectorHeaders: Array> = [{\n id: 'name',\n text: '',\n value: 'translations',\n translatable: true,\n template: async (value: unknown) => {\n return LocationTemplate(value as LocationDto);\n },\n }];\n\n function addNotificationPartitions(partitions: Array) {\n if (props.notification != null) {\n props.notification.partitions = partitions.map(i => i.id);\n\n _selectedPartitions.value = partitions;\n\n showPartitionSelector.value = false;\n };\n }\n\n function partitionTemplate(partition: PartitionDto) {\n return LanguageTemplate(partition, 'name');\n }\n\n function addNotificationLocations(locations: Array) {\n if (props.notification != null) {\n props.notification.locations = locations.map(i => i.id);\n\n _selectedLocations.value = locations;\n\n showLocationSelector.value = false;\n };\n }\n\n function locationTemplate(location: LocationDto) {\n return LocationTemplate(location);\n }\n\n function emailNotificationCustomCommand(command: string) {\n if (command === 'template') {\n showEmailTemplatesDialog.value = true;\n }\n }\n\n async function addEmailTemplate() {\n const busy = BusyIndicatorService.SetBusy('Importing template...');\n\n try {\n const template = selectedEmailTemplate.value;\n if (template == null || props.notification == null) {\n return;\n }\n let subject = LanguageTemplate(template, 'subject').text;\n let body = LanguageTemplate(template, 'body').text;\n\n if (subject.match(/{[a-z-]+}/g) != null) {\n for (let i = 0; i < textCommands.length; ++i) {\n if (subject.match(textCommands[i].command)) {\n subject = subject.replaceAll(textCommands[i].command, await getReplacementContent(textCommands[i].command));\n }\n }\n }\n\n if (body.match(/{[a-z-]+}/g)) {\n for (let i = 0; i < textCommands.length; ++i) {\n if (body.match(textCommands[i].command)) {\n body = body.replaceAll(textCommands[i].command, await getReplacementContent(textCommands[i].command));\n }\n }\n }\n\n props.notification.subject = subject;\n props.notification.body = body;\n props.notification.uuid = v4();\n\n showEmailTemplatesDialog.value = false;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function sendNotification() {\n if (readonly.value === true) {\n emit('input', false);\n return;\n }\n\n if (props.incident != null && props.notification != null) {\n const busy = BusyIndicatorService.SetBusy('Sending Notification...');\n try {\n const response = await IncidentService.SendNotification(props.incident, props.notification);\n\n if (response.errors && Array.isArray(response.errors) && response.errors.length > 0) {\n let message = 'Notification was sent with warnings:\\n\\n';\n for (let i = 0; i < response.errors.length; ++i) {\n message += response.errors[i] + '\\n';\n }\n PopupMessageService.SetMessage({\n title: 'Warning',\n text: message,\n });\n } else {\n PopupMessageService.SetMessage({\n title: 'Success',\n text: 'Notification was sent successfully',\n });\n }\n\n emit('sent-notification');\n\n emit('input', false);\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n }\n\n const emailText = ref('');\n watch(\n emailText,\n () => {\n parseEmailText(false);\n },\n );\n\n function parseEmailText(final: boolean) {\n if (props.notification == null || props.notification.emails == null) {\n return;\n }\n\n if (!emailText.value) {\n return;\n }\n\n const emails = emailText.value.split(/[,;]/);\n if (final || emails.length > 1) {\n console.log(emails);\n for (let i = 0; i < emails.length - 1; ++i) {\n props.notification.emails.push(emails[i]);\n }\n\n if (!final) {\n emailText.value = emails[emails.length - 1];\n } else {\n props.notification.emails.push(emails[emails.length - 1]);\n }\n }\n }\n\n const notificationTextCommands = cloneDeep(textCommands);\n for (let i = 0; i < notificationTextCommands.length; ++i) {\n notificationTextCommands[i].action = async function () {\n return await getReplacementContent(this.command);\n };\n }\n\n const bodyChanges: Map = new Map();\n\n watch(\n () => props.notification.body,\n () => {\n let hasChanges = false;\n for (const [key, value] of bodyChanges) {\n hasChanges = true;\n\n const open = [...props.notification.body.substr(0, props.notification.body.indexOf(key)).matchAll(/<\\/?[a-zA-Z0-9]+>/g)];\n const tags: Array = [];\n\n for (let i = 0; i < open.length; ++i) {\n if (open[i][0][1] === '/') {\n tags.pop();\n } else {\n tags.push(open[i][0]);\n }\n }\n let newBody = '';\n for (let i = 0; i < tags.length; ++i) {\n newBody += '

    Sectors

    Owners

    ';\n\n for (let i = 0; i < props.incident.sectors.length; ++i) {\n table += '';\n const sector = await DatasourcesService.Incidents.Sectors.getById(props.incident.sectors[i].sectorId);\n const text = sector ? LanguageTemplate(sector, 'name').text : '';\n\n table += `${text}`;\n\n for (let j = 0; j < props.incident.sectors[i].owners.length; ++j) {\n if (j > 0) {\n table += '';\n }\n table += `${props.incident.sectors[i].owners[j].user?.info}`;\n }\n\n table += '';\n }\n\n table += '';\n bodyChanges.set('{incident-sectors-table}', table);\n return '{incident-sectors-table}';\n } else if (action === '{incident-sectors-list}') {\n let list = '
      ';\n\n for (let i = 0; i < props.incident.sectors.length; ++i) {\n const sector = await DatasourcesService.Incidents.Sectors.getById(props.incident.sectors[i].sectorId);\n const text = sector ? LanguageTemplate(sector, 'name').text : '';\n\n list += `
    • ${text}
      • `;\n\n for (let j = 0; j < props.incident.sectors[i].owners.length; ++j) {\n list += `
      • ${props.incident.sectors[i].owners[j].user?.info}
      • `;\n }\n\n list += '
      ';\n }\n\n list += '
    ';\n\n bodyChanges.set('{incident-sectors-list}', list);\n return '{incident-sectors-list}';\n } else if (action === '{incident-types-list}') {\n let list = '
      ';\n\n for (let i = 0; i < props.incident.types.length; ++i) {\n const type = await DatasourcesService.Incidents.Types.getById(props.incident.types[i].typeId);\n const text = type ? LanguageTemplate(type, 'name').text : '';\n\n list += `
    • ${text}`;\n\n if (props.incident.types[i].financialImpact != null) {\n list += ` (${props.incident.types[i].financialImpact || ''})`;\n }\n\n list += '
    • ';\n }\n\n list += '
    ';\n\n bodyChanges.set('{incident-types-list}', list);\n return '{incident-types-list}';\n } else if (action === '{incident-tasks-table}') {\n let table = '';\n\n for (let i = 0; i < props.incident.sectors.length; ++i) {\n table += '';\n const sector = await DatasourcesService.Incidents.Sectors.getById(props.incident.sectors[i].sectorId);\n const text = sector ? LanguageTemplate(sector, 'name').text : '';\n\n table += ``;\n\n for (let j = 0; j < props.incident.sectors[i].tasks.length; ++j) {\n if (j > 0) {\n table += '';\n }\n\n const status = await DatasourcesService.Incidents.ResolutionStatuses.getById(props.incident.sectors[i].tasks[j].statusId || 0);\n let trans = '';\n if (status != null) {\n trans = LanguageTemplate(status, 'name').text;\n }\n\n const task = props.incident.sectors[i].tasks[j];\n table += ``;\n }\n\n table += '';\n }\n\n table += '

    Sector

    Description

    Assigned ToStatusComments
    ${text}
    ${task.description || ''}${task.user?.info || ''}${trans}${task.comments || ''}
    ';\n bodyChanges.set('{incident-tasks-table}', table);\n return '{incident-tasks-table}';\n } else if (action === '{affected-locations-table}') {\n let table = '';\n\n for (let i = 0; i < props.incident.locations.length; ++i) {\n table += '';\n const location = await DatasourcesService.Bcm.Locations.getById(props.incident.locations[i]);\n if (location == null) {\n table += '';\n } else {\n const text = location ? LocationTemplate(location).text : '';\n const stats = await LocationsApi.GetLocationIncidentStats(location);\n const rto = stats.rto == null ? '-' : stats.rto.toString();\n const mao = stats.mao == null ? '-' : stats.mao.toString();\n const per = stats.personnel == null ? '-' : stats.personnel.toString();\n\n table += ``;\n }\n table += '';\n }\n\n table += '

    Location

    RTO

    MAOPersonnel
    ${text}${rto}${mao}${per}
    ';\n bodyChanges.set('{affected-locations-table}', table);\n return '{affected-locations-table}';\n } else if (action === '{affected-partitions-table}') {\n let table = '';\n\n for (let i = 0; i < props.incident.partitions.length; ++i) {\n table += '';\n const partition = await DatasourcesService.Bcm.Partitions.getById(props.incident.partitions[i]);\n if (partition == null) {\n table += '';\n } else {\n const text = partition ? LanguageTemplate(partition, 'name').text : '';\n const stats = await PartitionsApi.GetPartitionIncidentStats(partition);\n\n const rto = stats.rto == null ? '-' : stats.rto.toString();\n const mao = stats.mao == null ? '-' : stats.mao.toString();\n const per = stats.personnel == null ? '-' : stats.personnel.toString();\n\n table += ``;\n }\n table += '';\n }\n\n table += '

    Partition

    RTO

    MAOPersonnel
    ${text}${rto}${mao}${per}
    ';\n bodyChanges.set('{affected-partitions-table}', table);\n return '{affected-partitions-table}';\n } else if (action === '{affected-systems-table}') {\n let table = '';\n\n for (let i = 0; i < props.incident.applications.length; ++i) {\n table += '';\n const application = await DatasourcesService.Bcm.Applications.getById(props.incident.applications[i]);\n if (application == null) {\n table += '';\n } else {\n const text = application ? LanguageTemplate(application, 'name').text : '';\n const stats = await SystemsApi.GetApplicationIncidentStats(application);\n\n const rto = stats.rto == null ? '-' : stats.rto.toString();\n const rpo = stats.rpo == null ? '-' : stats.rpo.toString();\n\n table += ``;\n }\n table += '';\n }\n\n table += '

    System

    RTO

    MAO
    ${text}${rto}${rpo}
    ';\n bodyChanges.set('{affected-systems-table}', table);\n return '{affected-systems-table}';\n } else if (action === '{root-cause-analysis}') {\n return props.incident.analysis || '';\n }\n\n return `No replacement for '${action}'`;\n }\n\n async function init() {\n if (props.notification.partitions != null && props.notification.partitions.length > 0) {\n for (let i = 0; i < props.notification.partitions.length; ++i) {\n const par = await partitions.getById(props.notification.partitions[i]);\n if (par != null) {\n _selectedPartitions.value.push(par);\n }\n }\n }\n\n if (props.notification.locations != null && props.notification.locations.length > 0) {\n for (let i = 0; i < props.notification.locations.length; ++i) {\n const par = await locations.getById(props.notification.locations[i]);\n if (par != null) {\n _selectedLocations.value.push(par);\n }\n }\n }\n }\n\n init();\n return {\n readonly,\n locations,\n partitions,\n\n _selectedPartitions,\n partitionTemplate,\n _selectedLocations,\n locationTemplate,\n notificationTypes,\n showPartitionSelector,\n showLocationSelector,\n locationSelectorHeaders,\n addNotificationPartitions,\n addNotificationLocations,\n notificationTextCommands,\n notificationCustomCommands,\n emailNotificationCustomCommand,\n showEmailTemplatesDialog,\n addEmailTemplate,\n emailTemplates,\n emailTemplatesHeaders,\n selectedEmailTemplate,\n sendNotification,\n\n emailText,\n parseEmailText,\n\n getReplacementContent,\n\n icons: {\n mdiPlus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentNotificationDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentNotificationDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IncidentNotificationDialog.vue?vue&type=template&id=0333a7d3&scoped=true&\"\nimport script from \"./IncidentNotificationDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./IncidentNotificationDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0333a7d3\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VChip,VCol,VCombobox,VDivider,VIcon,VRow,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, nextTick, ref, watch } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport i18n from '@/i18n';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { IncidentDto } from '@/dtos/bcm/incident';\nimport IncidentService from '@/services/IncidentService';\nimport { v4 } from 'uuid';\nimport { ApplicationModule } from '@/store';\nimport PdDatePicker from '@/components/core/PdDatePicker.vue';\nimport { mdiMinus, mdiFloppy, mdiTrashCanOutline, mdiPencil, mdiMessageAlertOutline, mdiDoorClosedLock } from '@mdi/js';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport AffectedApplications from '@/components/bcm/incident/AffectedApplications.vue';\nimport AffectedLocations from '@/components/bcm/incident/AffectedLocations.vue';\nimport AffectedPartitions from '@/components/bcm/incident/AffectedPartitions.vue';\nimport AffectedTypes from '@/components/bcm/incident/AffectedTypes.vue';\nimport AffectedSectors from '@/components/bcm/incident/AffectedSectors.vue';\nimport IncidentTasks from '@/components/bcm/incident/IncidentTasks.vue';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport router from '@/router';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport PdPopup from '@/components/core/PdPopup.vue';\nimport IncidentFiles from '@/components/bcm/incident/IncidentFiles.vue';\nimport IncidentNotifications from '@/components/bcm/incident/IncidentNotifications.vue';\nimport IncidentNotificationDialog from '@/components/bcm/incident/IncidentNotificationDialog.vue';\nimport { NotificationDto, NotificationType } from '@/dtos';\nimport { IncidentResolutionDto } from '@/dtos/bcm/incident/IncidentResolutionDto';\nimport { AxiosError } from 'axios';\n\ninterface SelectItem {\n id: number\n text: string\n}\n\nexport default defineComponent({\n name: 'IncidentViewer',\n\n components: {\n PdFormBase,\n PdDatePicker,\n AffectedSectors,\n AffectedTypes,\n AffectedLocations,\n AffectedPartitions,\n AffectedApplications,\n IncidentTasks,\n PdPopup,\n IncidentFiles,\n IncidentNotificationDialog,\n IncidentNotifications,\n },\n\n props: {\n incidentId: {\n type: String,\n required: true,\n },\n },\n\n setup(props) {\n const loaded = ref(false);\n let incidentId = parseInt(props.incidentId);\n const inEditMode = ref(incidentId === 0);\n const incident = ref(null);\n\n const showResolveDialog = ref(false);\n const showNotificationDialog = ref(false);\n\n const resolutionStatuses = ref>([]);\n const resolveStatuses = ref>([]);\n const prioritizationScales = ref>([]);\n const resolutionEvaluations = ref>([]);\n\n const notification = ref(null);\n\n const completed = ref(false);\n\n const entityId = ApplicationModule.Entity?.id;\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const applications = DatasourcesService.Bcm.Applications;\n const locations = DatasourcesService.Bcm.Locations;\n const partitions = DatasourcesService.Bcm.Partitions;\n const operationalImpacts = DatasourcesService.Bcm.OperationalImpactScales;\n const rtoScales = DatasourcesService.Bcm.RtoScales;\n const rpoScales = DatasourcesService.Bcm.RpoScales;\n\n const sectors = DatasourcesService.Incidents.Sectors;\n const types = DatasourcesService.Incidents.Types;\n\n const statuses = DatasourcesService.Incidents.ResolutionStatuses;\n const prioritizations = DatasourcesService.Incidents.PrioritizationScales;\n const evaluations = DatasourcesService.Incidents.ResolutionEvaluations;\n\n const incidentResolution = ref({\n resolutionDate: (new Date()).toISOString(),\n });\n\n watch(\n () => props.incidentId,\n () => {\n incidentId = parseInt(props.incidentId);\n init();\n },\n );\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('incident.management.loadingIncident').toString());\n try {\n if (incidentId === 0) {\n incident.value = {\n id: 0,\n summary: '',\n owners: [],\n incidentDate: (new Date()).toISOString(),\n sectors: [],\n types: [],\n partitions: [],\n applications: [],\n locations: [],\n uuid: v4(),\n writeEnabled: true,\n };\n } else {\n incident.value = await IncidentService.GetIncident(parseInt(props.incidentId));\n }\n\n // const [someResult, anotherResult] = await Promise.all([someCall(), anotherCall()]);\n await Promise.all(new Array([\n applications.get(),\n locations.get(),\n partitions.get(),\n operationalImpacts.get(),\n rtoScales.get(),\n rpoScales.get(),\n sectors.get(),\n types.get(),\n prioritizations.get(),\n statuses.get(),\n evaluations.get(),\n ]));\n\n const statusesItems = await statuses.data();\n let showAllStatuses = false;\n\n const currentStatus = incident.value.resolutionStatusId;\n if (currentStatus != null) {\n const stat = await statuses.getById(currentStatus);\n if (stat != null) {\n showAllStatuses = stat.resolves;\n completed.value = showAllStatuses;\n }\n }\n\n for (let i = 0; i < statusesItems.length; ++i) {\n if (!showAllStatuses && statusesItems[i].resolves) {\n if (incidentResolution.value.resolutionStatusId == null) {\n incidentResolution.value.resolutionStatusId = statusesItems[i].id;\n }\n resolveStatuses.value.push({ id: statusesItems[i].id, text: LanguageTemplate(statusesItems[i], 'name').text });\n } else {\n resolutionStatuses.value.push({ id: statusesItems[i].id, text: LanguageTemplate(statusesItems[i], 'name').text });\n }\n }\n\n const evaluationsItems = await evaluations.data();\n\n for (let i = 0; i < evaluationsItems.length; ++i) {\n resolutionEvaluations.value.push({ id: evaluationsItems[i].id, text: LanguageTemplate(evaluationsItems[i], 'name').text });\n }\n\n const prioritizationItems = await prioritizations.data();\n\n for (let i = 0; i < prioritizationItems.length; ++i) {\n prioritizationScales.value.push({ id: prioritizationItems[i].id, text: LanguageTemplate(prioritizationItems[i], 'name').text });\n }\n\n loaded.value = true;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function saveChanges() {\n if (incident.value != null) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('incident.management.saving').toString());\n try {\n incident.value = await IncidentService.SaveIncident(incident.value);\n inEditMode.value = false;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n }\n\n async function discardChanges() {\n if (incidentId === 0) {\n router.back();\n } else {\n const busy = BusyIndicatorService.SetBusy(i18n.t('incident.management.reloadingIncident').toString());\n try {\n incident.value = await IncidentService.GetIncident(parseInt(props.incidentId));\n inEditMode.value = false;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n }\n\n async function resolveIncident() {\n if (incident.value) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('incident.management.resolving').toString());\n try {\n await IncidentService.ResolveIncident(incident.value, incidentResolution.value);\n inEditMode.value = false;\n\n router.push({ name: 'bcm.incidents' });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n }\n\n function resolveIncidentMessage() {\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('incident.management.removeSectorUser').toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n close: () => true,\n callback: async () => {\n if (incident.value != null) {\n incident.value.resolutionDate = (new Date()).toISOString();\n showResolveDialog.value = true;\n }\n },\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n }\n\n function cancelResolution() {\n showResolveDialog.value = false;\n discardChanges();\n }\n\n function newNotification() {\n if (incident.value != null) {\n notification.value = {\n id: 0,\n uuid: v4(),\n type: NotificationType.Email,\n subject: incident.value.summary,\n emails: [],\n teamsGroup: '',\n body: '',\n };\n\n showNotificationDialog.value = true;\n }\n }\n\n function viewNotification(not: NotificationDto) {\n notification.value = not;\n showNotificationDialog.value = true;\n }\n\n function closeIncident() {\n router.push({ name: 'bcm.incidents' });\n }\n\n const refreshNotificationsList = ref(false);\n\n function refreshNotifications() {\n refreshNotificationsList.value = true;\n nextTick(() => {\n refreshNotificationsList.value = false;\n });\n }\n\n init();\n return {\n incident,\n loaded,\n inEditMode,\n\n incidentResolution,\n\n applications,\n locations,\n partitions,\n\n sectors,\n types,\n\n resolutionStatuses,\n resolveStatuses,\n prioritizationScales,\n resolutionEvaluations,\n\n completed,\n\n saveChanges,\n discardChanges,\n\n resolveIncident,\n resolveIncidentMessage,\n showResolveDialog,\n cancelResolution,\n\n newNotification,\n notification,\n\n closeIncident,\n\n showNotificationDialog,\n viewNotification,\n refreshNotifications,\n refreshNotificationsList,\n\n icons: {\n mdiMinus,\n mdiFloppy,\n mdiTrashCanOutline,\n mdiPencil,\n mdiMessageAlertOutline,\n mdiDoorClosedLock,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentViewer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentViewer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IncidentViewer.vue?vue&type=template&id=5928e822&scoped=true&\"\nimport script from \"./IncidentViewer.vue?vue&type=script&lang=ts&\"\nexport * from \"./IncidentViewer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./IncidentViewer.vue?vue&type=style&index=0&id=5928e822&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5928e822\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VIcon,VRow,VSelect,VTextField,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":\"Prioritization Scales\"}},[_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":{ editable: true, hasDetails: false },\"sort\":\"value\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport i18n from '@/i18n';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { ApiDataSource } from '@/core/datasource';\nimport { PdColumnColor, PdColumnNumber, PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { ApplicationModule } from '@/store';\nimport { PrioritizationScaleDto } from '@/dtos/bcm/incident';\nimport { NumberComparison } from '@/core/helpers/sort';\n\nexport default defineComponent({\n name: 'PrioritizationScales',\n\n components: {\n PdFormBase,\n PdDataTable,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const datasource = new ApiDataSource({ api: `masterplans/${entityId}/bc/incident/PrioritizationScales` });\n\n const headers: Array> = [\n {\n id: 'value',\n text: i18n.t('incident.prioritization.value').toString(),\n value: 'value',\n align: 'center',\n component: PdColumnNumber,\n width: '100px',\n sort: NumberComparison,\n },\n {\n id: 'name',\n text: i18n.t('incident.prioritization.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n\n // defaultValue: { [ApplicationModule.Language]: { name: 'New System' } },\n template: (item) => {\n return LanguageTemplate(item as PrioritizationScaleDto, 'name');\n },\n },\n {\n id: 'color',\n text: i18n.t('incident.prioritization.color').toString(),\n value: 'color',\n component: PdColumnColor,\n width: '50px',\n template: (item) => {\n return { text: (item as PrioritizationScaleDto).color || '' };\n },\n },\n ];\n\n return {\n datasource,\n headers,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PrioritizationScales.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PrioritizationScales.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PrioritizationScales.vue?vue&type=template&id=798f6e8a&scoped=true&\"\nimport script from \"./PrioritizationScales.vue?vue&type=script&lang=ts&\"\nexport * from \"./PrioritizationScales.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"798f6e8a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":\"Resolution Evaluations\"}},[_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":{ editable: true, hasDetails: false },\"sort\":\"value\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport i18n from '@/i18n';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { ApiDataSource } from '@/core/datasource';\nimport { PdColumnColor, PdColumnNumber, PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { ApplicationModule } from '@/store';\nimport { ResolutionEvaluationDto } from '@/dtos/bcm/incident';\nimport { NumberComparison } from '@/core/helpers/sort';\n\nexport default defineComponent({\n name: 'ResolutionEvaluations',\n\n components: {\n PdFormBase,\n PdDataTable,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const datasource = new ApiDataSource({ api: `masterplans/${entityId}/bc/incident/ResolutionEvaluations` });\n\n const headers: Array> = [\n {\n id: 'value',\n text: i18n.t('incident.evaluation.value').toString(),\n value: 'value',\n align: 'center',\n component: PdColumnNumber,\n width: '100px',\n sort: NumberComparison,\n },\n {\n id: 'name',\n text: i18n.t('incident.evaluation.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n\n // defaultValue: { [ApplicationModule.Language]: { name: 'New System' } },\n template: (item) => {\n return LanguageTemplate(item as ResolutionEvaluationDto, 'name');\n },\n },\n {\n id: 'color',\n text: i18n.t('incident.evaluation.color').toString(),\n value: 'color',\n component: PdColumnColor,\n width: '50px',\n template: (item) => {\n return { text: (item as ResolutionEvaluationDto).color || '' };\n },\n },\n ];\n\n return {\n datasource,\n headers,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResolutionEvaluations.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResolutionEvaluations.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResolutionEvaluations.vue?vue&type=template&id=d4947c6c&scoped=true&\"\nimport script from \"./ResolutionEvaluations.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResolutionEvaluations.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d4947c6c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":\"Resolution Status\"}},[_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":{ editable: true, hasDetails: false },\"sort\":\"value\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport i18n from '@/i18n';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { ApiDataSource } from '@/core/datasource';\nimport { PdColumnColor, PdColumnNumber, PdColumnTranslation, PdColumnYesNo } from '@/components/core/PdDataTable/columns';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { ApplicationModule } from '@/store';\nimport { ResolutionStatusDto } from '@/dtos/bcm/incident';\nimport { NumberComparison } from '@/core/helpers/sort';\n\nexport default defineComponent({\n name: 'ResolutionStatuses',\n\n components: {\n PdFormBase,\n PdDataTable,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const datasource = new ApiDataSource({ api: `masterplans/${entityId}/bc/incident/ResolutionStatuses` });\n\n const headers: Array> = [\n {\n id: 'value',\n text: i18n.t('incident.resolutionStatus.value').toString(),\n value: 'value',\n align: 'center',\n component: PdColumnNumber,\n width: '100px',\n sort: NumberComparison,\n },\n {\n id: 'resolves',\n text: i18n.t('incident.resolutionStatus.resolves').toString(),\n value: 'resolves',\n align: 'center',\n component: PdColumnYesNo,\n width: '100px',\n defaultValue: false,\n },\n {\n id: 'name',\n text: i18n.t('incident.resolutionStatus.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n\n // defaultValue: { [ApplicationModule.Language]: { name: 'New System' } },\n template: (item) => {\n return LanguageTemplate(item as ResolutionStatusDto, 'name');\n },\n },\n {\n id: 'color',\n text: i18n.t('incident.resolutionStatus.color').toString(),\n value: 'color',\n component: PdColumnColor,\n width: '50px',\n template: (item) => {\n return { text: (item as ResolutionStatusDto).color || '' };\n },\n },\n ];\n\n return {\n datasource,\n headers,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResolutionStatuses.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResolutionStatuses.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResolutionStatuses.vue?vue&type=template&id=0cac4216&scoped=true&\"\nimport script from \"./ResolutionStatuses.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResolutionStatuses.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0cac4216\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":\"Incident Sectors\"}},[_c('pd-data-table',{attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.headers,\"requires\":_vm.requires,\"options\":{ editable: true, hasDetails: true },\"sort\":\"name_en-US\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"},scopedSlots:_vm._u([{key:\"details\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('pd-data-table',{attrs:{\"headers\":_vm.userHeaders,\"datasource\":_vm.details(item),\"options\":{ editable: {mode: 'popup', add: true, edit: false} },\"search\":\"\",\"sort\":\"username\",\"sort-direction\":\"asc\"},scopedSlots:_vm._u([{key:\"PopupEditorContent\",fn:function(ref){\nvar newManager = ref.item;\nreturn [_c('div',{staticStyle:{\"width\":\"500px\"}},[_c('user-selector-box',{attrs:{\"select\":\"user\"},model:{value:(newManager.user),callback:function ($$v) {_vm.$set(newManager, \"user\", $$v)},expression:\"newManager.user\"}})],1)]}}],null,true)},[_c('template',{slot:\"PopupEditorTitle\"},[_vm._v(\" Add New Manager \")])],2)]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport i18n from '@/i18n';\nimport { PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { SectorDto } from '@/dtos/bcm/incident/SectorDto';\nimport { ApplicationModule } from '@/store';\nimport { ApiDataSource } from '@/core/datasource';\nimport { SectorUserDto } from '@/dtos/bcm/incident/SectorUserDto';\nimport PdDataTablePopupEditor from '@/components/core/PdDataTable/PdDataTablePopupEditor.vue';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport UserSelectorBox from '@/components/all/UserSelectorBox.vue';\n\nexport default defineComponent({\n name: 'Sector',\n\n components: {\n PdFormBase,\n PdDataTable,\n PdDataTablePopupEditor,\n UserSelectorBox,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const datasource = DatasourcesService.Incidents.Sectors;\n const requires = [\n DatasourcesService.Users,\n ];\n\n const headers: Array> = [\n {\n id: 'name',\n text: i18n.t('incident.sector.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n width: '100%',\n // defaultValue: { [ApplicationModule.Language]: { name: 'New System' } },\n template: (item) => {\n return LanguageTemplate(item as SectorDto, 'name');\n },\n },\n ];\n\n const userHeaders: Array> = [\n {\n id: 'user',\n text: i18n.t('incident.sector.username').toString(),\n value: 'user',\n width: '100%',\n template: (item) => {\n return { text: (item as SectorUserDto).user.info };\n },\n // actions: [\n // {\n // id: 'add',\n // title: 'Add',\n // icon: mdiPlus,\n // callback: () => {\n // //\n // },\n // },\n // ],\n },\n ];\n\n let detailsDataSource: ApiDataSource;\n\n function details(sector: SectorDto) {\n detailsDataSource = new ApiDataSource({ api: `masterplans/${entityId}/bc/incident/sectors/${sector.id}/users` });\n return detailsDataSource;\n }\n\n return {\n datasource,\n headers,\n details,\n userHeaders,\n requires,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Sector.vue?vue&type=template&id=2525aae7&scoped=true&\"\nimport script from \"./Sector.vue?vue&type=script&lang=ts&\"\nexport * from \"./Sector.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2525aae7\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loaded)?_c('pd-form-base',{attrs:{\"title\":\"Incident Types\"}},[(_vm.showEditingDialog)?_c('pd-popup',{attrs:{\"visible\":true,\"index\":5}},[_c('v-card',{attrs:{\"light\":\"\",\"width\":\"900px\",\"max-height\":\"800px\"}},[_c('div',{staticClass:\"pa-4\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('incident.type.name')},model:{value:(_vm.editingItem.translations['en-US'].name),callback:function ($$v) {_vm.$set(_vm.editingItem.translations['en-US'], \"name\", $$v)},expression:\"editingItem.translations['en-US'].name\"}})],1),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.editingItem = null}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.save'))+\" \")])],1)],1)],1):_vm._e(),_c('pd-tree-view',{attrs:{\"items\":_vm.items,\"translatable\":\"\",\"allow-add\":_vm.allowAdd,\"allow-edit\":\"\",\"allow-remove\":\"\",\"max-depth\":3},on:{\"add-item\":_vm.addItem,\"edit-item\":_vm.editItem,\"remove-item\":_vm.removeItem}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, ref } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { TypeDto } from '@/dtos/bcm/incident/TypeDto';\nimport { ApplicationModule } from '@/store';\nimport { ApiDataSource } from '@/core/datasource';\nimport PdTreeView from '@/components/core/PdTreeView/PdTreeView.vue';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport i18n from '@/i18n';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { v4 } from 'uuid';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PdPopup from '@/components/core/PdPopup.vue';\n\nexport default defineComponent({\n name: 'Type',\n\n components: {\n PdFormBase,\n PdTreeView,\n PdPopup,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const datasource = new ApiDataSource({ api: `masterplans/${entityId}/bc/incident/types` });\n\n const items = ref([]);\n const loaded = ref(false);\n\n const editingItem = ref();\n let editingParent: TypeDto | null = null;\n\n const showEditingDialog = computed(() => {\n return editingItem.value != null;\n });\n\n datasource.data().then((data) => {\n items.value = data;\n loaded.value = true;\n });\n\n function allowAdd(depth: number): boolean {\n return depth < 2;\n }\n\n function addItem(parent: TypeDto | null) {\n console.log(parent);\n editingParent = parent;\n editingItem.value = {\n id: 0,\n translations: { 'en-US': { name: '' } },\n parentId: parent?.id,\n children: [],\n };\n }\n\n function editItem({ item, parent }: { item: TypeDto, parent: TypeDto | null }) {\n editingItem.value = JSON.parse(JSON.stringify(item));\n editingParent = parent;\n }\n\n function removeItem({ item, parent }: { item: TypeDto, parent: TypeDto | null }) {\n PopupMessageService.SetMessage({\n title: i18n.t('incident.type.dialog.removeTitle').toString(),\n text: i18n.t('incident.type.dialog.remove', { item: LanguageTemplate(item, 'name').text }).toString(),\n buttons: [{\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n callback: async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('busy.deleting', { item: LanguageTemplate(item, 'name').text }).toString());\n try {\n await datasource.delete(item);\n\n if (parent == null) {\n for (let i = 0; i < items.value.length; ++i) {\n if (items.value[i].id === item.id) {\n items.value.splice(i, 1);\n break;\n }\n }\n } else {\n if (parent.children == null) {\n parent.children = [];\n }\n\n for (let i = 0; i < parent.children.length; ++i) {\n if (parent.children[i].id === item.id) {\n parent.children.splice(i, 1);\n break;\n }\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n close: () => true,\n },\n {\n id: 'no',\n color: 'error',\n text: i18n.t('no').toString(),\n close: () => true,\n }],\n });\n }\n\n async function saveChanges() {\n if (editingItem.value == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('busy.saving').toString());\n\n try {\n if (editingItem.value.id === 0) {\n const saved = await datasource.create(editingItem.value);\n\n if (editingParent != null) {\n editingParent.children?.push(saved);\n } else {\n items.value.push(saved);\n }\n } else {\n const saved = await datasource.update(editingItem.value);\n\n if (editingParent == null) {\n for (let i = 0; i < items.value.length; ++i) {\n if (items.value[i].id === editingItem.value.id) {\n items.value[i].translations = saved.translations;\n items.value[i].uuid = v4();\n break;\n }\n }\n } else {\n if (editingParent.children == null) {\n editingParent.children = [];\n }\n\n for (let i = 0; i < editingParent.children.length; ++i) {\n if (editingParent.children[i].id === editingItem.value.id) {\n editingParent.children[i].translations = saved.translations;\n editingParent.children[i].uuid = v4();\n break;\n }\n }\n }\n }\n\n editingItem.value = null;\n editingParent = null;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n allowAdd,\n addItem,\n editItem,\n editingItem,\n showEditingDialog,\n removeItem,\n saveChanges,\n loaded,\n items,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Type.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Type.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Type.vue?vue&type=template&id=3e668a35&scoped=true&\"\nimport script from \"./Type.vue?vue&type=script&lang=ts&\"\nexport * from \"./Type.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3e668a35\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('bcm.strategy.allStrategiesTitle')}},[_c('pd-data-table',{attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.headers,\"options\":{ editable: true, hasDetails: true },\"sort\":\"name_en-US\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"},scopedSlots:_vm._u([{key:\"details\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('pd-data-table',{attrs:{\"headers\":_vm.detailsHeaders,\"datasource\":_vm.details(item),\"options\":{ editable: true },\"sort\":\"name_en-US\",\"sort-direction\":\"asc\",\"disable-edit-on-double-click\":\"\",\"row-actions\":_vm.detailsActions},on:{\"dblclick\":_vm.openScenario}})]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport i18n from '@/i18n';\nimport { PdDataTableHeader, PdDataTable, PdDataTableRowAction } from '@/components/core/PdDataTable';\nimport { StrategyDto, StrategyScenarioDto } from '@/dtos';\nimport { PdColumnTranslation } from '@/components/core/PdDataTable/columns';\n\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport PdColumnCheckbox from '@/components/core/PdDataTable/columns/PdColumnCheckbox.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport { ApplicationModule } from '@/store';\nimport icons from '@/core/icons';\nimport router from '@/router';\n\nexport default defineComponent({\n name: 'StrategiesView',\n\n components: {\n PdFormBase,\n PdDataTable,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const datasource = DatasourcesService.Bcm.Strategies;\n const headers: Array> = [\n {\n id: 'Active',\n text: i18n.t('bcm.steategies.strategy.active').toString(),\n value: 'active',\n align: 'center',\n width: '5rem',\n component: PdColumnCheckbox,\n },\n {\n id: 'name',\n text: i18n.t('bcm.steategies.strategy.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n // defaultValue: { [ApplicationModule.Language]: { name: 'New System' } },\n template: (item) => {\n return LanguageTemplate(item as StrategyDto, 'name');\n },\n },\n ];\n\n const detailsHeaders: Array> = [\n {\n id: 'name',\n text: i18n.t('bcm.steategies.strategy.scenario.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n template: (item) => {\n return LanguageTemplate(item as StrategyScenarioDto, 'name');\n },\n },\n ];\n\n const detailsActions: Array = [\n {\n id: 'open',\n text: i18n.t('bcm.steategies.strategy.scenario.open').toString(),\n icon: icons.open,\n action: (item) => {\n router.push({ name: 'bcm.strategy.scenario', params: { strategyId: (item as StrategyScenarioDto).strategyId.toString(), scenarioId: item.id.toString() } });\n\n return Promise.resolve(null);\n },\n },\n ];\n\n let detailsDataSource: ApiDataSource;\n\n function details(strategy: StrategyDto) {\n detailsDataSource = new ApiDataSource({ api: `masterplans/${entityId}/bc/Strategies/${strategy.id}/StrategyScenarios` });\n return detailsDataSource;\n }\n\n function openScenario(scenario: StrategyScenarioDto) {\n router.push({\n name: 'bcm.strategy.scenario',\n params: {\n strategyId: scenario.strategyId.toString(),\n scenarioId: scenario.id.toString(),\n },\n });\n\n return Promise.resolve(null);\n }\n\n return {\n datasource,\n headers,\n\n details,\n detailsHeaders,\n detailsActions,\n openScenario,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategiesView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategiesView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StrategiesView.vue?vue&type=template&id=deeb5e30&scoped=true&\"\nimport script from \"./StrategiesView.vue?vue&type=script&lang=ts&\"\nexport * from \"./StrategiesView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"deeb5e30\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{key:_vm.refreshToken,attrs:{\"title\":_vm.title,\"subtitle\":_vm.subTitle}},[(_vm.showLocationsSelector)?_c('item-selector',{attrs:{\"datasource\":_vm.allLocations,\"headers\":_vm.locationsHeaders,\"exclude\":_vm.excludedLocations,\"select-multiple\":\"\",\"show-select-all\":\"\"},on:{\"select\":_vm.addLocations,\"cancel\":function($event){_vm.showLocationsSelector = false}}}):_vm._e(),(_vm.showRecoverySitesSelector)?_c('item-selector',{attrs:{\"datasource\":_vm.allRecoverySites,\"headers\":_vm.recoverySitesHeaders,\"exclude\":_vm.excludedRecoverySites,\"select-multiple\":\"\",\"show-select-all\":\"\"},on:{\"select\":_vm.addRecoverySites,\"cancel\":function($event){_vm.showRecoverySitesSelector = false}}}):_vm._e(),(_vm.showClearAllocationsDialog)?_c('item-selector',{attrs:{\"datasource\":_vm.partitions,\"headers\":_vm.partitionsHeaders,\"translatable\":false,\"select-multiple\":\"\",\"show-select-all\":\"\"},on:{\"select\":_vm.showClearPartitionsWarning,\"cancel\":function($event){_vm.showClearAllocationsDialog = false}}}):_vm._e(),(_vm.showAutomaticStrategyScenarioAllocationsDialog)?_c('strategy-scenario-allocations-dialog',{attrs:{\"partitions\":_vm.partitions,\"recovery-sites\":_vm.recoverySites,\"assets\":_vm.usedAssets},on:{\"allocate\":_vm.automaticallyAllocateResources,\"cancel\":function($event){_vm.showAutomaticStrategyScenarioAllocationsDialog = false}}}):_vm._e(),(_vm.showAutomaticStrategyScenarioPartitionAllocationsDialog)?_c('strategy-scenario-partition-allocations-dialog',{attrs:{\"strategy-id\":_vm._strategyId,\"scenario-id\":_vm._scenarioId,\"partition\":_vm.partitionAllocation,\"recovery-sites\":_vm.recoverySites,\"rto-scales\":_vm.rtoScales},on:{\"allocate\":_vm.automaticallyAllocatePartitionResources,\"cancel\":function($event){_vm.showAutomaticStrategyScenarioPartitionAllocationsDialog=false}}}):_vm._e(),(_vm.showLocationsOnMap)?_c('strategy-scenario-map-dialog',{attrs:{\"recovery-sites\":_vm.recoverySites,\"affected-locations\":_vm.affectedLocations,\"all-locations\":_vm.allLocations,\"all-recovery-sites\":_vm.allRecoverySites},on:{\"close\":function($event){_vm.showLocationsOnMap = false}}}):_vm._e(),(_vm.showClearPartitionsWarningMessage)?_c('pd-popup-card',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('warning'))+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.showClearPartitionsWarningMessage = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('no'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.clearPartitionsAllocations}},[_vm._v(\" \"+_vm._s(_vm.$t('yes'))+\" \")])]},proxy:true}],null,false,3492708143)},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.steategies.strategy.scenario.clearAllocationsMessage'))+\" \"),_c('ul',_vm._l((_vm.clearPartitions),function(p){return _c('li',{key:p.id},[_vm._v(\" \"+_vm._s(p.text)+\" \")])}),0),_c('v-alert',{staticClass:\"mt-4\",attrs:{\"border\":\"left\",\"dense\":\"\",\"text\":\"\",\"type\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.steategies.strategy.scenario.clearAllocationsMessageWarning'))+\" \")])],1):_vm._e(),_c('div',{staticClass:\"mb-2\"},[_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"},on:{\"click\":_vm.refreshFromBia}},[_vm._v(\" Refresh from BIA \")]),_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showAutomaticStrategyScenarioAllocationsDialog = true}}},[_vm._v(\" Automatically Assign (fully) \")]),_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showClearAllocationsDialog = true}}},[_vm._v(\" Clear Allocations Dialog \")]),_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showLocationsOnMap = true}}},[_vm._v(\" Show Map \")]),_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showRecoveryStrategyCost = true}}},[_vm._v(\" Recovery Strategy Cost \")])],1),_c('v-row',{staticClass:\"mb-4\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"md\":\"12\",\"lg\":\"6\"}},[_c('v-card',[_c('v-card-title',{attrs:{\"dense\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.steategies.strategy.scenario.locations'))+\" \"),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.showLocationsSelector = true}}},[_c('v-icon',[_vm._v(_vm._s(_vm.icons.plus))])],1)],1),_c('v-card-text',{staticStyle:{\"max-height\":\"20rem\",\"overflow\":\"scroll\"}},[_c('ul',_vm._l((_vm.affectedLocations),function(loc){return _c('li',{key:loc.locationId},[_vm._v(\" \"+_vm._s(loc.locationName)+\" \"),_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeLocation(loc)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.delete)+\" \")])],1),_c('ul',_vm._l((loc.partitions),function(p){return _c('li',{key:p.id},[_vm._v(\" \"+_vm._s(p.partitionName)+\" \")])}),0)],1)}),0)])],1)],1),_c('v-col',{attrs:{\"md\":\"12\",\"lg\":\"6\"}},[_c('v-card',{staticStyle:{\"height\":\"100%\"}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.steategies.strategy.scenario.recoverySites'))+\" \"),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.showRecoverySitesSelector = true}}},[_c('v-icon',[_vm._v(_vm._s(_vm.icons.plus))])],1)],1),_c('v-card-text',{staticStyle:{\"max-height\":\"20rem\",\"overflow\":\"scroll\"}},[_c('ul',_vm._l((_vm.recoverySites),function(rs){return _c('li',{key:rs.recoverySiteId},[_vm._v(\" \"+_vm._s(rs.recoverySiteName)+\" \"),_c('v-btn',{attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeRecoverySite(rs)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.delete)+\" \")])],1)],1)}),0)])],1)],1)],1),_c('div',_vm._l((_vm.affectedLocations),function(loc){return _c('v-card',{key:loc.id,staticClass:\"mb-2\",attrs:{\"elevation\":\"0\",\"outlined\":\"\"}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(loc.locationName)+\" \")]),_c('v-card-text',[_c('v-expansion-panels',{attrs:{\"multiple\":\"\"}},_vm._l((loc.partitions),function(p){return _c('strategy-scenario-partition-detailed',{key:p.id,attrs:{\"selected-rto\":_vm.selectedRto,\"strategy-id\":_vm._strategyId,\"scenario-id\":_vm._scenarioId,\"partition-id\":p.id,\"partition-name\":p.partitionName,\"recovery-sites\":_vm.recoverySites,\"recovery-sites-assignements\":_vm.recoverySitesAssignements,\"recovery-sites-capacities\":_vm.recoverySitesCapacities,\"rto-scales\":_vm.rtoScales},on:{\"update:selectedRto\":function($event){_vm.selectedRto=$event},\"update:selected-rto\":function($event){_vm.selectedRto=$event},\"allocate\":_vm.automaticPartitionAllocations,\"clear\":_vm.clearPartitionAllocations}})}),1)],1)],1)}),1),(_vm.showRecoveryStrategyCost)?_c('strategy-scenario-cost-dialog',{attrs:{\"recovery-sites\":_vm.recoverySites,\"used-assets\":_vm.usedAssets,\"rto-scales\":_vm.rtoScales,\"existing\":_vm.existing,\"strategy-id\":_vm.strategyId,\"scenario-id\":_vm.scenarioId},on:{\"close\":function($event){_vm.showRecoveryStrategyCost = false}}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup-card',{attrs:{\"width\":\"100%\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{staticClass:\"text-none\",on:{\"click\":function($event){return _vm.$emit('close')}}},[_vm._v(\" \"+_vm._s(_vm.$t('close'))+\" \")])]},proxy:true}])},[_c('v-toolbar',{attrs:{\"flat\":\"\"}},[_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.rtoScales),function(rto){return _c('v-tab',{key:rto.uuid,on:{\"click\":function($event){return _vm.calculateRecoveryStrategyCost(rto)}}},[_vm._v(\" \"+_vm._s(rto.name)+\" (\"+_vm._s(rto.value)+\") \")])}),1),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\"},on:{\"click\":_vm.exportCsv}},[_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \"),_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.export)+\" \")])],1)],1),(!_vm.loading)?_c('v-simple-table',{staticClass:\"table\",staticStyle:{\"width\":\"1200px\"},attrs:{\"fixed-header\":\"\",\"height\":\"100%\",\"dense\":\"\"}},[_c('thead',[_c('tr',[_c('th'),_vm._l((_vm.recoverySites),function(recoverySite){return _c('th',{key:recoverySite.id,staticClass:\"text-center\",attrs:{\"colspan\":\"4\"}},[_vm._v(\" \"+_vm._s(recoverySite.recoverySiteName)+\" \")])}),_c('th')],2),_c('tr',[_c('th',{staticClass:\"right-border\"},[_vm._v(\" Asset \")]),_vm._l((_vm.recoverySites),function(recoverySite){return _vm._l((['Assigned','Existing','Needed','Cost']),function(col){return _c('th',{key:recoverySite.id+col,staticClass:\"text-center\",style:({borderRight: col === 'Cost'? '2px solid lightGrey':''})},[_vm._v(\" \"+_vm._s(col)+\" \")])})}),_c('th',{staticClass:\"text-center\"},[_vm._v(\" Total Cost \")])],2)]),_c('tbody',_vm._l((_vm.dataToShow),function(row,idx){return _c('tr',{key:row.id,style:({backgroundColor: idx % 2 !== 0? '#f0f3f7': ''})},[_c('td',{staticClass:\"right-border\"},[_vm._v(\" \"+_vm._s(row.assetName)+\" \")]),_vm._l((_vm.recoverySites),function(recoverySite){return [_c('td',{key:recoverySite.recoverySiteId+'assigned',staticClass:\"text-center\"},[(row.data[recoverySite.recoverySiteId])?_c('div',[_vm._v(\" \"+_vm._s(row.data[recoverySite.recoverySiteId].assigned)+\" \")]):_c('div',[_vm._v(\" 0 \")])]),_c('td',{key:recoverySite.recoverySiteId+'existing',staticClass:\"text-center\"},[(row.data[recoverySite.recoverySiteId])?_c('div',[_vm._v(\" \"+_vm._s(row.data[recoverySite.recoverySiteId].existing)+\" \")]):_c('div',[_vm._v(\" 0 \")])]),_c('td',{key:recoverySite.recoverySiteId+'needToBuy',staticClass:\"text-center\"},[(row.data[recoverySite.recoverySiteId])?_c('div',[_vm._v(\" \"+_vm._s(row.data[recoverySite.recoverySiteId].needToBuy)+\" \")]):_c('div',[_vm._v(\" 0 \")])]),_c('td',{key:recoverySite.recoverySiteId+'cost',staticClass:\"text-center right-border\"},[(row.data[recoverySite.recoverySiteId])?_c('div',[_vm._v(\" \"+_vm._s(_vm.formatNumber(row.data[recoverySite.recoverySiteId].cost))+\" \")]):_c('div',[_vm._v(\" \"+_vm._s(_vm.formatNumber(0))+\" \")])])]}),_c('td',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.formatNumber(row.rowCost))+\" \")])],2)}),0),_c('tfoot',{staticStyle:{\"position\":\"sticky\",\"bottom\":\"0\"}},[_c('tr',{staticStyle:{\"background-color\":\"lightgreen\"}},[_c('th',{staticClass:\"right-border\"},[_vm._v(\" Totals \")]),_vm._l((_vm.recoverySites),function(site){return [_c('th',{key:site.id+'1'}),_c('th',{key:site.id+'2'}),_c('th',{key:site.id+'3'}),_c('td',{key:site.id+'4',staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.colSums[site.recoverySiteId]))+\" \")])]}),_c('td',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.formatNumber(_vm.totalCost))+\" \")])],2)])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport { RecoverySiteDto } from '@/dtos/bcm/RecoverySiteDto';\nimport { IDto, RtoScaleDto } from '@/dtos';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport { ApplicationModule } from '@/store';\nimport { ExistingAsset } from '@/views/bcm/strategy/StrategyScenarioView.vue';\nimport { AssetsService, StrategyService } from '@/services/bcm';\nimport icons from '@/core/icons';\nimport XLSX from 'xlsx-js-style';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport i18n from '@/i18n';\n\nexport default defineComponent({\n name: 'StrategyScenarioCostDialog',\n\n components: {\n PdPopupCard,\n },\n\n props: {\n recoverySites: {\n type: Array as PropType,\n required: true,\n },\n usedAssets: {\n type: Array as PropType,\n required: true,\n },\n rtoScales: {\n type: Array as PropType,\n required: true,\n },\n existing: {\n type: Array as PropType,\n required: true,\n },\n strategyId: {\n type: String,\n required: true,\n },\n scenarioId: {\n type: String,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n interface StrategyScenarioCostRow{\n data: {\n [key: string] : {\n assigned?: number,\n cost: number,\n existing?: number,\n needToBuy?: number,\n }\n }\n assetName: string,\n assetId: number,\n show?: boolean,\n rowCost?: number,\n }\n\n const activeRto = ref(null);\n const tableData = ref([]);\n const loading = ref(false);\n const colSums = ref<{ [key: string]: number }>({});\n const totalCost = ref(0);\n props.rtoScales.sort((a: RtoScaleDto, b:RtoScaleDto) => a.value - b.value);\n\n async function calculateRecoveryStrategyCost(rto: RtoScaleDto) {\n if (rto.id === activeRto.value?.id) return;\n loading.value = true;\n activeRto.value = rto;\n tableData.value = [];\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n colSums.value = {};\n totalCost.value = 0;\n\n props.usedAssets.forEach(element => {\n tableData.value.push({ data: {}, assetId: element.id, assetName: element.text as string });\n });\n\n for (const recoverySite of props.recoverySites) {\n let colSum = 0;\n\n const allocations = await StrategyService.GetRecoverySiteAssignements(+props.strategyId, +props.scenarioId, recoverySite.id);\n\n for (const asset of allocations.filter(n => activeRto.value && n.rtoId === activeRto.value.id)) {\n if (asset.assigned > 0) {\n const existing:ExistingAsset|undefined = props.existing.find((ex: ExistingAsset) => ex.recoverySiteId === asset.recoverySiteId && ex.assetId === asset.assetId);\n\n let difference;\n\n if (!existing) {\n difference = asset.assigned;\n } else {\n difference = existing.existing - asset.assigned;\n }\n\n let needToBuy = 0;\n let cost = 0;\n\n if (difference < 0) {\n needToBuy = difference * -1;\n cost = await calculateMissingAssetCost(asset.assetId, needToBuy);\n }\n\n colSum += cost;\n totalCost.value += cost;\n const assetToEdit = tableData.value.find(n => n.assetId === asset.assetId);\n\n if (!assetToEdit) break;\n\n const recoveryId = recoverySite.id.toString();\n assetToEdit.data[recoveryId] = { assigned: asset.assigned, existing: existing?.existing, needToBuy: needToBuy, cost: cost };\n assetToEdit.show = true;\n }\n }\n\n colSums.value[recoverySite.id] = colSum;\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n\n tableData.value.forEach(row => {\n let rowSum = 0;\n for (const recoverySite of props.recoverySites) {\n if (row.data[recoverySite.id]) {\n rowSum += row.data[recoverySite.id].cost;\n }\n }\n row.rowCost = rowSum;\n });\n }\n calculateRecoveryStrategyCost(props.rtoScales[props.rtoScales.length - 1]);\n\n async function calculateMissingAssetCost(assetId: number, needToBuy: number):Promise {\n const price = await AssetsService.GetAssetsCosts(assetId);\n let pricePerPiece = 0;\n price.forEach(element => {\n pricePerPiece += element.costPerUnit;\n });\n\n return pricePerPiece * needToBuy;\n }\n const currentLanguage = ApplicationModule.Language;\n\n function formatNumber(num: number):string {\n return new Intl.NumberFormat(currentLanguage, { style: 'currency', currency: 'EUR' }).format(num);\n }\n\n const dataToShow = computed(() => {\n return tableData.value.filter(asset => asset.show);\n });\n\n // set xlsx cell width depending on its content\n function fixWidth(worksheet: XLSX.WorkSheet) {\n const data = XLSX.utils.sheet_to_json<[]>(worksheet);\n const colLengths = Object.keys(data[0]).map((k) => k.toString().length);\n for (const d of data) {\n Object.values(d).forEach((element: string | number, index) => {\n const length = element.toString().length;\n if (colLengths[index] < length) {\n colLengths[index] = length;\n }\n });\n }\n worksheet['!cols'] = colLengths.map((l) => {\n return {\n wch: l,\n };\n });\n }\n function exportCsv() {\n const tableXlsx = document.querySelector('.table');\n const worksheet = XLSX.utils.table_to_sheet(tableXlsx);\n\n fixWidth(worksheet);\n\n const range = XLSX.utils.decode_range(worksheet['!ref'] as string);\n const maxRow = range.e.r - range.s.r;\n const maxCol = range.e.c - range.s.c;\n\n for (const i in worksheet) {\n if (typeof (worksheet[i]) !== 'object') continue;\n\n if ((typeof worksheet[i].v === 'string') && (worksheet[i].v.includes('€') || worksheet[i].v.includes('$'))) {\n worksheet[i].v = parseFloat(worksheet[i].v.replace(/[^\\d.-]/g, ''));\n }\n\n const decodedCell = XLSX.utils.decode_cell(i);\n worksheet[i].s = {\n border: {\n top: { color: { rgb: '000000' }, style: 'thin' },\n bottom: { color: { rgb: '000000' }, style: 'thin' },\n left: { color: { rgb: '000000' }, style: 'thin' },\n right: { color: { rgb: '000000' }, style: 'thin' },\n },\n };\n\n if (typeof worksheet[i].v === 'number') {\n worksheet[i].s = {\n ...worksheet[i].s,\n alignment: {\n horizontal: 'right',\n },\n };\n }\n\n if (props.recoverySites.find((r) => r.recoverySiteName === worksheet[i].v)) {\n worksheet[i].s = {\n ...worksheet[i].s,\n alignment: {\n horizontal: 'center',\n },\n font: {\n bold: true,\n },\n\n fill: {\n fgColor: { rgb: 'C1C1C1' },\n },\n };\n } else if (decodedCell.c === maxCol || decodedCell.r === maxRow) {\n worksheet[i].s = {\n ...worksheet[i].s,\n font: {\n bold: true,\n },\n fill: {\n fgColor: { rgb: '90ee90' },\n },\n };\n }\n }\n\n const workbook = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(workbook, worksheet);\n XLSX.writeFile(workbook, 'RecoveryStrategyCost.xlsx', { compression: true });\n }\n\n return {\n exportCsv,\n dataToShow,\n formatNumber,\n totalCost,\n colSums,\n loading,\n activeRto,\n tab: props.rtoScales.length - 1,\n emit,\n tableData,\n calculateRecoveryStrategyCost,\n icons,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioCostDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioCostDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StrategyScenarioCostDialog.vue?vue&type=template&id=79eb4330&scoped=true&\"\nimport script from \"./StrategyScenarioCostDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./StrategyScenarioCostDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./StrategyScenarioCostDialog.vue?vue&type=style&index=0&id=79eb4330&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"79eb4330\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VToolbar } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VBtn,VIcon,VSimpleTable,VTab,VTabs,VToolbar})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { IDto, LocationDto, SimpleRtoScaleDto, StrategyDto, StrategyScenarioAutomaticPartitionAllocations, StrategyScenarioDto, StrategyScenarioLocationDto, StrategyScenarioRecoverySiteDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport { StrategyService } from '@/services/bcm';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { computed, defineComponent, PropType, reactive, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { LanguageTemplate, LocationTemplate } from '@/core/helpers/templates';\nimport icons from '@/core/icons';\nimport { StrategyScenarioPartitionDetailed, StrategyScenarioPartitionAllocationsDialog, StrategyScenarioAllocationsDialog } from '@/components/bcm/strategy';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport PopupMessageService, { PopupMessageButtonNo, PopupMessageButtonYes } from '@/services/PopupMessageService';\nimport { v4 } from 'uuid';\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport { PdDataTableHeader } from '@/components/core/PdDataTable';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport { RecoverySiteDto } from '@/dtos/bcm/RecoverySiteDto';\nimport { ArrayDataSource } from '@/core/datasource';\nimport StrategyScenarioMapDialog from '@/components/bcm/strategy/StrategyScenarioMapDialog.vue';\nimport StrategyScenarioCostDialog from '@/components/bcm/strategy/StrategyScenarioCostDialog.vue';\n\nexport interface ExistingAsset {\n recoverySiteId: number,\n recoverySiteName: string,\n assetId: number,\n existing: number,\n }\n\nexport default defineComponent({\n name: 'StrategyScenarioView',\n\n components: {\n PdFormBase,\n StrategyScenarioPartitionDetailed,\n ItemSelector,\n StrategyScenarioAllocationsDialog,\n PdPopupCard,\n StrategyScenarioPartitionAllocationsDialog,\n StrategyScenarioMapDialog,\n StrategyScenarioCostDialog,\n },\n\n props: {\n strategyId: {\n type: String as PropType,\n required: true,\n },\n\n scenarioId: {\n type: String as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n const refreshToken = ref(v4());\n\n const scenario = ref(null);\n const strategy = ref(null);\n const affectedLocations = ref>([]);\n const recoverySites = ref>([]);\n const rtoScales = ref>([]);\n\n const selectedRto = ref(0);\n\n const strategyId = computed(() => parseInt(props.strategyId));\n const scenarioId = computed(() => parseInt(props.scenarioId));\n\n const showLocationsOnMap = ref(false);\n\n const partitions = computed(() =>\n new ArrayDataSource(\n affectedLocations.value\n .flatMap(l => l.partitions.map(p => { return { id: p.partitionId, text: p.partitionName }; }))\n .sort((a, b) => a.text.toLocaleLowerCase().localeCompare(b.text.toLocaleLowerCase())), //\n {},\n ));\n\n const partitionsHeaders: Array> = [\n {\n id: 'text',\n text: 'Partition',\n value: 'text',\n },\n ];\n\n const title = computed(() => {\n if (scenario.value == null) {\n return '';\n }\n\n return LanguageTemplate(scenario.value, 'name').text;\n });\n\n const subTitle = computed(() => {\n if (strategy.value == null) {\n return '';\n }\n\n return LanguageTemplate(strategy.value, 'name').text;\n });\n\n watch(\n [strategyId, scenarioId],\n init,\n );\n\n const recoverySitesAssignements = reactive<{ [key: string]: number; }>({});\n\n const recoverySitesCapacities = reactive<{ [key: string]: number; }>({});\n const existing: ExistingAsset[] = [];\n\n const showLocationsSelector = ref(false);\n const allLocations = DatasourcesService.Bcm.Locations;\n const locationsHeaders: Array> = [\n {\n id: 'name',\n text: '',\n value: 'translations',\n translatable: true,\n template: async (value) => {\n return LocationTemplate(value);\n },\n },\n ];\n const excludedLocations = computed(() => affectedLocations.value.map(i => i.locationId));\n async function addLocations(locations: Array) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n showLocationsSelector.value = false;\n await StrategyService.AddUnavailableLocations(strategyId.value, scenarioId.value, locations);\n init();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n const usedAssets = ref>([]);\n\n async function removeLocation(location: StrategyScenarioLocationDto) {\n PopupMessageService.SetMessage({\n title: i18n.t('confirmation'),\n text: i18n.t('bcm.steategies.strategy.scenario.removeLocation', { loc: location.locationName }),\n index: 100,\n buttons: [\n PopupMessageButtonYes(async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await StrategyService.RemoveUnavailableLocations(strategyId.value, scenarioId.value, location);\n init();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n const showRecoverySitesSelector = ref(false);\n const allRecoverySites = DatasourcesService.Bcm.RecoverySites;\n const excludedOnLocation = ref>([]);\n const recoverySitesHeaders: Array> = [\n {\n id: 'name',\n text: '',\n value: 'translations',\n translatable: true,\n template: async (value) => {\n return LanguageTemplate(value, 'name');\n },\n },\n ];\n const excludedRecoverySites = computed(() =>\n [\n ...recoverySites.value.map(i => i.recoverySiteId),\n ...excludedOnLocation.value,\n ]);\n async function addRecoverySites(recoverySites: Array) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n showRecoverySitesSelector.value = false;\n await StrategyService.AddRecoverySites(strategyId.value, scenarioId.value, recoverySites);\n init();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function removeRecoverySite(recoverySite: StrategyScenarioRecoverySiteDto) {\n PopupMessageService.SetMessage({\n title: i18n.t('confirmation'),\n text: i18n.t('bcm.steategies.strategy.scenario.removeRecoverySite', { rs: recoverySite.recoverySiteName }),\n index: 100,\n buttons: [\n PopupMessageButtonYes(async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await StrategyService.RemoveRecoverySites(strategyId.value, scenarioId.value, recoverySite);\n init();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n const showClearAllocationsDialog = ref(false);\n const showClearPartitionsWarningMessage = ref(false);\n const clearPartitions = ref>([]);\n\n function showClearPartitionsWarning(partitions: Array) {\n clearPartitions.value = partitions;\n showClearAllocationsDialog.value = false;\n\n if (partitions.length > 0) {\n showClearPartitionsWarningMessage.value = true;\n }\n }\n\n const showAutomaticStrategyScenarioAllocationsDialog = ref(false);\n const showAutomaticStrategyScenarioPartitionAllocationsDialog = ref(false);\n const partitionAllocation = ref(null);\n\n async function clearPartitionsAllocations() {\n showClearPartitionsWarningMessage.value = false;\n const busy = BusyIndicatorService.SetBusy(i18n.t('bcm.steategies.strategy.scenario.clearingAllocations').toString());\n try {\n await StrategyService.ClearAllocations(strategyId.value, scenarioId.value, clearPartitions.value);\n init();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function refreshFromBia() {\n PopupMessageService.SetMessage({\n title: i18n.t('confirmation'),\n text: i18n.t('bcm.steategies.strategy.scenario.refreshBiaMessage'),\n index: 100,\n buttons: [\n PopupMessageButtonYes(async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('bcm.steategies.strategy.scenario.refreshingBiaMessage').toString());\n try {\n await StrategyService.StrategyScenarioRefreshFromBia(strategyId.value, scenarioId.value);\n init();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n async function automaticallyAllocateResources(partitions: Array, recoverySite: StrategyScenarioRecoverySiteDto, assets: Array) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n showAutomaticStrategyScenarioAllocationsDialog.value = false;\n await StrategyService.AutomaticAllocations(strategyId.value, scenarioId.value, partitions, recoverySite, assets);\n\n init();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function automaticallyAllocatePartitionResources(allocations: StrategyScenarioAutomaticPartitionAllocations) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n showAutomaticStrategyScenarioPartitionAllocationsDialog.value = false;\n await StrategyService.AutomaticPartitionAllocations(strategyId.value, scenarioId.value, allocations);\n\n init();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function automaticPartitionAllocations(partition: IDto) {\n partitionAllocation.value = partition;\n showAutomaticStrategyScenarioPartitionAllocationsDialog.value = true;\n }\n\n async function clearPartitionAllocations(partition: IDto) {\n clearPartitions.value = [partition];\n showClearPartitionsWarningMessage.value = true;\n }\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n strategy.value = await StrategyService.GetStrategy(strategyId.value);\n scenario.value = await StrategyService.GetStrategyScenario(strategyId.value, scenarioId.value);\n\n affectedLocations.value = await StrategyService.GetStrategyScenarioLocations(strategyId.value, scenarioId.value)\n .then(i => i.sort((a, b) => a.locationName.toLocaleLowerCase().localeCompare(b.locationName.toLocaleLowerCase())));\n\n recoverySites.value = await StrategyService.GetStrategyScenarioRecoverySites(strategyId.value, scenarioId.value)\n .then(i => i.sort((a, b) => a.recoverySiteName.toLocaleLowerCase().localeCompare(b.recoverySiteName.toLocaleLowerCase())));\n\n excludedOnLocation.value = (await DatasourcesService.Bcm.RecoverySites.data())\n .filter(rs => affectedLocations.value.find(l => l.locationId === rs.locationId) != null)\n .map(rs => rs.id);\n\n recoverySites.value.forEach(async rs => {\n const capacity = await StrategyService.GetRecoverySiteCapacities(rs.recoverySiteId);\n capacity.forEach(c => {\n recoverySitesCapacities[`${rs.recoverySiteId}-${c.assetId}`] = c.capacity;\n existing.push({ recoverySiteId: rs.recoverySiteId, recoverySiteName: rs.recoverySiteName, assetId: c.assetId, existing: c.existing });\n });\n\n const assets = await DatasourcesService.Bcm.Assets.data();\n const distinctAssets = new Set();\n const allAssets: Array = [];\n\n const allocations = await StrategyService.GetRecoverySiteAssignements(strategyId.value, scenarioId.value, rs.recoverySiteId);\n allocations.forEach(a => {\n recoverySitesAssignements[`${rs.recoverySiteId}-${a.assetId}-${a.rtoId}`] = a.assigned;\n\n if (!distinctAssets.has(a.assetId)) {\n distinctAssets.add(a.assetId);\n const asset = assets.find(i => i.id === a.assetId);\n if (asset != null) {\n allAssets.push({ id: a.assetId, text: LanguageTemplate(asset, 'name').text });\n } else {\n allAssets.push({ id: a.assetId, text: '-' });\n }\n }\n });\n\n usedAssets.value = allAssets;\n });\n\n rtoScales.value = await DatasourcesService.Bcm.SimpleRtoScales.data();\n\n selectedRto.value = rtoScales.value.length - 1;\n\n refreshToken.value = v4();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n\n const showRecoveryStrategyCost = ref(false);\n\n init();\n return {\n title,\n subTitle,\n scenario,\n existing,\n\n affectedLocations,\n recoverySites,\n rtoScales,\n selectedRto,\n\n icons,\n\n _strategyId: strategyId,\n _scenarioId: scenarioId,\n\n recoverySitesAssignements,\n recoverySitesCapacities,\n\n refreshFromBia,\n refreshToken,\n\n showLocationsSelector,\n allLocations,\n locationsHeaders,\n excludedLocations,\n addLocations,\n removeLocation,\n\n showRecoverySitesSelector,\n allRecoverySites,\n recoverySitesHeaders,\n excludedRecoverySites,\n addRecoverySites,\n removeRecoverySite,\n\n partitions,\n partitionsHeaders,\n\n showClearAllocationsDialog,\n clearPartitions,\n showClearPartitionsWarningMessage,\n showClearPartitionsWarning,\n clearPartitionsAllocations,\n\n showAutomaticStrategyScenarioAllocationsDialog,\n showAutomaticStrategyScenarioPartitionAllocationsDialog,\n\n usedAssets,\n\n automaticallyAllocateResources,\n\n automaticPartitionAllocations,\n clearPartitionAllocations,\n partitionAllocation,\n automaticallyAllocatePartitionResources,\n\n showLocationsOnMap,\n showRecoveryStrategyCost,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StrategyScenarioView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StrategyScenarioView.vue?vue&type=template&id=60f8cdff&scoped=true&\"\nimport script from \"./StrategyScenarioView.vue?vue&type=script&lang=ts&\"\nexport * from \"./StrategyScenarioView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"60f8cdff\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAlert,VBtn,VCard,VCardText,VCardTitle,VCol,VExpansionPanels,VIcon,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"loading\":_vm.loading,\"title\":\"Functional Test Scenarios\"}},[_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":{ editable: true, hasDetails: false },\"sort\":\"value\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport i18n from '@/i18n';\nimport { PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { BcpFunctionalScenarioDto } from '@/dtos/bcm/testing/BcpFunctionalScenarioDto';\n\nexport default defineComponent({\n name: 'BcpFunctionalScenarioView',\n\n components: {\n PdFormBase,\n PdDataTable,\n },\n\n setup() {\n const loading = ref(false);\n\n const datasource = DatasourcesService.BcpFunctionalTesting.Scenarios;\n\n const headers: Array> = [\n {\n id: 'name',\n text: i18n.t('bcm.testing.functional.name').toString(),\n value: 'translations',\n translatable: true,\n width: '300px',\n translationWidth: 300,\n component: PdColumnTranslation,\n\n template: (item) => {\n return LanguageTemplate(item as BcpFunctionalScenarioDto, 'name');\n },\n },\n {\n id: 'description',\n text: i18n.t('incident.prioritization.description').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 800,\n component: PdColumnTranslation,\n\n template: (item) => {\n return LanguageTemplate(item as BcpFunctionalScenarioDto, 'description');\n },\n },\n ];\n\n return {\n loading,\n datasource,\n headers,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalScenarioView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalScenarioView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalScenarioView.vue?vue&type=template&id=1d8ff0fc&scoped=true&\"\nimport script from \"./BcpFunctionalScenarioView.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalScenarioView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1d8ff0fc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.title,\"loading\":_vm.loading}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-btn',{staticClass:\"text-none mr-3\",attrs:{\"small\":\"\",\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiFloppy)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")],1),_c('v-btn',{staticClass:\"text-none mr-6\",attrs:{\"small\":\"\",\"color\":\"warning\"},on:{\"click\":_vm.cancelChanges}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCancel)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")],1),(_vm.testId !== 'new')?_c('v-btn',{staticClass:\"text-none mr-3\",attrs:{\"small\":\"\",\"color\":\"error\",\"disabled\":_vm.test.status != 0},on:{\"click\":_vm.deleteTest}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiTrashCan)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('remove'))+\" \")],1):_vm._e()],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-text-field',{attrs:{\"label\":_vm.$t('bcm.testing.functional.test.name'),\"hide-details\":\"auto\",\"error-messages\":_vm.testNameErrors},model:{value:(_vm.test.name),callback:function ($$v) {_vm.$set(_vm.test, \"name\", $$v)},expression:\"test.name\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.testScenariosItems,\"item-value\":\"id\",\"item-text\":\"text\",\"label\":_vm.$t('bcm.testing.functional.test.scenario'),\"hide-details\":\"auto\",\"disabled\":!_vm.editableTest,\"error-messages\":_vm.testScenarioErrors},model:{value:(_vm.test.scenarioId),callback:function ($$v) {_vm.$set(_vm.test, \"scenarioId\", $$v)},expression:\"test.scenarioId\"}})],1),_c('v-col',{staticClass:\"shrink\"},[_c('div',{staticStyle:{\"width\":\"150px\"}},[_c('pd-date-picker',{attrs:{\"hide-details\":\"auto\",\"error-messages\":_vm.testDateErrors,\"min\":_vm.currentDate,\"disabled\":!_vm.editableTest},model:{value:(_vm.test.schedule),callback:function ($$v) {_vm.$set(_vm.test, \"schedule\", $$v)},expression:\"test.schedule\"}})],1)])],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-textarea',{attrs:{\"label\":_vm.$t('bcm.testing.functional.test.assumptions'),\"hide-details\":\"auto\",\"rows\":\"2\"},model:{value:(_vm.test.assumptions),callback:function ($$v) {_vm.$set(_vm.test, \"assumptions\", $$v)},expression:\"test.assumptions\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-select',{attrs:{\"items\":_vm.strategyScenariosItems,\"item-value\":\"id\",\"item-text\":\"text\",\"label\":_vm.$t('bcm.testing.functional.test.strategyScenario'),\"error-messages\":_vm.testStrategyScenarioErrors,\"disabled\":!_vm.editableTest},model:{value:(_vm.selectedStrategyScenarioId),callback:function ($$v) {_vm.selectedStrategyScenarioId=$$v},expression:\"selectedStrategyScenarioId\"}})],1),_c('v-col',{staticClass:\"shrink\"},[_c('div',{staticStyle:{\"width\":\"250px\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('bcm.testing.functional.test.targetRto'),\"hide-details\":\"auto\",\"items\":_vm.rtoItems,\"item-value\":\"id\",\"item-text\":\"text\",\"error-messages\":_vm.testTargetRtoErrors,\"disabled\":!_vm.editableTest},model:{value:(_vm.selectedTargetRtoId),callback:function ($$v) {_vm.selectedTargetRtoId=$$v},expression:\"selectedTargetRtoId\"}})],1)])],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('bcp-functional-test-admin-partitions-view',{attrs:{\"partitions\":_vm.test.partitions,\"all-partitions\":_vm.partitionsList,\"disabled\":_vm.selectedStrategyScenarioId === 0,\"editable\":_vm.editableTest},on:{\"add\":_vm.addPartition,\"edit\":_vm.editPartition,\"clear\":_vm.clearPartitionList,\"remove\":_vm.removePartition,\"reset\":_vm.resetPartitionList}})],1)],1),_c('v-divider'),_c('v-switch',{attrs:{\"disabled\":_vm.detailsDisabled || !_vm.editableTest,\"label\":_vm.$t('bcm.testing.functional.test.testAssets')},model:{value:(_vm.test.testAssets),callback:function ($$v) {_vm.$set(_vm.test, \"testAssets\", $$v)},expression:\"test.testAssets\"}}),_c('v-expand-transition',[(_vm.test.testAssets)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('bcp-functional-test-admin-assets-view',{attrs:{\"test-assets\":_vm.test.assets,\"all-assets\":_vm.assetsList,\"disabled\":_vm.detailsDisabled || !_vm.editableTest},on:{\"clear\":_vm.clearAssetList,\"reset\":_vm.resetAssetList,\"add\":_vm.addAsset,\"remove\":_vm.removeAsset}})],1):_vm._e()],1),_c('v-divider'),_c('v-switch',{attrs:{\"disabled\":_vm.detailsDisabled || !_vm.editableTest,\"label\":_vm.$t('bcm.testing.functional.test.testApplications')},model:{value:(_vm.test.testApplications),callback:function ($$v) {_vm.$set(_vm.test, \"testApplications\", $$v)},expression:\"test.testApplications\"}}),_c('v-expand-transition',[(_vm.test.testApplications)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('bcp-functional-test-admin-applications-view',{attrs:{\"test-applications\":_vm.test.applications,\"all-applications\":_vm.applicationsList,\"disabled\":_vm.detailsDisabled || !_vm.editableTest},on:{\"clear\":_vm.clearApplicationList,\"reset\":_vm.resetApplicationList,\"add\":_vm.addApplication,\"remove\":_vm.removeApplication}})],1):_vm._e()],1),_c('v-divider'),_c('v-switch',{attrs:{\"disabled\":_vm.detailsDisabled || !_vm.editableTest,\"label\":_vm.$t('bcm.testing.functional.test.testCallTree')},model:{value:(_vm.test.testCallTree),callback:function ($$v) {_vm.$set(_vm.test, \"testCallTree\", $$v)},expression:\"test.testCallTree\"}}),_c('v-divider'),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('bcp-functional-test-admin-observers',{attrs:{\"test-observers\":_vm.test.observers,\"disabled\":_vm.detailsDisabled},on:{\"clear\":_vm.clearObserversList,\"add\":_vm.addObserver,\"remove\":_vm.removeObserver}})],1),_c('v-row',{attrs:{\"applications\":_vm.test.applications,\"dense\":\"\"}},[_c('bcp-functional-test-admin-technicians',{attrs:{\"test-technicians\":_vm.test.technicians,\"disabled\":_vm.detailsDisabled},on:{\"clear\":_vm.clearTechniciansList,\"add\":_vm.addTechnician,\"update\":_vm.updateTechnician,\"remove\":_vm.removeTechnician}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-col',[(_vm.assetSelectorVisibility)?_c('item-selector',{attrs:{\"visible\":true,\"datasource\":_vm.availableAssets},on:{\"select\":_vm.addAsset,\"cancel\":function($event){_vm.assetSelectorVisibility = false}}}):_vm._e(),_c('div',{staticClass:\"text-subtitle-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.assets'))+\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"disabled\":_vm.disabled},on:{\"click\":_vm.showAssetSelector}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.addAsset'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistPlus)+\" \")])],1),_c('v-btn',{staticClass:\"text-none ml-2\",attrs:{\"small\":\"\",\"disabled\":_vm.disabled || _vm.resetDisabled},on:{\"click\":_vm.resetAssetsList}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.resetAssets'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistCheck)+\" \")])],1),_c('v-btn',{staticClass:\"text-none ml-2\",attrs:{\"small\":\"\",\"disabled\":_vm.disabled},on:{\"click\":_vm.clearAssetList}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.removeAllAssets'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistRemove)+\" \")])],1)],1),_c('br'),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.testAssets,\"item-key\":\"uuid\",\"dense\":\"\",\"fixed-header\":\"\",\"height\":300,\"page\":1,\"items-per-page\":1000,\"custom-sort\":_vm.sortAssets,\"sort-by\":\"assetId\",\"must-sort\":\"\",\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"item.assetId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-data-table-datasource-item',{attrs:{\"datasource\":_vm.assetsDatasource,\"item-id\":item.assetId,\"property\":\"name\"}})]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(!_vm.disabled)?_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\",\"close-on-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.mdiDotsVertical)+\" \")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{on:{\"click\":function($event){return _vm.removeAsset(item)}}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiTrashCan)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.assetRemove'))+\" \")])],1)],1)],1):_vm._e()]}}],null,true)})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-data-table-language-template',{attrs:{\"item\":_vm.item,\"property\":_vm.property}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_vm._v(_vm._s(_vm.text))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { ITranslatableDto } from '@/dtos/IDto';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'VDataTableLanguageTemplate',\n\n props: {\n item: {\n type: [Object, Promise] as PropType | Promise>>,\n required: false,\n },\n property: {\n type: String,\n required: true,\n },\n },\n\n setup(props) {\n const text = ref('');\n\n watch(\n () => props.item,\n async (value) => {\n await Promise.resolve(value).then((res) => {\n if (res == null) {\n text.value = '';\n } else {\n text.value = LanguageTemplate(res, props.property).text;\n }\n });\n },\n { immediate: true },\n );\n\n return {\n text,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VDataTableLanguageTemplate.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VDataTableLanguageTemplate.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VDataTableLanguageTemplate.vue?vue&type=template&id=3306d842&scoped=true&\"\nimport script from \"./VDataTableLanguageTemplate.vue?vue&type=script&lang=ts&\"\nexport * from \"./VDataTableLanguageTemplate.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3306d842\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport { IDataSource } from '@/core/datasource';\nimport { IDto } from '@/dtos/IDto';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport VDataTableLanguageTemplate from './VDataTableLanguageTemplate.vue';\n\nexport default defineComponent({\n components: { VDataTableLanguageTemplate },\n name: 'VDataTableDatasourceItem',\n\n props: {\n datasource: {\n type: Object as PropType>,\n required: true,\n },\n itemId: {\n type: Number,\n required: true,\n },\n property: {\n type: String,\n required: true,\n },\n },\n\n setup(props) {\n const item = computed(async () => {\n return await props.datasource.getById(props.itemId);\n });\n\n return {\n item,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VDataTableDatasourceItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VDataTableDatasourceItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VDataTableDatasourceItem.vue?vue&type=template&id=4fb0449a&scoped=true&\"\nimport script from \"./VDataTableDatasourceItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./VDataTableDatasourceItem.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4fb0449a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { BcpFunctionalTestAssetDto } from '@/dtos/bcm/testing/BcpFunctionalTestAssetDto';\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport { mdiPlaylistPlus, mdiPlaylistRemove, mdiDotsVertical, mdiPencil, mdiTrashCan, mdiPlaylistCheck } from '@mdi/js';\nimport { DataTableHeader } from 'vuetify';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { AssetDto } from '@/dtos/bcm';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport VDataTableDatasourceItem from '@/components/core/VDataTableDatasourceItem.vue';\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport { ArrayDataSource } from '@/core/datasource';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestAdminAssetsView',\n\n components: {\n VDataTableDatasourceItem,\n ItemSelector,\n },\n\n props: {\n testAssets: {\n type: Array as PropType>,\n required: true,\n },\n\n allAssets: {\n type: Array as PropType>,\n required: false,\n default: () => [],\n },\n\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const headers: Array = [\n {\n value: 'assetId',\n text: 'Asset',\n },\n\n {\n value: 'actions',\n text: '',\n width: 50,\n sortable: false,\n },\n ];\n\n const availableAssets = computed(() => {\n const existing = new Set();\n for (let i = 0; i < props.testAssets.length; ++i) {\n existing.add(props.testAssets[i].assetId);\n }\n\n const items: Array = [];\n\n for (let i = 0; i < props.allAssets.length; ++i) {\n if (!existing.has(props.allAssets[i].id)) {\n items.push(props.allAssets[i]);\n }\n }\n\n return new ArrayDataSource(items, {});\n });\n\n const assetSelectorVisibility = ref(false);\n\n function sortAssets(items: BcpFunctionalTestAssetDto[], sortBy: string[], sortDesc: boolean[]): BcpFunctionalTestAssetDto[] {\n const map = new Map();\n for (let i = 0; i < props.allAssets.length; ++i) {\n map.set(props.allAssets[i].id, props.allAssets[i]);\n }\n\n items.sort(function (left: BcpFunctionalTestAssetDto, right: BcpFunctionalTestAssetDto): number {\n const leftAsset = map.get(left.assetId);\n const rightAsset = map.get(right.assetId);\n\n if (leftAsset == null || rightAsset == null) {\n return 0;\n }\n\n let leftText = LanguageTemplate(leftAsset, 'name').text;\n let rightText = LanguageTemplate(rightAsset, 'name').text;\n\n if (leftText == null || rightText == null) {\n return 0;\n }\n\n leftText = leftText.trim().toLowerCase();\n rightText = rightText.trim().toLowerCase();\n\n if (sortDesc[0] === false) {\n return leftText.localeCompare(rightText);\n } else {\n return rightText.localeCompare(leftText);\n }\n });\n\n return items;\n }\n\n function showAssetSelector() {\n assetSelectorVisibility.value = true;\n }\n\n function addAsset(asset: AssetDto) {\n if (asset != null) {\n emit('add', asset);\n assetSelectorVisibility.value = false;\n }\n }\n\n function resetAssetsList() {\n emit('reset');\n }\n\n const resetDisabled = ref(false);\n\n function clearAssetList() {\n emit('clear');\n }\n\n function removeAsset(asset: BcpFunctionalTestAssetDto) {\n emit('remove', asset);\n }\n\n //\n return {\n headers,\n sortAssets,\n showAssetSelector,\n addAsset,\n removeAsset,\n resetAssetsList,\n resetDisabled,\n clearAssetList,\n\n assetsDatasource: DatasourcesService.Bcm.Assets,\n\n availableAssets,\n assetSelectorVisibility,\n\n icons: {\n mdiPlaylistPlus,\n mdiPlaylistRemove,\n mdiPlaylistCheck,\n mdiDotsVertical,\n mdiPencil,\n mdiTrashCan,\n },\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestAdminAssetsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestAdminAssetsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestAdminAssetsView.vue?vue&type=template&id=ac47c87c&scoped=true&\"\nimport script from \"./BcpFunctionalTestAdminAssetsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestAdminAssetsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ac47c87c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VCol,VDataTable,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-col',[(_vm.applicationSelectorVisibility)?_c('item-selector',{attrs:{\"visible\":true,\"datasource\":_vm.availableApplications},on:{\"select\":_vm.addApplication,\"cancel\":function($event){_vm.applicationSelectorVisibility = false}}}):_vm._e(),_c('div',{staticClass:\"text-subtitle-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.applications'))+\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"disabled\":_vm.disabled},on:{\"click\":_vm.showApplicationSelector}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.addApplication'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistPlus)+\" \")])],1),_c('v-btn',{staticClass:\"text-none ml-2\",attrs:{\"small\":\"\",\"disabled\":_vm.disabled || _vm.resetDisabled},on:{\"click\":_vm.resetApplicationsList}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.resetApplications'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistCheck)+\" \")])],1),_c('v-btn',{staticClass:\"text-none ml-2\",attrs:{\"small\":\"\",\"disabled\":_vm.disabled},on:{\"click\":_vm.clearApplicationList}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.removeAllApplications'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistRemove)+\" \")])],1)],1),_c('br'),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.testApplications,\"item-key\":\"uuid\",\"dense\":\"\",\"fixed-header\":\"\",\"height\":300,\"page\":1,\"items-per-page\":1000,\"custom-sort\":_vm.sortApplications,\"sort-by\":\"applicationId\",\"must-sort\":\"\",\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"item.applicationId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-data-table-datasource-item',{attrs:{\"datasource\":_vm.applicationsDatasource,\"item-id\":item.applicationId,\"property\":\"name\"}})]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [(!_vm.disabled)?_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\",\"close-on-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.mdiDotsVertical)+\" \")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{on:{\"click\":function($event){return _vm.removeApplication(item)}}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiTrashCan)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.applicationRemove'))+\" \")])],1)],1)],1):_vm._e()]}}],null,true)})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { BcpFunctionalTestApplicationDto } from '@/dtos/bcm/testing/BcpFunctionalTestApplicationDto';\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport { mdiPlaylistPlus, mdiPlaylistRemove, mdiDotsVertical, mdiPencil, mdiTrashCan, mdiPlaylistCheck } from '@mdi/js';\nimport { DataTableHeader } from 'vuetify';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { SystemDto } from '@/dtos/bcm';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport VDataTableDatasourceItem from '@/components/core/VDataTableDatasourceItem.vue';\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport { ArrayDataSource } from '@/core/datasource';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestAdminApplicationsView',\n\n components: {\n VDataTableDatasourceItem,\n ItemSelector,\n },\n\n props: {\n testApplications: {\n type: Array as PropType>,\n required: true,\n },\n\n allApplications: {\n type: Array as PropType>,\n required: false,\n default: () => [],\n },\n\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n\n editable: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n\n setup(props, { emit }) {\n const headers: Array = [\n {\n value: 'applicationId',\n text: 'Application',\n },\n\n {\n value: 'actions',\n text: '',\n width: 50,\n sortable: false,\n },\n ];\n\n const availableApplications = computed(() => {\n const existing = new Set();\n for (let i = 0; i < props.testApplications.length; ++i) {\n existing.add(props.testApplications[i].applicationId);\n }\n\n const items: Array = [];\n\n for (let i = 0; i < props.allApplications.length; ++i) {\n if (!existing.has(props.allApplications[i].id)) {\n items.push(props.allApplications[i]);\n }\n }\n\n return new ArrayDataSource(items, {});\n });\n\n const applicationSelectorVisibility = ref(false);\n\n function sortApplications(items: BcpFunctionalTestApplicationDto[], sortBy: string[], sortDesc: boolean[]): BcpFunctionalTestApplicationDto[] {\n const map = new Map();\n for (let i = 0; i < props.allApplications.length; ++i) {\n map.set(props.allApplications[i].id, props.allApplications[i]);\n }\n\n items.sort(function (left: BcpFunctionalTestApplicationDto, right: BcpFunctionalTestApplicationDto): number {\n const leftApplication = map.get(left.applicationId);\n const rightApplication = map.get(right.applicationId);\n\n if (leftApplication == null || rightApplication == null) {\n return 0;\n }\n\n let leftText = LanguageTemplate(leftApplication, 'name').text;\n let rightText = LanguageTemplate(rightApplication, 'name').text;\n\n if (leftText == null || rightText == null) {\n return 0;\n }\n\n leftText = leftText.trim().toLowerCase();\n rightText = rightText.trim().toLowerCase();\n\n if (sortDesc[0] === false) {\n return leftText.localeCompare(rightText);\n } else {\n return rightText.localeCompare(leftText);\n }\n });\n\n return items;\n }\n\n function showApplicationSelector() {\n applicationSelectorVisibility.value = true;\n }\n\n function addApplication(application: SystemDto) {\n if (application != null) {\n emit('add', application);\n applicationSelectorVisibility.value = false;\n }\n }\n\n function resetApplicationsList() {\n emit('reset');\n }\n\n const resetDisabled = ref(false);\n\n function clearApplicationList() {\n emit('clear');\n }\n\n function removeApplication(application: BcpFunctionalTestApplicationDto) {\n emit('remove', application);\n }\n\n //\n return {\n headers,\n sortApplications,\n showApplicationSelector,\n addApplication,\n removeApplication,\n resetApplicationsList,\n resetDisabled,\n clearApplicationList,\n\n applicationsDatasource: DatasourcesService.Bcm.Applications,\n\n availableApplications,\n applicationSelectorVisibility,\n\n icons: {\n mdiPlaylistPlus,\n mdiPlaylistRemove,\n mdiPlaylistCheck,\n mdiDotsVertical,\n mdiPencil,\n mdiTrashCan,\n },\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestAdminApplicationsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestAdminApplicationsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestAdminApplicationsView.vue?vue&type=template&id=26850a12&scoped=true&\"\nimport script from \"./BcpFunctionalTestAdminApplicationsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestAdminApplicationsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"26850a12\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VCol,VDataTable,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[(_vm.showPartitionEditor)?_c('bcp-functional-test-admin-partition-editor',{attrs:{\"partition\":_vm.editingPartition,\"is-new\":_vm.newPartition,\"all-partitions\":_vm.allPartitions,\"available-partitions\":_vm.availablePartitions},on:{\"cancel\":_vm.cancelEditing,\"save\":_vm.saveEditingChanges}}):_vm._e(),_c('div',{staticClass:\"text-subtitle-1\"},[_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"disabled\":_vm.disabled || !_vm.editable},on:{\"click\":_vm.addPartition}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.addPartition'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistPlus)+\" \")])],1),_c('v-btn',{staticClass:\"text-none ml-2\",attrs:{\"small\":\"\",\"disabled\":_vm.resetDisabled || !_vm.editable},on:{\"click\":_vm.resetPartitionList}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.resetPartitions'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistCheck)+\" \")])],1),_c('v-btn',{staticClass:\"text-none ml-2\",attrs:{\"small\":\"\",\"disabled\":_vm.disabled || !_vm.editable},on:{\"click\":_vm.clearPartitionList}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.removeAllPartitions'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistRemove)+\" \")])],1)],1),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.partitions,\"item-key\":\"uuid\",\"dense\":\"\",\"fixed-header\":\"\",\"height\":300,\"page\":1,\"items-per-page\":1000,\"custom-sort\":_vm.sortPartitions,\"sort-by\":\"partitionId\",\"must-sort\":\"\",\"hide-default-footer\":\"\"},on:{\"dblclick:row\":_vm.editPartitionEvent},scopedSlots:_vm._u([{key:\"item.partitionId\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-data-table-partition-item',{attrs:{\"item-id\":item.partitionId}})]}},{key:\"item.coordinators\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('bcp-functional-test-admin-partition-coordinators',{attrs:{\"coordinators\":item.coordinators}})]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\",\"close-on-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.mdiDotsVertical)+\" \")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{on:{\"click\":function($event){return _vm.editPartition(item)}}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPencil)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.partitionEdit'))+\" \")])],1),(_vm.editable)?_c('v-list-item',{on:{\"click\":function($event){return _vm.removePartition(item)}}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiTrashCan)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.partitionRemove'))+\" \")])],1):_vm._e()],1)],1)]}}],null,true)})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('item-selector',{attrs:{\"visible\":_vm.partitionSelector,\"datasource\":_vm.available,\"translatable\":\"\"},on:{\"select\":_vm.addPartition,\"cancel\":function($event){_vm.partitionSelector = false}}}),_c('user-selector',{attrs:{\"visible\":_vm.userSelector,\"datasource\":_vm.users,\"exclude\":_vm.excludedUsers},on:{\"select\":_vm.addSelectedUser,\"cancel\":function($event){_vm.userSelector = false}}}),_c('pd-popup',{attrs:{\"visible\":true,\"index\":10}},[_c('v-card',{attrs:{\"light\":\"\",\"width\":\"600px\"}},[_c('v-card-title',[_vm._v(\" Edit Test Partition \")]),_c('v-card-text',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-text-field',{attrs:{\"label\":\"Partition\",\"value\":_vm.selectedPartition,\"readonly\":\"\",\"error-messages\":_vm.partitionErrors,\"disabled\":!_vm.isNew},on:{\"click\":_vm.changePartition}})],1),_c('v-row',[_c('v-btn',{staticClass:\"text-none\",attrs:{\"text\":\"\",\"small\":\"\",\"dense\":\"\",\"disabled\":_vm.coordinatorsDisabled},on:{\"click\":_vm.addCoordinator}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.coordinators'))+\" \"),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlus)+\" \")])],1),_c('div',{staticClass:\"pa-2\",staticStyle:{\"height\":\"200px\",\"overflow-y\":\"auto\",\"overflow-x\":\"hidden\"}},_vm._l((_vm.item.coordinators),function(coordinator){return _c('div',{key:coordinator.user.username},[_c('v-btn',{staticClass:\"text-none text-left justify-start mb-1\",staticStyle:{\"width\":\"600px\"},attrs:{\"small\":\"\",\"depressed\":\"\"},on:{\"click\":function($event){return _vm.removeCoordinator(coordinator)}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiMinus)+\" \")]),_vm._v(\" \"+_vm._s(coordinator.user.info)+\" \")],1)],1)}),0)],1)],1),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.save'))+\" \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdPopup from '@/components/core/PdPopup.vue';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { PartitionDto } from '@/dtos/bcm';\nimport { BcpFunctionalTestPartitionDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionDto';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport cloneDeep from 'lodash.clonedeep';\nimport { mdiPlus, mdiMinus } from '@mdi/js';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nimport UserSelector from '@/components/all/UserSelector.vue';\nimport { BcpFunctionalTestPartitionCoordinatorDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionCoordinatorDto';\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport { ArrayDataSource } from '@/core/datasource';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestAdminPartitionEditor',\n\n components: {\n PdPopup,\n UserSelector,\n ItemSelector,\n },\n\n props: {\n partition: {\n type: Object as PropType,\n required: true,\n },\n\n isNew: {\n type: Boolean,\n required: false,\n defaultValue: false,\n },\n\n allPartitions: {\n type: Array as PropType>,\n required: true,\n },\n\n availablePartitions: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const partitionSelector = ref(false);\n let all = new ArrayDataSource([], {});\n const available = ref(new ArrayDataSource([], {}));\n\n const selectedPartition = ref('');\n // const selectedPartitionId = ref(0);\n const coordinatorsDisabled = computed(() => item.value.partitionId === 0);\n\n const item = ref({ id: 0, partitionId: 0, coordinators: [] });\n\n const users = DatasourcesService.Users;\n const userSelector = ref(false);\n const excludedUsers = ref>([]);\n\n const partitionErrors = ref>([]);\n\n watch(\n () => props.allPartitions,\n (allPartitions) => {\n all = new ArrayDataSource(allPartitions, {});\n },\n { immediate: true },\n );\n\n watch(\n () => props.availablePartitions,\n (availablePartitions) => {\n available.value = new ArrayDataSource(availablePartitions, {});\n },\n { immediate: true },\n );\n\n watch(\n () => props.partition,\n (partition) => {\n item.value = cloneDeep(partition);\n },\n {\n immediate: true,\n },\n );\n\n watch(\n () => item.value.partitionId,\n async (partitionId) => {\n if (partitionId !== 0) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('bcm.testing.functional.test.loadingScenarios').toString());\n\n try {\n const p = await all.getById(item.value.partitionId) as PartitionDto | null;\n if (p == null) {\n return;\n }\n\n selectedPartition.value = LanguageTemplate(p, 'name').text;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n selectedPartition.value = '';\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n } else {\n selectedPartition.value = '';\n }\n },\n { immediate: true },\n );\n\n function addPartition(partition: PartitionDto) {\n if (partition == null) {\n return;\n }\n\n partitionSelector.value = false;\n item.value.partitionId = partition.id;\n\n partitionErrors.value = [];\n }\n\n function changePartition() {\n if (props.isNew) {\n partitionSelector.value = true;\n }\n }\n\n function addCoordinator() {\n excludedUsers.value = item.value.coordinators.map(c => c.user);\n userSelector.value = true;\n }\n\n function removeCoordinator(user: BcpFunctionalTestPartitionCoordinatorDto) {\n for (let i = 0; i < item.value.coordinators.length; ++i) {\n if (item.value.coordinators[i].user.username === user.user.username) {\n item.value.coordinators.splice(i, 1);\n break;\n }\n }\n }\n\n function addSelectedUser(user: SimpleUserDto) {\n item.value.coordinators.push({ id: 0, user });\n userSelector.value = false;\n }\n\n function saveChanges() {\n if (validate()) {\n emit('save', item.value);\n }\n }\n\n function validate(): boolean {\n let error = false;\n if (item.value.partitionId == null || item.value.partitionId === 0) {\n partitionErrors.value = [i18n.t('bcm.testing.functional.test.noPartitionSelected').toString()];\n error = true;\n } else {\n partitionErrors.value = [];\n }\n\n return !error;\n }\n\n return {\n item,\n\n available,\n\n addPartition,\n changePartition,\n partitionSelector,\n selectedPartition,\n\n existingPartitions: [],\n\n users,\n userSelector,\n excludedUsers,\n addSelectedUser,\n\n addCoordinator,\n removeCoordinator,\n\n coordinatorsDisabled,\n\n saveChanges,\n\n validate,\n partitionErrors,\n\n icons: {\n mdiPlus,\n mdiMinus,\n },\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestAdminPartitionEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestAdminPartitionEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestAdminPartitionEditor.vue?vue&type=template&id=79c7db71&scoped=true&\"\nimport script from \"./BcpFunctionalTestAdminPartitionEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestAdminPartitionEditor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"79c7db71\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VIcon,VRow,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_vm._v(\" \"+_vm._s(_vm.text)+\" \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport { BcpFunctionalTestPartitionCoordinatorDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionCoordinatorDto';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestAdminPartitionCoordinators',\n\n props: {\n coordinators: {\n type: Array as PropType>,\n required: false,\n default: () => [],\n },\n },\n\n setup(props) {\n const text = computed(() => {\n let txt = '';\n if (props.coordinators.length > 0) {\n for (let i = 0; i < props.coordinators.length - 1; ++i) {\n txt += props.coordinators[i].user.info + ', ';\n }\n txt += props.coordinators[props.coordinators.length - 1].user.info;\n }\n\n return txt;\n });\n\n return {\n text,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestAdminPartitionCoordinators.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestAdminPartitionCoordinators.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestAdminPartitionCoordinators.vue?vue&type=template&id=e3c81d24&scoped=true&\"\nimport script from \"./BcpFunctionalTestAdminPartitionCoordinators.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestAdminPartitionCoordinators.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e3c81d24\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_vm._v(_vm._s(_vm.text))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport VDataTableLanguageTemplate from './VDataTableLanguageTemplate.vue';\n\nexport default defineComponent({\n components: { VDataTableLanguageTemplate },\n name: 'VDataTablePartitionItem',\n\n props: {\n itemId: {\n type: Number,\n required: true,\n },\n },\n\n setup(props) {\n const datasource = DatasourcesService.Bcm.Partitions;\n const text = ref('');\n watch(\n () => props.itemId,\n async (itemId) => {\n const part = await datasource.getById(itemId);\n if (part == null) {\n console.error('VDataTablePartitionItem: Partition with id ' + itemId + ' not found...');\n text.value = '';\n return;\n }\n\n let t = LanguageTemplate(part, 'name').text;\n\n if (part.parentId != null && part.parentId !== 0) {\n const parent = await datasource.getById(part.parentId);\n if (parent != null) {\n t = LanguageTemplate(parent, 'name').text + ' \\\\ ' + t;\n }\n }\n\n text.value = t;\n },\n { immediate: true },\n );\n\n return {\n text,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VDataTablePartitionItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VDataTablePartitionItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VDataTablePartitionItem.vue?vue&type=template&id=6aeb6a82&scoped=true&\"\nimport script from \"./VDataTablePartitionItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./VDataTablePartitionItem.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6aeb6a82\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { PdDataTable } from '@/components/core/PdDataTable';\nimport { BcpFunctionalTestPartitionDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionDto';\nimport TreeItemSelector from '@/components/all/TreeItemSelector.vue';\nimport BcpFunctionalTestAdminPartitionEditor from './BcpFunctionalTestAdminPartitionEditor.vue';\nimport { mdiPlaylistPlus, mdiPlaylistRemove, mdiDotsVertical, mdiPencil, mdiTrashCan, mdiPlaylistCheck } from '@mdi/js';\nimport { v4 } from 'uuid';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport i18n from '@/i18n';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { cloneDeep } from 'lodash';\nimport { DataTableHeader } from 'vuetify';\nimport { PartitionDto } from '@/dtos/bcm';\nimport { ArrayDataSource } from '@/core/datasource';\nimport BcpFunctionalTestAdminPartitionCoordinators from './BcpFunctionalTestAdminPartitionCoordinators.vue';\nimport VDataTablePartitionItem from '@/components/core/VDataTablePartitionItem.vue';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestAdminPartitionsView',\n\n components: {\n PdDataTable,\n TreeItemSelector,\n BcpFunctionalTestAdminPartitionEditor,\n BcpFunctionalTestAdminPartitionCoordinators,\n VDataTablePartitionItem,\n },\n\n props: {\n partitions: {\n type: Array as PropType>,\n required: true,\n },\n\n allPartitions: {\n type: Array as PropType>,\n required: false,\n default: () => [],\n },\n\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n\n editable: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n\n setup(props, { emit }) {\n const headers: Array = [\n {\n value: 'partitionId',\n text: 'Partition',\n width: 500,\n },\n {\n value: 'coordinators',\n text: 'Coordinators',\n sortable: false,\n },\n {\n value: 'actions',\n text: '',\n width: 50,\n sortable: false,\n },\n ];\n\n const strategyScenariosDatasource = DatasourcesService.Bcm.StrategyScenarios;\n\n const availablePartitions = ref>([]);\n const partitionsDatasource = ref(new ArrayDataSource([], { readonly: true }));\n watch(\n () => props.allPartitions,\n async (allPartitions) => {\n updateAvailablePartitions(props.partitions, allPartitions);\n },\n { immediate: true },\n );\n\n watch(\n () => props.partitions,\n async (partitions) => {\n updateAvailablePartitions(partitions, await partitionsDatasource.value.data() as Array);\n },\n { immediate: true },\n );\n\n function updateAvailablePartitions(added: Array, allPartitions: Array): void {\n partitionsDatasource.value = new ArrayDataSource(allPartitions, { readonly: true });\n\n const available = cloneDeep(allPartitions);\n\n for (let i = 0; i < added.length; ++i) {\n for (let j = 0; j < available.length; ++j) {\n if (added[i].partitionId === available[j].id) {\n available.splice(j, 1);\n break;\n }\n }\n }\n\n availablePartitions.value = available;\n }\n\n const showPartitionEditor = ref(false);\n const newPartition = ref(false);\n function addPartition() {\n editingPartition.value = {\n id: 0,\n uuid: v4(),\n partitionId: 0,\n strategyScenarioId: 0,\n coordinators: [],\n };\n newPartition.value = true;\n showPartitionEditor.value = true;\n }\n\n const editingPartition = ref({\n id: 0,\n uuid: v4(),\n partitionId: 0,\n strategyScenarioId: 0,\n coordinators: [],\n });\n\n const partitions = DatasourcesService.Bcm.Partitions;\n\n async function saveEditingChanges(partition: BcpFunctionalTestPartitionDto) {\n if (editingPartition.value == null) {\n return;\n }\n\n if (partition.partitionId === 0) {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: i18n.t('bcm.testing.functional.test.noPartitionError').toString(),\n });\n }\n\n // check for duplicates on add\n if (newPartition.value) {\n for (let i = 0; i < props.partitions.length; ++i) {\n if (props.partitions[i].partitionId === partition.partitionId) {\n const p = await partitions.getById(partition.partitionId);\n if (p == null) {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: i18n.t('bcm.testing.functional.test.noPartitionError').toString(),\n });\n } else {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: i18n.t('bcm.testing.functional.test.partitionExistsError', { partition: LanguageTemplate(p, 'name').text }).toString(),\n });\n }\n\n return;\n }\n }\n }\n\n if (newPartition.value) { // add\n emit('add', partition);\n } else { // edit\n emit('edit', partition);\n }\n\n showPartitionEditor.value = false;\n }\n\n function cancelEditing() {\n editingPartition.value = {\n id: 0,\n uuid: v4(),\n partitionId: 0,\n strategyScenarioId: 0,\n coordinators: [],\n };\n\n showPartitionEditor.value = false;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function editPartitionEvent(_: unknown, partition: any) {\n editPartition(partition.item);\n }\n\n function editPartition(partition: BcpFunctionalTestPartitionDto) {\n editingPartition.value = cloneDeep(partition);\n newPartition.value = false;\n showPartitionEditor.value = true;\n }\n\n function clearPartitionList() {\n PopupMessageService.SetMessage({\n title: i18n.t('warning').toString(),\n text: i18n.t('bcm.testing.functional.test.removeAllPartitionsWarning').toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n callback: () => {\n emit('clear');\n },\n close: () => true,\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n close: () => true,\n },\n ],\n });\n }\n\n function sortPartitions(items: BcpFunctionalTestPartitionDto[], sortBy: string[], sortDesc: boolean[]): BcpFunctionalTestPartitionDto[] {\n const map = new Map();\n for (let i = 0; i < props.allPartitions.length; ++i) {\n map.set(props.allPartitions[i].id, props.allPartitions[i]);\n }\n\n items.sort(function (left: BcpFunctionalTestPartitionDto, right: BcpFunctionalTestPartitionDto): number {\n const leftPartition = map.get(left.partitionId);\n const rightPartition = map.get(right.partitionId);\n\n if (leftPartition == null || rightPartition == null) {\n return 0;\n }\n\n let leftText = LanguageTemplate(leftPartition, 'name').text;\n let rightText = LanguageTemplate(rightPartition, 'name').text;\n\n if (leftText == null || rightText == null) {\n return 0;\n }\n\n leftText = leftText.trim().toLowerCase();\n rightText = rightText.trim().toLowerCase();\n\n if (sortDesc[0] === false) {\n return leftText.localeCompare(rightText);\n } else {\n return rightText.localeCompare(leftText);\n }\n });\n\n return items;\n }\n\n function removePartition(item: BcpFunctionalTestPartitionDto) {\n emit('remove', item);\n }\n\n const resetDisabled = computed(() => {\n return props.allPartitions.length === 0 || availablePartitions.value.length === 0;\n });\n\n function resetPartitionList() {\n emit('reset');\n }\n\n return {\n strategyScenariosDatasource,\n headers,\n availablePartitions,\n partitionsDatasource,\n addPartition,\n clearPartitionList,\n resetPartitionList,\n resetDisabled,\n showPartitionEditor,\n editPartitionEvent,\n editPartition,\n removePartition,\n newPartition,\n editingPartition,\n saveEditingChanges,\n cancelEditing,\n sortPartitions,\n icons: {\n mdiPlaylistPlus,\n mdiPlaylistRemove,\n mdiPlaylistCheck,\n mdiDotsVertical,\n mdiPencil,\n mdiTrashCan,\n },\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestAdminPartitionsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestAdminPartitionsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestAdminPartitionsView.vue?vue&type=template&id=9288c91a&scoped=true&\"\nimport script from \"./BcpFunctionalTestAdminPartitionsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestAdminPartitionsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9288c91a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VDataTable,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu})\n","import { IDto } from '@/dtos';\nimport { RtoScaleDto } from '../RtoScaleDto';\nimport { BcpFunctionalScenarioDto } from './BcpFunctionalScenarioDto';\nimport type { BcpFunctionalTestApplicationDto } from './BcpFunctionalTestApplicationDto';\nimport type { BcpFunctionalTestAssetDto } from './BcpFunctionalTestAssetDto';\nimport { BcpFunctionalTestObserverDto } from './BcpFunctionalTestObserverDto';\nimport type { BcpFunctionalTestPartitionDto } from './BcpFunctionalTestPartitionDto';\nimport { BcpFunctionalTestTechnicianDto } from './BcpFunctionalTestTechnicianDto';\n\nexport enum BcpFunctionalTestStatus {\n Created = 0,\n Planning = 1,\n Testing = 2,\n Finalizing = 3,\n Finished = 4,\n}\n\nexport enum BcpFunctionalTestUserAccessRights {\n Admin = 1,\n Editor = 2,\n Observer = 3,\n}\n\nexport enum BcpFunctionalTestResult {\n Fail = 0,\n Partial = 1,\n Success = 2,\n}\n\nexport interface BcpFunctionalTestDto extends IDto {\n name: string,\n\n status: BcpFunctionalTestStatus\n schedule: string\n\n scenarioId: number\n scenario?: BcpFunctionalScenarioDto\n\n assumptions: string\n\n targetRtoId: number\n targetRto?: RtoScaleDto\n\n strategyScenarioId: number\n\n accessRights?: BcpFunctionalTestUserAccessRights\n\n partitions: Array\n\n testAssets: boolean\n assets: Array\n\n testApplications: boolean\n applications: Array\n\n testCallTree: boolean\n\n observers: Array\n\n technicians: Array\n\n testResult?: BcpFunctionalTestResult\n testComments?: string\n\n callTreeResult?: BcpFunctionalTestResult\n callTreeComments?: string\n\n assetsResult?: BcpFunctionalTestResult\n assetsComments?: string\n\n applicationsResult?: BcpFunctionalTestResult\n applicationsComments?: string\n};\n","import axios from '@/api/axios';\nimport { EntityApiBase } from '@/api/EntityApiBase';\nimport { FileDto } from '@/dtos/all';\nimport { BcpFunctionalTestDto, BcpFunctionalTestPartitionDto } from '@/dtos/bcm/testing/BcpFunctionalTestDtos';\nimport { BcpFunctionalTestPartitionCallTreePersonDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionCallTreePersonDto';\nimport { BcpFunctionalTestPartitionCallTreeUserDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionCallTreeUserDto';\nimport { BcpFunctionalTestPartitionRecoverySiteUserApplicationAnswerDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteUserApplicationAnswerDto';\nimport { BcpFunctionalTestPartitionRecoverySiteUserAssetAnswerDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteUserAssetAnswerDto';\nimport { BcpFunctionalTestPartitionRecoverySiteUserDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteUserDto';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\n\nexport default class BcpFunctionalTestApi extends EntityApiBase {\n static async GetTest(testId: number): Promise {\n const response = await axios.get(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}`);\n return Promise.resolve(response.data);\n }\n\n static async GetSimpleTest(testId: number): Promise {\n const response = await axios.get(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/GetSimple`);\n return Promise.resolve(response.data);\n }\n\n static async CreateTest(test: BcpFunctionalTestDto): Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/`, test);\n return Promise.resolve(response.data);\n }\n\n static async SaveChanges(test: BcpFunctionalTestDto): Promise {\n const response = await axios.put(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${test.id}`, test);\n return Promise.resolve(response.data);\n }\n\n static async DeleteTest(testId: number): Promise {\n await axios.delete(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}`);\n }\n\n static async GoForPlanning(testId: number): Promise {\n await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/GoForPlanning`);\n }\n\n static async GoForTesting(testId: number): Promise {\n await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/GoForTesting`);\n }\n\n static async GoForFinalizing(testId: number): Promise {\n await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/GoForFinalizing`);\n }\n\n static async GoForFinished(testId: number): Promise {\n await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/GoForFinished`);\n }\n\n static async Abort(testId: number): Promise {\n await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/Abort`);\n }\n\n static async GetTestForPlanning(testId: number): Promise {\n const response = await axios.get(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/PlanningPhase`);\n return Promise.resolve(response.data);\n }\n\n static async GetTestForTesting(testId: number): Promise {\n const response = await axios.get(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/TestingPhase`);\n return Promise.resolve(response.data);\n }\n\n static async GetTestForFinalizing(testId: number): Promise {\n const response = await axios.get(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/FinalizingPhase`);\n return Promise.resolve(response.data);\n }\n\n static async GetTestForFinished(testId: number): Promise {\n const response = await axios.get(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/FinishedPhase`);\n return Promise.resolve(response.data);\n }\n\n static async AddCallTreeUser(testId: number, partitionId: number, user: SimpleUserDto): Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/Partition/${partitionId}/AddCallTreeUser`, user);\n return Promise.resolve(response.data);\n }\n\n static async RemoveCallTreeUser(testId: number, partitionId: number, callTreeUserId: number): Promise {\n await axios.delete(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/Partition/${partitionId}/RemoveCallTreeUser/${callTreeUserId}`);\n return Promise.resolve();\n }\n\n static async AddRecoverySiteUser(testId: number, partitionId: number, partitionRecoverySiteId: number, user: SimpleUserDto): Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/Partition/${partitionId}/RecoverySite/${partitionRecoverySiteId}/AddRecoverySiteUser`, user);\n return Promise.resolve(response.data);\n }\n\n static async RemoveRecoverySiteUser(testId: number, partitionId: number, partitionRecoverySiteId: number, recoverySiteUserId: number): Promise {\n await axios.delete(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/Partition/${partitionId}/RecoverySite/${partitionRecoverySiteId}/RemoveRecoverySiteUser/${recoverySiteUserId}`);\n return Promise.resolve();\n }\n\n static async UpdateCallTreeAnswer(testId: number, testPartitionId: number, person: BcpFunctionalTestPartitionCallTreePersonDto): Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/Partition/${testPartitionId}/UpdateCallTreeAnswer`, person);\n return Promise.resolve(response.data);\n }\n\n static async UpdateRecoverySiteUserAnswer(testId: number, testPartitionId: number, recoverySiteId: number, userAnswer: BcpFunctionalTestPartitionRecoverySiteUserDto): Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/Partition/${testPartitionId}/RecoverySite/${recoverySiteId}/UpdateUserAnswer`, userAnswer);\n return Promise.resolve(response.data);\n }\n\n static async UpdateRecoverySiteUserAssetAnswer(testId: number, testPartitionId: number, recoverySiteId: number, recoverySiteAssetId: number, userAnswer: BcpFunctionalTestPartitionRecoverySiteUserAssetAnswerDto): Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/Partition/${testPartitionId}/RecoverySite/${recoverySiteId}/Asset/${recoverySiteAssetId}/UpdateUserAnswer`, userAnswer);\n return Promise.resolve(response.data);\n }\n\n static async UpdateRecoverySiteUserApplicationAnswer(\n testId: number,\n testPartitionId: number,\n recoverySiteId: number,\n recoverySiteApplicationId: number,\n userAnswer: BcpFunctionalTestPartitionRecoverySiteUserApplicationAnswerDto,\n ): Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/Partition/${testPartitionId}/RecoverySite/${recoverySiteId}/Application/${recoverySiteApplicationId}/UpdateUserAnswer`, userAnswer);\n return Promise.resolve(response.data);\n }\n\n static async UpdatePartitionResults(testId: number, testPartitionId: number, partition: BcpFunctionalTestPartitionDto):Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/Partition/${testPartitionId}/UpdateResults`, partition);\n return Promise.resolve(response.data);\n }\n\n static async UpdateTestResults(testId: number, test: BcpFunctionalTestDto):Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/UpdateResults`, test);\n return Promise.resolve(response.data);\n }\n\n static async GoBackToTesting(testId: number):Promise {\n await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/GoBackToTesting`);\n }\n\n static async UpdatePartitionTargets(testId: number, partition: BcpFunctionalTestPartitionDto): Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/Partition/${partition.id}/UpdatePartitionTargets`, partition);\n return Promise.resolve(response.data);\n }\n\n static async DownloadTestReport(testId: number, detailed: boolean): Promise {\n const response = await axios.get(`/masterplans/${EntityApiBase.EntityId}/bc/testing/BcpFunctionalTests/${testId}/Export?detailed=${detailed}`);\n\n return Promise.resolve(response.data);\n }\n}\n","import StrategyApi from '@/api/bcm/StrategyApi';\nimport BcpFunctionalTestApi from '@/api/bcm/testing/BcpFunctionalTestApi';\nimport { FileDto } from '@/dtos/all';\nimport { PartitionDto } from '@/dtos/bcm';\nimport { BcpFunctionalTestStatus } from '@/dtos/bcm/testing/BcpFunctionalTestDto';\nimport { BcpFunctionalTestDto, BcpFunctionalTestPartitionDto } from '@/dtos/bcm/testing/BcpFunctionalTestDtos';\nimport { BcpFunctionalTestPartitionCallTreePersonDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionCallTreePersonDto';\nimport { BcpFunctionalTestPartitionCallTreeUserDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionCallTreeUserDto';\nimport { BcpFunctionalTestPartitionRecoverySiteUserApplicationAnswerDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteUserApplicationAnswerDto';\nimport { BcpFunctionalTestPartitionRecoverySiteUserAssetAnswerDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteUserAssetAnswerDto';\nimport { BcpFunctionalTestPartitionRecoverySiteUserDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteUserDto';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\n\nexport default class BcpFunctionalTestService {\n public static async GetTest(id: number): Promise {\n return BcpFunctionalTestApi.GetTest(id);\n }\n\n public static async GetSimpleTest(id: number): Promise {\n return BcpFunctionalTestApi.GetSimpleTest(id);\n }\n\n public static async GetPartitionScenarios(strategyId: number, scenarioId: number): Promise> {\n return StrategyApi.GetStrategyScenarioPartitions(strategyId, scenarioId);\n }\n\n public static async CreateTest(test: BcpFunctionalTestDto): Promise {\n return BcpFunctionalTestApi.CreateTest(test);\n }\n\n public static async SaveTestChanges(test: BcpFunctionalTestDto): Promise {\n return BcpFunctionalTestApi.SaveChanges(test);\n }\n\n public static async DeleteTest(test: BcpFunctionalTestDto): Promise {\n return BcpFunctionalTestApi.DeleteTest(test.id);\n }\n\n public static async GoForPlanning(test: BcpFunctionalTestDto): Promise {\n await BcpFunctionalTestApi.GoForPlanning(test.id);\n test.status = BcpFunctionalTestStatus.Planning;\n return test;\n }\n\n public static async GoForTesting(test: BcpFunctionalTestDto): Promise {\n await BcpFunctionalTestApi.GoForTesting(test.id);\n test.status = BcpFunctionalTestStatus.Testing;\n return test;\n }\n\n public static async GoForFinalizing(test: BcpFunctionalTestDto): Promise {\n await BcpFunctionalTestApi.GoForFinalizing(test.id);\n test.status = BcpFunctionalTestStatus.Finalizing;\n return test;\n }\n\n public static async GoForFinished(test: BcpFunctionalTestDto): Promise {\n await BcpFunctionalTestApi.GoForFinished(test.id);\n test.status = BcpFunctionalTestStatus.Finished;\n return test;\n }\n\n public static async AbortTest(test: BcpFunctionalTestDto): Promise {\n await BcpFunctionalTestApi.Abort(test.id);\n test.status = BcpFunctionalTestStatus.Created;\n return test;\n }\n\n static GetTestForPlanning(testId: number): Promise {\n return BcpFunctionalTestApi.GetTestForPlanning(testId);\n }\n\n static GetTestForTesting(testId: number): Promise {\n return BcpFunctionalTestApi.GetTestForTesting(testId);\n }\n\n static GetTestForFinalizing(testId: number): Promise {\n return BcpFunctionalTestApi.GetTestForFinalizing(testId);\n }\n\n static GetTestForFinished(testId: number): Promise {\n return BcpFunctionalTestApi.GetTestForFinished(testId);\n }\n\n static AddCallTreeUser(testId: number, partitionId: number, user: SimpleUserDto): Promise {\n return BcpFunctionalTestApi.AddCallTreeUser(testId, partitionId, user);\n }\n\n static RemoveCallTreeUser(testId: number, partitionId: number, user: BcpFunctionalTestPartitionCallTreeUserDto): Promise {\n return BcpFunctionalTestApi.RemoveCallTreeUser(testId, partitionId, user.id);\n }\n\n static AddRecoverySiteUser(testId: number, partitionId: number, partitionRecoverySiteId: number, user: SimpleUserDto): Promise {\n return BcpFunctionalTestApi.AddRecoverySiteUser(testId, partitionId, partitionRecoverySiteId, user);\n }\n\n static RemoveRecoverySiteUser(testId: number, partitionId: number, partitionRecoverySiteId:number, user: BcpFunctionalTestPartitionRecoverySiteUserDto): Promise {\n return BcpFunctionalTestApi.RemoveRecoverySiteUser(testId, partitionId, partitionRecoverySiteId, user.id);\n }\n\n static async UpdateCallTreeAnswer(testId: number, testPartitionId: number, person: BcpFunctionalTestPartitionCallTreePersonDto): Promise {\n return BcpFunctionalTestApi.UpdateCallTreeAnswer(testId, testPartitionId, person);\n }\n\n static async UpdateRecoverySiteUserAnswer(testId: number, testPartitionId: number, recoverySiteId: number, userAnswer: BcpFunctionalTestPartitionRecoverySiteUserDto):Promise {\n return BcpFunctionalTestApi.UpdateRecoverySiteUserAnswer(testId, testPartitionId, recoverySiteId, userAnswer);\n }\n\n static async UpdateRecoverySiteUserAssetAnswer(testId: number, testPartitionId: number, recoverySiteId: number, recoverySiteAssetId: number, userAnswer: BcpFunctionalTestPartitionRecoverySiteUserAssetAnswerDto):Promise {\n return BcpFunctionalTestApi.UpdateRecoverySiteUserAssetAnswer(testId, testPartitionId, recoverySiteId, recoverySiteAssetId, userAnswer);\n }\n\n static async UpdateRecoverySiteUserApplicationAnswer(\n testId: number,\n testPartitionId: number,\n recoverySiteId: number,\n recoverySiteApplicationId: number,\n userAnswer: BcpFunctionalTestPartitionRecoverySiteUserApplicationAnswerDto,\n ):Promise {\n return BcpFunctionalTestApi.UpdateRecoverySiteUserApplicationAnswer(testId, testPartitionId, recoverySiteId, recoverySiteApplicationId, userAnswer);\n }\n\n static async UpdatePartitionResults(testId: number, testPartitionId: number, partition: BcpFunctionalTestPartitionDto):Promise {\n return BcpFunctionalTestApi.UpdatePartitionResults(testId, testPartitionId, partition);\n }\n\n static async UpdateTestResults(test: BcpFunctionalTestDto):Promise {\n return BcpFunctionalTestApi.UpdateTestResults(test.id, test);\n }\n\n static async GoBackToTesting(test: BcpFunctionalTestDto):Promise {\n return BcpFunctionalTestApi.GoBackToTesting(test.id);\n }\n\n static async UpdatePartitionTargets(test: BcpFunctionalTestDto, partition: BcpFunctionalTestPartitionDto): Promise {\n return BcpFunctionalTestApi.UpdatePartitionTargets(test.id, partition);\n }\n\n static async DownloadTestReport(test: BcpFunctionalTestDto, detailed: boolean): Promise {\n return BcpFunctionalTestApi.DownloadTestReport(test.id, detailed);\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-col',[_c('user-selector',{attrs:{\"datasource\":_vm.usersDatasource,\"exclude\":_vm.excludedUsers,\"visible\":_vm.userSelectorVisibility},on:{\"select\":_vm.addSelectedUser,\"cancel\":function($event){_vm.userSelectorVisibility = false}}}),_c('div',{staticClass:\"text-subtitle-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.observers'))+\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"disabled\":_vm.disabled},on:{\"click\":_vm.showUserSelector}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.addObserver'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistPlus)+\" \")])],1),_c('v-btn',{staticClass:\"text-none ml-2\",attrs:{\"small\":\"\",\"disabled\":_vm.disabled},on:{\"click\":_vm.clearObserverList}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.removeAllObservers'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistRemove)+\" \")])],1)],1),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.testObservers,\"item-key\":\"uuid\",\"dense\":\"\",\"fixed-header\":\"\",\"height\":200,\"page\":1,\"items-per-page\":1000,\"custom-sort\":_vm.sortObservers,\"sort-by\":\"user\",\"must-sort\":\"\",\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"item.user\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(item.user.info)+\" \")]}},{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\",\"close-on-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.mdiDotsVertical)+\" \")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{on:{\"click\":function($event){return _vm.removeObserver(item)}}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiTrashCan)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.observerRemove'))+\" \")])],1)],1)],1)]}}],null,true)})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { BcpFunctionalTestObserverDto } from '@/dtos/bcm/testing/BcpFunctionalTestDtos';\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport {\n mdiPlaylistPlus,\n mdiPlaylistRemove,\n mdiDotsVertical,\n mdiTrashCan,\n} from '@mdi/js';\nimport { DataTableHeader } from 'vuetify';\nimport i18n from '@/i18n';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nimport PdPopup from '@/components/core/PdPopup.vue';\nimport UserSelector from '@/components/all/UserSelector.vue';\nimport DatasourcesService from '@/services/DatasourcesService';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestAdminObservers',\n\n components: {\n PdPopup,\n UserSelector,\n },\n\n props: {\n testObservers: {\n type: Array as PropType>,\n required: true,\n },\n\n disabled: {\n type: Boolean,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const userSelectorVisibility = ref(false);\n\n const usersDatasource = DatasourcesService.Users;\n\n function showUserSelector() {\n userSelectorVisibility.value = true;\n }\n\n const excludedUsers = computed(() => {\n return props.testObservers.map((i) => i.user);\n });\n\n const headers: Array = [\n {\n value: 'user',\n text: i18n.t('bcm.testing.functional.test.admin.observer').toString(),\n },\n\n {\n value: 'actions',\n text: '',\n width: 50,\n sortable: false,\n },\n ];\n\n function sortObservers(items: BcpFunctionalTestObserverDto[], sortBy: string[], sortDesc: boolean[]): BcpFunctionalTestObserverDto[] {\n items.sort(function (left: BcpFunctionalTestObserverDto, right: BcpFunctionalTestObserverDto): number {\n let leftText = left.user.info;\n let rightText = right.user.info;\n\n if (leftText == null || rightText == null) {\n return 0;\n }\n\n leftText = leftText.trim().toLowerCase();\n rightText = rightText.trim().toLowerCase();\n\n if (sortDesc[0] === false) {\n return leftText.localeCompare(rightText);\n } else {\n return rightText.localeCompare(leftText);\n }\n });\n\n return items;\n }\n\n function addSelectedUser(user: SimpleUserDto) {\n userSelectorVisibility.value = false;\n emit('add', user);\n }\n\n function removeObserver(observer: BcpFunctionalTestObserverDto) {\n emit('remove', observer);\n }\n\n function clearObserverList() {\n emit('clear');\n }\n\n return {\n usersDatasource,\n excludedUsers,\n userSelectorVisibility,\n addSelectedUser,\n\n removeObserver,\n\n showUserSelector,\n clearObserverList,\n\n headers,\n\n sortObservers,\n\n icons: {\n mdiPlaylistPlus,\n mdiPlaylistRemove,\n mdiDotsVertical,\n mdiTrashCan,\n },\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestAdminObservers.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestAdminObservers.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestAdminObservers.vue?vue&type=template&id=d468a0fc&scoped=true&\"\nimport script from \"./BcpFunctionalTestAdminObservers.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestAdminObservers.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d468a0fc\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VCol,VDataTable,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-col',[_c('pd-popup',{attrs:{\"visible\":_vm.technicianEditorVisibility}},[_c('v-card',{attrs:{\"light\":\"\",\"width\":\"500\"}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.editTechnicianTitle'))+\" \")]),_c('v-card-text',[_c('v-text-field',{attrs:{\"label\":_vm.$t('bcm.testing.functional.test.admin.technicianName'),\"error-messages\":_vm.nameErrors},model:{value:(_vm.editingTechnician.name),callback:function ($$v) {_vm.$set(_vm.editingTechnician, \"name\", $$v)},expression:\"editingTechnician.name\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('bcm.testing.functional.test.admin.technicianEmail'),\"error-messages\":_vm.emailErrors},model:{value:(_vm.editingTechnician.email),callback:function ($$v) {_vm.$set(_vm.editingTechnician, \"email\", $$v)},expression:\"editingTechnician.email\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('bcm.testing.functional.test.admin.technicianPhone'),\"error-messages\":_vm.phoneErrors},model:{value:(_vm.editingTechnician.phone),callback:function ($$v) {_vm.$set(_vm.editingTechnician, \"phone\", $$v)},expression:\"editingTechnician.phone\"}})],1),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancelEditing}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveEditingChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.save'))+\" \")])],1)],1)],1),_c('div',{staticClass:\"text-subtitle-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.technicians'))+\" \"),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"disabled\":_vm.disabled},on:{\"click\":_vm.addTechnician}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.addTechnician'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistPlus)+\" \")])],1),_c('v-btn',{staticClass:\"text-none ml-2\",attrs:{\"small\":\"\",\"disabled\":_vm.disabled},on:{\"click\":_vm.clearTechnicianList}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.removeAllTechnicians'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistRemove)+\" \")])],1)],1),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.testTechnicians,\"item-key\":\"uuid\",\"dense\":\"\",\"fixed-header\":\"\",\"height\":200,\"page\":1,\"items-per-page\":1000,\"sort-by\":\"name\",\"must-sort\":\"\",\"hide-default-footer\":\"\"},on:{\"dblclick:row\":_vm.editTechnicianEvent},scopedSlots:_vm._u([{key:\"item.actions\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\",\"close-on-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.mdiDotsVertical)+\" \")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{on:{\"click\":function($event){return _vm.editTechnician(item)}}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiTrashCan)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.technicianEdit'))+\" \")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.removeTechnician(item)}}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPencil)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.technicianRemove'))+\" \")])],1)],1)],1)]}}],null,true)})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { BcpFunctionalTestTechnicianDto } from '@/dtos/bcm/testing/BcpFunctionalTestDtos';\nimport { defineComponent, PropType, ref } from '@vue/composition-api';\nimport {\n mdiPlaylistPlus,\n mdiPlaylistRemove,\n mdiDotsVertical,\n mdiPencil,\n mdiTrashCan,\n} from '@mdi/js';\nimport { DataItemProps, DataTableHeader } from 'vuetify';\nimport i18n from '@/i18n';\nimport PdPopup from '@/components/core/PdPopup.vue';\nimport UserSelector from '@/components/all/UserSelector.vue';\nimport { cloneDeep } from 'lodash';\nimport { v4 } from 'uuid';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestAdminTechnicians',\n\n components: {\n PdPopup,\n UserSelector,\n },\n\n props: {\n testTechnicians: {\n type: Array as PropType>,\n required: true,\n },\n\n disabled: {\n type: Boolean,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const technicianEditorVisibility = ref(false);\n\n const nameErrors = ref>([]);\n const emailErrors = ref>([]);\n const phoneErrors = ref>([]);\n\n function showUserSelector() {\n technicianEditorVisibility.value = true;\n }\n\n const headers: Array = [\n {\n value: 'name',\n text: i18n.t('bcm.testing.functional.test.admin.technicianName').toString(),\n },\n {\n value: 'email',\n text: i18n.t('bcm.testing.functional.test.admin.technicianEmail').toString(),\n },\n {\n value: 'phone',\n text: i18n.t('bcm.testing.functional.test.admin.technicianPhone').toString(),\n },\n\n {\n value: 'actions',\n text: '',\n width: 50,\n sortable: false,\n },\n ];\n\n const editingTechnician = ref({\n name: '',\n email: '',\n phone: '',\n id: 0,\n });\n\n function addTechnician() {\n editingTechnician.value = {\n name: '',\n email: '',\n phone: '',\n id: 0,\n };\n\n technicianEditorVisibility.value = true;\n }\n\n function editTechnicianEvent(_: never, row: DataItemProps) {\n editTechnician(row.item);\n }\n\n function editTechnician(technician: BcpFunctionalTestTechnicianDto) {\n editingTechnician.value = cloneDeep(technician);\n technicianEditorVisibility.value = true;\n }\n\n function removeTechnician(technician: BcpFunctionalTestTechnicianDto) {\n emit('remove', technician);\n }\n\n function clearTechnicianList() {\n emit('clear');\n }\n\n function cancelEditing() {\n editingTechnician.value = {\n name: '',\n email: '',\n phone: '',\n id: 0,\n };\n technicianEditorVisibility.value = false;\n }\n\n function saveEditingChanges() {\n let error = false;\n if (editingTechnician.value.name.trim() === '') {\n nameErrors.value = ['Name is required'];\n error = true;\n } else {\n nameErrors.value = [];\n }\n\n if (editingTechnician.value.email.trim() === '') {\n emailErrors.value = ['Email is required'];\n error = true;\n } else if (!/^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(\\.\\w{2,3})+$/.test(editingTechnician.value.email)) {\n emailErrors.value = ['Please enter a valid email address'];\n error = true;\n } else {\n emailErrors.value = [];\n }\n\n if (editingTechnician.value.phone.trim() === '') {\n phoneErrors.value = ['Phone is required'];\n error = true;\n } else {\n phoneErrors.value = [];\n }\n\n if (error) {\n return;\n }\n\n if (editingTechnician.value.uuid == null) {\n editingTechnician.value.uuid = v4();\n emit('add', editingTechnician.value);\n } else {\n emit('update', editingTechnician.value);\n }\n\n technicianEditorVisibility.value = false;\n }\n\n return {\n addTechnician,\n editTechnicianEvent,\n editTechnician,\n technicianEditorVisibility,\n\n editingTechnician,\n cancelEditing,\n saveEditingChanges,\n\n removeTechnician,\n\n showUserSelector,\n clearTechnicianList,\n\n headers,\n\n nameErrors,\n emailErrors,\n phoneErrors,\n\n icons: {\n mdiPlaylistPlus,\n mdiPlaylistRemove,\n mdiDotsVertical,\n mdiPencil,\n mdiTrashCan,\n },\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestAdminTechnicians.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestAdminTechnicians.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestAdminTechnicians.vue?vue&type=template&id=458edda4&scoped=true&\"\nimport script from \"./BcpFunctionalTestAdminTechnicians.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestAdminTechnicians.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"458edda4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCol,VDataTable,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdDatePicker from '@/components/core/PdDatePicker.vue';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { BcpFunctionalTestApplicationDto, BcpFunctionalTestAssetDto, BcpFunctionalTestDto, BcpFunctionalTestObserverDto, BcpFunctionalTestPartitionDto, BcpFunctionalTestTechnicianDto } from '@/dtos/bcm/testing/BcpFunctionalTestDtos';\nimport i18n from '@/i18n';\nimport { computed, defineComponent, nextTick, ref, watch } from '@vue/composition-api';\nimport BcpFunctionalTestAdminAssetsView from './BcpFunctionalTestAdmin/BcpFunctionalTestAdminAssetsView.vue';\nimport BcpFunctionalTestAdminApplicationsView from './BcpFunctionalTestAdmin/BcpFunctionalTestAdminApplicationsView.vue';\nimport BcpFunctionalTestAdminPartitionsView from './BcpFunctionalTestAdmin/BcpFunctionalTestAdminPartitionsView.vue';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport BcpFunctionalTestService from '@/services/bcm/testing/BcpFunctionalTestService';\nimport { AssetDto, PartitionDto } from '@/dtos/bcm';\nimport { v4 } from 'uuid';\nimport { SystemDto } from '@/dtos/bcm/SystemDto';\nimport BcpFunctionalTestAdminObservers from './BcpFunctionalTestAdmin/BcpFunctionalTestAdminObservers.vue';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nimport BcpFunctionalTestAdminTechnicians from './BcpFunctionalTestAdmin/BcpFunctionalTestAdminTechnicians.vue';\nimport router from '@/router';\nimport { BcpFunctionalTestStatus } from '@/dtos/bcm/testing/BcpFunctionalTestDto';\nimport { mdiTrashCan, mdiCancel, mdiFloppy } from '@mdi/js';\nimport { AxiosError } from 'axios';\n\ninterface SelectItem {\n id: number,\n text: string,\n}\n\nexport default defineComponent({\n name: 'BcpFunctionalTestAdminView',\n\n components: {\n PdFormBase,\n PdDatePicker,\n BcpFunctionalTestAdminAssetsView,\n BcpFunctionalTestAdminApplicationsView,\n BcpFunctionalTestAdminPartitionsView,\n BcpFunctionalTestAdminObservers,\n BcpFunctionalTestAdminTechnicians,\n },\n\n props: {\n testId: {\n type: String,\n required: true,\n },\n },\n\n setup(props) {\n const loading = ref(true);\n\n let assets: Array = []; // DatasourcesService.Bcm.Assets;\n let applications: Array = []; // DatasourcesService.Bcm.Applications;\n\n const detailsDisabled = computed(() => {\n return test.value.partitions.length === 0 || test.value.targetRtoId === 0;\n });\n\n const partitionsList = ref>([]);\n\n const testScenariosItems = ref>([]);\n const strategyScenariosItems = ref>([]);\n const rtoItems = ref>([]);\n\n // map from strategyScenarioId to StrategyId\n const strategyMap = new Map();\n\n // get changes to inform user of changing partitions/apps/assets\n // changing scenario changes partitions\n // changing partition or rto changes apps/assets\n const selectedTargetRtoId = ref(0);\n const selectedStrategyScenarioId = ref(0);\n\n const newTest = computed(() => props.testId === 'new');\n\n const editableTest = computed(() => props.testId === 'new' || test.value.status === BcpFunctionalTestStatus.Created);\n\n const newDate = new Date();\n newDate.setDate(newDate.getDate() + 10);\n\n const test = ref({\n id: 0,\n name: '',\n status: BcpFunctionalTestStatus.Created,\n schedule: newDate.toISOString().substring(0, 10),\n scenarioId: 0,\n targetRtoId: 0,\n assumptions: '',\n strategyScenarioId: 0,\n partitions: [],\n\n testAssets: false,\n assets: [],\n\n testApplications: false,\n applications: [],\n\n testCallTree: false,\n\n observers: [],\n technicians: [],\n });\n\n const title = computed((): string => {\n if (newTest.value === true) {\n return i18n.t('bcm.testing.functional.test.newTestTitle').toString();\n }\n\n return i18n.t('bcm.testing.functional.test.editTestTitle').toString();\n });\n\n watch(\n selectedTargetRtoId,\n (newValue) => {\n test.value.targetRtoId = newValue;\n },\n );\n\n watch(\n selectedStrategyScenarioId,\n (newValue) => {\n // prevent changing scenario on loading\n if (loading.value === true) {\n return;\n }\n\n if (test.value.strategyScenarioId !== 0 && test.value.strategyScenarioId !== newValue) {\n // warn user\n PopupMessageService.SetMessage({\n title: i18n.t('warning').toString(),\n text: i18n.t('bcm.testing.functional.test.changingScenarioWarning').toString(),\n buttons: [\n {\n id: 'add_new',\n text: i18n.t('bcm.testing.functional.test.changingScenarioAddNew').toString(),\n color: 'success',\n callback: () => {\n // change value\n changeStrategyScenario(newValue, true);\n },\n close: () => true,\n },\n {\n id: 'no_add_new',\n text: i18n.t('bcm.testing.functional.test.changingScenarioNoAddNew').toString(),\n color: 'primary',\n callback: () => {\n // change value\n changeStrategyScenario(newValue, false);\n },\n close: () => true,\n },\n {\n id: 'cancel',\n text: i18n.t('cancel').toString(),\n color: 'error',\n callback: () => {\n selectedStrategyScenarioId.value = test.value.strategyScenarioId;\n },\n close: () => true,\n },\n ],\n });\n } else {\n // change value\n changeStrategyScenario(newValue, true);\n }\n },\n );\n\n async function changeStrategyScenario(newValue: number, addPartitions: boolean) {\n test.value.strategyScenarioId = newValue;\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('bcm.testing.functional.test.loadingPartitions').toString());\n try {\n // Fetch Current strategy partitions and replace existing partitions\n const strategyId = strategyMap.get(test.value.strategyScenarioId);\n if (strategyId == null) {\n PopupMessageService.SetMessage({\n title: 'error',\n text: 'Strategy for StrategyScenario not found...',\n });\n return;\n }\n const newPartitions = await BcpFunctionalTestService.GetPartitionScenarios(strategyId, newValue);\n\n // list of partitions to add and remove\n const add: Array = [];\n\n // current partitions map\n const currentMap = new Map();\n for (let i = 0; i < partitionsList.value.length; ++i) {\n currentMap.set(partitionsList.value[i].id, partitionsList.value[i]);\n }\n\n // new partitions map\n const newMap = new Set();\n\n partitionsList.value = [];\n for (let i = 0; i < newPartitions.length; ++i) {\n newMap.add(newPartitions[i].id);\n // add partition to all list\n partitionsList.value.push(newPartitions[i]);\n\n // check if user selected to add partitions or not\n if (addPartitions === true) {\n // add new partitions\n if (!currentMap.has(newPartitions[i].id)) {\n add.push(newPartitions[i]);\n }\n }\n }\n\n for (let i = 0; i < test.value.partitions.length; ++i) {\n if (!newMap.has(test.value.partitions[i].partitionId)) {\n test.value.partitions.splice(i, 1);\n --i;\n }\n }\n\n for (let i = 0; i < add.length; ++i) {\n test.value.partitions.push({\n partitionId: add[i].id,\n id: 0,\n coordinators: [],\n uuid: v4(),\n });\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function addPartition(partition: BcpFunctionalTestPartitionDto) {\n test.value.partitions.push(partition);\n }\n\n function editPartition(partition: BcpFunctionalTestPartitionDto) {\n for (let i = 0; i < test.value.partitions.length; ++i) {\n if (test.value.partitions[i].partitionId === partition.partitionId) {\n test.value.partitions[i].partitionId = partition.partitionId;\n test.value.partitions[i].strategyScenarioId = partition.strategyScenarioId;\n test.value.partitions[i].coordinators = partition.coordinators;\n return;\n }\n }\n }\n\n function clearPartitionList() {\n test.value.partitions = [];\n }\n\n function removePartition(partition: BcpFunctionalTestPartitionDto) {\n for (let i = 0; i < test.value.partitions.length; ++i) {\n if (test.value.partitions[i].partitionId === partition.partitionId) {\n test.value.partitions.splice(i, 1);\n return;\n }\n }\n }\n\n async function resetPartitionList() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('bcm.testing.functional.test.loadingPartitions').toString());\n try {\n const currentMap = new Map();\n for (let i = 0; i < test.value.partitions.length; ++i) {\n currentMap.set(test.value.partitions[i].partitionId, test.value.partitions[i]);\n }\n\n for (let i = 0; i < partitionsList.value.length; ++i) {\n // add new partitions\n if (!currentMap.has(partitionsList.value[i].id)) {\n test.value.partitions.push({\n partitionId: partitionsList.value[i].id,\n id: 0,\n coordinators: [],\n uuid: v4(),\n });\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n // ================ ASSETS ================\n const assetsList = ref>([]);\n\n function addAsset(asset: AssetDto) {\n test.value.assets.push({\n assetId: asset.id,\n id: 0,\n uuid: v4(),\n });\n }\n\n function clearAssetList() {\n test.value.assets = [];\n }\n\n function removeAsset(asset: BcpFunctionalTestAssetDto) {\n for (let i = 0; i < test.value.assets.length; ++i) {\n if (test.value.assets[i].assetId === asset.assetId) {\n test.value.assets.splice(i, 1);\n return;\n }\n }\n }\n\n async function resetAssetList() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('bcm.testing.functional.test.loadingAssets').toString());\n try {\n const newList: Array = [];\n for (let i = 0; i < assetsList.value.length; ++i) {\n // add new assets\n newList.push({\n assetId: assetsList.value[i].id,\n id: 0,\n uuid: v4(),\n });\n }\n\n test.value.assets = newList;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n // ================ Applications ================\n const applicationsList = ref>([]);\n\n function addApplication(application: SystemDto) {\n test.value.applications.push({\n applicationId: application.id,\n id: 0,\n uuid: v4(),\n });\n }\n\n function clearApplicationList() {\n test.value.applications = [];\n }\n\n function removeApplication(application: BcpFunctionalTestApplicationDto) {\n for (let i = 0; i < test.value.applications.length; ++i) {\n if (test.value.applications[i].applicationId === application.applicationId) {\n test.value.applications.splice(i, 1);\n return;\n }\n }\n }\n\n async function resetApplicationList() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('bcm.testing.functional.test.loadingApplications').toString());\n try {\n const newList: Array = [];\n for (let i = 0; i < applicationsList.value.length; ++i) {\n // add new applications\n newList.push({\n applicationId: applicationsList.value[i].id,\n id: 0,\n uuid: v4(),\n });\n }\n\n test.value.applications = newList;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function init() {\n try {\n const testScenarios = await DatasourcesService.BcpFunctionalTesting.Scenarios.get();\n const scenarios = await DatasourcesService.Bcm.StrategyScenarios.get();\n const rtos = await DatasourcesService.Bcm.RtoScales.get();\n\n const scen: Array = [];\n for (let i = 0; i < testScenarios.length; ++i) {\n scen.push({\n id: testScenarios[i].id,\n text: LanguageTemplate(testScenarios[i], 'name').text,\n });\n }\n\n const s: Array = [];\n for (let i = 0; i < scenarios.length; ++i) {\n strategyMap.set(scenarios[i].id, scenarios[i].strategyId);\n s.push({\n id: scenarios[i].id,\n text: LanguageTemplate(scenarios[i], 'name').text,\n });\n }\n\n const r: Array = [];\n for (let i = 0; i < rtos.length; ++i) {\n r.push({\n id: rtos[i].id,\n text: `${LanguageTemplate(rtos[i], 'name').text}`,\n });\n }\n\n testScenariosItems.value = scen;\n strategyScenariosItems.value = s;\n rtoItems.value = r;\n\n assets = await DatasourcesService.Bcm.Assets.data();\n applications = await DatasourcesService.Bcm.Applications.data();\n\n for (let i = 0; i < assets.length; ++i) {\n assetsList.value.push(assets[i]);\n }\n\n for (let i = 0; i < applications.length; ++i) {\n applicationsList.value.push(applications[i]);\n }\n\n if (props.testId !== 'new') {\n const t = await BcpFunctionalTestService.GetTest(parseInt(props.testId));\n selectedTargetRtoId.value = t.targetRtoId;\n selectedStrategyScenarioId.value = t.strategyScenarioId;\n\n const newPartitions = await BcpFunctionalTestService.GetPartitionScenarios(strategyMap.get(t.strategyScenarioId) || 0, t.strategyScenarioId);\n\n // current partitions map\n const currentMap = new Map();\n for (let i = 0; i < partitionsList.value.length; ++i) {\n currentMap.set(partitionsList.value[i].id, partitionsList.value[i]);\n }\n\n // new partitions map\n const newMap = new Set();\n\n partitionsList.value = [];\n for (let i = 0; i < newPartitions.length; ++i) {\n newMap.add(newPartitions[i].id);\n // add partition to all list\n partitionsList.value.push(newPartitions[i]);\n }\n\n for (let i = 0; i < t.observers.length; ++i) {\n t.observers[i].uuid = v4();\n }\n\n for (let i = 0; i < t.technicians.length; ++i) {\n t.technicians[i].uuid = v4();\n }\n\n test.value = t;\n } else {\n const testAssets: Array = [];\n\n for (let i = 0; i < assets.length; ++i) {\n testAssets.push({\n id: 0,\n assetId: assets[i].id,\n include: false,\n uuid: v4(),\n });\n }\n\n test.value.assets = testAssets;\n\n const testApplications: Array = [];\n\n for (let i = 0; i < applications.length; ++i) {\n testApplications.push({\n id: 0,\n applicationId: applications[i].id,\n include: false,\n uuid: v4(),\n });\n }\n\n test.value.applications = testApplications;\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n // prevent watch(selectedStrategyScenario) from triggering\n nextTick(() => {\n loading.value = false;\n });\n }\n }\n\n function addObserver(user: SimpleUserDto) {\n test.value.observers.push({\n user: user,\n id: 0,\n uuid: v4(),\n });\n }\n\n function removeObserver(observer: BcpFunctionalTestObserverDto) {\n for (let i = 0; i < test.value.observers.length; ++i) {\n if (test.value.observers[i].uuid === observer.uuid) {\n test.value.observers.splice(i, 1);\n return;\n }\n }\n }\n\n function clearObserversList() {\n test.value.observers = [];\n }\n\n function addTechnician(technician: BcpFunctionalTestTechnicianDto) {\n test.value.technicians.push(technician);\n }\n\n function updateTechnician(technician: BcpFunctionalTestTechnicianDto) {\n for (let i = 0; i < test.value.technicians.length; ++i) {\n if (test.value.technicians[i].uuid === technician.uuid) {\n technician.uuid = v4();\n test.value.technicians.splice(i, 1, technician);\n return;\n }\n }\n }\n\n function removeTechnician(technician: BcpFunctionalTestTechnicianDto) {\n for (let i = 0; i < test.value.technicians.length; ++i) {\n if (test.value.technicians[i].uuid === technician.uuid) {\n test.value.technicians.splice(i, 1);\n return;\n }\n }\n }\n\n function clearTechniciansList() {\n test.value.technicians = [];\n }\n\n const testNameErrors = ref('');\n const testScenarioErrors = ref('');\n const testDateErrors = ref('');\n const testStrategyScenarioErrors = ref('');\n const testTargetRtoErrors = ref('');\n\n async function saveChanges() {\n testScenarioErrors.value = '';\n testDateErrors.value = '';\n testStrategyScenarioErrors.value = '';\n testTargetRtoErrors.value = '';\n\n let messages = '';\n let error = false;\n\n if (!test.value.name) {\n error = true;\n messages += '\\n- ' + i18n.t('bcm.testing.functional.test.admin.errors.name').toString();\n testNameErrors.value = i18n.t('bcm.testing.functional.test.admin.errors.name').toString();\n }\n\n if (test.value.scenarioId == null || test.value.scenarioId === 0) {\n error = true;\n messages += '\\n- ' + i18n.t('bcm.testing.functional.test.admin.errors.scenario').toString();\n testScenarioErrors.value = i18n.t('bcm.testing.functional.test.admin.errors.scenario').toString();\n }\n\n if (test.value.status === BcpFunctionalTestStatus.Created) {\n const date = new Date(test.value.schedule);\n if (test.value.schedule == null || date < new Date(currentDate)) {\n error = true;\n messages += '\\n- ' + i18n.t('bcm.testing.functional.test.admin.errors.date').toString();\n testDateErrors.value = i18n.t('bcm.testing.functional.test.admin.errors.date').toString();\n }\n }\n\n if (test.value.strategyScenarioId == null || test.value.strategyScenarioId === 0) {\n error = true;\n messages += '\\n- ' + i18n.t('bcm.testing.functional.test.admin.errors.strategyScenario').toString();\n testStrategyScenarioErrors.value = i18n.t('bcm.testing.functional.test.admin.errors.strategyScenario').toString();\n }\n\n if (test.value.targetRtoId == null || test.value.targetRtoId === 0) {\n error = true;\n messages += '\\n- ' + i18n.t('bcm.testing.functional.test.admin.errors.targetRto').toString();\n testTargetRtoErrors.value = i18n.t('bcm.testing.functional.test.admin.errors.targetRto').toString();\n }\n\n if (test.value.partitions == null || test.value.partitions.length === 0) {\n error = true;\n messages += '\\n- ' + i18n.t('bcm.testing.functional.test.admin.errors.emptyPartitions').toString();\n } else {\n for (let i = 0; i < test.value.partitions.length; ++i) {\n if (test.value.partitions[i].coordinators == null || test.value.partitions[i].coordinators.length === 0) {\n // find partition\n const p = partitionsList.value.find(x => x.id === test.value.partitions[i].partitionId);\n\n if (p != null) {\n error = true;\n messages += '\\n- ' + i18n.t('bcm.testing.functional.test.admin.errors.partitionNoCoordinators', { partition: LanguageTemplate(p, 'name').text }).toString();\n }\n }\n }\n }\n\n if (test.value.testAssets === true && (test.value.assets == null || test.value.assets.length === 0)) {\n error = true;\n messages += '\\n- ' + i18n.t('bcm.testing.functional.test.admin.errors.assets').toString();\n }\n\n if (test.value.testApplications === true && (test.value.applications == null || test.value.applications.length === 0)) {\n error = true;\n messages += '\\n- ' + i18n.t('bcm.testing.functional.test.admin.errors.applications').toString();\n }\n\n if (test.value.testAssets === false && test.value.testApplications === false && test.value.testCallTree === false) {\n error = true;\n messages += '\\n- ' + i18n.t('bcm.testing.functional.test.admin.errors.noTest').toString();\n }\n\n if (error) {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: `Please corrent the following errors before proceeding:\\n${messages}`,\n });\n return;\n }\n\n if (newTest.value === true) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('bcm.testing.functional.test.admin.savingNew').toString());\n try {\n await BcpFunctionalTestService.CreateTest(test.value);\n PopupMessageService.SetMessage({\n title: i18n.t('bcm.testing.functional.test.admin.createdSuccessfullyTitle').toString(),\n text: i18n.t('bcm.testing.functional.test.admin.createdSuccessfully').toString(),\n callback() {\n router.push({ name: 'bcm.testing.bcp.admin.tests' });\n },\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n } else {\n const busy = BusyIndicatorService.SetBusy(i18n.t('bcm.testing.functional.test.admin.savingEdit').toString());\n try {\n await BcpFunctionalTestService.SaveTestChanges(test.value);\n PopupMessageService.SetMessage({\n title: i18n.t('bcm.testing.functional.test.admin.createdSuccessfullyTitle').toString(),\n text: i18n.t('bcm.testing.functional.test.admin.editedSuccessfully').toString(),\n callback() {\n router.push({ name: 'bcm.testing.bcp.admin.tests' });\n },\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n }\n\n function cancelChanges() {\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('bcm.testing.functional.test.admin.cancelChangesMessage').toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n callback() {\n router.push({ name: 'bcm.testing.bcp.admin.tests' });\n },\n close: () => true,\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n }\n\n function deleteTest() {\n if (props.testId === 'new') {\n return;\n }\n\n PopupMessageService.SetMessage({\n title: i18n.t('warning').toString(),\n text: i18n.t('bcm.testing.functional.test.deleteTestMessage').toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n callback: async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('bcm.testing.functional.test.deletingTest').toString());\n try {\n await BcpFunctionalTestService.DeleteTest(test.value);\n router.push({ name: 'bcm.testing.bcp.admin.tests' });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n close: () => true,\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n };\n\n const currentDate = new Date().toISOString().substr(0, 10);\n\n init();\n return {\n loading,\n\n partitionsList,\n\n testScenariosItems,\n strategyScenariosItems,\n rtoItems,\n\n selectedTargetRtoId,\n selectedStrategyScenarioId,\n\n newTest,\n editableTest,\n title,\n test,\n\n addPartition,\n editPartition,\n clearPartitionList,\n removePartition,\n resetPartitionList,\n\n assetsList,\n addAsset,\n clearAssetList,\n removeAsset,\n resetAssetList,\n\n applicationsList,\n addApplication,\n clearApplicationList,\n removeApplication,\n resetApplicationList,\n\n clearObserversList,\n addObserver,\n removeObserver,\n\n addTechnician,\n updateTechnician,\n removeTechnician,\n clearTechniciansList,\n\n detailsDisabled,\n\n saveChanges,\n cancelChanges,\n deleteTest,\n\n testNameErrors,\n testScenarioErrors,\n testDateErrors,\n testStrategyScenarioErrors,\n testTargetRtoErrors,\n\n currentDate,\n\n icons: {\n mdiTrashCan,\n mdiCancel,\n mdiFloppy,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestAdminView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestAdminView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestAdminView.vue?vue&type=template&id=286afa85&scoped=true&\"\nimport script from \"./BcpFunctionalTestAdminView.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestAdminView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"286afa85\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCol,VDivider,VExpandTransition,VIcon,VRow,VSelect,VSwitch,VTextField,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"loading\":_vm.loading,\"title\":_vm.$t('bcm.testing.functional.tests')}},[_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"table-actions\":_vm.buttons,\"row-actions\":_vm.rowActions,\"datasource\":_vm.datasource,\"options\":{ editable: false },\"height\":\"100%\",\"search\":\"\"},on:{\"table-action\":_vm.tableActions,\"dblclick\":_vm.openTestAdminView}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { PdDataTable, PdDataTableAction, PdDataTableHeader, PdDataTableRowAction } from '@/components/core/PdDataTable';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport i18n from '@/i18n';\nimport { DateTemplate, LanguageTemplate } from '@/core/helpers/templates';\nimport { BcpFunctionalScenarioDto } from '@/dtos/bcm/testing/BcpFunctionalScenarioDto';\nimport { BcpFunctionalTestDto, BcpFunctionalTestStatus } from '@/dtos/bcm/testing/BcpFunctionalTestDto';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { mdiCancel, mdiPlus, mdiTimelineCheck } from '@mdi/js';\nimport router from '@/router';\nimport { IDto } from '@/dtos';\nimport BcpFunctionalTestService from '@/services/bcm/testing/BcpFunctionalTestService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport { RtoScaleDto } from '@/dtos/bcm';\nimport { AxiosError } from 'axios';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestsView',\n\n components: {\n PdFormBase,\n PdDataTable,\n },\n\n setup() {\n const loading = ref(false);\n\n const scenarios = DatasourcesService.BcpFunctionalTesting.Scenarios;\n const rtoScales = DatasourcesService.Bcm.RtoScales;\n const datasource = DatasourcesService.BcpFunctionalTesting.Tests;\n\n const buttons: Array = [\n {\n id: 'add',\n text: i18n.t('bcm.testing.functional.test.add').toString(),\n icon: mdiPlus,\n },\n ];\n\n const headers: Array> = [\n {\n id: 'name',\n value: 'name',\n text: i18n.t('bcm.testing.functional.test.name').toString(),\n width: '400px',\n },\n {\n id: 'status',\n text: i18n.t('bcm.testing.functional.test.status').toString(),\n value: 'status',\n width: '20px',\n template: (item) => {\n let value = i18n.t('bcm.testing.functional.test.statuses.created');\n switch ((item as BcpFunctionalTestDto).status) {\n case BcpFunctionalTestStatus.Planning:\n value = i18n.t('bcm.testing.functional.test.statuses.planning');\n break;\n case BcpFunctionalTestStatus.Testing:\n value = i18n.t('bcm.testing.functional.test.statuses.testing');\n break;\n case BcpFunctionalTestStatus.Finalizing:\n value = i18n.t('bcm.testing.functional.test.statuses.finalizing');\n break;\n case BcpFunctionalTestStatus.Finished:\n value = i18n.t('bcm.testing.functional.test.statuses.finished');\n break;\n }\n\n return {\n text: value.toString(),\n };\n },\n },\n {\n id: 'schedule',\n text: i18n.t('bcm.testing.functional.test.schedule').toString(),\n value: 'schedule',\n width: '50px',\n template: (item) => {\n return DateTemplate((item as BcpFunctionalTestDto).schedule);\n },\n },\n {\n id: 'targetRtoId',\n text: i18n.t('bcm.testing.functional.test.targetRto').toString(),\n value: 'targetRtoId',\n width: '100px',\n template: async (item) => {\n try {\n const rto = await rtoScales.getById((item as BcpFunctionalTestDto).targetRtoId);\n return LanguageTemplate(rto as RtoScaleDto, 'name');\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n }\n return { text: 'Error fetching scenario name' };\n },\n },\n {\n id: 'scenarioId',\n text: i18n.t('bcm.testing.functional.test.scenario').toString(),\n value: 'scenarioId',\n width: '200px',\n template: async (item) => {\n try {\n const scenario = await scenarios.getById((item as BcpFunctionalTestDto).scenarioId);\n return LanguageTemplate(scenario as BcpFunctionalScenarioDto, 'name');\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n }\n return { text: 'Error fetching scenario name' };\n },\n },\n {\n id: 'testAssets',\n text: i18n.t('bcm.testing.functional.test.aspects').toString(),\n value: 'testAssets',\n width: '150px',\n template: (item) => {\n const i = item as BcpFunctionalTestDto;\n let ret = '';\n if (i.testAssets) {\n ret += 'Assets';\n }\n\n if (i.testApplications) {\n if (ret.length > 0) {\n ret += '/';\n }\n ret += 'Applications';\n }\n\n if (i.testCallTree) {\n if (ret.length > 0) {\n ret += '/';\n }\n ret += 'Call Tree';\n }\n\n return { text: ret };\n },\n },\n ];\n\n const rowActions: Array = [\n {\n id: 'planning',\n text: i18n.t('bcm.testing.functional.test.planning').toString(),\n icon: mdiTimelineCheck,\n action: async (item: IDto) => {\n return new Promise((resolve, reject) => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('bcm.testing.functional.test.movingToPlanning').toString());\n BcpFunctionalTestService.GoForPlanning(item as BcpFunctionalTestDto)\n .then((ret) => {\n resolve(ret);\n })\n .catch((error) => {\n ErrorHandlingService.Handle(error as AxiosError);\n reject(error as AxiosError);\n })\n .finally(() => {\n BusyIndicatorService.RemoveBusy(busy);\n });\n });\n },\n disabled: (item: IDto) => {\n if ((item as BcpFunctionalTestDto).status === BcpFunctionalTestStatus.Created) {\n return false;\n } else {\n return true;\n }\n },\n },\n {\n id: 'abort',\n text: i18n.t('bcm.testing.functional.test.abort').toString(),\n icon: mdiCancel,\n action: async (item: IDto) => {\n return new Promise((resolve, reject) => {\n PopupMessageService.SetMessage({\n title: i18n.t('warning').toString(),\n text: i18n.t('bcm.testing.functional.test.abortTestMessage').toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n callback: async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('bcm.testing.functional.test.abortingTest').toString());\n try {\n const ret = await BcpFunctionalTestService.AbortTest(item as BcpFunctionalTestDto);\n resolve(ret);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n reject(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n close: () => true,\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n });\n },\n disabled: (item: IDto) => {\n if ((item as BcpFunctionalTestDto).status > BcpFunctionalTestStatus.Created) {\n return false;\n } else {\n return true;\n }\n },\n },\n\n ];\n\n function tableActions(action: string) {\n if (action === 'add') {\n router.push({ name: 'bcm.testing.bcp.admin.test', params: { testId: 'new' } });\n } else {\n throw new Error(`unknow action ${action}`);\n }\n }\n\n function openTestAdminView(item: BcpFunctionalTestDto) {\n router.push({ name: 'bcm.testing.bcp.admin.test', params: { testId: item.id.toString() } });\n }\n\n return {\n loading,\n datasource,\n headers,\n buttons,\n tableActions,\n rowActions,\n openTestAdminView,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestsView.vue?vue&type=template&id=1836cc22&scoped=true&\"\nimport script from \"./BcpFunctionalTestsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1836cc22\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"loading\":_vm.loading,\"title\":_vm.$t('bcm.testing.functional.tests')}},[_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":{ editable: false },\"height\":\"100%\",\"search\":\"\"},on:{\"dblclick\":_vm.openTest}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport i18n from '@/i18n';\nimport { DateTemplate, LanguageTemplate } from '@/core/helpers/templates';\nimport { BcpFunctionalScenarioDto } from '@/dtos/bcm/testing/BcpFunctionalScenarioDto';\nimport { BcpFunctionalTestDto, BcpFunctionalTestStatus } from '@/dtos/bcm/testing/BcpFunctionalTestDto';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport router from '@/router';\nimport { RtoScaleDto } from '@/dtos/bcm';\nimport { ApiDataSource } from '@/core/datasource';\nimport { ApplicationModule } from '@/store';\nimport { AxiosError } from 'axios';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserListView',\n\n components: {\n PdFormBase,\n PdDataTable,\n },\n\n setup() {\n const loading = ref(false);\n const entity = ApplicationModule.Entity;\n\n const scenarios = DatasourcesService.BcpFunctionalTesting.Scenarios;\n const rtoScales = DatasourcesService.Bcm.RtoScales;\n const datasource = ref>(new ApiDataSource({ api: `masterplans/${entity?.id}/bc/testing/BcpFunctionalTests/GetUserTests` }));\n\n const headers: Array> = [\n {\n id: 'name',\n value: 'name',\n text: i18n.t('bcm.testing.functional.test.name').toString(),\n width: '400px',\n },\n {\n id: 'status',\n text: i18n.t('bcm.testing.functional.test.status').toString(),\n value: 'status',\n width: '20px',\n template: (item) => {\n let value = i18n.t('bcm.testing.functional.test.statuses.created');\n switch ((item as BcpFunctionalTestDto).status) {\n case BcpFunctionalTestStatus.Planning:\n value = i18n.t('bcm.testing.functional.test.statuses.planning');\n break;\n case BcpFunctionalTestStatus.Testing:\n value = i18n.t('bcm.testing.functional.test.statuses.testing');\n break;\n case BcpFunctionalTestStatus.Finalizing:\n value = i18n.t('bcm.testing.functional.test.statuses.finalizing');\n break;\n case BcpFunctionalTestStatus.Finished:\n value = i18n.t('bcm.testing.functional.test.statuses.finished');\n break;\n }\n\n return {\n text: value.toString(),\n };\n },\n },\n {\n id: 'schedule',\n text: i18n.t('bcm.testing.functional.test.schedule').toString(),\n value: 'schedule',\n width: '50px',\n template: (item) => {\n return DateTemplate((item as BcpFunctionalTestDto).schedule);\n },\n },\n {\n id: 'targetRtoId',\n text: i18n.t('bcm.testing.functional.test.targetRto').toString(),\n value: 'targetRtoId',\n width: '100px',\n template: async (item) => {\n try {\n const rto = await rtoScales.getById((item as BcpFunctionalTestDto).targetRtoId);\n return LanguageTemplate(rto as RtoScaleDto, 'name');\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n }\n return { text: 'Error fetching scenario name' };\n },\n },\n {\n id: 'scenarioId',\n text: i18n.t('bcm.testing.functional.test.scenario').toString(),\n value: 'scenarioId',\n width: '200px',\n template: async (item) => {\n try {\n const scenario = await scenarios.getById((item as BcpFunctionalTestDto).scenarioId);\n return LanguageTemplate(scenario as BcpFunctionalScenarioDto, 'name');\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n }\n return { text: 'Error fetching scenario name' };\n },\n },\n {\n id: 'testAssets',\n text: i18n.t('bcm.testing.functional.test.aspects').toString(),\n value: 'testAssets',\n width: '150px',\n template: (item) => {\n const i = item as BcpFunctionalTestDto;\n let ret = '';\n if (i.testAssets) {\n ret += 'Assets';\n }\n\n if (i.testApplications) {\n if (ret.length > 0) {\n ret += '/';\n }\n ret += 'Applications';\n }\n\n if (i.testCallTree) {\n if (ret.length > 0) {\n ret += '/';\n }\n ret += 'Call Tree';\n }\n\n return { text: ret };\n },\n },\n ];\n\n function openTest(item: BcpFunctionalTestDto) {\n router.push({ name: 'bcm.testing.bcp.test', params: { testId: item.id.toString() } });\n }\n\n return {\n loading,\n datasource,\n headers,\n openTest,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserListView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserListView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserListView.vue?vue&type=template&id=265b0785&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserListView.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserListView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"265b0785\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.bcpTest && _vm.bcpTestDetails)?_c('pd-form-base',{attrs:{\"title\":_vm.name,\"subtitle\":_vm.subtitle}},[(_vm.showButtons)?_c('div',{staticClass:\"py-2\"},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"text-none mr-3\",attrs:{\"small\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.otherPhasesButton'))+\" \")])]}}],null,false,176844236)},[_c('v-list',[_c('v-list-item',{attrs:{\"to\":{name: 'bcm.testing.bcp.test.planning'}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('bcm.testing.functional.test.planningPhase')))])],1),(_vm.bcpTest != null && _vm.bcpTest.status > 1)?_c('v-list-item',{attrs:{\"to\":{name: 'bcm.testing.bcp.test.testing'}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('bcm.testing.functional.test.testingPhase')))])],1):_vm._e(),(_vm.bcpTest != null && _vm.bcpTest.status > 2)?_c('v-list-item',{attrs:{\"to\":{name: 'bcm.testing.bcp.test.finalizing'}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('bcm.testing.functional.test.finalizingPhase')))])],1):_vm._e(),(_vm.bcpTest != null && _vm.bcpTest.status > 3)?_c('v-list-item',{attrs:{\"to\":{name: 'bcm.testing.bcp.test.finished'}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('bcm.testing.functional.test.finishedPhase')))])],1):_vm._e()],1)],1),(_vm.showNextPhaseButton && _vm.nextPhaseText)?_c('v-btn',{staticClass:\"text-none mr-3\",attrs:{\"small\":\"\"},on:{\"click\":_vm.goToNextPhase}},[_vm._v(\" \"+_vm._s(_vm.nextPhaseText)+\" \")]):_vm._e(),(_vm.showPrevPhaseButton)?_c('v-btn',{staticClass:\"text-none mr-3\",attrs:{\"small\":\"\"},on:{\"click\":_vm.goToPreviousPhase}},[_vm._v(\" \"+_vm._s(_vm.previousPhaseText)+\" \")]):_vm._e(),(_vm.showExportButton)?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"text-none mr-3\",attrs:{\"small\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")])]}}],null,false,197750661)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('simple')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('bcm.testing.functional.test.exportSimple')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('full')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('bcm.testing.functional.test.exportFull')))])],1)],1)],1):_vm._e()],1):_vm._e(),_c('v-card',{staticClass:\"mt-2 mb-6\"},[_c('v-card-text',{staticClass:\"pa-2\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink mr-4\"},[_c('div',{staticStyle:{\"min-width\":\"200px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.targetRto'))+\": \"),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.rto))])])]),_c('v-col',{staticClass:\"shrink mr-4\"},[_c('div',{staticStyle:{\"min-width\":\"200px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.schedule'))+\": \"),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.schedule))])])]),_c('v-col',{staticClass:\"mr-4\"},[_c('div',{staticStyle:{\"min-width\":\"200px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.scenario'))+\": \"),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.scenario))])])])],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.assumptions'))+\": \"),_c('span',[_vm._v(_vm._s(_vm.assumptions))])])])],1),_c('v-row',[_c('v-col',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.technicians'))+\": \"),_c('v-simple-table',{staticStyle:{\"width\":\"700px\"},attrs:{\"dense\":\"\"}},[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\",staticStyle:{\"width\":\"300px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.technicianName'))+\" \")]),_c('th',{staticClass:\"text-left\",staticStyle:{\"width\":\"250px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.technicianEmail'))+\" \")]),_c('th',{staticStyle:{\"width\":\"150px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.admin.technicianPhone'))+\" \")])])]),_c('tbody',_vm._l((_vm.technicians),function(t){return _c('tr',{key:t.uuid},[_c('td',[_vm._v(\" \"+_vm._s(t.name)+\" \")]),_c('td',[_c('a',{attrs:{\"href\":(\"mailto: \" + (t.email))}},[_vm._v(_vm._s(t.email))])]),_c('td',[_c('a',{attrs:{\"href\":(\"tel: \" + (t.phone))}},[_vm._v(_vm._s(t.phone))])])])}),0)])],1)],1)],1)],1),_c('router-view',{key:_vm.bcpTestDetails.id,attrs:{\"test\":_vm.bcpTestDetails}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loaded)?_c('div',_vm._l((_vm.test.partitions),function(p){return _c('bcp-functional-test-user-planning-partition',{key:p.uuid,attrs:{\"test-id\":_vm.test.id,\"test-status\":_vm.test.status,\"partition\":p,\"test-call-tree\":_vm.test.testCallTree,\"test-assets\":_vm.test.testAssets || _vm.test.testApplications},on:{\"target-changed\":_vm.partitionTargetChanged}})}),1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('user-selector',{attrs:{\"visible\":_vm.userSelector,\"datasource\":_vm.users,\"exclude\":_vm.excludedUsers},on:{\"select\":_vm.addSelectedUser,\"cancel\":function($event){_vm.userSelector = false}}}),_c('v-card',{staticClass:\"my-4\",attrs:{\"elevation\":\"2\"}},[_c('v-card-title',{staticClass:\"mx-1\"},[_vm._v(\" \"+_vm._s(_vm.partitionName)+\" \")]),_c('v-card-text',[(_vm.testTargetsVisibility)?_c('v-row',[_c('v-col',[_c('h4',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.partitionTargetValues'))+\" \")]),_c('div',[_c('v-text-field',{staticStyle:{\"width\":\"300px\"},attrs:{\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.targetResponsePlanActivation'),\"disabled\":_vm.disabledButtons},on:{\"change\":_vm.targetChanged,\"keypress\":_vm.preventNonNumericalInput},model:{value:(_vm.targetResponsePlanActivation),callback:function ($$v) {_vm.targetResponsePlanActivation=$$v},expression:\"targetResponsePlanActivation\"}}),_c('v-text-field',{staticStyle:{\"width\":\"300px\"},attrs:{\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.targetRelocation'),\"disabled\":_vm.disabledButtons},on:{\"change\":_vm.targetChanged,\"keypress\":_vm.preventNonNumericalInput},model:{value:(_vm.targetRelocation),callback:function ($$v) {_vm.targetRelocation=$$v},expression:\"targetRelocation\"}}),_c('v-text-field',{staticStyle:{\"width\":\"300px\"},attrs:{\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.targetResumeActivities'),\"disabled\":_vm.disabledButtons},on:{\"change\":_vm.targetChanged,\"keypress\":_vm.preventNonNumericalInput},model:{value:(_vm.targetResumeActivities),callback:function ($$v) {_vm.targetResumeActivities=$$v},expression:\"targetResumeActivities\"}})],1)])],1):_vm._e(),_c('v-row',{attrs:{\"dense\":\"\"}},[(_vm.testCallTree)?_c('v-col',{attrs:{\"xs\":\"12\",\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('bcp-functional-test-user-planning-partition-call-tree',{attrs:{\"users\":_vm.partition.callTreeUsers,\"readonly\":_vm.disabledButtons},on:{\"add-new-user\":_vm.addCallTreeUser,\"remove-user\":_vm.removeCallTreeUser}})],1):_vm._e(),(_vm.testAssetsVisibility)?_vm._l((_vm.partition.recoverySites),function(rs,i){return _c('v-col',{key:i,attrs:{\"xs\":\"12\",\"sm\":\"12\",\"md\":\"6\",\"lg\":\"4\",\"xl\":\"3\"}},[_c('bcp-functional-test-user-planning-partition-recovery-site',{attrs:{\"recovery-site\":rs,\"readonly\":_vm.disabledButtons},on:{\"add-new-user\":_vm.addRecoverySiteUser,\"remove-user\":_vm.removeRecoverySiteUser}})],1)}):_vm._e()],2)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-sheet',{staticClass:\"mx-1 pa-2\",attrs:{\"elevation\":\"1\"}},[_c('div',{staticClass:\"text-center text-body-1\"},[_vm._v(\" Call Tree \"),(!_vm.readonly)?_c('v-icon',{staticClass:\"pl-2\",on:{\"click\":function($event){return _vm.$emit('add-new-user')}}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistPlus)+\" \")]):_vm._e()],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.users.length > 0),expression:\"users.length > 0\"}],staticClass:\"py-1\",staticStyle:{\"overflow\":\"hidden\"}},_vm._l((_vm.users),function(user){return _c('v-btn',{key:user.id,staticClass:\"justify-start text-none my-2\",attrs:{\"block\":\"\",\"x-small\":\"\",\"disabled\":_vm.readonly},on:{\"click\":function($event){return _vm.$emit('remove-user', user)}}},[_vm._v(\" \"+_vm._s(user.user.info)+\" \")])}),1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport { mdiPlaylistPlus } from '@mdi/js';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { BcpFunctionalTestPartitionCallTreeUserDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionCallTreeUserDto';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserPlanningPartitionCallTree',\n\n props: {\n users: {\n type: Array as PropType>,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n required: true,\n },\n },\n\n setup() {\n async function init() {\n try {\n //\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n }\n\n init();\n\n return {\n\n icons: {\n mdiPlaylistPlus,\n },\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserPlanningPartitionCallTree.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserPlanningPartitionCallTree.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserPlanningPartitionCallTree.vue?vue&type=template&id=05392e5e&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserPlanningPartitionCallTree.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserPlanningPartitionCallTree.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"05392e5e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VBtn,VIcon,VSheet})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('v-sheet',{staticClass:\"mx-1 pa-2\",attrs:{\"elevation\":\"1\"}},[_c('div',{staticClass:\"text-center text-body-1\"},[_vm._v(\" \"+_vm._s(_vm.recoverySiteName)+\" \"),(!_vm.readonly)?_c('v-icon',{staticClass:\"pl-2\",on:{\"click\":function($event){return _vm.$emit('add-new-user', _vm.recoverySite)}}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlaylistPlus)+\" \")]):_vm._e()],1),(_vm.recoverySite.assignedUsers && _vm.recoverySite.assignedUsers.length > 0)?_c('div',{staticClass:\"py-1\",staticStyle:{\"overflow\":\"hidden\"}},_vm._l((_vm.recoverySite.assignedUsers),function(user){return _c('v-btn',{key:user.id,staticClass:\"justify-start text-none my-2\",attrs:{\"block\":\"\",\"x-small\":\"\",\"disabled\":_vm.readonly},on:{\"click\":function($event){return _vm.$emit('remove-user', _vm.recoverySite, user)}}},[_vm._v(\" \"+_vm._s(user.user.info)+\" \")])}),1):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { mdiPlaylistPlus } from '@mdi/js';\nimport { BcpFunctionalTestPartitionRecoverySiteDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteDto';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n\n name: 'BcpFunctionalTestUserPlanningPartitionCallTree',\n\n props: {\n recoverySite: {\n type: Object as PropType,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n required: true,\n },\n },\n\n setup(props) {\n const recoverySiteName = ref('');\n\n watch(\n () => props.recoverySite,\n (rs) => {\n if (rs.recoverySite == null) {\n recoverySiteName.value = '';\n } else {\n recoverySiteName.value = LanguageTemplate(rs.recoverySite, 'name').text;\n }\n },\n { immediate: true },\n );\n return {\n recoverySiteName,\n\n icons: {\n mdiPlaylistPlus,\n },\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserPlanningPartitionRecoverySite.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserPlanningPartitionRecoverySite.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserPlanningPartitionRecoverySite.vue?vue&type=template&id=62bc91de&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserPlanningPartitionRecoverySite.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserPlanningPartitionRecoverySite.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"62bc91de\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VBtn,VIcon,VSheet})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { mdiPlaylistPlus } from '@mdi/js';\nimport { BcpFunctionalTestPartitionDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionDto';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport BcpFunctionalTestUserPlanningPartitionCallTree from './BcpFunctionalTestUserPlanningPartitionCallTree.vue';\nimport BcpFunctionalTestUserPlanningPartitionRecoverySite from './BcpFunctionalTestUserPlanningPartitionRecoverySite.vue';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nimport UserSelector from '@/components/all/UserSelector.vue';\nimport { BcpFunctionalTestPartitionRecoverySiteDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteDto';\nimport BcpFunctionalTestService from '@/services/bcm/testing/BcpFunctionalTestService';\nimport { BcpFunctionalTestPartitionCallTreeUserDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionCallTreeUserDto';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport i18n from '@/i18n';\nimport { BcpFunctionalTestPartitionRecoverySiteUserDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteUserDto';\nimport { BcpFunctionalTestStatus, BcpFunctionalTestUserAccessRights } from '@/dtos/bcm/testing/BcpFunctionalTestDto';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserPlanningPartition',\n\n components: { BcpFunctionalTestUserPlanningPartitionCallTree, BcpFunctionalTestUserPlanningPartitionRecoverySite, UserSelector },\n\n props: {\n testId: {\n type: Number,\n required: true,\n },\n\n testStatus: {\n type: Number as PropType,\n required: true,\n },\n\n partition: {\n type: Object as PropType,\n required: true,\n },\n\n testCallTree: {\n type: Boolean,\n required: true,\n },\n\n testAssets: {\n type: Boolean,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const partitionName = ref('');\n\n const users = DatasourcesService.Users;\n const userSelector = ref(false);\n const excludedUsers = ref>([]);\n\n let addUserTo: 'callTree' | 'recovery' = 'callTree';\n let addUserToRecoverySite: BcpFunctionalTestPartitionRecoverySiteDto | null = null;\n\n const targetRelocation = ref(null);\n const targetResponsePlanActivation = ref(null);\n const targetResumeActivities = ref(null);\n\n watch(\n () => props.partition,\n (p) => {\n if (p.partition == null) {\n partitionName.value = '';\n } else {\n partitionName.value = LanguageTemplate(p.partition, 'name').text;\n targetRelocation.value = p.relocationTarget === undefined ? null : p.relocationTarget;\n targetResponsePlanActivation.value = p.responsePlanActivationTarget === undefined ? null : p.responsePlanActivationTarget;\n targetResumeActivities.value = p.resumeActivitiesTarget === undefined ? null : p.resumeActivitiesTarget;\n }\n },\n { immediate: true },\n );\n\n function targetChanged() {\n const target: Partial = {\n id: props.partition.id,\n relocationTarget: targetRelocation.value == null ? undefined : targetRelocation.value,\n responsePlanActivationTarget: targetResponsePlanActivation.value == null ? undefined : targetResponsePlanActivation.value,\n resumeActivitiesTarget: targetResumeActivities.value == null ? undefined : targetResumeActivities.value,\n };\n\n emit('target-changed', target);\n }\n\n function addCallTreeUser() {\n const ex: Array = [];\n\n const existing = props.partition.callTreeUsers || [];\n\n for (let i = 0; i < existing.length; ++i) {\n ex.push(existing[i].user);\n }\n\n addUserTo = 'callTree';\n excludedUsers.value = ex;\n userSelector.value = true;\n }\n\n const disabledButtons = computed(() => {\n return props.testStatus !== BcpFunctionalTestStatus.Planning;\n });\n\n const testAssetsVisibility = computed(() => {\n return props.testAssets && props.partition.recoverySites != null && props.partition.recoverySites.length > 0;\n });\n\n const testTargetsVisibility = computed(() => {\n return testAssetsVisibility.value && props.partition.partitionAccessRights === BcpFunctionalTestUserAccessRights.Admin;\n });\n\n async function removeCallTreeUser(user: BcpFunctionalTestPartitionCallTreeUserDto) {\n const part = await DatasourcesService.Bcm.Partitions.getById(props.partition.partitionId);\n if (part == null) {\n try {\n throw new Error(`Partition not found... (partitionId: '${props.partition.partitionId}')`);\n } catch (error) {\n ErrorHandlingService.Handle(error);\n return;\n }\n }\n\n const partition = LanguageTemplate(part, 'name').text;\n\n PopupMessageService.SetMessage({\n title: 'Confirmation',\n text: i18n.t('bcm.testing.functional.test.removeFromCallTreeConfirmation', { user: user.user.info, partition }).toString(),\n buttons: [\n {\n id: 'ok',\n text: i18n.t('ok').toString(),\n color: 'success',\n callback: async () => {\n const busy = BusyIndicatorService.SetBusy('saving');\n try {\n await BcpFunctionalTestService.RemoveCallTreeUser(props.testId, props.partition.id, user);\n if (props.partition.callTreeUsers == null) {\n props.partition.callTreeUsers = [];\n }\n\n for (let i = 0; i < props.partition.callTreeUsers.length; ++i) {\n if (props.partition.callTreeUsers[i].id === user.id) {\n props.partition.callTreeUsers.splice(i, 1);\n return;\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n close: () => true,\n },\n {\n id: 'cancel',\n text: i18n.t('cancel').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n }\n\n function addRecoverySiteUser(recoverySite: BcpFunctionalTestPartitionRecoverySiteDto) {\n const ex: Array = [];\n\n const existing = recoverySite.assignedUsers || [];\n\n for (let i = 0; i < existing.length; ++i) {\n ex.push(existing[i].user);\n }\n\n addUserTo = 'recovery';\n addUserToRecoverySite = recoverySite;\n excludedUsers.value = ex;\n userSelector.value = true;\n }\n\n async function removeRecoverySiteUser(recoverySite: BcpFunctionalTestPartitionRecoverySiteDto, user: BcpFunctionalTestPartitionRecoverySiteUserDto) {\n const part = await DatasourcesService.Bcm.Partitions.getById(props.partition.partitionId);\n if (part == null) {\n try {\n throw new Error(`Partition not found... (partitionId: '${props.partition.partitionId}')`);\n } catch (error) {\n ErrorHandlingService.Handle(error);\n return;\n }\n }\n\n const partition = LanguageTemplate(part, 'name').text;\n\n const rs = await DatasourcesService.Bcm.RecoverySites.getById(recoverySite.recoverySiteId);\n if (rs == null) {\n try {\n throw new Error(`Recovery Site not found... (recoverySiteId: '${recoverySite.recoverySiteId}')`);\n } catch (error) {\n ErrorHandlingService.Handle(error);\n return;\n }\n }\n\n const site = LanguageTemplate(rs, 'name').text;\n\n PopupMessageService.SetMessage({\n title: 'Confirmation',\n text: i18n.t('bcm.testing.functional.test.removeFromRecoverySiteConfirmation', { user: user.user.info, partition, site }).toString(),\n buttons: [\n {\n id: 'ok',\n text: i18n.t('ok').toString(),\n color: 'success',\n callback: async () => {\n const busy = BusyIndicatorService.SetBusy('saving');\n try {\n await BcpFunctionalTestService.RemoveRecoverySiteUser(props.testId, props.partition.id, recoverySite.id, user);\n if (recoverySite.assignedUsers == null) {\n recoverySite.assignedUsers = [];\n }\n\n for (let i = 0; i < recoverySite.assignedUsers.length; ++i) {\n if (recoverySite.assignedUsers[i].id === user.id) {\n recoverySite.assignedUsers.splice(i, 1);\n return;\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n close: () => true,\n },\n {\n id: 'cancel',\n text: i18n.t('cancel').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n }\n\n async function addSelectedUser(user: SimpleUserDto) {\n const busy = BusyIndicatorService.SetBusy('saving');\n try {\n if (addUserTo === 'callTree') {\n if (props.partition.callTreeUsers == null) {\n props.partition.callTreeUsers = [];\n }\n\n const resp = await BcpFunctionalTestService.AddCallTreeUser(props.testId, props.partition.id, user);\n props.partition.callTreeUsers.push(resp);\n } else {\n if (addUserToRecoverySite == null) {\n throw new Error('Error: No RecoverySite to add user to...');\n }\n\n const resp = await BcpFunctionalTestService.AddRecoverySiteUser(props.testId, props.partition.id, addUserToRecoverySite.id, user);\n addUserToRecoverySite.assignedUsers.push(resp);\n }\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n\n userSelector.value = false;\n }\n\n function preventNonNumericalInput(e: KeyboardEvent) {\n if (!e.key.match(/^[0-9.]+$/)) {\n e.preventDefault();\n }\n }\n\n return {\n partitionName,\n\n users,\n userSelector,\n excludedUsers,\n\n addSelectedUser,\n\n addCallTreeUser,\n removeCallTreeUser,\n\n addRecoverySiteUser,\n removeRecoverySiteUser,\n\n preventNonNumericalInput,\n\n testAssetsVisibility,\n disabledButtons,\n\n testTargetsVisibility,\n targetRelocation,\n targetResponsePlanActivation,\n targetResumeActivities,\n targetChanged,\n\n icons: {\n mdiPlaylistPlus,\n },\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserPlanningPartition.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserPlanningPartition.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserPlanningPartition.vue?vue&type=template&id=38d072b5&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserPlanningPartition.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserPlanningPartition.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"38d072b5\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCard,VCardText,VCardTitle,VCol,VRow,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { BcpFunctionalTestDto } from '@/dtos/bcm/testing/BcpFunctionalTestDto';\nimport { BcpFunctionalTestPartitionDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionDto';\nimport i18n from '@/i18n';\nimport BcpFunctionalTestService from '@/services/bcm/testing/BcpFunctionalTestService';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { defineComponent, PropType, ref } from '@vue/composition-api';\nimport { v4 } from 'uuid';\nimport BcpFunctionalTestUserPlanningPartition from './BcpFunctionalTestUserPlanningPartition.vue';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserPlanningView',\n\n components: {\n PdFormBase,\n BcpFunctionalTestUserPlanningPartition,\n },\n\n props: {\n test: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const loaded = ref(false);\n\n async function partitionTargetChanged(partition: BcpFunctionalTestPartitionDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n for (let i = 0; i < props.test.partitions.length; ++i) {\n if (props.test.partitions[i].id === partition.id) {\n const p = props.test.partitions[i];\n\n try {\n const result = await BcpFunctionalTestService.UpdatePartitionTargets(props.test, partition);\n p.relocationTarget = result.relocationTarget;\n p.resumeActivitiesTarget = result.resumeActivitiesTarget;\n p.responsePlanActivationTarget = result.responsePlanActivationTarget;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n p.uuid = v4();\n }\n\n break;\n }\n }\n }\n\n async function init() {\n try {\n loaded.value = true;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n }\n\n init();\n return {\n loaded,\n partitionTargetChanged,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserPlanningView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserPlanningView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserPlanningView.vue?vue&type=template&id=04b329d6&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserPlanningView.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserPlanningView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"04b329d6\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport BcpFunctionalTestService from '@/services/bcm/testing/BcpFunctionalTestService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport i18n from '@/i18n';\nimport { BcpFunctionalTestDto, BcpFunctionalTestStatus, BcpFunctionalTestUserAccessRights } from '@/dtos/bcm/testing/BcpFunctionalTestDto';\nimport BcpFunctionalTestUserPlanningView from './BcpFunctionalTestUser/BcpFunctionalTestUserPlanningView.vue';\nimport router from '@/router';\nimport { v4 } from 'uuid';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { DateTemplate, LanguageTemplate } from '@/core/helpers/templates';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { BcpFunctionalTestTechnicianDto } from '@/dtos/bcm/testing/BcpFunctionalTestTechnicianDto';\nimport { AxiosError } from 'axios';\nimport DownloadService from '@/services/DownloadService';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserView',\n\n components: {\n PdFormBase,\n BcpFunctionalTestUserPlanningView,\n },\n\n props: {\n testId: {\n type: String,\n required: true,\n },\n },\n\n setup(props, { root }) {\n const bcpTest = ref(null);\n const subtitle = ref('');\n const bcpTestDetails = ref(null);\n\n const name = ref('');\n const rto = ref('');\n const scenario = ref('');\n const schedule = ref('');\n const assumptions = ref('');\n const technicians = ref>([]);\n\n const nextPhaseText = ref('');\n const previousPhaseText = ref(i18n.t('bcm.testing.functional.test.backToTesting'));\n\n watch(\n () => root.$route.name,\n () => {\n updateNextPhaseButton();\n },\n {\n immediate: true,\n },\n );\n\n watch(\n bcpTest,\n () => {\n updateNextPhaseButton();\n },\n );\n\n const showPrevPhaseButton = computed(() => {\n return bcpTest.value != null && bcpTest.value.status === BcpFunctionalTestStatus.Finalizing;\n });\n\n function updateNextPhaseButton() {\n if (bcpTest.value == null || root.$route == null) {\n nextPhaseText.value = '';\n return;\n }\n\n if (bcpTest.value.status === BcpFunctionalTestStatus.Planning && root.$route.name === 'bcm.testing.bcp.test.planning') {\n nextPhaseText.value = i18n.t('bcm.testing.functional.test.goForTesting').toString();\n return;\n }\n\n if (bcpTest.value.status === BcpFunctionalTestStatus.Testing && root.$route.name === 'bcm.testing.bcp.test.testing') {\n nextPhaseText.value = i18n.t('bcm.testing.functional.test.goForFinalizing').toString();\n return;\n }\n\n if (bcpTest.value.status === BcpFunctionalTestStatus.Finalizing && root.$route.name === 'bcm.testing.bcp.test.finalizing') {\n nextPhaseText.value = i18n.t('bcm.testing.functional.test.goForFinished').toString();\n return;\n }\n\n nextPhaseText.value = '';\n }\n\n async function goToNextPhase() {\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('bcm.testing.functional.test.moveToNextPhaseQuestion').toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n close: () => true,\n callback: async () => {\n if (bcpTest.value == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('bcm.testing.functional.test.movingToNextPhase').toString());\n try {\n if (bcpTest.value.status === BcpFunctionalTestStatus.Planning) {\n await moveToTestingPhase();\n router.push({ name: 'bcm.testing.bcp.test.testing' });\n } else if (bcpTest.value.status === BcpFunctionalTestStatus.Testing) {\n await moveToFinalizationPhase();\n router.push({ name: 'bcm.testing.bcp.test.finalizing' });\n } else if (bcpTest.value.status === BcpFunctionalTestStatus.Finalizing) {\n await moveToFinishedPhase();\n router.push({ name: 'bcm.testing.bcp.test.finished' });\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n }\n\n function goToPreviousPhase() {\n if (bcpTest.value == null) {\n return;\n }\n const test = bcpTest.value;\n\n if (bcpTest.value.status !== BcpFunctionalTestStatus.Finalizing) {\n return;\n }\n\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('bcm.testing.functional.test.goBackToTestingQuestion').toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n close: () => true,\n callback: async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('bcm.testing.functional.test.goingBackToTesting').toString());\n try {\n await BcpFunctionalTestService.GoBackToTesting(test);\n router.replace({ name: 'bcm.testing.bcp.test.testing' });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n color: 'error',\n close: () => true,\n },\n ],\n });\n }\n\n async function moveToTestingPhase() {\n if (bcpTest.value == null || bcpTestDetails.value == null) {\n return;\n }\n\n let errors = '';\n\n if (bcpTest.value.testCallTree) {\n for (let i = 0; i < bcpTestDetails.value.partitions.length; ++i) {\n const users = bcpTestDetails.value.partitions[i].callTreeUsers;\n if (users == null || users.length === 0) {\n const p = await DatasourcesService.Bcm.Partitions.getById(bcpTestDetails.value.partitions[i].partitionId);\n\n if (p == null) {\n throw new Error(`Partition ID ${bcpTestDetails.value.partitions[i].partitionId} not found...`);\n }\n errors += i18n.t('bcm.testing.functional.test.partitionNoCallTreeUsers', { partition: LanguageTemplate(p, 'name').text }).toString() + '\\n';\n }\n }\n }\n\n if (bcpTest.value.testAssets || bcpTest.value.testApplications) {\n for (let i = 0; i < bcpTestDetails.value.partitions.length; ++i) {\n const recoverySites = bcpTestDetails.value.partitions[i].recoverySites;\n if (recoverySites != null && recoverySites.length > 0) {\n const testPartition = bcpTestDetails.value.partitions[i];\n const p = testPartition.partition;\n if (p == null) {\n throw new Error(`Partition ID ${bcpTestDetails.value.partitions[i].partitionId} not found...`);\n }\n\n if (testPartition.relocationTarget == null || testPartition.resumeActivitiesTarget == null || testPartition.responsePlanActivationTarget == null) {\n errors += i18n.t('bcm.testing.functional.test.partitionNoTargetValues', { partition: LanguageTemplate(p, 'name').text }).toString() + '\\n';\n }\n\n for (let j = 0; j < recoverySites.length; ++j) {\n if (recoverySites[j].assignedUsers.length === 0) {\n errors += i18n.t('bcm.testing.functional.test.partitionNoRecoverySiteUsers', { partition: LanguageTemplate(p, 'name').text, site: LanguageTemplate(recoverySites[j].recoverySite, 'name').text }).toString() + '\\n';\n }\n }\n }\n }\n }\n\n if (errors) {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: errors,\n });\n\n return;\n }\n\n await BcpFunctionalTestService.GoForTesting(bcpTest.value);\n }\n\n async function moveToFinalizationPhase() {\n if (bcpTest.value == null || bcpTestDetails.value == null) {\n return;\n }\n\n const details = bcpTestDetails.value;\n\n let errors = '';\n\n bcpTestDetails.value.partitions.forEach((p) => {\n let part = '';\n if (p.partition != null) {\n part = LanguageTemplate(p.partition, 'name').text;\n }\n\n if (p.testResult == null) {\n errors += i18n.t('bcm.testing.functional.test.partitionNoTestAnswer', { part: part }).toString() + '\\n';\n }\n\n if (details.testCallTree) {\n if (p.callTreeResult == null) {\n errors += i18n.t('bcm.testing.functional.test.partitionNoCallTreeAnswer', { part: part }).toString() + '\\n';\n }\n }\n\n if (p.recoverySites != null && p.recoverySites.length > 0) {\n const assets = p.recoverySites.some((rs) => rs.assets != null && rs.assets.length > 0);\n const applications = p.recoverySites.some((rs) => rs.applications != null && rs.applications.length > 0);\n\n if (details.testAssets && assets) {\n if (p.assetsResult == null) {\n errors += i18n.t('bcm.testing.functional.test.partitionNoAssetsAnswer', { part: part }).toString() + '\\n';\n }\n }\n if (details.testApplications && applications) {\n if (p.applicationsResult == null) {\n errors += i18n.t('bcm.testing.functional.test.partitionNoApplicationsAnswer', { part: part }).toString() + '\\n';\n }\n }\n }\n });\n\n if (errors.length > 0) {\n errors = errors.substring(0, errors.length - 1);\n }\n\n return new Promise((resolve, reject) => {\n if (errors.length > 0) {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: i18n.t('bcm.testing.functional.test.goForFinalizingErrors', { errors }).toString(),\n index: 100,\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n callback: async () => {\n try {\n await BcpFunctionalTestService.GoForFinalizing(details);\n resolve();\n } catch (error) {\n reject(error as AxiosError);\n }\n },\n close: () => true,\n },\n {\n id: 'no',\n text: i18n.t('no').toString(),\n color: 'error',\n callback: () => {\n resolve();\n },\n close: () => true,\n },\n ],\n });\n } else {\n BcpFunctionalTestService.GoForFinalizing(details)\n .then(() => {\n resolve();\n })\n .catch(error => {\n reject(error as AxiosError);\n });\n }\n });\n }\n\n async function moveToFinishedPhase() {\n if (bcpTestDetails.value == null) {\n return;\n }\n\n const test = bcpTestDetails.value;\n\n let errors = '';\n\n if (test.testResult == null) {\n errors += i18n.t('bcm.testing.functional.test.testResultsCannotBeEmpty').toString() + '\\n';\n }\n\n if (test.testCallTree && test.callTreeResult == null) {\n errors += i18n.t('bcm.testing.functional.test.callTreeResultsCannotBeEmpty').toString() + '\\n';\n }\n\n if (test.testAssets && test.assetsResult == null) {\n errors += i18n.t('bcm.testing.functional.test.assetsResultsCannotBeEmpty').toString() + '\\n';\n }\n\n if (test.testApplications && test.applicationsResult == null) {\n errors += i18n.t('bcm.testing.functional.test.applicationsResultsCannotBeEmpty').toString() + '\\n';\n }\n\n if (errors) {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: errors,\n });\n\n return;\n }\n\n await BcpFunctionalTestService.GoForFinished(test);\n }\n\n watch(\n () => root.$route.name,\n async () => {\n await reload();\n },\n {\n immediate: true,\n },\n );\n\n const showButtons = computed(() => {\n if (bcpTest.value == null) {\n return false;\n }\n\n return bcpTest.value.accessRights === BcpFunctionalTestUserAccessRights.Admin ||\n (bcpTest.value.status === BcpFunctionalTestStatus.Finished && bcpTest.value.accessRights === BcpFunctionalTestUserAccessRights.Observer);\n });\n\n const showExportButton = computed(() => {\n if (bcpTest.value == null) {\n return false;\n }\n\n return bcpTest.value.status === BcpFunctionalTestStatus.Finished && bcpTest.value.accessRights === BcpFunctionalTestUserAccessRights.Observer;\n });\n\n const showNextPhaseButton = computed(() => {\n if (bcpTest.value == null) {\n return false;\n }\n\n return bcpTest.value.accessRights === BcpFunctionalTestUserAccessRights.Admin;\n });\n\n async function reload() {\n bcpTestDetails.value = null;\n bcpTest.value = null;\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('bcm.testing.functional.test.loading').toString());\n try {\n const test = await BcpFunctionalTestService.GetSimpleTest(parseInt(props.testId));\n bcpTest.value = test;\n\n const routes: { [key: string]: BcpFunctionalTestStatus } = {\n 'bcm.testing.bcp.test.planning': BcpFunctionalTestStatus.Planning,\n 'bcm.testing.bcp.test.testing': BcpFunctionalTestStatus.Testing,\n 'bcm.testing.bcp.test.finalizing': BcpFunctionalTestStatus.Finalizing,\n 'bcm.testing.bcp.test.finished': BcpFunctionalTestStatus.Finished,\n };\n\n // if try to navigate to a route after current status\n if (router.currentRoute.name && router.currentRoute.name !== 'bcm.testing.bcp.test' && routes[router.currentRoute.name] > bcpTest.value.status) {\n for (const i in routes) {\n if (routes[i] === bcpTest.value.status) {\n router.replace({ name: i, params: { testId: props.testId } });\n return;\n }\n }\n } else if (router.currentRoute.name === 'bcm.testing.bcp.test') {\n // if navigated to test landing page move to appropriate form\n\n if (bcpTest.value.status === BcpFunctionalTestStatus.Planning) {\n router.replace({ name: 'bcm.testing.bcp.test.planning', params: { testId: props.testId } });\n } else if (bcpTest.value.status === BcpFunctionalTestStatus.Testing) {\n router.replace({ name: 'bcm.testing.bcp.test.testing', params: { testId: props.testId } });\n } else if (bcpTest.value.status === BcpFunctionalTestStatus.Finalizing) {\n router.replace({ name: 'bcm.testing.bcp.test.finalizing', params: { testId: props.testId } });\n } else if (bcpTest.value.status === BcpFunctionalTestStatus.Finished) {\n router.replace({ name: 'bcm.testing.bcp.test.finished', params: { testId: props.testId } });\n }\n return;\n } else {\n technicians.value = [];\n test.technicians.forEach(t => {\n t.uuid = v4();\n technicians.value.push(t);\n });\n\n let details;\n if (router.currentRoute.name === 'bcm.testing.bcp.test.planning') {\n details = await BcpFunctionalTestService.GetTestForPlanning(parseInt(props.testId));\n subtitle.value = i18n.t('bcm.testing.functional.test.planningPhaseTitle').toString();\n } else if (router.currentRoute.name === 'bcm.testing.bcp.test.testing') {\n details = await BcpFunctionalTestService.GetTestForTesting(parseInt(props.testId));\n subtitle.value = i18n.t('bcm.testing.functional.test.testingPhaseTitle').toString();\n } else if (router.currentRoute.name === 'bcm.testing.bcp.test.finalizing') {\n details = await BcpFunctionalTestService.GetTestForFinalizing(parseInt(props.testId));\n subtitle.value = i18n.t('bcm.testing.functional.test.finalizingPhaseTitle').toString();\n } else if (router.currentRoute.name === 'bcm.testing.bcp.test.finished') {\n details = await BcpFunctionalTestService.GetTestForFinished(parseInt(props.testId));\n subtitle.value = i18n.t('bcm.testing.functional.test.finishedPhaseTitle').toString();\n } else {\n throw new Error(`unknown route ${router.currentRoute.name}`);\n }\n\n details.uuid = v4();\n\n if (details.targetRto == null) {\n throw new Error('RTO not found...');\n }\n\n if (details.scenario == null) {\n throw new Error('Test Scenario not found...');\n }\n\n rto.value = LanguageTemplate(details.targetRto, 'name').text;\n schedule.value = DateTemplate(details.schedule).text;\n scenario.value = LanguageTemplate(details.scenario, 'name').text;\n assumptions.value = details.assumptions;\n console.log(details.name);\n name.value = details.name;\n\n for (let i = 0; i < details.partitions.length; ++i) {\n details.partitions[i].uuid = v4();\n\n const calltree = details.partitions[i].callTree;\n\n if (calltree != null) {\n calltree.forEach(ct => {\n ct.uuid = v4();\n });\n }\n\n const recoverySites = details.partitions[i].recoverySites;\n if (recoverySites != null) {\n recoverySites.forEach(rs => {\n const users = rs.assignedUsers;\n if (users != null) {\n users.forEach(element => {\n element.uuid = v4();\n });\n }\n\n const assets = rs.assets;\n if (assets != null) {\n assets.forEach(a => {\n a.uuid = v4();\n\n if (a.userAnswers != null) {\n a.userAnswers.forEach(ua => {\n ua.uuid = v4();\n });\n }\n });\n }\n\n const applications = rs.applications;\n if (applications != null) {\n applications.forEach(a => {\n a.uuid = v4();\n\n if (a.userAnswers != null) {\n a.userAnswers.forEach(ua => {\n ua.uuid = v4();\n });\n }\n });\n }\n });\n }\n }\n bcpTestDetails.value = details;\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function exportData(type: ('simple' | 'full')) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('exporting').toString());\n try {\n const test = bcpTestDetails.value;\n\n if (test == null) {\n return;\n }\n\n const file = await BcpFunctionalTestService.DownloadTestReport(test, type === 'full');\n\n DownloadService.DownloadFile(file);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n bcpTest,\n bcpTestDetails,\n subtitle,\n name,\n rto,\n scenario,\n schedule,\n assumptions,\n technicians,\n\n showButtons,\n showNextPhaseButton,\n showPrevPhaseButton,\n\n nextPhaseText,\n previousPhaseText,\n goToNextPhase,\n goToPreviousPhase,\n\n showExportButton,\n exportData,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserView.vue?vue&type=template&id=1b83bf34&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserView.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b83bf34\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VList,VListItem,VListItemTitle,VMenu,VRow,VSimpleTable})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showTestResults)?_c('div',{key:_vm.test.uuid,staticClass:\"mx-2 my-6\"},[(_vm.showResultsSave)?_c('h3',{staticClass:\"mb-4\"},[_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\",\"color\":\"success\",\"disabled\":_vm.hasErrors},on:{\"click\":_vm.testResultsChanged}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")]),_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\",\"color\":\"error\"},on:{\"click\":_vm.resetTestResults}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")])],1):_vm._e(),_c('v-divider'),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"300px\"},attrs:{\"items\":_vm.results,\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.result'),\"disabled\":!_vm.admin},model:{value:(_vm.testResult),callback:function ($$v) {_vm.testResult=$$v},expression:\"testResult\"}})],1),_c('v-col',[_c('v-textarea',{attrs:{\"rows\":\"1\",\"hide-details\":\"auto\",\"error-messages\":_vm.testErrors,\"auto-grow\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.resultComments'),\"disabled\":!_vm.admin,\"readonly\":!_vm.admin},model:{value:(_vm.testComments),callback:function ($$v) {_vm.testComments=$$v},expression:\"testComments\"}})],1)],1),(_vm.test.testCallTree)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"300px\"},attrs:{\"items\":_vm.results,\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.callTreeResult'),\"disabled\":!_vm.admin},model:{value:(_vm.callTreeResult),callback:function ($$v) {_vm.callTreeResult=$$v},expression:\"callTreeResult\"}})],1),_c('v-col',[_c('v-textarea',{attrs:{\"rows\":\"1\",\"hide-details\":\"auto\",\"error-messages\":_vm.callTreeErrors,\"auto-grow\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.callTreeResultComments'),\"disabled\":!_vm.admin,\"readonly\":!_vm.admin},model:{value:(_vm.callTreeComments),callback:function ($$v) {_vm.callTreeComments=$$v},expression:\"callTreeComments\"}})],1)],1):_vm._e(),(_vm.test.testAssets)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"300px\"},attrs:{\"items\":_vm.results,\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.assetsResult'),\"disabled\":!_vm.admin},model:{value:(_vm.assetsResult),callback:function ($$v) {_vm.assetsResult=$$v},expression:\"assetsResult\"}})],1),_c('v-col',[_c('v-textarea',{attrs:{\"rows\":\"1\",\"hide-details\":\"auto\",\"error-messages\":_vm.assetsErrors,\"auto-grow\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.assetsResultComments'),\"disabled\":!_vm.admin,\"readonly\":!_vm.admin},model:{value:(_vm.assetsComments),callback:function ($$v) {_vm.assetsComments=$$v},expression:\"assetsComments\"}})],1)],1):_vm._e(),(_vm.test.testApplications)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"300px\"},attrs:{\"items\":_vm.results,\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.applicationsResult'),\"disabled\":!_vm.admin},model:{value:(_vm.applicationsResult),callback:function ($$v) {_vm.applicationsResult=$$v},expression:\"applicationsResult\"}})],1),_c('v-col',[_c('v-textarea',{attrs:{\"rows\":\"1\",\"hide-details\":\"auto\",\"error-messages\":_vm.applicationsErrors,\"auto-grow\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.applicationsResultComments'),\"disabled\":!_vm.admin,\"readonly\":!_vm.admin},model:{value:(_vm.applicationsComments),callback:function ($$v) {_vm.applicationsComments=$$v},expression:\"applicationsComments\"}})],1)],1):_vm._e(),_c('v-divider')],1):_vm._e(),(_vm.showTestResults)?_c('v-row',[_c('v-col',{attrs:{\"xl\":\"2\",\"lg\":\"3\",\"md\":\"4\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-select',{attrs:{\"label\":\"Filter\",\"hide-details\":\"\",\"dense\":\"\",\"items\":_vm.filterValues},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}})],1),_c('v-col',{attrs:{\"xl\":\"2\",\"lg\":\"3\",\"md\":\"4\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"append-icon\":_vm.icons.mdiMagnify,\"label\":\"Search\",\"hide-details\":\"\",\"dense\":\"\",\"single-line\":\"\",\"clearable\":\"\"},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:\"searchText\"}})],1)],1):_vm._e(),_c('v-tabs',{staticClass:\"elevation-2\",attrs:{\"center-active\":\"\",\"centered\":\"\",\"grow\":\"\",\"show-arrows\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.currentPartitions),function(p){return _c('v-tab',{key:p.id},[_vm._v(\" \"+_vm._s(_vm.partitionName(p.partition))+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.currentPartitions),function(p){return _c('v-tab-item',{key:p.id},[_c('bcp-functional-test-user-test-partition',{attrs:{\"test-id\":_vm.test.id,\"partition\":p,\"test-call-tree\":_vm.test.testCallTree,\"test-assets\":_vm.test.testAssets,\"test-applications\":_vm.test.testApplications},on:{\"results-changed\":_vm.testResultsChanged}})],1)}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import type { IDto } from '@/dtos/IDto';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\n\nexport enum BcpFunctionalTestPartitionCallTreeAnswer{\n Found = 1,\n NotFound = 2,\n}\n\nexport interface BcpFunctionalTestPartitionCallTreePersonDto extends IDto {\n answeredBy?: SimpleUserDto\n answer?: BcpFunctionalTestPartitionCallTreeAnswer\n comments: string\n\n lastName: string\n firstName: string\n positionId?: number\n positionDescription: string\n phone1: string\n phone2: string\n phone3: string\n email: string\n parentId?: number\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-card-text',[(_vm.showTestResults)?_c('div',{key:_vm.partition.uuid},[_c('h3',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.partitionResultsTitle', { part: _vm.partitionName }))+\" \"),(_vm.showResultsSave)?_c('v-btn',{staticClass:\"text-none ml-4 mb-1 mr-2\",attrs:{\"small\":\"\",\"color\":\"success\",\"disabled\":_vm.hasErrors},on:{\"click\":_vm.testResultsChanged}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")]):_vm._e(),(_vm.showResultsSave)?_c('v-btn',{staticClass:\"text-none ml-4 mb-1\",attrs:{\"small\":\"\",\"color\":\"error\"},on:{\"click\":_vm.resetTestResults}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]):_vm._e()],1),_c('v-divider'),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"300px\"},attrs:{\"items\":_vm.results,\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.result'),\"disabled\":!_vm.admin},model:{value:(_vm.testResult),callback:function ($$v) {_vm.testResult=$$v},expression:\"testResult\"}})],1),_c('v-col',[_c('v-textarea',{attrs:{\"rows\":\"1\",\"hide-details\":\"auto\",\"error-messages\":_vm.testErrors,\"auto-grow\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.resultComments'),\"disabled\":!_vm.admin,\"readonly\":!_vm.admin},model:{value:(_vm.testComments),callback:function ($$v) {_vm.testComments=$$v},expression:\"testComments\"}})],1)],1),(_vm.testCallTree)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"300px\"},attrs:{\"items\":_vm.results,\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.callTreeResult'),\"disabled\":!_vm.admin},model:{value:(_vm.callTreeResult),callback:function ($$v) {_vm.callTreeResult=$$v},expression:\"callTreeResult\"}})],1),_c('v-col',[_c('v-textarea',{attrs:{\"rows\":\"1\",\"hide-details\":\"auto\",\"error-messages\":_vm.callTreeErrors,\"auto-grow\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.callTreeResultComments'),\"disabled\":!_vm.admin,\"readonly\":!_vm.admin},model:{value:(_vm.callTreeComments),callback:function ($$v) {_vm.callTreeComments=$$v},expression:\"callTreeComments\"}})],1)],1):_vm._e(),(_vm.testAssets)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"300px\"},attrs:{\"items\":_vm.results,\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.assetsResult'),\"disabled\":!_vm.admin},model:{value:(_vm.assetsResult),callback:function ($$v) {_vm.assetsResult=$$v},expression:\"assetsResult\"}})],1),_c('v-col',[_c('v-textarea',{attrs:{\"rows\":\"1\",\"hide-details\":\"auto\",\"error-messages\":_vm.assetsErrors,\"auto-grow\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.assetsResultComments'),\"disabled\":!_vm.admin,\"readonly\":!_vm.admin},model:{value:(_vm.assetsComments),callback:function ($$v) {_vm.assetsComments=$$v},expression:\"assetsComments\"}})],1)],1):_vm._e(),(_vm.testApplications)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"300px\"},attrs:{\"items\":_vm.results,\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.applicationsResult'),\"disabled\":!_vm.admin},model:{value:(_vm.applicationsResult),callback:function ($$v) {_vm.applicationsResult=$$v},expression:\"applicationsResult\"}})],1),_c('v-col',[_c('v-textarea',{attrs:{\"rows\":\"1\",\"hide-details\":\"auto\",\"error-messages\":_vm.applicationsErrors,\"auto-grow\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.applicationsResultComments'),\"disabled\":!_vm.admin,\"readonly\":!_vm.admin},model:{value:(_vm.applicationsComments),callback:function ($$v) {_vm.applicationsComments=$$v},expression:\"applicationsComments\"}})],1)],1):_vm._e(),(_vm.testAssets || _vm.testApplications)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_c('h4',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.partitionStepsValues'))+\" \")]),_c('div',[_c('v-text-field',{staticStyle:{\"width\":\"300px\"},attrs:{\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.targetResponsePlanActivation'),\"disabled\":!_vm.admin},on:{\"keypress\":_vm.preventNonNumericalInput},model:{value:(_vm.responsePlanActivationResult),callback:function ($$v) {_vm.responsePlanActivationResult=$$v},expression:\"responsePlanActivationResult\"}}),_c('v-text-field',{staticStyle:{\"width\":\"300px\"},attrs:{\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.targetRelocation'),\"disabled\":!_vm.admin},on:{\"keypress\":_vm.preventNonNumericalInput},model:{value:(_vm.relocationResult),callback:function ($$v) {_vm.relocationResult=$$v},expression:\"relocationResult\"}}),_c('v-text-field',{staticStyle:{\"width\":\"300px\"},attrs:{\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.targetResumeActivities'),\"disabled\":!_vm.admin},on:{\"keypress\":_vm.preventNonNumericalInput},model:{value:(_vm.resumeActivitiesResult),callback:function ($$v) {_vm.resumeActivitiesResult=$$v},expression:\"resumeActivitiesResult\"}})],1)]),_c('v-divider')],1):_vm._e()],1):_vm._e(),_c('v-tabs',[(_vm.testCallTree && _vm.partition.callTree && _vm.partition.callTree.length > 0)?_c('v-tab',[_vm._v(\" Call Tree \")]):_vm._e(),((_vm.testAssets || _vm.testApplications) && _vm.partition.recoverySites && _vm.partition.recoverySites.length > 0)?_vm._l((_vm.partition.recoverySites),function(rs){return _c('v-tab',{key:rs.uuid},[_vm._v(\" \"+_vm._s(_vm.recoverySiteName(rs))+\" \")])}):_vm._e(),(_vm.testCallTree && _vm.partition.callTree && _vm.partition.callTree.length > 0)?_c('v-tab-item',[_c('bcp-functional-test-user-test-partition-call-tree',{attrs:{\"partition\":_vm.partition,\"test-id\":_vm.testId}})],1):_vm._e(),((_vm.testAssets || _vm.testApplications) && _vm.partition.recoverySites && _vm.partition.recoverySites.length > 0)?_vm._l((_vm.partition.recoverySites),function(rs){return _c('v-tab-item',{key:rs.uuid},[_c('bcp-functional-test-user-test-partition-recovery-site',{attrs:{\"partition\":_vm.partition,\"recovery-site\":rs,\"test-id\":_vm.testId,\"test-assets\":_vm.testAssets,\"test-applications\":_vm.testApplications}})],1)}):_vm._e()],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('table',{staticStyle:{\"width\":\"100%\"}},[_vm._m(0),_vm._l((_vm.partition.callTree),function(person){return _c('bcp-functional-test-user-test-partition-call-tree-line',{key:person.uuid,attrs:{\"person\":person,\"editable\":_vm.editable},on:{\"changed\":_vm.personChanged}})})],2)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('th',{staticStyle:{\"width\":\"300px\"}},[_vm._v(\" Name \")]),_c('th',{staticStyle:{\"width\":\"150px\"}},[_vm._v(\" Phone 1 \")]),_c('th',{staticStyle:{\"width\":\"150px\"}},[_vm._v(\" Phone 2 \")]),_c('th',{staticStyle:{\"width\":\"150px\"}},[_vm._v(\" Phone 3 \")]),_c('th',{staticStyle:{\"width\":\"250px\"}},[_vm._v(\" Found? \")]),_c('th',{},[_vm._v(\" Comments \")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{key:_vm.person.uuid},[_c('td',[_vm._v(\" \"+_vm._s(_vm.person.lastName)+\" \"+_vm._s(_vm.person.firstName)+\" (\"+_vm._s(_vm.person.email)+\") \")]),_c('td',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.person.phone1)+\" \")]),_c('td',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.person.phone2)+\" \")]),_c('td',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.person.phone3)+\" \")]),_c('td',[_c('v-select',{staticStyle:{\"font-weight\":\"bold\"},attrs:{\"items\":_vm.availableAnswers,\"dense\":\"\",\"hint\":_vm.answeredBy,\"persistent-hint\":\"\",\"disabled\":!_vm.editable},on:{\"change\":_vm.foundChanged},model:{value:(_vm.tempPerson.answer),callback:function ($$v) {_vm.$set(_vm.tempPerson, \"answer\", $$v)},expression:\"tempPerson.answer\"}})],1),_c('td',[_c('v-textarea',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"rows\":\"1\",\"readonly\":!_vm.editable,\"disabled\":!_vm.editable},on:{\"change\":_vm.commentsChanged},model:{value:(_vm.tempPerson.comments),callback:function ($$v) {_vm.$set(_vm.tempPerson, \"comments\", $$v)},expression:\"tempPerson.comments\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { BcpFunctionalTestPartitionCallTreeAnswer, BcpFunctionalTestPartitionCallTreePersonDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionCallTreePersonDto';\nimport i18n from '@/i18n';\nimport { cloneDeep } from 'lodash';\nimport { mdiAccount } from '@mdi/js';\n\ninterface SelectItem {\n value: number\n text: string\n}\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserTestPartitionCallTreeLine',\n\n components: {},\n\n props: {\n person: {\n type: Object as PropType,\n required: true,\n },\n\n editable: {\n type: Boolean,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const availableAnswers: Array = [\n {\n value: BcpFunctionalTestPartitionCallTreeAnswer.NotFound,\n text: i18n.t('bcm.testing.functional.test.callTreeNotFound').toString(),\n },\n {\n value: BcpFunctionalTestPartitionCallTreeAnswer.Found,\n text: i18n.t('bcm.testing.functional.test.callTreeFound').toString(),\n },\n ];\n\n const tempPerson = ref(cloneDeep(props.person));\n const answeredBy = ref('');\n\n watch(\n () => props.person,\n (p) => {\n tempPerson.value = cloneDeep(p);\n if (p.answeredBy == null) {\n answeredBy.value = '';\n } else {\n answeredBy.value = p.answeredBy.info;\n }\n },\n {\n immediate: true,\n deep: true,\n },\n );\n\n function foundChanged() {\n emit('changed', tempPerson.value);\n }\n\n function commentsChanged() {\n emit('changed', tempPerson.value);\n }\n\n // const position = ref('');\n\n // watch(\n // () => props.person,\n // async (value) => {\n // try {\n // if (value.positionId == null) {\n // position.value = '';\n // return;\n // }\n\n // const p = await DatasourcesService.Bcm.Positions.getById(value.positionId);\n // if (p == null) {\n // position.value = '';\n // return;\n // }\n\n // position.value = (await LanguageTemplate(p, 'name')).text;\n // } catch (error) {\n // ErrorHandlingService.Handle(error);\n // }\n // },\n // { immediate: true },\n // );\n\n return {\n tempPerson,\n\n availableAnswers,\n answeredBy,\n\n foundChanged,\n commentsChanged,\n // position,\n\n icons: {\n mdiAccount,\n },\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionCallTreeLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionCallTreeLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserTestPartitionCallTreeLine.vue?vue&type=template&id=271a4e78&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserTestPartitionCallTreeLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserTestPartitionCallTreeLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"271a4e78\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VSelect,VTextarea})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport { BcpFunctionalTestPartitionDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionDto';\nimport BcpFunctionalTestUserTestPartitionCallTreeLine from './BcpFunctionalTestUserTestPartitionCallTreeLine.vue';\nimport { BcpFunctionalTestPartitionCallTreePersonDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionCallTreePersonDto';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport i18n from '@/i18n';\nimport BcpFunctionalTestService from '@/services/bcm/testing/BcpFunctionalTestService';\nimport { v4 } from 'uuid';\nimport { BcpFunctionalTestUserAccessRights } from '@/dtos/bcm/testing/BcpFunctionalTestDto';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserTestPartitionCallTree',\n\n components: {\n BcpFunctionalTestUserTestPartitionCallTreeLine,\n },\n\n props: {\n testId: {\n type: Number,\n required: true,\n },\n\n partition: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const editable = computed(() => {\n return props.partition.callTreeAccessRights === BcpFunctionalTestUserAccessRights.Editor;\n });\n\n async function personChanged(person: BcpFunctionalTestPartitionCallTreePersonDto) {\n if (props.partition.callTree == null) {\n return;\n }\n\n for (let i = 0; i < props.partition.callTree.length; ++i) {\n if (props.partition.callTree[i].id === person.id) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const p = await BcpFunctionalTestService.UpdateCallTreeAnswer(props.testId, props.partition.id, person);\n props.partition.callTree[i].answeredBy = p.answeredBy;\n props.partition.callTree[i].answer = p.answer;\n props.partition.callTree[i].comments = p.comments;\n return;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n props.partition.callTree[i].uuid = v4();\n }\n }\n }\n }\n\n return {\n editable,\n personChanged,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionCallTree.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionCallTree.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserTestPartitionCallTree.vue?vue&type=template&id=29623acb&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserTestPartitionCallTree.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserTestPartitionCallTree.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BcpFunctionalTestUserTestPartitionCallTree.vue?vue&type=style&index=0&id=29623acb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"29623acb\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('bcp-functional-test-user-test-partition-recovery-site-general',{attrs:{\"test-id\":_vm.testId,\"partition-id\":_vm.partition.id,\"recovery-site-id\":_vm.recoverySite.id,\"assigned-users\":_vm.recoverySite.assignedUsers}}),(_vm.testAssets && _vm.recoverySite.assets && _vm.recoverySite.assets.length >0)?[_c('bcp-functional-test-user-test-partition-recovery-site-assets',{attrs:{\"test-id\":_vm.testId,\"partition-id\":_vm.partition.id,\"recovery-site-id\":_vm.recoverySite.id,\"assets\":_vm.recoverySite.assets}})]:_vm._e(),(_vm.testApplications && _vm.recoverySite.applications && _vm.recoverySite.applications.length >0)?[_c('bcp-functional-test-user-test-partition-recovery-site-applications',{attrs:{\"test-id\":_vm.testId,\"partition-id\":_vm.partition.id,\"recovery-site-id\":_vm.recoverySite.id,\"applications\":_vm.recoverySite.applications}})]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"text-body-1 mb-2\"},[_vm._v(\" General Information \")]),_c('table',{staticClass:\"mb-4\",staticStyle:{\"width\":\"100%\"}},[_vm._m(0),_vm._l((_vm.assignedUsers),function(user){return _c('bcp-functional-test-user-test-partition-recovery-site-general-line',{key:user.uuid,attrs:{\"user\":user},on:{\"changed\":_vm.userAnswerChanged}})})],2)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('th',{staticStyle:{\"width\":\"400px\"}},[_vm._v(\" Name \")]),_c('th',{staticStyle:{\"width\":\"250px\"}},[_vm._v(\" Relocation Time (minutes) \")]),_c('th',{},[_vm._v(\" Comments \")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.user.user.info)+\" \")]),_c('td',[_c('v-text-field',{staticClass:\"centered-input\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.editable},on:{\"change\":_vm.itemChanged,\"keypress\":_vm.preventNonNumericalInput},model:{value:(_vm.tempUser.relocationTime),callback:function ($$v) {_vm.$set(_vm.tempUser, \"relocationTime\", $$v)},expression:\"tempUser.relocationTime\"}})],1),_c('td',[_c('v-textarea',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"rows\":\"1\",\"readonly\":!_vm.editable,\"disabled\":!_vm.editable},on:{\"change\":_vm.itemChanged},model:{value:(_vm.tempUser.comments),callback:function ($$v) {_vm.$set(_vm.tempUser, \"comments\", $$v)},expression:\"tempUser.comments\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { BcpFunctionalTestPartitionRecoverySiteUserDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteUserDto';\nimport { cloneDeep } from 'lodash';\nimport { BcpFunctionalTestUserAccessRights } from '@/dtos/bcm/testing/BcpFunctionalTestDto';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserTestPartitionRecoverySiteGeneralLine',\n\n components: {},\n\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const editable = computed(() => {\n return props.user.accessRights === BcpFunctionalTestUserAccessRights.Editor;\n });\n\n const tempUser = ref(cloneDeep(props.user));\n\n watch(\n () => props.user,\n (p) => {\n tempUser.value = cloneDeep(p);\n },\n {\n immediate: true,\n deep: true,\n },\n );\n\n function itemChanged() {\n emit('changed', tempUser.value);\n }\n\n function preventNonNumericalInput(e: KeyboardEvent) {\n if (!e.key.match(/^[0-9.]+$/)) {\n e.preventDefault();\n }\n }\n\n return {\n editable,\n tempUser,\n preventNonNumericalInput,\n itemChanged,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteGeneralLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteGeneralLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserTestPartitionRecoverySiteGeneralLine.vue?vue&type=template&id=1b0c04ca&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserTestPartitionRecoverySiteGeneralLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserTestPartitionRecoverySiteGeneralLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b0c04ca\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VTextField,VTextarea})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport i18n from '@/i18n';\nimport BcpFunctionalTestService from '@/services/bcm/testing/BcpFunctionalTestService';\nimport { v4 } from 'uuid';\nimport { BcpFunctionalTestPartitionRecoverySiteUserDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteUserDto';\nimport BcpFunctionalTestUserTestPartitionRecoverySiteGeneralLine from './BcpFunctionalTestUserTestPartitionRecoverySiteGeneralLine.vue';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserTestPartitionRecoverySiteGeneral',\n\n components: {\n BcpFunctionalTestUserTestPartitionRecoverySiteGeneralLine,\n },\n\n props: {\n testId: {\n type: Number,\n required: true,\n },\n\n partitionId: {\n type: Number,\n required: true,\n },\n\n recoverySiteId: {\n type: Number,\n required: true,\n },\n\n assignedUsers: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props) {\n async function userAnswerChanged(userAnswer: BcpFunctionalTestPartitionRecoverySiteUserDto) {\n for (let i = 0; i < props.assignedUsers.length; ++i) {\n if (props.assignedUsers[i].id === userAnswer.id) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const p = await BcpFunctionalTestService.UpdateRecoverySiteUserAnswer(props.testId, props.partitionId, props.recoverySiteId, userAnswer);\n props.assignedUsers[i].relocationTime = p.relocationTime;\n props.assignedUsers[i].comments = p.comments;\n return;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n props.assignedUsers[i].uuid = v4();\n }\n }\n }\n }\n\n return {\n // editable,\n userAnswerChanged,\n };\n },\n});\n","import type { IDto } from '@/dtos/IDto';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\n\nexport enum BcpFunctionalTestApplicationAnswer{\n NotFound = 1,\n NotWorking = 2,\n Partial = 3,\n Found = 4,\n}\n\nexport interface BcpFunctionalTestPartitionRecoverySiteUserApplicationAnswerDto extends IDto {\n user: SimpleUserDto\n found?: BcpFunctionalTestApplicationAnswer\n comments?: string\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteGeneral.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteGeneral.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserTestPartitionRecoverySiteGeneral.vue?vue&type=template&id=5c73e06e&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserTestPartitionRecoverySiteGeneral.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserTestPartitionRecoverySiteGeneral.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BcpFunctionalTestUserTestPartitionRecoverySiteGeneral.vue?vue&type=style&index=0&id=5c73e06e&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5c73e06e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"text-body-1 mb-2\"},[_vm._v(\" Applications \")]),_c('div',{staticStyle:{\"overflow\":\"auto\"}},[_c('table',[_c('tr',[_c('td',{staticClass:\"application\",staticStyle:{\"background\":\"#F0F0F0\"},attrs:{\"colspan\":\"1\"}}),_vm._l((_vm.assignedUsers),function(ua){return _c('td',{key:'answer' + ua.id,staticClass:\"text-center\",attrs:{\"colspan\":\"2\"}},[_vm._v(\" \"+_vm._s(ua.info)+\" \")])})],2),_c('tr',[_c('td',{staticClass:\"application\",staticStyle:{\"background\":\"#F0F0F0\"}},[_vm._v(\" Application \")]),_vm._l((_vm.assignedUsers),function(u){return _c('fragment',{key:u.uuid},[_c('td',{staticClass:\"found text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.applicationsFound'))+\" \")]),_c('td',{staticClass:\"comments text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.comments'))+\" \")])])})],2),_vm._l((_vm.applications),function(application){return _c('bcp-functional-test-user-test-partition-recovery-site-application-line',{key:application.uuid,attrs:{\"test-id\":_vm.testId,\"partition-id\":_vm.partitionId,\"recovery-site-id\":_vm.recoverySiteId,\"application\":application}})})],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticClass:\"application\"},[_vm._v(\" \"+_vm._s(_vm.applicationName)+\" \")]),_vm._l((_vm.application.userAnswers),function(answer){return _c('bcp-functional-test-user-test-partition-recovery-site-application-line-found',{key:answer.uuid,attrs:{\"answer\":answer},on:{\"change\":_vm.userAnswerChanged}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('td',{staticClass:\"found\"},[_c('v-select',{staticStyle:{\"font-weight\":\"bold\"},attrs:{\"items\":_vm.availableAnswers,\"dense\":\"\",\"disabled\":!_vm.editable},on:{\"change\":_vm.itemChanged},model:{value:(_vm.tempAnswer.found),callback:function ($$v) {_vm.$set(_vm.tempAnswer, \"found\", $$v)},expression:\"tempAnswer.found\"}})],1),_c('td',{staticClass:\"comments\"},[_c('v-textarea',{staticClass:\"centered-input\",attrs:{\"hide-details\":\"\",\"dense\":\"\",\"rows\":\"1\",\"disabled\":!_vm.editable,\"readonly\":!_vm.editable},on:{\"change\":_vm.itemChanged},model:{value:(_vm.tempAnswer.comments),callback:function ($$v) {_vm.$set(_vm.tempAnswer, \"comments\", $$v)},expression:\"tempAnswer.comments\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { BcpFunctionalTestUserAccessRights } from '@/dtos/bcm/testing/BcpFunctionalTestDto';\nimport { BcpFunctionalTestApplicationAnswer, BcpFunctionalTestPartitionRecoverySiteUserApplicationAnswerDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteUserApplicationAnswerDto';\nimport i18n from '@/i18n';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { cloneDeep } from 'lodash';\n\ninterface SelectItem {\n value: number\n text: string\n}\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLineAnswer',\n\n components: {},\n\n props: {\n answer: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const editable = computed(() => {\n return props.answer.accessRights === BcpFunctionalTestUserAccessRights.Editor;\n });\n\n const tempAnswer = ref(cloneDeep(props.answer));\n\n const availableAnswers: Array = [\n {\n value: BcpFunctionalTestApplicationAnswer.NotFound,\n text: i18n.t('bcm.testing.functional.test.applicationNotFound').toString(),\n },\n {\n value: BcpFunctionalTestApplicationAnswer.NotWorking,\n text: i18n.t('bcm.testing.functional.test.applicationNotWorking').toString(),\n },\n {\n value: BcpFunctionalTestApplicationAnswer.Partial,\n text: i18n.t('bcm.testing.functional.test.applicationPartial').toString(),\n },\n {\n value: BcpFunctionalTestApplicationAnswer.Found,\n text: i18n.t('bcm.testing.functional.test.applicationWorking').toString(),\n },\n ];\n\n watch(\n () => props.answer,\n (p) => {\n tempAnswer.value = cloneDeep(p);\n },\n {\n immediate: true,\n deep: true,\n },\n );\n\n function itemChanged() {\n emit('change', tempAnswer.value);\n }\n\n function preventNonNumericalInput(e: KeyboardEvent) {\n if (!e.key.match(/^[0-9.]+$/)) {\n e.preventDefault();\n }\n }\n\n return {\n editable,\n availableAnswers,\n tempAnswer,\n itemChanged,\n preventNonNumericalInput,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLineAnswer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLineAnswer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLineAnswer.vue?vue&type=template&id=b05b8e6e&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLineAnswer.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLineAnswer.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b05b8e6e\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLineAnswer.vue?vue&type=custom&index=0&blockType=v-textarea&v-model=tempAnswer.comments&hide-details=true&style=width%3A%2050px&class=centered-input\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VSelect,VTextarea})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { BcpFunctionalTestPartitionRecoverySiteApplicationDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteApplicationDto';\nimport { BcpFunctionalTestPartitionRecoverySiteUserApplicationAnswerDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteUserApplicationAnswerDto';\nimport i18n from '@/i18n';\nimport BcpFunctionalTestService from '@/services/bcm/testing/BcpFunctionalTestService';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport { v4 } from 'uuid';\nimport BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLineFound from './BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLineAnswer.vue';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLine',\n\n components: { BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLineFound },\n\n props: {\n testId: {\n type: Number,\n required: true,\n },\n\n partitionId: {\n type: Number,\n required: true,\n },\n\n recoverySiteId: {\n type: Number,\n required: true,\n },\n\n application: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const applicationName = computed(() => {\n return LanguageTemplate(props.application.application, 'name').text;\n });\n\n async function userAnswerChanged(userAnswer: BcpFunctionalTestPartitionRecoverySiteUserApplicationAnswerDto) {\n const userAnswers = props.application.userAnswers;\n\n if (userAnswers == null) {\n return;\n }\n\n for (let i = 0; i < userAnswers.length; ++i) {\n if (userAnswers[i].id === userAnswer.id) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const p = await BcpFunctionalTestService.UpdateRecoverySiteUserApplicationAnswer(props.testId, props.partitionId, props.recoverySiteId, props.application.id, userAnswer);\n userAnswers[i].found = p.found;\n userAnswers[i].comments = p.comments;\n return;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n userAnswers[i].uuid = v4();\n }\n }\n }\n }\n\n return {\n applicationName,\n userAnswerChanged,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLine.vue?vue&type=template&id=18fb437a&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"18fb437a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { BcpFunctionalTestPartitionRecoverySiteApplicationDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteApplicationDto';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLine from './BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLine.vue';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserTestPartitionRecoverySiteApplications',\n\n components: {\n BcpFunctionalTestUserTestPartitionRecoverySiteApplicationLine,\n },\n\n props: {\n testId: {\n type: Number,\n required: true,\n },\n\n partitionId: {\n type: Number,\n required: true,\n },\n\n recoverySiteId: {\n type: Number,\n required: true,\n },\n\n applications: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props) {\n const assignedUsers = computed(() => {\n if (props.applications.length > 0) {\n if (props.applications[0].userAnswers != null) {\n return props.applications[0].userAnswers.map(i => i.user);\n }\n }\n return [];\n });\n\n return {\n assignedUsers,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteApplications.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteApplications.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserTestPartitionRecoverySiteApplications.vue?vue&type=template&id=aa87b792&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserTestPartitionRecoverySiteApplications.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserTestPartitionRecoverySiteApplications.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BcpFunctionalTestUserTestPartitionRecoverySiteApplications.vue?vue&type=style&index=0&id=aa87b792&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"aa87b792\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"text-body-1 mb-2\"},[_vm._v(\" Assets \")]),_c('div',{staticClass:\"mb-4\",staticStyle:{\"overflow\":\"auto\"}},[_c('table',[_c('tr',[_c('td',{staticClass:\"asset\",staticStyle:{\"background\":\"#F0F0F0\"},attrs:{\"colspan\":\"2\"}}),_vm._l((_vm.assignedUsers),function(ua){return _c('td',{key:'answer' + ua.id,staticClass:\"text-center\",attrs:{\"colspan\":\"2\"}},[_vm._v(\" \"+_vm._s(ua.info)+\" \")])})],2),_c('tr',[_c('td',{staticClass:\"asset\",staticStyle:{\"background\":\"#F0F0F0\"}},[_vm._v(\" Asset \")]),_c('td',{staticClass:\"required\",staticStyle:{\"background\":\"#F0F0F0\"}},[_vm._v(\" Required \")]),_vm._l((_vm.assignedUsers),function(u){return _c('fragment',{key:u.uuid},[_c('td',{staticClass:\"found text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.assetsFound'))+\" \")]),_c('td',{staticClass:\"comments text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.functional.test.comments'))+\" \")])])})],2),_vm._l((_vm.assets),function(asset){return _c('bcp-functional-test-user-test-partition-recovery-site-asset-line',{key:asset.uuid,attrs:{\"test-id\":_vm.testId,\"partition-id\":_vm.partitionId,\"recovery-site-id\":_vm.recoverySiteId,\"asset\":asset}})})],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticClass:\"asset\"},[_vm._v(\" \"+_vm._s(_vm.assetName)+\" \")]),_c('td',{staticClass:\"required\",staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(\" \"+_vm._s(_vm.asset.required)+\" \")]),_vm._l((_vm.asset.userAnswers),function(answer){return _c('bcp-functional-test-user-test-partition-recovery-site-asset-line-answer',{key:answer.uuid,attrs:{\"answer\":answer},on:{\"change\":_vm.userAnswerChanged}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('td',{staticClass:\"found\"},[_c('v-text-field',{staticClass:\"centered-input\",staticStyle:{\"width\":\"50px\"},attrs:{\"hide-details\":\"\",\"dense\":\"\",\"disabled\":!_vm.editable},on:{\"keypress\":_vm.preventNonNumericalInput,\"change\":_vm.itemChanged},model:{value:(_vm.tempAnswer.found),callback:function ($$v) {_vm.$set(_vm.tempAnswer, \"found\", $$v)},expression:\"tempAnswer.found\"}})],1),_c('td',{staticClass:\"comments\"},[_c('v-textarea',{staticClass:\"centered-input\",attrs:{\"hide-details\":\"\",\"dense\":\"\",\"rows\":\"1\",\"disabled\":!_vm.editable,\"readonly\":!_vm.editable},on:{\"change\":_vm.itemChanged},model:{value:(_vm.tempAnswer.comments),callback:function ($$v) {_vm.$set(_vm.tempAnswer, \"comments\", $$v)},expression:\"tempAnswer.comments\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { BcpFunctionalTestUserAccessRights } from '@/dtos/bcm/testing/BcpFunctionalTestDto';\nimport { BcpFunctionalTestPartitionRecoverySiteUserAssetAnswerDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteUserAssetAnswerDto';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { cloneDeep } from 'lodash';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserTestPartitionRecoverySiteAssetLineAnswer',\n\n components: {},\n\n props: {\n answer: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const editable = computed(() => {\n return props.answer.accessRights === BcpFunctionalTestUserAccessRights.Editor;\n });\n\n const tempAnswer = ref(cloneDeep(props.answer));\n\n watch(\n () => props.answer,\n (p) => {\n tempAnswer.value = cloneDeep(p);\n },\n {\n immediate: true,\n deep: true,\n },\n );\n\n function itemChanged() {\n emit('change', tempAnswer.value);\n }\n\n function preventNonNumericalInput(e: KeyboardEvent) {\n if (!e.key.match(/^[0-9.]+$/)) {\n e.preventDefault();\n }\n }\n\n return {\n editable,\n tempAnswer,\n itemChanged,\n preventNonNumericalInput,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteAssetLineAnswer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteAssetLineAnswer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserTestPartitionRecoverySiteAssetLineAnswer.vue?vue&type=template&id=7353eccf&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserTestPartitionRecoverySiteAssetLineAnswer.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserTestPartitionRecoverySiteAssetLineAnswer.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7353eccf\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./BcpFunctionalTestUserTestPartitionRecoverySiteAssetLineAnswer.vue?vue&type=custom&index=0&blockType=v-textarea&v-model=tempAnswer.comments&hide-details=true&style=width%3A%2050px&class=centered-input\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VTextField,VTextarea})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { BcpFunctionalTestPartitionRecoverySiteAssetDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteAssetDto';\nimport { BcpFunctionalTestPartitionRecoverySiteUserAssetAnswerDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteUserAssetAnswerDto';\nimport i18n from '@/i18n';\nimport BcpFunctionalTestService from '@/services/bcm/testing/BcpFunctionalTestService';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport { v4 } from 'uuid';\nimport BcpFunctionalTestUserTestPartitionRecoverySiteAssetLineAnswer from './BcpFunctionalTestUserTestPartitionRecoverySiteAssetLineAnswer.vue';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserTestPartitionRecoverySiteAssetLine',\n\n components: { BcpFunctionalTestUserTestPartitionRecoverySiteAssetLineAnswer },\n\n props: {\n testId: {\n type: Number,\n required: true,\n },\n\n partitionId: {\n type: Number,\n required: true,\n },\n\n recoverySiteId: {\n type: Number,\n required: true,\n },\n\n asset: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const assetName = computed(() => {\n return LanguageTemplate(props.asset.asset, 'name').text;\n });\n\n async function userAnswerChanged(userAnswer: BcpFunctionalTestPartitionRecoverySiteUserAssetAnswerDto) {\n const userAnswers = props.asset.userAnswers;\n\n if (userAnswers == null) {\n return;\n }\n\n for (let i = 0; i < userAnswers.length; ++i) {\n if (userAnswers[i].id === userAnswer.id) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const p = await BcpFunctionalTestService.UpdateRecoverySiteUserAssetAnswer(props.testId, props.partitionId, props.recoverySiteId, props.asset.id, userAnswer);\n userAnswers[i].found = p.found;\n userAnswers[i].comments = p.comments;\n return;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n userAnswers[i].uuid = v4();\n }\n }\n }\n }\n\n return {\n assetName,\n userAnswerChanged,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteAssetLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteAssetLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserTestPartitionRecoverySiteAssetLine.vue?vue&type=template&id=b0c3299c&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserTestPartitionRecoverySiteAssetLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserTestPartitionRecoverySiteAssetLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b0c3299c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { BcpFunctionalTestPartitionRecoverySiteAssetDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteAssetDto';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport BcpFunctionalTestUserTestPartitionRecoverySiteAssetLine from './BcpFunctionalTestUserTestPartitionRecoverySiteAssetLine.vue';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserTestPartitionRecoverySiteAssets',\n\n components: {\n BcpFunctionalTestUserTestPartitionRecoverySiteAssetLine,\n },\n\n props: {\n testId: {\n type: Number,\n required: true,\n },\n\n partitionId: {\n type: Number,\n required: true,\n },\n\n recoverySiteId: {\n type: Number,\n required: true,\n },\n\n assets: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props) {\n const assignedUsers = computed(() => {\n if (props.assets.length > 0) {\n if (props.assets[0].userAnswers != null) {\n return props.assets[0].userAnswers.map(i => i.user);\n }\n }\n return [];\n });\n\n return {\n assignedUsers,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteAssets.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySiteAssets.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserTestPartitionRecoverySiteAssets.vue?vue&type=template&id=5712edd4&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserTestPartitionRecoverySiteAssets.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserTestPartitionRecoverySiteAssets.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BcpFunctionalTestUserTestPartitionRecoverySiteAssets.vue?vue&type=style&index=0&id=5712edd4&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5712edd4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { BcpFunctionalTestPartitionDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionDto';\nimport { BcpFunctionalTestPartitionRecoverySiteDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteDto';\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport BcpFunctionalTestUserTestPartitionRecoverySiteGeneral from './BcpFunctionalTestUserTestPartitionRecoverySiteGeneral.vue';\nimport BcpFunctionalTestUserTestPartitionRecoverySiteApplications from './BcpFunctionalTestUserTestPartitionRecoverySiteApplications.vue';\nimport BcpFunctionalTestUserTestPartitionRecoverySiteAssets from './BcpFunctionalTestUserTestPartitionRecoverySiteAssets.vue';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserTestPartitionRecoverySite',\n\n components: {\n BcpFunctionalTestUserTestPartitionRecoverySiteGeneral,\n BcpFunctionalTestUserTestPartitionRecoverySiteAssets,\n BcpFunctionalTestUserTestPartitionRecoverySiteApplications,\n\n },\n\n props: {\n testId: {\n type: Number,\n required: true,\n },\n\n partition: {\n type: Object as PropType,\n required: true,\n },\n\n recoverySite: {\n type: Object as PropType,\n required: true,\n },\n\n testAssets: {\n type: Boolean,\n required: true,\n },\n\n testApplications: {\n type: Boolean,\n required: true,\n },\n },\n\n setup() {\n return {\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySite.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartitionRecoverySite.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserTestPartitionRecoverySite.vue?vue&type=template&id=4bd42311&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserTestPartitionRecoverySite.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserTestPartitionRecoverySite.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4bd42311\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { BcpFunctionalTestPartitionDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionDto';\nimport BcpFunctionalTestUserTestPartitionCallTree from './BcpFunctionalTestUserTestPartitionCallTree.vue';\nimport BcpFunctionalTestUserTestPartitionRecoverySite from './BcpFunctionalTestUserTestPartitionRecoverySite.vue';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { BcpFunctionalTestPartitionRecoverySiteDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionRecoverySiteDto';\nimport { BcpFunctionalTestResult, BcpFunctionalTestUserAccessRights } from '@/dtos/bcm/testing/BcpFunctionalTestDto';\nimport i18n from '@/i18n';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserTestPartition',\n\n components: {\n BcpFunctionalTestUserTestPartitionCallTree,\n BcpFunctionalTestUserTestPartitionRecoverySite,\n },\n\n props: {\n testId: {\n type: Number,\n required: true,\n },\n\n partition: {\n type: Object as PropType,\n required: true,\n },\n\n testCallTree: {\n type: Boolean,\n required: true,\n },\n\n testAssets: {\n type: Boolean,\n required: true,\n },\n\n testApplications: {\n type: Boolean,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const partitionName = computed(() => {\n if (props.partition.partition == null) {\n return '';\n }\n return LanguageTemplate(props.partition.partition, 'name').text;\n });\n\n const showTestResults = computed(() => {\n return props.partition.partitionAccessRights === BcpFunctionalTestUserAccessRights.Admin || props.partition.partitionAccessRights === BcpFunctionalTestUserAccessRights.Observer;\n });\n\n const admin = computed(() => {\n return props.partition.partitionAccessRights === BcpFunctionalTestUserAccessRights.Admin;\n });\n\n function recoverySiteName(recoverySite: BcpFunctionalTestPartitionRecoverySiteDto) {\n if (recoverySite.recoverySite == null) {\n return '';\n }\n\n return LanguageTemplate(recoverySite.recoverySite, 'name').text;\n }\n\n const results = [\n {\n value: BcpFunctionalTestResult.Fail,\n text: i18n.t('bcm.testing.functional.test.resultFail').toString(),\n },\n {\n value: BcpFunctionalTestResult.Partial,\n text: i18n.t('bcm.testing.functional.test.resultPartial').toString(),\n },\n {\n value: BcpFunctionalTestResult.Success,\n text: i18n.t('bcm.testing.functional.test.resultSuccess').toString(),\n },\n ];\n\n const testResult = ref(null);\n const testComments = ref('');\n const callTreeResult = ref(null);\n const callTreeComments = ref('');\n const assetsResult = ref(null);\n const assetsComments = ref('');\n const applicationsResult = ref(null);\n const applicationsComments = ref('');\n const relocationResult = ref(null);\n const responsePlanActivationResult = ref(null);\n const resumeActivitiesResult = ref(null);\n\n const showResultsSave = computed(() => {\n return testResult.value !== props.partition.testResult || testComments.value !== (props.partition.testComments || '') ||\n callTreeResult.value !== props.partition.callTreeResult || callTreeComments.value !== (props.partition.callTreeComments || '') ||\n assetsResult.value !== props.partition.assetsResult || assetsComments.value !== (props.partition.assetsComments || '') ||\n applicationsResult.value !== props.partition.applicationsResult || applicationsComments.value !== (props.partition.applicationsComments || '') ||\n relocationResult.value !== (props.partition.relocation == null ? null : props.partition.relocation) ||\n responsePlanActivationResult.value !== (props.partition.responsePlanActivation == null ? null : props.partition.responsePlanActivation) ||\n resumeActivitiesResult.value !== (props.partition.resumeActivities == null ? null : props.partition.resumeActivities);\n });\n\n const testErrors = computed(() => {\n if (testResult.value != null && testResult.value !== BcpFunctionalTestResult.Success && (testComments.value == null || testComments.value.trim() === '')) {\n return i18n.t('bcm.testing.functional.test.mandatoryComments').toString();\n }\n return '';\n });\n\n const callTreeErrors = computed(() => {\n if (callTreeResult.value != null && callTreeResult.value !== BcpFunctionalTestResult.Success && (callTreeComments.value == null || callTreeComments.value.trim() === '')) {\n return i18n.t('bcm.testing.functional.test.mandatoryComments').toString();\n }\n return '';\n });\n\n const assetsErrors = computed(() => {\n if (assetsResult.value != null && assetsResult.value !== BcpFunctionalTestResult.Success && (assetsComments.value == null || assetsComments.value.trim() === '')) {\n return i18n.t('bcm.testing.functional.test.mandatoryComments').toString();\n }\n return '';\n });\n\n const applicationsErrors = computed(() => {\n if (applicationsResult.value != null && applicationsResult.value !== BcpFunctionalTestResult.Success && (applicationsComments.value == null || applicationsComments.value.trim() === '')) {\n return i18n.t('bcm.testing.functional.test.mandatoryComments').toString();\n }\n return '';\n });\n\n const hasErrors = computed(() => {\n return testErrors.value.length > 0 || callTreeErrors.value.length > 0 || assetsErrors.value.length > 0 || applicationsErrors.value.length > 0;\n });\n\n watch(\n () => props.partition,\n () => {\n resetTestResults();\n },\n {\n immediate: true,\n deep: true,\n },\n );\n\n function resetTestResults() {\n const part = props.partition;\n testResult.value = part.testResult === undefined ? null : part.testResult;\n testComments.value = part.testComments || '';\n callTreeResult.value = part.callTreeResult === undefined ? null : part.callTreeResult;\n callTreeComments.value = part.callTreeComments || '';\n assetsResult.value = part.assetsResult === undefined ? null : part.assetsResult;\n assetsComments.value = part.assetsComments || '';\n applicationsResult.value = part.applicationsResult === undefined ? null : part.applicationsResult;\n applicationsComments.value = part.applicationsComments || '';\n relocationResult.value = part.relocation === undefined ? null : part.relocation;\n responsePlanActivationResult.value = part.responsePlanActivation === undefined ? null : part.responsePlanActivation;\n resumeActivitiesResult.value = part.resumeActivities === undefined ? null : part.resumeActivities;\n }\n\n function testResultsChanged() {\n const p: Partial = {\n id: props.partition.id,\n testResult: testResult.value != null ? testResult.value : undefined,\n testComments: testComments.value != null ? testComments.value : undefined,\n callTreeResult: callTreeResult.value != null ? callTreeResult.value : undefined,\n callTreeComments: callTreeComments.value != null ? callTreeComments.value : undefined,\n assetsResult: assetsResult.value != null ? assetsResult.value : undefined,\n assetsComments: assetsComments.value != null ? assetsComments.value : undefined,\n applicationsResult: applicationsResult.value != null ? applicationsResult.value : undefined,\n applicationsComments: applicationsComments.value != null ? applicationsComments.value : undefined,\n relocation: relocationResult.value != null ? relocationResult.value : undefined,\n responsePlanActivation: responsePlanActivationResult.value != null ? responsePlanActivationResult.value : undefined,\n resumeActivities: resumeActivitiesResult.value != null ? resumeActivitiesResult.value : undefined,\n };\n\n emit('results-changed', p);\n }\n\n function preventNonNumericalInput(e: KeyboardEvent) {\n if (!e.key.match(/^[0-9.]+$/)) {\n e.preventDefault();\n }\n }\n\n return {\n partitionName,\n recoverySiteName,\n showTestResults,\n admin,\n\n results,\n testResult,\n testComments,\n callTreeResult,\n callTreeComments,\n assetsResult,\n assetsComments,\n applicationsResult,\n applicationsComments,\n relocationResult,\n responsePlanActivationResult,\n resumeActivitiesResult,\n\n testResultsChanged,\n resetTestResults,\n\n showResultsSave,\n hasErrors,\n testErrors,\n callTreeErrors,\n assetsErrors,\n applicationsErrors,\n\n preventNonNumericalInput,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartition.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestPartition.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserTestPartition.vue?vue&type=template&id=2582dce7&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserTestPartition.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserTestPartition.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2582dce7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCardText,VCol,VDivider,VRow,VSelect,VTab,VTabItem,VTabs,VTextField,VTextarea})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { PartitionDto } from '@/dtos/bcm';\nimport { BcpFunctionalTestDto, BcpFunctionalTestResult, BcpFunctionalTestUserAccessRights } from '@/dtos/bcm/testing/BcpFunctionalTestDto';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport BcpFunctionalTestUserTestPartition from './BcpFunctionalTestUserTestPartition.vue';\nimport i18n from '@/i18n';\nimport { v4 } from 'uuid';\nimport BcpFunctionalTestService from '@/services/bcm/testing/BcpFunctionalTestService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport { BcpFunctionalTestPartitionDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionDto';\nimport { mdiMagnify } from '@mdi/js';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserFinalizingView',\n\n components: {\n PdFormBase,\n BcpFunctionalTestUserTestPartition,\n },\n\n props: {\n test: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const tab = ref(0);\n\n const currentPartitions = ref>([]);\n const searchText = ref('');\n\n const filter = ref<'none' | 'success' | 'partial' | 'fail'>('none');\n const filterValues = [\n {\n text: 'Show All',\n value: 'none',\n },\n {\n text: 'Success',\n value: 'success',\n },\n {\n text: 'Partial',\n value: 'partial',\n },\n {\n text: 'Failed',\n value: 'fail',\n },\n ];\n\n watch(\n () => props.test,\n () => {\n // console.log(test);\n },\n { immediate: true },\n );\n\n let debounceTimer: unknown;\n watch(\n searchText,\n () => {\n // cancel pending call\n clearTimeout(debounceTimer as number);\n\n // delay new call 500ms\n debounceTimer = setTimeout(() => {\n filterPartitions();\n }, 500);\n },\n );\n\n watch(\n filter,\n () => {\n filterPartitions();\n },\n { immediate: true },\n );\n\n function filterPartitions() {\n const search = (searchText.value || '').trim().toLowerCase();\n const partitions: Array = [];\n\n for (let i = 0; i < props.test.partitions.length; ++i) {\n const partition = props.test.partitions[i].partition;\n if (partition == null) {\n continue;\n }\n\n const part = LanguageTemplate(partition, 'name').text.toLowerCase();\n if (!part.includes(search)) {\n continue;\n }\n\n if (filter.value === 'none') {\n partitions.push(props.test.partitions[i]);\n } else if (filter.value === 'success') {\n if (props.test.partitions[i].testResult === BcpFunctionalTestResult.Success &&\n props.test.partitions[i].callTreeResult === BcpFunctionalTestResult.Success &&\n props.test.partitions[i].assetsResult === BcpFunctionalTestResult.Success &&\n props.test.partitions[i].applicationsResult === BcpFunctionalTestResult.Success) {\n partitions.push(props.test.partitions[i]);\n }\n } else if (filter.value === 'partial') {\n if (props.test.partitions[i].testResult === BcpFunctionalTestResult.Partial ||\n props.test.partitions[i].callTreeResult === BcpFunctionalTestResult.Partial ||\n props.test.partitions[i].assetsResult === BcpFunctionalTestResult.Partial ||\n props.test.partitions[i].applicationsResult === BcpFunctionalTestResult.Partial) {\n partitions.push(props.test.partitions[i]);\n }\n } else if (filter.value === 'fail') {\n if (props.test.partitions[i].testResult === BcpFunctionalTestResult.Fail ||\n props.test.partitions[i].callTreeResult === BcpFunctionalTestResult.Fail ||\n props.test.partitions[i].assetsResult === BcpFunctionalTestResult.Fail ||\n props.test.partitions[i].applicationsResult === BcpFunctionalTestResult.Fail) {\n partitions.push(props.test.partitions[i]);\n }\n }\n }\n\n currentPartitions.value = partitions;\n }\n\n const showTestResults = computed(() => {\n return props.test.accessRights === BcpFunctionalTestUserAccessRights.Admin || props.test.accessRights === BcpFunctionalTestUserAccessRights.Observer;\n });\n\n const admin = computed(() => {\n return props.test.accessRights === BcpFunctionalTestUserAccessRights.Admin;\n });\n\n const results = [\n {\n value: BcpFunctionalTestResult.Fail,\n text: i18n.t('bcm.testing.functional.test.resultFail').toString(),\n },\n {\n value: BcpFunctionalTestResult.Partial,\n text: i18n.t('bcm.testing.functional.test.resultPartial').toString(),\n },\n {\n value: BcpFunctionalTestResult.Success,\n text: i18n.t('bcm.testing.functional.test.resultSuccess').toString(),\n },\n ];\n\n const testResult = ref(null);\n const testComments = ref('');\n const callTreeResult = ref(null);\n const callTreeComments = ref('');\n const assetsResult = ref(null);\n const assetsComments = ref('');\n const applicationsResult = ref(null);\n const applicationsComments = ref('');\n\n const showResultsSave = computed(() => {\n return testResult.value !== props.test.testResult || testComments.value !== (props.test.testComments || '') ||\n callTreeResult.value !== props.test.callTreeResult || callTreeComments.value !== (props.test.callTreeComments || '') ||\n assetsResult.value !== props.test.assetsResult || assetsComments.value !== (props.test.assetsComments || '') ||\n applicationsResult.value !== props.test.applicationsResult || applicationsComments.value !== (props.test.applicationsComments || '');\n });\n\n const testErrors = computed(() => {\n if (testResult.value != null && testResult.value !== BcpFunctionalTestResult.Success && (testComments.value == null || testComments.value.trim() === '')) {\n return i18n.t('bcm.testing.functional.test.mandatoryComments').toString();\n }\n return '';\n });\n\n const callTreeErrors = computed(() => {\n if (callTreeResult.value != null && callTreeResult.value !== BcpFunctionalTestResult.Success && (callTreeComments.value == null || callTreeComments.value.trim() === '')) {\n return i18n.t('bcm.testing.functional.test.mandatoryComments').toString();\n }\n return '';\n });\n\n const assetsErrors = computed(() => {\n if (assetsResult.value != null && assetsResult.value !== BcpFunctionalTestResult.Success && (assetsComments.value == null || assetsComments.value.trim() === '')) {\n return i18n.t('bcm.testing.functional.test.mandatoryComments').toString();\n }\n return '';\n });\n\n const applicationsErrors = computed(() => {\n if (applicationsResult.value != null && applicationsResult.value !== BcpFunctionalTestResult.Success && (applicationsComments.value == null || applicationsComments.value.trim() === '')) {\n return i18n.t('bcm.testing.functional.test.mandatoryComments').toString();\n }\n return '';\n });\n\n const hasErrors = computed(() => {\n return testErrors.value.length > 0 || callTreeErrors.value.length > 0 || assetsErrors.value.length > 0 || applicationsErrors.value.length > 0;\n });\n\n watch(\n () => props.test,\n () => {\n resetTestResults();\n },\n {\n immediate: true,\n deep: true,\n },\n );\n\n function resetTestResults() {\n const test = props.test;\n testResult.value = test.testResult === undefined ? null : test.testResult;\n testComments.value = test.testComments || '';\n callTreeResult.value = test.callTreeResult === undefined ? null : test.callTreeResult;\n callTreeComments.value = test.callTreeComments || '';\n assetsResult.value = test.assetsResult === undefined ? null : test.assetsResult;\n assetsComments.value = test.assetsComments || '';\n applicationsResult.value = test.applicationsResult === undefined ? null : test.applicationsResult;\n applicationsComments.value = test.applicationsComments || '';\n }\n\n async function testResultsChanged() {\n const p: Partial = {\n id: props.test.id,\n testResult: testResult.value != null ? testResult.value : undefined,\n testComments: testComments.value != null ? testComments.value : undefined,\n callTreeResult: callTreeResult.value != null ? callTreeResult.value : undefined,\n callTreeComments: callTreeComments.value != null ? callTreeComments.value : undefined,\n assetsResult: assetsResult.value != null ? assetsResult.value : undefined,\n assetsComments: assetsComments.value != null ? assetsComments.value : undefined,\n applicationsResult: applicationsResult.value != null ? applicationsResult.value : undefined,\n applicationsComments: applicationsComments.value != null ? applicationsComments.value : undefined,\n };\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const result = await BcpFunctionalTestService.UpdateTestResults(p as BcpFunctionalTestDto);\n\n props.test.testResult = result.testResult;\n props.test.testComments = result.testComments;\n props.test.callTreeResult = result.callTreeResult;\n props.test.callTreeComments = result.callTreeComments;\n props.test.assetsResult = result.assetsResult;\n props.test.assetsComments = result.assetsComments;\n props.test.applicationsResult = result.applicationsResult;\n props.test.applicationsComments = result.applicationsComments;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n props.test.uuid = v4();\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function partitionName(partition: PartitionDto) {\n return LanguageTemplate(partition, 'name').text;\n }\n\n return {\n tab,\n partitionName,\n\n showTestResults,\n admin,\n\n results,\n testResult,\n testComments,\n callTreeResult,\n callTreeComments,\n assetsResult,\n assetsComments,\n applicationsResult,\n applicationsComments,\n\n testResultsChanged,\n resetTestResults,\n\n showResultsSave,\n hasErrors,\n testErrors,\n callTreeErrors,\n assetsErrors,\n applicationsErrors,\n\n currentPartitions,\n searchText,\n filterValues,\n filter,\n icons: {\n mdiMagnify,\n },\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserFinalizingView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserFinalizingView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserFinalizingView.vue?vue&type=template&id=4dd27eb8&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserFinalizingView.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserFinalizingView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4dd27eb8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCol,VDivider,VRow,VSelect,VTab,VTabItem,VTabs,VTabsItems,VTextField,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showTestResults)?_c('div',{key:_vm.test.uuid,staticClass:\"mx-2 my-6\"},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"300px\"},attrs:{\"value\":_vm.test.testResult,\"items\":_vm.results,\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.result'),\"disabled\":\"\"}})],1),_c('v-col',[_c('v-textarea',{attrs:{\"value\":_vm.test.testComments,\"rows\":\"1\",\"hide-details\":\"auto\",\"auto-grow\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.resultComments'),\"disabled\":\"\",\"readonly\":\"\"}})],1)],1),(_vm.test.testCallTree)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"300px\"},attrs:{\"value\":_vm.test.callTreeResult,\"items\":_vm.results,\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.callTreeResult'),\"disabled\":\"\"}})],1),_c('v-col',[_c('v-textarea',{attrs:{\"value\":_vm.test.callTreeComments,\"rows\":\"1\",\"hide-details\":\"auto\",\"auto-grow\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.callTreeResultComments'),\"disabled\":\"\",\"readonly\":\"\"}})],1)],1):_vm._e(),(_vm.test.testAssets)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"300px\"},attrs:{\"value\":_vm.test.assetsResult,\"items\":_vm.results,\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.assetsResult'),\"disabled\":\"\"}})],1),_c('v-col',[_c('v-textarea',{attrs:{\"value\":_vm.test.assetsComments,\"rows\":\"1\",\"hide-details\":\"auto\",\"auto-grow\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.assetsResultComments'),\"disabled\":\"\",\"readonly\":\"\"}})],1)],1):_vm._e(),(_vm.test.testApplications)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"300px\"},attrs:{\"value\":_vm.test.applicationsResult,\"items\":_vm.results,\"hide-details\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.applicationsResult'),\"disabled\":\"\"}})],1),_c('v-col',[_c('v-textarea',{attrs:{\"value\":_vm.test.applicationsComments,\"rows\":\"1\",\"hide-details\":\"auto\",\"auto-grow\":\"\",\"label\":_vm.$t('bcm.testing.functional.test.applicationsResultComments'),\"disabled\":\"\",\"readonly\":\"\"}})],1)],1):_vm._e(),_c('v-divider')],1):_vm._e(),(_vm.showTestResults)?_c('v-row',[_c('v-col',{attrs:{\"xl\":\"2\",\"lg\":\"3\",\"md\":\"4\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-select',{attrs:{\"label\":\"Filter\",\"hide-details\":\"\",\"dense\":\"\",\"items\":_vm.filterValues},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}})],1),_c('v-col',{attrs:{\"xl\":\"2\",\"lg\":\"3\",\"md\":\"4\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"append-icon\":_vm.icons.mdiMagnify,\"label\":\"Search\",\"hide-details\":\"\",\"dense\":\"\",\"single-line\":\"\",\"clearable\":\"\"},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:\"searchText\"}})],1)],1):_vm._e(),_c('v-tabs',{staticClass:\"elevation-2\",attrs:{\"center-active\":\"\",\"centered\":\"\",\"grow\":\"\",\"show-arrows\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.currentPartitions),function(p){return _c('v-tab',{key:p.id},[_vm._v(\" \"+_vm._s(_vm.partitionName(p.partition))+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.currentPartitions),function(p){return _c('v-tab-item',{key:p.id},[_c('bcp-functional-test-user-test-partition',{attrs:{\"test-id\":_vm.test.id,\"partition\":p,\"test-call-tree\":_vm.test.testCallTree,\"test-assets\":_vm.test.testAssets,\"test-applications\":_vm.test.testApplications}})],1)}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { PartitionDto } from '@/dtos/bcm';\nimport { BcpFunctionalTestDto, BcpFunctionalTestResult, BcpFunctionalTestUserAccessRights } from '@/dtos/bcm/testing/BcpFunctionalTestDto';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport BcpFunctionalTestUserTestPartition from './BcpFunctionalTestUserTestPartition.vue';\nimport i18n from '@/i18n';\nimport { BcpFunctionalTestPartitionDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionDto';\nimport { mdiMagnify } from '@mdi/js';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserFinishedView',\n\n components: {\n PdFormBase,\n BcpFunctionalTestUserTestPartition,\n },\n\n props: {\n test: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const tab = ref(0);\n\n const currentPartitions = ref>([]);\n const searchText = ref('');\n\n const filter = ref<'none' | 'success' | 'partial' | 'fail' | 'unanswered'>('none');\n const filterValues = [\n {\n text: 'Show All',\n value: 'none',\n },\n {\n text: 'Success',\n value: 'success',\n },\n {\n text: 'Partial',\n value: 'partial',\n },\n {\n text: 'Failed',\n value: 'fail',\n },\n {\n text: 'Without Test Results',\n value: 'unanswered',\n },\n ];\n\n watch(\n () => props.test,\n () => {\n // console.log(test);\n },\n { immediate: true },\n );\n\n let debounceTimer: unknown;\n watch(\n searchText,\n () => {\n // cancel pending call\n clearTimeout(debounceTimer as number);\n\n // delay new call 500ms\n debounceTimer = setTimeout(() => {\n filterPartitions();\n }, 500);\n },\n );\n\n watch(\n filter,\n () => {\n filterPartitions();\n },\n { immediate: true },\n );\n\n function filterPartitions() {\n const search = (searchText.value || '').trim().toLowerCase();\n const partitions: Array = [];\n\n for (let i = 0; i < props.test.partitions.length; ++i) {\n const partition = props.test.partitions[i].partition;\n if (partition == null) {\n continue;\n }\n\n const part = LanguageTemplate(partition, 'name').text.toLowerCase();\n if (!part.includes(search)) {\n continue;\n }\n\n if (filter.value === 'none') {\n partitions.push(props.test.partitions[i]);\n } else if (filter.value === 'unanswered') {\n if (props.test.partitions[i].testResult == null ||\n props.test.partitions[i].callTreeResult === null ||\n props.test.partitions[i].assetsResult === null ||\n props.test.partitions[i].applicationsResult === null) {\n partitions.push(props.test.partitions[i]);\n }\n } else if (filter.value === 'success') {\n if (props.test.partitions[i].testResult === BcpFunctionalTestResult.Success &&\n props.test.partitions[i].callTreeResult === BcpFunctionalTestResult.Success &&\n props.test.partitions[i].assetsResult === BcpFunctionalTestResult.Success &&\n props.test.partitions[i].applicationsResult === BcpFunctionalTestResult.Success) {\n partitions.push(props.test.partitions[i]);\n }\n } else if (filter.value === 'partial') {\n if (props.test.partitions[i].testResult === BcpFunctionalTestResult.Partial ||\n props.test.partitions[i].callTreeResult === BcpFunctionalTestResult.Partial ||\n props.test.partitions[i].assetsResult === BcpFunctionalTestResult.Partial ||\n props.test.partitions[i].applicationsResult === BcpFunctionalTestResult.Partial) {\n partitions.push(props.test.partitions[i]);\n }\n } else if (filter.value === 'fail') {\n if (props.test.partitions[i].testResult === BcpFunctionalTestResult.Fail ||\n props.test.partitions[i].callTreeResult === BcpFunctionalTestResult.Fail ||\n props.test.partitions[i].assetsResult === BcpFunctionalTestResult.Fail ||\n props.test.partitions[i].applicationsResult === BcpFunctionalTestResult.Fail) {\n partitions.push(props.test.partitions[i]);\n }\n }\n }\n\n currentPartitions.value = partitions;\n }\n\n const showTestResults = computed(() => {\n return props.test.accessRights === BcpFunctionalTestUserAccessRights.Admin || props.test.accessRights === BcpFunctionalTestUserAccessRights.Observer;\n });\n\n const results = [\n {\n value: BcpFunctionalTestResult.Fail,\n text: i18n.t('bcm.testing.functional.test.resultFail').toString(),\n },\n {\n value: BcpFunctionalTestResult.Partial,\n text: i18n.t('bcm.testing.functional.test.resultPartial').toString(),\n },\n {\n value: BcpFunctionalTestResult.Success,\n text: i18n.t('bcm.testing.functional.test.resultSuccess').toString(),\n },\n ];\n\n function partitionName(partition: PartitionDto) {\n return LanguageTemplate(partition, 'name').text;\n }\n\n return {\n tab,\n partitionName,\n\n showTestResults,\n\n results,\n\n currentPartitions,\n searchText,\n filterValues,\n filter,\n icons: {\n mdiMagnify,\n },\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserFinishedView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserFinishedView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserFinishedView.vue?vue&type=template&id=407c43d7&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserFinishedView.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserFinishedView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"407c43d7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VCol,VDivider,VRow,VSelect,VTab,VTabItem,VTabs,VTabsItems,VTextField,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showTestResults)?_c('v-row',[_c('v-col',{attrs:{\"xl\":\"2\",\"lg\":\"3\",\"md\":\"4\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-select',{attrs:{\"label\":\"Filter\",\"hide-details\":\"\",\"dense\":\"\",\"items\":_vm.filterValues},model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}})],1),_c('v-col',{attrs:{\"xl\":\"2\",\"lg\":\"3\",\"md\":\"4\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"append-icon\":_vm.icons.mdiMagnify,\"label\":\"Search\",\"hide-details\":\"\",\"dense\":\"\",\"single-line\":\"\",\"clearable\":\"\"},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:\"searchText\"}})],1)],1):_vm._e(),_c('v-tabs',{staticClass:\"elevation-2\",attrs:{\"center-active\":\"\",\"centered\":\"\",\"grow\":\"\",\"show-arrows\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_vm._l((_vm.currentPartitions),function(p){return _c('v-tab',{key:p.id},[_vm._v(\" \"+_vm._s(_vm.partitionName(p.partition))+\" \")])})],2),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.currentPartitions),function(p){return _c('v-tab-item',{key:p.id},[_c('bcp-functional-test-user-test-partition',{attrs:{\"test-id\":_vm.test.id,\"partition\":p,\"test-call-tree\":_vm.test.testCallTree,\"test-assets\":_vm.test.testAssets,\"test-applications\":_vm.test.testApplications},on:{\"results-changed\":_vm.partitionResultsChanged}})],1)}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { PartitionDto } from '@/dtos/bcm';\nimport { BcpFunctionalTestDto, BcpFunctionalTestResult, BcpFunctionalTestUserAccessRights } from '@/dtos/bcm/testing/BcpFunctionalTestDto';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport BcpFunctionalTestUserTestPartition from './BcpFunctionalTestUserTestPartition.vue';\nimport { v4 } from 'uuid';\nimport { BcpFunctionalTestPartitionDto } from '@/dtos/bcm/testing/BcpFunctionalTestPartitionDto';\nimport BcpFunctionalTestService from '@/services/bcm/testing/BcpFunctionalTestService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport i18n from '@/i18n';\nimport { mdiMagnify } from '@mdi/js';\n\nexport default defineComponent({\n name: 'BcpFunctionalTestUserTestView',\n\n components: {\n PdFormBase,\n BcpFunctionalTestUserTestPartition,\n },\n\n props: {\n test: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const tab = ref(0);\n\n const currentPartitions = ref>([]);\n const searchText = ref('');\n\n const filter = ref<'none' | 'success' | 'partial' | 'fail'>('none');\n const filterValues = [\n {\n text: 'Show All',\n value: 'none',\n },\n {\n text: 'Success',\n value: 'success',\n },\n {\n text: 'Partial',\n value: 'partial',\n },\n {\n text: 'Failed',\n value: 'fail',\n },\n ];\n\n watch(\n () => props.test,\n () => {\n // console.log(test);\n },\n { immediate: true },\n );\n\n let debounceTimer: unknown;\n watch(\n searchText,\n () => {\n // cancel pending call\n clearTimeout(debounceTimer as number);\n\n // delay new call 500ms\n debounceTimer = setTimeout(() => {\n filterPartitions();\n }, 500);\n },\n );\n\n watch(\n filter,\n () => {\n filterPartitions();\n },\n { immediate: true },\n );\n\n function filterPartitions() {\n const search = (searchText.value || '').trim().toLowerCase();\n const partitions: Array = [];\n\n for (let i = 0; i < props.test.partitions.length; ++i) {\n const partition = props.test.partitions[i].partition;\n if (partition == null) {\n continue;\n }\n\n const part = LanguageTemplate(partition, 'name').text.toLowerCase();\n if (!part.includes(search)) {\n continue;\n }\n\n if (filter.value === 'none') {\n partitions.push(props.test.partitions[i]);\n } else if (filter.value === 'success') {\n if (props.test.partitions[i].testResult === BcpFunctionalTestResult.Success &&\n props.test.partitions[i].callTreeResult === BcpFunctionalTestResult.Success &&\n props.test.partitions[i].assetsResult === BcpFunctionalTestResult.Success &&\n props.test.partitions[i].applicationsResult === BcpFunctionalTestResult.Success) {\n partitions.push(props.test.partitions[i]);\n }\n } else if (filter.value === 'partial') {\n if (props.test.partitions[i].testResult === BcpFunctionalTestResult.Partial ||\n props.test.partitions[i].callTreeResult === BcpFunctionalTestResult.Partial ||\n props.test.partitions[i].assetsResult === BcpFunctionalTestResult.Partial ||\n props.test.partitions[i].applicationsResult === BcpFunctionalTestResult.Partial) {\n partitions.push(props.test.partitions[i]);\n }\n } else if (filter.value === 'fail') {\n if (props.test.partitions[i].testResult === BcpFunctionalTestResult.Fail ||\n props.test.partitions[i].callTreeResult === BcpFunctionalTestResult.Fail ||\n props.test.partitions[i].assetsResult === BcpFunctionalTestResult.Fail ||\n props.test.partitions[i].applicationsResult === BcpFunctionalTestResult.Fail) {\n partitions.push(props.test.partitions[i]);\n }\n }\n }\n\n currentPartitions.value = partitions;\n }\n\n const showTestResults = computed(() => {\n return props.test.accessRights === BcpFunctionalTestUserAccessRights.Admin || props.test.accessRights === BcpFunctionalTestUserAccessRights.Observer;\n });\n\n const admin = computed(() => {\n return props.test.accessRights === BcpFunctionalTestUserAccessRights.Admin;\n });\n\n function partitionName(partition: PartitionDto) {\n return LanguageTemplate(partition, 'name').text;\n }\n\n async function partitionResultsChanged(p: BcpFunctionalTestPartitionDto) {\n for (let i = 0; i < props.test.partitions.length; ++i) {\n if (props.test.partitions[i].id === p.id) {\n const part = props.test.partitions[i];\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n console.log(p);\n const res = await BcpFunctionalTestService.UpdatePartitionResults(props.test.id, part.id, p);\n part.testResult = res.testResult;\n part.testComments = res.testComments;\n part.callTreeResult = res.callTreeResult;\n part.callTreeComments = res.callTreeComments;\n part.assetsResult = res.assetsResult;\n part.assetsComments = res.assetsComments;\n part.applicationsResult = res.applicationsResult;\n part.applicationsComments = res.applicationsComments;\n part.relocation = res.relocation;\n part.responsePlanActivation = res.responsePlanActivation;\n part.resumeActivities = res.resumeActivities;\n\n for (let i = 0; i < currentPartitions.value.length; ++i) {\n if (currentPartitions.value[i].id === p.id) {\n const part = currentPartitions.value[i];\n part.testResult = res.testResult;\n part.testComments = res.testComments;\n part.callTreeResult = res.callTreeResult;\n part.callTreeComments = res.callTreeComments;\n part.assetsResult = res.assetsResult;\n part.assetsComments = res.assetsComments;\n part.applicationsResult = res.applicationsResult;\n part.applicationsComments = res.applicationsComments;\n part.relocation = res.relocation;\n part.responsePlanActivation = res.responsePlanActivation;\n part.resumeActivities = res.resumeActivities;\n break;\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n part.uuid = v4();\n }\n\n return;\n }\n }\n }\n\n return {\n tab,\n partitionName,\n showTestResults,\n admin,\n partitionResultsChanged,\n currentPartitions,\n searchText,\n filterValues,\n filter,\n icons: {\n mdiMagnify,\n },\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestingView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BcpFunctionalTestUserTestingView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BcpFunctionalTestUserTestingView.vue?vue&type=template&id=5c68d8d4&scoped=true&\"\nimport script from \"./BcpFunctionalTestUserTestingView.vue?vue&type=script&lang=ts&\"\nexport * from \"./BcpFunctionalTestUserTestingView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5c68d8d4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTabsSlider } from 'vuetify/lib/components/VTabs';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCol,VRow,VSelect,VTab,VTabItem,VTabs,VTabsItems,VTabsSlider,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":\"Disaster Recovery Testing\"}},[(_vm.showApplicationSelector)?_c('v-dialog',{attrs:{\"value\":true,\"width\":\"500\",\"max-width\":\"1000px\",\"persistent\":\"\"}},[_c('v-card',[_c('pd-data-table',{attrs:{\"height\":\"400px\",\"search\":\"\",\"datasource\":_vm.availableApplications,\"headers\":_vm.availableApplicationHeaders,\"options\":{editable: false, pagination: false},\"selected-item\":_vm.selectedApplication},on:{\"update:selectedItem\":function($event){_vm.selectedApplication=$event},\"update:selected-item\":function($event){_vm.selectedApplication=$event},\"dblclick\":_vm.selectApplication}}),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.showApplicationSelector = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.selectApplication}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.select'))+\" \")])],1)],1)],1):_vm._e(),(_vm.showCoordinatorSelector)?_c('v-dialog',{attrs:{\"value\":true,\"width\":\"500\",\"max-width\":\"1000px\",\"persistent\":\"\"}},[_c('v-card',[_c('pd-data-table',{attrs:{\"height\":\"400px\",\"search\":\"\",\"datasource\":_vm.availableCoordinators,\"headers\":_vm.availableCoordinatorHeaders,\"options\":{editable: false, pagination: false},\"selected-item\":_vm.selectedCoordinator},on:{\"update:selectedItem\":function($event){_vm.selectedCoordinator=$event},\"update:selected-item\":function($event){_vm.selectedCoordinator=$event},\"dblclick\":_vm.selectCoordinator}}),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.showCoordinatorSelector = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.selectCoordinator}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.select'))+\" \")])],1)],1)],1):_vm._e(),_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":_vm.options,\"row-actions\":_vm.rowActions,\"sort\":\"name_en-US\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\",\"requires\":_vm.requires},on:{\"editing-changed\":_vm.editingItemChanged},scopedSlots:_vm._u([{key:\"PopupEditorContent\",fn:function(ref){\nvar item = ref.item;\nvar validationErrors = ref.validationErrors;\nreturn [_c('v-row',[_c('v-col',{staticClass:\"pb-0\",staticStyle:{\"width\":\"800px\"}},[_c('v-text-field',{staticClass:\"pa-0\",attrs:{\"label\":\"Name\",\"title\":\"Name\",\"error-messages\":validationErrors.translations},model:{value:(item.translations['en-US'].name),callback:function ($$v) {_vm.$set(item.translations['en-US'], \"name\", $$v)},expression:\"item.translations['en-US'].name\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\",\"md\":\"6\"}},[_c('pd-date-picker',{attrs:{\"error-messages\":validationErrors.start,\"title\":_vm.$t('testing.dr.start'),\"min\":_vm.startMinDate,\"max\":_vm.startMaxDate},model:{value:(item.start),callback:function ($$v) {_vm.$set(item, \"start\", $$v)},expression:\"item.start\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\",\"md\":\"6\"}},[_c('pd-date-picker',{attrs:{\"error-messages\":validationErrors.end,\"title\":_vm.$t('testing.dr.end'),\"min\":_vm.endMinDate,\"max\":_vm.endMaxDate},model:{value:(item.end),callback:function ($$v) {_vm.$set(item, \"end\", $$v)},expression:\"item.end\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-text-field',{staticClass:\"pa-0\",attrs:{\"label\":\"Info\",\"title\":\"Info\",\"hide-details\":\"\"},model:{value:(item.info),callback:function ($$v) {_vm.$set(item, \"info\", $$v)},expression:\"item.info\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-input',{attrs:{\"error-messages\":validationErrors.coordinators}},[_c('pd-data-table',{attrs:{\"height\":\"190px\",\"headers\":_vm.coordinatorsHeaders,\"datasource\":_vm.editingItemCoordinators,\"options\":{editable: {edit: false, delete: true}, pagination: false}}})],1)],1)],1),_c('v-divider',{staticClass:\"ma-0\"}),_c('v-row',[_c('v-col',{staticClass:\"py-0\"},[_c('v-input',{attrs:{\"error-messages\":validationErrors.applications}},[_c('pd-data-table',{attrs:{\"height\":\"340px\",\"headers\":_vm.applicationHeaders,\"datasource\":_vm.editingItemSystems,\"options\":{editable: {edit: false, delete: true}, pagination: false}}})],1)],1)],1)]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ITranslatableDto } from '@/dtos/IDto';\nimport i18n from '@/i18n';\n\nexport enum DisasterRecoveryTestStatus {\n None = 0,\n Confirmation = 1,\n Scheduling = 2,\n Testing = 3,\n Finalization = 4,\n Finished = 5,\n}\n\nexport function GetDisasterRecoveryTestStatusTranslation(status: DisasterRecoveryTestStatus): string {\n let str = '';\n switch (status) {\n case DisasterRecoveryTestStatus.Confirmation:\n str = 'confirmation';\n break;\n case DisasterRecoveryTestStatus.Scheduling:\n str = 'scheduling';\n break;\n case DisasterRecoveryTestStatus.Testing:\n str = 'testing';\n break;\n case DisasterRecoveryTestStatus.Finalization:\n str = 'finalization';\n break;\n case DisasterRecoveryTestStatus.Finished:\n str = 'finished';\n break;\n default:\n str = 'none';\n }\n\n return i18n.t(`testing.dr.statusType.${str}`).toString();\n}\n\nexport interface DisasterRecoveryTestTranslationDto {\n name: string\n}\n\nexport interface DisasterRecoveryTestDto extends ITranslatableDto {\n status: DisasterRecoveryTestStatus\n start: string\n end: string\n info: string\n coordinators: string[]\n applications: number[]\n}\n","import {\n DisasterRecoveryTestApplicationDto,\n DisasterRecoveryTestApplicationConfirmationUserDto,\n DisasterRecoveryTestDetailsDto,\n DisasterRecoveryTestApplicationTestUserDto,\n DisasterRecoveryTestApplicationUserTestingDto,\n DisasterRecoveryTestApplicationResultsDto,\n} from '@/dtos/bcm/testing/DisasterRecoveryTestDetailsDto';\nimport { DisasterRecoveryTestDto } from '@/dtos/bcm/testing/DisasterRecoveryTestDto';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nimport { ApplicationModule } from '@/store';\nimport axios from './axios';\n\nexport default class DisasterRecoveryTestApi {\n static async GetTest(test: number): Promise {\n const entity = ApplicationModule.Entity?.id;\n try {\n const response = await axios.get(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/${test}`);\n return Promise.resolve(response.data);\n } catch (error) {\n return Promise.reject(error);\n }\n }\n\n static UpdateUserConfirmation(test: number, confirmation: DisasterRecoveryTestApplicationConfirmationUserDto) : Promise {\n const entity = ApplicationModule.Entity?.id;\n return axios.post(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/${test}/UpdateTestApplicationUserConfirmation`, confirmation);\n }\n\n static UpdateTestApplication(test: number, app: DisasterRecoveryTestApplicationDto) : Promise {\n const entity = ApplicationModule.Entity?.id;\n const language = ApplicationModule.Language;\n return axios.post(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/${test}/UpdateTestApplicationConfirmation?language=${language}`, app);\n }\n\n static UpdateItsdTestAnswer(test: number, appId: number, answer: DisasterRecoveryTestApplicationUserTestingDto) : Promise {\n const entity = ApplicationModule.Entity?.id;\n return axios.post(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/${test}/Testing/${appId}/ItsdTesting`, answer);\n }\n\n static UpdateTestUserTestAnswer(test: number, appId: number, answer: DisasterRecoveryTestApplicationUserTestingDto) : Promise {\n const entity = ApplicationModule.Entity?.id;\n return axios.post(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/${test}/Testing/${appId}/UserTesting`, answer);\n }\n\n static UpdateAppTestResult(test: number, appId: number, results: DisasterRecoveryTestApplicationResultsDto) : Promise {\n const entity = ApplicationModule.Entity?.id;\n return axios.post(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/${test}/Finalization/${appId}/Results`, results);\n }\n\n static async GoForConfirmation(test: DisasterRecoveryTestDto) : Promise {\n const entity = ApplicationModule.Entity?.id;\n const response = await axios.get(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/${test.id}/GoForConfirmation`);\n\n return response.data;\n }\n\n static async SnapshotTimes(test: DisasterRecoveryTestDetailsDto) : Promise {\n const entity = ApplicationModule.Entity?.id;\n const response = await axios.get(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/${test.id}/SnapshotTimes`);\n\n return response.data;\n }\n\n static async GoForScheduling(test: DisasterRecoveryTestDetailsDto) : Promise {\n const entity = ApplicationModule.Entity?.id;\n const response = await axios.get(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/${test.id}/GoForScheduling`);\n\n return response.data;\n }\n\n static async GoForTesting(test: DisasterRecoveryTestDetailsDto) : Promise {\n const entity = ApplicationModule.Entity?.id;\n const response = await axios.get(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/${test.id}/GoForTesting`);\n\n return response.data;\n }\n\n static async GoForFinalization(test: DisasterRecoveryTestDetailsDto) : Promise {\n const entity = ApplicationModule.Entity?.id;\n const response = await axios.get(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/${test.id}/GoForFinalization`);\n\n return response.data;\n }\n\n static async FinishTest(test: DisasterRecoveryTestDetailsDto) : Promise {\n const entity = ApplicationModule.Entity?.id;\n const response = await axios.get(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/${test.id}/FinishTest`);\n\n return response.data;\n }\n\n static async GetConfirmationDetails(id: number): Promise {\n const entity = ApplicationModule.Entity?.id;\n const language = ApplicationModule.Language;\n const response = await axios.get(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/GetConfirmationDetails/${id}?language=${language}`);\n\n return response.data;\n }\n\n static async GetSchedulingDetails(id: number): Promise {\n const entity = ApplicationModule.Entity?.id;\n const language = ApplicationModule.Language;\n const response = await axios.get(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/GetSchedulingDetails/${id}?language=${language}`);\n\n return response.data;\n }\n\n static async GetTestingDetails(id: number): Promise {\n const entity = ApplicationModule.Entity?.id;\n const language = ApplicationModule.Language;\n const response = await axios.get(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/GetTestingDetails/${id}?language=${language}`);\n\n return response.data;\n }\n\n static async GetFinalizationDetails(id: number): Promise {\n const entity = ApplicationModule.Entity?.id;\n const language = ApplicationModule.Language;\n const response = await axios.get(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/GetFinalizationDetails/${id}?language=${language}`);\n\n return response.data;\n }\n\n static async GetFinishedDetails(id: number): Promise {\n const entity = ApplicationModule.Entity?.id;\n const language = ApplicationModule.Language;\n const response = await axios.get(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/GetFinishedDetails/${id}?language=${language}`);\n\n return response.data;\n }\n\n static async AddTestUser(id: number, appId: number, user: SimpleUserDto): Promise> {\n const entity = ApplicationModule.Entity?.id;\n const response = await axios.post>(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/${id}/TestUsers/${appId}/Add`, user);\n\n return response.data;\n }\n\n static async RemoveTestUser(id: number, appId: number, user: SimpleUserDto): Promise> {\n const entity = ApplicationModule.Entity?.id;\n const response = await axios.post>(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/${id}/TestUsers/${appId}/Remove`, user);\n\n return response.data;\n }\n\n static async ChangeAppSwitchToDisaster(id: number, appId: number, timeZoneId: number): Promise {\n const entity = ApplicationModule.Entity?.id;\n await axios.post(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/${id}/TestUsers/${appId}/SwitchToDisaster/${timeZoneId}`);\n }\n\n static async ChangeAppSwitchToPrimary(id: number, appId: number, timeZoneId: number): Promise {\n const entity = ApplicationModule.Entity?.id;\n await axios.post(`/masterplans/${entity}/bc/testing/DisasterRecoveryTests/${id}/TestUsers/${appId}/SwitchToPrimary/${timeZoneId}`);\n }\n\n static async UploadTimeZones(test: number, data: FormData): Promise {\n const entity = ApplicationModule.Entity;\n try {\n if (entity != null) {\n const resp = await axios.post(`/masterplans/${entity.id}/bc/testing/DisasterRecoveryTests/${test}/UploadTimeZones`, data);\n return Promise.resolve(resp);\n }\n } catch (error) {\n if (error.response.status === 400) {\n return Promise.reject(error.response.data);\n } else {\n return Promise.reject(error.response);\n }\n }\n return Promise.reject();\n }\n\n static async UploadTestTimes(test: number, data: FormData): Promise {\n const entity = ApplicationModule.Entity;\n try {\n if (entity != null) {\n const resp = await axios.post(`/masterplans/${entity.id}/bc/testing/DisasterRecoveryTests/${test}/UploadTestTimes`, data);\n return Promise.resolve(resp);\n }\n } catch (error) {\n Promise.reject(error);\n }\n Promise.reject();\n }\n\n static async GenerateReport(test: number, data: FormData): Promise {\n const entity = ApplicationModule.Entity;\n if (entity != null) {\n const language = ApplicationModule.Language;\n const resp = await axios.post(`/masterplans/${entity.id}/bc/testing/DisasterRecoveryTests/${test}/GenerateReport?language=${language}`, data);\n return resp.data;\n }\n }\n\n static async DownloadApplicationsCsv(): Promise<{data: string, name: string}> {\n const entity = ApplicationModule.Entity;\n if (entity != null) {\n const response = await axios.get(`/masterplans/${entity.id}/bc/Applications/export`);\n return response.data;\n }\n\n return Promise.reject();\n }\n}\n","import DisasterRecoveryTestApi from '@/api/DisasterRecoveryTestApi';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport {\n DisasterRecoveryTestApplicationDto,\n DisasterRecoveryTestApplicationConfirmationUserDto,\n DisasterRecoveryTestDetailsDto,\n DisasterRecoveryTestApplicationTestUserDto,\n DisasterRecoveryTestApplicationUserTestingDto,\n DisasterRecoveryTestApplicationResultsDto,\n} from '@/dtos/bcm/testing/DisasterRecoveryTestDetailsDto';\nimport { DisasterRecoveryTestDto, DisasterRecoveryTestStatus } from '@/dtos/bcm/testing/DisasterRecoveryTestDto';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from './BusyIndicatorService';\nimport EntitiesService from './EntitiesService';\nimport ErrorHandlingService from './ErrorHandlingService';\nimport PopupMessageService from './PopupMessageService';\n\nexport default class DisasterRecoveryTestService {\n public static async GetTest(id: number): Promise {\n return DisasterRecoveryTestApi.GetTest(id);\n }\n\n public static async GoForConfirmation(test: DisasterRecoveryTestDto): Promise {\n const name = LanguageTemplate(test, 'name').text;\n\n if (test.status > DisasterRecoveryTestStatus.None) {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: 'Test is already in progress',\n });\n return Promise.reject();\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('testing.dr.busy.goForConfirmation', { name }).toString());\n try {\n await DisasterRecoveryTestApi.GoForConfirmation(test);\n\n EntitiesService.UpdateUserTasks();\n\n PopupMessageService.SetMessage({\n title: i18n.t('success').toString(),\n text: i18n.t('testing.dr.movedToConfirmation', { name }).toString(),\n });\n\n return Promise.resolve();\n } catch (error) {\n if (error.response.status === 400) {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: error.response.data,\n });\n } else {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: error.message,\n });\n }\n return Promise.reject();\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n public static async SnapshotTimes(test: DisasterRecoveryTestDetailsDto): Promise {\n const busy = BusyIndicatorService.SetBusy(i18n.t('testing.dr.busy.snapshotTimes', { name }).toString());\n try {\n await DisasterRecoveryTestApi.SnapshotTimes(test);\n\n PopupMessageService.SetMessage({\n title: i18n.t('success').toString(),\n text: i18n.t('testing.dr.snapshotSuccessful', { name }).toString(),\n });\n\n return Promise.resolve();\n } catch (error) {\n // ErrorHandlingService.Handle(error);\n return Promise.reject(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n public static async GoForScheduling(test: DisasterRecoveryTestDetailsDto): Promise {\n const name = test.name;\n\n if (test.status !== DisasterRecoveryTestStatus.Confirmation) {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: i18n.t('testing.dr.notInConfirmationMessage', { name }).toString(),\n });\n return Promise.reject();\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('testing.dr.busy.goForScheduling', { name }).toString());\n try {\n await DisasterRecoveryTestApi.GoForScheduling(test);\n\n EntitiesService.UpdateUserTasks();\n\n PopupMessageService.SetMessage({\n title: i18n.t('success').toString(),\n text: i18n.t('testing.dr.movedToScheduling', { name }).toString(),\n });\n\n return Promise.resolve();\n } catch (error) {\n return Promise.reject(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n public static async GoForTesting(test: DisasterRecoveryTestDetailsDto): Promise {\n const name = test.name;\n\n if (test.status !== DisasterRecoveryTestStatus.Scheduling) {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: i18n.t('testing.dr.notInSchedulingMessage', { name }).toString(),\n });\n return Promise.reject();\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('testing.dr.busy.goForTesting', { name }).toString());\n try {\n await DisasterRecoveryTestApi.GoForTesting(test);\n\n EntitiesService.UpdateUserTasks();\n\n PopupMessageService.SetMessage({\n title: i18n.t('success').toString(),\n text: i18n.t('testing.dr.movedToTesting', { name }).toString(),\n });\n\n return Promise.resolve();\n } catch (error) {\n return Promise.reject(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n public static async GoForFinalization(test: DisasterRecoveryTestDetailsDto): Promise {\n const name = test.name;\n\n if (test.status !== DisasterRecoveryTestStatus.Testing) {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: i18n.t('testing.dr.notInTestingMessage', { name }).toString(),\n });\n return Promise.reject();\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('testing.dr.busy.goForFinalization', { name }).toString());\n try {\n await DisasterRecoveryTestApi.GoForFinalization(test);\n\n EntitiesService.UpdateUserTasks();\n\n PopupMessageService.SetMessage({\n title: i18n.t('success').toString(),\n text: i18n.t('testing.dr.movedToFinalization', { name }).toString(),\n });\n\n return Promise.resolve();\n } catch (error) {\n return Promise.reject(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n public static async FinishTest(test: DisasterRecoveryTestDetailsDto): Promise {\n const name = test.name;\n\n if (test.status !== DisasterRecoveryTestStatus.Finalization) {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: i18n.t('testing.dr.notInFinalizationMessage', { name }).toString(),\n });\n return Promise.reject();\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('testing.dr.busy.goForFinish', { name }).toString());\n try {\n await DisasterRecoveryTestApi.FinishTest(test);\n\n EntitiesService.UpdateUserTasks();\n\n PopupMessageService.SetMessage({\n title: i18n.t('success').toString(),\n text: i18n.t('testing.dr.movedToFinish', { name }).toString(),\n });\n\n return Promise.resolve();\n } catch (error) {\n return Promise.reject(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n public static async GetConfirmationDetails(id: number): Promise {\n return DisasterRecoveryTestApi.GetConfirmationDetails(id);\n }\n\n public static async GetSchedulingDetails(id: number): Promise {\n return DisasterRecoveryTestApi.GetSchedulingDetails(id);\n }\n\n public static async GetTestingDetails(id: number): Promise {\n return DisasterRecoveryTestApi.GetTestingDetails(id);\n }\n\n public static async GetFinalizationDetails(id: number): Promise {\n return DisasterRecoveryTestApi.GetFinalizationDetails(id);\n }\n\n public static async GetFinishedDetails(id: number): Promise {\n return DisasterRecoveryTestApi.GetFinishedDetails(id);\n }\n\n public static async UpdateTestApplication(test: number, app: DisasterRecoveryTestApplicationDto): Promise {\n const busy = BusyIndicatorService.SetBusy(i18n.t('testing.dr.busy.savingApplicationConfirmation', { name }).toString());\n try {\n await DisasterRecoveryTestApi.UpdateTestApplication(test, app);\n return Promise.resolve();\n } catch (error) {\n if (error.response.status === 400) {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: error.response.data,\n });\n } else {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: error.message,\n });\n }\n return Promise.reject();\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n public static async UpdateUserConfirmation(test: number, confirmation: DisasterRecoveryTestApplicationConfirmationUserDto): Promise {\n const busy = BusyIndicatorService.SetBusy(i18n.t('testing.dr.busy.savingApplicationConfirmation').toString());\n try {\n await DisasterRecoveryTestApi.UpdateUserConfirmation(test, confirmation);\n return Promise.resolve();\n } catch (error) {\n if (error.response.status === 400) {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: error.response.data,\n });\n } else {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: error.message,\n });\n }\n\n return Promise.reject();\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n public static async UpdateItsdTestAnswer(test: number, appId: number, answer: DisasterRecoveryTestApplicationUserTestingDto): Promise {\n const busy = BusyIndicatorService.SetBusy(i18n.t('testing.dr.busy.savingTestResult', { name }).toString());\n try {\n await DisasterRecoveryTestApi.UpdateItsdTestAnswer(test, appId, answer);\n return Promise.resolve();\n } catch (error) {\n ErrorHandlingService.Handle(error);\n return Promise.reject();\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n public static async UpdateTestUserTestAnswer(test: number, appId: number, answer: DisasterRecoveryTestApplicationUserTestingDto): Promise {\n const busy = BusyIndicatorService.SetBusy(i18n.t('testing.dr.busy.savingTestResult', { name }).toString());\n try {\n await DisasterRecoveryTestApi.UpdateTestUserTestAnswer(test, appId, answer);\n return Promise.resolve();\n } catch (error) {\n ErrorHandlingService.Handle(error);\n return Promise.reject();\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n public static async UpdateAppTestResult(test: number, appId: number, results: DisasterRecoveryTestApplicationResultsDto): Promise {\n const busy = BusyIndicatorService.SetBusy(i18n.t('testing.dr.busy.savingTestResult', { name }).toString());\n try {\n await DisasterRecoveryTestApi.UpdateAppTestResult(test, appId, results);\n return Promise.resolve();\n } catch (error) {\n return Promise.reject(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n public static async AddTestUser(test: number, app: number, user: SimpleUserDto): Promise> {\n return DisasterRecoveryTestApi.AddTestUser(test, app, user);\n }\n\n public static async RemoveTestUser(test: number, app: number, user: SimpleUserDto): Promise> {\n return DisasterRecoveryTestApi.RemoveTestUser(test, app, user);\n }\n\n public static async ChangeAppSwitchToPrimary(test: number, app: number, timeZoneId: number): Promise {\n return DisasterRecoveryTestApi.ChangeAppSwitchToPrimary(test, app, timeZoneId);\n }\n\n public static async ChangeAppSwitchToDisaster(test: number, app: number, timeZoneId: number): Promise {\n return DisasterRecoveryTestApi.ChangeAppSwitchToDisaster(test, app, timeZoneId);\n }\n\n public static async UploadTimeZones(test: number, data: FormData): Promise {\n return DisasterRecoveryTestApi.UploadTimeZones(test, data);\n }\n\n public static async UploadTestTimes(test: number, data: FormData): Promise {\n return DisasterRecoveryTestApi.UploadTestTimes(test, data);\n }\n\n public static async GenerateReport(test: number, data: FormData): Promise {\n return DisasterRecoveryTestApi.GenerateReport(test, data);\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport i18n from '@/i18n';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport PdDatePicker from '@/components/core/PdDatePicker.vue';\nimport { PdDataTable, PdDataTableHeader, PdDataTableRowAction } from '@/components/core/PdDataTable';\nimport { PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { LanguageTemplate, DateTemplate } from '@/core/helpers/templates/index';\nimport { DisasterRecoveryTestDto, DisasterRecoveryTestStatus, GetDisasterRecoveryTestStatusTranslation } from '@/dtos/bcm/testing/DisasterRecoveryTestDto';\nimport { mdiPlaylistPlus, mdiPlaylistRemove, mdiCalendar, mdiTimelineCheck } from '@mdi/js';\nimport { SystemDto } from '@/dtos/bcm/SystemDto';\nimport cloneDeep from 'lodash.clonedeep';\nimport { IDto } from '@/dtos';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nimport { ArrayDataSource } from '@/core/datasource';\nimport DisasterRecoveryTestService from '@/services/DisasterRecoveryTestService';\nimport DatasourcesService from '@/services/DatasourcesService';\n\nexport default defineComponent({\n name: 'DisasterRecoveryAdminView',\n components: {\n PdFormBase,\n PdDataTable,\n PdDatePicker,\n },\n setup() {\n const options = ref({\n editable: {\n mode: 'popup',\n add: true,\n edit: true,\n delete: true,\n },\n });\n\n const startMinDate = ref(new Date().toISOString().substring(0, 10));\n const startMaxDate = ref('');\n\n const endMinDate = ref(new Date().toISOString().substring(0, 10));\n const endMaxDate = ref('');\n\n let editingItem: DisasterRecoveryTestDto | null = null;\n const editingItemSystems = ref(new ArrayDataSource([], {}));\n const editingItemCoordinators = ref(new ArrayDataSource([], {}));\n\n const startDatePicker = ref(false);\n const endDatePicker = ref(false);\n\n const showApplicationSelector = ref(false);\n const showCoordinatorSelector = ref(false);\n\n const requires = ref([\n DatasourcesService.Users,\n ]);\n\n const headers: Array> = [\n {\n id: 'name',\n text: i18n.t('testing.dr.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n validation: (item) => {\n const o = item as DisasterRecoveryTestDto;\n for (const i in o.translations) {\n if (!o.translations[i].name) {\n return ['Name is required...'];\n }\n }\n return [];\n },\n defaultValue: { 'en-US': { name: 'New Disaster Recovery Test' } },\n template: (item) => {\n return LanguageTemplate(item as DisasterRecoveryTestDto, 'name');\n },\n },\n {\n id: 'status',\n text: i18n.t('testing.dr.status').toString(),\n template: (item: unknown) => {\n return {\n text: GetDisasterRecoveryTestStatusTranslation((item as DisasterRecoveryTestDto).status),\n };\n },\n value: 'status',\n width: '150px',\n defaultValue: 0,\n editable: false,\n },\n {\n id: 'start',\n width: '150px',\n text: i18n.t('testing.dr.start').toString(),\n template: (item) => {\n return DateTemplate((item as DisasterRecoveryTestDto).start);\n },\n value: 'start',\n validation: (item) => {\n const i = item as DisasterRecoveryTestDto;\n if (!i.start) {\n return ['Start date is required'];\n } else {\n const date = new Date(i.start);\n const today = new Date().setHours(0, 0, 0, 0);\n if (date < new Date(today)) {\n return ['Start date cannot be before today!'];\n }\n }\n return [];\n },\n defaultValue: new Date(),\n editable: false,\n },\n {\n id: 'end',\n text: i18n.t('testing.dr.end').toString(),\n value: 'end',\n width: '150px',\n template: (item) => {\n return DateTemplate((item as DisasterRecoveryTestDto).end);\n },\n validation: (item) => {\n const i = item as DisasterRecoveryTestDto;\n if (!i.end) {\n return ['End date is required'];\n } else {\n const date = new Date(i.end);\n if (i.start) {\n const start = new Date(i.start);\n if (start > date) {\n return ['End date cannot be before start date'];\n }\n }\n\n const today = new Date().setHours(0, 0, 0, 0);\n if (date < new Date(today)) {\n return ['End date cannot be before today!'];\n }\n }\n return [];\n },\n defaultValue: new Date(),\n editable: false,\n },\n {\n id: 'applications',\n text: 'applications',\n value: 'applications',\n visible: false,\n validation: (item: unknown) => {\n const i = item as DisasterRecoveryTestDto;\n if (!Array.isArray(i.coordinators) || i.coordinators.length === 0) {\n return ['Please select at least one application for Disaster Recovery testing...'];\n }\n return [];\n },\n defaultValue: () => {\n const ret: number[] = [];\n for (let i = 0; i < systems.length; ++i) {\n if (systems[i].disasterRecoveryTest) {\n ret.push(systems[i].id);\n }\n }\n return ret;\n },\n },\n {\n id: 'coordinators',\n text: 'Coordinators',\n value: 'coordinators',\n visible: false,\n validation: (item: unknown) => {\n const i = item as DisasterRecoveryTestDto;\n if (!Array.isArray(i.coordinators) || i.coordinators.length === 0) {\n return ['Please select at least one coordinator'];\n }\n return [];\n },\n defaultValue: [],\n },\n ];\n\n const datasource = DatasourcesService.DisasterRecoveryTest.DisasterRecoveryTests;\n\n const rowActions: Array = [\n {\n id: 'sendToConfirmation',\n text: i18n.t('testing.dr.sendToConfirmation').toString(),\n icon: mdiTimelineCheck,\n action: async (item: IDto) => {\n try {\n await DisasterRecoveryTestService.GoForConfirmation(item as DisasterRecoveryTestDto);\n (item as DisasterRecoveryTestDto).status = DisasterRecoveryTestStatus.Confirmation;\n return Promise.resolve(item);\n } catch (error) {\n return Promise.reject();\n }\n },\n disabled: (item: IDto) => {\n if ((item as DisasterRecoveryTestDto).status > DisasterRecoveryTestStatus.None) {\n return true;\n } else {\n return false;\n }\n },\n },\n ];\n\n let users: Array = [];\n if (DatasourcesService.Users != null) {\n DatasourcesService.Users.data().then(s => {\n users = cloneDeep(s);\n });\n }\n const coordinatorsHeaders: Array> = [\n {\n id: 'username',\n text: 'Coordinators',\n value: 'username',\n template: (value: unknown) => {\n const text = users.filter((item) => {\n return item.username === (value as IDto).value;\n })[0] || { username: 'User not found... :(' };\n\n return {\n text: text.info,\n };\n },\n actions: [\n {\n id: 'add',\n title: 'Add',\n icon: mdiPlaylistPlus,\n callback: () => {\n if (editingItem != null) {\n availableCoordinators.value = users.filter(u => !editingItem?.coordinators.includes(u.username));\n showCoordinatorSelector.value = true;\n }\n },\n },\n ],\n },\n ];\n\n let systems: Array = [];\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const systemsDatasource = DatasourcesService.Bcm.Applications;\n systemsDatasource.data().then(s => {\n systems = cloneDeep(s);\n });\n\n const applicationHeaders: Array> = [\n {\n id: 'value',\n text: 'Systems',\n value: 'value',\n template: async (value: unknown) => {\n const ref = await systemsDatasource.getById((value as IDto).value as number);\n if (ref != null) {\n return LanguageTemplate(ref, 'name');\n } else {\n return { text: '' };\n }\n },\n actions: [\n {\n id: 'add',\n title: 'Add',\n icon: mdiPlaylistPlus,\n callback: () => {\n if (editingItem != null) {\n availableApplications.value = systems.filter(s => !editingItem?.applications.includes(s.id));\n showApplicationSelector.value = true;\n }\n },\n },\n ],\n },\n ];\n\n const availableApplicationHeaders: Array> = [\n {\n id: 'name',\n text: 'System',\n value: 'translations',\n translatable: true,\n template: async (value: unknown) => {\n return LanguageTemplate(value as SystemDto, 'name');\n },\n },\n ];\n\n const availableApplications = ref>([]);\n const selectedApplication = ref(null);\n\n function selectApplication() {\n if (selectedApplication.value != null) {\n console.log(selectedApplication.value.id);\n\n editingItemSystems.value.create({\n id: 0,\n value: selectedApplication.value?.id,\n });\n showApplicationSelector.value = false;\n }\n }\n\n const availableCoordinatorHeaders: Array> = [\n {\n id: 'info',\n text: 'User',\n value: 'info',\n },\n ];\n\n const availableCoordinators = ref>([]);\n const selectedCoordinator = ref(null);\n\n function selectCoordinator() {\n if (selectedCoordinator.value != null) {\n editingItemCoordinators.value.create({\n id: 0,\n value: selectedCoordinator.value?.username,\n });\n showCoordinatorSelector.value = false;\n }\n }\n\n function editingItemChanged(item: DisasterRecoveryTestDto | null) {\n if (item != null) {\n editingItemSystems.value = new ArrayDataSource(item.applications, {});\n editingItemCoordinators.value = new ArrayDataSource(item.coordinators, {});\n }\n editingItem = item;\n }\n\n return {\n options,\n requires,\n headers,\n rowActions,\n datasource,\n editingItemChanged,\n\n coordinatorsHeaders,\n applicationHeaders,\n\n showApplicationSelector,\n showCoordinatorSelector,\n\n selectApplication,\n availableApplicationHeaders,\n availableApplications,\n selectedApplication,\n editingItemSystems,\n\n selectCoordinator,\n availableCoordinatorHeaders,\n availableCoordinators,\n selectedCoordinator,\n editingItemCoordinators,\n\n startDatePicker,\n endDatePicker,\n\n startMinDate,\n startMaxDate,\n\n endMinDate,\n endMaxDate,\n\n test: () => {\n console.log('asdfasdf');\n },\n\n icons: {\n mdiPlaylistPlus,\n mdiPlaylistRemove,\n mdiCalendar,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryAdminView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryAdminView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DisasterRecoveryAdminView.vue?vue&type=template&id=d4009a16&scoped=true&\"\nimport script from \"./DisasterRecoveryAdminView.vue?vue&type=script&lang=ts&\"\nexport * from \"./DisasterRecoveryAdminView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d4009a16\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VInput } from 'vuetify/lib/components/VInput';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCol,VDialog,VDivider,VInput,VRow,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('v-snackbar',{attrs:{\"dense\":\"\",\"light\":\"\",\"timeout\":2000},scopedSlots:_vm._u([{key:\"action\",fn:function(ref){\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._b({attrs:{\"color\":\"blue\",\"text\":\"\"},on:{\"click\":function($event){_vm.snackbar = false}}},'v-btn',attrs,false),[_vm._v(\" Close \")])]}}]),model:{value:(_vm.snackbar),callback:function ($$v) {_vm.snackbar=$$v},expression:\"snackbar\"}},[_vm._v(\" \"+_vm._s(_vm.snackbarText)+\" \")]),_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"start\",\"align\":\"end\"}},[(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"300px\"},attrs:{\"disabled\":_vm.hasChanges,\"items\":_vm.filters,\"label\":_vm.$t('testing.dr.visibleApplications'),\"hide-details\":\"\"},model:{value:(_vm.filterSelection),callback:function ($$v) {_vm.filterSelection=$$v},expression:\"filterSelection\"}})],1):_vm._e(),_c('v-col',{staticClass:\"shrink\"},[_c('v-text-field',{staticStyle:{\"width\":\"300px\"},attrs:{\"disabled\":_vm.hasChanges,\"label\":_vm.$t('testing.dr.searchApplications'),\"hide-details\":\"\"},model:{value:(_vm.searchValue),callback:function ($$v) {_vm.searchValue=$$v},expression:\"searchValue\"}})],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.hasChanges}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiDatabaseExport)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1)]}}])},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('detailed')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('testing.dr.export.details')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('simplified')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('testing.dr.export.simplified')))])],1),(_vm.disasterRecoveryTest.type === 2)?_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('ucmdb')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('testing.dr.export.ucmdb')))])],1):_vm._e()],1)],1)],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.hasChanges},on:{\"click\":_vm.expandAll}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiExpandAll)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('expandAll'))+\" \")],1)],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.hasChanges},on:{\"click\":_vm.collapseAll}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCollapseAll)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('collapseAll'))+\" \")],1)],1),(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.hasChanges},on:{\"click\":_vm.snapshotTimes}},[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.snapshotTimes'))+\" \")])],1):_vm._e(),(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.hasChanges}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiSourceBranch)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.phases'))+\" \")],1)]}}],null,false,3531099681)},[_c('v-list',_vm._l((_vm.otherPhases),function(p){return _c('v-list-item',{key:p.route,on:{\"click\":function($event){return _vm.showPhase(p)}}},[_c('v-list-item-title',[_vm._v(_vm._s(p.text))])],1)}),1)],1)],1):_vm._e(),(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.hasChanges || _vm.disasterRecoveryTest.status !== 1},on:{\"click\":_vm.moveToScheduling}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCalendarMultiselect)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.moveToScheduling'))+\" \")],1)],1):_vm._e()],1),_c('v-row',[_c('v-col',[_vm._l((_vm.applications),function(app,i){return [(!(_vm.hidden[app.id] === true))?_c('v-card',{key:app.uuid,staticClass:\"px-2 py-0\",class:_vm.rowClass(i),attrs:{\"elevation\":\"0\",\"dummy\":_vm.dummy}},[_c('v-card-text',{staticClass:\"px-0 ma-0\"},[_c('div',{staticClass:\"pb-4\",staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticClass:\"ma-0 text-h6 font-weight-bold\",staticStyle:{\"width\":\"400px\"}},[_vm._v(\" \"+_vm._s(app.name)+\" \"),(app.ucmdbName || (app.modules && app.modules.length > 0))?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"medium\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.icons.mdiInformation)+\" \")])]}}],null,true)},[(app.ucmdbName)?[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.ucmdbName'))+\" \"),_c('ul',[_c('li',[_vm._v(\" \"+_vm._s(app.ucmdbName)+\" \")])])])]:_vm._e(),((app.modules && app.modules.length > 0))?[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.modules'))+\" \")]),_c('ul',_vm._l((app.modules),function(m){return _c('li',{key:m},[_vm._v(\" \"+_vm._s(m)+\" \")])}),0)]:_vm._e()],2):_vm._e(),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.changeState(app)}}},[_c('v-icon',{class:{'rotated': _vm.closed[app.id]}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiChevronUp)+\" \")])],1)],1),_c('testing-confirmation-line',{attrs:{\"item\":app,\"comments-value\":\"confirmationComments\",\"type\":_vm.disasterRecoveryTest.type,\"disabled\":_vm.disasterRecoveryTest.type === 1 || _vm.disasterRecoveryTest.status !== 1},on:{\"save\":function($event){return _vm.updateApp(app, $event)},\"has-changes\":function($event){return _vm.applicationHasChanges(app, $event)}}})],1),_c('v-expand-transition',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.closed[app.id]),expression:\"!closed[app.id]\"}]},[_c('testing-user-group',{attrs:{\"name\":_vm.$t('testing.dr.businessOwners'),\"group\":app.businessOwners,\"disabled\":_vm.disasterRecoveryTest.status !== 1},on:{\"save\":_vm.updateUserConfirmation,\"has-changes\":_vm.userConfirmationHasChanges}}),_c('testing-user-group',{attrs:{\"name\":_vm.$t('testing.dr.itsdOfficers'),\"group\":app.itsdOfficers,\"disabled\":_vm.disasterRecoveryTest.status !== 1},on:{\"save\":_vm.updateUserConfirmation,\"has-changes\":_vm.userConfirmationHasChanges}}),_c('testing-user-group',{attrs:{\"name\":_vm.$t('testing.dr.serviceOwners'),\"group\":app.serviceOwners,\"disabled\":_vm.disasterRecoveryTest.status !== 1},on:{\"save\":_vm.updateUserConfirmation,\"has-changes\":_vm.userConfirmationHasChanges}}),_c('testing-user-group',{attrs:{\"name\":_vm.$t('testing.dr.applicationOwners'),\"group\":app.applicationOwners,\"disabled\":_vm.disasterRecoveryTest.status !== 1},on:{\"save\":_vm.updateUserConfirmation,\"has-changes\":_vm.userConfirmationHasChanges}})],1)])],1),_c('v-divider',{staticClass:\"pa-0\"})],1):_vm._e()]})],2)],1),_c('v-row',{staticClass:\"px-4\"},[_c('v-col',[_c('v-pagination',{attrs:{\"length\":_vm.totalPages,\"disabled\":_vm.hasChanges},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[[_c('div',[_c('v-switch',{staticClass:\"ma-0\",staticStyle:{\"width\":\"150px\"},attrs:{\"label\":_vm.item[_vm.goValue] ? _vm.$t('testing.dr.go') : _vm.$t('testing.dr.nogo'),\"hide-details\":\"\",\"dense\":\"\",\"disabled\":_vm.disabled,\"color\":\"green\"},on:{\"change\":_vm.validate},model:{value:(_vm.item[_vm.goValue]),callback:function ($$v) {_vm.$set(_vm.item, _vm.goValue, $$v)},expression:\"item[goValue]\"}})],1),_c('div',{staticStyle:{\"flex-grow\":\"100\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('testing.dr.comments'),\"dense\":\"\",\"full-width\":\"\",\"hide-details\":\"auto\",\"error-messages\":_vm.commentErrors,\"disabled\":_vm.disabled},on:{\"input\":_vm.validate},model:{value:(_vm.item[_vm.commentsValue]),callback:function ($$v) {_vm.$set(_vm.item, _vm.commentsValue, $$v)},expression:\"item[commentsValue]\"}})],1),(!_vm.disabled)?_c('div',{staticClass:\"pl-2\"},[_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"disabled\":_vm.saveDisabled},on:{\"click\":_vm.click}},[_vm._v(\" Save \")])],1):_vm._e()]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'TestingConfirmationLine',\n\n components: {\n },\n\n props: {\n item: {\n type: Object,\n required: true,\n },\n\n goValue: {\n type: String,\n default: 'goForTest',\n },\n\n commentsValue: {\n type: String,\n default: 'comments',\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const commentErrors = ref(null);\n\n const originalGo = ref(props.item[props.goValue]);\n const originalComment = ref(props.item[props.commentsValue]);\n\n const saveDisabled = computed(() => {\n if (props.item[props.goValue] !== originalGo.value || props.item[props.commentsValue] !== originalComment.value) {\n return false;\n }\n return true;\n });\n\n watch(\n () => props.item,\n () => {\n originalGo.value = props.item[props.goValue];\n originalComment.value = props.item[props.commentsValue];\n },\n );\n\n watch(\n saveDisabled,\n (value) => {\n emit('has-changes', !value);\n },\n );\n\n function click() {\n if (validate()) {\n emit('save', (result: boolean) => {\n if (result) {\n originalGo.value = props.item[props.goValue];\n originalComment.value = props.item[props.commentsValue];\n }\n });\n }\n }\n\n function validate(): boolean {\n if (props.item[props.goValue] === false) {\n if (props.item[props.commentsValue] && props.item[props.commentsValue].trim() && props.item[props.commentsValue].trim().length > 5) {\n commentErrors.value = null;\n return true;\n } else {\n commentErrors.value = 'Comments are required on NoGo';\n return false;\n }\n } else {\n commentErrors.value = null;\n return true;\n }\n }\n\n return {\n click,\n saveDisabled,\n commentErrors,\n validate,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TestingConfirmationLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TestingConfirmationLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TestingConfirmationLine.vue?vue&type=template&id=8ef2da0e&\"\nimport script from \"./TestingConfirmationLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./TestingConfirmationLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VSwitch,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.group && _vm.group.length > 0)?_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticClass:\"ma-0 font-weight-bold text-subtitle-1\",staticStyle:{\"width\":\"400px\"}},[_vm._v(\" \"+_vm._s(_vm.name)+\" \")])]):_vm._e(),_vm._l((_vm.group),function(user){return _c('div',{key:user.username,class:{'nogo-row': !user.goForTest },staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{class:{'text-decoration-underline': user.currentUser, 'font-weight-bold': user.currentUser},staticStyle:{\"width\":\"400px\"}},[_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.mdiCircleMedium)+\" \")]),_vm._v(\" \"+_vm._s(user.user.info)+\" \")],1),_c('testing-confirmation-line',{attrs:{\"item\":user,\"disabled\":!user.currentUser || _vm.disabled},on:{\"save\":function($event){return _vm.$emit('save', user, $event)},\"has-changes\":function($event){return _vm.$emit('has-changes', user, $event)}}})],1)})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport TestingConfirmationLine from './TestingConfirmationLine.vue';\nimport { mdiCircleMedium } from '@mdi/js';\n\nexport default defineComponent({\n name: 'TestingUserGroup',\n\n components: {\n TestingConfirmationLine,\n },\n\n props: {\n group: {\n required: false,\n type: Array,\n default: () => [],\n },\n\n name: {\n required: true,\n type: String,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n setup() {\n return {\n mdiCircleMedium,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TestingUserGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TestingUserGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TestingUserGroup.vue?vue&type=template&id=bc8e4c10&scoped=true&\"\nimport script from \"./TestingUserGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./TestingUserGroup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TestingUserGroup.vue?vue&type=style&index=0&id=bc8e4c10&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bc8e4c10\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","import { IDto } from '@/dtos';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nimport { DisasterRecoveryTestStatus } from './DisasterRecoveryTestDto';\n\nexport enum DisasterRecoveryTestDetailsDtoType {\n User = 1,\n Coordinator = 2,\n}\n\nexport enum DisasterRecoveryTestResult {\n Unanswered = 0,\n Fail = 1,\n Partial = 2,\n Pass = 3,\n}\n\nexport interface DisasterRecoveryTestApplicationConfirmationUserDto extends IDto {\n user: SimpleUserDto\n goForTest: boolean\n comments: string\n}\n\nexport interface DisasterRecoveryTestApplicationTestUserDto extends IDto {\n user: SimpleUserDto\n testResult: DisasterRecoveryTestResult\n testComments: string\n}\n\nexport interface DisasterRecoveryTestApplicationItsdOfficerDto extends DisasterRecoveryTestApplicationTestUserDto, DisasterRecoveryTestApplicationConfirmationUserDto{\n}\n\nexport interface DisasterRecoveryTestApplicationUserTestingDto {\n username: string\n testResult: DisasterRecoveryTestResult\n testComments: string\n}\n\nexport interface DisasterRecoveryTestApplicationDto extends IDto {\n id: number,\n\n applicationId: number,\n ucmdbId: string,\n\n name: string,\n ucmdbName: string,\n\n modules: Array\n\n businessOwners: Array\n itsdOfficers: Array\n serviceOwners: Array\n applicationOwners: Array\n\n goForTest: boolean\n confirmationComments: string\n\n testUsers: Array\n\n testResult: DisasterRecoveryTestResult\n testComments: string\n\n testRto?: number | null\n testRpo?: number | null\n\n rto?: string\n rtoValue?: string\n\n rpo?: string\n rpoValue?: number\n\n runningRto?: string\n runningRtoValue?: number\n\n runningRpo?: string\n runningRpoValue?: number\n\n targetRto?: string\n targetRtoValue?: number\n\n targetRpo?: string\n targetRpoValue?: number\n\n switchToDisasterTimeZoneId?: number\n switchToPrimaryTimeZoneId?: number\n}\n\nexport interface DisasterRecoveryTestApplicationResultsDto\n{\n testResult: DisasterRecoveryTestResult\n testComments: string\n testRto?: number | null\n testRpo?: number | null\n}\n\nexport interface DisasterRecoveryTestDetailsDto extends IDto {\n // id: number\n name: string\n status: DisasterRecoveryTestStatus\n start: string\n end: string\n type: DisasterRecoveryTestDetailsDtoType,\n applications: Array\n}\n","import { DateTimeTemplate } from '@/core/helpers/templates/DateTemplate';\nimport { DisasterRecoveryTestApplicationDto, DisasterRecoveryTestResult } from '@/dtos/bcm/testing/DisasterRecoveryTestDetailsDto';\nimport { DisasterRecoveryTestStatus } from '@/dtos/bcm/testing/DisasterRecoveryTestDto';\nimport i18n from '@/i18n';\nimport router from '@/router';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { mdiCollapseAll, mdiDatabaseExport, mdiDatabaseImport, mdiExpandAll, mdiSourceBranch } from '@mdi/js';\nimport { nextTick, reactive, ref, watch } from '@vue/composition-api';\nimport XLSX from 'xlsx-js-style';\n\nlet currentTest = 0;\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport default function (props: any, filter?: ((app: DisasterRecoveryTestApplicationDto, filter: string) => boolean)) : any {\n const hidden = reactive<{ [key: number]: boolean }>({});\n const toShow: { [key: number]: boolean } = {};\n const order: Array = [];\n\n const dummy = ref(true);\n\n const searchValue = ref('');\n const filterSelection = ref('all');\n\n const applications: Array = [];\n\n const currentPage = ref(1);\n const totalPages = ref(1);\n const itemsPerPage = 20;\n\n const switchOpen = ref(false);\n const switchClosed = ref(false);\n\n currentTest = props.disasterRecoveryTest.id;\n\n if (props.disasterRecoveryTest.status < props.validStatus) {\n PopupMessageService.SetMessage({\n title: 'Error',\n text: `Cannot see ${props.phase} for this test...`,\n });\n\n router.replace({ name: 'bcm.testing.deployments' });\n\n return {\n valid: false,\n };\n }\n\n for (let i = 0; i < props.disasterRecoveryTest.applications.length; ++i) {\n applications.push(props.disasterRecoveryTest.applications[i]);\n\n order.push(applications[i].id);\n hidden[applications[i].id] = false;\n toShow[applications[i].id] = true;\n }\n\n function paginate(page?: number) {\n let found = 0;\n let total = 0;\n\n if (page === undefined) {\n if (currentPage.value !== 1) {\n currentPage.value = 1;\n return;\n } else {\n page = currentPage.value;\n }\n }\n\n const start = (page - 1) * itemsPerPage;\n\n for (let i = 0; i < order.length; ++i) {\n if (toShow[order[i]] === true) {\n total += 1;\n\n if (found < start) {\n hidden[order[i]] = true;\n ++found;\n } else if (found < start + itemsPerPage) {\n hidden[order[i]] = false;\n ++found;\n } else {\n hidden[order[i]] = true;\n }\n } else {\n hidden[order[i]] = true;\n }\n }\n\n totalPages.value = Math.ceil(total / itemsPerPage);\n dummy.value = !dummy.value;\n }\n\n watch(\n currentPage,\n (value) => {\n paginate(value);\n },\n );\n\n paginate();\n\n let debounceTimer: unknown;\n function updateSearchValue(value: string) {\n // cancel pending call\n clearTimeout(debounceTimer as number);\n\n // delay new call 500ms\n debounceTimer = setTimeout(() => {\n const search = value.trim().toLowerCase();\n\n let filtered = true;\n for (let i = 0; i < applications.length; ++i) {\n if (filter != null) {\n filtered = filter(applications[i], filterSelection.value);\n }\n\n if (filtered) {\n if (search && search.trim().length > 0) {\n if (applications[i].name.toLowerCase().indexOf(search) >= 0) {\n toShow[applications[i].id] = true;\n } else {\n toShow[applications[i].id] = false;\n }\n } else {\n toShow[applications[i].id] = true;\n }\n } else {\n toShow[applications[i].id] = false;\n }\n }\n\n paginate();\n }, 500);\n }\n\n watch(\n filterSelection,\n (value: string) => {\n const apps = applications;\n if (filter != null) {\n for (let i = 0; i < apps.length; ++i) {\n toShow[apps[i].id] = filter(apps[i], value);\n }\n } else {\n for (let i = 0; i < apps.length; ++i) {\n toShow[apps[i].id] = true;\n }\n }\n\n paginate();\n dummy.value = !dummy.value;\n },\n );\n\n watch(\n searchValue,\n (value) => {\n updateSearchValue(value);\n },\n );\n\n function expandAll() {\n switchOpen.value = true;\n nextTick(() => {\n switchOpen.value = false;\n });\n }\n\n function collapseAll() {\n switchClosed.value = true;\n nextTick(() => {\n switchClosed.value = false;\n });\n }\n\n const loaded = ref(true);\n\n interface TestPhase {\n text: string,\n route: string,\n };\n\n const otherPhases: Array = [{\n text: i18n.t('testing.dr.phase.confirmation').toString(),\n route: 'bcm.testing.dr.test.confirmation',\n }];\n\n if (props.disasterRecoveryTest.status > 1) {\n otherPhases.push({\n text: i18n.t('testing.dr.phase.scheduling').toString(),\n route: 'bcm.testing.dr.test.scheduling',\n });\n\n if (props.disasterRecoveryTest.status > 2) {\n otherPhases.push({\n text: i18n.t('testing.dr.phase.testing').toString(),\n route: 'bcm.testing.dr.test.testing',\n });\n }\n\n if (props.disasterRecoveryTest.status > 3) {\n otherPhases.push({\n text: i18n.t('testing.dr.phase.finalization').toString(),\n route: 'bcm.testing.dr.test.finalization',\n });\n }\n\n if (props.disasterRecoveryTest.status > 4) {\n otherPhases.push({\n text: i18n.t('testing.dr.phase.finished').toString(),\n route: 'bcm.testing.dr.test.finished',\n });\n }\n }\n\n for (let i = 0; i < otherPhases.length; ++i) {\n if (otherPhases[i].route === router.currentRoute.name) {\n otherPhases.splice(i, 1);\n }\n }\n\n function showPhase(phase: TestPhase) {\n router.push({ name: phase.route });\n }\n\n async function getConfirmationSheet(type: string, applications: Array): Promise {\n const data: Array> = [];\n const apps = applications;\n\n if (type === 'ucmdb') {\n data.push(['CG_ID', 'UCMDB_ID', 'GO', 'COMMENTS']);\n for (let i = 0; i < apps.length; ++i) {\n data.push([apps[i].applicationId.toString(), apps[i].ucmdbId || '\"\"', apps[i].goForTest ? 'Go' : 'NoGo', apps[i].confirmationComments || '']);\n }\n } else {\n data.push(['Name', 'Go_NoGo', 'Comments', 'UCMDB_Name']);\n\n for (let i = 0; i < apps.length; ++i) {\n let ucmdbName = '';\n if (apps[i].ucmdbName) {\n ucmdbName = apps[i].ucmdbName;\n } else if (apps[i].modules && Array.isArray(apps[i].modules) && apps[i].modules.length > 0) {\n for (let j = 0; j < apps[i].modules.length - 1; ++j) {\n ucmdbName += apps[i].modules[j] + ' \\\\ ';\n }\n ucmdbName += apps[i].modules[apps[i].modules.length - 1];\n }\n\n data.push([apps[i].name, apps[i].goForTest ? 'Go' : 'NoGo', apps[i].confirmationComments || '', ucmdbName]);\n\n if (type === 'detailed') {\n data.push(['', i18n.t('testing.dr.businessOwners').toString()]);\n for (let j = 0; j < apps[i].businessOwners.length; ++j) {\n data.push(['', '', apps[i].businessOwners[j].user.info, apps[i].businessOwners[j].goForTest ? 'Go' : 'NoGo', apps[i].businessOwners[j].comments || '']);\n }\n\n data.push(['', i18n.t('testing.dr.itsdOfficers').toString()]);\n for (let j = 0; j < apps[i].itsdOfficers.length; ++j) {\n data.push(['', '', apps[i].itsdOfficers[j].user.info, apps[i].itsdOfficers[j].goForTest ? 'Go' : 'NoGo', apps[i].itsdOfficers[j].comments || '']);\n }\n\n data.push(['', i18n.t('testing.dr.serviceOwners').toString()]);\n for (let j = 0; j < apps[i].serviceOwners.length; ++j) {\n data.push(['', '', apps[i].serviceOwners[j].user.info, apps[i].serviceOwners[j].goForTest ? 'Go' : 'NoGo', apps[i].serviceOwners[j].comments || '']);\n }\n\n data.push(['', i18n.t('testing.dr.applicationOwners').toString()]);\n for (let j = 0; j < apps[i].applicationOwners.length; ++j) {\n data.push(['', '', apps[i].applicationOwners[j].user.info, apps[i].applicationOwners[j].goForTest ? 'Go' : 'NoGo', apps[i].applicationOwners[j].comments || '']);\n }\n\n data.push([]);\n }\n }\n }\n\n return XLSX.utils.aoa_to_sheet(data);\n }\n\n async function getSchedulingSheet(type: string, applications: Array): Promise {\n const data: Array> = [];\n const apps = applications;\n\n const timeZoneMapping : {[x: number]: { id: number, name: string, start: string, end: string, }} = {};\n const timeZonesDatasource = DatasourcesService.Testing.TimeZones(currentTest);\n const timezones = await timeZonesDatasource.data();\n if (timezones != null) {\n for (let i = 0; i < timezones.length; ++i) {\n timeZoneMapping[timezones[i].id] = {\n id: timezones[i].id,\n name: timezones[i].name,\n start: DateTimeTemplate(timezones[i].start).text,\n end: DateTimeTemplate(timezones[i].end).text,\n };\n }\n }\n\n if (type === 'ucmdb') {\n data.push(['CG_ID', 'UCMDB_ID', 'Rto', 'Rpo', 'SwitchToDisaster', 'SwitchToPrimary']);\n for (let i = 0; i < apps.length; ++i) {\n let disaster = '';\n let primary = '';\n const disasterId = apps[i].switchToDisasterTimeZoneId || 0;\n const primaryId = apps[i].switchToPrimaryTimeZoneId || 0;\n if (disasterId !== 0) {\n const x = timeZoneMapping[disasterId] || {};\n disaster = x.name;\n }\n\n if (primaryId !== 0) {\n const x = timeZoneMapping[primaryId] || {};\n primary = `${x.name}`;\n }\n\n data.push([\n apps[i].applicationId.toString(),\n apps[i].ucmdbId || '',\n (apps[i].rtoValue || '').toString(),\n (apps[i].rpoValue || '').toString(),\n disaster,\n primary,\n ]);\n }\n } else {\n data.push(['Name', 'BiaRto', 'RunningRto', 'TargetRto', 'BiaRpo', 'RunningRpo', 'TargetRpo', 'SwitchToDisaster', 'SwitchToPrimary', 'UCMDB_Name']);\n for (let i = 0; i < apps.length; ++i) {\n let disaster = '';\n let primary = '';\n const disasterId = apps[i].switchToDisasterTimeZoneId || 0;\n const primaryId = apps[i].switchToPrimaryTimeZoneId || 0;\n if (disasterId !== 0) {\n const x = timeZoneMapping[disasterId] || {};\n disaster = `${x.name} (${x.start} to ${x.end})`;\n }\n\n if (primaryId !== 0) {\n const x = timeZoneMapping[primaryId] || {};\n primary = `${x.name} (${x.start} to ${x.end})`;\n }\n\n let ucmdbName = '';\n if (apps[i].ucmdbName) {\n ucmdbName = apps[i].ucmdbName;\n } else if (apps[i].modules && Array.isArray(apps[i].modules) && apps[i].modules.length > 0) {\n for (let j = 0; j < apps[i].modules.length - 1; ++j) {\n ucmdbName += apps[i].modules[j] + ' \\\\ ';\n }\n ucmdbName += apps[i].modules[apps[i].modules.length - 1];\n }\n\n data.push([\n apps[i].name,\n (apps[i].rtoValue || '').toString(),\n (apps[i].runningRtoValue || '').toString(),\n (apps[i].targetRtoValue || '').toString(),\n (apps[i].rpoValue || '').toString(),\n (apps[i].runningRpoValue || '').toString(),\n (apps[i].targetRpoValue || '').toString(),\n disaster,\n primary,\n ucmdbName,\n ]);\n\n if (type === 'detailed') {\n data.push(['', i18n.t('testing.dr.itsdOfficers').toString()]);\n\n for (let j = 0; j < apps[i].itsdOfficers.length; ++j) {\n data.push(['', '', apps[i].itsdOfficers[j].user.info]);\n }\n\n data.push(['', i18n.t('testing.dr.testingUsers').toString()]);\n for (let j = 0; j < apps[i].testUsers.length; ++j) {\n data.push(['', '', apps[i].testUsers[j].user.info]);\n }\n\n data.push([]);\n }\n }\n }\n\n return XLSX.utils.aoa_to_sheet(data);\n }\n\n async function getTestingSheet(type: string, applications: Array): Promise {\n const data: Array> = [];\n const apps = applications;\n\n const translations = {\n [DisasterRecoveryTestResult.Pass]: 'Success',\n [DisasterRecoveryTestResult.Partial]: 'Partial',\n [DisasterRecoveryTestResult.Fail]: 'Fail',\n [DisasterRecoveryTestResult.Unanswered]: '',\n };\n\n data.push(['Name', 'UCMDB_Name']);\n\n for (let i = 0; i < apps.length; ++i) {\n let ucmdbName = '';\n if (apps[i].ucmdbName) {\n ucmdbName = apps[i].ucmdbName;\n } else if (apps[i].modules && Array.isArray(apps[i].modules) && apps[i].modules.length > 0) {\n for (let j = 0; j < apps[i].modules.length - 1; ++j) {\n ucmdbName += apps[i].modules[j] + ' \\\\ ';\n }\n ucmdbName += apps[i].modules[apps[i].modules.length - 1];\n }\n\n data.push([apps[i].name, ucmdbName]);\n\n if (type === 'detailed') {\n data.push(['', i18n.t('testing.dr.itsdOfficers').toString()]);\n for (let j = 0; j < apps[i].itsdOfficers.length; ++j) {\n data.push([\n '',\n '',\n apps[i].itsdOfficers[j].user.info,\n translations[apps[i].itsdOfficers[j].testResult],\n apps[i].itsdOfficers[j].testComments || '',\n ]);\n }\n\n data.push(['', i18n.t('testing.dr.testingUsers').toString()]);\n for (let j = 0; j < apps[i].testUsers.length; ++j) {\n data.push([\n '',\n '',\n apps[i].testUsers[j].user.info,\n translations[apps[i].testUsers[j].testResult],\n apps[i].testUsers[j].testComments || '',\n ]);\n }\n\n data.push([]);\n }\n }\n\n return XLSX.utils.aoa_to_sheet(data);\n }\n\n async function getFinalizationSheet(type: string, applications: Array): Promise {\n const data: Array> = [];\n const apps = applications;\n const translations = {\n [DisasterRecoveryTestResult.Pass]: 'Success',\n [DisasterRecoveryTestResult.Partial]: 'Partial',\n [DisasterRecoveryTestResult.Fail]: 'Fail',\n [DisasterRecoveryTestResult.Unanswered]: '',\n };\n\n data.push(['Name', 'UCMDB_Name', 'TargetRTO', 'TargetRPO', 'TestRTO', 'TestRPO', 'TestResult', 'TestComments']);\n\n for (let i = 0; i < apps.length; ++i) {\n let ucmdbName = '';\n if (apps[i].ucmdbName) {\n ucmdbName = apps[i].ucmdbName;\n } else if (apps[i].modules && Array.isArray(apps[i].modules) && apps[i].modules.length > 0) {\n for (let j = 0; j < apps[i].modules.length - 1; ++j) {\n ucmdbName += apps[i].modules[j] + ' \\\\ ';\n }\n ucmdbName += apps[i].modules[apps[i].modules.length - 1];\n }\n\n const targetRto = apps[i].targetRtoValue == null ? '' : apps[i].targetRtoValue;\n const targetRpo = apps[i].targetRpoValue == null ? '' : apps[i].targetRpoValue;\n\n const rto = apps[i].testRto == null ? '' : apps[i].testRto;\n const rpo = apps[i].testRpo == null ? '' : apps[i].testRpo;\n\n data.push([\n apps[i].name,\n ucmdbName,\n (targetRto || '').toString(),\n (targetRpo || '').toString(),\n (rto || '').toString(),\n (rpo || '').toString(),\n translations[apps[i].testResult],\n apps[i].testComments || '',\n ]);\n\n if (type === 'detailed') {\n data.push(['', i18n.t('testing.dr.itsdOfficers').toString()]);\n for (let j = 0; j < apps[i].itsdOfficers.length; ++j) {\n data.push([\n '',\n '',\n apps[i].itsdOfficers[j].user.info,\n translations[apps[i].itsdOfficers[j].testResult],\n apps[i].itsdOfficers[j].testComments || '',\n ]);\n }\n\n data.push(['', i18n.t('testing.dr.testingUsers').toString()]);\n for (let j = 0; j < apps[i].testUsers.length; ++j) {\n data.push([\n '',\n '',\n apps[i].testUsers[j].user.info,\n translations[apps[i].testUsers[j].testResult],\n apps[i].testUsers[j].testComments || '',\n ]);\n }\n\n data.push([]);\n }\n }\n\n return XLSX.utils.aoa_to_sheet(data);\n };\n\n async function exportXlsx(phase: DisasterRecoveryTestStatus, applications: Array, type: string) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('exportingData').toString());\n const wb = XLSX.utils.book_new();\n wb.Props = {\n Title: `${props.disasterRecoveryTest.name} Export`,\n Subject: props.disasterRecoveryTest.name,\n Author: 'Continuity Guardian',\n CreatedDate: new Date(),\n };\n\n try {\n if (phase === DisasterRecoveryTestStatus.Confirmation) {\n XLSX.utils.book_append_sheet(wb, await getConfirmationSheet(type, applications), 'Confirmation Phase');\n } else if (phase === DisasterRecoveryTestStatus.Scheduling) {\n XLSX.utils.book_append_sheet(wb, await getSchedulingSheet(type, applications), 'Scheduling Phase');\n } else if (phase === DisasterRecoveryTestStatus.Testing) {\n XLSX.utils.book_append_sheet(wb, await getTestingSheet(type, applications), 'Testing Phase');\n } else if (phase === DisasterRecoveryTestStatus.Finalization) {\n XLSX.utils.book_append_sheet(wb, await getFinalizationSheet(type, applications), 'Finalization Phase');\n } else if (phase === DisasterRecoveryTestStatus.Finished) {\n XLSX.utils.book_append_sheet(wb, await getConfirmationSheet(type, applications), 'Confirmation Phase');\n XLSX.utils.book_append_sheet(wb, await getSchedulingSheet(type, applications.filter(i => i.goForTest)), 'Scheduling Phase');\n if (type === 'detailed') {\n XLSX.utils.book_append_sheet(wb, await getTestingSheet(type, applications.filter(i => i.goForTest)), 'Testing Phase');\n }\n XLSX.utils.book_append_sheet(wb, await getFinalizationSheet(type, applications.filter(i => i.goForTest)), 'Finalization Phase');\n } else {\n throw new Error(`Phase is not correct in exportData. (${phase})`);\n }\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n\n XLSX.writeFile(wb, `${props.disasterRecoveryTest.name}.xlsx`);\n\n BusyIndicatorService.RemoveBusy(busy);\n }\n\n return {\n valid: true,\n loaded,\n applications,\n searchValue,\n filterSelection,\n hidden,\n switchOpen,\n switchClosed,\n dummy,\n expandAll,\n collapseAll,\n currentPage,\n totalPages,\n otherPhases,\n showPhase,\n exportXlsx,\n icons: {\n mdiExpandAll,\n mdiCollapseAll,\n mdiDatabaseExport,\n mdiDatabaseImport,\n mdiSourceBranch,\n },\n };\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, reactive, ref, watch } from '@vue/composition-api';\nimport i18n from '@/i18n';\nimport DisasterRecoveryTestService from '@/services/DisasterRecoveryTestService';\nimport { DisasterRecoveryTestApplicationConfirmationUserDto, DisasterRecoveryTestApplicationDto, DisasterRecoveryTestDetailsDto } from '@/dtos/bcm/testing/DisasterRecoveryTestDetailsDto';\nimport PdDatePicker from '@/components/core/PdDatePicker.vue';\nimport { mdiChevronUp, mdiDatabaseExport, mdiExpandAll, mdiCollapseAll, mdiInformation, mdiCalendarMultiselect } from '@mdi/js';\nimport TestingConfirmationLine from '@/components/bcm/testing/dr/TestingConfirmationLine.vue';\nimport TestingUserGroup from '@/components/bcm/testing/dr/TestingUserGroup.vue';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport isEmpty from 'lodash.isempty';\nimport router from '@/router';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport testing from './testing';\nimport { DisasterRecoveryTestStatus } from '@/dtos/bcm/testing/DisasterRecoveryTestDto';\n\nexport default defineComponent({\n name: 'DisasterRecoveryTestConfirmationView',\n\n components: {\n PdDatePicker,\n TestingConfirmationLine,\n TestingUserGroup,\n },\n\n props: {\n disasterRecoveryTest: {\n type: Object as () => DisasterRecoveryTestDetailsDto,\n required: true,\n },\n\n itemsPerPage: {\n type: Number,\n default: 20,\n },\n },\n\n setup(props) {\n const closed = reactive<{ [key: number]: boolean }>({});\n const hidden = reactive<{ [key: number]: boolean }>({});\n const toShow: { [key: number]: boolean } = {};\n const order: Array = [];\n const dummy = ref(true);\n const searchValue = ref('');\n const applications: Array = [];\n const snackbar = ref(false);\n const snackbarText = ref(i18n.t('saved'));\n\n const currentPage = ref(1);\n const totalPages = ref(1);\n const itemsPerPage = props.itemsPerPage;\n\n const { showPhase, otherPhases, icons, exportXlsx } = testing(props);\n\n for (let i = 0; i < props.disasterRecoveryTest.applications.length; ++i) {\n applications.push(props.disasterRecoveryTest.applications[i]);\n\n order.push(applications[i].id);\n hidden[applications[i].id] = false;\n toShow[applications[i].id] = true;\n }\n\n function paginate(page?: number) {\n let found = 0;\n let total = 0;\n\n if (page === undefined) {\n if (currentPage.value !== 1) {\n currentPage.value = 1;\n return;\n } else {\n page = currentPage.value;\n }\n }\n\n const start = (page - 1) * itemsPerPage;\n\n for (let i = 0; i < order.length; ++i) {\n if (toShow[order[i]] === true) {\n total += 1;\n\n if (found < start) {\n hidden[order[i]] = true;\n ++found;\n } else if (found < start + itemsPerPage) {\n hidden[order[i]] = false;\n ++found;\n } else {\n hidden[order[i]] = true;\n }\n } else {\n hidden[order[i]] = true;\n }\n }\n\n totalPages.value = Math.ceil(total / itemsPerPage);\n dummy.value = !dummy.value;\n }\n\n watch(\n currentPage,\n (value) => {\n paginate(value);\n },\n );\n\n paginate();\n\n const filters = ref([\n { value: 'all', text: i18n.t('testing.dr.filter.all') },\n { value: 'go', text: i18n.t('testing.dr.filter.go') },\n { value: 'nogo', text: i18n.t('testing.dr.filter.nogo') },\n ]);\n const filterSelection = ref('all');\n\n let debounceTimer: unknown;\n function updateSearchValue(value: string) {\n // cancel pending call\n clearTimeout(debounceTimer as number);\n\n // delay new call 500ms\n debounceTimer = setTimeout(() => {\n const search = value.trim().toLowerCase();\n\n let all = true;\n let go = true;\n if (filterSelection.value === 'all') {\n all = true;\n } else {\n all = false;\n if (filterSelection.value === 'go') {\n go = true;\n } else {\n go = false;\n }\n }\n\n for (let i = 0; i < applications.length; ++i) {\n if (search) {\n if ((all === true || (all === false && applications[i].goForTest === go)) && applications[i].name.toLowerCase().indexOf(search) >= 0) {\n toShow[applications[i].id] = true;\n } else {\n toShow[applications[i].id] = false;\n }\n } else {\n if (all === true || (all === false && applications[i].goForTest === go)) {\n toShow[applications[i].id] = true;\n } else {\n toShow[applications[i].id] = false;\n }\n }\n }\n\n paginate();\n dummy.value = !dummy.value;\n }, 500);\n }\n\n watch(\n searchValue,\n (value) => {\n updateSearchValue(value);\n },\n );\n\n const hasChanges = ref(false);\n const unsavedApplications: { [key: string]: boolean } = {};\n const unsavedUserConfirmations: { [key: string]: boolean } = {};\n\n function applicationHasChanges(app: DisasterRecoveryTestApplicationDto, changes: boolean) {\n if (changes) {\n unsavedApplications[app.id] = changes;\n\n hasChanges.value = true;\n } else {\n delete unsavedApplications[app.id];\n\n if (isEmpty(unsavedApplications) && isEmpty(unsavedUserConfirmations)) {\n hasChanges.value = false;\n }\n }\n }\n\n function userConfirmationHasChanges(app: DisasterRecoveryTestApplicationDto, changes: boolean) {\n if (changes) {\n unsavedUserConfirmations[app.id] = changes;\n hasChanges.value = true;\n } else {\n delete unsavedUserConfirmations[app.id];\n if (isEmpty(unsavedApplications) && isEmpty(unsavedUserConfirmations)) {\n hasChanges.value = false;\n }\n }\n }\n\n watch(\n filterSelection,\n (value: string) => {\n const apps = applications;\n if (value === 'all') {\n for (let i = 0; i < apps.length; ++i) {\n toShow[apps[i].id] = true;\n }\n } else if (value === 'go') {\n for (let i = 0; i < apps.length; ++i) {\n if (apps[i].goForTest) {\n toShow[apps[i].id] = true;\n } else {\n toShow[apps[i].id] = false;\n }\n }\n } else if (value === 'nogo') {\n for (let i = 0; i < apps.length; ++i) {\n if (apps[i].goForTest) {\n toShow[apps[i].id] = false;\n } else {\n toShow[apps[i].id] = true;\n }\n }\n }\n\n paginate();\n dummy.value = !dummy.value;\n },\n );\n\n function rowClass(i: number): { [key: string]: boolean } {\n const classes = {\n 'even-row': false,\n 'odd-row': false,\n };\n\n if (i % 2 === 0) {\n classes['even-row'] = true;\n } else {\n classes['odd-row'] = true;\n }\n\n return classes;\n }\n\n async function updateApp(app: DisasterRecoveryTestApplicationDto, result?: (result: boolean) => void) {\n try {\n await DisasterRecoveryTestService.UpdateTestApplication(props.disasterRecoveryTest.id, app);\n snackbar.value = true;\n if (result) {\n result(true);\n }\n } catch (error) {\n //\n }\n }\n\n async function updateUserConfirmation(confirmation: DisasterRecoveryTestApplicationConfirmationUserDto, result?: (result: boolean) => void) {\n if (props.disasterRecoveryTest.id != null) {\n try {\n await DisasterRecoveryTestService.UpdateUserConfirmation(props.disasterRecoveryTest.id, confirmation);\n snackbar.value = true;\n if (result) {\n result(true);\n }\n } catch (error) {\n //\n }\n }\n }\n\n function changeState(app: DisasterRecoveryTestApplicationDto) {\n closed[app.id] = !closed[app.id];\n dummy.value = !dummy.value;\n }\n\n function exportData(type: string) {\n exportXlsx(DisasterRecoveryTestStatus.Confirmation, applications, type);\n }\n\n function expandAll() {\n for (let i = 0; i < applications.length; ++i) {\n closed[applications[i].id] = false;\n }\n dummy.value = !dummy.value;\n }\n\n function collapseAll() {\n for (let i = 0; i < applications.length; ++i) {\n closed[applications[i].id] = true;\n }\n dummy.value = !dummy.value;\n }\n\n async function snapshotTimes() {\n try {\n await DisasterRecoveryTestService.SnapshotTimes(props.disasterRecoveryTest);\n router.go(0);\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n }\n\n function moveToScheduling() {\n //\n const apps = props.disasterRecoveryTest.applications;\n const nogo: Array = [];\n\n if (apps) {\n for (let i = 0; i < apps.length; ++i) {\n if (!apps[i].goForTest) {\n nogo.push(apps[i].name);\n }\n }\n\n let text = '';\n\n if (nogo.length === 0) {\n text = i18n.t('testing.dr.allAppsGoMessage').toString();\n } else {\n text = i18n.t('testing.dr.nogoMessageText').toString() + '\\n';\n for (let i = 0; i < nogo.length; ++i) {\n text += '- ' + nogo[i] + '\\n';\n }\n }\n\n PopupMessageService.SetMessage({\n title: i18n.t('testing.dr.confirmation').toString(),\n text: text,\n buttons: [{\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n callback: async () => {\n if (props.disasterRecoveryTest != null) {\n try {\n await DisasterRecoveryTestService.GoForScheduling(props.disasterRecoveryTest);\n router.replace({ name: 'bcm.testing.dr.test', params: { testId: props.disasterRecoveryTest.id.toString() } });\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n }\n },\n close: () => true,\n },\n {\n id: 'no',\n color: 'error',\n text: i18n.t('no').toString(),\n close: () => true,\n }],\n });\n }\n //\n }\n\n return {\n filters,\n filterSelection,\n applications,\n searchValue,\n rowClass,\n updateApp,\n updateUserConfirmation,\n changeState,\n closed,\n hidden,\n dummy,\n exportData,\n expandAll,\n collapseAll,\n snackbar,\n snackbarText,\n moveToScheduling,\n snapshotTimes,\n applicationHasChanges,\n userConfirmationHasChanges,\n hasChanges,\n currentPage,\n totalPages,\n showPhase,\n otherPhases,\n icons: {\n ...icons,\n mdiChevronUp,\n mdiDatabaseExport,\n mdiExpandAll,\n mdiCollapseAll,\n mdiInformation,\n mdiCalendarMultiselect,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestConfirmationView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestConfirmationView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DisasterRecoveryTestConfirmationView.vue?vue&type=template&id=7977e54a&scoped=true&\"\nimport script from \"./DisasterRecoveryTestConfirmationView.vue?vue&type=script&lang=ts&\"\nexport * from \"./DisasterRecoveryTestConfirmationView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DisasterRecoveryTestConfirmationView.vue?vue&type=style&index=0&id=7977e54a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7977e54a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VPagination } from 'vuetify/lib/components/VPagination';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardText,VCol,VDivider,VExpandTransition,VIcon,VList,VListItem,VListItemTitle,VMenu,VPagination,VRow,VSelect,VSnackbar,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.valid && _vm.loaded)?_c('fragment',[_c('input',{ref:\"fileInput\",staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\"}}),_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"start\",\"align\":\"end\"}},[(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"300px\"},attrs:{\"disabled\":_vm.disabled,\"items\":_vm.filters,\"label\":_vm.$t('testing.dr.visibleApplications'),\"hide-details\":\"\"},model:{value:(_vm.filterSelection),callback:function ($$v) {_vm.filterSelection=$$v},expression:\"filterSelection\"}})],1):_vm._e(),_c('v-col',{staticClass:\"shrink\"},[_c('v-text-field',{staticStyle:{\"width\":\"300px\"},attrs:{\"label\":_vm.$t('testing.dr.searchApplications'),\"hide-details\":\"\",\"disabled\":_vm.disabled},model:{value:(_vm.searchValue),callback:function ($$v) {_vm.searchValue=$$v},expression:\"searchValue\"}})],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.disabled},on:{\"click\":_vm.expandAll}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiExpandAll)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('expandAll'))+\" \")],1)],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.disabled},on:{\"click\":_vm.collapseAll}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCollapseAll)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('collapseAll'))+\" \")],1)],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.disabled}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiDatabaseExport)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1)]}}],null,false,1367338734)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('detailed')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('testing.dr.export.details')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('simplified')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('testing.dr.export.simplified')))])],1)],1)],1)],1),(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.disasterRecoveryTest.status !== 4 || _vm.disabled},on:{\"click\":_vm.importData}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiDatabaseImport)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('systems.import.button'))+\" \")],1)],1):_vm._e(),(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.disabled}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiSourceBranch)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.phases'))+\" \")],1)]}}],null,false,2502828606)},[_c('v-list',_vm._l((_vm.otherPhases),function(p){return _c('v-list-item',{key:p.route,on:{\"click\":function($event){return _vm.showPhase(p)}}},[_c('v-list-item-title',[_vm._v(_vm._s(p.text))])],1)}),1)],1)],1):_vm._e(),(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.disasterRecoveryTest.status !== 4 || _vm.disabled},on:{\"click\":_vm.finishTest}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCalendarMultiselect)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.finishTest'))+\" \")],1)],1):_vm._e()],1),_c('v-row',[_c('v-col',[_vm._l((_vm.applications),function(app){return [(!(_vm.hidden[app.id] === true))?_c('disaster-test-finalization-line',{key:app.uuid,attrs:{\"test\":_vm.disasterRecoveryTest.id,\"app\":app,\"switch-open\":_vm.switchOpen,\"switch-closed\":_vm.switchClosed,\"dummy\":_vm.dummy,\"disabled\":_vm.disasterRecoveryTest.status !== 4},on:{\"has-changes\":_vm.hasChanges}}):_vm._e()]})],2)],1),_c('v-row',{staticClass:\"px-4\"},[_c('v-col',[_c('v-pagination',{attrs:{\"length\":_vm.totalPages,\"disabled\":_vm.disabled},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('disaster-test-application-line',{attrs:{\"app\":_vm.app,\"switch-open\":_vm.open,\"switch-closed\":_vm.close},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"end\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"mx-4 subtitle-2\",staticStyle:{\"width\":\"120px\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [(_vm.app.targetRto)?_c('div',_vm._g({},on),[_c('span',[_vm._v(_vm._s(_vm.$t('testing.dr.scheduling.rto', {name: _vm.app.targetRto, value: _vm.app.targetRtoValue})))]),(_vm.app.targetRtoValue != _vm.app.rtoValue)?_c('span',[_vm._v(\"*\")]):_vm._e()]):_c('div',_vm._g({},on),[_c('span',[_vm._v(_vm._s(_vm.$t('testing.dr.scheduling.rtoNotCalculated')))])])]}}])},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.targetRto', {name: _vm.app.targetRto, value: _vm.app.targetRtoValue}))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.finishedRto', {name: _vm.app.rto, value: _vm.app.rtoValue}))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.runningRto', {name: _vm.app.runningRto, value: _vm.app.runningRtoValue}))+\" \")])])],1),_c('v-col',{staticClass:\"mx-4 subtitle-2\",staticStyle:{\"width\":\"140px\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [(_vm.app.targetRpo)?_c('div',_vm._g({},on),[_c('span',_vm._g({},on),[_vm._v(_vm._s(_vm.$t('testing.dr.scheduling.rpo', {name: _vm.app.targetRpo, value: _vm.app.targetRpoValue})))]),(_vm.app.targetRpoValue != _vm.app.RpoValue)?_c('span',[_vm._v(\"*\")]):_vm._e()]):_c('div',_vm._g({},on),[_c('span',[_vm._v(_vm._s(_vm.$t('testing.dr.scheduling.rpoNotCalculated')))])])]}}])},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.targetRpo', {name:_vm.app.targetRpo, value: _vm.app.targetRpoValue}))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.finishedRpo', {name: _vm.app.rpo, value: _vm.app.rpoValue}))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.runningRpo', {name: _vm.app.runningRpo, value: _vm.app.runningRpoValue}))+\" \")])])],1),_c('v-col',{staticClass:\"mx-4 subtitle-2\"},[_c('v-text-field',{staticClass:\"centered-input\",staticStyle:{\"width\":\"100px\"},attrs:{\"type\":\"number\",\"label\":_vm.$i18n.t('testing.dr.finalization.testRto'),\"error-messages\":_vm.validationErrors['rto'],\"hide-details\":\"auto\",\"placeholder\":null,\"dense\":\"\",\"disabled\":_vm.disabled},on:{\"input\":_vm.change},model:{value:(_vm.app.testRto),callback:function ($$v) {_vm.$set(_vm.app, \"testRto\", $$v)},expression:\"app.testRto\"}})],1),_c('v-col',{staticClass:\"mx-4 subtitle-2\"},[_c('v-text-field',{staticClass:\"centered-input\",staticStyle:{\"width\":\"100px\"},attrs:{\"type\":\"number\",\"label\":_vm.$i18n.t('testing.dr.finalization.testRpo'),\"error-messages\":_vm.validationErrors['rpo'],\"hide-details\":\"\",\"dense\":\"\",\"disabled\":_vm.disabled},on:{\"input\":_vm.change},model:{value:(_vm.app.testRpo),callback:function ($$v) {_vm.$set(_vm.app, \"testRpo\", $$v)},expression:\"app.testRpo\"}})],1),_c('v-col',{staticClass:\"mx-4 subtitle-2\"},[_c('v-select',{staticClass:\"centered-input\",staticStyle:{\"width\":\"150px\"},attrs:{\"items\":_vm.testResults,\"label\":_vm.$i18n.t('testing.dr.finalization.testResult'),\"error-messages\":_vm.validationErrors['result'],\"clearable\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"disabled\":_vm.disabled},on:{\"change\":_vm.change},model:{value:(_vm.app.testResult),callback:function ($$v) {_vm.$set(_vm.app, \"testResult\", $$v)},expression:\"app.testResult\"}})],1),(!_vm.disabled)?_c('v-col',{staticClass:\"shrink pl-2\"},[_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"disabled\":!_vm.hasChanges || _vm.saveDisabled},on:{\"click\":_vm.saveChanges}},[_vm._v(\" Save \")])],1):_vm._e()],1)]},proxy:true},{key:\"subtitle\",fn:function(){return undefined},proxy:true},{key:\"default\",fn:function(){return [_c('v-row',{staticClass:\"grey--text text--darken-3 align-bottom mb-4\",attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-textarea',{attrs:{\"label\":_vm.$i18n.t('testing.dr.finalization.testComments'),\"rows\":\"2\",\"error-messages\":_vm.validationErrors['comments'],\"dense\":\"\",\"disabled\":_vm.disabled},on:{\"input\":_vm.change},model:{value:(_vm.app.testComments),callback:function ($$v) {_vm.$set(_vm.app, \"testComments\", $$v)},expression:\"app.testComments\"}})],1)],1),_c('disaster-test-testing-application-details',{attrs:{\"test\":_vm.test,\"app\":_vm.app,\"custom-class\":\"grey--text text--darken-1\",\"readonly\":\"\"}})]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{key:_vm.app.uuid,staticClass:\"px-2 py-0\",class:_vm.rowClass,attrs:{\"elevation\":\"0\"}},[_c('v-card-title',{staticClass:\"px-0 mx-0\"},[_c('v-row',{attrs:{\"justify\":\"space-between\",\"dense\":\"\"}},[_c('v-col',{staticClass:\"ma-0 font-weight-bold\",staticStyle:{\"width\":\"400px\",\"cursor\":\"pointer\"},attrs:{\"cols\":\"auto\"},on:{\"click\":function($event){_vm.closed = !_vm.closed}}},[_vm._v(\" \"+_vm._s(_vm.app.name)+\" \"),(_vm.app.ucmdbName || (_vm.app.modules && _vm.app.modules.length > 0))?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"medium\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.icons.mdiInformation)+\" \")])]}}],null,false,4080867315)},[(_vm.app.ucmdbName)?[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.ucmdbName'))+\" \"),_c('ul',[_c('li',[_vm._v(\" \"+_vm._s(_vm.app.ucmdbName)+\" \")])])])]:_vm._e(),((_vm.app.modules && _vm.app.modules.length > 0))?[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.modules'))+\" \")]),_c('ul',_vm._l((_vm.app.modules),function(m){return _c('li',{key:m},[_vm._v(\" \"+_vm._s(m)+\" \")])}),0)]:_vm._e()],2):_vm._e(),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"icon\":\"\",\"small\":\"\"}},[_c('v-icon',{class:{'rotated': _vm.closed}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiChevronUp)+\" \")])],1)],1),(_vm.$slots.title)?_c('v-col',{attrs:{\"cols\":\"auto\"}},[_vm._t(\"title\")],2):_vm._e()],1)],1),(_vm.$slots.subtitle)?_c('v-card-subtitle',{staticClass:\"px-0 ma-0\"},[_vm._t(\"subtitle\")],2):_vm._e(),_c('v-card-text',{staticClass:\"pa-0 ma-0\"},[_c('v-expand-transition',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.closed),expression:\"!closed\"}]},[_vm._t(\"default\")],2)])],1),_c('v-divider',{staticClass:\"pa-0\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { mdiChevronUp, mdiInformation } from '@mdi/js';\n\nexport default defineComponent({\n name: 'DisasterTestApplicationLine',\n\n props: {\n app: {\n type: Object,\n required: true,\n },\n\n switchClosed: {\n type: Boolean,\n required: true,\n },\n\n switchOpen: {\n type: Boolean,\n required: true,\n },\n\n rowClass: {\n type: Object,\n default: () => { return {}; },\n },\n },\n\n setup(props) {\n const closed = ref(true);\n\n watch(\n () => props.switchClosed,\n (value: boolean) => {\n if (value) {\n closed.value = true;\n }\n },\n {\n immediate: true,\n },\n );\n\n watch(\n () => props.switchOpen,\n (value: boolean) => {\n if (value) {\n closed.value = false;\n }\n },\n {\n immediate: true,\n },\n );\n\n return {\n closed,\n icons: {\n mdiInformation,\n mdiChevronUp,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterTestApplicationLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterTestApplicationLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DisasterTestApplicationLine.vue?vue&type=template&id=099187b3&scoped=true&\"\nimport script from \"./DisasterTestApplicationLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./DisasterTestApplicationLine.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DisasterTestApplicationLine.vue?vue&type=style&index=0&id=099187b3&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"099187b3\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardSubtitle,VCardText,VCardTitle,VCol,VDivider,VExpandTransition,VIcon,VRow,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('fragment',[_c('v-card',{staticClass:\"mb-4\",class:_vm.customClass,attrs:{\"flat\":\"\"}},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.itsdOfficers'))+\" \")]),_vm._l((_vm.app.itsdOfficers),function(user){return _c('testing-application-test-result',{key:user.username,attrs:{\"user\":user,\"readonly\":_vm.readonly},on:{\"save\":function($event){return _vm.saveItsdChanges(user, $event)},\"has-changes\":function($event){return _vm.$emit('has-changes', $event)}}})})],2),_c('v-card',{class:_vm.customClass,attrs:{\"flat\":\"\",\"disabled\":_vm.needItsd}},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.testingUsers'))+\" \")]),_vm._l((_vm.app.testUsers),function(user){return _c('testing-application-test-result',{key:user.username,attrs:{\"readonly\":_vm.readonly,\"disabled\":_vm.needItsd,\"user\":user},on:{\"save\":function($event){return _vm.saveTestUserChanges(user, $event)},\"has-changes\":function($event){return _vm.$emit('has-changes', $event)}}})})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{attrs:{\"align\":\"end\",\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink\",class:{'text-decoration-underline': _vm.user.currentUser, 'font-weight-bold': _vm.user.currentUser},attrs:{\"dense\":\"\"}},[_c('div',{staticStyle:{\"width\":\"500px\"}},[_c('v-icon',{attrs:{\"x-small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.mdiCircleMedium)+\" \")]),_vm._v(\" \"+_vm._s(_vm.user.user.info)+\" \")],1)]),_c('v-col',{staticClass:\"shrink\",attrs:{\"dense\":\"\"}},[(_vm.user.currentUser && !_vm.readonly)?_c('v-select',{staticClass:\"ma-0\",staticStyle:{\"width\":\"150px\"},attrs:{\"items\":_vm.selections,\"hide-details\":\"auto\",\"error-messages\":_vm.commentErrors,\"dense\":\"\",\"disabled\":_vm.disabled,\"color\":\"green\"},on:{\"change\":_vm.validate},model:{value:(_vm.user.testResult),callback:function ($$v) {_vm.$set(_vm.user, \"testResult\", $$v)},expression:\"user.testResult\"}}):_c('div',{staticStyle:{\"width\":\"150px\"}},[_vm._v(\" \"+_vm._s(_vm.translations[_vm.user.testResult])+\" \")])],1),_c('v-col',{staticClass:\"grow\",attrs:{\"dense\":\"\"}},[(_vm.user.currentUser && !_vm.readonly)?_c('v-text-field',{attrs:{\"label\":_vm.$t('testing.dr.comments'),\"dense\":\"\",\"full-width\":\"\",\"hide-details\":\"auto\",\"error-messages\":_vm.commentErrors,\"disabled\":_vm.disabled},on:{\"input\":_vm.validate},model:{value:(_vm.user.testComments),callback:function ($$v) {_vm.$set(_vm.user, \"testComments\", $$v)},expression:\"user.testComments\"}}):_c('div',[_vm._v(\" \"+_vm._s(_vm.user.testComments)+\" \")])],1),(_vm.user.currentUser && !_vm.disabled && !_vm.readonly)?_c('div',{staticClass:\"pl-2\"},[_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"disabled\":_vm.saveDisabled},on:{\"click\":_vm.click}},[_vm._v(\" Save \")])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport { mdiCircleMedium } from '@mdi/js';\nimport { DisasterRecoveryTestResult } from '@/dtos/bcm/testing/DisasterRecoveryTestDetailsDto';\n\nexport default defineComponent({\n name: 'TestingApplicationTestResult',\n\n props: {\n user: {\n type: Object,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const commentErrors = ref(null);\n\n const selections = ref([\n {\n text: 'Success',\n value: DisasterRecoveryTestResult.Pass,\n },\n {\n text: 'Partial',\n value: DisasterRecoveryTestResult.Partial,\n },\n {\n text: 'Fail',\n value: DisasterRecoveryTestResult.Fail,\n },\n ]);\n\n const translations = {\n [DisasterRecoveryTestResult.Pass]: 'Success',\n [DisasterRecoveryTestResult.Partial]: 'Partial',\n [DisasterRecoveryTestResult.Fail]: 'Fail',\n [DisasterRecoveryTestResult.Unanswered]: '',\n };\n\n const originalTestResult = ref(props.user.testResult);\n const originalComment = ref(props.user.testComments);\n\n const saveDisabled = computed(() => {\n if (props.user.testResult !== originalTestResult.value || props.user.testComments !== originalComment.value) {\n return false;\n }\n return true;\n });\n\n watch(\n () => props.user,\n () => {\n originalTestResult.value = props.user.testResult;\n originalComment.value = props.user.testComments;\n },\n );\n\n watch(\n saveDisabled,\n (value) => {\n emit('has-changes', !value);\n },\n );\n\n function click() {\n if (validate()) {\n emit('save', (result: boolean) => {\n if (result) {\n originalTestResult.value = props.user.testResult;\n originalComment.value = props.user.testComments;\n }\n });\n }\n }\n\n function validate(): boolean {\n if (props.user.testResult < DisasterRecoveryTestResult.Pass) {\n if (props.user.testComments && props.user.testComments.trim() && props.user.testComments.trim().length > 5) {\n commentErrors.value = null;\n return true;\n } else {\n commentErrors.value = 'Comments are required';\n return false;\n }\n } else {\n commentErrors.value = null;\n return true;\n }\n }\n\n return {\n click,\n saveDisabled,\n commentErrors,\n validate,\n selections,\n translations,\n mdiCircleMedium,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TestingApplicationTestResult.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TestingApplicationTestResult.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TestingApplicationTestResult.vue?vue&type=template&id=86c9f35a&scoped=true&\"\nimport script from \"./TestingApplicationTestResult.vue?vue&type=script&lang=ts&\"\nexport * from \"./TestingApplicationTestResult.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"86c9f35a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VIcon,VRow,VSelect,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport TestingApplicationTestResult from './TestingApplicationTestResult.vue';\nimport { DisasterRecoveryTestApplicationDto, DisasterRecoveryTestApplicationItsdOfficerDto, DisasterRecoveryTestApplicationTestUserDto, DisasterRecoveryTestResult } from '@/dtos/bcm/testing/DisasterRecoveryTestDetailsDto';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { mdiCircleMedium } from '@mdi/js';\nimport DisasterRecoveryTestService from '@/services/DisasterRecoveryTestService';\nimport router from '@/router';\nimport SnackbarMessageService from '@/services/SnackbarMessageService';\nimport i18n from '@/i18n';\n\nexport default defineComponent({\n name: 'DisasterTestTestingApplicationDetails',\n\n components: {\n TestingApplicationTestResult,\n },\n\n props: {\n readonly: {\n type: Boolean,\n default: false,\n },\n\n app: {\n type: Object as () => DisasterRecoveryTestApplicationDto,\n required: true,\n },\n\n customClass: {\n type: [Object, String],\n required: false,\n default: '',\n },\n },\n\n setup(props) {\n const needItsd = ref(false);\n\n if (props.app.itsdOfficers && props.app.itsdOfficers.length > 0) {\n for (let i = 0; i < props.app.itsdOfficers.length; ++i) {\n if (props.app.itsdOfficers[i].testResult === DisasterRecoveryTestResult.Fail) {\n needItsd.value = true;\n break;\n }\n }\n }\n\n async function saveItsdChanges(user: DisasterRecoveryTestApplicationItsdOfficerDto, result: (result: boolean) => void) {\n try {\n const testId = parseInt(router.currentRoute.params.testId);\n await DisasterRecoveryTestService.UpdateItsdTestAnswer(testId, props.app.id, {\n username: user.user.username,\n testResult: user.testResult,\n testComments: user.testComments,\n });\n\n SnackbarMessageService.SetMessage({ text: i18n.t('saved').toString() });\n\n if (result) {\n result(true);\n }\n\n if (user.testResult > DisasterRecoveryTestResult.Fail) {\n needItsd.value = false;\n } else if (user.testResult === DisasterRecoveryTestResult.Fail) {\n needItsd.value = true;\n }\n } catch (error) {\n result(false);\n }\n }\n\n async function saveTestUserChanges(user: DisasterRecoveryTestApplicationTestUserDto, result: (result: boolean) => void) {\n try {\n const testId = parseInt(router.currentRoute.params.testId);\n await DisasterRecoveryTestService.UpdateTestUserTestAnswer(testId, props.app.id, {\n username: user.user.username,\n testResult: user.testResult,\n testComments: user.testComments,\n });\n\n SnackbarMessageService.SetMessage({ text: i18n.t('saved').toString() });\n\n if (result) {\n result(true);\n }\n\n if (user.testResult > DisasterRecoveryTestResult.Fail) {\n needItsd.value = false;\n } else if (user.testResult === DisasterRecoveryTestResult.Fail) {\n needItsd.value = true;\n }\n } catch (error) {\n result(false);\n }\n }\n\n return {\n mdiCircleMedium,\n needItsd,\n saveItsdChanges,\n saveTestUserChanges,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterTestTestingApplicationDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterTestTestingApplicationDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DisasterTestTestingApplicationDetails.vue?vue&type=template&id=e3fd381e&scoped=true&\"\nimport script from \"./DisasterTestTestingApplicationDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./DisasterTestTestingApplicationDetails.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e3fd381e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VCard})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { DisasterRecoveryTestApplicationDto, DisasterRecoveryTestApplicationResultsDto, DisasterRecoveryTestResult } from '@/dtos/bcm/testing/DisasterRecoveryTestDetailsDto';\nimport i18n from '@/i18n';\nimport DisasterRecoveryTestService from '@/services/DisasterRecoveryTestService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport SnackbarMessageService from '@/services/SnackbarMessageService';\nimport { defineComponent, ref, watch, nextTick, reactive } from '@vue/composition-api';\nimport DisasterTestApplicationLine from './DisasterTestApplicationLine.vue';\nimport DisasterTestTestingApplicationDetails from './DisasterTestTestingApplicationDetails.vue';\n\nexport default defineComponent({\n name: 'DisasterTestFinalizationLine',\n\n components: {\n DisasterTestApplicationLine,\n DisasterTestTestingApplicationDetails,\n },\n\n props: {\n app: {\n type: Object as () => DisasterRecoveryTestApplicationDto,\n required: true,\n },\n\n test: {\n type: Number,\n required: true,\n },\n\n switchClosed: {\n type: Boolean,\n required: true,\n },\n\n switchOpen: {\n type: Boolean,\n required: true,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n },\n\n setup(props, { emit }) {\n const testResults = ref([\n {\n text: 'Success',\n value: DisasterRecoveryTestResult.Pass,\n },\n {\n text: 'Partial',\n value: DisasterRecoveryTestResult.Partial,\n },\n {\n text: 'Fail',\n value: DisasterRecoveryTestResult.Fail,\n },\n ]);\n\n const hasChanges = ref(false);\n const saveDisabled = ref(false);\n\n const open = ref(false);\n const close = ref(false);\n\n let original: DisasterRecoveryTestApplicationResultsDto = {\n testResult: props.app.testResult,\n testComments: props.app.testComments,\n testRto: props.app.testRto,\n testRpo: props.app.testRpo,\n };\n\n watch(\n hasChanges,\n (value) => {\n emit('has-changes', props.app.id, value);\n },\n );\n\n watch(\n () => props.app,\n (app) => {\n original.testComments = app.testComments;\n original.testResult = app.testResult;\n original.testRto = app.testRto;\n original.testRpo = app.testRpo;\n },\n {\n immediate: true,\n },\n );\n\n watch(\n () => props.switchOpen,\n (value) => { open.value = value; },\n { immediate: true },\n );\n\n watch(\n () => props.switchClosed,\n (value) => { close.value = value; },\n { immediate: true },\n );\n\n const validationErrors = reactive({\n result: '',\n rto: '',\n rpo: '',\n comments: '',\n });\n\n function validate() {\n let error = false;\n\n if (props.app.testRto && props.app.testRto < 0) {\n validationErrors.rto = 'Value must be >= 0';\n error = true;\n } else {\n validationErrors.rto = '';\n }\n\n if (props.app.testRpo && props.app.testRpo < 0) {\n validationErrors.rpo = 'Value must be >= 0';\n error = true;\n } else {\n validationErrors.rpo = '';\n }\n\n if (props.app.testResult > DisasterRecoveryTestResult.Unanswered && props.app.testResult < DisasterRecoveryTestResult.Pass) {\n if (!props.app.testComments || props.app.testComments.length < 5) {\n validationErrors.comments = 'Comments are mandatory!';\n error = true;\n open.value = true;\n nextTick(() => { open.value = false; });\n } else {\n validationErrors.comments = '';\n }\n } else {\n validationErrors.comments = '';\n }\n\n saveDisabled.value = error;\n }\n\n function change() {\n if (props.app.testRto != null && props.app.testRto !== 0 && !props.app.testRto) {\n props.app.testRto = null;\n }\n\n if (props.app.testRpo != null && props.app.testRpo !== 0 && !props.app.testRpo) {\n props.app.testRpo = null;\n }\n\n if (props.app.testResult == null) {\n props.app.testResult = 0;\n }\n\n if (props.app.testResult !== original.testResult) {\n hasChanges.value = true;\n } else if (props.app.testComments !== original.testComments) {\n hasChanges.value = true;\n } else if (props.app.testRto !== original.testRto) {\n hasChanges.value = true;\n } else if (props.app.testRpo !== original.testRpo) {\n hasChanges.value = true;\n } else {\n hasChanges.value = false;\n }\n\n validate();\n }\n\n async function saveChanges() {\n try {\n const result: DisasterRecoveryTestApplicationResultsDto = {\n testResult: props.app.testResult,\n testComments: props.app.testComments,\n testRto: props.app.testRto,\n testRpo: props.app.testRpo,\n };\n await DisasterRecoveryTestService.UpdateAppTestResult(props.test, props.app.id, result);\n\n SnackbarMessageService.SetMessage({ text: i18n.t('saved').toString() });\n\n original = result;\n hasChanges.value = false;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n }\n\n return {\n testResults,\n hasChanges,\n saveDisabled,\n change,\n saveChanges,\n validationErrors,\n open,\n close,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterTestFinalizationLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterTestFinalizationLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DisasterTestFinalizationLine.vue?vue&type=template&id=20029f33&scoped=true&\"\nimport script from \"./DisasterTestFinalizationLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./DisasterTestFinalizationLine.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DisasterTestFinalizationLine.vue?vue&type=style&index=0&id=20029f33&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"20029f33\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCol,VRow,VSelect,VTextField,VTextarea,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { DisasterRecoveryTestApplicationDto, DisasterRecoveryTestDetailsDto, DisasterRecoveryTestResult } from '@/dtos/bcm/testing/DisasterRecoveryTestDetailsDto';\nimport { mdiCalendarMultiselect } from '@mdi/js';\nimport { DisasterRecoveryTestStatus } from '@/dtos/bcm/testing/DisasterRecoveryTestDto';\nimport DisasterTestFinalizationLine from '@/components/bcm/testing/dr/DisasterTestFinalizationLine.vue';\nimport testing from './testing';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DisasterRecoveryTestService from '@/services/DisasterRecoveryTestService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport router from '@/router';\n\nexport default defineComponent({\n name: 'DisasterRecoveryTestFinalizationView',\n\n components: {\n DisasterTestFinalizationLine,\n },\n\n props: {\n disasterRecoveryTest: {\n type: Object as () => DisasterRecoveryTestDetailsDto,\n required: true,\n },\n },\n\n setup(props, { root, emit }) {\n function filter(app: DisasterRecoveryTestApplicationDto, filterValue: string): boolean {\n if (filterValue === 'all') {\n return true;\n } else {\n if (filterValue === 'fail' || filterValue === 'partial' || filterValue === 'success' || filterValue === 'unanswered') {\n if (filterValue === 'fail' && app.testResult === DisasterRecoveryTestResult.Fail) {\n return true;\n } else if (filterValue === 'partial' && app.testResult === DisasterRecoveryTestResult.Partial) {\n return true;\n } else if (filterValue === 'success' && app.testResult === DisasterRecoveryTestResult.Pass) {\n return true;\n } else if (filterValue === 'unanswered' && app.testResult === DisasterRecoveryTestResult.Unanswered) {\n return true;\n }\n }\n if (filterValue === 'itsdFail' || filterValue === 'itsdPartial' || filterValue === 'itsdSuccess') {\n let itsdStatus = DisasterRecoveryTestResult.Pass;\n\n if (app.itsdOfficers && app.itsdOfficers.length > 0) {\n for (let i = 0; i < app.itsdOfficers.length; ++i) {\n if (itsdStatus > app.itsdOfficers[i].testResult) {\n itsdStatus = app.itsdOfficers[i].testResult;\n }\n }\n }\n\n if (filterValue === 'itsdFail' && itsdStatus === DisasterRecoveryTestResult.Fail) {\n return true;\n } else if (filterValue === 'itsdPartial' && itsdStatus === DisasterRecoveryTestResult.Partial) {\n return true;\n } else if (filterValue === 'itsdSuccess' && itsdStatus === DisasterRecoveryTestResult.Pass) {\n return true;\n }\n } else if (filterValue === 'usersUnanswered' || filterValue === 'usersFail' || filterValue === 'usersPartial' || filterValue === 'usersSuccess') {\n let answered = false;\n let usersStatus: DisasterRecoveryTestResult | null = null;\n\n if (app.testUsers && app.testUsers.length > 0) {\n for (let i = 0; i < app.testUsers.length; ++i) {\n if (app.testUsers[i].testResult === DisasterRecoveryTestResult.Unanswered) {\n continue;\n }\n\n answered = true;\n\n if (usersStatus == null) {\n usersStatus = app.testUsers[i].testResult;\n } else if (usersStatus > app.testUsers[i].testResult) {\n usersStatus = app.testUsers[i].testResult;\n }\n }\n }\n\n if (filterValue === 'usersUnanswered' && answered === false) {\n return true;\n } else if (filterValue === 'usersFail' && usersStatus === DisasterRecoveryTestResult.Fail) {\n return true;\n } else if (filterValue === 'usersPartial' && usersStatus === DisasterRecoveryTestResult.Partial) {\n return true;\n } else if (filterValue === 'usersSuccess' && usersStatus === DisasterRecoveryTestResult.Pass) {\n return true;\n }\n }\n\n return false;\n }\n }\n\n const {\n valid,\n loaded,\n applications,\n searchValue,\n filterSelection,\n hidden,\n switchOpen,\n switchClosed,\n dummy,\n expandAll,\n collapseAll,\n currentPage,\n totalPages,\n otherPhases,\n showPhase,\n icons,\n exportXlsx,\n } = testing(props, filter);\n\n const filters = ref([\n { value: 'all', text: i18n.t('testing.dr.filter.all') },\n { value: 'fail', text: i18n.t('testing.dr.filter.fail') },\n { value: 'partial', text: i18n.t('testing.dr.filter.partial') },\n { value: 'success', text: i18n.t('testing.dr.filter.success') },\n { value: 'unanswered', text: i18n.t('testing.dr.filter.unanswered') },\n { value: 'itsdFail', text: i18n.t('testing.dr.filter.itsdFail') },\n { value: 'itsdPartial', text: i18n.t('testing.dr.filter.itsdPartial') },\n { value: 'itsdSuccess', text: i18n.t('testing.dr.filter.itsdSuccess') },\n { value: 'usersFail', text: i18n.t('testing.dr.filter.usersFail') },\n { value: 'usersPartial', text: i18n.t('testing.dr.filter.usersPartial') },\n { value: 'usersSuccess', text: i18n.t('testing.dr.filter.usersSuccess') },\n ]);\n\n async function exportData(type: string) {\n exportXlsx(DisasterRecoveryTestStatus.Finalization, applications, type);\n }\n\n function finishTest() {\n //\n const apps = props.disasterRecoveryTest.applications;\n const nogo: Array = [];\n\n if (apps) {\n for (let i = 0; i < apps.length; ++i) {\n if (apps[i].testResult === DisasterRecoveryTestResult.Unanswered) {\n nogo.push(apps[i].name + ' (Test Result empty)');\n }\n\n if (apps[i].testResult > DisasterRecoveryTestResult.Unanswered && apps[i].testResult < DisasterRecoveryTestResult.Pass && (apps[i].testComments == null || !apps[i].testComments.trim())) {\n nogo.push(apps[i].name + ' (Comments are required)');\n }\n }\n\n if (nogo.length > 0) {\n let text = i18n.t('testing.dr.finalization.notAnswered').toString() + '\\n';\n for (let i = 0; i < nogo.length; i++) {\n text += '- ' + nogo[i] + '\\n';\n }\n\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text,\n });\n\n return;\n }\n }\n PopupMessageService.SetMessage({\n title: i18n.t('testing.dr.confirmation').toString(),\n text: i18n.t('testing.dr.scheduling.moveToFinishMessage').toString(),\n buttons: [{\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n callback: async () => {\n if (props.disasterRecoveryTest != null) {\n try {\n await DisasterRecoveryTestService.FinishTest(props.disasterRecoveryTest);\n router.replace({ name: 'bcm.testing.dr.test.finished', params: { testId: props.disasterRecoveryTest.id.toString() } });\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n }\n },\n close: () => true,\n },\n {\n id: 'no',\n color: 'error',\n text: i18n.t('no').toString(),\n close: () => true,\n }],\n });\n }\n\n const disabled = ref(false);\n\n const changes: { [key: number]: boolean } = {};\n function hasChanges(appId: number, value: boolean) {\n if (value) {\n changes[appId] = true;\n } else {\n delete changes[appId];\n }\n\n disabled.value = Object.keys(changes).length > 0;\n }\n\n const fileInput = ref(null);\n let fi: HTMLInputElement;\n\n function importData() {\n fi.click();\n }\n\n watch(\n fileInput,\n () => {\n if (fileInput.value != null) {\n fi = fileInput.value as unknown as HTMLInputElement;\n fi.addEventListener('change', async function () {\n if (fi.files != null) {\n const busy = BusyIndicatorService.SetBusy('Uploading...');\n const fd = new FormData();\n fd.append('file', fi.files[0]);\n root.$forceUpdate();\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var res = await DisasterRecoveryTestService.UploadTestTimes(props.disasterRecoveryTest.id, fd) as any;\n let title = i18n.t('success').toString();\n let text = i18n.t('systems.fileImportedSuccessfully').toString();\n if (res.data != null && Array.isArray(res.data.warnings) && res.data.warnings.length > 0) {\n title = i18n.t('warning').toString();\n text = i18n.t('systems.fileImportedWithWarnings').toString();\n for (let i = 0; i < res.data.warnings.length; ++i) {\n text += '\\n' + res.data.warnings[i];\n }\n }\n\n PopupMessageService.SetMessage({\n title,\n text,\n });\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n\n fi.value = '';\n BusyIndicatorService.RemoveBusy(busy);\n emit('reload');\n }\n });\n }\n },\n );\n\n return {\n status: DisasterRecoveryTestStatus.Testing,\n exportData,\n finishTest,\n hasChanges,\n disabled,\n fileInput,\n\n filters,\n importData,\n\n valid,\n loaded,\n applications,\n searchValue,\n filterSelection,\n hidden,\n switchOpen,\n switchClosed,\n dummy,\n expandAll,\n collapseAll,\n currentPage,\n totalPages,\n otherPhases,\n showPhase,\n icons: {\n mdiCalendarMultiselect,\n ...icons,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestFinalizationView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestFinalizationView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DisasterRecoveryTestFinalizationView.vue?vue&type=template&id=b13b4b42&scoped=true&\"\nimport script from \"./DisasterRecoveryTestFinalizationView.vue?vue&type=script&lang=ts&\"\nexport * from \"./DisasterRecoveryTestFinalizationView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b13b4b42\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VPagination } from 'vuetify/lib/components/VPagination';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VIcon,VList,VListItem,VListItemTitle,VMenu,VPagination,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.valid && _vm.loaded)?_c('fragment',[_c('input',{ref:\"fileInput\",staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"accept\":\".docx\"}}),_c('v-row',{staticClass:\"mb-2\"},[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('pd-doughnut',{attrs:{\"datasets\":_vm.testedGraph.datasets,\"labels\":_vm.testedGraph.labels}}),_c('div',{staticClass:\"text-center subtitle-2\"},[_vm._v(\" Systems Tested \")])],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('pd-doughnut',{attrs:{\"datasets\":_vm.resultsGraph.datasets,\"labels\":_vm.resultsGraph.labels}}),_c('div',{staticClass:\"text-center subtitle-2\"},[_vm._v(\" Test Results \")])],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('pd-doughnut',{attrs:{\"datasets\":_vm.failsGraph.datasets,\"labels\":_vm.failsGraph.labels}}),_c('div',{staticClass:\"text-center subtitle-2\"},[_vm._v(\" Unsuccessful Reason \")])],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('pd-bar-chart',{attrs:{\"datasets\":_vm.targetsGraph.datasets,\"labels\":_vm.targetsGraph.labels,\"options\":_vm.targetsGraph.options}}),_c('div',{staticClass:\"text-center subtitle-2\"},[_vm._v(\" Targets \")])],1)],1),_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"start\",\"align\":\"end\"}},[(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"300px\"},attrs:{\"items\":_vm.filters,\"label\":_vm.$t('testing.dr.visibleApplications'),\"hide-details\":\"\"},model:{value:(_vm.filterSelection),callback:function ($$v) {_vm.filterSelection=$$v},expression:\"filterSelection\"}})],1):_vm._e(),_c('v-col',{staticClass:\"shrink\"},[_c('v-text-field',{staticStyle:{\"width\":\"300px\"},attrs:{\"label\":_vm.$t('testing.dr.searchApplications'),\"hide-details\":\"\"},model:{value:(_vm.searchValue),callback:function ($$v) {_vm.searchValue=$$v},expression:\"searchValue\"}})],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.expandAll}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiExpandAll)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('expandAll'))+\" \")],1)],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.collapseAll}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCollapseAll)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('collapseAll'))+\" \")],1)],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiDatabaseExport)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1)]}}],null,false,1384323064)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('detailed')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('testing.dr.export.details')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('simplified')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('testing.dr.export.simplified')))])],1),_c('v-list-item',{on:{\"click\":_vm.exportDocument}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('testing.dr.export.document')))])],1)],1)],1)],1),(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiSourceBranch)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.phases'))+\" \")],1)]}}],null,false,420318248)},[_c('v-list',_vm._l((_vm.otherPhases),function(p){return _c('v-list-item',{key:p.route,on:{\"click\":function($event){return _vm.showPhase(p)}}},[_c('v-list-item-title',[_vm._v(_vm._s(p.text))])],1)}),1)],1)],1):_vm._e()],1),_c('v-row',[_c('v-col',[_vm._l((_vm.applications),function(app){return [(!(_vm.hidden[app.id] === true))?_c('disaster-test-finished-line',{key:app.uuid,attrs:{\"test\":_vm.disasterRecoveryTest.id,\"app\":app,\"switch-open\":_vm.switchOpen,\"switch-closed\":_vm.switchClosed,\"dummy\":_vm.dummy}}):_vm._e()]})],2)],1),_c('v-row',{staticClass:\"px-4\"},[_c('v-col',[_c('v-pagination',{attrs:{\"length\":_vm.totalPages},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('disaster-test-application-line',{attrs:{\"app\":_vm.app,\"switch-open\":_vm.open,\"switch-closed\":_vm.close},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [(_vm.app.goForTest)?_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"end\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"mx-4 subtitle-2\",staticStyle:{\"width\":\"120px\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [(_vm.app.targetRto)?_c('div',_vm._g({},on),[_c('span',[_vm._v(_vm._s(_vm.$t('testing.dr.scheduling.rto', {name: _vm.app.targetRto, value: _vm.app.targetRtoValue})))]),(_vm.app.targetRtoValue != _vm.app.rtoValue)?_c('span',[_vm._v(\"*\")]):_vm._e()]):_c('div',_vm._g({},on),[_c('span',[_vm._v(_vm._s(_vm.$t('testing.dr.scheduling.rtoNotCalculated')))])])]}}],null,false,1074953407)},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.targetRto', {name: _vm.app.targetRto, value: _vm.app.targetRtoValue}))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.finishedRto', {name: _vm.app.rto, value: _vm.app.rtoValue}))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.runningRto', {name: _vm.app.runningRto, value: _vm.app.runningRtoValue}))+\" \")])])],1),_c('v-col',{staticClass:\"mx-4 subtitle-2\",staticStyle:{\"width\":\"140px\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [(_vm.app.targetRpo)?_c('div',_vm._g({},on),[_c('span',_vm._g({},on),[_vm._v(_vm._s(_vm.$t('testing.dr.scheduling.rpo', {name: _vm.app.targetRpo, value: _vm.app.targetRpoValue})))]),(_vm.app.targetRpoValue != _vm.app.RpoValue)?_c('span',[_vm._v(\"*\")]):_vm._e()]):_c('div',_vm._g({},on),[_c('span',[_vm._v(_vm._s(_vm.$t('testing.dr.scheduling.rpoNotCalculated')))])])]}}],null,false,2334954469)},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.targetRpo', {name:_vm.app.targetRpo, value: _vm.app.targetRpoValue}))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.finishedRpo', {name: _vm.app.rpo, value: _vm.app.rpoValue}))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.runningRpo', {name: _vm.app.runningRpo, value: _vm.app.runningRpoValue}))+\" \")])])],1),_c('v-col',{staticClass:\"mx-4 subtitle-2\"},[_c('v-text-field',{staticClass:\"centered-input\",staticStyle:{\"width\":\"100px\"},attrs:{\"type\":\"number\",\"label\":_vm.$i18n.t('testing.dr.finalization.testRto'),\"hide-details\":\"\",\"placeholder\":null,\"dense\":\"\",\"disabled\":\"\"},model:{value:(_vm.app.testRto),callback:function ($$v) {_vm.$set(_vm.app, \"testRto\", $$v)},expression:\"app.testRto\"}})],1),_c('v-col',{staticClass:\"mx-4 subtitle-2\"},[_c('v-text-field',{staticClass:\"centered-input\",staticStyle:{\"width\":\"100px\"},attrs:{\"type\":\"number\",\"label\":_vm.$i18n.t('testing.dr.finalization.testRpo'),\"hide-details\":\"\",\"dense\":\"\",\"disabled\":\"\"},model:{value:(_vm.app.testRpo),callback:function ($$v) {_vm.$set(_vm.app, \"testRpo\", $$v)},expression:\"app.testRpo\"}})],1),_c('v-col',{staticClass:\"mx-4 subtitle-2\"},[_c('v-select',{staticClass:\"centered-input\",staticStyle:{\"width\":\"150px\"},attrs:{\"items\":_vm.testResults,\"label\":_vm.$i18n.t('testing.dr.finalization.testResult'),\"hide-details\":\"\",\"dense\":\"\",\"disabled\":\"\"},model:{value:(_vm.app.testResult),callback:function ($$v) {_vm.$set(_vm.app, \"testResult\", $$v)},expression:\"app.testResult\"}})],1)],1):_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"end\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"mr-2\"},[_c('v-label',{attrs:{\"disabled\":\"\"}},[_c('span',{staticStyle:{\"width\":\"155px\"}},[_vm._v(\" \"+_vm._s(_vm.$i18n.t('testing.dr.finished.notTested'))+\" \")])])],1)],1)]},proxy:true},{key:\"subtitle\",fn:function(){return undefined},proxy:true},{key:\"default\",fn:function(){return [(_vm.app.goForTest)?_c('v-row',{staticClass:\"grey--text text--darken-3 align-bottom mb-4\",attrs:{\"dense\":\"\"}},[_c('v-col',[_c('v-textarea',{attrs:{\"label\":_vm.$i18n.t('testing.dr.finalization.testComments'),\"rows\":\"2\",\"dense\":\"\",\"readonly\":\"\"},model:{value:(_vm.app.testComments),callback:function ($$v) {_vm.$set(_vm.app, \"testComments\", $$v)},expression:\"app.testComments\"}})],1)],1):_vm._e(),(_vm.app.goForTest)?_c('disaster-test-testing-application-details',{attrs:{\"test\":_vm.test,\"app\":_vm.app,\"custom-class\":\"grey--text text--darken-1\",\"readonly\":\"\"}}):[_c('v-textarea',{attrs:{\"label\":_vm.$i18n.t('testing.dr.finalization.testComments'),\"rows\":\"2\",\"dense\":\"\",\"readonly\":\"\"},model:{value:(_vm.app.confirmationComments),callback:function ($$v) {_vm.$set(_vm.app, \"confirmationComments\", $$v)},expression:\"app.confirmationComments\"}}),_c('testing-user-group',{attrs:{\"name\":_vm.$t('testing.dr.businessOwners'),\"group\":_vm.app.businessOwners,\"disabled\":\"\"}}),_c('testing-user-group',{attrs:{\"name\":_vm.$t('testing.dr.itsdOfficers'),\"group\":_vm.app.itsdOfficers,\"disabled\":\"\"}}),_c('testing-user-group',{attrs:{\"name\":_vm.$t('testing.dr.serviceOwners'),\"group\":_vm.app.serviceOwners,\"disabled\":\"\"}}),_c('testing-user-group',{attrs:{\"name\":_vm.$t('testing.dr.applicationOwners'),\"group\":_vm.app.applicationOwners,\"disabled\":\"\"}})]]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { DisasterRecoveryTestApplicationDto, DisasterRecoveryTestResult } from '@/dtos/bcm/testing/DisasterRecoveryTestDetailsDto';\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport DisasterTestApplicationLine from './DisasterTestApplicationLine.vue';\nimport DisasterTestTestingApplicationDetails from './DisasterTestTestingApplicationDetails.vue';\nimport TestingUserGroup from '@/components/bcm/testing/dr/TestingUserGroup.vue';\n\nexport default defineComponent({\n name: 'DisasterTestFinishedLine',\n\n components: {\n DisasterTestApplicationLine,\n DisasterTestTestingApplicationDetails,\n TestingUserGroup,\n },\n\n props: {\n app: {\n type: Object as () => DisasterRecoveryTestApplicationDto,\n required: true,\n },\n\n test: {\n type: Number,\n required: true,\n },\n\n switchClosed: {\n type: Boolean,\n required: true,\n },\n\n switchOpen: {\n type: Boolean,\n required: true,\n },\n },\n\n setup(props) {\n const testResults = ref([\n {\n text: 'Success',\n value: DisasterRecoveryTestResult.Pass,\n },\n {\n text: 'Partial',\n value: DisasterRecoveryTestResult.Partial,\n },\n {\n text: 'Fail',\n value: DisasterRecoveryTestResult.Fail,\n },\n ]);\n\n const open = ref(false);\n const close = ref(false);\n\n watch(\n () => props.switchOpen,\n (value) => { open.value = value; },\n { immediate: true },\n );\n\n watch(\n () => props.switchClosed,\n (value) => { close.value = value; },\n { immediate: true },\n );\n\n return {\n testResults,\n open,\n close,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterTestFinishedLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterTestFinishedLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DisasterTestFinishedLine.vue?vue&type=template&id=b4087d74&scoped=true&\"\nimport script from \"./DisasterTestFinishedLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./DisasterTestFinishedLine.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DisasterTestFinishedLine.vue?vue&type=style&index=0&id=b4087d74&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b4087d74\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VLabel } from 'vuetify/lib/components/VLabel';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCol,VLabel,VRow,VSelect,VTextField,VTextarea,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('canvas',{ref:\"draw\",staticStyle:{\"background-color\":\"#ffffff\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport Chart from 'chart.js';\n\nexport interface DoughnutData {\n datasets: Array,\n labels: Array,\n colors: Array\n}\n\nexport default defineComponent({\n name: 'PdDoughnut',\n\n props: {\n labels: {\n type: Array as () => Array,\n default: () => [],\n },\n\n datasets: {\n type: Array as () => Array,\n default: () => [],\n },\n\n options: {\n type: Object,\n default: () => Chart.defaults.doughnut,\n },\n },\n\n setup(props) {\n const draw = ref(null);\n\n watch(\n draw,\n () => {\n if (draw.value != null) {\n const options: Chart.ChartConfiguration = {\n type: 'bar',\n data: {\n datasets: props.datasets,\n labels: props.labels,\n },\n options: props.options,\n };\n\n // eslint-disable-next-line\n new Chart(draw.value as unknown as HTMLCanvasElement, options);\n }\n },\n { immediate: true },\n );\n\n return {\n draw,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdBarChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdBarChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdBarChart.vue?vue&type=template&id=14ee2109&scoped=true&\"\nimport script from \"./PdBarChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdBarChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"14ee2109\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('canvas',{ref:\"draw\",staticStyle:{\"background-color\":\"#ffffff\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport Chart from 'chart.js';\n\nexport interface DoughnutData {\n datasets: Array,\n labels: Array,\n colors: Array\n}\n\nexport default defineComponent({\n name: 'PdDoughnut',\n\n props: {\n labels: {\n type: Array as () => Array,\n default: () => [],\n },\n\n datasets: {\n type: Array as () => Array,\n default: () => [],\n },\n\n options: {\n type: Object,\n default: () => Chart.defaults.doughnut,\n },\n },\n\n setup(props) {\n const draw = ref(null);\n\n watch(\n draw,\n () => {\n if (draw.value != null) {\n const options: Chart.ChartConfiguration = {\n type: 'doughnut',\n data: {\n datasets: props.datasets,\n labels: props.labels,\n },\n options: props.options,\n };\n\n // eslint-disable-next-line\n new Chart(draw.value as unknown as HTMLCanvasElement, options);\n }\n },\n { immediate: true },\n );\n\n return {\n draw,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDoughnut.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdDoughnut.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdDoughnut.vue?vue&type=template&id=72347355&scoped=true&\"\nimport script from \"./PdDoughnut.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdDoughnut.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"72347355\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { DisasterRecoveryTestApplicationDto, DisasterRecoveryTestDetailsDto, DisasterRecoveryTestResult } from '@/dtos/bcm/testing/DisasterRecoveryTestDetailsDto';\nimport { mdiCalendarMultiselect } from '@mdi/js';\nimport { DisasterRecoveryTestStatus } from '@/dtos/bcm/testing/DisasterRecoveryTestDto';\nimport DisasterTestFinishedLine from '@/components/bcm/testing/dr/DisasterTestFinishedLine.vue';\nimport testing from './testing';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { PdDoughnut, PdBarChart } from '@/components/core/charts';\nimport DisasterRecoveryTestService from '@/services/DisasterRecoveryTestService';\n\nexport default defineComponent({\n name: 'DisasterRecoveryTestFinishedView',\n\n components: {\n DisasterTestFinishedLine,\n PdDoughnut,\n PdBarChart,\n },\n\n props: {\n disasterRecoveryTest: {\n type: Object as () => DisasterRecoveryTestDetailsDto,\n required: true,\n },\n },\n\n setup(props, { root }) {\n function filter(app: DisasterRecoveryTestApplicationDto, filterValue: string): boolean {\n if (filterValue === 'all') {\n return true;\n } else if (filterValue === 'tested') {\n return app.goForTest;\n } else if (filterValue === 'notTested') {\n return !app.goForTest;\n } else {\n if (filterValue === 'fail' || filterValue === 'partial' || filterValue === 'success' || filterValue === 'unanswered') {\n if (filterValue === 'fail' && app.testResult === DisasterRecoveryTestResult.Fail) {\n return true;\n } else if (filterValue === 'partial' && app.testResult === DisasterRecoveryTestResult.Partial) {\n return true;\n } else if (filterValue === 'success' && app.testResult === DisasterRecoveryTestResult.Pass) {\n return true;\n } else if (filterValue === 'unanswered' && app.testResult === DisasterRecoveryTestResult.Unanswered) {\n return true;\n }\n }\n if (filterValue === 'itsdFail' || filterValue === 'itsdPartial' || filterValue === 'itsdSuccess') {\n let itsdStatus = DisasterRecoveryTestResult.Pass;\n\n if (app.itsdOfficers && app.itsdOfficers.length > 0) {\n for (let i = 0; i < app.itsdOfficers.length; ++i) {\n if (itsdStatus > app.itsdOfficers[i].testResult) {\n itsdStatus = app.itsdOfficers[i].testResult;\n }\n }\n }\n\n if (filterValue === 'itsdFail' && itsdStatus === DisasterRecoveryTestResult.Fail) {\n return true;\n } else if (filterValue === 'itsdPartial' && itsdStatus === DisasterRecoveryTestResult.Partial) {\n return true;\n } else if (filterValue === 'itsdSuccess' && itsdStatus === DisasterRecoveryTestResult.Pass) {\n return true;\n }\n } else if (filterValue === 'usersUnanswered' || filterValue === 'usersFail' || filterValue === 'usersPartial' || filterValue === 'usersSuccess') {\n let answered = false;\n let usersStatus: DisasterRecoveryTestResult | null = null;\n\n if (app.testUsers && app.testUsers.length > 0) {\n for (let i = 0; i < app.testUsers.length; ++i) {\n if (app.testUsers[i].testResult === DisasterRecoveryTestResult.Unanswered) {\n continue;\n }\n\n answered = true;\n\n if (usersStatus == null) {\n usersStatus = app.testUsers[i].testResult;\n } else if (usersStatus > app.testUsers[i].testResult) {\n usersStatus = app.testUsers[i].testResult;\n }\n }\n }\n\n if (filterValue === 'usersUnanswered' && answered === false) {\n return true;\n } else if (filterValue === 'usersFail' && usersStatus === DisasterRecoveryTestResult.Fail) {\n return true;\n } else if (filterValue === 'usersPartial' && usersStatus === DisasterRecoveryTestResult.Partial) {\n return true;\n } else if (filterValue === 'usersSuccess' && usersStatus === DisasterRecoveryTestResult.Pass) {\n return true;\n }\n }\n\n return false;\n }\n }\n\n const {\n valid,\n loaded,\n applications,\n searchValue,\n filterSelection,\n hidden,\n switchOpen,\n switchClosed,\n dummy,\n expandAll,\n collapseAll,\n currentPage,\n totalPages,\n otherPhases,\n showPhase,\n icons,\n exportXlsx,\n } = testing(props, filter);\n\n const filters = ref([\n { value: 'all', text: i18n.t('testing.dr.filter.all') },\n { value: 'tested', text: i18n.t('testing.dr.filter.tested') },\n { value: 'notTested', text: i18n.t('testing.dr.filter.notTested') },\n { value: 'fail', text: i18n.t('testing.dr.filter.fail') },\n { value: 'partial', text: i18n.t('testing.dr.filter.partial') },\n { value: 'success', text: i18n.t('testing.dr.filter.success') },\n { value: 'unanswered', text: i18n.t('testing.dr.filter.unanswered') },\n { value: 'itsdFail', text: i18n.t('testing.dr.filter.itsdFail') },\n { value: 'itsdPartial', text: i18n.t('testing.dr.filter.itsdPartial') },\n { value: 'itsdSuccess', text: i18n.t('testing.dr.filter.itsdSuccess') },\n { value: 'usersFail', text: i18n.t('testing.dr.filter.usersFail') },\n { value: 'usersPartial', text: i18n.t('testing.dr.filter.usersPartial') },\n { value: 'usersSuccess', text: i18n.t('testing.dr.filter.usersSuccess') },\n ]);\n\n async function exportData(type: string) {\n const apps = applications as Array;\n\n exportXlsx(DisasterRecoveryTestStatus.Finished, apps, type);\n }\n\n const fileInput = ref(null);\n let fi: HTMLInputElement;\n\n // function importData() {\n // fi.click();\n // }\n\n watch(\n fileInput,\n () => {\n if (fileInput.value != null) {\n fi = fileInput.value as unknown as HTMLInputElement;\n fi.addEventListener('change', async function () {\n if (fi.files != null) {\n const busy = BusyIndicatorService.SetBusy('Generating Report...');\n const fd = new FormData();\n fd.append('file', fi.files[0]);\n root.$forceUpdate();\n try {\n const resp = await DisasterRecoveryTestService.GenerateReport(props.disasterRecoveryTest.id, fd) as { data: string, name: string };\n\n const encodedUri = encodeURI('data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,' + resp.data);\n console.log(resp);\n const link = document.createElement('a');\n link.setAttribute('href', encodedUri);\n link.setAttribute('download', `${resp.name}`);\n document.body.appendChild(link); // Required for FF\n\n link.click();\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n fi.value = '';\n BusyIndicatorService.RemoveBusy(busy);\n }\n });\n }\n },\n );\n\n function exportDocument() {\n fi.click();\n }\n\n const testedGraph = {\n datasets: [{\n data: [0, 0],\n backgroundColor: ['#e0adad', '#dae0ad'],\n },\n ],\n labels: ['Not Tested', 'Tested'],\n colors: ['#e0adad', '#c7e0ad'],\n };\n\n const resultsGraph = {\n datasets: [{\n data: [0, 0, 0],\n backgroundColor: ['#e0adad', '#dae0ad', '#c7e0ad'],\n }],\n labels: ['Fail', 'Partial', 'Success'],\n };\n\n const failsGraph = {\n datasets: [{\n data: [0, 0, 0],\n backgroundColor: ['#e0adad', '#dae0ad', '#c7e0ad'],\n }],\n labels: ['ITSD', 'Test User', 'RTO'],\n colors: ['#e0adad', '#dae0ad', '#c7e0ad'],\n };\n\n const targetsGraph = {\n datasets: [{\n label: 'Met',\n backgroundColor: '#c7e0ad',\n data: [0, 0],\n },\n {\n label: 'Not Met',\n backgroundColor: '#e0adad',\n data: [0, 0],\n }],\n labels: ['RTO', 'RPO'],\n options: {\n tooltips: {\n mode: 'index',\n intersect: false,\n },\n responsive: true,\n scales: {\n xAxes: [{\n stacked: true,\n }],\n yAxes: [{\n stacked: true,\n }],\n },\n },\n };\n\n for (let i = 0; i < props.disasterRecoveryTest.applications.length; ++i) {\n if (props.disasterRecoveryTest.applications[i].goForTest) {\n testedGraph.datasets[0].data[1] += 1;\n\n const testRto = props.disasterRecoveryTest.applications[i].testRto;\n const targetRto = props.disasterRecoveryTest.applications[i].targetRtoValue;\n\n const testRpo = props.disasterRecoveryTest.applications[i].testRpo;\n const targetRpo = props.disasterRecoveryTest.applications[i].targetRpoValue;\n\n if (testRto != null && targetRto != null) {\n if (testRto <= targetRto) {\n targetsGraph.datasets[0].data[0] += 1;\n } else {\n targetsGraph.datasets[1].data[0] += 1;\n }\n }\n\n if (testRpo != null && targetRpo != null) {\n if (testRpo <= targetRpo) {\n targetsGraph.datasets[0].data[1] += 1;\n } else {\n targetsGraph.datasets[1].data[1] += 1;\n }\n }\n\n if (props.disasterRecoveryTest.applications[i].testResult === DisasterRecoveryTestResult.Pass) {\n resultsGraph.datasets[0].data[2] += 1;\n } else {\n if (props.disasterRecoveryTest.applications[i].testResult === DisasterRecoveryTestResult.Partial) {\n resultsGraph.datasets[0].data[1] += 1;\n } else {\n resultsGraph.datasets[0].data[0] += 1;\n }\n }\n\n if (props.disasterRecoveryTest.applications[i].testResult !== DisasterRecoveryTestResult.Pass) {\n if (props.disasterRecoveryTest.applications[i].itsdOfficers) {\n for (let j = 0; j < props.disasterRecoveryTest.applications[i].itsdOfficers.length; j++) {\n const element = props.disasterRecoveryTest.applications[i].itsdOfficers[j];\n if (element.testResult > DisasterRecoveryTestResult.Unanswered && element.testResult < DisasterRecoveryTestResult.Pass) {\n failsGraph.datasets[0].data[0] += 1;\n break;\n }\n }\n }\n\n if (props.disasterRecoveryTest.applications[i].testUsers) {\n for (let j = 0; j < props.disasterRecoveryTest.applications[i].testUsers.length; j++) {\n const element = props.disasterRecoveryTest.applications[i].testUsers[j];\n if (element.testResult > DisasterRecoveryTestResult.Unanswered && element.testResult < DisasterRecoveryTestResult.Pass) {\n failsGraph.datasets[0].data[1] += 1;\n break;\n }\n }\n }\n\n if (testRto != null && targetRto != null) {\n if (testRto > targetRto) {\n failsGraph.datasets[0].data[2] += 1;\n }\n }\n }\n } else {\n testedGraph.datasets[0].data[0] += 1;\n }\n }\n\n return {\n status: DisasterRecoveryTestStatus.Testing,\n exportData,\n exportDocument,\n fileInput,\n\n filters,\n\n testedGraph,\n resultsGraph,\n failsGraph,\n targetsGraph,\n\n valid,\n loaded,\n applications,\n searchValue,\n filterSelection,\n hidden,\n switchOpen,\n switchClosed,\n dummy,\n expandAll,\n collapseAll,\n currentPage,\n totalPages,\n otherPhases,\n showPhase,\n icons: {\n mdiCalendarMultiselect,\n ...icons,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestFinishedView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestFinishedView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DisasterRecoveryTestFinishedView.vue?vue&type=template&id=60455784&scoped=true&\"\nimport script from \"./DisasterRecoveryTestFinishedView.vue?vue&type=script&lang=ts&\"\nexport * from \"./DisasterRecoveryTestFinishedView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"60455784\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VPagination } from 'vuetify/lib/components/VPagination';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VIcon,VList,VListItem,VListItemTitle,VMenu,VPagination,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.valid)?_c('fragment',[_c('disaster-recovery-test-time-zone-editor',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showTimeZones),expression:\"showTimeZones\"}],attrs:{\"datasource\":_vm.timeZonesDatasource,\"editable\":_vm.disasterRecoveryTest.status === 2},on:{\"close\":function($event){_vm.showTimeZones = false}}}),_c('input',{ref:\"fileInput\",staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\"}}),(_vm.showUserSelector)?_c('v-dialog',{attrs:{\"value\":true,\"width\":\"500\",\"max-width\":\"1000px\",\"persistent\":\"\"}},[_c('v-card',[_c('pd-data-table',{attrs:{\"height\":\"400px\",\"search\":\"\",\"datasource\":_vm.availableUsers,\"headers\":_vm.availableUsersHeaders,\"options\":{editable: false, pagination: false},\"selected-item\":_vm.selectedTestUser},on:{\"update:selectedItem\":function($event){_vm.selectedTestUser=$event},\"update:selected-item\":function($event){_vm.selectedTestUser=$event},\"dblclick\":_vm.selectTestUser}}),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.showUserSelector = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":function($event){return _vm.selectTestUser()}}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.select'))+\" \")])],1)],1)],1):_vm._e(),_c('v-snackbar',{attrs:{\"dense\":\"\",\"light\":\"\",\"timeout\":2000},scopedSlots:_vm._u([{key:\"action\",fn:function(ref){\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._b({attrs:{\"color\":\"blue\",\"text\":\"\"},on:{\"click\":function($event){_vm.snackbar = false}}},'v-btn',attrs,false),[_vm._v(\" Close \")])]}}],null,false,986649548),model:{value:(_vm.snackbar),callback:function ($$v) {_vm.snackbar=$$v},expression:\"snackbar\"}},[_vm._v(\" \"+_vm._s(_vm.snackbarText)+\" \")]),(_vm.loaded)?_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"start\",\"align\":\"end\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-text-field',{staticStyle:{\"width\":\"300px\"},attrs:{\"label\":_vm.$t('testing.dr.searchApplications'),\"hide-details\":\"\"},model:{value:(_vm.searchValue),callback:function ($$v) {_vm.searchValue=$$v},expression:\"searchValue\"}})],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiDatabaseExport)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1)]}}],null,false,1384323064)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('detailed')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('testing.dr.export.details')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('simplified')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('testing.dr.export.simplified')))])],1),(_vm.disasterRecoveryTest.type === 2)?_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('ucmdb')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('testing.dr.export.ucmdb')))])],1):_vm._e()],1)],1)],1),(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.disasterRecoveryTest.status !== 2}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiDatabaseImport)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('systems.import.button'))+\" \")],1)]}}],null,false,3340629581)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.importData()}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('testing.dr.import.timeZones')))])],1)],1)],1)],1):_vm._e(),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.expandAll}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiExpandAll)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('expandAll'))+\" \")],1)],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.collapseAll}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCollapseAll)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('collapseAll'))+\" \")],1)],1),(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":function($event){_vm.showTimeZones = true}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCalendarMultiselect)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.timeZones.edit'))+\" \")],1)],1):_vm._e(),(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiSourceBranch)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.phases'))+\" \")],1)]}}],null,false,420318248)},[_c('v-list',_vm._l((_vm.otherPhases),function(p){return _c('v-list-item',{key:p.route,on:{\"click\":function($event){return _vm.showPhase(p)}}},[_c('v-list-item-title',[_vm._v(_vm._s(p.text))])],1)}),1)],1)],1):_vm._e(),(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.disasterRecoveryTest.status !== 2},on:{\"click\":_vm.moveToTestPhase}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCalendarMultiselect)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.moveToTestPhase'))+\" \")],1)],1):_vm._e()],1):_vm._e(),_c('v-row',[_c('v-col',[_vm._l((_vm.applications),function(app,i){return [(!(_vm.hidden[app.id] === true))?_c('v-card',{key:app.uuid,staticClass:\"px-2 py-0\",class:_vm.rowClass(i),attrs:{\"elevation\":\"0\",\"dummy\":_vm.dummy}},[_c('v-card-text',{staticClass:\"px-0 ma-0\"},[_c('v-row',{attrs:{\"justify\":\"space-between\",\"dense\":\"\"}},[_c('v-col',{staticClass:\"ma-0 text-h6 font-weight-bold\",staticStyle:{\"width\":\"400px\"},attrs:{\"cols\":\"auto\"}},[_vm._v(\" \"+_vm._s(app.name)+\" \"),(app.ucmdbName || (app.modules && app.modules.length > 0))?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"medium\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.icons.mdiInformation)+\" \")])]}}],null,true)},[(app.ucmdbName)?[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.ucmdbName'))+\" \"),_c('ul',[_c('li',[_vm._v(\" \"+_vm._s(app.ucmdbName)+\" \")])])])]:_vm._e(),((app.modules && app.modules.length > 0))?[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.modules'))+\" \")]),_c('ul',_vm._l((app.modules),function(m){return _c('li',{key:m},[_vm._v(\" \"+_vm._s(m)+\" \")])}),0)]:_vm._e()],2):_vm._e(),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.changeState(app)}}},[_c('v-icon',{class:{'rotated': _vm.closed[app.id]}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiChevronUp)+\" \")])],1)],1),_c('v-col',{staticStyle:{\"width\":\"800px\"},attrs:{\"cols\":\"auto\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"px-4\",attrs:{\"cols\":\"3\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [(app.targetRto)?_c('div',_vm._g({},on),[_c('span',[_vm._v(_vm._s(_vm.$t('testing.dr.scheduling.rto', {name: app.targetRto, value: app.targetRtoValue})))]),(app.targetRtoValue != app.rtoValue)?_c('span',[_vm._v(\"*\")]):_vm._e()]):_c('div',_vm._g({},on),[_c('span',[_vm._v(_vm._s(_vm.$t('testing.dr.scheduling.rtoNotCalculated')))])])]}}],null,true)},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.targetRto', {name: app.targetRto, value: app.targetRtoValue}))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.finishedRto', {name: app.rto, value: app.rtoValue}))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.runningRto', {name: app.runningRto, value: app.runningRtoValue}))+\" \")])])],1),_c('v-col',{staticClass:\"px-4\",attrs:{\"cols\":\"3\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [(app.targetRpo)?_c('div',_vm._g({},on),[_c('span',_vm._g({},on),[_vm._v(_vm._s(_vm.$t('testing.dr.scheduling.rpo', {name: app.targetRpo, value: app.targetRpoValue})))]),(app.targetRpoValue != app.rpoValue)?_c('span',[_vm._v(\"*\")]):_vm._e()]):_c('div',_vm._g({},on),[_c('span',[_vm._v(_vm._s(_vm.$t('testing.dr.scheduling.rpoNotCalculated')))])])]}}],null,true)},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.targetRpo', {name: app.targetRpo, value: app.targetRpoValue}))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.finishedRpo', {name: app.rpo, value: app.rpoValue}))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.runningRpo', {name: app.runningRpo, value: app.runningRpoValue}))+\" \")])])],1),_c('v-col',{staticClass:\"px-4\",attrs:{\"cols\":\"3\"}},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"disabled\":_vm.disasterRecoveryTest.status !== 2 || _vm.disasterRecoveryTest.type === 1},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar onMenu = ref.on;\nreturn [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar onTooltip = ref.on;\nreturn [_c('span',_vm._g({style:({'cursor': (_vm.disasterRecoveryTest.type === 2 ? 'pointer': '')})},Object.assign({}, onMenu, onTooltip)),[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.switchToDisaster', {zone: (_vm.timeZoneMapping[app.switchToDisasterTimeZoneId] || {}).name}))+\" \")])]}}],null,true)},[(app.switchToDisasterTimeZoneId)?_c('div',[_vm._v(\" \"+_vm._s((_vm.timeZoneMapping[app.switchToDisasterTimeZoneId] || {}).name)+\" \"),_c('ul',[_c('li',[_vm._v(\" \"+_vm._s((_vm.timeZoneMapping[app.switchToDisasterTimeZoneId] || {}).start)+\" (Start) \")]),_c('li',[_vm._v(\" \"+_vm._s((_vm.timeZoneMapping[app.switchToDisasterTimeZoneId] || {}).end)+\" (End) \")])])]):_vm._e()])]}}],null,true)},[_c('v-list',_vm._l((_vm.timeZoneMapping),function(v){return _c('v-list-item',{key:v.id,on:{\"click\":function($event){return _vm.changeAppSwitchToDisaster(app, v.id)}}},[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(v.name)+\": \"+_vm._s(v.start)+\" to \"+_vm._s(v.end)+\" \")])],1)}),1)],1)],1),_c('v-col',{staticClass:\"px-4\",attrs:{\"cols\":\"3\"}},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"disabled\":_vm.disasterRecoveryTest.status !== 2 || _vm.disasterRecoveryTest.type === 1},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar onMenu = ref.on;\nreturn [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar onTooltip = ref.on;\nreturn [_c('span',_vm._g({style:({'cursor': (_vm.disasterRecoveryTest.type === 2 ? 'pointer': '')})},Object.assign({}, onMenu, onTooltip)),[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.scheduling.switchToPrimary', {zone: (_vm.timeZoneMapping[app.switchToPrimaryTimeZoneId] || {}).name}))+\" \")])]}}],null,true)},[(app.switchToPrimaryTimeZoneId)?_c('div',[_vm._v(\" \"+_vm._s((_vm.timeZoneMapping[app.switchToPrimaryTimeZoneId] || {}).name)+\" \"),_c('ul',[_c('li',[_vm._v(\" \"+_vm._s((_vm.timeZoneMapping[app.switchToPrimaryTimeZoneId] || {}).start)+\" (Start) \")]),_c('li',[_vm._v(\" \"+_vm._s((_vm.timeZoneMapping[app.switchToPrimaryTimeZoneId] || {}).end)+\" (End) \")])])]):_vm._e()])]}}],null,true)},[_c('v-list',_vm._l((_vm.timeZoneMapping),function(v){return _c('v-list-item',{key:v.id,on:{\"click\":function($event){return _vm.changeAppSwitchToPrimary(app, v.id)}}},[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(v.name)+\": \"+_vm._s(v.start)+\" to \"+_vm._s(v.end)+\" \")])],1)}),1)],1)],1)],1)],1)],1),_c('v-expand-transition',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.closed[app.id]),expression:\"!closed[app.id]\"}]},[_c('div',{staticClass:\"mb-4\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.itsdOfficers'))+\" \")]),_c('ul',_vm._l((app.itsdOfficers),function(u){return _c('li',{key:u.user.username},[_vm._v(\" \"+_vm._s(u.user.info)+\" \")])}),0)]),_c('div',[_c('div',[(_vm.disasterRecoveryTest.status === 2)?_c('v-btn',{staticClass:\"text-none mb-2\",attrs:{\"text\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.addUser(app)}}},[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.testingUsers'))+\" \"),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlus)+\" \")])],1):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.testingUsers'))+\" \")])],1),_vm._l((app.testUsers),function(u){return _c('div',{key:u.user.username},[(_vm.disasterRecoveryTest.status === 2)?_c('v-btn',{staticClass:\"text-none text-left justify-start mb-1\",staticStyle:{\"width\":\"600px\"},attrs:{\"small\":\"\",\"depressed\":\"\"},on:{\"click\":function($event){return _vm.removeUser(app, u.user)}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiMinus)+\" \")]),_vm._v(\" \"+_vm._s(u.user.info)+\" \")],1):_c('span',[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiDot)+\" \")]),_vm._v(\" \"+_vm._s(u.user.info)+\" \")],1)],1)})],2)])])],1),_c('v-divider',{staticClass:\"pa-0\"})],1):_vm._e()]})],2)],1),_c('v-row',{staticClass:\"px-4\"},[_c('v-col',[_c('v-pagination',{attrs:{\"length\":_vm.totalPages},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup',{attrs:{\"visible\":true,\"width\":\"800px\"}},[_c('v-card',{staticClass:\"text-left\",attrs:{\"light\":\"\"}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.testing.dr.timeZones.title'))+\" \")]),_c('v-card-text',[_c('pd-data-table',{attrs:{\"height\":\"500px\",\"search\":\"\",\"datasource\":_vm.datasource,\"headers\":_vm.timeZoneHeaders,\"options\":{editable: _vm.editable, pagination: false}},on:{\"editing-changed\":_vm.timeZonesEditChanged}})],1),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"disabled\":_vm.timeZonesOkDisabled,\"color\":\"success\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_vm._v(\" \"+_vm._s(_vm.$t('ok'))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdPopup from '@/components/core/PdPopup.vue';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { PdColumnDateTime } from '@/components/core/PdDataTable/columns';\nimport { ApiDataSource } from '@/core/datasource';\nimport { IDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { DisasterRecoveryTestTimeZoneDto } from '@/dtos/bcm/testing/DisasterRecoveryTestTimeZoneDto';\n\nexport default defineComponent({\n name: 'DisasterRecoveryTestTimeZoneEditor',\n\n components: {\n PdDataTable,\n PdPopup,\n },\n\n props: {\n datasource: {\n type: Object as () => ApiDataSource,\n required: true,\n },\n\n editable: {\n type: Boolean,\n default: true,\n },\n },\n\n setup() {\n const timeZoneHeaders: Array> = [\n {\n id: 'start',\n value: 'start',\n text: i18n.t('bcm.testing.dr.timeZones.start').toString(),\n component: PdColumnDateTime,\n },\n {\n id: 'end',\n value: 'end',\n text: i18n.t('bcm.testing.dr.timeZones.end').toString(),\n component: PdColumnDateTime,\n },\n {\n id: 'name',\n text: i18n.t('bcm.testing.dr.timeZones.name').toString(),\n value: 'name',\n defaultValue: 'Time Zone Name',\n },\n ];\n\n const timeZonesOkDisabled = ref(false);\n function timeZonesEditChanged(edit: IDto | null) {\n timeZonesOkDisabled.value = edit != null;\n }\n\n return {\n timeZoneHeaders,\n timeZonesEditChanged,\n timeZonesOkDisabled,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestTimeZoneEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestTimeZoneEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DisasterRecoveryTestTimeZoneEditor.vue?vue&type=template&id=b341fd24&scoped=true&\"\nimport script from \"./DisasterRecoveryTestTimeZoneEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./DisasterRecoveryTestTimeZoneEditor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b341fd24\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, onMounted, reactive, ref, watch } from '@vue/composition-api';\nimport i18n from '@/i18n';\nimport DisasterRecoveryTestService from '@/services/DisasterRecoveryTestService';\nimport { DisasterRecoveryTestApplicationDto, DisasterRecoveryTestDetailsDto } from '@/dtos/bcm/testing/DisasterRecoveryTestDetailsDto';\nimport { mdiPlus, mdiMinus, mdiChevronUp, mdiDatabaseImport, mdiDatabaseExport, mdiExpandAll, mdiCollapseAll, mdiInformation, mdiCalendarMultiselect } from '@mdi/js';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport DisasterRecoveryTestTimeZoneEditor from './DisasterRecoveryTestTimeZoneEditor.vue';\nimport { ApplicationModule } from '@/store';\nimport { ApiDataSource } from '@/core/datasource';\nimport { DisasterRecoveryTestStatus } from '@/dtos/bcm/testing/DisasterRecoveryTestDto';\nimport router from '@/router';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { DisasterRecoveryTestTimeZoneDto } from '@/dtos/bcm/testing/DisasterRecoveryTestTimeZoneDto';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { DateTimeTemplate } from '@/core/helpers/templates/DateTemplate';\nimport testing from './testing';\nimport DatasourcesService from '@/services/DatasourcesService';\n\nexport default defineComponent({\n name: 'DisasterRecoveryTestSchedulingView',\n\n components: {\n PdDataTable,\n DisasterRecoveryTestTimeZoneEditor,\n },\n\n props: {\n disasterRecoveryTest: {\n type: Object as () => DisasterRecoveryTestDetailsDto,\n required: true,\n },\n },\n\n setup(props, { emit, root }) {\n const closed = reactive<{ [key: number]: boolean }>({});\n const hidden = reactive<{ [key: number]: boolean }>({});\n const toShow: { [key: number]: boolean } = {};\n const order: Array = [];\n const dummy = ref(true);\n const searchValue = ref('');\n const applications: Array = [];\n const snackbar = ref(false);\n const snackbarText = ref(i18n.t('saved'));\n\n const currentPage = ref(1);\n const totalPages = ref(1);\n const itemsPerPage = 20;\n\n const showTimeZones = ref(false);\n\n const { showPhase, otherPhases, icons, exportXlsx } = testing(props);\n\n if (props.disasterRecoveryTest.status < DisasterRecoveryTestStatus.Scheduling) {\n PopupMessageService.SetMessage({\n title: 'Error',\n text: 'Cannot see Scheduling for this test...',\n });\n\n router.replace({ name: 'bcm.testing.deployments' });\n\n return {\n valid: false,\n };\n }\n\n for (let i = 0; i < props.disasterRecoveryTest.applications.length; ++i) {\n applications.push(props.disasterRecoveryTest.applications[i]);\n\n order.push(applications[i].id);\n hidden[applications[i].id] = false;\n toShow[applications[i].id] = true;\n closed[applications[i].id] = true;\n }\n\n function paginate(page?: number) {\n let found = 0;\n let total = 0;\n\n if (page === undefined) {\n if (currentPage.value !== 1) {\n currentPage.value = 1;\n return;\n } else {\n page = currentPage.value;\n }\n }\n\n const start = (page - 1) * itemsPerPage;\n\n for (let i = 0; i < order.length; ++i) {\n if (toShow[order[i]] === true) {\n total += 1;\n\n if (found < start) {\n hidden[order[i]] = true;\n ++found;\n } else if (found < start + itemsPerPage) {\n hidden[order[i]] = false;\n ++found;\n } else {\n hidden[order[i]] = true;\n }\n } else {\n hidden[order[i]] = true;\n }\n }\n\n totalPages.value = Math.ceil(total / itemsPerPage);\n dummy.value = !dummy.value;\n }\n\n watch(\n currentPage,\n (value) => {\n paginate(value);\n },\n );\n\n paginate();\n\n let debounceTimer: unknown;\n function updateSearchValue(value: string) {\n // cancel pending call\n clearTimeout(debounceTimer as number);\n\n // delay new call 500ms\n debounceTimer = setTimeout(() => {\n const search = value.trim().toLowerCase();\n\n for (let i = 0; i < applications.length; ++i) {\n if (search) {\n if (search && applications[i].name.toLowerCase().indexOf(search) >= 0) {\n toShow[applications[i].id] = true;\n } else {\n toShow[applications[i].id] = false;\n }\n } else {\n toShow[applications[i].id] = true;\n }\n }\n\n paginate();\n }, 500);\n }\n\n watch(\n searchValue,\n (value) => {\n updateSearchValue(value);\n },\n );\n\n function rowClass(i: number): { [key: string]: boolean } {\n const classes = {\n 'even-row': false,\n 'odd-row': false,\n };\n\n if (i % 2 === 0) {\n classes['even-row'] = true;\n } else {\n classes['odd-row'] = true;\n }\n\n return classes;\n }\n\n function changeState(app: DisasterRecoveryTestApplicationDto) {\n closed[app.id] = !closed[app.id];\n dummy.value = !dummy.value;\n }\n\n async function exportData(type: string) {\n exportXlsx(DisasterRecoveryTestStatus.Scheduling, applications, type);\n }\n\n function expandAll() {\n for (let i = 0; i < applications.length; ++i) {\n closed[applications[i].id] = false;\n }\n dummy.value = !dummy.value;\n }\n\n function collapseAll() {\n for (let i = 0; i < applications.length; ++i) {\n closed[applications[i].id] = true;\n }\n dummy.value = !dummy.value;\n }\n\n function moveToTestPhase() {\n //\n const apps = props.disasterRecoveryTest.applications;\n const disaster: Array = [];\n const primary: Array = [];\n const testUsers: Array = [];\n\n if (apps) {\n for (let i = 0; i < apps.length; ++i) {\n if (!apps[i].switchToDisasterTimeZoneId) {\n disaster.push(apps[i].name);\n }\n if (!apps[i].switchToPrimaryTimeZoneId) {\n primary.push(apps[i].name);\n }\n if (!apps[i].testUsers || !Array.isArray(apps[i].testUsers) || apps[i].testUsers.length === 0) {\n testUsers.push(apps[i].name);\n }\n }\n\n let text = '';\n\n if (disaster.length === 0 && primary.length === 0 && testUsers.length === 0) {\n text = i18n.t('testing.dr.scheduling.allAppsForTesting').toString();\n } else {\n if (testUsers.length > 0) {\n text += i18n.t('testing.dr.scheduling.testUsersMessage').toString() + '\\n';\n for (let i = 0; i < testUsers.length; ++i) {\n text += '- ' + testUsers[i] + '\\n';\n }\n }\n\n if (disaster.length > 0) {\n if (text) {\n text += '\\n';\n }\n\n text += i18n.t('testing.dr.scheduling.disasterZoneMessage').toString() + '\\n';\n for (let i = 0; i < disaster.length; ++i) {\n text += '- ' + disaster[i] + '\\n';\n }\n }\n\n if (primary.length > 0) {\n if (text) {\n text += '\\n';\n }\n\n text += i18n.t('testing.dr.scheduling.primaryZoneMessage').toString() + '\\n';\n for (let i = 0; i < primary.length; ++i) {\n text += '- ' + primary[i] + '\\n';\n }\n }\n\n text += '\\n';\n text += i18n.t('testing.dr.scheduling.proceedWithoutAllInfoMessage').toString();\n }\n\n PopupMessageService.SetMessage({\n title: i18n.t('testing.dr.confirmation').toString(),\n text: text,\n buttons: [{\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n callback: async () => {\n if (props.disasterRecoveryTest != null) {\n try {\n await DisasterRecoveryTestService.GoForTesting(props.disasterRecoveryTest);\n router.replace({ name: 'bcm.testing.dr.test', params: { testId: props.disasterRecoveryTest.id.toString() } });\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n }\n },\n close: () => true,\n },\n {\n id: 'no',\n color: 'error',\n text: i18n.t('no').toString(),\n close: () => true,\n }],\n });\n }\n //\n }\n\n const entityId = (ApplicationModule.Entity || {}).id;\n const timeZonesDatasource = new ApiDataSource({ api: `masterplans/${entityId}/bc/testing/DisasterRecoveryTests/${props.disasterRecoveryTest.id}/TimeZones` });\n\n async function removeUser(app: DisasterRecoveryTestApplicationDto, user: SimpleUserDto) {\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('testing.dr.scheduling.demoveTestUserQuestion', { user: user.info, app: app.name }).toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n close: () => true,\n callback: async () => {\n const busy = BusyIndicatorService.SetBusy('Removing user');\n\n try {\n const data = await DisasterRecoveryTestService.RemoveTestUser(props.disasterRecoveryTest.id, app.id, user);\n app.testUsers = data;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n },\n ],\n });\n }\n\n const showUserSelector = ref(false);\n const busyUsers = BusyIndicatorService.SetBusy('Loading users...');\n let allUsers: Array;\n DatasourcesService.Users.data().then((users) => {\n allUsers = users;\n BusyIndicatorService.RemoveBusy(busyUsers);\n });\n\n function addUser(app: DisasterRecoveryTestApplicationDto) {\n availableUsers.value = allUsers.filter(u => app.testUsers.filter((i) => i.user.username === u.username).length === 0);\n availableUsers.value = availableUsers.value.filter(u => app.itsdOfficers.filter((i) => i.user.username === u.username).length === 0);\n addingUserToApp = app;\n showUserSelector.value = true;\n }\n\n const availableUsersHeaders: Array> = [\n {\n id: 'info',\n text: 'User',\n value: 'info',\n },\n ];\n\n let addingUserToApp: DisasterRecoveryTestApplicationDto | null = null;\n const selectedTestUser = ref(null);\n\n const availableUsers = ref>([]);\n\n async function selectTestUser(user: SimpleUserDto | null) {\n if (user == null) {\n user = selectedTestUser.value;\n if (user == null) { return; }\n }\n\n const busy = BusyIndicatorService.SetBusy('Adding user to test...');\n showUserSelector.value = false;\n\n try {\n if (addingUserToApp != null) {\n const data = await DisasterRecoveryTestService.AddTestUser(props.disasterRecoveryTest.id, addingUserToApp.id, user);\n addingUserToApp.testUsers = data;\n }\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n const timeZoneMapping = reactive<{ [key: number]: { id: number, name: string, start: string, end: string } }>({});\n timeZonesDatasource.data()\n .then((data) => {\n if (data != null) {\n for (let i = 0; i < data.length; ++i) {\n timeZoneMapping[data[i].id] = {\n id: data[i].id,\n name: data[i].name,\n start: DateTimeTemplate(data[i].start).text,\n end: DateTimeTemplate(data[i].end).text,\n };\n }\n }\n loaded.value = true;\n })\n .catch((error) => {\n ErrorHandlingService.Handle(error);\n });\n\n async function changeAppSwitchToDisaster(app: DisasterRecoveryTestApplicationDto, timeZoneId: number) {\n const busy = BusyIndicatorService.SetBusy('Changing \"Switch to Disaster\" time zone...');\n showUserSelector.value = false;\n\n try {\n await DisasterRecoveryTestService.ChangeAppSwitchToDisaster(props.disasterRecoveryTest.id, app.id, timeZoneId);\n app.switchToDisasterTimeZoneId = timeZoneId;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function changeAppSwitchToPrimary(app: DisasterRecoveryTestApplicationDto, timeZoneId: number) {\n const busy = BusyIndicatorService.SetBusy('Changing \"Switch to Primary\" time zone...');\n showUserSelector.value = false;\n\n try {\n await DisasterRecoveryTestService.ChangeAppSwitchToPrimary(props.disasterRecoveryTest.id, app.id, timeZoneId);\n app.switchToPrimaryTimeZoneId = timeZoneId;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n const fileInput = ref(null);\n let fi: HTMLInputElement;\n\n function importData() {\n fi.click();\n }\n\n onMounted(() => {\n fi = fileInput.value as unknown as HTMLInputElement;\n fi.addEventListener('change', async function () {\n if (fi.files != null) {\n const busy = BusyIndicatorService.SetBusy('Uploading...');\n const fd = new FormData();\n fd.append('file', fi.files[0]);\n root.$forceUpdate();\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var res = await DisasterRecoveryTestService.UploadTimeZones(props.disasterRecoveryTest.id, fd) as any;\n let title = i18n.t('success').toString();\n let text = i18n.t('systems.fileImportedSuccessfully').toString();\n if (res.data != null && Array.isArray(res.data.warnings) && res.data.warnings.length > 0) {\n title = i18n.t('warning').toString();\n text = i18n.t('systems.fileImportedWithWarnings').toString();\n for (let i = 0; i < res.data.warnings.length; ++i) {\n text += '\\n' + res.data.warnings[i];\n }\n }\n\n PopupMessageService.SetMessage({\n title,\n text,\n });\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n\n fi.value = '';\n BusyIndicatorService.RemoveBusy(busy);\n emit('reload');\n }\n });\n });\n\n const loaded = ref(false);\n\n return {\n valid: true,\n loaded,\n applications,\n searchValue,\n rowClass,\n changeState,\n closed,\n hidden,\n dummy,\n exportData,\n expandAll,\n collapseAll,\n snackbar,\n snackbarText,\n moveToTestPhase,\n currentPage,\n totalPages,\n showTimeZones,\n timeZonesDatasource,\n addUser,\n removeUser,\n showUserSelector,\n availableUsersHeaders,\n selectTestUser,\n selectedTestUser,\n availableUsers,\n addingUserToApp,\n timeZoneMapping,\n changeAppSwitchToDisaster,\n changeAppSwitchToPrimary,\n importData,\n fileInput,\n showPhase,\n otherPhases,\n icons: {\n ...icons,\n mdiPlus,\n mdiMinus,\n mdiChevronUp,\n mdiDatabaseExport,\n mdiDatabaseImport,\n mdiExpandAll,\n mdiCollapseAll,\n mdiInformation,\n mdiCalendarMultiselect,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestSchedulingView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestSchedulingView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DisasterRecoveryTestSchedulingView.vue?vue&type=template&id=5a52d9fb&scoped=true&\"\nimport script from \"./DisasterRecoveryTestSchedulingView.vue?vue&type=script&lang=ts&\"\nexport * from \"./DisasterRecoveryTestSchedulingView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DisasterRecoveryTestSchedulingView.vue?vue&type=style&index=0&id=5a52d9fb&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a52d9fb\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VPagination } from 'vuetify/lib/components/VPagination';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCol,VDialog,VDivider,VExpandTransition,VIcon,VList,VListItem,VListItemTitle,VMenu,VPagination,VRow,VSnackbar,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.valid && _vm.loaded)?_c('fragment',[_c('v-row',{attrs:{\"dense\":\"\",\"justify\":\"start\",\"align\":\"end\"}},[(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"300px\"},attrs:{\"disabled\":_vm.disabled,\"items\":_vm.filters,\"label\":_vm.$t('testing.dr.visibleApplications'),\"hide-details\":\"\"},model:{value:(_vm.filterSelection),callback:function ($$v) {_vm.filterSelection=$$v},expression:\"filterSelection\"}})],1):_vm._e(),_c('v-col',{staticClass:\"shrink\"},[_c('v-text-field',{staticStyle:{\"width\":\"300px\"},attrs:{\"label\":_vm.$t('testing.dr.searchApplications'),\"hide-details\":\"\",\"disabled\":_vm.disabled},model:{value:(_vm.searchValue),callback:function ($$v) {_vm.searchValue=$$v},expression:\"searchValue\"}})],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.disabled},on:{\"click\":_vm.expandAll}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiExpandAll)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('expandAll'))+\" \")],1)],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.disabled},on:{\"click\":_vm.collapseAll}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCollapseAll)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('collapseAll'))+\" \")],1)],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.disabled},on:{\"click\":function($event){return _vm.exportData('detailed')}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiDatabaseExport)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1)],1),(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.disabled}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiSourceBranch)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.phases'))+\" \")],1)]}}],null,false,2502828606)},[_c('v-list',_vm._l((_vm.otherPhases),function(p){return _c('v-list-item',{key:p.route,on:{\"click\":function($event){return _vm.showPhase(p)}}},[_c('v-list-item-title',[_vm._v(_vm._s(p.text))])],1)}),1)],1)],1):_vm._e(),(_vm.disasterRecoveryTest.type === 2)?_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\",\"disabled\":_vm.disasterRecoveryTest.status !== 3},on:{\"click\":_vm.moveToFinalizationPhase}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCalendarMultiselect)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.moveToFinalizationPhase'))+\" \")],1)],1):_vm._e()],1),_c('v-row',[_c('v-col',[_vm._l((_vm.applications),function(app){return [(!(_vm.hidden[app.id] === true))?_c('disaster-test-application-line',{key:app.uuid,attrs:{\"app\":app,\"switch-open\":_vm.switchOpen,\"switch-closed\":_vm.switchClosed,\"dummy\":_vm.dummy},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('disaster-test-testing-application-details',{attrs:{\"test\":_vm.disasterRecoveryTest.id,\"app\":app,\"readonly\":_vm.disasterRecoveryTest.status !== 3},on:{\"has-changes\":_vm.hasChanges}})]},proxy:true}],null,true)}):_vm._e()]})],2)],1),_c('v-row',{staticClass:\"px-4\"},[_c('v-col',[_c('v-pagination',{attrs:{\"length\":_vm.totalPages,\"disabled\":_vm.disabled},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{staticClass:\"text-caption\",attrs:{\"justify\":\"end\",\"dense\":\"\"}},[_c('v-col',{staticClass:\"mr-4\",attrs:{\"cols\":\"auto\"}},[_vm._v(\" \"+_vm._s(_vm.$t('testing.dr.testing.itsd'))+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({attrs:{\"color\":_vm.itsdColor}},on),[_vm._v(\" \"+_vm._s(_vm.icons.mdiCircle)+\" \")])]}}])},[_c('div',[_vm._v(\" \"+_vm._s(_vm.itsdText)+\" \")])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { mdiCircle } from '@mdi/js';\nimport { DisasterRecoveryTestApplicationDto, DisasterRecoveryTestResult } from '@/dtos/bcm/testing/DisasterRecoveryTestDetailsDto';\n\nexport default defineComponent({\n name: 'TestingApplicationHeader',\n\n props: {\n app: {\n type: Object as () => DisasterRecoveryTestApplicationDto,\n required: true,\n },\n\n recalculate: {\n type: Boolean,\n required: false,\n },\n },\n\n setup(props) {\n const itsdColor = ref('');\n const itsdText = ref('');\n\n if (props.app.itsdOfficers && props.app.itsdOfficers.length > 0) {\n let text = '';\n for (let i = 0; i < props.app.itsdOfficers.length; ++i) {\n if (props.app.itsdOfficers[i].testResult === DisasterRecoveryTestResult.Fail) {\n text += `${props.app.itsdOfficers[i].user.info} marked it as Failed\\n`;\n itsdColor.value = 'red';\n } else if (props.app.itsdOfficers[i].testResult === DisasterRecoveryTestResult.Partial) {\n text += `${props.app.itsdOfficers[i].user.info} marked it as Partial Success\\n`;\n itsdColor.value = 'yellow';\n } else if (props.app.itsdOfficers[i].testResult === DisasterRecoveryTestResult.Pass) {\n text += `${props.app.itsdOfficers[i].user.info} marked it as Success\\n`;\n itsdColor.value = 'green';\n }\n }\n if (!text) {\n text = 'No ITSD officer response...';\n }\n\n itsdText.value = text;\n } else {\n itsdText.value = 'No ITSD Officers';\n }\n return {\n itsdColor,\n itsdText,\n\n icons: {\n mdiCircle,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TestingApplicationHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TestingApplicationHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TestingApplicationHeader.vue?vue&type=template&id=21a523f1&scoped=true&\"\nimport script from \"./TestingApplicationHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./TestingApplicationHeader.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"21a523f1\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCol,VIcon,VRow,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { DisasterRecoveryTestApplicationDto, DisasterRecoveryTestDetailsDto, DisasterRecoveryTestResult } from '@/dtos/bcm/testing/DisasterRecoveryTestDetailsDto';\nimport { mdiCalendarMultiselect } from '@mdi/js';\nimport { DisasterRecoveryTestStatus } from '@/dtos/bcm/testing/DisasterRecoveryTestDto';\nimport DisasterTestApplicationLine from '@/components/bcm/testing/dr/DisasterTestApplicationLine.vue';\nimport TestingApplicationHeader from '@/components/bcm/testing/dr/TestingApplicationHeader.vue';\nimport DisasterTestTestingApplicationDetails from '@/components/bcm/testing/dr/DisasterTestTestingApplicationDetails.vue';\nimport testing from './testing';\nimport i18n from '@/i18n';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport DisasterRecoveryTestService from '@/services/DisasterRecoveryTestService';\nimport router from '@/router';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\n\nexport default defineComponent({\n name: 'DisasterRecoveryTestTestingView',\n\n components: {\n DisasterTestApplicationLine,\n TestingApplicationHeader,\n DisasterTestTestingApplicationDetails,\n },\n\n props: {\n disasterRecoveryTest: {\n type: Object as () => DisasterRecoveryTestDetailsDto,\n required: true,\n },\n },\n\n setup(props) {\n function filter(app: DisasterRecoveryTestApplicationDto, filterValue: string): boolean {\n if (filterValue === 'all') {\n return true;\n } else {\n if (filterValue === 'itsdFail' || filterValue === 'itsdPartial' || filterValue === 'itsdSuccess') {\n let itsdStatus = DisasterRecoveryTestResult.Pass;\n\n if (app.itsdOfficers && app.itsdOfficers.length > 0) {\n for (let i = 0; i < app.itsdOfficers.length; ++i) {\n if (itsdStatus > app.itsdOfficers[i].testResult) {\n itsdStatus = app.itsdOfficers[i].testResult;\n }\n }\n }\n\n if (filterValue === 'itsdFail' && itsdStatus === DisasterRecoveryTestResult.Fail) {\n return true;\n } else if (filterValue === 'itsdPartial' && itsdStatus === DisasterRecoveryTestResult.Partial) {\n return true;\n } else if (filterValue === 'itsdSuccess' && itsdStatus === DisasterRecoveryTestResult.Pass) {\n return true;\n }\n } else if (filterValue === 'usersUnanswered' || filterValue === 'usersFail' || filterValue === 'usersPartial' || filterValue === 'usersSuccess') {\n let answered = false;\n let usersStatus: DisasterRecoveryTestResult | null = null;\n\n if (app.testUsers && app.testUsers.length > 0) {\n for (let i = 0; i < app.testUsers.length; ++i) {\n if (app.testUsers[i].testResult === DisasterRecoveryTestResult.Unanswered) {\n continue;\n }\n\n answered = true;\n\n if (usersStatus == null) {\n usersStatus = app.testUsers[i].testResult;\n } else if (usersStatus > app.testUsers[i].testResult) {\n usersStatus = app.testUsers[i].testResult;\n }\n }\n }\n\n if (filterValue === 'usersUnanswered' && answered === false) {\n return true;\n } else if (filterValue === 'usersFail' && usersStatus === DisasterRecoveryTestResult.Fail) {\n return true;\n } else if (filterValue === 'usersPartial' && usersStatus === DisasterRecoveryTestResult.Partial) {\n return true;\n } else if (filterValue === 'usersSuccess' && usersStatus === DisasterRecoveryTestResult.Pass) {\n return true;\n }\n }\n\n return false;\n }\n }\n\n const {\n valid,\n loaded,\n applications,\n searchValue,\n filterSelection,\n hidden,\n switchOpen,\n switchClosed,\n dummy,\n expandAll,\n collapseAll,\n currentPage,\n totalPages,\n otherPhases,\n showPhase,\n icons,\n exportXlsx,\n } = testing(props, filter);\n\n const filters = ref([\n { value: 'all', text: i18n.t('testing.dr.filter.all') },\n { value: 'itsdFail', text: i18n.t('testing.dr.filter.itsdFail') },\n { value: 'itsdPartial', text: i18n.t('testing.dr.filter.itsdPartial') },\n { value: 'itsdSuccess', text: i18n.t('testing.dr.filter.itsdSuccess') },\n { value: 'usersFail', text: i18n.t('testing.dr.filter.usersFail') },\n { value: 'usersPartial', text: i18n.t('testing.dr.filter.usersPartial') },\n { value: 'usersSuccess', text: i18n.t('testing.dr.filter.usersSuccess') },\n { value: 'usersUnanswered', text: i18n.t('testing.dr.filter.usersUnanswered') },\n ]);\n\n async function exportData(type: string) {\n exportXlsx(DisasterRecoveryTestStatus.Testing, applications, type);\n }\n\n function moveToFinalizationPhase() {\n //\n PopupMessageService.SetMessage({\n title: i18n.t('testing.dr.confirmation').toString(),\n text: i18n.t('testing.dr.scheduling.moveToFinalizationMessage').toString(),\n buttons: [{\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n callback: async () => {\n if (props.disasterRecoveryTest != null) {\n try {\n await DisasterRecoveryTestService.GoForFinalization(props.disasterRecoveryTest);\n router.push({ name: 'bcm.testing.dr.test', params: { testId: props.disasterRecoveryTest.id.toString() } });\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n }\n },\n close: () => true,\n },\n {\n id: 'no',\n color: 'error',\n text: i18n.t('no').toString(),\n close: () => true,\n }],\n });\n }\n\n const disabled = ref(false);\n\n function hasChanges(value: boolean) {\n disabled.value = value;\n }\n\n return {\n status: DisasterRecoveryTestStatus.Testing,\n exportData,\n moveToFinalizationPhase,\n hasChanges,\n disabled,\n\n filters,\n\n valid,\n loaded,\n applications,\n searchValue,\n filterSelection,\n hidden,\n switchOpen,\n switchClosed,\n dummy,\n expandAll,\n collapseAll,\n currentPage,\n totalPages,\n otherPhases,\n showPhase,\n icons: {\n mdiCalendarMultiselect,\n ...icons,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestTestingView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestTestingView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DisasterRecoveryTestTestingView.vue?vue&type=template&id=44ce742d&scoped=true&\"\nimport script from \"./DisasterRecoveryTestTestingView.vue?vue&type=script&lang=ts&\"\nexport * from \"./DisasterRecoveryTestTestingView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"44ce742d\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VPagination } from 'vuetify/lib/components/VPagination';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VIcon,VList,VListItem,VListItemTitle,VMenu,VPagination,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.disasterRecoveryTest && _vm.disasterRecoveryTestDetails)?_c('pd-form-base',{attrs:{\"title\":_vm.title,\"subtitle\":_vm.disasterRecoveryTest.info}},[_c('router-view',{key:_vm.disasterRecoveryTestDetails.uuid,attrs:{\"disaster-recovery-test\":_vm.disasterRecoveryTestDetails,\"items-per-page\":10},on:{\"reload\":_vm.reload}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport i18n from '@/i18n';\nimport DisasterRecoveryTestService from '@/services/DisasterRecoveryTestService';\nimport { DateTemplate, LanguageTemplate } from '@/core/helpers/templates';\nimport { DateFormat } from '@/core/helpers/templates/DateTemplate';\nimport { DisasterRecoveryTestDto, DisasterRecoveryTestStatus } from '@/dtos/bcm/testing/DisasterRecoveryTestDto';\nimport router from '@/router';\nimport { DisasterRecoveryTestDetailsDto } from '@/dtos/bcm/testing/DisasterRecoveryTestDetailsDto';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\n\nexport default defineComponent({\n name: 'DisasterRecoveryTestUserView',\n\n components: {\n PdFormBase,\n },\n\n props: {\n testId: {\n type: String,\n required: true,\n },\n },\n\n setup(props, { root }) {\n const title = ref('');\n const disasterRecoveryTest = ref(null);\n const disasterRecoveryTestDetails = ref(null);\n\n watch(\n () => root.$route.name,\n async () => {\n await reload();\n },\n {\n immediate: true,\n },\n );\n\n async function reload() {\n disasterRecoveryTestDetails.value = null;\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('testing.dr.busy.loadingTest').toString());\n try {\n const test = await DisasterRecoveryTestService.GetTest(parseInt(props.testId));\n title.value = `${LanguageTemplate(test, 'name').text} (${DateTemplate(test.start, DateFormat.Local).text} - ${DateTemplate(test.end, DateFormat.Local).text})`;\n disasterRecoveryTest.value = test;\n\n const routes: { [key: string]: DisasterRecoveryTestStatus } = {\n 'bcm.testing.dr.test.confirmation': DisasterRecoveryTestStatus.Confirmation,\n 'bcm.testing.dr.test.scheduling': DisasterRecoveryTestStatus.Scheduling,\n 'bcm.testing.dr.test.testing': DisasterRecoveryTestStatus.Testing,\n 'bcm.testing.dr.test.finalization': DisasterRecoveryTestStatus.Finalization,\n 'bcm.testing.dr.test.finished': DisasterRecoveryTestStatus.Finished,\n };\n\n // if try to navigate to a route after current status\n if (router.currentRoute.name && router.currentRoute.name !== 'bcm.testing.dr.test' && routes[router.currentRoute.name] > test.status) {\n for (const i in routes) {\n if (routes[i] === test.status) {\n router.replace({ name: i, params: { testId: props.testId } });\n }\n }\n }\n\n if (router.currentRoute.name === 'bcm.testing.dr.test.confirmation') {\n disasterRecoveryTestDetails.value = await DisasterRecoveryTestService.GetConfirmationDetails(parseInt(props.testId));\n } else if (router.currentRoute.name === 'bcm.testing.dr.test.scheduling') {\n disasterRecoveryTestDetails.value = await DisasterRecoveryTestService.GetSchedulingDetails(parseInt(props.testId));\n } else if (router.currentRoute.name === 'bcm.testing.dr.test.testing') {\n disasterRecoveryTestDetails.value = await DisasterRecoveryTestService.GetTestingDetails(parseInt(props.testId));\n } else if (router.currentRoute.name === 'bcm.testing.dr.test.finalization') {\n disasterRecoveryTestDetails.value = await DisasterRecoveryTestService.GetFinalizationDetails(parseInt(props.testId));\n } else if (router.currentRoute.name === 'bcm.testing.dr.test.finished') {\n disasterRecoveryTestDetails.value = await DisasterRecoveryTestService.GetFinishedDetails(parseInt(props.testId));\n }\n\n // if navigated to test landing page move to appropriate form\n if (router.currentRoute.name === 'bcm.testing.dr.test') {\n if (test.status === DisasterRecoveryTestStatus.Confirmation) {\n router.replace({ name: 'bcm.testing.dr.test.confirmation', params: { testId: props.testId } });\n } else if (test.status === DisasterRecoveryTestStatus.Scheduling) {\n router.replace({ name: 'bcm.testing.dr.test.scheduling', params: { testId: props.testId } });\n } else if (test.status === DisasterRecoveryTestStatus.Testing) {\n router.replace({ name: 'bcm.testing.dr.test.testing', params: { testId: props.testId } });\n } else if (test.status === DisasterRecoveryTestStatus.Finalization) {\n router.replace({ name: 'bcm.testing.dr.test.finalization', params: { testId: props.testId } });\n } else if (test.status === DisasterRecoveryTestStatus.Finished) {\n router.replace({ name: 'bcm.testing.dr.test.finished', params: { testId: props.testId } });\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error);\n }\n\n BusyIndicatorService.RemoveBusy(busy);\n }\n\n return {\n title,\n disasterRecoveryTest,\n disasterRecoveryTestDetails,\n confirmation: 1,\n scheduling: 2,\n reload,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestUserView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestUserView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DisasterRecoveryTestUserView.vue?vue&type=template&id=6822979b&scoped=true&\"\nimport script from \"./DisasterRecoveryTestUserView.vue?vue&type=script&lang=ts&\"\nexport * from \"./DisasterRecoveryTestUserView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DisasterRecoveryTestUserView.vue?vue&type=style&index=0&id=6822979b&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6822979b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"loading\":_vm.loading,\"title\":_vm.$t('srb.taxonomy.applications.title'),\"force-subtitle\":\"\"},scopedSlots:_vm._u([{key:\"subtitle-left\",fn:function(){return [(_vm.showUsersButton)?_c('v-btn',{staticClass:\"text-none mb-1\",attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showTaxonomyUsers = true}}},[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.allowedUsers'))+\" \")]):_vm._e(),_c('v-btn',{staticClass:\"text-none mb-1 ml-4\",attrs:{\"small\":\"\"},on:{\"click\":_vm.exportData}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.export)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1)]},proxy:true}])},[(_vm.showTaxonomyUsers)?_c('taxonomy-users-editor',{attrs:{\"type\":\"applications\"},on:{\"close\":function($event){_vm.showTaxonomyUsers = false}}}):_vm._e(),(_vm.inEditMode)?_c('application-taxonomy-editor',{attrs:{\"item\":_vm.editingTaxonomy,\"reference\":_vm.editingApplication.name,\"services\":_vm.editingApplication != null ? _vm.editingApplication.services : []},on:{\"save\":_vm.saveTaxonomyChanges,\"cancel\":_vm.cancelTaxonomyChanges}}):_vm._e(),_c('v-expansion-panels',{staticClass:\"mt-2\",attrs:{\"popout\":\"\"}},_vm._l((_vm.applications),function(a){return _c('srb-application-line',{key:a.uuid,attrs:{\"application\":a,\"criticalities\":_vm.criticalities},on:{\"add\":_vm.addTaxonomy,\"open\":_vm.openTaxonomy,\"remove\":_vm.removeTaxonomy}})}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup-card',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.editUsersTitle' ))+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.closeEditor}},[_vm._v(\" \"+_vm._s(_vm.$t('ok'))+\" \")])]},proxy:true}])},[_c('user-selector',{attrs:{\"visible\":_vm.showUserSelector,\"datasource\":_vm.users,\"exclude\":_vm.excludedUsers},on:{\"select\":_vm.addSelectedUser,\"cancel\":function($event){_vm.showUserSelector = false}}}),_c('pd-data-table',{key:_vm.tableUuid,attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.headers,\"options\":_vm.options,\"height\":\"300px\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { defineComponent, PropType, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport { PdDataTable, PdDataTableHeader, PdDataTableOptions } from '@/components/core/PdDataTable';\nimport { ApiDataSource } from '@/core/datasource';\nimport { SimpleUserDto } from '@/dtos';\nimport { ApplicationModule } from '@/store';\nimport icons from '@/core/icons';\nimport UserSelector from '../all/UserSelector.vue';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { TaxonomyUserDto } from '@/dtos/srb';\nimport { v4 } from 'uuid';\n\nexport default defineComponent({\n name: 'TaxonomyUsersEditor',\n\n components: {\n PdPopupCard,\n PdDataTable,\n UserSelector,\n },\n\n props: {\n type: {\n type: String as PropType<'applications' | 'locations' | 'associates' | 'personnel'>,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const entityId = ApplicationModule.Entity?.id;\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const tableUuid = ref(v4());\n\n const showUserSelector = ref(false);\n const users = DatasourcesService.Users;\n const excludedUsers = ref>([]);\n\n let datasource: ApiDataSource;\n if (props.type === 'applications') {\n datasource = new ApiDataSource({ api: `/masterplans/${entityId}/srb/Applications/Users` });\n } else if (props.type === 'locations') {\n datasource = new ApiDataSource({ api: `/masterplans/${entityId}/srb/Locations/Users` });\n } else if (props.type === 'associates') {\n datasource = new ApiDataSource({ api: `/masterplans/${entityId}/srb/Associates/Users` });\n } else if (props.type === 'personnel') {\n datasource = new ApiDataSource({ api: `/masterplans/${entityId}/srb/Personnel/Users` });\n } else {\n throw new Error(`Type \"${props.type}\" is not recognized...`);\n }\n\n const headers: Array> = [\n {\n id: 'info',\n value: 'info',\n template: (t) => {\n return { text: t.user.info };\n },\n text: i18n.t('user').toString(),\n actions: [\n {\n id: 'add',\n title: '',\n icon: icons.plus,\n callback: async () => {\n excludedUsers.value = (await datasource.data()).map(i => i.user);\n showUserSelector.value = true;\n },\n },\n ],\n },\n ];\n\n const options: PdDataTableOptions = {\n editable: {\n add: false,\n edit: false,\n delete: true,\n },\n pagination: false,\n };\n\n function closeEditor() {\n emit('close');\n }\n\n async function addSelectedUser(user: SimpleUserDto | null) {\n if (user == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n showUserSelector.value = false;\n await datasource.create({ id: 0, user: user });\n tableUuid.value = v4();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n //\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n tableUuid,\n closeEditor,\n datasource,\n headers,\n options,\n\n showUserSelector,\n users,\n excludedUsers,\n addSelectedUser,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaxonomyUsersEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaxonomyUsersEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TaxonomyUsersEditor.vue?vue&type=template&id=5daecc47&scoped=true&\"\nimport script from \"./TaxonomyUsersEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./TaxonomyUsersEditor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5daecc47\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","import axios from '@/api/axios';\nimport { EntityApiBase } from '@/api/EntityApiBase';\nimport { FileDto } from '@/dtos/all';\nimport { ApplicationTaxonomyDto, AssociateTaxonomyDto, LocationTaxonomyDto, PersonnelTaxonomyDto, SrbApplicationDto, SrbReportParametersDto } from '@/dtos/srb';\n\nexport default class SrbTaxonomyApi extends EntityApiBase {\n static async GetApplicationsForTaxonomy(): Promise> {\n const response = await axios.get>(`/masterplans/${EntityApiBase.EntityId}/srb/Applications`);\n return Promise.resolve(response.data);\n }\n\n static async CreateApplicationTaxonomy(applicationId: number, taxonomy: ApplicationTaxonomyDto): Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/srb/Applications/${applicationId}/Taxonomies`, taxonomy);\n return Promise.resolve(response.data);\n }\n\n static async UpdateApplicationTaxonomy(applicationId: number, taxonomy: ApplicationTaxonomyDto): Promise {\n const response = await axios.put(`/masterplans/${EntityApiBase.EntityId}/srb/Applications/${applicationId}/Taxonomies/${taxonomy.id}`, taxonomy);\n return Promise.resolve(response.data);\n }\n\n static async RemoveApplicationTaxonomy(applicationId: number, taxonomyId: number): Promise {\n const response = await axios.delete(`/masterplans/${EntityApiBase.EntityId}/srb/Applications/${applicationId}/Taxonomies/${taxonomyId}`);\n return Promise.resolve(response.data);\n }\n\n static async ExportApplicationsTaxonomy(): Promise {\n const response = await axios.get(`/masterplans/${EntityApiBase.EntityId}/srb/Applications/Export`);\n return Promise.resolve(response.data);\n }\n\n static async GetLocationsForTaxonomy(): Promise> {\n const response = await axios.get>(`/masterplans/${EntityApiBase.EntityId}/srb/Locations`);\n return Promise.resolve(response.data);\n }\n\n static async SaveLocationTaxonomy(location: LocationTaxonomyDto): Promise {\n const response = await axios.put(`/masterplans/${EntityApiBase.EntityId}/srb/Locations/${location.id}`, location);\n return Promise.resolve(response.data);\n }\n\n static async ExportLocationsTaxonomy(): Promise {\n const response = await axios.get(`/masterplans/${EntityApiBase.EntityId}/srb/Locations/Export`);\n return Promise.resolve(response.data);\n }\n\n static async GetAssociatesForTaxonomy(): Promise> {\n const response = await axios.get>(`/masterplans/${EntityApiBase.EntityId}/srb/Associates`);\n return Promise.resolve(response.data);\n }\n\n static async ExportAssociatesTaxonomy(): Promise {\n const response = await axios.get(`/masterplans/${EntityApiBase.EntityId}/srb/Associates/Export`);\n return Promise.resolve(response.data);\n }\n\n static async GetPersonnelForTaxonomy(): Promise> {\n const response = await axios.get>(`/masterplans/${EntityApiBase.EntityId}/srb/Personnel`);\n return Promise.resolve(response.data);\n }\n\n static async ExportPersonnelTaxonomy(): Promise {\n const response = await axios.get(`/masterplans/${EntityApiBase.EntityId}/srb/Personnel/Export`);\n return Promise.resolve(response.data);\n }\n\n static async ExportSrbReport(parameters: SrbReportParametersDto): Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/srb/Reporting/Full`, parameters);\n\n return Promise.resolve(response.data);\n }\n}\n","import SrbTaxonomyApi from '@/api/srb/SrbTaxonomyApi';\nimport { FileDto } from '@/dtos/all';\nimport { ApplicationTaxonomyDto, AssociateTaxonomyDto, LocationTaxonomyDto, PersonnelTaxonomyDto, SrbApplicationDto, SrbReportParametersDto } from '@/dtos/srb';\n\nexport default class SrbTaxonomyService {\n public static async GetApplicationsForTaxonomy(): Promise> {\n return SrbTaxonomyApi.GetApplicationsForTaxonomy();\n }\n\n public static async SaveApplicationTaxonomy(application: SrbApplicationDto, taxonomy: ApplicationTaxonomyDto): Promise {\n if (taxonomy.id === 0) {\n return SrbTaxonomyApi.CreateApplicationTaxonomy(application.id, taxonomy);\n } else {\n return SrbTaxonomyApi.UpdateApplicationTaxonomy(application.id, taxonomy);\n }\n }\n\n public static async RemoveApplicationTaxonomy(application: SrbApplicationDto, taxonomy: ApplicationTaxonomyDto): Promise {\n return SrbTaxonomyApi.RemoveApplicationTaxonomy(application.id, taxonomy.id);\n }\n\n public static async ExportApplicationsTaxonomy(): Promise {\n return SrbTaxonomyApi.ExportApplicationsTaxonomy();\n }\n\n public static async GetLocationsForTaxonomy(): Promise> {\n return SrbTaxonomyApi.GetLocationsForTaxonomy();\n }\n\n public static async SaveLocationTaxonomy(application: LocationTaxonomyDto): Promise {\n return SrbTaxonomyApi.SaveLocationTaxonomy(application);\n }\n\n public static async ExportLocationsTaxonomy(): Promise {\n return SrbTaxonomyApi.ExportLocationsTaxonomy();\n }\n\n public static async GetAssociatesForTaxonomy(): Promise> {\n return SrbTaxonomyApi.GetAssociatesForTaxonomy();\n }\n\n public static async ExportAssociatesTaxonomy(): Promise {\n return SrbTaxonomyApi.ExportAssociatesTaxonomy();\n }\n\n public static async GetPersonnelForTaxonomy(): Promise> {\n return SrbTaxonomyApi.GetPersonnelForTaxonomy();\n }\n\n public static async ExportPersonnelTaxonomy(): Promise {\n return SrbTaxonomyApi.ExportPersonnelTaxonomy();\n }\n\n public static async ExportSrbReport(parameters: SrbReportParametersDto): Promise {\n return SrbTaxonomyApi.ExportSrbReport(parameters);\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showServiceSelector)?_c('item-selector',{attrs:{\"datasource\":_vm.servicesDatasource,\"exclude\":_vm.currentServices,\"translatable\":false},on:{\"select\":_vm.selectSevice,\"cancel\":function($event){_vm.showServiceSelector = false}}}):_vm._e(),_c('taxonomy-editor',{attrs:{\"item\":_vm.item,\"reference\":_vm.reference,\"type\":\"application\"},on:{\"save\":_vm.saveTaxonomyChanges,\"cancel\":_vm.cancelTaxonomyChanges}},[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.services'))+\" \"),_c('v-btn',{staticClass:\"text-none mb-1\",attrs:{\"small\":\"\"},on:{\"click\":_vm.addService}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.add)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \")],1)],1)]),_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},_vm._l((_vm.item.services),function(s){return _c('div',{key:s.id},[_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"center\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.removeService(s)}}},[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.remove)+\" \")])],1)],1),_c('v-col',[_vm._v(\" \"+_vm._s(s.name)+\" \")])],1)],1)}),0)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup-card',{attrs:{\"index\":10},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.reference)+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancelChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")])]},proxy:true}])},[_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.associate.name'))+\" \")]),_c('td',[_c('item-selector-text-field',{staticClass:\"my-0\",attrs:{\"datasource\":_vm.associates,\"dense\":\"\",\"translatable\":\"\",\"hide-details\":\"\"},model:{value:(_vm.item.associateId),callback:function ($$v) {_vm.$set(_vm.item, \"associateId\", $$v)},expression:\"item.associateId\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.associate.existingContract'))+\" \")]),_c('td',[_c('v-checkbox',{staticClass:\"my-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"disabled\":_vm.item.associateId == null},model:{value:(_vm.item.existingContract),callback:function ($$v) {_vm.$set(_vm.item, \"existingContract\", $$v)},expression:\"item.existingContract\"}})],1)]),(_vm.item.existingContract)?_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.associate.contract'))+\" \")]),_c('td',[_c('item-selector-text-field',{attrs:{\"datasource\":_vm.contracts,\"display-field\":_vm.contractTemplate,\"headers\":_vm.contractHeaders,\"disabled\":_vm.item.associateId == null,\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.item.contractId),callback:function ($$v) {_vm.$set(_vm.item, \"contractId\", $$v)},expression:\"item.contractId\"}})],1)]):_vm._e(),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfDependency'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.degreeOfDependencies,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":_vm.item.associateId == null},model:{value:(_vm.item.degreeOfDependency),callback:function ($$v) {_vm.$set(_vm.item, \"degreeOfDependency\", $$v)},expression:\"item.degreeOfDependency\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.substituteType'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.substituteTypes,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":_vm.item.associateId == null},model:{value:(_vm.item.substituteType),callback:function ($$v) {_vm.$set(_vm.item, \"substituteType\", $$v)},expression:\"item.substituteType\"}})],1)]),(_vm.item.substituteType === _vm.substituteExternal)?[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.substituteServiceProvider'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\",\"disabled\":_vm.item.associateId == null},model:{value:(_vm.item.substitute),callback:function ($$v) {_vm.$set(_vm.item, \"substitute\", $$v)},expression:\"item.substitute\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfComparability'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.degreeOfComparabilities,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.enableSubstitutability || _vm.item.associateId == null},model:{value:(_vm.item.degreeOfComparability),callback:function ($$v) {_vm.$set(_vm.item, \"degreeOfComparability\", $$v)},expression:\"item.degreeOfComparability\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.timeToEnableSubstitute'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.timeToEnableSubstitutes,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.enableSubstitutability || _vm.item.associateId == null},model:{value:(_vm.item.timeToEnableSubstitutability),callback:function ($$v) {_vm.$set(_vm.item, \"timeToEnableSubstitutability\", $$v)},expression:\"item.timeToEnableSubstitutability\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.costOfAlternativeService'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.costOfAlternativeServices,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":!_vm.enableSubstitutability || _vm.item.associateId == null},model:{value:(_vm.item.costOfAlternative),callback:function ($$v) {_vm.$set(_vm.item, \"costOfAlternative\", $$v)},expression:\"item.costOfAlternative\"}})],1)])]:_vm._e(),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfSubstitutability'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.degreeOfSubstitutabilities,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":\"\"},model:{value:(_vm.degreeOfSubstitutability),callback:function ($$v) {_vm.degreeOfSubstitutability=$$v},expression:\"degreeOfSubstitutability\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.criticality'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.criticalitiesSelect,\"dense\":\"\",\"hide-details\":\"\",\"disabled\":\"\"},model:{value:(_vm.isCritical),callback:function ($$v) {_vm.isCritical=$$v},expression:\"isCritical\"}})],1)]),(_vm.isCritical)?[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.criticalitySelector'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.criticalities,\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.item.criticalityId),callback:function ($$v) {_vm.$set(_vm.item, \"criticalityId\", $$v)},expression:\"item.criticalityId\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.srbComment'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.item.srbComment),callback:function ($$v) {_vm.$set(_vm.item, \"srbComment\", $$v)},expression:\"item.srbComment\"}})],1)])]:_vm._e(),_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport {\n AssociateDto,\n CostOfAlternative,\n CostOfAlternativesSelect,\n CriticalitiesSelect,\n DegreeOfComparabilitiesSelect,\n DegreeOfComparability,\n DegreeOfDependenciesSelect,\n DegreeOfDependency,\n DegreeOfSubstitutabilitiesSelect,\n DegreeOfSubstitutability,\n SubstituteType,\n SubstituteTypeExternalSelect,\n TimeToEnableSubstitutabilitiesSelect,\n TimeToEnableSubstitutability,\n} from '@/dtos';\nimport type { AssetTaxonomyDto, ContractDto } from '@/dtos/srb';\nimport { ApplicationModule } from '@/store';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport ItemSelectorTextField from '@/components/all/ItemSelectorTextField.vue';\nimport { PdDataTableHeader } from '@/components/core/PdDataTable';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport { AxiosError } from 'axios';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { ISelectItem } from '@/core';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport DatasourcesService from '@/services/DatasourcesService';\n\nexport default defineComponent({\n name: 'TaxonomyEditor',\n\n components: {\n PdPopupCard,\n ItemSelectorTextField,\n },\n\n props: {\n reference: {\n type: String,\n required: true,\n },\n\n item: {\n type: Object as PropType,\n required: true,\n },\n\n type: {\n type: String as PropType<'application' | 'location'>,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const entityId = ApplicationModule.Entity?.id;\n if (entityId == null) {\n throw new Error('entity is null...');\n }\n\n if (props.item.degreeOfDependency == null || props.item.degreeOfDependency < 1) {\n props.item.degreeOfDependency = DegreeOfDependency.Low;\n }\n\n if (props.item.substituteType == null || props.item.substituteType < 1) {\n props.item.substituteType = SubstituteType.NA;\n }\n\n const criticalities = ref>([]);\n\n const associates = new ApiDataSource({ api: `masterplans/${entityId}/bc/Associates` });\n\n const contracts = ref>(new ApiDataSource({ api: `masterplans/${entityId}/srb/Contracts/Associate/${props.item.associateId}?${props.type === 'application' ? 'it' : 'estate'}=true` }));\n\n const enableSubstitutability = computed(() => {\n return props.item.substituteType === SubstituteType.External;\n });\n\n const degreeOfSubstitutability = computed(() => {\n if (!enableSubstitutability.value) {\n return DegreeOfSubstitutability.NotSubstitutable;\n }\n\n if (props.item.timeToEnableSubstitutability == null || props.item.timeToEnableSubstitutability < 1 ||\n props.item.degreeOfComparability == null || props.item.degreeOfComparability < 1 ||\n props.item.costOfAlternative == null || props.item.costOfAlternative < 1\n ) {\n return DegreeOfSubstitutability.NotSubstitutable;\n }\n\n if (props.item.timeToEnableSubstitutability >= TimeToEnableSubstitutability.HalfYearToYear) {\n return DegreeOfSubstitutability.Low;\n }\n\n if (props.item.degreeOfComparability === DegreeOfComparability.Low) {\n return DegreeOfSubstitutability.Low;\n }\n\n if (props.item.degreeOfComparability === DegreeOfComparability.High &&\n props.item.timeToEnableSubstitutability <= TimeToEnableSubstitutability.WeekToMonth &&\n props.item.costOfAlternative === CostOfAlternative.ComparableToCurrent) {\n return DegreeOfSubstitutability.High;\n }\n\n if (props.item.degreeOfComparability === DegreeOfComparability.Medium &&\n props.item.costOfAlternative === CostOfAlternative.NotComparableToCurrent) {\n return DegreeOfSubstitutability.Low;\n }\n\n if (props.item.degreeOfComparability === DegreeOfComparability.High &&\n props.item.timeToEnableSubstitutability > TimeToEnableSubstitutability.WeekToMonth &&\n props.item.costOfAlternative === CostOfAlternative.NotComparableToCurrent) {\n return DegreeOfSubstitutability.Low;\n }\n\n return DegreeOfSubstitutability.Medium;\n });\n\n const isCritical = computed(() => {\n if (props.item.degreeOfDependency == null ||\n props.item.degreeOfDependency < DegreeOfDependency.Low ||\n props.item.degreeOfSubstitutability == null ||\n props.item.degreeOfComparability == null) {\n return false;\n }\n\n if (props.item.degreeOfDependency === DegreeOfDependency.Low ||\n props.item.degreeOfSubstitutability === DegreeOfSubstitutability.High ||\n props.item.degreeOfComparability >= DegreeOfComparability.Medium) {\n return false;\n } else {\n return true;\n }\n });\n\n watch(\n () => props.item.existingContract,\n (newValue) => {\n if (newValue === false) {\n props.item.contractId = undefined;\n }\n },\n );\n\n watch(\n () => props.item.associateId,\n (newValue) => {\n props.item.existingContract = false;\n if (newValue != null) {\n contracts.value = new ApiDataSource({ api: `masterplans/${entityId}/srb/Contracts/Associate/${props.item.associateId}?${props.type === 'application' ? 'it' : 'estate'}=true` });\n } else {\n props.item.contractId = undefined;\n props.item.displayContractId = '';\n props.item.displayContractDescription = '';\n }\n },\n );\n\n function saveChanges() {\n emit('save');\n }\n\n function cancelChanges() {\n emit('cancel');\n }\n\n function contractTemplate(contract: ContractDto): string {\n return `(${contract.contractId}) ${contract.description}`;\n }\n\n const contractHeaders: Array> = [\n {\n id: 'contractId',\n text: i18n.t('srb.contracts.contractId').toString(),\n value: 'contractId',\n },\n {\n id: 'description',\n text: i18n.t('srb.contracts.description').toString(),\n value: 'description',\n defaultValue: '',\n },\n ];\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n (await DatasourcesService.Srb.Criticalities.data())\n .forEach(c => {\n criticalities.value.push({ text: LanguageTemplate(c, 'name').text, value: c.id });\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n associates,\n\n contracts,\n contractTemplate,\n contractHeaders,\n\n saveChanges,\n cancelChanges,\n\n enableSubstitutability,\n\n degreeOfDependencies: DegreeOfDependenciesSelect,\n degreeOfComparabilities: DegreeOfComparabilitiesSelect,\n timeToEnableSubstitutes: TimeToEnableSubstitutabilitiesSelect,\n costOfAlternativeServices: CostOfAlternativesSelect,\n degreeOfSubstitutabilities: DegreeOfSubstitutabilitiesSelect,\n criticalitiesSelect: CriticalitiesSelect,\n substituteTypes: SubstituteTypeExternalSelect,\n\n criticalities,\n\n degreeOfSubstitutability,\n isCritical,\n\n substituteExternal: SubstituteType.External,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaxonomyEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaxonomyEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TaxonomyEditor.vue?vue&type=template&id=f09e3716&scoped=true&\"\nimport script from \"./TaxonomyEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./TaxonomyEditor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f09e3716\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCheckbox,VSelect,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport TaxonomyEditor from './TaxonomyEditor.vue';\nimport { ApplicationTaxonomyDto, SimpleServiceDto } from '@/dtos/srb';\nimport icons from '@/core/icons';\nimport { ArrayDataSource } from '@/core/datasource';\nimport ItemSelector from '@/components/all/ItemSelector.vue';\n\nexport default defineComponent({\n name: 'ApplicationTaxonomyEditor',\n\n components: {\n TaxonomyEditor,\n ItemSelector,\n },\n\n props: {\n reference: {\n type: String,\n required: true,\n },\n\n item: {\n type: Object as PropType,\n required: true,\n },\n\n services: {\n type: Array as PropType>,\n default: [],\n },\n },\n\n setup(props, { emit }) {\n const showServiceSelector = ref(false);\n const servicesDatasource = new ArrayDataSource(props.services, {});\n const currentServices = computed>(() => {\n return props.item.services;\n });\n\n function addService() {\n showServiceSelector.value = true;\n }\n\n function selectSevice(service: SimpleServiceDto) {\n props.item.services.push(service);\n showServiceSelector.value = false;\n }\n\n function removeService(service: SimpleServiceDto) {\n for (let i = 0; i < props.item.services.length; ++i) {\n if (props.item.services[i].id === service.id) {\n props.item.services.splice(i, 1);\n break;\n }\n }\n }\n\n return {\n saveTaxonomyChanges: () => emit('save'),\n cancelTaxonomyChanges: () => emit('cancel'),\n\n addService,\n removeService,\n\n showServiceSelector,\n servicesDatasource,\n currentServices,\n selectSevice,\n\n icons: {\n add: icons.plus,\n remove: icons.remove,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplicationTaxonomyEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplicationTaxonomyEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ApplicationTaxonomyEditor.vue?vue&type=template&id=d3ae4fee&scoped=true&\"\nimport script from \"./ApplicationTaxonomyEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./ApplicationTaxonomyEditor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d3ae4fee\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VIcon,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"50rem\",\"height\":\"700px\"}},[_c('div',{staticClass:\"row my-2 mt-3\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.contractId'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.contractId),callback:function ($$v) {_vm.$set(_vm.contract, \"contractId\", $$v)},expression:\"contract.contractId\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-switch',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.isActive'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.isActive),callback:function ($$v) {_vm.$set(_vm.contract, \"isActive\", $$v)},expression:\"contract.isActive\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-select',{attrs:{\"items\":_vm.contractTypes,\"label\":_vm.$t('srb.contracts.contractType'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.contractType),callback:function ($$v) {_vm.$set(_vm.contract, \"contractType\", $$v)},expression:\"contract.contractType\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.description'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.description),callback:function ($$v) {_vm.$set(_vm.contract, \"description\", $$v)},expression:\"contract.description\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('item-selector-text-field',{staticClass:\"mt-0\",attrs:{\"datasource\":_vm.associates,\"label\":_vm.$t('srb.contracts.associate'),\"translatable\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.associateId),callback:function ($$v) {_vm.$set(_vm.contract, \"associateId\", $$v)},expression:\"contract.associateId\"}})],1),_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"center\"}},[_c('v-col',[_c('v-divider')],1),_c('v-col',{staticClass:\"text-center\"},[_c('label',{staticClass:\"subtitle\"},[_vm._v(\" \"+_vm._s(_vm.$t('srb.contracts.srbEssentialFields'))+\" \")])]),_c('v-col',[_c('v-divider')],1)],1),_c('div',{staticClass:\"row my-2\"},[_c('tree-item-selector-text-field',{staticClass:\"mt-0\",attrs:{\"datasource\":_vm.srbServiceTypes,\"label\":_vm.$t('srb.contracts.serviceType'),\"translatable\":\"\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.serviceTypeId),callback:function ($$v) {_vm.$set(_vm.contract, \"serviceTypeId\", $$v)},expression:\"contract.serviceTypeId\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.timeToAccessContracts'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.timeToAccessContracts),callback:function ($$v) {_vm.$set(_vm.contract, \"timeToAccessContracts\", $$v)},expression:\"contract.timeToAccessContracts\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.resolutionProof'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.resolutionProof),callback:function ($$v) {_vm.$set(_vm.contract, \"resolutionProof\", $$v)},expression:\"contract.resolutionProof\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.governingLaw'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.governingLaw),callback:function ($$v) {_vm.$set(_vm.contract, \"governingLaw\", $$v)},expression:\"contract.governingLaw\"}})],1),_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"center\"}},[_c('v-col',[_c('v-divider')],1),_c('v-col',{staticClass:\"text-center\"},[_c('label',{staticClass:\"subtitle\"},[_vm._v(\" \"+_vm._s(_vm.$t('srb.contracts.otherFields'))+\" \")])]),_c('v-col',[_c('v-divider')],1)],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.startDate'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.startDate),callback:function ($$v) {_vm.$set(_vm.contract, \"startDate\", $$v)},expression:\"contract.startDate\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.endDate'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.endDate),callback:function ($$v) {_vm.$set(_vm.contract, \"endDate\", $$v)},expression:\"contract.endDate\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.nextRenewalDate'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.nextRenewalDate),callback:function ($$v) {_vm.$set(_vm.contract, \"nextRenewalDate\", $$v)},expression:\"contract.nextRenewalDate\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.ebaOutsourcingCritical'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.ebaOutsourcingCritical),callback:function ($$v) {_vm.$set(_vm.contract, \"ebaOutsourcingCritical\", $$v)},expression:\"contract.ebaOutsourcingCritical\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.businessOwner'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.businessOwner),callback:function ($$v) {_vm.$set(_vm.contract, \"businessOwner\", $$v)},expression:\"contract.businessOwner\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.businessOwnerContact'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.businessOwnerContact),callback:function ($$v) {_vm.$set(_vm.contract, \"businessOwnerContact\", $$v)},expression:\"contract.businessOwnerContact\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.price'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.price),callback:function ($$v) {_vm.$set(_vm.contract, \"price\", $$v)},expression:\"contract.price\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.recurrenceInterval'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.recurrenceInterval),callback:function ($$v) {_vm.$set(_vm.contract, \"recurrenceInterval\", $$v)},expression:\"contract.recurrenceInterval\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.transitionPeriod'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.transitionPeriod),callback:function ($$v) {_vm.$set(_vm.contract, \"transitionPeriod\", $$v)},expression:\"contract.transitionPeriod\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.jurisdiction'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.jurisdiction),callback:function ($$v) {_vm.$set(_vm.contract, \"jurisdiction\", $$v)},expression:\"contract.jurisdiction\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.partOfTheGroup'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.partOfTheGroup),callback:function ($$v) {_vm.$set(_vm.contract, \"partOfTheGroup\", $$v)},expression:\"contract.partOfTheGroup\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.supplyingModel'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.supplyingModel),callback:function ($$v) {_vm.$set(_vm.contract, \"supplyingModel\", $$v)},expression:\"contract.supplyingModel\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.mainPenaltiesDelayPayments'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.mainPenaltiesDelayPayments),callback:function ($$v) {_vm.$set(_vm.contract, \"mainPenaltiesDelayPayments\", $$v)},expression:\"contract.mainPenaltiesDelayPayments\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.mainPenaltiesDelayPaymentsDescription'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.mainPenaltiesDelayPaymentsDescription),callback:function ($$v) {_vm.$set(_vm.contract, \"mainPenaltiesDelayPaymentsDescription\", $$v)},expression:\"contract.mainPenaltiesDelayPaymentsDescription\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.earlyTerminationTriggers'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.earlyTerminationTriggers),callback:function ($$v) {_vm.$set(_vm.contract, \"earlyTerminationTriggers\", $$v)},expression:\"contract.earlyTerminationTriggers\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.earlyTerminationTriggersDescription'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.earlyTerminationTriggersDescription),callback:function ($$v) {_vm.$set(_vm.contract, \"earlyTerminationTriggersDescription\", $$v)},expression:\"contract.earlyTerminationTriggersDescription\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.earlyTerminationTriggersCounterParty'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.earlyTerminationTriggersCounterParty),callback:function ($$v) {_vm.$set(_vm.contract, \"earlyTerminationTriggersCounterParty\", $$v)},expression:\"contract.earlyTerminationTriggersCounterParty\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.earlyTerminationTriggersCounterPartyDescription'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.earlyTerminationTriggersCounterPartyDescription),callback:function ($$v) {_vm.$set(_vm.contract, \"earlyTerminationTriggersCounterPartyDescription\", $$v)},expression:\"contract.earlyTerminationTriggersCounterPartyDescription\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.timingTerminate'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.timingTerminate),callback:function ($$v) {_vm.$set(_vm.contract, \"timingTerminate\", $$v)},expression:\"contract.timingTerminate\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.timingTerminateCounterParty'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.timingTerminateCounterParty),callback:function ($$v) {_vm.$set(_vm.contract, \"timingTerminateCounterParty\", $$v)},expression:\"contract.timingTerminateCounterParty\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.operationalSupportInTermination'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.operationalSupportInTermination),callback:function ($$v) {_vm.$set(_vm.contract, \"operationalSupportInTermination\", $$v)},expression:\"contract.operationalSupportInTermination\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.armsLengthPricingStructure'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.armsLengthPricingStructure),callback:function ($$v) {_vm.$set(_vm.contract, \"armsLengthPricingStructure\", $$v)},expression:\"contract.armsLengthPricingStructure\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.relationshipBetweenContracts'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.relationshipBetweenContracts),callback:function ($$v) {_vm.$set(_vm.contract, \"relationshipBetweenContracts\", $$v)},expression:\"contract.relationshipBetweenContracts\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.paymentTerms'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.paymentTerms),callback:function ($$v) {_vm.$set(_vm.contract, \"paymentTerms\", $$v)},expression:\"contract.paymentTerms\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.quantitativePerformanceTargets'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.quantitativePerformanceTargets),callback:function ($$v) {_vm.$set(_vm.contract, \"quantitativePerformanceTargets\", $$v)},expression:\"contract.quantitativePerformanceTargets\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.qualitativePerformanceGoals'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.qualitativePerformanceGoals),callback:function ($$v) {_vm.$set(_vm.contract, \"qualitativePerformanceGoals\", $$v)},expression:\"contract.qualitativePerformanceGoals\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.subContractor'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.subContractor),callback:function ($$v) {_vm.$set(_vm.contract, \"subContractor\", $$v)},expression:\"contract.subContractor\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.conditionsOfPayment'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.conditionsOfPayment),callback:function ($$v) {_vm.$set(_vm.contract, \"conditionsOfPayment\", $$v)},expression:\"contract.conditionsOfPayment\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.existenceOfAutomaticRenewalClauses'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.existenceOfAutomaticRenewalClauses),callback:function ($$v) {_vm.$set(_vm.contract, \"existenceOfAutomaticRenewalClauses\", $$v)},expression:\"contract.existenceOfAutomaticRenewalClauses\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.quantitativePerformanceTargetsForTheProvider'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.quantitativePerformanceTargetsForTheProvider),callback:function ($$v) {_vm.$set(_vm.contract, \"quantitativePerformanceTargetsForTheProvider\", $$v)},expression:\"contract.quantitativePerformanceTargetsForTheProvider\"}})],1),_c('div',{staticClass:\"row my-2\"},[_c('v-text-field',{staticClass:\"mt-0\",attrs:{\"label\":_vm.$t('srb.contracts.particesAllowedToTerminate'),\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.contract.particesAllowedToTerminate),callback:function ($$v) {_vm.$set(_vm.contract, \"particesAllowedToTerminate\", $$v)},expression:\"contract.particesAllowedToTerminate\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport { ContractDto } from '@/dtos/srb';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport TreeItemSelectorTextField from '@/components/all/TreeItemSelectorTextField.vue';\nimport ItemSelectorTextField from '@/components/all/ItemSelectorTextField.vue';\n\nexport default defineComponent({\n name: 'ContractEditor',\n\n components: {\n TreeItemSelectorTextField,\n ItemSelectorTextField,\n },\n\n props: {\n contract: {\n type: Object as PropType,\n required: true,\n },\n\n contractTypes: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup() {\n return {\n srbServiceTypes: DatasourcesService.Srb.SrbServiceTypes,\n associates: DatasourcesService.Bcm.Associates,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContractEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContractEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContractEditor.vue?vue&type=template&id=420117f7&scoped=true&\"\nimport script from \"./ContractEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./ContractEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ContractEditor.vue?vue&type=style&index=0&id=420117f7&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"420117f7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VCol,VDivider,VRow,VSelect,VSwitch,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"center\"}},[_c('v-col',[_c('h4',[_vm._v(\" \"+_vm._s(_vm.application.name)+\" \")])]),(!_vm.assessed)?_c('v-col',{staticClass:\"shrink\"},[_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"red\",\"dense\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.attention)+\" \")])],1):_vm._e(),_c('v-col',{staticClass:\"shrink\"},[_c('div',{staticStyle:{\"width\":\"15rem\"}},[(!_vm.assessed)?_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.notAssessed'))+\" \")]):_vm._e()])])],1)],1),_c('v-expansion-panel-content',[(_vm.application.isHorizontalService)?_c('h5',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.horizontalCritical'))+\" \")]):_vm._e(),(_vm.application.services.length > 0)?_c('div',[_c('h4',{staticClass:\"my-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.requiredForServices'))+\" \"),_c('v-btn',{staticClass:\"mb-1\",attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"click\":function($event){_vm.expandRequiredServices = !_vm.expandRequiredServices}}},[(!_vm.expandRequiredServices)?_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.expand)+\" \")]):_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.collapse)+\" \")])],1)],1),_c('v-expand-transition',[(_vm.expandRequiredServices)?_c('div',[_c('ul',{staticClass:\"text-subtitle-2\"},_vm._l((_vm.application.services),function(s){return _c('li',{key:s.id},[_vm._v(\" \"+_vm._s(s.name)+\" \")])}),0)]):_vm._e()])],1):_vm._e(),_c('v-divider',{staticClass:\"my-3\"}),_c('div',[_c('h4',{staticClass:\"mb-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.taxonomies'))+\" \"),_c('v-btn',{staticClass:\"text-none mb-1\",attrs:{\"small\":\"\"},on:{\"click\":_vm.addNewTaxonomy}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.add)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \")],1)],1),(_vm.application.taxonomies && _vm.application.taxonomies.length > 0)?_vm._l((_vm.application.taxonomies),function(t){return _c('application-taxonomy-line',{key:t.uuid,attrs:{\"taxonomy\":t,\"criticalities\":_vm.criticalities},on:{\"open\":_vm.openTaxonomy,\"remove\":_vm.removeTaxonomy}})}):[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.noTaxonomies'))+\" \")]],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.menu)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('menu'))+\" \")],1)]}}])},[_c('v-list',[_c('v-list-item',{on:{\"click\":_vm.openTaxonomy}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.edit)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('edit.edit'))+\" \")])],1),_c('v-divider'),_c('v-list-item',{on:{\"click\":_vm.removeTaxonomy}},[_c('v-list-item-icon',{staticClass:\"mr-1\"},[_c('v-icon',{attrs:{\"small\":\"\",\"color\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.remove)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('remove'))+\" \")])],1)],1)],1)],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.associate'))+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm.taxonomy.associate)+\" \")])]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.contract'))+\" \")]),_c('td',[_vm._v(\" (\"+_vm._s(_vm.taxonomy.displayContractId)+\") \"+_vm._s(_vm.taxonomy.displayContractDescription)+\" \")])]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.degreeOfSubstitutability'))+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm.degreeOfSubstitutabilityText)+\" \")])]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.isCritical'))+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm.isCriticalText)+\" \")])]),(_vm.taxonomy.isCritical)?[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.criticality'))+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm.criticalityText)+\" \")])]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.services'))+\" \")])]),_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('ul',_vm._l((_vm.taxonomy.services),function(s){return _c('li',{key:s.id},[_vm._v(\" \"+_vm._s(s.name)+\" \")])}),0)]),_c('td')])]:_vm._e()],2),_c('v-divider',{staticClass:\"my-2\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport icons from '@/core/icons';\nimport { CriticalitiesSelect, DegreeOfSubstitutabilitiesSelect } from '@/dtos';\nimport { ApplicationTaxonomyDto } from '@/dtos/srb';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'ApplicationTaxonomyLine',\n\n components: {\n\n },\n\n props: {\n taxonomy: {\n type: Object as PropType,\n required: true,\n },\n\n criticalities: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const degreeOfSubstitutabilityText = computed(() => {\n return DegreeOfSubstitutabilitiesSelect.find(i => i.value === props.taxonomy.degreeOfSubstitutability)?.text?.toString() ?? '';\n });\n\n const isCriticalText = computed(() => {\n return CriticalitiesSelect.find(i => i.value === props.taxonomy.isCritical)?.text?.toString() ?? '';\n });\n\n const criticalityText = computed(() => {\n for (let i = 0; i < props.criticalities.length; ++i) {\n if (props.criticalities[i].value === props.taxonomy.criticalityId) {\n return props.criticalities[i].text.toString();\n }\n }\n\n return '';\n });\n\n return {\n degreeOfSubstitutabilityText,\n isCriticalText,\n criticalityText,\n\n openTaxonomy: () => {\n emit('open', props.taxonomy);\n },\n\n removeTaxonomy: () => {\n emit('remove', props.taxonomy);\n },\n\n menu: icons.menu,\n remove: icons.remove,\n edit: icons.edit,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplicationTaxonomyLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplicationTaxonomyLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ApplicationTaxonomyLine.vue?vue&type=template&id=4ee83530&scoped=true&\"\nimport script from \"./ApplicationTaxonomyLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./ApplicationTaxonomyLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ee83530\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VDivider,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport icons from '@/core/icons';\nimport { ApplicationTaxonomyDto, SimpleServiceDto, SrbApplicationDto } from '@/dtos/srb';\nimport { computed, defineComponent, PropType, ref } from '@vue/composition-api';\nimport { v4 } from 'uuid';\nimport ApplicationTaxonomyLine from './ApplicationTaxonomyLine.vue';\n\nexport default defineComponent({\n name: 'SrbApplicationLine',\n\n components: {\n ApplicationTaxonomyLine,\n },\n\n props: {\n application: {\n type: Object as PropType,\n required: true,\n },\n criticalities: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const expandRequiredServices = ref(true);\n\n props.application.taxonomies.forEach(t => {\n t.uuid = v4();\n });\n\n const assessed = computed(() => {\n // PURE HORIZONTAL SERVICE\n if (props.application.isHorizontalService &&\n (props.application.services == null || props.application.services.length === 0)\n ) {\n return props.application.taxonomies != null && props.application.taxonomies.length > 0;\n }\n\n return servicesRequireAssessment.value.length === 0;\n });\n\n const servicesRequireAssessment = computed>(() => {\n const remainingServices = new Set();\n\n if (props.application.services) {\n props.application.services.forEach(s => {\n remainingServices.add(s.id);\n });\n }\n\n if (props.application.taxonomies) {\n props.application.taxonomies.forEach(t => {\n t.services.forEach(s => remainingServices.delete(s.id));\n });\n }\n\n const ret: Array = [];\n\n if (props.application.services) {\n props.application.services.forEach(s => {\n if (remainingServices.has(s.id)) {\n ret.push(s);\n }\n });\n }\n\n return ret;\n });\n\n function addNewTaxonomy() {\n emit('add', props.application);\n }\n\n function openTaxonomy(taxonomy: ApplicationTaxonomyDto) {\n emit('open', props.application, taxonomy);\n }\n\n function removeTaxonomy(taxonomy: ApplicationTaxonomyDto) {\n emit('remove', props.application, taxonomy);\n }\n\n return {\n assessed,\n servicesRequireAssessment,\n expandRequiredServices,\n\n addNewTaxonomy,\n openTaxonomy,\n removeTaxonomy,\n\n icons: {\n attention: icons.attention,\n expand: icons.collapsed,\n collapse: icons.expanded,\n add: icons.plus,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SrbApplicationLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SrbApplicationLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SrbApplicationLine.vue?vue&type=template&id=01d4f2cb&scoped=true&\"\nimport script from \"./SrbApplicationLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./SrbApplicationLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"01d4f2cb\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VDivider,VExpandTransition,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VIcon,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"center\"}},[_c('v-col',[_c('h4',[_vm._v(\" \"+_vm._s(_vm.associate.name)+\" \")])]),(!_vm.assessed)?_c('v-col',{staticClass:\"shrink\"},[_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"red\",\"dense\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.attention)+\" \")])],1):_vm._e(),_c('v-col',{staticClass:\"shrink\"},[_c('div',{staticStyle:{\"width\":\"15rem\"}},[(!_vm.assessed)?_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.assessmentPending'))+\" \")]):_vm._e()])])],1)],1),_c('v-expansion-panel-content',[_c('div',[_c('h4',{staticClass:\"mb-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.taxonomies'))+\" \")]),_vm._l((_vm.associate.taxonomies),function(t){return _c('associate-taxonomy-line',{key:t.uuid,attrs:{\"taxonomy\":t,\"criticalities\":_vm.criticalities}})})],2)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.taxonomy.partitionsServices.length > 0)?_c('div',[_c('h4',{staticClass:\"my-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.requiredBy'))+\" \")]),_vm._l((_vm.taxonomy.partitionsServices),function(ps,i){return _c('h6',{key:i},[_vm._v(\" \"+_vm._s(ps.item1)+\" → \"+_vm._s(ps.item2)+\" \")])})],2):_vm._e(),_c('div',[_c('h4',{staticClass:\"mt-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.taxonomyTitle'))+\" \")]),_c('table',{staticClass:\"editor-table mt-2\"},[(_vm.taxonomy.associateId != null)?_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.associate.name'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.taxonomy.associate)+\" \")])]):_vm._e(),(_vm.taxonomy.associateId != null)?_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.associate.existingContract'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_c('v-checkbox',{staticClass:\"my-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"disabled\":\"\"},model:{value:(_vm.taxonomy.existingContract),callback:function ($$v) {_vm.$set(_vm.taxonomy, \"existingContract\", $$v)},expression:\"taxonomy.existingContract\"}})],1)]):_vm._e(),(_vm.taxonomy.existingContract)?_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.associate.contract'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" (\"+_vm._s(_vm.taxonomy.displayContractId)+\") \"+_vm._s(_vm.taxonomy.displayContractDescription)+\" \")])]):_vm._e(),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfDependency'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.degreeOfDependencyText)+\" \")])]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.substituteType'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.substituteTypeText)+\" \")])]),(_vm.taxonomy.substituteType === _vm.substituteExternal || _vm.taxonomy.substituteType === _vm.substituteInternal)?[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.substituteServiceProvider'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.taxonomy.substitute)+\" \")])]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfComparability'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.degreeOfComparabilityText)+\" \")])]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.timeToEnableSubstitute'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.timeToEnableSubstitutabilityText)+\" \")])]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.costOfAlternativeService'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.costOfAlternativeText)+\" \")])])]:_vm._e(),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfSubstitutability'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.degreeOfSubstitutabilityText)+\" \")])]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.isCritical'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.isCriticalText)+\" \")])]),(_vm.taxonomy.isCritical)?[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.criticality'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.criticalityText)+\" \")])]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.srbComment'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.taxonomy.srbComment)+\" \")])])]:_vm._e()],2)]),_c('v-divider',{staticClass:\"my-2\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport {\n CostOfAlternativesSelect,\n CriticalitiesSelect,\n DegreeOfComparabilitiesSelect,\n DegreeOfDependenciesSelect,\n DegreeOfSubstitutabilitiesSelect,\n SubstituteType,\n SubstituteTypeSelect,\n TimeToEnableSubstitutabilitiesSelect,\n} from '@/dtos';\nimport { AssetTaxonomyDto } from '@/dtos/srb';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'AssociateTaxonomyLine',\n\n components: {\n },\n\n props: {\n taxonomy: {\n type: Object as PropType,\n required: true,\n },\n\n criticalities: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props) {\n const degreeOfDependencyText = computed(() => {\n return DegreeOfDependenciesSelect.find(i => i.value === props.taxonomy.degreeOfDependency)?.text?.toString() ?? '';\n });\n\n const substituteTypeText = computed(() => {\n return SubstituteTypeSelect.find(i => i.value === props.taxonomy.substituteType)?.text?.toString() ?? '';\n });\n\n const degreeOfComparabilityText = computed(() => {\n return DegreeOfComparabilitiesSelect.find(i => i.value === props.taxonomy.degreeOfComparability)?.text?.toString() ?? '';\n });\n\n const timeToEnableSubstitutabilityText = computed(() => {\n return TimeToEnableSubstitutabilitiesSelect.find(i => i.value === props.taxonomy.timeToEnableSubstitutability)?.text?.toString() ?? '';\n });\n\n const costOfAlternativeText = computed(() => {\n return CostOfAlternativesSelect.find(i => i.value === props.taxonomy.costOfAlternative)?.text?.toString() ?? '';\n });\n\n const degreeOfSubstitutabilityText = computed(() => {\n return DegreeOfSubstitutabilitiesSelect.find(i => i.value === props.taxonomy.degreeOfSubstitutability)?.text?.toString() ?? '';\n });\n\n const isCriticalText = computed(() => {\n return CriticalitiesSelect.find(i => i.value === props.taxonomy.isCritical)?.text?.toString() ?? '';\n });\n\n const criticalityText = computed(() => {\n for (let i = 0; i < props.criticalities.length; ++i) {\n if (props.criticalities[i].value === props.taxonomy.criticalityId) {\n return props.criticalities[i].text.toString();\n }\n }\n\n return '';\n });\n\n return {\n degreeOfDependencyText,\n substituteTypeText,\n degreeOfComparabilityText,\n timeToEnableSubstitutabilityText,\n costOfAlternativeText,\n degreeOfSubstitutabilityText,\n isCriticalText,\n criticalityText,\n\n substituteExternal: SubstituteType.External,\n substituteInternal: SubstituteType.Internal,\n\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssociateTaxonomyLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssociateTaxonomyLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssociateTaxonomyLine.vue?vue&type=template&id=517f8bbe&scoped=true&\"\nimport script from \"./AssociateTaxonomyLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssociateTaxonomyLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"517f8bbe\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\ninstallComponents(component, {VCheckbox,VDivider})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport icons from '@/core/icons';\nimport { SrbAssociateDto } from '@/dtos/srb';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport { v4 } from 'uuid';\nimport AssociateTaxonomyLine from './AssociateTaxonomyLine.vue';\n\nexport default defineComponent({\n name: 'SrbAssociateLine',\n\n components: {\n AssociateTaxonomyLine,\n },\n\n props: {\n associate: {\n type: Object as PropType,\n required: true,\n },\n\n criticalities: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props) {\n props.associate.taxonomies.forEach(t => {\n t.uuid = v4();\n });\n\n const assessed = computed(() => {\n for (let i = 0; i < props.associate.taxonomies.length; ++i) {\n const dos = props.associate.taxonomies[i].degreeOfSubstitutability;\n if (dos == null || dos < 1) {\n return false;\n }\n }\n return true;\n });\n\n return {\n assessed,\n\n icons: {\n attention: icons.attention,\n expand: icons.collapsed,\n collapse: icons.expanded,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SrbAssociateLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SrbAssociateLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SrbAssociateLine.vue?vue&type=template&id=88e99960&scoped=true&\"\nimport script from \"./SrbAssociateLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./SrbAssociateLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"88e99960\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VIcon,VRow})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport TaxonomyUsersEditor from '@/components/srb/TaxonomyUsersEditor.vue';\nimport { DegreeOfDependency, SubstituteType, UserRole } from '@/dtos';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { ApplicationModule, AuthenticationModule } from '@/store';\nimport { computed, defineComponent, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { SrbTaxonomyService } from '@/services/srb';\nimport { ApplicationTaxonomyDto } from '@/dtos/srb';\nimport { v4 } from 'uuid';\nimport { cloneDeep } from 'lodash';\nimport SnackbarMessageService from '@/services/SnackbarMessageService';\nimport icons from '@/core/icons';\nimport DownloadService from '@/services/DownloadService';\nimport { SrbApplicationDto } from '@/dtos/srb/ApplicationTaxonomyDto';\nimport { ApplicationTaxonomyEditor, SrbApplicationLine } from '@/components/srb';\n\nimport PopupMessageService, { PopupMessageButtonNo, PopupMessageButtonYes } from '@/services/PopupMessageService';\nimport { ISelectItem } from '@/core';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'ApplicationsTaxonomyView',\n\n components: {\n PdFormBase,\n TaxonomyUsersEditor,\n SrbApplicationLine,\n ApplicationTaxonomyEditor,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n if (entityId == null) {\n throw new Error('entity is null...');\n }\n\n const editingApplication = ref(null);\n const editingTaxonomy = ref(null);\n const inEditMode = computed(() => editingTaxonomy.value !== null);\n\n const criticalities = ref>([]);\n\n const loading = ref(true);\n const showTaxonomyUsers = ref(false);\n\n const applications = ref>([]);\n\n const showUsersButton = computed(() => {\n return AuthenticationModule.Roles.find(i => i === UserRole.BcmAdministrator) != null;\n });\n\n function addTaxonomy(application: SrbApplicationDto) {\n editingApplication.value = application;\n\n editingTaxonomy.value = cloneDeep({\n services: [],\n assetName: '',\n associate: '',\n srbComment: '',\n partitionsServices: [],\n id: 0,\n displayContractId: '',\n displayContractDescription: '',\n substitute: '',\n associateId: null,\n existingContract: false,\n contractId: 0,\n degreeOfDependency: DegreeOfDependency.Low,\n substituteType: SubstituteType.NA,\n degreeOfComparability: 0,\n timeToEnableSubstitutability: 0,\n costOfAlternative: 0,\n degreeOfSubstitutability: 0,\n isCritical: false,\n uuid: v4(),\n });\n }\n\n function openTaxonomy(application: SrbApplicationDto, taxonomy: ApplicationTaxonomyDto) {\n editingApplication.value = application;\n editingTaxonomy.value = cloneDeep(taxonomy);\n }\n\n async function saveTaxonomyChanges() {\n if (editingTaxonomy.value == null || editingApplication.value == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const resp = await SrbTaxonomyService.SaveApplicationTaxonomy(editingApplication.value, editingTaxonomy.value);\n resp.uuid = v4();\n\n if (editingTaxonomy.value.id === 0) {\n editingApplication.value.taxonomies.push(resp);\n }\n\n for (let i = 0; i < editingApplication.value.taxonomies.length; ++i) {\n if (editingApplication.value.taxonomies[i].uuid === editingTaxonomy.value.uuid) {\n editingApplication.value.taxonomies.splice(i, 1, editingTaxonomy.value);\n break;\n }\n }\n\n editingApplication.value = null;\n editingTaxonomy.value = null;\n SnackbarMessageService.SetMessage({ text: i18n.t('saved').toString() });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function removeTaxonomy(application: SrbApplicationDto, taxonomy: ApplicationTaxonomyDto) {\n PopupMessageService.SetMessage({\n title: i18n.t('confirm'),\n text: i18n.t('srb.taxonomy.removeTaxonomyConfirmation'),\n buttons: [\n PopupMessageButtonYes(async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('deleting').toString());\n try {\n await SrbTaxonomyService.RemoveApplicationTaxonomy(application, taxonomy);\n for (let i = 0; i < application.taxonomies.length; ++i) {\n if (application.taxonomies[i].uuid === taxonomy.uuid) {\n application.taxonomies.splice(i, 1);\n break;\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n function cancelTaxonomyChanges() {\n editingApplication.value = null;\n editingTaxonomy.value = null;\n }\n\n async function exportData() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n var file = await SrbTaxonomyService.ExportApplicationsTaxonomy();\n DownloadService.DownloadFile(file);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n applications.value = (await SrbTaxonomyService.GetApplicationsForTaxonomy()).map(i => {\n i.uuid = v4();\n return i;\n });\n\n (await DatasourcesService.Srb.Criticalities.get())\n .forEach(c => {\n criticalities.value.push({ text: LanguageTemplate(c, 'name').text, value: c.id });\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n editingTaxonomy,\n editingApplication,\n inEditMode,\n saveTaxonomyChanges,\n cancelTaxonomyChanges,\n\n addTaxonomy,\n openTaxonomy,\n removeTaxonomy,\n\n loading,\n showTaxonomyUsers,\n showUsersButton,\n applications,\n\n exportData,\n\n criticalities,\n\n icons: {\n export: icons.export,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplicationsTaxonomyView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplicationsTaxonomyView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ApplicationsTaxonomyView.vue?vue&type=template&id=6ba32cc5&scoped=true&\"\nimport script from \"./ApplicationsTaxonomyView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ApplicationsTaxonomyView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6ba32cc5\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VExpansionPanels,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"loading\":_vm.loading,\"title\":_vm.$t('srb.taxonomy.associates.title'),\"force-subtitle\":\"\"},scopedSlots:_vm._u([{key:\"subtitle-left\",fn:function(){return [(_vm.showUsersButton)?_c('v-btn',{staticClass:\"text-none mb-1\",attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showTaxonomyUsers = true}}},[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.allowedUsers'))+\" \")]):_vm._e(),_c('v-btn',{staticClass:\"text-none mb-1 ml-4\",attrs:{\"small\":\"\"},on:{\"click\":_vm.exportData}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.export)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1)]},proxy:true}])},[(_vm.showTaxonomyUsers)?_c('taxonomy-users-editor',{attrs:{\"type\":\"associates\"},on:{\"close\":function($event){_vm.showTaxonomyUsers = false}}}):_vm._e(),_c('v-expansion-panels',{staticClass:\"mt-2\",attrs:{\"multiple\":\"\",\"popout\":\"\"},model:{value:(_vm.openAssociates),callback:function ($$v) {_vm.openAssociates=$$v},expression:\"openAssociates\"}},_vm._l((_vm.associates),function(a){return _c('srb-associate-line',{key:a.uuid,attrs:{\"associate\":a,\"data-key\":a.uuid,\"criticalities\":_vm.criticalities}})}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport TaxonomyUsersEditor from '@/components/srb/TaxonomyUsersEditor.vue';\nimport { UserRole } from '@/dtos';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { ApplicationModule, AuthenticationModule } from '@/store';\nimport { computed, defineComponent, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { SrbTaxonomyService } from '@/services/srb';\nimport { AssociateTaxonomyDto } from '@/dtos/srb';\nimport { v4 } from 'uuid';\nimport SrbAssociateLine from '@/components/srb/SrbAssociateLine.vue';\nimport icons from '@/core/icons';\nimport DownloadService from '@/services/DownloadService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { ISelectItem } from '@/core';\n\nexport default defineComponent({\n name: 'AssociatesTaxonomyView',\n\n components: {\n PdFormBase,\n TaxonomyUsersEditor,\n SrbAssociateLine,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n if (entityId == null) {\n throw new Error('entity is null...');\n }\n\n const openAssociates = ref>([]);\n\n const loading = ref(true);\n const showTaxonomyUsers = ref(false);\n\n const associates = ref>([]);\n\n const criticalities = ref>([]);\n\n const showUsersButton = computed(() => {\n return AuthenticationModule.Roles.find(i => i === UserRole.BcmAdministrator) != null;\n });\n\n async function exportData() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n var file = await SrbTaxonomyService.ExportAssociatesTaxonomy();\n DownloadService.DownloadFile(file);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n associates.value = (await SrbTaxonomyService.GetAssociatesForTaxonomy()).map(i => {\n i.uuid = v4();\n return i;\n });\n\n (await DatasourcesService.Srb.Criticalities.get())\n .forEach(c => {\n criticalities.value.push({ text: LanguageTemplate(c, 'name').text, value: c.id });\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n loading,\n showTaxonomyUsers,\n showUsersButton,\n associates,\n criticalities,\n\n openAssociates,\n\n exportData,\n\n icons: {\n export: icons.export,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssociatesTaxonomyView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssociatesTaxonomyView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssociatesTaxonomyView.vue?vue&type=template&id=34726cb3&scoped=true&\"\nimport script from \"./AssociatesTaxonomyView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssociatesTaxonomyView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"34726cb3\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VExpansionPanels,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('srb.contracts.title'),\"loading\":_vm.loading}},[(_vm.showImportForm)?_c('pd-popup-card',{attrs:{\"visible\":\"\",\"width\":\"45rem\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('srb.contracts.importTitle'))+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.showImportForm=false}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.submitFileImport}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")])]},proxy:true}],null,false,3711239797)},[_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('v-file-input',{attrs:{\"accept\":\".csv\",\"counter\":\"\",\"show-size\":\"\",\"truncate-length\":\"50\",\"placeholder\":\"Select file...\"},model:{value:(_vm.importSelectedFile),callback:function ($$v) {_vm.importSelectedFile=$$v},expression:\"importSelectedFile\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.clearExisting'))+\" \")]),_c('td',[_c('v-simple-checkbox',{directives:[{name:\"ripple\",rawName:\"v-ripple\"}],model:{value:(_vm.importClearExisting),callback:function ($$v) {_vm.importClearExisting=$$v},expression:\"importClearExisting\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.ignoreFirstLine'))+\" \")]),_c('td',[_c('v-simple-checkbox',{directives:[{name:\"ripple\",rawName:\"v-ripple\"}],model:{value:(_vm.importIgnoreFirstLine),callback:function ($$v) {_vm.importIgnoreFirstLine=$$v},expression:\"importIgnoreFirstLine\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.delimiter'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"value\":\";\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.importDelimiter),callback:function ($$v) {_vm.importDelimiter=$$v},expression:\"importDelimiter\"}})],1)]),_c('tr',[_c('td',{staticClass:\"text-caption\",attrs:{\"colspan\":\"2\"}},[_c('i18n',{attrs:{\"path\":\"srb.contracts.importFormat\"}},[_c('br')])],1)])])]):_vm._e(),_c('pd-data-table',{key:_vm.refresh,attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.headers,\"options\":_vm.tableOptions,\"table-actions\":_vm.tableButtons,\"rows-per-page\":100,\"sort\":\"contractId\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"},on:{\"table-action\":_vm.tableActionsEvent},scopedSlots:_vm._u([{key:\"customTableActions\",fn:function(){return [_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"text-none mr-3\",attrs:{\"small\":\"\",\"depressed\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.export)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1)]}}])},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('excel', false)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('srb.contracts.exportExcelWithoutInactive')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('excel', true)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('srb.contracts.exportExcelWithInactive')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('csv', false)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('srb.contracts.exportCsvWithoutInactive')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('csv', true)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('srb.contracts.exportCsvWithInactive')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.exportData('criticality', false)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('srb.contracts.exportCriticality')))])],1)],1)],1)]},proxy:true},{key:\"PopupEditorTitle\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.$t('srb.contracts.contractEditor')))])]},proxy:true},{key:\"PopupEditorContent\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('contract-editor',{attrs:{\"contract\":item,\"contract-types\":_vm.contractTypes}})]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IDto } from '@/dtos';\n\nexport enum ContractType {\n Other = 0,\n It = 1,\n RealEstate = 2,\n}\n\nexport interface ContractDto extends IDto{\n id: number\n\n isActive: boolean\n\n contractType: ContractType\n\n contractId: string\n\n description: string\n\n serviceTypeId?: number\n\n associateId: number\n\n startDate: string\n\n endDate?: string\n\n nextRenewalDate?: string\n\n ebaOutsourcingCritical: string\n\n businessOwner: string\n\n businessOwnerContact: string\n\n price: string\n\n recurrenceInterval: string\n\n timeToAccessContracts: string\n\n resolutionProof: string\n\n transitionPeriod: string\n\n governingLaw: string\n\n jurisdiction: string\n\n partOfTheGroup: string\n\n supplyingModel: string\n\n mainPenaltiesDelayPayments: string\n mainPenaltiesDelayPaymentsDescription: string\n\n earlyTerminationTriggers: string\n earlyTerminationTriggersDescription: string\n\n earlyTerminationTriggersCounterParty: string\n earlyTerminationTriggersCounterPartyDescription: string\n\n timingTerminate: string\n timingTerminateCounterParty: string\n\n operationalSupportInTermination: string\n\n armsLengthPricingStructure: string\n relationshipBetweenContracts: string\n\n paymentTerms: string\n\n quantitativePerformanceTargets: string\n qualitativePerformanceGoals: string\n\n subContractor: string\n conditionsOfPayment: string\n existenceOfAutomaticRenewalClauses: string\n quantitativePerformanceTargetsForTheProvider: string\n particesAllowedToTerminate: string\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { PdDataTable, PdDataTableAction, PdDataTableEditMode, PdDataTableHeader, PdDataTableOptions } from '@/components/core/PdDataTable';\nimport i18n from '@/i18n';\nimport { ContractDto } from '@/dtos/srb';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { ApplicationModule } from '@/store';\nimport { ISelectItem } from '@/core';\nimport { ContractType } from '@/dtos/srb/ContractDto';\nimport { v4 } from 'uuid';\nimport { ContractEditor } from '@/components/srb/index';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport icons from '@/core/icons';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport { ContractsService } from '@/services/bcm';\nimport DownloadService from '@/services/DownloadService';\nimport { PdColumnYesNo } from '@/components/core/PdDataTable/columns';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { UploadCsvFileDto } from '@/dtos';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport { ApiDataSource } from '@/core/datasource';\n// contractTypes\n\nexport default defineComponent({\n name: 'Sector',\n\n components: {\n PdFormBase,\n PdDataTable,\n ContractEditor,\n PdPopupCard,\n },\n\n setup() {\n const loading = ref(false);\n const entityId = ApplicationModule.Entity?.id;\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n let showInactive = false;\n\n const parameters = new Map();\n parameters.set('inactive', 'false');\n const datasource = ref>(new ApiDataSource({ api: `masterplans/${entityId}/srb/Contracts`, parameters: parameters }));\n const associates = DatasourcesService.Bcm.Associates;\n\n const showImportForm = ref(false);\n const importSelectedFile = ref(null);\n const importClearExisting = ref(false);\n const importIgnoreFirstLine = ref(true);\n const importDelimiter = ref(';');\n\n const refresh = ref(v4());\n\n const contractTypes: Array = [\n {\n text: i18n.t('srb.contracts.contractTypeOther'),\n value: ContractType.Other,\n },\n {\n text: i18n.t('srb.contracts.contractTypeIt'),\n value: ContractType.It,\n },\n {\n text: i18n.t('srb.contracts.contractTypeRealEstate'),\n value: ContractType.RealEstate,\n },\n ];\n\n const tableOptions: PdDataTableOptions = {\n editable: {\n mode: PdDataTableEditMode.Popup,\n edit: true,\n add: true,\n delete: true,\n },\n };\n\n const tableButtons: Array = [\n {\n id: 'import',\n text: i18n.t('import').toString(),\n icon: icons.import,\n },\n {\n id: 'showInactive',\n text: i18n.t('srb.contracts.showInactive').toString(),\n },\n ];\n\n const headers: Array> = [\n {\n id: 'isActive',\n text: i18n.t('srb.contracts.isActive').toString(),\n value: 'isActive',\n width: '7rem',\n defaultValue: true,\n component: PdColumnYesNo,\n },\n {\n id: 'contractType',\n text: i18n.t('srb.contracts.contractType').toString(),\n value: 'contractType',\n width: '7rem',\n defaultValue: ContractType.Other,\n template: (item) => {\n return { text: (contractTypes.find(i => i.value === item.contractType) || { text: '' }).text.toString() };\n },\n },\n {\n id: 'contractId',\n text: i18n.t('srb.contracts.contractId').toString(),\n value: 'contractId',\n width: '10rem',\n defaultValue: () => v4().substring(0, 8),\n },\n {\n id: 'description',\n text: i18n.t('srb.contracts.description').toString(),\n value: 'description',\n defaultValue: '',\n },\n {\n id: 'associateId',\n text: i18n.t('srb.contracts.associate').toString(),\n value: 'associateId',\n defaultValue: 0,\n template: async (item) => {\n if (item.associateId == null) {\n return { text: '' };\n }\n const as = await associates.getById(item.associateId);\n if (as == null) {\n return { text: '' };\n }\n\n return LanguageTemplate(as, 'name');\n },\n width: '20rem',\n },\n {\n id: 'timeToAccessContracts',\n text: i18n.t('srb.contracts.timeToAccessContracts').toString(),\n value: 'timeToAccessContracts',\n visible: false,\n defaultValue: '',\n },\n {\n id: 'resolutionProof',\n text: i18n.t('srb.contracts.resolutionProof').toString(),\n value: 'resolutionProof',\n width: '10rem',\n visible: false,\n defaultValue: '',\n },\n {\n id: 'governingLaw',\n text: i18n.t('srb.contracts.governingLaw').toString(),\n value: 'governingLaw',\n width: '10rem',\n visible: false,\n defaultValue: '',\n },\n\n ];\n\n async function tableActionsEvent(e: string) {\n if (e === 'import') {\n importSelectedFile.value = null;\n importClearExisting.value = false;\n importIgnoreFirstLine.value = true;\n importDelimiter.value = ';';\n showImportForm.value = true;\n } else if (e === 'showInactive') {\n showInactive = !showInactive;\n if (showInactive) {\n tableButtons[1].text = i18n.t('srb.contracts.showOnlyActive').toString();\n } else {\n tableButtons[1].text = i18n.t('srb.contracts.showInactive').toString();\n }\n parameters.set('inactive', showInactive ? 'true' : 'false');\n datasource.value = new ApiDataSource({ api: `masterplans/${entityId}/srb/Contracts`, parameters: parameters });\n refresh.value = v4();\n } else {\n throw new Error(`Unknown table action '${e}'`);\n }\n }\n\n async function exportData(type: string, inactive: boolean) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('downloading').toString());\n try {\n var file = await ContractsService.Export(type, inactive);\n await DownloadService.DownloadFile(file);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function submitFileImport() {\n if (importSelectedFile.value == null) {\n PopupMessageService.SetMessage({\n title: i18n.t('error'),\n text: i18n.t('upload.selectFileError'),\n index: 100,\n });\n return;\n }\n\n if (!importDelimiter.value) {\n PopupMessageService.SetMessage({\n title: i18n.t('error'),\n text: i18n.t('upload.selectDelimiterError'),\n index: 100,\n });\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n const data: UploadCsvFileDto = {\n file: importSelectedFile.value,\n clearExisting: importClearExisting.value,\n ignoreFirstLine: importIgnoreFirstLine.value,\n delimiter: importDelimiter.value,\n };\n\n var warnings = await ContractsService.ImportContracts(data);\n\n showImportForm.value = false;\n\n refresh.value = v4();\n\n if (warnings != null && Array.isArray(warnings) && warnings.length > 0) {\n const msg = warnings.reduce((p, i) => (p + '\\n' + i));\n console.log(msg);\n PopupMessageService.SetMessage({\n title: i18n.t('success'),\n text: i18n.t('upload.warnings', { msg }),\n index: 100,\n });\n } else {\n PopupMessageService.SetMessage({\n title: i18n.t('success'),\n text: i18n.t('upload.success'),\n index: 100,\n });\n }\n\n await datasource.value.get();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n loading,\n\n tableOptions,\n tableButtons,\n datasource,\n headers,\n contractTypes,\n tableActionsEvent,\n\n showImportForm,\n submitFileImport,\n importSelectedFile,\n importClearExisting,\n importIgnoreFirstLine,\n importDelimiter,\n refresh,\n\n exportData,\n\n icons,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContractsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContractsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContractsView.vue?vue&type=template&id=bf32e552&scoped=true&\"\nimport script from \"./ContractsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ContractsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bf32e552\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VFileInput } from 'vuetify/lib/components/VFileInput';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VFileInput,VIcon,VList,VListItem,VListItemTitle,VMenu,VSimpleCheckbox,VTextField})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Ripple from 'vuetify/lib/directives/ripple'\ninstallDirectives(component, {Ripple})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('bcm.associates.title')}},[_c('pd-data-table',{attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.headers,\"options\":{ editable: true},\"sort\":\"name_en-US\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport i18n from '@/i18n';\nimport { PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { AssociateDto } from '@/dtos/bcm';\nimport { ApplicationModule } from '@/store';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { CriticalityDto } from '@/dtos/srb';\n\nexport default defineComponent({\n name: 'Sector',\n\n components: {\n PdFormBase,\n PdDataTable,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const datasource = DatasourcesService.Srb.Criticalities;\n\n const headers: Array> = [\n {\n id: 'name',\n text: i18n.t('bcm.criticalities.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n template: (item) => {\n return LanguageTemplate(item as AssociateDto, 'name');\n },\n },\n ];\n\n return {\n datasource,\n headers,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CriticalitiesView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CriticalitiesView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CriticalitiesView.vue?vue&type=template&id=65f1d168&scoped=true&\"\nimport script from \"./CriticalitiesView.vue?vue&type=script&lang=ts&\"\nexport * from \"./CriticalitiesView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"65f1d168\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"loading\":_vm.loading,\"title\":_vm.$t('srb.taxonomy.locations.title'),\"force-subtitle\":\"\"},scopedSlots:_vm._u([{key:\"subtitle-left\",fn:function(){return [(_vm.showUsersButton)?_c('v-btn',{staticClass:\"text-none mb-1\",attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showTaxonomyUsers = true}}},[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.allowedUsers'))+\" \")]):_vm._e(),_c('v-btn',{staticClass:\"text-none mb-1 ml-4\",attrs:{\"small\":\"\"},on:{\"click\":_vm.exportData}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.export)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1)]},proxy:true}])},[(_vm.showTaxonomyUsers)?_c('taxonomy-users-editor',{attrs:{\"type\":\"locations\"},on:{\"close\":function($event){_vm.showTaxonomyUsers = false}}}):_vm._e(),(_vm.inEditMode)?_c('taxonomy-editor',{attrs:{\"item\":_vm.editingItem,\"reference\":_vm.editingItem.assetName,\"type\":\"locations\"},on:{\"save\":_vm.saveTaxonomyChanges,\"cancel\":_vm.cancelTaxonomyChanges}}):_vm._e(),_c('v-expansion-panels',{staticClass:\"mt-2\",attrs:{\"multiple\":\"\",\"popout\":\"\"},model:{value:(_vm.openLocations),callback:function ($$v) {_vm.openLocations=$$v},expression:\"openLocations\"}},_vm._l((_vm.locations),function(a){return _c('taxonomy-line',{key:a.uuid,attrs:{\"asset\":a,\"data-key\":a.uuid,\"criticalities\":_vm.criticalities,\"editable\":\"\"},on:{\"edit\":_vm.editLine}})}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panel',[_c('v-expansion-panel-header',{attrs:{\"color\":_vm.lineColor}},[_c('v-row',{attrs:{\"dense\":\"\",\"align\":\"center\"}},[_c('v-col',[_c('h4',[_vm._v(\" \"+_vm._s(_vm.asset.assetName)+\" \")])]),_c('v-col',{staticClass:\"shrink\"},[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.criticality'))+\": \")]),(!_vm.assessed)?_c('v-col',{staticClass:\"shrink\"},[_c('v-icon',{attrs:{\"right\":\"\",\"color\":\"red\",\"dense\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.attention)+\" \")])],1):_vm._e(),_c('v-col',{staticClass:\"shrink\"},[_c('div',{staticStyle:{\"width\":\"15rem\"}},[(!_vm.assessed)?_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.notAssessed'))+\" \")]):(_vm.asset.isCritical)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.isCritical'))+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.isNotCritical'))+\" \")])])])],1)],1),_c('v-expansion-panel-content',[(_vm.asset.isHorizontalService)?_c('h5',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.horizontalCritical'))+\" \")]):_vm._e(),(_vm.asset.partitionsServices.length > 0)?_c('div',[_c('h4',{staticClass:\"my-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.requiredBy'))+\" \")]),_vm._l((_vm.asset.partitionsServices),function(ps,i){return _c('h6',{key:i},[_vm._v(\" \"+_vm._s(ps.item1)+\" → \"+_vm._s(ps.item2)+\" \")])})],2):_vm._e(),_c('div',[_c('h4',{staticClass:\"mt-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.taxonomyTitle'))+\" \"),(_vm.editable)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"small\":\"\"},on:{\"click\":_vm.editTaxonomy}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.edit)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('edit.edit'))+\" \")],1):_vm._e()],1),_c('table',{staticClass:\"editor-table mt-2\"},[(_vm.asset.associateId != null)?_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.associate.name'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.asset.associate)+\" \")])]):_vm._e(),(_vm.asset.associateId != null)?_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.associate.existingContract'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_c('v-checkbox',{staticClass:\"my-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"disabled\":\"\"},model:{value:(_vm.asset.existingContract),callback:function ($$v) {_vm.$set(_vm.asset, \"existingContract\", $$v)},expression:\"asset.existingContract\"}})],1)]):_vm._e(),(_vm.asset.existingContract)?_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.associate.contract'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" (\"+_vm._s(_vm.asset.displayContractId)+\") \"+_vm._s(_vm.asset.displayContractDescription)+\" \")])]):_vm._e(),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfDependency'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.degreeOfDependencyText)+\" \")])]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.substituteType'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.substituteTypeText)+\" \")])]),(_vm.asset.substituteType === _vm.substituteExternal || _vm.asset.substituteType === _vm.substituteInternal)?[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.substituteServiceProvider'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.asset.substitute)+\" \")])]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfComparability'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.degreeOfComparabilityText)+\" \")])]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.timeToEnableSubstitute'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.timeToEnableSubstitutabilityText)+\" \")])]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.costOfAlternativeService'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.costOfAlternativeText)+\" \")])])]:_vm._e(),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.degreeOfSubstitutability'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.degreeOfSubstitutabilityText)+\" \")])]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.isCritical'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.isCriticalText)+\" \")])]),(_vm.asset.isCritical)?[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.criticality'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.criticalityText)+\" \")])]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('bcm.partitions.deployments.services.srbComment'))+\" \")]),_c('td',{staticClass:\"pl-4\"},[_vm._v(\" \"+_vm._s(_vm.asset.srbComment)+\" \")])])]:_vm._e()],2)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ISelectItem } from '@/core';\nimport icons from '@/core/icons';\nimport {\n CostOfAlternativesSelect,\n CriticalitiesSelect,\n DegreeOfComparabilitiesSelect,\n DegreeOfDependenciesSelect,\n DegreeOfSubstitutabilitiesSelect,\n SubstituteType,\n SubstituteTypeSelect,\n TimeToEnableSubstitutabilitiesSelect,\n} from '@/dtos';\nimport { AssetTaxonomyDto } from '@/dtos/srb';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'AssetTaxonomyLine',\n\n components: {\n },\n\n props: {\n asset: {\n type: Object as PropType,\n required: true,\n },\n\n editable: {\n type: Boolean,\n default: false,\n },\n\n criticalities: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const degreeOfDependencyText = computed(() => {\n return DegreeOfDependenciesSelect.find(i => i.value === props.asset.degreeOfDependency)?.text?.toString() ?? '';\n });\n\n const substituteTypeText = computed(() => {\n return SubstituteTypeSelect.find(i => i.value === props.asset.substituteType)?.text?.toString() ?? '';\n });\n\n const degreeOfComparabilityText = computed(() => {\n return DegreeOfComparabilitiesSelect.find(i => i.value === props.asset.degreeOfComparability)?.text?.toString() ?? '';\n });\n\n const timeToEnableSubstitutabilityText = computed(() => {\n return TimeToEnableSubstitutabilitiesSelect.find(i => i.value === props.asset.timeToEnableSubstitutability)?.text?.toString() ?? '';\n });\n\n const costOfAlternativeText = computed(() => {\n return CostOfAlternativesSelect.find(i => i.value === props.asset.costOfAlternative)?.text?.toString() ?? '';\n });\n\n const degreeOfSubstitutabilityText = computed(() => {\n return DegreeOfSubstitutabilitiesSelect.find(i => i.value === props.asset.degreeOfSubstitutability)?.text?.toString() ?? '';\n });\n\n const isCriticalText = computed(() => {\n return CriticalitiesSelect.find(i => i.value === props.asset.isCritical)?.text?.toString() ?? '';\n });\n\n const lineColor = computed(() => {\n if (!assessed.value) {\n return '';\n } else if (props.asset.isCritical) {\n return '#FFFF0011';\n } else {\n return '#00FF0011';\n }\n });\n\n const criticalityText = computed(() => {\n for (let i = 0; i < props.criticalities.length; ++i) {\n if (props.criticalities[i].value === props.asset.criticalityId) {\n return props.criticalities[i].text.toString();\n }\n }\n\n return '';\n });\n\n function editTaxonomy() {\n emit('edit', props.asset);\n }\n\n const assessed = computed(() => {\n return props.asset.degreeOfSubstitutability != null && props.asset.degreeOfSubstitutability > 0;\n });\n\n return {\n assessed,\n lineColor,\n\n degreeOfDependencyText,\n substituteTypeText,\n degreeOfComparabilityText,\n timeToEnableSubstitutabilityText,\n costOfAlternativeText,\n degreeOfSubstitutabilityText,\n isCriticalText,\n\n substituteExternal: SubstituteType.External,\n substituteInternal: SubstituteType.Internal,\n\n editTaxonomy,\n\n criticalityText,\n\n icons: {\n edit: icons.edit,\n attention: icons.attention,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaxonomyLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaxonomyLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TaxonomyLine.vue?vue&type=template&id=a0b71e1c&scoped=true&\"\nimport script from \"./TaxonomyLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./TaxonomyLine.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a0b71e1c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCheckbox,VCol,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VIcon,VRow})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport TaxonomyUsersEditor from '@/components/srb/TaxonomyUsersEditor.vue';\nimport { UserRole } from '@/dtos';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { ApplicationModule, AuthenticationModule } from '@/store';\nimport { computed, defineComponent, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { SrbTaxonomyService } from '@/services/srb';\nimport type { LocationTaxonomyDto } from '@/dtos/srb';\nimport { v4 } from 'uuid';\nimport TaxonomyLine from '@/components/srb/TaxonomyLine.vue';\nimport TaxonomyEditor from '@/components/srb/TaxonomyEditor.vue';\nimport { cloneDeep } from 'lodash';\nimport SnackbarMessageService from '@/services/SnackbarMessageService';\nimport icons from '@/core/icons';\nimport DownloadService from '@/services/DownloadService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { ISelectItem } from '@/core';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'LocationsTaxonomyView',\n\n components: {\n PdFormBase,\n TaxonomyUsersEditor,\n TaxonomyLine,\n TaxonomyEditor,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n if (entityId == null) {\n throw new Error('entity is null...');\n }\n\n const openLocations = ref>([]);\n\n const editingItem = ref(null);\n const inEditMode = computed(() => editingItem.value !== null);\n\n const loading = ref(true);\n const showTaxonomyUsers = ref(false);\n\n const locations = ref>([]);\n\n const criticalities = ref>([]);\n\n const showUsersButton = computed(() => {\n return AuthenticationModule.Roles.find(i => i === UserRole.BcmAdministrator) != null;\n });\n\n function editLine(location: LocationTaxonomyDto) {\n if (location == null) {\n return;\n }\n\n editingItem.value = cloneDeep(location);\n }\n\n async function saveTaxonomyChanges() {\n if (editingItem.value == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const resp = await SrbTaxonomyService.SaveLocationTaxonomy(editingItem.value);\n resp.uuid = v4();\n\n for (let i = 0; i < locations.value.length; ++i) {\n if (locations.value[i].uuid === editingItem.value.uuid) {\n const a = locations.value[i];\n a.associateId = resp.associateId;\n a.associate = resp.associate;\n a.existingContract = resp.existingContract;\n a.contractId = resp.contractId;\n a.displayContractId = resp.displayContractId;\n a.displayContractDescription = resp.displayContractDescription;\n a.degreeOfDependency = resp.degreeOfDependency;\n a.substituteType = resp.substituteType;\n a.substitute = resp.substitute;\n a.degreeOfComparability = resp.degreeOfComparability;\n a.timeToEnableSubstitutability = resp.timeToEnableSubstitutability;\n a.costOfAlternative = resp.costOfAlternative;\n a.degreeOfSubstitutability = resp.degreeOfSubstitutability;\n a.isCritical = resp.isCritical;\n a.criticalityId = resp.criticalityId;\n a.srbComment = resp.srbComment;\n break;\n }\n }\n\n editingItem.value = null;\n SnackbarMessageService.SetMessage({ text: i18n.t('saved').toString() });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function cancelTaxonomyChanges() {\n editingItem.value = null;\n }\n\n async function exportData() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n var file = await SrbTaxonomyService.ExportLocationsTaxonomy();\n DownloadService.DownloadFile(file);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n locations.value = (await SrbTaxonomyService.GetLocationsForTaxonomy()).map(i => {\n i.uuid = v4();\n return i;\n });\n\n (await DatasourcesService.Srb.Criticalities.get())\n .forEach(c => {\n criticalities.value.push({ text: LanguageTemplate(c, 'name').text, value: c.id });\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n editingItem,\n inEditMode,\n editLine,\n saveTaxonomyChanges,\n cancelTaxonomyChanges,\n\n loading,\n showTaxonomyUsers,\n showUsersButton,\n locations,\n\n openLocations,\n\n exportData,\n\n criticalities,\n\n icons: {\n export: icons.export,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationsTaxonomyView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationsTaxonomyView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LocationsTaxonomyView.vue?vue&type=template&id=6d034ef0&scoped=true&\"\nimport script from \"./LocationsTaxonomyView.vue?vue&type=script&lang=ts&\"\nexport * from \"./LocationsTaxonomyView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6d034ef0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VExpansionPanels,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"loading\":_vm.loading,\"title\":_vm.$t('srb.taxonomy.personnel.title'),\"force-subtitle\":\"\"},scopedSlots:_vm._u([{key:\"subtitle-left\",fn:function(){return [(_vm.showUsersButton)?_c('v-btn',{staticClass:\"text-none mb-1\",attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showTaxonomyUsers = true}}},[_vm._v(\" \"+_vm._s(_vm.$t('srb.taxonomy.allowedUsers'))+\" \")]):_vm._e(),_c('v-btn',{staticClass:\"text-none mb-1 ml-4\",attrs:{\"small\":\"\"},on:{\"click\":_vm.exportData}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.export)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1)]},proxy:true}])},[(_vm.showTaxonomyUsers)?_c('taxonomy-users-editor',{attrs:{\"type\":\"personnel\"},on:{\"close\":function($event){_vm.showTaxonomyUsers = false}}}):_vm._e(),_c('v-expansion-panels',{staticClass:\"mt-2\",attrs:{\"multiple\":\"\",\"popout\":\"\"},model:{value:(_vm.openPersonnel),callback:function ($$v) {_vm.openPersonnel=$$v},expression:\"openPersonnel\"}},_vm._l((_vm.personnel),function(a){return _c('taxonomy-line',{key:a.uuid,attrs:{\"asset\":a,\"data-key\":a.uuid,\"criticalities\":_vm.criticalities}})}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport TaxonomyUsersEditor from '@/components/srb/TaxonomyUsersEditor.vue';\nimport { UserRole } from '@/dtos';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { ApplicationModule, AuthenticationModule } from '@/store';\nimport { computed, defineComponent, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { SrbTaxonomyService } from '@/services/srb';\nimport { PersonnelTaxonomyDto } from '@/dtos/srb';\nimport { v4 } from 'uuid';\nimport TaxonomyLine from '@/components/srb/TaxonomyLine.vue';\nimport icons from '@/core/icons';\nimport DownloadService from '@/services/DownloadService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { ISelectItem } from '@/core';\n\nexport default defineComponent({\n name: 'PersonnelTaxonomyView',\n\n components: {\n PdFormBase,\n TaxonomyUsersEditor,\n TaxonomyLine,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n if (entityId == null) {\n throw new Error('entity is null...');\n }\n\n const openPersonnel = ref>([]);\n\n const loading = ref(true);\n const showTaxonomyUsers = ref(false);\n\n const personnel = ref>([]);\n\n const criticalities = ref>([]);\n\n const showUsersButton = computed(() => {\n return AuthenticationModule.Roles.find(i => i === UserRole.BcmAdministrator) != null;\n });\n\n async function exportData() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n var file = await SrbTaxonomyService.ExportPersonnelTaxonomy();\n DownloadService.DownloadFile(file);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n personnel.value = (await SrbTaxonomyService.GetPersonnelForTaxonomy()).map(i => {\n i.uuid = v4();\n return i;\n });\n\n (await DatasourcesService.Srb.Criticalities.get())\n .forEach(c => {\n criticalities.value.push({ text: LanguageTemplate(c, 'name').text, value: c.id });\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n loading,\n showTaxonomyUsers,\n showUsersButton,\n personnel,\n criticalities,\n\n openPersonnel,\n\n exportData,\n\n icons: {\n export: icons.export,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PersonnelTaxonomyView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PersonnelTaxonomyView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PersonnelTaxonomyView.vue?vue&type=template&id=13e62e27&scoped=true&\"\nimport script from \"./PersonnelTaxonomyView.vue?vue&type=script&lang=ts&\"\nexport * from \"./PersonnelTaxonomyView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13e62e27\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VExpansionPanels,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('srb.taxonomy.reporting')}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('srb.taxonomy.serviceRecipientName')},model:{value:(_vm.parameters.name),callback:function ($$v) {_vm.$set(_vm.parameters, \"name\", $$v)},expression:\"parameters.name\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('srb.taxonomy.serviceRecipientCode')},model:{value:(_vm.parameters.code),callback:function ($$v) {_vm.$set(_vm.parameters, \"code\", $$v)},expression:\"parameters.code\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('srb.taxonomy.serviceCountry')},model:{value:(_vm.parameters.country),callback:function ($$v) {_vm.$set(_vm.parameters, \"country\", $$v)},expression:\"parameters.country\"}}),_c('v-checkbox',{attrs:{\"label\":_vm.$t('srb.taxonomy.showCritical')},model:{value:(_vm.parameters.critical),callback:function ($$v) {_vm.$set(_vm.parameters, \"critical\", $$v)},expression:\"parameters.critical\"}}),_c('v-checkbox',{attrs:{\"label\":_vm.$t('srb.taxonomy.showCoreBusinessLine')},model:{value:(_vm.parameters.coreBusinessLine),callback:function ($$v) {_vm.$set(_vm.parameters, \"coreBusinessLine\", $$v)},expression:\"parameters.coreBusinessLine\"}}),_c('v-checkbox',{attrs:{\"label\":_vm.$t('srb.taxonomy.showOtherRelevant')},model:{value:(_vm.parameters.otherRelevant),callback:function ($$v) {_vm.$set(_vm.parameters, \"otherRelevant\", $$v)},expression:\"parameters.otherRelevant\"}}),_c('v-btn',{staticClass:\"mt-4\",on:{\"click\":_vm.exportReport}},[_c('v-icon',{staticClass:\"mr-2\"},[_vm._v(\" \"+_vm._s(_vm.icons.export)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport icons from '@/core/icons';\nimport { SrbReportParametersDto } from '@/dtos/srb';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DownloadService from '@/services/DownloadService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { SrbTaxonomyService } from '@/services/srb';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\n\nexport default defineComponent({\n name: 'ReportingView',\n\n components: {\n PdFormBase,\n },\n\n setup() {\n const parameters = ref({\n name: '',\n code: '',\n country: '',\n critical: true,\n coreBusinessLine: false,\n otherRelevant: false,\n });\n\n async function exportReport() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n const file = await SrbTaxonomyService.ExportSrbReport(parameters.value);\n DownloadService.DownloadFile(file);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n console.log('export');\n }\n\n return {\n parameters,\n\n exportReport,\n\n icons: {\n export: icons.export,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportingView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportingView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReportingView.vue?vue&type=template&id=5c67bfaf&scoped=true&\"\nimport script from \"./ReportingView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReportingView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5c67bfaf\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCheckbox,VIcon,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loaded)?_c('pd-form-base',{attrs:{\"title\":\"Services\"}},[_c('pd-tree-grid',{attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.columns,\"options\":_vm.gridOptions,\"tree-column\":\"name\",\"height\":600,\"sort\":\"name\",\"sort-direction\":\"asc\"},scopedSlots:_vm._u([{key:\"edit-isCritical\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-checkbox',{attrs:{\"disabled\":item.isOtherRelevant},model:{value:(item.isCritical),callback:function ($$v) {_vm.$set(item, \"isCritical\", $$v)},expression:\"item.isCritical\"}})]}},{key:\"edit-isCoreBusinessLine\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-checkbox',{attrs:{\"disabled\":item.isOtherRelevant},model:{value:(item.isCoreBusinessLine),callback:function ($$v) {_vm.$set(item, \"isCoreBusinessLine\", $$v)},expression:\"item.isCoreBusinessLine\"}})]}},{key:\"edit-isOtherRelevant\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-checkbox',{attrs:{\"disabled\":item.isCritical || item/_vm.isCoreBusinessLine},model:{value:(item.isOtherRelevant),callback:function ($$v) {_vm.$set(item, \"isOtherRelevant\", $$v)},expression:\"item.isOtherRelevant\"}})]}}],null,false,3160899080)})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { ServiceDto } from '@/dtos/srb';\nimport { ApplicationModule } from '@/store';\nimport { ApiDataSource } from '@/core/datasource';\nimport i18n from '@/i18n';\nimport { PdTreeGrid, PdTreeGridHeader, PdTreeGridOptions } from '@/components/core/PdTreeGrid';\nimport PdColumnCheckbox from '@/components/core/PdDataTable/columns/PdColumnCheckbox.vue';\nimport { TranslatableComparison } from '@/core/helpers/sort';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'ServicesView',\n\n components: {\n PdFormBase,\n PdTreeGrid,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const datasource = ref>(new ApiDataSource({ api: `masterplans/${entityId}/srb/services` }));\n\n // const items = ref([]);\n const loaded = ref(false);\n\n const gridOptions: PdTreeGridOptions = {\n editable: true,\n itemTemplate: (item) => {\n return LanguageTemplate(item, 'name').text;\n },\n };\n\n const columns: Array> = [\n {\n id: 'name',\n text: i18n.t('service.name').toString(),\n value: 'translations',\n translatable: true,\n translationValue: 'name',\n defaultValue: 'New Service',\n sort: TranslatableComparison('name'),\n },\n {\n id: 'isCritical',\n text: i18n.t('service.isCritical').toString(),\n value: 'isCritical',\n width: '8rem',\n component: PdColumnCheckbox,\n defaultValue: false,\n },\n {\n id: 'isCoreBusinessLine',\n text: i18n.t('service.isCoreBusinessLine').toString(),\n value: 'isCoreBusinessLine',\n width: '10rem',\n component: PdColumnCheckbox,\n defaultValue: false,\n },\n {\n id: 'isOtherRelevant',\n text: i18n.t('service.isOtherRelevant').toString(),\n value: 'isOtherRelevant',\n width: '8rem',\n component: PdColumnCheckbox,\n defaultValue: false,\n },\n {\n id: 'deprecated',\n text: i18n.t('service.deprecated').toString(),\n value: 'isDeprecated',\n width: '8rem',\n component: PdColumnCheckbox,\n defaultValue: false,\n },\n ];\n\n loaded.value = true;\n\n return {\n datasource,\n columns,\n gridOptions,\n loaded,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServicesView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServicesView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ServicesView.vue?vue&type=template&id=288f36cd&scoped=true&\"\nimport script from \"./ServicesView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ServicesView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"288f36cd\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\ninstallComponents(component, {VCheckbox})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loaded)?_c('pd-form-base',{attrs:{\"title\":\"SrbServiceTypes\"}},[_c('pd-tree-grid',{attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.columns,\"options\":_vm.gridOptions,\"tree-column\":\"name\",\"height\":600,\"sort\":\"name\",\"sort-direction\":\"asc\"}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { SrbServiceTypeDto } from '@/dtos/srb';\nimport { ApplicationModule } from '@/store';\nimport { ApiDataSource } from '@/core/datasource';\nimport i18n from '@/i18n';\nimport { PdTreeGrid, PdTreeGridHeader, PdTreeGridOptions } from '@/components/core/PdTreeGrid';\nimport { TranslatableComparison } from '@/core/helpers/sort';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'SrbServiceTypesView',\n\n components: {\n PdFormBase,\n PdTreeGrid,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const datasource = ref>(new ApiDataSource({ api: `masterplans/${entityId}/srb/srbservicetypes` }));\n\n // const items = ref([]);\n const loaded = ref(false);\n\n const gridOptions: PdTreeGridOptions = {\n editable: true,\n itemTemplate: (item) => {\n return LanguageTemplate(item, 'name').text;\n },\n };\n\n const columns: Array> = [\n {\n id: 'name',\n text: i18n.t('srb.srbServiceType.name').toString(),\n value: 'translations',\n translatable: true,\n translationValue: 'name',\n defaultValue: 'New Service Type',\n sort: TranslatableComparison('name'),\n },\n ];\n\n loaded.value = true;\n\n return {\n datasource,\n columns,\n gridOptions,\n loaded,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SrbServiceTypesView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SrbServiceTypesView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SrbServiceTypesView.vue?vue&type=template&id=6b7851ef&scoped=true&\"\nimport script from \"./SrbServiceTypesView.vue?vue&type=script&lang=ts&\"\nexport * from \"./SrbServiceTypesView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b7851ef\",\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router';\n\nexport function prefixRoutes(prefix: string, routes: Array): Array {\n return routes.map(route => {\n route.path = prefix + '/' + route.path;\n return route;\n });\n}\n","import {\n BiaApplications,\n BiaAssets,\n BiaAssociates,\n BiaFinancialImpact,\n BiaInterdependencies,\n BiaOperationalImpact,\n BiaPartitionInfo,\n BiaPersonnel,\n BiaRcsa,\n BiaServices,\n DeploymentSurveyList,\n PartitionSurveyList,\n} from '@/components/bcm';\nimport { UserRole } from '@/dtos';\nimport { LegacyFormView } from '@/views';\nimport {\n AssociatesView,\n BcmDashboard,\n BiaDeploymentView,\n BiaPartitionView,\n BiaPartitionsTreeView,\n EmployeesView,\n LocationsView,\n PartitionsView,\n QuickView,\n SystemsView,\n} from '@/views/bcm';\nimport EmailTemplates from '@/views/bcm/incident/EmailTemplates.vue';\nimport IncidentViewer from '@/views/bcm/incident/IncidentViewer.vue';\nimport PrioritizationScales from '@/views/bcm/incident/PrioritizationScales.vue';\nimport ResolutionEvaluations from '@/views/bcm/incident/ResolutionEvaluations.vue';\nimport ResolutionStatuses from '@/views/bcm/incident/ResolutionStatuses.vue';\nimport Sectors from '@/views/bcm/incident/Sector.vue';\nimport Types from '@/views/bcm/incident/Type.vue';\nimport StrategiesView from '@/views/bcm/strategy/StrategiesView.vue';\nimport StrategyScenarioView from '@/views/bcm/strategy/StrategyScenarioView.vue';\nimport {\n BcpFunctionalScenarioView,\n BcpFunctionalTestAdminView,\n BcpFunctionalTestUserView,\n BcpFunctionalTestsView,\n} from '@/views/bcm/testing/BcpFunctionalTest';\nimport {\n BcpFunctionalTestUserFinalizingView,\n BcpFunctionalTestUserFinishedView,\n BcpFunctionalTestUserPlanningView,\n BcpFunctionalTestUserTestingView,\n} from '@/views/bcm/testing/BcpFunctionalTest/BcpFunctionalTestUser';\nimport DisasterRecoveryAdminView from '@/views/bcm/testing/DisasterRecoveryAdminView.vue';\nimport DisasterRecoveryTestConfirmationView from '@/views/bcm/testing/DisasterRecoveryTestConfirmationView.vue';\nimport DisasterRecoveryTestFinalizationView from '@/views/bcm/testing/DisasterRecoveryTestFinalizationView.vue';\nimport DisasterRecoveryTestFinishedView from '@/views/bcm/testing/DisasterRecoveryTestFinishedView.vue';\nimport DisasterRecoveryTestSchedulingView from '@/views/bcm/testing/DisasterRecoveryTestSchedulingView.vue';\nimport DisasterRecoveryTestTestingView from '@/views/bcm/testing/DisasterRecoveryTestTestingView.vue';\nimport DisasterRecoveryTestUserView from '@/views/bcm/testing/DisasterRecoveryTestUserView.vue';\nimport {\n ContractsView,\n CriticalitiesView,\n ServicesView,\n SrbReportingView,\n SrbServiceTypesView,\n SrbTaxonomyApplicationsView,\n SrbTaxonomyAssociatesView,\n SrbTaxonomyLocationsView,\n SrbTaxonomyPersonnelView,\n} from '@/views/srb';\nimport { RouteConfig } from 'vue-router';\nimport { prefixRoutes } from './helpers';\n\nexport const Routes: Array = [\n {\n name: 'bcm.dashboard',\n path: '',\n component: BcmDashboard,\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.coordinatorTypes',\n path: 'coordinatorTypes',\n component: LegacyFormView,\n props: { form: 'coordinatorTypes' },\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.GeneralAdministrator],\n },\n },\n {\n name: 'bcm.projectManagement',\n path: 'project',\n component: LegacyFormView,\n props: { form: 'projectManagement' },\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.organizationStructure',\n path: 'organization',\n component: PartitionsView,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n\n ...prefixRoutes('parameters', [\n {\n name: 'bcm.assets',\n path: 'assets',\n component: LegacyFormView,\n props: { form: 'assets' },\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.systems',\n path: 'systems',\n component: SystemsView,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator, UserRole.IsraAdministrator],\n },\n },\n {\n name: 'bcm.employees',\n path: 'employees',\n component: EmployeesView,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.associates',\n path: 'associates',\n component: AssociatesView,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.contracts',\n path: 'contracts',\n component: ContractsView,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'srb.criticalities',\n path: 'criticalities',\n component: CriticalitiesView,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.costUnits',\n path: 'costUnits',\n component: LegacyFormView,\n props: { form: 'costUnits' },\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.financialImpactScales',\n path: 'financialImpactScales',\n component: LegacyFormView,\n props: { form: 'financialImpactScales' },\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.operationalImpactScales',\n path: 'operationalImpactScales',\n component: LegacyFormView,\n props: { form: 'operationalImpactScales' },\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.locationGroups',\n path: 'locationGroups',\n component: LegacyFormView,\n props: { form: 'locationGroups' },\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.locations',\n path: 'locations',\n component: LocationsView,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.positions',\n path: 'positions',\n component: LegacyFormView,\n props: { form: 'positions' },\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.recoverySiteTypes',\n path: 'recoverySiteTypes',\n component: LegacyFormView,\n props: { form: 'recoverySiteTypes' },\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.recoverySites',\n path: 'recoverySites',\n component: LegacyFormView,\n props: { form: 'recoverySites' },\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.rpo',\n path: 'rpo',\n component: LegacyFormView,\n props: { form: 'rpo' },\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.rto',\n path: 'rtoAssets',\n component: LegacyFormView,\n props: { form: 'rto' },\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.rtoApplications',\n path: 'rtoApplications',\n component: LegacyFormView,\n props: { form: 'rtoApplications' },\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.services',\n path: 'services',\n component: ServicesView,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.implementationScales',\n path: 'implementationScales',\n component: LegacyFormView,\n props: { form: 'implementationScales' },\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n ]),\n\n ...prefixRoutes('bia', [\n {\n name: 'bcm.bia',\n path: 'bia',\n component: BiaPartitionsTreeView,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.financialImpactQuestions',\n path: 'financialImpactQuestions',\n component: LegacyFormView,\n props: { form: 'financialImpactQuestions' },\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.operationalImpactQuestions',\n path: 'operationalImpactQuestions',\n component: LegacyFormView,\n props: { form: 'operationalImpactQuestions' },\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.surveys',\n path: 'surveys',\n component: LegacyFormView,\n props: { form: 'surveys' },\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.bia.partition',\n path: 'bia/partition/:partitionId',\n component: BiaPartitionView,\n props: true,\n redirect: { name: 'bcm.bia.partition.info' },\n children: [\n {\n name: 'bcm.bia.partition.info',\n path: 'info',\n component: BiaPartitionInfo,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.bia.partition.surveys',\n path: 'surveys',\n component: PartitionSurveyList,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.bia.partition.operational',\n path: 'operational',\n component: BiaOperationalImpact,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.bia.partition.assets',\n path: 'assets',\n component: BiaAssets,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.bia.partition.applications',\n path: 'applications',\n component: BiaApplications,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.bia.partition.personnel',\n path: 'personnel',\n component: BiaPersonnel,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.bia.partition.financial',\n path: 'financial',\n component: BiaFinancialImpact,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.bia.partition.interdependencies',\n path: 'interdependencies',\n component: BiaInterdependencies,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.bia.partition.associates',\n path: 'associates',\n component: BiaAssociates,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.bia.partition.services',\n path: 'services',\n component: BiaServices,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n {\n name: 'bcm.bia.partition.rcsa',\n path: 'rcsa',\n component: BiaRcsa,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n ],\n },\n {\n name: 'bcm.deployment',\n path: 'deployment/:deploymentId',\n component: BiaDeploymentView,\n props: true,\n redirect: { name: 'bcm.deployment.surveys' },\n children: [\n {\n name: 'bcm.deployment.surveys',\n path: 'surveys',\n component: DeploymentSurveyList,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.deployment.operational',\n path: 'operational',\n component: BiaOperationalImpact,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.deployment.assets',\n path: 'assets',\n component: BiaAssets,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.deployment.applications',\n path: 'applications',\n component: BiaApplications,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.deployment.personnel',\n path: 'personnel',\n component: BiaPersonnel,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.deployment.financial',\n path: 'financial',\n component: BiaFinancialImpact,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.deployment.interdependencies',\n path: 'interdependencies',\n component: BiaInterdependencies,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.deployment.associates',\n path: 'associates',\n component: BiaAssociates,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.deployment.services',\n path: 'services',\n component: BiaServices,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.deployment.rcsa',\n path: 'rcsa',\n component: BiaRcsa,\n meta: {\n auth: [],\n },\n },\n ],\n meta: {\n auth: [],\n },\n },\n ]),\n\n ...prefixRoutes('risk', [\n {\n name: 'bcm.riskGroups',\n path: 'riskGroups',\n component: LegacyFormView,\n props: { form: 'riskGroups' },\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.risks',\n path: 'risks',\n component: LegacyFormView,\n props: { form: 'risks' },\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.riskProbabilities',\n path: 'riskProbabilities',\n component: LegacyFormView,\n props: { form: 'riskProbabilities' },\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.riskImpactScales',\n path: 'riskImpactScales',\n component: LegacyFormView,\n props: { form: 'riskImpactScales' },\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.riskImpactAreas',\n path: 'riskImpactAreas',\n component: LegacyFormView,\n props: { form: 'riskImpactAreas' },\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.riskControlEvaluations',\n path: 'riskControlEvaluations',\n component: LegacyFormView,\n props: { form: 'riskControlEvaluations' },\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.riskLevels',\n path: 'riskLevels',\n component: LegacyFormView,\n props: { form: 'riskLevels' },\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.riskTreatments',\n path: 'riskTreatments',\n component: LegacyFormView,\n props: { form: 'riskTreatments' },\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n ]),\n\n ...prefixRoutes('testing', [\n {\n name: 'bcm.testing.dr',\n path: 'dr',\n component: DisasterRecoveryAdminView,\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.testing.dr.test',\n path: 'dr/:testId',\n component: DisasterRecoveryTestUserView,\n props: true,\n meta: {\n auth: [],\n },\n children: [\n {\n name: 'bcm.testing.dr.test.confirmation',\n path: 'confirmation',\n component: DisasterRecoveryTestConfirmationView,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.testing.dr.test.scheduling',\n path: 'scheduling',\n component: DisasterRecoveryTestSchedulingView,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.testing.dr.test.testing',\n path: 'testing',\n component: DisasterRecoveryTestTestingView,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.testing.dr.test.finalization',\n path: 'finalization',\n component: DisasterRecoveryTestFinalizationView,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.testing.dr.test.finished',\n path: 'finished',\n component: DisasterRecoveryTestFinishedView,\n meta: {\n auth: [],\n },\n },\n ],\n },\n {\n name: 'bcm.testing.bcp.scenarios',\n path: 'bcp/scenarios',\n component: BcpFunctionalScenarioView,\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.testing.bcp.admin.tests',\n path: 'bcp/admin/tests',\n component: BcpFunctionalTestsView,\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.testing.bcp.admin.test',\n path: 'bcp/admin/test/:testId',\n component: BcpFunctionalTestAdminView,\n props: true,\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.testing.bcp.test',\n path: 'bcp/test/:testId',\n component: BcpFunctionalTestUserView,\n props: true,\n meta: {\n auth: [],\n },\n children: [\n {\n name: 'bcm.testing.bcp.test.planning',\n path: 'planning',\n component: BcpFunctionalTestUserPlanningView,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.testing.bcp.test.testing',\n path: 'testing',\n component: BcpFunctionalTestUserTestingView,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.testing.bcp.test.finalizing',\n path: 'finalizing',\n component: BcpFunctionalTestUserFinalizingView,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.testing.bcp.test.finished',\n path: 'finished',\n component: BcpFunctionalTestUserFinishedView,\n meta: {\n auth: [],\n },\n },\n ],\n },\n ]),\n\n ...prefixRoutes('incidents', [\n {\n name: 'bcm.incident.viewer',\n path: 'incidents/incident/:incidentId',\n component: IncidentViewer,\n props: true,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.incident.sectors',\n path: 'incident/sectors',\n component: Sectors,\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.incident.types',\n path: 'incident/types',\n component: Types,\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.incident.prioritization',\n path: 'incident/prioritization',\n component: PrioritizationScales,\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.incident.resolutions',\n path: 'incident/resolutions',\n component: ResolutionStatuses,\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.incident.evaluations',\n path: 'incident/evaluations',\n component: ResolutionEvaluations,\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.incident.templates',\n path: 'incident/templates',\n component: EmailTemplates,\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n ]),\n\n ...prefixRoutes('bcp', [\n {\n name: 'bcm.bcpTemplates',\n path: 'bcpTemplates',\n component: LegacyFormView,\n props: { form: 'bcpTemplates' },\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.bcpGenerator',\n path: 'bcpGenerator',\n component: LegacyFormView,\n props: { form: 'bcpGenerator' },\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'bcm.bcpDocuments',\n path: 'bcpDocuments',\n component: LegacyFormView,\n props: { form: 'bcpDocuments' },\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n ]),\n\n {\n name: 'bcm.strategy',\n path: 'strategies',\n component: StrategiesView,\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n\n {\n name: 'bcm.strategy.scenario',\n path: 'strategies/:strategyId/scenario/:scenarioId',\n component: StrategyScenarioView,\n props: true,\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n\n {\n name: 'bcm.quickView',\n path: 'quickView',\n component: QuickView,\n meta: {\n auth: [UserRole.BcmAdministrator],\n },\n },\n {\n name: 'srb.srbServiceTypes',\n path: 'srb/srbServiceTypes',\n component: SrbServiceTypesView,\n meta: {\n auth: [UserRole.BcmAdministrator, UserRole.BcmCoordinator],\n },\n },\n\n {\n name: 'bcm.srb.taxonomy.applications',\n path: 'srb/taxonomy/applications',\n component: SrbTaxonomyApplicationsView,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.srb.taxonomy.locations',\n path: 'srb/taxonomy/locations',\n component: SrbTaxonomyLocationsView,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.srb.taxonomy.associates',\n path: 'srb/taxonomy/associates',\n component: SrbTaxonomyAssociatesView,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.srb.taxonomy.personnel',\n path: 'srb/taxonomy/personnel',\n component: SrbTaxonomyPersonnelView,\n meta: {\n auth: [],\n },\n },\n {\n name: 'bcm.srb.reporting',\n path: 'srb/reporting',\n component: SrbReportingView,\n meta: {\n auth: [],\n },\n },\n];\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.list.id !== 0)?_c('pd-form-base',{attrs:{\"loading\":_vm.loading,\"title\":_vm.title}},[(_vm.newCategoryDialogVisibility)?_c('new-category-dialog',{on:{\"save\":_vm.saveNewCategory,\"cancel\":function($event){_vm.newCategoryDialogVisibility = false}}}):_vm._e(),(_vm.showImportDialog)?_c('pd-file-import-dialog',{attrs:{\"title\":_vm.importTitle,\"hide-languages\":\"\"},on:{\"save\":_vm.uploadCsvFile,\"cancel\":function($event){_vm.showImportDialog = false}},scopedSlots:_vm._u([{key:\"importFileFormat\",fn:function(){return [_c('i18n',{attrs:{\"path\":_vm.importFormat}},[_c('br')])]},proxy:true}],null,false,4076245126)}):_vm._e(),_c('div',{staticClass:\"my-3\"},[_c('v-btn',{staticClass:\"text-none mr-3\",attrs:{\"small\":\"\"},on:{\"click\":_vm.showNewCategoryDialog}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.add)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('compliance.list.details.addCategory'))+\" \")],1),_c('v-btn',{staticClass:\"text-none mr-3\",attrs:{\"small\":\"\"},on:{\"click\":_vm.exportData}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.export)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-2 text-none px-2\",attrs:{\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.import)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('import'))+\" \")],1)]}}],null,false,282116076)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.importData('categories')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('compliance.list.details.importCategories')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.importData('controls')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('compliance.list.details.importControls')))])],1)],1)],1),_c('v-btn',{staticClass:\"text-none mr-3\",attrs:{\"small\":\"\"},on:{\"click\":_vm.returnToList}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.return)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('compliance.list.details.returnToList'))+\" \")],1)],1),(_vm.list.categories.length === 0)?_c('v-card',[_c('v-card-text',[_vm._v(\" \"+_vm._s(_vm.$t('compliance.list.details.emptyList'))+\" \")])],1):_vm._e(),_vm._l((_vm.list.categories),function(category,i){return [_c('list-category',{key:category.uuid,staticClass:\"px-3\",attrs:{\"category\":category,\"list-id\":_vm.list.id,\"index\":i},on:{\"update-category\":_vm.updateCategory,\"remove\":_vm.removeCategory,\"update-statistics\":_vm.updateStatistics}})]}),_c('pd-echarts',{staticClass:\"pt-6\",attrs:{\"styling\":\"width: 100%; height: 700px\",\"options\":_vm.graphOptions}})],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from '@/api/axios';\nimport { ComplianceListCategoryDto } from '@/dtos/compliance/ComplianceListCategoryDto';\nimport { ComplianceListControlDto } from '@/dtos/compliance/ComplianceListControlDto';\nimport { ComplianceListDto } from '@/dtos/compliance/ComplianceListDto';\nimport { EntityApiBase } from '../EntityApiBase';\n\nexport default class CompliancesApi extends EntityApiBase {\n static async GetListDetails(listId: number): Promise {\n const response = await axios.get(`/masterplans/${EntityApiBase.EntityId}/Compliance/Lists/${listId}`);\n return Promise.resolve(response.data);\n }\n\n static async AddCategoryToList(listId: number, category: ComplianceListCategoryDto): Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/Compliance/Lists/${listId}/Categories`, category);\n return Promise.resolve(response.data);\n }\n\n static async AddSubCategory(listId: number, categoryId: number, subCategory: ComplianceListCategoryDto): Promise {\n const response = await axios.post(`/masterplans/${EntityApiBase.EntityId}/Compliance/Lists/${listId}/Categories/${categoryId}/AddSubcategory`, subCategory);\n return Promise.resolve(response.data);\n }\n\n static async RemoveCategory(listId: number, categoryId: number): Promise {\n await axios.delete(`/masterplans/${EntityApiBase.EntityId}/Compliance/Lists/${listId}/Categories/${categoryId}`);\n return Promise.resolve();\n }\n\n static async UpdateCategory(listId: number, category: ComplianceListCategoryDto): Promise {\n const result = await axios.put(`/masterplans/${EntityApiBase.EntityId}/Compliance/Lists/${listId}/Categories/${category.id}`, category);\n return Promise.resolve(result.data);\n }\n\n static async AddControl(listId: number, categoryId: number, control: ComplianceListControlDto):Promise {\n const result = await axios.post(`/masterplans/${EntityApiBase.EntityId}/Compliance/Lists/${listId}/Categories/${categoryId}/Controls`, control);\n return Promise.resolve(result.data);\n }\n\n static async UpdateControl(listId: number, categoryId: number, control: ComplianceListControlDto):Promise {\n const result = await axios.put(`/masterplans/${EntityApiBase.EntityId}/Compliance/Lists/${listId}/Categories/${categoryId}/Controls/${control.id}`, control);\n return Promise.resolve(result.data);\n }\n\n static async DeleteControl(listId: number, categoryId: number, controlId: number):Promise {\n await axios.delete(`/masterplans/${EntityApiBase.EntityId}/Compliance/Lists/${listId}/Categories/${categoryId}/Controls/${controlId}`);\n return Promise.resolve();\n }\n\n static async ImportCategories(listId: number, data: FormData): Promise {\n await axios.post(`/masterplans/${EntityApiBase.EntityId}/Compliance/Lists/${listId}/ImportCategories`, data);\n return Promise.resolve();\n }\n\n static async ImportControls(listId: number, data: FormData): Promise {\n await axios.post(`/masterplans/${EntityApiBase.EntityId}/Compliance/Lists/${listId}/ImportControls`, data);\n return Promise.resolve();\n }\n}\n","import CompliancesApi from '@/api/compliance/CompliancesApi';\nimport { UploadCsvFileDto, UploadCsvFileDtoToFormData } from '@/dtos';\nimport { ComplianceListCategoryDto } from '@/dtos/compliance/ComplianceListCategoryDto';\nimport { ComplianceListControlDto } from '@/dtos/compliance/ComplianceListControlDto';\nimport { ComplianceListDto } from '@/dtos/compliance/ComplianceListDto';\n\nexport default class CompliancesService {\n public static async GetListDetails(id: number): Promise {\n return CompliancesApi.GetListDetails(id);\n }\n\n public static async AddCategoryToList(list: ComplianceListDto, category: ComplianceListCategoryDto): Promise {\n return CompliancesApi.AddCategoryToList(list.id, category);\n }\n\n public static async AddSubCategory(listId: number, category: ComplianceListCategoryDto, subCategory: ComplianceListCategoryDto): Promise {\n return CompliancesApi.AddSubCategory(listId, category.id, subCategory);\n }\n\n public static async RemoveCategory(listId: number, category: ComplianceListCategoryDto): Promise {\n return CompliancesApi.RemoveCategory(listId, category.id);\n }\n\n public static async UpdateCategory(listId: number, category: ComplianceListCategoryDto):Promise {\n return CompliancesApi.UpdateCategory(listId, category);\n }\n\n public static async SaveControl(listId:number, categoryId: number, control: ComplianceListControlDto): Promise {\n if (control.id === 0) {\n return CompliancesApi.AddControl(listId, categoryId, control);\n } else {\n return CompliancesApi.UpdateControl(listId, categoryId, control);\n }\n }\n\n public static async DeleteControl(listId:number, categoryId: number, control: ComplianceListControlDto): Promise {\n return CompliancesApi.DeleteControl(listId, categoryId, control.id);\n }\n\n public static async ImportCategories(listId: number, parameters: UploadCsvFileDto): Promise {\n const fd = UploadCsvFileDtoToFormData(parameters);\n\n return CompliancesApi.ImportCategories(listId, fd);\n }\n\n public static async ImportControls(listId: number, parameters: UploadCsvFileDto): Promise {\n const fd = UploadCsvFileDtoToFormData(parameters);\n\n return CompliancesApi.ImportControls(listId, fd);\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup',{attrs:{\"visible\":\"\",\"index\":10,\"width\":'800px'}},[_c('v-card',{attrs:{\"light\":\"\"}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t('compliance.list.details.newCategoryDialogTitle'))+\" \")]),_c('v-card-text',[_c('v-text-field',{attrs:{\"label\":_vm.$t('compliance.list.details.categoryName')},model:{value:(_vm.category),callback:function ($$v) {_vm.category=$$v},expression:\"category\"}})],1),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancel}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.save'))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { ComplianceListCategoryDto } from '@/dtos/compliance/ComplianceListCategoryDto';\nimport { ApplicationModule } from '@/store';\nimport PdPopup from '../core/PdPopup.vue';\n\nexport default defineComponent({\n components: { PdPopup },\n name: 'NewCategoryDialog',\n setup(_, { emit }) {\n const category = ref('');\n\n function saveChanges() {\n const c: ComplianceListCategoryDto = {\n id: 0,\n translations: {},\n subCategories: [],\n controls: [],\n };\n\n c.translations[ApplicationModule.Language] = { name: category.value };\n\n emit('save', c);\n }\n\n function cancel() {\n emit('cancel');\n }\n\n return {\n category,\n cancel,\n saveChanges,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewCategoryDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewCategoryDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewCategoryDialog.vue?vue&type=template&id=b62eb192&scoped=true&\"\nimport script from \"./NewCategoryDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewCategoryDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b62eb192\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.newCategoryDialogVisibility)?_c('new-category-dialog',{on:{\"save\":_vm.saveNewCategory,\"cancel\":function($event){_vm.newCategoryDialogVisibility = false}}}):_vm._e(),(_vm.editCategoryDialogVisibility)?_c('edit-category-dialog',{attrs:{\"category\":_vm.category},on:{\"save\":_vm.saveEditCategory,\"cancel\":function($event){_vm.editCategoryDialogVisibility = false}}}):_vm._e(),_c('v-row',{staticClass:\"align-center\",class:_vm.getRowClass,style:({'padding-left': ((24*_vm.depth) + \"px\")}),on:{\"click\":function($event){_vm.showDetails = !_vm.showDetails}}},[_c('v-col',{staticClass:\"shrink pl-2 pr-1\"},[_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\",\"close-on-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.mdiDotsVertical)+\" \")])],1)]}}])},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{attrs:{\"disabled\":_vm.category.controls != null && _vm.category.controls.length > 0},on:{\"click\":_vm.addSubCategory}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiContentDuplicate)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('compliance.list.details.addSubcategory'))+\" \")])],1),_c('v-list-item',{attrs:{\"disabled\":_vm.category.subCategories != null && _vm.category.subCategories.length > 0},on:{\"click\":_vm.addControl}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiClipboardPlusOutline)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('compliance.list.details.addControl'))+\" \")])],1),_c('v-divider'),_c('v-list-item',{on:{\"click\":_vm.edit}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPencil)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('compliance.list.details.edit'))+\" \")])],1),_c('v-divider'),_c('v-list-item',{on:{\"click\":_vm.remove}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\",\"color\":\"#cc0000\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiTrashCan)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('compliance.list.details.remove'))+\" \")])],1)],1)],1)],1),_c('v-col',{staticClass:\"grow px-0 pb-0 pt-1\",class:_vm.getCategoryClass},[_c('span',[_vm._v(\" \"+_vm._s(_vm.categoryName)+\" \")])]),_c('v-col',{staticClass:\"shrink text-right\"},[_c('span',{staticClass:\"assessed-label\"},[_vm._v(\" Weighted Implementation \"+_vm._s(_vm.implementedValueRounded)+\" / \"+_vm._s(_vm.implementedTotalRounded)+\" (\"+_vm._s(_vm.implementedPercent)+\"%) \")])]),_c('v-col',{staticClass:\"shrink\"},[_c('v-icon',{class:{'details-rotated': _vm.showDetails}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiChevronDown)+\" \")])],1)],1),_c('v-expand-transition',[(_vm.emptyCategory)?_c('v-row',{staticClass:\"category\"},[_c('v-col',{staticClass:\"ml-7\"},[_vm._v(\" So empty... \")])],1):_vm._e()],1),_vm._l((_vm.category.subCategories),function(sub){return _c('v-expand-transition',{key:sub.uuid},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showDetails && _vm.category.subCategories != null && _vm.category.subCategories.length > 0),expression:\"showDetails && category.subCategories != null && category.subCategories.length > 0\"}]},[_c('list-category',{key:sub.uuid,attrs:{\"category\":sub,\"list-id\":_vm.listId,\"depth\":_vm.depth + 1},on:{\"remove\":_vm.removeSubCategory,\"update-category\":_vm.updateSubCategory,\"update-statistics\":_vm.updateStatistics}})],1)])}),_c('v-expand-transition',[(_vm.showDetails && _vm.category.controls != null && _vm.category.controls.length > 0)?_c('div',_vm._l((_vm.category.controls),function(control){return _c('category-control',{key:control.uuid,attrs:{\"control\":control,\"list-id\":_vm.listId,\"category-id\":_vm.category.id,\"depth\":_vm.depth + 1},on:{\"remove\":_vm.removeControl,\"save\":_vm.saveControl,\"cancel-new\":_vm.cancelNewControl}})}),1):_vm._e()])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup',{attrs:{\"visible\":\"\",\"index\":10,\"width\":'1000px'}},[(_vm.item!=null)?_c('v-card',{attrs:{\"light\":\"\"}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t('table.translations.button'))+\" \")]),_c('v-card-text',[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('table.translations.language'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('compliance.list.details.categoryName'))+\" \")])])]),_c('tbody',_vm._l((_vm.entity.languages),function(value){return _c('tr',{key:value.language},[_c('td',[_vm._v(\" \"+_vm._s(_vm.languages[value.language].name)+\" \")]),_c('td',{attrs:{\"width\":\"800px\"}},[_c('v-text-field',{attrs:{\"single-line\":\"\"},model:{value:(_vm.item.translations[value.language].name),callback:function ($$v) {_vm.$set(_vm.item.translations[value.language], \"name\", $$v)},expression:\"item.translations[value.language].name\"}})],1)])}),0)])],1),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancel}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.save'))+\" \")])],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { ComplianceListCategoryDto } from '@/dtos/compliance/ComplianceListCategoryDto';\nimport { ApplicationModule } from '@/store';\nimport PdPopup from '../core/PdPopup.vue';\nimport { cloneDeep } from 'lodash';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'NewCategoryDialog',\n\n components: { PdPopup },\n\n props: {\n category: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const languages = ApplicationModule.AllLanguages;\n const entity = ApplicationModule.Entity;\n\n const item = ref(null);\n\n function saveChanges() {\n emit('save', item.value);\n }\n\n function cancel() {\n emit('cancel');\n }\n\n watch(\n () => props.category,\n (category) => {\n const cat = cloneDeep(category) as ComplianceListCategoryDto;\n\n if (entity != null) {\n for (let i = 0; i < entity.languages.length; ++i) {\n if (cat.translations[entity.languages[i].language] == null) {\n cat.translations[entity.languages[i].language] = { name: LanguageTemplate(cat, 'name').text };\n }\n }\n }\n\n item.value = cat;\n },\n { immediate: true },\n );\n\n return {\n languages,\n entity,\n item,\n cancel,\n saveChanges,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditCategoryDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditCategoryDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EditCategoryDialog.vue?vue&type=template&id=5e8b2a9b&scoped=true&\"\nimport script from \"./EditCategoryDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./EditCategoryDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e8b2a9b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VSimpleTable,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup',{attrs:{\"visible\":\"\",\"index\":10,\"width\":'800px'}},[_c('v-card',{staticClass:\"scroll\",attrs:{\"light\":\"\"}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t('compliance.list.details.editControlDialogTitle'))+\" \")]),_c('v-card-text',[_c('v-text-field',{attrs:{\"label\":_vm.$t('compliance.list.details.controlId'),\"error-messages\":_vm.controlErrors},model:{value:(_vm.controlId),callback:function ($$v) {_vm.controlId=$$v},expression:\"controlId\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('compliance.list.details.controlTitle'),\"error-messages\":_vm.titleErrors},model:{value:(_vm.title),callback:function ($$v) {_vm.title=$$v},expression:\"title\"}}),_c('v-textarea',{attrs:{\"label\":_vm.$t('compliance.list.details.controlDescription'),\"rows\":3},model:{value:(_vm.description),callback:function ($$v) {_vm.description=$$v},expression:\"description\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('compliance.list.details.controlWeight'),\"error-messages\":_vm.weightErrors},on:{\"keypress\":_vm.preventNonNumericalInput},model:{value:(_vm.weight),callback:function ($$v) {_vm.weight=$$v},expression:\"weight\"}}),_c('pd-date-picker',{attrs:{\"title\":_vm.$t('compliance.list.details.controlTargetDate')},model:{value:(_vm.targetDate),callback:function ($$v) {_vm.targetDate=$$v},expression:\"targetDate\"}}),_c('user-selector-box',{attrs:{\"label\":_vm.$t('compliance.list.details.controlImplementationResponsible'),\"select\":\"user\"},model:{value:(_vm.implementationUser),callback:function ($$v) {_vm.implementationUser=$$v},expression:\"implementationUser\"}}),_c('v-textarea',{attrs:{\"label\":_vm.$t('compliance.list.details.controlImplementationActions'),\"rows\":3},model:{value:(_vm.implementationActions),callback:function ($$v) {_vm.implementationActions=$$v},expression:\"implementationActions\"}})],1),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":_vm.cancel}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.save'))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { ApplicationModule } from '@/store';\nimport PdPopup from '../core/PdPopup.vue';\nimport UserSelectorBox from '../all/UserSelectorBox.vue';\nimport { DateTemplate, LanguageTemplate } from '@/core/helpers/templates';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nimport { ComplianceListControlDto } from '@/dtos/compliance/ComplianceListControlDto';\nimport i18n from '@/i18n';\nimport PdDatePicker from '../core/PdDatePicker.vue';\n\nexport default defineComponent({\n name: 'NewCategoryDialog',\n\n components: { PdPopup, UserSelectorBox, PdDatePicker },\n\n props: {\n control: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const controlId = ref('');\n const controlErrors = ref('');\n\n const title = ref('');\n const titleErrors = ref('');\n\n const description = ref('');\n\n const weight = ref('');\n const weightErrors = ref('');\n\n const targetDate = ref(DateTemplate(new Date().toString()).text);\n\n const implementationUser = ref(null);\n\n const implementationActions = ref('');\n\n watch(\n () => props.control,\n (control) => {\n controlId.value = control.controlId;\n title.value = LanguageTemplate(control, 'title').text;\n description.value = LanguageTemplate(control, 'description').text;\n weight.value = control.controlWeight.toString();\n targetDate.value = control.targetDate || '';\n implementationUser.value = control.implementationResponsible || null;\n implementationActions.value = control.implementationActions;\n },\n { immediate: true },\n );\n\n function saveChanges() {\n let errors = false;\n if (!controlId.value.trim()) {\n controlErrors.value = i18n.t('compliance.list.details.controlIdRequired').toString();\n errors = true;\n } else {\n controlErrors.value = '';\n }\n\n if (!title.value.trim()) {\n titleErrors.value = i18n.t('compliance.list.details.controlTitleRequired').toString();\n errors = true;\n } else {\n titleErrors.value = '';\n }\n\n if (!weight.value.trim()) {\n weightErrors.value = i18n.t('compliance.list.details.controlWeightRequired').toString();\n errors = true;\n } else {\n weightErrors.value = '';\n }\n\n if (errors) {\n return;\n }\n\n const control: ComplianceListControlDto = {\n id: props.control.id,\n controlId: controlId.value,\n controlWeight: parseInt(weight.value),\n implementationActions: implementationActions.value,\n implementationResponsible: implementationUser.value || undefined,\n targetDate: targetDate.value,\n implementedPercentage: props.control.implementedPercentage,\n translations: {},\n uuid: props.control.uuid,\n };\n\n control.translations[ApplicationModule.Language] = {\n title: title.value,\n description: description.value,\n };\n\n emit('save', control);\n }\n\n function cancel() {\n emit('cancel');\n }\n\n function preventNonNumericalInput(e: KeyboardEvent) {\n if (!e.key.match(/^[0-9]+$/)) {\n e.preventDefault();\n }\n }\n\n return {\n controlId,\n title,\n description,\n weight,\n targetDate,\n implementationUser,\n implementationActions,\n cancel,\n saveChanges,\n preventNonNumericalInput,\n\n controlErrors,\n titleErrors,\n weightErrors,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditControlDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditControlDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EditControlDialog.vue?vue&type=template&id=5a374cde&scoped=true&\"\nimport script from \"./EditControlDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./EditControlDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EditControlDialog.vue?vue&type=style&index=0&id=5a374cde&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a374cde\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VTextField,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.editControlDialogVisibility)?_c('edit-control-dialog',{attrs:{\"control\":_vm.control},on:{\"save\":_vm.saveEditControl,\"cancel\":_vm.cancelEdit}}):_vm._e(),_c('v-row',{staticClass:\"align-center category body-2\"},[_c('v-col',{staticClass:\"ml-1\"},[_c('v-row',{staticClass:\"ml-2 subtitle-2 my-2 mx-4 font-weight-bold\",staticStyle:{\"color\":\"rgba(0,0,0,.6)\"},attrs:{\"justify\":\"space-between\",\"align\":\"center\",\"dense\":\"\"},on:{\"dblclick\":_vm.edit}},[_c('v-col',[_vm._v(\" Control Details \")]),_c('v-col',{staticClass:\"text-right\"},[_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\",\"close-on-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"dblclick\":function($event){$event.stopPropagation();}}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"large\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiDotsVertical)+\" \")])],1)]}}])},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',{on:{\"click\":_vm.edit}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPencil)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('compliance.list.details.edit'))+\" \")])],1),_c('v-divider'),_c('v-list-item',{on:{\"click\":_vm.remove}},[_c('v-list-item-icon',{staticClass:\"mr-2\"},[_c('v-icon',{attrs:{\"left\":\"\",\"color\":\"#cc0000\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiTrashCan)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('compliance.list.details.remove'))+\" \")])],1)],1)],1)],1)],1),_c('v-divider',{staticClass:\"mb-2\"}),_c('v-row',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"dense\":\"\"},on:{\"dblclick\":_vm.edit}},[_c('v-col',[_c('v-simple-table',[_c('tbody',[_c('tr',{staticStyle:{\"vertical-align\":\"top\"}},[_c('td',{staticStyle:{\"width\":\"50%\"}},[_c('div',{staticClass:\" pb-1\"},[_c('span',{staticClass:\"control-title\"},[_vm._v(_vm._s(_vm.$t('compliance.list.details.controlId'))+\":\")]),_vm._v(\" \"+_vm._s(_vm.control.controlId)+\" \")]),_c('div',{staticClass:\"pb-1\"},[_c('span',{staticClass:\"control-title\"},[_vm._v(_vm._s(_vm.$t('compliance.list.details.controlTitle'))+\":\")]),_vm._v(\" \"+_vm._s(_vm.controlTitle)+\" \")]),_c('div',{staticClass:\"pb-1\"},[_c('span',{staticClass:\"control-title\"},[_vm._v(_vm._s(_vm.$t('compliance.list.details.controlWeight'))+\":\")]),_vm._v(\" \"),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.control.controlWeight))])]),_c('div',{staticClass:\"pb-1\"},[_c('span',{staticClass:\"control-title\"},[_vm._v(_vm._s(_vm.$t('compliance.list.details.controlDescription'))+\":\")]),_vm._v(\" \"+_vm._s(_vm.controlDescription)+\" \")])]),_c('td',[_c('div',{staticClass:\"pb-1\"},[_c('span',{staticClass:\"control-title\"},[_vm._v(_vm._s(_vm.$t('compliance.list.details.controlTargetDate'))+\":\")]),_vm._v(\" \"+_vm._s(_vm.targetImplementationDate)+\" \")]),_c('div',{staticClass:\"pb-1\"},[_c('span',{staticClass:\"control-title\"},[_vm._v(_vm._s(_vm.$t('compliance.list.details.controlImplementationResponsible'))+\":\")]),_vm._v(\" \"+_vm._s(_vm.implementationResponsible)+\" \")]),_c('div',{staticClass:\"pb-1\"},[_c('span',{staticClass:\"control-title\"},[_vm._v(_vm._s(_vm.$t('compliance.list.details.controlImplementationActions'))+\":\")]),_vm._v(\" \"+_vm._s(_vm.control.implementationActions)+\" \")])])])])])],1)],1),_c('v-row',{staticClass:\"ml-2 subtitle-2 my-2 mx-4 font-weight-bold\",staticStyle:{\"color\":\"rgba(0,0,0,.6)\"},attrs:{\"justify\":\"space-between\",\"align\":\"center\",\"dense\":\"\"}},[_c('v-col',[_vm._v(\" Implementation Details \")])],1),_c('v-divider'),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"grow\"},[_c('v-textarea',{attrs:{\"auto-grow\":\"\",\"rows\":\"1\",\"label\":_vm.$t('compliance.list.details.controlImplementedComments')},on:{\"change\":_vm.updateImplementedAnswer},model:{value:(_vm.implementedComments),callback:function ($$v) {_vm.implementedComments=$$v},expression:\"implementedComments\"}})],1),_c('v-col',{staticClass:\"shrink\"},[(_vm.showImplementationPercentageSelect)?_c('v-select',{staticStyle:{\"width\":\"150px\"},attrs:{\"items\":_vm.implementationPercentageItems,\"label\":_vm.$t('compliance.list.details.controlImplementedPercentageSelect')},on:{\"change\":_vm.updateImplementedAnswer},model:{value:(_vm.implementedPercentage),callback:function ($$v) {_vm.implementedPercentage=$$v},expression:\"implementedPercentage\"}}):_vm._e(),(!_vm.showImplementationPercentageSelect)?_c('v-text-field',{staticStyle:{\"width\":\"150px\"},attrs:{\"label\":_vm.$t('compliance.list.details.controlImplementedPercentage')},on:{\"keypress\":_vm.preventNonNumericalInput,\"change\":_vm.updateImplementedAnswer},model:{value:(_vm.implementedPercentage),callback:function ($$v) {_vm.implementedPercentage=$$v},expression:\"implementedPercentage\"}}):_vm._e()],1),_c('v-col',{staticClass:\"shrink\"},[_c('pd-date-picker',{attrs:{\"text-field-style\":\"width: 150px;\",\"title\":_vm.$t('compliance.list.details.controlImplementedDate'),\"max\":_vm.maxImplementationDate},on:{\"input\":_vm.updateImplementedAnswer},model:{value:(_vm.implementedDate),callback:function ($$v) {_vm.implementedDate=$$v},expression:\"implementedDate\"}})],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { mdiChevronDown, mdiDotsVertical, mdiTrashCan, mdiPencil, mdiContentDuplicate, mdiClipboardPlusOutline } from '@mdi/js';\nimport NewCategoryDialog from './NewCategoryDialog.vue';\nimport { ComplianceListControlDto } from '@/dtos/compliance/ComplianceListControlDto';\nimport EditControlDialog from './EditControlDialog.vue';\nimport { DateTemplate, LanguageTemplate } from '@/core/helpers/templates';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport i18n from '@/i18n';\nimport PdDatePicker from '../core/PdDatePicker.vue';\nimport { cloneDeep } from 'lodash';\n\nexport default defineComponent({\n name: 'CategoryControl',\n\n components: {\n NewCategoryDialog,\n EditControlDialog,\n PdDatePicker,\n },\n\n props: {\n listId: {\n type: Number,\n required: true,\n },\n\n categoryId: {\n type: Number,\n required: true,\n },\n\n control: {\n type: Object as PropType,\n required: true,\n },\n\n depth: {\n type: Number,\n default: 0,\n },\n },\n\n setup(props, { emit }) {\n const isNew = computed(() => {\n return props.control.id === 0;\n });\n\n const editControlDialogVisibility = ref(false);\n\n const controlTitle = computed(() => {\n return LanguageTemplate(props.control, 'title').text;\n });\n\n const controlDescription = computed(() => {\n return LanguageTemplate(props.control, 'description').text;\n });\n\n const targetImplementationDate = computed(() => {\n return DateTemplate(props.control.targetDate || '').text;\n });\n\n const implementationResponsible = computed(() => {\n if (props.control.implementationResponsible == null) {\n return '';\n } else {\n return props.control.implementationResponsible.info;\n }\n });\n\n const maxImplementationDate = computed(() => {\n return new Date().toISOString();\n });\n\n const implementationPercentageItems = [\n {\n value: 0,\n text: i18n.t('compliance.list.details.implementedNo'),\n },\n {\n value: 50,\n text: i18n.t('compliance.list.details.implementedPartial'),\n },\n {\n value: 100,\n text: i18n.t('compliance.list.details.implementedYes'),\n },\n ];\n\n const implementedComments = ref('');\n const implementedDate = ref('');\n const implementedPercentage = ref(0);\n\n const showImplementationPercentageSelect = computed(() => {\n return implementedPercentage.value === 0 || implementedPercentage.value === 100;\n });\n\n watch(\n () => props.control,\n (c) => {\n implementedComments.value = c.implementedComments || '';\n implementedDate.value = c.implementedDate || '';\n implementedPercentage.value = c.implementedPercentage;\n },\n { immediate: true },\n );\n\n if (isNew.value) {\n editControlDialogVisibility.value = true;\n }\n\n function saveEditControl(control: ComplianceListControlDto) {\n emit('save', control);\n }\n\n function cancelEdit() {\n if (isNew.value) {\n emit('cancel-new', props.control);\n }\n editControlDialogVisibility.value = false;\n }\n\n function edit() {\n editControlDialogVisibility.value = true;\n }\n\n function remove() {\n PopupMessageService.SetMessage({\n title: i18n.t('confirm').toString(),\n text: i18n.t('compliance.list.details.removeControlConfirmation', { id: props.control.controlId, title: LanguageTemplate(props.control, 'title').text }).toString(),\n buttons: [\n {\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n callback: async () => {\n emit('remove', props.control);\n },\n close: () => true,\n },\n {\n id: 'no',\n color: 'error',\n text: i18n.t('no').toString(),\n close: () => true,\n },\n ],\n });\n }\n\n function preventNonNumericalInput(e: KeyboardEvent) {\n if (!e.key.match(/^[0-9.]+$/)) {\n e.preventDefault();\n }\n }\n\n function updateImplementedAnswer() {\n const c = cloneDeep(props.control);\n\n c.implementedComments = implementedComments.value;\n c.implementedDate = implementedDate.value;\n c.implementedPercentage = implementedPercentage.value;\n\n if (c.implementedPercentage > 100) {\n c.implementedPercentage = 100;\n }\n emit('save', c);\n }\n\n return {\n isNew,\n editControlDialogVisibility,\n saveEditControl,\n cancelEdit,\n updateImplementedAnswer,\n\n controlTitle,\n controlDescription,\n targetImplementationDate,\n implementationResponsible,\n\n implementedComments,\n implementedDate,\n implementedPercentage,\n\n edit,\n remove,\n\n preventNonNumericalInput,\n\n maxImplementationDate,\n\n implementationPercentageItems,\n showImplementationPercentageSelect,\n\n icons: {\n mdiChevronDown,\n mdiDotsVertical,\n mdiTrashCan,\n mdiPencil,\n mdiContentDuplicate,\n mdiClipboardPlusOutline,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryControl.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryControl.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CategoryControl.vue?vue&type=template&id=6f0ea66c&scoped=true&\"\nimport script from \"./CategoryControl.vue?vue&type=script&lang=ts&\"\nexport * from \"./CategoryControl.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CategoryControl.vue?vue&type=style&index=0&id=6f0ea66c&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f0ea66c\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCol,VDivider,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu,VRow,VSelect,VSimpleTable,VTextField,VTextarea})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { ComplianceListCategoryDto } from '@/dtos/compliance/ComplianceListCategoryDto';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { mdiChevronDown, mdiDotsVertical, mdiTrashCan, mdiPencil, mdiContentDuplicate, mdiClipboardPlusOutline } from '@mdi/js';\nimport NewCategoryDialog from './NewCategoryDialog.vue';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport i18n from '@/i18n';\nimport CompliancesService from '@/services/compliance/CompliancesService';\nimport { v4 } from 'uuid';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport EditCategoryDialog from './EditCategoryDialog.vue';\nimport EditControlDialog from './EditControlDialog.vue';\nimport { ComplianceListControlDto } from '@/dtos/compliance/ComplianceListControlDto';\nimport CategoryControl from './CategoryControl.vue';\nimport { ApplicationModule } from '@/store';\n\nexport default defineComponent({\n name: 'ListCategory',\n\n components: {\n NewCategoryDialog,\n EditCategoryDialog,\n EditControlDialog,\n CategoryControl,\n },\n\n props: {\n listId: {\n type: Number,\n required: true,\n },\n\n category: {\n type: Object as PropType,\n required: true,\n },\n\n index: {\n type: Number,\n },\n\n depth: {\n type: Number,\n default: 0,\n },\n },\n\n setup(props, { emit }) {\n const showDetails = ref(false);\n\n const newCategoryDialogVisibility = ref(false);\n const editCategoryDialogVisibility = ref(false);\n\n const emptyCategory = computed(() => {\n return showDetails.value &&\n (props.category.subCategories == null || props.category.subCategories.length === 0) &&\n (props.category.controls == null || props.category.controls.length === 0);\n });\n\n const getRowClass = computed(() => {\n let c = props.index === 0 ? 'first' : 'category';\n if (showDetails.value) {\n c += ' opened';\n }\n return c;\n });\n\n const implementedValue = ref(0);\n const implementedTotal = ref(0);\n\n const implementedPercent = computed(() => {\n if (implementedTotal.value === 0) {\n return 0;\n } else {\n return Math.round((implementedValue.value / implementedTotal.value) * 1000) / 10;\n }\n });\n\n const implementedValueRounded = computed(() => {\n return Math.round(implementedValue.value * 10) / 10;\n });\n\n const implementedTotalRounded = computed(() => {\n return Math.round(implementedTotal.value * 10) / 10;\n });\n\n watch(\n implementedValue,\n (current, prev) => {\n updateParentStatistics(current, implementedTotal.value, prev, implementedTotal.value);\n },\n );\n\n watch(\n implementedTotal,\n (current, prev) => {\n updateParentStatistics(implementedValue.value, current, implementedValue.value, prev);\n },\n );\n\n function updateParentStatistics(value: number, total: number, prevValue: number, prevTotal: number) {\n emit('update-statistics', value, total, prevValue, prevTotal);\n }\n\n function updateStatistics(value: number, total: number, prevValue: number, prevTotal: number) {\n implementedValue.value = implementedValue.value + value - prevValue;\n implementedTotal.value = implementedTotal.value + total - prevTotal;\n }\n\n let total = 0;\n let current = 0;\n props.category.controls.forEach(c => {\n total += c.controlWeight;\n current += c.controlWeight * c.implementedPercentage / 100;\n });\n implementedValue.value = current;\n implementedTotal.value = total;\n\n const getCategoryClass = computed(() => props.depth === 0 ? 'major-category' : '');\n\n const categoryName = computed(() => LanguageTemplate(props.category, 'name').text);\n\n function edit() {\n editCategoryDialogVisibility.value = true;\n }\n\n function remove() {\n PopupMessageService.SetMessage({\n title: i18n.t('warning').toString(),\n text: i18n.t('compliance.list.details.removeCategory').toString(),\n buttons: [\n {\n id: 'yes',\n color: 'success',\n text: i18n.t('yes').toString(),\n callback: async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await CompliancesService.RemoveCategory(props.listId, props.category);\n emit('remove', props.category);\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n close: () => true,\n },\n {\n id: 'no',\n color: 'error',\n text: i18n.t('no').toString(),\n close: () => true,\n },\n ],\n });\n }\n\n function addSubCategory() {\n newCategoryDialogVisibility.value = true;\n }\n\n function addControl() {\n const control: ComplianceListControlDto = {\n id: 0,\n controlId: '',\n uuid: v4(),\n controlWeight: 1,\n implementationActions: '',\n implementedPercentage: 0,\n translations: {\n [ApplicationModule.Language]: {\n title: '',\n description: '',\n },\n },\n };\n\n if (props.category.controls == null) {\n props.category.controls = [];\n props.category.uuid = v4();\n }\n\n showDetails.value = true;\n props.category.controls.push(control);\n implementedTotal.value += control.controlWeight;\n implementedValue.value += control.controlWeight * control.implementedPercentage / 100;\n }\n\n function cancelNewControl() {\n props.category.controls.splice(props.category.controls.length - 1);\n }\n\n async function saveControl(control: ComplianceListControlDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const con = await CompliancesService.SaveControl(props.listId, props.category.id, control);\n con.uuid = v4();\n\n props.category.controls.every((c, i) => {\n if (c.uuid === control.uuid) {\n implementedTotal.value -= c.controlWeight;\n implementedValue.value -= c.controlWeight * c.implementedPercentage / 100;\n props.category.controls.splice(i, 1, con);\n implementedTotal.value += con.controlWeight;\n implementedValue.value += con.controlWeight * con.implementedPercentage / 100;\n return false;\n }\n\n return true;\n });\n\n showDetails.value = true;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function removeControl(control: ComplianceListControlDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await CompliancesService.DeleteControl(props.listId, props.category.id, control);\n\n props.category.controls.every((c, i) => {\n if (c.uuid === control.uuid) {\n implementedTotal.value -= c.controlWeight;\n implementedValue.value -= c.controlWeight * c.implementedPercentage / 100;\n props.category.controls.splice(i, 1);\n return false;\n }\n\n return true;\n });\n\n showDetails.value = true;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function saveNewCategory(sub: ComplianceListCategoryDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const cat = await CompliancesService.AddSubCategory(props.listId, props.category, sub);\n cat.uuid = v4();\n props.category.subCategories.push(cat);\n newCategoryDialogVisibility.value = false;\n showDetails.value = true;\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function removeSubCategory(sub: ComplianceListCategoryDto) {\n for (let i = 0; i < props.category.subCategories.length; ++i) {\n if (props.category.subCategories[i].uuid === sub.uuid) {\n props.category.subCategories.splice(i, 1);\n return;\n }\n }\n }\n\n function saveEditCategory(category: ComplianceListCategoryDto) {\n emit('update-category', category);\n }\n\n async function updateSubCategory(category: ComplianceListCategoryDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const cat = await CompliancesService.UpdateCategory(props.listId, category);\n cat.uuid = v4();\n\n props.category.subCategories.every((c, i) => {\n if (c.uuid === category.uuid) {\n props.category.subCategories.splice(i, 1, cat);\n return false;\n }\n\n return true;\n });\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n categoryName,\n getRowClass,\n getCategoryClass,\n showDetails,\n edit,\n remove,\n removeSubCategory,\n addSubCategory,\n\n emptyCategory,\n\n addControl,\n cancelNewControl,\n removeControl,\n saveControl,\n\n newCategoryDialogVisibility,\n saveNewCategory,\n\n editCategoryDialogVisibility,\n saveEditCategory,\n\n updateSubCategory,\n\n implementedValue,\n implementedTotal,\n implementedPercent,\n updateStatistics,\n\n implementedValueRounded,\n implementedTotalRounded,\n\n icons: {\n mdiChevronDown,\n mdiDotsVertical,\n mdiTrashCan,\n mdiPencil,\n mdiContentDuplicate,\n mdiClipboardPlusOutline,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListCategory.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListCategory.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ListCategory.vue?vue&type=template&id=04fdb48b&scoped=true&\"\nimport script from \"./ListCategory.vue?vue&type=script&lang=ts&\"\nexport * from \"./ListCategory.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ListCategory.vue?vue&type=style&index=0&id=04fdb48b&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"04fdb48b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VDivider,VExpandTransition,VIcon,VList,VListItem,VListItemIcon,VListItemTitle,VMenu,VRow})\n","const generateHex = (r: number, g: number, b: number): string => {\n let R = r.toString(16);\n let G = g.toString(16);\n let B = b.toString(16);\n\n while (R.length < 2) {\n R = `0${R}`;\n }\n while (G.length < 2) {\n G = `0${G}`;\n }\n while (B.length < 2) {\n B = `0${B}`;\n }\n\n return `#${R}${G}${B}`;\n};\n\nconst mix = (start: number, end: number, percent: number): number =>\n start + (percent / 100) * (end - start);\n\nconst blender = (color1: string, color2: string, percent: number): string => {\n const red1 = parseInt(`${color1[1]}${color1[2]}`, 16);\n const green1 = parseInt(`${color1[3]}${color1[4]}`, 16);\n const blue1 = parseInt(`${color1[5]}${color1[6]}`, 16);\n\n const red2 = parseInt(`${color2[1]}${color2[2]}`, 16);\n const green2 = parseInt(`${color2[3]}${color2[4]}`, 16);\n const blue2 = parseInt(`${color2[5]}${color2[6]}`, 16);\n\n const red = Math.round(mix(red1, red2, percent));\n const green = Math.round(mix(green1, green2, percent));\n const blue = Math.round(mix(blue1, blue2, percent));\n\n return generateHex(red, green, blue);\n};\n\nexport default blender;\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { ComplianceListDto } from '@/dtos/compliance/ComplianceListDto';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport CompliancesService from '@/services/compliance/CompliancesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport i18n from '@/i18n';\nimport { DateTemplate, LanguageTemplate } from '@/core/helpers/templates';\nimport NewCategoryDialog from '@/components/compliance/NewCategoryDialog.vue';\nimport { ComplianceListCategoryDto } from '@/dtos/compliance/ComplianceListCategoryDto';\nimport { v4 } from 'uuid';\nimport ListCategory from '@/components/compliance/ListCategory.vue';\nimport PdEcharts from '@/components/core/charts/echarts/PdEcharts.vue';\nimport PdFileImportDialog from '@/components/core/PdFileImportDialog.vue';\nimport { EChartsOption } from 'echarts';\nimport blender from '@/core/ColorBlender';\nimport router from '@/router';\nimport XLSX from 'xlsx-js-style';\nimport { AxiosError } from 'axios';\nimport icons from '@/core/icons';\nimport { UploadCsvFileDto } from '@/dtos';\nimport PopupMessageService from '@/services/PopupMessageService';\n\nexport default defineComponent({\n name: 'ComplianceListDetailsView',\n\n components: {\n PdFormBase,\n NewCategoryDialog,\n ListCategory,\n PdEcharts,\n PdFileImportDialog,\n },\n\n props: {\n listId: {\n type: String,\n required: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n\n const title = ref('');\n const list = ref({ id: 0, translations: {}, categories: [] });\n\n const showImportDialog = ref(false);\n\n const newCategoryDialogVisibility = ref(false);\n\n watch(\n () => props.listId,\n loadList,\n { immediate: true },\n );\n\n watch(\n list,\n (list) => {\n if (list != null) {\n title.value = LanguageTemplate(list, 'name').text;\n }\n },\n );\n\n async function loadList(listId: string) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('compliance.list.details.loading').toString());\n try {\n const l = await CompliancesService.GetListDetails(parseInt(listId));\n l.uuid = v4();\n if (l.categories != null && l.categories.length > 0) {\n l.categories = l.categories.filter(c => c.parentId == null);\n\n l.categories.forEach((c) => {\n c.uuid = v4();\n\n c.controls.forEach(c => {\n c.uuid = v4();\n });\n\n const subs = [...c.subCategories];\n\n while (subs.length > 0) {\n const sub = subs.pop();\n\n if (sub == null) {\n break;\n }\n\n sub.uuid = v4();\n\n sub.controls.forEach(c => {\n c.uuid = v4();\n });\n\n subs.push(...sub.subCategories);\n }\n });\n }\n list.value = l;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function showNewCategoryDialog() {\n newCategoryDialogVisibility.value = true;\n }\n\n async function saveNewCategory(category: ComplianceListCategoryDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const cat = await CompliancesService.AddCategoryToList(list.value, category);\n cat.uuid = v4();\n list.value.categories.push(cat);\n newCategoryDialogVisibility.value = false;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function updateCategory(category: ComplianceListCategoryDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const cat = await CompliancesService.UpdateCategory(list.value.id, category);\n cat.uuid = v4();\n\n list.value.categories.every((c, i) => {\n if (c.uuid === category.uuid) {\n list.value.categories.splice(i, 1, cat);\n return false;\n }\n\n return true;\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function removeCategory(category: ComplianceListCategoryDto) {\n for (let i = 0; i < list.value.categories.length; ++i) {\n if (list.value.categories[i].uuid === category.uuid) {\n list.value.categories.splice(i, 1);\n return;\n }\n }\n }\n\n const graphOptions = ref({});\n\n function updateStatistics() {\n if (list.value == null) {\n return;\n }\n\n const categories = list.value.categories;\n const calculations: { current: number, total: number } = {\n current: 0,\n total: 0,\n };\n\n const data: {\n nodes: Array<{ name: string, itemStyle: { color: string, borderColor: string }, label: { formatter: string } }>,\n links: Array<{ source: string, target: string, value: number }>\n } = {\n nodes: [],\n links: [],\n };\n\n if (categories == null || categories.length === 0) {\n return;\n }\n\n const listName = LanguageTemplate(list.value, 'name').text;\n\n let color = '#918485';\n const currentNode = {\n name: listName,\n itemStyle: {\n color,\n borderColor: color,\n },\n label: {\n formatter: listName,\n },\n };\n\n data.nodes.push(currentNode);\n\n categories.forEach(c => {\n const res = calculateStatistics(listName, c, data);\n calculations.total += res.total;\n calculations.current += res.current;\n });\n\n if (calculations.total > 0) {\n color = blender('#fbb4ae', '#ccebc5', calculations.current / calculations.total * 100);\n }\n\n currentNode.itemStyle.color = color;\n currentNode.itemStyle.borderColor = color;\n\n graphOptions.value = {\n title: {\n text: listName,\n left: 'center',\n },\n tooltip: {\n trigger: 'item',\n triggerOn: 'mousemove|click',\n },\n toolbox: {\n show: true,\n right: '50px',\n feature: {\n saveAsImage: {},\n },\n },\n series: [\n {\n type: 'sankey',\n nodeAlign: 'left',\n nodeGap: 12,\n // do not reorder items\n layoutIterations: 0,\n data: data.nodes,\n links: data.links,\n lineStyle: {\n curveness: 0.5,\n },\n },\n ],\n };\n }\n\n function calculateStatistics(\n parent: string,\n category: ComplianceListCategoryDto,\n data: { nodes: Array<{ name: string, itemStyle: { color: string, borderColor: string }, label: { formatter: string } }>, links: Array<{ source: string, target: string, value: number }> },\n ): { current: number, total: number } {\n const label = LanguageTemplate(category, 'name').text;\n const currentName = parent + ' -> ' + label;\n\n const calculations = {\n current: 0,\n total: 0,\n };\n\n let color = '#918485';\n const currentNode = {\n name: currentName,\n itemStyle: {\n color,\n borderColor: color,\n },\n label: {\n formatter: label,\n },\n };\n\n data.nodes.push(currentNode);\n\n if (category.subCategories != null && category.subCategories.length > 0) {\n category.subCategories.forEach(c => {\n const res = calculateStatistics(currentName, c, data);\n calculations.current += res.current;\n calculations.total += res.total;\n });\n } else if (category.controls != null && category.controls.length > 0) {\n category.controls.forEach(c => {\n // const color = blender('#fbb4ae', '#ccebc5', c.implementedPercentage);\n // const controlName = currentName + ' -> ' + c.controlId;\n // data.nodes.push({\n // name: controlName,\n // itemStyle: {\n // color,\n // borderColor: color,\n // },\n // label: {\n // formatter: LanguageTemplate(c, 'title').text,\n // },\n // });\n\n calculations.total += c.controlWeight;\n calculations.current += c.controlWeight * c.implementedPercentage / 100;\n\n // data.links.push({ source: currentName, target: controlName, value: c.controlWeight });\n });\n }\n\n if (calculations.total > 0) {\n color = blender('#fbb4ae', '#ccebc5', calculations.current / calculations.total * 100);\n }\n\n currentNode.itemStyle.color = color;\n currentNode.itemStyle.borderColor = color;\n\n data.links.push({\n source: parent,\n target: currentName,\n value: calculations.total,\n });\n\n return calculations;\n }\n\n function returnToList() {\n router.push({ name: 'compliance.lists' });\n }\n\n function exportData() {\n const wb = XLSX.utils.book_new();\n wb.Props = {\n Title: 'Compliance List',\n Author: 'Continuity Guardian',\n CreatedDate: new Date(),\n };\n\n const data: Array> = [];\n const listName = LanguageTemplate(list.value, 'name').text;\n\n data.push([listName], []);\n\n if (list.value.categories != null) {\n list.value.categories.forEach(c => {\n recursiveGetExportData(data, c, 0);\n });\n }\n\n XLSX.utils.book_append_sheet(wb, XLSX.utils.aoa_to_sheet(data), 'Data');\n\n XLSX.writeFile(wb, `ContinuityGuardian - ${listName}.xlsx`);\n }\n\n function recursiveGetExportData(data: Array>, category: ComplianceListCategoryDto, depth: number) {\n const row: Array = [];\n for (let i = 0; i < depth; ++i) {\n row.push('');\n }\n\n row.push(LanguageTemplate(category, 'name').text);\n\n data.push(row);\n\n if (category.subCategories != null && category.subCategories.length > 0) {\n category.subCategories.forEach(c => {\n recursiveGetExportData(data, c, depth + 1);\n });\n } else if (category.controls != null && category.controls.length > 0) {\n category.controls.forEach(c => {\n const row: Array = [];\n for (let i = 0; i < depth + 1; ++i) {\n row.push('');\n }\n\n row.push(\n `${c.controlId} - ${LanguageTemplate(c, 'title').text}`,\n c.controlWeight.toString(),\n (c.implementedPercentage || 0).toString() + '%',\n LanguageTemplate(c, 'description').text,\n c.implementationActions || '',\n );\n\n if (c.targetDate != null) {\n row.push(DateTemplate(c.targetDate).text);\n } else {\n row.push('');\n }\n\n if (c.implementationResponsible != null) {\n row.push(c.implementationResponsible.info);\n } else {\n row.push('');\n }\n\n row.push(c.implementedComments || '');\n\n if (c.implementedDate != null) {\n row.push(DateTemplate(c.implementedDate).text);\n } else {\n row.push('');\n }\n\n data.push(row);\n });\n }\n }\n\n let importType: 'categories' | 'controls' | null = null;\n const importTitle = ref('');\n const importFormat = ref('');\n\n function importData(type: string) {\n if (type === 'categories') {\n importType = 'categories';\n\n importTitle.value = i18n.t('compliance.list.details.importCategories').toString();\n importFormat.value = 'compliance.list.details.importCategoriesFormat';\n } else if (type === 'controls') {\n importType = 'controls';\n\n importTitle.value = i18n.t('compliance.list.details.importControls').toString();\n importFormat.value = 'compliance.list.details.importControlsFormat';\n } else {\n throw new Error('Import type unknown!');\n }\n\n showImportDialog.value = true;\n }\n\n async function uploadCsvFile(data: UploadCsvFileDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n showImportDialog.value = false;\n\n if (importType === 'categories') {\n await CompliancesService.ImportCategories(parseInt(props.listId), data);\n } else if (importType === 'controls') {\n await CompliancesService.ImportControls(parseInt(props.listId), data);\n } else {\n throw new Error(`Unknown import type \"${importType}\"`);\n }\n\n loadList(props.listId);\n\n PopupMessageService.SetMessage({\n title: i18n.t('success'),\n text: i18n.t('upload.success'),\n index: 100,\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n loading,\n title,\n list,\n\n showNewCategoryDialog,\n newCategoryDialogVisibility,\n saveNewCategory,\n updateCategory,\n removeCategory,\n\n updateStatistics,\n graphOptions,\n\n returnToList,\n\n exportData,\n showImportDialog,\n importTitle,\n importFormat,\n importData,\n uploadCsvFile,\n\n icons: {\n import: icons.import,\n export: icons.export,\n add: icons.plus,\n return: icons.return,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ComplianceListDetailsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ComplianceListDetailsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ComplianceListDetailsView.vue?vue&type=template&id=1f3d04f7&scoped=true&\"\nimport script from \"./ComplianceListDetailsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ComplianceListDetailsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f3d04f7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VCard,VCardText,VIcon,VList,VListItem,VListItemTitle,VMenu})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"loading\":_vm.loading,\"title\":_vm.$t('compliance.list.title')}},[_c('pd-echarts',{attrs:{\"styling\":\"width: 100%; height: 400px\",\"options\":_vm.graphOptions}}),_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":{ editable: true, hasDetails: false },\"sort\":\"value\",\"sort-direction\":\"asc\",\"height\":\"60%\",\"search\":\"\",\"row-actions\":_vm.rowActions,\"disable-edit-on-double-click\":\"\",\"table-actions\":_vm.tableButtons},on:{\"table-action\":_vm.tableActionsEvent,\"dblclick\":_vm.openList}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { PdDataTable, PdDataTableAction, PdDataTableHeader, PdDataTableRowAction } from '@/components/core/PdDataTable';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport i18n from '@/i18n';\nimport { PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { ComplianceListDto } from '@/dtos/compliance/ComplianceListDto';\nimport { mdiBookOpenOutline, mdiFileExcel } from '@mdi/js';\nimport { IDto } from '@/dtos';\nimport router from '@/router';\nimport PdEcharts from '@/components/core/charts/echarts/PdEcharts.vue';\nimport { EChartsOption } from 'echarts';\nimport XLSX from 'xlsx-js-style';\n\nexport default defineComponent({\n name: 'ComplianceListView',\n\n components: {\n PdFormBase,\n PdDataTable,\n PdEcharts,\n },\n\n setup() {\n const loading = ref(false);\n\n const datasource = DatasourcesService.Compliance.Lists;\n\n const headers: Array> = [\n {\n id: 'name',\n text: i18n.t('compliance.list.name').toString(),\n value: 'translations',\n translatable: true,\n // width: '300px',\n // translationWidth: 300,\n component: PdColumnTranslation,\n template: (item) => {\n return LanguageTemplate(item as ComplianceListDto, 'name');\n },\n },\n {\n id: 'implementationPercent',\n text: i18n.t('compliance.list.details.controlImplementedPercentage').toString(),\n value: 'implementationPercent',\n editable: false,\n template: (item) => {\n const i = item as ComplianceListDto;\n if (i.implementationPercent == null) {\n return { text: 'No Controls' };\n }\n return { text: i.implementationPercent.toString() + '%' };\n },\n },\n ];\n\n const rowActions: Array = [\n {\n id: 'open',\n text: i18n.t('compliance.list.open').toString(),\n icon: mdiBookOpenOutline,\n action: (item: IDto) => {\n openList(item as ComplianceListDto);\n return Promise.resolve(null);\n },\n },\n ];\n\n const tableButtons: Array = [\n {\n id: 'export',\n text: i18n.t('export').toString(),\n icon: mdiFileExcel,\n },\n ];\n\n function openList(item: ComplianceListDto) {\n router.push({ name: 'compliance.lists.list', params: { listId: item.id.toString() } });\n }\n\n datasource.dataChanged = async () => {\n const indicators: Array<{ name: string, max: number }> = [];\n const seriesData: { value: Array, name: string } = {\n value: [],\n name: 'Compliance Status',\n };\n\n const data = await datasource.data();\n if (data.length > 0) {\n for (let i = 0; i < data.length; ++i) {\n indicators.push({\n name: LanguageTemplate(data[i], 'name').text,\n max: 100,\n });\n\n seriesData.value.push(data[i].implementationPercent || 0);\n }\n\n graphOptions.value = {\n radar: {\n shape: 'circle',\n indicator: indicators,\n },\n legend: {},\n toolbox: {\n show: true,\n right: '50px',\n feature: {\n saveAsImage: {},\n },\n },\n series: [\n {\n name: 'Compliance Status',\n type: 'radar',\n label: {\n show: true,\n formatter: (params) => {\n return params.value.toString() + '%';\n },\n },\n data: [\n seriesData,\n ],\n },\n ],\n };\n }\n };\n\n const graphOptions = ref({});\n\n function tableActionsEvent(e: string) {\n if (e === 'export') {\n exportData();\n } else {\n throw new Error(`Unknown table action '${e}'`);\n }\n }\n\n async function exportData() {\n const wb = XLSX.utils.book_new();\n wb.Props = {\n Title: 'Compliance List',\n Author: 'Continuity Guardian',\n CreatedDate: new Date(),\n };\n\n const data: Array> = [];\n\n data.push(['List Name', 'Compliance Score']);\n\n const lists = await datasource.data();\n\n lists.forEach(l => {\n data.push([LanguageTemplate(l, 'name').text, (l.implementationPercent || 0).toString()]);\n });\n\n XLSX.utils.book_append_sheet(wb, XLSX.utils.aoa_to_sheet(data), 'Compliance List');\n\n XLSX.writeFile(wb, 'ContinuityGuardian - Compliance List.xlsx');\n }\n\n return {\n loading,\n datasource,\n headers,\n tableButtons,\n\n tableActionsEvent,\n rowActions,\n openList,\n\n graphOptions,\n\n exportData,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ComplianceListView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ComplianceListView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ComplianceListView.vue?vue&type=template&id=329139e6&scoped=true&\"\nimport script from \"./ComplianceListView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ComplianceListView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"329139e6\",\n null\n \n)\n\nexport default component.exports","import ComplianceListDetailsView from '@/views/compliance/ComplianceListDetailsView.vue';\nimport ComplianceListView from '@/views/compliance/ComplianceListView.vue';\nimport { RouteConfig } from 'vue-router';\n\nexport const Routes: Array = [\n {\n name: 'compliance.lists',\n path: '/lists',\n component: ComplianceListView,\n },\n {\n name: 'compliance.lists.list',\n path: '/lists/:listId',\n component: ComplianceListDetailsView,\n props: true,\n },\n];\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"50rem\"}},[_c('v-card',{staticClass:\"ma-4 round-corners\"},[_c('v-card-text',[_c('div',{staticClass:\"title font-weight-bold text-center mt-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('users.changeUserPasswordTitle'))+\" \")]),_c('v-text-field',{attrs:{\"label\":_vm.$t('users.oldPassword'),\"type\":\"password\",\"autofocus\":\"\",\"hide-details\":\"auto\"},model:{value:(_vm.oldPassword),callback:function ($$v) {_vm.oldPassword=$$v},expression:\"oldPassword\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('users.newPassword'),\"type\":\"password\",\"error\":!!_vm.passwordMessage,\"messages\":_vm.passwordMessage},on:{\"keyup\":_vm.checkPassworkRequirements},model:{value:(_vm.newPassword),callback:function ($$v) {_vm.newPassword=$$v},expression:\"newPassword\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('users.repeatPassword'),\"type\":\"password\",\"error\":!!_vm.repeatPasswordMessage,\"messages\":_vm.repeatPasswordMessage},model:{value:(_vm.repeatPassword),callback:function ($$v) {_vm.repeatPassword=$$v},expression:\"repeatPassword\"}}),_c('div',[_vm._v(\" Password Complexity \"),_c('ul',[_c('li',{class:{'requirementMet':_vm.length}},[_vm._v(\" The password is at least eight characters long. \")]),_c('li',{class:{'requirementMet':_vm.upper}},[_vm._v(\" Latin uppercase letters (A through Z) \")]),_c('li',{class:{'requirementMet':_vm.lower}},[_vm._v(\" Latin lowercase letters (a through z) \")]),_c('li',{class:{'requirementMet':_vm.digit}},[_vm._v(\" Base 10 digits (0 through 9) \")]),_c('li',{class:{'requirementMet':_vm.symbol}},[_vm._v(\" Non-alphanumeric characters such as: exclamation point (!), dollar sign ($), number sign (#), or percent (%). \")])])])],1),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"min-width\":\"150px\",\"color\":\"success\",\"disabled\":!_vm.changePasswordEnabled},on:{\"click\":_vm.changePassword}},[_vm._v(\" \"+_vm._s(_vm.$t('users.changePasswordButton'))+\" \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport i18n from '@/i18n';\nimport router from '@/router';\nimport { UsersService } from '@/services/all';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { computed, defineComponent, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\n\nexport default defineComponent({\n name: 'ChangePasswordView',\n\n components: {\n PdFormBase,\n },\n\n setup() {\n const oldPassword = ref(null);\n const newPassword = ref(null);\n const repeatPassword = ref(null);\n\n const lower = ref(false);\n const upper = ref(false);\n const length = ref(false);\n const digit = ref(false);\n const symbol = ref(false);\n\n function checkPassworkRequirements() {\n let foundUpper = false;\n let foundLower = false;\n let foundSymbol = false;\n let foundDigit = false;\n const specialChars = /[`!@#$%^&*()_+\\-=\\\\[\\]{};':\"\\\\|,.<>\\\\/?~]/;\n if (newPassword.value) {\n newPassword.value.length > 7 ? length.value = true : length.value = false;\n for (const letter of newPassword.value) {\n if (Number.isInteger(+letter)) {\n foundDigit = true;\n continue;\n } else if (specialChars.test(letter)) {\n foundSymbol = true;\n continue;\n }\n if (letter === letter.toUpperCase()) foundUpper = true;\n if (letter === letter.toLowerCase()) foundLower = true;\n }\n } else length.value = false;\n upper.value = foundUpper;\n lower.value = foundLower;\n symbol.value = foundSymbol;\n digit.value = foundDigit;\n }\n\n const changePasswordEnabled = computed(() => {\n return !!oldPassword.value &&\n !!newPassword.value &&\n !!repeatPassword.value &&\n !passwordMessage.value &&\n !repeatPasswordMessage.value;\n });\n\n const passwordComplexity = new RegExp('((?=.*\\\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\\\\W_]).{8,})');\n const passwordMessage = computed(() => {\n if (newPassword.value == null) {\n return '';\n }\n\n const complex = passwordComplexity.test(newPassword.value);\n if (complex) {\n return '';\n }\n\n return i18n.t('users.passwordDoesNotMeetComplexity').toString();\n });\n\n const repeatPasswordMessage = computed(() => {\n if (repeatPassword.value == null) {\n return '';\n }\n\n return newPassword.value === repeatPassword.value ? '' : i18n.t('users.passordAndRepeatDoesNotMatch').toString();\n });\n\n async function changePassword() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n if (oldPassword.value == null || newPassword.value == null) {\n return;\n }\n\n await UsersService.ChangeUserPassword({\n currentPassword: oldPassword.value,\n newPassword: newPassword.value,\n });\n PopupMessageService.SetMessage({\n title: '',\n text: i18n.t('users.passwordChangedSuccessfully').toString(),\n });\n router.replace({ name: 'home' });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n return {\n checkPassworkRequirements,\n lower,\n upper,\n length,\n digit,\n symbol,\n oldPassword,\n newPassword,\n repeatPassword,\n changePasswordEnabled,\n passwordMessage,\n repeatPasswordMessage,\n changePassword,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangePasswordView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangePasswordView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChangePasswordView.vue?vue&type=template&id=db131236&scoped=true&\"\nimport script from \"./ChangePasswordView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChangePasswordView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChangePasswordView.vue?vue&type=style&index=0&id=db131236&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"db131236\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":\"Document Management\",\"loading\":_vm.loading}},[_c('v-row',[_c('v-col',[_c('div',[_c('v-select',{attrs:{\"label\":\"Show Documents\",\"items\":_vm.documentsFilter,\"hide-details\":\"\"},model:{value:(_vm.selectedFilter),callback:function ($$v) {_vm.selectedFilter=$$v},expression:\"selectedFilter\"}})],1)])],1),_c('v-row',{directives:[{name:\"resize\",rawName:\"v-resize\",value:(_vm.resizedWindow),expression:\"resizedWindow\"}],attrs:{\"dense\":\"\"}},[_c('v-col',{staticStyle:{\"overflow\":\"auto\",\"white-space\":\"nowrap\",\"scrollbar\":\"auto\"},style:(_vm.partitionsTreeStyle),attrs:{\"id\":\"partitionsTree\"}},[_c('pd-tree-view',{attrs:{\"items\":_vm.partitions,\"children\":\"subPartitions\",\"expand-all\":_vm.expand,\"collapse-all\":_vm.collapse,\"selected-item\":_vm.selectedItem},on:{\"update:expandAll\":function($event){_vm.expand=$event},\"update:expand-all\":function($event){_vm.expand=$event},\"update:collapseAll\":function($event){_vm.collapse=$event},\"update:collapse-all\":function($event){_vm.collapse=$event},\"update:selectedItem\":function($event){_vm.selectedItem=$event},\"update:selected-item\":function($event){_vm.selectedItem=$event}}})],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-divider',{attrs:{\"vertical\":\"\"}})],1),_c('v-col',{staticStyle:{\"overflow\":\"auto\",\"white-space\":\"normal\",\"scrollbar\":\"auto\"},style:(_vm.partitionsTreeStyle)},[(_vm.availableFiles.length === 0)?_c('div',[_vm._v(\" No files found... \")]):_vm._e(),_vm._l((_vm.availableFiles),function(file){return [(file.multilingual)?_c('div',{key:file.id},[_c('v-menu',{attrs:{\"absolute\":\"\",\"close-on-click\":_vm.menuDelay},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._b({staticClass:\"align-center mb-3 text-none justify-start\",staticStyle:{\"width\":\"100%\"},attrs:{\"text\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.clickDelay($event, on)},\"dblclick\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.clickDelay($event, on)}}},'v-btn',attrs,false),[_c('span',{staticClass:\"mr-2\",staticStyle:{\"float\":\"left\"}},[(file.format === 1)?_c('v-img',{attrs:{\"src\":require('@/images/pdf_icon.svg'),\"width\":\"28px\",\"heigth\":\"28px\",\"contain\":\"\",\"alt\":\"Pdf\"}}):_vm._e()],1),_c('span',[_vm._v(\" \"+_vm._s(file.fileName)+\" \")]),_c('v-icon',{attrs:{\"small\":\"\",\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiDownload)+\" \")])],1)]}}],null,true)},[_c('v-list',_vm._l((file.languages),function(t){return _c('v-list-item',{key:file.id + t,on:{\"click\":function($event){return _vm.downloadFile(file, t)}}},[_c('v-list-item-title',[_vm._v(\"Download (\"+_vm._s(t)+\")\")])],1)}),1)],1)],1):_vm._e()]})],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, nextTick, ref, watch } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport PdTreeView from '@/components/core/PdTreeView/PdTreeView.vue';\nimport { HierarchicalPartitionDto } from '@/dtos/bcm/HierarchicalPartitionDto';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport i18n from '@/i18n';\nimport DocumentManagementService from '@/services/all/DocumentManagementService';\nimport { DocumentDto } from '@/dtos/all';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport DownloadService from '@/services/DownloadService';\nimport { mdiDownload } from '@mdi/js';\n\nexport default defineComponent({\n name: 'DocumentsView',\n\n components: {\n PdFormBase,\n PdTreeView,\n },\n\n setup() {\n const loading = ref(true);\n const selectedItem = ref(null);\n const partitions = ref>([]);\n const partitionsTreeStyle = ref({\n height: '600px',\n });\n\n const documentsFilter = [\n // {\n // value: 1,\n // text: 'All',\n // },\n {\n value: 2,\n text: 'By Partition',\n },\n ];\n\n const selectedFilter = ref(2);\n const availableFiles = ref>([]);\n\n watch(\n selectedItem,\n async (value) => {\n if (value == null) {\n return;\n }\n const busy = BusyIndicatorService.SetBusy(i18n.t('documents.getting.partition', { item: value.name }).toString());\n\n try {\n availableFiles.value = await DocumentManagementService.GetPartitionDocuments(value.id);\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n {\n immediate: true,\n },\n );\n\n async function init() {\n partitions.value = await DocumentManagementService.GetUserPartitions();\n\n loading.value = false;\n expand.value = true;\n }\n\n const expand = ref(false);\n function expandAll() {\n expand.value = true;\n nextTick(() => {\n expand.value = false;\n });\n }\n\n const collapse = ref(false);\n function collapseAll() {\n collapse.value = true;\n nextTick(() => {\n collapse.value = false;\n });\n }\n\n function resizedWindow() {\n const tree = document.getElementById('partitionsTree');\n const footer = document.getElementsByClassName('v-footer')[0];\n\n if (tree == null) {\n return;\n }\n\n const top = tree.getBoundingClientRect().top;\n\n const height = (footer?.getBoundingClientRect().top || document.body.clientHeight) - top - 12;\n\n partitionsTreeStyle.value.height = height + 'px';\n }\n\n async function downloadFile(document: DocumentDto, language: string) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('documents.getting.document', { item: document.fileName }).toString());\n\n try {\n const file = await DocumentManagementService.DownloadDocument(document.id, language);\n DownloadService.DownloadFile(file);\n } catch (error) {\n ErrorHandlingService.Handle(error);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n let clicks = 0;\n const menuDelay = ref(true);\n function clickDelay(event: unknown, on: { click: ((e: unknown) => void) }) {\n clicks++;\n if (clicks === 1) {\n menuDelay.value = false;\n on.click(event);\n setTimeout(() => {\n clicks = 0;\n menuDelay.value = true;\n }, 500);\n }\n }\n\n init();\n return {\n loading,\n partitions,\n selectedItem,\n documentsFilter,\n selectedFilter,\n availableFiles,\n downloadFile,\n\n partitionsTreeStyle,\n resizedWindow,\n\n clickDelay,\n menuDelay,\n\n expandAll,\n collapseAll,\n expand,\n collapse,\n\n icons: {\n mdiDownload,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DocumentsView.vue?vue&type=template&id=3e4188bf&scoped=true&\"\nimport script from \"./DocumentsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./DocumentsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3e4188bf\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VCol,VDivider,VIcon,VImg,VList,VListItem,VListItemTitle,VMenu,VRow,VSelect})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Resize from 'vuetify/lib/directives/resize'\ninstallDirectives(component, {Resize})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',{staticClass:\"my-4\",staticStyle:{\"width\":\"100%\"}},[_c('v-img',{staticClass:\"mx-auto\",attrs:{\"src\":\"/img/logo_horizontally.svg\",\"width\":\"30rem\"}})],1)]},proxy:true}])},[_c('v-row',_vm._l((_vm.panels),function(p){return _c('v-col',{key:p.navigation,attrs:{\"lg\":\"4\",\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-card',{attrs:{\"rounded\":\"\",\"color\":p.color},on:{\"click\":function($event){return _vm.navigate(p)}}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(p.title)+\" \")]),_c('v-card-text',{staticClass:\"pt-4 pb-8 text-left\"},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',[_c('span',{staticClass:\"text-h6 mr-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('all.activeTasks' ))+\": \")]),_c('span',{staticClass:\"text-h5 red--text\"},[_vm._v(\" \"+_vm._s(p.tasks)+\" \")])]),_c('v-col',{staticClass:\"text-right\"},[_c('v-icon',{attrs:{\"color\":\"#cb111a\"}},[_vm._v(\" \"+_vm._s(p.icon)+\" \")])],1)],1)],1)],1)],1)}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport icons from '@/core/icons';\nimport i18n from '@/i18n';\nimport router from '@/router';\nimport { EntityModule } from '@/store';\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { TranslateResult } from 'vue-i18n';\n\ninterface Panel {\n title: string | TranslateResult\n navigation: string\n color: string\n tasks: number\n icon: string\n}\n\nexport default defineComponent({\n name: 'LandingView',\n\n components: {\n PdFormBase,\n },\n\n setup() {\n const panels = ref>([\n {\n title: i18n.t('all.businessContinuityTasks'),\n navigation: 'all.bcm.deployments',\n color: '#1C6E8C44',\n icon: icons.biaDeployments,\n tasks: 0,\n },\n {\n title: i18n.t('all.israTasks'),\n navigation: 'all.isra.deployments',\n color: '#AEB8FE44',\n icon: icons.israDeployments,\n tasks: 0,\n },\n {\n title: i18n.t('all.traTasks'),\n navigation: 'all.tra.deployments',\n color: '#77966D44',\n icon: icons.traDeployments,\n tasks: 0,\n },\n {\n title: i18n.t('all.disasterTestTasks'),\n navigation: 'bcm.testing.dr.deployments',\n color: '#FFBE8644',\n icon: icons.disasterTests,\n tasks: 0,\n },\n {\n title: i18n.t('all.bcpFunctionalTestTasks'),\n navigation: 'bcm.testing.bcp.tests',\n color: '#63D2FF44',\n icon: icons.bcpFunctionalTests,\n tasks: 0,\n },\n {\n title: i18n.t('all.incidentTasks'),\n navigation: 'bcm.incidents',\n color: '#FF222244 ',\n icon: icons.incidents,\n tasks: 0,\n },\n ]);\n\n function navigate(item: Panel) {\n router.push({ name: item.navigation });\n }\n\n watch(\n () => EntityModule.Tasks,\n (tasks) => {\n panels.value[0].tasks = tasks.bcm;\n panels.value[1].tasks = tasks.isra;\n panels.value[2].tasks = tasks.tra;\n panels.value[3].tasks = tasks.disasterTests;\n panels.value[4].tasks = tasks.bcpFunctionalTests;\n panels.value[5].tasks = tasks.incidents;\n },\n { immediate: true },\n );\n\n return {\n panels,\n navigate,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LandingView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LandingView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LandingView.vue?vue&type=template&id=af2f587a&scoped=true&\"\nimport script from \"./LandingView.vue?vue&type=script&lang=ts&\"\nexport * from \"./LandingView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"af2f587a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCardTitle,VCol,VIcon,VImg,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('incident.incidentManagement')}},[(_vm.chartsLoaded)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('pd-echart-pie',{attrs:{\"labels\":_vm.statsLabels,\"title\":\"Incident Status\",\"tooltips\":_vm.statusGraphDatasets[0].tooltips,\"background-colors\":_vm.statusGraphDatasets[0].backgroundColor,\"data\":_vm.statusGraphDatasets[0].data}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('pd-echart-pie',{attrs:{\"title\":\"Incident Prioritization\",\"doughnut\":\"\",\"labels\":_vm.prioritiesLabels,\"data\":_vm.incidentPrioritizationGraphDatasets[0].data,\"background-colors\":_vm.incidentPrioritizationGraphDatasets[0].backgroundColor,\"tooltips\":_vm.incidentPrioritizationGraphDatasets[0].tooltips}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('pd-echart-pie',{attrs:{\"title\":\"Incidents Resolved\",\"labels\":_vm.evaluationsLabels,\"data\":_vm.incidentEvaluationGraphDatasets[0].data,\"tooltips\":_vm.incidentEvaluationGraphDatasets[0].tooltips,\"background-colors\":_vm.incidentEvaluationGraphDatasets[0].backgroundColor}})],1)],1):_vm._e(),(_vm.chartsLoaded)?_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('pd-echart-bar',{attrs:{\"title\":\"Open Incidents per Sector\",\"labels\":_vm.sectsLabels,\"data\":_vm.openIncidentsGraphDatasets[0].data,\"bar-style\":{borderWidth: 10, borderRadius: 2},\"tooltips\":_vm.openIncidentsGraphDatasets[0].tooltips,\"background-colors\":_vm.openIncidentsGraphDatasets[0].backgroundColor,\"x-axis\":{type: 'category', data: _vm.sectsLabels, axisLabel: {interval: 0, rotate: 10},},\"y-axis\":{type: 'value'}}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('pd-echart-pie',{attrs:{\"title\":\"Open Tasks per Sector\",\"labels\":_vm.sectsLabels,\"radius\":\"65%\",\"data\":_vm.openTasksGraphDatasets[0].data,\"tooltips\":_vm.openTasksGraphDatasets[0].tooltips,\"background-colors\":_vm.openTasksGraphDatasets[0].backgroundColor}})],1)],1):_vm._e(),_c('v-divider'),_c('pd-data-table',{attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.headers,\"options\":{editable: false},\"requires\":[_vm.statuses, _vm.sectors, _vm.prioritization, _vm.resolutionEvaluations],\"table-actions\":_vm.tableActions,\"search\":\"\"},on:{\"table-action\":_vm.tableActionEvent,\"dblclick\":_vm.viewIncident,\"updated-data\":_vm.updatedIncidents},scopedSlots:_vm._u([{key:\"customTableActions\",fn:function(){return [_c('v-menu',{attrs:{\"close-on-content-click\":false},on:{\"click\":function($event){_vm.exportMenu = true}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"text-none mr-2\",attrs:{\"small\":\"\",\"depressed\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"left\":\"\",\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.export)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1)]}}]),model:{value:(_vm.exportMenu),callback:function ($$v) {_vm.exportMenu=$$v},expression:\"exportMenu\"}},[_c('v-list',[_c('v-list-item',[_vm._l((_vm.datePickers),function(date,index){return _c('v-menu',{key:index,attrs:{\"transition\":\"scale-transition\",\"offset-y\":\"\",\"close-on-content-click\":false,\"min-width\":\"auto\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-text-field',_vm._g(_vm._b({attrs:{\"label\":date.label,\"prepend-icon\":_vm.icons.calendar,\"readonly\":\"\"},model:{value:(date.date),callback:function ($$v) {_vm.$set(date, \"date\", $$v)},expression:\"date.date\"}},'v-text-field',attrs,false),on))]}}],null,true),model:{value:(_vm.datepickerMenu[index]),callback:function ($$v) {_vm.$set(_vm.datepickerMenu, index, $$v)},expression:\"datepickerMenu[index]\"}},[_c('v-date-picker',{attrs:{\"no-title\":\"\",\"scrollable\":\"\"},on:{\"click:date\":function($event){_vm.datepickerMenu[index] = false}},model:{value:(date.date),callback:function ($$v) {_vm.$set(date, \"date\", $$v)},expression:\"date.date\"}})],1)}),_c('v-btn',{staticClass:\"ml-3\",attrs:{\"small\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.exportData}},[_vm._v(\" OK \")])],2)],1)],1)]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { PdDataTable, PdDataTableAction, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { IncidentDto, PrioritizationScaleDto, ResolutionEvaluationDto, ResolutionStatusDto } from '@/dtos/bcm/incident';\nimport { ApplicationModule } from '@/store';\nimport i18n from '@/i18n';\nimport { DateTemplate, LanguageTemplate } from '@/core/helpers/templates';\nimport router from '@/router';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport IncidentService from '@/services/IncidentService';\nimport XLSX from 'xlsx-js-style';\nimport icons from '@/core/icons';\nimport { AxiosError } from 'axios';\nimport PdEchartPie from '@/components/all/PdEchartPie.vue';\nimport PdEchartBar from '@/components/all/PdEchartBar.vue';\n\nexport default defineComponent({\n name: 'IncidentManagement',\n components: {\n PdFormBase,\n PdDataTable,\n PdEchartPie,\n PdEchartBar,\n },\n\n setup() {\n const entityId = ApplicationModule.Entity?.id;\n\n if (!entityId) {\n throw new Error('Entity is not set...');\n }\n\n const datasource = DatasourcesService.Incidents.Incidents;\n const statuses = DatasourcesService.Incidents.ResolutionStatuses;\n const resolutionEvaluations = DatasourcesService.Incidents.ResolutionEvaluations;\n const sectors = DatasourcesService.Incidents.Sectors;\n const prioritization = DatasourcesService.Incidents.PrioritizationScales;\n const loaded = ref(false);\n const tableActions = ref>([]);\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('incident.management.loadingIncidents').toString());\n\n try {\n const admin = await IncidentService.CanUserCreateIncident();\n\n if (admin) {\n tableActions.value = [{\n id: 'add',\n text: i18n.t('incident.management.add').toString(),\n icon: icons.plus,\n },\n ];\n }\n loaded.value = true;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n }\n BusyIndicatorService.RemoveBusy(busy);\n }\n\n init();\n\n const headers = ref>>([\n {\n id: 'summary',\n text: i18n.t('incident.management.summary').toString(),\n value: 'summary',\n },\n {\n id: 'incidentDate',\n text: i18n.t('incident.management.incidentDate').toString(),\n value: 'incidentDate',\n // defaultValue: { [ApplicationModule.Language]: { name: 'New System' } },\n width: '200px',\n template: (item) => {\n return DateTemplate((item as IncidentDto).incidentDate);\n },\n },\n {\n id: 'resolutionStatusId',\n text: i18n.t('incident.management.resolutionStatus').toString(),\n value: 'resolutionStatusId',\n width: '200px',\n template: async (item) => {\n const status = (item as IncidentDto).resolutionStatusId;\n\n if (status == null) {\n return { text: 'Undetermined' };\n }\n\n const s = await statuses.getById(status);\n\n if (s != null) {\n return LanguageTemplate(s, 'name');\n }\n\n return { text: '' };\n },\n },\n ]);\n\n function viewIncident(item: IncidentDto) {\n router.push({ name: 'bcm.incident.viewer', params: { incidentId: item.id.toString() } });\n }\n\n function addNewIncident() {\n router.push({ name: 'bcm.incident.viewer', params: { incidentId: '0' } });\n }\n\n function tableActionEvent(action: string) {\n if (action === 'add') {\n addNewIncident();\n } else if (action === 'export') {\n exportData();\n }\n }\n\n async function exportData() {\n exportMenu.value = false;\n const startingDate = new Date(datePickers.value[0].date);\n const endingDate = new Date(datePickers.value[1].date);\n const busy = BusyIndicatorService.SetBusy(i18n.t('exportingData').toString());\n\n const stats = await statuses.data();\n const priors = await prioritization.data();\n const incidents = await datasource.data();\n const evals = await resolutionEvaluations.data();\n\n const wb = XLSX.utils.book_new();\n wb.Props = {\n Title: 'Incidents',\n Author: 'Continuity Guardian',\n CreatedDate: new Date(),\n };\n\n try {\n const data: Array> = [];\n const statsMap = new Map();\n const priorsMap = new Map();\n const evalsMap = new Map();\n\n for (let i = 0; i < stats.length; ++i) {\n statsMap.set(stats[i].id, LanguageTemplate(stats[i] as ResolutionStatusDto, 'name').text);\n }\n\n for (let i = 0; i < priors.length; ++i) {\n priorsMap.set(priors[i].id, LanguageTemplate(priors[i] as PrioritizationScaleDto, 'name').text);\n }\n\n for (let i = 0; i < evals.length; ++i) {\n evalsMap.set(evals[i].id, LanguageTemplate(evals[i] as ResolutionEvaluationDto, 'name').text);\n }\n\n data.push(['Id', 'Summary', 'IncidentDate', 'Incident Prioritization', 'Resolution Status', 'Resolution Date', 'Resolution Evaluation', 'Root Cause Analysis']);\n\n for (let i = 0; i < incidents.length; ++i) {\n const incidentDate = new Date(incidents[i].incidentDate);\n // 0 idx is starting day, 1 idx is ending day\n if (datePickers.value[0].date === '' && incidentDate > endingDate) {\n continue;\n }\n if (datePickers.value[1].date === '' && incidentDate < startingDate) {\n continue;\n }\n if (incidentDate < startingDate || incidentDate > endingDate) {\n continue;\n }\n const stat = statsMap.get(incidents[i].resolutionStatusId ?? 0) ?? '';\n const prior = priorsMap.get(incidents[i].prioritizationScaleId ?? 0) ?? '';\n const ev = evalsMap.get(incidents[i].resolutionEvaluationId ?? 0) ?? '';\n\n let resDate = '';\n if (incidents[i].resolutionDate != null && incidents[i].resolutionDate !== '0001-01-01T00:00:00') {\n resDate = incidents[i].resolutionDate ?? '';\n }\n data.push([\n incidents[i].id.toString(),\n incidents[i].summary,\n incidents[i].incidentDate,\n prior,\n stat,\n resDate,\n ev,\n incidents[i].analysis ?? '',\n ]);\n }\n\n XLSX.utils.book_append_sheet(wb, XLSX.utils.aoa_to_sheet(data), 'Incidents');\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n }\n\n XLSX.writeFile(wb, `${ApplicationModule.Entity?.name} - Incidents.xlsx`);\n datePickers.value[0].date = '';\n datePickers.value[1].date = '';\n BusyIndicatorService.RemoveBusy(busy);\n }\n\n const colors = ['#9fbbf6', '#b4a0f7', '#6f7c9a', '#99d9f5', '#d6a442', '#d6bc42', '#ffdd9a', '#ffed9a'];\n const resolutionStatusColors: Array = [];\n const prioritizationStatusColors: Array = [];\n const resolutionEvaluationColors: Array = [];\n\n const statusGraphDatasets = ref, backgroundColor: Array, tooltips?: Array }>>([{\n data: [],\n backgroundColor: resolutionStatusColors,\n }]);\n\n const openIncidentsGraphDatasets = ref, backgroundColor: Array, tooltips?: Array }>>([{\n data: [],\n backgroundColor: colors,\n }]);\n\n const openTasksGraphDatasets = ref, backgroundColor: Array, tooltips?: Array }>>([{\n data: [],\n backgroundColor: colors,\n }]);\n\n const incidentPrioritizationGraphDatasets = ref, backgroundColor: Array, tooltips?: Array }>>([{\n data: [],\n backgroundColor: prioritizationStatusColors,\n }]);\n\n const incidentEvaluationGraphDatasets = ref, backgroundColor: Array, tooltips?: Array }>>([{\n data: [],\n backgroundColor: resolutionEvaluationColors,\n }]);\n const statsLabels: Array = [];\n const prioritiesLabels: Array = [];\n const evaluationsLabels: Array = [];\n const sectsLabels: Array = [];\n\n const chartsLoaded = ref(false);\n\n async function updatedIncidents(data: Array) {\n const sects = await sectors.data();\n const priorities = await prioritization.data();\n const stats = await statuses.data();\n const evaluations = await resolutionEvaluations.data();\n\n const statsDictionary = new Map();\n const sectsDictionary = new Map();\n const prioritiesDictionary = new Map();\n const evaluationsDictionary = new Map();\n\n const incidentStats = [];\n const incidentStatsTooltips: Array> = [];\n\n const openIncidentsPerSector = [];\n const openIncidentsPerSectorTooltips: Array> = [];\n\n const openTasksPerSector = [];\n const openTasksPerSectorTooltips: Array> = [];\n\n const incidentPrioritization = [];\n const incidentPrioritizationTooltips: Array> = [];\n\n const incidentEvaluations = [];\n const incidentEvaluationsTooltips: Array> = [];\n\n for (let i = 0; i < stats.length; ++i) {\n if (stats[i].color == null) {\n resolutionStatusColors.push(colors[i % colors.length]);\n } else {\n resolutionStatusColors.push(stats[i].color);\n }\n\n statsDictionary.set(stats[i].id, i);\n statsLabels.push(LanguageTemplate(stats[i], 'name').text);\n\n incidentStats.push(0);\n incidentStatsTooltips.push([]);\n }\n\n for (let i = 0; i < sects.length; ++i) {\n sectsDictionary.set(sects[i].id, i);\n sectsLabels.push(LanguageTemplate(sects[i], 'name').text);\n\n openIncidentsPerSector.push(0);\n openIncidentsPerSectorTooltips.push([]);\n\n openTasksPerSector.push(0);\n openTasksPerSectorTooltips.push([]);\n }\n\n for (let i = 0; i < priorities.length; ++i) {\n if (priorities[i].color == null) {\n prioritizationStatusColors.push(colors[i % colors.length]);\n } else {\n prioritizationStatusColors.push(priorities[i].color);\n }\n\n prioritiesDictionary.set(priorities[i].id, i);\n prioritiesLabels.push(LanguageTemplate(priorities[i], 'name').text);\n\n incidentPrioritization.push(0);\n incidentPrioritizationTooltips.push([]);\n }\n\n for (let i = 0; i < evaluations.length; ++i) {\n if (evaluations[i].color == null) {\n resolutionEvaluationColors.push(colors[i % colors.length]);\n } else {\n resolutionEvaluationColors.push(evaluations[i].color);\n }\n\n evaluationsDictionary.set(evaluations[i].id, i);\n evaluationsLabels.push(LanguageTemplate(evaluations[i], 'name').text);\n\n incidentEvaluations.push(0);\n incidentEvaluationsTooltips.push([]);\n }\n\n for (let i = 0; i < data.length; ++i) {\n const s = data[i].resolutionStatusId;\n if (s == null) {\n continue;\n }\n\n const p = statsDictionary.get(s);\n incidentStats[p] += 1;\n incidentStatsTooltips[p].push(data[i].summary);\n\n const status = await statuses.getById(s);\n if (status == null) {\n continue;\n }\n\n if (status.resolves) {\n if (data[i].resolutionEvaluationId != null) {\n const pos = evaluationsDictionary.get(data[i].resolutionEvaluationId);\n\n incidentEvaluations[pos] += 1;\n incidentEvaluationsTooltips[pos].push(data[i].summary);\n }\n continue;\n }\n\n if (data[i].sectors != null) {\n for (let j = 0; j < data[i].sectors.length; ++j) {\n const pos = sectsDictionary.get(data[i].sectors[j].sectorId);\n\n openIncidentsPerSector[pos] += 1;\n openIncidentsPerSectorTooltips[pos].push(data[i].summary);\n\n for (let k = 0; k < data[i].sectors[j].tasks.length; ++k) {\n const stat = await statuses.getById(data[i].sectors[j].tasks[k].statusId || 0);\n if (stat != null && stat.resolves) {\n continue;\n }\n\n openTasksPerSector[pos] += 1;\n // openTasksPerSectorTooltips[pos].push(data[i].sectors[j].tasks[k].description || '');\n }\n }\n }\n\n if (data[i].prioritizationScaleId != null) {\n const pos = prioritiesDictionary.get(data[i].prioritizationScaleId);\n\n incidentPrioritization[pos] += 1;\n incidentPrioritizationTooltips[pos].push(data[i].summary);\n }\n }\n\n statusGraphDatasets.value[0].data = incidentStats;\n statusGraphDatasets.value[0].tooltips = incidentStatsTooltips;\n\n openIncidentsGraphDatasets.value[0].data = openIncidentsPerSector;\n openIncidentsGraphDatasets.value[0].tooltips = openIncidentsPerSectorTooltips;\n\n openTasksGraphDatasets.value[0].data = openTasksPerSector;\n openTasksGraphDatasets.value[0].tooltips = openTasksPerSectorTooltips;\n\n incidentPrioritizationGraphDatasets.value[0].data = incidentPrioritization;\n incidentPrioritizationGraphDatasets.value[0].tooltips = incidentPrioritizationTooltips;\n\n incidentEvaluationGraphDatasets.value[0].data = incidentEvaluations;\n incidentEvaluationGraphDatasets.value[0].tooltips = incidentEvaluationsTooltips;\n\n chartsLoaded.value = true;\n }\n const datePickers = ref([\n { date: '', label: 'From' },\n { date: '', label: 'To' },\n ]);\n const exportMenu = ref(false);\n const datepickerMenu = ref([false, false]);\n\n return {\n datasource,\n statuses,\n sectors,\n prioritization,\n resolutionEvaluations,\n updatedIncidents,\n headers,\n tableActions,\n tableActionEvent,\n addNewIncident,\n viewIncident,\n\n statusGraphDatasets,\n openIncidentsGraphDatasets,\n openTasksGraphDatasets,\n incidentPrioritizationGraphDatasets,\n incidentEvaluationGraphDatasets,\n\n statsLabels,\n prioritiesLabels,\n evaluationsLabels,\n sectsLabels,\n\n icons,\n exportData,\n datePickers,\n exportMenu,\n datepickerMenu,\n chartsLoaded,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentManagement.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentManagement.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IncidentManagement.vue?vue&type=template&id=7bb7d4bc&\"\nimport script from \"./IncidentManagement.vue?vue&type=script&lang=ts&\"\nexport * from \"./IncidentManagement.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VDatePicker,VDivider,VIcon,VList,VListItem,VMenu,VRow,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":\"Disaster Recovery Tests\"}},[_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":{editable: false},\"height\":\"100%\"},on:{\"dblclick\":_vm.openTest}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport { ApplicationModule } from '@/store';\nimport { DisasterRecoveryTestDto, GetDisasterRecoveryTestStatusTranslation } from '@/dtos/bcm/testing/DisasterRecoveryTestDto';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport i18n from '@/i18n';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { DateTemplate, LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'DisasterRecoveryTestUserListView',\n\n components: {\n PdFormBase,\n PdDataTable,\n },\n\n setup(props, { root }) {\n const entity = ApplicationModule.Entity;\n const datasource = ref>(new ApiDataSource({ api: `masterplans/${entity?.id}/bc/testing/DisasterRecoveryTests/GetUserTests` }));\n\n datasource.value.data().catch((error) => {\n PopupMessageService.SetMessage({\n title: i18n.t('error').toString(),\n text: error.response.data,\n });\n });\n\n const headers: Array> = [{\n id: 'name',\n text: i18n.t('testing.dr.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n template: (item) => {\n return LanguageTemplate(item as DisasterRecoveryTestDto, 'name');\n },\n },\n {\n id: 'status',\n text: i18n.t('testing.dr.status').toString(),\n template: (item: unknown) => {\n return {\n text: GetDisasterRecoveryTestStatusTranslation((item as DisasterRecoveryTestDto).status),\n };\n },\n value: 'status',\n width: '150px',\n },\n {\n id: 'start',\n width: '150px',\n text: i18n.t('testing.dr.start').toString(),\n template: (item) => {\n return DateTemplate((item as DisasterRecoveryTestDto).start);\n },\n value: 'start',\n },\n {\n id: 'end',\n text: i18n.t('testing.dr.end').toString(),\n value: 'end',\n width: '150px',\n template: (item) => {\n return DateTemplate((item as DisasterRecoveryTestDto).end);\n },\n }];\n\n function openTest(test: DisasterRecoveryTestDto) {\n root.$router.push({ name: 'bcm.testing.dr.test', params: { testId: test.id.toString() } });\n }\n\n return {\n datasource,\n headers,\n openTest,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestUserListView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DisasterRecoveryTestUserListView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DisasterRecoveryTestUserListView.vue?vue&type=template&id=f7f298f6&scoped=true&\"\nimport script from \"./DisasterRecoveryTestUserListView.vue?vue&type=script&lang=ts&\"\nexport * from \"./DisasterRecoveryTestUserListView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f7f298f6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('tra.answerGroups.title'),\"loading\":_vm.loading}},[_c('pd-data-table',{attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.headers,\"options\":{ editable: true, hasDetails: true },\"sort\":\"name_en-US\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"},scopedSlots:_vm._u([{key:\"details\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('answer-group',{attrs:{\"entity-id\":_vm.entityId,\"category-id\":_vm.categoryId,\"group\":item}})]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-data-table',{staticClass:\"ml-4 mb-8\",attrs:{\"datasource\":_vm.datasource,\"headers\":_vm.headers,\"options\":{ editable: true, pagination: false},\"sort\":\"name_en-US\",\"sort-direction\":\"asc\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isNew)?_c('div',[_c('v-checkbox',{staticClass:\"controls-checkbox\",attrs:{\"label\":_vm.$t('tra.answer.updateControls'),\"hide-details\":\"\",\"dense\":\"\"},on:{\"change\":_vm.change},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.mdiInformation)+\" \")])]}}],null,false,1576883166)},[_vm._v(\" \"+_vm._s(_vm.$t('tra.answer.updateControlsExplanation'))+\" \")])]},proxy:true}],null,false,3814674636)})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport { mdiInformation } from '@mdi/js';\nimport { PdColumnProps } from '@/components/core/PdDataTable/columns/PdColumnProps';\n\nexport default defineComponent({\n name: 'AnswerUpdateControlComponent',\n\n props: {\n ...PdColumnProps,\n },\n\n setup(props, { emit }) {\n function change(newValue: boolean) {\n emit('input', newValue);\n }\n return {\n mdiInformation,\n change,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnswerUpdateControlComponent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnswerUpdateControlComponent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AnswerUpdateControlComponent.vue?vue&type=template&id=00a4624b&scoped=true&\"\nimport script from \"./AnswerUpdateControlComponent.vue?vue&type=script&lang=ts&\"\nexport * from \"./AnswerUpdateControlComponent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AnswerUpdateControlComponent.vue?vue&type=style&index=0&id=00a4624b&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00a4624b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCheckbox,VIcon,VTooltip})\n","\n\n\n\n\n\n\n\n\n\n\n\nimport { PdDataTable, PdDataTableHeader, TemplateReturnType } from '@/components/core/PdDataTable';\nimport { PdColumnTranslation, PdColumnDropDown, PdColumnParameterDropDown } from '@/components/core/PdDataTable/columns';\nimport { ApiDataSource } from '@/core/datasource';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { AnswerDto, AnswerGroupDto } from '@/dtos/tra';\nimport i18n from '@/i18n';\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport AnswerUpdateControlComponent from './AnswerUpdateControlComponent.vue';\n\nconst headers: Array> = [\n {\n id: 'answer',\n text: i18n.t('tra.answer.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n template: (item) => {\n return LanguageTemplate(item, 'answer');\n },\n },\n {\n id: 'defaultValue',\n text: i18n.t('tra.answer.defaultValue').toString(),\n value: 'defaultValue',\n component: PdColumnDropDown,\n defaultValue: null,\n width: '200px',\n template: (item) => {\n return {\n text: item.defaultValue == null ? 'Not Applicable' : item.defaultValue,\n } as TemplateReturnType;\n },\n sortable: false,\n parameters: {\n items: () => {\n const ret: Array = [{ text: 'Not Applicable', value: null }];\n for (let i = 0; i <= 100; ++i) {\n ret.push({ text: `${i}%`, value: i });\n }\n return ret;\n },\n },\n },\n {\n id: 'updateControls',\n value: 'updateControls',\n text: i18n.t('tra.answer.updateControls').toString(),\n defaultValue: false,\n width: '250px',\n visible: false,\n editorVisible: true,\n component: AnswerUpdateControlComponent,\n },\n];\n\nexport default defineComponent({\n name: 'AnswerGroup',\n\n components: {\n PdDataTable,\n },\n\n props: {\n entityId: {\n type: Number,\n required: true,\n },\n\n categoryId: {\n type: Number,\n required: true,\n },\n\n group: {\n type: Object as PropType,\n required: true,\n },\n\n },\n\n setup(props) {\n const datasource = new ApiDataSource({\n api: `masterplans/${props.entityId}/tra/${props.categoryId}/AnswerGroups/${props.group.id}/Answers`,\n });\n\n return {\n datasource,\n headers,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnswerGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnswerGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AnswerGroup.vue?vue&type=template&id=4fbbac34&scoped=true&\"\nimport script from \"./AnswerGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./AnswerGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4fbbac34\",\n null\n \n)\n\nexport default component.exports","import { PersistentStorage } from '@/core/storage';\nimport router from '@/router';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { ApplicationModule, TraModule } from '@/store';\nimport { AxiosError } from 'axios';\n\nexport interface TraComponent {\n entity: number,\n category: number,\n}\n\nexport function checkTraCategory(): TraComponent {\n const entity = ApplicationModule.Entity;\n if (entity == null) {\n ErrorHandlingService.Handle(new Error('Entity is not set... Redirecting to Entity selection!') as AxiosError);\n router.push({ name: 'entities' });\n throw new Error();\n }\n\n let category = TraModule.CurrentCategory;\n\n if (category == null) {\n const sessionCategory = PersistentStorage.GetValue('tra');\n if (sessionCategory) {\n category = JSON.parse(sessionCategory);\n TraModule.SetTraCategory(category);\n }\n }\n\n if (category == null) {\n // ErrorHandlingService.Handle(new Error('TRA Category is not set... Redirecting to TRA Category selection!') as AxiosError);\n // store route user tried to access\n if (router.currentRoute.name) {\n TraModule.setRoute(router.currentRoute.name);\n }\n router.push({ name: 'tra.categories' });\n throw new Error();\n }\n\n return { entity: entity.id, category: category.id };\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport { AnswerGroupDto } from '@/dtos/tra';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport AnswerGroup from './AnswerGroup.vue';\nimport { checkTraCategory } from '../TraComponentGuards';\nimport i18n from '@/i18n';\nimport { mdiPlus } from '@mdi/js';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'AnswerGroupsView',\n\n components: {\n PdFormBase,\n AnswerGroup,\n PdDataTable,\n },\n\n setup() {\n const loading = ref(false);\n let params;\n try { params = checkTraCategory(); } catch { return; }\n\n const datasource = new ApiDataSource({ api: `masterplans/${params.entity}/tra/${params.category}/AnswerGroups` });\n\n const headers: Array> = [\n {\n id: 'name',\n text: i18n.t('tra.answerGroups.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n width: '100%',\n template: (item) => {\n return LanguageTemplate(item, 'name');\n },\n },\n ];\n\n return {\n loading,\n headers,\n datasource,\n\n entityId: params.entity,\n categoryId: params.category,\n\n icons: {\n mdiPlus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnswerGroupsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnswerGroupsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AnswerGroupsView.vue?vue&type=template&id=03e25845&scoped=true&\"\nimport script from \"./AnswerGroupsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AnswerGroupsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"03e25845\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.title,\"subtitle\":_vm.$t('tra.controls.title'),\"loading\":_vm.loading}},[_c('controls',{attrs:{\"base-path\":_vm.basePath,\"loading\":_vm.loading},on:{\"update:loading\":function($event){_vm.loading=$event}},scopedSlots:_vm._u([{key:\"buttons\",fn:function(){return [_c('v-btn',{staticClass:\"text-none d-inline-block mr-4\",attrs:{\"small\":\"\"},on:{\"click\":_vm.returnToAssessment}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.return)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('return'))+\" \")],1)]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.showCategoriesSelector)?_c('item-selector',{attrs:{\"datasource\":_vm.controlCategories,\"exclude\":_vm.excludedCategories,\"select-multiple\":\"\"},on:{\"select\":_vm.addCategoryToControl,\"cancel\":function($event){_vm.showCategoriesSelector = false}}}):_vm._e(),_c('div',{staticClass:\"mt-2 mb-4\"},[(_vm.allowCreation)?_c('v-btn',{staticClass:\"text-none d-inline-block mr-4\",attrs:{\"small\":\"\",\"disabled\":_vm.disabled},on:{\"click\":_vm.addNewControl}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlus)+\" \")]),_vm._v(\" Add \")],1):_vm._e(),_vm._t(\"buttons\"),_c('v-text-field',{staticClass:\"d-inline-block\",staticStyle:{\"width\":\"300px\"},attrs:{\"label\":\"Search\",\"hide-details\":\"\",\"clearable\":\"\",\"disabled\":_vm.disabled},model:{value:(_vm.searchField),callback:function ($$v) {_vm.searchField=$$v},expression:\"searchField\"}})],2),_c('v-expansion-panels',{attrs:{\"single\":\"\",\"popout\":\"\",\"hover\":\"\",\"disabled\":_vm.disabled},model:{value:(_vm.openPanels),callback:function ($$v) {_vm.openPanels=$$v},expression:\"openPanels\"}},[(_vm.newItem != null)?_c('control',{attrs:{\"base-path\":_vm.basePath,\"control\":_vm.newItem,\"show-control-categories\":_vm.showControlCategories},on:{\"add-categories\":_vm.showCategorySelector,\"remove-category\":_vm.removeCategory,\"save-changes\":_vm.saveNewControl,\"cancel-changes\":_vm.cancelNewControl}}):_vm._e(),_vm._l((_vm.pagedData),function(c){return _c('control',{key:c.uuid,attrs:{\"base-path\":_vm.basePath,\"control\":c,\"disabled\":_vm.inEditMode,\"template-answers\":_vm.templateAnswers,\"show-control-categories\":_vm.showControlCategories},on:{\"add-categories\":_vm.showCategorySelector,\"remove-category\":_vm.removeCategory,\"save-changes\":_vm.saveControlChanges,\"cancel-changes\":_vm.cancelChanges,\"in-edit-mode\":_vm.editChange,\"delete-control\":_vm.deleteControl}})})],2),_c('pd-pagination',{attrs:{\"items\":_vm.filteredData,\"paged-data\":_vm.pagedData,\"current-page\":_vm.currentPage,\"disabled\":_vm.disabled},on:{\"update:pagedData\":function($event){_vm.pagedData=$event},\"update:paged-data\":function($event){_vm.pagedData=$event},\"update:currentPage\":function($event){_vm.currentPage=$event},\"update:current-page\":function($event){_vm.currentPage=$event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panel',{style:({opacity: _vm.disableAll ? 0.4: 1}),on:{\"change\":_vm.toggleState}},[_c('v-expansion-panel-header',{staticClass:\"py-2\"},[(!_vm.inEditMode)?_c('div',[_c('span',{staticClass:\"font-weight-bold mr-4\"},[_vm._v(\" \"+_vm._s(_vm.control.controlId)+\" \")]),_c('span',[_vm._v(\" \"+_vm._s(_vm.controlText)+\" \")])]):_vm._e()]),_c('v-expansion-panel-content',[(!_vm.initialized)?[_c('v-progress-linear',{attrs:{\"indeterminate\":\"\"}}),_c('v-skeleton-loader',{attrs:{\"type\":\"actions, article, table-heading, table-tfoot\"}})]:[(_vm.inEditMode)?[_c('v-btn',{staticClass:\"text-none mr-3\",attrs:{\"small\":\"\",\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiFloppy)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")],1),_c('v-btn',{staticClass:\"text-none mr-6\",attrs:{\"small\":\"\",\"color\":\"warning\"},on:{\"click\":_vm.cancelChanges}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiCancel)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")],1),_c('v-text-field',{attrs:{\"label\":_vm.$t('tra.controls.controlId')},model:{value:(_vm.newControlId),callback:function ($$v) {_vm.newControlId=$$v},expression:\"newControlId\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('tra.controls.control')},model:{value:(_vm.newControlText),callback:function ($$v) {_vm.newControlText=$$v},expression:\"newControlText\"}}),_c('v-textarea',{staticClass:\"mb-2\",attrs:{\"label\":_vm.$t('tra.controls.treatmentActions'),\"auto-grow\":\"\",\"rows\":\"1\"},model:{value:(_vm.newControlActions),callback:function ($$v) {_vm.newControlActions=$$v},expression:\"newControlActions\"}})]:[_c('div',{staticStyle:{\"float\":\"right\"}},[_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"icon\":\"\",\"disabled\":_vm.disableAll},on:{\"click\":function($event){_vm.inEditMode = true}}},[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.mdiPencil)+\" \")])],1),_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"icon\":\"\",\"disabled\":_vm.disableAll},on:{\"click\":_vm.deleteControl}},[_c('v-icon',{attrs:{\"color\":\"red\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiTrashCan)+\" \")])],1)],1),_c('div',{staticClass:\"text--secondary mt-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('tra.controls.treatmentActions'))+\" \")]),_c('div',{staticStyle:{\"min-height\":\"30px\"}},[_vm._v(\" \"+_vm._s(_vm.controlActions)+\" \")])],_c('v-row',[(_vm.showControlCategories)?_c('v-col',{attrs:{\"sm\":\"12\",\"md\":_vm.control.id === 0 ? 12 : 6}},[_c('control-categories',{attrs:{\"control\":_vm.control,\"in-edit-mode\":_vm.inEditMode},on:{\"add\":function($event){return _vm.$emit('add-categories', _vm.control)},\"remove\":function($event){return _vm.$emit('remove-category', _vm.control, $event)}}})],1):_vm._e(),(_vm.control.id !== 0)?_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"6\"}},[_c('v-card',{staticClass:\"mt-4\",attrs:{\"disabled\":_vm.inEditMode || _vm.disableAll,\"elevation\":\"0\"}},[_c('pd-data-table',{attrs:{\"headers\":_vm.tableHeaders,\"options\":{pagination: false, editable: true},\"datasource\":_vm.answersDatasource},scopedSlots:_vm._u([{key:\"customTableActions\",fn:function(){return [(_vm.hasTemplateAnswers)?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"text-none d-inline-block mr-4\",attrs:{\"small\":\"\",\"depressed\":\"\",\"disabled\":_vm.disabled}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('tra.controls.addFromTemplate'))+\" \")])]}}],null,false,2920407185)},[_c('v-list',_vm._l((_vm.templateAnswers),function(a){return _c('v-list-item',{key:a.id,on:{\"click\":function($event){return _vm.addAnswersFromTemplate(a.id)}}},[_c('v-list-item-title',[_vm._v(_vm._s(a.text))])],1)}),1)],1):_vm._e()]},proxy:true}],null,false,191843730)})],1)],1):_vm._e()],1)]],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from '@/api/axios';\nimport { FileDto } from '@/dtos/all';\nimport { AssessmentDto, AssessmentQuestionnaireUserDto, SimpleAssessmentDto, SimpleAssessmentQuestionnaireControlDto, SimpleAssessmentQuestionnaireDto } from '@/dtos/tra';\n\nexport default class AssessmentsApi {\n static async GetAssessment(entityId: number, traCategoryId: number, id: number): Promise {\n const response = await axios.get(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${id}`);\n\n return Promise.resolve(response.data);\n }\n\n static async GetSimpleAssessment(entityId: number, traCategoryId: number, id: number): Promise {\n const response = await axios.get(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${id}/Simple`);\n\n return Promise.resolve(response.data);\n }\n\n static async Create(entityId: number, traCategoryId: number, assessment: AssessmentDto): Promise {\n const response = await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/`, assessment);\n\n return Promise.resolve(response.data);\n }\n\n static async Update(entityId: number, traCategoryId: number, id: number, assessment: AssessmentDto): Promise {\n const response = await axios.put(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${id}`, assessment);\n\n return Promise.resolve(response.data);\n }\n\n static async Delete(entityId: number, traCategoryId: number, id: number): Promise {\n await axios.delete(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${id}`);\n\n return Promise.resolve();\n }\n\n static async GetAssessmentQuestionnaireUsers(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number): Promise> {\n const response = await axios.get>(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Questionnaires/${questionnaireId}/Users`);\n\n return Promise.resolve(response.data);\n }\n\n static async AddAssessmentQuestionnaireUser(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number, user:AssessmentQuestionnaireUserDto): Promise {\n const response = await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Questionnaires/${questionnaireId}/Users`, user);\n\n return Promise.resolve(response.data);\n }\n\n static async RemoveAssessmentQuestionnaireUser(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number, userId :number): Promise {\n await axios.delete(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Questionnaires/${questionnaireId}/Users/${userId}`);\n\n return Promise.resolve();\n }\n\n static async ChangeAllowFinishingForUser(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number, userId :number, user: AssessmentQuestionnaireUserDto): Promise {\n const response = await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Questionnaires/${questionnaireId}/Users/${userId}/AllowUserToFinishFlow`, user);\n\n return Promise.resolve(response.data);\n }\n\n static async MoveUserUp(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number, userId :number, user: AssessmentQuestionnaireUserDto): Promise> {\n const response = await axios.post>(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Questionnaires/${questionnaireId}/Users/${userId}/MoveUserUp`, user);\n\n return Promise.resolve(response.data);\n }\n\n static async MoveUserDown(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number, userId :number, user: AssessmentQuestionnaireUserDto): Promise> {\n const response = await axios.post>(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Questionnaires/${questionnaireId}/Users/${userId}/MoveUserDown`, user);\n\n return Promise.resolve(response.data);\n }\n\n static async DeployQuestionnaire(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number): Promise {\n await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Questionnaires/${questionnaireId}/DeployQuestionnaire`);\n\n return Promise.resolve();\n }\n\n static async AbortQuestionnaire(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number): Promise {\n await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Questionnaires/${questionnaireId}/AbortQuestionnaire`);\n\n return Promise.resolve();\n }\n\n static async GetUserAssessments(entityId: number, traCategoryId: number): Promise> {\n const response = await axios.get>(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/GetAllForUser`);\n\n return Promise.resolve(response.data);\n }\n\n static async GetAssessmentQuestionnaire(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number): Promise {\n const response = await axios.get(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Questionnaires/${questionnaireId}`);\n\n return Promise.resolve(response.data);\n }\n\n static async UpdateQuestionnaireAnswer(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number, control: SimpleAssessmentQuestionnaireControlDto): Promise {\n const response = await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Questionnaires/${questionnaireId}/UpdateControlAnswer`, control);\n\n return Promise.resolve(response.data);\n }\n\n static async ApproveQuestionnaire(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number, message: {message: string}): Promise {\n await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Questionnaires/${questionnaireId}/ApproveQuestionnaire`, message);\n\n return Promise.resolve();\n }\n\n static async RejectQuestionnaire(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number, message: {message: string}): Promise {\n await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Questionnaires/${questionnaireId}/RejectQuestionnaire`, message);\n\n return Promise.resolve();\n }\n\n static async ApproveAssessmentQuestionnaireReview(entityId: number, traCategoryId: number, assessmentId: number): Promise {\n await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/ApproveQuestionnaireReview`);\n\n return Promise.resolve();\n }\n\n static async DownloadAssessmentQuestionnaireReview(entityId: number, traCategoryId: number, assessmentId: number, type: number): Promise {\n const result = await axios.get(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/DownloadQuestionnaireReview?type=${type}`);\n\n return Promise.resolve(result.data);\n }\n\n static async ApproveAssessmentTreatmentReview(entityId: number, traCategoryId: number, assessmentId: number): Promise {\n await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/ApproveTreatmentReview`);\n\n return Promise.resolve();\n }\n\n static async DeployTreatment(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number): Promise {\n await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Treatments/${questionnaireId}/DeployTreatment`);\n\n return Promise.resolve();\n }\n\n static async AbortTreatment(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number): Promise {\n await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Treatments/${questionnaireId}/AbortTreatment`);\n\n return Promise.resolve();\n }\n\n static async GetAssessmentTreatment(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number): Promise {\n const response = await axios.get(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Treatments/${questionnaireId}`);\n\n return Promise.resolve(response.data);\n }\n\n static async ApproveTreatment(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number, message: {message: string}): Promise {\n await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Treatments/${questionnaireId}/ApproveTreatment`, message);\n\n return Promise.resolve();\n }\n\n static async RejectTreatment(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number, message: {message: string}): Promise {\n await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Treatments/${questionnaireId}/RejectTreatment`, message);\n\n return Promise.resolve();\n }\n\n static async UpdateTreatmentAnswer(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number, control: SimpleAssessmentQuestionnaireControlDto): Promise {\n const response = await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Treatments/${questionnaireId}/UpdateControlTreatmentAnswer`, control);\n\n return Promise.resolve(response.data);\n }\n\n static async DownloadAssessmentsRisks(entityId: number, traCategoryId: number, assessments: Array): Promise {\n const response = await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/DownloadRisks`, assessments);\n\n return Promise.resolve(response.data);\n }\n\n static async DownloadAssessmentQuestionnaire(entityId: number, traCategoryId: number, assessmentId: number, questionnaireId: number): Promise {\n const result = await axios.get(`/masterplans/${entityId}/tra/${traCategoryId}/Assessments/${assessmentId}/Questionnaires/${questionnaireId}/ExportExcel`);\n\n return Promise.resolve(result.data);\n }\n}\n","import AssessmentsApi from '@/api/tra/AssessmentsApi';\nimport { FileDto } from '@/dtos/all';\nimport { AssessmentDto, AssessmentQuestionnaireDto, AssessmentQuestionnaireUserDto, SimpleAssessmentDto, SimpleAssessmentQuestionnaireControlDto, SimpleAssessmentQuestionnaireDto } from '@/dtos/tra';\nimport { ApplicationModule, TraModule } from '@/store';\n\nfunction getParams() {\n const entity = ApplicationModule.Entity;\n const traCategory = TraModule.CurrentCategory;\n\n if (entity == null || traCategory == null) {\n console.error(entity, traCategory);\n throw new Error('AssessmentsService (GetAssessment): Entity and TRA cannot be null...');\n }\n\n return { entity, traCategory };\n}\n\nexport class AssessmentsService {\n public static async GetAssessment(id: number): Promise {\n const { entity, traCategory } = getParams();\n\n return await AssessmentsApi.GetAssessment(entity.id, traCategory.id, id);\n }\n\n public static async GetSimpleAssessment(id: number): Promise {\n const { entity, traCategory } = getParams();\n\n return await AssessmentsApi.GetSimpleAssessment(entity.id, traCategory.id, id);\n }\n\n public static async Save(assessment: AssessmentDto): Promise {\n const { entity, traCategory } = getParams();\n\n if (assessment.id === 0) {\n return await AssessmentsApi.Create(entity.id, traCategory.id, assessment);\n } else {\n return await AssessmentsApi.Update(entity.id, traCategory.id, assessment.id, assessment);\n }\n }\n\n public static async Delete(assessment: AssessmentDto): Promise {\n const { entity, traCategory } = getParams();\n\n return await AssessmentsApi.Delete(entity.id, traCategory.id, assessment.id);\n }\n\n public static async GetAssessmentQuestionnaireUsers(assessmentId: number, questionnaire: AssessmentQuestionnaireDto): Promise> {\n const { entity, traCategory } = getParams();\n\n return await AssessmentsApi.GetAssessmentQuestionnaireUsers(entity.id, traCategory.id, assessmentId, questionnaire.id);\n }\n\n public static async AddAssessmentQuestionnaireUser(assessmentId: number, questionnaire: AssessmentQuestionnaireDto, user: AssessmentQuestionnaireUserDto): Promise {\n const { entity, traCategory } = getParams();\n\n return await AssessmentsApi.AddAssessmentQuestionnaireUser(entity.id, traCategory.id, assessmentId, questionnaire.id, user);\n }\n\n public static async RemoveAssessmentQuestionnaireUser(assessmentId: number, questionnaireId: number, user: AssessmentQuestionnaireUserDto): Promise {\n const { entity, traCategory } = getParams();\n\n return await AssessmentsApi.RemoveAssessmentQuestionnaireUser(entity.id, traCategory.id, assessmentId, questionnaireId, user.id);\n }\n\n public static async ChangeAllowFinishingForUser(assessmentId: number, questionnaireId: number, user: AssessmentQuestionnaireUserDto): Promise {\n const { entity, traCategory } = getParams();\n\n return await AssessmentsApi.ChangeAllowFinishingForUser(entity.id, traCategory.id, assessmentId, questionnaireId, user.id, user);\n }\n\n public static async MoveUserUp(assessmentId: number, questionnaireId: number, user: AssessmentQuestionnaireUserDto): Promise> {\n const { entity, traCategory } = getParams();\n\n return await AssessmentsApi.MoveUserUp(entity.id, traCategory.id, assessmentId, questionnaireId, user.id, user);\n }\n\n public static async MoveUserDown(assessmentId: number, questionnaireId: number, user: AssessmentQuestionnaireUserDto): Promise> {\n const { entity, traCategory } = getParams();\n\n return await AssessmentsApi.MoveUserDown(entity.id, traCategory.id, assessmentId, questionnaireId, user.id, user);\n }\n\n public static async DeployQuestionnaire(assessmentId: number, questionnaireId: number): Promise {\n const { entity, traCategory } = getParams();\n\n await AssessmentsApi.DeployQuestionnaire(entity.id, traCategory.id, assessmentId, questionnaireId);\n }\n\n public static async AbortQuestionnaire(assessmentId: number, questionnaireId: number): Promise {\n const { entity, traCategory } = getParams();\n\n await AssessmentsApi.AbortQuestionnaire(entity.id, traCategory.id, assessmentId, questionnaireId);\n }\n\n public static async DeployTreatment(assessmentId: number, questionnaireId: number): Promise {\n const { entity, traCategory } = getParams();\n\n await AssessmentsApi.DeployTreatment(entity.id, traCategory.id, assessmentId, questionnaireId);\n }\n\n public static async AbortTreatment(assessmentId: number, questionnaireId: number): Promise {\n const { entity, traCategory } = getParams();\n\n await AssessmentsApi.AbortTreatment(entity.id, traCategory.id, assessmentId, questionnaireId);\n }\n\n public static async GetUserAssessments(): Promise> {\n const entity = ApplicationModule.Entity;\n const traCategory = TraModule.CurrentCategory;\n\n if (entity == null) {\n console.error(entity);\n throw new Error('AssessmentsService (GetUserAssessments): Entity cannot be null...');\n }\n\n let tra = 0;\n if (traCategory != null) {\n tra = traCategory.id;\n }\n\n return await AssessmentsApi.GetUserAssessments(entity.id, tra);\n }\n\n public static async GetAssessmentQuestionnaire(traCategoryId: number, assessmentId: number, questionnaireId: number): Promise {\n const entity = ApplicationModule.Entity;\n\n if (entity == null) {\n console.error(entity);\n throw new Error('AssessmentsService (GetUserAssessments): Entity cannot be null...');\n }\n\n return await AssessmentsApi.GetAssessmentQuestionnaire(entity.id, traCategoryId, assessmentId, questionnaireId);\n }\n\n public static async UpdateQuestionnaireAnswer(traCategoryId: number, assessmentId: number, questionnaireId: number, control: SimpleAssessmentQuestionnaireControlDto): Promise {\n const entity = ApplicationModule.Entity;\n\n if (entity == null) {\n console.error(entity);\n throw new Error('AssessmentsService (UpdateQuestionnaireAnswer): Entity cannot be null...');\n }\n\n return await AssessmentsApi.UpdateQuestionnaireAnswer(entity.id, traCategoryId, assessmentId, questionnaireId, control);\n }\n\n public static async ApproveQuestionnaire(traCategoryId: number, assessmentId: number, questionnaireId: number, message: string): Promise {\n const entity = ApplicationModule.Entity;\n\n if (entity == null) {\n console.error(entity);\n throw new Error('AssessmentsService (ApproveQuestionnaire): Entity cannot be null...');\n }\n\n await AssessmentsApi.ApproveQuestionnaire(entity.id, traCategoryId, assessmentId, questionnaireId, { message });\n }\n\n public static async RejectQuestionnaire(traCategoryId: number, assessmentId: number, questionnaireId: number, message: string): Promise {\n const entity = ApplicationModule.Entity;\n\n if (entity == null) {\n console.error(entity);\n throw new Error('AssessmentsService (RejectQuestionnaire): Entity cannot be null...');\n }\n\n await AssessmentsApi.RejectQuestionnaire(entity.id, traCategoryId, assessmentId, questionnaireId, { message });\n }\n\n public static async ApproveAssessmentQuestionnaireReview(entityId: number, traCategoryId: number, assessmentId: number): Promise {\n await AssessmentsApi.ApproveAssessmentQuestionnaireReview(entityId, traCategoryId, assessmentId);\n }\n\n public static async DownloadAssessmentQuestionnaireReview(entityId: number, traCategoryId: number, assessmentId: number, type: number): Promise {\n return await AssessmentsApi.DownloadAssessmentQuestionnaireReview(entityId, traCategoryId, assessmentId, type);\n }\n\n public static async GetAssessmentTreatment(traCategoryId: number, assessmentId: number, questionnaireId: number): Promise {\n const entity = ApplicationModule.Entity;\n\n if (entity == null) {\n console.error(entity);\n throw new Error('AssessmentsService (GetUserAssessments): Entity cannot be null...');\n }\n\n return await AssessmentsApi.GetAssessmentTreatment(entity.id, traCategoryId, assessmentId, questionnaireId);\n }\n\n public static async ApproveAssessmentTreatmentReview(entityId: number, traCategoryId: number, assessmentId: number): Promise {\n await AssessmentsApi.ApproveAssessmentTreatmentReview(entityId, traCategoryId, assessmentId);\n }\n\n public static async ApproveTreatment(traCategoryId: number, assessmentId: number, questionnaireId: number, message: string): Promise {\n const entity = ApplicationModule.Entity;\n\n if (entity == null) {\n console.error(entity);\n throw new Error('AssessmentsService (ApproveTreatment): Entity cannot be null...');\n }\n\n await AssessmentsApi.ApproveTreatment(entity.id, traCategoryId, assessmentId, questionnaireId, { message });\n }\n\n public static async RejectTreatment(traCategoryId: number, assessmentId: number, questionnaireId: number, message: string): Promise {\n const entity = ApplicationModule.Entity;\n\n if (entity == null) {\n console.error(entity);\n throw new Error('AssessmentsService (RejectTreatment): Entity cannot be null...');\n }\n\n await AssessmentsApi.RejectTreatment(entity.id, traCategoryId, assessmentId, questionnaireId, { message });\n }\n\n public static async UpdateTreatmentAnswer(traCategoryId: number, assessmentId: number, questionnaireId: number, control: SimpleAssessmentQuestionnaireControlDto): Promise {\n const entity = ApplicationModule.Entity;\n\n if (entity == null) {\n console.error(entity);\n throw new Error('AssessmentsService (UpdateTreatmentAnswer): Entity cannot be null...');\n }\n\n return await AssessmentsApi.UpdateTreatmentAnswer(entity.id, traCategoryId, assessmentId, questionnaireId, control);\n }\n\n public static async DownloadAssessmentsRisks(traCategoryId: number, assessments: Array): Promise {\n const entity = ApplicationModule.Entity;\n\n if (entity == null) {\n console.error(entity);\n throw new Error('AssessmentsService (GetUserAssessments): Entity cannot be null...');\n }\n\n return await AssessmentsApi.DownloadAssessmentsRisks(entity.id, traCategoryId, assessments);\n }\n\n public static async DownloadAssessmentQuestionnaire(traCategoryId: number, assessmentId: number, questionnaireId: number): Promise {\n const entity = ApplicationModule.Entity;\n\n if (entity == null) {\n console.error(entity);\n throw new Error('AssessmentsService (DownloadAssessmentQuestionnaire): Entity cannot be null...');\n }\n\n return await AssessmentsApi.DownloadAssessmentQuestionnaire(entity.id, traCategoryId, assessmentId, questionnaireId);\n }\n}\n","import axios from '@/api/axios';\n\nexport default class ControlsApi {\n static async AddAnswersFromAnswerGroup(entityId: number, traCategoryId: number, controlId: number, answerGroupId: number): Promise {\n return axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Controls/${controlId}/Answers/AddFromTemplate?answerGroupId=${answerGroupId}`);\n }\n\n static async ImportControls(entityId: number, traCategoryId: number, data: FormData): Promise {\n await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Controls/import`, data);\n return Promise.resolve();\n }\n}\n","import ControlsApi from '@/api/tra/ControlsApi';\nimport { UploadCsvFileDto } from '@/dtos';\nimport { ControlDto } from '@/dtos/tra';\nimport { ApplicationModule, TraModule } from '@/store';\n\nexport class ControlsService {\n public static async AddAnswersFromAnswerGroup(control: ControlDto, answerGroupId: number) : Promise {\n const entity = ApplicationModule.Entity;\n const traCategory = TraModule.CurrentCategory;\n\n if (entity == null || traCategory == null) {\n console.error(entity, traCategory);\n throw new Error('ControlsService: Entity and TRA cannot be null...');\n }\n\n return await ControlsApi.AddAnswersFromAnswerGroup(entity.id, traCategory.id, control.id, answerGroupId);\n }\n\n public static async ImportControls(parameters: UploadCsvFileDto): Promise {\n const entity = ApplicationModule.Entity;\n const traCategory = TraModule.CurrentCategory;\n\n if (entity == null || traCategory == null) {\n console.error(entity, traCategory);\n throw new Error('ControlsService: Entity and TRA cannot be null...');\n }\n\n const fd = new FormData();\n fd.append('file', parameters.file);\n fd.append('ignoreFirstLine', parameters.ignoreFirstLine ? 'true' : 'false');\n fd.append('language', (parameters.language || 0).toString());\n fd.append('delimiter', parameters.delimiter);\n\n return ControlsApi.ImportControls(entity.id, traCategory.id, fd);\n }\n}\n","import axios from '@/api/axios';\n\nexport default class QuestionnairesApi {\n static async ImportQuestionnaire(entityId: number, traCategoryId: number, questionnaireId: number, data: FormData): Promise {\n await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Questionnaires/${questionnaireId}/import`, data);\n return Promise.resolve();\n }\n}\n","import axios from '@/api/axios';\nimport { RiskMaxValuesDto } from '@/dtos/tra';\n\nexport default class RisksApi {\n static async GetMaxValues(entityId: number, traCategoryId: number): Promise {\n const response = await axios.get(`/masterplans/${entityId}/tra/${traCategoryId}/Risks/MaxValues`);\n return Promise.resolve(response.data);\n }\n\n static async ImportRisks(entityId: number, traCategoryId: number, data: FormData): Promise {\n await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Risks/import`, data);\n return Promise.resolve();\n }\n\n static async ImportRiskControls(entityId: number, traCategoryId: number, data: FormData): Promise {\n await axios.post(`/masterplans/${entityId}/tra/${traCategoryId}/Risks/RiskControls/import`, data);\n return Promise.resolve();\n }\n}\n","import QuestionnairesApi from '@/api/tra/QuestionnairesApi';\nimport RisksApi from '@/api/tra/RisksApi';\nimport { UploadCsvFileDto } from '@/dtos';\nimport { RiskMaxValuesDto } from '@/dtos/tra';\nimport { ApplicationModule, TraModule } from '@/store';\n\nexport class QuestionnairesService {\n public static async GetMaxLikelihoodImpactValues(): Promise {\n const entity = ApplicationModule.Entity;\n const traCategory = TraModule.CurrentCategory;\n\n if (entity == null || traCategory == null) {\n console.error(entity, traCategory);\n throw new Error('RiskMethodologyService (Update): Entity and TRA cannot be null...');\n }\n\n return await RisksApi.GetMaxValues(entity.id, traCategory.id);\n }\n\n public static async ImportQuestionnaireControls(questionnaireId:number, parameters: UploadCsvFileDto): Promise {\n const entity = ApplicationModule.Entity;\n const traCategory = TraModule.CurrentCategory;\n\n if (entity == null || traCategory == null) {\n console.error(entity, traCategory);\n throw new Error('ControlsService: Entity and TRA cannot be null...');\n }\n\n const fd = new FormData();\n fd.append('file', parameters.file);\n fd.append('ignoreFirstLine', parameters.ignoreFirstLine ? 'true' : 'false');\n fd.append('language', (parameters.language || 0).toString());\n fd.append('delimiter', parameters.delimiter);\n\n return QuestionnairesApi.ImportQuestionnaire(entity.id, traCategory.id, questionnaireId, fd);\n }\n}\n","import axios from '@/api/axios';\nimport { RiskMethodologyChartDataDto, RiskMethodologyDto } from '@/dtos/tra';\n\nexport default class RiskMethodologyApi {\n static async GetRiskMethodology(entityId: number, traCategoryId: number): Promise {\n const response = await axios.get(`/masterplans/${entityId}/tra/${traCategoryId}/RiskMethodology`);\n return Promise.resolve(response.data);\n }\n\n static async UpdateRiskMethodology(entityId: number, traCategoryId: number, methodology: RiskMethodologyDto): Promise {\n const response = await axios.put(`/masterplans/${entityId}/tra/${traCategoryId}/RiskMethodology`, methodology);\n return Promise.resolve(response.data);\n }\n\n static async GetChartData(entityId: number, traCategoryId: number, resolution: number): Promise {\n const response = await axios.get(`/masterplans/${entityId}/tra/${traCategoryId}/RiskMethodology/Chart/${resolution}`);\n return Promise.resolve(response.data);\n }\n}\n","import RiskMethodologyApi from '@/api/tra/RiskMethodologyApi';\nimport { RiskMethodologyChartDataDto, RiskMethodologyDto } from '@/dtos/tra';\nimport { ApplicationModule, TraModule } from '@/store';\n\nexport class RiskMethodologyService {\n public static async GetMethodology() : Promise {\n const entity = ApplicationModule.Entity;\n const traCategory = TraModule.CurrentCategory;\n\n if (entity == null || traCategory == null) {\n console.error(entity, traCategory);\n throw new Error('RiskMethodologyService: Entity and TRA cannot be null...');\n }\n\n return await RiskMethodologyApi.GetRiskMethodology(entity.id, traCategory.id);\n }\n\n public static async UpdateMethodology(methodology: RiskMethodologyDto) : Promise {\n const entity = ApplicationModule.Entity;\n const traCategory = TraModule.CurrentCategory;\n\n if (entity == null || traCategory == null) {\n console.error(entity, traCategory);\n throw new Error('RiskMethodologyService (Update): Entity and TRA cannot be null...');\n }\n\n return await RiskMethodologyApi.UpdateRiskMethodology(entity.id, traCategory.id, methodology);\n }\n\n public static async GetChart(resolution: number) : Promise {\n const entity = ApplicationModule.Entity;\n const traCategory = TraModule.CurrentCategory;\n\n if (entity == null || traCategory == null) {\n console.error(entity, traCategory);\n throw new Error('RiskMethodologyService (Update): Entity and TRA cannot be null...');\n }\n\n return await RiskMethodologyApi.GetChartData(entity.id, traCategory.id, resolution);\n }\n}\n","import RisksApi from '@/api/tra/RisksApi';\nimport { UploadCsvFileDto } from '@/dtos';\nimport { RiskMaxValuesDto } from '@/dtos/tra';\nimport { ApplicationModule, TraModule } from '@/store';\n\nexport class RisksService {\n public static async GetMaxLikelihoodImpactValues(): Promise {\n const entity = ApplicationModule.Entity;\n const traCategory = TraModule.CurrentCategory;\n\n if (entity == null || traCategory == null) {\n console.error(entity, traCategory);\n throw new Error('RiskMethodologyService (Update): Entity and TRA cannot be null...');\n }\n\n return await RisksApi.GetMaxValues(entity.id, traCategory.id);\n }\n\n public static async ImportRisks(parameters: UploadCsvFileDto): Promise {\n const entity = ApplicationModule.Entity;\n const traCategory = TraModule.CurrentCategory;\n\n if (entity == null || traCategory == null) {\n console.error(entity, traCategory);\n throw new Error('ControlsService: Entity and TRA cannot be null...');\n }\n\n const fd = new FormData();\n fd.append('file', parameters.file);\n fd.append('ignoreFirstLine', parameters.ignoreFirstLine ? 'true' : 'false');\n fd.append('language', (parameters.language || 0).toString());\n fd.append('delimiter', parameters.delimiter);\n\n return RisksApi.ImportRisks(entity.id, traCategory.id, fd);\n }\n\n public static async ImportRiskControls(parameters: UploadCsvFileDto): Promise {\n const entity = ApplicationModule.Entity;\n const traCategory = TraModule.CurrentCategory;\n\n if (entity == null || traCategory == null) {\n console.error(entity, traCategory);\n throw new Error('ControlsService: Entity and TRA cannot be null...');\n }\n\n const fd = new FormData();\n fd.append('file', parameters.file);\n fd.append('ignoreFirstLine', parameters.ignoreFirstLine ? 'true' : 'false');\n fd.append('language', (parameters.language || 0).toString());\n fd.append('delimiter', parameters.delimiter);\n\n return RisksApi.ImportRiskControls(entity.id, traCategory.id, fd);\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mt-4 text--secondary\"},[_c('v-simple-table',{staticClass:\"pb-8\"},[_c('thead',[_c('tr',[_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('tra.controls.controlCategories.title'))+\" \"),(_vm.inEditMode)?_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.addNewItem}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.plus)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('table.add'))+\" \")],1):_vm._e()],1)])]),_c('tbody',_vm._l((_vm.control.categories),function(item){return _c('tr',{key:item.categoryId},[_c('td',[(_vm.inEditMode)?_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":function($event){return _vm.remove(item)}}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.minus)+\" \")]),_vm._v(\" \"+_vm._s(item.category)+\" \")],1):[_vm._v(\" \"+_vm._s(item.category)+\" \")]],2)])}),0)]),_c('v-divider',{staticClass:\"pb-4\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport icons from '@/core/icons';\nimport { ControlDto } from '@/dtos/tra';\nimport { ControlCategoryControlDto } from '@/dtos/tra/IControlDto';\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'ControlCategories',\n\n props: {\n control: {\n type: Object as PropType,\n required: true,\n },\n\n inEditMode: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(_, { emit }) {\n function addNewItem() {\n emit('add');\n }\n\n function remove(item: ControlCategoryControlDto) {\n emit('remove', item);\n }\n\n return {\n addNewItem,\n remove,\n\n plus: icons.plus,\n minus: icons.minus,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlCategories.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlCategories.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ControlCategories.vue?vue&type=template&id=ba03fc3e&scoped=true&\"\nimport script from \"./ControlCategories.vue?vue&type=script&lang=ts&\"\nexport * from \"./ControlCategories.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ba03fc3e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VBtn,VDivider,VIcon,VSimpleTable})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PdDataTable, PdDataTableHeader, TemplateReturnType } from '@/components/core/PdDataTable';\nimport { ControlAnswerDto, ControlDto } from '@/dtos/tra';\nimport { computed, defineComponent, nextTick, PropType, ref, watch } from '@vue/composition-api';\nimport { mdiDotsVertical, mdiPencil, mdiTrashCan, mdiFloppy, mdiCancel } from '@mdi/js';\nimport { NumberComparison } from '@/core/helpers/sort';\nimport { PdColumnDropDown, PdColumnParameterDropDown, PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { cloneDeep } from 'lodash';\nimport { ApplicationModule } from '@/store';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport i18n from '@/i18n';\nimport { ApiDataSource } from '@/core/datasource';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { ControlsService } from '@/services/tra';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport ControlCategories from './ControlCategories.vue';\n\nexport default defineComponent({\n name: 'Control',\n\n components: {\n PdDataTable,\n PdPopupCard,\n ControlCategories,\n },\n\n props: {\n control: {\n type: Object as PropType,\n required: true,\n },\n\n basePath: {\n type: String,\n required: true,\n },\n\n disabled: {\n type: Boolean,\n default: false,\n },\n\n showControlCategories: {\n type: Boolean,\n default: false,\n },\n\n templateAnswers: {\n type: Array as PropType>,\n default: () => [],\n },\n },\n\n setup(props, { emit }) {\n const inEditMode = ref(props.control.id === 0);\n const currentControlState = ref(cloneDeep(props.control));\n\n const controlText = computed(() => {\n return props.control.translations[ApplicationModule.Language].control;\n });\n\n const controlActions = computed(() => {\n return props.control.translations[ApplicationModule.Language].treatmentActions;\n });\n\n const newControlId = ref(props.control.controlId);\n const newControlText = ref(props.control.translations[ApplicationModule.Language].control);\n const newControlActions = ref(props.control.translations[ApplicationModule.Language].treatmentActions);\n\n const hasTemplateAnswers = computed(() => {\n return props.templateAnswers.length > 0;\n });\n\n watch(\n () => props.control,\n (newValue) => {\n currentControlState.value = cloneDeep(newValue);\n },\n );\n\n watch(\n inEditMode,\n () => {\n emit('in-edit-mode', inEditMode.value);\n },\n { immediate: true },\n );\n\n const disableAll = computed(() => {\n return inEditMode.value === false && props.disabled === true;\n });\n\n const tableHeaders: Array> = [\n {\n id: 'answer',\n value: 'translations',\n text: 'Answer',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n template: (item) => {\n return LanguageTemplate(item, 'answer');\n },\n },\n {\n id: 'value',\n value: 'value',\n text: 'Value',\n align: 'end',\n sort: NumberComparison,\n component: PdColumnDropDown,\n defaultValue: null,\n width: '200px',\n template: (item) => {\n return {\n text: item.value == null ? 'Not Applicable' : item.value,\n } as TemplateReturnType;\n },\n parameters: {\n items: () => {\n const ret: Array = [{ text: 'Not Applicable', value: null }];\n for (let i = 0; i <= 100; ++i) {\n ret.push({ text: `${i}%`, value: i });\n }\n return ret;\n },\n },\n },\n ];\n\n function saveChanges() {\n const newControl = cloneDeep(props.control);\n newControl.controlId = newControlId.value;\n newControl.translations[ApplicationModule.Language].control = newControlText.value;\n newControl.translations[ApplicationModule.Language].treatmentActions = newControlActions.value;\n\n emit('save-changes', newControl, () => {\n inEditMode.value = false;\n });\n }\n\n function cancelChanges() {\n newControlId.value = props.control.controlId;\n newControlText.value = props.control.translations[ApplicationModule.Language].control;\n newControlActions.value = props.control.translations[ApplicationModule.Language].treatmentActions;\n\n if (props.control.id === 0) {\n emit('cancel-changes', props.control);\n }\n inEditMode.value = false;\n }\n\n function deleteControl() {\n PopupMessageService.SetMessage({\n title: i18n.t('confirmation').toString(),\n text: i18n.t('tra.controls.confirmDelete', { controlId: props.control.controlId }).toString(),\n buttons: [\n {\n id: 'yes',\n color: 'warning',\n text: i18n.t('yes').toString(),\n callback: () => {\n emit('delete-control', props.control);\n },\n close: () => true,\n },\n {\n id: 'no',\n text: i18n.t('cancel').toString(),\n close: () => true,\n },\n ],\n });\n }\n\n async function addAnswersFromTemplate(answerGroupId: number) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await ControlsService.AddAnswersFromAnswerGroup(props.control, answerGroupId);\n\n initialized.value = false;\n nextTick(() => {\n initialized.value = true;\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n const initialized = ref(props.control.id === 0);\n function toggleState() {\n if (initialized.value === false) {\n init();\n }\n }\n\n const answersDatasource = new ApiDataSource({ api: `${props.basePath}/${props.control.id}/Answers` });\n\n async function init() {\n initialized.value = true;\n }\n return {\n controlText,\n controlActions,\n\n newControlId,\n newControlText,\n newControlActions,\n\n saveChanges,\n cancelChanges,\n deleteControl,\n\n inEditMode,\n disableAll,\n\n tableHeaders,\n\n toggleState,\n initialized,\n\n answersDatasource,\n hasTemplateAnswers,\n addAnswersFromTemplate,\n\n icons: {\n mdiDotsVertical,\n mdiPencil,\n mdiTrashCan,\n mdiFloppy,\n mdiCancel,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Control.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Control.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Control.vue?vue&type=template&id=0eabd30f&scoped=true&\"\nimport script from \"./Control.vue?vue&type=script&lang=ts&\"\nexport * from \"./Control.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0eabd30f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCard,VCol,VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VIcon,VList,VListItem,VListItemTitle,VMenu,VProgressLinear,VRow,VSkeletonLoader,VTextField,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{staticClass:\"border-top border-bottom mx-0 caption\"},[_c('v-col',[_c('div',{staticClass:\"d-flex align-items-center justify-end\"},[_c('div',{staticClass:\"mr-8\",class:{'text--disabled': _vm.disabled},staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"flex\":\"0 0 0\",\"justify-content\":\"flex-end\",\"white-space\":\"nowrap\"}},[_vm._v(\" Rows per page: \"),_c('v-select',{staticClass:\"my-0 text-caption ml-2\",attrs:{\"dense\":\"\",\"disabled\":_vm.disabled,\"items\":_vm.pageSizeArray,\"hide-details\":\"\"},model:{value:(_vm._itemsPerPage),callback:function ($$v) {_vm._itemsPerPage=$$v},expression:\"_itemsPerPage\"}})],1),_c('div',{class:{'text--disabled': _vm.disabled},staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"flex\":\"0 0 0\",\"justify-content\":\"flex-end\",\"white-space\":\"nowrap\"}},[_vm._v(\" Current Page: \"),_c('v-select',{staticClass:\"my-0 mr-8 ml-2 text-caption\",staticStyle:{\"width\":\"75px\"},attrs:{\"items\":_vm.pageArray,\"dense\":\"\",\"disabled\":_vm.disabled,\"hide-details\":\"\",\"item-text\":\"text\",\"item-value\":\"value\"},model:{value:(_vm._currentPage),callback:function ($$v) {_vm._currentPage=$$v},expression:\"_currentPage\"}})],1),_c('div',{staticClass:\"mx-8 d-flex align-center\",class:{'text--disabled': _vm.disabled}},[_c('span',[_vm._v(_vm._s(_vm.firstItemPosition)+\" - \"+_vm._s(_vm.lastItemPosition)+\" of \"+_vm._s(_vm.totalItems))])]),_c('div',[_c('v-btn',{staticClass:\"mr-4\",attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":_vm.prevPageDisabled || _vm.disabled},on:{\"click\":_vm.prevPage}},[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.mdiChevronLeft)+\" \")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\",\"disabled\":_vm.nextPageDisabled || _vm.disabled},on:{\"click\":_vm.nextPage}},[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.mdiChevronRight)+\" \")])],1)],1)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { IDto } from '@/dtos';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { mdiChevronLeft, mdiChevronRight } from '@mdi/js';\nimport { paginate } from '@/core/helpers/pagination';\n\ninterface SelectionData {\n text: string,\n value: unknown\n}\n\nexport default defineComponent({\n name: 'PdPagination',\n\n components: {},\n\n props: {\n items: {\n type: Array as PropType>,\n required: true,\n },\n\n pagedData: {\n type: Array as PropType>,\n required: true,\n },\n\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n\n pageSize: {\n type: Number,\n default: 10,\n },\n\n pageSizeArray: {\n type: Array as PropType>,\n default: () => {\n return [\n {\n text: '10',\n value: 10,\n },\n {\n text: '50',\n value: 50,\n },\n {\n text: '100',\n value: 100,\n },\n ];\n },\n },\n\n currentPage: {\n type: Number,\n required: false,\n },\n\n },\n\n setup(props, { emit }) {\n const _itemsPerPage = ref(props.pageSize);\n const _currentPage = ref(1);\n const _pagedData = ref>([]);\n\n watch(\n () => props.pageSize,\n (newPageSize) => {\n if (newPageSize !== _itemsPerPage.value) {\n _itemsPerPage.value = newPageSize;\n }\n },\n );\n\n watch(\n _itemsPerPage,\n (newPageSize) => {\n _currentPage.value = 1;\n refreshPagination();\n emit('update:pageSize', newPageSize);\n },\n );\n\n watch(\n () => props.currentPage,\n (value) => {\n if (value == null) {\n _currentPage.value = 1;\n return;\n }\n\n if (typeof (value) === 'string') {\n if (value === '') {\n _currentPage.value = 1;\n return;\n }\n }\n\n if (value * _itemsPerPage.value > props.items.length) {\n _currentPage.value = Math.ceil(props.items.length / _itemsPerPage.value);\n }\n },\n );\n\n watch(\n _currentPage,\n (value) => {\n emit('update:currentPage', value);\n refreshPagination();\n },\n );\n\n watch(\n () => props.items,\n () => {\n if ((_currentPage.value - 1) * _itemsPerPage.value + 1) {\n _currentPage.value = 1;\n }\n refreshPagination();\n },\n { immediate: true },\n );\n\n const pageArray = ref>([]);\n\n const firstItemPosition = computed(() => {\n if (props.items.length === 0) {\n return 0;\n }\n return (_currentPage.value - 1) * _itemsPerPage.value + 1;\n });\n\n const lastItemPosition = computed(() => {\n if (_itemsPerPage.value === null) {\n return props.items.length;\n }\n let num = _currentPage.value * _itemsPerPage.value;\n if (num > props.items.length) {\n num = props.items.length;\n }\n return num;\n });\n\n const totalItems = computed(() => {\n return props.items.length;\n });\n\n const nextPageDisabled = computed(() => {\n return lastItemPosition.value >= props.items.length;\n });\n\n const prevPageDisabled = computed(() => {\n return _currentPage.value === 1;\n });\n\n const lastPage = computed(() => {\n return Math.ceil(props.items.length / _itemsPerPage.value);\n });\n\n watch(\n lastPage,\n (value) => {\n const array = [];\n for (let i = 1; i <= value; ++i) {\n array.push({\n text: i.toString(),\n value: i,\n });\n }\n pageArray.value = array;\n },\n { immediate: true },\n );\n\n function nextPage() {\n _currentPage.value += 1;\n refreshPagination();\n }\n\n function prevPage() {\n _currentPage.value -= 1;\n refreshPagination();\n }\n\n function refreshPagination() {\n _pagedData.value = paginate(props.items, _itemsPerPage.value, _currentPage.value);\n emit('update:pagedData', _pagedData.value);\n }\n\n return {\n firstItemPosition,\n lastItemPosition,\n totalItems,\n nextPageDisabled,\n prevPageDisabled,\n nextPage,\n prevPage,\n _itemsPerPage,\n _currentPage,\n _pagedData,\n pageArray,\n\n icons: {\n mdiChevronLeft,\n mdiChevronRight,\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdPagination.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdPagination.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdPagination.vue?vue&type=template&id=be75c0c8&scoped=true&\"\nimport script from \"./PdPagination.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdPagination.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"be75c0c8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VCol,VIcon,VRow,VSelect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ApiDataSource } from '@/core/datasource';\nimport { AnswerGroupDto, ControlCategoryDto, ControlDto, IControlDto } from '@/dtos/tra';\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport { mdiPlus, mdiExpandAllOutline, mdiCollapseAllOutline } from '@mdi/js';\nimport Control from './Control.vue';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport i18n from '@/i18n';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport { v4 } from 'uuid';\nimport { ApplicationModule, TraModule } from '@/store';\nimport PdPagination from '@/components/core/PdPagination.vue';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport { ControlCategoryControlDto } from '@/dtos/tra/IControlDto';\n\nexport default defineComponent({\n name: 'Controls',\n\n components: {\n Control,\n PdPagination,\n ItemSelector,\n },\n\n props: {\n basePath: {\n type: String,\n required: true,\n },\n\n allowCreation: {\n type: Boolean,\n default: false,\n },\n\n showControlCategories: {\n type: Boolean,\n default: false,\n },\n\n loading: {\n type: Boolean,\n required: false,\n },\n },\n\n setup(props, { emit }) {\n const _loading = ref(true);\n const entity = ApplicationModule.Entity;\n const category = TraModule.CurrentCategory;\n const params = { entity: entity?.id, category: category?.id };\n\n const datasource = new ApiDataSource({ api: props.basePath });\n const controlCategories = new ApiDataSource({ api: `masterplans/${params.entity}/tra/${params.category}/ControlCategories` });\n\n watch(\n _loading,\n (l) => {\n emit('update:loading', l);\n },\n );\n\n const openPanels = ref(null);\n const inEditMode = ref(false);\n let nextId = 0;\n let data: Array = [];\n const filteredData = ref>([]);\n const pagedData = ref>([]);\n const newItem = ref(null);\n const currentPage = ref(1);\n const searchField = ref('');\n const templateAnswers = ref>([]);\n\n const showCategoriesSelector = ref(false);\n\n const disabled = computed(() => {\n return inEditMode.value || newItem.value != null;\n });\n\n function editChange(inEdit: boolean) {\n inEditMode.value = inEdit;\n }\n\n function addNewControl() {\n if (props.allowCreation === false) {\n return;\n }\n\n newItem.value = {\n controlId: `Control ${nextId}`,\n uuid: v4(),\n id: 0,\n categories: [],\n isArchived: false,\n translations: {\n [ApplicationModule.Language]: {\n control: 'New Control',\n treatmentActions: '',\n },\n },\n };\n const lastItem = pagedData.value.length;\n openPanels.value = lastItem;\n }\n\n let debounceTimer: unknown;\n watch(\n searchField,\n (value) => {\n // cancel pending call\n clearTimeout(debounceTimer as number);\n\n // delay new call 500ms\n debounceTimer = setTimeout(() => {\n if (value != null) {\n filterData(value.trim().toLowerCase());\n } else {\n filterData('');\n }\n }, 500);\n },\n );\n\n function filterData(search: string) {\n if (!search) {\n filteredData.value = data;\n return;\n }\n\n filteredData.value = data.filter((c) => {\n if (c.controlId.toLowerCase().includes(search)) {\n return true;\n }\n\n for (const t in c.translations) {\n if (c.translations[t].control.toLowerCase().includes(search) ||\n c.translations[t].treatmentActions.toLowerCase().includes(search)) {\n return true;\n }\n }\n\n for (let i = 0; i < c.categories.length; ++i) {\n const t = c.categories[i].category;\n if (t.trim().toLowerCase().includes(search)) {\n return true;\n }\n }\n\n return false;\n });\n }\n\n async function saveControlChanges(newControl: IControlDto, successulCallback: () => void) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const resp = await datasource.update(newControl);\n\n data.every(c => {\n if (c.uuid === newControl.uuid) {\n c.isArchived = resp.isArchived;\n c.controlId = resp.controlId;\n c.translations = resp.translations;\n c.categories = resp.categories;\n c.id = resp.id;\n return false;\n }\n\n return true;\n });\n\n pagedData.value.every(c => {\n if (c.uuid === newControl.uuid) {\n c.isArchived = resp.isArchived;\n c.controlId = resp.controlId;\n c.translations = resp.translations;\n c.categories = resp.categories;\n c.id = resp.id;\n return false;\n }\n\n return true;\n });\n\n refreshNextId();\n\n successulCallback();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function cancelChanges(control: IControlDto) {\n if (control.id === 0) {\n data.shift();\n }\n inEditMode.value = false;\n }\n\n function refreshNextId() {\n nextId = 0;\n data.forEach((c) => {\n let text = c.controlId;\n if (text.indexOf('Control') === 0) {\n text = text.substring(8);\n }\n const num = parseInt(text);\n if (!isNaN(num) && num >= nextId) {\n nextId = num + 1;\n }\n });\n if (nextId === 0) {\n nextId = data.length + 1;\n }\n }\n\n async function deleteControl(control: IControlDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await datasource.delete(control);\n for (let i = 0; i < data.length; ++i) {\n if (data[i].uuid === control.uuid) {\n data.splice(i, 1);\n break;\n }\n }\n\n refreshNextId();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n // function expandAll() {\n // openPanels.value = null;\n // for (let i = 0; i < pagedData.value.length; ++i) {\n // openPanels.value.push(i);\n // }\n // }\n\n // function collapseAll() {\n // openPanels.value = [];\n // }\n\n async function saveNewControl(control: IControlDto) {\n if (newItem.value != null) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const resp = await datasource.create(control);\n\n data.push(resp);\n currentPage.value = 999999;\n\n newItem.value = null;\n\n refreshNextId();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n }\n\n function cancelNewControl() {\n newItem.value = null;\n }\n\n let controlToAddCategoryTo: ControlDto | null = null;\n const excludedCategories = ref>([]);\n\n function showCategorySelector(control: ControlDto) {\n controlToAddCategoryTo = control;\n\n excludedCategories.value = control.categories.map(c => c.categoryId);\n showCategoriesSelector.value = true;\n }\n\n function removeCategory(control: ControlDto, category: ControlCategoryControlDto) {\n for (let i = 0; i < control.categories.length; ++i) {\n if (control.categories[i].categoryId === category.categoryId) {\n control.categories.splice(i, 1);\n return;\n }\n }\n }\n\n async function addCategoryToControl(items: Array) {\n if (controlToAddCategoryTo == null) {\n return;\n }\n\n const add: Array = [];\n\n for (let i = 0; i < items.length; ++i) {\n try {\n const cat = await controlCategories.getById(items[i].id);\n if (cat == null) {\n console.error(`Category id \"${items[i].id}\" not found... :(`);\n continue;\n }\n\n add.push({\n id: 0,\n categoryId: items[i].id,\n category: LanguageTemplate(cat, 'name').text,\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n }\n }\n\n controlToAddCategoryTo.categories.push(...add);\n showCategoriesSelector.value = false;\n }\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n data = await datasource.get();\n\n const answersDatasource = new ApiDataSource({ api: `masterplans/${params.entity}/tra/${params.category}/AnswerGroups` });\n const answers = await answersDatasource.get();\n\n answers.forEach(ag => {\n templateAnswers.value.push({ id: ag.id, text: LanguageTemplate(ag, 'name').text });\n });\n\n filterData('');\n refreshNextId();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n _loading,\n data,\n pagedData,\n currentPage,\n\n openPanels,\n addNewControl,\n saveControlChanges,\n cancelChanges,\n deleteControl,\n\n newItem,\n saveNewControl,\n cancelNewControl,\n\n editChange,\n inEditMode,\n\n disabled,\n\n // expandAll,\n // collapseAll,\n\n searchField,\n filteredData,\n\n templateAnswers,\n\n showCategoriesSelector,\n showCategorySelector,\n removeCategory,\n addCategoryToControl,\n controlCategories,\n excludedCategories,\n\n icons: {\n mdiPlus,\n mdiExpandAllOutline,\n mdiCollapseAllOutline,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Controls.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Controls.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Controls.vue?vue&type=template&id=0accc184&scoped=true&\"\nimport script from \"./Controls.vue?vue&type=script&lang=ts&\"\nexport * from \"./Controls.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0accc184\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VExpansionPanels,VIcon,VTextField})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { checkTraCategory } from '../TraComponentGuards';\nimport Controls from '@/views/tra/controls/Controls.vue';\nimport icons from '@/core/icons';\nimport router from '@/router';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport i18n from '@/i18n';\nimport { AssessmentsService } from '@/services/tra';\nimport { AxiosError } from 'axios';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\n\nexport default defineComponent({\n name: 'AssessmentControlsView',\n\n components: {\n PdFormBase,\n Controls,\n },\n\n props: {\n assessmentId: {\n type: String,\n required: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n let params;\n try { params = checkTraCategory(); } catch { return; }\n\n const basePath = `masterplans/${params.entity}/tra/${params.category}/Assessments/${props.assessmentId}/Controls`;\n\n function returnToAssessment() {\n router.push({ name: 'tra.assessment', params: { assessmentId: props.assessmentId } });\n }\n\n const title = ref('');\n (async function init() {\n if (props.assessmentId == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n const assessment = await AssessmentsService.GetSimpleAssessment(parseInt(props.assessmentId));\n title.value = assessment.name;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n loading,\n basePath,\n\n title,\n\n returnToAssessment,\n\n icons: {\n return: icons.return,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentControlsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentControlsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentControlsView.vue?vue&type=template&id=6581ffea&scoped=true&\"\nimport script from \"./AssessmentControlsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentControlsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6581ffea\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.title,\"subtitle\":_vm.$t('tra.assessments.risksTitle'),\"loading\":_vm.loading}},[_c('risks',{attrs:{\"risks-url\":_vm.risksUrl,\"controls-url\":_vm.controlsUrl},scopedSlots:_vm._u([{key:\"buttons\",fn:function(){return [_c('v-btn',{staticClass:\"text-none d-inline-block mr-4\",attrs:{\"small\":\"\"},on:{\"click\":_vm.returnToAssessment}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.return)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('return'))+\" \")],1)]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":_vm.tableOptions,\"sort\":\"name\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"},scopedSlots:_vm._u([{key:\"PopupEditorTitle\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tra.risks.newRiskTitle'))+\" \")]},proxy:true},{key:\"customTableActions\",fn:function(){return [_vm._t(\"buttons\")]},proxy:true},{key:\"PopupEditorContent\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('pd-current-language-field',{attrs:{\"item\":item,\"field\":\"name\",\"label\":_vm.$t('tra.risks.name').toString()}}),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"mr-4\"},[_c('pd-number-field',{attrs:{\"label\":_vm.$t('tra.risks.defaultLikelihood'),\"max\":_vm.maxLikelihood,\"min\":1},model:{value:(item.defaultLikelihood),callback:function ($$v) {_vm.$set(item, \"defaultLikelihood\", $$v)},expression:\"item.defaultLikelihood\"}})],1),_c('v-col',[_c('pd-number-field',{attrs:{\"label\":_vm.$t('tra.risks.minLikelihood'),\"max\":_vm.maxLikelihood,\"min\":1},model:{value:(item.minLikelihood),callback:function ($$v) {_vm.$set(item, \"minLikelihood\", $$v)},expression:\"item.minLikelihood\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"mr-4\"},[_c('pd-number-field',{attrs:{\"label\":_vm.$t('tra.risks.defaultImpact'),\"max\":_vm.maxImpact,\"min\":1},model:{value:(item.defaultImpact),callback:function ($$v) {_vm.$set(item, \"defaultImpact\", $$v)},expression:\"item.defaultImpact\"}})],1),_c('v-col',[_c('pd-number-field',{attrs:{\"label\":_vm.$t('tra.risks.minImpact'),\"max\":_vm.maxImpact,\"min\":1},model:{value:(item.minImpact),callback:function ($$v) {_vm.$set(item, \"minImpact\", $$v)},expression:\"item.minImpact\"}})],1)],1),(_vm.showRiskCategories)?_c('v-row',[_c('v-col',[_c('risk-categories-selector',{attrs:{\"categories-datasource\":_vm.categoriesDatasource},model:{value:(item.categories),callback:function ($$v) {_vm.$set(item, \"categories\", $$v)},expression:\"item.categories\"}})],1)],1):_vm._e()]}},{key:\"details\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('risk-controls',{attrs:{\"item\":item,\"controls\":_vm.controls,\"base-url\":_vm.risksUrl}})]}}],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-text-field',{attrs:{\"value\":_vm.translation,\"label\":_vm.label},on:{\"input\":_vm.change}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\nimport { ITranslatableDto } from '@/dtos/IDto';\nimport { ApplicationModule } from '@/store';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'PdCurrentLanguageField',\n\n components: {\n\n },\n\n props: {\n item: {\n type: Object as PropType>,\n required: true,\n },\n\n field: {\n type: String,\n required: true,\n },\n\n label: {\n type: String,\n },\n },\n\n setup(props) {\n const translation = computed(() => {\n return props.item.translations[ApplicationModule.Language][props.field];\n });\n\n function change(newValue: string) {\n props.item.translations[ApplicationModule.Language][props.field] = newValue;\n }\n\n return {\n translation,\n change,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdCurrentLanguageField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdCurrentLanguageField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdCurrentLanguageField.vue?vue&type=template&id=52257dc0&scoped=true&\"\nimport script from \"./PdCurrentLanguageField.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdCurrentLanguageField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"52257dc0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"width\":\"800px\"}},[(_vm.showRiskCategorySelector)?_c('tree-item-selector',{attrs:{\"visible\":\"\",\"datasource\":_vm.categoriesDatasource,\"select-multiple\":\"\",\"translatable\":\"\",\"exclude\":_vm.value},on:{\"select\":_vm.addRiskCategories,\"cancel\":function($event){_vm.showRiskCategorySelector = false}}}):_vm._e(),_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.visibleData,\"row-actions\":_vm.rowActions,\"options\":{pagination: false},\"height\":\"300px\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { ApiDataSource } from '@/core/datasource';\nimport { RiskCategoryDto } from '@/dtos/tra';\nimport { PdDataTable, PdDataTableHeader, PdDataTableRowAction } from '@/components/core/PdDataTable';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { mdiPlus, mdiTrashCan } from '@mdi/js';\nimport PdTreeView from '@/components/core/PdTreeView/PdTreeView.vue';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport TreeItemSelector from '@/components/all/TreeItemSelector.vue';\nimport { IDto } from '@/dtos';\n\nexport default defineComponent({\n name: 'RiskCategoriesSelector',\n\n components: {\n PdDataTable,\n PdTreeView,\n PdPopupCard,\n TreeItemSelector,\n },\n\n props: {\n value: {\n type: Array as PropType>,\n required: true,\n },\n\n categoriesDatasource: {\n type: Object as PropType>,\n required: true,\n },\n },\n\n setup(props) {\n const loaded = ref(false);\n const visibleData = ref>([]);\n const categories = ref>([]);\n const showRiskCategorySelector = ref(false);\n const riskCategorySelectorItems = ref>([]);\n\n watch(\n () => props.value,\n () => {\n updateData();\n },\n { immediate: true },\n );\n const headers: Array> = [\n {\n id: 'detailedName',\n value: 'detailedName',\n text: i18n.t('tra.risks.riskCategories.name').toString(),\n actions: [\n {\n id: 'add',\n icon: mdiPlus,\n title: i18n.t('add').toString(),\n callback: () => {\n showRiskCategorySelector.value = true;\n },\n },\n ],\n },\n ];\n\n const rowActions: Array = [\n {\n id: 'remove',\n text: i18n.t('remove').toString(),\n icon: mdiTrashCan,\n action: async (item) => {\n for (let i = 0; i < props.value.length; ++i) {\n if (item.id === props.value[i]) {\n props.value.splice(i, 1);\n return null;\n }\n }\n return null;\n },\n },\n ];\n\n async function updateData() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n visibleData.value = [];\n props.value.forEach(async c => {\n const categ = await props.categoriesDatasource.getById(c);\n if (categ == null) {\n console.error('Could not find Category with ID ' + c);\n return;\n }\n\n visibleData.value.push(categ as RiskCategoryDto);\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n loaded.value = true;\n }\n }\n\n function addRiskCategories(categories: Array) {\n categories.forEach(c => {\n props.value.push(c.id);\n });\n\n showRiskCategorySelector.value = false;\n }\n\n return {\n headers,\n rowActions,\n visibleData,\n loaded,\n\n categories,\n\n showRiskCategorySelector,\n riskCategorySelectorItems,\n\n addRiskCategories,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RiskCategoriesSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RiskCategoriesSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RiskCategoriesSelector.vue?vue&type=template&id=1e77ad1e&scoped=true&\"\nimport script from \"./RiskCategoriesSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./RiskCategoriesSelector.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1e77ad1e\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-data-table',{staticClass:\"ml-10 mb-12\",attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":_vm.tableOptions},on:{\"data-changed\":_vm.dataChanged},scopedSlots:_vm._u([{key:\"PopupEditorTitle\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(_vm.getRiskControlEditorTitle(item))+\" \")]}},{key:\"PopupEditorContent\",fn:function(ref){\nvar item = ref.item;\nvar save = ref.save;\nreturn [(item.id === 0)?[_c('control-selector',{staticStyle:{\"width\":\"800px\"},attrs:{\"controls\":_vm.availableControls,\"item\":item,\"save\":save}})]:[_c('pd-number-field',{attrs:{\"label\":_vm.$t('tra.riskControls.impactReduction')},model:{value:(item.impactReduction),callback:function ($$v) {_vm.$set(item, \"impactReduction\", $$v)},expression:\"item.impactReduction\"}}),_c('pd-number-field',{attrs:{\"label\":_vm.$t('tra.riskControls.likelihoodReduction')},model:{value:(item.likelihoodReduction),callback:function ($$v) {_vm.$set(item, \"likelihoodReduction\", $$v)},expression:\"item.likelihoodReduction\"}})]]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"options\":{pagination: false},\"datasource\":_vm.controls,\"search\":\"\",\"height\":\"400px\",\"selected-item\":_vm.selectedControl},on:{\"update:selectedItem\":function($event){_vm.selectedControl=$event},\"update:selected-item\":function($event){_vm.selectedControl=$event},\"dblclick\":_vm.save}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport { SimpleControlDto, IItemWithControlDto } from '@/dtos/tra';\nimport i18n from '@/i18n';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\n\nconst headers: Array> = [\n {\n id: 'controlId',\n value: 'controlId',\n text: i18n.t('tra.controls.controlId').toString(),\n width: '150px',\n },\n\n {\n id: 'control',\n value: 'control',\n text: i18n.t('tra.controls.control').toString(),\n },\n {\n id: 'categories',\n value: ' categories',\n text: i18n.t('tra.controls.categories').toString(),\n },\n];\n\nexport default defineComponent({\n name: 'ControlSelector',\n\n components: {\n PdPopupCard,\n PdDataTable,\n },\n\n props: {\n controls: {\n type: Array as PropType>,\n required: true,\n },\n\n item: {\n type: Object as PropType,\n required: true,\n },\n\n save: {\n type: Function as PropType<() => void>,\n required: false,\n default: () => () => { return 0; },\n },\n },\n\n setup(props, { emit }) {\n const selectedControl = ref(null);\n\n function selectControl() {\n if (selectedControl.value == null) {\n return;\n }\n\n emit('add', selectedControl.value);\n }\n\n function cancelSelection() {\n emit('cancel');\n }\n\n watch(\n selectedControl,\n (newControl) => {\n if (newControl == null) {\n props.item.controlText = undefined;\n props.item.controlId = 0;\n } else {\n props.item.controlId = newControl.id;\n }\n },\n { immediate: true },\n );\n\n return {\n headers,\n\n selectControl,\n selectedControl,\n\n cancelSelection,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ControlSelector.vue?vue&type=template&id=45c252dc&scoped=true&\"\nimport script from \"./ControlSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./ControlSelector.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"45c252dc\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PdDataTable, PdDataTableEditMode, PdDataTableHeader, PdDataTableOptions } from '@/components/core/PdDataTable';\nimport PdColumnNumber from '@/components/core/PdDataTable/columns/PdColumnNumber.vue';\nimport { NumberComparison } from '@/core/helpers/sort';\nimport PdNumberField from '@/components/core/PdNumberField.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { IRiskControlDto, IRiskDto, ISimpleControlDto, RiskControlDto } from '@/dtos/tra/index';\nimport i18n from '@/i18n';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport ControlSelector from './ControlSelector.vue';\n\nexport default defineComponent({\n name: 'RiskControls',\n\n components: {\n PdDataTable,\n ControlSelector,\n PdNumberField,\n },\n\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n\n baseUrl: {\n type: String,\n required: true,\n },\n\n controls: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props) {\n const datasource = new ApiDataSource({ api: `${props.baseUrl}/${props.item.id}/RiskControls` });\n\n const availableControls = ref>([]);\n\n const tableOptions: PdDataTableOptions = {\n editable: {\n mode: PdDataTableEditMode.Popup,\n add: true,\n edit: true,\n delete: true,\n },\n pagination: false,\n };\n\n watch(\n () => props.controls,\n dataChanged,\n { immediate: true },\n );\n\n async function dataChanged() {\n try {\n const existing = (await datasource.data()).map(i => i.controlId);\n availableControls.value = props.controls.filter(i => !existing.some(ec => ec === i.id));\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n }\n }\n\n const headers: Array> = [\n {\n id: 'controlId',\n value: 'controlId',\n text: '',\n visible: false,\n defaultValue: 0,\n },\n {\n id: 'riskId',\n value: 'riskId',\n text: '',\n visible: false,\n defaultValue: props.item.id,\n },\n {\n id: 'controlText',\n value: 'controlText',\n text: i18n.t('tra.riskControls.control').toString(),\n editable: false,\n template: (item) => {\n return { text: item.controlText || '' };\n },\n },\n\n {\n id: 'impactReduction',\n value: 'impactReduction',\n text: i18n.t('tra.riskControls.impactReduction').toString(),\n sort: NumberComparison,\n component: PdColumnNumber,\n width: '150px',\n defaultValue: 0,\n },\n\n {\n id: 'likelihoodReduction',\n value: 'likelihoodReduction',\n text: i18n.t('tra.riskControls.likelihoodReduction').toString(),\n sort: NumberComparison,\n component: PdColumnNumber,\n width: '150px',\n defaultValue: 0,\n },\n ];\n\n function getRiskControlEditorTitle(control: IRiskControlDto) {\n if (control.id === 0) {\n return i18n.t('tra.riskControls.newTitle', { risk: LanguageTemplate(props.item, 'name').text });\n }\n\n return i18n.t('tra.riskControls.editTitle');\n }\n\n return {\n datasource,\n tableOptions,\n headers,\n\n availableControls,\n\n dataChanged,\n\n getRiskControlEditorTitle,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RiskControls.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RiskControls.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RiskControls.vue?vue&type=template&id=5b3eb184&scoped=true&\"\nimport script from \"./RiskControls.vue?vue&type=script&lang=ts&\"\nexport * from \"./RiskControls.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5b3eb184\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdCurrentLanguageField from '@/components/core/PdCurrentLanguageField.vue';\nimport PdNumberField from '@/components/core/PdNumberField.vue';\nimport { PdDataTable, PdDataTableEditMode, PdDataTableHeader, PdDataTableOptions } from '@/components/core/PdDataTable';\nimport { PdColumnNumber, PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { ApiDataSource } from '@/core/datasource';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { IRiskDto, ISimpleControlDto, RiskDto } from '@/dtos/tra';\nimport i18n from '@/i18n';\nimport router from '@/router';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { RisksService } from '@/services/tra';\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport RiskCategoriesSelector from './RiskCategoriesSelector.vue';\nimport RiskControls from './RiskControls.vue';\nimport { NumberComparison } from '@/core/helpers/sort';\nimport { ApplicationModule, TraModule } from '@/store';\n\nexport default defineComponent({\n name: 'RisksView',\n\n components: {\n PdDataTable,\n PdCurrentLanguageField,\n PdNumberField,\n RiskCategoriesSelector,\n RiskControls,\n },\n\n props: {\n risksUrl: {\n type: String,\n required: true,\n },\n\n controlsUrl: {\n type: String,\n required: true,\n },\n\n showRiskCategories: {\n type: Boolean,\n default: false,\n },\n\n allowCreation: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n const entity = ApplicationModule.Entity;\n const category = TraModule.CurrentCategory;\n\n const params = { entity: entity?.id, category: category?.id };\n\n const tableOptions = ref>({\n editable: {\n mode: PdDataTableEditMode.Popup,\n edit: true,\n add: props.allowCreation,\n },\n hasDetails: false,\n });\n\n const datasource = new ApiDataSource({ api: props.risksUrl });\n const categoriesDatasource = new ApiDataSource({ api: `masterplans/${params.entity}/tra/${params.category}/RiskCategories` });\n\n const controlsDatasource = new ApiDataSource({ api: props.controlsUrl });\n\n const maxLikelihood = ref(5);\n const maxImpact = ref(5);\n\n const controls = ref>([]);\n\n watch(\n controls,\n () => {\n tableOptions.value.hasDetails = controls.value.length > 0;\n },\n );\n\n const headers: Array> = [\n {\n id: 'name',\n text: i18n.t('tra.risks.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n template: (item) => {\n return LanguageTemplate(item as IRiskDto, 'name');\n },\n defaultValue: { 'en-US': { name: 'New Risk' } },\n },\n {\n id: 'defaultLikelihood',\n text: i18n.t('tra.risks.defaultLikelihood').toString(),\n value: 'defaultLikelihood',\n align: 'center',\n component: PdColumnNumber,\n width: '100px',\n sort: NumberComparison,\n defaultValue: 5,\n },\n {\n id: 'defaultImpact',\n text: i18n.t('tra.risks.defaultImpact').toString(),\n value: 'defaultImpact',\n align: 'center',\n component: PdColumnNumber,\n width: '100px',\n sort: NumberComparison,\n defaultValue: 5,\n },\n {\n id: 'minLikelihood',\n text: i18n.t('tra.risks.minLikelihood').toString(),\n value: 'minLikelihood',\n align: 'center',\n component: PdColumnNumber,\n width: '100px',\n sort: NumberComparison,\n defaultValue: 1,\n },\n {\n id: 'minImpact',\n text: i18n.t('tra.risks.minImpact').toString(),\n value: 'minImpact',\n align: 'center',\n component: PdColumnNumber,\n width: '100px',\n sort: NumberComparison,\n defaultValue: 1,\n },\n {\n id: 'categories',\n text: '',\n value: 'categories',\n visible: false,\n defaultValue: [],\n template: () => { return { text: '' }; },\n },\n ];\n\n (async function init() {\n loading.value = true;\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n await categoriesDatasource.get();\n\n controls.value = await controlsDatasource.get();\n\n const maxValues: { impact: number, likelihood: number } = await RisksService.GetMaxLikelihoodImpactValues();\n headers[1].defaultValue = maxValues.likelihood;\n headers[2].defaultValue = maxValues.impact;\n\n maxLikelihood.value = maxValues.likelihood;\n maxImpact.value = maxValues.impact;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n router.go(-1);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n return {\n loading,\n datasource,\n headers,\n\n maxLikelihood,\n maxImpact,\n\n categoriesDatasource,\n\n tableOptions,\n controls,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Risks.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Risks.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Risks.vue?vue&type=template&id=4f2c53ee&scoped=true&\"\nimport script from \"./Risks.vue?vue&type=script&lang=ts&\"\nexport * from \"./Risks.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4f2c53ee\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VRow})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { checkTraCategory } from '../TraComponentGuards';\nimport Risks from '@/views/tra/risks/Risks.vue';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport i18n from '@/i18n';\nimport { AssessmentsService } from '@/services/tra';\nimport router from '@/router';\nimport icons from '@/core/icons';\n\nexport default defineComponent({\n name: 'AssessmentRisksView',\n\n components: {\n PdFormBase,\n Risks,\n },\n\n props: {\n assessmentId: {\n type: String,\n required: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n let params;\n try { params = checkTraCategory(); } catch { return; }\n\n const title = ref('');\n\n const risksUrl = `masterplans/${params.entity}/tra/${params.category}/Assessments/${props.assessmentId}/Risks`;\n const controlsUrl = `masterplans/${params.entity}/tra/${params.category}/Assessments/${props.assessmentId}/Controls/Simple`;\n\n function returnToAssessment() {\n router.push({ name: 'tra.assessment', params: { assessmentId: props.assessmentId } });\n }\n\n (async function init() {\n if (props.assessmentId == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n const assessment = await AssessmentsService.GetSimpleAssessment(parseInt(props.assessmentId));\n title.value = assessment.name;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n loading,\n title,\n risksUrl,\n controlsUrl,\n returnToAssessment,\n\n icons: {\n return: icons.return,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentRisksView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentRisksView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentRisksView.vue?vue&type=template&id=71a2d47f&scoped=true&\"\nimport script from \"./AssessmentRisksView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentRisksView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71a2d47f\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.loading)?_c('pd-form-base',{attrs:{\"title\":_vm.$t('tra.assessments.title')}},[(_vm.showExportDialog)?_c('item-selector',{attrs:{\"width\":\"1500px\",\"datasource\":_vm.datasource,\"headers\":_vm.exportHeaders,\"select-multiple\":\"\",\"show-select-all\":\"\"},on:{\"select\":_vm.exportSelectedAssessments,\"cancel\":function($event){_vm.showExportDialog = false}}}):_vm._e(),_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"search\":\"\"},on:{\"dblclick\":_vm.openRiskAssessment},scopedSlots:_vm._u([{key:\"customTableActions\",fn:function(){return [_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.addNewAssessment}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.mdiPlus)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \")],1),_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":function($event){_vm.showExportDialog = true}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.export)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1)]},proxy:true}],null,false,865169120)})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IDto } from '..';\nimport { AssessmentQuestionnaireDto } from './AssessmentQuestionnaireDto';\n\nexport enum AssessmentStatus\n{\n NotStarted = 0,\n Assessment = 1,\n AssessmentReview = 2,\n AssessmentFinished = 3,\n Treatment = 4,\n TreatmentReview = 5,\n TreatmentFinished = 6,\n Acceptance = 7,\n Finished = 10\n}\n\nexport interface AssessmentDto extends IDto{\n isArchived: boolean\n\n name: string\n status: AssessmentStatus\n\n locationId: number | null\n partitionId: number | null\n\n riskAppetiteId: number\n\n questionnaires: Array\n}\n\nexport interface SimpleAssessmentDto extends IDto{\n name: string\n status: AssessmentStatus\n\n locationText: string\n partitionText: string\n\n riskAppetite: string\n}\n","import { IDto } from '..';\nimport { SimpleUserDto } from '../SimpleUserDto';\n\nexport enum AssessmentQuestionnaireUserType {\n QuestionnaireDataEntry = 1,\n QuestionnaireApprovalPath = 2,\n TreatmentDataEntry = 3,\n TreatmentApprovalPath = 4,\n}\n\nexport enum AssessmentQuestionnaireStatus\n{\n NotStarted = 0,\n QuestionnaireDataEntry = 1,\n QuestionnaireApprovalPath = 2,\n QuestionnaireFinished = 3,\n TreatmentDataEntry = 4,\n TreatmentApprovalPath = 5,\n TreatmentFinished = 6,\n}\n\nexport enum AssessmentQuestionnaireUserStatus\n{\n Pending = 0,\n On = 1,\n Finished = 2,\n}\n\nexport interface AssessmentQuestionnaireUserDto extends IDto {\n type: AssessmentQuestionnaireUserType,\n user: SimpleUserDto\n order: number,\n allowFinishing: boolean,\n status: AssessmentQuestionnaireUserStatus\n}\n\nexport interface AssessmentQuestionnaireDto extends IDto{\n questionnaireId: number\n\n status: AssessmentQuestionnaireStatus\n\n questionnaireMessage: string\n\n treatmentMessage: string\n\n needsTreatment: boolean\n\n users: Array\n}\n","import { RiskScaleDto } from '.';\nimport { IDto } from '..';\n\nexport enum RiskControlDropType\n{\n Absolute = 1,\n Relative = 2,\n}\n\nexport interface RiskMethodologyDto extends IDto{\n riskCalculationEquation: string\n minRiskValue: number\n maxRiskValue: number\n interpolateRiskValues: boolean\n dropType: RiskControlDropType\n riskAppetiteId: number | null,\n}\n\nexport interface RiskMethodologyChartDataDto extends IDto{\n xAxis: Array\n yAxis: Array\n data: Array>\n\n scales: Array\n}\n","import { TemplateReturnType } from '@/components/core/PdDataTable';\nimport { AssessmentDto, AssessmentStatus, SimpleAssessmentDto } from '@/dtos/tra';\nimport i18n from '@/i18n';\n\nexport function AssessmentStatusTemplate(item: AssessmentDto | SimpleAssessmentDto): TemplateReturnType {\n const ret: TemplateReturnType = {\n text: '',\n };\n\n switch (item.status) {\n case AssessmentStatus.NotStarted:\n ret.text = i18n.t('tra.assessments.statuses.notStarted').toString();\n break;\n case AssessmentStatus.Assessment:\n ret.text = i18n.t('tra.assessments.statuses.assessment').toString();\n break;\n case AssessmentStatus.AssessmentReview:\n ret.text = i18n.t('tra.assessments.statuses.assessmentReview').toString();\n break;\n case AssessmentStatus.AssessmentFinished:\n ret.text = i18n.t('tra.assessments.statuses.assessmentFinished').toString();\n break;\n case AssessmentStatus.Treatment:\n ret.text = i18n.t('tra.assessments.statuses.treatment').toString();\n break;\n case AssessmentStatus.TreatmentReview:\n ret.text = i18n.t('tra.assessments.statuses.treatmentReview').toString();\n break;\n case AssessmentStatus.TreatmentFinished:\n ret.text = i18n.t('tra.assessments.statuses.treatmentFinished').toString();\n break;\n case AssessmentStatus.Acceptance:\n ret.text = i18n.t('tra.assessments.statuses.acceptance').toString();\n break;\n case AssessmentStatus.Finished:\n ret.text = i18n.t('tra.assessments.statuses.finished').toString();\n break;\n\n default:\n ret.text = `Unknown Status ${item.status}`;\n }\n\n return ret;\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-popup-card',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.selectAssessmentsTitle'))+\" \")]},proxy:true},{key:\"default\",fn:function(){return undefined},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport PdPopupCard from '../core/PdPopupCard.vue';\n\nexport default defineComponent({\n name: 'AssessmentsSelector',\n\n components: {\n PdPopupCard,\n\n },\n\n props: {\n\n },\n\n setup() {\n return {};\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentsSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentsSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentsSelector.vue?vue&type=template&id=4c6ff57c&scoped=true&\"\nimport script from \"./AssessmentsSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentsSelector.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4c6ff57c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport { SimpleAssessmentDto } from '@/dtos/tra';\nimport i18n from '@/i18n';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { checkTraCategory, TraComponent } from '../TraComponentGuards';\nimport { mdiPlus } from '@mdi/js';\nimport router from '@/router';\nimport { AssessmentStatusTemplate } from './AssessmentStatusTemplate';\nimport icons from '@/core/icons';\nimport AssessmentsSelector from '@/components/tra/AssessmentsSelector.vue';\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport { AxiosError } from 'axios';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AssessmentsService } from '@/services/tra';\nimport DownloadService from '@/services/DownloadService';\n\nconst headers: Array> = [\n {\n id: 'name',\n value: 'name',\n text: i18n.t('tra.assessments.name').toString(),\n width: '400px',\n },\n {\n id: 'for',\n value: 'for',\n text: i18n.t('tra.assessments.relevantAsset').toString(),\n template: (item) => {\n if (item.locationText) {\n return { text: i18n.t('tra.assessments.location').toString() + ': ' + item.locationText };\n }\n\n if (item.partitionText) {\n return { text: i18n.t('tra.assessments.partition').toString() + ': ' + item.partitionText };\n }\n\n return { text: '' };\n },\n },\n {\n id: 'status',\n value: 'status',\n text: i18n.t('tra.assessments.status').toString(),\n width: '300px',\n template: (item) => {\n return AssessmentStatusTemplate(item);\n },\n },\n {\n id: 'riskAppetite',\n value: 'riskAppetite',\n text: i18n.t('tra.assessments.riskAppetite').toString(),\n width: '200px',\n },\n];\n\nconst exportHeaders: Array> = [\n {\n id: 'name',\n value: 'name',\n text: i18n.t('tra.assessments.name').toString(),\n },\n {\n id: 'for',\n value: 'for',\n text: i18n.t('tra.assessments.relevantAsset').toString(),\n template: (item) => {\n if (item.locationText) {\n return { text: i18n.t('tra.assessments.location').toString() + ': ' + item.locationText };\n }\n\n if (item.partitionText) {\n return { text: i18n.t('tra.assessments.partition').toString() + ': ' + item.partitionText };\n }\n\n return { text: '' };\n },\n },\n {\n id: 'status',\n value: 'status',\n text: i18n.t('tra.assessments.status').toString(),\n width: '300px',\n template: (item) => {\n return AssessmentStatusTemplate(item);\n },\n },\n];\n\nexport default defineComponent({\n name: 'AssessmentsListView',\n\n components: {\n PdFormBase,\n PdDataTable,\n AssessmentsSelector,\n ItemSelector,\n },\n\n setup() {\n const loading = ref(false);\n let params: TraComponent;\n try { params = checkTraCategory(); } catch { return { loading: true }; }\n\n const datasource = new ApiDataSource({ api: `masterplans/${params.entity}/tra/${params.category}/Assessments/Simple` });\n\n const showExportDialog = ref(false);\n\n function addNewAssessment() {\n router.push({ name: 'tra.assessment', params: { assessmentId: 'new' } });\n }\n\n function openRiskAssessment(item: SimpleAssessmentDto | null) {\n if (item == null) {\n return;\n }\n\n router.push({ name: 'tra.assessment', params: { assessmentId: item.id.toString() } });\n }\n\n async function exportSelectedAssessments(assessments: Array) {\n if (assessments.length === 0) {\n return;\n }\n\n var ar = assessments.map(i => i.id);\n\n showExportDialog.value = false;\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('exporting').toString());\n try {\n var data = await AssessmentsService.DownloadAssessmentsRisks(params.category, ar);\n\n DownloadService.DownloadFile(data);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n headers,\n datasource,\n loading,\n\n addNewAssessment,\n openRiskAssessment,\n\n showExportDialog,\n exportHeaders,\n exportSelectedAssessments,\n\n icons: {\n mdiPlus,\n export: icons.export,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentsListView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentsListView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentsListView.vue?vue&type=template&id=21326eda&scoped=true&\"\nimport script from \"./AssessmentsListView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentsListView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"21326eda\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.title,\"loading\":_vm.loading}},[_c('tree-item-selector',{attrs:{\"visible\":_vm.showPartitionSelector,\"datasource\":_vm.partitionsDatasource,\"headers\":_vm.partitionSelectorHeaders,\"translatable\":\"\"},on:{\"select\":_vm.selectPartition,\"cancel\":function($event){_vm.showPartitionSelector = false}}}),_c('item-selector',{attrs:{\"visible\":_vm.showLocationSelector,\"datasource\":_vm.locationsDatasource,\"headers\":_vm.locationSelectorHeaders},on:{\"select\":_vm.selectLocation,\"cancel\":function($event){_vm.showLocationSelector = false}}}),_c('div',{staticClass:\"mb-4\"},[(_vm.showMenu)?_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\",\"close-on-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"},on:{\"dblclick\":function($event){$event.stopPropagation();}}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('menu'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.menu)+\" \")])],1)]}}],null,false,1494264713)},[_c('v-list',{attrs:{\"dense\":\"\"}},[(_vm.showEditDeleteButton)?_c('pd-menu-list-item',{attrs:{\"text\":_vm.$t('edit.edit'),\"icon\":_vm.icons.edit},on:{\"click\":_vm.editAssessment}}):_vm._e(),(_vm.showEditDeleteButton)?_c('v-divider'):_vm._e(),(!_vm.isNew)?_c('pd-menu-list-item',{attrs:{\"icon\":_vm.icons.controls,\"text\":_vm.$t('tra.assessments.controlsButton')},on:{\"click\":_vm.goToAssessmentControls}}):_vm._e(),(!_vm.isNew)?_c('pd-menu-list-item',{attrs:{\"icon\":_vm.icons.risks,\"text\":_vm.$t('tra.assessments.risksButton')},on:{\"click\":_vm.goToAssessmentRisks}}):_vm._e(),(_vm.showAssessmentReviewButton)?_c('pd-menu-list-item',{attrs:{\"icon\":_vm.icons.review,\"text\":_vm.$t('tra.assessments.reviewAnswersButton')},on:{\"click\":_vm.goToAssessmentQuestionnairesReview}}):_vm._e(),(_vm.showTreatmentReviewButton)?_c('pd-menu-list-item',{attrs:{\"icon\":_vm.icons.review,\"text\":_vm.$t('tra.assessments.reviewTreatmentsButton')},on:{\"click\":_vm.goToAssessmentTreatmentsReview}}):_vm._e(),(_vm.showEditDeleteButton)?_c('v-divider'):_vm._e(),(_vm.showEditDeleteButton)?_c('pd-menu-list-item',{attrs:{\"text\":_vm.$t('edit.delete'),\"icon\":_vm.icons.delete,\"color\":\"#cc0000\"},on:{\"click\":_vm.deleteAssessment}}):_vm._e()],1)],1):_vm._e(),(_vm.showReturnButton)?_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"},on:{\"dblclick\":function($event){$event.stopPropagation();},\"click\":_vm.returnToList}},[_vm._v(\" \"+_vm._s(_vm.$t('return'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.return)+\" \")])],1):_vm._e(),(_vm.showSaveCancelButtons)?[_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"color\":\"success\",\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.saveChanges}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.save)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('edit.save'))+\" \")],1),_c('v-btn',{staticClass:\"mr-2 text-none px-2\",attrs:{\"color\":\"error\",\"depressed\":\"\",\"small\":\"\"},on:{\"click\":_vm.discardChanges}},[_c('v-icon',{staticClass:\"mr-1\",attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.discardChanges)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('edit.discardChanges'))+\" \")],1)]:_vm._e()],2),(!_vm.isNew)?_c('v-text-field',{attrs:{\"value\":_vm.assessmentStatus,\"readonly\":\"\",\"label\":_vm.$t('tra.assessments.status'),\"disabled\":\"\"}}):_vm._e(),_c('v-text-field',{attrs:{\"label\":_vm.$t('tra.assessments.name'),\"disabled\":!_vm.inEditMode},model:{value:(_vm.assessment.name),callback:function ($$v) {_vm.$set(_vm.assessment, \"name\", $$v)},expression:\"assessment.name\"}}),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticClass:\"shrink\"},[_c('v-select',{staticStyle:{\"width\":\"200px\"},attrs:{\"label\":_vm.$t('tra.assessments.assetType'),\"items\":_vm.assetsTypes,\"hide-details\":\"\",\"disabled\":!_vm.inEditMode},model:{value:(_vm.assetType),callback:function ($$v) {_vm.assetType=$$v},expression:\"assetType\"}})],1),_c('v-col',[(_vm.showPartitionField)?_c('v-text-field',{attrs:{\"value\":_vm.partitionText,\"readonly\":\"\",\"label\":_vm.$t('tra.assessments.assetTypes.partition'),\"hide-details\":\"\",\"disabled\":!_vm.inEditMode},on:{\"click\":function($event){_vm.showPartitionSelector = true}}}):_vm._e(),(_vm.showLocationField)?_c('v-text-field',{attrs:{\"value\":_vm.locationText,\"readonly\":\"\",\"label\":_vm.$t('tra.assessments.assetTypes.location'),\"hide-details\":\"\",\"disabled\":!_vm.inEditMode},on:{\"click\":function($event){_vm.showLocationSelector = true}}}):_vm._e()],1)],1),_c('v-select',{attrs:{\"label\":_vm.$t('tra.riskMethodology.riskAppetite'),\"items\":_vm.riskScalesItems,\"hide-details\":\"\",\"disabled\":!_vm.inEditMode},model:{value:(_vm.assessment.riskAppetiteId),callback:function ($$v) {_vm.$set(_vm.assessment, \"riskAppetiteId\", $$v)},expression:\"assessment.riskAppetiteId\"}}),_c('assessment-questionnaires',{attrs:{\"assessment\":_vm.assessment,\"entity-id\":_vm.entityId,\"tra-category-id\":_vm.traCategoryId,\"in-edit-mode\":_vm.inEditMode},on:{\"refresh\":_vm.loadAssessment}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-list-item',{on:{\"click\":function($event){return _vm.$emit('click')}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"left\":\"\",\"color\":_vm.color}},[_vm._v(\" \"+_vm._s(_vm.icon)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.text)+\" \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'PdMenuListItem',\n\n props: {\n icon: {\n type: String,\n required: false,\n },\n\n color: {\n type: String,\n required: false,\n },\n\n text: {\n type: [String, Object],\n required: true,\n },\n },\n\n setup() {\n return {};\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdMenuListItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdMenuListItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PdMenuListItem.vue?vue&type=template&id=0e8e05b7&scoped=true&\"\nimport script from \"./PdMenuListItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./PdMenuListItem.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0e8e05b7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VIcon,VListItem,VListItemIcon,VListItemTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mt-8\"},[(_vm.questionnaireSelector)?_c('item-selector',{attrs:{\"visible\":\"\",\"datasource\":_vm.questionnaires,\"exclude\":_vm.excludeQuestionnaires},on:{\"select\":_vm.addQuestionnaire,\"cancel\":function($event){_vm.questionnaireSelector = false}}}):_vm._e(),_c('span',{staticClass:\"text-h6\"},[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.questionnaires.title'))+\" \")]),(_vm.inEditMode && _vm.allowAdd)?_c('v-btn',{staticClass:\"text-none\",attrs:{\"depressed\":\"\",\"small\":\"\"},on:{\"click\":function($event){_vm.questionnaireSelector = true}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.plus)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \")],1):_vm._e(),(!_vm.inEditMode)?_c('v-divider',{staticClass:\"mt-2\"}):_vm._e(),_c('div',{staticClass:\"my-2\"},_vm._l((_vm.assessment.questionnaires),function(aq){return _c('assessment-questionnaire-line',{key:aq.questionnaireId,attrs:{\"item\":aq,\"questionnaires\":_vm.questionnaires,\"in-edit-mode\":_vm.inEditMode,\"assessment-id\":_vm.assessment.id,\"assessment-status\":_vm.assessment.status},on:{\"remove\":_vm.removeQuestionnaire,\"deploy-questionnaire\":function($event){return _vm.deployQuestionnaire(aq)},\"abort-questionnaire\":function($event){return _vm.abortQuestionnaire(aq)},\"deploy-treatment\":function($event){return _vm.deployTreatment(aq)},\"abort-treatment\":function($event){return _vm.abortTreatment(aq)}}})}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"my-2 mb-16 text-subtitle-2\"},[(_vm.showUserSelector)?_c('user-selector',{attrs:{\"datasource\":_vm.users,\"exclude\":_vm.excludedUsers},on:{\"select\":_vm.addSelectedUser,\"cancel\":function($event){_vm.showUserSelector = false}}}):_vm._e(),(_vm.inEditMode)?_c('div',{staticClass:\"questionnaire-line\",on:{\"click\":_vm.removeQuestionnaire}},[_c('v-icon',{attrs:{\"left\":\"\",\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.minus)+\" \")]),_vm._v(\" \"+_vm._s(_vm.text)+\" \")],1):[_c('div',[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.minus)+\" \")]),_c('span',{staticClass:\"text-subtitle-1 font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.text)+\" (\"+_vm._s(_vm.status)+\") \")])],1),_c('div',{staticClass:\"my-2\"},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.questionnaires.controlsQuestionnaires'))+\" \"),_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\",\"close-on-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"text-none mr-2\",attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"dblclick\":function($event){$event.stopPropagation();}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.menu)+\" \")])],1)]}}])},[_c('v-list',{attrs:{\"dense\":\"\"}},[(_vm.showQuestionnaireDeployButton)?_c('pd-menu-list-item',{attrs:{\"text\":_vm.$t('tra.assessments.deploy'),\"icon\":_vm.icons.deploy},on:{\"click\":_vm.deployQuestionnaire}}):_vm._e(),(_vm.showQuestionnaireOpenButton)?_c('pd-menu-list-item',{attrs:{\"text\":_vm.$t('tra.assessments.open'),\"icon\":_vm.icons.open},on:{\"click\":_vm.openQuestionnaire}}):_vm._e(),(_vm.showQuestionnaireAbortButton)?_c('pd-menu-list-item',{attrs:{\"text\":_vm.$t('tra.assessments.abort'),\"icon\":_vm.icons.abort},on:{\"click\":_vm.abortQuestionnaire}}):_vm._e()],1)],1)],1),_c('v-row',[_c('v-col',{staticStyle:{\"max-width\":\"600px\"},attrs:{\"xs\":\"12\",\"sm\":\"12\",\"md\":\"6\"}},[_c('assessment-questionnaire-users',{attrs:{\"data\":_vm.questionnaireDataEntryUsers,\"type\":_vm.questionnairesDataEntryType,\"assessment-id\":_vm.assessmentId,\"questionnaire-id\":_vm.item.id,\"questionnaire-status\":_vm.item.status},on:{\"add-user\":function($event){return _vm.addQuestionnaireUser(_vm.questionnairesDataEntryType)}}})],1),_c('v-col',{staticStyle:{\"max-width\":\"600px\"},attrs:{\"xs\":\"12\",\"md\":\"12\",\"lg\":\"6\"}},[_c('assessment-questionnaire-users',{attrs:{\"data\":_vm.questionnaireApprovalPathUsers,\"type\":_vm.questionnairesApprovalPathType,\"assessment-id\":_vm.assessmentId,\"questionnaire-id\":_vm.item.id,\"questionnaire-status\":_vm.item.status},on:{\"add-user\":function($event){return _vm.addQuestionnaireUser(_vm.questionnairesApprovalPathType)}}})],1)],1)],1),(_vm.showTreatmentQuestionnaires)?[_c('v-divider'),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.questionnaires.controlsTreatment'))+\" \")]),_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\",\"close-on-click\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"text-none mr-2\",attrs:{\"small\":\"\",\"icon\":\"\"},on:{\"dblclick\":function($event){$event.stopPropagation();}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icons.menu)+\" \")])],1)]}}],null,false,936534355)},[_c('v-list',{attrs:{\"dense\":\"\"}},[(_vm.showTreatmentDeployButton)?_c('pd-menu-list-item',{attrs:{\"text\":_vm.$t('tra.assessments.deploy'),\"icon\":_vm.icons.deploy},on:{\"click\":_vm.deployTreatment}}):_vm._e(),(_vm.showTreatmentOpenButton)?_c('pd-menu-list-item',{attrs:{\"text\":_vm.$t('tra.assessments.open'),\"icon\":_vm.icons.open},on:{\"click\":_vm.openTreatment}}):_vm._e(),(_vm.showTreatmentAbortButton)?_c('pd-menu-list-item',{attrs:{\"text\":_vm.$t('tra.assessments.abort'),\"icon\":_vm.icons.abort},on:{\"click\":_vm.abortTreatment}}):_vm._e()],1)],1),_c('v-row',[_c('v-col',{staticStyle:{\"max-width\":\"600px\"},attrs:{\"xs\":\"12\",\"sm\":\"12\",\"md\":\"6\"}},[_c('assessment-questionnaire-users',{attrs:{\"data\":_vm.treatmentDataEntryUsers,\"type\":_vm.treatmentDataEntryType,\"assessment-id\":_vm.assessmentId,\"questionnaire-id\":_vm.item.id,\"questionnaire-status\":_vm.item.status},on:{\"add-user\":function($event){return _vm.addQuestionnaireUser(_vm.treatmentsDataEntryType)}}})],1),_c('v-col',{staticStyle:{\"max-width\":\"600px\"},attrs:{\"xs\":\"12\",\"md\":\"12\",\"lg\":\"6\"}},[_c('assessment-questionnaire-users',{attrs:{\"data\":_vm.treatmentApprovalPathUsers,\"type\":_vm.treatmentApprovalPathType,\"assessment-id\":_vm.assessmentId,\"questionnaire-id\":_vm.item.id,\"questionnaire-status\":_vm.item.status},on:{\"add-user\":function($event){return _vm.addQuestionnaireUser(_vm.treatmentApprovalPathType)}}})],1)],1)]:_vm._e(),_c('v-divider')]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.dataEntry)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.questionnaires.questionnaireDataEntry'))+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.questionnaires.questionnaireApprovalPath'))+\" \")]),(_vm.allowAdd)?_c('v-btn',{attrs:{\"icon\":\"\",\"small\":\"\"},on:{\"click\":_vm.addUser}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.plus)+\" \")])],1):_vm._e(),_c('v-simple-table',{attrs:{\"dense\":\"\"}},[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-center\",staticStyle:{\"min-width\":\"75px\"}},[(_vm.dataEntry)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.questionnaires.allowFinishing'))+\" \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.questionnaires.order'))+\" \")])]),_c('th',{staticClass:\"text-left pl-2\",staticStyle:{\"width\":\"100%\"}},[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.questionnaires.userInfo'))+\" \")])])]),_c('tbody',_vm._l((_vm.data),function(u,i){return _c('assessment-questionnaire-user-line',{key:u.uuid,attrs:{\"user\":u,\"first\":i === 0,\"last\":i === _vm.data.length - 1,\"questionnaire-status\":_vm.questionnaireStatus},on:{\"change-allow-finishing\":_vm.changeAllowFinishing,\"move-up\":_vm.moveUp,\"move-down\":_vm.moveDown,\"remove\":_vm.removeUser}})}),1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{class:_vm.getRowClass},[_c('td',{staticClass:\"text-center\"},[(_vm.dataEntry)?[_c('input',{attrs:{\"type\":\"checkbox\",\"disabled\":!_vm.allowChangeFinishing},domProps:{\"checked\":_vm.user.allowFinishing},on:{\"click\":function($event){$event.preventDefault();return _vm.changeAllowFinishing($event)}}})]:[(_vm.allowEdit)?_c('v-icon',{staticClass:\"mb-1\",staticStyle:{\"cursor\":\"pointer\"},style:({visibility: _vm.first ? 'hidden' : ''}),attrs:{\"small\":\"\"},on:{\"click\":_vm.moveUp}},[_vm._v(\" \"+_vm._s(_vm.icons.up)+\" \")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.user.order)+\" \"),(_vm.allowEdit)?_c('v-icon',{staticClass:\"mb-1\",staticStyle:{\"cursor\":\"pointer\"},style:({visibility: _vm.last ? 'hidden' : ''}),attrs:{\"small\":\"\"},on:{\"click\":_vm.moveDown}},[_vm._v(\" \"+_vm._s(_vm.icons.down)+\" \")]):_vm._e()]],2),_c('td',{staticClass:\"pl-2\"},[(_vm.allowEdit)?_c('v-icon',{staticClass:\"mb-1\",staticStyle:{\"cursor\":\"pointer\"},attrs:{\"small\":\"\"},on:{\"click\":_vm.remove}},[_vm._v(\" \"+_vm._s(_vm.icons.remove)+\" \")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.user.user.info)+\" \"),(!_vm.dataEntry)?void 0:_vm._e()],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { AssessmentQuestionnaireUserDto, AssessmentQuestionnaireUserType } from '@/dtos/tra';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport { cloneDeep } from 'lodash';\nimport { mdiArrowUp, mdiArrowDown } from '@mdi/js';\nimport icons from '@/core/icons';\nimport PopupMessageService, { PopupMessageButtonNo, PopupMessageButtonYes } from '@/services/PopupMessageService';\nimport i18n from '@/i18n';\nimport { AssessmentQuestionnaireStatus, AssessmentQuestionnaireUserStatus } from '@/dtos/tra/AssessmentQuestionnaireDto';\n\nexport default defineComponent({\n name: 'AssessmentQuestionnaireUserLine',\n\n components: {\n\n },\n\n props: {\n user: {\n type: Object as PropType,\n required: true,\n },\n\n questionnaireStatus: {\n type: Number as PropType,\n required: true,\n },\n\n first: {\n type: Boolean,\n default: false,\n },\n\n last: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const dataEntry = computed(() => {\n return props.user.type === AssessmentQuestionnaireUserType.QuestionnaireDataEntry ||\n props.user.type === AssessmentQuestionnaireUserType.TreatmentDataEntry;\n });\n\n const allowEdit = computed(() => {\n return props.user.status === AssessmentQuestionnaireUserStatus.Pending;\n });\n\n const allowChangeFinishing = computed(() => {\n return props.user.status !== AssessmentQuestionnaireUserStatus.Finished;\n });\n\n function changeAllowFinishing(event: Event) {\n if (allowChangeFinishing.value !== true) {\n return;\n }\n\n const value = (event.target as HTMLInputElement).checked;\n\n const user = cloneDeep(props.user);\n\n user.allowFinishing = value;\n emit('change-allow-finishing', user);\n }\n\n function moveUp() {\n if (allowEdit.value === true) {\n emit('move-up', props.user);\n }\n }\n\n function moveDown() {\n if (allowEdit.value === true) {\n emit('move-down', props.user);\n }\n }\n\n function remove() {\n if (allowEdit.value === true) {\n PopupMessageService.SetMessage({\n title: i18n.t('confirmation'),\n text: i18n.t('tra.assessments.questionnaires.removeUserMessage', { user: props.user.user.info }),\n buttons: [\n PopupMessageButtonYes(() => emit('remove', props.user)),\n PopupMessageButtonNo(),\n ],\n });\n }\n }\n\n const getRowClass = computed(() => {\n const ret = {\n pending: false,\n on: false,\n finished: false,\n };\n\n if (props.questionnaireStatus === AssessmentQuestionnaireStatus.NotStarted) {\n return ret;\n }\n\n if (props.questionnaireStatus >= AssessmentQuestionnaireStatus.QuestionnaireFinished &&\n props.user.type <= AssessmentQuestionnaireUserType.QuestionnaireApprovalPath) {\n ret.finished = true;\n return ret;\n }\n\n if (props.questionnaireStatus >= AssessmentQuestionnaireStatus.TreatmentFinished &&\n props.user.type <= AssessmentQuestionnaireUserType.TreatmentApprovalPath) {\n ret.finished = true;\n return ret;\n }\n\n if (props.questionnaireStatus === AssessmentQuestionnaireStatus.QuestionnaireApprovalPath &&\n props.user.type > AssessmentQuestionnaireUserType.QuestionnaireApprovalPath) {\n return ret;\n }\n\n if (props.questionnaireStatus === AssessmentQuestionnaireStatus.QuestionnaireFinished &&\n props.user.type > AssessmentQuestionnaireUserType.QuestionnaireApprovalPath) {\n return ret;\n }\n\n if (props.questionnaireStatus === AssessmentQuestionnaireStatus.TreatmentDataEntry &&\n props.user.type > AssessmentQuestionnaireUserType.TreatmentDataEntry) {\n return ret;\n }\n\n if (props.questionnaireStatus === AssessmentQuestionnaireStatus.TreatmentApprovalPath &&\n props.user.type > AssessmentQuestionnaireUserType.TreatmentApprovalPath) {\n return ret;\n }\n\n switch (props.user.status) {\n case AssessmentQuestionnaireUserStatus.Pending:\n ret.pending = true;\n break;\n case AssessmentQuestionnaireUserStatus.On:\n ret.on = true;\n break;\n case AssessmentQuestionnaireUserStatus.Finished:\n ret.finished = true;\n break;\n }\n\n return ret;\n });\n\n return {\n dataEntry,\n\n allowEdit,\n allowChangeFinishing,\n\n changeAllowFinishing,\n\n moveUp,\n moveDown,\n remove,\n\n getRowClass,\n\n icons: {\n up: mdiArrowUp,\n down: mdiArrowDown,\n remove: icons.remove,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireUserLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireUserLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentQuestionnaireUserLine.vue?vue&type=template&id=c21b5ab4&scoped=true&\"\nimport script from \"./AssessmentQuestionnaireUserLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentQuestionnaireUserLine.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AssessmentQuestionnaireUserLine.vue?vue&type=style&index=0&id=c21b5ab4&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c21b5ab4\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport icons from '@/core/icons';\nimport { AssessmentQuestionnaireUserDto, AssessmentQuestionnaireUserType } from '@/dtos/tra';\nimport { AssessmentQuestionnaireStatus } from '@/dtos/tra/AssessmentQuestionnaireDto';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AssessmentsService } from '@/services/tra';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { v4 } from 'uuid';\nimport AssessmentQuestionnaireUserLine from './AssessmentQuestionnaireUserLine.vue';\n\nexport default defineComponent({\n name: 'AssessmentQuestionnaireUsers',\n\n components: {\n AssessmentQuestionnaireUserLine,\n },\n\n props: {\n data: {\n type: Array as PropType>,\n required: true,\n },\n\n type: {\n type: Number as PropType,\n required: true,\n },\n\n assessmentId: {\n type: Number,\n required: true,\n },\n\n questionnaireId: {\n type: Number,\n required: true,\n },\n\n questionnaireStatus: {\n type: Number as PropType,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const dataEntry = computed(() => {\n return props.type === AssessmentQuestionnaireUserType.QuestionnaireDataEntry ||\n props.type === AssessmentQuestionnaireUserType.TreatmentDataEntry;\n });\n\n const allowAdd = computed(() => {\n return (props.type === AssessmentQuestionnaireUserType.QuestionnaireDataEntry && props.questionnaireStatus <= AssessmentQuestionnaireStatus.QuestionnaireDataEntry) ||\n (props.type === AssessmentQuestionnaireUserType.QuestionnaireApprovalPath && props.questionnaireStatus <= AssessmentQuestionnaireStatus.QuestionnaireApprovalPath) ||\n (props.type === AssessmentQuestionnaireUserType.TreatmentDataEntry && props.questionnaireStatus >= AssessmentQuestionnaireStatus.QuestionnaireFinished && props.questionnaireStatus <= AssessmentQuestionnaireStatus.TreatmentDataEntry) ||\n (props.type === AssessmentQuestionnaireUserType.TreatmentApprovalPath && props.questionnaireStatus >= AssessmentQuestionnaireStatus.QuestionnaireFinished && props.questionnaireStatus <= AssessmentQuestionnaireStatus.TreatmentApprovalPath);\n });\n\n async function changeAllowFinishing(user: AssessmentQuestionnaireUserDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const edited = await AssessmentsService.ChangeAllowFinishingForUser(props.assessmentId, props.questionnaireId, user);\n\n props.data.every(u => {\n if (u.uuid === user.uuid) {\n u.allowFinishing = edited.allowFinishing;\n u.uuid = v4();\n return false;\n }\n\n return true;\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function moveUp(user: AssessmentQuestionnaireUserDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await AssessmentsService.MoveUserUp(props.assessmentId, props.questionnaireId, user);\n\n for (let i = 1; i < props.data.length; ++i) {\n if (props.data[i].uuid === user.uuid) {\n props.data[i - 1].order += 1;\n props.data[i - 1].uuid = v4();\n\n props.data[i].order -= 1;\n props.data[i].uuid = v4();\n\n const temp = props.data[i];\n props.data.splice(i, 1, props.data[i - 1]);\n props.data.splice(i - 1, 1, temp);\n\n return;\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function moveDown(user: AssessmentQuestionnaireUserDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await AssessmentsService.MoveUserDown(props.assessmentId, props.questionnaireId, user);\n\n for (let i = 0; i < props.data.length - 1; ++i) {\n if (props.data[i].uuid === user.uuid) {\n props.data[i + 1].order -= 1;\n props.data[i + 1].uuid = v4();\n\n props.data[i].order += 1;\n props.data[i].uuid = v4();\n\n const temp = props.data[i];\n props.data.splice(i, 1, props.data[i + 1]);\n props.data.splice(i + 1, 1, temp);\n\n return;\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function addUser() {\n emit('add-user', props.type);\n }\n\n async function removeUser(user: AssessmentQuestionnaireUserDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await AssessmentsService.RemoveAssessmentQuestionnaireUser(props.assessmentId, props.questionnaireId, user);\n\n let found = false;\n for (let i = 0; i < props.data.length; ++i) {\n if (props.data[i].uuid === user.uuid) {\n props.data.splice(i, 1);\n found = true;\n\n if (user.type === AssessmentQuestionnaireUserType.QuestionnaireDataEntry ||\n user.type === AssessmentQuestionnaireUserType.TreatmentDataEntry) {\n return;\n } else {\n i--;\n continue;\n }\n }\n\n if (found) {\n props.data[i].order -= 1;\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n dataEntry,\n changeAllowFinishing,\n moveUp,\n moveDown,\n removeUser,\n allowAdd,\n addUser,\n\n icons: {\n minus: icons.minus,\n plus: icons.plus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireUsers.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireUsers.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentQuestionnaireUsers.vue?vue&type=template&id=e49dae08&scoped=true&\"\nimport script from \"./AssessmentQuestionnaireUsers.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentQuestionnaireUsers.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e49dae08\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\ninstallComponents(component, {VBtn,VIcon,VSimpleTable})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport UserSelector from '@/components/all/UserSelector.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport icons from '@/core/icons';\nimport { SimpleUserDto } from '@/dtos/SimpleUserDto';\nimport { AssessmentQuestionnaireDto, AssessmentQuestionnaireUserDto, AssessmentQuestionnaireUserType, AssessmentStatus, QuestionnaireDto } from '@/dtos/tra';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DatasourcesService from '@/services/DatasourcesService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService, { PopupMessageButtonNo, PopupMessageButtonYes } from '@/services/PopupMessageService';\nimport { AssessmentsService } from '@/services/tra';\nimport { mdiBookOpen } from '@mdi/js';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { v4 } from 'uuid';\nimport AssessmentQuestionnaireUsers from './AssessmentQuestionnaireUsers.vue';\nimport PdMenuListItem from '@/components/core/PdMenuListItem.vue';\nimport { AssessmentQuestionnaireStatus, AssessmentQuestionnaireUserStatus } from '@/dtos/tra/AssessmentQuestionnaireDto';\nimport router from '@/router';\nimport { TraModule } from '@/store';\nimport { TranslateResult } from 'vue-i18n';\n\nexport default defineComponent({\n name: 'AssessmentQuestionnaireLine',\n\n components: {\n UserSelector,\n AssessmentQuestionnaireUsers,\n PdMenuListItem,\n },\n\n props: {\n questionnaires: {\n type: Object as PropType>,\n required: true,\n },\n\n item: {\n type: Object as PropType,\n required: true,\n },\n\n inEditMode: {\n type: Boolean,\n default: false,\n },\n\n assessmentId: {\n type: Number,\n required: true,\n },\n\n assessmentStatus: {\n type: Number as PropType,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const text = ref('');\n\n const questionnairesDataEntryType = AssessmentQuestionnaireUserType.QuestionnaireDataEntry;\n const questionnairesApprovalPathType = AssessmentQuestionnaireUserType.QuestionnaireApprovalPath;\n const treatmentDataEntryType = AssessmentQuestionnaireUserType.TreatmentDataEntry;\n const treatmentApprovalPathType = AssessmentQuestionnaireUserType.TreatmentApprovalPath;\n\n const status = computed(() => {\n if (props.item.needsTreatment === false && props.item.status === AssessmentQuestionnaireStatus.TreatmentFinished) {\n return i18n.t('tra.assessments.questionnaires.status.noTreatmentRequired');\n }\n\n switch (props.item.status) {\n case AssessmentQuestionnaireStatus.NotStarted:\n return i18n.t('tra.assessments.questionnaires.status.notStarted');\n case AssessmentQuestionnaireStatus.QuestionnaireDataEntry:\n return i18n.t('tra.assessments.questionnaires.status.questionnaireDataEntry');\n case AssessmentQuestionnaireStatus.QuestionnaireApprovalPath:\n return i18n.t('tra.assessments.questionnaires.status.questionnaireApprovalPath');\n case AssessmentQuestionnaireStatus.QuestionnaireFinished:\n return i18n.t('tra.assessments.questionnaires.status.questionnaireFinished');\n case AssessmentQuestionnaireStatus.TreatmentDataEntry:\n return i18n.t('tra.assessments.questionnaires.status.treatmentDataEntry');\n case AssessmentQuestionnaireStatus.TreatmentApprovalPath:\n return i18n.t('tra.assessments.questionnaires.status.treatmentApprovalPath');\n case AssessmentQuestionnaireStatus.TreatmentFinished:\n return i18n.t('tra.assessments.questionnaires.status.treatmentFinished');\n default:\n return 'Unknown Status ' + props.item.status;\n };\n });\n\n const users = DatasourcesService.Users;\n const showUserSelector = ref(false);\n const excludedUsers = ref>([]);\n\n const questionnaireDataEntryUsers = ref>([]);\n const questionnaireApprovalPathUsers = ref>([]);\n const treatmentDataEntryUsers = ref>([]);\n const treatmentApprovalPathUsers = ref>([]);\n\n let addUserType: AssessmentQuestionnaireUserType = AssessmentQuestionnaireUserType.QuestionnaireDataEntry;\n\n const showQuestionnaireOpenButton = computed(() => {\n return props.item.status > AssessmentQuestionnaireStatus.NotStarted;\n });\n\n const showQuestionnaireDeployButton = computed(() => {\n return props.item.status === AssessmentQuestionnaireStatus.NotStarted;\n });\n\n const showQuestionnaireAbortButton = computed(() => {\n return props.item.status > AssessmentQuestionnaireStatus.NotStarted &&\n props.item.status <= AssessmentQuestionnaireStatus.QuestionnaireFinished;\n });\n\n const showTreatmentOpenButton = computed(() => {\n return props.item.status >= AssessmentQuestionnaireStatus.TreatmentDataEntry;\n });\n\n const showTreatmentDeployButton = computed(() => {\n return props.item.status === AssessmentQuestionnaireStatus.QuestionnaireFinished;\n });\n\n const showTreatmentAbortButton = computed(() => {\n return props.item.status >= AssessmentQuestionnaireStatus.TreatmentDataEntry &&\n props.item.status <= AssessmentQuestionnaireStatus.TreatmentFinished;\n });\n\n const showTreatmentQuestionnaires = computed(() => {\n return props.assessmentStatus >= AssessmentStatus.AssessmentFinished && props.item.needsTreatment === true;\n });\n\n function removeQuestionnaire() {\n PopupMessageService.SetMessage({\n title: i18n.t('confirm'),\n text: i18n.t('tra.assessments.questionnaires.removeConfirmation', { questionnaire: text.value }),\n buttons: [\n PopupMessageButtonYes(() => {\n emit('remove', props.item);\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n async function addSelectedUser(user: SimpleUserDto | null) {\n if (user == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n const u = await AssessmentsService.AddAssessmentQuestionnaireUser(props.assessmentId, props.item, {\n id: 0,\n type: addUserType,\n user: user,\n order: 0,\n allowFinishing: false,\n status: AssessmentQuestionnaireUserStatus.Pending,\n });\n\n u.uuid = v4();\n\n switch (addUserType) {\n case AssessmentQuestionnaireUserType.QuestionnaireDataEntry:\n questionnaireDataEntryUsers.value.push(u);\n break;\n case AssessmentQuestionnaireUserType.QuestionnaireApprovalPath:\n questionnaireApprovalPathUsers.value.push(u);\n break;\n case AssessmentQuestionnaireUserType.TreatmentDataEntry:\n treatmentDataEntryUsers.value.push(u);\n break;\n case AssessmentQuestionnaireUserType.TreatmentApprovalPath:\n treatmentApprovalPathUsers.value.push(u);\n break;\n default:\n throw new Error(`User Type: ${addUserType} not known... :(`);\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n\n showUserSelector.value = false;\n }\n\n function addUser(type: AssessmentQuestionnaireUserType) {\n if (type === AssessmentQuestionnaireUserType.QuestionnaireDataEntry) {\n excludedUsers.value = questionnaireDataEntryUsers.value.map(u => u.user);\n } else if (type === AssessmentQuestionnaireUserType.QuestionnaireApprovalPath) {\n excludedUsers.value = questionnaireApprovalPathUsers.value.map(u => u.user);\n } else if (type === AssessmentQuestionnaireUserType.TreatmentDataEntry) {\n excludedUsers.value = treatmentDataEntryUsers.value.map(u => u.user);\n } else if (type === AssessmentQuestionnaireUserType.TreatmentApprovalPath) {\n excludedUsers.value = treatmentApprovalPathUsers.value.map(u => u.user);\n } else {\n throw new Error(`Unknown user type... ${type}`);\n }\n\n showUserSelector.value = true;\n addUserType = type;\n }\n\n function addQuestionnaireUser(type: AssessmentQuestionnaireUserType) {\n addUser(type);\n }\n\n async function deployQuestionnaire() {\n emit('deploy-questionnaire');\n }\n\n async function deployTreatment() {\n emit('deploy-treatment');\n }\n\n function openQuestionnaire() {\n const category = TraModule.CurrentCategory;\n if (category == null) {\n ErrorHandlingService.Handle(new Error('TRA Category is not set... Redirecting to TRA Category selection!') as AxiosError);\n router.push({ name: 'tra.categories' });\n throw new Error();\n }\n\n router.push({\n name: 'tra.assessment.questionnaire',\n params: {\n traCategoryId: category.id.toString(),\n assessmentId: props.assessmentId.toString(),\n questionnaireId: props.item.id.toString(),\n },\n });\n }\n\n function openTreatment() {\n const category = TraModule.CurrentCategory;\n if (category == null) {\n ErrorHandlingService.Handle(new Error('TRA Category is not set... Redirecting to TRA Category selection!') as AxiosError);\n router.push({ name: 'tra.categories' });\n throw new Error();\n }\n\n router.push({\n name: 'tra.assessment.treatment',\n params: {\n traCategoryId: category.id.toString(),\n assessmentId: props.assessmentId.toString(),\n questionnaireId: props.item.id.toString(),\n },\n });\n }\n\n function abortQuestionnaire() {\n PopupMessageService.SetMessage({\n title: i18n.t('confirm'),\n text: i18n.t('tra.assessments.confirmAbort'),\n buttons: [\n PopupMessageButtonYes(() => {\n emit('abort-questionnaire');\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n function abortTreatment() {\n PopupMessageService.SetMessage({\n title: i18n.t('confirm'),\n text: i18n.t('tra.assessments.confirmAbort'),\n buttons: [\n PopupMessageButtonYes(() => {\n emit('abort-treatment');\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n watch(\n () => props.item.id,\n async () => {\n const busy = BusyIndicatorService.SetBusy('Loading Questionnaire Users...');\n try {\n if (props.item.id > 0) {\n const users = await AssessmentsService.GetAssessmentQuestionnaireUsers(props.assessmentId, props.item);\n\n users.forEach(u => {\n u.uuid = v4();\n if (u.type === AssessmentQuestionnaireUserType.QuestionnaireDataEntry) {\n questionnaireDataEntryUsers.value.push(u);\n } else if (u.type === AssessmentQuestionnaireUserType.QuestionnaireApprovalPath) {\n questionnaireApprovalPathUsers.value.push(u);\n } else if (u.type === AssessmentQuestionnaireUserType.TreatmentDataEntry) {\n treatmentDataEntryUsers.value.push(u);\n } else if (u.type === AssessmentQuestionnaireUserType.TreatmentApprovalPath) {\n treatmentApprovalPathUsers.value.push(u);\n } else {\n throw new Error(`Unknown AssessmentQuestionnaireUserType ${u.type}`);\n }\n });\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n { immediate: true },\n );\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy('Loading Questionnaire name...');\n try {\n const q = await props.questionnaires.getById(props.item.questionnaireId);\n\n if (q != null) {\n text.value = LanguageTemplate(q, 'name').text;\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n text,\n status,\n\n removeQuestionnaire,\n\n users,\n\n questionnairesDataEntryType,\n questionnairesApprovalPathType,\n treatmentDataEntryType,\n treatmentApprovalPathType,\n\n showUserSelector,\n excludedUsers,\n addSelectedUser,\n\n addQuestionnaireUser,\n\n questionnaireDataEntryUsers,\n questionnaireApprovalPathUsers,\n treatmentDataEntryUsers,\n treatmentApprovalPathUsers,\n\n showTreatmentQuestionnaires,\n\n showQuestionnaireOpenButton,\n showQuestionnaireDeployButton,\n showQuestionnaireAbortButton,\n showTreatmentOpenButton,\n showTreatmentDeployButton,\n showTreatmentAbortButton,\n\n deployQuestionnaire,\n openQuestionnaire,\n abortQuestionnaire,\n\n deployTreatment,\n openTreatment,\n abortTreatment,\n\n icons: {\n minus: icons.minus,\n deploy: icons.deploy,\n abort: icons.abort,\n open: mdiBookOpen,\n menu: icons.menu,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentQuestionnaireLine.vue?vue&type=template&id=278b26d8&scoped=true&\"\nimport script from \"./AssessmentQuestionnaireLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentQuestionnaireLine.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AssessmentQuestionnaireLine.vue?vue&type=style&index=0&id=278b26d8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"278b26d8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VDivider,VIcon,VList,VMenu,VRow})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport icons from '@/core/icons';\nimport { AssessmentDto, AssessmentQuestionnaireDto, AssessmentStatus, QuestionnaireDto } from '@/dtos/tra';\nimport { AssessmentQuestionnaireStatus } from '@/dtos/tra/AssessmentQuestionnaireDto';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { AssessmentsService } from '@/services/tra';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport AssessmentQuestionnaireLine from './AssessmentQuestionnaireLine.vue';\n\nexport default defineComponent({\n name: 'AssessmentQuestionnaires',\n\n components: {\n AssessmentQuestionnaireLine,\n ItemSelector,\n },\n\n props: {\n\n assessment: {\n type: Object as PropType,\n required: true,\n },\n\n inEditMode: {\n type: Boolean,\n default: false,\n },\n\n entityId: {\n type: Number,\n required: true,\n },\n\n traCategoryId: {\n type: Number,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const questionnaires = new ApiDataSource({ api: `masterplans/${props.entityId}/tra/${props.traCategoryId}/Questionnaires` });\n\n const questionnaireSelector = ref(false);\n\n const excludeQuestionnaires = ref>([]);\n\n const allowAdd = computed(() => {\n return props.assessment.status < AssessmentStatus.AssessmentReview;\n });\n\n watch(\n () => props.assessment.questionnaires,\n (value) => {\n const ret: Array = [];\n value.forEach(q => ret.push(q.questionnaireId));\n excludeQuestionnaires.value = ret;\n },\n { immediate: true },\n );\n\n function addQuestionnaire(questionnaire: QuestionnaireDto | null) {\n if (questionnaire == null) {\n return;\n }\n\n props.assessment.questionnaires.push({\n id: 0,\n questionnaireId: questionnaire.id,\n status: AssessmentQuestionnaireStatus.NotStarted,\n questionnaireMessage: '',\n treatmentMessage: '',\n needsTreatment: false,\n users: [],\n });\n questionnaireSelector.value = false;\n }\n\n function removeQuestionnaire(aq: AssessmentQuestionnaireDto) {\n const ques = props.assessment.questionnaires;\n\n for (let i = 0; i < ques.length; ++i) {\n if (ques[i].questionnaireId === aq.questionnaireId) {\n ques.splice(i, 1);\n return;\n }\n }\n }\n\n async function deployQuestionnaire(aq: AssessmentQuestionnaireDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('tra.assessments.deploying').toString());\n try {\n await AssessmentsService.DeployQuestionnaire(props.assessment.id, aq.id);\n\n PopupMessageService.SetMessage({\n title: i18n.t('success'),\n text: i18n.t('tra.assessments.deploymentSuccessful'),\n });\n\n emit('refresh');\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function abortQuestionnaire(aq: AssessmentQuestionnaireDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('tra.assessments.aborting').toString());\n try {\n await AssessmentsService.AbortQuestionnaire(props.assessment.id, aq.id);\n\n PopupMessageService.SetMessage({\n title: i18n.t('success'),\n text: i18n.t('tra.assessments.abortedSuccessful'),\n });\n\n emit('refresh');\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function deployTreatment(aq: AssessmentQuestionnaireDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('tra.assessments.deploying').toString());\n try {\n await AssessmentsService.DeployTreatment(props.assessment.id, aq.id);\n\n PopupMessageService.SetMessage({\n title: i18n.t('success'),\n text: i18n.t('tra.assessments.deploymentSuccessful'),\n });\n\n emit('refresh');\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function abortTreatment(aq: AssessmentQuestionnaireDto) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('tra.assessments.aborting').toString());\n try {\n await AssessmentsService.AbortTreatment(props.assessment.id, aq.id);\n\n PopupMessageService.SetMessage({\n title: i18n.t('success'),\n text: i18n.t('tra.assessments.abortedSuccessful'),\n });\n\n emit('refresh');\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n await questionnaires.get();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n questionnaires,\n questionnaireSelector,\n addQuestionnaire,\n removeQuestionnaire,\n\n allowAdd,\n\n deployQuestionnaire,\n abortQuestionnaire,\n deployTreatment,\n abortTreatment,\n\n excludeQuestionnaires,\n\n icons: {\n plus: icons.plus,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaires.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaires.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentQuestionnaires.vue?vue&type=template&id=56957b1e&scoped=true&\"\nimport script from \"./AssessmentQuestionnaires.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentQuestionnaires.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"56957b1e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VDivider,VIcon})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { AssessmentDto, AssessmentStatus, RiskScaleDto } from '@/dtos/tra';\nimport i18n from '@/i18n';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { checkTraCategory } from '../TraComponentGuards';\nimport icons from '@/core/icons';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport { cloneDeep } from 'lodash';\nimport { AssessmentsService, RiskMethodologyService } from '@/services/tra';\nimport router from '@/router';\nimport PopupMessageService, { PopupMessageButtonNo, PopupMessageButtonYes } from '@/services/PopupMessageService';\nimport PdMenuListItem from '@/components/core/PdMenuListItem.vue';\nimport { ISelectItem } from '@/core';\nimport AssessmentQuestionnaires from './AssessmentQuestionnaires.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport { LanguageTemplate, LocationTemplate } from '@/core/helpers/templates';\nimport { LocationDto, PartitionDto } from '@/dtos/bcm';\nimport ItemSelector from '@/components/all/ItemSelector.vue';\nimport TreeItemSelector from '@/components/all/TreeItemSelector.vue';\nimport { PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { AssessmentStatusTemplate } from './AssessmentStatusTemplate';\nimport { mdiFormatListChecks, mdiShieldAlert, mdiSmokeDetector } from '@mdi/js';\n\nconst NewAssessment: AssessmentDto = {\n id: 0,\n isArchived: false,\n name: i18n.t('tra.assessments.newName').toString(),\n status: AssessmentStatus.NotStarted,\n partitionId: null,\n locationId: null,\n riskAppetiteId: 0,\n questionnaires: [],\n};\n\nenum AssetType {\n None,\n Partition,\n Location,\n};\n\nconst assetsTypes: Array = [\n {\n text: i18n.t('tra.assessments.assetTypes.none'),\n value: AssetType.None,\n },\n {\n text: i18n.t('tra.assessments.assetTypes.partition'),\n value: AssetType.Partition,\n },\n {\n text: i18n.t('tra.assessments.assetTypes.location'),\n value: AssetType.Location,\n },\n];\n\nconst locationSelectorHeaders: Array> = [{\n id: 'name',\n text: '',\n value: 'translations',\n translatable: true,\n template: async (value) => {\n return LocationTemplate(value);\n },\n}];\n\nconst partitionSelectorHeaders: Array> = [{\n id: 'name',\n text: '',\n value: 'translations',\n translatable: true,\n template: async (value) => {\n return LanguageTemplate(value, 'name');\n },\n}];\n\nexport default defineComponent({\n name: 'AssessmentView',\n\n components: {\n PdFormBase,\n PdMenuListItem,\n AssessmentQuestionnaires,\n ItemSelector,\n TreeItemSelector,\n },\n\n props: {\n assessmentId: {\n type: String as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n let params;\n try { params = checkTraCategory(); } catch { return; }\n\n const assessment = ref(cloneDeep(NewAssessment));\n const inEditMode = ref(false);\n\n const showPartitionSelector = ref(false);\n const showLocationSelector = ref(false);\n\n const partitionsDatasource = new ApiDataSource({ api: `masterplans/${params.entity}/bc/Partitions` });\n const locationsDatasource = new ApiDataSource({ api: `masterplans/${params.entity}/bc/Locations` });\n const riskScalesDatasource = new ApiDataSource({ api: `masterplans/${params.entity}/tra/${params.category}/RiskScales` });\n\n const partitionText = ref('');\n const locationText = ref('');\n\n const riskScalesItems = ref>([]);\n\n const assetType = ref(AssetType.None);\n\n watch(\n assessment,\n async (newAssessment) => {\n if (newAssessment.partitionId != null) {\n assetType.value = AssetType.Partition;\n\n const part = await partitionsDatasource.getById(newAssessment.partitionId);\n if (part != null) {\n partitionText.value = LanguageTemplate(part, 'name').text;\n }\n\n locationText.value = '';\n } else if (newAssessment.locationId != null) {\n assetType.value = AssetType.Location;\n\n const loc = await locationsDatasource.getById(newAssessment.locationId);\n if (loc != null) {\n locationText.value = LocationTemplate(loc).text;\n }\n\n partitionText.value = '';\n } else {\n assetType.value = AssetType.None;\n partitionText.value = '';\n locationText.value = '';\n }\n },\n {\n deep: true,\n immediate: true,\n },\n );\n\n watch(\n assetType,\n (newType) => {\n if (newType === AssetType.Location) {\n assessment.value.partitionId = null;\n } else if (newType === AssetType.Partition) {\n assessment.value.locationId = null;\n } else {\n assessment.value.locationId = null;\n assessment.value.partitionId = null;\n }\n },\n );\n\n const title = computed(() => {\n if (props.assessmentId === 'new') {\n return i18n.t('tra.assessments.titleNew');\n } else {\n return i18n.t('tra.assessments.titleEdit');\n }\n });\n\n const isNew = computed(() => {\n return props.assessmentId === 'new';\n });\n\n const assessmentStatus = computed(() => {\n return AssessmentStatusTemplate(assessment.value).text;\n });\n\n const showEditDeleteButton = computed(() => {\n return assessment.value.status === AssessmentStatus.NotStarted;\n });\n\n const showAssessmentReviewButton = computed(() => {\n return assessment.value.status >= AssessmentStatus.AssessmentReview;\n });\n\n const showTreatmentReviewButton = computed(() => {\n return assessment.value.status >= AssessmentStatus.TreatmentReview;\n });\n\n const showMenu = computed(() => {\n return !inEditMode.value;\n });\n\n const showSaveCancelButtons = computed(() => {\n return inEditMode.value;\n });\n\n const showReturnButton = computed(() => {\n return !inEditMode.value;\n });\n\n const showPartitionField = computed(() => {\n return assetType.value === AssetType.Partition;\n });\n\n const showLocationField = computed(() => {\n return assetType.value === AssetType.Location;\n });\n\n watch(\n () => props.assessmentId,\n () => {\n loadAssessment();\n },\n { immediate: true },\n );\n\n function selectPartition(partition: PartitionDto | null) {\n if (partition != null) {\n assessment.value.partitionId = partition.id;\n showPartitionSelector.value = false;\n }\n }\n\n function selectLocation(location: LocationDto | null) {\n if (location != null) {\n assessment.value.locationId = location.id;\n showLocationSelector.value = false;\n }\n }\n\n async function loadAssessment() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n if (props.assessmentId === 'new') {\n assessment.value = cloneDeep(NewAssessment);\n inEditMode.value = true;\n } else {\n assessment.value = await AssessmentsService.GetAssessment(parseInt(props.assessmentId));\n inEditMode.value = false;\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n router.go(-1);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n\n async function saveChanges() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const response = await AssessmentsService.Save(assessment.value);\n if (isNew.value === true) {\n router.push({ name: 'tra.assessment', params: { assessmentId: response.id.toString() } });\n } else {\n loadAssessment();\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function discardChanges() {\n PopupMessageService.SetMessage({\n title: i18n.t('confirm'),\n text: i18n.t('edit.discardChangesConfirmation'),\n buttons: [\n PopupMessageButtonYes(() => {\n if (isNew.value === true) {\n router.push({ name: 'tra.assessmentsList' });\n } else {\n loadAssessment();\n inEditMode.value = false;\n }\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n function editAssessment() {\n inEditMode.value = true;\n }\n\n function deployAssessment() {\n ErrorHandlingService.Handle(new Error('Not Implemented...') as AxiosError);\n }\n\n function openAssessment() {\n ErrorHandlingService.Handle(new Error('Not Implemented...') as AxiosError);\n }\n\n async function abortAssessment() {\n ErrorHandlingService.Handle(new Error('Not Implemented...') as AxiosError);\n }\n\n async function deleteAssessment() {\n PopupMessageService.SetMessage({\n title: i18n.t('confirmation'),\n text: i18n.t('tra.assessments.delete.text', { assessment: assessment.value.name }),\n buttons: [\n PopupMessageButtonYes(async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await AssessmentsService.Delete(assessment.value);\n router.push({ name: 'tra.assessmentsList' });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }),\n PopupMessageButtonNo(),\n ],\n });\n }\n\n function returnToList() {\n router.push({ name: 'tra.assessmentsList' });\n }\n\n function goToAssessmentControls() {\n router.push({ name: 'tra.assessment.controls', params: { assessmentId: props.assessmentId } });\n }\n\n function goToAssessmentRisks() {\n router.push({ name: 'tra.assessment.risks', params: { assessmentId: props.assessmentId } });\n }\n\n function goToAssessmentQuestionnairesReview() {\n router.push({ name: 'tra.assessment.answersReview', params: { assessmentId: props.assessmentId } });\n }\n\n function goToAssessmentTreatmentsReview() {\n router.push({ name: 'tra.assessment.treatmentsReview', params: { assessmentId: props.assessmentId } });\n }\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n await partitionsDatasource.get();\n await locationsDatasource.get();\n\n riskScalesItems.value = (await riskScalesDatasource.get()).sort((a, b) => a.value - b.value).map(i => {\n return {\n text: `${LanguageTemplate(i, 'name').text} (${i.value})`,\n value: i.id,\n };\n });\n\n if (isNew.value === true) {\n const riskMethodology = await RiskMethodologyService.GetMethodology();\n assessment.value.riskAppetiteId = riskMethodology.riskAppetiteId || (riskScalesItems.value[0].value as number);\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n loading,\n\n entityId: params.entity,\n traCategoryId: params.category,\n\n title,\n\n assessment,\n assessmentStatus,\n\n loadAssessment,\n\n inEditMode,\n isNew,\n\n assetType,\n\n showMenu,\n showSaveCancelButtons,\n showReturnButton,\n showEditDeleteButton,\n showAssessmentReviewButton,\n showTreatmentReviewButton,\n\n showPartitionField,\n showLocationField,\n\n showPartitionSelector,\n showLocationSelector,\n\n partitionsDatasource,\n locationsDatasource,\n\n locationSelectorHeaders,\n partitionSelectorHeaders,\n\n selectPartition,\n selectLocation,\n\n partitionText,\n locationText,\n\n riskScalesItems,\n\n saveChanges,\n discardChanges,\n\n editAssessment,\n deployAssessment,\n openAssessment,\n abortAssessment,\n deleteAssessment,\n\n goToAssessmentControls,\n goToAssessmentRisks,\n goToAssessmentQuestionnairesReview,\n goToAssessmentTreatmentsReview,\n\n assetsTypes,\n\n returnToList,\n\n icons: {\n edit: icons.edit,\n save: icons.save,\n delete: icons.delete,\n discardChanges: icons.discardChanges,\n return: icons.return,\n menu: icons.menu,\n controls: mdiSmokeDetector,\n risks: mdiShieldAlert,\n review: mdiFormatListChecks,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentView.vue?vue&type=template&id=3ac22194&scoped=true&\"\nimport script from \"./AssessmentView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3ac22194\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCol,VDivider,VIcon,VList,VMenu,VRow,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('tra.assessments.allAssessments.title'),\"loading\":_vm.loading}},[_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.data,\"search\":\"\"},on:{\"dblclick\":_vm.openAssessment}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { TemplateReturnType } from '@/components/core/PdDataTable';\nimport { AssessmentQuestionnaireDto, SimpleAssessmentQuestionnaireDto } from '@/dtos/tra';\nimport { AssessmentQuestionnaireStatus } from '@/dtos/tra/AssessmentQuestionnaireDto';\nimport i18n from '@/i18n';\n\nexport function AssessmentQuestionnaireStatusTemplate(item: AssessmentQuestionnaireDto | SimpleAssessmentQuestionnaireDto): TemplateReturnType {\n const ret: TemplateReturnType = {\n text: '',\n };\n\n let status;\n if (item.questionnaireStatus != null) {\n status = (item as SimpleAssessmentQuestionnaireDto).questionnaireStatus;\n } else {\n status = item.status;\n }\n\n switch (status) {\n case AssessmentQuestionnaireStatus.NotStarted:\n ret.text = i18n.t('tra.assessments.questionnaires.status.notStarted').toString();\n break;\n case AssessmentQuestionnaireStatus.QuestionnaireDataEntry:\n ret.text = i18n.t('tra.assessments.questionnaires.status.questionnaireDataEntry').toString();\n break;\n case AssessmentQuestionnaireStatus.QuestionnaireApprovalPath:\n ret.text = i18n.t('tra.assessments.questionnaires.status.questionnaireApprovalPath').toString();\n break;\n case AssessmentQuestionnaireStatus.QuestionnaireFinished:\n ret.text = i18n.t('tra.assessments.questionnaires.status.questionnaireFinished').toString();\n break;\n case AssessmentQuestionnaireStatus.TreatmentDataEntry:\n ret.text = i18n.t('tra.assessments.questionnaires.status.treatmentDataEntry').toString();\n break;\n case AssessmentQuestionnaireStatus.TreatmentApprovalPath:\n ret.text = i18n.t('tra.assessments.questionnaires.status.treatmentApprovalPath').toString();\n break;\n case AssessmentQuestionnaireStatus.TreatmentFinished:\n ret.text = i18n.t('tra.assessments.questionnaires.status.treatmentFinished').toString();\n break;\n\n default:\n ret.text = `Unknown Status ${item.status}`;\n }\n\n return ret;\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PdDataTableHeader, PdDataTable } from '@/components/core/PdDataTable';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { SimpleAssessmentQuestionnaireDto } from '@/dtos/tra';\nimport { AssessmentQuestionnaireStatus, AssessmentQuestionnaireUserStatus } from '@/dtos/tra/AssessmentQuestionnaireDto';\nimport i18n from '@/i18n';\nimport router from '@/router';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AssessmentsService } from '@/services/tra';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { AssessmentQuestionnaireStatusTemplate } from '../AssessmentQuestionnaireStatusTemplate';\n\nconst headers: Array> = [\n {\n id: 'traCategoryName',\n value: 'traCategoryName',\n text: i18n.t('tra.assessments.allAssessments.traCategory').toString(),\n },\n {\n id: 'assessmentName',\n value: 'assessmentName',\n text: i18n.t('tra.assessments.allAssessments.assessment').toString(),\n },\n {\n id: 'type',\n value: 'questionnaireStatus',\n text: i18n.t('tra.assessments.allAssessments.type').toString(),\n template: (item) => {\n if (item.questionnaireStatus <= AssessmentQuestionnaireStatus.QuestionnaireFinished) {\n return { text: i18n.t('tra.assessments.allAssessments.questionnaire').toString() };\n } else if (item.questionnaireStatus <= AssessmentQuestionnaireStatus.TreatmentFinished) {\n return { text: i18n.t('tra.assessments.allAssessments.treatment').toString() };\n }\n\n return { text: 'Unknown... :(' };\n },\n },\n {\n id: 'questionnaireName',\n value: 'questionnaireName',\n text: i18n.t('tra.assessments.allAssessments.questionnaire').toString(),\n },\n {\n id: 'asset',\n value: 'asset',\n text: i18n.t('tra.assessments.allAssessments.asset').toString(),\n },\n {\n id: 'questionnaireStatus',\n value: 'questionnaireStatus',\n text: i18n.t('tra.assessments.allAssessments.questionnaireStatus').toString(),\n template: (item) => {\n return AssessmentQuestionnaireStatusTemplate(item);\n },\n },\n {\n id: 'userStatus',\n value: 'userStatus',\n text: i18n.t('tra.assessments.allAssessments.userStatus').toString(),\n template: (item) => {\n if (item.userStatus == null) {\n return { text: i18n.t('none').toString() };\n }\n\n if (item.userStatus === AssessmentQuestionnaireUserStatus.Pending) {\n return { text: i18n.t('tra.assessments.userStatus.pending').toString() };\n } else if (item.userStatus === AssessmentQuestionnaireUserStatus.On) {\n return { text: i18n.t('tra.assessments.userStatus.on').toString() };\n } else if (item.userStatus === AssessmentQuestionnaireUserStatus.Finished) {\n return { text: i18n.t('tra.assessments.userStatus.finished').toString() };\n }\n\n return { text: i18n.t('none').toString() };\n },\n },\n];\n\nexport default defineComponent({\n name: 'AssessmentListUserView',\n\n components: {\n PdFormBase,\n PdDataTable,\n },\n\n setup() {\n const loading = ref(false);\n const data = ref>([]);\n\n function openAssessment(a: SimpleAssessmentQuestionnaireDto) {\n if (a.questionnaireStatus <= AssessmentQuestionnaireStatus.QuestionnaireFinished) {\n router.push({\n name: 'tra.assessment.questionnaire',\n params: {\n traCategoryId: a.traCategoryId.toString(),\n assessmentId: a.assessmentId.toString(),\n questionnaireId: a.questionnaireId.toString(),\n },\n });\n } else if (a.questionnaireStatus <= AssessmentQuestionnaireStatus.TreatmentFinished) {\n router.push({\n name: 'tra.assessment.treatment',\n params: {\n traCategoryId: a.traCategoryId.toString(),\n assessmentId: a.assessmentId.toString(),\n questionnaireId: a.questionnaireId.toString(),\n },\n });\n } else {\n console.error('Unknown');\n }\n }\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n data.value = await AssessmentsService.GetUserAssessments();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n return {\n loading,\n headers,\n data,\n openAssessment,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentListUserView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentListUserView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentListUserView.vue?vue&type=template&id=741aebe1&scoped=true&\"\nimport script from \"./AssessmentListUserView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentListUserView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"741aebe1\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.title,\"subtitle\":_vm.subtitle,\"loading\":_vm.loading}},[(_vm.showMessageEditor)?_c('pd-popup-card',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.popupTitle)+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.showMessageEditor = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveApproveReject}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.save'))+\" \")])]},proxy:true}],null,false,888425868)},[_c('v-textarea',{attrs:{\"rows\":\"4\",\"autofocus\":\"\"},model:{value:(_vm.message),callback:function ($$v) {_vm.message=$$v},expression:\"message\"}})],1):_vm._e(),_c('div',{staticClass:\"my-2\"},[_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"},on:{\"dblclick\":function($event){$event.stopPropagation();},\"click\":_vm.goBack}},[_vm._v(\" \"+_vm._s(_vm.$t('return'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.return)+\" \")])],1),(_vm.showApprove)?_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"},on:{\"dblclick\":function($event){$event.stopPropagation();},\"click\":_vm.approve}},[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.userQuestionnaire.approve'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.approve)+\" \")])],1):_vm._e(),(_vm.showReject)?_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"},on:{\"dblclick\":function($event){$event.stopPropagation();},\"click\":_vm.reject}},[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.userQuestionnaire.reject'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.reject)+\" \")])],1):_vm._e(),_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"},on:{\"dblclick\":function($event){$event.stopPropagation();},\"click\":_vm.exportQuestionnaire}},[_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.export)+\" \")])],1)],1),(_vm.assessment != null)?[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',{staticStyle:{\"width\":\"50px\",\"min-width\":\"50px\",\"max-width\":\"100px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.userQuestionnaire.id'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.userQuestionnaire.control'))+\" \")]),_c('th',{staticStyle:{\"width\":\"300px\",\"min-width\":\"200px\",\"max-width\":\"400px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.userQuestionnaire.answer'))+\" \")])])]),_c('tbody',_vm._l((_vm.assessment.controls),function(control){return _c('assessment-questionnaire-user-control-line',{key:control.uuid,attrs:{\"control\":control,\"readonly\":!_vm.allowEdit},on:{\"edit\":_vm.changeAnswer}})}),1)])]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"control\"},[_c('td',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.control.controlId)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm.control.control)+\" \")]),_c('td',[_c('v-select',{staticStyle:{\"font-size\":\".875rem\"},attrs:{\"items\":_vm.control.possibleAnswers,\"item-value\":\"id\",\"item-text\":\"answer\",\"hide-details\":\"\",\"dense\":\"\",\"disabled\":_vm.readonly},on:{\"change\":_vm.changeValue},model:{value:(_vm.answerValue),callback:function ($$v) {_vm.answerValue=$$v},expression:\"answerValue\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { SimpleAssessmentQuestionnaireControlDto } from '@/dtos/tra';\nimport { defineComponent, PropType, ref } from '@vue/composition-api';\nimport { cloneDeep } from 'lodash';\n\nexport default defineComponent({\n name: 'AssessmentQuestionnaireUserControlLine',\n components: {\n PdFormBase,\n\n },\n\n props: {\n control: {\n type: Object as PropType,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n const answerValue = ref(props.control.answerId);\n\n function changeValue() {\n if (props.control.answerId !== answerValue.value) {\n const c = cloneDeep(props.control);\n c.answerId = answerValue.value;\n emit('edit', c);\n }\n }\n\n return {\n answerValue,\n changeValue,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireUserControlLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireUserControlLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentQuestionnaireUserControlLine.vue?vue&type=template&id=6e003296&scoped=true&\"\nimport script from \"./AssessmentQuestionnaireUserControlLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentQuestionnaireUserControlLine.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AssessmentQuestionnaireUserControlLine.vue?vue&type=style&index=0&id=6e003296&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6e003296\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VSelect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport AssessmentQuestionnaireUserControlLine from './AssessmentQuestionnaireUserControlLine.vue';\nimport { SimpleAssessmentQuestionnaireControlDto, SimpleAssessmentQuestionnaireDto } from '@/dtos/tra';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AssessmentsService } from '@/services/tra';\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport icons from '@/core/icons';\nimport router from '@/router';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { v4 } from 'uuid';\nimport SnackbarMessageService from '@/services/SnackbarMessageService';\nimport { AssessmentQuestionnaireUserStatus } from '@/dtos/tra/AssessmentQuestionnaireDto';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport DownloadService from '@/services/DownloadService';\n\nexport default defineComponent({\n name: 'AssessmentQuestionnaireUserView',\n components: {\n PdFormBase,\n AssessmentQuestionnaireUserControlLine,\n PdPopupCard,\n },\n\n props: {\n traCategoryId: {\n type: String,\n required: true,\n },\n\n assessmentId: {\n type: String,\n required: true,\n },\n\n questionnaireId: {\n type: String,\n required: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n const title = ref('');\n const subtitle = ref('');\n const assessment = ref(null);\n const showMessageEditor = ref(false);\n const message = ref('');\n const popupTitle = ref('');\n\n let action: 'approve' | 'reject' = 'approve';\n\n const allowEdit = computed(() => {\n if (assessment.value == null) {\n return false;\n }\n\n if (assessment.value.userStatus === AssessmentQuestionnaireUserStatus.On) {\n return true;\n }\n\n return false;\n });\n\n const allowApprovalReject = computed(() => {\n if (assessment.value == null) {\n return false;\n }\n\n return assessment.value.allowApproveReject;\n });\n\n const showApprove = computed(() => {\n return allowApprovalReject.value;\n });\n\n const showReject = computed(() => {\n return allowApprovalReject.value;\n });\n\n watch(\n assessment,\n (a) => {\n if (a == null) {\n return;\n }\n\n title.value = `${a.assessmentName} - ${a.questionnaireName}`;\n subtitle.value = a.asset;\n\n if (a.questionnaireMessage) {\n PopupMessageService.SetMessage({\n title: i18n.t('tra.assessments.questionnaires.message'),\n text: a.questionnaireMessage,\n });\n }\n },\n );\n\n watch(\n () => [props.traCategoryId, props.assessmentId, props.questionnaireId],\n () => init(),\n );\n\n async function changeAnswer(control: SimpleAssessmentQuestionnaireControlDto) {\n if (assessment.value == null) {\n return;\n }\n\n const controls = assessment.value.controls;\n\n if (controls == null) {\n return;\n }\n\n for (let i = 0; i < controls.length; ++i) {\n if (controls[i].uuid === control.uuid) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const resp = await AssessmentsService.UpdateQuestionnaireAnswer(parseInt(props.traCategoryId), parseInt(props.assessmentId), parseInt(props.questionnaireId), control);\n controls.splice(i, 1, resp);\n\n SnackbarMessageService.SetMessage({ text: i18n.t('saved') });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n controls[i].uuid = v4();\n }\n return;\n }\n }\n }\n\n function approve() {\n action = 'approve';\n popupTitle.value = i18n.t('tra.assessments.userQuestionnaire.approveMessage').toString();\n message.value = '';\n showMessageEditor.value = true;\n }\n\n function reject() {\n action = 'reject';\n popupTitle.value = i18n.t('tra.assessments.userQuestionnaire.rejectMessage').toString();\n message.value = '';\n showMessageEditor.value = true;\n }\n\n async function saveApproveReject() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n if (action === 'approve') {\n await AssessmentsService.ApproveQuestionnaire(parseInt(props.traCategoryId), parseInt(props.assessmentId), parseInt(props.questionnaireId), message.value.trim());\n } else if (action === 'reject') {\n if (!message.value.trim()) {\n throw new Error('Rejection message cannot be empty!');\n }\n await AssessmentsService.RejectQuestionnaire(parseInt(props.traCategoryId), parseInt(props.assessmentId), parseInt(props.questionnaireId), message.value);\n }\n\n showMessageEditor.value = false;\n router.back();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function goBack() {\n router.go(-1);\n }\n\n async function exportQuestionnaire() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('exporting').toString());\n try {\n const fileDto = await AssessmentsService.DownloadAssessmentQuestionnaire(parseInt(props.traCategoryId), parseInt(props.assessmentId), parseInt(props.questionnaireId));\n DownloadService.DownloadFile(fileDto);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n const a = await AssessmentsService.GetAssessmentQuestionnaire(parseInt(props.traCategoryId), parseInt(props.assessmentId), parseInt(props.questionnaireId));\n if (a.controls != null) {\n a.controls.forEach(c => {\n c.uuid = v4();\n });\n }\n\n assessment.value = a;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n init();\n return {\n loading,\n title,\n subtitle,\n assessment,\n allowEdit,\n\n changeAnswer,\n\n allowApprovalReject,\n showApprove,\n showReject,\n\n approve,\n reject,\n\n showMessageEditor,\n message,\n popupTitle,\n saveApproveReject,\n\n goBack,\n\n exportQuestionnaire,\n\n icons: {\n return: icons.return,\n approve: icons.approve,\n reject: icons.reject,\n export: icons.export,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireUserView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireUserView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentQuestionnaireUserView.vue?vue&type=template&id=04c02e46&scoped=true&\"\nimport script from \"./AssessmentQuestionnaireUserView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentQuestionnaireUserView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"04c02e46\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VIcon,VSimpleTable,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('tra.assessments.questionnaireReviewTitle'),\"subtitle\":_vm.subtitle,\"loading\":_vm.loading}},[_c('v-btn',{staticClass:\"text-none d-inline-block mr-4 my-2\",attrs:{\"small\":\"\"},on:{\"click\":_vm.returnToAssessment}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.return)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('return'))+\" \")],1),(_vm.showApproveButton)?_c('v-btn',{staticClass:\"text-none d-inline-block mr-4 my-2\",attrs:{\"small\":\"\"},on:{\"click\":_vm.approveReview}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.approve)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.review.approve'))+\" \")],1):_vm._e(),_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"text-none d-inline-block mr-4 my-2\",attrs:{\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.export)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('export'))+\" \")],1)]}}])},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.downloadReview(1)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('tra.assessments.review.downloadRisks')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.downloadReview(3)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('tra.assessments.review.downloadControls')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.downloadReview(2)}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('testing.dr.export.downloadDetailed')))])],1)],1)],1),_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.risksDatasource,\"options\":{hasDetails: true},\"sort\":\"name\"},scopedSlots:_vm._u([{key:\"details\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('assessment-questionnaire-review-risk-controls',{attrs:{\"controls\":item.controls}})]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[_c('v-icon',{attrs:{\"color\":_vm.value ? 'success': 'error'}},[_vm._v(\" \"+_vm._s(_vm.icon)+\" \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\nimport { mdiAlertDecagram, mdiCheckDecagramOutline } from '@mdi/js';\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'AssessmentQuestionnaireReviewRiskColumn',\n\n props: {\n value: {\n type: Boolean as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const icon = props.value === true ? mdiCheckDecagramOutline : mdiAlertDecagram;\n\n return {\n icon,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireReviewBelowAppetiteColumn.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireReviewBelowAppetiteColumn.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentQuestionnaireReviewBelowAppetiteColumn.vue?vue&type=template&id=5a6d7c70&scoped=true&\"\nimport script from \"./AssessmentQuestionnaireReviewBelowAppetiteColumn.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentQuestionnaireReviewBelowAppetiteColumn.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AssessmentQuestionnaireReviewBelowAppetiteColumn.vue?vue&type=style&index=0&id=5a6d7c70&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a6d7c70\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('td',[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-row',_vm._g(_vm._b({staticClass:\"fill-height\",attrs:{\"dense\":\"\",\"no-gutters\":\"\",\"align\":\"center\"}},'v-row',attrs,false),on),[_c('v-col',{staticClass:\"shrink mr-1\",staticStyle:{\"min-width\":\"10px\",\"height\":\"90%\"},style:({'background-color': _vm.value.riskColor})}),_c('v-col',[_vm._v(\" \"+_vm._s(_vm.value.risk)+\" \")])],1)]}}])},[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.review.likelihood'))+\": \"+_vm._s(_vm.value.likelihood)+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.review.impact'))+\": \"+_vm._s(_vm.value.impact)+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.review.riskLevel'))+\": \"+_vm._s(_vm.value.riskName)+\" (\"+_vm._s(_vm.value.risk)+\") \"),_c('br')])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { AssessmentReviewRiskValuesDto } from '@/dtos/tra';\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nexport default defineComponent({\n name: 'AssessmentQuestionnaireReviewRiskColumn',\n\n props: {\n value: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup() {\n return {};\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireReviewRiskColumn.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireReviewRiskColumn.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentQuestionnaireReviewRiskColumn.vue?vue&type=template&id=0f3937db&scoped=true&\"\nimport script from \"./AssessmentQuestionnaireReviewRiskColumn.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentQuestionnaireReviewRiskColumn.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AssessmentQuestionnaireReviewRiskColumn.vue?vue&type=style&index=0&id=0f3937db&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f3937db\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCol,VRow,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-data-table',{attrs:{\"datasource\":_vm.controls,\"headers\":_vm.headers,\"options\":{pagination: false}}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { NumberComparison } from '@/core/helpers/sort';\nimport { AssessmentReviewControlDto } from '@/dtos/tra';\nimport i18n from '@/i18n';\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nconst headers: Array> = [\n {\n id: 'controlId',\n value: 'controlId',\n text: i18n.t('tra.assessments.review.controlId').toString(),\n width: '50px',\n\n },\n {\n id: 'question',\n value: 'question',\n text: i18n.t('tra.assessments.review.question').toString(),\n },\n {\n id: 'answer',\n value: 'answer',\n text: i18n.t('tra.assessments.review.answer').toString(),\n width: '200px',\n },\n {\n id: 'likelihoodReduction',\n value: 'likelihoodReduction',\n text: i18n.t('tra.assessments.review.likelihoodReduction').toString(),\n width: '80px',\n align: 'center',\n sort: NumberComparison,\n },\n {\n id: 'impactReduction',\n value: 'impactReduction',\n text: i18n.t('tra.assessments.review.impactReduction').toString(),\n width: '80px',\n align: 'center',\n sort: NumberComparison,\n },\n];\n\nexport default defineComponent({\n name: 'AssessmentQuestionnaireReviewRiskControls',\n\n components: {\n PdDataTable,\n },\n\n props: {\n controls: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup() {\n return {\n headers,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireReviewRiskControls.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireReviewRiskControls.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentQuestionnaireReviewRiskControls.vue?vue&type=template&id=5c72d108&scoped=true&\"\nimport script from \"./AssessmentQuestionnaireReviewRiskControls.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentQuestionnaireReviewRiskControls.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5c72d108\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport icons from '@/core/icons';\nimport { AssessmentReviewRiskDto, AssessmentReviewRiskValuesDto, AssessmentStatus } from '@/dtos/tra';\nimport i18n from '@/i18n';\nimport router from '@/router';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport DownloadService from '@/services/DownloadService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AssessmentsService } from '@/services/tra';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { checkTraCategory, TraComponent } from '../../../TraComponentGuards';\nimport AssessmentQuestionnaireReviewBelowAppetiteColumn from './AssessmentQuestionnaireReviewBelowAppetiteColumn.vue';\nimport AssessmentQuestionnaireReviewRiskColumnVue from './AssessmentQuestionnaireReviewRiskColumn.vue';\nimport AssessmentQuestionnaireReviewRiskControls from './AssessmentQuestionnaireReviewRiskControls.vue';\n\nfunction sortRisks(a: AssessmentReviewRiskValuesDto, b: AssessmentReviewRiskValuesDto): number {\n return a.risk - b.risk;\n}\n\nconst headers: Array> = [\n {\n id: 'name',\n value: 'name',\n text: i18n.t('tra.assessments.review.risk').toString(),\n },\n {\n id: 'belowRiskAppetite',\n value: 'belowRiskAppetite',\n text: i18n.t('tra.assessments.review.belowAppetite').toString(),\n width: '50px',\n align: 'center',\n component: AssessmentQuestionnaireReviewBelowAppetiteColumn,\n },\n {\n id: 'minimumLikelihood',\n value: 'minimumLikelihood',\n text: i18n.t('tra.assessments.review.minimumLikelihood').toString(),\n width: '100px',\n align: 'center',\n },\n {\n id: 'minimumImpact',\n value: 'minimumImpact',\n text: i18n.t('tra.assessments.review.minimumImpact').toString(),\n width: '100px',\n align: 'center',\n },\n {\n id: 'defaultRisk',\n value: 'defaultRisk',\n text: i18n.t('tra.assessments.review.defaultRisk').toString(),\n component: AssessmentQuestionnaireReviewRiskColumnVue,\n sort: sortRisks,\n align: 'center',\n width: '100px',\n },\n {\n id: 'currentRisk',\n value: 'currentRisk',\n text: i18n.t('tra.assessments.review.currentRisk').toString(),\n component: AssessmentQuestionnaireReviewRiskColumnVue,\n sort: sortRisks,\n align: 'center',\n width: '100px',\n },\n {\n id: 'bestCaseRisk',\n value: 'bestCaseRisk',\n text: i18n.t('tra.assessments.review.bestCaseRisk').toString(),\n component: AssessmentQuestionnaireReviewRiskColumnVue,\n sort: sortRisks,\n align: 'center',\n width: '100px',\n },\n];\n\nexport default defineComponent({\n name: 'AssessmentQuestionnaireReviewView',\n\n components: {\n PdFormBase,\n PdDataTable,\n AssessmentQuestionnaireReviewRiskControls,\n },\n\n props: {\n assessmentId: {\n type: String,\n required: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n let params: TraComponent;\n try { params = checkTraCategory(); } catch { return; }\n\n const subtitle = ref('');\n const showApproveButton = ref(false);\n\n const risksDatasource = new ApiDataSource({ api: `masterplans/${params.entity}/tra/${params.category}/Assessments/${props.assessmentId}/GetForQuestionnaireReview` });\n\n function returnToAssessment() {\n router.push({ name: 'tra.assessment', params: { assessmentId: props.assessmentId } });\n }\n\n async function approveReview() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await AssessmentsService.ApproveAssessmentQuestionnaireReview(params.entity, params.category, parseInt(props.assessmentId));\n router.push({ name: 'tra.assessment', params: { assessmentId: props.assessmentId } });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n async function downloadReview(type: number) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n var file = await AssessmentsService.DownloadAssessmentQuestionnaireReview(params.entity, params.category, parseInt(props.assessmentId), type);\n DownloadService.DownloadFile(file);\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n (async function init() {\n if (props.assessmentId == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n const assessment = await AssessmentsService.GetSimpleAssessment(parseInt(props.assessmentId));\n if (assessment.status === AssessmentStatus.AssessmentReview) {\n showApproveButton.value = true;\n }\n subtitle.value = `${assessment.name} - ${i18n.t('tra.assessments.riskAppetite')}: ${assessment.riskAppetite}`;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n loading,\n subtitle,\n returnToAssessment,\n\n risksDatasource,\n headers,\n approveReview,\n showApproveButton,\n\n downloadReview,\n\n icons: {\n return: icons.return,\n approve: icons.approve,\n export: icons.export,\n },\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireReviewView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireReviewView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentQuestionnaireReviewView.vue?vue&type=template&id=7f608a5b&scoped=true&\"\nimport script from \"./AssessmentQuestionnaireReviewView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentQuestionnaireReviewView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7f608a5b\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VIcon,VList,VListItem,VListItemTitle,VMenu})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.title,\"subtitle\":_vm.subtitle,\"loading\":_vm.loading}},[(_vm.showMessageEditor)?_c('pd-popup-card',{scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.popupTitle)+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.showMessageEditor = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveApproveReject}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.save'))+\" \")])]},proxy:true}],null,false,888425868)},[_c('v-textarea',{attrs:{\"rows\":\"4\",\"autofocus\":\"\"},model:{value:(_vm.message),callback:function ($$v) {_vm.message=$$v},expression:\"message\"}})],1):_vm._e(),_c('div',{staticClass:\"my-2\"},[_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"},on:{\"dblclick\":function($event){$event.stopPropagation();},\"click\":_vm.goBack}},[_vm._v(\" \"+_vm._s(_vm.$t('return'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.return)+\" \")])],1),(_vm.showApprove)?_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"},on:{\"dblclick\":function($event){$event.stopPropagation();},\"click\":_vm.approve}},[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.userTreatment.approve'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.approve)+\" \")])],1):_vm._e(),(_vm.showReject)?_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\"},on:{\"dblclick\":function($event){$event.stopPropagation();},\"click\":_vm.reject}},[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.userTreatment.reject'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.reject)+\" \")])],1):_vm._e()],1),(_vm.assessment != null)?[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',{staticStyle:{\"width\":\"50px\",\"min-width\":\"50px\",\"max-width\":\"100px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.userTreatment.id'))+\" \")]),_c('th',[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.userTreatment.treatmentActions'))+\" \")]),_c('th',{staticStyle:{\"width\":\"300px\",\"min-width\":\"200px\",\"max-width\":\"400px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.userTreatment.answer'))+\" \")])])]),_c('tbody',_vm._l((_vm.assessment.controls),function(control){return _c('assessment-treatment-user-control-line',{key:control.uuid,attrs:{\"control\":control,\"readonly\":!_vm.allowEdit,\"treatment-answers\":_vm.treatmentAnswers},on:{\"edit\":_vm.changeAnswer}})}),1)])]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',{staticClass:\"control\"},[_c('td',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.control.controlId)+\" \")]),_c('td',[_vm._v(\" \"+_vm._s(_vm.control.treatmentActions)+\" \")]),_c('td',[_c('v-select',{staticStyle:{\"font-size\":\".875rem\"},attrs:{\"items\":_vm.treatmentAnswers,\"hide-details\":\"\",\"dense\":\"\",\"disabled\":_vm.readonly},on:{\"change\":_vm.changeValue},model:{value:(_vm.answerValue),callback:function ($$v) {_vm.answerValue=$$v},expression:\"answerValue\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { ISelectItem } from '@/core';\nimport { SimpleAssessmentQuestionnaireControlDto } from '@/dtos/tra';\nimport { defineComponent, PropType, ref } from '@vue/composition-api';\nimport { cloneDeep } from 'lodash';\n\nexport default defineComponent({\n name: 'AssessmentTreatmentUserControlLine',\n components: {\n PdFormBase,\n\n },\n\n props: {\n control: {\n type: Object as PropType,\n required: true,\n },\n\n readonly: {\n type: Boolean,\n default: false,\n },\n\n treatmentAnswers: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const answerValue = ref(props.control.treatmentAnswerId);\n\n function changeValue() {\n if (props.control.treatmentAnswerId !== answerValue.value) {\n const c = cloneDeep(props.control);\n c.treatmentAnswerId = answerValue.value;\n emit('edit', c);\n }\n }\n\n return {\n answerValue,\n changeValue,\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentTreatmentUserControlLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentTreatmentUserControlLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentTreatmentUserControlLine.vue?vue&type=template&id=71b5806d&scoped=true&\"\nimport script from \"./AssessmentTreatmentUserControlLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentTreatmentUserControlLine.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AssessmentTreatmentUserControlLine.vue?vue&type=style&index=0&id=71b5806d&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71b5806d\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VSelect})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport AssessmentTreatmentUserControlLine from './AssessmentTreatmentUserControlLine.vue';\nimport { SimpleAssessmentQuestionnaireControlDto, SimpleAssessmentQuestionnaireDto, TreatmentAnswerDto } from '@/dtos/tra';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AssessmentsService } from '@/services/tra';\nimport { computed, defineComponent, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport icons from '@/core/icons';\nimport router from '@/router';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { v4 } from 'uuid';\nimport SnackbarMessageService from '@/services/SnackbarMessageService';\nimport { AssessmentQuestionnaireUserStatus } from '@/dtos/tra/AssessmentQuestionnaireDto';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport { ApplicationModule } from '@/store';\nimport { ISelectItem } from '@/core';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'AssessmentTreatmentUserView',\n components: {\n PdFormBase,\n AssessmentTreatmentUserControlLine,\n PdPopupCard,\n },\n\n props: {\n traCategoryId: {\n type: String,\n required: true,\n },\n\n assessmentId: {\n type: String,\n required: true,\n },\n\n questionnaireId: {\n type: String,\n required: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n const title = ref('');\n const subtitle = ref('');\n const assessment = ref(null);\n const showMessageEditor = ref(false);\n const message = ref('');\n const popupTitle = ref('');\n const treatmentAnswers = ref>([]);\n\n let action: 'approve' | 'reject' = 'approve';\n\n const allowEdit = computed(() => {\n if (assessment.value == null) {\n return false;\n }\n\n if (assessment.value.userStatus === AssessmentQuestionnaireUserStatus.On) {\n return true;\n }\n\n return false;\n });\n\n const allowApprovalReject = computed(() => {\n if (assessment.value == null) {\n return false;\n }\n\n return assessment.value.allowApproveReject;\n });\n\n const showApprove = computed(() => {\n return allowApprovalReject.value;\n });\n\n const showReject = computed(() => {\n return allowApprovalReject.value;\n });\n\n watch(\n assessment,\n (a) => {\n if (a == null) {\n return;\n }\n\n title.value = `${a.assessmentName} - ${a.questionnaireName}`;\n subtitle.value = a.asset;\n\n if (a.treatmentMessage) {\n PopupMessageService.SetMessage({\n title: i18n.t('tra.assessments.treatments.message'),\n text: a.treatmentMessage,\n });\n }\n },\n );\n\n watch(\n () => [props.traCategoryId, props.assessmentId, props.questionnaireId],\n () => init(),\n );\n\n async function changeAnswer(control: SimpleAssessmentQuestionnaireControlDto) {\n if (assessment.value == null) {\n return;\n }\n\n const controls = assessment.value.controls;\n\n if (controls == null) {\n return;\n }\n\n for (let i = 0; i < controls.length; ++i) {\n if (controls[i].uuid === control.uuid) {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n const resp = await AssessmentsService.UpdateTreatmentAnswer(parseInt(props.traCategoryId), parseInt(props.assessmentId), parseInt(props.questionnaireId), control);\n controls.splice(i, 1, resp);\n\n SnackbarMessageService.SetMessage({ text: i18n.t('saved') });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n controls[i].uuid = v4();\n }\n return;\n }\n }\n }\n\n function approve() {\n action = 'approve';\n popupTitle.value = i18n.t('tra.assessments.userTreatment.approveMessage').toString();\n message.value = '';\n showMessageEditor.value = true;\n }\n\n function reject() {\n action = 'reject';\n popupTitle.value = i18n.t('tra.assessments.userTreatment.rejectMessage').toString();\n message.value = '';\n showMessageEditor.value = true;\n }\n\n async function saveApproveReject() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n if (action === 'approve') {\n await AssessmentsService.ApproveTreatment(parseInt(props.traCategoryId), parseInt(props.assessmentId), parseInt(props.questionnaireId), message.value.trim());\n } else if (action === 'reject') {\n if (!message.value.trim()) {\n throw new Error('Rejection message cannot be empty!');\n }\n await AssessmentsService.RejectTreatment(parseInt(props.traCategoryId), parseInt(props.assessmentId), parseInt(props.questionnaireId), message.value);\n }\n\n showMessageEditor.value = false;\n router.back();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function goBack() {\n router.go(-1);\n }\n\n async function init() {\n const entity = ApplicationModule.Entity;\n if (entity == null) {\n router.push('entities');\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n const answers = new ApiDataSource({ api: `masterplans/${entity.id}/tra/${parseInt(props.traCategoryId)}/TreatmentAnswers` });\n treatmentAnswers.value = await (await answers.get()).map(a => {\n return {\n value: a.id,\n text: LanguageTemplate(a, 'answer').text,\n };\n });\n\n const a = await AssessmentsService.GetAssessmentTreatment(parseInt(props.traCategoryId), parseInt(props.assessmentId), parseInt(props.questionnaireId));\n if (a.controls != null) {\n a.controls.forEach(c => {\n c.uuid = v4();\n });\n }\n\n assessment.value = a;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n };\n init();\n return {\n loading,\n title,\n subtitle,\n assessment,\n allowEdit,\n\n treatmentAnswers,\n\n changeAnswer,\n\n allowApprovalReject,\n showApprove,\n showReject,\n\n approve,\n reject,\n\n showMessageEditor,\n message,\n popupTitle,\n saveApproveReject,\n\n goBack,\n\n icons: {\n return: icons.return,\n approve: icons.approve,\n reject: icons.reject,\n },\n };\n },\n});\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentTreatmentUserView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentTreatmentUserView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentTreatmentUserView.vue?vue&type=template&id=772861e1&scoped=true&\"\nimport script from \"./AssessmentTreatmentUserView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentTreatmentUserView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"772861e1\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSimpleTable } from 'vuetify/lib/components/VDataTable';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VIcon,VSimpleTable,VTextarea})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('tra.assessments.treatmentReviewTitle'),\"subtitle\":_vm.subtitle,\"loading\":_vm.loading}},[_c('v-btn',{staticClass:\"text-none d-inline-block mr-4 my-2\",attrs:{\"small\":\"\"},on:{\"click\":_vm.returnToAssessment}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.return)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('return'))+\" \")],1),(_vm.showApproveButton)?_c('v-btn',{staticClass:\"text-none d-inline-block mr-4 my-2\",attrs:{\"small\":\"\"},on:{\"click\":_vm.approveReview}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.approve)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('tra.assessments.review.approve'))+\" \")],1):_vm._e(),_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.risksDatasource,\"options\":{hasDetails: true},\"sort\":\"name\"},scopedSlots:_vm._u([{key:\"details\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('assessment-treatment-review-risk-controls',{attrs:{\"controls\":item.controls}})]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-data-table',{attrs:{\"datasource\":_vm.controls,\"headers\":_vm.headers,\"options\":{pagination: false}}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { AssessmentReviewControlDto } from '@/dtos/tra';\nimport i18n from '@/i18n';\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nconst headers: Array> = [\n {\n id: 'controlId',\n value: 'controlId',\n text: i18n.t('tra.assessments.review.controlId').toString(),\n width: '50px',\n\n },\n {\n id: 'treatmentActions',\n value: 'treatmentActions',\n text: i18n.t('tra.assessments.review.treatmentActions').toString(),\n },\n {\n id: 'treatmentAnswer',\n value: 'treatmentAnswer',\n text: i18n.t('tra.assessments.review.answer').toString(),\n width: '200px',\n },\n];\n\nexport default defineComponent({\n name: 'AssessmentQuestionnaireReviewRiskControls',\n\n components: {\n PdDataTable,\n },\n\n props: {\n controls: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup() {\n return {\n headers,\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentTreatmentReviewRiskControls.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentTreatmentReviewRiskControls.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentTreatmentReviewRiskControls.vue?vue&type=template&id=10940156&scoped=true&\"\nimport script from \"./AssessmentTreatmentReviewRiskControls.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentTreatmentReviewRiskControls.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"10940156\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport icons from '@/core/icons';\nimport { AssessmentReviewRiskDto, AssessmentReviewRiskValuesDto, AssessmentStatus } from '@/dtos/tra';\nimport i18n from '@/i18n';\nimport router from '@/router';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AssessmentsService } from '@/services/tra';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { checkTraCategory, TraComponent } from '../../../TraComponentGuards';\nimport AssessmentQuestionnaireReviewRiskColumnVue from '../../questionnaires/review/AssessmentQuestionnaireReviewRiskColumn.vue';\nimport AssessmentTreatmentReviewRiskControls from './AssessmentTreatmentReviewRiskControls.vue';\n\nfunction sortRisks(a: AssessmentReviewRiskValuesDto, b: AssessmentReviewRiskValuesDto): number {\n return a.risk - b.risk;\n}\n\nconst headers: Array> = [\n {\n id: 'name',\n value: 'name',\n text: i18n.t('tra.assessments.review.risk').toString(),\n },\n {\n id: 'defaultRisk',\n value: 'defaultRisk',\n text: i18n.t('tra.assessments.review.defaultRisk').toString(),\n component: AssessmentQuestionnaireReviewRiskColumnVue,\n sort: sortRisks,\n align: 'center',\n width: '100px',\n },\n {\n id: 'currentRisk',\n value: 'currentRisk',\n text: i18n.t('tra.assessments.review.currentRisk').toString(),\n component: AssessmentQuestionnaireReviewRiskColumnVue,\n sort: sortRisks,\n align: 'center',\n width: '100px',\n },\n\n {\n id: 'futureRisk',\n value: 'futureRisk',\n text: i18n.t('tra.assessments.review.futureRisk').toString(),\n component: AssessmentQuestionnaireReviewRiskColumnVue,\n sort: sortRisks,\n align: 'center',\n width: '100px',\n },\n {\n id: 'bestCaseRisk',\n value: 'bestCaseRisk',\n text: i18n.t('tra.assessments.review.bestCaseRisk').toString(),\n component: AssessmentQuestionnaireReviewRiskColumnVue,\n sort: sortRisks,\n align: 'center',\n width: '100px',\n },\n];\n\nexport default defineComponent({\n name: 'AssessmentTreatmentReviewView',\n\n components: {\n PdFormBase,\n PdDataTable,\n AssessmentTreatmentReviewRiskControls,\n },\n\n props: {\n assessmentId: {\n type: String,\n required: true,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n let params: TraComponent;\n try { params = checkTraCategory(); } catch { return; }\n\n const subtitle = ref('');\n const showApproveButton = ref(false);\n\n const risksDatasource = new ApiDataSource({ api: `masterplans/${params.entity}/tra/${params.category}/Assessments/${props.assessmentId}/GetForTreatmentReview` });\n\n function returnToAssessment() {\n router.push({ name: 'tra.assessment', params: { assessmentId: props.assessmentId } });\n }\n\n async function approveReview() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n await AssessmentsService.ApproveAssessmentTreatmentReview(params.entity, params.category, parseInt(props.assessmentId));\n router.push({ name: 'tra.assessment', params: { assessmentId: props.assessmentId } });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n (async function init() {\n if (props.assessmentId == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n const assessment = await AssessmentsService.GetSimpleAssessment(parseInt(props.assessmentId));\n if (assessment.status === AssessmentStatus.TreatmentReview) {\n showApproveButton.value = true;\n }\n subtitle.value = `${assessment.name}`;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n loading,\n subtitle,\n returnToAssessment,\n\n risksDatasource,\n headers,\n approveReview,\n showApproveButton,\n\n icons: {\n return: icons.return,\n approve: icons.approve,\n },\n };\n },\n});\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentTreatmentReviewView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentTreatmentReviewView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AssessmentTreatmentReviewView.vue?vue&type=template&id=5bebafce&scoped=true&\"\nimport script from \"./AssessmentTreatmentReviewView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AssessmentTreatmentReviewView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5bebafce\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.loading)?_c('pd-form-base',{attrs:{\"title\":\"Control Categories\"}},[_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":_vm.options,\"sort\":\"name\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"}}),_vm._v(\" > \")],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport { checkTraCategory } from '../TraComponentGuards';\nimport { ControlCategoryDto } from '@/dtos/tra/index';\nimport { PdDataTableHeader, PdDataTable, PdDataTableOptions } from '@/components/core/PdDataTable';\nimport i18n from '@/i18n';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { PdColumnTranslation } from '@/components/core/PdDataTable/columns';\n\nconst headers: Array> = [\n {\n id: 'name',\n value: 'translations',\n text: i18n.t('tra.controlCategories.name').toString(),\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n template: (item) => LanguageTemplate(item, 'name'),\n },\n];\n\nconst options: PdDataTableOptions = {\n editable: true,\n};\n\nexport default defineComponent({\n name: 'ControlCategoriesView',\n\n components: {\n PdFormBase,\n PdDataTable,\n },\n\n setup() {\n let params;\n try { params = checkTraCategory(); } catch { return { loading: true }; }\n\n const datasource = new ApiDataSource({ api: `masterplans/${params.entity}/tra/${params.category}/ControlCategories` });\n\n return {\n headers,\n options,\n datasource,\n loading: false,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlCategoriesView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlCategoriesView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ControlCategoriesView.vue?vue&type=template&id=4ff2e31a&scoped=true&\"\nimport script from \"./ControlCategoriesView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ControlCategoriesView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ff2e31a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.loading)?_c('pd-form-base',{key:_vm.refresh,attrs:{\"title\":_vm.$t('tra.controls.title'),\"loading\":_vm.loading}},[(_vm.showImportForm)?_c('pd-popup-card',{attrs:{\"visible\":\"\",\"width\":\"45rem\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tra.controls.import.title'))+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.showImportForm=false}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.submitFileImport}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")])]},proxy:true}],null,false,2018756138)},[_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('v-file-input',{attrs:{\"accept\":\".csv\",\"counter\":\"\",\"show-size\":\"\",\"truncate-length\":\"50\",\"placeholder\":\"Select file...\"},model:{value:(_vm.importSelectedFile),callback:function ($$v) {_vm.importSelectedFile=$$v},expression:\"importSelectedFile\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.language'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.availableLanguages},model:{value:(_vm.importLanguage),callback:function ($$v) {_vm.importLanguage=$$v},expression:\"importLanguage\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.ignoreFirstLine'))+\" \")]),_c('td',[_c('v-simple-checkbox',{directives:[{name:\"ripple\",rawName:\"v-ripple\"}],model:{value:(_vm.importIgnoreFirstLine),callback:function ($$v) {_vm.importIgnoreFirstLine=$$v},expression:\"importIgnoreFirstLine\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.delimiter'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"value\":\";\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.importDelimiter),callback:function ($$v) {_vm.importDelimiter=$$v},expression:\"importDelimiter\"}})],1)]),_c('tr',[_c('td',{staticClass:\"text-caption\",attrs:{\"colspan\":\"2\"}},[_c('i18n',{attrs:{\"path\":\"tra.controls.importFormat\"}},[_c('br')])],1)])])]):_vm._e(),_c('controls',{attrs:{\"base-path\":_vm.basePath,\"allow-creation\":\"\",\"show-control-categories\":\"\",\"loading\":_vm.loading},on:{\"update:loading\":function($event){_vm.loading=$event}},scopedSlots:_vm._u([{key:\"buttons\",fn:function(){return [_c('v-btn',{staticClass:\"text-none d-inline-block mr-4\",attrs:{\"small\":\"\"},on:{\"click\":function($event){_vm.showImportForm = true}}},[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.import)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('import'))+\" \")],1)]},proxy:true}],null,false,1644587851)})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport { ISelectItem } from '@/core';\nimport icons from '@/core/icons';\nimport { UploadCsvFileDto } from '@/dtos';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { ControlsService } from '@/services/tra';\nimport { ApplicationModule } from '@/store';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { v4 } from 'uuid';\nimport { checkTraCategory } from '../TraComponentGuards';\nimport Controls from './Controls.vue';\n\nexport default defineComponent({\n name: 'ControlsView',\n\n components: {\n PdFormBase,\n Controls,\n PdPopupCard,\n },\n\n setup() {\n const loading = ref(false);\n let params;\n try { params = checkTraCategory(); } catch { return { loading: true, refresh: '' }; }\n\n const refresh = ref(v4());\n\n const showImportForm = ref(false);\n const importSelectedFile = ref(null);\n const importLanguage = ref(0);\n const importIgnoreFirstLine = ref(true);\n const importDelimiter = ref(';');\n\n const entity = ApplicationModule.Entity;\n if (entity == null) { return; }\n\n const availableLanguages: Array = [];\n for (let i = 0; i < entity.languages.length; ++i) {\n if (importLanguage.value === 0) {\n importLanguage.value = entity.languages[i].languageId;\n }\n\n availableLanguages.push({\n text: entity.languages[i].language,\n value: entity.languages[i].languageId,\n });\n }\n\n const basePath = `masterplans/${params.entity}/tra/${params.category}/Controls`;\n\n async function submitFileImport() {\n if (importSelectedFile.value == null) {\n PopupMessageService.SetMessage({\n title: i18n.t('error'),\n text: i18n.t('upload.selectFileError'),\n index: 100,\n });\n return;\n }\n\n if (!importDelimiter.value) {\n PopupMessageService.SetMessage({\n title: i18n.t('error'),\n text: i18n.t('upload.selectDelimiterError'),\n index: 100,\n });\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n const data: UploadCsvFileDto = {\n file: importSelectedFile.value,\n language: importLanguage.value,\n ignoreFirstLine: importIgnoreFirstLine.value,\n delimiter: importDelimiter.value,\n };\n\n await ControlsService.ImportControls(data);\n\n showImportForm.value = false;\n\n refresh.value = v4();\n\n PopupMessageService.SetMessage({\n title: i18n.t('success'),\n text: i18n.t('upload.success'),\n index: 100,\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n loading,\n basePath,\n refresh,\n\n showImportForm,\n importSelectedFile,\n importLanguage,\n importIgnoreFirstLine,\n importDelimiter,\n availableLanguages,\n submitFileImport,\n\n icons: {\n import: icons.import,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ControlsView.vue?vue&type=template&id=cef7dce0&scoped=true&\"\nimport script from \"./ControlsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ControlsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cef7dce0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VFileInput } from 'vuetify/lib/components/VFileInput';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VFileInput,VIcon,VSelect,VSimpleCheckbox,VTextField})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Ripple from 'vuetify/lib/directives/ripple'\ninstallDirectives(component, {Ripple})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('statistics-assessments-risk-level')],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('statistics-risks-per-scale')],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"3\"}}),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('statistics-partition-statuses')],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('statistics-location-statuses')],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-echarts',{attrs:{\"styling\":\"width: 100%; height: 400px\",\"options\":_vm.option}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport PdEcharts from '../core/charts/echarts/PdEcharts.vue';\n\nexport default defineComponent({\n name: 'StatisticsAssessmentsRiskLevel',\n\n components: {\n PdEcharts,\n },\n\n props: {\n\n },\n\n setup() {\n const option = {\n title: {\n text: 'Current/Residual Risk Levels',\n left: 'center',\n },\n legend: {\n data: ['Current', 'Residual'],\n top: 'bottom',\n },\n radar: {\n indicator: [\n { name: 'Fire Measure - Athens Stadiou Building', max: 25 },\n { name: 'Cholargos Building Assessment', max: 25 },\n { name: 'Resilience Assessment', max: 25 },\n { name: 'Fire Measure - Athens Stadiou Building', max: 25 },\n { name: 'Cholargos Building Assessment', max: 25 },\n { name: 'Resilience Assessment', max: 25 },\n { name: 'Fire Measure - Athens Stadiou Building', max: 25 },\n { name: 'Cholargos Building Assessment', max: 25 },\n { name: 'Resilience Assessment', max: 25 },\n ],\n },\n series: [\n {\n name: 'Current vs Residual',\n type: 'radar',\n data: [\n {\n value: [10.98, 25, 23, 14, 22, 18, 12, 14, 13],\n name: 'Current',\n },\n {\n value: [4.65, 25, 14, 7, 10, 16, 4, 8, 8],\n name: 'Residual',\n },\n ],\n },\n ],\n };\n\n return {\n option,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatisticsAssessmentsRiskLevel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatisticsAssessmentsRiskLevel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StatisticsAssessmentsRiskLevel.vue?vue&type=template&id=3c883be7&scoped=true&\"\nimport script from \"./StatisticsAssessmentsRiskLevel.vue?vue&type=script&lang=ts&\"\nexport * from \"./StatisticsAssessmentsRiskLevel.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3c883be7\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-echarts',{attrs:{\"styling\":\"width: 100%; height: 400px\",\"options\":_vm.graphOptions}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport PdEcharts from '../core/charts/echarts/PdEcharts.vue';\n\nexport default defineComponent({\n name: 'StatisticsLocationStatuses',\n\n components: {\n PdEcharts,\n },\n\n setup() {\n const gaugeData = [\n {\n value: 3,\n name: 'Acceptance',\n title: {\n offsetCenter: ['0%', '28%'],\n },\n detail: {\n valueAnimation: true,\n offsetCenter: ['0%', '40%'],\n },\n },\n {\n value: 6,\n name: 'Treatment',\n title: {\n offsetCenter: ['0%', '-2%'],\n },\n detail: {\n valueAnimation: true,\n offsetCenter: ['0%', '10%'],\n },\n },\n {\n value: 11,\n name: 'Assessment',\n title: {\n offsetCenter: ['0%', '-32%'],\n },\n detail: {\n valueAnimation: true,\n offsetCenter: ['0%', '-20%'],\n },\n },\n ];\n\n const graphOptions = {\n title: {\n text: 'Locations Assessments',\n subtext: 'Total: 13',\n left: 'center',\n },\n series: [\n {\n type: 'gauge',\n max: 13,\n startAngle: 90,\n endAngle: -270,\n pointer: {\n show: false,\n },\n progress: {\n show: true,\n overlap: false,\n roundCap: true,\n clip: false,\n itemStyle: {\n borderWidth: 1,\n borderColor: '#464646',\n },\n },\n axisLine: {\n lineStyle: {\n width: 40,\n },\n },\n splitLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n axisLabel: {\n show: false,\n },\n data: gaugeData,\n title: {\n fontSize: 14,\n },\n detail: {\n width: 50,\n height: 14,\n fontSize: 14,\n color: 'inherit',\n formatter: '{value}',\n },\n },\n ],\n };\n\n return {\n graphOptions,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatisticsLocationStatuses.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatisticsLocationStatuses.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StatisticsLocationStatuses.vue?vue&type=template&id=8ec45916&scoped=true&\"\nimport script from \"./StatisticsLocationStatuses.vue?vue&type=script&lang=ts&\"\nexport * from \"./StatisticsLocationStatuses.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8ec45916\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-echarts',{attrs:{\"styling\":\"width: 100%; height: 400px\",\"options\":_vm.graphOptions}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport PdEcharts from '../core/charts/echarts/PdEcharts.vue';\n\nexport default defineComponent({\n name: 'StatisticsLocationStatuses',\n\n components: {\n PdEcharts,\n },\n\n setup() {\n const gaugeData = [\n {\n value: 18,\n name: 'Acceptance',\n title: {\n offsetCenter: ['0%', '28%'],\n },\n detail: {\n valueAnimation: true,\n offsetCenter: ['0%', '40%'],\n },\n },\n {\n value: 20,\n name: 'Treatment',\n title: {\n offsetCenter: ['0%', '-2%'],\n },\n detail: {\n valueAnimation: true,\n offsetCenter: ['0%', '10%'],\n },\n },\n {\n value: 28,\n name: 'Assessment',\n title: {\n offsetCenter: ['0%', '-32%'],\n },\n detail: {\n valueAnimation: true,\n offsetCenter: ['0%', '-20%'],\n },\n },\n ];\n\n const graphOptions = {\n title: {\n text: 'Partitions Assessments',\n subtext: 'Total: 35',\n left: 'center',\n },\n series: [\n {\n type: 'gauge',\n max: 35,\n startAngle: 90,\n endAngle: -270,\n pointer: {\n show: false,\n },\n progress: {\n show: true,\n overlap: false,\n roundCap: true,\n clip: false,\n itemStyle: {\n borderWidth: 1,\n borderColor: '#464646',\n },\n },\n axisLine: {\n lineStyle: {\n width: 40,\n },\n },\n splitLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n axisLabel: {\n show: false,\n },\n data: gaugeData,\n title: {\n fontSize: 14,\n },\n detail: {\n width: 50,\n height: 14,\n fontSize: 14,\n color: 'inherit',\n formatter: '{value}',\n },\n },\n ],\n };\n\n return {\n graphOptions,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatisticsPartitionStatuses.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatisticsPartitionStatuses.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StatisticsPartitionStatuses.vue?vue&type=template&id=287f88dd&scoped=true&\"\nimport script from \"./StatisticsPartitionStatuses.vue?vue&type=script&lang=ts&\"\nexport * from \"./StatisticsPartitionStatuses.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"287f88dd\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-echarts',{attrs:{\"styling\":\"width: 100%; height: 400px\",\"options\":_vm.option}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\nimport { defineComponent } from '@vue/composition-api';\nimport PdEcharts from '../core/charts/echarts/PdEcharts.vue';\n\nexport default defineComponent({\n name: 'StatisticsCurrentRisksPerScale',\n\n components: {\n PdEcharts,\n\n },\n\n props: {\n\n },\n\n setup() {\n const option = {\n title: {\n text: 'Risks Per Level',\n left: 'center',\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: 'shadow',\n },\n },\n legend: {\n top: 'bottom',\n },\n grid: {\n left: '3%',\n right: '4%',\n bottom: '30px',\n containLabel: true,\n },\n yAxis: {\n type: 'value',\n boundaryGap: [0, 0.01],\n },\n xAxis: {\n type: 'category',\n data: ['Very Low (2)', 'Low (9)', 'Medium (16)', 'High (21)', 'Extreme (25)'],\n },\n series: [\n {\n name: 'Current',\n type: 'bar',\n data: [5, 8, 12, 14, 7, 2],\n },\n {\n name: 'Residual',\n type: 'bar',\n data: [20, 18, 6, 4, 0],\n },\n ],\n };\n\n return {\n option,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatisticsRisksPerScale.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatisticsRisksPerScale.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StatisticsRisksPerScale.vue?vue&type=template&id=766247c5&scoped=true&\"\nimport script from \"./StatisticsRisksPerScale.vue?vue&type=script&lang=ts&\"\nexport * from \"./StatisticsRisksPerScale.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"766247c5\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdEcharts from '@/components/core/charts/echarts/PdEcharts.vue';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { checkTraCategory } from './TraComponentGuards';\nimport {\n StatisticsLocationStatuses,\n StatisticsPartitionStatuses,\n StatisticsAssessmentsRiskLevel,\n StatisticsRisksPerScale,\n} from '@/components/tra';\n\nexport default defineComponent({\n name: 'Dashboard',\n\n components: {\n PdEcharts,\n StatisticsLocationStatuses,\n StatisticsPartitionStatuses,\n StatisticsAssessmentsRiskLevel,\n StatisticsRisksPerScale,\n },\n\n setup() {\n const loading = ref(true);\n let params;\n try { params = checkTraCategory(); } catch { return; }\n console.log(params);\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n //\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n loading,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=1dcdc4aa&scoped=true&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1dcdc4aa\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('tra.impact.title')}},[_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":{ editable: true, hasDetails: false },\"sort\":\"value\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport i18n from '@/i18n';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { ApiDataSource } from '@/core/datasource';\nimport { PdColumnColor, PdColumnNumber, PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { checkTraCategory } from './TraComponentGuards';\nimport { ImpactScaleDto } from '@/dtos/tra';\nimport { NumberComparison } from '@/core/helpers/sort';\n\nexport default defineComponent({\n name: 'ImpactScalesView',\n\n components: {\n PdFormBase,\n PdDataTable,\n },\n\n setup() {\n const loading = ref(false);\n let params;\n try { params = checkTraCategory(); } catch { return; }\n\n const datasource = new ApiDataSource({ api: `masterplans/${params.entity}/tra/${params.category}/ImpactScales` });\n\n const headers: Array> = [\n {\n id: 'value',\n text: i18n.t('tra.incident.value').toString(),\n value: 'value',\n align: 'center',\n component: PdColumnNumber,\n width: '100px',\n sort: NumberComparison,\n },\n {\n id: 'name',\n text: i18n.t('tra.incident.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n template: (item) => {\n return LanguageTemplate(item, 'name');\n },\n },\n {\n id: 'color',\n text: i18n.t('tra.incident.color').toString(),\n value: 'color',\n component: PdColumnColor,\n width: '50px',\n template: (item) => {\n return { text: item.color || '' };\n },\n },\n ];\n\n return {\n loading,\n datasource,\n headers,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImpactScalesView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImpactScalesView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ImpactScalesView.vue?vue&type=template&id=47a86d7d&scoped=true&\"\nimport script from \"./ImpactScalesView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ImpactScalesView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"47a86d7d\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('tra.likelihood.title')}},[_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":{ editable: true, hasDetails: false },\"sort\":\"value\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport i18n from '@/i18n';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { ApiDataSource } from '@/core/datasource';\nimport { PdColumnColor, PdColumnNumber, PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { checkTraCategory } from './TraComponentGuards';\nimport { LikelihoodScaleDto } from '@/dtos/tra';\nimport { NumberComparison } from '@/core/helpers/sort';\n\nexport default defineComponent({\n name: 'LikelihoodScalesView',\n\n components: {\n PdFormBase,\n PdDataTable,\n },\n\n setup() {\n const loading = ref(false);\n let params;\n try { params = checkTraCategory(); } catch { return; }\n\n const datasource = new ApiDataSource({ api: `masterplans/${params.entity}/tra/${params.category}/LikelihoodScales` });\n\n const headers: Array> = [\n {\n id: 'value',\n text: i18n.t('tra.likelihood.value').toString(),\n value: 'value',\n align: 'center',\n component: PdColumnNumber,\n width: '100px',\n sort: NumberComparison,\n },\n {\n id: 'name',\n text: i18n.t('tra.likelihood.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n template: (item) => {\n return LanguageTemplate(item, 'name');\n },\n },\n {\n id: 'color',\n text: i18n.t('tra.likelihood.color').toString(),\n value: 'color',\n component: PdColumnColor,\n width: '50px',\n template: (item) => {\n return { text: item.color || '' };\n },\n },\n ];\n\n return {\n loading,\n datasource,\n headers,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LikelihoodScalesView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LikelihoodScalesView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LikelihoodScalesView.vue?vue&type=template&id=56170751&scoped=true&\"\nimport script from \"./LikelihoodScalesView.vue?vue&type=script&lang=ts&\"\nexport * from \"./LikelihoodScalesView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"56170751\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.loading)?_c('pd-form-base',{attrs:{\"title\":_vm.$t('tra.questionnaires.title'),\"loading\":_vm.loading}},[(_vm.showImportForm)?_c('pd-popup-card',{attrs:{\"visible\":\"\",\"width\":\"45rem\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tra.controls.import.title'))+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.showImportForm=false}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.submitFileImport}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")])]},proxy:true}],null,false,2018756138)},[_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('v-file-input',{attrs:{\"accept\":\".csv\",\"counter\":\"\",\"show-size\":\"\",\"truncate-length\":\"50\",\"placeholder\":\"Select file...\"},model:{value:(_vm.importSelectedFile),callback:function ($$v) {_vm.importSelectedFile=$$v},expression:\"importSelectedFile\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.ignoreFirstLine'))+\" \")]),_c('td',[_c('v-simple-checkbox',{directives:[{name:\"ripple\",rawName:\"v-ripple\"}],model:{value:(_vm.importIgnoreFirstLine),callback:function ($$v) {_vm.importIgnoreFirstLine=$$v},expression:\"importIgnoreFirstLine\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.delimiter'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"value\":\";\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.importDelimiter),callback:function ($$v) {_vm.importDelimiter=$$v},expression:\"importDelimiter\"}})],1)]),_c('tr',[_c('td',{staticClass:\"text-caption\",attrs:{\"colspan\":\"2\"}},[_c('i18n',{attrs:{\"path\":\"tra.controls.importFormat\"}},[_c('br')])],1)])])]):_vm._e(),_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":_vm.tableOptions,\"row-actions\":_vm.rowActions,\"sort\":\"name_en-US\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"},scopedSlots:_vm._u([{key:\"details\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('questionnaire-controls',{attrs:{\"entity-id\":_vm.entityId,\"tra-category-id\":_vm.traCategoryId,\"questionnaire-id\":item.id,\"controls\":_vm.controls}})]}}],null,false,1932869869)})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-data-table',{staticClass:\"ml-10 mb-12\",attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":_vm.tableOptions},on:{\"data-changed\":_vm.dataChanged},scopedSlots:_vm._u([{key:\"PopupEditorTitle\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tra.questionnaires.addControlTitle'))+\" \")]},proxy:true},{key:\"PopupEditorContent\",fn:function(ref){\nvar item = ref.item;\nvar save = ref.save;\nreturn [_c('control-selector',{staticStyle:{\"width\":\"800px\"},attrs:{\"controls\":_vm.availableControls,\"item\":item,\"save\":save}})]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PdDataTable, PdDataTableEditMode, PdDataTableHeader, PdDataTableOptions } from '@/components/core/PdDataTable';\nimport { ApiDataSource } from '@/core/datasource';\nimport { IItemWithControlDto, QuestionnaireControlDto, SimpleControlDto } from '@/dtos/tra';\nimport i18n from '@/i18n';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport ControlSelector from '../risks/ControlSelector.vue';\n\nexport default defineComponent({\n name: 'QuestionnaireControls',\n\n components: {\n ControlSelector,\n PdDataTable,\n },\n\n props: {\n entityId: {\n type: Number,\n required: true,\n },\n\n traCategoryId: {\n type: Number,\n required: true,\n },\n\n questionnaireId: {\n type: Number,\n required: true,\n },\n\n controls: {\n type: Array as PropType>,\n required: true,\n },\n },\n\n setup(props) {\n const datasource = new ApiDataSource({ api: `masterplans/${props.entityId}/tra/${props.traCategoryId}/Questionnaires/${props.questionnaireId}/Controls` });\n\n const availableControls = ref>([]);\n\n watch(\n () => props.controls,\n dataChanged,\n { immediate: true },\n );\n\n const tableOptions: PdDataTableOptions = {\n editable: {\n mode: PdDataTableEditMode.Popup,\n add: true,\n edit: false,\n delete: true,\n },\n pagination: false,\n };\n\n const headers: Array> = [\n {\n id: 'controlId',\n value: 'controlId',\n text: i18n.t('tra.questionnaireControls.control').toString(),\n visible: false,\n defaultValue: 0,\n },\n {\n id: 'controlText',\n value: 'controlText',\n text: i18n.t('tra.questionnaireControls.control').toString(),\n editable: false,\n template: (item) => {\n return { text: (item as QuestionnaireControlDto).controlText || '' };\n },\n },\n ];\n\n async function dataChanged() {\n try {\n const existing = (await datasource.data()).map(i => i.controlId);\n availableControls.value = props.controls.filter(i => !existing.some(ec => ec === i.id));\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n }\n }\n\n return {\n datasource,\n headers,\n tableOptions,\n\n availableControls,\n\n dataChanged,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionnaireControls.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionnaireControls.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./QuestionnaireControls.vue?vue&type=template&id=641c4d9c&scoped=true&\"\nimport script from \"./QuestionnaireControls.vue?vue&type=script&lang=ts&\"\nexport * from \"./QuestionnaireControls.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"641c4d9c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport { PdDataTable, PdDataTableHeader, PdDataTableOptions, PdDataTableRowAction } from '@/components/core/PdDataTable';\nimport { PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport icons from '@/core/icons';\nimport { UploadCsvFileDto } from '@/dtos';\nimport { QuestionnaireDto, SimpleControlDto } from '@/dtos/tra';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport { QuestionnairesService } from '@/services/tra';\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { checkTraCategory } from '../TraComponentGuards';\nimport QuestionnaireControls from './QuestionnaireControls.vue';\n\nconst headers: Array> = [\n {\n id: 'name',\n text: i18n.t('tra.questionnaires.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n template: (item) => {\n return LanguageTemplate(item, 'name');\n },\n },\n];\n\nexport default defineComponent({\n name: 'QuestionnairesView',\n\n components: {\n PdFormBase,\n PdDataTable,\n QuestionnaireControls,\n PdPopupCard,\n },\n\n props: {\n\n },\n\n setup() {\n const loading = ref(false);\n let params;\n try { params = checkTraCategory(); } catch { return { loading: true, refresh: '' }; }\n\n const showImportForm = ref(false);\n const importSelectedFile = ref(null);\n const importLanguage = ref(0);\n const importIgnoreFirstLine = ref(true);\n const importDelimiter = ref(';');\n let importingFor = 0;\n\n const tableOptions = ref>({\n editable: true,\n hasDetails: false,\n });\n\n const rowActions: Array = [\n {\n id: 'importCsv',\n text: i18n.t('import').toString(),\n icon: icons.import,\n action: (item) => {\n importSelectedFile.value = null;\n\n importingFor = item.id;\n\n showImportForm.value = true;\n\n return Promise.resolve(null);\n },\n },\n ];\n\n const datasource = new ApiDataSource({ api: `masterplans/${params.entity}/tra/${params.category}/Questionnaires` });\n\n const controlsDatasource = new ApiDataSource({ api: `masterplans/${params.entity}/tra/${params.category}/Controls/Simple` });\n\n const controls = ref>([]);\n\n watch(\n controls,\n () => {\n tableOptions.value.hasDetails = controls.value.length > 0;\n },\n );\n\n async function submitFileImport() {\n if (importSelectedFile.value == null) {\n PopupMessageService.SetMessage({\n title: i18n.t('error'),\n text: i18n.t('upload.selectFileError'),\n index: 100,\n });\n return;\n }\n\n if (!importDelimiter.value) {\n PopupMessageService.SetMessage({\n title: i18n.t('error'),\n text: i18n.t('upload.selectDelimiterError'),\n index: 100,\n });\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n const data: UploadCsvFileDto = {\n file: importSelectedFile.value,\n language: importLanguage.value,\n ignoreFirstLine: importIgnoreFirstLine.value,\n delimiter: importDelimiter.value,\n };\n\n await QuestionnairesService.ImportQuestionnaireControls(importingFor, data);\n\n showImportForm.value = false;\n\n PopupMessageService.SetMessage({\n title: i18n.t('success'),\n text: i18n.t('upload.success'),\n index: 100,\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n loading.value = true;\n try {\n controls.value = await controlsDatasource.get();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n\n return {\n loading,\n headers,\n tableOptions,\n rowActions,\n\n datasource,\n controls,\n\n entityId: params.entity,\n traCategoryId: params.category,\n\n showImportForm,\n importSelectedFile,\n importLanguage,\n importIgnoreFirstLine,\n importDelimiter,\n submitFileImport,\n\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionnairesView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionnairesView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./QuestionnairesView.vue?vue&type=template&id=a1b0496a&scoped=true&\"\nimport script from \"./QuestionnairesView.vue?vue&type=script&lang=ts&\"\nexport * from \"./QuestionnairesView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a1b0496a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VFileInput } from 'vuetify/lib/components/VFileInput';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VFileInput,VSimpleCheckbox,VTextField})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Ripple from 'vuetify/lib/directives/ripple'\ninstallDirectives(component, {Ripple})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.loading)?_c('pd-form-base',{attrs:{\"title\":\"Risk Categories\"}},[(_vm.showEditingDialog)?_c('pd-popup',{attrs:{\"visible\":true,\"index\":5}},[_c('v-card',{attrs:{\"light\":\"\",\"width\":\"900px\",\"max-height\":\"800px\"}},[_c('div',{staticClass:\"pa-4\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('tra.riskCategories.name')},model:{value:(_vm.editingItem.translations['en-US'].name),callback:function ($$v) {_vm.$set(_vm.editingItem.translations['en-US'], \"name\", $$v)},expression:\"editingItem.translations['en-US'].name\"}})],1),_c('v-card-actions',{staticClass:\"justify-center\"},[_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.editingItem = null}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('edit.save'))+\" \")])],1)],1)],1):_vm._e(),_c('pd-tree-view',{attrs:{\"items\":_vm.items,\"translatable\":\"\",\"allow-add\":\"\",\"allow-edit\":\"\",\"allow-remove\":\"\"},on:{\"add-item\":_vm.addItem,\"edit-item\":_vm.editItem,\"remove-item\":_vm.removeItem}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, ref } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { ApiDataSource } from '@/core/datasource';\nimport PdTreeView from '@/components/core/PdTreeView/PdTreeView.vue';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport i18n from '@/i18n';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { v4 } from 'uuid';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport PdPopup from '@/components/core/PdPopup.vue';\nimport { checkTraCategory } from '../TraComponentGuards';\nimport { RiskCategoryDto } from '@/dtos/tra';\nimport { AxiosError } from 'axios';\n\nexport default defineComponent({\n name: 'RiskCategoriesView',\n\n components: {\n PdFormBase,\n PdTreeView,\n PdPopup,\n },\n\n setup() {\n let params;\n try { params = checkTraCategory(); } catch { return { loading: true }; }\n\n const datasource = new ApiDataSource({ api: `masterplans/${params.entity}/tra/${params.category}/RiskCategories` });\n\n const items = ref([]);\n const loading = ref(true);\n\n const editingItem = ref();\n let editingParent: RiskCategoryDto | null = null;\n\n const showEditingDialog = computed(() => {\n return editingItem.value != null;\n });\n\n datasource.data().then((data) => {\n items.value = data;\n loading.value = false;\n });\n\n function allowAdd(depth: number): boolean {\n return depth < 2;\n }\n\n function addItem(parent: RiskCategoryDto | null) {\n editingParent = parent;\n editingItem.value = {\n id: 0,\n translations: { 'en-US': { name: '' } },\n parentId: parent?.id,\n children: [],\n detailedName: '',\n };\n }\n\n function editItem({ item, parent }: { item: RiskCategoryDto, parent: RiskCategoryDto | null }) {\n editingItem.value = JSON.parse(JSON.stringify(item));\n editingParent = parent;\n }\n\n function removeItem({ item, parent }: { item: RiskCategoryDto, parent: RiskCategoryDto | null }) {\n PopupMessageService.SetMessage({\n title: i18n.t('incident.type.dialog.removeTitle').toString(),\n text: i18n.t('incident.type.dialog.remove', { item: LanguageTemplate(item, 'name').text }).toString(),\n buttons: [{\n id: 'yes',\n text: i18n.t('yes').toString(),\n color: 'success',\n callback: async () => {\n const busy = BusyIndicatorService.SetBusy(i18n.t('busy.deleting', { item: LanguageTemplate(item, 'name').text }).toString());\n try {\n await datasource.delete(item);\n\n if (parent == null) {\n for (let i = 0; i < items.value.length; ++i) {\n if (items.value[i].id === item.id) {\n items.value.splice(i, 1);\n break;\n }\n }\n } else {\n if (parent.children == null) {\n parent.children = [];\n }\n\n for (let i = 0; i < parent.children.length; ++i) {\n if (parent.children[i].id === item.id) {\n parent.children.splice(i, 1);\n break;\n }\n }\n }\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n },\n close: () => true,\n },\n {\n id: 'no',\n color: 'error',\n text: i18n.t('no').toString(),\n close: () => true,\n }],\n });\n }\n\n async function saveChanges() {\n if (editingItem.value == null) {\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('busy.saving').toString());\n\n try {\n if (editingItem.value.id === 0) {\n const saved = await datasource.create(editingItem.value);\n\n if (editingParent != null) {\n editingParent.children?.push(saved);\n } else {\n items.value.push(saved);\n }\n } else {\n const saved = await datasource.update(editingItem.value);\n\n if (editingParent == null) {\n for (let i = 0; i < items.value.length; ++i) {\n if (items.value[i].id === editingItem.value.id) {\n items.value[i].translations = saved.translations;\n items.value[i].uuid = v4();\n break;\n }\n }\n } else {\n if (editingParent.children == null) {\n editingParent.children = [];\n }\n\n for (let i = 0; i < editingParent.children.length; ++i) {\n if (editingParent.children[i].id === editingItem.value.id) {\n editingParent.children[i].translations = saved.translations;\n editingParent.children[i].uuid = v4();\n break;\n }\n }\n }\n }\n\n editingItem.value = null;\n editingParent = null;\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n allowAdd,\n addItem,\n editItem,\n editingItem,\n showEditingDialog,\n removeItem,\n saveChanges,\n loading,\n items,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RiskCategoriesView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RiskCategoriesView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RiskCategoriesView.vue?vue&type=template&id=0e61355a&scoped=true&\"\nimport script from \"./RiskCategoriesView.vue?vue&type=script&lang=ts&\"\nexport * from \"./RiskCategoriesView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0e61355a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCardActions,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.loading)?_c('pd-form-base',{key:_vm.refresh,attrs:{\"title\":_vm.$t('tra.risks.title'),\"loading\":_vm.loading}},[(_vm.showRisksImportForm)?_c('pd-popup-card',{attrs:{\"visible\":\"\",\"width\":\"45rem\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tra.risks.import.risksTitle'))+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.showRisksImportForm=false}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":function($event){return _vm.submitFileImport('risks')}}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")])]},proxy:true}],null,false,708111544)},[_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('v-file-input',{attrs:{\"accept\":\".csv\",\"counter\":\"\",\"show-size\":\"\",\"truncate-length\":\"50\",\"placeholder\":\"Select file...\"},model:{value:(_vm.importSelectedFile),callback:function ($$v) {_vm.importSelectedFile=$$v},expression:\"importSelectedFile\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.language'))+\" \")]),_c('td',[_c('v-select',{attrs:{\"items\":_vm.availableLanguages},model:{value:(_vm.importLanguage),callback:function ($$v) {_vm.importLanguage=$$v},expression:\"importLanguage\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.ignoreFirstLine'))+\" \")]),_c('td',[_c('v-simple-checkbox',{directives:[{name:\"ripple\",rawName:\"v-ripple\"}],model:{value:(_vm.importIgnoreFirstLine),callback:function ($$v) {_vm.importIgnoreFirstLine=$$v},expression:\"importIgnoreFirstLine\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.delimiter'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"value\":\";\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.importDelimiter),callback:function ($$v) {_vm.importDelimiter=$$v},expression:\"importDelimiter\"}})],1)]),_c('tr',[_c('td',{staticClass:\"text-caption\",attrs:{\"colspan\":\"2\"}},[_c('i18n',{attrs:{\"path\":\"tra.risks.importRisksFormat\"}},[_c('br')])],1)])])]):_vm._e(),(_vm.showRiskControlsImportForm)?_c('pd-popup-card',{attrs:{\"visible\":\"\",\"width\":\"45rem\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tra.risks.import.riskControlsTitle'))+\" \")]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\"},on:{\"click\":function($event){_vm.showRiskControlsImportForm=false}}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":function($event){return _vm.submitFileImport('riskControls')}}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")])]},proxy:true}],null,false,2364409023)},[_c('table',{staticClass:\"editor-table\"},[_c('tr',[_c('td',{attrs:{\"colspan\":\"2\"}},[_c('v-file-input',{attrs:{\"accept\":\".csv\",\"counter\":\"\",\"show-size\":\"\",\"truncate-length\":\"50\",\"placeholder\":\"Select file...\"},model:{value:(_vm.importSelectedFile),callback:function ($$v) {_vm.importSelectedFile=$$v},expression:\"importSelectedFile\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.ignoreFirstLine'))+\" \")]),_c('td',[_c('v-simple-checkbox',{directives:[{name:\"ripple\",rawName:\"v-ripple\"}],model:{value:(_vm.importIgnoreFirstLine),callback:function ($$v) {_vm.importIgnoreFirstLine=$$v},expression:\"importIgnoreFirstLine\"}})],1)]),_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.$t('importcsv.delimiter'))+\" \")]),_c('td',[_c('v-text-field',{attrs:{\"value\":\";\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.importDelimiter),callback:function ($$v) {_vm.importDelimiter=$$v},expression:\"importDelimiter\"}})],1)]),_c('tr',[_c('td',{staticClass:\"text-caption\",attrs:{\"colspan\":\"2\"}},[_c('i18n',{attrs:{\"path\":\"tra.risks.importRiskControlsFormat\"}},[_c('br')])],1)])])]):_vm._e(),_c('risks',{attrs:{\"risks-url\":_vm.risksUrl,\"controls-url\":_vm.controlsUrl,\"show-risk-categories\":\"\",\"allow-creation\":\"\"},scopedSlots:_vm._u([{key:\"buttons\",fn:function(){return [_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-2 text-none px-2\",attrs:{\"depressed\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.icons.import)+\" \")]),_vm._v(\" \"+_vm._s(_vm.$t('import'))+\" \")],1)]}}],null,false,365706109)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.importData('risks')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('tra.risks.importRisks')))])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.importData('riskControls')}}},[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('tra.risks.importRiskControls')))])],1)],1)],1)]},proxy:true}],null,false,3647340113)})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport { defineComponent, ref } from '@vue/composition-api';\nimport { checkTraCategory } from '../TraComponentGuards';\nimport Risks from './Risks.vue';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport { v4 } from 'uuid';\nimport { ApplicationModule } from '@/store';\nimport { ISelectItem } from '@/core';\nimport PopupMessageService from '@/services/PopupMessageService';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport { UploadCsvFileDto } from '@/dtos';\nimport { RisksService } from '@/services/tra';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport icons from '@/core/icons';\n\nexport default defineComponent({\n name: 'RisksView',\n\n components: {\n PdFormBase,\n Risks,\n PdPopupCard,\n },\n\n setup() {\n const loading = ref(false);\n let params;\n try { params = checkTraCategory(); } catch { return { loading: true, refresh: '' }; }\n\n const entity = ApplicationModule.Entity;\n if (entity == null) { return; }\n\n const refresh = ref(v4());\n\n const showRisksImportForm = ref(false);\n const showRiskControlsImportForm = ref(false);\n\n const importSelectedFile = ref(null);\n const importLanguage = ref(0);\n const importIgnoreFirstLine = ref(true);\n const importDelimiter = ref(';');\n\n const availableLanguages: Array = [];\n for (let i = 0; i < entity.languages.length; ++i) {\n if (importLanguage.value === 0) {\n importLanguage.value = entity.languages[i].languageId;\n }\n\n availableLanguages.push({\n text: entity.languages[i].language,\n value: entity.languages[i].languageId,\n });\n }\n\n const risksUrl = `masterplans/${params.entity}/tra/${params.category}/Risks`;\n const controlsUrl = `masterplans/${params.entity}/tra/${params.category}/Controls/Simple`;\n\n function importData(type: string) {\n if (type === 'risks') {\n showRisksImportForm.value = true;\n } else if (type === 'riskControls') {\n showRiskControlsImportForm.value = true;\n } else {\n throw new Error(`Unknown import type \"${type}\"`);\n }\n }\n\n async function submitFileImport(type: string) {\n if (importSelectedFile.value == null) {\n PopupMessageService.SetMessage({\n title: i18n.t('error'),\n text: i18n.t('upload.selectFileError'),\n index: 100,\n });\n return;\n }\n\n if (!importDelimiter.value) {\n PopupMessageService.SetMessage({\n title: i18n.t('error'),\n text: i18n.t('upload.selectDelimiterError'),\n index: 100,\n });\n return;\n }\n\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n const data: UploadCsvFileDto = {\n file: importSelectedFile.value,\n language: importLanguage.value,\n ignoreFirstLine: importIgnoreFirstLine.value,\n delimiter: importDelimiter.value,\n };\n\n if (type === 'risks') {\n await RisksService.ImportRisks(data);\n } else if (type === 'riskControls') {\n await RisksService.ImportRiskControls(data);\n } else {\n throw new Error(`Unknown import type \"${type}\"`);\n }\n\n showRisksImportForm.value = false;\n showRiskControlsImportForm.value = false;\n\n refresh.value = v4();\n\n PopupMessageService.SetMessage({\n title: i18n.t('success'),\n text: i18n.t('upload.success'),\n index: 100,\n });\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n return {\n loading,\n risksUrl,\n controlsUrl,\n\n refresh,\n\n importData,\n\n showRisksImportForm,\n showRiskControlsImportForm,\n\n importSelectedFile,\n importLanguage,\n importIgnoreFirstLine,\n importDelimiter,\n availableLanguages,\n\n submitFileImport,\n\n icons: {\n import: icons.import,\n },\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RisksView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RisksView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RisksView.vue?vue&type=template&id=6ef91cfb&scoped=true&\"\nimport script from \"./RisksView.vue?vue&type=script&lang=ts&\"\nexport * from \"./RisksView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6ef91cfb\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VFileInput } from 'vuetify/lib/components/VFileInput';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSimpleCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VFileInput,VIcon,VList,VListItem,VListItemTitle,VMenu,VSelect,VSimpleCheckbox,VTextField})\n\n\n/* vuetify-loader */\nimport installDirectives from \"!../../../../node_modules/vuetify-loader/lib/runtime/installDirectives.js\"\nimport Ripple from 'vuetify/lib/directives/ripple'\ninstallDirectives(component, {Ripple})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('tra.riskScales.title')}},[_c('risk-methodology',{attrs:{\"risk-scales\":_vm.datasource,\"show-advanced-mode\":_vm.showAdvancedMode},on:{\"update:showAdvancedMode\":function($event){_vm.showAdvancedMode=$event},\"update:show-advanced-mode\":function($event){_vm.showAdvancedMode=$event},\"has-changes\":_vm.riskMethodologyHasChanges,\"changed\":_vm.updateChart}}),_c('v-card',{attrs:{\"elevation\":\"0\",\"disabled\":_vm.advancedModeHasChanges}},[_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":{ editable: true },\"sort\":\"value\",\"sort-direction\":\"asc\",\"height\":\"400px\",\"search\":\"\"},on:{\"data-changed\":_vm.updateChart,\"editing-changed\":_vm.tableEditingChanged}})],1),_c('risk-methodology-chart',{attrs:{\"update\":_vm.chartUuid}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-row',{staticClass:\"text-end my-2\",staticStyle:{\"height\":\"28px\"},attrs:{\"no-gutters\":\"\"}},[_c('v-fade-transition',[(_vm.showAdvancedMode && _vm.hasChanges)?_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"text-none mr-2\",attrs:{\"small\":\"\",\"color\":\"success\"},on:{\"click\":_vm.saveChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('save'))+\" \")])],1):_vm._e()],1),_c('v-fade-transition',[(_vm.showAdvancedMode && _vm.hasChanges)?_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{staticClass:\"text-none \",attrs:{\"small\":\"\",\"color\":\"error\"},on:{\"click\":_vm.discardChanges}},[_vm._v(\" \"+_vm._s(_vm.$t('discardChanges'))+\" \")])],1):_vm._e()],1),_c('v-col',[_c('label',{staticClass:\"v-label theme--light pr-2\",staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":function($event){return _vm.$emit('update:showAdvancedMode', !_vm.showAdvancedMode)}}},[_vm._v(_vm._s(_vm.$t('tra.riskScales.advancedMode')))])]),_c('v-col',{staticClass:\"shrink\"},[_c('v-switch',{staticClass:\"d-inline \",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"disabled\":_vm.hasChanges},model:{value:(_vm._showAdvancedMode),callback:function ($$v) {_vm._showAdvancedMode=$$v},expression:\"_showAdvancedMode\"}})],1)],1),_c('v-expand-transition',[(_vm.showAdvancedMode)?_c('div',[_c('v-row',[_c('v-col',[_c('v-text-field',{attrs:{\"label\":_vm.$t('tra.riskMethodology.riskCalculationEquation')},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('span',{staticClass:\"my-1\"},[_vm._v(\" R = \")])]},proxy:true},{key:\"prepend\",fn:function(){return [_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"left\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.mdiInformation)+\" \")])]}}],null,false,232783299)},[_c('h4',[_vm._v(_vm._s(_vm.$t('tra.riskMethodology.riskCalculationEquation')))]),_vm._v(\" The formula to be used in order to calculate the Risk Value with support for \\\"Excel Like\\\" formulas.\"),_c('br'),_vm._v(\" Parameters: \"),_c('ul',[_c('li',[_vm._v(\" L - Likelihood Value \")]),_c('li',[_vm._v(\" I - Impact Value \")])]),_c('br'),_vm._v(\" Default Formula: L * I \"),_c('br'),_c('br'),_vm._v(\" Other Common Formulas: \"),_c('ul',[_c('li',[_vm._v(\"L * I^2 \"),_c('i',{staticClass:\"ml-4\"},[_vm._v(\"Impact weights more than Likelihood\")])]),_c('li',[_vm._v(\"sqrt(L) * I^2 \"),_c('i',{staticClass:\"ml-4\"},[_vm._v(\"Impact weights alot more than Likelihood\")])]),_c('li',[_vm._v(\"if(I > 4.5 , 25, if (I>3.5 && L * I < 13, 13, L * I)) \"),_c('i',{staticClass:\"ml-4\"},[_vm._v(\"Custom values with if syntax\")])])])])]},proxy:true}],null,false,4160919861),model:{value:(_vm.riskMethodology.riskCalculationEquation),callback:function ($$v) {_vm.$set(_vm.riskMethodology, \"riskCalculationEquation\", $$v)},expression:\"riskMethodology.riskCalculationEquation\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('tra.riskMethodology.minRiskValue')},on:{\"keypress\":_vm.preventNonNumericalInput},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"left\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.mdiInformation)+\" \")])]}}],null,false,232783299)},[_c('span',[_vm._v(\"Programmatic tooltip\")])])]},proxy:true}],null,false,551655467),model:{value:(_vm.riskMethodology.minRiskValue),callback:function ($$v) {_vm.$set(_vm.riskMethodology, \"minRiskValue\", $$v)},expression:\"riskMethodology.minRiskValue\"}}),_c('v-select',{attrs:{\"label\":_vm.$t('tra.riskMethodology.riskAppetite'),\"items\":_vm.riskScalesItems},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"left\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.mdiInformation)+\" \")])]}}],null,false,232783299)},[_c('span',[_vm._v(\"Programmatic tooltip\")])])]},proxy:true}],null,false,551655467),model:{value:(_vm.riskMethodology.riskAppetiteId),callback:function ($$v) {_vm.$set(_vm.riskMethodology, \"riskAppetiteId\", $$v)},expression:\"riskMethodology.riskAppetiteId\"}}),_c('v-switch',{attrs:{\"label\":_vm.$t('tra.riskMethodology.interpolateRiskValues')},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"left\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.mdiInformation)+\" \")])]}}],null,false,232783299)},[_c('span',[_vm._v(\"Programmatic tooltip\")])])]},proxy:true}],null,false,551655467),model:{value:(_vm.riskMethodology.interpolateRiskValues),callback:function ($$v) {_vm.$set(_vm.riskMethodology, \"interpolateRiskValues\", $$v)},expression:\"riskMethodology.interpolateRiskValues\"}}),_c('v-expand-transition',[(_vm.riskMethodology.interpolateRiskValues)?_c('v-text-field',{attrs:{\"label\":_vm.$t('tra.riskMethodology.maxRiskValue')},on:{\"keypress\":_vm.preventNonNumericalInput},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"left\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.mdiInformation)+\" \")])]}}],null,false,232783299)},[_c('span',[_vm._v(\"Programmatic tooltip\")])])]},proxy:true}],null,false,551655467),model:{value:(_vm.riskMethodology.maxRiskValue),callback:function ($$v) {_vm.$set(_vm.riskMethodology, \"maxRiskValue\", $$v)},expression:\"riskMethodology.maxRiskValue\"}}):_vm._e()],1),_c('v-radio-group',{attrs:{\"label\":_vm.$t('tra.riskMethodology.dropType')},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"left\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.mdiInformation)+\" \")])]}}],null,false,232783299)},[_c('span',[_vm._v(\"Programmatic tooltip\")])])]},proxy:true}],null,false,551655467),model:{value:(_vm.riskMethodology.dropType),callback:function ($$v) {_vm.$set(_vm.riskMethodology, \"dropType\", $$v)},expression:\"riskMethodology.dropType\"}},[_c('v-radio',{attrs:{\"value\":1,\"label\":_vm.$t('tra.riskMethodology.dropTypeAbsolute')}}),_c('v-radio',{attrs:{\"value\":2,\"label\":_vm.$t('tra.riskMethodology.dropTypeRelative')}})],1)],1)],1),_c('v-divider',{staticClass:\"my-4\"})],1):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { RiskControlDropType, RiskMethodologyDto, RiskScaleDto } from '@/dtos/tra';\nimport i18n from '@/i18n';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { RiskMethodologyService } from '@/services/tra';\nimport { computed, defineComponent, PropType, ref, watch } from '@vue/composition-api';\nimport { AxiosError } from 'axios';\nimport { cloneDeep } from 'lodash';\nimport { v4 } from 'uuid';\nimport { mdiInformation } from '@mdi/js';\nimport preventNonNumericalInput from '@/components/core/PreventNonNumericalInput';\nimport { ApiDataSource } from '@/core/datasource';\nimport { ISelectItem } from '@/core';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'RiskMethodology',\n\n components: {},\n\n props: {\n riskScales: {\n type: Object as PropType>,\n required: true,\n },\n\n showAdvancedMode: {\n type: Boolean,\n required: true,\n },\n },\n\n setup(props, { emit }) {\n const riskMethodologyOriginal = ref(null);\n const riskMethodology = ref({\n riskCalculationEquation: '',\n minRiskValue: 1,\n maxRiskValue: 1,\n interpolateRiskValues: false,\n dropType: RiskControlDropType.Absolute,\n riskAppetiteId: null,\n id: 0,\n uuid: v4(),\n });\n\n const _showAdvancedMode = ref(props.showAdvancedMode);\n\n watch(\n _showAdvancedMode,\n (value) => {\n emit('update:showAdvancedMode', value);\n },\n );\n\n watch(\n () => props.showAdvancedMode,\n async (value) => {\n _showAdvancedMode.value = value;\n if (value === true) {\n riskScalesItems.value = (await props.riskScales.data()).sort((a, b) => a.value - b.value).map(i => {\n return {\n text: `${LanguageTemplate(i, 'name').text} (${i.value})`,\n value: i.id,\n };\n });\n }\n },\n );\n\n const riskScalesItems = ref>([]);\n\n watch(\n riskMethodologyOriginal,\n (newValue) => {\n if (newValue == null) {\n return;\n }\n\n newValue.uuid = v4();\n riskMethodology.value = cloneDeep(newValue);\n },\n );\n\n const hasChanges = computed(() => {\n const ori = riskMethodologyOriginal.value;\n const cur = riskMethodology.value;\n if (ori == null) {\n return false;\n }\n\n const currentMin = parseFloat(cur.minRiskValue.toString());\n const currentMax = parseFloat(cur.maxRiskValue.toString());\n\n return ori.riskCalculationEquation !== cur.riskCalculationEquation ||\n ori.minRiskValue !== currentMin ||\n ori.maxRiskValue !== currentMax ||\n ori.interpolateRiskValues !== cur.interpolateRiskValues ||\n ori.riskAppetiteId !== cur.riskAppetiteId ||\n ori.dropType !== cur.dropType;\n });\n\n watch(\n hasChanges,\n (newValue) => {\n emit('has-changes', newValue);\n },\n );\n\n async function saveChanges() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('saving').toString());\n try {\n riskMethodologyOriginal.value = await RiskMethodologyService.UpdateMethodology(riskMethodology.value);\n emit('changed');\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n }\n\n function discardChanges() {\n if (riskMethodologyOriginal.value == null) {\n return;\n }\n riskMethodology.value = cloneDeep(riskMethodologyOriginal.value);\n }\n\n (async function init() {\n const busy = BusyIndicatorService.SetBusy(i18n.t('loading').toString());\n try {\n riskMethodologyOriginal.value = await RiskMethodologyService.GetMethodology();\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n } finally {\n BusyIndicatorService.RemoveBusy(busy);\n }\n })();\n return {\n riskMethodology,\n riskMethodologyOriginal,\n _showAdvancedMode,\n\n riskScalesItems,\n\n hasChanges,\n discardChanges,\n saveChanges,\n\n preventNonNumericalInput,\n\n mdiInformation,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RiskMethodology.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RiskMethodology.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RiskMethodology.vue?vue&type=template&id=79056b9e&scoped=true&\"\nimport script from \"./RiskMethodology.vue?vue&type=script&lang=ts&\"\nexport * from \"./RiskMethodology.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"79056b9e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VFadeTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCol,VDivider,VExpandTransition,VFadeTransition,VIcon,VRadio,VRadioGroup,VRow,VSelect,VSwitch,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-radio-group',{attrs:{\"label\":\"Chart Resolution\",\"dense\":\"\",\"hide-details\":\"\",\"row\":\"\"},model:{value:(_vm.chartResolution),callback:function ($$v) {_vm.chartResolution=$$v},expression:\"chartResolution\"}},[_c('v-radio',{attrs:{\"label\":\"1\",\"value\":1}}),_c('v-radio',{attrs:{\"label\":\"0.5\",\"value\":0.5}}),_c('v-radio',{attrs:{\"label\":\"0.1\",\"value\":0.1}})],1),_c('v-sheet',{staticClass:\"shrink\",attrs:{\"elevation\":\"1\",\"width\":\"600px\",\"height\":\"600px\"}},[_c('pd-echarts',{attrs:{\"options\":_vm.chartOptions,\"styling\":\"width: 600px; height: 600px\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport PdEcharts from '@/components/core/charts/echarts/PdEcharts.vue';\nimport { EChartsOption } from 'echarts';\nimport { RiskMethodologyService } from '@/services/tra';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport { LanguageTemplate } from '@/core/helpers/templates';\n\nexport default defineComponent({\n name: 'RiskMethodologyChart',\n\n components: {\n PdEcharts,\n },\n\n props: {\n update: {\n type: String,\n required: false,\n },\n },\n\n setup(props) {\n const loading = ref(false);\n const chartResolution = ref(1);\n\n const chartOptions = ref({\n toolbox: {\n show: true,\n right: '50px',\n feature: {\n saveAsImage: {},\n },\n },\n tooltip: {\n position: 'top',\n },\n grid: {\n height: '60%',\n top: '10%',\n },\n xAxis: {\n type: 'category',\n name: 'Impact',\n data: [], // x\n splitArea: {\n show: true,\n },\n },\n yAxis: {\n type: 'category',\n name: 'Likelihood',\n data: [], // y\n splitArea: {\n show: true,\n },\n },\n visualMap: {\n min: 0,\n max: 25,\n calculable: true,\n\n orient: 'horizontal',\n left: 'center',\n bottom: '15%',\n\n type: 'piecewise',\n pieces: [\n // Range of a piece can be specified by property min and max,\n // where min will be set as -Infinity if ignored,\n // and max will be set as Infinity if ignored.\n { min: 14, max: 25, label: 'Very Low', color: '#E76F51' },\n { min: 9, max: 14, label: 'Low', color: '#F4A261' },\n { min: 6, max: 9, label: 'Medium', color: '#E9C46A' },\n { min: 3, max: 6, label: 'high', color: '#669E2B' },\n { min: 0, max: 3, label: 'Very High', color: '#27543C' },\n ],\n },\n series: [\n {\n name: 'Risk Level',\n type: 'heatmap',\n data: [[]], // data\n label: {\n show: false,\n },\n emphasis: {\n itemStyle: {\n shadowBlur: 10,\n shadowColor: 'rgba(0, 0, 0, 0.5)',\n },\n },\n },\n ],\n });\n\n watch(\n chartResolution,\n () => {\n updateRiskChart();\n },\n );\n\n watch(\n () => props.update,\n () => {\n updateRiskChart();\n },\n { immediate: true },\n );\n\n async function updateRiskChart() {\n try {\n const data = await RiskMethodologyService.GetChart(chartResolution.value);\n const scales: Array<{ min: number, max: number, label: string, color: string }> = [];\n let prev = 0;\n data.scales.forEach(s => {\n scales.push({\n min: prev,\n max: s.value,\n label: LanguageTemplate(s, 'name').text,\n color: s.color,\n });\n\n prev = s.value;\n });\n\n chartOptions.value = {\n toolbox: {\n show: true,\n right: '50px',\n feature: {\n saveAsImage: {},\n },\n },\n tooltip: {\n position: 'top',\n },\n grid: {\n height: '60%',\n top: '10%',\n },\n xAxis: {\n type: 'category',\n name: 'Impact',\n data: data.xAxis, // x\n splitArea: {\n show: true,\n },\n },\n yAxis: {\n type: 'category',\n name: 'Likelihood',\n data: data.yAxis, // y\n splitArea: {\n show: true,\n },\n },\n visualMap: {\n min: 0,\n max: 25,\n calculable: true,\n\n orient: 'horizontal',\n left: 'center',\n bottom: '15%',\n\n type: 'piecewise',\n pieces: scales,\n },\n series: [\n {\n name: 'Risk Level',\n type: 'heatmap',\n data: data.data, // data\n label: {\n show: false,\n },\n emphasis: {\n itemStyle: {\n shadowBlur: 10,\n shadowColor: 'rgba(0, 0, 0, 0.5)',\n },\n },\n },\n ],\n };\n } catch (error) {\n ErrorHandlingService.Handle(error as AxiosError);\n }\n }\n return {\n loading,\n\n chartResolution,\n chartOptions,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RiskMethodologyChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RiskMethodologyChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RiskMethodologyChart.vue?vue&type=template&id=d713dffa&scoped=true&\"\nimport script from \"./RiskMethodologyChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./RiskMethodologyChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d713dffa\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\ninstallComponents(component, {VRadio,VRadioGroup,VSheet})\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport i18n from '@/i18n';\nimport { PdDataTable, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { ApiDataSource } from '@/core/datasource';\nimport { PdColumnColor, PdColumnNumber, PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { checkTraCategory } from './TraComponentGuards';\nimport { RiskScaleDto } from '@/dtos/tra';\nimport RiskMethodology from './RiskMethodology.vue';\nimport PdEcharts from '@/components/core/charts/echarts/PdEcharts.vue';\nimport RiskMethodologyChart from './RiskMethodologyChart.vue';\nimport { v4 } from 'uuid';\nimport { NumberComparison } from '@/core/helpers/sort';\n\nexport default defineComponent({\n name: 'RiskScalesView',\n\n components: {\n PdFormBase,\n PdDataTable,\n RiskMethodology,\n PdEcharts,\n RiskMethodologyChart,\n },\n\n setup() {\n const loading = ref(false);\n const advancedModeHasChanges = ref(false);\n const chartUuid = ref(v4());\n const showAdvancedMode = ref(false);\n\n let params;\n try { params = checkTraCategory(); } catch { return; }\n\n const datasource = new ApiDataSource({ api: `masterplans/${params.entity}/tra/${params.category}/RiskScales` });\n\n const headers: Array> = [\n {\n id: 'value',\n text: i18n.t('tra.riskScales.value').toString(),\n value: 'value',\n align: 'center',\n component: PdColumnNumber,\n width: '100px',\n sort: NumberComparison,\n },\n {\n id: 'name',\n text: i18n.t('tra.riskScales.name').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n template: (item) => {\n return LanguageTemplate(item, 'name');\n },\n },\n {\n id: 'color',\n text: i18n.t('tra.riskScales.color').toString(),\n value: 'color',\n component: PdColumnColor,\n width: '50px',\n template: (item) => {\n return { text: item.color || '' };\n },\n },\n ];\n\n function riskMethodologyHasChanges(value: boolean) {\n advancedModeHasChanges.value = value;\n }\n\n function methodologyLoading(value: boolean) {\n if (value === true) {\n loading.value = true;\n } else {\n loading.value = false;\n }\n }\n\n function updateChart() {\n chartUuid.value = v4();\n }\n\n function tableEditingChanged(value: RiskScaleDto | null) {\n if (value != null) {\n showAdvancedMode.value = false;\n }\n }\n\n return {\n loading,\n datasource,\n headers,\n methodologyLoading,\n chartUuid,\n\n showAdvancedMode,\n\n riskMethodologyHasChanges,\n advancedModeHasChanges,\n updateChart,\n\n tableEditingChanged,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RiskScalesView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RiskScalesView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RiskScalesView.vue?vue&type=template&id=466490fb&scoped=true&\"\nimport script from \"./RiskScalesView.vue?vue&type=script&lang=ts&\"\nexport * from \"./RiskScalesView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"466490fb\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\ninstallComponents(component, {VCard})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.loading)?_c('pd-popup-card',{attrs:{\"width\":\"600px\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"height\":\"300px\",\"search\":_vm.editable,\"options\":_vm.tableOptions,\"datasource\":_vm.categories,\"selected-item\":_vm.selectedCategory,\"in-edit-mode\":_vm.inEditMode,\"disable-edit-on-double-click\":\"\"},on:{\"update:selectedItem\":function($event){_vm.selectedCategory=$event},\"update:selected-item\":function($event){_vm.selectedCategory=$event},\"update:inEditMode\":function($event){_vm.inEditMode=$event},\"update:in-edit-mode\":function($event){_vm.inEditMode=$event},\"dblclick\":_vm.selectCategory}})]},proxy:true},{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"error\",\"disabled\":_vm.inEditMode},on:{\"click\":_vm.cancelSelection}},[_vm._v(\" \"+_vm._s(_vm.$t('cancel'))+\" \")]),_c('v-btn',{attrs:{\"disabled\":_vm.inEditMode,\"color\":\"success\"},on:{\"click\":function($event){return _vm.selectCategory(_vm.selectedCategory)}}},[_vm._v(\" \"+_vm._s(_vm.$t('select'))+\" \")])]},proxy:true}],null,false,1629939027)}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { computed, defineComponent, ref } from '@vue/composition-api';\nimport PdPopupCard from '@/components/core/PdPopupCard.vue';\nimport { PdDataTable, PdDataTableEditable, PdDataTableEditMode, PdDataTableHeader } from '@/components/core/PdDataTable';\nimport { ApplicationModule, AuthenticationModule, TraModule } from '@/store';\nimport { UserRole } from '@/dtos/UserDto';\nimport router from '@/router';\nimport { ApiDataSource } from '@/core/datasource';\nimport { TraCategoryDto } from '@/dtos/tra';\nimport { PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport ErrorHandlingService from '@/services/ErrorHandlingService';\nimport { AxiosError } from 'axios';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport BusyIndicatorService from '@/services/BusyIndicatorService';\n\nexport default defineComponent({\n name: 'TraCategoriesView',\n\n components: {\n PdPopupCard,\n PdDataTable,\n },\n\n setup() {\n const selectedCategory = ref(null);\n\n const editable = computed(() => {\n return AuthenticationModule.Roles.some(i => i === UserRole.TraAdministrator);\n });\n\n const inEditMode = ref(false);\n\n const entity = ApplicationModule.Entity;\n if (entity == null) {\n ErrorHandlingService.Handle(new Error('Entity is null...') as AxiosError);\n router.go(-1);\n return;\n }\n const categories = new ApiDataSource({ api: `masterplans/${entity.id}/tra/categories` });\n const loading = ref(false);\n\n const busy = BusyIndicatorService.SetBusy('Loading TRA categories...');\n loading.value = true;\n categories.data()\n .then(categories => {\n if (TraModule.CurrentCategory == null && categories.length === 1) {\n selectCategory(categories[0]);\n }\n })\n .catch((error) => {\n ErrorHandlingService.Handle(error as AxiosError);\n })\n .finally(() => {\n loading.value = false;\n BusyIndicatorService.RemoveBusy(busy);\n });\n\n const headers: Array> = [\n {\n id: 'name',\n text: 'Category',\n value: 'translations',\n translatable: true,\n component: PdColumnTranslation,\n template: (item) => {\n return LanguageTemplate(item, 'name');\n },\n },\n ];\n\n const tableOptions = computed(() => {\n let edit: PdDataTableEditable | boolean = false;\n if (editable.value === true) {\n edit = {\n mode: PdDataTableEditMode.Inline,\n edit: true,\n add: true,\n delete: true,\n };\n }\n\n return {\n editable: edit,\n pagination: false,\n };\n });\n\n function cancelSelection() {\n router.go(-1);\n }\n\n function selectCategory(category: TraCategoryDto) {\n if (category != null) {\n TraModule.SetTraCategory(category);\n if (TraModule.routeNameRedirect) {\n router.push({ name: TraModule.routeNameRedirect });\n } else {\n router.push({ name: 'home' });\n }\n }\n }\n\n return {\n editable,\n cancelSelection,\n loading,\n headers,\n tableOptions,\n categories,\n inEditMode,\n\n selectedCategory,\n selectCategory,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TraCategoriesView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TraCategoriesView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TraCategoriesView.vue?vue&type=template&id=6dfc674e&scoped=true&\"\nimport script from \"./TraCategoriesView.vue?vue&type=script&lang=ts&\"\nexport * from \"./TraCategoriesView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6dfc674e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('pd-form-base',{attrs:{\"title\":_vm.$t('tra.treatmentAnswers.title')}},[_c('pd-data-table',{attrs:{\"headers\":_vm.headers,\"datasource\":_vm.datasource,\"options\":{ editable: true, hasDetails: false },\"sort\":\"value\",\"sort-direction\":\"asc\",\"height\":\"100%\",\"search\":\"\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { defineComponent, ref } from '@vue/composition-api';\nimport PdFormBase from '@/components/core/PdFormBase.vue';\nimport i18n from '@/i18n';\nimport { PdDataTable, PdDataTableHeader, TemplateReturnType } from '@/components/core/PdDataTable';\nimport { ApiDataSource } from '@/core/datasource';\nimport { PdColumnDropDown, PdColumnParameterDropDown, PdColumnTranslation } from '@/components/core/PdDataTable/columns';\nimport { LanguageTemplate } from '@/core/helpers/templates';\nimport { checkTraCategory } from './TraComponentGuards';\nimport { TreatmentAnswerDto } from '@/dtos/tra';\nimport { NumberComparison } from '@/core/helpers/sort';\n\nexport default defineComponent({\n name: 'TreatmentAnswersView',\n\n components: {\n PdFormBase,\n PdDataTable,\n },\n\n setup() {\n const loading = ref(false);\n let params;\n try { params = checkTraCategory(); } catch { return; }\n\n const datasource = new ApiDataSource({ api: `masterplans/${params.entity}/tra/${params.category}/TreatmentAnswers` });\n\n const headers: Array> = [\n {\n id: 'answer',\n text: i18n.t('tra.treatmentAnswers.answer').toString(),\n value: 'translations',\n translatable: true,\n translationWidth: 500,\n component: PdColumnTranslation,\n template: (item) => {\n return LanguageTemplate(item, 'answer');\n },\n },\n {\n id: 'value',\n text: i18n.t('tra.treatmentAnswers.value').toString(),\n value: 'value',\n align: 'center',\n component: PdColumnDropDown,\n sort: NumberComparison,\n width: '150px',\n template: (item) => {\n return {\n text: item.value == null ? 'Not Applicable' : item.value,\n } as TemplateReturnType;\n },\n parameters: {\n items: () => {\n const ret: Array = [];\n for (let i = 0; i <= 100; ++i) {\n ret.push({ text: `${i}%`, value: i });\n }\n return ret;\n },\n },\n },\n ];\n\n return {\n loading,\n datasource,\n headers,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TreatmentAnswersView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TreatmentAnswersView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TreatmentAnswersView.vue?vue&type=template&id=08f63c85&scoped=true&\"\nimport script from \"./TreatmentAnswersView.vue?vue&type=script&lang=ts&\"\nexport * from \"./TreatmentAnswersView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"08f63c85\",\n null\n \n)\n\nexport default component.exports","import { LegacyFormView } from '@/views';\nimport ChangePasswordView from '@/views/all/ChangePasswordView.vue';\nimport DocumentsView from '@/views/all/DocumentManagement/DocumentsView.vue';\nimport LandingView from '@/views/all/LandingView.vue';\nimport { BiaDeploymentsListView } from '@/views/bcm';\nimport IncidentManagement from '@/views/bcm/incident/IncidentManagement.vue';\nimport { BcpFunctionalTestUserListView } from '@/views/bcm/testing/BcpFunctionalTest';\nimport DisasterRecoveryTestUserListView from '@/views/bcm/testing/DisasterRecoveryTestUserListView.vue';\nimport { AssessmentListUserView } from '@/views/tra';\nimport { RouteConfig } from 'vue-router';\n\nexport const Routes: Array = [\n {\n name: 'all.bcm.deployments',\n path: 'bcm/deployments',\n component: BiaDeploymentsListView,\n },\n {\n name: 'all.isra.deployments',\n path: 'isra/deployments',\n component: LegacyFormView,\n props: { form: 'allDeployments' },\n },\n {\n name: 'all.tra.deployments',\n path: 'tra/deployments',\n component: AssessmentListUserView,\n },\n {\n name: 'bcm.testing.dr.deployments',\n path: 'testing/dr/deployments',\n component: DisasterRecoveryTestUserListView,\n },\n {\n name: 'bcm.testing.bcp.tests',\n path: 'testing/bcp/deployments',\n component: BcpFunctionalTestUserListView,\n },\n {\n name: 'bcm.incidents',\n path: 'incidents',\n component: IncidentManagement,\n },\n {\n name: 'all.documents',\n path: 'documents',\n component: DocumentsView,\n },\n {\n name: 'all.landing',\n path: 'landing',\n component: LandingView,\n },\n {\n name: 'changePassword',\n path: '/change_password',\n component: ChangePasswordView,\n },\n];\n","import { UserRole } from '@/dtos';\nimport { LegacyFormView } from '@/views';\nimport { RouteConfig } from 'vue-router';\n\nexport const Routes: Array = [\n {\n name: 'isra.dashboard',\n path: '',\n component: LegacyFormView,\n props: {\n form: 'israDashboard',\n },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.classificationScales',\n path: 'classificationScales',\n component: LegacyFormView,\n props: { form: 'classificationScales' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.impactScales',\n path: 'impactScales',\n component: LegacyFormView,\n props: { form: 'impactScales' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.likelihoodScales',\n path: 'likelihoodScales',\n component: LegacyFormView,\n props: { form: 'likelihoodScales' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.controlStrengthScales',\n path: 'controlStrengthScales',\n component: LegacyFormView,\n props: { form: 'controlStrengthScales' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.controlStrengthReduction',\n path: 'controlStrengthReduction',\n component: LegacyFormView,\n props: { form: 'controlStrengthReduction' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.riskScales',\n path: 'riskScales',\n component: LegacyFormView,\n props: { form: 'riskScales' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.answerGroups',\n path: 'answerGroups',\n component: LegacyFormView,\n props: { form: 'answerGroups' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.answers',\n path: 'answers',\n component: LegacyFormView,\n props: { form: 'answers' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.isoDomains',\n path: 'isoDomains',\n component: LegacyFormView,\n props: { form: 'isoDomains' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.ictRiskCategories',\n path: 'ictRiskCategories',\n component: LegacyFormView,\n props: { form: 'ictRiskCategories' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.Standardizations',\n path: 'standardizations',\n component: LegacyFormView,\n props: { form: 'israStandardizations' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.questionGroups',\n path: 'questionGroups',\n component: LegacyFormView,\n props: { form: 'questionGroups' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.classificationQuestions',\n path: 'classificationQuestions',\n component: LegacyFormView,\n props: { form: 'classificationQuestions' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.classificationQuestionnaires',\n path: 'classificationQuestionnaires',\n component: LegacyFormView,\n props: { form: 'classificationQuestionnaires' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.ClassificationDeployments',\n path: 'classifications',\n component: LegacyFormView,\n props: { form: 'israClassificationDeployments' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.threats',\n path: 'threats',\n component: LegacyFormView,\n props: { form: 'threats' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.vulnerabilityCategories',\n path: 'vulnerabilityCategories',\n component: LegacyFormView,\n props: { form: 'vulnerabilityCategories' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.vulnerabilities',\n path: 'vulnerabilities',\n component: LegacyFormView,\n props: { form: 'vulnerabilities' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.Risks',\n path: 'risks',\n component: LegacyFormView,\n props: { form: 'israRisks' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.controlQuestions',\n path: 'controls',\n component: LegacyFormView,\n props: { form: 'controlQuestions' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.profileQuestions',\n path: 'profile',\n component: LegacyFormView,\n props: { form: 'profileQuestions' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.risksControls',\n path: 'risks_controls',\n component: LegacyFormView,\n props: { form: 'risksControls' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.controlQuestionnaires',\n path: 'control_questionnaires',\n component: LegacyFormView,\n props: { form: 'controlQuestionnaires' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.assessments',\n path: 'assessments',\n component: LegacyFormView,\n props: { form: 'assessments' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.riskmanagement.assessments',\n path: 'riskmanagement/assessments',\n component: LegacyFormView,\n props: { form: 'israRiskManagementAssessments' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.TreatmentPrioritizationScales',\n path: 'treatment_prioritization_scales',\n component: LegacyFormView,\n props: { form: 'TreatmentPrioritizationScales' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.riskTreatmentPlans',\n path: 'treatment_plans',\n component: LegacyFormView,\n props: { form: 'riskTreatmentPlans' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.treatmentAnswers',\n path: 'implementation_answers',\n component: LegacyFormView,\n props: { form: 'treatmentAnswers' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.riskmanagement.treatments',\n path: 'riskmanagement/treatments',\n component: LegacyFormView,\n props: { form: 'israRiskManagementTreatments' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.riskAcceptanceAnswers',\n path: 'acceptance_answers',\n component: LegacyFormView,\n props: { form: 'riskAcceptanceAnswers' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.riskmanagement.acceptances',\n path: 'riskmanagement/acceptances',\n component: LegacyFormView,\n props: { form: 'israRiskManagementAcceptances' },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.deployment.classification',\n path: 'deployment/classification/:id',\n component: LegacyFormView,\n props: {\n form: 'IsraClassificationDeploymentQuestionnaire',\n },\n meta: {\n auth: [],\n },\n },\n {\n name: 'isra.deployment.assessment',\n path: 'deployment/assessment/:id',\n component: LegacyFormView,\n props: {\n form: 'IsraRiskManagementAssessmentQuestionnaire',\n },\n meta: {\n auth: [],\n },\n },\n {\n name: 'isra.deployment.treatment',\n path: 'deployment/treatment/:id',\n component: LegacyFormView,\n props: {\n form: 'IsraRiskManagementTreatmentQuestionnaire',\n },\n meta: {\n auth: [],\n },\n },\n\n {\n name: 'isra.deployment.acceptance',\n path: 'deployment/acceptance/:id',\n component: LegacyFormView,\n props: {\n form: 'IsraRiskManagementAcceptanceQuestionnaire',\n },\n meta: {\n auth: [],\n },\n },\n {\n name: 'isra.riskmanagement.controls',\n path: 'riskmanagement/:id/controls',\n component: LegacyFormView,\n props: {\n form: 'IsraRiskManagementControls',\n },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.riskmanagement.risks',\n path: 'riskmanagement/:id/risks',\n component: LegacyFormView,\n props: {\n form: 'IsraRiskManagementRisks',\n },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.riskmanagement.riskControls',\n path: 'riskmanagement/:id/riskcontrols',\n component: LegacyFormView,\n props: {\n form: 'IsraRiskManagementRiskControls',\n },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.riskmanagement.assessmentReview',\n path: 'riskmanagement/assessment/:id/review',\n component: LegacyFormView,\n props: {\n form: 'IsraRiskManagementAssessmentReview',\n },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.riskmanagement.treatmentReview',\n path: 'riskmanagement/treatment/:id/review',\n component: LegacyFormView,\n props: {\n form: 'IsraRiskManagementTreatmentReview',\n },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n {\n name: 'isra.riskmanagement.treatmentProgress',\n path: 'riskmanagement/teatment/:id/progress',\n component: LegacyFormView,\n props: {\n form: 'IsraRiskManagementTreatmentProgress',\n },\n meta: {\n auth: [UserRole.IsraAdministrator, UserRole.IsraAssessor],\n },\n },\n];\n","import { UserRole } from '@/dtos';\nimport {\n AnswerGroupsView,\n AssessmentControlsView,\n AssessmentQuestionnaireReviewView,\n AssessmentQuestionnaireUserView,\n AssessmentRisksView,\n AssessmentsListView,\n AssessmentTreatmentReviewView,\n AssessmentTreatmentUserView,\n AssessmentView,\n ControlCategoriesView,\n ControlsView,\n ImpactScalesView,\n LikelihoodScalesView,\n QuestionnairesView,\n RiskCategoriesView,\n RiskScalesView,\n RisksView,\n TraDashboard,\n TreatmentAnswersView,\n} from '@/views/tra';\nimport TraCategoriesView from '@/views/tra/TraCategoriesView.vue';\nimport { RouteConfig } from 'vue-router';\n\nexport const Routes: Array = [\n {\n name: 'tra.dashboard',\n path: '',\n component: TraDashboard,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n {\n name: 'tra.likelihoodScales',\n path: 'likelihood-scales',\n component: LikelihoodScalesView,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n {\n name: 'tra.impactScales',\n path: 'impact-scales',\n component: ImpactScalesView,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n {\n name: 'tra.riskScales',\n path: 'risk-scales',\n component: RiskScalesView,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n {\n name: 'tra.answerGroups',\n path: 'answer-groups',\n component: AnswerGroupsView,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n {\n name: 'tra.treatmentAnswers',\n path: 'treatment-answers',\n component: TreatmentAnswersView,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n {\n name: 'tra.controlCategories',\n path: 'control-categories',\n component: ControlCategoriesView,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n {\n name: 'tra.controls',\n path: 'controls',\n component: ControlsView,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n {\n name: 'tra.riskCategories',\n path: 'risk-categories',\n component: RiskCategoriesView,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n {\n name: 'tra.risks',\n path: 'risks',\n component: RisksView,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n {\n name: 'tra.questionnaires',\n path: 'questionnaires',\n component: QuestionnairesView,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n {\n name: 'tra.assessmentsList',\n path: 'assessments',\n component: AssessmentsListView,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n\n {\n name: 'tra.categories',\n path: 'categories',\n component: TraCategoriesView,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n {\n name: 'tra.assessment',\n path: 'assessments/:assessmentId',\n component: AssessmentView,\n props: true,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n {\n name: 'tra.assessment.controls',\n path: 'assessments/:assessmentId/controls',\n component: AssessmentControlsView,\n props: true,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n {\n name: 'tra.assessment.risks',\n path: 'assessments/:assessmentId/risks',\n component: AssessmentRisksView,\n props: true,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n {\n name: 'tra.assessment.questionnaire',\n path: ':traCategoryId/assessments/:assessmentId/questionnaires/:questionnaireId',\n component: AssessmentQuestionnaireUserView,\n props: true,\n meta: {\n auth: [],\n },\n },\n {\n name: 'tra.assessment.answersReview',\n path: 'assessments/:assessmentId/questionnaires/review',\n component: AssessmentQuestionnaireReviewView,\n props: true,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n {\n name: 'tra.assessment.treatment',\n path: ':traCategoryId/assessments/:assessmentId/treatments/:questionnaireId',\n component: AssessmentTreatmentUserView,\n props: true,\n meta: {\n auth: [],\n },\n },\n {\n name: 'tra.assessment.treatmentsReview',\n path: 'assessments/:assessmentId/treatments/review',\n component: AssessmentTreatmentReviewView,\n props: true,\n meta: {\n auth: [UserRole.TraAdministrator, UserRole.TraAssessor],\n },\n },\n];\n","import { UserRole } from '@/dtos';\nimport { ApplicationModule, AuthenticationModule, TraModule } from '@/store';\nimport { EntitiesView, ForgotPasswordView, LoginOAuthView, LoginView, PageNotFoundView, ResetPasswordView } from '@/views';\nimport { RawLocation, RouteConfig } from 'vue-router';\nimport * as Admin from './admin';\nimport * as Bcm from './bcm';\nimport * as Compliance from './compliance';\nimport * as General from './general';\nimport { prefixRoutes } from './helpers';\nimport * as Isra from './isra';\nimport * as Tra from './tra';\n\nexport const Routes : Array = [\n {\n name: 'home',\n path: '/',\n redirect() : RawLocation {\n if (AuthenticationModule.LoggedIn) {\n if (!AuthenticationModule.Roles.some((role) => role === UserRole.GeneralAdministrator) && ApplicationModule.Entity == null) {\n return { name: 'entities' };\n } else if (AuthenticationModule.Roles.some((role) => role === UserRole.BcmAdministrator)) {\n return { name: 'bcm.dashboard' };\n } else if (AuthenticationModule.Roles.some((role) => role === UserRole.IsraAdministrator)) {\n return { name: 'isra.dashboard' };\n } else if (AuthenticationModule.Roles.some((role) => role === UserRole.TraAdministrator)) {\n const tra = TraModule.CurrentCategory;\n\n if (tra == null) {\n TraModule.InitTraCategory();\n }\n\n if (tra == null) {\n return { name: 'tra.categories' };\n } else {\n return { name: 'tra.dashboard' };\n }\n } else {\n return { name: 'all.landing' };\n }\n } else {\n return { name: 'login' };\n }\n },\n },\n {\n name: 'login',\n path: '/login',\n component: LoginView,\n meta: {\n auth: false,\n layout: 'empty',\n },\n },\n {\n name: 'login_oauth',\n path: '/login/oauth',\n component: LoginOAuthView,\n meta: {\n auth: false,\n layout: 'empty',\n },\n },\n {\n name: 'forgotPassword',\n path: '/forgot_password',\n component: ForgotPasswordView,\n meta: {\n auth: false,\n layout: 'empty',\n },\n },\n {\n name: 'resetPassword',\n path: '/reset_password/:guid',\n component: ResetPasswordView,\n props: true,\n meta: {\n auth: false,\n layout: 'empty',\n },\n },\n {\n name: 'entities',\n path: '/entities',\n component: EntitiesView,\n meta: {\n layout: 'empty',\n },\n },\n\n ...prefixRoutes('/all', General.Routes),\n ...prefixRoutes('/admin', Admin.Routes),\n ...prefixRoutes('/bcm', Bcm.Routes),\n ...prefixRoutes('/isra', Isra.Routes),\n ...prefixRoutes('/tra', Tra.Routes),\n ...prefixRoutes('/compliance', Compliance.Routes),\n\n {\n path: '*',\n component: PageNotFoundView,\n },\n];\n","import { UserRole } from '@/dtos';\nimport router from '@/router';\nimport { Routes } from '@/router/routes';\nimport { ApplicationModule, AuthenticationModule, NavigationModule } from '@/store';\nimport { RawLocation } from 'vue-router';\nimport AuthenticationService from './AuthenticationService';\nimport AuthorizationService from './AuthorizationService';\n\nexport default class RouterService {\n public static Init(): void {\n router.addRoutes(Routes);\n\n router.beforeEach(async (to, from, next) => {\n let navigateTo: RawLocation | null = null;\n\n if (!AuthenticationModule.LoggedIn) {\n await AuthenticationService.Init();\n }\n\n if (to.name === 'login') { // navigating to login\n if (AuthenticationModule.LoggedIn) { // if already logged in navigate to entities or home\n if (!AuthenticationModule.Roles.some(i => i === 'General.Administrator') && ApplicationModule.Entity == null) {\n navigateTo = { name: 'entities' };\n } else {\n navigateTo = { name: 'home' };\n }\n }\n } else if (!AuthenticationModule.LoggedIn) { // if user is not logged in navigate to login\n if (to.meta.auth !== false) {\n navigateTo = { name: 'login' };\n }\n }\n\n if (to.name !== 'login' && AuthenticationModule.LoggedIn) {\n if (ApplicationModule.Entity == null) {\n ApplicationModule.InitEntity();\n }\n\n if (!AuthenticationModule.Roles.some(i => i === 'General.Administrator') && ApplicationModule.Entity === null && to.name !== 'entities') { // if user has not select entity navigate to entities\n navigateTo = { name: 'entities' };\n } else if (!AuthenticationModule.Roles.some(i => i === 'General.Administrator') && to.meta != null && to.meta.roles != null) { // check if user is allowed to navigate where he wants\n if (!to.meta.roles.some((v1: UserRole) => AuthenticationModule.Roles.some((v2) => v1 === v2))) {\n navigateTo = { name: 'home' };\n }\n }\n }\n\n // Authorization Guard (Authentication Successful)\n if (navigateTo == null) {\n if (!AuthorizationService.userCanAccessRoute(to)) {\n navigateTo = { name: 'home' };\n }\n }\n\n next(navigateTo || undefined);\n });\n\n router.afterEach(to => {\n if (to.name === 'login') {\n NavigationModule.ClearNavigationHistory();\n } else {\n NavigationModule.AddNavigation(to);\n }\n });\n }\n}\n","import VueCompositionAPI from '@vue/composition-api';\nimport Vue from 'vue';\nimport VueCtkDateTimePicker from 'vue-ctk-date-time-picker';\nimport 'vue-ctk-date-time-picker/dist/vue-ctk-date-time-picker.css';\nimport { Plugin } from 'vue-fragment';\nimport App from './App.vue';\nimport i18n from './i18n';\nimport vuetify from './plugins/vuetify';\nimport router from './router';\nimport RouterService from './services/RouterService';\nimport store from './store';\nrequire('@/api/axios');\n\nVue.use(Plugin);\n\nVue.component('DateTimePicker', VueCtkDateTimePicker);\n\nVue.config.productionTip = false;\n\nVue.use(VueCompositionAPI);\n\nRouterService.Init();\n\nnew Vue({\n router,\n store,\n vuetify,\n i18n,\n render: h => h(App),\n}).$mount('#app');\n","var map = {\n\t\"./el-GR.json\": \"4b7d\",\n\t\"./en-US.json\": \"2f91\"\n};\n\nfunction webpackAsyncContext(req) {\n\treturn Promise.resolve().then(function() {\n\t\tif(!__webpack_require__.o(map, req)) {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t}\n\n\t\tvar id = map[req];\n\t\treturn __webpack_require__.t(id, 3);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"ce2c\";\nmodule.exports = webpackAsyncContext;","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemEdit.vue?vue&type=style&index=0&id=dde1c6c4&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemEdit.vue?vue&type=style&index=0&id=dde1c6c4&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentTaskLine.vue?vue&type=style&index=0&id=1f15e3ea&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IncidentTaskLine.vue?vue&type=style&index=0&id=1f15e3ea&scoped=true&lang=css&\"","import FormBase from '../FormBase.js';\n\nexport default class IsraIctRiskCategories extends FormBase {\n constructor() {\n super('Ict Risk Categories', 'general');\n this.api = 'isra/IctRiskCategories';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Value',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n ];\n }\n}\n","import VersionableFormBase from './isra/VersionableFormBase.js';\nimport { selectedLanguage, setCurrent, settings, toggleAppear } from '../main.js';\nimport { Helpers } from '../Core/Helpers.js';\nimport Constants from '../Core/constants.js';\nimport Selectors from '../Core/Selectors';\nimport DataSources from '../Core/datasources';\n\nexport default class DeploymentFormBase extends VersionableFormBase {\n constructor(title, divName = 'general', options = { readOnly: false }) {\n super(title, divName, options);\n }\n\n init() {\n super.init();\n }\n\n deployDeployment(api, deployment) {\n if (deployment == null) {\n Helpers.showError('Please select a deployment first');\n return;\n }\n\n if (deployment.approvalPath == null || deployment.approvalPath.length === 0) {\n Helpers.showError('Cannot deploy without approval path', 'Deploy Failed');\n return;\n }\n\n if (settings.segregationOfDuties === true) {\n if (deployment.approvalPath.length + deployment.dataEntry.length < 2) {\n Helpers.showError(\n 'Cannot deploy to a single user when Segregation of Duties is on!',\n 'Deploy Failed',\n );\n return;\n }\n }\n\n kendo.ui.progress($(this.grid), true);\n\n // `/api/masterplans/${selectedMasterPlan.id}/isra/RiskManagements/${deployment.rm.id}/AssessmentQuestionnaires/${deployment.id}/deploy`,\n $.post(api)\n .done(() => {\n Helpers.showPopUp('Succeed', 'Deployment deployed successfully!');\n this.datasource.read();\n const grid = $(this.grid).data('kendoGrid');\n grid.refresh();\n })\n .fail((error) => {\n Helpers.showError(error.responseText, 'Deployment Failed');\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n }\n\n abortDeployment(api, deployment) {\n if (deployment == null) {\n Helpers.showError('Please select a deployment first');\n return;\n }\n\n kendo.ui.progress($(this.grid), true);\n\n $.post(api)\n .done(() => {\n Helpers.showPopUp('Succeed', 'Deployment aborted successfully!');\n this.datasource.read();\n const grid = $(this.grid).data('kendoGrid');\n grid.refresh();\n })\n .fail((error) => {\n Helpers.showError(error.responseText, 'Abort Failed');\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n }\n\n dataEntryEditor(container, options) {\n let dataEntryBinding = true;\n\n const enabled = options.model.status <= Constants.DeploymentStatus.DataEntry;\n\n $('
    ')\n .appendTo(container)\n .kendoGrid({\n toolbar: !enabled ? [] : [\n { template: 'Add' },\n { template: 'Remove' },\n ],\n dataSource: {\n schema: {\n model: {\n id: 'userId',\n fields: {\n userId: {\n nullable: false,\n editable: () => false,\n },\n allowFinishingDataEntry: {\n nullable: false,\n defaultValue: false,\n editable: true,\n type: 'boolean',\n },\n },\n },\n },\n change: function (e) {\n if (e.action === 'itemchange') {\n const parent = this.data()\n .parent();\n\n parent.dirty = true;\n parent.dirtyFields.dataEntry = true;\n }\n },\n },\n columns: [\n {\n field: 'userId',\n title: 'User',\n editable: () => false,\n template: Selectors.UserTemplate,\n },\n {\n field: 'allowFinishingDataEntry',\n title: 'Allow Finishing Data Entry',\n template: '',\n },\n ],\n resizable: true,\n sortable: {\n mode: 'single',\n allowUnsort: false,\n },\n editable: enabled,\n scrollable: true,\n selectable: 'row',\n autoBind: true,\n height: 160,\n dataBound: () => {\n if (enabled && dataEntryBinding) {\n dataEntryBinding = false;\n $('#Deployment-DataEntry-AddUser')\n .click((e) => this.dataEntryAddUser(e));\n $('#Deployment-DataEntry-RemoveUser')\n .click((e) => this.dataEntryRemoveUser(e));\n }\n },\n })\n .data('kendoGrid');\n }\n\n dataEntryAddUser() {\n const grid = $('#dataEntryGrid').data('kendoGrid');\n\n const parent = grid.dataSource.data()\n .parent();\n\n const content = '
    ';\n Helpers.showPopUp2({\n title: 'Select User',\n content: content,\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: function () {\n const grid = $('#userSelectionUsers')\n .data('kendoGrid');\n const select = grid.select();\n\n if (select.length === 0) {\n Helpers.showError('Please select a user first');\n return false;\n }\n\n const di = grid.dataItem(select);\n parent.dataEntry.push({\n userId: di.username,\n allowFinishingDataEntry: false,\n });\n return true;\n },\n },\n {\n text: 'Cancel',\n action: function () {\n return true;\n },\n },\n ],\n initOpen: () => {\n const filters = [];\n for (let i = 0; i < parent.dataEntry.length; ++i) {\n filters.push({\n field: 'username',\n operator: 'neq',\n value: parent.dataEntry[i].userId,\n });\n }\n\n $('#userSelectionPartitions')\n .kendoTreeList({\n dataSource: DataSources.TreeListPartitions,\n selectable: true,\n columns: [\n {\n field: 'translations[\"' + selectedLanguage + '\"].name',\n title: 'Name',\n },\n ],\n change: (e) => {\n const item = e.sender.dataItem(e.sender.select());\n const users = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/Users/GetAllUsersForDeployments?partitionId=' + item.id,\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'info',\n dir: 'asc',\n },\n {\n field: 'username',\n dir: 'asc',\n },\n ],\n filter: filters,\n });\n\n $('#userSelectionUsers')\n .data('kendoGrid')\n .setDataSource(users);\n },\n });\n\n const users = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/Users/GetAllUsersForDeployments',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'info',\n dir: 'asc',\n },\n {\n field: 'username',\n dir: 'asc',\n },\n ],\n filter: filters,\n });\n\n $('#userSelectionUsers')\n .kendoGrid({\n dataSource: users,\n selectable: true,\n columns: [\n {\n field: 'info',\n title: 'User',\n },\n ],\n });\n },\n\n close: () => {\n const partitions = $('#userSelectionPartitions')\n .data('kendoTreeList');\n if (partitions != null) {\n partitions.destroy();\n }\n\n const users = $('#userSelectionUsers')\n .data('kendoGrid');\n if (users != null) {\n users.destroy();\n }\n },\n });\n }\n\n dataEntryRemoveUser() {\n const grid = $('#dataEntryGrid')\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select a user first');\n return;\n }\n\n grid.dataSource.remove(selectedItem);\n\n grid.select('tr:eq(' + (selectedItem.order - 1) + ')');\n }\n\n approvalPathEditor(container, options) {\n let approvalBinding = true;\n const enabled = options.model.status <= Constants.DeploymentStatus.ApprovalPath;\n\n $('
    ')\n .appendTo(container)\n .kendoGrid({\n toolbar: !enabled ? [] : [\n { template: 'Add' },\n { template: 'Move Up' },\n { template: 'Move Down' },\n { template: 'Remove' },\n ],\n dataSource: {\n schema: {\n model: {\n id: 'userId',\n fields: {\n userId: {\n // this field will not be editable (default value is true)\n editable: true,\n // a defaultValue will not be assigned (default value is false)\n nullable: false,\n },\n order: {\n type: 'number',\n defaultValue: 1,\n // editable: false,\n validation: {\n required: true,\n min: 1,\n },\n },\n },\n },\n },\n sort: {\n field: 'order',\n dir: 'asc',\n },\n },\n columns: [\n {\n field: 'order',\n title: 'Order',\n width: 100,\n sortable: {\n initialDirection: 'asc',\n },\n },\n {\n field: 'userId',\n title: 'User',\n template: Selectors.UserTemplate,\n },\n ],\n resizable: true,\n sortable: {\n mode: 'single',\n allowUnsort: false,\n },\n editable: false,\n scrollable: true,\n selectable: 'row',\n autoBind: true,\n height: 160,\n dataBound: () => {\n if (enabled && approvalBinding) {\n approvalBinding = false;\n $('#Deployment-ApprovalPath-AddUser')\n .click((e) => this.approvalPathAddUser(e));\n $('#Deployment-ApprovalPath-MoveUserUp')\n .click((e) => this.approvalPathMoveUserUp(e));\n $('#Deployment-ApprovalPath-MoveUserDown')\n .click((e) => this.approvalPathMoveUserDown(e));\n $('#Deployment-ApprovalPath-RemoveUser')\n .click((e) => this.approvalPathRemoveUser(e));\n }\n },\n })\n .data('kendoGrid');\n }\n\n approvalPathAddUser() {\n const grid = $('#approvalPathEditor')\n .data('kendoGrid');\n const parent = grid.dataSource.data()\n .parent();\n\n const content = '
    ';\n Helpers.showPopUp2({\n title: 'Select User',\n content: content,\n actions: [\n {\n text: 'Ok',\n primary: true,\n action: function () {\n const grid = $('#userSelectionUsers')\n .data('kendoGrid');\n const select = grid.select();\n\n if (select.length === 0) {\n Helpers.showError('Please select a user first');\n return false;\n }\n\n const di = grid.dataItem(select);\n parent.approvalPath.push({\n userId: di.username,\n order: parent.approvalPath.length + 1,\n });\n return true;\n },\n },\n {\n text: 'Cancel',\n action: function () {\n return true;\n },\n },\n ],\n initOpen: () => {\n const filters = [];\n for (let i = 0; i < parent.approvalPath.length; ++i) {\n filters.push({\n field: 'username',\n operator: 'neq',\n value: parent.approvalPath[i].userId,\n });\n }\n\n $('#userSelectionPartitions')\n .kendoTreeList({\n dataSource: DataSources.TreeListPartitions,\n selectable: true,\n columns: [\n {\n field: 'translations[\"' + selectedLanguage + '\"].name',\n title: 'Name',\n },\n ],\n change: (e) => {\n const item = e.sender.dataItem(e.sender.select());\n const users = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/Users/GetAllUsersForDeployments?partitionId=' + item.id,\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'info',\n dir: 'asc',\n },\n {\n field: 'username',\n dir: 'asc',\n },\n ],\n filter: filters,\n });\n\n $('#userSelectionUsers')\n .data('kendoGrid')\n .setDataSource(users);\n },\n });\n\n const users = new kendo.data.DataSource({\n transport: {\n read: {\n url: '/api/Users/GetAllUsersForDeployments',\n type: 'GET',\n dataType: 'json',\n },\n },\n sort: [\n {\n field: 'info',\n dir: 'asc',\n },\n {\n field: 'username',\n dir: 'asc',\n },\n ],\n filter: filters,\n });\n\n $('#userSelectionUsers')\n .kendoGrid({\n dataSource: users,\n selectable: true,\n columns: [\n {\n field: 'info',\n title: 'User',\n },\n ],\n });\n },\n\n close: () => {\n console.log('closing');\n const partitions = $('#userSelectionPartitions')\n .data('kendoTreeList');\n if (partitions != null) {\n partitions.destroy();\n }\n\n const users = $('#userSelectionUsers')\n .data('kendoGrid');\n if (users != null) {\n users.destroy();\n }\n },\n });\n }\n\n approvalPathMoveUserUp() {\n const grid = $('#approvalPathEditor')\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select a user first');\n return;\n }\n\n if (selectedItem.order === 1) {\n return;\n }\n\n const data = grid.dataSource.data();\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].order === selectedItem.order - 1) {\n data[i].set('order', data[i].order + 1);\n }\n }\n selectedItem.set('order', selectedItem.order - 1);\n\n data.parent().dirty = true;\n data.parent().dirtyFields.approvalPath = true;\n\n grid.select('tr:eq(' + (selectedItem.order - 1) + ')');\n }\n\n approvalPathMoveUserDown() {\n const grid = $('#approvalPathEditor')\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select a user first');\n return;\n }\n\n const data = grid.dataSource.data();\n\n if (selectedItem.order === data.length) {\n return;\n }\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].order === selectedItem.order + 1) {\n data[i].set('order', data[i].order - 1);\n }\n }\n\n data.parent().dirty = true;\n data.parent().dirtyFields.approvalPath = true;\n\n selectedItem.set('order', selectedItem.order + 1);\n\n grid.select('tr:eq(' + (selectedItem.order - 1) + ')');\n }\n\n approvalPathRemoveUser() {\n const grid = $('#approvalPathEditor')\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select a user first');\n return;\n }\n\n const data = grid.dataSource.data();\n\n for (let i = 0; i < data.length; ++i) {\n if (data[i].order > selectedItem.order) {\n data[i].set('order', data[i].order - 1);\n }\n }\n\n grid.dataSource.remove(selectedItem);\n\n grid.select('tr:eq(' + (selectedItem.order - 1) + ')');\n }\n\n openForm(form) {\n this.hide();\n this.destroy();\n\n const required = form.require();\n const promises = [];\n for (let i = 0; i < required.length; ++i) {\n promises.push(required[i].read());\n }\n\n Promise.all(promises)\n .then(() => {\n form.init();\n form.show();\n });\n\n setCurrent(form);\n }\n}\n","import mod from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireReviewBelowAppetiteColumn.vue?vue&type=style&index=0&id=5a6d7c70&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentQuestionnaireReviewBelowAppetiteColumn.vue?vue&type=style&index=0&id=5a6d7c70&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryControl.vue?vue&type=style&index=0&id=6f0ea66c&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CategoryControl.vue?vue&type=style&index=0&id=6f0ea66c&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditControlDialog.vue?vue&type=style&index=0&id=5a374cde&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditControlDialog.vue?vue&type=style&index=0&id=5a374cde&scoped=true&lang=css&\"","import FormBase from '../FormBase.js';\nimport Selectors from '../../Core/Selectors.js';\n\nexport default class IsraImpactScales extends FormBase {\n constructor() {\n super('Impact Scales', 'general');\n this.api = 'isra/ImpactScales';\n\n this.columns = [\n {\n title: 'Value',\n binding: 'value',\n required: true,\n sort: 'asc',\n defaultValue: 0,\n validation: {\n min: 0,\n max: 10,\n step: 1,\n },\n type: 'number',\n },\n {\n title: 'Color',\n binding: 'color',\n defaultValue: null,\n required: false,\n template: (dataItem) => Selectors.ColorTemplate(dataItem, 'color'),\n editor: (container, options) => Selectors.ColorSelector(container, options),\n },\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Value',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n ];\n }\n}\n","import FormBase from '../FormBase.js';\nimport DataSources from '../../Core/datasources.js';\nimport { selectedLanguage } from '../../main.js';\nimport { Helpers } from '../../Core/Helpers';\n\nexport default class IsraRiskTreatmentPlans extends FormBase {\n constructor() {\n super('Prioritization Plan', 'general');\n this.api = 'isra/RiskTreatmentPlans';\n\n this.options.parse = (data) => this.parseData(data);\n this.options.parameterMap = (data) => this.parameterMap(data);\n\n this.columns = [\n {\n title: 'Control Strength',\n binding: 'controlStrengthScaleId',\n editable: false,\n template: (dataItem) => {\n const item = DataSources.IsraControlStrengthScales.get(dataItem.controlStrengthScaleId);\n\n const all = DataSources.IsraControlStrengthScales.view();\n let prev = 0;\n for (let i = 0; i < all.length; ++i) {\n if (all[i].value < item.value) {\n prev = all[i].value;\n } else {\n break;\n }\n }\n\n const txt = item.translations[selectedLanguage].name + '(' + (prev * 100) + ' - ' +\n item.value * 100 + ')';\n return Helpers.sanitizeHTML(txt);\n },\n },\n ];\n }\n\n setCustomDatasourceProperties(source) {\n const change = source.change;\n source.change = (e) => {\n if (change != null) {\n change.call(e.sender, e);\n }\n\n if (e.action === 'itemchange') {\n const risks = DataSources.IsraRiskScales.view();\n for (let i = 1; i < risks.length; ++i) {\n const item = risks[i];\n const prev = risks[i - 1];\n\n const itemVal = DataSources.IsraTreatmentPrioritizationScales.get(e.items[0]['riskTreatments_' + item.id]).value;\n const prevVal = DataSources.IsraTreatmentPrioritizationScales.get(e.items[0]['riskTreatments_' + prev.id]).value;\n\n if (itemVal < prevVal) {\n e.items[0].set('riskTreatments_' + item.id, e.items[0]['riskTreatments_' + prev.id]);\n }\n }\n }\n };\n }\n\n parseData(data) {\n this.keys = Object.keys(data[0].riskTreatments);\n for (let i = 0; i < data.length; ++i) {\n for (let j = 0; j < this.keys.length; ++j) {\n data[i]['riskTreatments_' + this.keys[j]] = data[i].riskTreatments[this.keys[j]];\n }\n }\n\n return data;\n }\n\n parameterMap(data) {\n for (let j = 0; j < this.keys.length; ++j) {\n data.riskTreatments[this.keys[j]] = data['riskTreatments_' + this.keys[j]];\n }\n\n return data;\n }\n\n init() {\n const risks = DataSources.IsraRiskScales.view();\n\n let prev = 0;\n\n for (let i = 0; i < risks.length; ++i) {\n this.columns.push({\n title: risks[i].translations[selectedLanguage].name + ' (' + (prev) + ' - ' +\n (risks[i].value) + ')',\n binding: 'riskTreatments_' + risks[i].id,\n template: (dataItem) => {\n // console.log(dataItem);\n const scale = DataSources.IsraTreatmentPrioritizationScales.get(dataItem['riskTreatments_' + risks[i].id]);\n const text = Helpers.sanitizeHTML(scale.translations[selectedLanguage].name);\n const color = scale.color;\n return '
    ' +\n text + '
    ';\n },\n editor: (container, options) => {\n this.TreatmentPrioritizationScaleSelector(container, options);\n },\n });\n\n prev = risks[i].value;\n }\n\n delete this.menu.edit;\n delete this.menu.delete;\n\n super.init();\n }\n\n setCustomGridProperties(grid) {\n delete grid.selectable;\n\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n const scales = DataSources.IsraTreatmentPrioritizationScales.view();\n for (let i = 0; i < scales.length; ++i) {\n $('[name=color_' + scales[i].id + ']')\n .closest('td')\n .css({ 'background-color': scales[i].color });\n }\n };\n }\n\n require() {\n return [\n DataSources.IsraTreatmentPrioritizationScales,\n DataSources.IsraControlStrengthScales,\n DataSources.IsraRiskScales];\n }\n\n TreatmentPrioritizationScaleSelector(container, options) {\n $('')\n .appendTo(container)\n .kendoDropDownList({\n valuePrimitive: true,\n dataTextField: 'translations[\"' + selectedLanguage + '\"].name',\n dataValueField: 'id',\n dataSource: DataSources.IsraTreatmentPrioritizationScales,\n });\n }\n}\n","import { selectedMasterPlan, selectedLanguage } from '../../main.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport VersionableFormBase from './VersionableFormBase.js';\n\nexport default class IsraControlQuestionnaires extends VersionableFormBase {\n constructor() {\n super('Control Questionnaires', 'general');\n this.api = 'isra/ControlQuestionnaires';\n\n this.confirmation = 'translations.' + selectedLanguage + '.name';\n\n this.columns = [\n {\n title: 'Questionnaire',\n binding: 'versionRootId',\n editable: () => false,\n hidden: true,\n groupHeaderTemplate: (e) => {\n return this.datasource.get(e.items[0].id).translations[selectedLanguage].name;\n },\n editorHidden: true,\n },\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Control Questionnaire',\n required: true,\n hidden: true,\n sort: 'asc',\n translatable: true,\n editable: (e) => {\n return e.id === e.versionRootId || e.isNew();\n },\n },\n {\n title: 'Version',\n binding: 'version',\n defaultValue: VersionableFormBase.versionPrototype(),\n required: false,\n sort: 'asc',\n translatable: false,\n editable: () => true,\n },\n {\n title: 'Archived',\n binding: 'archived',\n editable: () => false,\n template: (dataItem) => dataItem.archived ? 'Archived' : '',\n width: '120px',\n editorHidden: true,\n },\n {\n title: 'Based On',\n binding: 'versionBasedOn',\n editable: () => false,\n editorHidden: true,\n width: '120px',\n },\n ];\n\n this.questionColumns = [\n {\n title: ' ',\n fieldName: 'comment',\n template: (dataItem) => {\n const q = DataSources.IsraControlQuestions.get(dataItem.questionId);\n if (q.translations[selectedLanguage].comment == null ||\n q.translations[selectedLanguage].comment === '') {\n return '';\n } else {\n return '';\n }\n },\n width: '38px',\n editable: () => false,\n },\n {\n title: 'Id',\n fieldName: 'identification',\n template: (dataItem) => {\n return Helpers.sanitizeHTML(dataItem.questionId);\n },\n width: '55px',\n editable: () => false,\n },\n {\n title: 'Question',\n binding: 'questionId',\n template: (dataItem) => {\n const q = DataSources.IsraControlQuestions.get(dataItem.questionId);\n return Helpers.sanitizeHTML(q.translations[selectedLanguage].question)\n .replace('\\n', '
    ');\n },\n editable: () => false,\n },\n ];\n }\n\n require() {\n return [DataSources.IsraControlQuestions];\n }\n\n setCustomGridProperties(grid) {\n super.setCustomGridProperties(grid);\n\n grid.toolbar.unshift({ name: 'create' }, { name: 'excel' });\n\n grid.toolbar.push(\n { template: ' ' },\n { template: 'Clone Questionnaire' },\n );\n\n let firstbound = true;\n\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n // const data = e.sender.dataSource.data();\n\n if (firstbound) {\n firstbound = false;\n $('#questionnaireDuplicate')\n .off('click')\n .on('click', () => {\n const grid = $(this.grid)\n .data('kendoGrid');\n const selectedItem = grid.dataItem(grid.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select a questionnaire to clone');\n return;\n }\n\n kendo.ui.progress($(this.grid), true);\n\n $.post('/api/masterplans/' + selectedMasterPlan.id + '/isra/ControlQuestionnaires/' +\n selectedItem.id + '/clone')\n .done(() => {\n this.datasource.read();\n const grid = $(this.grid).data('kendoGrid');\n grid.refresh();\n })\n .fail((error) => {\n Helpers.showError(error.responseText, 'Cloning failed');\n })\n .always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n });\n }\n };\n\n // Details\n grid.detailTemplate = 'Questions:';\n\n grid.detailInit = (e) => {\n const questionsGrid = this.createGrid({\n api: 'isra/ControlQuestionnaireQuestions/' + e.data.id,\n columns: this.questionColumns,\n confirmation: (e) => {\n return DataSources.IsraControlQuestions.get(e.questionId).translations[selectedLanguage].question;\n },\n });\n\n questionsGrid.toolbar = [\n {\n template: 'Add Question',\n },\n ];\n\n const databound = questionsGrid.dataBound;\n questionsGrid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n $('[name=\"Add-Question\"]')\n .off('click')\n .on('click', (e) => {\n const data = $(e.target)\n .closest('[data-role=\"grid\"]')\n .data('kendoGrid').dataSource;\n\n const content = '
    ';\n Helpers.showPopUp('Select Question', content, [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const di = $('#questionsList')\n .data('kendoGrid')\n .selectedKeyNames();\n if (di.length > 0) {\n for (let i = 0; i < di.length; ++i) {\n data.add({\n questionId: di[i],\n });\n }\n data.sync();\n return true;\n }\n return false;\n },\n },\n {\n text: 'Cancel',\n action: () => true,\n },\n ], () => {\n const filters = [];\n for (let i = 0; i < data.data().length; ++i) {\n filters.push({\n field: 'id',\n operator: 'neq',\n value: data.data()[i].questionId,\n });\n }\n\n const questionsGrid = this.createGrid({\n api: 'isra/ControlQuestions',\n columns: [\n {\n selectable: true,\n width: '50px',\n },\n {\n title: 'Id',\n binding: 'id',\n collapse: true,\n },\n {\n title: 'Question',\n binding: 'translations[\"' + selectedLanguage + '\"].question',\n },\n ],\n pageable: false,\n });\n\n delete questionsGrid.toolbar;\n delete questionsGrid.editable;\n delete questionsGrid.height;\n delete questionsGrid.pageable;\n delete questionsGrid.navigatable;\n delete questionsGrid.reorderable;\n delete questionsGrid.selectable;\n\n questionsGrid.persistSelection = true;\n\n questionsGrid.columns.splice(-1);\n\n questionsGrid.dataSource.filter({\n logic: 'and',\n filters: filters,\n });\n\n $('#questionsList')\n .kendoGrid(questionsGrid);\n });\n });\n };\n\n $('
    ')\n .appendTo(e.detailCell)\n .kendoGrid(questionsGrid);\n };\n }\n}\n","import FormBase from '../FormBase.js';\nimport Selectors from '../../Core/Selectors.js';\n\nexport default class IsraClassificationScales extends FormBase {\n constructor() {\n super('Classification Scales', 'general');\n this.api = 'isra/ClassificationScales';\n\n this.columns = [\n {\n title: 'Value',\n binding: 'value',\n required: true,\n sort: 'asc',\n defaultValue: 0,\n validation: {\n min: 0,\n max: 100,\n step: 1,\n },\n translatable: false,\n type: 'number',\n },\n {\n title: 'Color',\n binding: 'color',\n defaultValue: null,\n required: false,\n template: (dataItem) => Selectors.ColorTemplate(dataItem, 'color'),\n editor: (container, options) => Selectors.ColorSelector(container, options),\n },\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Value',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n {\n title: 'Confidentiality Label',\n binding: 'confidentialityLabel',\n defaultValue: 'New Confidentiality Label',\n required: true,\n translatable: true,\n },\n {\n title: 'Classification RTO',\n binding: 'classificationRTO',\n defaultValue: 'New Classificatio RTO',\n required: true,\n translatable: true,\n },\n ];\n }\n}\n","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentTreatmentUserControlLine.vue?vue&type=style&index=0&id=71b5806d&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AssessmentTreatmentUserControlLine.vue?vue&type=style&index=0&id=71b5806d&scoped=true&lang=css&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TestingUserGroup.vue?vue&type=style&index=0&id=bc8e4c10&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TestingUserGroup.vue?vue&type=style&index=0&id=bc8e4c10&scoped=true&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTranslationFieldEditor.vue?vue&type=style&index=0&id=f4b9c7be&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTranslationFieldEditor.vue?vue&type=style&index=0&id=f4b9c7be&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedSectors.vue?vue&type=style&index=0&id=8aa81b22&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AffectedSectors.vue?vue&type=style&index=0&id=8aa81b22&scoped=true&lang=css&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnswerUpdateControlComponent.vue?vue&type=style&index=0&id=00a4624b&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnswerUpdateControlComponent.vue?vue&type=style&index=0&id=00a4624b&scoped=true&lang=css&\"","import FormBase from '../FormBase.js';\nimport { jwt, selectedMasterPlan } from '../../main.js';\nimport { Helpers } from '../../Core/Helpers.js';\n\nexport default class IsraQuestionGroups extends FormBase {\n constructor() {\n super('Question Groups', 'general');\n this.api = 'isra/QuestionGroups';\n\n this.columns = [\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Name',\n required: true,\n sort: 'asc',\n translatable: true,\n },\n ];\n }\n\n init() {\n const source = Helpers.createDataSource(selectedMasterPlan, this.api, jwt, this.columns);\n source.schema.model.parentId = 'parentId';\n source.schema.model.expanded = true;\n this.datasource = new kendo.data.TreeListDataSource(source);\n\n let cols = [];\n\n for (let j = 0; j < selectedMasterPlan.languages.length; ++j) {\n const language = selectedMasterPlan.languages[j].language;\n\n cols.push({\n title: 'Name (' + language + ')',\n field: 'name_' + language.replace('-', '_'),\n filterable: true,\n });\n }\n\n cols = cols.concat([\n {\n command: ['edit', 'destroy', 'createChild'],\n width: 350,\n },\n ]);\n\n const grid = Helpers.getDefaultGrid(selectedMasterPlan, this.api);\n\n grid.columns = cols;\n\n grid.editable = {\n mode: 'inline',\n move: true,\n };\n\n grid.dragend = (e) => {\n kendo.ui.progress($(this.grid), true);\n e.sender.dataSource.sync()\n .done(() => {\n kendo.ui.progress($(this.grid), false);\n })\n .fail(() => {\n\n });\n };\n\n grid.dataSource = this.datasource;\n\n grid.remove = (e) => {\n const r = confirm('Are you sure you want to remove the selected group?');\n if (r === false) {\n e.preventDefault();\n }\n };\n\n $(this.grid)\n .kendoTreeList(grid);\n\n $(this.grid)\n .off('mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')', this.disableButtonsOnEdit)\n .on('mousedown', '.k-button:not(\\'.k-grid-cancel,.k-grid-update\\')', this.disableButtonsOnEdit);\n }\n\n destroy() {\n const div = $(this.grid);\n const data = div.data('kendoTreeList');\n\n super.destroy(data);\n }\n}\n","import FormBase from '../../FormBase.js';\nimport { selectedLanguage, userRole } from '../../../main.js';\nimport Selectors from '../../../Core/Selectors.js';\nimport Constants from '../../../Core/constants.js';\n\nexport default class OperationalImpactScales extends FormBase {\n constructor() {\n super('Operational Impact Scales', 'general', {\n readOnly: !userRole.includes(Constants.RoleTypes.BCM.Administrator),\n });\n this.api = 'bc/OperationalImpactScales';\n\n this.confirmation = 'translations.' + selectedLanguage + '.name';\n\n this.columns = [\n {\n title: 'Value',\n binding: 'value',\n type: 'number',\n sort: 'asc',\n },\n {\n title: 'Name',\n binding: 'name',\n required: true,\n translatable: true,\n },\n {\n title: 'Color',\n binding: 'color',\n defaultValue: null,\n required: false,\n template: (dataItem) => Selectors.ColorTemplate(dataItem, 'color'),\n editor: (container, options) => Selectors.ColorSelector(container, options),\n },\n ];\n }\n}\n","import { IPersistentStorage } from '@/core/storage/IPersistentStorage';\n\nexport default class SessionStorage implements IPersistentStorage {\n public SetValue(key: string, value: string): void {\n window.sessionStorage.setItem(key, value);\n }\n\n public GetValue(key: string): string | null {\n return window.sessionStorage.getItem(key);\n }\n\n public RemoveKey(key: string): void {\n window.sessionStorage.removeItem(key);\n }\n}\n","import { IPersistentStorage } from '@/core/storage/IPersistentStorage';\n// import LocalStorage from '@/core/storage/LocalStorage';\nimport SessionStorage from './SessionStorage';\n\nexport const PersistentStorage: IPersistentStorage = new SessionStorage();\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdPivot.vue?vue&type=style&index=0&id=00307ceb&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdPivot.vue?vue&type=style&index=0&id=00307ceb&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTreeGrid.vue?vue&type=style&index=0&id=57926046&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdTreeGrid.vue?vue&type=style&index=0&id=57926046&scoped=true&lang=css&\"","import { selectedMasterPlan, selectedLanguage } from '../../main.js';\nimport DataSources from '../../Core/datasources.js';\nimport { Helpers } from '../../Core/Helpers.js';\nimport VersionableFormBase from './VersionableFormBase.js';\n\nexport default class IsraClassificationQuestionnaires extends VersionableFormBase {\n constructor() {\n super('Classification Questionnaires', 'general');\n this.api = 'isra/ClassificationQuestionnaires';\n this.confirmation = 'translations.' + selectedLanguage + '.name';\n\n this.columns = [\n {\n title: 'Questionnaire',\n binding: 'versionRootId',\n editable: () => false,\n hidden: true,\n groupHeaderTemplate: (e) => {\n return this.datasource.get(e.items[0].id).translations[selectedLanguage].name;\n },\n editorHidden: true,\n },\n {\n title: 'Name',\n binding: 'name',\n defaultValue: 'New Classification Questionnaire',\n required: true,\n hidden: true,\n sort: 'asc',\n translatable: true,\n editable: (e) => {\n return e.id === e.versionRootId || e.isNew();\n },\n },\n {\n title: 'Version',\n binding: 'version',\n defaultValue: VersionableFormBase.versionPrototype(),\n required: false,\n sort: 'asc',\n translatable: false,\n editable: () => true,\n },\n {\n title: 'Archived',\n binding: 'archived',\n editable: () => false,\n template: (dataItem) => dataItem.archived ? 'Archived' : '',\n width: '120px',\n editorHidden: true,\n },\n {\n title: 'Based On',\n binding: 'versionBasedOn',\n editable: () => false,\n editorHidden: true,\n width: '120px',\n },\n ];\n\n this.questionColumns = [\n {\n title: ' ',\n fieldName: 'comment',\n template: (dataItem) => {\n const q = DataSources.IsraClassificationQuestions.get(dataItem.questionId);\n if (q.translations[selectedLanguage].comment == null ||\n q.translations[selectedLanguage].comment === '') {\n return '';\n } else {\n return ``;\n }\n },\n width: '38px',\n editable: () => false,\n },\n {\n title: 'Id',\n fieldName: 'identification',\n template: (dataItem) => {\n return Helpers.sanitizeHTML(dataItem.questionId);\n },\n width: '55px',\n editable: () => false,\n },\n {\n title: 'Question',\n binding: 'questionId',\n template: (dataItem) => {\n const q = DataSources.IsraClassificationQuestions.get(dataItem.questionId);\n return Helpers.sanitizeHTML(q.translations[selectedLanguage].question)\n .replace('\\n', '
    ');\n },\n editable: () => false,\n },\n ];\n }\n\n require() {\n return [DataSources.IsraClassificationQuestions];\n }\n\n setCustomGridProperties(grid) {\n super.setCustomGridProperties(grid);\n\n grid.toolbar.unshift(\n { name: 'create' },\n { name: 'excel' },\n );\n\n grid.toolbar.push(\n { template: ' ' },\n { template: 'Clone Questionnaire' },\n )\n ;\n let firstbound = true;\n\n const databound = grid.dataBound;\n grid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n const data = e.sender.dataSource.data();\n\n $.each(data, function (i, row) {\n if (row.isNew()) {\n $('tr[data-uid=\"' + row.uid + '\"] ')\n .find('.k-hierarchy-cell a')\n .remove();\n }\n });\n\n if (firstbound) {\n $(this.grid).data('kendoGrid').hideColumn('archived');\n\n firstbound = false;\n $('#questionnaireDuplicate')\n .off('click')\n .on('click', () => {\n const selectedItem = e.sender.dataItem(e.sender.select());\n\n if (selectedItem == null) {\n Helpers.showError('Please select a questionnaire to clone');\n return;\n }\n\n kendo.ui.progress($(this.grid), true);\n\n $.post(`/api/masterplans/${selectedMasterPlan.id}/isra/ClassificationQuestionnaires/${selectedItem.id}/clone`)\n .done(() => {\n this.datasource.read().always(() => {\n kendo.ui.progress($(this.grid), false);\n });\n const grid = $(this.grid).data('kendoGrid');\n grid.refresh();\n })\n .fail((error) => {\n Helpers.showError(error.responseText, 'Cloning failed');\n kendo.ui.progress($(this.grid), false);\n });\n });\n }\n };\n\n // Details\n grid.detailTemplate = 'Questions:';\n\n grid.detailInit = (model) => {\n const readonly = !!model.data.archived;\n\n const questionsGrid = this.createGrid({\n api: 'isra/ClassificationQuestionnaireQuestions/' + model.data.id,\n columns: this.questionColumns,\n confirmation: (e) => {\n return DataSources.IsraClassificationQuestions.get(e.questionId).translations[selectedLanguage].question;\n },\n readOnly: readonly,\n errorCallBack: {\n create: (event) => {\n if (event.status !== 200) {\n const grid = $(this.grid)\n .data('kendoGrid');\n if (grid != null) {\n grid.dataSource.cancelChanges();\n }\n }\n },\n },\n });\n\n if (!readonly) {\n questionsGrid.toolbar = [\n {\n template: 'Add Question',\n },\n ];\n }\n\n const databound = questionsGrid.dataBound;\n questionsGrid.dataBound = (e) => {\n databound.call(e.sender, e);\n\n if (!readonly) {\n $('[name=\"Add-Question\"]')\n .off('click')\n .on('click', (e) => {\n const data = $(e.target)\n .closest('[data-role=\"grid\"]')\n .data('kendoGrid').dataSource;\n\n const content = '
    ';\n Helpers.showPopUp('Select Question', content, [\n {\n text: 'Ok',\n primary: true,\n action: () => {\n const di = $('#questionsList')\n .data('kendoGrid')\n .selectedKeyNames();\n if (di.length > 0) {\n for (let i = 0; i < di.length; ++i) {\n data.add({\n questionId: di[i],\n });\n }\n data.sync();\n return true;\n }\n return false;\n },\n },\n {\n text: 'Cancel',\n action: () => true,\n },\n ], () => {\n const filters = [];\n for (let i = 0; i < data.data().length; ++i) {\n filters.push({\n field: 'id',\n operator: 'neq',\n value: data.data()[i].questionId,\n });\n }\n\n const questionsGrid = this.createGrid({\n api: 'isra/ClassificationQuestions',\n columns: [\n {\n selectable: true,\n width: '50px',\n },\n {\n title: 'Id',\n binding: 'id',\n collapse: true,\n },\n {\n title: 'Question',\n binding: 'translations[\"' + selectedLanguage + '\"].question',\n },\n ],\n pageable: false,\n });\n\n delete questionsGrid.toolbar;\n delete questionsGrid.editable;\n delete questionsGrid.height;\n delete questionsGrid.pageable;\n delete questionsGrid.navigatable;\n delete questionsGrid.reorderable;\n delete questionsGrid.selectable;\n\n questionsGrid.persistSelection = true;\n\n questionsGrid.columns.splice(-1);\n\n questionsGrid.dataSource.filter({\n logic: 'and',\n filters: filters,\n });\n\n $('#questionsList')\n .kendoGrid(questionsGrid);\n });\n });\n };\n };\n\n $('
    ')\n .appendTo(model.detailCell)\n .kendoGrid(questionsGrid);\n };\n }\n}\n"],"sourceRoot":""}