{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/views/investigation/panes/SummaryDocumentsPane.vue?06cf","webpack:///./src/assets/images/loading-icon-not-animated.png","webpack:///./src/views/investigation/panes/OverviewPane.vue?8cde","webpack:///./src/views/admin/ClusterReportPage.vue?cc03","webpack:///./src/views/investigation/dialogs/HarvestByDoiDialog.vue?470f","webpack:///./src/views/investigation/previews/ReferencedEntityPreview.vue?92ae","webpack:///./src/views/investigation/panes/TopsPane.vue?d7e3","webpack:///./src/assets/images/loading.gif","webpack:///./src/views/MainPage.vue?ba3c","webpack:///./src/views/investigation/dialogs/InvestigationConfigurationDialog.vue?efee","webpack:///./src/views/investigation/InvestigationHeaderBar.vue?c1fe","webpack:///./src/views/investigation/panes/DocumentsPane.vue?58bf","webpack:///./src/views/investigation/panes/TimelineTermsPane.vue?9e95","webpack:///./src/views/investigation/dialogs/CreateObservationDialog.vue?93fe","webpack:///./src/views/investigation/dialogs/GraphSettingsDialog.vue?0b24","webpack:///./src/views/investigation/panes/ObservationItem.vue?df8c","webpack:///./src/views/investigation/panes/AliasNamesPane.vue?0517","webpack:///./src/views/investigation/dialogs/ObservationSectionIndexDialog.vue?c955","webpack:///./src/views/investigation/popups/TermPopupMenu.vue?5b95","webpack:///./src/assets/images/home-page.svg","webpack:///./src/views/admin/AdminPage.vue?30e9","webpack:///./src/views/investigation/panes/ReportEditor.vue?da1e","webpack:///./src/components/FacultyWorksSelector.vue?c2b7","webpack:///./src/components/header/HeaderBar.vue?87fd","webpack:///./src/components/GenericDialog.vue?c666","webpack:///./src/views/investigations/NewPoliticalInvestigationDetails.vue?7116","webpack:///./src/components/SplittedPane.vue?a16f","webpack:///./src/views/investigation/panes/ResearchInterestsPane.vue?c45f","webpack:///./src/views/investigation/graphs/Speedometer.vue?f414","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/components/UploadImagePane.vue?ebbf","webpack:///./src/assets/images/socrates-logo.svg","webpack:///./src/views/investigations/NewWebsiteInvestigationDetails.vue?ea7e","webpack:///./src/views/investigation/panes/TermsPane.vue?250b","webpack:///./src/views/investigation/dialogs/ConfirmationDialog.vue?33ad","webpack:///./src/views/ResetPage.vue?aaa1","webpack:///./src/views/investigation/dialogs/BatchTermsDialog.vue?386c","webpack:///./src/components/BarGraph.vue?1084","webpack:///./src/views/investigation/panes/DocumentItemReviewHeader.vue?e757","webpack:///./src/views/investigations/NewTopicInvestigationDetails.vue?da77","webpack:///./src/views/investigation/panes/OverviewDocumentItem.vue?0c26","webpack:///./src/components/ParticleLoadingScreen.vue?f530","webpack:///./src/views/investigations/NewTenderInvestigationDetails.vue?9b06","webpack:///./src/components/CheckBox.vue?337a","webpack:///./src/App.vue?6656","webpack:///./src/assets/images/envelope.svg","webpack:///./src/views/investigation/dialogs/UploadFileDialog.vue?38cf","webpack:///./src/views/investigation/panes/EntityRelationshipSummaryPane.vue?3f5b","webpack:///./src/views/investigation/dialogs/RenameLabelDialog.vue?a3a7","webpack:///./src/views/investigations/NewPersonGroupInvestigationDetails.vue?2bf8","webpack:///./src/assets/images/loading-icon-white-not-animated.png","webpack:///./src/views/investigation/graphs/TimelineGraph.vue?1a76","webpack:///./src/components/SpinningLoader.vue?2063","webpack:///./src/views/investigations/NewCompanyInvestigationDetails.vue?86f8","webpack:///./src/views/SignUpPage.vue?c955","webpack:///./src/views/investigation/graphs/GraphImage.vue?7e1a","webpack:///./src/views/investigation/panes/ReportNavigationPane.vue?a6c2","webpack:///./src/views/SignInPage.vue?b20c","webpack:///./src/components/filter/DocumentDisplayedResultsFilter.vue?cac8","webpack:///./src/components/MessageDialog.vue?2b70","webpack:///./src/views/investigations/InvestigationsPage.vue?e906","webpack:///./src/views/investigation/dialogs/HarvestDialog.vue?853f","webpack:///./src/components/UserMenu.vue?ef1e","webpack:///./src/views/investigation/panes/SuggestedTermsPane.vue?e6be","webpack:///./src/views/NotFoundPage.vue?51b8","webpack:///./src/views/investigation/dialogs/NoteDialog.vue?4354","webpack:///./src/views/investigation/PersonProfile.vue?2ac9","webpack:///./src/views/investigation/TopicInvestigation.vue?7cf5","webpack:///./src/views/investigation/panes/DocumentItem.vue?01a9","webpack:///./src/assets/images/logo-s.svg","webpack:///./src/views/investigation/PersonInvestigation.vue?18b6","webpack:///./src/views/investigation/panes/DocumentExcerptsPane.vue?a430","webpack:///./src/views/investigation/panes/DocumentExcerpts.vue?5482","webpack:///./src/components/InvestigationSelector.vue?2344","webpack:///./src/views/RegisterAccountPage.vue?70bd","webpack:///./src/views/investigation/InvestigationPage.vue?b918","webpack:///./src/views/investigation/panes/AuthorSummaryPane.vue?c9ff","webpack:///./src/views/investigation/dialogs/EditDocumentDialog.vue?6886","webpack:///./src/views/investigation/panes/RecentAffiliationsPane.vue?ffd7","webpack:///./src/views/investigation/dialogs/UpdateEntityImageDialog.vue?40fe","webpack:///./src/components/GenericDialogNew.vue?3e8e","webpack:///./src/components/AuthPageContainer.vue?0d22","webpack:///./src/views/investigation/panes/AuthorDisambiguationPane.vue?4a76","webpack:///./src/views/investigation/dialogs/AddLabelToDocumentsDialog.vue?4df3","webpack:///./src/views/investigation/templates/CreateTermTemplate.vue?ee99","webpack:///./src/assets/images/fw-white.svg","webpack:///./src/views/investigation/dialogs/RenameTermGroupDialog.vue?8d4b","webpack:///./src/views/investigation/dialogs/AuthorDetailsDialog.vue?10b9","webpack:///./src/views/investigations/NewResearcherWorksInvestigationDetails.vue?0470","webpack:///./src/views/investigation/graphs/AuthorGraph.vue?8482","webpack:///./src/views/investigation/dialogs/CreateTermGroupDialog.vue?b359","webpack:///./src/components/filter/DateFilter.vue?dc2c","webpack:///./src/assets/images/observation.svg","webpack:///./src/components/PopupMenu.vue?a18a","webpack:///./src/views/investigation/dialogs/AddPredefinedTermGroupsDialog.vue?9eeb","webpack:///./src/views/investigation/dialogs/CreateObservationSectionDialog.vue?7f70","webpack:///./src/components/NoResults.vue?ef70","webpack:///./src/assets/images/download.svg","webpack:///./src/views/investigation/dialogs/FilterByUrlsDialog.vue?da9f","webpack:///./src/views/investigations/NewFacultyWorksInvestigationDetails.vue?9113","webpack:///./src/assets/images/home.svg","webpack:///./src/views/investigation/graphs/UnifiedGraph.vue?4e90","webpack:///./src/views/investigations/NewPersonInvestigationDetails.vue?8ad8","webpack:///./src/assets/images/earth.svg","webpack:///./src/App.vue?aaa2","webpack:///./src/api/base-service.ts","webpack:///./src/api/redirect.ts","webpack:///./src/api/auth-service.ts","webpack:///./src/api/user-service.ts","webpack:///./src/store/auth-module.ts","webpack:///./src/utils/color-utils.ts","webpack:///./src/components/ErrorMessageDialog.vue?d9b1","webpack:///./src/components/GenericDialogNew.vue?3888","webpack:///./src/components/GenericDialogNew.vue?8ae3","webpack:///./src/components/GenericDialogNew.vue?0b7b","webpack:///./src/components/GenericDialogNew.vue","webpack:///./src/components/ErrorMessageDialog.vue?7844","webpack:///./src/components/ErrorMessageDialog.vue?e2d3","webpack:///./src/components/ErrorMessageDialog.vue","webpack:///./src/App.vue?9844","webpack:///./src/App.vue?6c26","webpack:///./src/App.vue","webpack:///./src/views/investigations/InvestigationsPage.vue?2946","webpack:///./src/api/admin-service.ts","webpack:///./src/api/investigations-service.ts","webpack:///./src/store/investigations-module.ts","webpack:///./src/types/investigations.ts","webpack:///./src/api/investigation-service.ts","webpack:///./src/api/topic-investigation-service.ts","webpack:///./src/api/person-investigation-service.ts","webpack:///./src/store/investigation/get-investigation-id.ts","webpack:///./src/api/investigation/terms-service.ts","webpack:///./src/store/investigation/investigation-terms-module.ts","webpack:///./src/api/investigation-document-service.ts","webpack:///./src/store/investigation/documents-module.ts","webpack:///./src/store/investigation/graph-module.ts","webpack:///./src/store/investigation/date-filter-module.ts","webpack:///./src/store/investigation/person-filter-module.ts","webpack:///./src/store/investigation/dialogs/term-popup-menu-module.ts","webpack:///./src/store/investigation/dialogs/note-dialog-module.ts","webpack:///./src/api/environment-service.ts","webpack:///./src/store/environment-module.ts","webpack:///./src/utils/utils.ts","webpack:///./src/api/observation-service.ts","webpack:///./src/store/investigation/observation-module.ts","webpack:///./src/api/investigation-configuration-service.ts","webpack:///./src/store/investigation/investigation-module.ts","webpack:///./src/components/SpinningLoader.vue?dad9","webpack:///./src/components/SpinningLoader.vue?170b","webpack:///./src/components/SpinningLoader.vue?8007","webpack:///./src/components/SpinningLoader.vue","webpack:///./src/components/InvestigationSelector.vue?b974","webpack:///./src/components/InvestigationSelector.vue?a98d","webpack:///./src/components/InvestigationSelector.vue?25a6","webpack:///./src/components/InvestigationSelector.vue","webpack:///./src/components/PopupMenu.vue?c44f","webpack:///./src/components/PopupMenu.vue?7200","webpack:///./src/components/PopupMenu.vue?2969","webpack:///./src/components/PopupMenu.vue","webpack:///./src/types/new-investigation.ts","webpack:///./src/views/investigation/dialogs/ConfirmationDialog.vue?dbde","webpack:///./src/views/investigation/dialogs/ConfirmationDialog.vue?8b32","webpack:///./src/views/investigation/dialogs/ConfirmationDialog.vue?ef58","webpack:///./src/views/investigation/dialogs/ConfirmationDialog.vue","webpack:///./src/store/user-mixin.ts","webpack:///./src/components/FacultyWorksSelector.vue?309b","webpack:///./src/components/FacultyWorksSelector.vue?e1b5","webpack:///./src/components/FacultyWorksSelector.vue?6b35","webpack:///./src/components/FacultyWorksSelector.vue","webpack:///./src/views/investigations/InvestigationsPage.vue?424c","webpack:///./src/views/investigations/InvestigationsPage.vue?a57d","webpack:///./src/views/investigations/InvestigationsPage.vue","webpack:///./src/views/investigations/NewInvestigationPage.vue?e1c0","webpack:///./src/views/investigations/NewTopicInvestigationDetails.vue?5e71","webpack:///./src/views/investigations/NewTopicInvestigationDetails.vue?4729","webpack:///./src/views/investigations/NewTopicInvestigationDetails.vue?fa6c","webpack:///./src/views/investigations/NewTopicInvestigationDetails.vue","webpack:///./src/views/investigations/NewPersonInvestigationDetails.vue?9048","webpack:///./src/views/investigations/NewPersonInvestigationDetails.vue?9a3a","webpack:///./src/views/investigations/NewPersonInvestigationDetails.vue?a8bd","webpack:///./src/views/investigations/NewPersonInvestigationDetails.vue","webpack:///./src/views/investigations/NewPersonGroupInvestigationDetails.vue?f01a","webpack:///./src/views/investigations/NewPersonGroupInvestigationDetails.vue?175b","webpack:///./src/views/investigations/NewPersonGroupInvestigationDetails.vue?5651","webpack:///./src/views/investigations/NewPersonGroupInvestigationDetails.vue","webpack:///./src/views/investigations/NewPoliticalInvestigationDetails.vue?cfe2","webpack:///./src/views/investigations/NewPoliticalInvestigationDetails.vue?cdb0","webpack:///./src/views/investigations/NewPoliticalInvestigationDetails.vue?ab1b","webpack:///./src/views/investigations/NewPoliticalInvestigationDetails.vue","webpack:///./src/views/investigations/NewUniversityInvestigationDetails.vue?a48d","webpack:///./src/views/investigations/NewUniversityInvestigationDetails.vue?7402","webpack:///./src/views/investigations/NewUniversityInvestigationDetails.vue?ad18","webpack:///./src/views/investigations/NewUniversityInvestigationDetails.vue","webpack:///./src/views/investigations/NewWebsiteInvestigationDetails.vue?8acf","webpack:///./src/views/investigations/NewWebsiteInvestigationDetails.vue?ddfa","webpack:///./src/views/investigations/NewWebsiteInvestigationDetails.vue?edd4","webpack:///./src/views/investigations/NewWebsiteInvestigationDetails.vue","webpack:///./src/views/investigations/NewTenderInvestigationDetails.vue?2930","webpack:///./src/views/investigations/NewTenderInvestigationDetails.vue?0135","webpack:///./src/views/investigations/NewTenderInvestigationDetails.vue?ca81","webpack:///./src/views/investigations/NewTenderInvestigationDetails.vue","webpack:///./src/views/investigations/NewCompanyInvestigationDetails.vue?d0a4","webpack:///./src/views/investigations/NewCompanyInvestigationDetails.vue?c35d","webpack:///./src/views/investigations/NewCompanyInvestigationDetails.vue?2f02","webpack:///./src/views/investigations/NewCompanyInvestigationDetails.vue","webpack:///./src/views/investigations/NewResearcherWorksInvestigationDetails.vue?32d7","webpack:///./src/views/investigations/NewResearcherWorksInvestigationDetails.vue?b252","webpack:///./src/views/investigations/NewResearcherWorksInvestigationDetails.vue?70c0","webpack:///./src/views/investigations/NewResearcherWorksInvestigationDetails.vue","webpack:///./src/views/investigations/NewFacultyWorksInvestigationDetails.vue?c7b4","webpack:///./src/views/investigations/NewFacultyWorksInvestigationDetails.vue?936d","webpack:///./src/views/investigations/NewFacultyWorksInvestigationDetails.vue?6da6","webpack:///./src/views/investigations/NewFacultyWorksInvestigationDetails.vue","webpack:///./src/views/investigations/NewInvestigationPage.vue?06f9","webpack:///./src/views/investigations/NewInvestigationPage.vue?564b","webpack:///./src/views/investigations/NewInvestigationPage.vue","webpack:///./src/views/SignInPage.vue?ebfe","webpack:///./src/components/AuthPageContainer.vue?6b92","webpack:///./src/components/AuthPageContainer.vue?a4fd","webpack:///./src/components/AuthPageContainer.vue?1990","webpack:///./src/components/AuthPageContainer.vue","webpack:///./src/components/MessageDialog.vue?3267","webpack:///./src/components/MessageDialog.vue?373e","webpack:///./src/components/MessageDialog.vue?4a97","webpack:///./src/components/MessageDialog.vue","webpack:///./src/views/SignInPage.vue?ed4f","webpack:///./src/views/SignInPage.vue?f5d8","webpack:///./src/views/SignInPage.vue","webpack:///./src/views/MainPage.vue?fdf2","webpack:///./src/components/header/HeaderBar.vue?aec1","webpack:///./src/components/UserMenu.vue?4141","webpack:///./src/components/UserMenu.vue?7dd9","webpack:///./src/components/UserMenu.vue?9ead","webpack:///./src/components/UserMenu.vue","webpack:///./src/views/investigation/dialogs/AlertsDialog.vue?efa8","webpack:///./src/components/GenericDialog.vue?1d06","webpack:///./src/components/GenericDialog.vue?ea43","webpack:///./src/components/GenericDialog.vue?ba22","webpack:///./src/components/GenericDialog.vue","webpack:///./src/views/investigation/dialogs/AlertsDialog.vue?6039","webpack:///./src/views/investigation/dialogs/AlertsDialog.vue?6786","webpack:///./src/views/investigation/dialogs/AlertsDialog.vue","webpack:///./src/views/investigation/dialogs/HarvestDialog.vue?fdb3","webpack:///./src/views/investigation/dialogs/HarvestDialog.vue?189c","webpack:///./src/views/investigation/dialogs/HarvestDialog.vue?cdb5","webpack:///./src/views/investigation/dialogs/HarvestDialog.vue","webpack:///./src/views/investigation/dialogs/HarvestByDoiDialog.vue?f8d3","webpack:///./src/views/investigation/dialogs/HarvestByDoiDialog.vue?eb69","webpack:///./src/views/investigation/dialogs/HarvestByDoiDialog.vue?efa5","webpack:///./src/views/investigation/dialogs/HarvestByDoiDialog.vue","webpack:///./src/views/investigation/dialogs/ResearcherHarvestDialog.vue?1d46","webpack:///./src/views/investigation/dialogs/ResearcherHarvestDialog.vue?f065","webpack:///./src/views/investigation/dialogs/ResearcherHarvestDialog.vue?91f7","webpack:///./src/views/investigation/dialogs/ResearcherHarvestDialog.vue","webpack:///./src/views/investigation/dialogs/InvestigationConfigurationDialog.vue?5c78","webpack:///./src/views/investigation/dialogs/InvestigationConfigurationDialog.vue?d194","webpack:///./src/views/investigation/dialogs/InvestigationConfigurationDialog.vue?3c55","webpack:///./src/views/investigation/dialogs/InvestigationConfigurationDialog.vue","webpack:///./src/views/investigation/dialogs/CreateObservationDialog.vue?4999","webpack:///./src/components/KendoEditorWrapper.vue?f9e7","webpack:///./src/components/KendoEditorWrapper.vue?475d","webpack:///./src/components/KendoEditorWrapper.vue?e178","webpack:///./src/components/KendoEditorWrapper.vue","webpack:///./src/views/investigation/previews/ReferencedEntityPreview.vue?d430","webpack:///./src/views/investigation/panes/AuthorSummaryPane.vue?4852","webpack:///./src/views/investigation/panes/ResearchInterestsPane.vue?ea48","webpack:///./src/views/investigation/panes/ResearchInterestsPane.vue?5efa","webpack:///./src/views/investigation/panes/ResearchInterestsPane.vue?48fd","webpack:///./src/views/investigation/panes/ResearchInterestsPane.vue","webpack:///./src/views/investigation/panes/RecentAffiliationsPane.vue?c258","webpack:///./src/views/investigation/panes/RecentAffiliationsPane.vue?09f1","webpack:///./src/views/investigation/panes/RecentAffiliationsPane.vue?83c0","webpack:///./src/views/investigation/panes/RecentAffiliationsPane.vue","webpack:///./src/views/investigation/panes/SummaryDocumentsPane.vue?a008","webpack:///./src/views/investigation/panes/SummaryDocumentsPane.vue?8ba1","webpack:///./src/views/investigation/panes/SummaryDocumentsPane.vue?3231","webpack:///./src/views/investigation/panes/SummaryDocumentsPane.vue","webpack:///./src/views/investigation/panes/AliasNamesPane.vue?a942","webpack:///./src/views/investigation/panes/AliasNamesPane.vue?9589","webpack:///./src/views/investigation/panes/AliasNamesPane.vue?07c3","webpack:///./src/views/investigation/panes/AliasNamesPane.vue","webpack:///./src/views/investigation/dialogs/UpdateEntityImageDialog.vue?1504","webpack:///./src/views/investigation/dialogs/UpdateEntityImageDialog.vue?bd9d","webpack:///./src/views/investigation/dialogs/UpdateEntityImageDialog.vue?aad9","webpack:///./src/views/investigation/dialogs/UpdateEntityImageDialog.vue","webpack:///./src/views/investigation/dialogs/AuthorDetailsDialog.vue?6084","webpack:///./src/components/UploadImagePane.vue?72ff","webpack:///./src/components/UploadImagePane.vue?cc5e","webpack:///./src/components/UploadImagePane.vue?0212","webpack:///./src/components/UploadImagePane.vue","webpack:///./src/views/investigation/dialogs/AuthorDetailsDialog.vue?1db7","webpack:///./src/views/investigation/dialogs/AuthorDetailsDialog.vue?90e9","webpack:///./src/views/investigation/dialogs/AuthorDetailsDialog.vue","webpack:///./src/utils/common-messages.ts","webpack:///./src/views/investigation/panes/AuthorSummaryPane.vue?f380","webpack:///./src/views/investigation/panes/AuthorSummaryPane.vue?1eda","webpack:///./src/views/investigation/panes/AuthorSummaryPane.vue","webpack:///./src/views/investigation/panes/DocumentItem.vue?9bc0","webpack:///./src/directives/TextSelection.ts","webpack:///./src/views/investigation/services/TextMarkerService.ts","webpack:///./src/views/investigation/dialogs/RenameLabelDialog.vue?317a","webpack:///./src/views/investigation/dialogs/RenameLabelDialog.vue?b0cc","webpack:///./src/views/investigation/dialogs/RenameLabelDialog.vue?08b8","webpack:///./src/views/investigation/dialogs/RenameLabelDialog.vue","webpack:///./src/views/investigation/panes/DocumentItemHeader.vue?ad59","webpack:///./src/views/investigation/dialogs/EditDocumentDialog.vue?22c8","webpack:///./src/views/investigation/dialogs/EditDocumentDialog.vue?cb2d","webpack:///./src/views/investigation/dialogs/EditDocumentDialog.vue?219e","webpack:///./src/views/investigation/dialogs/EditDocumentDialog.vue","webpack:///./src/store/investigation-mixin.ts","webpack:///./src/views/investigation/panes/DocumentItemHeader.vue?2878","webpack:///./src/views/investigation/panes/DocumentItemHeader.vue?801b","webpack:///./src/views/investigation/panes/DocumentItemHeader.vue","webpack:///./src/views/investigation/panes/DocumentItemReviewHeader.vue?0681","webpack:///./src/views/investigation/panes/DocumentItemReviewHeader.vue?a29d","webpack:///./src/views/investigation/panes/DocumentItemReviewHeader.vue?4970","webpack:///./src/views/investigation/panes/DocumentItemReviewHeader.vue","webpack:///./src/utils/text-utils.ts","webpack:///./src/views/investigation/panes/DocumentItem.vue?ba42","webpack:///./src/views/investigation/panes/DocumentItem.vue?a62e","webpack:///./src/views/investigation/panes/DocumentItem.vue","webpack:///./src/views/investigation/graphs/GraphImage.vue?8160","webpack:///./src/views/investigation/graphs/GraphImage.vue?8be0","webpack:///./src/views/investigation/graphs/GraphImage.vue?0ff9","webpack:///./src/views/investigation/graphs/GraphImage.vue","webpack:///./src/views/investigation/previews/ReferencedEntityPreview.vue?87d4","webpack:///./src/views/investigation/previews/ReferencedEntityPreview.vue?b636","webpack:///./src/views/investigation/previews/ReferencedEntityPreview.vue","webpack:///./src/views/investigation/dialogs/CreateObservationDialog.vue?771b","webpack:///./src/views/investigation/dialogs/CreateObservationDialog.vue?1b33","webpack:///./src/views/investigation/dialogs/CreateObservationDialog.vue","webpack:///./src/api/investigation-entity-service.ts","webpack:///./src/views/investigation/dialogs/UploadFileDialog.vue?1727","webpack:///./src/views/investigation/dialogs/UploadFileDialog.vue?066c","webpack:///./src/views/investigation/dialogs/UploadFileDialog.vue?fa3c","webpack:///./src/views/investigation/dialogs/UploadFileDialog.vue","webpack:///./src/views/investigation/dialogs/FilterByUrlsDialog.vue?0094","webpack:///./src/views/investigation/dialogs/FilterByUrlsDialog.vue?72d7","webpack:///./src/views/investigation/dialogs/FilterByUrlsDialog.vue?dcd0","webpack:///./src/views/investigation/dialogs/FilterByUrlsDialog.vue","webpack:///./src/components/header/HeaderBar.vue?88aa","webpack:///./src/components/header/HeaderBar.vue?5dc8","webpack:///./src/components/header/HeaderBar.vue","webpack:///./src/views/MainPage.vue?5d8d","webpack:///./src/views/MainPage.vue?06f8","webpack:///./src/views/MainPage.vue","webpack:///./src/views/RegisterAccountPage.vue?bb67","webpack:///./src/views/RegisterAccountPage.vue?08c4","webpack:///./src/views/RegisterAccountPage.vue?a7b9","webpack:///./src/views/RegisterAccountPage.vue","webpack:///./src/views/NotFoundPage.vue?64fd","webpack:///./src/views/NotFoundPage.vue?f30f","webpack:///./src/views/NotFoundPage.vue?f132","webpack:///./src/views/NotFoundPage.vue","webpack:///./src/store/index.ts","webpack:///./src/views/investigation/InvestigationPage.vue?2a21","webpack:///./src/views/investigation/InvestigationHeaderBar.vue?dda8","webpack:///./src/views/investigation/InvestigationHeaderBar.vue?bf9d","webpack:///./src/views/investigation/InvestigationHeaderBar.vue?1eba","webpack:///./src/views/investigation/InvestigationHeaderBar.vue","webpack:///./src/views/investigation/popups/TermPopupMenu.vue?8999","webpack:///./src/views/investigation/templates/CreateTermTemplate.vue?6776","webpack:///./src/views/investigation/dialogs/RenameTermGroupDialog.vue?1752","webpack:///./src/views/investigation/dialogs/RenameTermGroupDialog.vue?b4ac","webpack:///./src/views/investigation/dialogs/RenameTermGroupDialog.vue?60b2","webpack:///./src/views/investigation/dialogs/RenameTermGroupDialog.vue","webpack:///./src/views/investigation/templates/CreateTermTemplate.vue?1c17","webpack:///./src/views/investigation/templates/CreateTermTemplate.vue?4d7b","webpack:///./src/views/investigation/templates/CreateTermTemplate.vue","webpack:///./src/views/investigation/popups/TermPopupMenu.vue?af31","webpack:///./src/views/investigation/popups/TermPopupMenu.vue?bd91","webpack:///./src/views/investigation/popups/TermPopupMenu.vue","webpack:///./src/views/investigation/dialogs/NoteDialog.vue?05c0","webpack:///./src/views/investigation/dialogs/NoteDialog.vue?0f0d","webpack:///./src/views/investigation/dialogs/NoteDialog.vue?96ab","webpack:///./src/views/investigation/dialogs/NoteDialog.vue","webpack:///./src/components/ParticleLoadingScreen.vue?9980","webpack:///./src/components/ParticleLoadingScreen.vue?f0d4","webpack:///./src/infrastructure/WebsocketManager.ts","webpack:///./src/components/ParticleLoadingScreen.vue?77a9","webpack:///./src/components/ParticleLoadingScreen.vue","webpack:///./src/views/investigation/InvestigationPage.vue?5151","webpack:///./src/views/investigation/InvestigationPage.vue?762a","webpack:///./src/views/investigation/InvestigationPage.vue","webpack:///./src/views/investigation/TopicInvestigation.vue?5a31","webpack:///./src/components/SplittedPane.vue?afff","webpack:///./src/components/SplittedPane.vue?9d0b","webpack:///./src/components/SplittedPane.vue?497f","webpack:///./src/components/SplittedPane.vue","webpack:///./src/views/investigation/panes/TopsPane.vue?f28a","webpack:///./src/components/BarGraph.vue?ad4e","webpack:///./src/components/BarGraph.vue?864a","webpack:///./src/components/BarGraph.vue?299b","webpack:///./src/components/BarGraph.vue","webpack:///./src/components/filter/DateFilter.vue?c41e","webpack:///./src/components/filter/DateFilter.vue?9a6a","webpack:///./src/components/filter/DateFilter.vue?17a8","webpack:///./src/components/filter/DateFilter.vue","webpack:///./src/components/filter/DocumentDisplayedResultsFilter.vue?394a","webpack:///./src/components/filter/DocumentLabelFilterUtil.ts","webpack:///./src/components/filter/DocumentDisplayedResultsFilter.vue?59d0","webpack:///./src/components/filter/DocumentDisplayedResultsFilter.vue?c0a5","webpack:///./src/components/filter/DocumentDisplayedResultsFilter.vue","webpack:///./src/views/investigation/panes/TopsPane.vue?0867","webpack:///./src/views/investigation/panes/TopsPane.vue?aa27","webpack:///./src/views/investigation/panes/TopsPane.vue","webpack:///./src/views/investigation/panes/TermsPane.vue?8d9c","webpack:///./src/views/investigation/dialogs/BatchTermsDialog.vue?5607","webpack:///./src/views/investigation/dialogs/BatchTermsDialog.vue?ca1d","webpack:///./src/views/investigation/dialogs/BatchTermsDialog.vue?aed9","webpack:///./src/views/investigation/dialogs/BatchTermsDialog.vue","webpack:///./src/views/investigation/dialogs/CreateTermGroupDialog.vue?6a4a","webpack:///./src/components/CheckBox.vue?0381","webpack:///./src/components/CheckBox.vue?0f91","webpack:///./src/components/CheckBox.vue?de12","webpack:///./src/components/CheckBox.vue","webpack:///./src/views/investigation/dialogs/CreateTermGroupDialog.vue?c236","webpack:///./src/views/investigation/dialogs/CreateTermGroupDialog.vue?e544","webpack:///./src/views/investigation/dialogs/CreateTermGroupDialog.vue","webpack:///./src/views/investigation/dialogs/AddPredefinedTermGroupsDialog.vue?3c9a","webpack:///./src/views/investigation/dialogs/AddPredefinedTermGroupsDialog.vue?d880","webpack:///./src/views/investigation/dialogs/AddPredefinedTermGroupsDialog.vue?f655","webpack:///./src/views/investigation/dialogs/AddPredefinedTermGroupsDialog.vue","webpack:///./src/views/investigation/dialogs/RenameTermDialog.vue?78a9","webpack:///./src/views/investigation/dialogs/RenameTermDialog.vue?7897","webpack:///./src/views/investigation/dialogs/RenameTermDialog.vue?95be","webpack:///./src/views/investigation/dialogs/RenameTermDialog.vue","webpack:///./src/views/investigation/panes/TermsPane.vue?2e43","webpack:///./src/views/investigation/panes/TermsPane.vue?b6ec","webpack:///./src/views/investigation/panes/TermsPane.vue","webpack:///./src/views/investigation/panes/ReportNavigationPane.vue?f762","webpack:///./src/views/investigation/dialogs/CreateObservationSectionDialog.vue?802d","webpack:///./src/views/investigation/dialogs/CreateObservationSectionDialog.vue?eba9","webpack:///./src/views/investigation/dialogs/CreateObservationSectionDialog.vue?7c46","webpack:///./src/views/investigation/dialogs/CreateObservationSectionDialog.vue","webpack:///./src/views/investigation/dialogs/RenameObservationSectionDialog.vue?878a","webpack:///./src/views/investigation/dialogs/RenameObservationSectionDialog.vue?a69c","webpack:///./src/views/investigation/dialogs/RenameObservationSectionDialog.vue?0acd","webpack:///./src/views/investigation/dialogs/RenameObservationSectionDialog.vue","webpack:///./src/views/investigation/dialogs/ObservationSectionIndexDialog.vue?861b","webpack:///./src/views/investigation/dialogs/ObservationSectionIndexDialog.vue?9f9b","webpack:///./src/views/investigation/dialogs/ObservationSectionIndexDialog.vue?806c","webpack:///./src/views/investigation/dialogs/ObservationSectionIndexDialog.vue","webpack:///./src/views/investigation/panes/ReportNavigationPane.vue?dd3a","webpack:///./src/views/investigation/panes/ReportNavigationPane.vue?4598","webpack:///./src/views/investigation/panes/ReportNavigationPane.vue","webpack:///./src/views/investigation/panes/EntitySummaryPane.vue?f871","webpack:///./src/views/investigation/panes/DocumentExcerptsPane.vue?aabe","webpack:///./src/views/investigation/panes/DocumentExcerpts.vue?8e8b","webpack:///./src/views/investigation/panes/DocumentExcerpts.vue?4c2c","webpack:///./src/views/investigation/panes/DocumentExcerpts.vue?b4fe","webpack:///./src/views/investigation/panes/DocumentExcerpts.vue","webpack:///./src/views/investigation/dialogs/AddLabelToDocumentsDialog.vue?f504","webpack:///./src/views/investigation/dialogs/AddLabelToDocumentsDialog.vue?a3dd","webpack:///./src/views/investigation/dialogs/AddLabelToDocumentsDialog.vue?d435","webpack:///./src/views/investigation/dialogs/AddLabelToDocumentsDialog.vue","webpack:///./src/views/investigation/panes/DocumentExcerptsPane.vue?8631","webpack:///./src/views/investigation/panes/DocumentExcerptsPane.vue?be36","webpack:///./src/views/investigation/panes/DocumentExcerptsPane.vue","webpack:///./src/views/investigation/panes/EntitySummaryPane.vue?c324","webpack:///./src/views/investigation/panes/EntitySummaryPane.vue?1c7d","webpack:///./src/views/investigation/panes/EntitySummaryPane.vue","webpack:///./src/views/investigation/panes/EntityRelationshipSummaryPane.vue?fe79","webpack:///./src/views/investigation/panes/EntityRelationshipSummaryPane.vue?0086","webpack:///./src/views/investigation/panes/EntityRelationshipSummaryPane.vue?17ab","webpack:///./src/views/investigation/panes/EntityRelationshipSummaryPane.vue","webpack:///./src/views/investigation/TopicInvestigation.vue?b4ef","webpack:///./src/views/investigation/TopicInvestigation.vue?f83c","webpack:///./src/views/investigation/TopicInvestigation.vue","webpack:///./src/views/investigation/PersonInvestigation.vue?5128","webpack:///./src/views/investigation/panes/AuthorDisambiguationPane.vue?3110","webpack:///./src/views/investigation/panes/AuthorDisambiguationPane.vue?90b0","webpack:///./src/views/investigation/panes/AuthorDisambiguationPane.vue?6e6d","webpack:///./src/views/investigation/panes/AuthorDisambiguationPane.vue","webpack:///./src/views/investigation/graphs/AuthorGraph.vue?02da","webpack:///./src/externals/vue-keylines.js","webpack:///./src/views/investigation/graphs/graph-tools.ts","webpack:///./src/views/investigation/graphs/CustomKeylinesChart.js","webpack:///./src/views/investigation/graphs/Speedometer.vue?aed5","webpack:///./src/views/investigation/graphs/Speedometer.vue?b65e","webpack:///./src/views/investigation/graphs/Speedometer.vue?dbd0","webpack:///./src/views/investigation/graphs/Speedometer.vue","webpack:///./src/views/investigation/dialogs/GraphSettingsDialog.vue?8d50","webpack:///./src/views/investigation/dialogs/GraphSettingsDialog.vue?5fe2","webpack:///./src/views/investigation/dialogs/GraphSettingsDialog.vue?2f9a","webpack:///./src/views/investigation/dialogs/GraphSettingsDialog.vue","webpack:///./src/components/NoResults.vue?5ab4","webpack:///./src/components/NoResults.vue?06e6","webpack:///./src/components/NoResults.vue?f77e","webpack:///./src/components/NoResults.vue","webpack:///./src/views/investigation/graphs/AuthorGraph.vue?c682","webpack:///./src/views/investigation/graphs/AuthorGraph.vue?f698","webpack:///./src/views/investigation/graphs/AuthorGraph.vue","webpack:///./src/views/investigation/PersonInvestigation.vue?92dc","webpack:///./src/views/investigation/PersonInvestigation.vue?3370","webpack:///./src/views/investigation/PersonInvestigation.vue","webpack:///./src/views/ResetPage.vue?fb76","webpack:///./src/views/ResetPage.vue?9e8f","webpack:///./src/views/ResetPage.vue?6914","webpack:///./src/views/ResetPage.vue","webpack:///./src/views/SignUpPage.vue?7fba","webpack:///./src/views/SignUpPage.vue?dd7c","webpack:///./src/views/SignUpPage.vue?2dfb","webpack:///./src/views/SignUpPage.vue","webpack:///./src/views/investigation/PersonProfile.vue?3502","webpack:///./src/views/investigation/PersonProfile.vue?3235","webpack:///./src/views/investigation/PersonProfile.vue?d00f","webpack:///./src/views/investigation/PersonProfile.vue","webpack:///./src/views/investigation/panes/DocumentsPane.vue?7ed7","webpack:///./src/views/investigation/panes/SuggestedTermsPane.vue?6b10","webpack:///./src/views/investigation/panes/SuggestedTermsPane.vue?48f8","webpack:///./src/views/investigation/panes/SuggestedTermsPane.vue?495b","webpack:///./src/views/investigation/panes/SuggestedTermsPane.vue","webpack:///./src/views/investigation/panes/DocumentsPane.vue?2d02","webpack:///./src/views/investigation/panes/DocumentsPane.vue?c7e7","webpack:///./src/views/investigation/panes/DocumentsPane.vue","webpack:///./src/views/investigation/panes/OverviewPane.vue?74cc","webpack:///./src/views/investigation/panes/OverviewDocumentItem.vue?bd97","webpack:///./src/views/investigation/panes/OverviewDocumentItem.vue?f918","webpack:///./src/views/investigation/panes/OverviewDocumentItem.vue?ef54","webpack:///./src/views/investigation/panes/OverviewDocumentItem.vue","webpack:///./src/views/investigation/panes/OverviewPane.vue?4f64","webpack:///./src/views/investigation/panes/OverviewPane.vue?8915","webpack:///./src/views/investigation/panes/OverviewPane.vue","webpack:///./src/views/investigation/panes/ReportEditor.vue?a81e","webpack:///./src/views/investigation/panes/ObservationItem.vue?8c51","webpack:///./src/views/investigation/panes/ObservationItem.vue?f71f","webpack:///./src/views/investigation/panes/ObservationItem.vue?d064","webpack:///./src/views/investigation/panes/ObservationItem.vue","webpack:///./src/views/investigation/panes/ReportEditor.vue?1d6c","webpack:///./src/views/investigation/panes/ReportEditor.vue?a1d2","webpack:///./src/views/investigation/panes/ReportEditor.vue","webpack:///./src/views/investigation/panes/EmptyPane.vue?0128","webpack:///./src/views/investigation/panes/EmptyPane.vue?315d","webpack:///./src/views/investigation/panes/EmptyPane.vue?d06c","webpack:///./src/views/investigation/panes/EmptyPane.vue","webpack:///./src/views/admin/ClusterReportPage.vue?0f8d","webpack:///./src/views/admin/ClusterReportPage.vue?d802","webpack:///./src/views/admin/ClusterReportPage.vue?b1b3","webpack:///./src/views/admin/ClusterReportPage.vue","webpack:///./src/views/admin/AdminPage.vue?1aed","webpack:///./src/views/admin/AdminPage.vue?bd77","webpack:///./src/views/admin/AdminPage.vue?3656","webpack:///./src/views/admin/AdminPage.vue","webpack:///./src/views/investigation/graphs/TimelineGraph.vue?13b6","webpack:///./src/views/investigation/graphs/TimelineGraph.vue?676f","webpack:///./src/views/investigation/graphs/TimelineGraph.vue?da2e","webpack:///./src/views/investigation/graphs/TimelineGraph.vue","webpack:///./src/views/investigation/panes/TimelineTermsPane.vue?cd96","webpack:///./src/views/investigation/panes/TimelineTermsPane.vue?d1c1","webpack:///./src/views/investigation/panes/TimelineTermsPane.vue?6598","webpack:///./src/views/investigation/panes/TimelineTermsPane.vue","webpack:///./src/views/admin/AdminMergePage.vue?1c52","webpack:///./src/views/admin/AdminMergePage.vue?61e9","webpack:///./src/views/admin/AdminMergePage.vue?6816","webpack:///./src/views/admin/AdminMergePage.vue","webpack:///./src/views/investigation/graphs/UnifiedGraph.vue?740a","webpack:///./src/views/investigation/graphs/UnifiedGraph.vue?6c29","webpack:///./src/views/investigation/graphs/UnifiedGraph.vue?4c22","webpack:///./src/views/investigation/graphs/UnifiedGraph.vue","webpack:///./src/router.ts","webpack:///./src/plugins/kendo-editor.ts","webpack:///./src/plugins/vuex-typescript-plugin.ts","webpack:///./src/main.ts","webpack:///./src/views/investigation/dialogs/RenameTermDialog.vue?fa7a","webpack:///./src/views/investigations/NewUniversityInvestigationDetails.vue?84ec","webpack:///./src/views/investigation/dialogs/ResearcherHarvestDialog.vue?2368","webpack:///./src/views/investigation/panes/EntitySummaryPane.vue?43da","webpack:///./src/assets/images/logo.svg","webpack:///external \"KeyLines\"","webpack:///./src/views/investigations/NewInvestigationPage.vue?7784","webpack:///./src/views/investigation/panes/DocumentItemHeader.vue?f324","webpack:///./src/views/admin/AdminMergePage.vue?48b9","webpack:///./src/components/ErrorMessageDialog.vue?232b","webpack:///./src/views/investigation/dialogs/AlertsDialog.vue?6f51","webpack:///./src/views/investigation/dialogs/RenameObservationSectionDialog.vue?d653"],"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","map","webpackContext","req","id","webpackContextResolve","e","Error","code","keys","resolve","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","staticRenderFns","onResponseError","handler","a","interceptors","response","use","undefined","followRedirect","actualApiCall","status","signIn","email","password","post","signOut","signUp","nickname","reset","createAndSignIn","token","createUser","getCurrentUser","validateToken","changePasswordAndSignIn","namespaced","state","currentUser","isTokenValidating","getters","isOmnipotentUser","user","omnisol","facultyWorks","isOmnisolUser","isFacultyWorksUser","isAdminUser","admin","isSignedIn","mutations","setCurrentUser","setTokenValidating","validating","actions","fetchCurrentUser","context","createUserAndSignIn","read","commit","dispatch","groupId","isGraphNode","ref","on","$event","close","scopedSlots","_u","fn","_v","proxy","refresh","embedded","directives","rawName","expression","class","style","componentVeilZIndex","afterEnter","remove","maximized","onVeilClicked","stopPropagation","_t","veilZIndex","createDialogMountingPoint","mountingElement","document","createElement","container","getElementById","body","appendChild","visible","addEventListener","handleKey","$nextTick","removeEventListener","$el","parentElement","removeChild","$destroy","escapeCloses","$emit","modal","Boolean","type","default","component","openErrorMessageDialog","extend","$mount","location","reload","$refs","genericDialog","components","GenericDialogNew","registerHooks","defaults","headers","generateUuid","error","isCancel","$store","invalidUserData","isInSignIn","$router","currentRoute","includes","initializeCommonStyles","replace","crypto","getRandomValues","Uint8Array","toString","innerHtml","innerHTML","getElementsByTagName","_e","_l","investigationTypes","investigationType","scrollToInvestigations","domProps","target","composing","freeText","_m","investigation","index","goToInvestigation","_s","investigations","investigationSubTypeColor","investigationSubType","title","refInFor","showPending","showProcessing","showReady","showFailed","formatDate","createdOn","lastUserInteractionTime","createdBy","totalDocuments","askDuplicateInvestigation","askDeleteInvestigation","position","left","menuPosition","top","merge","investigationId","mergeAll","createMergeReport","personIds","responseType","Blob","createMergeFinalReport","mainPersonId","debugMerge","fileKey","personId","goodDocumentIds","badDocumentIds","clusterReportUsingFile","file","formData","FormData","set","clusterReport","cvFile","doiList","JSON","stringify","getHealthChecks","createBatchAccuracyReport","generateQualityEstimationReport","generateAuthorFeedbackReport","getAll","forceAll","params","entity","toInvestigation","createTopic","searchString","includePublications","includeWebPages","political","createTender","createCompany","companyName","companyWebSite","createPerson","personName","createPersonGroup","instituteName","facultyName","researcherNames","createUniversity","universityName","country","startYear","endYear","createWebsite","investigationName","websiteUrl","createFacultyWorks","createResearcherWorks","researcherName","getMagAffiliations","createPersonBatch","createInvestigationsWithDefinitions","deleteAllPendingInvestigations","delete","restartFailedInvestigations","update","goals","alertsEnabled","patch","duplicate","showAllInvestigations","busyFetchingAllInvestigations","freeTextFilter","getInvestigations","isShowAllInvestigations","isBusyFetchingAllInvestigations","getFreeTextFilter","setInvestigations","toggleShowAllInvestigations","setBusyFetchingAllInvestigations","fetching","setFreeTextFilter","text","fetchAllInvestigations","showBusy","interval","setTimeout","clearTimeout","createTopicInvestigation","payload","sources","topicInvestigation","createTenderInvestigation","createCompanyInvestigation","createPersonInvestigation","personInvestigation","createPersonGroupInvestigation","researchers","split","it","trim","institutionName","createUniversityInvestigation","universityInvestigation","createWebsiteInvestigation","websiteInvestigation","createFacultyWorksInvestigation","createResearcherWorksInvestigation","createBatchPersonInvestigations","updateInvestigation","deleteInvestigation","duplicateInvestigation","terms","recentAffiliations","bibliographicDetails","documents","aliasNames","manuallyMerged","universityProfileUrl","lastReviewTime","labels","bars","caption","totalPercentage","relevantPercentage","totalCount","relevantCount","chartEntity","selectedTermGroups","selectedTerms","selectedExternalSeries","setDocumentRelevancy","documentId","relevancy","url","toLowerCase","setDocumentStarred","starred","setDocumentNote","note","addDocumentLabel","label","addLabelToSeveralDocuments","documentIdList","removeDocumentLabel","renameDocumentLabel","deleteDocumentLabel","addEntityLabel","entityType","entityTypeFullName","removeEntityLabel","renameEntityLabel","deleteMentionedEntityLabel","bulkMarkRead","documentIds","bulkApplyDocumentLabel","add","createDocument","documentType","overwrites","Promise","reject","substr","lastIndexOf","updateDocument","getInvestigation","getPersonForSummary","termsCount","getEntityForSummary","entityName","spec","getEntityRelationshipForSummary","firstEntity","secondEntity","snippet","getAuthorsGraph","config","method","getXmlTermsGraph","getGraphData","graphType","graphRequest","cancelToken","getTimelineData","timelineRequest","getDocumentMarkups","pageSize","convertToDocument","getPersonProfile","getPersonProfileExcel","getPublicationsExcel","getAllData","getNextDocuments","getNextSuggestedTerms","selectedSuggestedTerms","rejectedSuggestedTerms","getObservations","createTopicHarvest","urlHarvest","forceStringHarvest","forceNormalize","urlPart","createHarvestByDocs","createHarvestByDoiList","createPersonHarvest","searchStrings","searchType","undoMerge","disambiguate","irrelevantPersonIds","relevantPersonIds","neutralPersonIds","undelete","getPersonDetails","updatePersonDetails","details","preprocessPersonImage","imageData","imageUrl","updatePersonImage","markPersonReviewed","clearPersonImage","exportInvestigationToWord","getMainClusterFilter","getLastFilterData","date","export","createPersonHarvests","personNames","createCorrelatedInvestigation","getSemanticAffinity","personSemanticAffinities","exportHtml","theme","filename","getInvestigationId","item","rootState","addTerm","term","moveTermToGroup","group","modifyTerm","modifier","renameTerm","oldName","newName","removeTerm","addBatchTerms","request","createGroup","renameGroup","deleteGroup","modifyTermGroup","getPredefinedTermGroups","MAX_ALLOWED_TERMS","selected","getTerms","getTermGroups","termGroups","getSuggestedTerms","suggestedTerms","setTerms","setTermGroups","insertTerm","updateTerm","termIndex","findIndex","currentTerm","newTerms","updateTermGroup","groupIndex","currentGroup","deleteTerm","setSuggestedTerms","removeSuggestedTerm","suggestedTerm","updateSuggestedTerm","selectedTerm","find","oldTerms","newTerm","concat","sort","b","localeCompare","addTermFromText","oldGroups","oldGroupsLowerCase","oldTermsLowerCase","lastGroupColor","parseInt","color","batchGroups","groups","filter","newGroups","batchTerms","flatMap","createTermGroup","createdGroup","renameTermGroup","deleteTermGroup","forEach","oldTermGroup","currentTermGroup","moveToGroup","oldTerm","oldTermIdx","indexOf","newTermObj","updateDocumentImage","imageType","journalImage","clearDocumentImage","updateFullTextFile","documentMarkups","getDocuments","getViewModeLevel","viewModeLevel","getHighlightModes","highlightModes","getTopsExpansion","topsExpansion","getGroupsExpansion","groupsExpansion","getTopsSorting","topsSorting","setDocuments","setDocumentMarkups","setDocumentStatus","documentStatus","originalDocument","setDocument","updateDocumentId","oldId","newId","setViewModeLevel","level","localStorage","setItem","setHighlightModes","setTopExpanded","expanded","isExpanded","newTopsExpansion","setGroupsExpansion","expansion","setTopSorting","sortedByRelevant","isSortedByRelevant","clearTopsSorting","clearTopsExpansion","clearGroupsExpansion","setDocumentImageId","updateDocumentLabelInInvestigation","oldLabel","newLabel","labelIndex","documentLabels","currentLabel","toLocaleLowerCase","deleteDocumentLabelFromInvestigation","mainTerms","original","getDocument","touched","updatedStatus","setDocumentRead","oldDocument","oldLabels","getDocumentLabels","documentLabel","newLabels","setDocumentLabels","oldTopLabels","getTopLabels","newTopLabels","topLabel","newTopLabel","setTopLabels","oldDocuments","newDocuments","newDocument","topLabelIndex","docIds","getAvailableDocumentIds","updateDocumentCoverImage","doc","coverImageId","updateDocumentAbstractImage","abstractImageId","fullTextUrl","pubType","publicationType","markups","abstract","classification","authors","author","affiliations","imageId","keywords","snippets","journal","publishedIn","datePrecision","datePrecisionBasedOnTextDate","newDocumentId","ow","volume","issue","firstPage","lastPage","publisher","doi","getGraph","graph","getTimeline","timeline","getExternalSeries","externalSeries","getGraphType","setGraph","setTimeline","setExternalSeries","setGraphType","updateMentionedEntityLabelInInvestigation","entityLabels","deleteMentionedEntityLabelFromInvestigation","removeGraphNodes","nodeIds","nodes","node","toggleTimelineTermGroup","termGroup","newTermGroups","addOrRemoveItemFromList","toggleTimelineTerm","toggleTimelineExternalSeries","newExternalSeries","addMentionedEntityLabel","getMentionedEntityLabels","some","entityLabel","setMentionedEntityLabels","removeMentionedEntityLabel","renameMentionedEntityLabel","changeNodeLabel","replacedLabel","newNode","props","nodeLabel","newNodes","list","newList","toggleExternalSeries","getDateHistogram","dateHistogram","getDateFilterStart","dateFilterStart","getDateFilterEnd","dateFilterEnd","setDateHistogram","setDateFilterYears","years","start","end","getPersonId","getDisambiguationPersonId","disambiguationPersonId","setPersonId","setDisambiguationPersonId","getTermPopupMenuData","termPopupMenuData","setTermPopupMenuData","showTermPopupMenu","hideTermPopupMenu","getNoteDialogData","noteDialogData","setNoteDialogData","showNoteDialog","hideNoteDialog","getEnvironment","version","showHebrewTutorials","showHiddenFeatures","showDocumentLabels","showTranslations","showSignUp","directSignUp","reportEnabled","entityDetectionEnabled","showTimeline","documentsPageSize","userGuideUrl","rollbarAccessToken","supportBatchInvestigations","supportPoliticalInvestigations","supportAcademicResearcherGroupInvestigations","supportUniversityInvestigations","supportWebsiteInvestigations","supportTenderInvestigations","supportCompanyInvestigations","supportLocalDocumentsInvestigations","showPredefinedTermGroups","allowDuplicateInvestigation","getVersion","isShowingHebrewTutorials","isShowingHiddenFeatures","isShowingDocumentLabels","isShowingTranslations","getDocumentsPageSize","isShowingSignUp","isDirectSignUp","isReportEnabled","isEntityDetectionEnabled","areAlertsEnabled","isShowingTimeline","getuserGuideUrl","getRollbarAccessToken","isSupportBatchInvestigations","isSupportPoliticalInvestigations","isSupportAcademicResearcherGroupInvestigations","isSupportUniversityInvestigations","isSupportWebsiteInvestigations","isSupportTenderInvestigations","isSupportCompanyInvestigations","isSupportLocalDocumentsInvestigations","isShowPredefinedTermGroups","isAllowDuplicateInvestigation","setEnvironment","showEntityGraph","fetchEnvironment","environment","getUserGuideUrl","textArea","querySelector","select","execCommand","downloadBlob","blob","fileName","URL","createObjectURL","link","href","setAttribute","click","blobToFile","theBlob","lastModifiedDate","Date","wrapActiveRequests","store","increaseActiveRequests","decreaseActiveRequests","capitalize","toUpperCase","addInvestigationObservation","observation","observationType","setInvestigationImage","observationId","imageCropData","clearObservationImage","editInvestigationObservation","deleteInvestigationObservation","createSection","ordinal","renameSection","section","deleteSection","sectionId","reorderSections","sectionIds","moveObservationToGroup","reorderObservations","observations","getObservationViewModeLevel","observationViewModeLevel","getObservationSections","observationSections","getSectionsExpansion","sectionsExpansion","getSectionObservationOrder","sectionObservationOrder","setObservations","setObservationViewModeLevel","setObservationSections","updateObservation","observationIndex","currentObservation","updateObservationSection","sectionIndex","Number","setSectionsExpansion","clearSectionsExpansion","setSectionObservationOrder","addObservation","oldObservations","newObservations","editObservation","oldObservation","newImageId","updatedObservations","imageTimestamp","getTime","deleteObservation","createObservationSection","oldSections","createdSection","renameObservationSection","partial","deleteObservationSection","setObservationSectionIndex","sections","sectionToMove","x","newIndex","moveToSection","newObservation","configurationService","getConfiguration","setConfiguration","configuration","setJournalBWList","journalInfo","addActiveAuthor","activeAuthor","fetchEntireDictionary","dictionaryId","savedViewLevelMode","getItem","relevantDocumentCount","totalDocumentCount","totalReadDocuments","totalStarredDocuments","currentPage","availableDocumentIds","edges","dataItems","columns","relevancyStatus","relevancyScore","differentEnough","activityStatus","activeRequests","loadingInvestigation","renderingGraph","tops","persons","documentsSortBy","personForRightPaneSummary","entityForSummary","entityRelationshipForSummary","showAuthorGraphLegend","authorGraphSettings","layout","sizeBy","option","colorBy","showSnowflakes","unifiedGraphSettings","selectedNodes","shortestPath","displayedResultsStatus","selectedDocumentClassifications","selectedTops","includeOnlyUnlabeled","isInProfile","isInReviewProfile","isInOverview","isInDisambiguate","articles","bookChapters","books","patents","disambiguatePersonName","CancelToken","source","draggedObservation","personRelevantCounts","matchingResearcherIds","bwJournals","Map","activeAuthorIds","filterByResearchers","filterToDuplicates","filterToUnaffiliated","filterToUnknownPublishers","filterToMissingVolume","filterToMissingDate","filterToSpecificUrls","getRelevantDocumentCount","getTotalDocumentCount","getRelevancyStatus","getHarvestActivity","getCurrentPage","getDisplayedResultsStatus","getIsInProfile","getIsInReviewProfile","getIsInOverview","getIsInDisambiguate","getSelectedTops","getIncludeOnlyUnlabeled","getTopAuthors","topAuthors","getTopJournals","topJournals","getTopConferences","topConferences","getTopInstitutions","topInstitutions","getTopRegions","topRegions","getTopAffiliationGeographies","topAffiliationGeographies","getTopEmails","topEmails","getTopClassifications","topClassifications","getTopPersons","topPersons","getTopOrganizations","topOrganizations","getTopLocations","topLocations","getTopConcepts","topConcepts","getTopDomains","topDomains","getTopLanguages","topLanguages","getTopTerms","topTerms","topLabels","getTopLexemes","topLexemes","getPersonForRightPaneSummary","getShowAuthorGraphLegend","getAuthorGraphSettings","getUnifiedGraphSettings","getSelectedNodes","getShortestPath","getPersons","getDocumentsSortBy","getAlertsEnabled","getIsBusy","getIsLoadingInvestigation","getIsRenderingGraph","getCancelToken","getRecentAffiliations","getDisambiguatePersonName","getPersonRelevantCounts","getMatchingResearcherIds","getBWJournals","getActiveAuthorIds","getFilterByResearchers","getFilterToDuplicates","getFilterToUnaffiliated","getFilterToUnknownPublishers","getFilterToMissingVolume","getFilterToMissingDate","getFilterToSpecificUrls","setInvestigation","setTitle","setRelevantDocumentsCount","relevantDocumentsCount","setActivityStatus","setAvailableDocumentIds","setCurrentPage","page","setRelevancyStatus","setDisplayedResultsStatus","setIsInProfile","setIsInReviewProfile","setIsInOverview","setIsInDisambiguate","setSelectedTops","setIncludeOnlyUnlabeled","setTops","setDocumentCounts","counts","setIsLoadingInvestigation","loading","setIsRenderingGraph","setPersons","setDocumentsSortBy","sortBy","setPersonForRightPaneSummary","person","setEntityRelationshipForSummary","setEntityForSummary","setShowAuthorGraphLegend","showLegend","setAuthorGraphSettings","settings","setUnifiedGraphSettings","setSelectedNodes","setShortestPath","setCancelToken","setDisambiguatePersonName","setPersonRelevantCounts","setMatchingResearcherIds","ids","setBWJournals","setActiveAuthorIds","setFilterByResearchers","setFilterToDuplicates","setFilterToUnaffiliated","setFilterToUnknownPublishers","setFilterToMissingVolume","setFilterToMissingDate","setFilterToSpecificUrls","clearFilters","fetchInvestigation","fetchTopicInvestigationExport","getSpec","fetchPersonInvestigationExport","fetchInvestigationHtml","fetchPersonProfile","overviewSpec","dateFilter","includeSingleAuthoredDocuments","sortDocumentsBy","requestedDocumentIds","highlightMode","onlyInvestigationResearchers","onlyDuplicateDocuments","onlyUnaffiliated","onlyUnknownPublishers","onlyMissingVolume","onlyMissingDate","specificDocumentUrls","replaceSelectedClassificationsForReviewProfile","documentCounts","replaceTopClassificationForReviewProfile","fetchDocumentMarkups","getPageSize","updateTitle","updateAlertsEnabled","updateBWJournal","newMap","activeAuthorId","activeAuthorName","fetchTopLabels","investigationInStore","isInSameContext","fetchAllData","firstTime","cancel","isInTopicInvestigation","fetchAllPersonData","requestedInvestigationId","journals","fetchAllTopicData","shouldUseExistingTerms","listsAreEqualSize","allTermsAreIncludedInNewList","reduce","areTheSame","activeTerms","active","suggested","fetchNextDocuments","nextDocuments","fetchGraphData","fetchGraphPersonData","currentGraphType","fetchGraphTopicData","fetchTimelineData","timelineChartData","chart","fetchAllObservations","fetchNextSuggestedTerms","toInvestigationTerm","newInvestigationTerms","updateRelevancyStatus","showOnlyMyPublications","mainClusterFilter","selectedDisplayValue","displayName","selectedValue","clearInvestigationStore","fetchInvestigationLastFilter","lastFilter","setFilterFromSpec","modifiedDocuments","documentModified","newAuthors","updateLastReviewTime","getActivityStatus","getJournals","disambiguationSavedState","saveInvestigationState","restoreInvestigationState","entries","getSpecForStore","newClassifications","oldClassification","newClassification","relevantScore","totalScore","values","publicationsIndex","selectedTop","loader","overview","isInOverviewPane","isInDocumentsPane","isInInvestigation","spinnerText","$route","path","endsWith","graphDescription","isDisabled","gotoCreateInvestigation","icon","tagline","query","menuTopPosition","menuLeftPosition","menuRightPosition","$parent","$on","event","showPopup","closeEvent","atBottom","alignToLeft","rect","getBoundingClientRect","menuElement","offset","bottom","height","innerHeight","isOnLeftEdge","width","classList","isTopCorrected","isBottomExceedingScreen","diff","Math","max","innerWidth","onClickOutside","forbidsClose","contains","clickedOnOpenMenuButton","topicInvestigationType","dataSources","tag","personInvestigationType","personGroupInvestigationType","universityInvestigationType","politicalInvestigationType","websiteInvestigationType","tenderInvestigationType","companyInvestigationType","localDocumentsInvestigationType","researcherWorksInvestigationType","facultyWorksInvestigationType","investigationSubTypes","getInvestigationCreationType","subType","creationType","ok","options","message","cancelText","okText","openConfirmationDialog","propsData","onOk","$wrap","loadedInvestigations","highlightedInvestigation","valueOf","uuid","format","pollInvestigations","freeTextListener","watch","newValue","oldValue","pollingTimeout","showSpinner","highlightInvestigation","fullPath","tab","showCancel","topic","highlight","refs","scrollIntoView","block","menuRef","boundingClientRect","behavior","FacultyWorksSelector","PopupMenu","InvestigationSelector","SpinningLoader","detailsComponent","nextEvent","nextEnabled","createInvestigation","buttonText","toggleSource","isSelected","availableDataSources","selectedSources","focus","emitEnableNext","unselectSource","selectSource","selectedSource","enable","errorMessage","researcherCount","magAffiliation","magAffiliations","getFullYear","lower","isNumericAndValidYear","yearStr","test","year","MAX_RESEARCHERS","investigationCreationType","NewTopicInvestigationDetails","NewPersonInvestigationDetails","NewPersonGroupInvestigationDetails","NewPoliticalInvestigationDetails","NewUniversityInvestigationDetails","NewWebsiteInvestigationDetails","NewTenderInvestigationDetails","NewCompanyInvestigationDetails","NewFacultyWorksInvestigationDetails","NewResearcherWorksInvestigationDetails","up","emailHasFocus","passwordHasFocus","preventDefault","showsSignUp","multipleMessages","singleMessage","asHtml","openMessageDialog","emailError","passwordError","showProgress","redirect","AuthPageContainer","headerClass","isInvestigating","investigationSubTypeText","isEditing","isInPersonProfile","profile","centered","editTitle","investigationTitle","endEditTitle","_k","keyCode","arguments","cancelEditTitle","openReviewProfileTutorial","alertsFeatureIsOn","followTitle","toggleAlerts","followText","createObservation","isShowProcessMenu","openHeaderProcessMenu","isInInvestigationsPage","exportToExcel","selectInvestigationsText","uploadAuthorsFile","deleteAllPending","restartFailed","evaluateAccuracyUsingCvs","uploadInvestigationDefinitions","openInvestigationConfigurationDialog","openHarvestDialog","openHarvestByDoiDialog","openHarvestAuthorsDialog","isInPersonInvestigation","openReviewProfile","downloadTopicExport","undeleteAuthors","restoreEntities","mergePersons","authorsGraph","termsGraph","performClusterDiff","openFacultyworksMenu","harvestResultSetUrls","openFilterByUrlsDialog","downloadHtml","exportPublications","downloadPersonExport","openHeaderHelpMenu","openUserGuide","openVideoTutorialHebrew","openVideoTutorialEnglish","inProfile","openUserMenu","opened","userButton","isOpen","onVailClicked","onClose","GenericDialog","searchPlaceholder","startHarvest","nextTick","nameInput","createHarvests","splitSearchString","urls","isUrl","sePagesCount","isSearchEnginePage","pagesCount","msg","join","_","str","onlyUnique","self","startsWith","hostname","doiListToSend","parse","searchStringLabel","placeholder","setSearchType","searchTypeSelection","pages","overrideDefaultMaxResultsPerWebHarvest","maxResultsPerWebHarvest","includeArticles","overrideDefaultMaxResultsPerArticleHarvest","maxResultsPerArticleHarvest","webHarvestFromSites","articleHarvestFromInstitutions","enabled","dictionaryFilter","dictionary","shouldDisplayDictionary","downloadDictionary","languageFilter","language","unselectLanguage","shouldDisplayLanguage","languageCheckboxes","startDateCutoff","startDateCutoffEnabled","activeAffiliations","activeAuthors","whitelistJournals","blacklistJournals","overrideDocumentNumberLimit","documentNumberLimit","saving","save","topsStatuses","originalTopsOrder","languages","isPersonInvestigation","dictionaries","showHebrew","selectedLanguages","selectedLanguage","searchDefinition","whitelist","blacklist","collectEnabledTops","$set","translation","isValid","parseFloat","isInteger","isDateValid","validate","splitToList","$$selectedVal","Array","val","_value","selectedSection","multiple","model","callback","$$v","referencedEntity","setPersonNameInTitle","pasteCleanup","editorValue","all","css","keepNewLines","msAllFormatting","msConvertLists","msTags","none","span","summary","imageKey","containingPane","isDataFetched","isInRightPane","containingParentName","markReviewed","viewProfile","openMenu","enrich","editAuthorDetails","copyAuthorName","personImageUrl","imageLoaded","openAuthorPages","formattedLastReview","showHeader","copyToClipboard","termClicked","termElements","termElement","element","innerText","isInObservation","showAddTerm","showAddPenalizedTerm","showAddObservation","menuOpenerButton","menuOpener","allTerms","recentAffiliation","affiliation","fromYear","calcYearRange","affiliationText","toggleShowAll","showingAll","toYear","allAffiliations","openContextMenu","copyTitleToClipboard","addAsFilter","topsContextButtons","aliasName","open","dragOver","dragFile","widthAspectRatio","heightAspectRatio","fileSelected","roundedImage","forceAspectRatio","clear","showingImage","modified","initialImageUrlOrFile","image","setFileAsImage","src","onUpdateCallback","input","files","droppedFiles","dataTransfer","originalName","pasteImageUrl","preprocess","aspectRatioWidth","aspectRatioHeight","stencil","img","getDefaultSize","previewClass","handlersClasses","notify","clearImage","imageFile","imageModified","afterFirstChange","cropper","visibleArea","imageSize","stencilRatio","sizeRestrictions","reader","FileReader","onload","readAsDataURL","getResult","coordinates","crop","Cropper","openAuthorDetailsDialog","parent","router","authorImageId","clipboardData","getData","then","base64","UploadImagePane","undoMergeMessage","passedPersonName","shouldShowError","personImageTimestamp","lastReviewed","currentId","observationSummary","personIdChanged","personSummary","slashIndex","substring","newInvestigation","inDocuments","openCreateObservationDialog","personNameModified","resetImageTimestamp","performUndoMerge","ResearchInterestsPane","RecentAffiliationsPane","SummaryDocumentsPane","AliasNamesPane","UpdateEntityImageDialog","isEditable","setDocumentTouched","shouldDisplayDocumentAndAuthorImages","_g","openLabelsMenu","$listeners","toggleLabel","toggleAcceptedLabel","markText","toggleExpansion","showAll","isShowingAllAuthors","getAuthorNameHighlightClass","getAuthorNameTooltip","selectAuthor","shouldDisplayShowMoreButton","toggleShowAllAuthors","showMoreText","inactiveAuthorImage","isActive","detail","openJournalColorMenu","decodeURIComponent","html","documentDetails","removeNewlines","displayKeywords","openLabelMenu","renameLabel","deleteLabel","listJournalAs","handleMouseDown","handleMouseUp","once","_onTextSelection","selection","getSelection","boundingRect","getRangeAt","getClientRects","inserted","el","binding","unbind","termTags","entityTags","openSpan","termTag","entityTag","className","closeSpan","markedUpText","classNames","fillTagsArrayWithZero","markup","tagMarkup","wrapInSpans","priority","mandatory","tagIndex","startIndex","endIndex","entities","min","previousTermTag","previousEntityTag","termMandatoryClass","entityMandatoryClass","tagIsSameAsPrevious","entityTagIsSameAsPrevious","termClassName","entityClassName","newClassName","labelType","labelNameText","classificationClassName","originalLanguage","byResearchersLabel","reHarvestDocument","reHarvestDocumentByUrl","editDocument","labelButtonTitle","relevancyChanged","hasObservation","openObservationDialog","starredChanged","toggleFixLabel","dialogTitle","selectCurrentPage","selectDocType","unionType","isOldBook","isOldBookChapter","webPage","publicationTypes","customPubTypeOption","customPublicationType","wrapTitleInSuperscript","wrapTitleInSubscript","wrapAbstractInSuperscript","wrapAbstractInSubscript","fullTextUrlFile","fullTextUrlFileSelected","aff","affIdx","setAffiliation","moveAuthor","deleteAuthor","addAuthor","bulkAuthorList","bulkAddAuthors","dragCoverFile","coverFileSelected","clearCoverImage","fetchCoverImageOnPaste","coverImageUrl","fetchCoverImageClick","dragAbstractFile","abstractFileSelected","clearAbstractImage","fetchAbstractImageOnPaste","abstractImageUrl","fetchAbstractImageClick","actualsQuery","openEditDocumentDialog","nextFictivePersonId","docType","coverImageFile","abstractImageFile","showingCoverImage","showingAbstractImage","coverImageModified","abstractImageModified","originalPublishedIn","formattedDocumentDate","originalAuthors","coverImageSourceUrl","abstractImageSourceUrl","givenPubType","coverImage","abstractImage","attachImagePersistenceHandler","saveFn","ctx","getContext","naturalWidth","naturalHeight","drawImage","toBlob","crossOrigin","docIsWebPage","previousPosition","urlRegex","RegExp","match","fetchCoverImage","fetchAbstractImage","stubbedText","every","idx","nameToAuthor","validateForm","different","existing","pop","first","second","setFileAsCoverImage","setFileAsAbstractImage","button","addAuthorButton","lastAuthor","lastAuthorInput","direction","wrapWithTag","inputTag","openingTag","closingTag","selectionStart","selectionEnd","KendoEditorWrapper","ReferencedEntityPreview","hasResearchers","hasJournals","size","byTheResearchers","labelsMenuOpenerButton","labelsMenuOpener","relevancyClicked","referencedObject","fullTextFile","foundInCvLabelExists","isMineSelected","selectMine","isNotMineSelected","selectNotMine","existingDocumentLabels","removeLabel","addLabel","calculateNodeOffset","textNode","offsetSum","iter","createNodeIterator","NodeFilter","SHOW_TEXT","found","range","startContainer","nextNode","textContent","calculateSentenceStartIndexAndLength","needleIndex","selectionLength","endSentenceSigns","startIndexes","endIndexes","sign","currentStartIndex","currentEndIndex","getSentence","selectionNodeStart","anchorOffset","boldedText","disableShowLess","isAbstractClamped","labelContext","maxAuthorsToShow","abstractSection","offsetHeight","scrollHeight","nameFromResearcherList","matches","cssClasses","allLabels","userLabel","hasUserTypedLabel","dateHtml","citationNumber","citationHtml","lst","bwClass","pagesSeparator","doiSeparator","getPublisherColor","harvesterType","urlParts","boldUrl","markedFix","success","removeLabelFilter","documentHasLabel","hasAnyDocumentWithLabel","hasLabelFilter","closeFilter","newSelectedTops","activeFilter","labelText","renameLabelDialog","performDeleteLabel","precision","sentence","marker","groupNames","from","entitiesNames","documentsCount","filteredOut","TextSelection","DocumentItemReviewHeader","DocumentItemHeader","RenameLabelDialog","dataUrl","info","documentObservationInfo","scroll","border","padding","GraphImage","DocumentItem","AuthorSummaryPane","availableSections","allowImageUpload","observationBody","observationTitle","trimBody","observationToSend","re2","removeEntities","restoreAll","mergeEntities","names","pluralize","openUploadDialog","dialogOptions","setFile","createFilterByUrlsDialog","urlList","oldTitle","facultyworks","isShowingAllInvestigations","performAuthorUndelete","performRestoreEntities","xml","editor","titleEditor","processButton","process","facultyworksMenu","openAlertsDialog","alertsDialog","harvestDialog","researcherHarvestDialog","harvestByDoiDialog","investigationConfigurationDialog","isInInvestigationCreationPage","themeName","mainPart","fname","base64File","longFilename","convertBase64ToBlob","numOfDuplicates","filterToAcceptedDuplicates","failedTitle","helpButton","help","s3Key","newDocId","decodedData","atob","uInt8Array","charCodeAt","InvestigationConfigurationDialog","UserMenu","AlertsDialog","HarvestDialog","HarvestByDoiDialog","ResearcherHarvestDialog","HeaderBar","buildStore","auth","isLoadingInvestigation","routeChanged","sliderLeft","sliderWidth","to","goBack","isInPersonDocuments","setWorkflowStageFix","getNumberOfDocumentsToMarkFix","setWorkflowStageDedup","getNumberOfDuplicatesToReview","setWorkflowStageEnrich","getNumberOfDocumentsToEnrich","showExportToWord","exportInvestigation","workflowStage","selectedTopFix","selectedTopAccepted","regularTabs","profileTabs","disambiguationTabs","tabIndex","tabs","tabChosen","tabContentElement","offsetLeft","offsetWidth","back","getNumberOfDocumentsToReview","computedStr","markedDuplicate","validateWorkflowStageState","num","withReservation","menuData","shouldDisplayMenu","openGoogleDefinition","shouldDisplayAddTerm","termExists","backgroundColor","getGroupColor","dialogAppeared","groupName","openRenameTermGroupDialog","groupNameText","textInput","groupEntity","newGroupName","chooseNewGroupName","creatingNewGroup","action","termGroupNames","clickDebounce","round","CreateTermTemplate","investigationCreationMoment","shouldShowLongerThanExpectedMessage","subtract","age","setShowMessage","setInterval","calculateShouldShowLongerThanExpectedMessage","clearInterval","SocketMessageType","content","isFirstKeepAlive","messageHandlers","messageIntervalMillis","rollbar","updateMessageHandler","clearMetaData","InvestigationState","KeepAlive","updateLastMessageReceivedTime","connectAndRun","sendMessage","Register","keepAliveInterval","keepAlive","Unregister","lastMessageSentTime","lastMessageReceivedTime","checkKeepAlive","isWithinSocketMessageInterval","resetConnection","closeConnection","registerInvestigation","messageType","socketMessage","isConnectionOpen","socket","send","incomingMessage","onMessageCallback","protocol","host","websocketUrl","WebSocket","onmessage","onerror","ev","console","log","onclose","connect","onMessage","waitUntilConnectionOpen","readyState","OPEN","maxSocketLatency","abs","webSocketManager","shouldShowParticleLoader","setShowParticleLoader","activityScore","calculateShouldShowParticleLoader","passedNinetySeconds","fetchedData","hasDocuments","NoteDialog","TermPopupMenu","InvestigationHeaderBar","ParticleLoadingScreen","refreshContent","scrollToSection","scrollToObservation","scrolledToObservation","scrolledToSection","documentsUpdated","resetScrollVars","isInReportEditor","gridTemplateColumns","allowLeftPaneExpand","leftPaneWidth","showLeftPane","expandCollapseTitle","toggleLeftPane","showMiddlePane","showRightPane","routeChange","meta","clearResearchersFilter","clearDuplicatesFilter","clearUnaffiliatedFilter","clearUnknownPublishersFilter","clearMissingVolumeFilter","clearMissingDateFilter","clearSpecificUrlsFilter","clearFreeTextSearch","labelFilterText","closeLabelFilter","dateFilterText","closeDateFilter","topName","searchFreeText","localFreeText","graphs","setNewTerm","graphTitle","sortedByTotal","search","bar","toggleBarSelection","legendClass","bolded","calculateTitle","openTopsContextMenu","copyItemsToClipboard","copyLabelToClipboard","bulkApplyLabel","disabled","selectAllVisibleItemsAllowed","selectAllVisibleItems","showsMore","toggleShowMore","toggleShowMoreText","filteredBars","barSorter","isDictionary","changeExpansion","shouldShowLegend","barGraphModel","contextMenuOpenerButton","contextMenuOpener","setBarsSelected","toSelect","toSelectedTop","toDeselect","bindContextMenuItems","existingTerm","copy","onclick","google","addToWebPageSearch","harvestPerson","addActiveAuthorElem","disambiguatePerson","removeOrganization","removeLocation","domain","sites","removeEntity","entityDescription","performRemoveEntity","performBulkApplyLabel","refreshResults","higher","histogram","popupTop","popupLeft","popupContent","cancelHandleFilter","startDrag","onMouseLeave","onMouseMove","endDrag","minHandle","maxHandle","popupIndex","heightUnit","barWidth","totalBarWidth","sideMargin","baselineHeight","filterHandle1","textGap","filterHandle2","handlePoints","selectedElement","draggingHandle1","dragStartBarIndex","initViewProperties","handle","baseX","baseY","firstPoint","y","secondPoint","thirdPoint","canvas","svg","clientWidth","clientHeight","shouldInitProperties","bottomGap","barGap","histogramStart","userSelectionStart","histogramEnd","userSelectionEnd","updateTextGap","closePopup","buttons","drag","barIndex","trunc","offsetX","nounForm","calculateBarIndex","onmouseup","handlesOverlap","handle1Element","isHandle1","reloadData","hoveredBar","lastFilterHandle1","lastFilterHandle2","getAttribute","firstYear","hasElementMoved","newBarIndex","filterDiff","absFilterDiff","checked","selectLabel","getLabelCaption","markCurrentAsRead","getLabelText","personInvestigationLabels","topicInvestigationLabels","selectedLabel","isDeselectingOption","hasFiltersApplied","hasFreeTextFilter","hasDisplayStatusFilter","hasTopFilter","hasDateFilter","hasFilterByResearchers","hasFilterToUnknownPublishers","hasFilterToDuplicates","hasSpecificUrlsFilter","hasFilterToMissingVolume","hasFilterToMissingDate","addGraph","addLanguageGraph","addAuthorGraph","addAffiliationGraph","addRegionGraph","topLexeme","lexemeScores","topGraph","region","BarGraph","DateFilter","DocumentLabelFilter","isBusy","allTermGroups","openMainMenu","openCreateGroupDialog","openAddPredefinedTermGroupsDialog","filterItems","filterItem","closeFilterItem","margined","typedNewTerm","openBatchTermsDialog","copyGroupToClipboard","isDefaultGroupInContext","copyTermToClipboard","googleIt","isGroupDisabledForMove","moveToNewGroup","termContext","handleTransition","expandedStates","termsOf","openTermGroupMenu","queryTermClicked","openSingleTermMenu","termsTextChanged","termsText","includeHarvests","invisible","harvestOnlyTopTermsVisible","addTerms","batchOptions","reverse","addGroupAsTerm","toggle","openCreateTermGroupDialog","newGroup","CheckBox","isGroupSelected","toggleSelectedGroup","selectedGroups","rename","openRenameTermDialog","termNameText","onRename","isInTransition","groupContext","groupItems","mandatoryItems","excludedItems","singleTermMenuClosed","createTermMenuClosed","investigationTerm","addTermButton","newModifier","performRenameTerm","performDeleteTerm","done","queryTerms","termElementInner","batchTermsDialog","performDeleteGroup","hasTerms","BatchTermsDialog","openCreateSectionDialog","arg","openObservationSectionMenu","hasMargin","openObservationMenu","setSectionIndex","sectionName","createsection","sectionNameText","setIndex","isObservationTooltipShown","observationTooltipText","observationPopupInterval","observationContext","sectionContext","dropzoneSelector","draggableSelector","multipleDropzonesItemsDraggingEnabled","singleObservationMenuClosed","createObservationMenuClosed","observationSection","createObservationSectionDialog","renameObservationSectionDialog","observationSectionIndexDialog","performDeleteSection","observationsOf","CreateObservationSectionDialog","RenameObservationSectionDialog","ObservationSectionIndexDialog","entitySummary","addLabelToAll","showDocumentCount","bold","excerpts","markedUpExcerpt","markedUpTitle","excerpt","openAddLabelToDocumentsDialog","existingLabels","DocumentExcerpts","entityChanged","DocumentExcerptsPane","entityRelationshipSummary","isAuthorSummaryInRightPane","isEntitySummaryVisible","isEntityRelationshipSummaryVisible","documentsPane","next","unregisterInvestigation","documentContainer","documentsContainer","scrollTop","EntityRelationshipSummaryPane","EntitySummaryPane","SplitPane","TopsPane","TermsPane","ReportNavigationPane","sortByRelevant","hasVote","isVoted","selectPerson","relevant","isIrrelevantTurnedOn","vote","isRelevantTurnedOn","personVotes","hasFilters","relevantDocumentSort","sortByRelevantDocuments","defaultSort","relevantPersons","isMyButtonOn","clearVote","addVote","neutralPersons","irrelevantPersons","authorCountMessage","performDisambiguation","disambiguationDialog","unselectPerson","disappearingIds","locked","showingAdvancedMenu","numberOfNodes","highlightFilter","calcHighlightFilterCounts","highlightPrevious","highlightNext","clearHighlight","activityIndicatorRotation","resultsDifferenceColor","createGraphObservation","openViewModeMenu","openAdvancedMenu","performLayout","openGraphSettings","toggleAdvancedMenu","performSizeBy","performColorBy","toggleSnowflakes","chartData","graphData","random","klReady","openPopupMenu","clickedGraph","isInPersonProfileSummary","fullScreenText","toggleFullScreen","copyNodeText","selectNeighbouringNodes","invertSelection","createPersonObservation","showAddFilter","disableFindShortestPath","executeIfNotDisabled","drawConnectingPath","enrichAuthor","enrichAuthorMenuTitle","showDisambiguate","disambiguateAuthor","showMergeConfirmation","mergePersonMenuTitle","showSemanticAffinity","sizeBySemanticAffinity","colorBySemanticAffinity","removePerson","removePersonMenuTitle","hasUnselectedNodes","retainPerson","retainPersonMenuTitle","enableLaunchWebInvestigation","createWebInvestigation","enableLaunchPersonInvestigation","downloadMergeReport","KeyLines","promisify","template","KlComponent","Vue","String","required","containerClass","styleObject","animateOnLoad","mounted","klcreate","catch","err","beforeDestroy","destroy","methods","onEvent","args","rest","load","onLoad","animate","graphLayouts","extends","setOptions","setZoom","zoom","circular","packing","organic","structural","lens","rotation","totalNumberOfNodes","edgeThreshold","optionalNumberToString","graphsSettings","nullToEmpty","isNaN","maxNodeCount","minEdgeFactor","maxEdgeFactor","newConfiguration","showingSuggestedTerms","hasSuggestedTerms","activeFilters","items","selectedId","originalProperties","showMerge","showUndoMerge","showMergeReport","isHiding","isContextMenuOpen","showSizeBySimilarity","showColorBySimilarity","colorMap","0","1","2","3","4","5","6","7","8","9","current","isInFullScreen","imageDataUrl","getUnselectedNodesIds","percentFade","startRed","startGreen","startBlue","middleRed","middleGreen","middleBlue","endRed","endGreen","endBlue","colorGradient","red","green","blue","syncGraphSettings","contextMenuClosed","activityIndicatorInterval","activityIndicator","colorBySelect","fetchData","viewModeMenuOpenerButton","viewModeMenuOpener","advancedMenuOpenerButton","advancedMenuOpener","visibleItemIds","invisibleItemIds","allNodes","w","allNodesIds","n1","n2","show","hide","graphSettingsDialog","showHideItemsBasedOnConfiguration","calcNumberOfNodes","getChartData","graphContent","sizeBySelect","documentCount","normalizedDocumentCount","sqrt","keyLinesNodes","hasBorder","harvesting","harvested","borderStyle","colorAffinityScore","splittedName","longest","fontSize","score","sizeAffinityScore","sh","ff","bw","bs","fs","fbc","bg","keyLinesLinks","edge","id1","sourceId","id2","targetId","weight","selectedIds","selectedNodesIds","getSelectedNodesIds","setProperties","chartElement","buildContextMenu","hasConnectingPath","setContextMenuTitles","calculateShowAddFilter","chartOptions","minZoom","handMode","adaptiveStyling","linkEnds","avoidLabels","spacing","selectionColour","links","panAtBoundary","selectedNode","fb","selectedLink","marqueeLinkSelection","shown","navigation","maxItemZoom","handleSelectionChange","lock","foreground","unselectedNodesIds","paths","shortestPaths","connectedNodeIds","itemId","unconnectedNodeIds","connected","connectedEdgeIds","unconnectedEdgeIds","unconnectedNodes","unconnectedNodeId","unconnectedEdges","unconnectedEdgeId","connectedEdges","connectedEdgeId","performEnrichAuthors","getSelectedNode","properties","profileId","plural","performRemovePersons","nodesToBeRemoved","layoutName","each","nodeData","getNode","animateProperties","time","easing","borderColor","hops","neighbours","toDataURL","fit","getObservationTitle","nodeCount","authorsHtml","performMerge","affinities","nodeAffinities","affinity","semanticAffinity","nodeAffinity","startColor","endColor","fadeFraction","rgbColor1","rgbColor2","rgbColor3","color1","color2","fade","diffRed","diffGreen","diffBlue","gradient","floor","ha0","count","hi","addHalosToNodes","lowerCaseFilterName","filteredNodeIds","ping","repeat","highlightJump","NoResults","GraphSettingsDialog","Speedometer","AuthorGraph","AuthorDisambiguationPane","confirmPassword","confirmPasswordHasFocus","changePassword","sent","confirmPasswordError","sending","tokenExists","nameHasFocus","nameError","isSummaryInRightPane","isShowLeftPane","vm","performSortBy","harvestIndicatorRotation","openHighlightModeMenu","toggleFilterReviewedDocuments","relevantPersonSelected","highlightName","toggleHighlight","isHighlightChecked","refreshMarkups","updateDocumentStarred","updateDocumentRelevancy","updateDocumentRead","updateDocumentNote","shouldShowResultsEnd","toggleSuggestedTerm","updateTermWithModifier","hasGroups","nextSuggestedTerms","isSendingTerms","initialSearchString","toggleTerm","requestedModifier","wasMandatoryAdded","possibleHighlightNames","harvestIndicatorInterval","total","availableResultsLeft","observer","disconnect","observerCallback","endResultsIndicator","isIntersecting","shouldLoadMoreResults","IntersectionObserver","resultsEnd","observe","highlightModeMenuOpenerButton","highlightModeMenuOpener","isHighlighted","newHighlights","sortBySelect","SuggestedTermsPane","goToAuthorGraph","goToTermGraph","goToDocuments","documentIndex","authorsCount","OverviewDocumentItem","empty","observationDate","observationTime","showImageOnOpen","updateExpansion","performDelete","isCreatingOrder","isReordering","sectionScore","ordinalScore","newSectionObservationOrder","observationsObjects","observationsWithoutSection","getElementsByClassName","performScrollToObservation","deep","ObservationItem","cvFileSelected","getClusterReport","toggleShowClusterId","showClusterId","toggleMergeReport","setMergeGroupSelectionType","mergeGroupSelectionType","s3Path","findPointsOfContact","articleStats","cvTitlesCount","cvTitlesFound","cvTitlesInMainCluster","cvTitlesInWrongCluster","cvTitlesNotFound","allTitlesInMainCluster","mainClusterTitlesNotInCV","extraTitles","_f","percentage","patentStats","documentsHeaderClicked","documentsSortDir","row","mergeGroupSelection","selectDocumentForMergeGroup","documentTitle","appearsInCv","isPrimaryColored","cluster1PersonId","selectCluster","cluster1PersonName","isSecondaryColored","cluster2PersonId","cluster2PersonName","comparisonHeaderClicked","comparisonsSortBy","comparisonsSortDir","comparisonsMagHeaderClicked","comparisonsMagSortDir","comparison","sourceClusterId","matchingClusterId","compareClusterId","updateMergeDecisions","sourceClusterCount","targetClusterId","getAuthorLink","mergeDecisions","scores","debugMergeResultDialogOpened","debugMergeResult","primaryColoredIds","secondaryColoredIds","sortedDocuments","sortedClusterComparisons","executing","sortDocuments","sortComparisons","clusterId","primary","primarySet","Set","secondarySet","comparisons","allMergeDecisions","sneClusterId","decision","otherClusterId","personID","column","sort1Function","c1","c2","patent","sort2Function","sortValue","valueC1","valueC2","targetSortFunc","t1","t2","targetClusters","authorId","groupType","ids1","ids2","filters","formatNumber","Intl","NumberFormat","maximumFractionDigits","useGrouping","dataSource","noData","dataFormat","schema","fusionTable","DataStore","createDataTable","leftYAxisPlots","rightYAxisPlots","connectnulldata","plots","plot","multiCanvas","series","yaxis","selectTermGroup","selectTerm","isTermSelected","selectExternalSeries","isExternalSeriesSelected","redoMerge","redoMergeAll","mergeHealthChecks","normalizationHealthChecks","timerId","healthChecks","normalization","layer","toggleLayer","cssColor","disableAddTerm","disableMerge","mergeSelectedEntities","mergeEntityMenuTitle","removeSelectedEntities","removeEntityMenuTitle","isRenderedByNumberOfDocuments","visibleLayers","termGroupListener","updateTermGroups","termsListener","visibleTypes","has","documentProjectionMin","documentProjectionMax","maxWeight","log10","selectedTypes","canDisplayRelationshipSummary","viewRelationshipSummary","viewSummary","selectedNodesAreConnected","firstNode","secondNode","nodeA","nodeB","entityA","entityB","selectedNodeIds","termName","performRemoveEntities","obj","nodeTypes","visibleNodeTypes","oldVisibleLayers","peopleLayer","organizationLayer","locationLayer","conceptLayer","termLayer","visibleLayer","entityTypeName","entityNames","performMergeEntities","environmentGuard","base","routes","beforeEnter","requiresAuth","children","leftPane","middlePane","beforeEach","matched","record","KendoEditorPlugin","VueApp","VuexTypescriptPlugin","vue","productionTip","render","h"],"mappings":"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","file":"js/app.9c812250.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([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SummaryDocumentsPane.vue?vue&type=style&index=0&id=63d0b25d&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/loading-icon-not-animated.3f24e21e.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OverviewPane.vue?vue&type=style&index=0&id=73648b2f&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClusterReportPage.vue?vue&type=style&index=0&id=13e4fb16&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HarvestByDoiDialog.vue?vue&type=style&index=0&id=5c5f423e&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReferencedEntityPreview.vue?vue&type=style&index=0&id=0354e7e7&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopsPane.vue?vue&type=style&index=0&id=56a5691a&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/loading.a5363193.gif\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainPage.vue?vue&type=style&index=0&id=cc173490&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvestigationConfigurationDialog.vue?vue&type=style&index=0&id=312f7c50&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvestigationHeaderBar.vue?vue&type=style&index=0&id=5c22663e&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentsPane.vue?vue&type=style&index=0&id=3cb0b088&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimelineTermsPane.vue?vue&type=style&index=0&id=71b0fa1f&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateObservationDialog.vue?vue&type=style&index=0&id=6cfb2447&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GraphSettingsDialog.vue?vue&type=style&index=0&id=555421e0&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ObservationItem.vue?vue&type=style&index=0&id=fbcd8d06&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AliasNamesPane.vue?vue&type=style&index=0&id=fb8d94d6&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ObservationSectionIndexDialog.vue?vue&type=style&index=0&id=5d08ebb8&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TermPopupMenu.vue?vue&type=style&index=0&id=ec40e84e&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/home-page.c34d4b30.svg\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminPage.vue?vue&type=style&index=0&id=18fffd1e&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportEditor.vue?vue&type=style&index=0&id=3e7d05d9&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FacultyWorksSelector.vue?vue&type=style&index=0&id=7877fa86&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderBar.vue?vue&type=style&index=0&id=7851fde6&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenericDialog.vue?vue&type=style&index=0&id=5d19b4f6&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewPoliticalInvestigationDetails.vue?vue&type=style&index=0&id=5d76b1ed&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SplittedPane.vue?vue&type=style&index=0&id=585de162&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResearchInterestsPane.vue?vue&type=style&index=0&id=1420f3d9&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Speedometer.vue?vue&type=style&index=0&id=12964e7e&scoped=true&lang=scss&\"","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\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 = \"4678\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadImagePane.vue?vue&type=style&index=0&id=7451daaa&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/socrates-logo.6040e4c9.svg\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewWebsiteInvestigationDetails.vue?vue&type=style&index=0&id=3f07d6f8&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TermsPane.vue?vue&type=style&index=0&id=b959c8f0&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmationDialog.vue?vue&type=style&index=0&id=02f6825e&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPage.vue?vue&type=style&index=0&id=5cd20bd2&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatchTermsDialog.vue?vue&type=style&index=0&id=741b2556&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BarGraph.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentItemReviewHeader.vue?vue&type=style&index=0&id=5d1ae3f4&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewTopicInvestigationDetails.vue?vue&type=style&index=0&id=63dda1a2&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OverviewDocumentItem.vue?vue&type=style&index=0&id=771cf22c&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ParticleLoadingScreen.vue?vue&type=style&index=0&id=335ad489&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewTenderInvestigationDetails.vue?vue&type=style&index=0&id=d7a55b62&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=style&index=0&id=cdadb338&lang=scss&scoped=true&\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/envelope.239a42ce.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadFileDialog.vue?vue&type=style&index=0&id=d9773dc2&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EntityRelationshipSummaryPane.vue?vue&type=style&index=0&id=9ab73448&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenameLabelDialog.vue?vue&type=style&index=0&id=2f4e2c3d&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewPersonGroupInvestigationDetails.vue?vue&type=style&index=0&id=0bd06504&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/loading-icon-white-not-animated.dacb2509.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimelineGraph.vue?vue&type=style&index=0&id=90ac3eac&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpinningLoader.vue?vue&type=style&index=0&id=8cae7ce4&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewCompanyInvestigationDetails.vue?vue&type=style&index=0&id=5d92edbd&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignUpPage.vue?vue&type=style&index=0&id=d975f2e2&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GraphImage.vue?vue&type=style&index=0&id=009d1bc0&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportNavigationPane.vue?vue&type=style&index=0&id=091abc0d&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignInPage.vue?vue&type=style&index=0&id=29b38e87&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentDisplayedResultsFilter.vue?vue&type=style&index=0&id=6b7aff60&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageDialog.vue?vue&type=style&index=0&id=dc23fb54&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvestigationsPage.vue?vue&type=style&index=0&id=6d7d0cc6&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HarvestDialog.vue?vue&type=style&index=0&id=68379ae9&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=style&index=0&id=5ef6005c&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SuggestedTermsPane.vue?vue&type=style&index=0&id=2b2eb687&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotFoundPage.vue?vue&type=style&index=0&id=8c54249c&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NoteDialog.vue?vue&type=style&index=0&id=e8b23386&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PersonProfile.vue?vue&type=style&index=0&id=4b7d5243&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopicInvestigation.vue?vue&type=style&index=0&id=6087f71a&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentItem.vue?vue&type=style&index=0&id=2eb4c9eb&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/logo-s.c1c968dd.svg\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PersonInvestigation.vue?vue&type=style&index=0&id=00e5863a&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentExcerptsPane.vue?vue&type=style&index=0&id=756faba2&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentExcerpts.vue?vue&type=style&index=0&id=9c496386&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvestigationSelector.vue?vue&type=style&index=0&id=61458c42&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegisterAccountPage.vue?vue&type=style&index=0&id=52c8f347&scoped=true&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvestigationPage.vue?vue&type=style&index=0&id=ef4435c4&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthorSummaryPane.vue?vue&type=style&index=0&id=7ed255ee&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditDocumentDialog.vue?vue&type=style&index=0&id=48098639&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecentAffiliationsPane.vue?vue&type=style&index=0&id=079fec57&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateEntityImageDialog.vue?vue&type=style&index=0&id=13edc659&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenericDialogNew.vue?vue&type=style&index=0&id=0e92967e&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthPageContainer.vue?vue&type=style&index=0&id=36121d18&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthorDisambiguationPane.vue?vue&type=style&index=0&id=982598ec&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddLabelToDocumentsDialog.vue?vue&type=style&index=0&id=1587ec67&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateTermTemplate.vue?vue&type=style&index=0&id=3013c813&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/fw-white.c64560b3.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenameTermGroupDialog.vue?vue&type=style&index=0&id=306e7149&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthorDetailsDialog.vue?vue&type=style&index=0&id=0e2febe6&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewResearcherWorksInvestigationDetails.vue?vue&type=style&index=0&id=8d53453c&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthorGraph.vue?vue&type=style&index=0&id=75502bb0&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateTermGroupDialog.vue?vue&type=style&index=0&id=3982c2e5&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateFilter.vue?vue&type=style&index=0&id=4f1babcc&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/observation.42eab23c.svg\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopupMenu.vue?vue&type=style&index=0&id=10c4a3a3&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddPredefinedTermGroupsDialog.vue?vue&type=style&index=0&id=6cf77f86&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateObservationSectionDialog.vue?vue&type=style&index=0&id=0a11911c&scoped=true&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NoResults.vue?vue&type=style&index=0&id=7d0402c2&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/download.568ba869.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterByUrlsDialog.vue?vue&type=style&index=0&id=027b1b61&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFacultyWorksInvestigationDetails.vue?vue&type=style&index=0&id=4542f346&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/home.eb659a5a.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedGraph.vue?vue&type=style&index=0&id=35b51b1e&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewPersonInvestigationDetails.vue?vue&type=style&index=0&id=253a2e44&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/earth.e57f5240.svg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app\"},[_c('router-view'),_c('div',{attrs:{\"id\":\"modal-container\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from \"axios\"\n\n\nexport function onResponseError(handler: ((error: any) => any)) {\n axios.interceptors.response.use(undefined, handler)\n}\n","import {AxiosPromise} from \"axios\"\n\nexport async function followRedirect(actualApiCall: () => AxiosPromise) {\n const response = await actualApiCall()\n\n if (response && response.status === 307) {\n await actualApiCall()\n }\n}\n","import axios from \"axios\"\nimport { followRedirect } from \"@/api/redirect\"\n\n\nexport default {\n async signIn(email: string, password: string) {\n await followRedirect(() => axios.post(\"/api/auth/sign-in\", { email, password }))\n },\n\n async signOut() {\n await axios.post(\"/api/auth/sign-out\")\n }\n}\n","import axios from \"axios\"\nimport { UserEntity } from \"@/types/user\"\nimport { followRedirect } from \"@/api/redirect\"\n\n\nexport default {\n async signUp(nickname: string, email: string, password: string) {\n await followRedirect(() => axios.post(\"/api/users/sign-up\", { nickname, email, password }))\n },\n\n async reset(email: string) {\n await followRedirect(() => axios.post(`/api/users/reset`, { email }))\n },\n\n async createAndSignIn(token: string) {\n await followRedirect(() => axios.post(\"/api/users/create-sign-in\", token))\n },\n\n async createUser(nickname: string, email: string, password: string) {\n await followRedirect(() => axios.post(\"/api/users\", { nickname, email, password }))\n },\n\n async getCurrentUser(): Promise {\n const response = await axios.get(`/api/users/current`)\n return response.data as UserEntity\n },\n\n async validateToken(token: string) {\n await followRedirect(() => axios.post(`/api/users/validate-reset`, token))\n },\n\n async changePasswordAndSignIn(token: string, password: string) {\n await axios.post(\"/api/users/change-password-sign-in\", {token, password})\n }\n}\n","import {RootState} from \"@/store/index\"\nimport {Credentials, UserEntityOptional} from \"@/types/user\"\nimport authService from \"../api/auth-service\"\nimport userService from \"../api/user-service\"\nimport {ActionContext} from \"vuex\"\nimport {getStoreAccessors} from \"vuex-typescript\"\n\n\nexport interface AuthState {\n currentUser: UserEntityOptional\n isTokenValidating: boolean\n}\n\n\nconst module = {\n namespaced: true,\n\n state(): AuthState {\n return {\n currentUser: null,\n isTokenValidating: false\n }\n },\n\n getters: {\n getCurrentUser(state: AuthState): UserEntityOptional {\n return state.currentUser\n },\n\n isOmnipotentUser(state: AuthState): boolean {\n const user = state.currentUser\n return user != null && (user.omnisol === true || user.facultyWorks === true)\n },\n\n isOmnisolUser(state: AuthState): boolean {\n const user = state.currentUser\n return user != null && user.omnisol === true\n },\n\n isFacultyWorksUser(state: AuthState): boolean {\n const user = state.currentUser\n return user != null && user.facultyWorks === true\n },\n\n isAdminUser(state: AuthState): boolean {\n const user = state.currentUser\n return user != null && user.admin === true\n },\n\n isSignedIn(state: AuthState): boolean {\n return state.currentUser != null\n },\n\n isTokenValidating(state: AuthState): boolean {\n return state.isTokenValidating\n }\n },\n\n mutations: {\n setCurrentUser(state: AuthState, user: UserEntityOptional) {\n state.currentUser = user\n },\n\n setTokenValidating(state: AuthState, validating: boolean) {\n state.isTokenValidating = validating\n }\n },\n\n actions: {\n async fetchCurrentUser(context: ActionContext): Promise {\n if (context.state.currentUser == null) {\n try {\n const user = await userService.getCurrentUser()\n setCurrentUser(context, user)\n } catch (error) {\n // handled by router\n }\n }\n },\n\n async signIn(context: ActionContext, { email, password }: Credentials): Promise {\n try {\n await authService.signIn(email, password)\n await fetchCurrentUser(context)\n } catch (error) {\n setCurrentUser(context, null)\n throw error\n }\n },\n\n async signOut(context: ActionContext): Promise {\n if (context.state.currentUser != null) {\n try {\n await authService.signOut()\n } catch (error) {\n // handled by router\n } finally {\n setCurrentUser(context, null)\n }\n }\n },\n\n async createUserAndSignIn(context: ActionContext, token: string): Promise {\n try {\n await userService.createAndSignIn(token)\n await fetchCurrentUser(context)\n } catch (error) {\n setCurrentUser(context, null)\n throw error\n }\n },\n\n async validateToken(context: ActionContext, token: string): Promise {\n setTokenValidating(context, true)\n\n try {\n await userService.validateToken(token)\n } finally {\n setTokenValidating(context, false)\n }\n }\n }\n}\n\nexport default module\n\n\nconst { read, commit, dispatch } = getStoreAccessors(\"auth\")\n\nexport const getCurrentUser = read(module.getters.getCurrentUser)\nexport const isAdminUser = read(module.getters.isAdminUser)\nexport const isOmnipotentUser = read(module.getters.isOmnipotentUser)\nexport const isOmnisolUser = read(module.getters.isOmnisolUser)\nexport const isFacultyWorksUser = read(module.getters.isFacultyWorksUser)\nexport const isSignedIn = read(module.getters.isSignedIn)\nexport const isTokenValidating = read(module.getters.isTokenValidating)\nexport const fetchCurrentUser = dispatch(module.actions.fetchCurrentUser)\nexport const signIn = dispatch(module.actions.signIn)\nexport const signOut = dispatch(module.actions.signOut)\nexport const createUserAndSignIn = dispatch(module.actions.createUserAndSignIn)\nexport const validateToken = dispatch(module.actions.validateToken)\n\nconst setCurrentUser = commit(module.mutations.setCurrentUser)\nconst setTokenValidating = commit(module.mutations.setTokenValidating)\n","\nexport function getGroupColor(groupId: string, isGraphNode: boolean): string {\n switch (groupId) {\n case \"1\": return isGraphNode ? \"#FFEF3A\" : \"#FFF9B7\"\n case \"2\": return isGraphNode ? \"#34D5FF\" : \"#D3F6FF\"\n case \"3\": return isGraphNode ? \"#F94844\" : \"#FFD4D3\"\n case \"4\": return isGraphNode ? \"#B454FC\" : \"#ECD3FF\"\n case \"5\": return isGraphNode ? \"#B0FB2D\" : \"#E5FFB7\"\n case \"6\": return isGraphNode ? \"#FFCC53\" : \"#F0DBAA\"\n case \"7\": return isGraphNode ? \"#395AFD\" : \"#C2CCF9\"\n case \"8\": return isGraphNode ? \"#F845D8\" : \"#FFD3F7\"\n case \"9\": return isGraphNode ? \"#FB9446\" : \"#FFE6D3\"\n case \"10\": return isGraphNode ? \"#37FB73\" : \"#B7FFCD\"\n }\n\n return isGraphNode ? \"#AEC7CE\" : \"#DEE6E9\"\n}\n\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('GenericDialogNew',{ref:\"genericDialog\",attrs:{\"modal\":true},on:{\"enterPressed\":function($event){return _vm.close()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"Error\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"error-message-dialog-content\"},[_c('div',{staticClass:\"dialog-content\"},[_c('div',{staticClass:\"message\"},[_c('div',{staticClass:\"oops\"},[_vm._v(\"Oops! Something went wrong :(\")]),_c('div',[_vm._v(\"Please refresh the browser and try again.\")])])]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"Close\")]),_c('button',{staticClass:\"dialog-button ok\",on:{\"click\":_vm.refresh}},[_vm._v(\"Refresh\")])])])]},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('div',{staticClass:\"generic-dialog\"},[_c('transition',{attrs:{\"name\":'dialog-veil' + (_vm.embedded? 'none' : '')}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"full-screen-veil\",class:{embedded: _vm.embedded},style:({'z-index': _vm.componentVeilZIndex})})]),_c('transition',{attrs:{\"name\":'dialog-container' + (_vm.embedded? 'none' : '')},on:{\"after-enter\":function($event){return _vm.afterEnter()},\"after-leave\":function($event){return _vm.remove()}}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],ref:\"dialogContainer\",staticClass:\"dialog-container\",class:{maximized: _vm.maximized, embedded: _vm.embedded},style:({'z-index': _vm.componentVeilZIndex + 1}),on:{\"click\":function($event){return _vm.onVeilClicked()}}},[_c('div',{staticClass:\"dialog\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:\"header\"},[_c('div',{staticClass:\"header-title\"},[_vm._t(\"dialog-title\")],2),_c('button',{staticClass:\"close-dialog\",on:{\"click\":function($event){return _vm.close()}}})]),_vm._t(\"dialog-content\")],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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {Prop} from \"vue-property-decorator\"\n\nlet veilZIndex = 9000\n\nexport function createDialogMountingPoint(): HTMLDivElement {\n const mountingElement = document.createElement(\"div\")\n let container = document.getElementById(\"modal-container\")\n if (!container) {\n container = document.body\n }\n container!.appendChild(mountingElement)\n return mountingElement\n}\n\n@Component\nexport default class GenericDialogNew extends Vue {\n\n @Prop(Boolean)\n private modal!: boolean\n\n @Prop(Boolean)\n private maximized!: boolean\n\n @Prop(Boolean)\n private embedded!: boolean\n\n @Prop({type: Boolean, default: true})\n private escapeCloses!: boolean\n\n private componentVeilZIndex: number = veilZIndex += 2\n private visible = false\n\n public mounted() {\n document.addEventListener(\"keyup\", this.handleKey)\n\n this.$nextTick(() => {\n this.visible = true\n })\n }\n\n public close() {\n this.visible = false\n }\n\n private remove() {\n document.removeEventListener(\"keyup\", this.handleKey)\n\n this.$el.parentElement!.removeChild(this.$el)\n this.$destroy()\n }\n\n private handleKey(e: KeyboardEvent) {\n switch (e.key) {\n case \"Escape\":\n if (this.escapeCloses) {\n this.close()\n }\n break\n\n case \"Enter\":\n this.$emit(\"enterPressed\")\n break\n }\n }\n\n private onVeilClicked() {\n if (!this.modal) {\n this.close()\n }\n }\n\n private afterEnter() {\n this.$emit(\"dialogAppeared\")\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenericDialogNew.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenericDialogNew.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GenericDialogNew.vue?vue&type=template&id=0e92967e&scoped=true&\"\nimport script from \"./GenericDialogNew.vue?vue&type=script&lang=ts&\"\nexport * from \"./GenericDialogNew.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GenericDialogNew.vue?vue&type=style&index=0&id=0e92967e&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 \"0e92967e\",\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport GenericDialogNew, {createDialogMountingPoint} from \"@/components/GenericDialogNew.vue\"\n\n\nexport function openErrorMessageDialog() {\n new (Vue.extend(ErrorMessageDialog))().$mount(createDialogMountingPoint())\n}\n\n\n@Component({\n components: {GenericDialogNew}\n})\nexport default class ErrorMessageDialog extends Vue {\n\n private refresh() {\n location.reload()\n }\n\n private close() {\n (this.$refs.genericDialog as GenericDialogNew).close()\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorMessageDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorMessageDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ErrorMessageDialog.vue?vue&type=template&id=2b969ada&scoped=true&\"\nimport script from \"./ErrorMessageDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ErrorMessageDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ErrorMessageDialog.vue?vue&type=style&index=0&id=2b969ada&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 \"2b969ada\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport {Component, Vue} from \"vue-property-decorator\"\nimport {onResponseError} from \"@/api/base-service\"\nimport {signOut} from \"@/store/auth-module\"\nimport axios from \"axios\"\nimport {getGroupColor} from \"@/utils/color-utils\"\nimport {openErrorMessageDialog} from \"@/components/ErrorMessageDialog.vue\"\n\nComponent.registerHooks([\n \"beforeRouteEnter\",\n \"beforeRouteLeave\",\n \"beforeRouteUpdate\"\n])\n@Component\nexport default class App extends Vue {\n\n public async created() {\n axios.defaults.headers.post[\"Client-Id\"] = this.generateUuid()\n onResponseError(async error => {\n if (!axios.isCancel(error)) {\n if (error.response.status === 401) {\n await signOut(this.$store)\n const invalidUserData = error.response.data === \"Invalid user data\"\n const isInSignIn = this.$router.currentRoute.name === \"sign-in\"\n if (invalidUserData || isInSignIn) {\n throw error\n } else {\n this.$router.push({name: \"sign-in\"})\n }\n } else if (error.response.status === 400 && [\"Invalid registration token\", \"Duplicate\", \"Email error\"].includes(error.response.data)) {\n throw error\n } else if (error.response.status === 410) {\n throw error\n } else {\n openErrorMessageDialog()\n }\n }\n })\n\n this.initializeCommonStyles()\n }\n\n private generateUuid() {\n // @ts-ignore\n // tslint:disable-next-line\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16))\n }\n\n\n private initializeCommonStyles() {\n const style = document.createElement(\"style\")\n style.type = \"text/css\"\n let innerHtml = \"\"\n for (let i = 1; i <= 10; i++) {\n innerHtml += `.group-${i}-text { background-color: ${getGroupColor(i.toString(), false)}; }\\n`\n }\n style.innerHTML = innerHtml\n document.getElementsByTagName(\"head\")[0].appendChild(style)\n }\n}\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--1-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--1-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=e6afd89e&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport 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('div',{staticClass:\"investigations-page\"},[(!_vm.isFacultyWorksUser)?_c('section',{staticClass:\"new-investigation\"},[_c('img',{staticClass:\"socrates-logo\",attrs:{\"src\":require(\"../../assets/images/socrates-logo.svg\")}}),_c('div',{staticClass:\"greeting-question\"},[_vm._v(\"What would you like to explore today?\")]),_c('div',{staticClass:\"selectors\"},_vm._l((_vm.investigationTypes()),function(investigationType){return _c('InvestigationSelector',{key:investigationType.type,attrs:{\"data\":investigationType}})}),1),_c('div',{ref:\"investigations\",staticClass:\"caption\",attrs:{\"id\":\"investigation-table\"},on:{\"click\":_vm.scrollToInvestigations}},[_c('div',[_vm._v(\"Open existing investigations table\")]),_c('div',{staticClass:\"scroll-to-investigation\"})])]):_vm._e(),(_vm.isFacultyWorksUser)?_c('section',{staticClass:\"new-investigation\"},[_c('div',{staticClass:\"fw-selectors\"},_vm._l((_vm.investigationTypes()),function(investigationType){return (_vm.isFacultyWorksUser)?_c('FacultyWorksSelector',{key:investigationType.type,attrs:{\"data\":investigationType}}):_vm._e()}),1)]):_vm._e(),_c('div',{staticClass:\"free-text-filter-container\"},[_c('div',{staticClass:\"input-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.freeText),expression:\"freeText\"}],staticClass:\"free-text-filter-input\",attrs:{\"type\":\"text\",\"placeholder\":\"Enter text to filter by\"},domProps:{\"value\":(_vm.freeText)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.freeText=$event.target.value}}}),(_vm.shouldShowClearFreeTextSearchButton)?_c('button',{staticClass:\"control-button clear\",on:{\"click\":function($event){_vm.freeText = null}}}):_vm._e()])]),_c('section',{staticClass:\"existing-investigations\"},[_c('div',{staticClass:\"container\"},[_c('section',{staticClass:\"main\"},[(_vm.isBusyFetchingAllInvestigations)?_c('SpinningLoader'):_vm._e(),(_vm.showInvestigations)?_c('table',{staticClass:\"investigations headers\"},[_vm._m(0)]):_vm._e(),(_vm.showInvestigations)?_c('table',{staticClass:\"investigations\"},[_c('tbody',_vm._l((_vm.investigations),function(investigation,index){return _c('tr',{key:investigation.id,staticClass:\"data-row\",on:{\"click\":function($event){return _vm.goToInvestigation(investigation)}}},[_c('td',{staticClass:\"index\"},[_c('div',{staticClass:\"disableable\"},[_c('span',[_vm._v(_vm._s(_vm.investigations.length - index))])])]),_c('td',{staticClass:\"investigation-type\"},[_c('div',{staticClass:\"disableable\"},[_c('span',{staticClass:\"ellipse\",style:({'background-color': _vm.investigationSubTypeColor(investigation)})},[_vm._v(_vm._s(_vm.investigationSubType(investigation)))])])]),_c('td',{staticClass:\"name\"},[_c('div',{staticClass:\"disableable\"},[_c('span',{staticClass:\"wrapper container\",attrs:{\"title\":((investigation.title) + \" (id=\" + (investigation.id) + \") (uuid=\" + (investigation.uuid) + \")\")}},[_vm._v(_vm._s(investigation.title))])])]),_c('td',{staticClass:\"alerts\"},[_c('div',{staticClass:\"disableable\"},[(investigation.alertsEnabled)?_c('div',{staticClass:\"notifications\"}):_vm._e()])]),_c('td',{ref:(\"investigation-\" + (investigation.id)),refInFor:true,staticClass:\"status\"},[_c('div',{staticClass:\"status-label pending\"},[(_vm.showPending(investigation))?_c('span',[_vm._v(\"Pending...\")]):_vm._e()]),_c('div',{staticClass:\"status-label processing\"},[(_vm.showProcessing(investigation))?_c('span',[_vm._v(\"Processing...\")]):_vm._e()]),_c('div',{staticClass:\"status-label ready\"},[(_vm.showReady(investigation))?_c('span',[_vm._v(\"Ready\")]):_vm._e()]),_c('div',{staticClass:\"status-label failed\"},[(_vm.showFailed(investigation))?_c('span',[_vm._v(\"Failed\")]):_vm._e()])]),_c('td',{staticClass:\"created-on\"},[_c('div',{staticClass:\"disableable\"},[_vm._v(_vm._s(_vm.formatDate(investigation.createdOn)))])]),_c('td',{staticClass:\"last-visited\"},[_c('div',{staticClass:\"disableable\"},[_vm._v(_vm._s(investigation.lastUserInteractionTime ? _vm.formatDate(investigation.lastUserInteractionTime) : null)+\" \")])]),_c('td',{staticClass:\"created-by\"},[_c('div',{staticClass:\"disableable\",attrs:{\"title\":_vm.isOmnipotentUser ? investigation.email : null}},[_vm._v(\" \"+_vm._s(investigation.createdBy)+\" \")])]),_c('td',{staticClass:\"total-documents\"},[_c('div',{staticClass:\"disableable\"},[_vm._v(_vm._s(investigation.totalDocuments))])]),_c('td',{staticClass:\"actions\"},[_c('div',{staticClass:\"disableable container\"},[(_vm.isAllowDuplicateInvestigation)?_c('div',{staticClass:\"action duplicate\",attrs:{\"title\":\"Duplicate investigation\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.askDuplicateInvestigation($event, investigation)}}}):_vm._e(),_c('div',{staticClass:\"action trash-can\",attrs:{\"title\":\"Delete investigation\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.askDeleteInvestigation($event, investigation)}}})])])])}),0)]):_c('h4',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNoInvestigations),expression:\"showNoInvestigations\"}]},[_vm._v(\"No Investigations\")])],1)])]),_c('div',{ref:\"menuRef\",style:({position: \"fixed\", left: _vm.menuPosition.left + 'px', top: _vm.menuPosition.top + 'px'})}),_c('PopupMenu',{staticClass:\"notification-menu\",attrs:{\"event\":\"openUserMenu\"}},[_c('div',{staticClass:\"notification\"},[_c('div',{staticClass:\"content\"},[_vm._v(\"This is your new investigation.\"),_c('br'),_vm._v(\"It will change status to \\\"Ready\\\" once completed processing. \")]),_c('div',{staticClass:\"footer\"},[_c('div',{staticClass:\"accept\"},[_vm._v(\"Got It\")])])])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',{staticClass:\"index\"},[_c('span',[_vm._v(\"#\")])]),_c('th',{staticClass:\"investigation-type\"},[_c('span',[_vm._v(\"Type\")])]),_c('th',{staticClass:\"name\"},[_c('span',[_vm._v(\"Name\")])]),_c('th',{staticClass:\"alerts\"},[_vm._v(\"Alerts\")]),_c('th',{staticClass:\"status\"},[_vm._v(\"Status\")]),_c('th',{staticClass:\"created-on\"},[_c('span',[_vm._v(\"Created On\")])]),_c('th',{staticClass:\"last-visited\"},[_c('span',[_vm._v(\"Last Visited\")])]),_c('th',{staticClass:\"created-by\"},[_c('span',[_vm._v(\"Created By\")])]),_c('th',{staticClass:\"total-documents\"},[_c('span',[_vm._v(\"# Of Docs\")])]),_c('th',{staticClass:\"actions\"})])])}]\n\nexport { render, staticRenderFns }","import axios from \"axios\"\nimport {ClusterReport} from \"@/types/clusters\"\n\n\nexport default {\n\n async merge(investigationId: string): Promise {\n const response = await axios.post(`/api/admin/merge/investigations/${investigationId}`)\n return response.data as string\n },\n\n async mergeAll(): Promise {\n const response = await axios.post(`/api/admin/merge/investigations`)\n return response.data as string\n },\n\n async createMergeReport(personIds: string[]): Promise {\n const response = await axios.post(`/api/admin/merge/report`, personIds, { responseType: \"arraybuffer\" })\n return new Blob([response.data])\n },\n\n\n async createMergeFinalReport(mainPersonId: string, personIds: string[]): Promise {\n const response = await axios.post(`/api/admin/merge/final-report`, { mainPersonId, personIds })\n return response.data as FinalReportDecision[]\n },\n\n\n async debugMerge(fileKey: string, personId: string, goodDocumentIds: string[], badDocumentIds: string[]): Promise {\n const response = await axios.post(`/api/admin/merge/debug`, { fileKey, personId, goodDocumentIds, badDocumentIds })\n return response.data as string\n },\n\n\n async clusterReportUsingFile(file: File): Promise {\n const formData = new FormData()\n formData.set(\"file\", file)\n formData.set(\"fileName\", file.name)\n\n const response = await axios.post(`/api/admin/clusters/report-by-file`, formData)\n return response.data as ClusterReport\n },\n\n\n async clusterReport(investigationId: string, cvFile: File | null, doiList: string[]): Promise {\n const formData = new FormData()\n formData.set(\"investigationId\", investigationId)\n formData.set(\"doiList\", JSON.stringify(doiList))\n if (cvFile) {\n formData.set(\"cvFile\", cvFile)\n }\n\n const response = await axios.post(`/api/admin/clusters/generate-report`, formData)\n return response.data as ClusterReport\n },\n\n\n async getHealthChecks(): Promise {\n const response = await axios.get(`/maintenance/healthcheck`)\n return response.data as HealthChecks\n },\n\n\n async createBatchAccuracyReport(file: File): Promise {\n const formData = new FormData()\n formData.set(\"file\", file)\n\n const response = await axios.post(\"/api/admin/clusters/batch-accuracy-report\", formData)\n return response.data as string\n },\n\n async generateQualityEstimationReport(): Promise {\n const response = await axios.get(\"/api/admin/clusters/quality-estimation-report\")\n return response.data as string\n },\n\n async generateAuthorFeedbackReport(): Promise {\n const response = await axios.get(\"/api/admin/clusters/author-feedback-report\")\n return response.data as string\n }\n}\n\n\nexport interface FinalReportDecision {\n readonly id1: number,\n readonly id2: number,\n readonly totalScore: number,\n readonly scores: { [key: string]: number }\n}\n\n\nexport interface HealthChecks {\n readonly merge: any\n readonly normalization: any\n}\n","import axios from \"axios\"\nimport {InvestigationEntity} from \"@/types/investigations\"\nimport moment from \"moment\"\n\n\nexport default {\n\n async getAll(forceAll: boolean): Promise {\n const response = await axios.get(\"/api/investigations\", { params: { forceAll } })\n return response.data.map((entity: any) => toInvestigation(entity))\n },\n\n\n async createTopic(searchString: string, includePublications: boolean, includeWebPages: boolean, political: boolean): Promise {\n const response = await axios.post(\"/api/investigations/topic\", {searchString, includePublications, includeWebPages, political})\n return toInvestigation(response.data)\n },\n\n\n async createTender(searchString: string): Promise {\n const response = await axios.post(\"/api/investigations/topic/tender\", {searchString})\n return toInvestigation(response.data)\n },\n\n\n async createCompany(companyName: string, companyWebSite: string): Promise {\n const response = await axios.post(\"/api/investigations/topic/company\", {companyName, companyWebSite})\n return toInvestigation(response.data)\n },\n\n\n async createPerson(personName: string, includePublications: boolean, includeWebPages: boolean): Promise {\n const response = await axios.post(\"/api/investigations/person\", {personName, includePublications, includeWebPages})\n return toInvestigation(response.data)\n },\n\n\n async createPersonGroup(instituteName: string, facultyName: string, researcherNames: string[], includePublications: boolean, includeWebPages: boolean): Promise {\n const response = await axios.post(\"/api/investigations/person/group\", {instituteName, facultyName, researcherNames, includePublications, includeWebPages})\n return toInvestigation(response.data)\n },\n\n\n async createUniversity(universityName: string, country: string, startYear: number, endYear: number, includePublications: boolean, includeWebPages: boolean): Promise {\n const response = await axios.post(\"/api/investigations/topic/university\", {universityName, country, startYear, endYear, includePublications, includeWebPages})\n return toInvestigation(response.data)\n },\n\n\n async createWebsite(investigationName: string, websiteUrl: string, includePublications: boolean, includeWebPages: boolean): Promise {\n const response = await axios.post(\"/api/investigations/topic/website\", {investigationName, websiteUrl, includePublications, includeWebPages})\n return toInvestigation(response.data)\n },\n\n async createFacultyWorks(instituteName: string, facultyName: string, researcherNames: string[],\n includePublications: boolean, includeWebPages: boolean): Promise {\n const response = await axios.post(\n \"/api/investigations/person/facultyworks\",\n {instituteName, facultyName, researcherNames, includePublications, includeWebPages})\n return toInvestigation(response.data)\n },\n\n async createResearcherWorks(instituteName: string, facultyName: string, researcherName: string,\n includePublications: boolean, includeWebPages: boolean): Promise {\n const researcherNames = [researcherName]\n const response = await axios.post(\n \"/api/investigations/person/researcherworks\",\n {instituteName, facultyName, researcherNames, includePublications, includeWebPages})\n return toInvestigation(response.data)\n },\n\n async getMagAffiliations(): Promise {\n const response = await axios.get(`/api/investigations/topic/mag-affiliations`)\n return response.data as string[]\n },\n\n\n async createPersonBatch(file: File): Promise {\n const formData = new FormData()\n formData.set(\"file\", file)\n\n await axios.post(\"/api/investigations/person/batch\", formData)\n },\n\n async createInvestigationsWithDefinitions(file: File): Promise {\n const formData = new FormData()\n formData.set(\"fileName\", file.name)\n formData.set(\"file\", file)\n\n const response = await axios.post(\"/api/investigation_definition/create\", formData)\n if (response.data) {\n throw response.data\n }\n },\n\n async deleteAllPendingInvestigations(): Promise {\n await axios.delete(\"/api/investigations/person/pending\")\n },\n\n async restartFailedInvestigations(): Promise {\n await axios.post(\"/api/investigations/person/restart-failed\")\n },\n\n async update(investigationId: string, title: string, goals?: string, alertsEnabled?: boolean): Promise {\n const response = await axios.patch(`/api/investigations/${investigationId}`, {title, goals, alertsEnabled})\n return response.data\n },\n\n async duplicate(investigationId: string): Promise {\n const response = await axios.post(`/api/investigations/${investigationId}/duplicate`, investigationId)\n return response.data\n },\n\n async delete(investigationId: string): Promise {\n await axios.delete(`/api/investigations/${investigationId}`)\n }\n}\n\n\nfunction toInvestigation(entity: InvestigationEntity): InvestigationEntity {\n return {\n ...entity,\n createdOn: moment(entity.createdOn),\n lastUserInteractionTime: entity.lastUserInteractionTime ? moment(entity.lastUserInteractionTime) : undefined\n }\n}\n","import {InvestigationEntity} from \"@/types/investigations\"\nimport {RootState} from \"@/store/index\"\nimport adminService from \"../api/admin-service\"\nimport investigationsService from \"../api/investigations-service\"\nimport {ActionContext} from \"vuex\"\nimport {getStoreAccessors} from \"vuex-typescript\"\nimport {InvestigationDataSource} from \"@/types/new-investigation\"\n\n\nexport interface InvestigationsState {\n investigations: InvestigationEntity[],\n showAllInvestigations: boolean,\n busyFetchingAllInvestigations: boolean,\n freeTextFilter: string\n}\n\nconst module = {\n namespaced: true,\n\n state(): InvestigationsState {\n return {\n investigations: [],\n showAllInvestigations: false,\n busyFetchingAllInvestigations: false,\n freeTextFilter: \"\"\n }\n },\n\n getters: {\n\n getInvestigations(state: InvestigationsState): InvestigationEntity[] {\n return state.investigations\n },\n\n isShowAllInvestigations(state: InvestigationsState): boolean {\n return state.showAllInvestigations\n },\n\n isBusyFetchingAllInvestigations(state: InvestigationsState): boolean {\n return state.busyFetchingAllInvestigations\n },\n\n getFreeTextFilter(state: InvestigationsState): string {\n return state.freeTextFilter\n }\n },\n\n mutations: {\n setInvestigations(state: InvestigationsState, investigations: InvestigationEntity[]) {\n state.investigations = investigations\n },\n\n\n toggleShowAllInvestigations(state: InvestigationsState) {\n state.showAllInvestigations = !state.showAllInvestigations\n },\n\n setBusyFetchingAllInvestigations(state: InvestigationsState, fetching: boolean) {\n state.busyFetchingAllInvestigations = fetching\n },\n\n setFreeTextFilter(state: InvestigationsState, text: string) {\n state.freeTextFilter = text\n }\n },\n\n actions: {\n async fetchAllInvestigations(context: ActionContext, showBusy: boolean): Promise {\n const interval = showBusy ? setTimeout(() => setBusyFetchingAllInvestigations(context, true), 250) : null\n\n const investigations = await investigationsService.getAll(context.state.showAllInvestigations)\n setInvestigations(context, investigations)\n\n if (showBusy) {\n setBusyFetchingAllInvestigations(context, false)\n clearTimeout(interval!)\n }\n },\n\n async createTopicInvestigation(context: ActionContext, payload: {\n searchString: string, sources: InvestigationDataSource[], political: boolean\n }): Promise {\n const {searchString, sources, political} = payload\n const topicInvestigation = await investigationsService.createTopic(\n searchString, sources.includes(\"academic publications\"), sources.includes(\"web pages\"), political\n )\n\n return topicInvestigation.id\n },\n\n async createTenderInvestigation(context: ActionContext, payload: {\n searchString: string\n }): Promise {\n const topicInvestigation = await investigationsService.createTender(payload.searchString)\n return topicInvestigation.id\n },\n\n async createCompanyInvestigation(context: ActionContext, payload: {\n companyName: string, companyWebSite: string\n }): Promise {\n const topicInvestigation = await investigationsService.createCompany(payload.companyName, payload.companyWebSite)\n return topicInvestigation.id\n },\n\n\n async createPersonInvestigation(context: ActionContext, payload: {\n personName: string, sources: InvestigationDataSource[]\n }): Promise {\n const {personName, sources} = payload\n const personInvestigation = await investigationsService.createPerson(personName, sources.includes(\"academic publications\"), sources.includes(\"web pages\"))\n return personInvestigation.id\n },\n\n async createPersonGroupInvestigation(context: ActionContext, payload: {\n institutionName: string, facultyName: string, researcherNames: string, sources: InvestigationDataSource[]\n }): Promise {\n const researchers = payload.researcherNames.split(\"\\n\").map(it => it.trim())\n const personInvestigation = await investigationsService.createPersonGroup(payload.institutionName, payload.facultyName, researchers, payload.sources.includes(\"academic publications\"), payload.sources.includes(\"web pages\"))\n return personInvestigation.id\n },\n\n async createUniversityInvestigation(context: ActionContext, payload: {\n universityName: string, country: string, startYear: number, endYear: number, sources: InvestigationDataSource[]\n }): Promise {\n const universityInvestigation = await investigationsService.createUniversity(payload.universityName, payload.country, payload.startYear, payload.endYear, payload.sources.includes(\"academic publications\"), payload.sources.includes(\"web pages\"))\n return universityInvestigation.id\n },\n\n async createWebsiteInvestigation(context: ActionContext, payload: {\n investigationName: string, websiteUrl: string, sources: InvestigationDataSource[]\n }): Promise {\n const websiteInvestigation = await investigationsService.createWebsite(payload.investigationName, payload.websiteUrl, payload.sources.includes(\"academic publications\"), payload.sources.includes(\"web pages\"))\n return websiteInvestigation.id\n },\n\n async createFacultyWorksInvestigation(context: ActionContext, payload: {\n institutionName: string, facultyName: string, researcherNames: string, sources: InvestigationDataSource[]\n }): Promise {\n const researchers = payload.researcherNames.split(\"\\n\").map(it => it.trim())\n const personInvestigation = await investigationsService.createFacultyWorks(\n payload.institutionName, payload.facultyName, researchers,\n payload.sources.includes(\"academic publications\"), payload.sources.includes(\"web pages\"))\n return personInvestigation.id\n },\n\n async createResearcherWorksInvestigation(context: ActionContext, payload: {\n instituteName: string, facultyName: string, researcherName: string, sources: InvestigationDataSource[]\n }): Promise {\n const personInvestigation = await investigationsService.createResearcherWorks(\n payload.instituteName, payload.facultyName, payload.researcherName,\n payload.sources.includes(\"academic publications\"), payload.sources.includes(\"web pages\"))\n return personInvestigation.id\n },\n\n async createBatchPersonInvestigations(context: ActionContext, payload: File): Promise {\n await investigationsService.createPersonBatch(payload)\n },\n\n async createBatchAccuracyReport(context: ActionContext, payload: File): Promise {\n return await adminService.createBatchAccuracyReport(payload)\n },\n\n async deleteAllPendingInvestigations(context: ActionContext): Promise {\n await investigationsService.deleteAllPendingInvestigations()\n },\n\n async restartFailedInvestigations(context: ActionContext): Promise {\n await investigationsService.restartFailedInvestigations()\n },\n\n async updateInvestigation(context: ActionContext, { id, title, goals, alertsEnabled }: { id: string, title: string, goals?: string, alertsEnabled?: boolean }): Promise {\n await investigationsService.update(id, title, goals, alertsEnabled)\n await fetchAllInvestigations(context, true)\n },\n\n async deleteInvestigation(context: ActionContext, id: string): Promise {\n await investigationsService.delete(id)\n await fetchAllInvestigations(context, true)\n },\n\n async duplicateInvestigation(context: ActionContext, id: string): Promise {\n await investigationsService.duplicate(id)\n await fetchAllInvestigations(context, true)\n }\n }\n}\n\nexport default module\n\n\nconst { read, commit, dispatch } = getStoreAccessors(\"investigations\")\n\nexport const getInvestigations = read(module.getters.getInvestigations)\nexport const isShowAllInvestigations = read(module.getters.isShowAllInvestigations)\nexport const isBusyFetchingAllInvestigations = read(module.getters.isBusyFetchingAllInvestigations)\nexport const getFreeTextFilter = read(module.getters.getFreeTextFilter)\n\nexport const toggleShowAllInvestigations = commit(module.mutations.toggleShowAllInvestigations)\nexport const setFreeTextFilter = commit(module.mutations.setFreeTextFilter)\n\nexport const fetchAllInvestigations = dispatch(module.actions.fetchAllInvestigations)\nexport const createTopicInvestigation = dispatch(module.actions.createTopicInvestigation)\nexport const createPersonInvestigation = dispatch(module.actions.createPersonInvestigation)\nexport const createPersonGroupInvestigation = dispatch(module.actions.createPersonGroupInvestigation)\nexport const createUniversityInvestigation = dispatch(module.actions.createUniversityInvestigation)\nexport const createWebsiteInvestigation = dispatch(module.actions.createWebsiteInvestigation)\nexport const createTenderInvestigation = dispatch(module.actions.createTenderInvestigation)\nexport const createCompanyInvestigation = dispatch(module.actions.createCompanyInvestigation)\nexport const createFacultyWorksInvestigation = dispatch(module.actions.createFacultyWorksInvestigation)\nexport const createResearcherWorksInvestigation = dispatch(module.actions.createResearcherWorksInvestigation)\nexport const createBatchPersonInvestigations = dispatch(module.actions.createBatchPersonInvestigations)\nexport const createBatchAccuracyReport = dispatch(module.actions.createBatchAccuracyReport)\nexport const deleteAllPendingInvestigations = dispatch(module.actions.deleteAllPendingInvestigations)\nexport const restartFailedInvestigations = dispatch(module.actions.restartFailedInvestigations)\nexport const updateInvestigation = dispatch(module.actions.updateInvestigation)\n\nexport const deleteInvestigation = dispatch(module.actions.deleteInvestigation)\nexport const duplicateInvestigation = dispatch(module.actions.duplicateInvestigation)\n\nconst setInvestigations = commit(module.mutations.setInvestigations)\nconst setBusyFetchingAllInvestigations = commit(module.mutations.setBusyFetchingAllInvestigations)\n","import {Moment} from \"moment\"\n\n\nexport type InvestigationStatus = \"PENDING\" | \"PROCESSING\" | \"READY\" | \"FAILED\"\n\n\nexport interface InvestigationEntity {\n readonly id: string\n readonly uuid: string\n readonly title: string\n readonly initialSearchString: string\n readonly investigationType: InvestigationType\n readonly investigationSubType: InvestigationSubType\n readonly goals?: string\n readonly summary?: string\n readonly createdOn: Moment\n readonly age: number\n readonly createdBy: string\n readonly alertsEnabled: boolean\n readonly status: InvestigationStatus\n readonly lastUserInteractionTime?: Moment\n readonly configuration: InvestigationConfigurationEntity\n readonly email: string\n readonly totalDocuments: number\n}\n\nexport class PersonSummaryEntity {\n constructor(\n public personName: string,\n public terms: MarkedUpText[],\n public recentAffiliations: RecentAffiliation[],\n public bibliographicDetails: BibliographicDetails,\n public documents: SummaryDocument[],\n public aliasNames: string[],\n public manuallyMerged: boolean,\n public universityProfileUrl: string,\n public lastReviewTime: Moment | null\n ) {}\n}\n\nexport interface EntitySummaryEntity {\n readonly entity: string,\n readonly entityType: string,\n readonly documents: EntitySummaryDocument[]\n}\n\nexport interface EntityRelationshipSummaryEntity {\n readonly firstEntity: MentionedEntity,\n readonly secondEntity: MentionedEntity,\n readonly documents: EntitySummaryDocument[]\n}\n\n\nexport class ObservationInfo {}\n\n\nexport class PersonObservationInfo extends ObservationInfo {\n constructor(public summary: PersonSummaryEntity,\n public imageId: string) {\n super()\n }\n}\n\n\nexport class DocumentObservationInfo extends ObservationInfo {\n constructor(public document: DocumentEntity,\n public id: string,\n public url: string,\n public fullTextUrl: string,\n public title: MarkedUpText,\n public abstract: MarkedUpText,\n public type: string,\n public classification: string,\n public authors: string[],\n public labels: string[],\n public touched: boolean,\n public citationNumber?: number,\n public originalLanguage?: string,\n public relevancy?: Relevancy,\n public starred?: boolean,\n public note?: string,\n public journal?: string,\n public date?: Moment) {\n super()\n }\n}\n\nexport class GraphObservationInfo extends ObservationInfo {\n constructor(public dataUrl: string,\n public imageKey: string) {\n super()\n }\n}\n\n\nexport interface DocumentStatusEntity {\n readonly id: string\n readonly relevancy?: Relevancy\n readonly starred?: boolean\n readonly note?: string\n readonly touched: boolean\n}\n\n\nexport interface TopExpansion {\n readonly type: string\n readonly isExpanded: boolean\n}\n\n\nexport interface GroupExpansion {\n readonly id: string\n readonly isExpanded: boolean\n}\n\n\nexport interface TopSort {\n readonly type: string\n readonly isSortedByRelevant: boolean\n}\n\n\nexport interface DocumentEntity extends DocumentStatusEntity {\n id: string\n url: string\n fullTextUrl: string | null\n title: MarkedUpText\n abstract: MarkedUpText\n readonly type: string\n classification: string\n volume: string | null\n issue: string | null\n firstPage: string | null\n lastPage: string | null\n publisher: string | null\n publicationType?: string\n harvesterType: HarvesterType\n doi: string | null\n date?: Moment | null\n datePrecision?: string\n terms: MarkedUpText[]\n authors: InvestigationAuthor[]\n keywords: MarkedUpText[]\n snippets: MarkedUpText\n journal?: string | null\n readonly citationNumber?: number\n readonly originalLanguage?: string\n labels: string[]\n journalImage: boolean\n coverImageId: string | null\n abstractImageId: string | null\n coverImageSourceUrl: string | null\n abstractImageSourceUrl: string | null\n readonly byTheResearchers?: boolean | null\n}\n\n\nexport interface InvestigationAuthor {\n readonly id: string\n readonly name: string\n readonly affiliations: string[]\n readonly imageId: string | null\n readonly universityProfileUrl: string | null\n readonly lastReviewTime: Moment | null\n}\n\n\nexport interface DocumentMarkupsEntity extends DocumentStatusEntity {\n readonly id: string\n readonly title: MarkedUpText\n readonly abstract: MarkedUpText\n readonly snippets: MarkedUpText\n readonly terms: MarkedUpText[]\n readonly keywords: MarkedUpText[]\n}\n\nexport interface DocumentOverwrites {\n title?: string\n text?: string | null\n volume?: string | null\n issue?: string | null\n firstPage?: string | null\n lastPage?: string | null\n publisher?: string | null\n doi?: string | null\n fullTextUrl?: string | null\n publishedIn?: string | null\n publicationType?: string | null\n date?: string | null\n url?: string\n authors?: DocumentAuthorOverwrite[]\n}\n\n\nexport interface DocumentAuthorOverwrite {\n readonly id: string,\n readonly name: string,\n readonly affiliations: string[],\n readonly imageId: string | null,\n readonly universityProfileUrl: string | null,\n readonly previousPosition?: number\n readonly lastReviewTime: Moment | null\n}\n\n\nexport interface InvestigationDataEntity {\n readonly documents: DocumentEntity[]\n readonly tops: Tops\n readonly documentCounts: DocumentCounts\n readonly dateHistogram: DateHistogram\n readonly availableDocumentIds: string[]\n readonly labels: string[]\n}\n\n\nexport interface TopicInvestigationDataEntity extends InvestigationDataEntity {\n readonly terms: { active: InvestigationTermEntity[], suggested: string[] }\n readonly termGroups: InvestigationTermGroupEntity[]\n}\n\n\nexport interface InvestigationTermGroupEntity {\n readonly id: string\n readonly name: string\n readonly color: string\n readonly modifier: TermGroupModifier\n}\n\n\nexport interface PersonInvestigationDataEntity extends InvestigationDataEntity {\n readonly persons: PersonEntity[]\n readonly personRelevantCounts: PersonRelevantCounts\n readonly matchingResearcherIds: MatchingResearcherIds\n readonly bwJournals: BWJournal[]\n readonly activeAuthorIds: string[]\n}\n\nexport interface PersonRelevantCounts {\n [id: string]: number\n}\n\nexport interface MatchingResearcherIds {\n [id: string]: string\n}\n\nexport interface InvestigationGraphDataEntity {\n readonly graph: GraphEntity\n readonly tops: Tops\n readonly dateHistogram: DateHistogram\n readonly termGroups?: InvestigationTermGroupEntity[]\n readonly labels: string[]\n readonly terms: { active: InvestigationTermEntity[], suggested: string[] }\n}\n\nexport interface DocumentCounts {\n readonly totalDocumentCount: number\n readonly relevantDocumentCount: number\n}\n\nexport interface Tops {\n readonly topAuthors: ScoredAuthorEntity[]\n readonly topJournals: ScoredNameEntity[]\n readonly topConferences: ScoredNameEntity[]\n readonly topInstitutions: ScoredAffiliationEntity[]\n readonly topRegions: ScoredRegionEntity[]\n readonly topAffiliationGeographies: ScoredNameEntity[]\n readonly topEmails: ScoredNameEntity[]\n topClassifications: ScoredNameEntity[]\n readonly topPersons: ScoredNameEntity[]\n readonly topOrganizations: ScoredNameEntity[]\n readonly topDomains: ScoredNameEntity[]\n readonly topLanguages: ScoredNameEntity[]\n topLabels: ScoredNameEntity[]\n readonly topLexemes: TopLexemeEntity[]\n readonly topTerms: ScoredNameEntity[]\n readonly topLocations: ScoredNameEntity[]\n readonly topConcepts: ScoredNameEntity[]\n}\n\nexport interface MarkedUpText {\n text: string,\n markups: TextMarkup[]\n}\n\nexport interface TextMarkup {\n startIndex: number,\n endIndex: number,\n priority: number,\n mandatory: boolean,\n entities: boolean\n}\n\nexport interface ScoredNameEntity {\n name: string\n totalScore: number\n relevantScore: number\n totalCount: number\n relevantCount: number\n}\n\nexport interface SummaryDocument {\n readonly id: string\n readonly title: string\n readonly url: string\n}\n\nexport interface EntitySummaryDocument {\n readonly id: string\n readonly url: string\n readonly title: string\n readonly markedUpTitle: MarkedUpText\n readonly excerpts: MarkedUpText[]\n}\n\n\nexport interface ScoredAuthorEntity {\n readonly author: TopAuthorEntity\n readonly totalScore: number\n readonly relevantScore: number\n readonly totalCount: number\n readonly relevantCount: number\n}\n\n\nexport interface ScoredAffiliationEntity {\n readonly affiliation: TopAffiliationEntity\n readonly totalScore: number\n readonly relevantScore: number\n readonly totalCount: number\n readonly relevantCount: number\n}\n\n\nexport interface ScoredRegionEntity {\n readonly region: TopRegionEntity\n readonly totalScore: number\n readonly relevantScore: number\n readonly totalCount: number\n readonly relevantCount: number\n}\n\n\nexport interface TopAuthorEntity {\n readonly id: string\n readonly name: string\n}\n\n\nexport interface TopAffiliationEntity {\n readonly name: string\n readonly title: string\n}\n\n\nexport interface TopRegionEntity {\n readonly name: string\n readonly code: number\n}\n\n\nexport interface TopLexemeEntity {\n readonly name: string\n readonly displayName: string\n readonly lexemeScores: ScoredNameEntity[]\n}\n\n\nexport interface InvestigationTermEntity {\n readonly term: string\n readonly modifier: TermModifier\n readonly group: string\n}\n\n\nexport interface RGB {\n red: number,\n green: number,\n blue: number\n}\n\nexport interface ColorCode { [key: number]: string}\n\nexport interface PersonEntity {\n id: string,\n name: string,\n relevancy: Relevancy,\n documentsCount: number\n filteredOut: boolean\n}\n\nexport class MentionedEntity {\n constructor(public name: string, public type: string, public labels: string[]) {}\n}\n\nexport interface PersonVote {\n id: string,\n relevancy: Relevancy\n}\n\n\nexport interface RecentAffiliation {\n readonly affiliation: string\n readonly title?: string\n readonly fromYear: number\n readonly toYear: number\n}\n\n\nexport interface BibliographicDetails {\n readonly articles: number,\n readonly authors: number,\n readonly books: number,\n readonly bookChapters: number\n readonly patents: number\n}\n\n\n\nexport class DateHistogram {\n constructor(public bars: DateHistogramBar[] = []) {\n }\n}\n\n\nexport class DateHistogramBar {\n constructor(public year: number, public totalCount: number, public relevantCount: number, public totalScore: number, public relevantScore: number) {\n }\n}\n\n\nexport class BarGraphModel {\n constructor(public title: string, public type: string, public bars: BarModel[]) { }\n}\n\n\nexport class BarModel {\n constructor(public caption: string,\n public totalPercentage: number,\n public relevantPercentage: number,\n public totalCount: number,\n public relevantCount: number,\n public title: string,\n public value: string) { }\n}\n\nexport class RegionBarModel extends BarModel {\n constructor(public caption: string,\n public totalPercentage: number,\n public relevantPercentage: number,\n public totalCount: number,\n public relevantCount: number,\n public title: string,\n public code: number,\n public value: string) {\n super(caption, totalPercentage, relevantPercentage, totalCount, relevantCount, title, value)\n }\n}\n\nexport interface InvestigationRequestSpec {\n dateFilter: DateFilter,\n displayedResultsStatus: DisplayedResultsStatus,\n selectedTops: SelectedTop[],\n includeOnlyUnlabeled: boolean,\n includeSingleAuthoredDocuments: boolean,\n personId?: string | null,\n personName?: string | null,\n freeText?: string | null,\n sortDocumentsBy: string,\n requestedDocumentIds: string[],\n highlightMode: string[],\n onlyInvestigationResearchers: boolean,\n onlyDuplicateDocuments: boolean,\n onlyUnaffiliated: boolean,\n onlyUnknownPublishers: boolean,\n onlyMissingVolume: boolean,\n onlyMissingDate: boolean,\n specificDocumentUrls: string[],\n}\n\n\nexport interface DateFilter {\n startYear: number | null,\n endYear: number | null\n}\n\nexport interface SelectedTop {\n name: string\n selectedDisplayValue: string\n selectedValue: any\n}\n\nexport type Relevancy = \"Relevant\" | \"Irrelevant\" | \"Neutral\"\nexport type TermModifier = \"Regular\" | \"Mandatory\" | \"Boost\" | \"Penalty\" | \"Ignored\" | \"Exclude\"\nexport type TermGroupModifier = \"Regular\" | \"Mandatory\"\nexport type InvestigationType = \"Topic\" | \"Person\"\nexport type InvestigationSubType = \"Topic\" | \"Person\" | \"PersonGroup\" | \"WebSite\" | \"University\" | \"Political\"\n | \"Tender\" | \"Company\" | \"LocalDocuments\" | \"ResearcherWorks\" | \"FacultyWorks\"\nexport type InvestigationLabelType = \"Document\" | \"Entity\"\nexport type ObservationType = \"Investigation\" | \"Person\" | \"Document\" | \"Graph\"\nexport type GraphType = \"Author\" | \"Unified\" | \"Timeline\" | null\nexport type DisplayedResultsStatus = \"All\" | \"Unread\" | \"Annotated\" | \"Relevant\" | \"Irrelevant\"\nexport type MentionedEntityType = \"ORGANIZATION\" | \"PERSON\" | \"LOCATION\" | \"CONCEPT\" | \"TERM\"\nexport type SearchType = \"All\" | \"LastYear\" | \"Last5Years\"\nexport type FacultyWorksWorkflowStage = \"MarkFix\" | \"Dedup\" | \"Enrich\"\nexport type HarvesterType = \"PUBLISHER\" | \"MICROSOFT\" | \"GENERIC\" | \"UNIVERSAL\" | \"GOOGLE\" | \"PDF\" | \"UNKNOWN\"\n\n\nexport interface GraphRequest {\n spec: InvestigationRequestSpec,\n sizeBy?: string,\n colorBy?: string\n}\n\nexport interface GraphNodeEntity {\n readonly id: string,\n readonly props: { [key: string]: any }\n}\n\nexport interface GraphEdgeEntity {\n readonly id: string,\n readonly sourceId: string,\n readonly targetId: string,\n readonly props: { [key: string]: any }\n}\n\nexport interface GraphEntity {\n readonly nodes: GraphNodeEntity[],\n readonly edges: GraphEdgeEntity[]\n}\n\nexport interface TimelineRequest {\n spec: InvestigationRequestSpec,\n}\n\nexport interface InvestigationTimelineDataEntity {\n readonly chart: TimelineChartEntity\n readonly tops: Tops\n readonly dateHistogram: DateHistogram,\n readonly terms: { active: InvestigationTermEntity[], suggested: string[] },\n readonly termGroups: InvestigationTermGroupEntity[]\n readonly externalSeries: string[]\n}\n\nexport interface TimelineChartEntity {\n readonly dataItems: string[][]\n readonly columns: string[]\n}\n\nexport class TimelineChartData {\n constructor(public chartEntity: TimelineChartEntity, public selectedTermGroups: string[], public selectedTerms: string[], public selectedExternalSeries: string | null) {\n }\n}\n\nexport interface RelevancyStatusEntity {\n differentEnough: boolean\n relevancyScore: number\n}\n\nexport interface JournalsEntity {\n blacklist: string[],\n whitelist: string[]\n}\n\nexport interface BWJournal {\n journal: string\n list: \"BLACKLIST\" | \"WHITELIST\" | \"NONE\"\n}\n\nexport interface InvestigationConfigurationEntity {\n readonly searchDefinition: InvestigationConfigurationSearchDefinitionEntity,\n readonly topsStatuses: InvestigationConfigurationTopStatus[],\n readonly translation: InvestigationConfigurationTranslationEntity\n readonly graphsSettings: { [key: string]: InvestigationGraphSettingsEntity }\n readonly includeAllDocuments: boolean\n readonly researchers: string[]\n readonly overrideDocumentNumberLimit: boolean\n readonly documentNumberLimit: number\n readonly startDateCutoff: Moment | null\n readonly startDateCutoffEnabled: boolean\n readonly journals: JournalsEntity\n readonly activeAffiliations: string[] | null\n readonly activeAuthors: string[] | null\n}\n\n\nexport interface InvestigationConfigurationSearchDefinitionEntity {\n readonly includeWebPages: boolean,\n readonly overrideDefaultMaxResultsPerWebHarvest: boolean,\n readonly maxResultsPerWebHarvest: number,\n readonly webHarvestFromSites: string[],\n readonly includeArticles: boolean,\n readonly overrideDefaultMaxResultsPerArticleHarvest: boolean,\n readonly maxResultsPerArticleHarvest: number,\n readonly articleHarvestFromInstitutions: string[]\n}\n\n\nexport interface InvestigationConfigurationTranslationEntity {\n readonly selectedLanguages: string[]\n}\n\nexport interface InvestigationGraphSettingsEntity {\n readonly totalNumberOfNodes?: number,\n readonly edgeThreshold?: number\n}\n\n\nexport interface InvestigationConfigurationTopStatus {\n readonly id: string,\n readonly displayName: string,\n readonly enabled: boolean\n readonly dictionary: boolean\n}\n\nexport interface PersonSemanticAffinityEntity {\n readonly personId: string,\n readonly semanticAffinity: number\n}\n\nexport interface AuthorGraphSettings {\n layout: string,\n sizeBy: GraphSetBy,\n colorBy: GraphSetBy,\n filter: string,\n showSnowflakes: boolean,\n personForRightPaneSummary: PersonEntity | null\n}\n\nexport interface UnifiedGraphSettings {\n layout: string,\n filter: string\n}\n\nexport interface GraphSetBy {\n option: string,\n personId?: string\n}\n\nexport interface MainClusterFilterData {\n readonly personId: number,\n readonly displayName: string\n}\n\nexport interface InvestigationPersonDetails {\n readonly id: string,\n readonly name: string\n readonly universityProfileUrl?: string,\n readonly authorImageId?: string\n}\n\nexport interface PredefinedTermGroupEntity {\n readonly name: string,\n readonly terms: string[]\n}\n\nexport interface GenerateHtmlResponse {\n readonly numOfDuplicates?: number,\n readonly failedTitle?: string,\n readonly base64File?: string | null,\n}\n","import axios, {AxiosRequestConfig, AxiosResponse, CancelToken} from \"axios\"\nimport {\n DocumentEntity,\n DocumentOverwrites,\n DocumentStatusEntity,\n EntityRelationshipSummaryEntity,\n EntitySummaryEntity,\n GraphRequest,\n GraphType,\n InvestigationDataEntity,\n InvestigationEntity,\n InvestigationGraphDataEntity,\n InvestigationPersonDetails,\n InvestigationRequestSpec,\n InvestigationTermEntity,\n InvestigationTimelineDataEntity,\n InvestigationType,\n MainClusterFilterData,\n MentionedEntity,\n PersonSummaryEntity,\n Relevancy,\n SearchType,\n TimelineRequest\n} from \"@/types/investigations\"\nimport moment from \"moment\"\nimport {ObservationsResponse} from \"@/store/investigation/observation-module\"\n\nconst settings = { headers: { \"Content-Type\": \"application/json\" } }\n\nexport default {\n\n async setDocumentRelevancy(investigationId: string, documentId: string, relevancy: Relevancy, investigationType: InvestigationType, terms: string[]): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/documents/${documentId}/relevancy`\n const data = {\n relevancy: `${relevancy}`,\n terms\n }\n const response = await axios.patch(url, data, settings)\n\n if (response) {\n return response.data\n }\n },\n\n async setDocumentStarred(investigationId: string, documentId: string, starred: boolean, investigationType: InvestigationType): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/documents/${documentId}/starred`\n const response = await axios.patch(url, starred, settings)\n\n if (response) {\n return response.data\n }\n },\n\n async setDocumentNote(investigationId: string, documentId: string, investigationType: InvestigationType, note?: string): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/documents/${documentId}/note`\n const response = await axios.patch(url, note, settings)\n\n if (response) {\n return response.data\n }\n },\n\n async addDocumentLabel(investigationId: string, document: string, label: string, investigationType: InvestigationType): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/documents/${document}/label`\n const response = await axios.post(url, [label], settings)\n\n if (response) {\n return response.data\n }\n },\n\n async addLabelToSeveralDocuments(investigationId: string, documentIdList: string[], label: string, investigationType: InvestigationType): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/documents/label`\n const response = await axios.post(url, {documentIdList, label}, settings)\n if (response) {\n return response.data\n }\n },\n\n async removeDocumentLabel(investigationId: string, document: string, label: string, investigationType: InvestigationType): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/documents/${document}/label`\n const response = await axios.delete(url, {data: [label]})\n\n if (response) {\n return response.data\n }\n },\n\n async renameDocumentLabel(investigationId: string, payload: {oldLabel: string, newLabel: string}, investigationType: InvestigationType): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/documents/label`\n const response = await axios.patch(url, payload)\n\n return response.status === 204\n },\n\n async deleteDocumentLabel(investigationId: string, label: string, investigationType: InvestigationType): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/documents/label`\n const response = await axios.delete(url, {data: label})\n\n return response.status === 204\n },\n\n async addEntityLabel(investigationId: string, entityType: string, entity: string, label: string, investigationType: InvestigationType): Promise {\n const entityTypeFullName = entityType === \"o\" ? \"organizations\" : \"persons\"\n const url = `/api/investigations/${investigationId}/entities/${entityTypeFullName}/${entity.toLowerCase()}/label`\n const response = await axios.post(url, [label], settings)\n\n if (response) {\n return response.data\n }\n },\n\n async removeEntityLabel(investigationId: string, entityType: string, entity: string, label: string, investigationType: InvestigationType): Promise {\n const entityTypeFullName = entityType === \"o\" ? \"organizations\" : \"persons\"\n const url = `/api/investigations/${investigationId}/entities/${entityTypeFullName}/${entity.toLowerCase()}/label`\n const response = await axios.delete(url, {data: [label]})\n\n if (response) {\n return response.data\n }\n },\n\n async renameEntityLabel(investigationId: string, payload: {oldLabel: string, newLabel: string}, investigationType: InvestigationType): Promise {\n const url = `/api/investigations/${investigationId}/entities/label`\n const response = await axios.patch(url, payload)\n\n return response.status === 204\n },\n\n async deleteMentionedEntityLabel(investigationId: string, label: string, investigationType: InvestigationType): Promise {\n const url = `/api/investigations/${investigationId}/entities/label`\n const response = await axios.delete(url, {data: label})\n\n return response.status === 204\n },\n\n async bulkMarkRead(investigationId: string, investigationType: InvestigationType, documentIds: string[]): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/documents/bulkread`\n const response = await axios.post(url, documentIds)\n return response.status === 200\n },\n\n async bulkApplyDocumentLabel(investigationId: string, investigationType: InvestigationType, label: string, add: boolean, documentIds: string[]): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/documents/label/bulk`\n const response = await axios.post(url, { label, add, documentIds })\n return response.status === 200\n },\n\n async createDocument(investigationId: string, investigationType: InvestigationType, documentType: string, overwrites: DocumentOverwrites): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/documents`\n const response = await axios.post(url, { documentType, overwrites })\n if (response.status !== 201) {\n return Promise.reject(\"Failed to create document\")\n }\n const location = response.headers.location\n return location.substr(location.lastIndexOf(\"/\") + 1)\n },\n\n async updateDocument(investigationId: string, investigationType: InvestigationType, documentId: string, overwrites: DocumentOverwrites): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/documents/${documentId}`\n const response = await axios.patch(url, overwrites)\n\n return response.status === 204\n },\n\n async getInvestigation(id: string, investigationType: InvestigationType): Promise {\n const response = await axios.get(`/api/investigations/${investigationType.toLowerCase()}/${id}`)\n const entity = response.data\n\n if (entity) {\n return {...entity, createdOn: moment(entity.createdOn)} as InvestigationEntity\n }\n },\n\n async getPersonForSummary(id: string, investigationType: InvestigationType, personId: string, termsCount: number, personName?: string): Promise {\n try {\n const response = await axios.get(`/api/investigations/${investigationType.toLowerCase()}/${id}/person-summary/${personId}`, {params: {personName, termsCount}})\n return new PersonSummaryEntity(\n response.data.personName,\n response.data.terms,\n response.data.recentAffiliations,\n response.data.bibliographicDetails,\n response.data.documents,\n response.data.aliasNames,\n response.data.manuallyMerged,\n response.data.universityProfileUrl,\n !!response.data.lastReviewTime ? moment(response.data.lastReviewTime) : null)\n } catch (e) {\n return e.response.data as string\n }\n },\n\n async getEntityForSummary(id: string, investigationType: InvestigationType, entityName: string, entityType: string, spec: InvestigationRequestSpec): Promise {\n const response = await axios.post(`/api/investigations/${investigationType.toLowerCase()}/${id}/entity-summary`, {entityName, entityType, spec})\n return response.data as EntitySummaryEntity\n },\n\n async getEntityRelationshipForSummary(id: string, investigationType: InvestigationType, firstEntity: MentionedEntity, secondEntity: MentionedEntity): Promise {\n const response = await axios.post(`/api/investigations/${investigationType.toLowerCase()}/${id}/entity-relationship-summary`, {firstEntity, secondEntity})\n const data = response.data as EntityRelationshipSummaryEntity\n const documents = data.documents.map(document => ({...document, snippet: null}))\n return {...data, documents} as EntityRelationshipSummaryEntity\n },\n\n async getAuthorsGraph(id: string, investigationType: InvestigationType, spec: InvestigationRequestSpec): Promise {\n const config: AxiosRequestConfig = {\n url: `/api/investigations/${investigationType.toLowerCase()}/${id}/export-co-authors`,\n method: \"POST\",\n responseType: \"blob\",\n data: spec\n }\n return axios(config)\n },\n\n async getXmlTermsGraph(id: string, investigationType: InvestigationType, spec: InvestigationRequestSpec): Promise {\n const config: AxiosRequestConfig = {\n url: `/api/investigations/${investigationType.toLowerCase()}/${id}/export-terms`,\n method: \"POST\",\n responseType: \"blob\",\n data: spec\n }\n return axios(config)\n },\n\n async getGraphData(id: string, investigationType: InvestigationType, graphType: GraphType, graphRequest: GraphRequest, cancelToken: CancelToken): Promise {\n const response = await axios.post( `/api/investigations/${investigationType.toLowerCase()}/${id}/${graphType!.toLowerCase()}-graph`, graphRequest)\n if (response) {\n return response.data as InvestigationGraphDataEntity\n }\n },\n\n async getTimelineData(id: string, investigationType: InvestigationType, graphType: GraphType, timelineRequest: TimelineRequest): Promise {\n const response = await axios.post(`/api/investigations/${investigationType.toLowerCase()}/${id}/timeline-chart`, timelineRequest)\n if (response) {\n return response.data as InvestigationTimelineDataEntity\n }\n },\n\n async getDocumentMarkups(investigationId: string, spec: InvestigationRequestSpec, pageSize: number | null): Promise {\n const url = `/api/investigations/topic/${investigationId}/document-markups`\n const response = await axios.post(url, spec, { params: { pageSize }})\n\n if (response) {\n return response.data.map((entity: any) => convertToDocument(entity))\n }\n },\n\n async getPersonProfile(investigationId: string, spec: InvestigationRequestSpec, investigationType: InvestigationType): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/profile`\n const response = await axios.post(url, spec)\n if (response) {\n const documents = response.data.documents.map((entity: any) => convertToDocument(entity))\n return {...response.data, documents}\n }\n },\n\n async getPersonProfileExcel(investigationId: string, spec: InvestigationRequestSpec, investigationType: InvestigationType): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/profile/export`\n const response = await axios.post(url, spec, { responseType: \"arraybuffer\" })\n if (response) {\n return new Blob([response.data])\n }\n },\n\n async getPublicationsExcel(investigationId: string, spec: InvestigationRequestSpec, investigationType: InvestigationType): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/export-publications`\n const response = await axios.post(url, spec, { responseType: \"arraybuffer\" })\n if (response) {\n return new Blob([response.data])\n }\n },\n\n async getAllData(investigationId: string, spec: InvestigationRequestSpec, pageSize: number, investigationType: InvestigationType, cancelToken: CancelToken): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/data`\n const response = await axios.post(url, spec, { params: { pageSize }, cancelToken })\n if (response && response.data) {\n const documents = response.data.documents.map((entity: any) => convertToDocument(entity))\n return {...response.data, documents}\n }\n },\n\n async getNextDocuments(investigationId: string, spec: InvestigationRequestSpec, investigationType: InvestigationType): Promise {\n const url = `/api/investigations/${investigationType.toLowerCase()}/${investigationId}/next-documents`\n const response = await axios.post(url, spec)\n if (response) {\n return response.data.map((entity: any) => convertToDocument(entity))\n }\n },\n\n async getNextSuggestedTerms(investigationId: string, selectedSuggestedTerms: InvestigationTermEntity[], rejectedSuggestedTerms: string[], spec: InvestigationRequestSpec): Promise {\n const response = await axios.post(`/api/investigations/topic/${investigationId}/next-suggested-terms`, { spec, selectedSuggestedTerms, rejectedSuggestedTerms })\n if (response) {\n return response.data\n }\n },\n\n async getObservations(investigationId: string, investigationType: InvestigationType): Promise {\n const response = await axios.get(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/observation`)\n if (response) {\n return response.data\n }\n },\n\n async createTopicHarvest(investigationId: string, investigationType: string, searchString: string,\n urlHarvest: boolean, forceStringHarvest: boolean, forceNormalize: boolean = false\n ): Promise {\n const urlPart = `${investigationType.toLowerCase()}/${investigationId}`\n await axios.post(`/api/investigations/${urlPart}/harvest/topic`,\n { searchString, urlHarvest, forceStringHarvest, forceNormalize })\n },\n\n async createHarvestByDocs(investigationId: string, investigationType: string, documentIds: string[]): Promise {\n const urlPart = `${investigationType.toLowerCase()}/${investigationId}`\n await axios.post(`/api/investigations/${urlPart}/harvest/by-documents`, { documentIds })\n },\n\n async createHarvestByDoiList(investigationId: string, investigationType: string, doiList: string[]): Promise {\n const urlPart = `${investigationType.toLowerCase()}/${investigationId}`\n await axios.post(`/api/investigations/${urlPart}/harvest/by-doi-list`, { doiList })\n },\n\n async createPersonHarvest(investigationId: string, investigationType: string, searchStrings: string[], searchType: SearchType): Promise {\n const urlPart = `${investigationType.toLowerCase()}/${investigationId}`\n await axios.post(`/api/investigations/${urlPart}/harvest/person`, { searchStrings, searchType })\n },\n\n async merge(investigationId: string, investigationType: InvestigationType): Promise {\n await axios.post(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/merge`)\n },\n\n async undoMerge(investigationId: string, investigationType: InvestigationType, personIds: string[]): Promise {\n await axios.post(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/merge/undo`, personIds)\n },\n\n async disambiguate(investigationId: string, investigationType: InvestigationType,\n irrelevantPersonIds: string[], relevantPersonIds: string[], neutralPersonIds: string[]): Promise {\n await axios.post(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/disambiguate`,\n { irrelevantPersonIds, relevantPersonIds, neutralPersonIds })\n },\n\n async undelete(investigationId: string, investigationType: InvestigationType): Promise {\n await axios.get(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/undelete`)\n },\n\n async getPersonDetails(investigationId: string, investigationType: InvestigationType, personId: string): Promise {\n const response = await axios.get(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/person-details/${personId}`)\n return response.data\n },\n\n async updatePersonDetails(investigationId: string, investigationType: InvestigationType, details: InvestigationPersonDetails): Promise {\n await axios.post(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/person-details/${details.id}`, details)\n },\n\n async preprocessPersonImage(investigationId: string, investigationType: InvestigationType, personId: string,\n imageData: ImageCropData | null, imageUrl: string | null): Promise {\n\n const formData = new FormData()\n if (imageData && imageData.file) {\n formData.set(\"file\", imageData.file)\n } else if (imageUrl) {\n // proceed even if imageData is unavailable (i.e. cropper ran into cross-origin violation)\n formData.set(\"imageUrl\", imageUrl)\n } else {\n // sending empty forms is apparently not allowed...\n formData.set(\"dummy\", \"\")\n }\n const response = await axios.post(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/person-details/${personId}/preprocess-image`, formData)\n return response.data\n },\n\n async updatePersonImage(investigationId: string, investigationType: InvestigationType, personId: string,\n imageData: ImageCropData | undefined, imageUrl: string | undefined): Promise {\n const formData = new FormData()\n if (imageData) {\n if (imageData.file) {\n formData.set(\"file\", imageData.file)\n formData.set(\"fileName\", imageData.file.name)\n }\n formData.set(\"imageData\", JSON.stringify(imageData))\n }\n if (imageUrl) {\n // proceed even if imageData is unavailable (i.e. cropper ran into cross-origin violation)\n formData.set(\"imageUrl\", imageUrl)\n }\n const response = await axios.post(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/person-details/${personId}/upload-image`, formData)\n return response.data as string\n },\n\n async markPersonReviewed(investigationId: string, investigationType: InvestigationType, personId: string): Promise {\n await axios.post(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/person-details/${personId}/reviewed`, {})\n },\n\n async clearPersonImage(investigationId: string, investigationType: InvestigationType, personId: string): Promise {\n await axios.post(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/person-details/${personId}/clear-image`, {})\n },\n\n async exportInvestigationToWord(id: string, investigationType: InvestigationType): Promise {\n const response = await axios.post(`/api/investigations/${investigationType.toLowerCase()}/${id}/observation/export-to-word`, {}, { responseType: \"arraybuffer\" })\n return new Blob([response.data])\n },\n\n async getMainClusterFilter(investigationId: string): Promise {\n const response = await axios.get(`/api/investigations/person/${investigationId}/main-cluster-filter`)\n return response.data as MainClusterFilterData\n },\n\n async getLastFilterData(investigationId: string): Promise {\n const response = await axios.get(`/api/investigations/${investigationId}/last-filter`)\n return response.data as InvestigationRequestSpec\n }\n\n}\n\nfunction convertToDocument(entity: any): DocumentEntity {\n return entity.date ? { ...entity, date: moment(entity.date) } : entity\n}\n\n\nexport interface ImageCropData {\n file: File | null,\n width: number,\n height: number,\n crop: { top: number, left: number, width: number, height: number }\n}\n","import axios from \"axios\"\nimport {InvestigationRequestSpec, SearchType} from \"@/types/investigations\"\n\nconst settings = { headers: { \"Content-Type\": \"application/json\" } }\n\nexport default {\n\n async export(investigationId: string, spec: InvestigationRequestSpec): Promise {\n const response = await axios.post(`/api/investigations/topic/${investigationId}/export`, spec, { responseType: \"arraybuffer\" })\n return new Blob([response.data])\n },\n\n async merge(investigationId: string): Promise {\n await axios.post(`/api/investigations/topic/${investigationId}/merge`)\n },\n\n async createPersonHarvests(investigationId: string, personNames: string[]): Promise {\n await axios.post(`/api/investigations/topic/${investigationId}/harvest/person`,\n { searchStrings: personNames, searchType: \"All\" })\n }\n}\n","import axios from \"axios\"\nimport {\n GenerateHtmlResponse,\n InvestigationEntity, InvestigationRequestSpec,\n InvestigationType,\n PersonSemanticAffinityEntity\n} from \"@/types/investigations\"\nimport moment from \"moment\"\n\nconst settings = { headers: { \"Content-Type\": \"application/json\" } }\n\nexport default {\n\n async export(investigationId: string, spec: InvestigationRequestSpec): Promise {\n const response = await axios.post(`/api/investigations/person/${investigationId}/export`, spec, { responseType: \"arraybuffer\" })\n return new Blob([response.data])\n },\n\n async createCorrelatedInvestigation(investigationId: string, personId: string, investigationType: InvestigationType): Promise {\n const response = await axios.post(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/correlated`, personId)\n const entity = response.data\n\n return { ...entity, createdOn: moment(entity.createdOn) } as InvestigationEntity\n },\n\n async getSemanticAffinity(investigationId: string, personId: string): Promise {\n const response = await axios.get(`/api/investigations/person/${investigationId}/semantic-affinity/${personId}`)\n return response.data.personSemanticAffinities\n },\n\n async exportHtml(investigationId: string, theme: string, filename: string): Promise {\n const response = await axios.get(\n `/api/investigations/person/${investigationId}/html?theme=${theme}&filename=${filename}`)\n return response.data as GenerateHtmlResponse\n }\n\n}\n","import { ActionContext } from \"vuex\"\nimport { RootState } from \"@/store\"\n\n\nexport function getInvestigationId(context: ActionContext, item: string): string {\n const investigation = context.rootState.investigation.investigation\n\n if (investigation == null) {\n throw Error(`Cannot fetch ${item} - no investigation selected`)\n }\n\n return investigation.id\n}\n","import axios from \"axios\"\nimport {InvestigationTermEntity, InvestigationTermGroupEntity, PredefinedTermGroupEntity, TermModifier} from \"@/types/investigations\"\n\n\nexport default {\n\n async addTerm(id: string, term: {term: string, modifier: TermModifier, group: string}): Promise {\n const response = await axios.post(`/api/investigations/topic/${id}/terms`, term)\n if (response) {\n return response.data as InvestigationTermEntity[]\n }\n },\n\n async moveTermToGroup(id: string, term: string, group: string): Promise {\n const response = await axios.patch(`/api/investigations/topic/${id}/terms/move-to-group`, { term, group })\n if (response) {\n return response.data as InvestigationTermEntity[]\n }\n },\n\n async modifyTerm(id: string, term: string, modifier: TermModifier): Promise {\n const response = await axios.patch(`/api/investigations/topic/${id}/terms/modify`, { term, modifier })\n if (response) {\n return response.data as InvestigationTermEntity[]\n }\n },\n\n async renameTerm(id: string, oldName: string, newName: string): Promise {\n const response = await axios.patch(`/api/investigations/topic/${id}/terms/rename`, { oldName, newName })\n if (response) {\n return response.data as InvestigationTermEntity[]\n }\n },\n\n async removeTerm(id: string, term: string): Promise {\n const response = await axios.delete(`/api/investigations/topic/${id}/terms`, {data: term})\n if (response) {\n return response.data\n }\n },\n\n async addBatchTerms(id: string, request: BatchTermsRequest): Promise {\n const response = await axios.post(`/api/investigations/topic/${id}/terms/batch`, request)\n if (response) {\n return response.data as InvestigationTermEntity[]\n }\n },\n\n async createGroup(id: string, name: string): Promise {\n const response = await axios.post(`/api/investigations/topic/${id}/terms/group`, name)\n if (response) {\n return response.data as InvestigationTermGroupEntity[]\n }\n },\n\n async renameGroup(id: string, group: InvestigationTermGroupEntity): Promise {\n const response = await axios.patch(`/api/investigations/topic/${id}/terms/group/rename`, group)\n if (response) {\n return response.data as InvestigationTermGroupEntity[]\n }\n },\n\n async deleteGroup(id: string, groupId: string): Promise {\n const response = await axios.delete(`/api/investigations/topic/${id}/terms/group/`, {data: groupId})\n if (response) {\n return response.data as InvestigationTermGroupEntity[]\n }\n },\n\n async modifyTermGroup(id: string, group: InvestigationTermGroupEntity): Promise {\n const response = await axios.patch(`/api/investigations/topic/${id}/terms/group/`, group)\n if (response) {\n return response.data as InvestigationTermGroupEntity[]\n }\n },\n\n async getPredefinedTermGroups(id: string): Promise {\n const response = await axios.get(`/api/investigations/topic/${id}/terms/predefined`)\n if (response) {\n return response.data as PredefinedTermGroupEntity[]\n }\n return []\n }\n}\n\n\nexport interface BatchTermsRequest {\n readonly groups: BatchTermsGroup[],\n readonly includeHarvests: boolean\n}\n\nexport interface BatchTermsGroup {\n readonly name: string,\n readonly terms: string[]\n}\n","import {\n InvestigationTermEntity,\n InvestigationTermGroupEntity,\n TermGroupModifier,\n TermModifier\n} from \"@/types/investigations\"\nimport {RootState} from \"..\"\nimport termsService, {BatchTermsRequest} from \"../../api/investigation/terms-service\"\nimport {getInvestigationId} from \"./get-investigation-id\"\nimport {ActionContext} from \"vuex\"\nimport {getStoreAccessors} from \"vuex-typescript\"\n\nexport const MAX_ALLOWED_TERMS = 350\n\nexport class SuggestedTerm {\n constructor(public term: string, public selected: boolean, public modifier: TermModifier, public group?: string) {}\n}\n\nexport interface TermsState {\n terms: InvestigationTermEntity[],\n termGroups: InvestigationTermGroupEntity[],\n suggestedTerms: SuggestedTerm[]\n}\n\nconst module = {\n getters: {\n getTerms(state: TermsState): InvestigationTermEntity[] {\n return state.terms\n },\n\n getTermGroups(state: TermsState): InvestigationTermGroupEntity[] {\n return state.termGroups\n },\n\n getSuggestedTerms(state: TermsState): SuggestedTerm[] {\n return state.suggestedTerms\n }\n },\n\n mutations: {\n setTerms(state: TermsState, terms: InvestigationTermEntity[]) {\n state.terms = terms\n },\n\n setTermGroups(state: TermsState, termGroups: InvestigationTermGroupEntity[]) {\n state.termGroups = termGroups\n },\n\n insertTerm(state: TermsState, term: InvestigationTermEntity) {\n state.terms.push(term)\n },\n\n updateTerm(state: TermsState, term: InvestigationTermEntity) {\n const termIndex = state.terms.findIndex(currentTerm => currentTerm.term === term.term)\n\n if (termIndex >= 0) {\n const newTerms = [...state.terms]\n newTerms.splice(termIndex, 1, term)\n state.terms = newTerms\n }\n },\n\n updateTermGroup(state: TermsState, group: InvestigationTermGroupEntity) {\n const groupIndex = state.termGroups.findIndex(currentGroup => currentGroup.id === group.id)\n\n if (groupIndex >= 0) {\n state.termGroups.splice(groupIndex, 1, group)\n }\n },\n\n deleteTerm(state: TermsState, term: string) {\n const termIndex = state.terms.findIndex(currentTerm => currentTerm.term === term)\n\n if (termIndex >= 0) {\n state.terms.splice(termIndex, 1)\n }\n },\n\n setSuggestedTerms(state: TermsState, suggestedTerms: string[]) {\n state.suggestedTerms = suggestedTerms.map(term => new SuggestedTerm(term, false, \"Regular\", undefined))\n },\n\n removeSuggestedTerm(state: TermsState, suggestedTerm: string) {\n const termIndex = state.suggestedTerms.findIndex(term => term.term === suggestedTerm)\n if (termIndex > -1) {\n state.suggestedTerms.splice(termIndex, 1)\n }\n },\n\n updateSuggestedTerm(state: TermsState, payload: {term: string, selected: boolean, group?: string, modifier: TermModifier}) {\n const {term, selected, group, modifier} = payload\n const selectedTerm = state.suggestedTerms.find(suggestedTerm => suggestedTerm.term === term)\n if (selectedTerm) {\n if (selected !== undefined) { selectedTerm.selected = selected }\n selectedTerm.group = group\n selectedTerm.modifier = modifier\n }\n }\n },\n\n actions: {\n async addTerm(context: ActionContext, term: {term: string, modifier: TermModifier, group: string}): Promise {\n const oldTerms = getTerms(context)\n const newTerm: InvestigationTermEntity = {...term}\n const newTerms = oldTerms.concat(newTerm).sort((a, b) => a.term.localeCompare(b.term))\n setTerms(context, newTerms)\n const result = await termsService.addTerm(getInvestigationId(context, \"add term\"), term)\n if (result) {\n removeSuggestedTerm(context, term.term)\n } else {\n setTerms(context, oldTerms)\n }\n },\n\n async addTermFromText(context: ActionContext, payload: {term: string, modifier: TermModifier, group: string}): Promise {\n await addTerm(context, payload)\n },\n\n\n async addBatchTerms(context: ActionContext, payload: BatchTermsRequest): Promise {\n const oldGroups = getTermGroups(context)\n const oldGroupsLowerCase = oldGroups.map(it => it.name.toLowerCase())\n const oldTerms = getTerms(context)\n const oldTermsLowerCase = oldTerms.map(term => term.term.toLowerCase())\n\n let lastGroupColor = parseInt(oldGroups[oldGroups.length - 1].color, 10)\n const batchGroups: InvestigationTermGroupEntity[] = payload.groups\n .filter(group => !oldGroupsLowerCase.includes(group.name.toLowerCase()))\n .map(group => {\n lastGroupColor = lastGroupColor % 10 + 1\n return {id: group.name, name: group.name, color: lastGroupColor.toString(), modifier: \"Regular\"} as InvestigationTermGroupEntity\n })\n const newGroups = oldGroups.concat(batchGroups)\n\n const batchTerms: InvestigationTermEntity[] = payload.groups\n .flatMap(group => {\n return group.terms.map(term => {\n return ({term, modifier: \"Regular\", group: newGroups.find(it => it.name === group.name)!!.id} as InvestigationTermEntity)\n })\n })\n .filter(term => !oldTermsLowerCase.includes(term.term.toLowerCase()))\n\n const newTerms = oldTerms.concat(batchTerms).sort((a, b) => a.term.localeCompare(b.term))\n\n setTermGroups(context, newGroups)\n setTerms(context, newTerms)\n\n const result = await termsService.addBatchTerms(getInvestigationId(context, \"add term\"), payload)\n if (!result) {\n setTerms(context, oldTerms)\n setTermGroups(context, oldGroups)\n }\n },\n\n async createTermGroup(context: ActionContext, name: string): Promise {\n const oldGroups = getTermGroups(context)\n const lastGroupColor = oldGroups[oldGroups.length - 1].color\n const color = lastGroupColor === \"10\" ? \"1\" : (parseInt(lastGroupColor, 10) + 1).toString()\n const modifier: TermGroupModifier = \"Regular\"\n const createdGroup: InvestigationTermGroupEntity = {id: \"\", name, color, modifier}\n setTermGroups(context, [...oldGroups, createdGroup])\n const result = await termsService.createGroup(getInvestigationId(context, \"create group\"), name)\n setTermGroups(context, result ? result : oldGroups)\n },\n\n async renameTermGroup(context: ActionContext, group: InvestigationTermGroupEntity): Promise {\n const oldGroups = getTermGroups(context)\n updateTermGroup(context, group)\n const result = await termsService.renameGroup(getInvestigationId(context, \"rename group\"), group)\n if (!result) {\n setTermGroups(context, oldGroups)\n }\n },\n\n async deleteTermGroup(context: ActionContext, group: InvestigationTermGroupEntity): Promise {\n const terms = getTerms(context).filter(term => group.id === term.group)\n\n const result = await termsService.deleteGroup(getInvestigationId(context, \"delete group\"), group.id)\n if (result) {\n setTermGroups(context, result)\n terms.forEach(term => deleteTerm(context, term.term))\n }\n },\n\n async modifyTermGroup(context: ActionContext, group: InvestigationTermGroupEntity): Promise {\n const investigationId = getInvestigationId(context, \"modify term group\")\n const oldTermGroup = getTermGroups(context).find(currentTermGroup => currentTermGroup.id === group.id)!\n updateTermGroup(context, group)\n const result = await termsService.modifyTermGroup(investigationId, group)\n if (!result) {\n updateTermGroup(context, oldTermGroup)\n }\n },\n\n async moveToGroup(context: ActionContext, payload: {term: string, group: string}): Promise {\n const {term, group} = payload\n const investigationId = getInvestigationId(context, \"move term to group\")\n const oldTerm = getTerms(context).find(currentTerm => currentTerm.term === term)!\n const {modifier} = oldTerm\n const newTerm: InvestigationTermEntity = {term, modifier, group}\n updateTerm(context, newTerm)\n const result = await termsService.moveTermToGroup(investigationId, term, group)\n if (!result) {\n updateTerm(context, oldTerm)\n }\n },\n\n async modifyTerm(context: ActionContext, { term, modifier, group }: InvestigationTermEntity): Promise {\n const investigationId = getInvestigationId(context, \"modify term\")\n const oldTerm = getTerms(context).find(currentTerm => currentTerm.term === term)!\n const newTerm: InvestigationTermEntity = {term, modifier, group}\n updateTerm(context, newTerm)\n const result = await termsService.modifyTerm(investigationId, term, modifier)\n if (!result) {\n updateTerm(context, oldTerm)\n }\n },\n\n async renameTerm(context: ActionContext, payload: { oldTerm: InvestigationTermEntity, newName: string }): Promise {\n const { oldTerm, newName } = payload\n const investigationId = getInvestigationId(context, \"rename term\")\n const oldTerms = getTerms(context)\n const oldTermIdx = oldTerms.indexOf(oldTerm)\n const newTermObj: InvestigationTermEntity = {term: newName, modifier: oldTerm.modifier, group: oldTerm.group}\n\n const newTerms = [...oldTerms]\n newTerms.splice(oldTermIdx, 1, newTermObj)\n setTerms(context, newTerms)\n\n const result = await termsService.renameTerm(investigationId, oldTerm.term, newName)\n if (!result) {\n setTerms(context, oldTerms)\n }\n },\n\n async removeTerm(context: ActionContext, term: string): Promise {\n const oldTerms = getTerms(context)\n deleteTerm(context, term)\n const result = await termsService.removeTerm(getInvestigationId(context, \"delete term\"), term)\n if (!result) {\n setTerms(context, oldTerms)\n }\n }\n }\n}\n\n\nexport default module\n\n\nconst { read, commit, dispatch } = getStoreAccessors(\"investigation\")\n\nexport const getTerms = read(module.getters.getTerms)\nexport const getTermGroups = read(module.getters.getTermGroups)\nexport const getSuggestedTerms = read(module.getters.getSuggestedTerms)\nexport const addTerm = dispatch(module.actions.addTerm)\nexport const addTermFromText = dispatch(module.actions.addTermFromText)\nexport const modifyTerm = dispatch(module.actions.modifyTerm)\nexport const renameTerm = dispatch(module.actions.renameTerm)\nexport const moveToGroup = dispatch(module.actions.moveToGroup)\nexport const removeTerm = dispatch(module.actions.removeTerm)\nexport const addBatchTerms = dispatch(module.actions.addBatchTerms)\n\nexport const createTermGroup = dispatch(module.actions.createTermGroup)\nexport const renameTermGroup = dispatch(module.actions.renameTermGroup)\nexport const deleteTermGroup = dispatch(module.actions.deleteTermGroup)\nexport const modifyTermGroup = dispatch(module.actions.modifyTermGroup)\n\nexport const setTerms = commit(module.mutations.setTerms)\nexport const setTermGroups = commit(module.mutations.setTermGroups)\nconst removeSuggestedTerm = commit(module.mutations.removeSuggestedTerm)\nexport const setSuggestedTerms = commit(module.mutations.setSuggestedTerms)\nexport const updateSuggestedTerm = commit(module.mutations.updateSuggestedTerm)\nconst deleteTerm = commit(module.mutations.deleteTerm)\nconst updateTerm = commit(module.mutations.updateTerm)\nconst updateTermGroup = commit(module.mutations.updateTermGroup)\n","import axios from \"axios\"\n\n\nexport default {\n\n async updateDocumentImage(investigationId: string, documentId: string,\n imageType: string, file: File | null, journalImage: boolean): Promise {\n const formData = new FormData()\n formData.set(\"file\", file!)\n formData.set(\"fileName\", file!.name)\n formData.set(\"journalImage\", journalImage.toString())\n const response = await axios.post(`/api/investigations/${investigationId}/documents/${documentId}/image/${imageType}`, formData)\n return response.data as string\n },\n\n async clearDocumentImage(investigationId: string, documentId: string, imageType: string): Promise {\n await axios.delete(`/api/investigations/${investigationId}/documents/${documentId}/image/${imageType}`)\n },\n\n async updateFullTextFile(investigationId: string, documentId: string, file: File): Promise {\n const formData = new FormData()\n formData.set(\"file\", file)\n\n const response = await axios.post(`/api/investigations/${investigationId}/documents/${documentId}/full-text`, formData)\n return response.data as string\n }\n}\n","import {\n DocumentEntity,\n DocumentMarkupsEntity,\n DocumentOverwrites,\n DocumentStatusEntity,\n InvestigationAuthor,\n InvestigationType,\n Relevancy,\n TopExpansion,\n TopSort\n} from \"@/types/investigations\"\nimport {RootState} from \"..\"\nimport {getInvestigationId} from \"./get-investigation-id\"\nimport investigationService from \"@/api/investigation-service\"\nimport InvestigationService from \"@/api/investigation-service\"\nimport {ActionContext} from \"vuex\"\nimport {getStoreAccessors} from \"vuex-typescript\"\nimport {\n getAvailableDocumentIds,\n getDocumentLabels,\n getTopLabels,\n InvestigationState,\n setDocumentLabels,\n setTopLabels\n} from \"@/store/investigation/investigation-module\"\nimport moment from \"moment\"\nimport investigationDocumentService from \"@/api/investigation-document-service\"\n\n\nconst module = {\n getters: {\n getDocumentMarkups(state: InvestigationState): DocumentMarkupsEntity[] {\n return state.documentMarkups\n },\n\n getDocuments(state: InvestigationState): DocumentEntity[] {\n return state.documents\n },\n\n getViewModeLevel(state: InvestigationState): number {\n return state.viewModeLevel\n },\n\n getHighlightModes(state: InvestigationState): string[] {\n return state.highlightModes\n },\n\n getTopsExpansion(state: InvestigationState): {[key: string]: boolean} {\n return state.topsExpansion\n },\n\n getGroupsExpansion(state: InvestigationState): {[key: string]: boolean} {\n return state.groupsExpansion\n },\n\n getTopsSorting(state: InvestigationState): {[key: string]: boolean | undefined} {\n return state.topsSorting\n }\n },\n\n mutations: {\n setDocuments(state: InvestigationState, documents: DocumentEntity[]) {\n state.documents = documents\n },\n\n setDocumentMarkups(state: InvestigationState, documentMarkups: DocumentMarkupsEntity[]) {\n state.documentMarkups = documentMarkups\n },\n\n setDocumentStatus(state: InvestigationState, documentStatus: DocumentStatusEntity) {\n const index = state.documents.findIndex(it => it.id === documentStatus.id)\n\n if (index >= 0) {\n const originalDocument = state.documents[index]\n state.documents.splice(index, 1, { ...originalDocument, ...documentStatus })\n }\n },\n\n setDocument(state: InvestigationState, document: DocumentEntity) {\n const index = state.documents.findIndex(it => it.id === document.id)\n\n if (index >= 0) {\n state.documents.splice(index, 1, document)\n }\n },\n\n updateDocumentId(state: InvestigationState, payload: {oldId: string, newId: string}) {\n const document = state.documents.find(it => it.id === payload.oldId)\n\n if (document) {\n document.id = payload.newId\n }\n },\n\n setViewModeLevel(state: InvestigationState, level: number) {\n state.viewModeLevel = level\n localStorage.setItem(\"viewModeLevel\", level.toString())\n },\n\n setHighlightModes(state: InvestigationState, level: string[]) {\n state.highlightModes = level\n },\n\n setTopExpanded(state: InvestigationState, expanded: TopExpansion) {\n const {type, isExpanded} = expanded\n const newTopsExpansion = {...state.topsExpansion}\n newTopsExpansion[type] = isExpanded\n state.topsExpansion = newTopsExpansion\n },\n\n setGroupsExpansion(state: InvestigationState, expansion: {[key: string]: boolean}) {\n state.groupsExpansion = expansion\n },\n\n setTopSorting(state: InvestigationState, sortedByRelevant: TopSort) {\n const {type, isSortedByRelevant} = sortedByRelevant\n state.topsSorting = {...state.topsSorting}\n state.topsSorting[type] = isSortedByRelevant\n },\n\n clearTopsSorting(state: InvestigationState) {\n state.topsSorting = {}\n },\n\n clearTopsExpansion(state: InvestigationState) {\n state.topsExpansion = {}\n },\n\n clearGroupsExpansion(state: InvestigationState) {\n state.groupsExpansion = {}\n },\n\n setDocumentImageId(state: InvestigationState, sortedByRelevant: TopSort) {\n const {type, isSortedByRelevant} = sortedByRelevant\n state.topsSorting = {...state.topsSorting}\n state.topsSorting[type] = isSortedByRelevant\n },\n\n updateDocumentLabelInInvestigation(state: InvestigationState, payload: {oldLabel: string, newLabel: string}) {\n const {oldLabel, newLabel} = payload\n const labelIndex = state.documentLabels.findIndex(currentLabel => oldLabel.toLocaleLowerCase() === currentLabel.toLocaleLowerCase())\n\n if (labelIndex > -1) {\n state.documentLabels.splice(labelIndex, 1, newLabel)\n }\n },\n\n deleteDocumentLabelFromInvestigation(state: InvestigationState, label: string) {\n const labelIndex = state.documentLabels.findIndex(currentLabel => label.toLocaleLowerCase() === currentLabel.toLocaleLowerCase())\n\n if (labelIndex > -1) {\n state.documentLabels.splice(labelIndex, 1)\n }\n }\n },\n\n actions: {\n async setDocumentRelevancy(context: ActionContext, { id, relevancy, investigationType, mainTerms }: { id: string, relevancy: Relevancy, investigationType: InvestigationType, mainTerms: string[] }): Promise {\n const original = {...getDocument(context, id)}\n setDocumentStatus(context, { id, relevancy, touched: true, starred: original.starred })\n\n try {\n const updatedStatus = await investigationService.setDocumentRelevancy(getInvestigationId(context, \"set document starred\"), id, relevancy, investigationType, mainTerms)\n if (updatedStatus) {\n setDocumentStatus(context, updatedStatus)\n }\n\n } catch (e) {\n setDocumentStatus(context, { id, relevancy: original.relevancy, touched: original.touched, starred: original.starred })\n }\n },\n\n async setDocumentStarred(context: ActionContext, { id, starred, investigationType }: { id: string, starred: boolean, investigationType: InvestigationType }): Promise {\n const original = {...getDocument(context, id)}\n setDocumentStatus(context, { id, relevancy: original.relevancy, touched: true, starred })\n\n try {\n const updatedStatus = await investigationService.setDocumentStarred(getInvestigationId(context, \"set document starred\"), id, starred, investigationType)\n if (updatedStatus) {\n setDocumentStatus(context, updatedStatus)\n }\n\n } catch (e) {\n setDocumentStatus(context, { id, relevancy: original.relevancy, touched: original.touched, starred })\n }\n },\n\n async setDocumentRead(context: ActionContext, {id, investigationType}: { id: string, investigationType: InvestigationType }): Promise {\n const original = {...getDocument(context, id)}\n setDocumentStatus(context, { id, relevancy: \"Neutral\", touched: true })\n\n try {\n const updatedStatus = await investigationService.setDocumentRelevancy(getInvestigationId(context, \"set document visited\"), id, \"Neutral\", investigationType, [])\n if (updatedStatus) {\n setDocumentStatus(context, updatedStatus)\n }\n\n } catch (e) {\n setDocumentStatus(context, { id, relevancy: original.relevancy, touched: original.touched })\n }\n },\n\n async setDocumentNote(context: ActionContext, { id, note, investigationType }: { id: string, note?: string, investigationType: InvestigationType }): Promise {\n const original = {...getDocument(context, id)}\n setDocumentStatus(context, { id, note, touched: true })\n\n try {\n const updatedStatus = await investigationService.setDocumentNote(getInvestigationId(context, \"set document note\"), id, investigationType, note)\n if (updatedStatus) {\n setDocumentStatus(context, updatedStatus)\n }\n\n } catch (e) {\n setDocumentStatus(context, { id, note: original.note, touched: original.touched })\n }\n },\n\n async addDocumentLabel(context: ActionContext, payload: {label: string, document: DocumentEntity, investigationType: InvestigationType}): Promise {\n const {document, label, investigationType} = payload\n const oldDocument = {...document}\n const oldLabels = [...getDocumentLabels(context)]\n if (document.labels.find(documentLabel => documentLabel.toLocaleLowerCase() === label.toLocaleLowerCase()) === undefined) {\n document.labels.push(label)\n }\n if (oldLabels.find(oldLabel => oldLabel.toLocaleLowerCase() === label.toLocaleLowerCase()) === undefined) {\n const newLabels = [...oldLabels, label]\n setDocumentLabels(context, newLabels)\n }\n setDocument(context, document)\n\n const result = await investigationService.addDocumentLabel(getInvestigationId(context, \"add label\"), document.id, label, investigationType)\n if (!result) {\n setDocument(context, oldDocument)\n setDocumentLabels(context, oldLabels)\n }\n },\n\n async removeDocumentLabel(context: ActionContext, payload: {label: string, document: DocumentEntity, investigationType: InvestigationType}): Promise {\n const {document, label, investigationType} = payload\n const oldDocument = {...document}\n const labelIndex = document.labels.findIndex(documentLabel => documentLabel.toLocaleLowerCase() === label.toLocaleLowerCase())\n if (labelIndex > -1) {\n document.labels.splice(labelIndex, 1)\n }\n setDocument(context, document)\n\n const result = await investigationService.removeDocumentLabel(getInvestigationId(context, \"remove label\"), document.id, label, investigationType)\n if (!result) {\n setDocument(context, oldDocument)\n }\n return !!result\n },\n\n async renameDocumentLabel(context: ActionContext, payload: {oldLabel: string, newLabel: string, investigationType: InvestigationType}): Promise {\n const {oldLabel, newLabel, investigationType} = payload\n const oldLabels = [...getDocumentLabels(context)]\n updateDocumentLabelInInvestigation(context, {oldLabel, newLabel})\n const oldTopLabels = [...getTopLabels(context)]\n const newTopLabels = [...oldTopLabels]\n const topLabel = newTopLabels.find(newTopLabel => newTopLabel.name.toLocaleLowerCase() === oldLabel.toLocaleLowerCase())\n if (topLabel) { topLabel.name = newLabel }\n setTopLabels(context, newTopLabels)\n const oldDocuments = [...getDocuments(context)]\n const newDocuments = [...oldDocuments]\n newDocuments.forEach(newDocument => {\n const labelIndex = newDocument.labels.findIndex(documentLabel => oldLabel.toLocaleLowerCase() === documentLabel.toLocaleLowerCase())\n\n if (labelIndex > -1) {\n newDocument.labels.splice(labelIndex, 1, newLabel)\n }\n })\n setDocuments(context, newDocuments)\n\n const result = await investigationService.renameDocumentLabel(getInvestigationId(context, \"rename label\"), {oldLabel, newLabel}, investigationType)\n if (!result) {\n setDocumentLabels(context, oldLabels)\n setTopLabels(context, oldTopLabels)\n setDocuments(context, oldDocuments)\n }\n },\n\n async deleteDocumentLabel(context: ActionContext, payload: {label: string, investigationType: InvestigationType}): Promise {\n const {label, investigationType} = payload\n const oldLabels = [...getDocumentLabels(context)]\n deleteDocumentLabelFromInvestigation(context, label)\n\n const oldDocuments = [...getDocuments(context)]\n const newDocuments = [...oldDocuments]\n newDocuments.forEach(document => {\n const labelIndex = document.labels.findIndex(currentLabel => label.toLocaleLowerCase() === currentLabel.toLocaleLowerCase())\n\n if (labelIndex > -1) {\n document.labels.splice(labelIndex, 1)\n }\n })\n setDocuments(context, newDocuments)\n\n const oldTopLabels = [...getTopLabels(context)]\n const newTopLabels = [...oldTopLabels]\n const topLabelIndex = newTopLabels.findIndex(topLabel => label.toLocaleLowerCase() === topLabel.name.toLocaleLowerCase())\n\n if (topLabelIndex > -1) {\n newTopLabels.splice(topLabelIndex, 1)\n }\n setTopLabels(context, newTopLabels)\n\n const result = await investigationService.deleteDocumentLabel(getInvestigationId(context, \"delete label\"), label, investigationType)\n if (!result) {\n setDocumentLabels(context, oldLabels)\n setTopLabels(context, oldTopLabels)\n setDocuments(context, oldDocuments)\n }\n },\n\n async bulkMarkRead(context: ActionContext, investigationType: InvestigationType): Promise {\n const investigationId = getInvestigationId(context, \"bulk-mark-read\")\n const docIds = getAvailableDocumentIds(context)\n await investigationService.bulkMarkRead(investigationId, investigationType, docIds)\n },\n\n async bulkApplyDocumentLabel(context: ActionContext, payload: {label: string, add: boolean, investigationType: InvestigationType}): Promise {\n const { label, add, investigationType } = payload\n const investigationId = getInvestigationId(context, \"bulk-apply-label\")\n const docIds = getAvailableDocumentIds(context)\n await investigationService.bulkApplyDocumentLabel(investigationId, investigationType, label, add, docIds)\n },\n\n async updateDocumentCoverImage(context: ActionContext,\n payload: {id: string, file: File | null, journalImage: boolean}): Promise {\n const doc = {...getDocument(context, payload.id)}\n const investigation = context.rootState.investigation.investigation!!\n\n if (payload.file) {\n doc.coverImageId = await investigationDocumentService.updateDocumentImage(\n investigation.id, payload.id, \"cover\", payload.file, payload.journalImage)\n\n doc.journalImage = payload.journalImage\n } else {\n await investigationDocumentService.clearDocumentImage(investigation.id, payload.id, \"cover\")\n doc.coverImageId = null\n doc.journalImage = false\n }\n\n setDocument(context, doc)\n },\n\n async updateDocumentAbstractImage(context: ActionContext,\n payload: {id: string, file: File | null}): Promise {\n const doc = {...getDocument(context, payload.id)}\n const investigation = context.rootState.investigation.investigation!!\n\n if (payload.file) {\n doc.abstractImageId = await investigationDocumentService.updateDocumentImage(\n investigation.id, payload.id, \"abstract\", payload.file, false)\n } else {\n await investigationDocumentService.clearDocumentImage(investigation.id, payload.id, \"abstract\")\n doc.abstractImageId = null\n }\n\n setDocument(context, doc)\n },\n\n async updateFullTextFile(context: ActionContext, payload: { id: string, file: File }): Promise {\n const doc = {...getDocument(context, payload.id)}\n const investigation = context.rootState.investigation.investigation!!\n\n doc.fullTextUrl = await investigationDocumentService.updateFullTextFile(investigation.id, payload.id, payload.file)\n setDocument(context, doc)\n },\n\n async createDocument(context: ActionContext, payload: { documentType: string, overwrites: DocumentOverwrites }): Promise {\n const pubType = payload.documentType === \"Article\" ?\n payload.overwrites.publicationType : payload.documentType\n const doc = {\n id: \"-1\",\n url: payload.overwrites.url,\n fullTextUrl: payload.overwrites.fullTextUrl,\n title: {text: payload.overwrites.title, markups: []},\n abstract: {text: payload.overwrites.text, markups: []},\n type: payload.documentType,\n publicationType: pubType,\n classification: pubType,\n terms: [],\n authors: payload.overwrites.authors ? payload.overwrites.authors.map(author => ({\n id: author.id, name: author.name, affiliations: [], imageId: author.imageId,\n universityProfileUrl: author.universityProfileUrl, lastReviewTime: null\n }) as InvestigationAuthor) : [],\n keywords: [],\n snippets: {text: \"\", markups: []},\n labels: [],\n journal: payload.overwrites.publishedIn === \"\" ? null : payload.overwrites.publishedIn\n } as unknown as DocumentEntity\n\n if (payload.overwrites.date === \"\") {\n doc.date = undefined\n doc.datePrecision = undefined\n } else if (payload.overwrites.date) {\n doc.date = moment(payload.overwrites.date)\n doc.datePrecision = datePrecisionBasedOnTextDate(payload.overwrites.date)\n }\n\n setDocuments(context, [doc, ...getDocuments(context)])\n\n const investigation = context.rootState.investigation.investigation!!\n const newDocumentId = await InvestigationService.createDocument(investigation.id, investigation.investigationType, payload.documentType, payload.overwrites)\n\n doc.id = newDocumentId\n updateDocumentId(context, { oldId: doc.id, newId: newDocumentId })\n\n return newDocumentId\n },\n\n async updateDocument(context: ActionContext, payload: { id: string, overwrites: DocumentOverwrites }): Promise {\n const doc = { ...getDocument(context, payload.id) }\n const ow = payload.overwrites\n doc.title = { text: ow.title || doc.title.text, markups: [] }\n doc.abstract = { text: ow.text === \"\" ? \"\" : (ow.text || doc.abstract.text), markups: [] }\n doc.volume = ow.volume === \"\" ? null : (ow.volume || doc.volume)\n doc.issue = ow.issue === \"\" ? null : (ow.issue || doc.issue)\n doc.firstPage = ow.firstPage === \"\" ? null : (ow.firstPage || doc.firstPage)\n doc.lastPage = ow.lastPage === \"\" ? null : (ow.lastPage || doc.lastPage)\n doc.publisher = ow.publisher === \"\" ? null : (ow.publisher || doc.publisher)\n doc.publicationType = ow.publicationType || doc.publicationType\n if (doc.type === \"Article\") {\n doc.classification = doc.publicationType!!\n }\n doc.doi = ow.doi === \"\" ? null : (ow.doi || doc.doi)\n doc.fullTextUrl = ow.fullTextUrl === \"\" ? null : (ow.fullTextUrl || doc.fullTextUrl)\n doc.url = ow.url || doc.url\n doc.authors = ow.authors ?\n ow.authors.map(it => ({\n id: it.id, name: it.name, affiliations: it.affiliations, imageId: it.imageId,\n universityProfileUrl: it.universityProfileUrl, lastReviewTime: it.lastReviewTime\n })) : doc.authors\n doc.journal = ow.publishedIn === \"\" ? null : (ow.publishedIn || doc.journal)\n\n if (ow.date === \"\") {\n doc.date = undefined\n doc.datePrecision = undefined\n } else if (ow.date) {\n doc.date = moment(ow.date)\n doc.datePrecision = datePrecisionBasedOnTextDate(ow.date)\n }\n\n setDocument(context, doc)\n\n const investigation = context.rootState.investigation.investigation!!\n await InvestigationService.updateDocument(investigation.id, investigation.investigationType, payload.id, payload.overwrites)\n }\n }\n}\n\nexport default module\n\nconst {read, commit, dispatch} = getStoreAccessors(\"investigation\")\n\nexport const getDocumentMarkups = read(module.getters.getDocumentMarkups)\nexport const getDocuments = read(module.getters.getDocuments)\nexport const getViewModeLevel = read(module.getters.getViewModeLevel)\nexport const getHighlightModes = read(module.getters.getHighlightModes)\nexport const getTopsExpansion = read(module.getters.getTopsExpansion)\nexport const getTopsSorting = read(module.getters.getTopsSorting)\n\nconst setDocument = commit(module.mutations.setDocument)\nconst updateDocumentId = commit(module.mutations.updateDocumentId)\nexport const setDocuments = commit(module.mutations.setDocuments)\nexport const setDocumentMarkups = commit(module.mutations.setDocumentMarkups)\nexport const setDocumentStatus = commit(module.mutations.setDocumentStatus)\nexport const setViewModeLevel = commit(module.mutations.setViewModeLevel)\nexport const setHighlightModes = commit(module.mutations.setHighlightModes)\nexport const setTopExpanded = commit(module.mutations.setTopExpanded)\nexport const setTopSorting = commit(module.mutations.setTopSorting)\nexport const clearTopsExpansion = commit(module.mutations.clearTopsExpansion)\nexport const clearTopsSorting = commit(module.mutations.clearTopsSorting)\nexport const getGroupsExpansion = read(module.getters.getGroupsExpansion)\nexport const setGroupsExpansion = commit(module.mutations.setGroupsExpansion)\nexport const clearGroupsExpansion = commit(module.mutations.clearGroupsExpansion)\n\n\nexport const setDocumentRelevancy = dispatch(module.actions.setDocumentRelevancy)\nexport const setDocumentStarred = dispatch(module.actions.setDocumentStarred)\nexport const setDocumentRead = dispatch(module.actions.setDocumentRead)\nexport const setDocumentNote = dispatch(module.actions.setDocumentNote)\nexport const addDocumentLabel = dispatch(module.actions.addDocumentLabel)\nexport const removeDocumentLabel = dispatch(module.actions.removeDocumentLabel)\nexport const renameDocumentLabel = dispatch(module.actions.renameDocumentLabel)\nexport const deleteDocumentLabel = dispatch(module.actions.deleteDocumentLabel)\nexport const bulkApplyDocumentLabel = dispatch(module.actions.bulkApplyDocumentLabel)\nexport const bulkMarkRead = dispatch(module.actions.bulkMarkRead)\nexport const updateDocumentCoverImage = dispatch(module.actions.updateDocumentCoverImage)\nexport const updateDocumentAbstractImage = dispatch(module.actions.updateDocumentAbstractImage)\nexport const updateFullTextFile = dispatch(module.actions.updateFullTextFile)\nexport const createDocument = dispatch(module.actions.createDocument)\nexport const updateDocument = dispatch(module.actions.updateDocument)\nconst updateDocumentLabelInInvestigation = commit(module.mutations.updateDocumentLabelInInvestigation)\nconst deleteDocumentLabelFromInvestigation = commit(module.mutations.deleteDocumentLabelFromInvestigation)\n\nexport function getDocument(context: ActionContext, id: string): DocumentEntity {\n const documents = context.rootState.investigation.documents\n return documents.filter((document: DocumentEntity) => document.id === id)[0]\n}\n\nfunction datePrecisionBasedOnTextDate(date?: string): string | undefined {\n if (!date) {\n return undefined\n }\n\n switch (date.split(\"-\").length) {\n case 2:\n return \"MonthYear\"\n\n case 3:\n return \"DayMonthYear\"\n }\n\n return \"Year\"\n}\n","import {RootState} from \"..\"\nimport {getStoreAccessors} from \"vuex-typescript\"\nimport {getMentionedEntityLabels, InvestigationState, setMentionedEntityLabels} from \"@/store/investigation/investigation-module\"\nimport {GraphEntity, GraphNodeEntity, GraphType, InvestigationTermEntity, InvestigationTermGroupEntity, InvestigationType, MentionedEntity, TimelineChartData} from \"@/types/investigations\"\nimport {ActionContext} from \"vuex\"\nimport investigationService from \"@/api/investigation-service\"\nimport {getInvestigationId} from \"@/store/investigation/get-investigation-id\"\n\n\nconst module = {\n getters: {\n getGraph(state: InvestigationState): GraphEntity {\n return state.graph\n },\n\n getTimeline(state: InvestigationState): TimelineChartData {\n return state.timeline\n },\n\n getExternalSeries(state: InvestigationState): string[] {\n return state.externalSeries\n },\n\n getGraphType(state: InvestigationState): GraphType {\n return state.graphType\n }\n },\n\n mutations: {\n setGraph(state: InvestigationState, graph: GraphEntity) {\n state.graph = graph\n },\n\n setTimeline(state: InvestigationState, timeline: TimelineChartData) {\n state.timeline = timeline\n },\n\n setExternalSeries(state: InvestigationState, externalSeries: string[]) {\n state.externalSeries = externalSeries\n },\n\n setGraphType(state: InvestigationState, graphType: GraphType) {\n state.graphType = graphType\n },\n\n updateMentionedEntityLabelInInvestigation(state: InvestigationState, payload: {oldLabel: string, newLabel: string}) {\n const {oldLabel, newLabel} = payload\n const labelIndex = state.entityLabels.findIndex(currentLabel => oldLabel.toLocaleLowerCase() === currentLabel.toLocaleLowerCase())\n\n if (labelIndex > -1) {\n state.entityLabels.splice(labelIndex, 1, newLabel)\n }\n },\n\n deleteMentionedEntityLabelFromInvestigation(state: InvestigationState, label: string) {\n const labelIndex = state.entityLabels.findIndex(currentLabel => label.toLocaleLowerCase() === currentLabel.toLocaleLowerCase())\n\n if (labelIndex > -1) {\n state.entityLabels.splice(labelIndex, 1)\n }\n },\n\n removeGraphNodes(state: InvestigationState, nodeIds: string[]) {\n state.graph = {\n ...state.graph,\n nodes: state.graph.nodes.filter(node => !nodeIds.includes(node.id))\n }\n }\n },\n\n actions: {\n async toggleTimelineTermGroup(context: ActionContext, termGroup: InvestigationTermGroupEntity): Promise {\n const timeline = getTimeline(context)\n const newTermGroups = addOrRemoveItemFromList(termGroup.name, timeline.selectedTermGroups)\n\n setTimeline(context, {chartEntity: timeline.chartEntity, selectedTermGroups: newTermGroups, selectedTerms: timeline.selectedTerms, selectedExternalSeries: timeline.selectedExternalSeries})\n },\n\n async toggleTimelineTerm(context: ActionContext, term: InvestigationTermEntity): Promise {\n const timeline = getTimeline(context)\n const newTerms = addOrRemoveItemFromList(term.term, timeline.selectedTerms)\n setTimeline(context, {chartEntity: timeline.chartEntity, selectedTermGroups: timeline.selectedTermGroups, selectedTerms: newTerms, selectedExternalSeries: timeline.selectedExternalSeries})\n },\n\n async toggleTimelineExternalSeries(context: ActionContext, externalSeries: string): Promise {\n const timeline = getTimeline(context)\n const newExternalSeries = timeline.selectedExternalSeries === externalSeries ? null : externalSeries\n setTimeline(context, {chartEntity: timeline.chartEntity, selectedTermGroups: timeline.selectedTermGroups, selectedTerms: timeline.selectedTerms, selectedExternalSeries: newExternalSeries})\n },\n\n async addMentionedEntityLabel(context: ActionContext, payload: {label: string, entity: MentionedEntity, investigationType: InvestigationType}): Promise {\n const {entity, label, investigationType} = payload\n const oldEntity = {...entity}\n const oldLabels = [...getMentionedEntityLabels(context)]\n if (!entity.labels.some(entityLabel => entityLabel.toLocaleLowerCase() === label.toLocaleLowerCase())) {\n entity.labels.push(label)\n }\n if (!oldLabels.some(oldLabel => oldLabel.toLocaleLowerCase() === label.toLocaleLowerCase())) {\n const newLabels = [...oldLabels, label]\n setMentionedEntityLabels(context, newLabels)\n }\n\n const result = await investigationService.addEntityLabel(getInvestigationId(context, \"add entity label\"), entity.type, entity.name, label, investigationType)\n if (!result) {\n setMentionedEntityLabels(context, oldLabels)\n }\n },\n\n async removeMentionedEntityLabel(context: ActionContext, payload: {label: string, entity: MentionedEntity, investigationType: InvestigationType}): Promise {\n const {entity, label, investigationType} = payload\n const oldEntity = {...entity}\n const labelIndex = entity.labels.findIndex(entityLabel => entityLabel.toLocaleLowerCase() === label.toLocaleLowerCase())\n if (labelIndex > -1) {\n entity.labels.splice(labelIndex, 1)\n }\n\n const result = await investigationService.removeEntityLabel(getInvestigationId(context, \"remove entity label\"), entity.type, entity.name, label, investigationType)\n },\n\n async renameMentionedEntityLabel(context: ActionContext, payload: {oldLabel: string, newLabel: string, investigationType: InvestigationType}): Promise {\n const {oldLabel, newLabel, investigationType} = payload\n const oldLabels = [...getMentionedEntityLabels(context)]\n updateMentionedEntityLabelInInvestigation(context, {oldLabel, newLabel})\n\n const nodes = getGraph(context).nodes\n\n function changeNodeLabel(currentLabel: string, replacedLabel: string) {\n return (newNode: GraphNodeEntity) => {\n const {name, type, labels} = newNode.props\n const labelIndex = labels.findIndex((nodeLabel: string) => currentLabel.toLocaleLowerCase() === nodeLabel.toLocaleLowerCase())\n if (labelIndex > -1) {\n labels.splice(labelIndex, 1, replacedLabel)\n }\n }\n }\n\n nodes.forEach(changeNodeLabel(oldLabel, newLabel))\n\n const result = await investigationService.renameEntityLabel(getInvestigationId(context, \"rename entity label\"), {oldLabel, newLabel}, investigationType)\n if (!result) {\n setMentionedEntityLabels(context, oldLabels)\n nodes.forEach(changeNodeLabel(newLabel, oldLabel))\n }\n },\n\n async deleteMentionedEntityLabel(context: ActionContext, payload: {label: string, investigationType: InvestigationType}): Promise {\n const {label, investigationType} = payload\n const oldLabels = [...getMentionedEntityLabels(context)]\n deleteMentionedEntityLabelFromInvestigation(context, label)\n\n const newNodes = getGraph(context).nodes\n newNodes.forEach(newNode => {\n const {name, type, labels} = newNode.props\n const labelIndex = labels.findIndex((nodeLabel: string) => label.toLocaleLowerCase() === nodeLabel.toLocaleLowerCase())\n if (labelIndex > -1) {\n labels.splice(labelIndex, 1)\n }\n })\n\n const result = await investigationService.deleteMentionedEntityLabel(getInvestigationId(context, \"delete entity label\"), label, investigationType)\n if (!result) {\n setMentionedEntityLabels(context, oldLabels)\n }\n }\n }\n}\n\nfunction addOrRemoveItemFromList(item: string, list: string[]): string[] {\n const newList = list.filter(it => it !== item)\n if (newList.length === list.length) {\n newList.push(item)\n }\n return newList\n}\n\nexport default module\n\nconst {read, commit, dispatch} = getStoreAccessors(\"investigation\")\n\nexport const getGraph = read(module.getters.getGraph)\nexport const getGraphType = read(module.getters.getGraphType)\nexport const setGraph = commit(module.mutations.setGraph)\nexport const setGraphType = commit(module.mutations.setGraphType)\nexport const removeGraphNodes = commit(module.mutations.removeGraphNodes)\n\nexport const getTimeline = read(module.getters.getTimeline)\nexport const setTimeline = commit(module.mutations.setTimeline)\nexport const toggleTimelineTermGroup = dispatch(module.actions.toggleTimelineTermGroup)\nexport const toggleTimelineTerm = dispatch(module.actions.toggleTimelineTerm)\nexport const toggleExternalSeries = dispatch(module.actions.toggleTimelineExternalSeries)\nexport const getExternalSeries = read(module.getters.getExternalSeries)\nexport const setExternalSeries = commit(module.mutations.setExternalSeries)\n\nexport const addMentionedEntityLabel = dispatch(module.actions.addMentionedEntityLabel)\nexport const removeMentionedEntityLabel = dispatch(module.actions.removeMentionedEntityLabel)\nexport const renameMentionedEntityLabel = dispatch(module.actions.renameMentionedEntityLabel)\nexport const deleteMentionedEntityLabel = dispatch(module.actions.deleteMentionedEntityLabel)\nconst updateMentionedEntityLabelInInvestigation = commit(module.mutations.updateMentionedEntityLabelInInvestigation)\nconst deleteMentionedEntityLabelFromInvestigation = commit(module.mutations.deleteMentionedEntityLabelFromInvestigation)\n","import {DateHistogram} from \"@/types/investigations\"\nimport {RootState} from \"..\"\nimport {getStoreAccessors} from \"vuex-typescript\"\n\n\nexport interface DateFilterState {\n dateHistogram: DateHistogram\n dateFilterStart: number | null\n dateFilterEnd: number | null\n}\n\nconst module = {\n getters: {\n getDateHistogram(state: DateFilterState): DateHistogram {\n return state.dateHistogram\n },\n\n getDateFilterStart(state: DateFilterState): number | null {\n return state.dateFilterStart\n },\n\n getDateFilterEnd(state: DateFilterState): number | null {\n return state.dateFilterEnd\n }\n },\n\n mutations: {\n setDateHistogram(state: DateFilterState, dateHistogram: DateHistogram) {\n state.dateHistogram = dateHistogram\n },\n\n setDateFilterYears(state: DateFilterState, years: { start: number | null, end: number | null }) {\n state.dateFilterStart = years.start\n state.dateFilterEnd = years.end\n }\n }\n}\n\nexport default module\n\nconst { read, commit } = getStoreAccessors(\"investigation\")\n\nexport const getDateHistogram = read(module.getters.getDateHistogram)\nexport const getDateFilterStart = read(module.getters.getDateFilterStart)\nexport const getDateFilterEnd = read(module.getters.getDateFilterEnd)\n\nexport const setDateHistogram = commit(module.mutations.setDateHistogram)\nexport const setDateFilterYears = commit(module.mutations.setDateFilterYears)\n","import {RootState} from \"..\"\nimport {getStoreAccessors} from \"vuex-typescript\"\n\n\nexport interface PersonFilterState {\n personId: string | null\n disambiguationPersonId: string | null\n}\n\nconst module = {\n getters: {\n getPersonId(state: PersonFilterState): string | null {\n return state.personId\n },\n\n getDisambiguationPersonId(state: PersonFilterState): string | null {\n return state.disambiguationPersonId\n }\n },\n\n mutations: {\n setPersonId(state: PersonFilterState, personId: string | null) {\n state.personId = personId\n },\n\n setDisambiguationPersonId(state: PersonFilterState, disambiguationPersonId: string | null) {\n state.disambiguationPersonId = disambiguationPersonId\n }\n }\n}\n\nexport default module\n\nconst { read, commit } = getStoreAccessors(\"investigation\")\n\nexport const getPersonId = read(module.getters.getPersonId)\nexport const setPersonId = commit(module.mutations.setPersonId)\nexport const getDisambiguationPersonId = read(module.getters.getDisambiguationPersonId)\nexport const setDisambiguationPersonId = commit(module.mutations.setDisambiguationPersonId)\n","import {getStoreAccessors} from \"vuex-typescript\"\nimport {ActionContext} from \"vuex\"\nimport {Optional} from \"@/types\"\nimport {RootState} from \"@/store\"\nimport {InvestigationType} from \"@/types/investigations\"\n\n\nexport interface TermPopupMenuData {\n term: Optional\n termElement: HTMLElement\n boundingRect?: DOMRect\n centered?: boolean\n showAddTerm?: boolean\n showAddPenalizedTerm?: boolean\n investigationType: InvestigationType\n documentId?: string,\n sentence?: string,\n isInObservation?: boolean\n showAddObservation?: boolean\n}\n\n\nexport interface TermPopupMenuState {\n termPopupMenuData: Optional\n}\n\nconst module = {\n\n getters: {\n getTermPopupMenuData(state: TermPopupMenuState): Optional {\n return state.termPopupMenuData\n }\n },\n\n mutations: {\n setTermPopupMenuData(state: TermPopupMenuState, data: Optional) {\n state.termPopupMenuData = data\n }\n },\n\n actions: {\n async showTermPopupMenu(context: ActionContext, data: TermPopupMenuData): Promise {\n setTermPopupMenuData(context, data)\n },\n\n async hideTermPopupMenu(context: ActionContext): Promise {\n setTermPopupMenuData(context, undefined)\n }\n }\n}\n\nexport default module\n\nconst { read, commit, dispatch } = getStoreAccessors(\"investigation\")\n\nexport const getTermPopupMenuData = read(module.getters.getTermPopupMenuData)\n\nconst setTermPopupMenuData = commit(module.mutations.setTermPopupMenuData)\n\nexport const showTermPopupMenu = dispatch(module.actions.showTermPopupMenu)\nexport const hideTermPopupMenu = dispatch(module.actions.hideTermPopupMenu)\n","import { getStoreAccessors } from \"vuex-typescript\"\nimport { ActionContext } from \"vuex\"\nimport { Optional } from \"@/types\"\nimport { RootState } from \"@/store\"\n\n\nexport class NoteDialogData {\n constructor(public documentId: string, public note?: string) {}\n}\n\n\nexport interface NoteDialogState {\n noteDialogData: Optional\n}\n\nconst module = {\n\n getters: {\n getNoteDialogData(state: NoteDialogState): Optional {\n return state.noteDialogData\n }\n },\n\n mutations: {\n setNoteDialogData(state: NoteDialogState, data: Optional) {\n state.noteDialogData = data\n }\n },\n\n actions: {\n async showNoteDialog(context: ActionContext, {documentId, note}: {documentId: string, note?: string}): Promise {\n setNoteDialogData(context, {documentId, note})\n },\n\n async hideNoteDialog(context: ActionContext): Promise {\n setNoteDialogData(context, undefined)\n }\n }\n}\n\nexport default module\n\nconst { read, commit, dispatch } = getStoreAccessors(\"investigation\")\n\nexport const getNoteDialogData = read(module.getters.getNoteDialogData)\n\nconst setNoteDialogData = commit(module.mutations.setNoteDialogData)\n\nexport const showNoteDialog = dispatch(module.actions.showNoteDialog)\nexport const hideNoteDialog = dispatch(module.actions.hideNoteDialog)\n","import axios from \"axios\"\nimport {EnvironmentEntity} from \"@/types/environment\"\n\n\nexport default {\n\n async getEnvironment(): Promise {\n const response = await axios.get(\"/api/about\")\n return response.data as EnvironmentEntity\n }\n}\n","import {RootState} from \"@/store/index\"\nimport environmentService from \"../api/environment-service\"\nimport {ActionContext} from \"vuex\"\nimport {getStoreAccessors} from \"vuex-typescript\"\nimport {EnvironmentEntity} from \"@/types/environment\"\n\n\nexport interface EnvironmentState {\n version: string\n showHebrewTutorials: boolean\n showHiddenFeatures: boolean\n showDocumentLabels: boolean\n showTranslations: boolean\n showSignUp: boolean\n directSignUp: boolean\n reportEnabled: boolean\n entityDetectionEnabled: boolean\n alertsEnabled: boolean\n showTimeline: boolean\n documentsPageSize: number\n userGuideUrl: string\n rollbarAccessToken: string\n supportBatchInvestigations: boolean\n supportPoliticalInvestigations: boolean\n supportAcademicResearcherGroupInvestigations: boolean\n supportUniversityInvestigations: boolean\n supportWebsiteInvestigations: boolean\n supportTenderInvestigations: boolean\n supportCompanyInvestigations: boolean\n supportLocalDocumentsInvestigations: boolean\n showPredefinedTermGroups: boolean\n allowDuplicateInvestigation: boolean\n}\n\n\nconst module = {\n namespaced: true,\n\n state(): EnvironmentState {\n return {\n version: \"\",\n showHebrewTutorials: false,\n showHiddenFeatures: false,\n showDocumentLabels: false,\n showTranslations: false,\n showSignUp: false,\n directSignUp: false,\n reportEnabled: false,\n entityDetectionEnabled: false,\n alertsEnabled: false,\n showTimeline: false,\n documentsPageSize: 50,\n userGuideUrl: \"\",\n rollbarAccessToken: \"\",\n supportBatchInvestigations: false,\n supportPoliticalInvestigations: false,\n supportAcademicResearcherGroupInvestigations: false,\n supportUniversityInvestigations: false,\n supportWebsiteInvestigations: false,\n supportTenderInvestigations: false,\n supportCompanyInvestigations: false,\n supportLocalDocumentsInvestigations: false,\n showPredefinedTermGroups: false,\n allowDuplicateInvestigation: false\n }\n },\n\n getters: {\n getVersion(state: EnvironmentState): string {\n return state.version\n },\n\n isShowingHebrewTutorials(state: EnvironmentState): boolean {\n return state.showHebrewTutorials\n },\n\n isShowingHiddenFeatures(state: EnvironmentState): boolean {\n return state.showHiddenFeatures\n },\n\n isShowingDocumentLabels(state: EnvironmentState): boolean {\n return state.showDocumentLabels\n },\n\n isShowingTranslations(state: EnvironmentState): boolean {\n return state.showTranslations\n },\n\n getDocumentsPageSize(state: EnvironmentState): number {\n return state.documentsPageSize\n },\n\n isShowingSignUp(state: EnvironmentState): boolean {\n return state.showSignUp\n },\n\n isDirectSignUp(state: EnvironmentState): boolean {\n return state.directSignUp\n },\n\n isReportEnabled(state: EnvironmentState): boolean {\n return state.reportEnabled\n },\n\n isEntityDetectionEnabled(state: EnvironmentState): boolean {\n return state.entityDetectionEnabled\n },\n\n areAlertsEnabled(state: EnvironmentState): boolean {\n return state.alertsEnabled\n },\n\n isShowingTimeline(state: EnvironmentState): boolean {\n return state.showTimeline\n },\n\n getuserGuideUrl(state: EnvironmentState): string {\n return state.userGuideUrl\n },\n\n getRollbarAccessToken(state: EnvironmentState): string {\n return state.rollbarAccessToken\n },\n\n isSupportBatchInvestigations(state: EnvironmentState): boolean {\n return state.supportBatchInvestigations\n },\n\n isSupportPoliticalInvestigations(state: EnvironmentState): boolean {\n return state.supportPoliticalInvestigations\n },\n\n isSupportAcademicResearcherGroupInvestigations(state: EnvironmentState): boolean {\n return state.supportAcademicResearcherGroupInvestigations\n },\n\n isSupportUniversityInvestigations(state: EnvironmentState): boolean {\n return state.supportUniversityInvestigations\n },\n\n isSupportWebsiteInvestigations(state: EnvironmentState): boolean {\n return state.supportWebsiteInvestigations\n },\n\n isSupportTenderInvestigations(state: EnvironmentState): boolean {\n return state.supportTenderInvestigations\n },\n\n isSupportCompanyInvestigations(state: EnvironmentState): boolean {\n return state.supportCompanyInvestigations\n },\n\n isSupportLocalDocumentsInvestigations(state: EnvironmentState): boolean {\n return state.supportLocalDocumentsInvestigations\n },\n\n isShowPredefinedTermGroups(state: EnvironmentState): boolean {\n return state.showPredefinedTermGroups\n },\n\n isAllowDuplicateInvestigation(state: EnvironmentState): boolean {\n return state.allowDuplicateInvestigation\n }\n },\n\n mutations: {\n setEnvironment(state: EnvironmentState, {\n version,\n showHebrewTutorials = false,\n showHiddenFeatures = false,\n showDocumentLabels = false,\n showTranslations = false,\n showSignUp = false,\n directSignUp = false,\n reportEnabled = false,\n entityDetectionEnabled = false,\n alertsEnabled = false,\n showEntityGraph = false,\n showTimeline = false,\n userGuideUrl,\n rollbarAccessToken = \"\",\n supportBatchInvestigations = false,\n supportPoliticalInvestigations = false,\n supportAcademicResearcherGroupInvestigations = false,\n supportUniversityInvestigations = false,\n supportWebsiteInvestigations = false,\n supportTenderInvestigations = false,\n supportCompanyInvestigations = false,\n supportLocalDocumentsInvestigations = false,\n showPredefinedTermGroups = false,\n allowDuplicateInvestigation = false\n }: EnvironmentEntity) {\n state.version = version\n state.showHebrewTutorials = showHebrewTutorials\n state.showHiddenFeatures = showHiddenFeatures\n state.showDocumentLabels = showDocumentLabels\n state.showTranslations = showTranslations\n state.showSignUp = showSignUp\n state.directSignUp = directSignUp\n state.reportEnabled = reportEnabled\n state.entityDetectionEnabled = entityDetectionEnabled\n state.alertsEnabled = alertsEnabled\n state.showTimeline = showTimeline\n state.userGuideUrl = userGuideUrl\n state.rollbarAccessToken = rollbarAccessToken\n state.supportBatchInvestigations = supportBatchInvestigations\n state.supportPoliticalInvestigations = supportPoliticalInvestigations\n state.supportAcademicResearcherGroupInvestigations = supportAcademicResearcherGroupInvestigations\n state.supportUniversityInvestigations = supportUniversityInvestigations\n state.supportWebsiteInvestigations = supportWebsiteInvestigations\n state.supportTenderInvestigations = supportTenderInvestigations\n state.supportCompanyInvestigations = supportCompanyInvestigations\n state.supportLocalDocumentsInvestigations = supportLocalDocumentsInvestigations\n state.showPredefinedTermGroups = showPredefinedTermGroups\n state.allowDuplicateInvestigation = allowDuplicateInvestigation\n }\n },\n\n actions: {\n async fetchEnvironment(context: ActionContext): Promise {\n const environment = await environmentService.getEnvironment()\n setEnvironment(context, environment)\n }\n }\n}\n\nexport default module\n\n\nconst { read, commit, dispatch } = getStoreAccessors(\"environment\")\n\nexport const getVersion = read(module.getters.getVersion)\nexport const isShowingSignUp = read(module.getters.isShowingSignUp)\nexport const isDirectSignUp = read(module.getters.isDirectSignUp)\nexport const isShowingHebrewTutorials = read(module.getters.isShowingHebrewTutorials)\nexport const isShowingHiddenFeatures = read(module.getters.isShowingHiddenFeatures)\nexport const isShowingDocumentLabels = read(module.getters.isShowingDocumentLabels)\nexport const isShowingTranslations = read(module.getters.isShowingTranslations)\nexport const isShowingTimeline = read(module.getters.isShowingTimeline)\nexport const isReportEnabled = read(module.getters.isReportEnabled)\nexport const isEntityDetectionEnabled = read(module.getters.isEntityDetectionEnabled)\nexport const areAlertsEnabled = read(module.getters.areAlertsEnabled)\nexport const getDocumentsPageSize = read(module.getters.getDocumentsPageSize)\nexport const fetchEnvironment = dispatch(module.actions.fetchEnvironment)\nexport const getUserGuideUrl = read(module.getters.getuserGuideUrl)\nexport const getRollbarAccessToken = read(module.getters.getRollbarAccessToken)\nexport const isSupportBatchInvestigations = read(module.getters.isSupportBatchInvestigations)\nexport const isSupportPoliticalInvestigations = read(module.getters.isSupportPoliticalInvestigations)\nexport const isSupportAcademicResearcherGroupInvestigations = read(module.getters.isSupportAcademicResearcherGroupInvestigations)\nexport const isSupportUniversityInvestigations = read(module.getters.isSupportUniversityInvestigations)\nexport const isSupportWebsiteInvestigations = read(module.getters.isSupportWebsiteInvestigations)\nexport const isSupportTenderInvestigations = read(module.getters.isSupportTenderInvestigations)\nexport const isSupportCompanyInvestigations = read(module.getters.isSupportCompanyInvestigations)\nexport const isSupportLocalDocumentsInvestigations = read(module.getters.isSupportLocalDocumentsInvestigations)\nexport const isShowPredefinedTermGroups = read(module.getters.isShowPredefinedTermGroups)\nexport const isAllowDuplicateInvestigation = read(module.getters.isAllowDuplicateInvestigation)\n\nconst setEnvironment = commit(module.mutations.setEnvironment)\n","import {decreaseActiveRequests, increaseActiveRequests} from \"@/store/investigation/investigation-module\"\nimport {Store} from \"vuex\"\nimport {RootState} from \"@/store\"\n\nexport function copyToClipboard(text: string) {\n const textArea = document.createElement(\"textarea\")\n textArea.value = text\n const body = document.querySelector(\"body\")!\n body.appendChild(textArea)\n textArea.select()\n document.execCommand(\"copy\")\n body.removeChild(textArea)\n}\n\n\nexport function downloadBlob(blob: Blob | undefined, fileName: string) {\n if (blob) {\n const url = window.URL.createObjectURL(blob)\n const link = document.createElement(\"a\")\n link.href = url\n\n link.setAttribute(\"download\", fileName)\n document.body.appendChild(link)\n\n link.click()\n\n document.body.removeChild(link)\n }\n}\n\n\nexport function blobToFile(theBlob: Blob, fileName: string): File {\n const b: any = theBlob\n // A Blob() is almost a File() - it's just missing the two properties below which we will add\n b.lastModifiedDate = new Date()\n b.name = fileName\n return theBlob as File\n}\n\n\nexport async function wrapActiveRequests(store: Store, code: () => {}) {\n increaseActiveRequests(store)\n try {\n await code()\n } finally {\n decreaseActiveRequests(store)\n }\n}\n\n\nexport function capitalize(text: string): string {\n return text.toLowerCase().replace(/^\\w/, c => c.toUpperCase())\n}\n","import axios from \"axios\"\nimport {ObservationEntity, ObservationSectionEntity} from \"@/store/investigation/observation-module\"\nimport {InvestigationType, ObservationType} from \"@/types/investigations\"\nimport {ImageCropData} from \"@/api/investigation-service\"\n\nexport default {\n\n async addInvestigationObservation(investigationId: string, observation: ObservationEntity, investigationType: InvestigationType, observationType: ObservationType): Promise {\n const response = await axios.post(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/observation/${observationType.toLowerCase()}`, observation)\n return response.data as ObservationEntity\n },\n\n async setInvestigationImage(investigationId: string, investigationType: InvestigationType, observationId: string, imageCropData: ImageCropData): Promise {\n const formData = new FormData()\n if (imageCropData.file) {\n formData.set(\"file\", imageCropData.file)\n formData.set(\"fileName\", imageCropData.file.name)\n }\n formData.set(\"imageData\", JSON.stringify(imageCropData))\n\n const response = await axios.post(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/observation/${observationId}/image`, formData)\n return response.data as (string | null)\n },\n\n async clearObservationImage(investigationId: string, investigationType: InvestigationType, observationId: string): Promise {\n await axios.post(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/observation/${observationId}/clear-image`, {})\n },\n\n async editInvestigationObservation(investigationId: string, observation: ObservationEntity, investigationType: InvestigationType): Promise {\n const response = await axios.patch(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/observation/${observation.id}`, observation)\n return response && (response.status === 200 || response.status === 204)\n },\n\n async deleteInvestigationObservation(investigationId: string, observationId: string, investigationType: InvestigationType): Promise {\n const response = await axios.delete(`/api/investigations/${investigationType.toLowerCase()}/${investigationId}/observation/${observationId}`)\n return response && (response.status === 200 || response.status === 204)\n },\n\n async createSection(id: string, name: string, ordinal: number): Promise {\n const response = await axios.post(`/api/investigations/topic/${id}/observation/section`, {id: -1, name, ordinal})\n if (response) {\n return response.data as ObservationSectionEntity[]\n }\n },\n\n async renameSection(id: string, section: ObservationSectionEntity): Promise {\n const response = await axios.patch(`/api/investigations/topic/${id}/observation/section/rename`, section)\n if (response) {\n return response.data as ObservationSectionEntity[]\n }\n },\n\n async deleteSection(id: string, sectionId: string): Promise {\n const response = await axios.delete(`/api/investigations/topic/${id}/observation/section/`, {data: sectionId})\n if (response) {\n return response.data as ObservationSectionEntity[]\n }\n },\n\n async reorderSections(id: string, sectionIds: string[]): Promise {\n const response = await axios.patch(`/api/investigations/topic/${id}/observation/section/reorder`, {sectionIds})\n if (response) {\n return response.data as ObservationSectionEntity[]\n }\n },\n\n async moveObservationToGroup(id: string, observation: string, section: string): Promise {\n const response = await axios.patch(`/api/investigations/topic/${id}/observation/move-to-section`, { observation, section })\n if (response) {\n return response.data as ObservationEntity[]\n }\n },\n\n async reorderObservations(id: string, observations: ObservationEntity[]): Promise {\n const response = await axios.patch(`/api/investigations/topic/${id}/observation/reorder`, observations)\n return response && response.status === 204\n }\n}\n","import {RootState} from \"..\"\nimport {getInvestigationId} from \"./get-investigation-id\"\nimport {ActionContext} from \"vuex\"\nimport {getStoreAccessors} from \"vuex-typescript\"\nimport observationService from \"../../api/observation-service\"\nimport {InvestigationType, ObservationInfo, ObservationType} from \"@/types/investigations\"\nimport {Moment} from \"moment\"\nimport {ImageCropData} from \"@/api/investigation-service\"\n\nexport interface ObservationsResponse {\n readonly observations: ObservationEntity[]\n readonly sections: ObservationSectionEntity[]\n}\n\n\nexport interface ObservationEntity {\n readonly title: string\n readonly observation: string\n readonly time?: Moment\n id?: string\n readonly info?: ObservationInfo\n readonly referencedObject?: string\n readonly type?: ObservationType,\n section: string | null,\n ordinal: number,\n imageId: string | null,\n imageTimestamp?: number | null,\n}\n\nexport interface ObservationSectionEntity {\n readonly id: string\n readonly name: string\n readonly ordinal: number\n}\n\nexport interface ObservationState {\n observations: ObservationEntity[],\n observationSections: ObservationSectionEntity[],\n observationViewModeLevel: number,\n sectionsExpansion: {[key: string]: boolean},\n draggedObservation: string | null,\n sectionObservationOrder: any[]\n}\n\nconst module = {\n getters: {\n getObservations(state: ObservationState): ObservationEntity[] {\n return state.observations\n },\n\n getObservationViewModeLevel(state: ObservationState): number {\n return state.observationViewModeLevel\n },\n\n getObservationSections(state: ObservationState): ObservationSectionEntity[] {\n return state.observationSections\n },\n\n getSectionsExpansion(state: ObservationState): {[key: string]: boolean} {\n return state.sectionsExpansion\n },\n\n getSectionObservationOrder(state: ObservationState): any[] {\n return state.sectionObservationOrder\n }\n },\n\n mutations: {\n setObservations(state: ObservationState, observations: ObservationEntity[]) {\n state.observations = observations\n },\n\n setObservationViewModeLevel(state: ObservationState, level: number) {\n state.observationViewModeLevel = level\n },\n\n setObservationSections(state: ObservationState, observationSections: ObservationSectionEntity[]) {\n state.observationSections = observationSections\n },\n\n updateObservation(state: ObservationState, observation: ObservationEntity) {\n const observationIndex = state.observations.findIndex(currentObservation => currentObservation.id === observation.id)\n\n if (observationIndex >= 0) {\n state.observations.splice(observationIndex, 1, observation)\n }\n },\n\n updateObservationSection(state: ObservationState, section: ObservationSectionEntity) {\n const sectionIndex = state.observationSections.findIndex(currentGroup => Number(currentGroup.id) === Number(section.id))\n if (sectionIndex >= 0) {\n state.observationSections.splice(sectionIndex, 1, section)\n }\n },\n\n setSectionsExpansion(state: ObservationState, expansion: {[key: string]: boolean}) {\n state.sectionsExpansion = expansion\n },\n\n clearSectionsExpansion(state: ObservationState) {\n state.sectionsExpansion = {}\n },\n\n setSectionObservationOrder(state: ObservationState, sectionObservationOrder: any[]) {\n state.sectionObservationOrder = sectionObservationOrder\n }\n },\n\n actions: {\n async addObservation(context: ActionContext, payload: { observation: ObservationEntity, investigationType: InvestigationType, observationType: ObservationType, imageCropData?: ImageCropData }): Promise {\n const {observation, investigationType, observationType, imageCropData} = payload\n const oldObservations = [...getObservations(context)]\n let newObservations = oldObservations.concat(observation)\n setObservations(context, newObservations)\n const investigationId = getInvestigationId(context, \"add investigation observation\")\n try {\n const result = await observationService.addInvestigationObservation(investigationId, observation, investigationType, observationType)\n if (imageCropData) {\n result.imageId = await observationService.setInvestigationImage(investigationId, investigationType, result.id!, imageCropData)\n }\n newObservations = oldObservations.concat(result)\n setObservations(context, newObservations)\n } catch {\n setObservations(context, oldObservations)\n }\n },\n\n async editObservation(context: ActionContext, payload: { observation: ObservationEntity, investigationType: InvestigationType, imageCropData?: ImageCropData }): Promise {\n const {observation, investigationType, imageCropData} = payload\n const oldObservations = [...getObservations(context)]\n const observationIndex = oldObservations.findIndex(oldObservation => oldObservation.id === observation.id)\n const newObservations = [...oldObservations]\n newObservations.splice(observationIndex, 1, observation)\n setObservations(context, newObservations)\n try {\n const investigationId = getInvestigationId(context, \"edit investigation observation\")\n const result = await observationService.editInvestigationObservation(investigationId, observation, investigationType)\n let newImageId\n if (imageCropData) {\n newImageId = await observationService.setInvestigationImage(investigationId, investigationType, observation.id!, imageCropData)\n } else {\n await observationService.clearObservationImage(investigationId, investigationType, observation.id!)\n newImageId = null\n }\n const updatedObservations = [...newObservations]\n observation.imageId = newImageId\n observation.imageTimestamp = new Date().getTime()\n updatedObservations.splice(observationIndex, 1, observation)\n setObservations(context, updatedObservations)\n } catch {\n setObservations(context, oldObservations)\n }\n },\n\n async deleteObservation(context: ActionContext, payload: { observationId: string, investigationType: InvestigationType }): Promise {\n const {observationId, investigationType} = payload\n const oldObservations = [...getObservations(context)]\n const observationIndex = oldObservations.findIndex(oldObservation => oldObservation.id === observationId)\n const newObservations = [...oldObservations]\n newObservations.splice(observationIndex, 1)\n setObservations(context, newObservations)\n const result = await observationService.deleteInvestigationObservation(getInvestigationId(context, \"edit investigation observation\"), observationId, investigationType)\n if (!result) {\n setObservations(context, oldObservations)\n }\n },\n\n async createObservationSection(context: ActionContext, name: string): Promise {\n const oldSections = [...getObservationSections(context)]\n const ordinal = oldSections.length\n const createdSection: ObservationSectionEntity = {id: \"-1\", name, ordinal}\n setObservationSections(context, [...oldSections, createdSection])\n const result = await observationService.createSection(getInvestigationId(context, \"create group\"), name, ordinal)\n setObservationSections(context, result ? result : oldSections)\n },\n\n async renameObservationSection(context: ActionContext, section: ObservationSectionEntity): Promise {\n const oldSections = [...getObservationSections(context)]\n const {id, name, ordinal} = section\n const partial = {id, name, ordinal}\n updateObservationSection(context, partial)\n const result = await observationService.renameSection(getInvestigationId(context, \"rename section\"), partial)\n if (!result) {\n setObservationSections(context, oldSections)\n }\n },\n\n async deleteObservationSection(context: ActionContext, section: ObservationSectionEntity): Promise {\n const result = await observationService.deleteSection(getInvestigationId(context, \"delete section\"), section.id)\n if (result) {\n const observations = [...getObservations(context)]\n observations\n .filter(observation => Number(observation.section) === Number(section.id))\n .forEach(observation => observation.section = null)\n await setObservations(context, observations)\n await setObservationSections(context, result)\n }\n },\n\n async setObservationSectionIndex(context: ActionContext,\n payload: {sectionId: string, newIndex: number}) {\n const sections = getObservationSections(context)\n const sectionToMove = sections.splice(sections.findIndex(x => x.id === payload.sectionId), 1)[0]\n sections.splice(payload.newIndex, 0, sectionToMove)\n const result = await observationService.reorderSections(getInvestigationId(context, \"reorder sections\"), sections.map(x => x.id))\n if (result) {\n setObservationSections(context, sections)\n }\n },\n\n async moveToSection(context: ActionContext, payload: {observation: string, section: string}): Promise {\n const {observation, section} = payload\n const investigationId = getInvestigationId(context, \"move observation to group\")\n const oldObservation = [...getObservations(context)].find(currentObservation => currentObservation.id === observation)!\n const newObservation: ObservationEntity = {...oldObservation, section}\n updateObservation(context, newObservation)\n const result = await observationService.moveObservationToGroup(investigationId, observation, section)\n if (!result) {\n updateObservation(context, oldObservation)\n }\n },\n\n async reorderObservations(context: ActionContext, observations: ObservationEntity[]): Promise {\n const investigationId = getInvestigationId(context, \"move observation to group\")\n const oldObservations = [...getObservations(context)]\n setObservations(context, observations)\n\n const result = await observationService.reorderObservations(investigationId, observations)\n if (!result) {\n setObservations(context, oldObservations)\n }\n }\n }\n}\n\n\nexport default module\n\n\nconst { read, commit, dispatch } = getStoreAccessors(\"investigation\")\n\nexport const getObservations = read(module.getters.getObservations)\nexport const addObservation = dispatch(module.actions.addObservation)\nexport const editObservation = dispatch(module.actions.editObservation)\nexport const deleteObservation = dispatch(module.actions.deleteObservation)\nexport const setObservations = commit(module.mutations.setObservations)\nexport const getObservationViewModeLevel = read(module.getters.getObservationViewModeLevel)\nexport const setObservationViewModeLevel = commit(module.mutations.setObservationViewModeLevel)\nexport const moveToSection = dispatch(module.actions.moveToSection)\nexport const reorderObservations = dispatch(module.actions.reorderObservations)\n\nexport const getObservationSections = read(module.getters.getObservationSections)\nexport const setObservationSections = commit(module.mutations.setObservationSections)\nexport const createObservationSection = dispatch(module.actions.createObservationSection)\nexport const renameObservationSection = dispatch(module.actions.renameObservationSection)\nexport const deleteObservationSection = dispatch(module.actions.deleteObservationSection)\nexport const setObservationSectionIndex = dispatch(module.actions.setObservationSectionIndex)\nexport const getSectionsExpansion = read(module.getters.getSectionsExpansion)\nexport const setSectionsExpansion = commit(module.mutations.setSectionsExpansion)\nexport const clearSectionsExpansion = commit(module.mutations.clearSectionsExpansion)\nexport const getSectionObservationOrder = read(module.getters.getSectionObservationOrder)\nexport const setSectionObservationOrder = commit(module.mutations.setSectionObservationOrder)\n\n\nconst updateObservation = commit(module.mutations.updateObservation)\nconst updateObservationSection = commit(module.mutations.updateObservationSection)\n","import axios from \"axios\"\nimport {InvestigationConfigurationEntity, BWJournal} from \"@/types/investigations\"\n\nexport const configurationService = {\n\n async getConfiguration(investigationId: string): Promise {\n const response = await axios.get(`/api/investigations/${investigationId}/configuration`)\n return response.data as InvestigationConfigurationEntity\n },\n\n async setConfiguration(investigationId: string, configuration: InvestigationConfigurationEntity): Promise {\n const response = await axios.post(`/api/investigations/${investigationId}/configuration`, configuration)\n return response.data as string\n },\n\n async setJournalBWList(investigationId: string, journalInfo: BWJournal): Promise {\n const response = await axios.post(`/api/investigations/${investigationId}/configuration/bwjournal`, journalInfo)\n return response.data as string\n },\n\n async addActiveAuthor(investigationId: string, activeAuthor: string): Promise {\n const response = await axios.post(`/api/investigations/${investigationId}/configuration/active-author`, activeAuthor)\n return response.data as string\n },\n\n async fetchEntireDictionary(dictionaryId: string): Promise {\n const response = await axios.get(`/api/lexeme/${dictionaryId}`)\n return new Blob([response.data])\n }\n}\n","import {\n AuthorGraphSettings,\n BibliographicDetails, BWJournal,\n DateHistogram,\n DisplayedResultsStatus,\n DocumentEntity,\n DocumentMarkupsEntity,\n GenerateHtmlResponse,\n GraphEntity,\n GraphRequest,\n GraphType,\n InvestigationDataEntity,\n InvestigationEntity,\n InvestigationGraphDataEntity,\n InvestigationRequestSpec,\n InvestigationTermEntity,\n InvestigationTimelineDataEntity,\n InvestigationType, MatchingResearcherIds,\n MentionedEntity,\n PersonEntity,\n PersonInvestigationDataEntity,\n PersonRelevantCounts,\n RecentAffiliation,\n RelevancyStatusEntity,\n ScoredAffiliationEntity,\n ScoredAuthorEntity,\n ScoredNameEntity,\n ScoredRegionEntity,\n SelectedTop,\n TimelineChartData,\n TimelineRequest,\n TopicInvestigationDataEntity,\n TopLexemeEntity,\n Tops,\n UnifiedGraphSettings\n} from \"@/types/investigations\"\nimport {RootState} from \"@/store\"\nimport investigationService, {ImageCropData} from \"../../api/investigation-service\"\nimport topicInvestigationService from \"../../api/topic-investigation-service\"\nimport personInvestigationService from \"../../api/person-investigation-service\"\nimport investigationsService from \"../../api/investigations-service\"\nimport {ActionContext, Store} from \"vuex\"\nimport {getStoreAccessors} from \"vuex-typescript\"\nimport {getInvestigationId} from \"@/store/investigation/get-investigation-id\"\nimport terms, {\n getSuggestedTerms,\n getTerms,\n setSuggestedTerms,\n setTermGroups,\n setTerms,\n SuggestedTerm,\n TermsState\n} from \"./investigation-terms-module\"\nimport documents, {\n clearGroupsExpansion,\n clearTopsExpansion,\n clearTopsSorting,\n getDocuments,\n getGroupsExpansion,\n getHighlightModes,\n getTopsExpansion,\n getTopsSorting,\n setDocumentMarkups,\n setDocuments,\n setGroupsExpansion,\n setHighlightModes,\n setTopExpanded,\n setTopSorting\n} from \"./documents-module\"\nimport graph, {getGraphType, setExternalSeries, setGraph, setGraphType, setTimeline} from \"./graph-module\"\nimport dateFilterModule, {\n DateFilterState,\n getDateFilterEnd,\n getDateFilterStart,\n setDateFilterYears,\n setDateHistogram\n} from \"./date-filter-module\"\nimport personFilterModule, {\n getDisambiguationPersonId,\n getPersonId,\n PersonFilterState,\n setPersonId\n} from \"./person-filter-module\"\nimport termPopupMenu, {TermPopupMenuData} from \"./dialogs/term-popup-menu-module\"\nimport noteDialog, {NoteDialogState} from \"./dialogs/note-dialog-module\"\nimport {Optional} from \"@/types\"\nimport {EnvironmentState, getDocumentsPageSize} from \"@/store/environment-module\"\nimport {wrapActiveRequests} from \"@/utils/utils\"\nimport axios, {CancelTokenSource} from \"axios\"\nimport observations, {\n clearSectionsExpansion,\n getObservations,\n ObservationState,\n setObservations,\n setObservationSections\n} from \"@/store/investigation/observation-module\"\nimport InvestigationService from \"@/api/investigation-service\"\nimport {AuthState, isFacultyWorksUser} from \"@/store/auth-module\"\nimport {Moment} from \"moment\"\nimport {configurationService} from \"@/api/investigation-configuration-service\"\n\n\nexport interface InvestigationState extends TermsState, DateFilterState, PersonFilterState, NoteDialogState, ObservationState {\n relevantDocumentCount: number\n totalDocumentCount: number\n totalReadDocuments: number\n totalStarredDocuments: number\n investigation: InvestigationEntity | null\n documents: DocumentEntity[]\n availableDocumentIds: string[]\n currentPage: number\n documentMarkups: DocumentMarkupsEntity[]\n graph: GraphEntity\n graphType: GraphType\n timeline: TimelineChartData\n externalSeries: string[]\n viewModeLevel: number\n highlightModes: string[]\n topsExpansion: {[key: string]: boolean}\n topsSorting: {[key: string]: boolean}\n groupsExpansion: {[key: string]: boolean}\n relevancyStatus: RelevancyStatusEntity\n activityStatus: number\n activeRequests: number\n loadingInvestigation: boolean\n renderingGraph: boolean\n tops: Tops | null\n persons: PersonEntity[]\n documentsSortBy: string\n personForRightPaneSummary: PersonEntity | null\n entityRelationshipForSummary: MentionedEntity[] | null\n entityForSummary: MentionedEntity | null\n showAuthorGraphLegend: boolean\n authorGraphSettings: AuthorGraphSettings\n unifiedGraphSettings: UnifiedGraphSettings\n selectedNodes: string[]\n shortestPath: string[]\n termPopupMenuData: Optional\n displayedResultsStatus: DisplayedResultsStatus\n selectedDocumentClassifications: string[]\n freeTextFilter: string | null\n selectedTops: SelectedTop[]\n includeOnlyUnlabeled: boolean\n isInProfile: boolean\n isInReviewProfile: boolean\n isInOverview: boolean\n isInDisambiguate: boolean\n recentAffiliations: RecentAffiliation[]\n bibliographicDetails: BibliographicDetails\n disambiguatePersonName: string | null\n cancelToken: CancelTokenSource\n documentLabels: string[]\n entityLabels: string[]\n personRelevantCounts: PersonRelevantCounts\n matchingResearcherIds: MatchingResearcherIds\n bwJournals: Map\n activeAuthorIds: string[]\n filterByResearchers: boolean\n filterToDuplicates: boolean\n filterToUnaffiliated: boolean\n filterToUnknownPublishers: boolean\n filterToMissingVolume: boolean\n filterToMissingDate: boolean\n filterToSpecificUrls: string[]\n}\n\n\nconst module = {\n namespaced: true,\n\n state(): InvestigationState {\n const savedViewLevelMode = localStorage.getItem(\"viewModeLevel\")\n\n return {\n relevantDocumentCount: 0,\n totalDocumentCount: 0,\n totalReadDocuments: 0,\n totalStarredDocuments: 0,\n investigation: null,\n documents: [],\n currentPage: 0,\n availableDocumentIds: [],\n documentMarkups: [],\n graph: {nodes: [], edges: []},\n graphType: null,\n timeline: new TimelineChartData({dataItems: [], columns: []}, [], [], null),\n externalSeries: [],\n viewModeLevel: savedViewLevelMode ? parseInt(savedViewLevelMode, 10) : 1,\n highlightModes: [\"Highlight Search Terms\", \"Highlight Mentioned Entities\"],\n observationViewModeLevel: 1,\n topsExpansion: {},\n topsSorting: {},\n groupsExpansion: {},\n sectionsExpansion: {},\n relevancyStatus: {relevancyScore: 0, differentEnough: false},\n activityStatus: 0,\n dateHistogram: new DateHistogram(),\n dateFilterStart: null,\n dateFilterEnd: null,\n activeRequests: 0,\n loadingInvestigation: true,\n renderingGraph: false,\n tops: null,\n persons: [],\n documentsSortBy: \"relevance\",\n personForRightPaneSummary: null,\n entityForSummary: null,\n entityRelationshipForSummary: null,\n showAuthorGraphLegend: false,\n authorGraphSettings: {layout: \"circular\", sizeBy: {option: \"documentCount\"}, colorBy: {option: \"recentAffiliationCode\"}, filter: \"\", showSnowflakes: true, personForRightPaneSummary: null},\n unifiedGraphSettings: {layout: \"circular\", filter: \"\"},\n selectedNodes: [],\n shortestPath: [],\n termPopupMenuData: undefined,\n noteDialogData: undefined,\n personId: null,\n disambiguationPersonId: null,\n displayedResultsStatus: \"All\",\n selectedDocumentClassifications: [],\n freeTextFilter: null,\n selectedTops: [],\n includeOnlyUnlabeled: false,\n isInProfile: false,\n isInReviewProfile: false,\n isInOverview: false,\n isInDisambiguate: false,\n terms: [],\n suggestedTerms: [],\n termGroups: [],\n observationSections: [],\n recentAffiliations: [],\n bibliographicDetails: {articles: 0, authors: 0, bookChapters: 0, books: 0, patents: 0},\n disambiguatePersonName: null,\n cancelToken: axios.CancelToken.source(),\n documentLabels: [],\n entityLabels: [],\n observations: [],\n draggedObservation: null,\n sectionObservationOrder: [],\n personRelevantCounts: {},\n matchingResearcherIds: {},\n bwJournals: new Map(),\n activeAuthorIds: [],\n filterByResearchers: false,\n filterToDuplicates: false,\n filterToUnaffiliated: false,\n filterToUnknownPublishers: false,\n filterToMissingVolume: false,\n filterToMissingDate: false,\n filterToSpecificUrls: []\n }\n },\n\n getters: {\n getInvestigation(state: InvestigationState): InvestigationEntity | null {\n return state.investigation\n },\n\n getRelevantDocumentCount(state: InvestigationState): number {\n return state.relevantDocumentCount\n },\n\n getTotalDocumentCount(state: InvestigationState): number {\n return state.totalDocumentCount\n },\n\n getRelevancyStatus(state: InvestigationState): RelevancyStatusEntity {\n return state.relevancyStatus\n },\n\n getHarvestActivity(state: InvestigationState): number {\n return state.activityStatus\n },\n\n getAvailableDocumentIds(state: InvestigationState): string[] {\n return state.availableDocumentIds\n },\n\n getCurrentPage(state: InvestigationState): number {\n return state.currentPage\n },\n\n getDisplayedResultsStatus(state: InvestigationState): DisplayedResultsStatus {\n return state.displayedResultsStatus\n },\n\n getIsInProfile(state: InvestigationState): boolean {\n return state.isInProfile\n },\n\n getIsInReviewProfile(state: InvestigationState): boolean {\n return state.isInReviewProfile\n },\n\n getIsInOverview(state: InvestigationState): boolean {\n return state.isInOverview\n },\n\n getIsInDisambiguate(state: InvestigationState): boolean {\n return state.isInDisambiguate\n },\n\n getFreeTextFilter(state: InvestigationState): string | null {\n return state.freeTextFilter\n },\n\n getSelectedTops(state: InvestigationState): SelectedTop[] {\n return state.selectedTops\n },\n\n getIncludeOnlyUnlabeled(state: InvestigationState): boolean {\n return state.includeOnlyUnlabeled\n },\n\n getTopAuthors(state: InvestigationState): ScoredAuthorEntity[] {\n return state.tops ? state.tops.topAuthors : []\n },\n\n getTopJournals(state: InvestigationState): ScoredNameEntity[] {\n return state.tops ? state.tops.topJournals : []\n },\n\n getTopConferences(state: InvestigationState): ScoredNameEntity[] {\n return state.tops ? state.tops.topConferences : []\n },\n\n getTopInstitutions(state: InvestigationState): ScoredAffiliationEntity[] {\n return state.tops ? state.tops.topInstitutions : []\n },\n\n getTopRegions(state: InvestigationState): ScoredRegionEntity[] {\n return state.tops ? state.tops.topRegions : []\n },\n\n getTopAffiliationGeographies(state: InvestigationState): ScoredNameEntity[] {\n return state.tops ? state.tops.topAffiliationGeographies : []\n },\n\n getTopEmails(state: InvestigationState): ScoredNameEntity[] {\n return state.tops ? state.tops.topEmails : []\n },\n\n getTopClassifications(state: InvestigationState): ScoredNameEntity[] {\n return state.tops ? state.tops.topClassifications : []\n },\n\n getTopPersons(state: InvestigationState): ScoredNameEntity[] {\n return state.tops ? state.tops.topPersons : []\n },\n\n getTopOrganizations(state: InvestigationState): ScoredNameEntity[] {\n return state.tops ? state.tops.topOrganizations : []\n },\n\n getTopLocations(state: InvestigationState): ScoredNameEntity[] {\n return state.tops ? state.tops.topLocations : []\n },\n\n getTopConcepts(state: InvestigationState): ScoredNameEntity[] {\n return state.tops ? state.tops.topConcepts : []\n },\n\n getTopDomains(state: InvestigationState): ScoredNameEntity[] {\n return state.tops ? state.tops.topDomains : []\n },\n\n getTopLanguages(state: InvestigationState): ScoredNameEntity[] {\n return state.tops ? state.tops.topLanguages : []\n },\n\n getTopTerms(state: InvestigationState): ScoredNameEntity[] {\n return state.tops ? state.tops.topTerms : []\n },\n\n getTopLabels(state: InvestigationState): ScoredNameEntity[] {\n return state.tops ? state.tops.topLabels : []\n },\n\n getTopLexemes(state: InvestigationState): TopLexemeEntity[] {\n return state.tops ? state.tops.topLexemes : []\n },\n\n getDocumentLabels(state: InvestigationState): string[] {\n return state.documentLabels\n },\n\n getMentionedEntityLabels(state: InvestigationState): string[] {\n return state.entityLabels\n },\n\n getPersonForRightPaneSummary(state: InvestigationState): PersonEntity | null {\n return state.personForRightPaneSummary\n },\n\n getEntityRelationshipForSummary(state: InvestigationState): MentionedEntity[] | null {\n return state.entityRelationshipForSummary\n },\n\n getEntityForSummary(state: InvestigationState): MentionedEntity | null {\n return state.entityForSummary\n },\n\n getShowAuthorGraphLegend(state: InvestigationState): boolean {\n return state.showAuthorGraphLegend\n },\n\n getAuthorGraphSettings(state: InvestigationState): AuthorGraphSettings {\n return state.authorGraphSettings\n },\n\n getUnifiedGraphSettings(state: InvestigationState): UnifiedGraphSettings {\n return state.unifiedGraphSettings\n },\n\n getSelectedNodes(state: InvestigationState): string[] {\n return state.selectedNodes\n },\n\n getShortestPath(state: InvestigationState): string[] {\n return state.shortestPath\n },\n\n getPersons(state: InvestigationState): PersonEntity[] {\n return state.persons\n },\n\n getDocumentsSortBy(state: InvestigationState): string {\n return state.documentsSortBy\n },\n\n getAlertsEnabled(state: InvestigationState): boolean {\n return state.investigation ? state.investigation.alertsEnabled : false\n },\n\n getIsBusy(state: InvestigationState): boolean {\n return state.activeRequests > 0\n },\n\n getIsLoadingInvestigation(state: InvestigationState): boolean {\n return state.loadingInvestigation\n },\n\n getIsRenderingGraph(state: InvestigationState): boolean {\n return state.renderingGraph\n },\n\n getCancelToken(state: InvestigationState): CancelTokenSource {\n return state.cancelToken\n },\n\n getRecentAffiliations(state: InvestigationState): RecentAffiliation[] {\n return state.recentAffiliations\n },\n\n getDisambiguatePersonName(state: InvestigationState): string | null {\n return state.disambiguatePersonName\n },\n\n getPersonRelevantCounts(state: InvestigationState): PersonRelevantCounts {\n return state.personRelevantCounts\n },\n\n getMatchingResearcherIds(state: InvestigationState): MatchingResearcherIds {\n return state.matchingResearcherIds\n },\n\n getBWJournals(state: InvestigationState): Map {\n return state.bwJournals\n },\n\n getActiveAuthorIds(state: InvestigationState): string[] {\n return state.activeAuthorIds\n },\n\n getFilterByResearchers(state: InvestigationState): boolean {\n return state.filterByResearchers\n },\n\n getFilterToDuplicates(state: InvestigationState): boolean {\n return state.filterToDuplicates\n },\n\n getFilterToUnaffiliated(state: InvestigationState): boolean {\n return state.filterToUnaffiliated\n },\n\n getFilterToUnknownPublishers(state: InvestigationState): boolean {\n return state.filterToUnknownPublishers\n },\n\n getFilterToMissingVolume(state: InvestigationState): boolean {\n return state.filterToMissingVolume\n },\n\n getFilterToMissingDate(state: InvestigationState): boolean {\n return state.filterToMissingDate\n },\n\n getFilterToSpecificUrls(state: InvestigationState): string[] {\n return state.filterToSpecificUrls\n },\n\n ...documents.getters,\n ...terms.getters,\n ...dateFilterModule.getters,\n ...personFilterModule.getters,\n ...termPopupMenu.getters,\n ...noteDialog.getters,\n ...graph.getters,\n ...observations.getters\n },\n\n mutations: {\n setInvestigation(state: InvestigationState, investigation: InvestigationEntity | null) {\n state.investigation = investigation\n },\n\n setTitle(state: InvestigationState, title: string) {\n state.investigation = {...state.investigation!, title}\n },\n\n setRelevantDocumentsCount(state: InvestigationState, relevantDocumentsCount: number) {\n state.relevantDocumentCount = relevantDocumentsCount\n },\n\n setActivityStatus(state: InvestigationState, activityStatus: number) {\n state.activityStatus = activityStatus\n },\n\n setAvailableDocumentIds(state: InvestigationState, documentIds: string[]) {\n state.availableDocumentIds = documentIds\n },\n\n setCurrentPage(state: InvestigationState, page: number) {\n state.currentPage = page\n },\n\n setRelevancyStatus(state: InvestigationState, relevancyStatus: RelevancyStatusEntity) {\n state.relevancyStatus = relevancyStatus\n },\n\n setDisplayedResultsStatus(state: InvestigationState, displayedResultsStatus: DisplayedResultsStatus) {\n state.displayedResultsStatus = displayedResultsStatus\n },\n\n setIsInProfile(state: InvestigationState, isInProfile: boolean) {\n state.isInProfile = isInProfile\n },\n\n setIsInReviewProfile(state: InvestigationState, isInReviewProfile: boolean) {\n state.isInReviewProfile = isInReviewProfile\n },\n\n setIsInOverview(state: InvestigationState, isInOverview: boolean) {\n state.isInOverview = isInOverview\n },\n\n setIsInDisambiguate(state: InvestigationState, isInDisambiguate: boolean) {\n state.isInDisambiguate = isInDisambiguate\n },\n\n setSelectedTops(state: InvestigationState, selectedTops: SelectedTop[]) {\n state.selectedTops = selectedTops\n },\n\n setIncludeOnlyUnlabeled(state: InvestigationState, includeOnlyUnlabeled: boolean) {\n state.includeOnlyUnlabeled = includeOnlyUnlabeled\n },\n\n setFreeTextFilter(state: InvestigationState, text: string | null) {\n state.freeTextFilter = text\n },\n\n setTops(state: InvestigationState, tops: Tops | null) {\n state.tops = tops\n },\n\n setTopLabels(state: InvestigationState, topLabels: ScoredNameEntity[]) {\n if (state.tops) { state.tops.topLabels = topLabels }\n },\n\n setDocumentCounts(state: InvestigationState, counts: { totalDocumentCount: number, relevantDocumentCount: number }) {\n state.totalDocumentCount = counts.totalDocumentCount\n state.relevantDocumentCount = counts.relevantDocumentCount\n },\n\n setDocumentLabels(state: InvestigationState, labels: string[]) {\n state.documentLabels = labels\n },\n\n setMentionedEntityLabels(state: InvestigationState, labels: string[]) {\n state.entityLabels = labels\n },\n\n increaseActiveRequests(state: InvestigationState) {\n state.activeRequests = state.activeRequests + 1\n },\n\n decreaseActiveRequests(state: InvestigationState) {\n state.activeRequests = state.activeRequests - 1\n },\n\n setIsLoadingInvestigation(state: InvestigationState, loading: boolean) {\n state.loadingInvestigation = loading\n },\n\n setIsRenderingGraph(state: InvestigationState, renderingGraph: boolean) {\n state.renderingGraph = renderingGraph\n },\n\n setPersons(state: InvestigationState, persons: PersonEntity[]) {\n state.persons = persons\n },\n\n setDocumentsSortBy(state: InvestigationState, sortBy: string) {\n state.documentsSortBy = sortBy\n },\n\n setPersonForRightPaneSummary(state: InvestigationState, person: PersonEntity | null) {\n state.personForRightPaneSummary = person\n },\n\n setEntityRelationshipForSummary(state: InvestigationState, entity: MentionedEntity[] | null) {\n state.entityRelationshipForSummary = entity\n },\n\n setEntityForSummary(state: InvestigationState, entity: MentionedEntity | null) {\n state.entityForSummary = entity\n },\n\n setShowAuthorGraphLegend(state: InvestigationState, showLegend: boolean) {\n state.showAuthorGraphLegend = showLegend\n },\n\n setAuthorGraphSettings(state: InvestigationState, settings: AuthorGraphSettings) {\n state.authorGraphSettings = settings\n },\n\n setUnifiedGraphSettings(state: InvestigationState, settings: UnifiedGraphSettings) {\n state.unifiedGraphSettings = settings\n },\n\n setSelectedNodes(state: InvestigationState, nodes: string[]) {\n state.selectedNodes = nodes\n },\n\n setShortestPath(state: InvestigationState, nodes: string[]) {\n state.shortestPath = nodes\n },\n\n setCancelToken(state: InvestigationState, cancelToken: CancelTokenSource) {\n state.cancelToken = cancelToken\n },\n\n setDisambiguatePersonName(state: InvestigationState, disambiguatePersonName: string | null) {\n state.disambiguatePersonName = disambiguatePersonName\n state.isInDisambiguate = !!disambiguatePersonName\n },\n\n setPersonRelevantCounts(state: InvestigationState, personRelevantCounts: PersonRelevantCounts) {\n state.personRelevantCounts = personRelevantCounts\n },\n\n setMatchingResearcherIds(state: InvestigationState, ids: MatchingResearcherIds) {\n state.matchingResearcherIds = ids\n },\n\n setBWJournals(state: InvestigationState, bwJournals: Map) {\n state.bwJournals = bwJournals\n },\n\n setActiveAuthorIds(state: InvestigationState, ids: string[]) {\n state.activeAuthorIds = ids\n },\n\n setFilterByResearchers(state: InvestigationState, filter: boolean) {\n state.filterByResearchers = filter\n },\n\n setFilterToDuplicates(state: InvestigationState, filter: boolean) {\n state.filterToDuplicates = filter\n },\n\n setFilterToUnaffiliated(state: InvestigationState, filter: boolean) {\n state.filterToUnaffiliated = filter\n },\n\n setFilterToUnknownPublishers(state: InvestigationState, filter: boolean) {\n state.filterToUnknownPublishers = filter\n },\n\n setFilterToMissingVolume(state: InvestigationState, filter: boolean) {\n state.filterToMissingVolume = filter\n },\n\n setFilterToMissingDate(state: InvestigationState, filter: boolean) {\n state.filterToMissingDate = filter\n },\n\n setFilterToSpecificUrls(state: InvestigationState, filter: string[]) {\n state.filterToSpecificUrls = filter\n },\n\n clearFilters(state: InvestigationState) {\n state.displayedResultsStatus = \"All\"\n state.selectedTops = []\n state.dateFilterStart = null\n state.freeTextFilter = null\n state.filterByResearchers = false\n state.filterToDuplicates = false\n state.filterToUnaffiliated = false\n state.filterToUnknownPublishers = false\n state.filterToMissingVolume = false\n state.filterToMissingDate = false\n state.filterToSpecificUrls = []\n },\n\n ...documents.mutations,\n ...terms.mutations,\n ...dateFilterModule.mutations,\n ...personFilterModule.mutations,\n ...termPopupMenu.mutations,\n ...noteDialog.mutations,\n ...graph.mutations,\n ...observations.mutations\n },\n\n actions: {\n async fetchInvestigation(context: ActionContext, payload: { id: string, investigationType: InvestigationType }): Promise {\n const { investigationType, id } = payload\n await wrapActiveRequests(context as unknown as Store, async () => {\n const investigation = await investigationService.getInvestigation(id, investigationType)\n\n if (investigation) {\n setInvestigation(context, investigation)\n }\n })\n },\n\n async fetchTopicInvestigationExport(context: ActionContext, id: string): Promise {\n return await topicInvestigationService.export(id, getSpec(context))\n },\n\n async fetchPersonInvestigationExport(context: ActionContext, id: string): Promise {\n return await personInvestigationService.export(id, getSpec(context))\n },\n\n async fetchInvestigationHtml(context: ActionContext,\n payload: { id: string, theme: string, filename: string }): Promise {\n return await personInvestigationService.exportHtml(payload.id, payload.theme, payload.filename)\n },\n\n async fetchPersonProfile(context: ActionContext): Promise {\n const investigation = getInvestigation(context)\n const investigationId = investigation!!.id\n const investigationType = investigation!!.investigationType\n const isInOverview = getIsInOverview(context)\n const overviewSpec: InvestigationRequestSpec = {\n dateFilter: {startYear: null, endYear: null},\n displayedResultsStatus: \"All\",\n selectedTops: [],\n includeOnlyUnlabeled: false,\n includeSingleAuthoredDocuments: true,\n personId: getPersonId(context),\n personName: null,\n sortDocumentsBy: getDocumentsSortBy(context),\n requestedDocumentIds: [],\n highlightMode: [],\n onlyInvestigationResearchers: false,\n onlyDuplicateDocuments: false,\n onlyUnaffiliated: false,\n onlyUnknownPublishers: false,\n onlyMissingVolume: false,\n onlyMissingDate: false,\n specificDocumentUrls: []\n }\n const spec = isInOverview ? overviewSpec : getSpec(context)\n if (getIsInReviewProfile(context)) {\n replaceSelectedClassificationsForReviewProfile(spec)\n }\n\n await wrapActiveRequests(context as unknown as Store, async () => {\n const result = await investigationService.getPersonProfile(investigationId, spec, investigationType) as InvestigationDataEntity\n\n if (result && investigationId === getInvestigation(context)!!.id) {\n setDateHistogram(context, result.dateHistogram)\n setDocuments(context, result.documents)\n setDocumentCounts(context, result.documentCounts)\n\n if (getIsInReviewProfile(context)) {\n replaceTopClassificationForReviewProfile(result)\n }\n\n setTops(context, result.tops)\n }\n })\n },\n\n async fetchDocumentMarkups(context: ActionContext): Promise {\n const spec = getSpec(context)\n const pageSize = getPageSize(context)\n const investigationId = getInvestigationId(context, \"add term\")\n const documentMarkups = await investigationService.getDocumentMarkups(getInvestigationId(context, \"add term\"), spec, pageSize)\n if (documentMarkups && investigationId === getInvestigationId(context, \"add term\")) {\n setDocumentMarkups(context, documentMarkups)\n }\n },\n\n async updateTitle(context: ActionContext, title: string) {\n const investigation = {...getInvestigation(context), title} as InvestigationEntity\n setInvestigation(context, investigation)\n await investigationsService.update(getInvestigationId(context, \"update-current-investigation\"), title)\n },\n\n async updateAlertsEnabled(context: ActionContext, alertsEnabled: boolean) {\n const investigation = {...getInvestigation(context), alertsEnabled} as InvestigationEntity\n setInvestigation(context, investigation)\n const {title, goals} = investigation\n await investigationsService.update(getInvestigationId(context, \"update-alerts-enabled\"), title, goals, alertsEnabled)\n },\n\n async updateBWJournal(context: ActionContext, journalInfo: BWJournal) {\n const investigationId = getInvestigationId(context, \"update-bw-journal\")\n await configurationService.setJournalBWList(investigationId, journalInfo)\n // new map needed because of reactivity...\n const newMap = new Map()\n context.state.bwJournals.forEach((value, key) => { newMap.set(key, value) })\n newMap.set(journalInfo.journal, journalInfo.list)\n setBWJournals(context, newMap)\n },\n\n async addActiveAuthor(context: ActionContext,\n {activeAuthorId, activeAuthorName}: { activeAuthorId: string, activeAuthorName: string }) {\n const investigationId = getInvestigationId(context, \"update-active-author\")\n await configurationService.addActiveAuthor(investigationId, `${activeAuthorId}, ${activeAuthorName}`)\n // new list needed because of reactivity...\n const newList = context.state.activeAuthorIds.map(x => x)\n newList.push(activeAuthorId)\n setActiveAuthorIds(context, newList)\n },\n\n async fetchTopLabels(context: ActionContext): Promise {\n const spec = getSpec(context)\n const pageSize = 0\n\n const investigationType = getInvestigation(context)!.investigationType\n const investigationId = getInvestigationId(context, \"fetch-all-topic-data\")\n const result = await investigationService.getAllData(investigationId, spec, pageSize, investigationType, getCancelToken(context).token) as TopicInvestigationDataEntity\n const investigationInStore = getInvestigation(context)\n const isInSameContext = investigationInStore && investigationInStore.id === investigationId\n\n if (result && isInSameContext) {\n setTopLabels(context, result.tops.topLabels)\n }\n },\n\n async fetchAllData(context: ActionContext): Promise {\n const firstTime = getIsLoadingInvestigation(context)\n if (firstTime) {\n await fetchInvestigationLastFilter(context)\n }\n\n getCancelToken(context).cancel()\n setCancelToken(context, axios.CancelToken.source())\n const investigation = getInvestigation(context)\n const isInTopicInvestigation = investigation!.investigationType === \"Topic\"\n\n const isInProfile = getIsInProfile(context)\n isInProfile ? await fetchPersonProfile(context) :\n isInTopicInvestigation ? await fetchAllTopicData(context) : await fetchAllPersonData(context)\n if (!getObservations(context).length) {\n await fetchAllObservations(context)\n }\n setIsLoadingInvestigation(context, false)\n },\n\n async fetchAllPersonData(context: ActionContext): Promise {\n const spec = getSpec(context)\n const pageSize = getPageSize(context)\n const requestedInvestigationId = getInvestigationId(context, \"fetch-all-person-data\")\n\n await wrapActiveRequests(context as unknown as Store, async () => {\n const result = await investigationService.getAllData(requestedInvestigationId, spec, pageSize, \"Person\", getCancelToken(context).token) as PersonInvestigationDataEntity\n\n if (result) {\n const investigationInStore = getInvestigation(context)\n if (investigationInStore && investigationInStore.id === requestedInvestigationId) {\n setAvailableDocumentIds(context, result.availableDocumentIds)\n setCurrentPage(context, 1)\n setDateHistogram(context, result.dateHistogram)\n setDocuments(context, result.documents)\n setDocumentCounts(context, result.documentCounts)\n setDateHistogram(context, result.dateHistogram)\n setTops(context, result.tops)\n setPersons(context, result.persons)\n setPersonRelevantCounts(context, result.personRelevantCounts)\n setMatchingResearcherIds(context, result.matchingResearcherIds)\n setRelevancyStatus(context, {differentEnough: false, relevancyScore: 0})\n setDocumentLabels(context, result.labels)\n const journals = new Map(result.bwJournals.map(x => [x.journal, x.list]))\n setBWJournals(context, journals)\n setActiveAuthorIds(context, result.activeAuthorIds)\n }\n }\n })\n },\n\n async fetchAllTopicData(context: ActionContext): Promise {\n const spec = getSpec(context)\n const pageSize = getPageSize(context)\n\n await wrapActiveRequests(context as unknown as Store, async () => {\n const investigationId = getInvestigationId(context, \"fetch-all-topic-data\")\n const result = await investigationService.getAllData(investigationId, spec, pageSize, \"Topic\", getCancelToken(context).token) as TopicInvestigationDataEntity\n const investigationInStore = getInvestigation(context)\n const isInSameContext = investigationInStore && investigationInStore.id === investigationId\n\n function shouldUseExistingTerms(newTerms: InvestigationTermEntity[]) {\n const oldTerms = getTerms(context)\n const listsAreEqualSize = oldTerms.length === newTerms.length\n const allTermsAreIncludedInNewList = oldTerms.reduce((areTheSame, oldTerm) =>\n areTheSame && newTerms.findIndex(newTerm =>\n newTerm.term.toLocaleLowerCase() === oldTerm.term.toLocaleLowerCase() &&\n newTerm.group === oldTerm.group\n ) > -1, true)\n return listsAreEqualSize && allTermsAreIncludedInNewList\n }\n if (result && isInSameContext) {\n const activeTerms = shouldUseExistingTerms(result.terms.active) ? getTerms(context) : result.terms.active\n setAvailableDocumentIds(context, result.availableDocumentIds)\n setCurrentPage(context, 1)\n setDateHistogram(context, result.dateHistogram)\n setDocuments(context, result.documents)\n setDocumentCounts(context, result.documentCounts)\n setDocumentMarkups(context, [])\n setTerms(context, activeTerms)\n setTermGroups(context, result.termGroups)\n setSuggestedTerms(context, result.terms.suggested)\n setDateHistogram(context, result.dateHistogram)\n setTops(context, result.tops)\n setDocumentLabels(context, result.labels)\n }\n })\n },\n\n\n async fetchNextDocuments(context: ActionContext): Promise {\n const spec = getSpec(context)\n const investigationType = getInvestigation(context)!.investigationType\n\n const investigationId = getInvestigationId(context, \"fetch-next-documents\")\n const nextDocuments = await investigationService.getNextDocuments(investigationId, spec, investigationType) as DocumentEntity[]\n const investigationInStore = getInvestigation(context)\n const isInSameContext = investigationInStore && investigationInStore.id === investigationId\n\n if (nextDocuments && isInSameContext) {\n setCurrentPage(context, getCurrentPage(context) + 1)\n setDocuments(context, getDocuments(context).concat(nextDocuments))\n }\n },\n\n\n async fetchGraphData(context: ActionContext): Promise {\n if (getGraphType(context) === \"Timeline\") {\n await fetchTimelineData(context)\n return\n }\n\n const firstTime = getIsLoadingInvestigation(context)\n if (firstTime) {\n await fetchInvestigationLastFilter(context)\n }\n\n const cancelToken = getCancelToken(context)\n if (cancelToken) {\n cancelToken.cancel()\n }\n setCancelToken(context, axios.CancelToken.source())\n if (getInvestigation(context)!.investigationType === \"Topic\") {\n await fetchGraphTopicData(context)\n } else {\n await fetchGraphPersonData(context)\n }\n setRelevancyStatus(context, {differentEnough: false, relevancyScore: 0})\n setIsLoadingInvestigation(context, false)\n },\n\n\n async fetchGraphPersonData(context: ActionContext): Promise {\n setIsRenderingGraph(context, true)\n const overviewSpec: InvestigationRequestSpec = {\n dateFilter: {startYear: null, endYear: null},\n displayedResultsStatus: \"All\",\n selectedTops: [],\n includeOnlyUnlabeled: false,\n includeSingleAuthoredDocuments: true,\n personId: getPersonId(context),\n personName: null,\n sortDocumentsBy: getDocumentsSortBy(context),\n requestedDocumentIds: [],\n highlightMode: [],\n onlyInvestigationResearchers: false,\n onlyDuplicateDocuments: false,\n onlyUnaffiliated: false,\n onlyUnknownPublishers: false,\n onlyMissingVolume: false,\n onlyMissingDate: false,\n specificDocumentUrls: []\n }\n const isInOverview = getIsInOverview(context)\n const spec = isInOverview ? overviewSpec : getSpec(context)\n const graphType = getGraphType(context) || \"Author\"\n let sizeBy\n let colorBy\n if (graphType === \"Author\") {\n const settings = getAuthorGraphSettings(context)\n if (settings.sizeBy.option === \"similarity\") {\n sizeBy = settings.sizeBy.personId\n }\n if (settings.colorBy.option === \"similarity\") {\n colorBy = settings.colorBy.personId\n }\n }\n\n const request: GraphRequest = { spec, sizeBy, colorBy }\n await wrapActiveRequests(context as unknown as Store, async () => {\n const investigationId = getInvestigationId(context, \"fetch-all-person-graph-data\")\n const result = await investigationService.getGraphData(investigationId, \"Person\", graphType, request, getCancelToken(context).token) as InvestigationGraphDataEntity\n const currentGraphType = getGraphType(context) || \"Author\"\n const isInSameContext = investigationId === getInvestigationId(context, \"fetch-all-topic-graph-data\") && graphType === currentGraphType\n\n if (result && isInSameContext) {\n setDateHistogram(context, result.dateHistogram)\n setGraph(context, result.graph)\n setTops(context, result.tops)\n setDocumentLabels(context, result.labels)\n } else {\n setIsRenderingGraph(context, false)\n }\n })\n },\n\n async fetchGraphTopicData(context: ActionContext): Promise {\n setIsRenderingGraph(context, true)\n const isInOverview = getIsInOverview(context)\n const overviewSpec: InvestigationRequestSpec = {\n dateFilter: {startYear: null, endYear: null},\n displayedResultsStatus: \"All\",\n selectedTops: [],\n includeOnlyUnlabeled: false,\n includeSingleAuthoredDocuments: true,\n personId: getPersonId(context),\n personName: null,\n sortDocumentsBy: getDocumentsSortBy(context),\n requestedDocumentIds: [],\n highlightMode: [],\n onlyInvestigationResearchers: false,\n onlyDuplicateDocuments: false,\n onlyUnaffiliated: false,\n onlyUnknownPublishers: false,\n onlyMissingVolume: false,\n onlyMissingDate: false,\n specificDocumentUrls: []\n }\n const spec = isInOverview ? overviewSpec : getSpec(context)\n const graphType = getGraphType(context) || \"Author\"\n\n let sizeBy\n let colorBy\n if (graphType === \"Author\") {\n const settings = getAuthorGraphSettings(context)\n if (settings.sizeBy.option === \"similarity\") {\n sizeBy = settings.sizeBy.personId\n }\n if (settings.colorBy.option === \"similarity\") {\n colorBy = settings.colorBy.personId\n }\n }\n\n const request: GraphRequest = { spec, sizeBy, colorBy }\n\n await wrapActiveRequests(context as unknown as Store, async () => {\n const investigationId = getInvestigationId(context, \"fetch-all-topic-graph-data\")\n const result = await investigationService.getGraphData(investigationId, \"Topic\", graphType, request, getCancelToken(context).token) as InvestigationGraphDataEntity\n const currentGraphType = getGraphType(context) || \"Author\"\n const isInSameContext = investigationId === getInvestigationId(context, \"fetch-all-topic-graph-data\") && graphType === currentGraphType\n if (result && isInSameContext) {\n setDateHistogram(context, result.dateHistogram)\n await setGraph(context, result.graph)\n setTops(context, result.tops)\n setTerms(context, result.terms.active)\n setTermGroups(context, result.termGroups!)\n setDocumentLabels(context, result.labels)\n } else {\n setIsRenderingGraph(context, false)\n }\n })\n },\n\n\n async fetchTimelineData(context: ActionContext): Promise {\n getCancelToken(context).cancel()\n setCancelToken(context, axios.CancelToken.source())\n\n setIsRenderingGraph(context, true)\n\n const spec = getSpec(context)\n const graphType = getGraphType(context) || \"Timeline\"\n const request: TimelineRequest = { spec }\n await wrapActiveRequests(context as unknown as Store, async () => {\n const investigation = getInvestigation(context)!\n const result = await investigationService.getTimelineData(investigation.id, investigation.investigationType, \"Timeline\", request) as InvestigationTimelineDataEntity\n const currentGraphType = getGraphType(context) || \"Timeline\"\n const isInSameContext = investigation.id === getInvestigationId(context, \"fetch-timeline-data\") && graphType === currentGraphType\n\n if (result && isInSameContext) {\n const selectedTermGroups = result.termGroups.map(it => it.name)\n const timelineChartData = new TimelineChartData(result.chart, selectedTermGroups, [], null)\n\n setDateHistogram(context, result.dateHistogram)\n setTimeline(context, timelineChartData)\n setTops(context, result.tops)\n setTerms(context, result.terms.active)\n setTermGroups(context, result.termGroups)\n setExternalSeries(context, result.externalSeries)\n } else {\n setIsRenderingGraph(context, false)\n }\n })\n\n setIsLoadingInvestigation(context, false)\n },\n\n\n async fetchAllObservations(context: ActionContext): Promise {\n await wrapActiveRequests(context as unknown as Store, async () => {\n const investigationId = getInvestigationId(context, \"fetch-all-observations\")\n const result = await investigationService.getObservations(investigationId, getInvestigation(context)!.investigationType)\n setIsLoadingInvestigation(context, false)\n const investigationInStore = getInvestigation(context)\n const isInSameContext = investigationInStore && investigationInStore.id === investigationId\n if (isInSameContext && result) {\n setObservationSections(context, result.sections)\n setObservations(context, result.observations)\n }\n })\n },\n\n\n async fetchNextSuggestedTerms(context: ActionContext): Promise {\n const oldTerms = getTerms(context)\n const toInvestigationTerm = (suggestedTerm: SuggestedTerm) => {\n const {term, group, modifier} = suggestedTerm\n return {term, group, modifier} as InvestigationTermEntity\n }\n\n const selectedSuggestedTerms = getSuggestedTerms(context).filter(suggestedTerm => suggestedTerm.selected).map(toInvestigationTerm)\n const rejectedSuggestedTerms = getSuggestedTerms(context).filter(suggestedTerm => !suggestedTerm.selected).map(term => term.term)\n const newInvestigationTerms: InvestigationTermEntity[] = oldTerms.concat(selectedSuggestedTerms).sort((a, b) => a.term.localeCompare(b.term))\n setTerms(context, newInvestigationTerms)\n\n const investigationId = getInvestigationId(context, \"fetch documents\")\n const spec = getSpec(context)\n const result = await investigationService.getNextSuggestedTerms(investigationId, selectedSuggestedTerms, rejectedSuggestedTerms, spec)\n const investigationInStore = getInvestigation(context)\n const isInSameContext = investigationInStore && investigationInStore.id === investigationId\n if (isInSameContext && result) {\n setSuggestedTerms(context, result)\n } else if (isInSameContext) {\n setTerms(context, oldTerms)\n }\n },\n\n async updateRelevancyStatus(context: ActionContext, relevancyStatus: RelevancyStatusEntity): Promise {\n setRelevancyStatus(context, relevancyStatus)\n const investigation = getInvestigation(context)!\n if (investigation.investigationType === \"Topic\") {\n if (getGraphType(context) === null && relevancyStatus.differentEnough && !getDocuments(context).length && !getIsBusy(context)) {\n await fetchAllTopicData(context)\n }\n }\n },\n\n async showOnlyMyPublications(context: ActionContext): Promise {\n const investigation = getInvestigation(context)!\n\n const mainClusterFilter = await investigationService.getMainClusterFilter(investigation.id)\n const tops = [{name: \"predefined.Persons\", selectedDisplayValue: mainClusterFilter.displayName, selectedValue: mainClusterFilter.personId}] as unknown as SelectedTop[]\n\n setSelectedTops(context, tops)\n getGraphType(context) === null ? await fetchAllData(context) : await fetchGraphData(context)\n },\n\n async clearInvestigationStore(context: ActionContext): Promise {\n setDateHistogram(context, new DateHistogram())\n setTerms(context, [])\n setTermGroups(context, [])\n setSuggestedTerms(context, [])\n setRelevancyStatus(context, {differentEnough: false, relevancyScore: 0})\n setActivityStatus(context, 0)\n setDocuments(context, [])\n setDocumentMarkups(context, [])\n setIsRenderingGraph(context, false)\n setGraph(context, {nodes: [], edges: []})\n setGraphType(context, null)\n setTimeline(context, new TimelineChartData({dataItems: [], columns: []}, [], [], null))\n setExternalSeries(context, [])\n setPersons(context, [])\n setPersonRelevantCounts(context, {})\n setMatchingResearcherIds(context, {})\n setBWJournals(context, new Map())\n setDocumentCounts(context, {relevantDocumentCount: 0, totalDocumentCount: 0})\n setTops(context, null)\n setDateFilterYears(context, { start: null, end: null })\n setPersonId(context, null)\n setSelectedTops(context, [])\n setIncludeOnlyUnlabeled(context, false)\n setPersonForRightPaneSummary(context, null)\n setEntityForSummary(context, null)\n setDisambiguatePersonName(context, null)\n setAuthorGraphSettings(context, {layout: \"organic\", sizeBy: {option: \"documentCount\"}, colorBy: {option: \"recentAffiliationCode\"}, filter: \"\", showSnowflakes: true, personForRightPaneSummary: null})\n setSelectedNodes(context, [])\n setShortestPath(context, [])\n setHighlightModes(context, [\"Highlight Search Terms\", \"Highlight Mentioned Entities\"])\n clearTopsExpansion(context)\n clearTopsSorting(context)\n clearGroupsExpansion(context)\n clearSectionsExpansion(context)\n setFreeTextFilter(context, null)\n setDocumentsSortBy(context, \"relevance\")\n setCurrentPage(context, 0)\n setAvailableDocumentIds(context, [])\n setIsLoadingInvestigation(context, true)\n setDocumentLabels(context, [])\n setFilterByResearchers(context, false)\n setFilterToDuplicates(context, false)\n setFilterToUnaffiliated(context, false)\n setFilterToUnknownPublishers(context, false)\n },\n\n async fetchInvestigationLastFilter(context: ActionContext): Promise {\n if (!isFacultyWorksUser(context as unknown as ActionContext)) {\n const investigation = getInvestigation(context)!\n const lastFilter = await investigationService.getLastFilterData(investigation!.id) as InvestigationRequestSpec\n setFilterFromSpec(context, lastFilter)\n }\n },\n\n async preprocessPersonImage(context: ActionContext, {personId, imageData, imageUrl}: {\n personId: string, imageData: ImageCropData | null, imageUrl: string | null}): Promise {\n\n const investigation = getInvestigation(context)!\n\n return await investigationService.preprocessPersonImage(\n investigation.id, investigation.investigationType, personId, imageData, imageUrl)\n },\n\n async updatePersonImage(context: ActionContext, {personId, imageData, imageUrl}: {\n personId: string, imageData: ImageCropData | undefined, imageUrl: string | undefined}): Promise {\n\n const investigation = getInvestigation(context)!\n\n let imageId = null as string | null\n if (imageData || imageUrl) {\n imageId = await InvestigationService.updatePersonImage(\n investigation.id, investigation.investigationType, personId, imageData, imageUrl)\n } else {\n await InvestigationService.clearPersonImage(investigation.id, investigation.investigationType, personId)\n }\n\n const modifiedDocuments = getDocuments(context).map(document => {\n let documentModified = false\n const newAuthors = document.authors.map(author => {\n if (author.id === personId) {\n documentModified = true\n return {...author, imageId }\n } else {\n return author\n }\n })\n\n if (documentModified) {\n return {...document, authors: newAuthors}\n } else {\n return document\n }\n\n })\n setDocuments(context, modifiedDocuments)\n },\n\n async updateLastReviewTime(context: ActionContext,\n {personId, lastReviewTime}: { personId: string, lastReviewTime: Moment })\n : Promise {\n\n const investigation = getInvestigation(context)!\n await investigationService.markPersonReviewed(investigation.id, investigation.investigationType, personId)\n\n const modifiedDocuments = getDocuments(context).map(document => {\n let documentModified = false\n const newAuthors = document.authors.map(author => {\n if (author.id === personId) {\n documentModified = true\n return {...author, lastReviewTime }\n } else {\n return author\n }\n })\n\n if (documentModified) {\n return {...document, authors: newAuthors}\n } else {\n return document\n }\n\n })\n setDocuments(context, modifiedDocuments)\n },\n\n ...documents.actions,\n ...terms.actions,\n ...termPopupMenu.actions,\n ...noteDialog.actions,\n ...observations.actions,\n ...graph.actions\n }\n}\n\nexport default module\n\n\nconst { read, commit, dispatch } = getStoreAccessors(\"investigation\")\n\nexport const getInvestigation = read(module.getters.getInvestigation)\nexport const setInvestigation = commit(module.mutations.setInvestigation)\nexport const setTitle = commit(module.mutations.setTitle)\n\nexport const getActivityStatus = read(module.getters.getHarvestActivity)\nexport const setActivityStatus = commit(module.mutations.setActivityStatus)\nexport const getRelevancyStatus = read(module.getters.getRelevancyStatus)\nexport const setRelevancyStatus = commit(module.mutations.setRelevancyStatus)\n\nexport const getAvailableDocumentIds = read(module.getters.getAvailableDocumentIds)\nexport const setAvailableDocumentIds = commit(module.mutations.setAvailableDocumentIds)\nexport const getCurrentPage = read(module.getters.getCurrentPage)\nexport const setCurrentPage = commit(module.mutations.setCurrentPage)\n\nexport const getDisplayedResultsStatus = read(module.getters.getDisplayedResultsStatus)\nexport const setDisplayedResultsStatus = commit(module.mutations.setDisplayedResultsStatus)\n\nexport const getIsInProfile = read(module.getters.getIsInProfile)\nexport const setIsInProfile = commit(module.mutations.setIsInProfile)\n\nexport const getIsInReviewProfile = read(module.getters.getIsInReviewProfile)\nexport const setIsInReviewProfile = commit(module.mutations.setIsInReviewProfile)\n\nexport const getIsInOverview = read(module.getters.getIsInOverview)\nexport const setIsInOverview = commit(module.mutations.setIsInOverview)\n\nexport const getIsInDisambiguate = read(module.getters.getIsInDisambiguate)\nexport const setIsInDisambiguate = commit(module.mutations.setIsInDisambiguate)\n\nexport const getSelectedTops = read(module.getters.getSelectedTops)\nexport const setSelectedTops = commit(module.mutations.setSelectedTops)\n\nexport const getIncludeOnlyUnlabeled = read(module.getters.getIncludeOnlyUnlabeled)\nexport const setIncludeOnlyUnlabeled = commit(module.mutations.setIncludeOnlyUnlabeled)\n\nexport const getFreeTextFilter = read(module.getters.getFreeTextFilter)\nexport const setFreeTextFilter = commit(module.mutations.setFreeTextFilter)\n\nexport const clearFilters = commit(module.mutations.clearFilters)\n\nexport const getTotalDocumentCount = read(module.getters.getTotalDocumentCount)\nexport const getRelevantDocumentCount = read(module.getters.getRelevantDocumentCount)\nconst setDocumentCounts = commit(module.mutations.setDocumentCounts)\n\nexport const getIsBusy = read(module.getters.getIsBusy)\nexport const increaseActiveRequests = commit(module.mutations.increaseActiveRequests)\nexport const decreaseActiveRequests = commit(module.mutations.decreaseActiveRequests)\nexport const getIsLoadingInvestigation = read(module.getters.getIsLoadingInvestigation)\nexport const setIsLoadingInvestigation = commit(module.mutations.setIsLoadingInvestigation)\n\nexport const getIsRenderingGraph = read(module.getters.getIsRenderingGraph)\nexport const setIsRenderingGraph = commit(module.mutations.setIsRenderingGraph)\n\nexport const getTopAuthors = read(module.getters.getTopAuthors)\nexport const getJournals = read(module.getters.getTopJournals)\nexport const getTopConferences = read(module.getters.getTopConferences)\nexport const getTopInstitutions = read(module.getters.getTopInstitutions)\nexport const getTopRegions = read(module.getters.getTopRegions)\nexport const getTopAffiliationGeographies = read(module.getters.getTopAffiliationGeographies)\nexport const getTopEmails = read(module.getters.getTopEmails)\nexport const getTopClassifications = read(module.getters.getTopClassifications)\nexport const getTopPersons = read(module.getters.getTopPersons)\nexport const getTopOrganizations = read(module.getters.getTopOrganizations)\nexport const getTopLocations = read(module.getters.getTopLocations)\nexport const getTopConcepts = read(module.getters.getTopConcepts)\nexport const getTopDomains = read(module.getters.getTopDomains)\nexport const getTopLanguages = read(module.getters.getTopLanguages)\nexport const getTopLabels = read(module.getters.getTopLabels)\nexport const getTopLexemes = read(module.getters.getTopLexemes)\nexport const getTopTerms = read(module.getters.getTopTerms)\nconst setTops = commit(module.mutations.setTops)\nexport const setTopLabels = commit(module.mutations.setTopLabels)\n\nexport const getDocumentLabels = read(module.getters.getDocumentLabels)\nexport const setDocumentLabels = commit(module.mutations.setDocumentLabels)\nexport const setPersonRelevantCounts = commit(module.mutations.setPersonRelevantCounts)\nexport const getMentionedEntityLabels = read(module.getters.getMentionedEntityLabels)\nexport const setMentionedEntityLabels = commit(module.mutations.setMentionedEntityLabels)\nexport const getMatchingResearcherIds = read(module.getters.getMatchingResearcherIds)\nexport const setMatchingResearcherIds = commit(module.mutations.setMatchingResearcherIds)\nexport const getBWJournals = read(module.getters.getBWJournals)\nexport const setBWJournals = commit(module.mutations.setBWJournals)\nexport const getActiveAuthorIds = read(module.getters.getActiveAuthorIds)\nexport const setActiveAuthorIds = commit(module.mutations.setActiveAuthorIds)\n\nexport const getPersonForRightPaneSummary = read(module.getters.getPersonForRightPaneSummary)\nexport const setPersonForRightPaneSummary = commit(module.mutations.setPersonForRightPaneSummary)\n\nexport const getEntityForSummary = read(module.getters.getEntityForSummary)\nexport const setEntityForSummary = commit(module.mutations.setEntityForSummary)\n\nexport const getEntityRelationshipForSummary = read(module.getters.getEntityRelationshipForSummary)\nexport const setEntityRelationshipForSummary = commit(module.mutations.setEntityRelationshipForSummary)\n\nexport const getShowAuthorGraphLegend = read(module.getters.getShowAuthorGraphLegend)\nexport const setShowAuthorGraphLegend = commit(module.mutations.setShowAuthorGraphLegend)\n\nexport const getAuthorGraphSettings = read(module.getters.getAuthorGraphSettings)\nexport const setAuthorGraphSettings = commit(module.mutations.setAuthorGraphSettings)\nexport const getUnifiedGraphSettings = read(module.getters.getUnifiedGraphSettings)\nexport const setUnifiedGraphSettings = commit(module.mutations.setUnifiedGraphSettings)\nexport const getSelectedNodes = read(module.getters.getSelectedNodes)\nexport const setSelectedNodes = commit(module.mutations.setSelectedNodes)\nexport const getShortestPath = read(module.getters.getShortestPath)\nexport const setShortestPath = commit(module.mutations.setShortestPath)\n\nexport const getDocumentsSortBy = read(module.getters.getDocumentsSortBy)\nexport const setDocumentsSortBy = commit(module.mutations.setDocumentsSortBy)\n\nexport const getPersons = read(module.getters.getPersons)\nexport const setPersons = commit(module.mutations.setPersons)\nexport const getPersonRelevantCounts = read(module.getters.getPersonRelevantCounts)\nexport const updatePersonImage = dispatch(module.actions.updatePersonImage)\nexport const preprocessPersonImage = dispatch(module.actions.preprocessPersonImage)\nexport const updateLastReviewTime = dispatch(module.actions.updateLastReviewTime)\n\nexport const fetchTopicInvestigationExport = dispatch(module.actions.fetchTopicInvestigationExport)\nexport const fetchPersonInvestigationExport = dispatch(module.actions.fetchPersonInvestigationExport)\nexport const fetchInvestigationHtml = dispatch(module.actions.fetchInvestigationHtml)\n\nexport const getCancelToken = read(module.getters.getCancelToken)\nconst setCancelToken = commit(module.mutations.setCancelToken)\n\nexport const fetchInvestigation = dispatch(module.actions.fetchInvestigation)\nexport const fetchPersonProfile = dispatch(module.actions.fetchPersonProfile)\nexport const fetchDocumentMarkups = dispatch(module.actions.fetchDocumentMarkups)\nexport const fetchTopLabels = dispatch(module.actions.fetchTopLabels)\nexport const fetchAllData = dispatch(module.actions.fetchAllData)\nexport const fetchAllPersonData = dispatch(module.actions.fetchAllPersonData)\nexport const fetchAllTopicData = dispatch(module.actions.fetchAllTopicData)\nexport const fetchNextDocuments = dispatch(module.actions.fetchNextDocuments)\nexport const fetchGraphData = dispatch(module.actions.fetchGraphData)\nexport const fetchGraphPersonData = dispatch(module.actions.fetchGraphPersonData)\nexport const fetchGraphTopicData = dispatch(module.actions.fetchGraphTopicData)\nexport const fetchTimelineData = dispatch(module.actions.fetchTimelineData)\nexport const fetchNextSuggestedTerms = dispatch(module.actions.fetchNextSuggestedTerms)\nexport const fetchAllObservations = dispatch(module.actions.fetchAllObservations)\nexport const updateTitle = dispatch(module.actions.updateTitle)\nexport const updateBWJournal = dispatch(module.actions.updateBWJournal)\nexport const updateRelevancyStatus = dispatch(module.actions.updateRelevancyStatus)\nexport const addActiveAuthor = dispatch(module.actions.addActiveAuthor)\nexport const clearInvestigationStore = dispatch(module.actions.clearInvestigationStore)\nexport const fetchInvestigationLastFilter = dispatch(module.actions.fetchInvestigationLastFilter)\n\nexport const getAlertsEnabled = read(module.getters.getAlertsEnabled)\nexport const updateAlertsEnabled = dispatch(module.actions.updateAlertsEnabled)\n\nexport const getDisambiguatePersonName = read(module.getters.getDisambiguatePersonName)\nexport const setDisambiguatePersonName = commit(module.mutations.setDisambiguatePersonName)\n\nexport const getFilterByResearchers = read(module.getters.getFilterByResearchers)\nexport const getFilterToDuplicates = read(module.getters.getFilterToDuplicates)\nexport const getFilterToUnaffiliated = read(module.getters.getFilterToUnaffiliated)\nexport const getFilterToUnknownPublishers = read(module.getters.getFilterToUnknownPublishers)\nexport const getFilterToMissingVolume = read(module.getters.getFilterToMissingVolume)\nexport const getFilterToMissingDate = read(module.getters.getFilterToMissingDate)\nexport const getFilterToSpecificUrls = read(module.getters.getFilterToSpecificUrls)\nexport const setFilterByResearchers = commit(module.mutations.setFilterByResearchers)\nexport const setFilterToDuplicates = commit(module.mutations.setFilterToDuplicates)\nexport const setFilterToUnaffiliated = commit(module.mutations.setFilterToUnaffiliated)\nexport const setFilterToUnknownPublishers = commit(module.mutations.setFilterToUnknownPublishers)\nexport const setFilterToMissingVolume = commit(module.mutations.setFilterToMissingVolume)\nexport const setFilterToMissingDate = commit(module.mutations.setFilterToMissingDate)\nexport const setFilterToSpecificUrls = commit(module.mutations.setFilterToSpecificUrls)\n\nexport const showOnlyMyPublications = dispatch(module.actions.showOnlyMyPublications)\n\nexport function getPageSize(context: ActionContext) {\n return getDocumentsPageSize(context as unknown as ActionContext)\n}\n\n\ninterface DisambiguationSavedState {\n selectedTops: SelectedTop[]\n dateFilterStart: number | null\n dateFilterEnd: number | null\n topsExpansion: {[key: string]: boolean}\n topsSorting: {[key: string]: boolean | undefined}\n groupsExpansion: {[key: string]: boolean}\n}\n\nexport let disambiguationSavedState: DisambiguationSavedState | null = null\n\nexport function saveInvestigationState(store: Store) {\n disambiguationSavedState = {\n selectedTops: getSelectedTops(store),\n dateFilterStart: getDateFilterStart(store),\n dateFilterEnd: getDateFilterEnd(store),\n topsExpansion: getTopsExpansion(store),\n topsSorting: getTopsSorting(store),\n groupsExpansion: getGroupsExpansion(store)\n }\n setSelectedTops(store, [])\n setDateFilterYears(store, {start: null, end: null})\n clearTopsExpansion(store)\n clearTopsSorting(store)\n clearGroupsExpansion(store)\n}\n\nexport function restoreInvestigationState(store: Store) {\n setSelectedTops(store, disambiguationSavedState!!.selectedTops)\n setDateFilterYears(store, {start: disambiguationSavedState!!.dateFilterStart, end: disambiguationSavedState!!.dateFilterEnd})\n Object.entries(disambiguationSavedState!!.topsExpansion).forEach(([type, isExpanded]) => setTopExpanded(store, {type, isExpanded}))\n Object.entries(disambiguationSavedState!!.topsSorting).forEach(([type, isSortedByRelevant]) => setTopSorting(store, {type, isSortedByRelevant: isSortedByRelevant === undefined ? true : isSortedByRelevant}))\n setGroupsExpansion(store, disambiguationSavedState!!.groupsExpansion)\n}\n\nexport function getSpecForStore(store: Store): InvestigationRequestSpec {\n return getSpec(store as unknown as ActionContext)\n}\n\nexport function getSpec(context: ActionContext): InvestigationRequestSpec {\n const pageSize = getPageSize(context)\n const availableDocumentIds = getAvailableDocumentIds(context)\n const currentPage = getCurrentPage(context)\n const requestedDocumentIds = availableDocumentIds.slice(currentPage * pageSize, (currentPage + 1) * pageSize)\n return {\n dateFilter: {startYear: getDateFilterStart(context), endYear: getDateFilterEnd(context)},\n displayedResultsStatus: getDisplayedResultsStatus(context),\n selectedTops: getSelectedTops(context),\n includeOnlyUnlabeled: getIsInReviewProfile(context) && getIncludeOnlyUnlabeled(context),\n includeSingleAuthoredDocuments: getGraphType(context) == null ? true : getAuthorGraphSettings(context).showSnowflakes,\n personId: getPersonId(context) || getDisambiguationPersonId(context),\n personName: getDisambiguatePersonName(context),\n freeText: getFreeTextFilter(context),\n sortDocumentsBy: getDocumentsSortBy(context),\n requestedDocumentIds,\n highlightMode: getHighlightModes(context),\n onlyInvestigationResearchers: getFilterByResearchers(context),\n onlyDuplicateDocuments: getFilterToDuplicates(context),\n onlyUnaffiliated: getFilterToUnaffiliated(context),\n onlyUnknownPublishers: getFilterToUnknownPublishers(context),\n onlyMissingVolume: getFilterToMissingVolume(context),\n onlyMissingDate: getFilterToMissingDate(context),\n specificDocumentUrls: getFilterToSpecificUrls(context)\n }\n}\n\n\nexport function setFilterFromSpec(context: ActionContext, spec: InvestigationRequestSpec) {\n if (spec) {\n const selectedTops = spec.selectedTops.map(it => {\n if (it.name === \"predefined.Persons\") {\n return {name: it.name, selectedDisplayValue: it.selectedDisplayValue, selectedValue: parseInt(it.selectedValue, 10) }\n }\n return it\n })\n\n setDateFilterYears(context, {start: spec.dateFilter.startYear, end: spec.dateFilter.endYear})\n setDisplayedResultsStatus(context, spec.displayedResultsStatus)\n setSelectedTops(context, selectedTops)\n setFreeTextFilter(context, spec.freeText ? spec.freeText : null)\n setDocumentsSortBy(context, spec.sortDocumentsBy)\n setHighlightModes(context, spec.highlightMode)\n }\n}\n\n\nfunction replaceTopClassificationForReviewProfile(result: InvestigationDataEntity) {\n const newClassifications: { [key: string]: ScoredNameEntity } = {}\n result.tops.topClassifications.forEach(oldClassification => {\n let newClassification = null\n /* tslint:disable:no-string-literal */\n if (oldClassification.name === \"Article\" || oldClassification.name === \"Book\" || oldClassification.name === \"Book Chapter\") {\n newClassification = newClassifications[\"Academic Publication\"]\n if (!newClassification) {\n newClassification = {name: \"Academic Publication\", relevantCount: 0, relevantScore: 0, totalCount: 0, totalScore: 0}\n newClassifications[\"Academic Publication\"] = newClassification\n }\n } else if (oldClassification.name === \"Patent\") {\n newClassification = newClassifications[\"Patent\"]\n if (!newClassification) {\n newClassification = {name: \"Patent\", relevantCount: 0, relevantScore: 0, totalCount: 0, totalScore: 0}\n newClassifications[\"Patent\"] = newClassification\n }\n }\n /* tslint:enable:no-string-literal */\n if (newClassification) {\n newClassification.relevantCount += oldClassification.relevantCount\n newClassification.relevantScore += oldClassification.relevantScore\n newClassification.totalCount += oldClassification.totalCount\n newClassification.totalScore += oldClassification.totalScore\n }\n })\n result.tops.topClassifications = Object.values(newClassifications) as ScoredNameEntity[]\n}\n\n\nfunction replaceSelectedClassificationsForReviewProfile(spec: InvestigationRequestSpec) {\n const publicationsIndex = spec.selectedTops.findIndex(selectedTop => selectedTop.name === \"predefined.Classifications\" && selectedTop.selectedValue === \"Academic Publication\")\n const selectedTops: SelectedTop[] = []\n spec.selectedTops.forEach((top, index) => {\n if (index === publicationsIndex) {\n selectedTops.push({name: \"predefined.Classifications\", selectedValue: \"Article\", selectedDisplayValue: \"Article\"})\n selectedTops.push({name: \"predefined.Classifications\", selectedValue: \"Book\", selectedDisplayValue: \"Book\"})\n selectedTops.push({name: \"predefined.Classifications\", selectedValue: \"Book Chapter\", selectedDisplayValue: \"Book Chapter\"})\n } else {\n selectedTops.push(top)\n }\n })\n spec.selectedTops = selectedTops\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{loader: true, overview: _vm.isInOverviewPane, documents: _vm.isInDocumentsPane && _vm.isInInvestigation, graph: !_vm.isInOverviewPane && !_vm.isInDocumentsPane && _vm.isInInvestigation, investigations: !_vm.isInInvestigation}},[_c('div',{staticClass:\"white-modal\"}),_c('div',{staticClass:\"loading-container\"},[_c('img',{attrs:{\"alt\":\"loading\",\"src\":require(\"../assets/images/loading.gif\")}}),_c('div',{staticClass:\"loading-text\"},[_vm._v(_vm._s(_vm.spinnerText))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {getGraphType} from \"@/store/investigation/graph-module\"\nimport {getInvestigation, getIsBusy, getIsRenderingGraph} from \"@/store/investigation/investigation-module\"\n\n@Component\nexport default class SpinningLoader extends Vue {\n get spinnerText() {\n if (this.$route.path.endsWith(\"overview\")) {\n return \"Loading Overview...\"\n }\n\n if (this.$route.path.endsWith(\"investigations\")) {\n return \"Loading Investigations...\"\n }\n\n const graphType = getGraphType(this.$store)\n if (graphType) {\n const graphDescription = graphType === \"Unified\" ? \"Entities\" : graphType\n return `Loading ${graphDescription} Graph...`\n }\n\n return \"Loading Documents...\"\n }\n\n private get isInInvestigation() {\n return getInvestigation(this.$store) !== null\n }\n\n private get isInDocumentsPane() {\n return getGraphType(this.$store) === null\n }\n\n private get isInOverviewPane() {\n return this.$route.path.endsWith(\"overview\")\n }\n\n get isBusy(): boolean {\n return getIsBusy(this.$store) || getIsRenderingGraph(this.$store)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpinningLoader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpinningLoader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SpinningLoader.vue?vue&type=template&id=8cae7ce4&scoped=true&\"\nimport script from \"./SpinningLoader.vue?vue&type=script&lang=ts&\"\nexport * from \"./SpinningLoader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SpinningLoader.vue?vue&type=style&index=0&id=8cae7ce4&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 \"8cae7ce4\",\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',{staticClass:\"investigation-selector\",class:{'disabled': _vm.isDisabled()},on:{\"click\":function($event){return _vm.gotoCreateInvestigation(_vm.data.type)}}},[_c('div',{staticClass:\"title-container\"},[_c('div',{staticClass:\"icon\",class:_vm.data.icon}),_c('div',{staticClass:\"title\",style:({'color': _vm.data.color})},[_vm._v(_vm._s(_vm.data.title))])]),_c('div',{staticClass:\"tag-line\"},[_vm._v(_vm._s(_vm.data.tagline))]),(!_vm.isDisabled())?_c('button',{staticClass:\"create-investigation\"},[_vm._v(\"Next\")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport Component from \"vue-class-component\"\nimport Vue from \"vue\"\nimport {Prop} from \"vue-property-decorator\"\nimport {InvestigationCreationType} from \"@/types/new-investigation\"\n\n@Component\nexport default class InvestigationSelector extends Vue {\n\n @Prop()\n private data!: InvestigationCreationType\n\n private gotoCreateInvestigation(type: string) {\n if (!this.isDisabled()) {\n this.$router.push({name: \"createInvestigation\", query: {type}})\n }\n }\n\n private isDisabled(): boolean {\n return this.data.type === \"LocalDocuments\"\n }\n\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvestigationSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvestigationSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InvestigationSelector.vue?vue&type=template&id=61458c42&scoped=true&\"\nimport script from \"./InvestigationSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./InvestigationSelector.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InvestigationSelector.vue?vue&type=style&index=0&id=61458c42&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 \"61458c42\",\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.visible)?_c('div',{ref:\"menuElement\",staticClass:\"menu atTop\",style:({'top': _vm.menuTopPosition, 'left': _vm.menuLeftPosition, 'right': _vm.menuRightPosition})},[_vm._t(\"default\")],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {Prop} from \"vue-property-decorator\"\n\n@Component\n export default class PopupMenu extends Vue {\n\n @Prop()\n private event!: string\n\n @Prop()\n private closeEvent!: string\n\n private menuTopPosition: string = \"0px\"\n private menuLeftPosition: string = \"0px\"\n private menuRightPosition: string = \"\"\n private visible: boolean = false\n private parentElement: HTMLElement | null = null\n\n\n private mounted() {\n this.$parent.$on(this.event, this.showPopup)\n if (this.closeEvent) {\n this.$parent.$on(this.closeEvent, this.close)\n }\n }\n\n\n private showPopup(parentElement: HTMLElement, atBottom: boolean, alignToLeft: boolean = true) {\n this.parentElement = parentElement\n if (this.visible) {\n this.close()\n } else {\n let top: number = 0\n let left: number = 0\n this.visible = true\n this.$nextTick(() => {\n const rect = parentElement.getBoundingClientRect()\n const menuElement = this.$refs.menuElement as HTMLElement\n if (menuElement) {\n const offset = rect.bottom + menuElement.getBoundingClientRect().height > window.innerHeight ? menuElement.getBoundingClientRect().height + 30 : -15\n const isOnLeftEdge = rect.left - menuElement.getBoundingClientRect().width < 0\n if (offset > 0 || atBottom) {\n menuElement.classList.remove(\"atTop\")\n menuElement.classList.add(\"atBottom\")\n } else {\n menuElement.classList.add(\"atTop\")\n menuElement.classList.remove(\"atBottom\")\n }\n top = rect.bottom - offset\n let isTopCorrected = false\n const isBottomExceedingScreen = window.innerHeight < top + menuElement.getBoundingClientRect().height\n if (top < 0) {\n top = 0\n isTopCorrected = true\n } else if (isBottomExceedingScreen) {\n const diff = window.innerHeight - top - menuElement.getBoundingClientRect().height\n top += diff - 20\n isTopCorrected = true\n }\n left = isOnLeftEdge ? (isTopCorrected ? rect.left + 20 : 0) :\n (isTopCorrected ? rect.left + 20 : rect.left - menuElement.getBoundingClientRect().width * .75)\n\n\n this.menuTopPosition = `${top}px`\n if (alignToLeft) {\n this.menuLeftPosition = `${left}px`\n this.menuRightPosition = \"\"\n } else {\n this.menuRightPosition = `${Math.max(window.innerWidth - menuElement.getBoundingClientRect().width - left, 15)}px`\n this.menuLeftPosition = \"\"\n }\n }\n })\n\n\n document.body.addEventListener(\"click\", this.onClickOutside!, true)\n document.body.addEventListener(\"scroll\", this.onClickOutside!, true)\n }\n }\n\n\n private close() {\n this.visible = false\n this.$parent.$emit(\"closedOn\" + this.closeEvent)\n }\n\n\n private async onClickOutside(event: Event) {\n const target = event.target as HTMLElement\n const forbidsClose = target.parentElement!.classList.contains(\"forbids-close\") || target.classList.contains(\"forbids-close\")\n const clickedOnOpenMenuButton = event.target === this.parentElement\n const isDisabled = target.classList.contains(\"disabled\")\n if (!clickedOnOpenMenuButton && !isDisabled && !forbidsClose) {\n document.body.removeEventListener(\"click\", this.onClickOutside!, true)\n document.body.removeEventListener(\"scroll\", this.onClickOutside!, true)\n this.close()\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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopupMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopupMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PopupMenu.vue?vue&type=template&id=10c4a3a3&scoped=true&\"\nimport script from \"./PopupMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./PopupMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PopupMenu.vue?vue&type=style&index=0&id=10c4a3a3&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"10c4a3a3\",\n null\n \n)\n\nexport default component.exports","import {InvestigationSubType} from \"@/types/investigations\"\n\nexport interface InvestigationCreationType {\n readonly type: InvestigationSubType,\n readonly icon: string,\n readonly title: string,\n readonly tagline: string,\n readonly dataSources: InvestigationDataSource[],\n readonly color: string\n readonly tag: string\n}\n\nexport const topicInvestigationType: InvestigationCreationType = {\n type: \"Topic\",\n icon: \"topic\",\n title: \"General\",\n tagline: \"Uncover the ecosystem of your research field of interest\",\n dataSources: [\"web pages\", \"academic publications\"],\n color: \"#33B8FF\",\n tag: \"General\"\n}\n\nexport const personInvestigationType: InvestigationCreationType = {\n type: \"Person\",\n icon: \"person\",\n title: \"Academic Researcher\",\n tagline: \"Build a full academic profile and the community around it\",\n dataSources: [\"academic publications\"],\n color: \"#AB7DF6\",\n tag: \"Researcher\"\n}\n\nexport const personGroupInvestigationType: InvestigationCreationType = {\n type: \"PersonGroup\",\n icon: \"person-group\",\n title: \"Academic Research Group\",\n tagline: \"Build full academic profiles for multiple researchers\",\n dataSources: [\"academic publications\"],\n color: \"#4D55F8\",\n tag: \"Researchers\"\n}\n\nexport const universityInvestigationType: InvestigationCreationType = {\n type: \"University\",\n icon: \"university\",\n title: \"University / Organization\",\n tagline: \"Map the academic ecosystem of a given university / organization\",\n dataSources: [\"academic publications\"],\n color: \"#94CA34\",\n tag: \"Univ. / Org.\"\n}\n\nexport const politicalInvestigationType: InvestigationCreationType = {\n type: \"Political\",\n icon: \"political\",\n title: \"Political\",\n tagline: \"Reveal what experts are writing about particular subjects in politics and policy\",\n dataSources: [\"web pages\", \"academic publications\"],\n color: \"#FACA00\",\n tag: \"Political\"\n}\n\nexport const websiteInvestigationType: InvestigationCreationType = {\n type: \"WebSite\",\n icon: \"website\",\n title: \"Website\",\n tagline: \"Find all the pages of a given website and search within them\",\n dataSources: [\"web pages\"],\n color: \"#FD8030\",\n tag: \"Website\"\n}\n\nexport const tenderInvestigationType: InvestigationCreationType = {\n type: \"Tender\",\n icon: \"tender\",\n title: \"Tender\",\n tagline: \"Find all tenders related to your area of business\",\n dataSources: [\"web pages\"],\n color: \"#2660AB\",\n tag: \"Tender\"\n}\n\nexport const companyInvestigationType: InvestigationCreationType = {\n type: \"Company\",\n icon: \"company\",\n title: \"Company\",\n tagline: \"Find out all the information related to the company you are interested in\",\n dataSources: [\"web pages\"],\n color: \"#26C2CA\",\n tag: \"Company\"\n}\n\nexport const localDocumentsInvestigationType: InvestigationCreationType = {\n type: \"LocalDocuments\",\n icon: \"local-documents\",\n title: \"Local Documents\",\n tagline: \"Discover hidden insights within your local documents\",\n dataSources: [],\n color: \"#CA2693\",\n tag: \"LocalDocuments\"\n}\n\nexport const researcherWorksInvestigationType: InvestigationCreationType = {\n type: \"ResearcherWorks\",\n icon: \"person\",\n title: \"Launch for Researcher\",\n tagline: \"\",\n dataSources: [\"academic publications\"],\n color: \"#8057c3\",\n tag: \"Researcher\"\n}\n\nexport const facultyWorksInvestigationType: InvestigationCreationType = {\n type: \"FacultyWorks\",\n icon: \"person-group\",\n title: \"Launch for Faculty\",\n tagline: \"\",\n dataSources: [\"academic publications\"],\n color: \"#5e64d3\",\n tag: \"Faculty\"\n}\n\nexport const investigationSubTypes: InvestigationCreationType[] = [\n topicInvestigationType,\n personInvestigationType,\n personGroupInvestigationType,\n universityInvestigationType,\n politicalInvestigationType,\n websiteInvestigationType,\n tenderInvestigationType,\n companyInvestigationType,\n localDocumentsInvestigationType,\n researcherWorksInvestigationType,\n facultyWorksInvestigationType\n]\n\nexport function getInvestigationCreationType(subType: InvestigationSubType): InvestigationCreationType | null {\n const creationType = investigationSubTypes.find(it => it.type === subType)\n return creationType ? creationType : null\n}\n\nexport type InvestigationDataSource = \"web pages\" | \"academic publications\"\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('GenericDialogNew',{ref:\"genericDialog\",attrs:{\"modal\":true},on:{\"enterPressed\":function($event){return _vm.ok()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.options.title))])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"dialog-body-container\"},[_c('div',{staticClass:\"warning\",domProps:{\"innerHTML\":_vm._s(_vm.options.message)}}),_c('div',{staticClass:\"buttons forbids-close\"},[(_vm.options.showCancel)?_c('button',{staticClass:\"cancel\",on:{\"click\":_vm.close}},[_vm._v(\" \"+_vm._s(_vm.options.cancelText === undefined ? \"Cancel\" : _vm.options.cancelText)+\" \")]):_vm._e(),_c('button',{staticClass:\"ok\",on:{\"click\":_vm.ok}},[_vm._v(_vm._s(_vm.options.okText))])])])]},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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport GenericDialogNew, {createDialogMountingPoint} from \"@/components/GenericDialogNew.vue\"\nimport {Prop} from \"vue-property-decorator\"\n\nexport function openConfirmationDialog(options: ConfirmationDialogOptions) {\n new (Vue.extend(ConfirmationDialog))({propsData: {options}}).$mount(createDialogMountingPoint())\n}\n\nexport interface ConfirmationDialogOptions {\n readonly title: string\n readonly message: string\n readonly okText: string\n readonly cancelText?: string\n readonly onOk?: () => void\n readonly showCancel: boolean\n}\n\n@Component({\n components: {GenericDialogNew}\n})\nexport default class ConfirmationDialog extends Vue {\n\n @Prop()\n private options!: ConfirmationDialogOptions\n\n private ok() {\n this.close()\n if (this.options.onOk) {\n this.options.onOk()\n }\n }\n\n private close() {\n (this.$refs.genericDialog as GenericDialogNew).close()\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmationDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmationDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConfirmationDialog.vue?vue&type=template&id=02f6825e&scoped=true&\"\nimport script from \"./ConfirmationDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConfirmationDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ConfirmationDialog.vue?vue&type=style&index=0&id=02f6825e&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 \"02f6825e\",\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {isAdminUser, isFacultyWorksUser, isOmnipotentUser, isOmnisolUser} from \"@/store/auth-module\"\n\n@Component\nexport class PermissionsMixin extends Vue {\n\n get isOmnipotentUser(): boolean {\n return isOmnipotentUser(this.$store)\n }\n\n get isOmnisolUser(): boolean {\n return isOmnisolUser(this.$store)\n }\n\n get isFacultyWorksUser(): boolean {\n return isFacultyWorksUser(this.$store)\n }\n\n get isAdminUser(): boolean {\n return isAdminUser(this.$store)\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"investigation-selector\",on:{\"click\":function($event){return _vm.gotoCreateInvestigation(_vm.data.type)}}},[_c('div',{staticClass:\"title-container\"},[_c('div',{staticClass:\"icon\",class:_vm.data.icon}),_c('div',{staticClass:\"title\",style:({'color': _vm.data.color})},[_vm._v(_vm._s(_vm.data.title))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\nimport Component from \"vue-class-component\"\nimport Vue from \"vue\"\nimport {Prop} from \"vue-property-decorator\"\nimport {InvestigationCreationType} from \"@/types/new-investigation\"\n\n@Component\nexport default class InvestigationSelector extends Vue {\n\n @Prop()\n private data!: InvestigationCreationType\n\n private gotoCreateInvestigation(type: string) {\n if (!this.isDisabled()) {\n this.$router.push({name: \"createInvestigation\", query: {type}})\n }\n }\n\n private isDisabled(): boolean {\n return this.data.type === \"LocalDocuments\"\n }\n\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FacultyWorksSelector.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FacultyWorksSelector.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FacultyWorksSelector.vue?vue&type=template&id=7877fa86&scoped=true&\"\nimport script from \"./FacultyWorksSelector.vue?vue&type=script&lang=ts&\"\nexport * from \"./FacultyWorksSelector.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FacultyWorksSelector.vue?vue&type=style&index=0&id=7877fa86&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 \"7877fa86\",\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\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport {InvestigationEntity, InvestigationType} from \"@/types/investigations\"\nimport {deleteInvestigation, duplicateInvestigation, fetchAllInvestigations, getFreeTextFilter, getInvestigations, isBusyFetchingAllInvestigations, setFreeTextFilter} from \"@/store/investigations-module\"\nimport {Moment} from \"moment\"\nimport {setInvestigation} from \"@/store/investigation/investigation-module\"\nimport SpinningLoader from \"@/components/SpinningLoader.vue\"\nimport InvestigationSelector from \"@/components/InvestigationSelector.vue\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport {\n companyInvestigationType, facultyWorksInvestigationType,\n getInvestigationCreationType,\n InvestigationCreationType,\n localDocumentsInvestigationType,\n personGroupInvestigationType,\n personInvestigationType,\n politicalInvestigationType,\n researcherWorksInvestigationType,\n tenderInvestigationType,\n topicInvestigationType,\n universityInvestigationType,\n websiteInvestigationType\n} from \"@/types/new-investigation\"\nimport {isAllowDuplicateInvestigation, isSupportAcademicResearcherGroupInvestigations, isSupportCompanyInvestigations, isSupportLocalDocumentsInvestigations, isSupportPoliticalInvestigations, isSupportTenderInvestigations, isSupportUniversityInvestigations, isSupportWebsiteInvestigations} from \"@/store/environment-module\"\nimport {openConfirmationDialog} from \"@/views/investigation/dialogs/ConfirmationDialog.vue\"\nimport {PermissionsMixin} from \"@/store/user-mixin\"\nimport {Watch} from \"vue-property-decorator\"\nimport FacultyWorksSelector from \"@/components/FacultyWorksSelector.vue\"\n\n@Component({\n components: {FacultyWorksSelector, PopupMenu, InvestigationSelector, SpinningLoader}\n})\nexport default class InvestigationsPage extends mixins(Vue, PermissionsMixin) {\n\n private getInvestigations = this.$wrap(getInvestigations)\n private fetchAllInvestigations = this.$wrap(fetchAllInvestigations)\n private pollingTimeout?: number\n private loadedInvestigations: boolean = false\n private freeText: string = \"\"\n private menuPosition: { left: number, top: number } = {left: 0, top: 0}\n private highlightedInvestigation: boolean = false\n private freeTextListener!: () => void\n\n private investigationTypes(): InvestigationCreationType[] {\n if (this.isFacultyWorksUser) {\n return [facultyWorksInvestigationType, researcherWorksInvestigationType]\n }\n\n const investigationTypes: InvestigationCreationType[] = [topicInvestigationType]\n\n if (isSupportCompanyInvestigations(this.$store)) {\n investigationTypes.push(companyInvestigationType)\n }\n\n if (isSupportTenderInvestigations(this.$store)) {\n investigationTypes.push(tenderInvestigationType)\n }\n\n investigationTypes.push(personInvestigationType)\n\n if (isSupportAcademicResearcherGroupInvestigations(this.$store)) {\n investigationTypes.push(personGroupInvestigationType)\n }\n\n if (isSupportUniversityInvestigations(this.$store)) {\n investigationTypes.push(universityInvestigationType)\n }\n\n if (isSupportWebsiteInvestigations(this.$store)) {\n investigationTypes.push(websiteInvestigationType)\n }\n\n if (isSupportPoliticalInvestigations(this.$store)) {\n investigationTypes.push(politicalInvestigationType)\n }\n\n if (isSupportLocalDocumentsInvestigations(this.$store)) {\n investigationTypes.push(localDocumentsInvestigationType)\n }\n\n return investigationTypes\n }\n\n get investigations(): InvestigationEntity[] {\n const investigations = this.getInvestigations().slice().sort((a, b): number =>\n b.createdOn.valueOf() - a.createdOn.valueOf() || (b.id as any) - (a.id as any)\n )\n return this.freeText ?\n investigations.filter(investigation =>\n investigation.id.includes(this.freeText!) ||\n this.investigationSubType(investigation).toLowerCase().includes(this.freeText.toLowerCase()) ||\n investigation.uuid.includes(this.freeText!) ||\n investigation.createdBy.toLowerCase().includes(this.freeText!.toLowerCase()) ||\n (investigation.createdOn.format(\"DD-MMM-YYYY\").includes(this.freeText!) && this.isOmnipotentUser) ||\n (investigation.lastUserInteractionTime && investigation.lastUserInteractionTime.format(\"DD-MMM-YYYY\").includes(this.freeText!)) ||\n investigation.title.toLowerCase().includes(this.freeText!.toLowerCase()) ||\n investigation.email.toLowerCase().includes(this.freeText!.toLowerCase())\n ) :\n investigations\n }\n\n private investigationSubType(investigation: InvestigationEntity): string {\n return getInvestigationCreationType(investigation.investigationSubType)!!.tag\n }\n\n private investigationSubTypeColor(investigation: InvestigationEntity): string {\n return getInvestigationCreationType(investigation.investigationSubType)!!.color\n }\n\n get isBusyFetchingAllInvestigations(): boolean {\n return isBusyFetchingAllInvestigations(this.$store)\n }\n\n private get isAllowDuplicateInvestigation(): boolean {\n return isAllowDuplicateInvestigation(this.$store)\n }\n\n get showInvestigations(): boolean {\n return this.investigations.length > 0 && !this.isBusyFetchingAllInvestigations\n }\n\n get showNoInvestigations(): boolean {\n return this.loadedInvestigations && !this.isBusyFetchingAllInvestigations\n }\n\n private formatDate(date: Moment) {\n return date.format(\"DD-MMM-YYYY HH:mm\")\n }\n\n private mounted() {\n setInvestigation(this.$store, null)\n this.freeText = getFreeTextFilter(this.$store)\n this.pollInvestigations(this.investigations.length === 0)\n\n this.freeTextListener = this.$store.watch(state => getFreeTextFilter(this.$store), (newValue, oldValue) => {\n this.freeText = newValue\n })\n }\n\n private beforeDestroy() {\n clearTimeout(this.pollingTimeout)\n\n if (this.freeTextListener) {\n this.freeTextListener()\n }\n\n }\n\n private async pollInvestigations(showSpinner: boolean) {\n clearTimeout(this.pollingTimeout)\n\n await this.fetchAllInvestigations(showSpinner)\n this.highlightInvestigation()\n this.loadedInvestigations = true\n\n this.pollingTimeout = setTimeout(() => this.pollInvestigations(false), 5000)\n\n this.$nextTick(() => {\n if (this.$route.fullPath.endsWith(\"#investigation-table\")) {\n this.$router.push({name: \"investigations\"})\n this.scrollToInvestigations()\n }\n })\n }\n\n private goToInvestigation(investigation: InvestigationEntity) {\n const {id, investigationType} = investigation\n const name = `${investigationType.toLowerCase()}Investigation`\n const tab = this.isFacultyWorksUser || investigationType === \"Topic\" ? \"documents\" : \"author-graph\"\n this.$router.push({name, params: {id, tab}})\n }\n\n private async askDeleteInvestigation(event: MouseEvent, investigation: InvestigationEntity) {\n openConfirmationDialog({\n message: \"You are about to permanently delete this entire investigation\",\n title: \"Delete Investigation\",\n okText: \"Delete\",\n onOk: () => this.deleteInvestigation(investigation),\n showCancel: true\n })\n }\n\n private async askDuplicateInvestigation(event: MouseEvent, investigation: InvestigationEntity) {\n openConfirmationDialog({\n message: \"You are about to duplicate this investigation\",\n title: \"Duplicate Investigation\",\n okText: \"Duplicate\",\n onOk: () => this.duplicateInvestigation(investigation),\n showCancel: true\n })\n }\n\n private async deleteInvestigation(investigation: InvestigationEntity) {\n await deleteInvestigation(this.$store, investigation.id)\n }\n\n private async duplicateInvestigation(investigation: InvestigationEntity) {\n await duplicateInvestigation(this.$store, investigation.id)\n }\n\n private investigationTypeClass(type: InvestigationType) {\n return {topic: type === \"Topic\", person: type === \"Person\"}\n }\n\n private showPending(investigation: InvestigationEntity): boolean {\n return (investigation.investigationType === \"Person\" || investigation.investigationSubType === \"University\") && investigation.status === \"PENDING\"\n }\n\n private showProcessing(investigation: InvestigationEntity): boolean {\n return (investigation.investigationType === \"Person\" || investigation.investigationSubType === \"University\") && investigation.status === \"PROCESSING\"\n }\n\n private showFailed(investigation: InvestigationEntity): boolean {\n return (investigation.investigationType === \"Person\" || investigation.investigationSubType === \"University\") && investigation.status === \"FAILED\"\n }\n\n private showReady(investigation: InvestigationEntity): boolean {\n return (investigation.investigationType === \"Person\" || investigation.investigationSubType === \"University\") && !investigation.lastUserInteractionTime && investigation.status === \"READY\"\n }\n\n private get shouldShowClearFreeTextSearchButton() {\n return this.freeText !== null && this.freeText !== \"\"\n }\n\n private highlightInvestigation() {\n const investigationId = this.$route.query.highlight\n if (investigationId && !this.highlightedInvestigation) {\n this.highlightedInvestigation = true\n const refs = this.$refs[`investigation-${investigationId}`] as HTMLElement[]\n if (refs.length === 0) { // tomer: I don't know why this sometimes happens\n return\n }\n const investigation = refs[0] as HTMLElement\n investigation.scrollIntoView({block: \"center\"})\n if (!this.isFacultyWorksUser) {\n const menuRef = this.$refs.menuRef as HTMLElement\n const boundingClientRect = investigation.getBoundingClientRect()\n this.menuPosition = {left: boundingClientRect.left + 40, top: boundingClientRect.top - 170}\n setTimeout(() => this.$emit(\"openUserMenu\", menuRef, true), 0)\n }\n }\n }\n\n private scrollToInvestigations() {\n const investigations = this.$refs.investigations as HTMLElement\n investigations.scrollIntoView({behavior: \"smooth\", block: \"start\"})\n }\n\n @Watch(\"freeText\")\n private freeTextChanged(event: Event) {\n setFreeTextFilter(this.$store, this.freeText)\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvestigationsPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvestigationsPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InvestigationsPage.vue?vue&type=template&id=6d7d0cc6&scoped=true&\"\nimport script from \"./InvestigationsPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./InvestigationsPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InvestigationsPage.vue?vue&type=style&index=0&id=6d7d0cc6&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6d7d0cc6\",\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',{staticClass:\"new-investigation-page\"},[_c('div',{staticClass:\"container\"},[(_vm.isFacultyWorksUser)?_c('img',{staticClass:\"socrates-logo\",attrs:{\"src\":require(\"../../assets/images/socrates-logo.svg\")}}):_vm._e(),(_vm.creationType)?_c('section',{staticClass:\"form\"},[_c(_vm.detailsComponent,{ref:\"details\",tag:\"component\",on:{\"enable-next\":function($event){return _vm.nextEvent($event)}}}),_c('div',{staticClass:\"buttons\"},[_c('button',{staticClass:\"cancel\",on:{\"click\":_vm.cancel}},[_vm._v(\"Back\")]),_c('button',{staticClass:\"create-investigation\",attrs:{\"disabled\":!_vm.nextEnabled},on:{\"click\":function($event){return _vm.createInvestigation()}}},[_vm._v(\" \"+_vm._s(_vm.buttonText)+\" \")])])],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',{staticClass:\"new-topic-investigation-details\"},[_c('div',{staticClass:\"title-container\"},[_c('div',{staticClass:\"icon\",class:_vm.investigationType.icon}),_c('div',{staticClass:\"title\",style:({color: _vm.investigationType.color})},[_vm._v(_vm._s(_vm.investigationType.title))])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Search Term\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchString),expression:\"searchString\"}],ref:\"searchString\",staticClass:\"mandatory\",attrs:{\"type\":\"text\",\"placeholder\":\"English letters only\"},domProps:{\"value\":(_vm.searchString)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.searchString=$event.target.value}}})])]),_c('div',{staticClass:\"search-types-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Data Sources\")]),_c('div',{staticClass:\"data-sources\"},_vm._l((_vm.availableDataSources),function(source){return _c('div',{key:source,staticClass:\"data-source\",on:{\"click\":function($event){return _vm.toggleSource(source)}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.isSelected(source)}}),_c('label',{class:{'checked': _vm.isSelected(source)}},[_vm._v(_vm._s(source))])])}),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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {InvestigationCreationType, InvestigationDataSource, topicInvestigationType} from \"@/types/new-investigation\"\nimport {createTopicInvestigation} from \"@/store/investigations-module\"\nimport {Watch} from \"vue-property-decorator\"\nimport {NewInvestigationDetails} from \"@/views/investigations/NewInvestigationPage.vue\"\n\n@Component\nexport default class NewTopicInvestigationDetails extends Vue implements NewInvestigationDetails {\n\n private availableDataSources: InvestigationDataSource[] = [\"web pages\", \"academic publications\"]\n private selectedSources: InvestigationDataSource[] = [\"web pages\", \"academic publications\"]\n private searchString: string = \"\"\n\n\n private get investigationType(): InvestigationCreationType {\n return topicInvestigationType\n }\n\n\n public async createInvestigation() {\n const payload = {searchString: this.searchString!, sources: this.selectedSources, political: false}\n const id = await createTopicInvestigation(this.$store, payload)\n\n this.$router.push({name: \"topicInvestigation\", params: {id}})\n }\n\n\n private mounted() {\n this.$nextTick(() => {\n const searchString = this.$refs.searchString as HTMLInputElement\n searchString.focus()\n })\n\n this.emitEnableNext()\n }\n\n private toggleSource(source: InvestigationDataSource) {\n this.isSelected(source) ? this.unselectSource(source) : this.selectSource(source)\n }\n\n private selectSource(source: InvestigationDataSource) {\n this.selectedSources.push(source)\n }\n\n private unselectSource(source: string) {\n this.selectedSources = this.selectedSources.filter(selectedSource => selectedSource !== source)\n }\n\n private isSelected(value: string) {\n return this.selectedSources.some(source => source === value)\n }\n\n\n @Watch(\"searchString\")\n @Watch(\"selectedSources\")\n private emitEnableNext() {\n const enable = this.searchString.trim().length > 0 && this.selectedSources.length >= 1\n this.$emit(\"enable-next\", enable)\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewTopicInvestigationDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewTopicInvestigationDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewTopicInvestigationDetails.vue?vue&type=template&id=63dda1a2&scoped=true&\"\nimport script from \"./NewTopicInvestigationDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewTopicInvestigationDetails.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewTopicInvestigationDetails.vue?vue&type=style&index=0&id=63dda1a2&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 \"63dda1a2\",\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',{staticClass:\"new-person-investigation-page\"},[_c('div',{staticClass:\"title-container\"},[_c('div',{staticClass:\"icon\",class:_vm.investigationType.icon}),_c('div',{staticClass:\"title\",style:({color: _vm.investigationType.color})},[_vm._v(_vm._s(_vm.investigationType.title))])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Researcher Name\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.researcherName),expression:\"researcherName\"}],ref:\"researcherName\",attrs:{\"type\":\"text\",\"placeholder\":\"English letters only\"},domProps:{\"value\":(_vm.researcherName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.researcherName=$event.target.value}}})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {createPersonInvestigation} from \"@/store/investigations-module\"\nimport {NewInvestigationDetails} from \"@/views/investigations/NewInvestigationPage.vue\"\nimport {Watch} from \"vue-property-decorator\"\nimport {InvestigationCreationType, InvestigationDataSource, personInvestigationType} from \"@/types/new-investigation\"\n\n\n@Component\nexport default class NewPersonInvestigationDetails extends Vue implements NewInvestigationDetails {\n\n private researcherName: string = \"\"\n\n\n private get investigationType(): InvestigationCreationType {\n return personInvestigationType\n }\n\n\n public async createInvestigation() {\n const payload = { personName: this.researcherName!, sources: [\"academic publications\"] as InvestigationDataSource[]}\n const highlight = await createPersonInvestigation(this.$store, payload)\n\n this.$router.push({name: \"investigations\", query: {highlight}})\n }\n\n\n private mounted() {\n this.$nextTick(() => {\n const researcherName = this.$refs.researcherName as HTMLInputElement\n researcherName.focus()\n })\n\n this.emitEnableNext()\n }\n\n\n @Watch(\"researcherName\")\n private emitEnableNext() {\n const enable = this.researcherName.trim().length > 0\n this.$emit(\"enable-next\", enable)\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewPersonInvestigationDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewPersonInvestigationDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewPersonInvestigationDetails.vue?vue&type=template&id=253a2e44&scoped=true&\"\nimport script from \"./NewPersonInvestigationDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewPersonInvestigationDetails.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewPersonInvestigationDetails.vue?vue&type=style&index=0&id=253a2e44&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 \"253a2e44\",\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',{staticClass:\"new-person-group-investigation-page\"},[_c('div',{staticClass:\"title-container\"},[_c('div',{staticClass:\"icon\",class:_vm.investigationType.icon}),_c('div',{staticClass:\"title\",style:({color: _vm.investigationType.color})},[_vm._v(_vm._s(_vm.investigationType.title))])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Institute Name\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.instituteName),expression:\"instituteName\"}],ref:\"instituteName\",attrs:{\"type\":\"text\",\"placeholder\":\"English letters only\"},domProps:{\"value\":(_vm.instituteName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.instituteName=$event.target.value}}})])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Group Name\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.facultyName),expression:\"facultyName\"}],attrs:{\"type\":\"text\",\"placeholder\":\"English letters only\"},domProps:{\"value\":(_vm.facultyName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.facultyName=$event.target.value}}})])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Researcher Names\")]),_c('div',{staticClass:\"mandatory\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.researcherNames),expression:\"researcherNames\"}],attrs:{\"placeholder\":\"Enter researcher names (separated with newlines)...\"},domProps:{\"value\":(_vm.researcherNames)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.researcherNames=$event.target.value}}}),_vm._v(\" \"),(_vm.errorMessage)?_c('div',{staticClass:\"error\"},[_vm._v(_vm._s(_vm.errorMessage))]):_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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {NewInvestigationDetails} from \"@/views/investigations/NewInvestigationPage.vue\"\nimport {createPersonGroupInvestigation} from \"@/store/investigations-module\"\nimport {Watch} from \"vue-property-decorator\"\nimport {InvestigationCreationType, InvestigationDataSource, personGroupInvestigationType} from \"@/types/new-investigation\"\n\n\n@Component\nexport default class NewPersonGroupInvestigationDetails extends Vue implements NewInvestigationDetails {\n\n private instituteName: string = \"\"\n private facultyName: string = \"\"\n private researcherNames: string = \"\"\n private errorMessage: string | null = null\n\n\n private get investigationType(): InvestigationCreationType {\n return personGroupInvestigationType\n }\n\n\n public async createInvestigation() {\n const payload = { institutionName: this.instituteName, facultyName: this.facultyName, researcherNames: this.researcherNames!, sources: [\"academic publications\"] as InvestigationDataSource[]}\n const highlight = await createPersonGroupInvestigation(this.$store, payload)\n\n this.$router.push({name: \"investigations\", query: {highlight}})\n }\n\n\n private mounted() {\n this.$nextTick(() => {\n const instituteName = this.$refs.instituteName as HTMLInputElement\n instituteName.focus()\n })\n\n this.emitEnableNext()\n }\n\n\n @Watch(\"instituteName\")\n @Watch(\"facultyName\")\n @Watch(\"researcherNames\")\n private emitEnableNext() {\n const researcherCount = this.researcherNames.split(/\\r?\\n/).length\n if (researcherCount > 150) {\n this.errorMessage = \"Researcher list is to long, maximum 150 researchers allowed.\"\n } else {\n this.errorMessage = null\n }\n\n const enable =\n this.instituteName.trim().length > 0 &&\n this.facultyName.trim().length > 0 &&\n this.researcherNames.trim().length > 0 && researcherCount <= 150\n this.$emit(\"enable-next\", enable)\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewPersonGroupInvestigationDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewPersonGroupInvestigationDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewPersonGroupInvestigationDetails.vue?vue&type=template&id=0bd06504&scoped=true&\"\nimport script from \"./NewPersonGroupInvestigationDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewPersonGroupInvestigationDetails.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewPersonGroupInvestigationDetails.vue?vue&type=style&index=0&id=0bd06504&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 \"0bd06504\",\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',{staticClass:\"new-political-investigation-details\"},[_c('div',{staticClass:\"title-container\"},[_c('div',{staticClass:\"icon\",class:_vm.investigationType.icon}),_c('div',{staticClass:\"title\",style:({color: _vm.investigationType.color})},[_vm._v(_vm._s(_vm.investigationType.title))])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Search Term\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchString),expression:\"searchString\"}],ref:\"searchString\",attrs:{\"type\":\"text\",\"placeholder\":\"English letters only\"},domProps:{\"value\":(_vm.searchString)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.searchString=$event.target.value}}})])]),_c('div',{staticClass:\"search-types-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Data Sources\")]),_c('div',{staticClass:\"data-sources\"},_vm._l((_vm.availableDataSources),function(source){return _c('div',{key:source,staticClass:\"data-source\",on:{\"click\":function($event){return _vm.toggleSource(source)}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.isSelected(source)}}),_c('label',{class:{'checked': _vm.isSelected(source)}},[_vm._v(_vm._s(source))])])}),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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {InvestigationCreationType, InvestigationDataSource, politicalInvestigationType} from \"@/types/new-investigation\"\nimport {createTopicInvestigation} from \"@/store/investigations-module\"\nimport {Watch} from \"vue-property-decorator\"\nimport {NewInvestigationDetails} from \"@/views/investigations/NewInvestigationPage.vue\"\n\n@Component\nexport default class NewPoliticalInvestigationDetails extends Vue implements NewInvestigationDetails {\n\n private availableDataSources: InvestigationDataSource[] = [\"web pages\", \"academic publications\"]\n private selectedSources: InvestigationDataSource[] = [\"web pages\", \"academic publications\"]\n private searchString: string = \"\"\n\n\n private get investigationType(): InvestigationCreationType {\n return politicalInvestigationType\n }\n\n\n public async createInvestigation() {\n const payload = {searchString: this.searchString!, sources: this.selectedSources, political: true}\n const id = await createTopicInvestigation(this.$store, payload)\n\n this.$router.push({name: \"topicInvestigation\", params: {id}})\n }\n\n\n private mounted() {\n this.$nextTick(() => {\n const searchString = this.$refs.searchString as HTMLInputElement\n searchString.focus()\n })\n\n this.emitEnableNext()\n }\n\n private toggleSource(source: InvestigationDataSource) {\n this.isSelected(source) ? this.unselectSource(source) : this.selectSource(source)\n }\n\n private selectSource(source: InvestigationDataSource) {\n this.selectedSources.push(source)\n }\n\n private unselectSource(source: string) {\n this.selectedSources = this.selectedSources.filter(selectedSource => selectedSource !== source)\n }\n\n private isSelected(value: string) {\n return this.selectedSources.some(source => source === value)\n }\n\n\n @Watch(\"searchString\")\n @Watch(\"selectedSources\")\n private emitEnableNext() {\n const enable = this.searchString.trim().length > 0 && this.selectedSources.length >= 1\n this.$emit(\"enable-next\", enable)\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewPoliticalInvestigationDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewPoliticalInvestigationDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewPoliticalInvestigationDetails.vue?vue&type=template&id=5d76b1ed&scoped=true&\"\nimport script from \"./NewPoliticalInvestigationDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewPoliticalInvestigationDetails.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewPoliticalInvestigationDetails.vue?vue&type=style&index=0&id=5d76b1ed&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 \"5d76b1ed\",\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',{staticClass:\"new-university-investigation-page\"},[_c('div',{staticClass:\"title-container\"},[_c('div',{staticClass:\"icon\",class:_vm.investigationType.icon}),_c('div',{staticClass:\"title\",style:({color: _vm.investigationType.color})},[_vm._v(_vm._s(_vm.investigationType.title))])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"University / Organization Name\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.universityName),expression:\"universityName\"}],ref:\"universityName\",attrs:{\"list\":\"universityName\",\"type\":\"text\",\"placeholder\":\"English letters only\"},domProps:{\"value\":(_vm.universityName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.universityName=$event.target.value}}}),_c('datalist',{attrs:{\"id\":\"universityName\"}},_vm._l((_vm.filteredMagAffiliation),function(magAffiliation){return _c('option',{key:magAffiliation.original,domProps:{\"value\":magAffiliation.original}},[_vm._v(_vm._s(magAffiliation.original))])}),0)])]),_c('div',{staticClass:\"search-term-container row\"},[_c('div',[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Start Year\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.startYear),expression:\"startYear\"}],attrs:{\"type\":\"text\",\"placeholder\":\"4-digit year\"},domProps:{\"value\":(_vm.startYear)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.startYear=$event.target.value}}})])]),_c('div',[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"End Year\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.endYear),expression:\"endYear\"}],attrs:{\"type\":\"text\",\"placeholder\":\"4-digit year\"},domProps:{\"value\":(_vm.endYear)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.endYear=$event.target.value}}})])])])])}\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 Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {NewInvestigationDetails} from \"@/views/investigations/NewInvestigationPage.vue\"\nimport {Watch} from \"vue-property-decorator\"\nimport {createUniversityInvestigation} from \"@/store/investigations-module\"\nimport {InvestigationCreationType, InvestigationDataSource, universityInvestigationType} from \"@/types/new-investigation\"\nimport investigationsService from \"@/api/investigations-service\"\n\ninterface Affiliation {\n readonly original: string,\n readonly lower: string\n}\n\n@Component\nexport default class NewUniversityInvestigationDetails extends Vue implements NewInvestigationDetails {\n\n private magAffiliations: Affiliation[] = []\n private universityName: string = \"\"\n private country: string = \"\"\n private startYear: string = (new Date().getFullYear() - 2).toString()\n private endYear: string = new Date().getFullYear().toString()\n\n\n private get investigationType(): InvestigationCreationType {\n return universityInvestigationType\n }\n\n\n public async createInvestigation() {\n const startYear = Number.parseInt(this.startYear, 10)\n const endYear = Number.parseInt(this.endYear, 10)\n const payload = { universityName: this.universityName, country: this.country, startYear, endYear, sources: [\"academic publications\"] as InvestigationDataSource[]}\n const highlight = await createUniversityInvestigation(this.$store, payload)\n\n this.$router.push({name: \"investigations\", query: {highlight}})\n }\n\n\n private async mounted() {\n this.magAffiliations = (await investigationsService.getMagAffiliations()).map(it => {\n return { original: it, lower: it.toLowerCase() }\n })\n\n this.$nextTick(() => {\n const universityName = this.$refs.universityName as HTMLInputElement\n universityName.focus()\n })\n\n this.emitEnableNext()\n }\n\n\n private get filteredMagAffiliation(): Affiliation[] {\n // return this.magAffiliations\n const name = this.universityName.trim().toLowerCase()\n let list: Affiliation[]\n if (name.length === 0) {\n list = this.magAffiliations\n } else {\n list = this.magAffiliations.filter(it => it.lower.includes(name))\n }\n if (list.length > 40) {\n list = list.slice(0, 40)\n }\n return list\n }\n\n\n @Watch(\"universityName\")\n @Watch(\"startYear\")\n @Watch(\"endYear\")\n private emitEnableNext() {\n let enable =\n this.universityName.trim().length > 0 &&\n this.startYear.trim().length > 0 &&\n this.endYear.trim().length > 0\n\n if (enable) {\n enable = isNumericAndValidYear(this.startYear) && isNumericAndValidYear(this.endYear)\n }\n\n this.$emit(\"enable-next\", enable)\n }\n}\n\n\nfunction isNumericAndValidYear(yearStr: string): boolean {\n if (/^\\d{4}$/.test(yearStr)) {\n const year = parseInt(yearStr, 10)\n return year >= 1950 && year <= new Date().getFullYear()\n }\n return false\n}\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUniversityInvestigationDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUniversityInvestigationDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewUniversityInvestigationDetails.vue?vue&type=template&id=4cf34264&scoped=true&\"\nimport script from \"./NewUniversityInvestigationDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewUniversityInvestigationDetails.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewUniversityInvestigationDetails.vue?vue&type=style&index=0&id=4cf34264&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 \"4cf34264\",\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',{staticClass:\"new-topic-investigation-details\"},[_c('div',{staticClass:\"title-container\"},[_c('div',{staticClass:\"icon\",class:_vm.investigationType.icon}),_c('div',{staticClass:\"title\",style:({color: _vm.investigationType.color})},[_vm._v(_vm._s(_vm.investigationType.title))])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Investigation Name\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.investigationName),expression:\"investigationName\"}],ref:\"investigationName\",staticClass:\"mandatory\",attrs:{\"type\":\"text\",\"placeholder\":\"English letters only\"},domProps:{\"value\":(_vm.investigationName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.investigationName=$event.target.value}}})])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Website URL\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.websiteUrl),expression:\"websiteUrl\"}],staticClass:\"mandatory\",attrs:{\"type\":\"text\",\"placeholder\":\"https://example.com\"},domProps:{\"value\":(_vm.websiteUrl)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.websiteUrl=$event.target.value}}})])])])}\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {InvestigationCreationType, InvestigationDataSource, websiteInvestigationType} from \"@/types/new-investigation\"\nimport {Watch} from \"vue-property-decorator\"\nimport {NewInvestigationDetails} from \"@/views/investigations/NewInvestigationPage.vue\"\nimport {createWebsiteInvestigation} from \"@/store/investigations-module\"\n\n@Component\nexport default class NewWebsiteInvestigationDetails extends Vue implements NewInvestigationDetails {\n\n private investigationName: string = \"\"\n private websiteUrl: string = \"\"\n\n\n private get investigationType(): InvestigationCreationType {\n return websiteInvestigationType\n }\n\n\n public async createInvestigation() {\n const payload = {investigationName: this.investigationName!, websiteUrl: this.websiteUrl!, sources: [\"web pages\"] as InvestigationDataSource[]}\n const id = await createWebsiteInvestigation(this.$store, payload)\n\n this.$router.push({name: \"topicInvestigation\", params: {id}})\n }\n\n\n private mounted() {\n this.$nextTick(() => {\n const investigationName = this.$refs.investigationName as HTMLInputElement\n investigationName.focus()\n })\n\n this.emitEnableNext()\n }\n\n\n @Watch(\"investigationName\")\n @Watch(\"websiteUrl\")\n private emitEnableNext() {\n let enable = this.investigationName.trim().length > 0 && this.websiteUrl.trim().length >= 1\n if (enable) {\n try {\n const _ = new URL(this.websiteUrl)\n } catch (e) {\n enable = false\n }\n }\n\n this.$emit(\"enable-next\", enable)\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewWebsiteInvestigationDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewWebsiteInvestigationDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewWebsiteInvestigationDetails.vue?vue&type=template&id=3f07d6f8&scoped=true&\"\nimport script from \"./NewWebsiteInvestigationDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewWebsiteInvestigationDetails.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewWebsiteInvestigationDetails.vue?vue&type=style&index=0&id=3f07d6f8&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 \"3f07d6f8\",\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',{staticClass:\"new-political-investigation-details\"},[_c('div',{staticClass:\"title-container\"},[_c('div',{staticClass:\"icon\",class:_vm.investigationType.icon}),_c('div',{staticClass:\"title\",style:({color: _vm.investigationType.color})},[_vm._v(_vm._s(_vm.investigationType.title))])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Search Term\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchString),expression:\"searchString\"}],ref:\"searchString\",attrs:{\"type\":\"text\",\"placeholder\":\"English letters only\"},domProps:{\"value\":(_vm.searchString)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.searchString=$event.target.value}}})])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {InvestigationCreationType, tenderInvestigationType} from \"@/types/new-investigation\"\nimport {createTenderInvestigation} from \"@/store/investigations-module\"\nimport {Watch} from \"vue-property-decorator\"\nimport {NewInvestigationDetails} from \"@/views/investigations/NewInvestigationPage.vue\"\n\n@Component\nexport default class NewTenderInvestigationDetails extends Vue implements NewInvestigationDetails {\n\n private searchString: string = \"\"\n\n\n private get investigationType(): InvestigationCreationType {\n return tenderInvestigationType\n }\n\n\n public async createInvestigation() {\n const payload = { searchString: this.searchString! }\n const id = await createTenderInvestigation(this.$store, payload)\n\n this.$router.push({name: \"topicInvestigation\", params: {id}})\n }\n\n\n private mounted() {\n this.$nextTick(() => {\n const searchString = this.$refs.searchString as HTMLInputElement\n searchString.focus()\n })\n\n this.emitEnableNext()\n }\n\n\n @Watch(\"searchString\")\n private emitEnableNext() {\n const enable = this.searchString.trim().length > 0\n this.$emit(\"enable-next\", enable)\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewTenderInvestigationDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewTenderInvestigationDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewTenderInvestigationDetails.vue?vue&type=template&id=d7a55b62&scoped=true&\"\nimport script from \"./NewTenderInvestigationDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewTenderInvestigationDetails.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewTenderInvestigationDetails.vue?vue&type=style&index=0&id=d7a55b62&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 \"d7a55b62\",\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',{staticClass:\"new-political-investigation-details\"},[_c('div',{staticClass:\"title-container\"},[_c('div',{staticClass:\"icon\",class:_vm.investigationType.icon}),_c('div',{staticClass:\"title\",style:({color: _vm.investigationType.color})},[_vm._v(_vm._s(_vm.investigationType.title))])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Company Name\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.companyName),expression:\"companyName\"}],ref:\"searchString\",attrs:{\"type\":\"text\",\"placeholder\":\"English letters only\"},domProps:{\"value\":(_vm.companyName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.companyName=$event.target.value}}})])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Company Website\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.websiteUrl),expression:\"websiteUrl\"}],attrs:{\"type\":\"text\",\"placeholder\":\"For example: https://example.com\"},domProps:{\"value\":(_vm.websiteUrl)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.websiteUrl=$event.target.value}}})])])])}\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 Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {companyInvestigationType, InvestigationCreationType} from \"@/types/new-investigation\"\nimport {createCompanyInvestigation} from \"@/store/investigations-module\"\nimport {Watch} from \"vue-property-decorator\"\nimport {NewInvestigationDetails} from \"@/views/investigations/NewInvestigationPage.vue\"\n\n@Component\nexport default class NewCompanyInvestigationDetails extends Vue implements NewInvestigationDetails {\n\n private companyName: string = \"\"\n private websiteUrl: string = \"\"\n\n\n private get investigationType(): InvestigationCreationType {\n return companyInvestigationType\n }\n\n\n public async createInvestigation() {\n const payload = { companyName: this.companyName, companyWebSite: this.websiteUrl }\n const id = await createCompanyInvestigation(this.$store, payload)\n\n this.$router.push({name: \"topicInvestigation\", params: {id}})\n }\n\n\n private mounted() {\n this.$nextTick(() => {\n const searchString = this.$refs.searchString as HTMLInputElement\n searchString.focus()\n })\n\n this.emitEnableNext()\n }\n\n\n @Watch(\"companyName\")\n @Watch(\"websiteUrl\")\n private emitEnableNext() {\n let enable = this.companyName.trim().length > 0 && this.websiteUrl.trim().length > 0\n try {\n const _ = new URL(this.websiteUrl)\n } catch (e) {\n enable = false\n }\n this.$emit(\"enable-next\", enable)\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewCompanyInvestigationDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewCompanyInvestigationDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewCompanyInvestigationDetails.vue?vue&type=template&id=5d92edbd&scoped=true&\"\nimport script from \"./NewCompanyInvestigationDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewCompanyInvestigationDetails.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewCompanyInvestigationDetails.vue?vue&type=style&index=0&id=5d92edbd&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 \"5d92edbd\",\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',{staticClass:\"new-person-investigation-page\"},[_c('div',{staticClass:\"title-container\"},[_c('div',{staticClass:\"icon\",class:_vm.investigationType.icon}),_c('div',{staticClass:\"title\",style:({color: _vm.investigationType.color})},[_vm._v(_vm._s(_vm.investigationType.title))])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Institute Name\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.instituteName),expression:\"instituteName\"}],ref:\"instituteName\",attrs:{\"type\":\"text\",\"placeholder\":\"English letters only\"},domProps:{\"value\":(_vm.instituteName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.instituteName=$event.target.value}}})])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Faculty Name\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.facultyName),expression:\"facultyName\"}],attrs:{\"type\":\"text\",\"placeholder\":\"English letters only\"},domProps:{\"value\":(_vm.facultyName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.facultyName=$event.target.value}}})])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Researcher Name\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.researcherName),expression:\"researcherName\"}],ref:\"researcherName\",attrs:{\"type\":\"text\",\"placeholder\":\"English letters only\"},domProps:{\"value\":(_vm.researcherName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.researcherName=$event.target.value}}})])])])}\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 Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {createResearcherWorksInvestigation} from \"@/store/investigations-module\"\nimport {NewInvestigationDetails} from \"@/views/investigations/NewInvestigationPage.vue\"\nimport {Watch} from \"vue-property-decorator\"\nimport { InvestigationCreationType, InvestigationDataSource, researcherWorksInvestigationType } from \"@/types/new-investigation\"\n\n\n@Component\nexport default class NewPersonInvestigationDetails extends Vue implements NewInvestigationDetails {\n\n private instituteName: string = \"\"\n private facultyName: string = \"\"\n private researcherName: string = \"\"\n\n private get investigationType(): InvestigationCreationType {\n return researcherWorksInvestigationType\n }\n\n public async createInvestigation() {\n const payload = { instituteName: this.instituteName, facultyName: this.facultyName,\n researcherName: this.researcherName!, sources: [\"academic publications\"] as InvestigationDataSource[]}\n const highlight = await createResearcherWorksInvestigation(this.$store, payload)\n\n this.$router.push({name: \"investigations\", query: {highlight}})\n }\n\n private mounted() {\n this.$nextTick(() => {\n const instituteName = this.$refs.instituteName as HTMLInputElement\n instituteName.focus()\n })\n this.emitEnableNext()\n }\n\n @Watch(\"instituteName\")\n @Watch(\"facultyName\")\n @Watch(\"researcherName\")\n private emitEnableNext() {\n const enable =\n this.instituteName.trim().length > 0 &&\n this.facultyName.trim().length > 0 &&\n this.researcherName.trim().length > 0\n this.$emit(\"enable-next\", enable)\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewResearcherWorksInvestigationDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewResearcherWorksInvestigationDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewResearcherWorksInvestigationDetails.vue?vue&type=template&id=8d53453c&scoped=true&\"\nimport script from \"./NewResearcherWorksInvestigationDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewResearcherWorksInvestigationDetails.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewResearcherWorksInvestigationDetails.vue?vue&type=style&index=0&id=8d53453c&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 \"8d53453c\",\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',{staticClass:\"new-person-group-investigation-page\"},[_c('div',{staticClass:\"title-container\"},[_c('div',{staticClass:\"icon\",class:_vm.investigationType.icon}),_c('div',{staticClass:\"title\",style:({color: _vm.investigationType.color})},[_vm._v(_vm._s(_vm.investigationType.title))])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Institute Name\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.instituteName),expression:\"instituteName\"}],ref:\"instituteName\",attrs:{\"type\":\"text\",\"placeholder\":\"English letters only\"},domProps:{\"value\":(_vm.instituteName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.instituteName=$event.target.value}}})])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Faculty Name\")]),_c('div',{staticClass:\"mandatory\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.facultyName),expression:\"facultyName\"}],attrs:{\"type\":\"text\",\"placeholder\":\"English letters only\"},domProps:{\"value\":(_vm.facultyName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.facultyName=$event.target.value}}})])]),_c('div',{staticClass:\"search-term-container\"},[_c('div',{staticClass:\"search-caption\"},[_vm._v(\"Researcher Names\")]),_c('div',{staticClass:\"mandatory\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.researcherNames),expression:\"researcherNames\"}],attrs:{\"placeholder\":\"Enter researcher names (separated with newlines)...\"},domProps:{\"value\":(_vm.researcherNames)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.researcherNames=$event.target.value}}}),_vm._v(\" \"),(_vm.errorMessage)?_c('div',{staticClass:\"error\"},[_vm._v(_vm._s(_vm.errorMessage))]):_vm._e()])]),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"search-term-container\"},[_vm._v(\" Note: Unless found in the Google profile, only articles from the last year will be included.\"),_c('br'),_vm._v(\" You can later use the \\\"One-time Harvest\\\" dialog to add articles from previous years. \")])}]\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {NewInvestigationDetails} from \"@/views/investigations/NewInvestigationPage.vue\"\nimport {createFacultyWorksInvestigation} from \"@/store/investigations-module\"\nimport {Watch} from \"vue-property-decorator\"\nimport {InvestigationCreationType, InvestigationDataSource, facultyWorksInvestigationType} from \"@/types/new-investigation\"\n\n\n@Component\nexport default class NewPersonGroupInvestigationDetails extends Vue implements NewInvestigationDetails {\n\n private instituteName: string = \"\"\n private facultyName: string = \"\"\n private researcherNames: string = \"\"\n private errorMessage: string | null = null\n\n private get investigationType(): InvestigationCreationType {\n return facultyWorksInvestigationType\n }\n\n public async createInvestigation() {\n const payload = { institutionName: this.instituteName, facultyName: this.facultyName, researcherNames: this.researcherNames!, sources: [\"academic publications\"] as InvestigationDataSource[]}\n const highlight = await createFacultyWorksInvestigation(this.$store, payload)\n\n this.$router.push({name: \"investigations\", query: {highlight}})\n }\n\n private mounted() {\n this.$nextTick(() => {\n const instituteName = this.$refs.instituteName as HTMLInputElement\n instituteName.focus()\n })\n this.emitEnableNext()\n }\n\n @Watch(\"instituteName\")\n @Watch(\"facultyName\")\n @Watch(\"researcherNames\")\n private emitEnableNext() {\n const researcherCount = this.researcherNames.split(/\\r?\\n/).length\n const MAX_RESEARCHERS = 300\n if (researcherCount > MAX_RESEARCHERS) {\n this.errorMessage = `Researcher list is to long, maximum ${MAX_RESEARCHERS} researchers allowed.`\n } else {\n this.errorMessage = null\n }\n\n const enable =\n this.instituteName.trim().length > 0 &&\n this.facultyName.trim().length > 0 &&\n this.researcherNames.trim().length > 0 && researcherCount <= MAX_RESEARCHERS\n this.$emit(\"enable-next\", enable)\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFacultyWorksInvestigationDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewFacultyWorksInvestigationDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewFacultyWorksInvestigationDetails.vue?vue&type=template&id=4542f346&scoped=true&\"\nimport script from \"./NewFacultyWorksInvestigationDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewFacultyWorksInvestigationDetails.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewFacultyWorksInvestigationDetails.vue?vue&type=style&index=0&id=4542f346&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 \"4542f346\",\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {getInvestigationCreationType, InvestigationCreationType} from \"@/types/new-investigation\"\nimport NewTopicInvestigationDetails from \"@/views/investigations/NewTopicInvestigationDetails.vue\"\nimport NewPersonInvestigationDetails from \"@/views/investigations/NewPersonInvestigationDetails.vue\"\nimport NewPersonGroupInvestigationDetails from \"@/views/investigations/NewPersonGroupInvestigationDetails.vue\"\nimport NewPoliticalInvestigationDetails from \"@/views/investigations/NewPoliticalInvestigationDetails.vue\"\nimport NewUniversityInvestigationDetails from \"@/views/investigations/NewUniversityInvestigationDetails.vue\"\nimport NewWebsiteInvestigationDetails from \"@/views/investigations/NewWebsiteInvestigationDetails.vue\"\nimport NewTenderInvestigationDetails from \"@/views/investigations/NewTenderInvestigationDetails.vue\"\nimport NewCompanyInvestigationDetails from \"@/views/investigations/NewCompanyInvestigationDetails.vue\"\nimport NewResearcherWorksInvestigationDetails from \"@/views/investigations/NewResearcherWorksInvestigationDetails.vue\"\nimport NewFacultyWorksInvestigationDetails from \"@/views/investigations/NewFacultyWorksInvestigationDetails.vue\"\nimport {InvestigationSubType} from \"@/types/investigations\"\nimport {isFacultyWorksUser} from \"@/store/auth-module\"\n\n\nexport interface NewInvestigationDetails {\n\n createInvestigation(): void\n}\n\n\n@Component({\n components: {\n NewTopicInvestigationDetails,\n NewPersonInvestigationDetails,\n NewPersonGroupInvestigationDetails,\n NewPoliticalInvestigationDetails,\n NewUniversityInvestigationDetails,\n NewWebsiteInvestigationDetails,\n NewTenderInvestigationDetails,\n NewCompanyInvestigationDetails,\n NewFacultyWorksInvestigationDetails,\n NewResearcherWorksInvestigationDetails\n }\n})\nexport default class NewInvestigationPage extends Vue {\n\n private creationType: InvestigationCreationType | null = null\n private detailsComponent: string = \"\"\n private nextEnabled = false\n private buttonText = \"Next\"\n private isFacultyWorksUser = isFacultyWorksUser\n\n private beforeMount() {\n const investigationCreationType = this.$router.currentRoute.query.type as InvestigationSubType\n\n this.creationType = getInvestigationCreationType(investigationCreationType)!\n\n if (this.creationType.type === \"Topic\") {\n this.detailsComponent = \"NewTopicInvestigationDetails\"\n } else if (this.creationType.type === \"Person\") {\n this.detailsComponent = \"NewPersonInvestigationDetails\"\n } else if (this.creationType.type === \"PersonGroup\") {\n this.detailsComponent = \"NewPersonGroupInvestigationDetails\"\n } else if (this.creationType.type === \"University\") {\n this.detailsComponent = \"NewUniversityInvestigationDetails\"\n } else if (this.creationType.type === \"Political\") {\n this.detailsComponent = \"NewPoliticalInvestigationDetails\"\n } else if (this.creationType.type === \"WebSite\") {\n this.detailsComponent = \"NewWebsiteInvestigationDetails\"\n } else if (this.creationType.type === \"Tender\") {\n this.detailsComponent = \"NewTenderInvestigationDetails\"\n } else if (this.creationType.type === \"Company\") {\n this.detailsComponent = \"NewCompanyInvestigationDetails\"\n } else if (this.creationType.type === \"FacultyWorks\") {\n this.detailsComponent = \"NewFacultyWorksInvestigationDetails\"\n } else if (this.creationType.type === \"ResearcherWorks\") {\n this.detailsComponent = \"NewResearcherWorksInvestigationDetails\"\n }\n }\n\n\n private createInvestigation() {\n const details = this.$refs.details as unknown as NewInvestigationDetails\n this.buttonText = \"Working...\"\n this.nextEnabled = false\n details.createInvestigation()\n }\n\n\n private cancel() {\n this.$router.push({name: \"investigations\"})\n }\n\n\n private nextEvent(enable: boolean) {\n this.nextEnabled = enable\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewInvestigationPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewInvestigationPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewInvestigationPage.vue?vue&type=template&id=1d2e1b06&\"\nimport script from \"./NewInvestigationPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewInvestigationPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewInvestigationPage.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport 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('AuthPageContainer',[_c('div',{staticClass:\"sign-in-container\"},[_c('form',[_c('div',{staticClass:\"title-container\"},[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(!_vm.error)?_c('span',{key:'regular',staticClass:\"regular\"},[_vm._v(\"Sign in to your existing account or create a new one by signing up\")]):_c('span',{key:'error',staticClass:\"error\"},[_vm._v(\"Oops! That email / password combination is not valid.\")])])],1),_c('label',{staticClass:\"form-label\",class:{up: _vm.email !== '' || _vm.emailHasFocus},attrs:{\"for\":\"email\"}},[_vm._v(\"Email Address\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.email),expression:\"email\"}],staticClass:\"form-input\",attrs:{\"id\":\"email\",\"autocomplete\":\"off\"},domProps:{\"value\":(_vm.email)},on:{\"focus\":function($event){_vm.emailHasFocus = true},\"blur\":function($event){_vm.emailHasFocus = false},\"input\":function($event){if($event.target.composing){ return; }_vm.email=$event.target.value}}}),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.emailError)?_c('div',{staticClass:\"form-input-error\"},[_vm._v(\"Please enter your email address\")]):_vm._e()]),_c('label',{staticClass:\"form-label\",class:{up: _vm.password !== '' || _vm.passwordHasFocus},attrs:{\"for\":\"password\"}},[_vm._v(\"Password\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.password),expression:\"password\"}],staticClass:\"form-input\",attrs:{\"id\":\"password\",\"type\":\"password\"},domProps:{\"value\":(_vm.password)},on:{\"focus\":function($event){_vm.passwordHasFocus = true},\"blur\":function($event){_vm.passwordHasFocus = false},\"input\":function($event){if($event.target.composing){ return; }_vm.password=$event.target.value}}}),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.passwordError)?_c('div',{staticClass:\"form-input-error\"},[_vm._v(\"Please enter your password\")]):_vm._e()]),_c('button',{staticClass:\"sign-in-button\",on:{\"click\":function($event){$event.preventDefault();return _vm.signIn()}}},[_c('div',{staticClass:\"button-text\"},[(_vm.showProgress)?_c('img',{staticClass:\"rotating-progress\",attrs:{\"src\":require(\"../assets/images/loading-icon-white-not-animated.png\"),\"width\":\"40\",\"height\":\"40\",\"alt\":\"progress\"}}):_vm._e(),_c('span',[_vm._v(\"Sign In\")])])]),_c('section',{staticClass:\"management\",class:{showsSignUp: _vm.showSignUp}},[_c('label',{staticClass:\"forgot-label\"},[_vm._v(\"Forgot Password?\")]),_c('router-link',{staticClass:\"reset-link\",attrs:{\"to\":\"/reset\"}},[_vm._v(\"Reset\")]),(_vm.showSignUp)?_c('section',{staticClass:\"sign-up-container\"},[_c('div',{staticClass:\"separator\"}),_c('label',{staticClass:\"forgot-label\"},[_vm._v(\"Don’t have an account?\")]),_c('router-link',{staticClass:\"reset-link\",attrs:{\"to\":\"/sign-up\"}},[_vm._v(\"Sign Up\")])],1):_vm._e()],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:\"container\"},[_c('div',{staticClass:\"side-image\"}),_c('div',{staticClass:\"form-container\"},[_c('div',{staticClass:\"form\"},[_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"../assets/images/logo.svg\"),\"alt\":\"logo\"}}),_vm._t(\"default\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n import Vue from \"vue\"\n import Component from \"vue-class-component\"\n\n @Component\nexport default class AuthPageContainer extends Vue {\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthPageContainer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthPageContainer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AuthPageContainer.vue?vue&type=template&id=36121d18&scoped=true&\"\nimport script from \"./AuthPageContainer.vue?vue&type=script&lang=ts&\"\nexport * from \"./AuthPageContainer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AuthPageContainer.vue?vue&type=style&index=0&id=36121d18&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"36121d18\",\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('GenericDialogNew',{ref:\"genericDialog\",attrs:{\"modal\":true},on:{\"enterPressed\":function($event){return _vm.close()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.options.title))])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"message-dialog-content\"},[_c('div',{staticClass:\"dialog-content\",class:{'higher': _vm.options.multipleMessages}},[(!_vm.options.multipleMessages)?_c('div',{staticClass:\"message\"},[(!_vm.options.asHtml)?_c('div',[_vm._v(_vm._s(_vm.message))]):_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.message)}})]):_c('ul',{staticClass:\"message\"},_vm._l((_vm.message),function(singleMessage){return _c('li',[_c('div',{staticClass:\"multiple\"},[_vm._v(_vm._s(singleMessage))])])}),0)]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button ok\",on:{\"click\":_vm.close}},[_vm._v(\"Ok\")])])])]},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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport GenericDialogNew, {createDialogMountingPoint} from \"@/components/GenericDialogNew.vue\"\nimport {Prop} from \"vue-property-decorator\"\n\nexport function openMessageDialog(options: MessageDialogOptions) {\n new (Vue.extend(MessageDialog))({propsData: {options}}).$mount(createDialogMountingPoint())\n}\n\nexport interface MessageDialogOptions {\n readonly title: string\n readonly message: string\n readonly multipleMessages?: boolean\n readonly asHtml?: boolean\n}\n\n@Component({\n components: {GenericDialogNew}\n})\nexport default class MessageDialog extends Vue {\n\n @Prop()\n private options!: MessageDialogOptions\n\n private close() {\n (this.$refs.genericDialog as GenericDialogNew).close()\n }\n\n private get message(): string | string[] {\n if (this.options.multipleMessages) {\n return this.options.message.split(\"\\n\")\n }\n return this.options.message\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MessageDialog.vue?vue&type=template&id=dc23fb54&scoped=true&\"\nimport script from \"./MessageDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./MessageDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MessageDialog.vue?vue&type=style&index=0&id=dc23fb54&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 \"dc23fb54\",\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {signIn} from \"@/store/auth-module\"\nimport AuthPageContainer from \"@/components/AuthPageContainer.vue\"\nimport {Prop} from \"vue-property-decorator\"\nimport {isShowingSignUp} from \"@/store/environment-module\"\nimport {openMessageDialog} from \"@/components/MessageDialog.vue\"\n\n@Component({\n components: { AuthPageContainer }\n })\n export default class SignInPage extends Vue {\n\n @Prop()\n private base!: string\n\n private email: string = \"\"\n private password: string = \"\"\n private error: boolean = false\n private emailHasFocus: boolean = false\n private passwordHasFocus: boolean = false\n private emailError = false\n private passwordError = false\n private showProgress = false\n\n private get showSignUp() {\n return isShowingSignUp(this.$store)\n }\n\n\n private async signIn() {\n if (this.showProgress) {\n return\n }\n\n this.error = false\n this.emailError = this.email === \"\"\n this.passwordError = this.password === \"\"\n\n if (this.emailError || this.passwordError) {\n return\n }\n\n this.showProgress = true\n try {\n await signIn(this.$store, { email: this.email, password: this.password })\n if (this.$route.query.redirect) {\n this.$router.push(this.$route.query.redirect as string)\n return\n }\n this.$router.push(\"/\")\n\n } catch (error) {\n if (error.response && error.response.data === \"suspended\") {\n openMessageDialog({title: \"Suspended Account\", message: \"You have exceeded your evaluation period.
In order to reactivate your account, please contact info@socrates-insights.com\", asHtml: true})\n }\n\n this.error = true\n this.showProgress = 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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignInPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignInPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SignInPage.vue?vue&type=template&id=29b38e87&scoped=true&\"\nimport script from \"./SignInPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./SignInPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SignInPage.vue?vue&type=style&index=0&id=29b38e87&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"29b38e87\",\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',{attrs:{\"id\":\"main\"}},[_c('HeaderBar'),_c('router-view')],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('header',{class:_vm.headerClass},[_c('section',{staticClass:\"left\"},[_c('router-link',{staticClass:\"logo\",attrs:{\"to\":{name: 'investigations'},\"tag\":\"a\"}},[_c('div',{staticClass:\"logo-image-container\"},[_c('img',{staticClass:\"logo-image\",attrs:{\"title\":(\"Version \" + _vm.version),\"alt\":\"faculty.works Logo\",\"src\":require(_vm.isFacultyWorksUser ? '@/assets/images/fw-white.svg' : '@/assets/images/logo.svg')}})])]),(_vm.isInvestigating)?_c('div',{staticClass:\"separator\"}):_vm._e(),(_vm.isInvestigating && !_vm.isFacultyWorksUser)?_c('div',{staticClass:\"investigation-type\",style:({'background-color': _vm.investigationSubTypeColor})},[_vm._v(_vm._s(_vm.investigationSubTypeText))]):_vm._e(),((_vm.isInvestigating && !_vm.isEditing) || _vm.isInPersonProfile)?_c('div',{staticClass:\"investigation-title\",class:{profile: _vm.isInPersonProfile, disambiguate: _vm.isInDisambiguate, centered: !_vm.isFacultyWorksUser},on:{\"click\":_vm.editTitle}},[_vm._v(_vm._s(_vm.investigationTitle))]):(_vm.isInvestigating)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.title),expression:\"title\"}],ref:\"titleEditor\",staticClass:\"investigation-title\",domProps:{\"value\":(_vm.title)},on:{\"focusout\":_vm.endEditTitle,\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.endEditTitle.apply(null, arguments)},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.cancelEditTitle.apply(null, arguments)},\"input\":function($event){if($event.target.composing){ return; }_vm.title=$event.target.value}}}):_vm._e()],1),_c('section',{staticClass:\"right\"},[_c('div',{staticClass:\"actions\"},[(_vm.isInReviewProfile)?_c('button',{ref:\"menuRef\",staticClass:\"review-profile-tutorial-button\",on:{\"click\":function($event){return _vm.openReviewProfileTutorial()}}},[_vm._v(\"Brief Tour\")]):_vm._e(),_c('PopupMenu',{staticClass:\"notification-menu spacer\",attrs:{\"event\":\"openReviewProfileMenu\"}},[_c('div',{staticClass:\"notification\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"content-title\"},[_vm._v(\"Hello \"+_vm._s(_vm.investigationTitle)+\", welcome to Socrates.\")]),_c('div',[_c('span',[_vm._v(\"Your profile has been created automatically, and is ready for review. \")]),_c('span',[_vm._v(\"Please take our brief tour, and come back to review your publications.\")])])])])]),(_vm.isInTopicInvestigation && !_vm.isInPersonProfile && _vm.alertsFeatureIsOn)?_c('button',{ref:\"alerts\",staticClass:\"action-button alerts\",attrs:{\"title\":_vm.followTitle},on:{\"click\":_vm.toggleAlerts}},[_c('img',{attrs:{\"alt\":\"\",\"src\":require(\"../../assets/images/envelope.svg\")}}),_c('span',{staticClass:\"alerts-text\"},[_vm._v(_vm._s(_vm.followText))])]):_vm._e(),(_vm.isInvestigating && !_vm.isInPersonProfile)?_c('div',{staticClass:\"separator\"}):_vm._e(),(_vm.isReportEnabled && _vm.isInvestigating && !_vm.isInPersonProfile)?_c('button',{staticClass:\"action-button create-observation\",attrs:{\"title\":\"Add Insight to Report\"},on:{\"click\":_vm.createObservation}},[_c('img',{attrs:{\"alt\":\"\",\"src\":require(\"../../assets/images/observation.svg\")}})]):_vm._e(),(_vm.isShowProcessMenu() && !_vm.isFacultyWorksUser)?_c('div',{staticClass:\"action-process-container\"},[_c('button',{ref:\"process\",staticClass:\"action-button process\",attrs:{\"title\":\"Settings\"},on:{\"click\":function($event){return _vm.openHeaderProcessMenu()}}}),_c('PopupMenu',{attrs:{\"event\":\"openHeaderProcessMenu\"}},[(_vm.isInPersonProfile)?_c('div',[(!_vm.isInInvestigationsPage)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.exportToExcel}},[_vm._v(\"Export to Excel\")]):_vm._e()]):_c('div',[(_vm.isInInvestigationsPage && _vm.isAdminUser && !_vm.isFacultyWorksUser)?_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.toggleShowAllInvestigations()}}},[_vm._v(_vm._s(_vm.selectInvestigationsText))]):_vm._e(),(_vm.isInInvestigationsPage && _vm.isOmnisolUser && _vm.supportBatchInvestigations())?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.uploadAuthorsFile}},[_vm._v(\"Upload Authors File...\")]):_vm._e(),(_vm.isInInvestigationsPage && _vm.isOmnisolUser && _vm.supportBatchInvestigations())?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.deleteAllPending}},[_vm._v(\"Delete All Pending Investigations\")]):_vm._e(),(_vm.isInInvestigationsPage && _vm.isOmnisolUser && _vm.supportBatchInvestigations())?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.restartFailed}},[_vm._v(\"Restart Failed Investigation\")]):_vm._e(),(_vm.isInInvestigationsPage && _vm.isOmnisolUser && _vm.supportBatchInvestigations())?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.evaluateAccuracyUsingCvs}},[_vm._v(\"Evaluate Accuracy Using CVs\")]):_vm._e(),(_vm.isInInvestigationsPage && _vm.isOmnisolUser && _vm.supportBatchInvestigations())?_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.generateQualityEstimationReport()}}},[_vm._v(\"Generate Quality Estimation Report\")]):_vm._e(),(_vm.isInInvestigationsPage && _vm.isOmnisolUser && _vm.supportBatchInvestigations())?_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.generateAuthorFeedbackReport()}}},[_vm._v(\"Generate Author Feedback Report\")]):_vm._e(),(_vm.isInInvestigationsPage && _vm.isOmnisolUser)?_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.uploadInvestigationDefinitions()}}},[_vm._v(\"Upload Predefined Investigations\")]):_vm._e(),(!_vm.isInInvestigationsPage)?_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.openInvestigationConfigurationDialog()}}},[_vm._v(\"Investigation Configuration...\")]):_vm._e(),(!_vm.isInInvestigationsPage)?_c('div',{staticClass:\"menu-separator\"}):_vm._e(),(!_vm.isInInvestigationsPage)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.openHarvestDialog}},[_vm._v(\"One-Time Harvest...\")]):_vm._e(),(!_vm.isInInvestigationsPage)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.openHarvestByDoiDialog}},[_vm._v(\"One-Time Harvest by DOIs...\")]):_vm._e(),(_vm.isInPersonInvestigation)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.openHarvestAuthorsDialog}},[_vm._v(\"One-Time Harvest Authors...\")]):_vm._e(),(_vm.isInPersonInvestigation && _vm.supportBatchInvestigations())?_c('div',{staticClass:\"menu-separator\"}):_vm._e(),(_vm.isInPersonInvestigation && _vm.supportBatchInvestigations())?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.showOnlyMyPublications}},[_vm._v(\"Show Only My Publications\")]):_vm._e(),(_vm.isInPersonInvestigation && _vm.supportBatchInvestigations())?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.openReviewProfile}},[_vm._v(\"Open Review Profile\")]):_vm._e(),(_vm.isInTopicInvestigation)?_c('div',{staticClass:\"menu-separator\"}):_vm._e(),(_vm.isInTopicInvestigation)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.downloadTopicExport}},[_vm._v(\"Export to Excel\")]):_vm._e(),(!_vm.isInInvestigationsPage)?_c('div',{staticClass:\"menu-separator\"}):_vm._e(),(!_vm.isInInvestigationsPage)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.undeleteAuthors}},[_vm._v(\"Bring Back All Removed Authors\")]):_vm._e(),(!_vm.isInInvestigationsPage)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.restoreEntities}},[_vm._v(\"Bring Back All Removed Entities\")]):_vm._e(),(!_vm.isInInvestigationsPage && _vm.isOmnipotentUser)?_c('div',{staticClass:\"menu-separator\"}):_vm._e(),(!_vm.isInInvestigationsPage && _vm.isOmnipotentUser)?_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.createDocument()}}},[_vm._v(\"Create Document\")]):_vm._e(),(!_vm.isInInvestigationsPage && _vm.isOmnipotentUser)?_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.mergePersons()}}},[_vm._v(\"Merge All Authors\")]):_vm._e(),(!_vm.isInInvestigationsPage && _vm.isOmnipotentUser)?_c('div',{staticClass:\"menu-separator\"}):_vm._e(),(!_vm.isInInvestigationsPage)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.authorsGraph}},[_vm._v(\"Export Authors to GraphML\")]):_vm._e(),(!_vm.isInInvestigationsPage)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.termsGraph}},[_vm._v(\"Export Terms to GraphML\")]):_vm._e(),(_vm.isInPersonInvestigation && _vm.isOmnisolUser)?_c('div',{staticClass:\"menu-separator\"}):_vm._e(),(_vm.isInPersonInvestigation && _vm.isOmnisolUser)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.performClusterDiff}},[_vm._v(\"Cluster Diff\")]):_vm._e()])])],1):_vm._e(),(_vm.isShowProcessMenu() && !_vm.isInInvestigationsPage && _vm.isFacultyWorksUser)?_c('div',{staticClass:\"action-process-container\"},[_c('button',{ref:\"facultyworksMenu\",staticClass:\"action-button process\",attrs:{\"title\":\"Settings\"},on:{\"click\":function($event){return _vm.openFacultyworksMenu()}}}),_c('PopupMenu',{attrs:{\"event\":\"openFacultyworksMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.openInvestigationConfigurationDialog()}}},[_vm._v(\"Investigation Configuration...\")]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.openHarvestDialog}},[_vm._v(\"One-Time Harvest...\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.openHarvestByDoiDialog}},[_vm._v(\"One-Time Harvest by DOIs...\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.openHarvestAuthorsDialog}},[_vm._v(\"One-Time Harvest Authors...\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.harvestResultSetUrls}},[_vm._v(\"Re-Harvest current documents\")]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.createDocument()}}},[_vm._v(\"Create Document\")]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.filterToDuplicates}},[_vm._v(\"Filter: New Duplicates\")]),_c('div',{staticClass:\"menu-item\",attrs:{\"title\":\"Show documents having an author without affiliation\"},on:{\"click\":_vm.filterToUnaffiliated}},[_vm._v(\"Filter: Partly Unaffiliated\")]),_c('div',{staticClass:\"menu-item\",attrs:{\"title\":\"Show documents having an author with a name compatible to the configured researchers\"},on:{\"click\":_vm.filterByResearchers}},[_vm._v(\"Filter: Researcher Names\")]),_c('div',{staticClass:\"menu-item\",attrs:{\"title\":\"Show documents having an unknown publisher\"},on:{\"click\":_vm.filterToUnknownPublishers}},[_vm._v(\"Filter: Unknown Publishers\")]),_c('div',{staticClass:\"menu-item\",attrs:{\"title\":\"Show documents without a volume\"},on:{\"click\":_vm.filterToMissingVolume}},[_vm._v(\"Filter: Missing Volume\")]),_c('div',{staticClass:\"menu-item\",attrs:{\"title\":\"Show documents without a date\"},on:{\"click\":_vm.filterToMissingDate}},[_vm._v(\"Filter: Missing Date\")]),_c('div',{staticClass:\"menu-item\",attrs:{\"title\":\"Show documents with URLs that match the specified list\"},on:{\"click\":_vm.openFilterByUrlsDialog}},[_vm._v(\"Filter: Document URLs...\")]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.downloadHtml('STANDALONE')}}},[_vm._v(\"Generate FacultyWork Standalone\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.downloadHtml('EMBEDDED')}}},[_vm._v(\"Generate FacultyWork Embedded\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.downloadHtml('TEASER')}}},[_vm._v(\"Generate FacultyWork Teaser\")]),_c('div',{staticClass:\"menu-separator\"}),(!_vm.isInInvestigationsPage)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.exportPublications}},[_vm._v(\"Export Publications for Labeling\")]):_vm._e(),(!_vm.isInInvestigationsPage)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.downloadPersonExport}},[_vm._v(\"Export to Excel\")]):_vm._e()])],1):_vm._e(),_c('HarvestDialog',{ref:\"harvestDialog\"}),_c('HarvestByDoiDialog',{ref:\"harvestByDoiDialog\"}),_c('InvestigationConfigurationDialog',{ref:\"investigationConfigurationDialog\"}),(!_vm.isInReviewProfile)?_c('div',{staticClass:\"help-container\"},[_c('button',{ref:\"help\",staticClass:\"action-button help\",attrs:{\"title\":\"Help & Training\"},on:{\"click\":_vm.openHeaderHelpMenu}}),_c('PopupMenu',{attrs:{\"event\":\"openHeaderHelpMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.openUserGuide}},[_vm._v(\"User Guide\")]),(_vm.showHebrewTutorials)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.openVideoTutorialHebrew}},[_vm._v(\"Video Tutorials - Hebrew\")]):_vm._e(),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.openVideoTutorialEnglish}},[_vm._v(\"Video Tutorial\")])])],1):_vm._e()],1),(!_vm.isInReviewProfile)?_c('div',{staticClass:\"separator\",class:{inProfile: _vm.isInPersonProfile}}):_vm._e(),(!_vm.isInPersonProfile)?_c('UserMenu',{staticClass:\"user-menu\"}):_vm._e()],1),_c('AlertsDialog',{ref:\"alertsDialog\"}),_c('ResearcherHarvestDialog',{ref:\"researcherHarvestDialog\"})],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:\"user-menu-container\"},[(_vm.user)?_c('span',{staticClass:\"user-name\",on:{\"click\":function($event){$event.stopPropagation();return _vm.openUserMenu()}}},[_vm._v(_vm._s(_vm.user.nickname))]):_vm._e(),_c('section',{staticClass:\"user-menu\"},[_c('button',{ref:\"userButton\",staticClass:\"expand-button\",on:{\"click\":function($event){$event.stopPropagation();return _vm.openUserMenu()}}}),_c('PopupMenu',{attrs:{\"event\":\"openUserMenu\"}},[_c('div',{staticClass:\"menu-item\",attrs:{\"data-test\":\"sign-out\"},on:{\"click\":function($event){return _vm.signOut()}}},[_vm._v(\"Sign out\")])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport { getCurrentUser, signOut } from \"@/store/auth-module\"\nimport { UserEntityOptional } from \"@/types/user\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\n\n@Component({\n components: {PopupMenu}\n})\nexport default class UserMenu extends Vue {\n\n private opened: boolean = false\n\n private openUserMenu() {\n const userButton = this.$refs.userButton as HTMLElement\n this.$emit(\"openUserMenu\", userButton)\n }\n\n private async signOut() {\n await signOut(this.$store)\n this.$router.push({ name: \"sign-in\" })\n }\n\n private get user(): UserEntityOptional {\n return getCurrentUser(this.$store)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserMenu.vue?vue&type=template&id=5ef6005c&scoped=true&\"\nimport script from \"./UserMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserMenu.vue?vue&type=style&index=0&id=5ef6005c&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ef6005c\",\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('GenericDialog',{attrs:{\"visible\":_vm.isOpen,\"modal\":true},on:{\"onClose\":function($event){return _vm.close()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"Create alerts for this investigation\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"alerts-dialog-content\"},[[_c('div',{staticClass:\"dialog-content\"},[_vm._v(\"Receive an email alert whenever new and relevant results are discovered\")]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button create-alert\",on:{\"click\":function($event){return _vm.create()}}},[_vm._v(\"Create\")])])]],2)]},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('div',{staticClass:\"generic-dialog\"},[_c('transition',{attrs:{\"name\":'dialog-veil' + (_vm.embedded? 'none' : '')}},[(_vm.visible)?_c('div',{staticClass:\"full-screen-veil\",class:{embedded: _vm.embedded},style:({'z-index': _vm.componentVeilZIndex})}):_vm._e()]),_c('transition',{attrs:{\"name\":'dialog-container' + (_vm.embedded? 'none' : '')}},[(_vm.visible)?_c('div',{staticClass:\"dialog-container\",class:{maximized: _vm.maximized, embedded: _vm.embedded},style:({'z-index': _vm.componentVeilZIndex + 1}),on:{\"click\":function($event){return _vm.onVailClicked()}}},[_c('div',{staticClass:\"dialog\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:\"header\"},[_c('div',{staticClass:\"header-title\"},[_vm._t(\"dialog-title\")],2),_c('button',{staticClass:\"close-dialog\",on:{\"click\":function($event){return _vm.onClose()}}})]),_vm._t(\"dialog-content\")],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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {Prop} from \"vue-property-decorator\"\n\nlet veilZIndex = 9000\n\n@Component\nexport default class GenericDialog extends Vue {\n\n @Prop(Boolean)\n private modal!: boolean\n\n @Prop(Boolean)\n private visible!: boolean\n\n @Prop(Boolean)\n private maximized!: boolean\n\n @Prop(Boolean)\n private embedded!: boolean\n\n private componentVeilZIndex: number = veilZIndex += 2\n\n private onVailClicked() {\n if (!this.modal) {\n this.onClose()\n }\n }\n\n\n private onClose() {\n this.$emit(\"onClose\")\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenericDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenericDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GenericDialog.vue?vue&type=template&id=5d19b4f6&scoped=true&\"\nimport script from \"./GenericDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./GenericDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GenericDialog.vue?vue&type=style&index=0&id=5d19b4f6&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d19b4f6\",\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport GenericDialog from \"@/components/GenericDialog.vue\"\nimport {updateAlertsEnabled} from \"@/store/investigation/investigation-module\"\n\n@Component({\n components: { GenericDialog }\n })\n export default class AlertsDialog extends Vue {\n\n private isOpen = false\n\n public open() {\n this.isOpen = true\n document.addEventListener(\"keyup\", this.handleKey)\n }\n\n\n private close() {\n this.isOpen = false\n document.removeEventListener(\"keyup\", this.handleKey)\n }\n\n\n private async handleKey(e: KeyboardEvent) {\n switch (e.key) {\n case \"Escape\":\n this.close()\n break\n case \"Enter\":\n await this.create()\n break\n }\n }\n\n\n private async create() {\n this.close()\n await updateAlertsEnabled(this.$store, true)\n }\n }\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AlertsDialog.vue?vue&type=template&id=33f0da13&scoped=true&\"\nimport script from \"./AlertsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./AlertsDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AlertsDialog.vue?vue&type=style&index=0&id=33f0da13&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"33f0da13\",\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('GenericDialog',{attrs:{\"modal\":true,\"visible\":_vm.isOpen},on:{\"onClose\":function($event){return _vm.close()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"One-Time Harvest\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"harvest-dialog-content\"},[[_c('div',{staticClass:\"dialog-content\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"Search Query / URL:\")]),_c('div',{staticClass:\"search-string-container\"},[_c('span',{staticClass:\"asterisk\"},[_vm._v(\"*\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchString),expression:\"searchString\"}],ref:\"searchString\",staticClass:\"search-string\",attrs:{\"placeholder\":_vm.searchPlaceholder},domProps:{\"value\":(_vm.searchString)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.searchString=$event.target.value}}}),_vm._v(\" \"),_c('div',{staticClass:\"messages\"},[(_vm.message && !_vm.errorMessage)?_c('div',{staticClass:\"message\"},[_vm._v(_vm._s(_vm.message))]):_vm._e(),(_vm.errorMessage)?_c('div',{staticClass:\"error-message\"},[_vm._v(_vm._s(_vm.errorMessage))]):_vm._e()])])]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button harvest\",on:{\"click\":function($event){return _vm.startHarvest()}}},[_vm._v(\"Harvest Now\")])])]],2)]},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\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport GenericDialog from \"@/components/GenericDialog.vue\"\nimport InvestigationService from \"../../../api/investigation-service\"\nimport {getInvestigation} from \"@/store/investigation/investigation-module\"\nimport {Watch} from \"vue-property-decorator\"\nimport {PermissionsMixin} from \"@/store/user-mixin\"\n\n@Component({\n components: {GenericDialog}\n})\nexport default class HarvestDialog extends mixins(Vue, PermissionsMixin) {\n\n private static splitSearchString(searchString: string): string[] {\n function onlyUnique(value: string, index: number, self: string[]) {\n return self.indexOf(value) === index\n }\n\n return searchString\n .split(\"\\n\")\n .map(it => it.trim())\n .filter(it => it.length !== 0)\n .filter(onlyUnique)\n }\n\n private static isUrl(searchString: string): boolean {\n const lower = searchString.toLowerCase()\n return lower.startsWith(\"http://\") || lower.startsWith(\"https://\")\n }\n\n private static isSearchEnginePage(searchString: string): boolean {\n try {\n const url = new URL(searchString.toLowerCase())\n return url.hostname.includes(\"google.\")\n } catch (e) {\n return false\n }\n }\n\n private isOpen = false\n private message: string = \"\"\n private errorMessage: string = \"\"\n private searchString: string = \"\"\n\n private get searchPlaceholder() {\n return \"Enter one or more search terms / target URLs. Items should be newline-separated.\"\n }\n\n public open() {\n this.isOpen = true\n this.errorMessage = \"\"\n this.message = \"\"\n this.searchString = \"\"\n document.addEventListener(\"keyup\", this.handleKey)\n\n Vue.nextTick(() => {\n const nameInput = this.$refs.searchString as HTMLInputElement\n nameInput.focus()\n })\n }\n\n private close() {\n this.isOpen = false\n document.removeEventListener(\"keyup\", this.handleKey)\n }\n\n private handleKey(e: KeyboardEvent) {\n switch (e.key) {\n case \"Escape\":\n this.close()\n break\n }\n }\n\n private startHarvest() {\n if (this.errorMessage) {\n return\n }\n\n if (this.searchString.trim().length === 0) {\n this.errorMessage = \"Please enter a search string\"\n return\n }\n\n const searchString = this.searchString.trim()\n\n this.errorMessage = \"\"\n this.message = \"\"\n this.searchString = \"\"\n this.close()\n\n this.createHarvests(searchString)\n }\n\n @Watch(\"searchString\")\n private onSearchStringChanged() {\n this.errorMessage = \"\"\n this.message = \"\"\n\n try {\n const searchStrings = HarvestDialog.splitSearchString(this.searchString)\n const urls = searchStrings.filter(x => HarvestDialog.isUrl(x))\n const sePagesCount = urls.filter(x => HarvestDialog.isSearchEnginePage(x)).length\n const termsCount = searchStrings.length - urls.length\n const pagesCount = urls.length - sePagesCount\n const msg: string[] = []\n\n if (termsCount > 0) {\n msg.push(`${termsCount} term${termsCount > 1 ? \"s\" : \"\"}`)\n }\n if (pagesCount > 0) {\n msg.push(`${pagesCount} page${pagesCount > 1 ? \"s\" : \"\"}`)\n }\n if (sePagesCount > 0) {\n msg.push(`${sePagesCount} search page${sePagesCount > 1 ? \"s\" : \"\"}, of which all results are`)\n }\n if (msg.length > 0) {\n this.message = msg.join(\"; \") + \" to be harvested\"\n }\n\n if (termsCount > 20) {\n this.errorMessage = \"Maximum 20 search terms allowed\"\n } else if (sePagesCount > 20) {\n this.errorMessage = \"Maximum 20 search engine URLs allowed\"\n }\n } catch (_) {\n // do nothing\n }\n }\n\n private createHarvests(searchString: string) {\n const investigation = getInvestigation(this.$store)!!\n const searchStrings = HarvestDialog.splitSearchString(searchString)\n\n searchStrings.forEach(str => {\n const urlHarvest = HarvestDialog.isUrl(str)\n const forceStringHarvest = HarvestDialog.isSearchEnginePage(str)\n InvestigationService.createTopicHarvest(\n investigation.id, investigation.investigationType, str, urlHarvest, forceStringHarvest)\n })\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HarvestDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HarvestDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HarvestDialog.vue?vue&type=template&id=68379ae9&scoped=true&\"\nimport script from \"./HarvestDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./HarvestDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HarvestDialog.vue?vue&type=style&index=0&id=68379ae9&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 \"68379ae9\",\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('GenericDialog',{attrs:{\"visible\":_vm.isOpen,\"modal\":true},on:{\"onClose\":function($event){return _vm.close()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"One-Time Harvest By DOIs\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"harvest-dialog-content\"},[[_c('div',{staticClass:\"dialog-content\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"DOI List:\")]),_c('div',{staticClass:\"text-container\"},[_c('span',{staticClass:\"asterisk\"},[_vm._v(\"*\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.text),expression:\"text\"}],ref:\"text\",staticClass:\"text\",attrs:{\"placeholder\":\"DOIs as new-line separated list\"},domProps:{\"value\":(_vm.text)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.text=$event.target.value}}}),_vm._v(\" \"),(_vm.errorMessage)?_c('span',{staticClass:\"error-message\"},[_vm._v(_vm._s(_vm.errorMessage))]):_vm._e()])]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button harvest\",on:{\"click\":function($event){return _vm.startHarvest()}}},[_vm._v(\"Harvest Now\")])])]],2)]},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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport GenericDialog from \"@/components/GenericDialog.vue\"\nimport InvestigationService from \"../../../api/investigation-service\"\nimport {getInvestigation} from \"@/store/investigation/investigation-module\"\n\n@Component({\n components: {GenericDialog}\n })\n export default class HarvestByDoiDialog extends Vue {\n\n private isOpen = false\n private errorMessage: string = \"\"\n private text: string = \"\"\n\n\n public open() {\n this.isOpen = true\n this.errorMessage = \"\"\n document.addEventListener(\"keyup\", this.handleKey)\n\n Vue.nextTick(() => {\n const nameInput = this.$refs.text as HTMLInputElement\n nameInput.focus()\n })\n }\n\n private close() {\n this.isOpen = false\n document.removeEventListener(\"keyup\", this.handleKey)\n }\n\n\n private handleKey(e: KeyboardEvent) {\n switch (e.key) {\n case \"Escape\":\n this.close()\n break\n }\n }\n\n\n private startHarvest() {\n if (this.text.length === 0) {\n this.errorMessage = \"Please enter a DOI list\"\n return\n }\n\n let doiListToSend = []\n if (this.text[0] === \"[\") {\n try {\n doiListToSend = JSON.parse(this.text)\n } catch (e) {\n this.errorMessage = \"DOI list is not a valid JSON\"\n return\n }\n } else {\n doiListToSend = this.text.split(\"\\n\")\n }\n\n const investigation = getInvestigation(this.$store)!!\n\n this.errorMessage = \"\"\n InvestigationService.createHarvestByDoiList(investigation.id, investigation.investigationType, doiListToSend)\n this.text = \"\"\n this.close()\n }\n }\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HarvestByDoiDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HarvestByDoiDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HarvestByDoiDialog.vue?vue&type=template&id=5c5f423e&scoped=true&\"\nimport script from \"./HarvestByDoiDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./HarvestByDoiDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HarvestByDoiDialog.vue?vue&type=style&index=0&id=5c5f423e&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5c5f423e\",\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('GenericDialog',{attrs:{\"visible\":_vm.isOpen,\"modal\":true},on:{\"onClose\":function($event){return _vm.close()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.options.title))])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"harvest-dialog-content\"},[[_c('div',{staticClass:\"dialog-content\"},[_c('label',{staticClass:\"title\",attrs:{\"for\":\"search-string\"}},[_vm._v(_vm._s(_vm.options.searchStringLabel))]),_c('div',{staticClass:\"search-string-container\"},[_c('span',{staticClass:\"asterisk\"},[_vm._v(\"*\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchString),expression:\"searchString\"}],ref:\"searchString\",staticClass:\"search-string\",attrs:{\"id\":\"search-string\",\"data-hj-whitelist\":\"\",\"placeholder\":_vm.options.placeholder},domProps:{\"value\":(_vm.searchString)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.searchString=$event.target.value}}}),_vm._v(\" \"),(_vm.errorMessage)?_c('span',{staticClass:\"error-message\"},[_vm._v(_vm._s(_vm.errorMessage))]):_vm._e()]),_c('div',{staticClass:\"search-type-container\"},[_c('label',{attrs:{\"for\":\"searchTypeSelection\"}},[_vm._v(\"Date Range:\")]),_c('select',{ref:\"searchTypeSelection\",attrs:{\"id\":\"searchTypeSelection\"},on:{\"change\":function($event){return _vm.setSearchType()}}},[_c('option',{attrs:{\"value\":\"All\"},domProps:{\"selected\":_vm.searchType === 'All'}},[_vm._v(\"Any\")]),_c('option',{attrs:{\"value\":\"LastYear\"},domProps:{\"selected\":_vm.searchType === 'LastYear'}},[_vm._v(\"1 Year Back\")]),_c('option',{attrs:{\"value\":\"Last5Years\"},domProps:{\"selected\":_vm.searchType === 'Last5Years'}},[_vm._v(\"Last 5 Years\")])])])]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button harvest\",on:{\"click\":function($event){return _vm.startHarvest()}}},[_vm._v(\"Enrich\")])])]],2)]},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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport GenericDialog from \"@/components/GenericDialog.vue\"\nimport InvestigationService from \"../../../api/investigation-service\"\nimport {getInvestigation} from \"@/store/investigation/investigation-module\"\nimport {SearchType} from \"@/types/investigations\"\n\nexport interface ResearcherHarvestDialogDialogOptions {\n readonly title: string\n readonly searchStringLabel: string,\n readonly placeholder: string\n}\n\n@Component({\n components: {GenericDialog}\n})\nexport default class ResearcherHarvestDialog extends Vue {\n\n private options?: ResearcherHarvestDialogDialogOptions\n private isOpen = false\n private errorMessage: string = \"\"\n private searchString: string = \"\"\n private searchType: SearchType = \"LastYear\"\n\n public open(options: ResearcherHarvestDialogDialogOptions) {\n this.options = options\n this.isOpen = true\n this.errorMessage = \"\"\n this.searchString = \"\"\n this.searchType = \"LastYear\"\n\n document.addEventListener(\"keyup\", this.handleKey)\n\n Vue.nextTick(() => {\n const nameInput = this.$refs.searchString as HTMLInputElement\n nameInput.focus()\n })\n }\n\n\n private close() {\n this.isOpen = false\n document.removeEventListener(\"keyup\", this.handleKey)\n }\n\n\n private handleKey(e: KeyboardEvent) {\n switch (e.key) {\n case \"Escape\":\n this.close()\n break\n }\n }\n\n private setSearchType() {\n this.searchType = (this.$refs.searchTypeSelection as HTMLSelectElement).value as SearchType\n }\n\n private startHarvest() {\n this.searchString = this.searchString.trim()\n if (this.searchString.length === 0) {\n this.errorMessage = \"Please enter an author name\"\n return\n }\n\n const investigation = getInvestigation(this.$store)!!\n\n this.errorMessage = \"\"\n InvestigationService.createPersonHarvest(\n investigation.id, investigation.investigationType,\n this.searchString.split(\"\\n\"), this.searchType)\n\n this.close()\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResearcherHarvestDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResearcherHarvestDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResearcherHarvestDialog.vue?vue&type=template&id=6cc65a8e&scoped=true&\"\nimport script from \"./ResearcherHarvestDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResearcherHarvestDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ResearcherHarvestDialog.vue?vue&type=style&index=0&id=6cc65a8e&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6cc65a8e\",\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('GenericDialog',{attrs:{\"modal\":true,\"visible\":_vm.isOpen},on:{\"onClose\":function($event){return _vm.close()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"Investigation Configuration\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"investigation-configuration\"},[_c('div',{staticClass:\"error-message-container\",class:{'show': _vm.errorMessage}},[_c('div',{staticClass:\"error-message\"},[_vm._v(\" \"+_vm._s(_vm.errorMessage)+\" \")])]),_c('div',{staticClass:\"pages-content\"},[(_vm.pages.length > 0)?_c('section',{staticClass:\"pages-pane\"},[_c('ul',{staticClass:\"page-list\"},_vm._l((_vm.pages),function(page){return _c('li',{key:page,staticClass:\"page\",class:{'active': page === _vm.currentPage},on:{\"click\":function($event){_vm.currentPage = page}}},[_vm._v(_vm._s(page))])}),0)]):_vm._e(),_c('section',{staticClass:\"pages-content-container\"},[_c('section',{staticClass:\"page-content-container\"},[_c('section',{staticClass:\"page-content-pane\",class:{'active': _vm.currentPage === 'Search Settings'}},[_c('section',{staticClass:\"search-settings-page\"},[_c('section',{staticClass:\"web-pages\"},[_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"checkbox-container\",on:{\"click\":function($event){_vm.includeWebPages = !_vm.includeWebPages}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.includeWebPages}}),_c('label',[_vm._v(\"Include Web Pages\")])])]),(_vm.isOmnipotentUser)?_c('div',{staticClass:\"indented form-row\"},[_c('div',{staticClass:\"checkbox-container\",on:{\"click\":function($event){_vm.overrideDefaultMaxResultsPerWebHarvest = !_vm.overrideDefaultMaxResultsPerWebHarvest}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.overrideDefaultMaxResultsPerWebHarvest, 'disabled': !_vm.includeWebPages}}),_c('label',{attrs:{\"disabled\":!_vm.includeWebPages}},[_vm._v(\"Override max number of results per harvest\")])]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.maxResultsPerWebHarvest),expression:\"maxResultsPerWebHarvest\"}],attrs:{\"disabled\":!_vm.includeWebPages || !_vm.overrideDefaultMaxResultsPerWebHarvest,\"type\":\"number\"},domProps:{\"value\":(_vm.maxResultsPerWebHarvest)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.maxResultsPerWebHarvest=$event.target.value}}})]):_vm._e()]),(_vm.isOmnipotentUser)?_c('hr',{staticClass:\"inner-page-separator\"}):_vm._e(),_c('section',{staticClass:\"articles\"},[_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"checkbox-container\",on:{\"click\":function($event){_vm.includeArticles = !_vm.includeArticles}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.includeArticles}}),_c('label',[_vm._v(\"Include Academic Publications (Articles, Books and Book Chapters)\")])])]),(_vm.isOmnipotentUser)?_c('div',{staticClass:\"indented form-row\"},[_c('div',{staticClass:\"checkbox-container\",on:{\"click\":function($event){_vm.overrideDefaultMaxResultsPerArticleHarvest = !_vm.overrideDefaultMaxResultsPerArticleHarvest}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.overrideDefaultMaxResultsPerArticleHarvest, 'disabled': !_vm.includeArticles}}),_c('label',{attrs:{\"disabled\":!_vm.includeArticles}},[_vm._v(\"Override max number of results per harvest\")])]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.maxResultsPerArticleHarvest),expression:\"maxResultsPerArticleHarvest\"}],attrs:{\"disabled\":!_vm.includeArticles || !_vm.overrideDefaultMaxResultsPerArticleHarvest,\"type\":\"number\"},domProps:{\"value\":(_vm.maxResultsPerArticleHarvest)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.maxResultsPerArticleHarvest=$event.target.value}}})]):_vm._e()])])]),_c('section',{staticClass:\"page-content-pane\",class:{'active': _vm.currentPage === 'Web Page Search'}},[_c('section',{staticClass:\"web-pages-page\"},[_c('div',{staticClass:\"note\",class:{'active': !_vm.includeWebPages}},[_vm._v(\"Cannot set sites while web-page harvests are disabled\")]),_c('div',{staticClass:\"text-area-container\"},[_c('label',{attrs:{\"disabled\":!_vm.includeWebPages}},[_vm._v(\"Harvest specifically from the following sites (max 50 lines):\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.webHarvestFromSites),expression:\"webHarvestFromSites\"}],attrs:{\"disabled\":!_vm.includeWebPages,\"placeholder\":\"Example:\\n\\nusatoday.com\\nnbcnews.com | foxnews.com | latimes.com\"},domProps:{\"value\":(_vm.webHarvestFromSites)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.webHarvestFromSites=$event.target.value}}})])])]),_c('section',{staticClass:\"page-content-pane\",class:{'active': _vm.currentPage === 'Institutes Search'}},[_c('section',{staticClass:\"institutes-search-page\"},[_c('div',{staticClass:\"note\",class:{'active': !_vm.includeArticles}},[_vm._v(\"Cannot set institutes while article harvests are disabled\")]),_c('div',{staticClass:\"text-area-container\"},[_c('label',{attrs:{\"disabled\":!_vm.includeArticles}},[_vm._v(\"Harvest specifically from the following institutes (max 20 institutes):\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.articleHarvestFromInstitutions),expression:\"articleHarvestFromInstitutions\"}],attrs:{\"disabled\":!_vm.includeArticles,\"placeholder\":\"Example:\\n\\nMassachusetts Institute of Technology\\nCalifornia Institute of Technology\"},domProps:{\"value\":(_vm.articleHarvestFromInstitutions)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.articleHarvestFromInstitutions=$event.target.value}}})])])]),_c('section',{staticClass:\"page-content-pane\",class:{'active': _vm.currentPage === 'Filters'}},[_c('section',{staticClass:\"filters-page\"},[_c('label',{staticClass:\"choose-filters\"},[_vm._v(\"Select the filters to be displayed in the Analytics & Filters pane:\")]),_c('div',{staticClass:\"filters-container\"},[_c('div',{staticClass:\"filters\"},_vm._l((_vm.predefinedTops),function(filter){return _c('div',{staticClass:\"form-row block\"},[_c('div',{staticClass:\"checkbox-container\",on:{\"click\":function($event){filter.enabled = !filter.enabled}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': filter.enabled}}),_c('label',[_vm._v(_vm._s(filter.displayName))])])])}),0)])])]),_c('section',{staticClass:\"page-content-pane\",class:{'active': _vm.currentPage === 'Dictionaries'}},[_c('section',{staticClass:\"dictionaries-page\"},[_c('label',{staticClass:\"choose-filters\"},[_vm._v(\"Select the dictionaries to be displayed in the Analytics & Filters pane:\")]),_c('div',{staticClass:\"input-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.dictionaryFilter),expression:\"dictionaryFilter\"}],staticClass:\"filter-input\",attrs:{\"placeholder\":\"Enter dictionary to filter\",\"type\":\"text\"},domProps:{\"value\":(_vm.dictionaryFilter)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.dictionaryFilter=$event.target.value}}}),(!_vm.dictionaryFilter.length)?_c('button',{staticClass:\"control-button active search\"}):_c('button',{staticClass:\"control-button clear\",on:{\"click\":function($event){_vm.dictionaryFilter = ''}}})]),_c('div',{staticClass:\"selected-filter-items\"},_vm._l((_vm.selectedDictionaries),function(dictionary){return _c('div',{staticClass:\"selected-filter-item\",on:{\"click\":function($event){dictionary.enabled = false}}},[_vm._v(_vm._s(dictionary.displayName))])}),0),_c('div',{staticClass:\"filters-container\"},[_c('div',{staticClass:\"filters\"},_vm._l((_vm.sortedDictionaries),function(dictionary){return (_vm.shouldDisplayDictionary(dictionary))?_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"checkbox-container\",on:{\"click\":function($event){dictionary.enabled = !dictionary.enabled}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': dictionary.enabled}}),_c('label',[_vm._v(_vm._s(dictionary.displayName))])]),_c('img',{attrs:{\"src\":require(\"../../../assets/images/download.svg\"),\"alt\":\"download\",\"title\":\"Download\"},on:{\"click\":function($event){return _vm.downloadDictionary(dictionary)}}})]):_vm._e()}),0)])])]),(_vm.showTranslations)?_c('section',{staticClass:\"page-content-pane\",class:{'active': _vm.currentPage === 'Languages'}},[_c('section',{staticClass:\"language-selection-page\"},[_c('label',{staticClass:\"choose-languages\"},[_vm._v(\"Select additional languages for the investigation.\"),_c('br'),_vm._v(\"Note: there’s a limit of 15,000 translated documents per investigation.\")]),_c('div',{staticClass:\"input-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.languageFilter),expression:\"languageFilter\"}],staticClass:\"filter-input\",attrs:{\"placeholder\":\"Enter language to filter\",\"type\":\"text\"},domProps:{\"value\":(_vm.languageFilter)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.languageFilter=$event.target.value}}}),(!_vm.languageFilter.length)?_c('button',{staticClass:\"control-button active search\"}):_c('button',{staticClass:\"control-button clear\",on:{\"click\":function($event){_vm.languageFilter = ''}}})]),_c('div',{staticClass:\"selected-filter-items\"},_vm._l((_vm.selectedLanguages),function(language){return _c('div',{staticClass:\"selected-filter-item\",on:{\"click\":function($event){return _vm.unselectLanguage(language)}}},[_vm._v(_vm._s(language))])}),0),_c('div',{staticClass:\"languages\"},_vm._l((_vm.sortedLanguages),function(language){return (_vm.shouldDisplayLanguage(language))?_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"checkbox-container\",on:{\"click\":function($event){_vm.languageCheckboxes[language] = !_vm.languageCheckboxes[language]}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.languageCheckboxes[language]}}),_c('label',[_vm._v(_vm._s(language))])])]):_vm._e()}),0)])]):_vm._e(),_c('section',{staticClass:\"page-content-pane\",class:{'active': _vm.currentPage === 'Researchers'}},[_c('section',{staticClass:\"researchers-page\"},[_c('div',{staticClass:\"text-area-container\"},[_c('label',[_vm._v(\"List of the researchers in this investigation (separated by newlines):\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.researchers),expression:\"researchers\"}],attrs:{\"placeholder\":\"Example: John Doe\"},domProps:{\"value\":(_vm.researchers)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.researchers=$event.target.value}}})]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"startdate-container\"},[_c('label',[_vm._v(\"Starting from:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.startDateCutoff),expression:\"startDateCutoff\"}],attrs:{\"type\":\"text\",\"placeholder\":\"YYYY-MM-DD\"},domProps:{\"value\":(_vm.startDateCutoff)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.startDateCutoff=$event.target.value}}})]),_c('div',{staticClass:\"checkbox-container\",on:{\"click\":function($event){_vm.startDateCutoffEnabled = !_vm.startDateCutoffEnabled}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.startDateCutoffEnabled}}),_c('label',[_vm._v(\"Filter-out earlier documents\")])])])])]),_c('section',{staticClass:\"page-content-pane\",class:{'active': _vm.currentPage === 'Active Authors'}},[_c('section',{staticClass:\"active-authors-page\"},[_c('h2',[_vm._v(\"Active Authors\")]),_c('p',[_vm._v(\"Define which authors are active in this investigation. Inactive authors will have no link and image in the faculty.works page.\")]),_c('div',{staticClass:\"separator\"}),_c('label',[_vm._v(\"Affiliation name variants:\")]),_c('p',[_vm._v(\"Newline separated. For a positive match, the words must appear in order. Adjacency is not required.\")]),_c('div',{staticClass:\"text-area-container\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.activeAffiliations),expression:\"activeAffiliations\"}],attrs:{\"rows\":\"4\",\"placeholder\":\"e.g. technion \\\\n israel institute technology\"},domProps:{\"value\":(_vm.activeAffiliations)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.activeAffiliations=$event.target.value}}})]),_c('label',[_vm._v(\"Active author IDs:\")]),_c('p',[_vm._v(\"Newline separated. Text from the comma to the EOL is ignored.\")]),_c('p',[_vm._v(\"Authors in this list will be included even if their affiliation is incompatible with the above list.\")]),_c('div',{staticClass:\"text-area-container\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.activeAuthors),expression:\"activeAuthors\"}],attrs:{\"rows\":\"6\",\"placeholder\":\"e.g. 1234, John Smith\"},domProps:{\"value\":(_vm.activeAuthors)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.activeAuthors=$event.target.value}}})])])]),_c('section',{staticClass:\"page-content-pane\",class:{'active': _vm.currentPage === 'B&W Journals'}},[_c('section',{staticClass:\"journals-page\"},[_c('div',{staticClass:\"text-area-container\"},[_c('label',[_vm._v(\"Whitelist in this investigation (separated by newlines):\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.whitelistJournals),expression:\"whitelistJournals\"}],attrs:{\"placeholder\":\"e.g. Science\"},domProps:{\"value\":(_vm.whitelistJournals)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.whitelistJournals=$event.target.value}}})]),_c('div',{staticClass:\"text-area-container\"},[_c('label',[_vm._v(\"Blacklist in this investigation (separated by newlines):\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.blacklistJournals),expression:\"blacklistJournals\"}],attrs:{\"placeholder\":\"e.g. Cell Biology\"},domProps:{\"value\":(_vm.blacklistJournals)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.blacklistJournals=$event.target.value}}})])])]),_c('section',{staticClass:\"page-content-pane\",class:{'active': _vm.currentPage === 'Performance'}},[_c('section',{staticClass:\"performance-page\"},[_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"checkbox-container\",on:{\"click\":function($event){_vm.overrideDocumentNumberLimit = !_vm.overrideDocumentNumberLimit}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.overrideDocumentNumberLimit}}),_c('label',[_vm._v(\"Limit the number of loaded documents\")])]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.documentNumberLimit),expression:\"documentNumberLimit\"}],attrs:{\"disabled\":!_vm.overrideDocumentNumberLimit,\"type\":\"number\"},domProps:{\"value\":(_vm.documentNumberLimit)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.documentNumberLimit=$event.target.value}}})])])])]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button ok\",class:{'saving': _vm.saving},attrs:{\"disabled\":_vm.saving},on:{\"click\":function($event){return _vm.save()}}},[_vm._v(\"Save\")])])])])])]},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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport GenericDialog from \"@/components/GenericDialog.vue\"\nimport {\n fetchAllData,\n fetchGraphData,\n fetchTopicInvestigationExport,\n getInvestigation\n} from \"@/store/investigation/investigation-module\"\nimport {InvestigationConfigurationEntity, InvestigationConfigurationTopStatus} from \"@/types/investigations\"\nimport {configurationService} from \"@/api/investigation-configuration-service\"\nimport {getGraphType} from \"@/store/investigation/graph-module\"\nimport {isShowingHebrewTutorials, isShowingTranslations} from \"@/store/environment-module\"\nimport {PermissionsMixin} from \"@/store/user-mixin\"\nimport moment from 'moment'\nimport {downloadBlob} from \"@/utils/utils\"\n\n@Component({\n components: {GenericDialog}\n})\nexport default class InvestigationConfigurationDialog extends mixins(Vue, PermissionsMixin) {\n private isOpen = false\n private pages: string[] = []\n private currentPage: string = \"\"\n private saving: boolean = false\n private errorMessage: string | null = null\n\n private configuration!: InvestigationConfigurationEntity\n private includeWebPages: boolean = false\n private overrideDefaultMaxResultsPerWebHarvest: boolean = false\n private maxResultsPerWebHarvest: string = \"20\"\n private webHarvestFromSites: string = \"\"\n private includeArticles: boolean = false\n private overrideDefaultMaxResultsPerArticleHarvest: boolean = false\n private maxResultsPerArticleHarvest: string = \"20\"\n private articleHarvestFromInstitutions: string = \"\"\n private topsStatuses: InvestigationConfigurationTopStatus[] = []\n private originalTopsOrder = \"\"\n private researchers: string = \"\"\n private overrideDocumentNumberLimit: boolean = false\n private documentNumberLimit: number = 0\n private whitelistJournals: string = \"\"\n private blacklistJournals: string = \"\"\n private activeAffiliations: string = \"\"\n private activeAuthors: string = \"\"\n\n private languageCheckboxes: { [key: string]: boolean } = {}\n private languages = [\n \"Afrikaans\", \"Arabic\", \"Bulgarian\", \"Chinese (Simplified)\", \"Chinese (Traditional)\", \"Croatian\", \"Czech\", \"Danish\", \"Dutch\",\n \"Estonian\", \"Finnish\", \"French\", \"German\", \"Greek\", \"Hebrew\", \"Hindi\", \"Hungarian\", \"Indonesian\", \"Italian\", \"Japanese\",\n \"Korean\", \"Latvian\", \"Norwegian\", \"Persian\", \"Polish\", \"Portuguese\", \"Romanian\", \"Russian\", \"Serbian\", \"Slovak\", \"Slovenian\",\n \"Spanish\", \"Swahili\", \"Swedish\", \"Thai\", \"Turkish\", \"Ukrainian\", \"Vietnamese\"\n ]\n private dictionaryFilter = \"\"\n private languageFilter = \"\"\n private startDateCutoff: string | null = null\n private startDateCutoffEnabled: boolean = true\n\n get showTranslations(): boolean {\n return isShowingTranslations(this.$store)\n }\n\n private get predefinedTops() {\n const investigation = getInvestigation(this.$store)!!\n const isPersonInvestigation = investigation.investigationType === \"Person\"\n\n return this.topsStatuses\n .filter(top => !top.dictionary)\n .filter(top => {\n if (isPersonInvestigation) {\n return top.id !== \"5a3bf2fc-4a07-4211-a9c3-216545a23626\" && // languages\n top.id !== \"63ee561f-87bc-4a4b-9079-a4a1e441fd70\" && // emails\n top.id !== \"ae458f09-481c-42dd-bbc4-4976c8d44027\" && // mentioned persons\n top.id !== \"a6ee0028-5772-4c4f-8461-a9cb056157a8\" && // mentioned organization\n top.id !== \"be92e384-011c-3731-a3f7-eab17ec40a59\" && // mentioned locations\n top.id !== \"6ff1be47-734b-34ec-843f-ca4d1c27d858\" // mentioned concepts\n }\n\n return top.id !== \"6ff1be47-734b-34ec-843f-ca4d1c27d858\" // mentioned concepts\n })\n }\n\n private get dictionaries() {\n return this.topsStatuses.filter(top => top.dictionary)\n }\n\n private get sortedDictionaries() {\n return this.dictionaries\n .sort((a, b) => a.displayName.localeCompare(b.displayName))\n }\n\n private get sortedLanguages() {\n const showHebrew = isShowingHebrewTutorials(this.$store)\n\n return this.languages\n .filter(it => showHebrew ? true : it !== \"Hebrew\")\n .sort((a, b) => a.localeCompare(b))\n }\n\n private get selectedLanguages() {\n return this.languages.filter(language => this.languageCheckboxes[language])\n }\n\n private set selectedLanguages(languages: string[]) {\n const selectedLanguages = this.selectedLanguages\n selectedLanguages.forEach(selectedLanguage => this.languageCheckboxes[selectedLanguage] = false)\n languages.forEach(language => this.languageCheckboxes[language] = true)\n }\n\n private get selectedDictionaries() {\n return this.dictionaries.filter(it => it.enabled)\n }\n\n public async open() {\n this.dictionaryFilter = \"\"\n this.languageFilter = \"\"\n\n document.addEventListener(\"keyup\", this.handleKey)\n\n const investigation = getInvestigation(this.$store)!!\n if (investigation.investigationType === \"Topic\") {\n this.pages = [\"Search Settings\", \"Web Page Search\", \"Institutes Search\", \"Filters\", \"Dictionaries\"]\n if (this.showTranslations) {\n this.pages.push(\"Languages\")\n }\n } else if (investigation.investigationType === \"Person\") {\n this.pages = [\"Search Settings\", \"Filters\", \"Dictionaries\", \"Researchers\"]\n if (this.isFacultyWorksUser) {\n this.pages.push(\"Active Authors\")\n this.pages.push(\"B&W Journals\")\n }\n if (this.isOmnipotentUser) {\n this.pages.push(\"Performance\")\n }\n }\n this.currentPage = this.pages[0]\n\n this.configuration = await configurationService.getConfiguration(investigation.id)\n this.includeWebPages = this.configuration.searchDefinition.includeWebPages\n this.overrideDefaultMaxResultsPerWebHarvest = this.configuration.searchDefinition.overrideDefaultMaxResultsPerWebHarvest\n this.maxResultsPerWebHarvest = this.configuration.searchDefinition.maxResultsPerWebHarvest.toString()\n this.webHarvestFromSites = this.configuration.searchDefinition.webHarvestFromSites.join(\"\\n\")\n this.researchers = this.configuration.researchers.join(\"\\n\")\n this.whitelistJournals = this.configuration.journals?.whitelist.join(\"\\n\")\n this.blacklistJournals = this.configuration.journals?.blacklist.join(\"\\n\")\n\n this.activeAffiliations = this.configuration.activeAffiliations?.join(\"\\n\") || \"\"\n this.activeAuthors = this.configuration.activeAuthors?.join(\"\\n\") || \"\"\n this.overrideDocumentNumberLimit = this.configuration.overrideDocumentNumberLimit\n this.documentNumberLimit = this.configuration.documentNumberLimit\n if (this.configuration.startDateCutoff) {\n this.startDateCutoff = moment(this.configuration.startDateCutoff).format(\"yyyy-MM-DD\")\n }\n this.startDateCutoffEnabled = this.configuration.startDateCutoffEnabled\n this.includeArticles = this.configuration.searchDefinition.includeArticles\n this.overrideDefaultMaxResultsPerArticleHarvest = this.configuration.searchDefinition.overrideDefaultMaxResultsPerArticleHarvest\n this.maxResultsPerArticleHarvest = this.configuration.searchDefinition.maxResultsPerArticleHarvest.toString()\n this.articleHarvestFromInstitutions = this.configuration.searchDefinition.articleHarvestFromInstitutions.join(\"\\n\")\n this.topsStatuses = this.configuration.topsStatuses\n this.originalTopsOrder = this.collectEnabledTops()\n this.languages.forEach(language => this.$set(this.languageCheckboxes, language, false))\n this.selectedLanguages = this.configuration.translation ? this.configuration.translation.selectedLanguages : []\n this.errorMessage = \"\"\n this.isOpen = true\n }\n\n private unselectLanguage(language: string) {\n this.languageCheckboxes[language] = false\n }\n\n private shouldDisplayLanguage(language: string) {\n return !this.languageFilter.length || language.toLowerCase().includes(this.languageFilter.toLowerCase())\n }\n\n private shouldDisplayDictionary(dictionary: InvestigationConfigurationTopStatus) {\n return !this.dictionaryFilter.length || dictionary.displayName.toLowerCase().includes(this.dictionaryFilter.toLowerCase())\n }\n\n private collectEnabledTops(): string {\n return this.topsStatuses.filter(status => status.enabled).map(status => status.id).join(\",\")\n }\n\n private close() {\n this.isOpen = false\n document.removeEventListener(\"keyup\", this.handleKey)\n }\n\n private handleKey(e: KeyboardEvent) {\n switch (e.key) {\n case \"Escape\":\n this.close()\n break\n }\n }\n\n // noinspection JSMethodCanBeStatic\n private isDateValid(date: string | null): boolean {\n return date == null || date.trim().length === 0 || moment(date).isValid()\n }\n\n private validate(): boolean {\n this.errorMessage = null\n\n if (!this.includeWebPages && !this.includeArticles) {\n this.errorMessage = \"Web page and articles must not be excluded together\"\n return false\n }\n\n const maxResultsPerWebHarvest = Number.parseFloat(this.maxResultsPerWebHarvest)\n const maxResultsPerArticleHarvest = Number.parseFloat(this.maxResultsPerArticleHarvest)\n\n if (!Number.isInteger(maxResultsPerWebHarvest) || maxResultsPerWebHarvest < 1 || maxResultsPerWebHarvest > 200) {\n this.errorMessage = \"Max results for web harvests must be a whole number between 0 and 200\"\n return false\n }\n\n if (!Number.isInteger(maxResultsPerArticleHarvest) || maxResultsPerArticleHarvest < 1 || maxResultsPerArticleHarvest > 200) {\n this.errorMessage = \"Max results for article harvests must be a whole number between 0 and 200\"\n return false\n }\n\n if (this.selectedLanguages.length > 2) {\n this.errorMessage = \"Maximum of two languages allowed\"\n return false\n }\n\n const MAX_RESEARCHERS = 300\n const researcherCount = this.researchers.split(/\\r?\\n/).length\n if (researcherCount > MAX_RESEARCHERS) {\n this.errorMessage = `No more than ${MAX_RESEARCHERS} researchers are allowed`\n return false\n }\n\n if (!this.isDateValid(this.startDateCutoff)) {\n this.errorMessage = \"\\\"Starting from\\\" date in the Researchers tab is invalid\"\n return false\n }\n\n return true\n }\n\n // noinspection JSMethodCanBeStatic\n private splitToList(str: string | null): string[] {\n if (!str) {\n return []\n }\n return str.split(/\\r?\\n/).map(x => x.trim()).filter(x => x.length > 0)\n }\n\n // noinspection JSMethodCanBeStatic\n private async downloadDictionary(dictionary: InvestigationConfigurationTopStatus) {\n const blob = await configurationService.fetchEntireDictionary(dictionary.id)\n const fileName = `${dictionary.displayName}.csv`\n downloadBlob(blob, fileName)\n }\n\n private async save() {\n if (!this.validate()) {\n return\n }\n\n this.saving = true\n const investigation = getInvestigation(this.$store)!!\n\n const configuration: InvestigationConfigurationEntity = {\n ...this.configuration,\n searchDefinition: {\n includeWebPages: this.includeWebPages,\n overrideDefaultMaxResultsPerWebHarvest: this.overrideDefaultMaxResultsPerWebHarvest,\n maxResultsPerWebHarvest: Number(this.maxResultsPerWebHarvest),\n webHarvestFromSites: this.splitToList(this.webHarvestFromSites),\n includeArticles: this.includeArticles,\n overrideDefaultMaxResultsPerArticleHarvest: this.overrideDefaultMaxResultsPerArticleHarvest,\n maxResultsPerArticleHarvest: Number(this.maxResultsPerArticleHarvest),\n articleHarvestFromInstitutions: this.splitToList(this.articleHarvestFromInstitutions)\n },\n topsStatuses: this.topsStatuses,\n translation: {\n selectedLanguages: this.selectedLanguages\n },\n researchers: this.splitToList(this.researchers),\n journals: {\n whitelist: this.splitToList(this.whitelistJournals),\n blacklist: this.splitToList(this.blacklistJournals)\n },\n activeAffiliations: this.splitToList(this.activeAffiliations),\n activeAuthors: this.splitToList(this.activeAuthors),\n overrideDocumentNumberLimit: this.overrideDocumentNumberLimit,\n documentNumberLimit: this.documentNumberLimit,\n startDateCutoff: moment(this.startDateCutoff),\n startDateCutoffEnabled: this.startDateCutoffEnabled\n }\n\n this.errorMessage = await configurationService.setConfiguration(investigation.id, configuration)\n this.saving = false\n if (!this.errorMessage) {\n this.close()\n\n if (this.originalTopsOrder !== this.collectEnabledTops()) {\n getGraphType(this.$store) === null ? await fetchAllData(this.$store) : await fetchGraphData(this.$store)\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--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvestigationConfigurationDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvestigationConfigurationDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InvestigationConfigurationDialog.vue?vue&type=template&id=312f7c50&scoped=true&\"\nimport script from \"./InvestigationConfigurationDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./InvestigationConfigurationDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InvestigationConfigurationDialog.vue?vue&type=style&index=0&id=312f7c50&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 \"312f7c50\",\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('GenericDialogNew',{ref:\"genericDialog\",attrs:{\"modal\":true},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.options.observation ? \"Edit Insight\" : \"Add Insight to Report\"))])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('section',{staticClass:\"observation-dialog\",class:{'with-pages': _vm.pages.length > 1}},[(_vm.pages.length > 1)?_c('section',{staticClass:\"pages-pane\"},[_c('ul',{staticClass:\"pages-container\"},_vm._l((_vm.pages),function(page){return _c('li',{key:page,staticClass:\"page\",class:{'active': page === _vm.currentPage},on:{\"click\":function($event){_vm.currentPage = page}}},[_vm._v(_vm._s(page))])}),0)]):_vm._e(),_c('section',{staticClass:\"pages-content-container\"},[_c('section',{staticClass:\"page-content-container\"},[_c('section',{staticClass:\"page-content-pane details\",class:{'active': _vm.currentPage === 'Details'}},[_c('div',{staticClass:\"title-container\"},[_c('span',{staticClass:\"asterisk\"},[_vm._v(\"*\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.title),expression:\"title\"}],ref:\"title\",staticClass:\"title-input\",attrs:{\"placeholder\":\"Title\",\"type\":\"text\"},domProps:{\"value\":(_vm.title)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.title=$event.target.value}}})]),_c('div',{staticClass:\"search-type-container\"},[_c('label',{attrs:{\"for\":\"searchTypeSelection\"}},[_vm._v(\"Section\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedSection),expression:\"selectedSection\"}],ref:\"searchTypeSelection\",attrs:{\"id\":\"searchTypeSelection\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedSection=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{domProps:{\"value\":null}},[_vm._v(\"None\")]),_vm._l((_vm.availableSections),function(s){return _c('option',{domProps:{\"value\":s}},[_vm._v(_vm._s(s.name))])})],2)]),_c('kendo-editor-wrapper',{staticClass:\"notes\",model:{value:(_vm.body),callback:function ($$v) {_vm.body=$$v},expression:\"body\"}}),(_vm.options.type !== \"Investigation\")?_c('ReferencedEntityPreview',{attrs:{\"observation\":_vm.options.observation,\"referenced-entity\":_vm.options.referencedEntity,\"scroll\":true,\"type\":_vm.options.type},on:{\"personName\":_vm.setPersonNameInTitle}}):_vm._e()],1),_c('section',{staticClass:\"page-content-pane image\",class:{'active': _vm.currentPage === 'Image'}},[(_vm.options.allowImageUpload)?_c('UploadImagePane',{attrs:{\"image-id\":_vm.imageId},model:{value:(_vm.imageCropData),callback:function ($$v) {_vm.imageCropData=$$v},expression:\"imageCropData\"}}):_vm._e()],1)])])]),_c('section',{staticClass:\"dialog-buttons-container\",class:{'separator' : _vm.pages.length > 1}},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button save\",attrs:{\"disabled\":_vm.title.trim().length === 0},on:{\"click\":function($event){return _vm.save()}}},[_vm._v(_vm._s(_vm.options.observation ? \"Save\" : \"Add\"))])])]},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('kendo-editor',{attrs:{\"paste-cleanup\":_vm.pasteCleanup},model:{value:(_vm.editorValue),callback:function ($$v) {_vm.editorValue=$$v},expression:\"editorValue\"}},[_c('kendo-editor-tool',{attrs:{\"name\":'bold'}}),_c('kendo-editor-tool',{attrs:{\"name\":'italic'}}),_c('kendo-editor-tool',{attrs:{\"name\":'underline'}}),_c('kendo-editor-tool',{attrs:{\"name\":'createLink'}}),_c('kendo-editor-tool',{attrs:{\"name\":'unlink'}}),_c('kendo-editor-tool',{attrs:{\"name\":'viewHtml'}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport { Model, Prop } from \"vue-property-decorator\"\n\n@Component({})\nexport default class KendoEditorWrapper extends Vue {\n\n @Prop()\n @Model(\"value\")\n private value!: string\n\n private get editorValue() {\n return this.value\n }\n\n private set editorValue(newValue: string) {\n this.$emit(\"value\", newValue)\n }\n\n get pasteCleanup() {\n return {\n all: false,\n css: false,\n keepNewLines: true,\n msAllFormatting: false,\n msConvertLists: true,\n msTags: false,\n none: false,\n span: 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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KendoEditorWrapper.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KendoEditorWrapper.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./KendoEditorWrapper.vue?vue&type=template&id=01947b95&scoped=true&\"\nimport script from \"./KendoEditorWrapper.vue?vue&type=script&lang=ts&\"\nexport * from \"./KendoEditorWrapper.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 \"01947b95\",\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',{staticClass:\"preview\",style:(_vm.previewStyle)},[(_vm.type === \"Person\")?_c('AuthorSummaryPane',{staticClass:\"pane\",attrs:{\"containingParentName\":\"observation-preview\",\"image-id\":_vm.imageId,\"observation-summary\":_vm.summary,\"person-id\":_vm.referencedEntity,\"show-alias-names\":false,\"show-documents\":true}}):_vm._e(),(_vm.type === \"Document\")?_c('DocumentItem',{attrs:{\"document\":_vm.document,\"is-editable\":false}}):_vm._e(),(_vm.type === \"Graph\")?_c('GraphImage',{attrs:{\"data-url\":_vm.referencedEntity,\"image-id\":_vm.imageKey}}):_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',{staticClass:\"author-summary-pane\",class:_vm.containingPane},[(!_vm.isDataFetched && _vm.isInRightPane)?_c('div',{staticClass:\"loading-container\"},[_c('img',{attrs:{\"alt\":\"loading\",\"src\":require(\"../../../assets/images/loading.gif\")}}),_c('div',{staticClass:\"loading-text\"},[_vm._v(\"Loading Profile Summary...\")])]):_c('div',[(_vm.shouldShowHeader)?_c('div',{staticClass:\"sticky\"},[_c('div',{staticClass:\"subheader-container\"},[_c('h1',{staticClass:\"subheader\"},[_vm._v(\"Profile Summary\")]),(_vm.isInRightPane)?_c('button',{staticClass:\"close-graph button\",on:{\"click\":_vm.close}}):_vm._e()])]):_vm._e(),(_vm.isDataFetched)?_c('div',[_c('div',{staticClass:\"general-info-container\",class:_vm.containingPane},[(_vm.containingParentName !== \"observation-preview\")?_c('div',{staticClass:\"buttons\"},[_c('div',{staticClass:\"profile-actions\"},[(_vm.shouldShowDisambiguate)?_c('button',{staticClass:\"disambiguate button\",attrs:{\"title\":\"Disambiguate Author\"},on:{\"click\":_vm.disambiguate}},[_vm._v(\"Disambiguate\")]):_vm._e(),(_vm.isFacultyWorksUser)?_c('button',{staticClass:\"mark-reviewed button\",attrs:{\"title\":\"Mark as reviewed\"},on:{\"click\":_vm.markReviewed}},[_vm._v(\"Mark Reviewed\")]):_vm._e(),(_vm.shouldShowViewProfile)?_c('button',{staticClass:\"view-profile button\",attrs:{\"title\":\"View full author profile\"},on:{\"click\":_vm.viewProfile}},[_vm._v(\"Full Profile\")]):_vm._e()]),(_vm.shouldShowActionMenu)?_c('button',{ref:\"menuOpener\",staticClass:\"action-button summary-menu-opener\",on:{\"click\":_vm.openMenu}}):_vm._e(),_c('PopupMenu',{attrs:{\"event\":\"openMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.createCorrelatedInvestigation}},[_vm._v(\"Launch Web Investigation\")]),(_vm.shouldShowWebEnrichment)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.enrich}},[_vm._v(\"Enrich\")]):_vm._e(),_c('div',{staticClass:\"menu-item\",attrs:{\"data-test\":\"exportToExcel\"},on:{\"click\":_vm.exportToExcel}},[_vm._v(\"Export to Excel\")]),(_vm.isReportEnabled)?_c('div',{staticClass:\"menu-item\",attrs:{\"data-test\":\"createObservation\"},on:{\"click\":_vm.createObservation}},[_vm._v(\"Add Insight to Report\")]):_vm._e(),_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.editAuthorDetails()}}},[_vm._v(\"Edit Author Details\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.copyAuthorName()}}},[_vm._v(\"Copy Author Name\")]),(_vm.manuallyMerged)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.undoMerge}},[_vm._v(\"Undo Manual Merge\")]):_vm._e(),(!_vm.manuallyMerged && _vm.isFacultyWorksUser)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.undoMerge}},[_vm._v(\"Re-Merge...\")]):_vm._e()])],1):_vm._e(),_c('div',{staticClass:\"person-image\"},[(_vm.personImageUrl)?_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.imageLoaded),expression:\"imageLoaded\"}],ref:\"personImage\",attrs:{\"src\":_vm.personImageUrl,\"alt\":\"person image\"},on:{\"error\":function($event){_vm.imageLoaded = false},\"load\":function($event){_vm.imageLoaded = true}}}):_vm._e(),(_vm.allowImageUpdate)?_c('div',{staticClass:\"update-overlay\",on:{\"click\":function($event){return _vm.editAuthorDetails()}}},[_c('div',{staticClass:\"update-text\"},[_vm._v(\"Edit\")])]):_vm._e()]),_c('div',{staticClass:\"name-container\"},[_c('div',{staticClass:\"name\"},[_c('div',[_vm._v(_vm._s(_vm.personName))]),_c('div',{staticClass:\"name-actions\"},[(_vm.universityProfileUrl)?_c('a',{attrs:{\"href\":_vm.universityProfileUrl,\"target\":\"_blank\",\"title\":\"Open university profile\"}},[_c('img',{attrs:{\"alt\":\"\",\"src\":require(\"../../../assets/images/home-page.svg\")}})]):_vm._e(),_c('a',{attrs:{\"title\":\"Google author\"},on:{\"click\":_vm.openAuthorPages}},[_c('img',{attrs:{\"alt\":\"\",\"src\":require(\"../../../assets/images/earth.svg\")}})])])])]),(_vm.isFacultyWorksUser)?_c('div',{staticClass:\"last-reviewed\"},[_vm._v(\"Last reviewed: \"+_vm._s(_vm.formattedLastReview()))]):_vm._e(),(_vm.shouldShowError)?_c('div',{staticClass:\"error\"},[_vm._v(\"No data for this author - probably already merged with another author.\"),_c('br'),_c('br'),_vm._v(\"Consider refreshing the graph.\")]):_c('section',{staticClass:\"summary-data\"},[_c('div',{staticClass:\"bibliographic-details\"},[(_vm.bibliographicDetails.articles)?_c('div',{staticClass:\"bibliographic-detail\"},[_c('div',{staticClass:\"bibliographic-detail-type article\"},[_c('div',{staticClass:\"data\"},[_vm._v(_vm._s(_vm.bibliographicDetails.articles))])]),_c('div',{staticClass:\"label\"},[_vm._v(\"Articles\")])]):_vm._e(),(_vm.bibliographicDetails.books)?_c('div',{staticClass:\"bibliographic-detail\"},[_c('div',{staticClass:\"bibliographic-detail-type book\"},[_c('div',{staticClass:\"data\"},[_vm._v(_vm._s(_vm.bibliographicDetails.books))])]),_c('div',{staticClass:\"label\"},[_vm._v(\"Books\")])]):_vm._e(),(_vm.bibliographicDetails.bookChapters)?_c('div',{staticClass:\"bibliographic-detail\"},[_c('div',{staticClass:\"bibliographic-detail-type book\"},[_c('div',{staticClass:\"data\"},[_vm._v(_vm._s(_vm.bibliographicDetails.bookChapters))])]),_c('div',{staticClass:\"label\"},[_vm._v(\"Book Chapters\")])]):_vm._e(),(_vm.bibliographicDetails.authors)?_c('div',{staticClass:\"bibliographic-detail\"},[_c('div',{staticClass:\"bibliographic-detail-type author\"},[_c('div',{staticClass:\"data\"},[_vm._v(_vm._s(_vm.bibliographicDetails.authors))])]),_c('div',{staticClass:\"label\"},[_vm._v(\"Co-Authors\")])]):_vm._e(),(_vm.bibliographicDetails.patents)?_c('div',{staticClass:\"bibliographic-detail\"},[_c('div',{staticClass:\"bibliographic-detail-type patent\"},[_c('div',{staticClass:\"data\"},[_vm._v(_vm._s(_vm.bibliographicDetails.patents))])]),_c('div',{staticClass:\"label\"},[_vm._v(\"Patents\")])]):_vm._e()]),_c('RecentAffiliationsPane',{attrs:{\"recent-affiliations\":_vm.recentAffiliations}}),(_vm.showResearchInterests)?_c('ResearchInterestsPane',{attrs:{\"containingParentName\":_vm.containingPane,\"terms\":_vm.terms}}):_vm._e(),(_vm.showDocuments)?_c('SummaryDocumentsPane',{attrs:{\"containingParentName\":_vm.containingPane,\"documents\":_vm.documents}}):_vm._e(),(_vm.showAliasNames)?_c('AliasNamesPane',{attrs:{\"alias-names\":_vm.aliasNames,\"containingParentName\":_vm.containingPane}}):_vm._e()],1)])]):_vm._e()]),_c('UpdateEntityImageDialog',{ref:\"updateEntityImageDialog\"})],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:\"research-interests-pane\",class:_vm.containingPane},[(_vm.mainTerms.length > 0 && _vm.showHeader)?_c('div',{staticClass:\"title-container\"},[_c('h1',{staticClass:\"title\"},[_vm._v(\"Research Interests\")]),_c('button',{ref:\"menuOpener\",staticClass:\"action-button terms-menu-opener\",on:{\"click\":_vm.openMenu}})]):_vm._e(),_c('PopupMenu',{attrs:{\"event\":\"openMenu\"}},[_c('div',{staticClass:\"menu-item\",attrs:{\"data-test\":\"copyToClipboard\"},on:{\"click\":_vm.copyToClipboard}},[_vm._v(\"Copy all Research Interests\")])]),(_vm.mainTerms.length > 0)?_c('div',{staticClass:\"interest-list\"},_vm._l((_vm.mainTerms),function(term){return _c('div',{key:term.text,ref:\"terms\",refInFor:true,staticClass:\"interest\",domProps:{\"innerHTML\":_vm._s(term.text)},on:{\"click\":function($event){return _vm.termClicked(term.text)}}})}),0):_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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {getInvestigation} from \"@/store/investigation/investigation-module\"\nimport {showTermPopupMenu} from \"@/store/investigation/dialogs/term-popup-menu-module\"\nimport {copyToClipboard} from \"@/utils/utils\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport {Prop} from \"vue-property-decorator\"\nimport {MarkedUpText} from \"@/types/investigations\"\n\n@Component({\n components: {PopupMenu}\n })\n export default class ResearchInterestsPane extends Vue {\n\n @Prop()\n private containingParentName!: string\n\n @Prop()\n private terms!: MarkedUpText[]\n\n @Prop({type: Boolean, default: true})\n private showHeader!: boolean\n\n private get investigationType() {\n return getInvestigation(this.$store)!.investigationType\n }\n\n private get mainTerms() {\n return this.terms\n }\n\n private get containingPane() {\n return this.containingParentName\n }\n\n private async termClicked(term: string) {\n const termElements = this.$refs.terms as HTMLElement[]\n const termElement = termElements.filter(element => element.innerText === term)[0]\n const {isInObservation} = this\n await showTermPopupMenu(this.$store, { term, termElement, showAddTerm: false, showAddPenalizedTerm: false, investigationType: this.investigationType, centered: false, isInObservation, showAddObservation: true })\n }\n\n private openMenu() {\n const menuOpenerButton = this.$refs.menuOpener as HTMLElement\n this.$emit(\"openMenu\", menuOpenerButton)\n }\n\n private copyToClipboard() {\n const allTerms = this.mainTerms.slice().map(term => term.text).join(\"\\n\")\n copyToClipboard(allTerms)\n }\n\n private get isInObservation() {\n return this.containingParentName === \"observation-preview\"\n }\n\n }\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResearchInterestsPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResearchInterestsPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResearchInterestsPane.vue?vue&type=template&id=1420f3d9&scoped=true&\"\nimport script from \"./ResearchInterestsPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResearchInterestsPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ResearchInterestsPane.vue?vue&type=style&index=0&id=1420f3d9&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1420f3d9\",\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.recentAffiliations && _vm.recentAffiliations.length > 0)?_c('div',{staticClass:\"recent-affiliations-pane\"},[_c('div',{staticClass:\"title-container\"},[_c('h1',{staticClass:\"title\"},[_vm._v(\"Institutes\")]),_c('button',{ref:\"menuOpener\",staticClass:\"action-button affiliations-menu-opener\",on:{\"click\":_vm.openMenu}})]),_c('div',{staticClass:\"recent-affiliations-list\"},_vm._l((_vm.shownRecentAffiliations),function(recentAffiliation){return _c('div',{key:recentAffiliation.affiliation + recentAffiliation.fromYear,staticClass:\"recent-affiliation\"},[_c('div',{staticClass:\"years\"},[_vm._v(_vm._s(_vm.calcYearRange(recentAffiliation)))]),_c('div',{staticClass:\"affiliation\",attrs:{\"title\":_vm.affiliationText(recentAffiliation)}},[_vm._v(_vm._s(_vm.affiliationText(recentAffiliation)))])])}),0),(_vm.recentAffiliations.length > 5)?_c('a',{staticClass:\"show-all\",on:{\"click\":function($event){return _vm.toggleShowAll()}}},[_vm._v(_vm._s(_vm.showingAll ? 'Show Less' : 'Show All'))]):_vm._e(),_c('PopupMenu',{attrs:{\"event\":\"openMenu\"}},[_c('div',{staticClass:\"menu-item\",attrs:{\"data-test\":\"copyToClipboard\"},on:{\"click\":_vm.copyToClipboard}},[_vm._v(\"Copy all Affiliations\")])])],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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {RecentAffiliation} from \"@/types/investigations\"\nimport {Prop} from \"vue-property-decorator\"\nimport {copyToClipboard} from \"@/utils/utils\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\n\n@Component({\n components: {PopupMenu}\n})\nexport default class RecentAffiliationsPane extends Vue {\n\n @Prop()\n private recentAffiliations!: RecentAffiliation[]\n\n private showingAll: boolean = false\n\n private get shownRecentAffiliations(): RecentAffiliation[] {\n if (this.showingAll) {\n return this.recentAffiliations\n }\n return this.recentAffiliations.slice(0, 5)\n }\n\n private affiliationText(affiliation: RecentAffiliation): string {\n return affiliation.title ? affiliation.title : affiliation.affiliation\n }\n\n private calcYearRange(recentAffiliation: RecentAffiliation) {\n if (recentAffiliation.fromYear === recentAffiliation.toYear) {\n return recentAffiliation.fromYear\n }\n\n return `${recentAffiliation.fromYear} - ${recentAffiliation.toYear}`\n }\n\n private toggleShowAll() {\n this.showingAll = !this.showingAll\n }\n\n private openMenu() {\n const menuOpenerButton = this.$refs.menuOpener as HTMLElement\n this.$emit(\"openMenu\", menuOpenerButton)\n }\n\n private copyToClipboard() {\n const allAffiliations = this.recentAffiliations.slice().map(affiliation => this.calcYearRange(affiliation) + \" \" + this.affiliationText(affiliation)).join(\"\\n\")\n copyToClipboard(allAffiliations)\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecentAffiliationsPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecentAffiliationsPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RecentAffiliationsPane.vue?vue&type=template&id=079fec57&scoped=true&\"\nimport script from \"./RecentAffiliationsPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./RecentAffiliationsPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RecentAffiliationsPane.vue?vue&type=style&index=0&id=079fec57&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 \"079fec57\",\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',{staticClass:\"summary-documents-pane\",class:_vm.containingPane},[(_vm.documents.length > 0 && _vm.showHeader)?_c('div',{staticClass:\"title-container\"},[_c('h1',{staticClass:\"title\"},[_vm._v(\"Documents\")])]):_vm._e(),(_vm.documents.length > 0)?_c('div',{staticClass:\"document-list\"},_vm._l((_vm.documents),function(document){return _c('div',{key:document.id,staticClass:\"document\"},[_c('a',{ref:\"documents\",refInFor:true,attrs:{\"href\":document.url,\"target\":\"_blank\"},domProps:{\"innerHTML\":_vm._s(document.title)}}),_c('button',{ref:\"contextMenu\" + document.id,refInFor:true,staticClass:\"context-menu-opener\",on:{\"click\":function($event){return _vm.openContextMenu(document.id, $event)}}},[_vm._v(\"...\")]),_c('PopupMenu',{attrs:{\"event\":\"openContextMenu\" + document.id}},[_c('div',{ref:\"copy\",refInFor:true,staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.copyTitleToClipboard(document)}}},[_vm._v(\"Copy\")]),_c('div',{ref:\"google\",refInFor:true,staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.addAsFilter(document)}}},[_vm._v(\"Add As Filter\")])])],1)}),0):_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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {fetchAllData, fetchGraphData, getInvestigation, setFreeTextFilter} from \"@/store/investigation/investigation-module\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport {Prop} from \"vue-property-decorator\"\nimport {SummaryDocument} from \"@/types/investigations\"\nimport {copyToClipboard} from \"@/utils/utils\"\nimport {getGraphType} from \"@/store/investigation/graph-module\"\n\n@Component({\n components: {PopupMenu}\n})\nexport default class SummaryDocumentsPane extends Vue {\n\n @Prop()\n private containingParentName!: string\n\n @Prop()\n private documents!: SummaryDocument[]\n\n @Prop({type: Boolean, default: true})\n private showHeader!: boolean\n\n private get investigationType() {\n return getInvestigation(this.$store)!.investigationType\n }\n\n private get containingPane() {\n return this.containingParentName\n }\n\n private openContextMenu(documentId: string, event: MouseEvent) {\n const topsContextButtons = this.$refs[`contextMenu` + documentId] as HTMLElement[]\n this.$emit(\"openContextMenu\" + documentId, topsContextButtons[0])\n }\n\n private copyTitleToClipboard(document: SummaryDocument) {\n copyToClipboard(document.title)\n }\n\n private async addAsFilter(document: SummaryDocument) {\n await setFreeTextFilter(this.$store, document.title)\n getGraphType(this.$store) === null ? await fetchAllData(this.$store) : await fetchGraphData(this.$store)\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SummaryDocumentsPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SummaryDocumentsPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SummaryDocumentsPane.vue?vue&type=template&id=63d0b25d&scoped=true&\"\nimport script from \"./SummaryDocumentsPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./SummaryDocumentsPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SummaryDocumentsPane.vue?vue&type=style&index=0&id=63d0b25d&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 \"63d0b25d\",\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',{staticClass:\"alias-names-pane\",class:_vm.containingPane},[(_vm.aliasNames.length > 0 && _vm.showHeader)?_c('div',{staticClass:\"title-container\"},[_c('h1',{staticClass:\"title\"},[_vm._v(\"Name Variants\")]),_c('button',{ref:\"menuOpener\",staticClass:\"action-button alias-names-menu-opener\",on:{\"click\":_vm.openMenu}})]):_vm._e(),(_vm.aliasNames.length > 0)?_c('div',{staticClass:\"alias-names-list\"},_vm._l((_vm.aliasNames),function(aliasName){return _c('div',{key:aliasName,ref:\"aliasNames\",refInFor:true,staticClass:\"alias-name\",domProps:{\"innerHTML\":_vm._s(aliasName)}})}),0):_vm._e(),_c('PopupMenu',{attrs:{\"event\":\"openMenu\"}},[_c('div',{staticClass:\"menu-item\",attrs:{\"data-test\":\"copyToClipboard\"},on:{\"click\":_vm.copyToClipboard}},[_vm._v(\"Copy all Name Variants\")])])],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 Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {getInvestigation} from \"@/store/investigation/investigation-module\"\nimport {Prop} from \"vue-property-decorator\"\nimport {copyToClipboard} from \"@/utils/utils\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\n\n@Component({\n components: {PopupMenu}\n })\n export default class AliasNames extends Vue {\n\n @Prop()\n private containingParentName!: string\n\n @Prop()\n private aliasNames!: string[]\n\n @Prop({type: Boolean, default: true})\n private showHeader!: boolean\n\n private get investigationType() {\n return getInvestigation(this.$store)!.investigationType\n }\n\n private openUrl(url: string) {\n window.open(url, \"_BLANK\")\n }\n\n private get containingPane() {\n return this.containingParentName\n }\n\n private openMenu() {\n const menuOpenerButton = this.$refs.menuOpener as HTMLElement\n this.$emit(\"openMenu\", menuOpenerButton)\n }\n\n private copyToClipboard() {\n const allAffiliations = this.aliasNames.slice().join(\"\\n\")\n copyToClipboard(allAffiliations)\n }\n }\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AliasNamesPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AliasNamesPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AliasNamesPane.vue?vue&type=template&id=fb8d94d6&scoped=true&\"\nimport script from \"./AliasNamesPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./AliasNamesPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AliasNamesPane.vue?vue&type=style&index=0&id=fb8d94d6&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fb8d94d6\",\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('GenericDialog',{attrs:{\"modal\":true,\"visible\":_vm.isOpen},on:{\"onClose\":_vm.close},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.options.title))])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"dialog-body-container\"},[_c('div',[_c('div',{staticClass:\"drag-target\",class:{'over': _vm.dragOver},on:{\"drop\":function($event){$event.preventDefault();return _vm.dragFile.apply(null, arguments)},\"dragover\":function($event){$event.preventDefault();_vm.dragOver = true},\"dragleave\":function($event){$event.preventDefault();_vm.dragOver = false}}},[_c('div',{staticClass:\"text\"},[_vm._v(\"Drag and drop file here or click to set image\")]),_c('div',{staticClass:\"text-aspect-ratio\"},[_vm._v(\"For best results, use images that have a width:height ratio of \"+_vm._s(_vm.options.widthAspectRatio)+\":\"+_vm._s(_vm.options.heightAspectRatio)+\" respectively.\")]),_c('input',{attrs:{\"id\":\"personImageFileUpload\",\"type\":\"file\"},on:{\"change\":function($event){return _vm.fileSelected($event)}}}),_c('label',{attrs:{\"for\":\"personImageFileUpload\"}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showingImage),expression:\"showingImage\"}],staticClass:\"image-container\"},[_c('div',[_vm._v(\"Currently selected image:\")]),_c('img',{ref:\"image\",staticClass:\"image\",class:[_vm.options.roundedImage ? 'rounded' : '', _vm.options.forceAspectRatio ? 'fit-cover' : 'fit-contain'],style:({'height': (_vm.options.heightAspectRatio / _vm.options.widthAspectRatio * 13.0) + 'em'})})])])]),_c('div',{staticClass:\"buttons\"},[_c('div',{staticClass:\"left\"},[(_vm.showingImage)?_c('button',{staticClass:\"clear\",on:{\"click\":_vm.clear}},[_vm._v(\"Clear\")]):_vm._e()]),_c('div',{staticClass:\"right\"},[_c('button',{staticClass:\"cancel\",on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"ok\",on:{\"click\":_vm.ok}},[_vm._v(\"Ok\")])])])])]},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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport GenericDialog from \"@/components/GenericDialog.vue\"\n\nexport interface UpdateEntityImageDialogOptions {\n readonly title: string\n readonly initialImageUrlOrFile: string | File | null,\n readonly onUpdateCallback: (file: File | null) => void\n readonly widthAspectRatio: number\n readonly heightAspectRatio: number\n readonly forceAspectRatio: boolean\n readonly roundedImage: boolean\n}\n\n@Component({\n components: {GenericDialog}\n})\nexport default class UpdateEntityImageDialog extends Vue {\n\n private options?: UpdateEntityImageDialogOptions\n private isOpen = false\n private dragOver: boolean = false\n private file: File | null = null\n private showingImage: boolean = false\n private modified: boolean = false\n\n\n public open(options: UpdateEntityImageDialogOptions) {\n this.options = options\n this.isOpen = true\n this.file = null\n this.showingImage = false\n\n this.$nextTick(() => {\n if (!!options.initialImageUrlOrFile) {\n const image = this.$refs.image as HTMLImageElement\n if (typeof(options.initialImageUrlOrFile) === \"object\") {\n this.setFileAsImage(options.initialImageUrlOrFile)\n } else {\n image.src = options.initialImageUrlOrFile\n }\n this.showingImage = true\n }\n })\n\n document.addEventListener(\"keyup\", this.handleKey)\n }\n\n private handleKey(e: KeyboardEvent) {\n switch (e.key) {\n case \"Escape\":\n this.close()\n break\n case \"Enter\":\n this.ok()\n break\n }\n }\n\n private async ok() {\n if (this.modified) {\n this.options!!.onUpdateCallback(this.file)\n }\n this.close()\n }\n\n private close() {\n this.isOpen = false\n document.removeEventListener(\"keyup\", this.handleKey)\n }\n\n private clear() {\n this.file = null\n this.showingImage = false\n this.modified = true\n }\n\n private fileSelected(e: Event) {\n const input = e.target as HTMLInputElement\n if (input.files) {\n const file = input.files[0]\n this.setFileAsImage(file)\n }\n }\n\n private dragFile(e: DragEvent) {\n const droppedFiles = e.dataTransfer!.files\n if (!droppedFiles) {\n return\n }\n ([...droppedFiles]).forEach(file => {\n this.setFileAsImage(file)\n })\n }\n\n private setFileAsImage(file: File) {\n this.file = file\n Vue.nextTick(() => {\n const image = this.$refs.image as HTMLImageElement\n image.src = URL.createObjectURL(file)\n this.showingImage = true\n this.modified = true\n })\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateEntityImageDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateEntityImageDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UpdateEntityImageDialog.vue?vue&type=template&id=13edc659&scoped=true&\"\nimport script from \"./UpdateEntityImageDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./UpdateEntityImageDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UpdateEntityImageDialog.vue?vue&type=style&index=0&id=13edc659&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 \"13edc659\",\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('GenericDialogNew',{ref:\"genericDialog\",attrs:{\"modal\":true},on:{\"enterPressed\":function($event){return _vm.ok()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"Edit Author Details\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"author-details-dialog\"},[_c('div',{staticClass:\"dialog-content\"},[(_vm.isOmnipotentUser)?_c('div',{staticClass:\"field centered\"},[_c('label',{staticClass:\"field-label\"},[_vm._v(\"Name\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.personName),expression:\"personName\"}],ref:\"personName\",domProps:{\"value\":(_vm.personName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.personName=$event.target.value}}})]):_vm._e(),(_vm.personName !== _vm.originalName)?_c('div',{staticClass:\"field warning\"},[_c('label',{staticClass:\"field-label\"}),_vm._v(\" Note: This name will override the automatic name selection mechanism \")]):_vm._e(),(_vm.isOmnipotentUser)?_c('div',{staticClass:\"field centered\"},[_c('label',{staticClass:\"field-label\"},[_vm._v(\"University profile URL\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.universityProfileUrl),expression:\"universityProfileUrl\"}],ref:\"universityProfileUrl\",domProps:{\"value\":(_vm.universityProfileUrl)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.universityProfileUrl=$event.target.value}}})]):_vm._e(),_c('div',{staticClass:\"field\"},[_c('label',{staticClass:\"field-label\"},[_vm._v(\"Author image\")]),_c('UploadImagePane',{staticClass:\"upload-image\",attrs:{\"image-id\":_vm.imageId,\"show-aspect-ratio\":\"true\",\"aspect-ratio-width\":\"1\",\"aspect-ratio-height\":\"1\",\"stencil\":\"circle-stencil\",\"image-url\":_vm.imageUrl},model:{value:(_vm.imageCropData),callback:function ($$v) {_vm.imageCropData=$$v},expression:\"imageCropData\"}}),_c('div',{staticClass:\"upload-image-description\"},[_vm._v(\" If the pasted image appears blank - this is probably a cross-origin restriction.\"),_c('br'),_vm._v(\" Hit \\\"Preprocess\\\" to have the server download the image first. \"),_c('input',{attrs:{\"type\":\"text\",\"placeholder\":\"Paste image URL here\"},on:{\"paste\":_vm.pasteImageUrl}})])],1)]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":_vm.preprocess}},[_vm._v(\"Preprocess\")]),_c('button',{staticClass:\"dialog-button ok\",attrs:{\"disabled\":_vm.personName.trim().length === 0},on:{\"click\":_vm.ok}},[_vm._v(\"Ok\")])])])]},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('div',{staticClass:\"upload-image-pane\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showingImage),expression:\"!showingImage\"}],staticClass:\"image-selection\",class:{'over': _vm.dragOver},on:{\"drop\":function($event){$event.preventDefault();return _vm.dragFile.apply(null, arguments)},\"dragover\":function($event){$event.preventDefault();_vm.dragOver = true},\"dragleave\":function($event){$event.preventDefault();_vm.dragOver = false}}},[_c('div',{staticClass:\"text\"},[_vm._v(\"Drag and drop file here or click to set image\")]),(_vm.showAspectRatio)?_c('div',{staticClass:\"text-aspect-ratio\"},[_vm._v(\" For best results, please use images that have \"+_vm._s(_vm.aspectRatioWidth)+\":\"+_vm._s(_vm.aspectRatioHeight)+\" aspect ratio \")]):_vm._e(),_c('input',{attrs:{\"id\":\"imageFileUpload\",\"type\":\"file\"},on:{\"change\":function($event){return _vm.fileSelected($event)}}}),_c('label',{attrs:{\"for\":\"imageFileUpload\"}})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showingImage),expression:\"showingImage\"}],staticClass:\"image-container\"},[_c('cropper',{ref:\"cropper\",staticClass:\"cropper\",attrs:{\"stencil-component\":_vm.stencil,\"backgroundClass\":\"cropper-background\",\"foregroundClass\":\"cropper-foreground\",\"src\":_vm.img,\"default-size\":_vm.getDefaultSize,\"stencil-props\":{\n previewClass: 'preview-handler',\n handlersClasses: {\n default: 'handler'\n }\n }},on:{\"change\":_vm.notify}}),_c('div',{staticClass:\"clear-image\",attrs:{\"title\":\"Clear image\"},on:{\"click\":_vm.clearImage}})],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 Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {Prop, Watch} from \"vue-property-decorator\"\nimport {Cropper} from \"vue-advanced-cropper\"\nimport {ImageCropData} from \"@/api/investigation-service\"\n\n@Component({\n components: { Cropper }\n})\nexport default class UploadImagePane extends Vue {\n\n private dragOver = false\n private showingImage = false\n private imageFile: File | null = null\n private imageModified = false\n private afterFirstChange = false\n\n @Prop({default: \"rectangle-stencil\"})\n private stencil!: string\n\n @Prop()\n private value!: string\n\n @Prop()\n private imageId!: string\n\n @Prop()\n private imageUrl!: string\n\n @Prop({default: false})\n private showAspectRatio!: boolean\n\n @Prop({default: 1})\n private aspectRatioWidth!: number\n\n @Prop({default: 1})\n private aspectRatioHeight!: number\n\n private img: string | null = null\n\n @Watch(\"imageId\")\n private updateImageOnLoad() {\n if (!!this.imageId) {\n this.img = `/api/images?imageId=${this.imageId}`\n this.showingImage = true\n\n this.notify()\n }\n }\n\n @Watch(\"imageUrl\")\n private updateImageOnPaste() {\n this.img = this.imageUrl\n this.showingImage = true\n this.notify()\n }\n\n private getDefaultSize() {\n const cropper = this.$refs.cropper as any\n\n // @ts-ignore\n return ({ visibleArea, imageSize, stencilRatio, sizeRestrictions }) => {\n return {\n width: imageSize.width,\n height: imageSize.height\n }\n }\n }\n\n private fileSelected(e: Event) {\n const input = e.target as HTMLInputElement\n\n if (input.files) {\n const file = input.files[0]\n this.setFileAsImage(file)\n this.notify()\n }\n\n input.value = \"\"\n }\n\n private dragFile(e: DragEvent) {\n const droppedFiles = e.dataTransfer!.files\n if (!droppedFiles) {\n return\n }\n ([...droppedFiles]).forEach(file => {\n this.setFileAsImage(file)\n this.notify()\n })\n }\n\n private setFileAsImage(file: File) {\n this.imageFile = file\n Vue.nextTick(() => {\n const reader = new FileReader()\n reader.onload = (e: ProgressEvent) => {\n this.img = (e.target as FileReader).result as string\n }\n reader.readAsDataURL(file)\n\n this.showingImage = true\n this.imageModified = true\n })\n }\n\n private clearImage() {\n this.imageFile = null\n this.showingImage = false\n this.imageModified = true\n\n this.img = null\n\n this.notify()\n }\n\n private notify() {\n if (!this.afterFirstChange) {\n this.afterFirstChange = true\n return\n }\n\n if (!this.showingImage) {\n this.$emit(\"input\")\n } else {\n const { coordinates, visibleArea } = (this.$refs.cropper as any).getResult()\n\n if (visibleArea) {\n this.$emit(\"input\", {\n file: this.imageFile,\n url: this.img,\n width: visibleArea.width,\n height: visibleArea.height,\n crop: {\n top: coordinates.top,\n left: coordinates.left,\n width: coordinates.width,\n height: coordinates.height\n }\n } as ImageCropData)\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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadImagePane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadImagePane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UploadImagePane.vue?vue&type=template&id=7451daaa&scoped=true&\"\nimport script from \"./UploadImagePane.vue?vue&type=script&lang=ts&\"\nexport * from \"./UploadImagePane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UploadImagePane.vue?vue&type=style&index=0&id=7451daaa&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 \"7451daaa\",\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\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport {Prop, Watch} from \"vue-property-decorator\"\nimport investigationService, {ImageCropData} from \"@/api/investigation-service\"\nimport {getInvestigation, preprocessPersonImage} from \"@/store/investigation/investigation-module\"\nimport {InvestigationPersonDetails} from \"@/types/investigations\"\nimport GenericDialogNew, {createDialogMountingPoint} from \"@/components/GenericDialogNew.vue\"\nimport UploadImagePane from \"@/components/UploadImagePane.vue\"\nimport {PermissionsMixin} from \"@/store/user-mixin\"\n\nexport function openAuthorDetailsDialog(parent: Vue, options: AuthorDetailsDialogOptions) {\n new (Vue.extend(AuthorDetailsDialog))({parent, store: parent.$store, router: parent.$router, propsData: {options}}).$mount(createDialogMountingPoint())\n}\n\nexport interface AuthorDetailsDialogOptions {\n readonly personId: string,\n readonly personName: string,\n readonly onUpdateCallback: (details: InvestigationPersonDetails,\n imageModified: boolean,\n imageCropData?: ImageCropData,\n imageUrl?: string) => void\n}\n\n@Component({\n components: {UploadImagePane, GenericDialogNew}\n})\nexport default class AuthorDetailsDialog extends mixins(Vue, PermissionsMixin) {\n\n @Prop()\n private options!: AuthorDetailsDialogOptions\n\n private universityProfileUrl?: string = \"\"\n private imageId: string | null = null\n private imageCropData: ImageCropData | null = null\n private imageModified: boolean = false\n private personName: string = \"\"\n private originalName: string = \"\"\n private imageUrl: string | null = null\n\n public async mounted() {\n const investigation = getInvestigation(this.$store)!!\n const details = await investigationService.getPersonDetails(investigation.id, investigation.investigationType, this.options.personId)\n this.universityProfileUrl = details.universityProfileUrl\n this.imageId = details.authorImageId ? details.authorImageId : null\n this.personName = this.originalName = details.name\n\n if (this.isOmnipotentUser) {\n Vue.nextTick(() => {\n const universityProfileUrl = this.$refs.universityProfileUrl as HTMLInputElement\n universityProfileUrl.focus()\n })\n }\n }\n\n private pasteImageUrl(e: ClipboardEvent) {\n if (e.clipboardData !== null) {\n this.imageUrl = e.clipboardData.getData(\"text/plain\")\n this.imageModified = true\n }\n }\n\n private close() {\n (this.$refs.genericDialog as GenericDialogNew).close()\n }\n\n private async preprocess() {\n await preprocessPersonImage(this.$store, {\n personId: this.options.personId,\n imageData: this.imageCropData,\n imageUrl: this.imageUrl\n }).then(base64 => {\n this.imageUrl = base64\n })\n }\n\n private async ok() {\n const details: InvestigationPersonDetails = {\n id: this.options.personId,\n name: this.personName,\n universityProfileUrl: this.universityProfileUrl,\n authorImageId: this.imageId as string | undefined\n }\n\n this.close()\n this.options.onUpdateCallback(details, this.imageModified,\n this.imageCropData || undefined, this.imageUrl || undefined)\n }\n\n @Watch(\"imageCropData\")\n private imageFileModified() {\n this.imageModified = true\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthorDetailsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthorDetailsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AuthorDetailsDialog.vue?vue&type=template&id=0e2febe6&scoped=true&\"\nimport script from \"./AuthorDetailsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./AuthorDetailsDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AuthorDetailsDialog.vue?vue&type=style&index=0&id=0e2febe6&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 \"0e2febe6\",\n null\n \n)\n\nexport default component.exports","export const undoMergeMessage = (personName: string) =>\n `

You are about to undo the merge of ${personName}. Are you sure?

\n

This operation will cause the author to lose its metadata, such as image and profile URL.

\n

Important note: the process might be long and will run in the background. When complete, the refresh button will light up.

\n`\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport ResearchInterestsPane from \"@/views/investigation/panes/ResearchInterestsPane.vue\"\nimport RecentAffiliationsPane from \"@/views/investigation/panes/RecentAffiliationsPane.vue\"\nimport SummaryDocumentsPane from \"@/views/investigation/panes/SummaryDocumentsPane.vue\"\nimport AliasNamesPane from \"@/views/investigation/panes/AliasNamesPane.vue\"\nimport {Prop, Watch} from \"vue-property-decorator\"\nimport {\n fetchAllData,\n getAuthorGraphSettings,\n getInvestigation,\n getIsInProfile,\n getPersonForRightPaneSummary,\n getSpecForStore,\n saveInvestigationState,\n setAuthorGraphSettings,\n setDisambiguatePersonName,\n setPersonForRightPaneSummary,\n setTitle,\n updatePersonImage,\n updateLastReviewTime\n} from \"@/store/investigation/investigation-module\"\nimport {BibliographicDetails, InvestigationPersonDetails, MarkedUpText, PersonSummaryEntity, RecentAffiliation, SummaryDocument} from \"@/types/investigations\"\nimport investigationService, {ImageCropData} from \"@/api/investigation-service\"\nimport personInvestigationService from \"@/api/person-investigation-service\"\nimport {setDisambiguationPersonId} from \"@/store/investigation/person-filter-module\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport moment, { Moment } from \"moment\"\nimport {copyToClipboard, downloadBlob} from \"@/utils/utils\"\nimport TopicInvestigationService from \"@/api/topic-investigation-service\"\nimport UpdateEntityImageDialog from \"@/views/investigation/dialogs/UpdateEntityImageDialog.vue\"\nimport {isReportEnabled} from \"@/store/environment-module\"\nimport {openConfirmationDialog} from \"@/views/investigation/dialogs/ConfirmationDialog.vue\"\nimport {PermissionsMixin} from \"@/store/user-mixin\"\nimport {openCreateObservationDialog} from \"@/views/investigation/dialogs/CreateObservationDialog.vue\"\nimport {openAuthorDetailsDialog} from \"@/views/investigation/dialogs/AuthorDetailsDialog.vue\"\nimport {undoMergeMessage} from \"@/utils/common-messages\"\n\n@Component({\n components: {\n ResearchInterestsPane,\n RecentAffiliationsPane,\n SummaryDocumentsPane,\n AliasNamesPane,\n PopupMenu,\n UpdateEntityImageDialog\n }\n})\nexport default class AuthorSummaryPane extends mixins(Vue, PermissionsMixin) {\n\n @Prop()\n private personId!: string\n\n @Prop()\n // @ts-ignore\n private imageId: string\n\n @Prop()\n // @ts-ignore\n private observationSummary: PersonSummaryEntity\n\n @Prop()\n private containingParentName!: string\n\n @Prop()\n private passedPersonName?: string\n\n @Prop({type: Boolean, default: true})\n private showResearchInterests!: boolean\n\n @Prop({type: Boolean, default: false})\n private showDocuments!: boolean\n\n @Prop({type: Boolean, default: true})\n private showAliasNames!: boolean\n\n @Prop({type: Boolean, default: false})\n private allowImageUpdate!: boolean\n\n private personName?: string = this.passedPersonName\n\n private isDataFetched = false\n private shouldShowError = false\n private terms?: MarkedUpText[]\n private documents?: SummaryDocument[]\n private recentAffiliations?: RecentAffiliation[]\n private aliasNames?: string[]\n private bibliographicDetails?: BibliographicDetails\n private imageLoaded: boolean = false\n private personImageTimestamp: number = new Date().getTime()\n private manuallyMerged: boolean = false\n private universityProfileUrl?: string\n private lastReviewed: Moment | null = null\n\n get isInPersonProfile(): boolean {\n return getIsInProfile(this.$store)\n }\n\n private get currentId() {\n return this.personId\n }\n\n private get isInRightPane() {\n return getPersonForRightPaneSummary(this.$store) != null\n }\n\n private get containingPane() {\n return this.containingParentName\n }\n\n private get shouldShowViewProfile() {\n return this.currentId &&\n this.containingParentName !== \"documents-pane\" &&\n !this.isInPersonProfile && !this.shouldShowError &&\n this.containingParentName !== \"observation-preview\" &&\n !this.isFacultyWorksUser\n }\n\n private get shouldShowActionMenu() {\n return !this.isInPersonProfile && !this.shouldShowError\n }\n\n private get shouldShowHeader() {\n return this.containingParentName === \"right-pane\"\n }\n\n private get shouldShowDisambiguate() {\n const investigation = getInvestigation(this.$store)!\n return this.containingParentName !== \"documents-pane\" && !this.isInPersonProfile && investigation.investigationType === \"Person\" && !this.shouldShowError\n }\n\n private get shouldShowWebEnrichment() {\n if (this.shouldShowError) {\n return false\n }\n const investigation = getInvestigation(this.$store)!\n return !this.isInPersonProfile\n }\n\n private get personImageUrl() {\n const investigation = getInvestigation(this.$store)!\n if (this.observationSummary) {\n return this.imageId ? `/api/images?imageId=${this.imageId}` : \"\"\n }\n return `/api/investigations/${investigation.investigationType.toLowerCase()}/${investigation.id}/person-details/${this.personId}/image?time=${this.personImageTimestamp}`\n }\n\n private get isReportEnabled(): boolean {\n return isReportEnabled(this.$store)\n }\n\n private async mounted() {\n if (getIsInProfile(this.$store) && !this.isInRightPane) {\n setTitle(this.$store, ``)\n }\n if (this.observationSummary) {\n this.personName = this.observationSummary.personName\n this.terms = this.observationSummary.terms\n this.recentAffiliations = this.observationSummary.recentAffiliations\n this.bibliographicDetails = this.observationSummary.bibliographicDetails\n this.documents = this.observationSummary.documents\n this.aliasNames = this.observationSummary.aliasNames\n this.isDataFetched = true\n this.manuallyMerged = this.observationSummary.manuallyMerged\n } else {\n await this.personIdChanged()\n }\n }\n\n @Watch(\"currentId\")\n private async personIdChanged() {\n const investigation = getInvestigation(this.$store)!\n this.personName = this.passedPersonName\n this.isDataFetched = false\n this.shouldShowError = false\n const termsCount = this.containingParentName === \"documents-pane\" ? 15 : 25\n\n const personSummary = await investigationService.getPersonForSummary(investigation.id, investigation.investigationType, this.personId, termsCount, this.personName)\n this.isDataFetched = true\n if (personSummary instanceof PersonSummaryEntity) {\n this.$parent.$emit(\"personName\", personSummary.personName)\n this.personName = personSummary.personName\n this.terms = personSummary.terms\n this.recentAffiliations = personSummary.recentAffiliations\n this.bibliographicDetails = personSummary.bibliographicDetails\n this.documents = personSummary.documents\n this.aliasNames = personSummary.aliasNames\n this.manuallyMerged = personSummary.manuallyMerged\n this.universityProfileUrl = personSummary.universityProfileUrl\n this.lastReviewed = personSummary.lastReviewTime\n } else {\n this.shouldShowError = true\n this.personName = personSummary\n this.manuallyMerged = false\n }\n if (getIsInProfile(this.$store) && !this.isInRightPane) {\n setTitle(this.$store, this.personName)\n }\n }\n\n private close() {\n setPersonForRightPaneSummary(this.$store, null)\n setAuthorGraphSettings(this.$store, {...getAuthorGraphSettings(this.$store), personForRightPaneSummary: null})\n }\n\n private async viewProfile() {\n const slashIndex = this.$route.path.lastIndexOf(\"/\")\n window.open(this.$route.fullPath.substring(0, slashIndex) + \"/profile/\" + this.currentId + \"/overview\")\n }\n\n private async createCorrelatedInvestigation() {\n const investigation = getInvestigation(this.$store)!!\n const newInvestigation = await personInvestigationService.createCorrelatedInvestigation(getInvestigation(this.$store)!.id, this.currentId, investigation.investigationType)\n const href = this.$router.resolve({name: \"topicInvestigation\", params: {id: newInvestigation.id}}).href\n openConfirmationDialog({\n message: `A new web investigation was launched successfully.
Click here to open it now.`,\n title: \"New Web Investigation\",\n okText: \"Ok\",\n onOk: () => {\n return\n },\n showCancel: false\n })\n }\n\n private async disambiguate() {\n setPersonForRightPaneSummary(this.$store, null)\n setDisambiguationPersonId(this.$store, this.personId)\n setDisambiguatePersonName(this.$store, this.personName!)\n saveInvestigationState(this.$store)\n const inDocuments = this.$route.path.endsWith(\"/documents\")\n this.$router.push({path: \"disambiguate\"})\n if (inDocuments) {\n await fetchAllData(this.$store)\n }\n }\n\n private async markReviewed() {\n this.lastReviewed = moment()\n await updateLastReviewTime(this.$store,\n {personId: this.personId, lastReviewTime: this.lastReviewed })\n }\n\n private openMenu() {\n const menuOpenerButton = this.$refs.menuOpener as HTMLElement\n this.$emit(\"openMenu\", menuOpenerButton)\n }\n\n private enrich() {\n const investigation = getInvestigation(this.$store)!\n TopicInvestigationService.createPersonHarvests(investigation.id, [this.personName!])\n }\n\n private async exportToExcel() {\n const investigation = getInvestigation(this.$store)!\n const spec = {...getSpecForStore(this.$store), personId: this.currentId}\n const blob = await investigationService.getPersonProfileExcel(investigation.id, spec, investigation.investigationType)\n const fileName = `${moment().format(\"YYYY_MM_DD_HH_mm_ss\")} - ${this.personName}.xlsx`\n downloadBlob(blob, fileName)\n }\n\n private formattedLastReview() {\n return !this.lastReviewed ? \"---\" : this.lastReviewed.format(\"YYYY-MM-DD HH:mm:ss\")\n }\n\n private reloadImage() {\n const image = document.querySelector(\".person-image > img\") as HTMLImageElement\n const src = image.src\n Vue.nextTick(() => {\n image.src = src\n })\n }\n\n private createObservation() {\n openCreateObservationDialog(this, {\n type: \"Person\",\n referencedEntity: this.personId\n })\n }\n\n private copyAuthorName() {\n copyToClipboard(this.personName!)\n }\n\n private async editAuthorDetails() {\n openAuthorDetailsDialog(this, {\n personId: this.currentId,\n personName: this.personName!,\n onUpdateCallback: async (details: InvestigationPersonDetails, imageModified: boolean,\n imageData?: ImageCropData, imageUrl?: string) => {\n const personNameModified = this.personName !== details.name\n const investigation = getInvestigation(this.$store)!\n await investigationService.updatePersonDetails(investigation.id, investigation.investigationType, details)\n this.universityProfileUrl = details.universityProfileUrl\n this.personName = details.name\n this.lastReviewed = moment()\n\n if (imageModified) {\n await updatePersonImage(this.$store, {personId: this.personId, imageData, imageUrl })\n }\n\n this.resetImageTimestamp()\n if (personNameModified) {\n await fetchAllData(this.$store)\n }\n }\n })\n }\n\n @Watch(\"personId\")\n private resetImageTimestamp() {\n this.personImageTimestamp = new Date().getTime()\n }\n\n private undoMerge() {\n const performUndoMerge = async () => {\n const investigation = getInvestigation(this.$store)!\n\n setPersonForRightPaneSummary(this.$store, null)\n setDisambiguationPersonId(this.$store, null)\n await investigationService.undoMerge(investigation.id, investigation.investigationType, [this.personId])\n }\n\n openConfirmationDialog({\n message: undoMergeMessage(this.personName!),\n title: \"Undo Manual Merge\",\n okText: \"Undo Merge\",\n onOk: performUndoMerge,\n showCancel: true\n })\n }\n\n private openAuthorPages() {\n window.open(`https://www.google.com/search?q=\\\"${this.personName}\\\"`, \"_blank\")\n\n if (this.recentAffiliations && this.recentAffiliations.length > 0) {\n window.open(`https://www.google.com/search?q=\\\"${this.personName}\\\" ${this.recentAffiliations[0].affiliation}`, \"_blank\")\n }\n window.open(`https://www.google.com/search?q=\\\"${this.personName}\\\" linkedin`, \"_blank\")\n window.open(`https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=\\\"${this.personName}\\\"`, \"_blank\")\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthorSummaryPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthorSummaryPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AuthorSummaryPane.vue?vue&type=template&id=7ed255ee&scoped=true&\"\nimport script from \"./AuthorSummaryPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./AuthorSummaryPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AuthorSummaryPane.vue?vue&type=style&index=0&id=7ed255ee&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 \"7ed255ee\",\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',{staticClass:\"document-item\",class:{'touched': !_vm.isInPersonProfile && _vm.document.touched && _vm.isEditable},on:{\"click\":_vm.setDocumentTouched}},[(_vm.shouldDisplayDocumentAndAuthorImages && _vm.viewModeLevel >= 4)?_c('div',{staticClass:\"document-image\"},[(_vm.document.coverImageId)?_c('img',{attrs:{\"src\":(\"/api/images?imageId=\" + (_vm.document.coverImageId)),\"loading\":\"lazy\"}}):_vm._e(),(_vm.document.coverImageId && _vm.document.abstractImageId)?_c('div',[_vm._v(\"Abstract Image\")]):_vm._e(),(_vm.document.abstractImageId)?_c('img',{attrs:{\"src\":(\"/api/images?imageId=\" + (_vm.document.abstractImageId)),\"loading\":\"lazy\"}}):_vm._e()]):_vm._e(),_c('div',{staticClass:\"document-content\"},[(!_vm.isInReviewProfile)?_c('DocumentItemHeader',_vm._g({attrs:{\"document\":_vm.document,\"isEditable\":_vm.isEditable},on:{\"openLabelsMenu\":function($event){return _vm.openLabelsMenu($event)},\"toggleLabel\":_vm.toggleLabel,\"toggleAcceptedLabel\":_vm.toggleAcceptedLabel}},_vm.$listeners)):_c('DocumentItemReviewHeader',_vm._g({attrs:{\"document\":_vm.document,\"isEditable\":_vm.isEditable},on:{\"openLabelsMenu\":function($event){return _vm.openLabelsMenu($event)}}},_vm.$listeners)),_c('h1',{directives:[{name:\"text-selection\",rawName:\"v-text-selection\",value:(_vm.textSelected),expression:\"textSelected\"}],staticClass:\"document-title\",class:{'shortened': _vm.viewModeLevel <= 1 || _vm.expanded},domProps:{\"innerHTML\":_vm._s(_vm.markText(_vm.document.title))},on:{\"click\":_vm.toggleExpansion}}),_c('div',{staticClass:\"document-body\"},[(_vm.viewModeLevel >= 1)?_c('div',{staticClass:\"meta-data\"},[(_vm.document.authors.length)?_c('section',{staticClass:\"authors\"},[_c('div',{ref:\"authors\",staticClass:\"authors-text\",class:{showAll: _vm.isShowingAllAuthors}},[_vm._l((_vm.visibleAuthors),function(author,index){return _c('span',[_c('span',{staticClass:\"author-name\",class:_vm.getAuthorNameHighlightClass(author),attrs:{\"title\":_vm.getAuthorNameTooltip(author)},on:{\"click\":function($event){return _vm.selectAuthor(author)}}},[_vm._v(_vm._s(author.name))]),(index !== _vm.document.authors.length - 1)?_c('span',[_vm._v(\", \")]):_c('span',[_vm._v(\" \")])])}),(_vm.shouldDisplayShowMoreButton && _vm.isShowingAllAuthors)?_c('span',{staticClass:\"showMore\",on:{\"click\":_vm.toggleShowAllAuthors}},[_vm._v(_vm._s(_vm.showMoreText))]):_vm._e(),(_vm.shouldDisplayShowMoreButton && !_vm.isShowingAllAuthors)?_c('span',{staticClass:\"ellipsis\"},[_vm._v(\"…\")]):_vm._e(),(_vm.shouldDisplayShowMoreButton && !_vm.isShowingAllAuthors)?_c('span',{staticClass:\"showMore\",on:{\"click\":_vm.toggleShowAllAuthors}},[_vm._v(_vm._s(_vm.showMoreText))]):_vm._e()],2),(_vm.shouldDisplayDocumentAndAuthorImages && _vm.viewModeLevel >= 4)?_c('section',{staticClass:\"author-images\"},_vm._l((_vm.authorsWithImages),function(author){return _c('div',{staticClass:\"author-image\",class:{inactiveAuthorImage: !_vm.isActive(author)}},[_c('a',{attrs:{\"href\":author.universityProfileUrl,\"target\":\"_blank\",\"title\":author.affiliations.join('; ')}},[_c('img',{attrs:{\"src\":(\"/api/images?imageId=\" + (author.imageId))}})])])}),0):_vm._e()]):_vm._e(),_c('section',{staticClass:\"more-details\"},[_vm._l((_vm.documentDetails),function(detail,index){return [_c('section',{key:detail.title,class:detail.class},[(_vm.isFacultyWorksUser && detail.class.indexOf('published-in') >= 0)?_c('button',{staticClass:\"journal-color-button\",on:{\"click\":function($event){return _vm.openJournalColorMenu($event.target)}}}):_vm._e(),_c('span',{attrs:{\"title\":decodeURIComponent(detail.title)},domProps:{\"innerHTML\":_vm._s(decodeURIComponent(detail.html))}})]),(index + 1 < _vm.documentDetails.length)?_c('hr',{staticClass:\"separator\"}):_vm._e()]})],2)]):_vm._e(),(_vm.viewModeLevel >= 1)?_c('section',{ref:\"abstract\",staticClass:\"abstract\"},[_c('div',{directives:[{name:\"text-selection\",rawName:\"v-text-selection\",value:(_vm.textSelected),expression:\"textSelected\"}],staticClass:\"abstract-text\",class:{'showAll': _vm.viewModeLevel >= 2},domProps:{\"innerHTML\":_vm._s(_vm.removeNewlines(_vm.markText(_vm.document.abstract)))}})]):_vm._e(),(_vm.viewModeLevel === 3 && this.document.snippets)?_c('div',{staticClass:\"snippets-container\"},[_c('div',{staticClass:\"snippets-title\"},[_vm._v(\"Snippets:\")]),_c('div',{directives:[{name:\"text-selection\",rawName:\"v-text-selection\",value:(_vm.textSelected),expression:\"textSelected\"}],staticClass:\"snippets\",domProps:{\"innerHTML\":_vm._s(_vm.markText(this.document.snippets))}})]):_vm._e(),(_vm.viewModeLevel >= 2)?_c('section',{staticClass:\"more-info-container\"},[(!_vm.isFacultyWorksUser && _vm.document.keywords.length > 0)?_c('div',[_c('span',{attrs:{\"title\":\"Keywords that appear in the original publication\"}},[_vm._v(\"Keywords: \")]),_c('span',{directives:[{name:\"text-selection\",rawName:\"v-text-selection\",value:(_vm.textSelected),expression:\"textSelected\"}],staticClass:\"keywords-text\",domProps:{\"innerHTML\":_vm._s(_vm.displayKeywords)}})]):_vm._e()]):_vm._e(),(_vm.viewModeLevel >= 2)?_c('div',{staticClass:\"terms\"},_vm._l((this.document.terms),function(term){return _c('div',{key:term.text,ref:\"terms\",refInFor:true,staticClass:\"term\",domProps:{\"innerHTML\":_vm._s(_vm.markText(term))},on:{\"click\":function($event){return _vm.termClicked(term.text)}}})}),0):_vm._e()]),(_vm.viewModeLevel >= 1)?_c('div',{staticClass:\"document-footer\"},[_c('div',{staticClass:\"controls\"},[(_vm.document.fullTextUrl !== _vm.document.url)?_c('a',{staticClass:\"clickable visit-website\",attrs:{\"href\":_vm.document.url,\"target\":\"_blank\"}},[_vm._v(\"Visit Website\")]):_vm._e(),(_vm.document.url && _vm.document.fullTextUrl && (_vm.document.fullTextUrl !== _vm.document.url))?_c('span',{staticClass:\"separator\"}):_vm._e(),(_vm.document.fullTextUrl)?_c('a',{staticClass:\"clickable full-text\",attrs:{\"href\":_vm.document.fullTextUrl,\"target\":\"_blank\"}},[_vm._v(\"View PDF\")]):_vm._e()])]):_vm._e(),_c('PopupMenu',{staticClass:\"labels-menu forbids-close\",attrs:{\"close-event\":\"closeLabelsMenu\",\"event\":\"openLabelsMenu\"}},[_c('div',{staticClass:\"title\"},[_vm._v(\"Label as:\")]),_c('div',{staticClass:\"input-container forbids-close\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newLabel),expression:\"newLabel\"}],ref:\"labelText\",staticClass:\"active-add-input\",attrs:{\"placeholder\":\"Add Label...\",\"type\":\"text\"},domProps:{\"value\":(_vm.newLabel)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.addDocumentLabel.apply(null, arguments)},\"input\":function($event){if($event.target.composing){ return; }_vm.newLabel=$event.target.value}}}),_c('button',{staticClass:\"labels-control-button add\",class:{'active': _vm.newLabel.length > 0},on:{\"click\":_vm.addDocumentLabel}})]),_vm._l((_vm.filteredInvestigationLabels),function(label){return _c('div',{key:label,staticClass:\"form-row\"},[_c('div',{staticClass:\"checkbox-container forbids-close\",on:{\"click\":function($event){return _vm.toggleLabel(label)}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.document.labels.includes(label)}}),_c('label',[_vm._v(_vm._s(label))])]),_c('div',{staticClass:\"label-action-button-pane forbids-close\"},[_c('button',{staticClass:\"label-action-button label-menu-opener forbids-close\",on:{\"click\":function($event){return _vm.openLabelMenu($event.target, label)}}})])])})],2),_c('PopupMenu',{staticClass:\"label-menu forbids-close\",attrs:{\"close-event\":\"closeLabelMenu\",\"event\":\"openLabelMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.renameLabel}},[_vm._v(\"Rename\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.deleteLabel}},[_vm._v(\"Delete\")])]),_c('PopupMenu',{attrs:{\"event\":\"openJournalColorMenu\"}},[_c('span',{staticClass:\"journal-whitelisted\"},[_c('button',{staticClass:\"journal-color-button\",on:{\"click\":function($event){return _vm.listJournalAs('WHITELIST')}}})]),_c('span',{staticClass:\"journal-unlisted\"},[_c('button',{staticClass:\"journal-color-button\",on:{\"click\":function($event){return _vm.listJournalAs('NONE')}}})]),_c('span',{staticClass:\"journal-blacklisted\"},[_c('button',{staticClass:\"journal-color-button\",on:{\"click\":function($event){return _vm.listJournalAs('BLACKLIST')}}})])]),_c('RenameLabelDialog',{ref:\"renameLabelDialog\"}),_c('UpdateEntityImageDialog',{ref:\"updateEntityImageDialog\"})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { DirectiveOptions, VNodeDirective } from \"vue\"\n\nfunction handleMouseDown() {\n // @ts-ignore\n this.removeEventListener(\"mouseup\", handleMouseUp)\n // @ts-ignore\n this.addEventListener(\"mouseup\", handleMouseUp, { once: true })\n}\n\n\nfunction handleMouseUp() {\n setTimeout(() => {\n // @ts-ignore\n const callback = this._onTextSelection.callback\n\n const selection = window.getSelection()\n if (selection) {\n const text = selection.toString().trim()\n\n if (text.length > 0) {\n const boundingRect = selection.getRangeAt(0).getClientRects()[0]\n\n // @ts-ignore\n callback.apply(this, [text, boundingRect, this, selection])\n return\n }\n }\n\n // @ts-ignore\n callback.apply(this, [null, null, this])\n }, 10)\n}\n\n\nfunction inserted(el: HTMLElement, binding: VNodeDirective) {\n // @ts-ignore\n el._onTextSelection = {\n callback: binding.value\n }\n\n el.addEventListener(\"mousedown\", handleMouseDown, true)\n}\n\n\nfunction unbind(el: HTMLElement) {\n // @ts-ignore\n if (!el._onTextSelection) {\n return\n }\n\n el.removeEventListener(\"mousedown\", handleMouseDown, true)\n el.removeEventListener(\"mouseup\", handleMouseUp, true)\n\n // @ts-ignore\n delete el._onTextSelection\n}\n\n\nexport default {\n inserted,\n unbind\n} as DirectiveOptions\n","import {MarkedUpText, TextMarkup} from \"@/types/investigations\"\n\nexport default class TextMarkerService {\n\n private termTags: MarkupTag[] = []\n private entityTags: MarkupTag[] = []\n\n\n\n public markText(markedUpText: MarkedUpText, classNames: string[]): string {\n this.fillTagsArrayWithZero(markedUpText.text.length)\n markedUpText.markups.forEach(markup => this.tagMarkup(markup))\n return this.wrapInSpans(markedUpText, classNames)\n }\n\n private fillTagsArrayWithZero(length: number) {\n this.termTags = []\n this.entityTags = []\n for (let i = 0; i < length; i++) {\n this.termTags.push({ priority: 0, mandatory: false })\n this.entityTags.push({ priority: 0, mandatory: false })\n }\n }\n\n private tagMarkup(markup: TextMarkup) {\n for (let tagIndex = markup.startIndex; tagIndex <= markup.endIndex; tagIndex++) {\n const tag = markup.entities ? this.entityTags[tagIndex] : this.termTags[tagIndex]\n tag.priority = tag.priority === 0 ? markup.priority : Math.min(tag.priority, markup.priority)\n tag.mandatory = markup.mandatory\n }\n }\n\n private wrapInSpans(markedUpText: MarkedUpText, classNames: string[]) {\n let previousTermTag: MarkupTag = {priority: 0, mandatory: false}\n let previousEntityTag: MarkupTag = {priority: 0, mandatory: false}\n let result: string = \"\"\n this.termTags.forEach((termTag, index) => {\n const entityTag = this.entityTags[index]\n const termMandatoryClass = termTag.mandatory ? \" mandatory\" : \"\"\n const entityMandatoryClass = entityTag.mandatory ? \" mandatory\" : \"\"\n const tagIsSameAsPrevious = termTag.priority === previousTermTag.priority && termTag.mandatory === previousTermTag.mandatory\n const entityTagIsSameAsPrevious = entityTag.priority === previousEntityTag.priority && entityTag.mandatory === previousEntityTag.mandatory\n if (!tagIsSameAsPrevious || !entityTagIsSameAsPrevious) {\n const termClassName = classNames[termTag.priority - 1] ? `term ${classNames[termTag.priority - 1]}${termMandatoryClass}` : ``\n const entityClassName = classNames[entityTag.priority - 1] ? ` entity ${classNames[entityTag.priority - 1]}${entityMandatoryClass}` : ``\n const newClassName = termClassName + entityClassName\n result += this.closeSpan(previousTermTag.priority, previousEntityTag.priority)\n result += this.openSpan(termTag.priority, entityTag.priority, newClassName.trim())\n }\n previousTermTag = termTag\n previousEntityTag = entityTag\n result += markedUpText.text[index]\n })\n result += this.closeSpan(previousTermTag.priority, previousEntityTag.priority)\n return result\n }\n\n private openSpan = (termTag: number, entityTag: number, className: string) => termTag === 0 && entityTag === 0 ? `` : ``\n\n private closeSpan = (termTag: number, entityTag: number) => termTag === 0 && entityTag === 0 ? `` : ``\n}\n\ninterface MarkupTag {\n priority: number,\n mandatory: boolean\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('GenericDialog',{attrs:{\"visible\":_vm.isOpen,\"modal\":true},on:{\"onClose\":function($event){return _vm.close()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"Rename Label\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"rename-label-dialog-content\"},[[_c('div',{staticClass:\"dialog-content\"},[_c('div',{staticClass:\"label-name-container forbids-close\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newLabel),expression:\"newLabel\"}],ref:\"labelNameText\",staticClass:\"label-name-input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.newLabel)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.newLabel=$event.target.value}}})])]),_c('div',{staticClass:\"dialog-buttons-container forbids-close\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button rename-label\",attrs:{\"disabled\":_vm.newLabel.length === 0},on:{\"click\":_vm.renameLabel}},[_vm._v(\"Rename Label\")])])]],2)]},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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport GenericDialog from \"@/components/GenericDialog.vue\"\nimport {InvestigationLabelType, InvestigationType} from \"@/types/investigations\"\nimport {renameDocumentLabel} from \"@/store/investigation/documents-module\"\nimport {renameMentionedEntityLabel} from \"@/store/investigation/graph-module\"\n\n@Component({\n components: {GenericDialog}\n })\n export default class RenameLabelDialog extends Vue {\n\n private isOpen = false\n private oldLabel: string = \"\"\n private newLabel: string = \"\"\n private investigationType: InvestigationType = \"Topic\"\n private labelType: InvestigationLabelType = \"Entity\"\n\n\n public open(options: {label: string, investigationType: InvestigationType, labelType: InvestigationLabelType}) {\n this.isOpen = true\n this.newLabel = this.oldLabel = options.label\n this.investigationType = options.investigationType\n this.labelType = options.labelType\n document.addEventListener(\"keyup\", this.handleKey)\n\n Vue.nextTick(() => {\n const labelNameText = this.$refs.labelNameText as HTMLInputElement\n labelNameText.focus()\n })\n }\n\n\n private close() {\n this.isOpen = false\n document.removeEventListener(\"keyup\", this.handleKey)\n }\n\n\n private handleKey(e: KeyboardEvent) {\n switch (e.key) {\n case \"Escape\":\n this.close()\n break\n case \"Enter\":\n this.renameLabel()\n break\n }\n }\n\n private async renameLabel() {\n this.close()\n const {oldLabel, newLabel, investigationType} = this\n this.labelType === \"Document\" ?\n await renameDocumentLabel(this.$store, {oldLabel, newLabel, investigationType}) :\n await renameMentionedEntityLabel(this.$store, {oldLabel, newLabel, investigationType})\n }\n }\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenameLabelDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenameLabelDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RenameLabelDialog.vue?vue&type=template&id=2f4e2c3d&scoped=true&\"\nimport script from \"./RenameLabelDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./RenameLabelDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RenameLabelDialog.vue?vue&type=style&index=0&id=2f4e2c3d&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2f4e2c3d\",\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',{staticClass:\"document-header\"},[_c('div',{staticClass:\"document-header-bubbles\"},[_c('div',{staticClass:\"classification classification-default\",class:_vm.classificationClassName(_vm.classification)},[_vm._v(_vm._s(_vm.classification))]),(_vm.originalLanguage)?_c('div',{staticClass:\"original-language\"},[_vm._v(_vm._s(_vm.originalLanguage))]):_vm._e(),_vm._l((_vm.documentLabels),function(label){return _c('div',{key:label,staticClass:\"label\"},[_c('span',[_vm._v(_vm._s(label))]),_c('span',{staticClass:\"close-label\",on:{\"click\":function($event){return _vm.deleteLabel(label)}}})])})],2),(!_vm.isInPersonProfile)?_c('div',{staticClass:\"document-control-buttons\"},[_c('div',{staticClass:\"document-header-bubbles\"},[(_vm.isFacultyWorksUser && !!_vm.byResearchersLabel)?_c('div',{staticClass:\"label by-researchers\",class:_vm.byResearchersLabel},[_vm._v(_vm._s(_vm.byResearchersLabel))]):_vm._e()]),(_vm.isOmnisolUser)?_c('button',{staticClass:\"document-control-button re-harvest\",attrs:{\"title\":\"Re-harvest this document\"},on:{\"click\":function($event){$event.preventDefault();return _vm.reHarvestDocument(_vm.document)}}}):_vm._e(),(_vm.isFacultyWorksUser)?_c('button',{staticClass:\"document-control-button url-harvest\",attrs:{\"title\":\"Re-harvest this document\"},on:{\"click\":function($event){$event.preventDefault();return _vm.reHarvestDocumentByUrl(_vm.document)}}}):_vm._e(),(_vm.isEditable && _vm.isOmnipotentUser)?_c('button',{staticClass:\"document-control-button edit-image\",attrs:{\"title\":\"Edit this document\"},on:{\"click\":function($event){$event.preventDefault();return _vm.editDocument.apply(null, arguments)}}}):_vm._e(),(_vm.showDocumentLabels && (_vm.isEditable || _vm.document.labels.length > 0))?_c('button',{ref:\"labelsMenuOpener\",staticClass:\"document-control-button label\",class:{'active': _vm.document.labels.length > 0},attrs:{\"title\":_vm.labelButtonTitle(_vm.document.labels)},on:{\"click\":function($event){$event.preventDefault();return _vm.openLabelsMenu.apply(null, arguments)}}}):_vm._e(),(_vm.isInTopicInvestigation && (_vm.isEditable || _vm.document.relevancy === 'Relevant'))?_c('button',{staticClass:\"document-control-button relevant\",class:{'active': _vm.document.relevancy === 'Relevant'},attrs:{\"title\":\"Bring more results like this\"},on:{\"click\":function($event){$event.preventDefault();return _vm.relevancyChanged('Relevant')}}}):_vm._e(),(_vm.isInTopicInvestigation && (_vm.isEditable || _vm.document.relevancy === 'Irrelevant'))?_c('button',{staticClass:\"document-control-button irrelevant\",class:{'active': _vm.document.relevancy === 'Irrelevant'},attrs:{\"title\":\"Bring less results like this\"},on:{\"click\":function($event){$event.preventDefault();return _vm.relevancyChanged('Irrelevant')}}}):_vm._e(),(_vm.isEditable && _vm.isReportEnabled)?_c('button',{staticClass:\"document-control-button observation\",class:{'active': _vm.hasObservation(_vm.document)},attrs:{\"title\":\"Add Insight to Report\"},on:{\"click\":function($event){$event.preventDefault();return _vm.openObservationDialog.apply(null, arguments)}}}):_vm._e(),(_vm.isEditable || _vm.document.starred)?_c('button',{staticClass:\"document-control-button star\",class:{'active': _vm.document.starred},attrs:{\"title\":\"Mark as important\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.starredChanged.apply(null, arguments)}}}):_vm._e(),(_vm.isFacultyWorksUser)?_c('button',{staticClass:\"document-control-button fix\",class:{'active': _vm.document.labels.includes('fix')},attrs:{\"title\":\"Mark \\\"fix\\\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleFixLabel.apply(null, arguments)}}}):_vm._e(),(_vm.isFacultyWorksUser)?_c('button',{staticClass:\"document-control-button accepted\",class:{'active': _vm.document.labels.includes('accepted')},attrs:{\"title\":\"Mark \\\"accepted\\\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleAcceptedLabel.apply(null, arguments)}}}):_vm._e()]):_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('GenericDialogNew',{ref:\"genericDialog\",attrs:{\"modal\":true},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.dialogTitle())+\" Document\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"error-message-container\",class:{'show': _vm.errorMessage}},[_c('div',{staticClass:\"error-message\"},[_vm._v(\" \"+_vm._s(_vm.errorMessage)+\" \")])]),_c('div',{staticClass:\"dialog-content\"},[_c('aside',[_c('ul',{staticClass:\"page-list\"},_vm._l((_vm.pages),function(page){return _c('li',{key:page.title,staticClass:\"page\",class:{'active': page === _vm.currentPage, 'enabled': page.enabled},on:{\"click\":function($event){return _vm.selectCurrentPage(page)}}},[_vm._v(_vm._s(page.title))])}),0)]),_c('main',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentPage.title === 'Document Type'),expression:\"currentPage.title === 'Document Type'\"}],staticClass:\"page-content\"},[_c('div',{staticClass:\"radio-button\",on:{\"click\":function($event){return _vm.selectDocType('Article')}}},[_c('div',{staticClass:\"radio\",class:{'selected': _vm.unionType}}),_c('label',[_vm._v(\"Generic (any type)\")])]),_c('div',{staticClass:\"radio-button deprecated\",on:{\"click\":function($event){return _vm.selectDocType('Book')}}},[_c('div',{staticClass:\"radio\",class:{'selected': _vm.isOldBook}}),_c('label',[_vm._v(\"Book [deprecated]\")])]),_c('div',{staticClass:\"radio-button deprecated\",on:{\"click\":function($event){return _vm.selectDocType('Book Chapter')}}},[_c('div',{staticClass:\"radio\",class:{'selected': _vm.isOldBookChapter}}),_c('label',[_vm._v(\"Book Chapter [deprecated]\")])]),_c('div',{staticClass:\"radio-button\",on:{\"click\":function($event){return _vm.selectDocType('Web Page')}}},[_c('div',{staticClass:\"radio\",class:{'selected': _vm.webPage}}),_c('label',[_vm._v(\"Classic Webpage\")])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentPage.title === 'Details'),expression:\"currentPage.title === 'Details'\"}],staticClass:\"page-content\"},[(_vm.unionType)?_c('div',{staticClass:\"pubtype-region\"},[_c('div',{staticClass:\"pubtype-container\"},[_c('label',[_vm._v(\"Publication Type:\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.publicationType),expression:\"publicationType\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.publicationType=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('optgroup',{attrs:{\"label\":\"Main Types\"}},_vm._l((_vm.publicationTypes.slice(0, 6)),function(type){return _c('option',{domProps:{\"value\":type}},[_vm._v(_vm._s(type))])}),0),_c('optgroup',{attrs:{\"label\":\"Article Types\"}},_vm._l((_vm.publicationTypes.slice(6, 11)),function(type){return _c('option',{domProps:{\"value\":type}},[_vm._v(_vm._s(type))])}),0),_c('optgroup',{attrs:{\"label\":\"Lectures & Presentations\"}},_vm._l((_vm.publicationTypes.slice(11, 16)),function(type){return _c('option',{domProps:{\"value\":type}},[_vm._v(_vm._s(type))])}),0),_c('optgroup',{attrs:{\"label\":\"Reprints\"}},_vm._l((_vm.publicationTypes.slice(16, 19)),function(type){return _c('option',{domProps:{\"value\":type}},[_vm._v(_vm._s(type))])}),0),_c('option',{domProps:{\"value\":_vm.customPubTypeOption()}},[_vm._v(_vm._s(_vm.customPubTypeOption()))])]),(_vm.publicationType === _vm.customPubTypeOption())?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.customPublicationType),expression:\"customPublicationType\"}],domProps:{\"value\":(_vm.customPublicationType)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.customPublicationType=$event.target.value}}}):_vm._e()])]):_vm._e(),_c('hr'),_c('div',{staticClass:\"field-label-with-actions\"},[_c('div',{staticClass:\"field-label\"},[_vm._v(\"Title:\")]),_c('button',{staticClass:\"action-button superscript\",on:{\"click\":_vm.wrapTitleInSuperscript}}),_c('button',{staticClass:\"action-button subscript\",on:{\"click\":_vm.wrapTitleInSubscript}})]),_c('div',{staticClass:\"field-input\"},[_c('span',{staticClass:\"asterisk\"},[_vm._v(\"*\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.title),expression:\"title\"}],ref:\"title\",attrs:{\"rows\":\"2\"},domProps:{\"value\":(_vm.title)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.title=$event.target.value}}})]),_c('div',{staticClass:\"field-label-with-actions\"},[_c('div',{staticClass:\"field-label\"},[_vm._v(_vm._s(_vm.webPage ? \"Full Text\" : \"Abstract\")+\":\")]),_c('button',{staticClass:\"action-button superscript\",on:{\"click\":_vm.wrapAbstractInSuperscript}}),_c('button',{staticClass:\"action-button subscript\",on:{\"click\":_vm.wrapAbstractInSubscript}})]),_c('div',{staticClass:\"field-input\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.abstract),expression:\"abstract\"}],ref:\"abstract\",attrs:{\"rows\":\"15\"},domProps:{\"value\":(_vm.abstract)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.abstract=$event.target.value}}})]),_c('div',{staticClass:\"field-label\"},[_vm._v(\"Publication Date:\")]),_c('div',{staticClass:\"field-input\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.date),expression:\"date\"}],attrs:{\"placeholder\":\"YYYY-MM-DD\"},domProps:{\"value\":(_vm.date)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.date=$event.target.value}}})]),(_vm.unionType || _vm.isOldBookChapter)?_c('div',[_c('div',{staticClass:\"field-label\"},[_vm._v(_vm._s(\"Journal Name / Book Title\")+\":\")]),_c('div',{staticClass:\"field-input\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.publishedIn),expression:\"publishedIn\"}],domProps:{\"value\":(_vm.publishedIn)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.publishedIn=$event.target.value}}})])]):_vm._e(),(!_vm.webPage)?_c('div',[_c('div',{staticClass:\"field-label\"},[_vm._v(\"Publisher:\")]),_c('div',{staticClass:\"field-input\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.publisher),expression:\"publisher\"}],domProps:{\"value\":(_vm.publisher)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.publisher=$event.target.value}}})])]):_vm._e(),(_vm.unionType)?_c('div',[_c('div',{staticClass:\"field-label\"},[_vm._v(\"DOI:\")]),_c('div',{staticClass:\"field-input\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.doi),expression:\"doi\"}],domProps:{\"value\":(_vm.doi)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.doi=$event.target.value}}})]),_c('div',{staticClass:\"field-label\"},[_vm._v(\"Volume:\")]),_c('div',{staticClass:\"field-input\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.volume),expression:\"volume\"}],domProps:{\"value\":(_vm.volume)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.volume=$event.target.value}}})]),_c('div',{staticClass:\"field-label\"},[_vm._v(\"Issue:\")]),_c('div',{staticClass:\"field-input\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.issue),expression:\"issue\"}],domProps:{\"value\":(_vm.issue)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.issue=$event.target.value}}})]),_c('div',{staticClass:\"field-label\"},[_vm._v(\"First Page:\")]),_c('div',{staticClass:\"field-input\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.firstPage),expression:\"firstPage\"}],domProps:{\"value\":(_vm.firstPage)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.firstPage=$event.target.value}}})]),_c('div',{staticClass:\"field-label\"},[_vm._v(\"Last Page:\")]),_c('div',{staticClass:\"field-input\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.lastPage),expression:\"lastPage\"}],domProps:{\"value\":(_vm.lastPage)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.lastPage=$event.target.value}}})])]):_vm._e(),(!_vm.webPage)?_c('div',{staticClass:\"field-label\"},[_vm._v(\"Full Text URL:\")]):_vm._e(),(!_vm.webPage)?_c('div',{staticClass:\"field-input\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.fullTextUrl),expression:\"fullTextUrl\"}],attrs:{\"placeholder\":\"http(s)://\"},domProps:{\"value\":(_vm.fullTextUrl)},on:{\"change\":function($event){_vm.fullTextUrlFile = null},\"input\":function($event){if($event.target.composing){ return; }_vm.fullTextUrl=$event.target.value}}}),_c('input',{attrs:{\"type\":\"file\",\"id\":\"fullTextFile\"},on:{\"change\":function($event){return _vm.fullTextUrlFileSelected($event)}}}),_c('label',{attrs:{\"for\":\"fullTextFile\"}},[_vm._v(\"Upload File\")])]):_vm._e(),_c('div',{staticClass:\"field-label\"},[_vm._v(\"Website URL:\")]),_c('div',{staticClass:\"field-input\"},[_c('span',{staticClass:\"asterisk\"},[_vm._v(\"*\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.url),expression:\"url\"}],attrs:{\"placeholder\":\"http(s)://\"},domProps:{\"value\":(_vm.url)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.url=$event.target.value}}})])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentPage.title === 'Authors'),expression:\"currentPage.title === 'Authors'\"}],staticClass:\"page-content\"},[_c('ul',{staticClass:\"author-list\"},_vm._l((_vm.authors),function(author,index){return _c('li',{key:index,staticClass:\"field-input author\"},[_c('div',{staticClass:\"author-index\"},[_vm._v(_vm._s(index + 1)+\".\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(author.name),expression:\"author.name\"}],staticClass:\"author-name\",domProps:{\"value\":(author.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(author, \"name\", $event.target.value)}}}),_c('div',{staticClass:\"author-affiliation-container\"},[_vm._l((author.affiliations),function(aff,affIdx){return _c('input',{staticClass:\"author-affiliation\",domProps:{\"value\":aff},on:{\"change\":function($event){return _vm.setAffiliation($event, author, aff, affIdx)}}})}),_c('button',{staticClass:\"author-button add\",attrs:{\"title\":\"Add affiliation\"},on:{\"click\":function($event){return author.affiliations.push('')}}}),_c('button',{staticClass:\"author-button up\",attrs:{\"title\":\"Move author up\"},on:{\"click\":function($event){return _vm.moveAuthor(index, -1)}}}),_c('button',{staticClass:\"author-button down\",attrs:{\"title\":\"Move author down\"},on:{\"click\":function($event){return _vm.moveAuthor(index, 1)}}}),_c('button',{staticClass:\"author-button delete\",attrs:{\"title\":\"Delete author\"},on:{\"click\":function($event){return _vm.deleteAuthor(index)}}})],2)])}),0),_c('div',{staticClass:\"add-button-container\"},[_c('hr'),_c('button',{ref:\"addAuthorButton\",staticClass:\"add-author-button\",attrs:{\"title\":\"Add author\"},on:{\"click\":function($event){return _vm.addAuthor()}}})])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentPage.title === 'Authors in Bulk'),expression:\"currentPage.title === 'Authors in Bulk'\"}],staticClass:\"page-content\"},[_c('div',{staticClass:\"field-label\"},[_vm._v(\"List of author names:\")]),_c('div',{staticClass:\"field-input\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.bulkAuthorList),expression:\"bulkAuthorList\"}],attrs:{\"rows\":\"10\"},domProps:{\"value\":(_vm.bulkAuthorList)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.bulkAuthorList=$event.target.value}}})]),_c('button',{ref:\"bulkAddAuthorsButton\",staticClass:\"bulk-add-author-button\",on:{\"click\":function($event){return _vm.bulkAddAuthors()}}},[_vm._v(\"Add All Authors\")])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentPage.title === 'Cover Image'),expression:\"currentPage.title === 'Cover Image'\"}],staticClass:\"page-content\"},[_c('div',{staticClass:\"image-selection\",class:{'over': _vm.dragOver},on:{\"drop\":function($event){$event.preventDefault();return _vm.dragCoverFile.apply(null, arguments)},\"dragover\":function($event){$event.preventDefault();_vm.dragOver = true},\"dragleave\":function($event){$event.preventDefault();_vm.dragOver = false}}},[_c('div',{staticClass:\"text\"},[_vm._v(\"Drag and drop file here or click to set image\")]),_c('div',{staticClass:\"text-aspect-ratio\"},[_vm._v(\"For best results, use images that have a width:height ratio of 2:3 respectively.\")]),_c('input',{attrs:{\"id\":\"coverImageFileUpload\",\"type\":\"file\"},on:{\"change\":function($event){return _vm.coverFileSelected($event)}}}),_c('label',{attrs:{\"for\":\"coverImageFileUpload\"}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showingCoverImage),expression:\"showingCoverImage\"}],staticClass:\"image-container\"},[_c('div',{staticClass:\"clear-image\",attrs:{\"title\":\"Clear image\"},on:{\"click\":_vm.clearCoverImage}}),_c('img',{ref:\"coverImage\"})])]),_c('div',{staticClass:\"image-url\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.coverImageUrl),expression:\"coverImageUrl\"}],domProps:{\"value\":(_vm.coverImageUrl)},on:{\"paste\":_vm.fetchCoverImageOnPaste,\"input\":function($event){if($event.target.composing){ return; }_vm.coverImageUrl=$event.target.value}}}),_c('button',{on:{\"click\":_vm.fetchCoverImageClick}},[_vm._v(\"Fetch\")])]),_c('div',{staticClass:\"checkbox-container\",on:{\"click\":function($event){_vm.journalImage=!_vm.journalImage}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.journalImage}}),_c('label',{class:{'checked': _vm.journalImage}},[_vm._v(\"Apply to all publications of the same journal\")])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentPage.title === 'Abstract Image'),expression:\"currentPage.title === 'Abstract Image'\"}],staticClass:\"page-content\"},[_c('div',{staticClass:\"image-selection\",class:{'over': _vm.dragOver},on:{\"drop\":function($event){$event.preventDefault();return _vm.dragAbstractFile.apply(null, arguments)},\"dragover\":function($event){$event.preventDefault();_vm.dragOver = true},\"dragleave\":function($event){$event.preventDefault();_vm.dragOver = false}}},[_c('div',{staticClass:\"text\"},[_vm._v(\"Drag and drop file here or click to set image\")]),_c('div',{staticClass:\"text-aspect-ratio\"},[_vm._v(\"For best results, use images that have a width:height ratio of 2:3 respectively.\")]),_c('input',{attrs:{\"id\":\"abstractImageFileUpload\",\"type\":\"file\"},on:{\"change\":function($event){return _vm.abstractFileSelected($event)}}}),_c('label',{attrs:{\"for\":\"abstractImageFileUpload\"}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showingAbstractImage),expression:\"showingAbstractImage\"}],staticClass:\"image-container\"},[_c('div',{staticClass:\"clear-image\",attrs:{\"title\":\"Clear image\"},on:{\"click\":_vm.clearAbstractImage}}),_c('img',{ref:\"abstractImage\"})])]),_c('div',{staticClass:\"image-url\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.abstractImageUrl),expression:\"abstractImageUrl\"}],domProps:{\"value\":(_vm.abstractImageUrl)},on:{\"paste\":_vm.fetchAbstractImageOnPaste,\"input\":function($event){if($event.target.composing){ return; }_vm.abstractImageUrl=$event.target.value}}}),_c('button',{on:{\"click\":_vm.fetchAbstractImageClick}},[_vm._v(\"Fetch\")])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.currentPage.title === 'Debug'),expression:\"currentPage.title === 'Debug'\"}],staticClass:\"page-content\"},[_c('div',{staticClass:\"field-input\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.actualsQuery),expression:\"actualsQuery\"}],attrs:{\"rows\":\"7\",\"disabled\":true},domProps:{\"value\":(_vm.actualsQuery)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.actualsQuery=$event.target.value}}})])]),_c('div',{staticClass:\"dialog-buttons\"},[_c('button',{on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"save\",on:{\"click\":function($event){return _vm.save()}}},[_vm._v(\"Save\")])])])])]},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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport KendoEditorWrapper from \"@/components/KendoEditorWrapper.vue\"\nimport {Prop} from \"vue-property-decorator\"\nimport ReferencedEntityPreview from \"@/views/investigation/previews/ReferencedEntityPreview.vue\"\nimport {DocumentAuthorOverwrite, DocumentEntity, DocumentOverwrites} from \"@/types/investigations\"\nimport moment from \"moment\"\nimport GenericDialogNew, {createDialogMountingPoint} from \"@/components/GenericDialogNew.vue\"\nimport {blobToFile} from \"@/utils/utils\"\n\nexport function openEditDocumentDialog(options: EditDocumentDialogOptions) {\n new (Vue.extend(EditDocumentDialog))({propsData: {options}}).$mount(createDialogMountingPoint())\n}\n\nexport interface EditDocumentDialogOptions {\n readonly doc: DocumentEntity | null\n readonly callback: (\n documentType: string,\n overwrites: DocumentOverwrites | null,\n fullTextFile: File | null,\n coverImage: { modified: boolean, file: File | null, journalImage: boolean },\n abstractImage: { modified: boolean, file: File | null }\n ) => void\n}\n\nclass DialogPage {\n public title: string = \"\"\n public enabled: boolean = true\n}\n\nlet nextFictivePersonId = -1\n\n@Component({\n components: {GenericDialogNew, KendoEditorWrapper, ReferencedEntityPreview}\n})\nexport default class EditDocumentDialog extends Vue {\n\n private pages: DialogPage[] = [{\n title: \"Document Type\",\n enabled: true\n }, {\n title: \"Details\",\n enabled: true\n }, {\n title: \"Authors\",\n enabled: true\n }, {\n title: \"Authors in Bulk\",\n enabled: true\n }, {\n title: \"Cover Image\",\n enabled: true\n }, {\n title: \"Abstract Image\",\n enabled: true\n }, {\n title: \"Debug\",\n enabled: true\n }]\n private currentPage: DialogPage = this.pages[0]\n private publicationTypes: string[] = [\n \"Journal Article\", \"Conference Paper\", \"Preprint\", \"Book Chapter\", \"Book\", \"Edited Volume\",\n \"Review Article\", \"Book Review\", \"PhD Dissertation\", \"Discussion Paper\", \"Journal Article (Translation)\",\n \"Poster\", \"Presentation\", \"Video Presentation\", \"Keynote Lecture\", \"Webinar\",\n \"Book Chapter (Reprint)\", \"Book (Reprint)\", \"Edited Volume (Reprint)\",\n \"Custom...\"]\n private actualsQuery: string = \"\"\n private docType: string = \"Article\"\n private publicationType: string = \"\"\n private customPublicationType: string = \"\"\n private title: string = \"\"\n private abstract: string = \"\"\n private doi: string | null = null\n private volume: string | null = null\n private issue: string | null = null\n private firstPage: string | null = null\n private lastPage: string | null = null\n private publisher: string | null = null\n private fullTextUrl: string | null = null\n private fullTextUrlFile: File | null = null\n private url: string = \"\"\n private publishedIn: string | null = null\n private date: string | null = null\n private authors: DocumentAuthorOverwrite[] = []\n private bulkAuthorList: string = \"\"\n\n private coverImageId: string | null = null\n private coverImageUrl: string | null = null\n private coverImageFile: File | null = null\n\n private abstractImageId: string | null = null\n private abstractImageUrl: string | null = null\n private abstractImageFile: File | null = null\n\n private dragOver = false\n private showingCoverImage = false\n private showingAbstractImage = false\n private coverImageModified = false\n private abstractImageModified = false\n private journalImage: boolean = false\n private errorMessage = \"\"\n\n @Prop()\n private options!: EditDocumentDialogOptions\n\n private customPubTypeOption(): string {\n return this.publicationTypes[this.publicationTypes.length - 1]\n }\n\n get isBook(): boolean {\n return this.publicationType === \"Book\" || this.docType === \"Book\"\n }\n\n get isOldBook(): boolean {\n return this.docType === \"Book\"\n }\n\n get isOldBookChapter(): boolean {\n return this.docType === \"Book Chapter\"\n }\n\n get unionType(): boolean {\n return this.docType === \"Article\"\n }\n\n get webPage(): boolean {\n return this.docType === \"Web Page\"\n }\n\n private mounted() {\n this.coverImageFile = null\n this.abstractImageFile = null\n this.showingCoverImage = false\n this.showingAbstractImage = false\n this.coverImageModified = false\n this.abstractImageModified = false\n\n if (this.options.doc) {\n this.pages.splice(0, 1)\n this.currentPage = this.pages[0]\n this.selectDocType(this.options.doc.type)\n\n this.title = this.options.doc.title.text\n this.abstract = this.options.doc.abstract.text || \"\"\n this.doi = this.options.doc.doi || null\n this.publisher = this.options.doc.publisher || null\n this.volume = this.options.doc.volume || null\n this.issue = this.options.doc.issue || null\n this.firstPage = this.options.doc.firstPage || null\n this.lastPage = this.options.doc.lastPage || null\n this.url = this.options.doc.url\n this.fullTextUrl = this.options.doc.fullTextUrl || null\n this.publishedIn = this.originalPublishedIn() || null\n this.date = this.formattedDocumentDate() || null\n this.authors = this.originalAuthors()\n this.bulkAuthorList = this.authors.map(author => author.name).join(\"\\n\")\n this.journalImage = this.options.doc.journalImage\n this.coverImageId = this.options.doc.coverImageId\n this.abstractImageId = this.options.doc.abstractImageId\n if (!this.coverImageId && this.options.doc.coverImageSourceUrl) {\n this.coverImageUrl = this.options.doc.coverImageSourceUrl\n }\n if (!this.abstractImageId && this.options.doc.abstractImageSourceUrl) {\n this.abstractImageUrl = this.options.doc.abstractImageSourceUrl\n }\n // noinspection SqlResolve\n this.actualsQuery = `${this.title}\n${this.url}\n\nselect * from sne_document where id = ${this.options.doc.id};\nselect * from sne_actual_document where document_id = ${this.options.doc.id};\nselect * from sne_document_author where document_id = ${this.options.doc.id};\n`\n\n const givenPubType = this.options.doc.publicationType\n if (givenPubType) {\n if (givenPubType === this.customPubTypeOption()) {\n // why would anyone do that?\n } else if (this.publicationTypes.includes(givenPubType)) {\n this.publicationType = givenPubType\n } else {\n this.publicationType = this.customPubTypeOption()\n this.customPublicationType = givenPubType\n }\n }\n\n this.$nextTick(() => {\n if (this.coverImageId) {\n const image = this.$refs.coverImage as HTMLImageElement\n image.src = `/api/images?imageId=${this.coverImageId}`\n this.showingCoverImage = true\n }\n if (this.abstractImageId) {\n const image = this.$refs.abstractImage as HTMLImageElement\n image.src = `/api/images?imageId=${this.abstractImageId}`\n this.showingAbstractImage = true\n }\n })\n } else {\n this.selectDocType(\"Article\")\n this.currentPage = this.pages[0]\n }\n\n this.attachImagePersistenceHandler(this.$refs.coverImage as HTMLImageElement, blob => {\n this.coverImageFile = blobToFile(blob!!, \"cover-image\")\n })\n\n this.attachImagePersistenceHandler(this.$refs.abstractImage as HTMLImageElement, blob => {\n this.abstractImageFile = blobToFile(blob!!, \"abstract-image\")\n })\n }\n\n private attachImagePersistenceHandler(img: HTMLImageElement, saveFn: BlobCallback) {\n const c = document.createElement(\"canvas\")\n const ctx = c.getContext(\"2d\")!!\n img.onload = () => {\n c.width = img.naturalWidth\n c.height = img.naturalHeight\n ctx.drawImage(img, 0, 0)\n c.toBlob(saveFn)\n }\n img.crossOrigin = \"Anonymous\"\n }\n\n private dialogTitle(): string {\n return this.options.doc ? \"Edit\" : \"Create\"\n }\n\n private page(name: string) {\n return this.pages.find(x => x.title === name)!\n }\n\n private selectCurrentPage(page: DialogPage) {\n if (page.enabled) {\n this.currentPage = page\n }\n }\n\n private selectDocType(docType: string) {\n this.docType = docType\n this.publicationType = this.publicationTypes[0]\n const docIsWebPage = docType === \"Web Page\"\n this.page(\"Cover Image\").enabled = !docIsWebPage\n }\n\n private close() {\n (this.$refs.genericDialog as GenericDialogNew).close()\n }\n\n private originalPublishedIn() {\n if (this.options.doc) {\n return this.options.doc.journal\n }\n return \"\"\n }\n\n private originalAuthors() {\n if (this.options.doc) {\n return this.options.doc.authors.map((author, previousPosition) => ({\n id: author.id, name: author.name, affiliations: [...author.affiliations], imageId: author.imageId,\n universityProfileUrl: author.universityProfileUrl, lastReviewTime: author.lastReviewTime,\n previousPosition\n }))\n }\n return []\n }\n\n private validateForm(): string {\n if (this.title.length === 0) {\n return \"Title should not be empty\"\n }\n\n if (this.url.length === 0) {\n return \"Website URL should not be empty\"\n }\n\n const urlRegex = RegExp(\"^https?://\\\\S+$\", \"i\")\n\n if (!this.url.match(urlRegex)) {\n return \"Website URL doesn't conform to a valid URL pattern\"\n }\n\n if (this.unionType && this.fullTextUrl) {\n if (this.fullTextUrlFile == null && this.fullTextUrl.length > 0 && (!this.fullTextUrl.match(urlRegex))) {\n return \"Full text URL doesn't conform to a valid URL pattern\"\n }\n }\n\n if (this.date && this.date.length > 0 && !moment(this.date).isValid()) {\n return \"Date is not valid\"\n }\n\n if (this.publicationType === this.customPubTypeOption() && this.customPublicationType.trim().length === 0) {\n return \"Please fill in the custom publication type\"\n }\n\n if (this.unionType) {\n if (this.authors.some(author => author.name.length === 0)) {\n return \"Authors must not have an empty name\"\n }\n }\n\n return \"\"\n }\n\n private fetchCoverImageOnPaste(e: ClipboardEvent) {\n if (e.clipboardData) {\n this.fetchCoverImage(e.clipboardData.getData(\"text/plain\"))\n }\n }\n\n private fetchAbstractImageOnPaste(e: ClipboardEvent) {\n if (e.clipboardData) {\n this.fetchAbstractImage(e.clipboardData.getData(\"text/plain\"))\n }\n }\n\n private fetchCoverImageClick() {\n this.fetchCoverImage(this.coverImageUrl || \"\")\n }\n\n private fetchAbstractImageClick() {\n this.fetchAbstractImage(this.abstractImageUrl || \"\")\n }\n\n private fetchCoverImage(url: string) {\n Vue.nextTick(() => {\n this.coverImageFile = null\n const image = this.$refs.coverImage as HTMLImageElement\n image.src = url\n this.showingCoverImage = true\n this.coverImageModified = true\n })\n }\n\n private fetchAbstractImage(url: string) {\n Vue.nextTick(() => {\n this.abstractImageFile = null\n const image = this.$refs.abstractImage as HTMLImageElement\n image.src = url\n this.showingAbstractImage = true\n this.abstractImageModified = true\n })\n }\n\n private setAffiliation(event: Event, author: DocumentAuthorOverwrite, aff: string, affIdx: number) {\n author.affiliations[affIdx] = (event.target as HTMLInputElement).value\n }\n\n private bulkAddAuthors() {\n this.errorMessage = \"\"\n if (this.bulkAuthorList.length === 0) {\n return\n }\n const stubbedText = `\\n${this.bulkAuthorList}\\n`\n if (!this.authors.every(author => stubbedText.includes(`\\n${author.name}\\n`))) {\n this.errorMessage = \"As a precaution, bulk authors must contain all names from the authors tab\"\n return\n }\n const list = this.bulkAuthorList.split(\"\\n\")\n this.authors = list.map((name, idx) => this.nameToAuthor(name, -1 - idx))\n this.selectCurrentPage(this.page(\"Authors\"))\n }\n\n private save() {\n this.authors.forEach(author => {\n // remove empty affiliations\n const affiliations = author.affiliations.filter(aff => aff.trim().length > 0)\n author.affiliations.splice(0, author.affiliations.length, ...affiliations)\n })\n\n this.errorMessage = this.validateForm()\n if (this.errorMessage !== \"\") {\n return\n }\n\n const overwrites: DocumentOverwrites = {}\n\n if (!this.options.doc || this.different(this.title, this.options.doc.title.text)) {\n overwrites.title = this.title\n }\n if (!this.options.doc || this.different(this.abstract, this.options.doc.abstract.text)) {\n overwrites.text = this.abstract\n }\n if (!this.options.doc || this.different(this.volume, this.options.doc.volume)) {\n overwrites.volume = this.volume\n }\n if (!this.options.doc || this.different(this.issue, this.options.doc.issue)) {\n overwrites.issue = this.issue\n }\n if (!this.options.doc || this.different(this.firstPage, this.options.doc.firstPage)) {\n overwrites.firstPage = this.firstPage\n }\n if (!this.options.doc || this.different(this.lastPage, this.options.doc.lastPage)) {\n overwrites.lastPage = this.lastPage\n }\n if (!this.options.doc || this.different(this.doi, this.options.doc.doi)) {\n overwrites.doi = this.doi\n }\n if (!this.options.doc || this.different(this.publisher, this.options.doc.publisher)) {\n overwrites.publisher = this.publisher\n }\n if (this.unionType) {\n if (this.publicationType !== this.customPubTypeOption()) {\n if (!this.options.doc || this.different(this.publicationType, this.options.doc.publicationType)) {\n overwrites.publicationType = this.publicationType\n }\n } else {\n if (!this.options.doc || this.different(this.customPublicationType, this.options.doc.publicationType)) {\n overwrites.publicationType = this.customPublicationType\n }\n }\n\n if (this.fullTextUrlFile == null) {\n if (!this.options.doc || this.different(this.fullTextUrl, this.options.doc.fullTextUrl)) {\n overwrites.fullTextUrl = this.fullTextUrl\n }\n }\n }\n if (!this.options.doc || this.different(this.date, this.formattedDocumentDate())) {\n overwrites.date = this.date\n }\n if (!this.options.doc || this.different(this.url, this.options.doc.url)) {\n overwrites.url = this.url\n }\n if (!this.webPage && this.different(JSON.stringify(this.authors), JSON.stringify(this.originalAuthors()))) {\n overwrites.authors = this.authors\n }\n if (!this.options.doc || this.different(this.publishedIn, this.originalPublishedIn())) {\n overwrites.publishedIn = this.publishedIn\n }\n\n this.close()\n\n this.options.callback!(\n this.docType,\n Object.keys(overwrites).length > 0 ? overwrites : null,\n this.fullTextUrlFile,\n { modified: this.coverImageModified, file: this.coverImageFile, journalImage: this.journalImage },\n { modified: this.abstractImageModified, file: this.abstractImageFile }\n )\n }\n\n private nameToAuthor(name: string, id: number): DocumentAuthorOverwrite {\n const existing = this.authors.filter(author => author.name === name)\n return existing.length === 0\n ? {id: id.toString(), name, affiliations: [], imageId: null, universityProfileUrl: null, lastReviewTime: null}\n : existing.pop() as DocumentAuthorOverwrite\n }\n\n private different(first: string | null | undefined, second: string | null | undefined): boolean {\n if (!first && !second) {\n return false\n }\n\n return first !== second\n }\n\n private formattedDocumentDate(): string {\n if (this.options.doc && this.options.doc.date) {\n if (this.options.doc.datePrecision === \"MonthYear\") {\n return this.options.doc.date.format(\"YYYY-MM\")\n }\n\n if (this.options.doc.datePrecision === \"DayMonthYear\") {\n return this.options.doc.date.format(\"YYYY-MM-DD\")\n }\n\n return this.options.doc.date.format(\"YYYY\")\n }\n\n return \"\"\n }\n\n private coverFileSelected(e: Event) {\n const input = e.target as HTMLInputElement\n if (input.files) {\n const file = input.files[0]\n this.setFileAsCoverImage(file)\n }\n }\n\n private abstractFileSelected(e: Event) {\n const input = e.target as HTMLInputElement\n if (input.files) {\n const file = input.files[0]\n this.setFileAsAbstractImage(file)\n }\n }\n\n private fullTextUrlFileSelected(e: Event) {\n const input = e.target as HTMLInputElement\n if (input.files) {\n const file = input.files[0]\n this.fullTextUrlFile = file\n this.fullTextUrl = file.name\n }\n }\n\n private dragCoverFile(e: DragEvent) {\n const droppedFiles = e.dataTransfer!.files\n if (!droppedFiles) {\n return\n }\n ([...droppedFiles]).forEach(file => {\n this.setFileAsCoverImage(file)\n })\n }\n\n private dragAbstractFile(e: DragEvent) {\n const droppedFiles = e.dataTransfer!.files\n if (!droppedFiles) {\n return\n }\n ([...droppedFiles]).forEach(file => {\n this.setFileAsAbstractImage(file)\n })\n }\n\n private setFileAsCoverImage(file: File) {\n this.coverImageFile = file\n Vue.nextTick(() => {\n const image = this.$refs.coverImage as HTMLImageElement\n image.src = URL.createObjectURL(file)\n this.showingCoverImage = true\n this.coverImageModified = true\n })\n }\n\n private setFileAsAbstractImage(file: File) {\n this.abstractImageFile = file\n Vue.nextTick(() => {\n const image = this.$refs.abstractImage as HTMLImageElement\n image.src = URL.createObjectURL(file)\n this.showingAbstractImage = true\n this.abstractImageModified = true\n })\n }\n\n private clearCoverImage() {\n this.coverImageFile = null\n this.showingCoverImage = false\n this.coverImageModified = true\n }\n\n private clearAbstractImage() {\n this.abstractImageFile = null\n this.showingAbstractImage = false\n this.abstractImageModified = true\n }\n\n private addAuthor() {\n this.authors.push({\n id: (nextFictivePersonId--).toString(), name: \"\", affiliations: [], imageId: null,\n universityProfileUrl: null, lastReviewTime: null\n })\n const button = this.$refs.addAuthorButton as HTMLButtonElement\n this.$nextTick(() => {\n const lastAuthor = document.querySelector(\".field-input.author:last-child\")\n const lastAuthorInput = lastAuthor!!.querySelector(\"input\") as HTMLInputElement\n lastAuthorInput.focus()\n button.scrollIntoView({ behavior: \"smooth\", block: \"center\" })\n })\n }\n\n private deleteAuthor(index: number) {\n this.authors.splice(index, 1)\n }\n\n\n private moveAuthor(index: number, direction: number) {\n if ((direction === -1 && index === 0) || (direction === 1 && index === this.authors.length - 1)) {\n return\n }\n\n const author = this.authors.splice(index, 1)[0]\n this.authors.splice(index + direction, 0, author)\n }\n\n\n private wrapTitleInSuperscript() {\n this.title = this.wrapWithTag(this.$refs.title as HTMLTextAreaElement, this.title, \"\", \"\")\n }\n\n\n private wrapTitleInSubscript() {\n this.title = this.wrapWithTag(this.$refs.title as HTMLTextAreaElement, this.title, \"\", \"\")\n }\n\n\n private wrapAbstractInSuperscript() {\n this.abstract = this.wrapWithTag(this.$refs.abstract as HTMLTextAreaElement, this.abstract || \"\", \"\", \"\")\n }\n\n\n private wrapAbstractInSubscript() {\n this.abstract = this.wrapWithTag(this.$refs.abstract as HTMLTextAreaElement, this.abstract || \"\", \"\", \"\")\n }\n\n\n private wrapWithTag(inputTag: HTMLTextAreaElement, text: string, openingTag: string, closingTag: string): string {\n const selectionStart = inputTag.selectionStart\n const selectionEnd = inputTag.selectionEnd\n if (selectionStart !== null && selectionEnd !== null) {\n text = [text.slice(0, selectionEnd), closingTag, text.slice(selectionEnd)].join(\"\")\n text = [text.slice(0, selectionStart), openingTag, text.slice(selectionStart)].join(\"\")\n return text\n }\n return text\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditDocumentDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditDocumentDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EditDocumentDialog.vue?vue&type=template&id=48098639&scoped=true&\"\nimport script from \"./EditDocumentDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./EditDocumentDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EditDocumentDialog.vue?vue&type=style&index=0&id=48098639&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 \"48098639\",\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {getInvestigation, getIsInProfile, getIsInReviewProfile} from \"@/store/investigation/investigation-module\"\nimport {InvestigationEntity, InvestigationSubType, InvestigationType} from \"@/types/investigations\"\n\n@Component\nexport class InvestigationMixin extends Vue {\n\n get isInInvestigationsPage(): boolean {\n return this.$route.name === \"investigations\"\n }\n\n get investigation(): InvestigationEntity | null {\n return getInvestigation(this.$store)\n }\n\n get investigationType(): InvestigationType {\n return this.investigation!.investigationType\n }\n\n get investigationSubType(): InvestigationSubType {\n return this.investigation!.investigationSubType\n }\n\n get isInTopicInvestigation(): boolean {\n return !!this.investigation && this.investigationType === \"Topic\"\n }\n\n get isInPersonInvestigation(): boolean {\n return !!this.investigation && this.investigationType === \"Person\"\n }\n\n get isInPersonProfile(): boolean {\n return getIsInProfile(this.$store)\n }\n\n get isInReviewProfile(): boolean {\n return getIsInReviewProfile(this.$store)\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport {DocumentEntity, Relevancy} from \"@/types/investigations\"\nimport {Prop} from \"vue-property-decorator\"\nimport {\n removeDocumentLabel,\n updateDocument,\n updateFullTextFile,\n updateDocumentCoverImage,\n updateDocumentAbstractImage,\n setDocumentStatus\n} from \"@/store/investigation/documents-module\"\nimport {isReportEnabled, isShowingDocumentLabels} from \"@/store/environment-module\"\nimport {getObservations} from \"@/store/investigation/observation-module\"\nimport {openEditDocumentDialog} from \"@/views/investigation/dialogs/EditDocumentDialog.vue\"\nimport {PermissionsMixin} from \"@/store/user-mixin\"\nimport {InvestigationMixin} from \"@/store/investigation-mixin\"\nimport {fetchTopLabels, getMatchingResearcherIds, getBWJournals} from \"@/store/investigation/investigation-module\"\nimport InvestigationService from \"@/api/investigation-service\"\n\n@Component\nexport default class DocumentItemHeader extends mixins(Vue, PermissionsMixin, InvestigationMixin) {\n\n @Prop()\n private document!: DocumentEntity\n\n @Prop()\n private isEditable!: boolean\n\n\n get showDocumentLabels(): boolean {\n return isShowingDocumentLabels(this.$store)\n }\n\n private get byResearchersLabel() {\n const hasResearchers = Object.keys(getMatchingResearcherIds(this.$store)).length > 0\n const hasJournals = getBWJournals(this.$store).size > 0\n if (!hasResearchers && !hasJournals) {\n return\n }\n switch (this.document.byTheResearchers) {\n case null: return \"Check\"\n case true: return \"Include\"\n case false: return \"Exclude\"\n }\n }\n\n private get documentLabels() {\n const labels = [...this.document.labels]\n labels.sort((a, b) => a.toLocaleLowerCase().localeCompare(b.toLocaleLowerCase()))\n return labels\n }\n\n private get classification(): string {\n return this.document.classification\n }\n\n private get originalLanguage(): string | undefined {\n if (this.document.originalLanguage === \"English\") {\n return undefined\n }\n return this.document.originalLanguage\n }\n\n private async deleteLabel(label: string) {\n await removeDocumentLabel(this.$store, {label, document: this.document, investigationType: this.investigationType})\n await fetchTopLabels(this.$store)\n }\n\n private get isReportEnabled(): boolean {\n return isReportEnabled(this.$store)\n }\n\n private openLabelsMenu() {\n if (this.isEditable) {\n const labelsMenuOpenerButton = this.$refs.labelsMenuOpener as HTMLElement\n this.$emit(\"openLabelsMenu\", labelsMenuOpenerButton)\n }\n }\n\n private labelButtonTitle(labels: string[]) {\n return labels.length > 0 ? \"Add / Edit Labels: \" + labels.join(`, `) : \"Add Label\"\n }\n\n private starredChanged() {\n if (this.isEditable) {\n const value = !this.document.starred\n this.$emit(\"starred-changed\", value)\n setDocumentStatus(this.$store, {id: this.document.id, touched: true, starred: value})\n }\n }\n\n private relevancyChanged(relevancyClicked: Relevancy) {\n if (this.isEditable) {\n this.$emit(\"relevancy-changed\", this.document.relevancy !== relevancyClicked ? relevancyClicked : \"Neutral\")\n }\n }\n\n private hasObservation(document: DocumentEntity) {\n const observations = getObservations(this.$store)\n return observations.some(observation => observation.referencedObject === this.document.id)\n }\n\n private openObservationDialog() {\n if (this.isEditable) {\n this.$emit(\"create-observation\", this.document.id)\n }\n }\n\n private editDocument() {\n openEditDocumentDialog({\n doc: this.document,\n callback: async (documentType, overwrites, fullTextFile,\n coverImage: { modified: boolean, file: File | null, journalImage: boolean },\n abstractImage: { modified: boolean, file: File | null }\n ) => {\n if (overwrites) {\n await updateDocument(this.$store, {id: this.document.id, overwrites})\n }\n if (coverImage.modified) {\n await updateDocumentCoverImage(this.$store,\n {id: this.document.id, file: coverImage.file, journalImage: coverImage.journalImage})\n }\n if (abstractImage.modified) {\n await updateDocumentAbstractImage(this.$store,\n {id: this.document.id, file: abstractImage.file})\n }\n if (fullTextFile) {\n await updateFullTextFile(this.$store, {id: this.document.id, file: fullTextFile})\n }\n }\n })\n }\n\n private reHarvestDocument(document: DocumentEntity) {\n InvestigationService.createTopicHarvest(\n this.investigation!.id, this.investigationType, document.title.text, false, false)\n }\n\n private reHarvestDocumentByUrl(document: DocumentEntity) {\n InvestigationService.createTopicHarvest(this.investigation!.id, this.investigationType, document.url,\n true, false, true)\n }\n\n private classificationClassName(classification: string) {\n if (!classification) {\n return \"\"\n }\n return \"classification-\" + classification\n .replace(\"(Unclassified)\", \"unclassified\")\n .replace(/[()]/g, \"\")\n .replace(/\\s/g, \"-\")\n .toLowerCase()\n }\n\n private toggleAcceptedLabel() {\n this.$emit(\"toggleAcceptedLabel\")\n setDocumentStatus(this.$store, {id: this.document.id, touched: true})\n }\n\n private toggleFixLabel() {\n this.$emit(\"toggleLabel\", \"fix\")\n setDocumentStatus(this.$store, {id: this.document.id, touched: true})\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentItemHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentItemHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DocumentItemHeader.vue?vue&type=template&id=a7599b6c&scoped=true&\"\nimport script from \"./DocumentItemHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./DocumentItemHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DocumentItemHeader.vue?vue&type=style&index=0&id=a7599b6c&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 \"a7599b6c\",\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',{staticClass:\"document-header\"},[_c('div',{staticClass:\"document-header-bubbles\"},[(_vm.classification)?_c('div',{staticClass:\"classification\",class:_vm.classification},[_vm._v(_vm._s(_vm.classification))]):_vm._e(),_vm._l((_vm.documentLabels),function(label){return _c('div',{key:label,staticClass:\"label\"},[_vm._v(_vm._s(label))])})],2),(!_vm.foundInCvLabelExists)?_c('div',{staticClass:\"document-control-buttons\"},[_c('button',{staticClass:\"document-control-button mine\",class:{'selected': _vm.isMineSelected()},attrs:{\"title\":\"This is my publication\"},on:{\"click\":function($event){return _vm.selectMine()}}},[_vm._v(\"Mine\")]),_c('button',{staticClass:\"document-control-button not-mine\",class:{'selected': _vm.isNotMineSelected()},attrs:{\"title\":\"This isn’t my publication\"},on:{\"click\":function($event){return _vm.selectNotMine()}}},[_vm._v(\"Not Mine\")])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport {DocumentEntity} from \"@/types/investigations\"\nimport {Prop} from \"vue-property-decorator\"\nimport {PermissionsMixin} from \"@/store/user-mixin\"\nimport {InvestigationMixin} from \"@/store/investigation-mixin\"\nimport {addDocumentLabel, removeDocumentLabel} from \"@/store/investigation/documents-module\"\n\n@Component\nexport default class DocumentItemReviewHeader extends mixins(Vue, PermissionsMixin, InvestigationMixin) {\n\n @Prop()\n private document!: DocumentEntity\n\n @Prop()\n private isEditable!: boolean\n\n private foundInCvLabelExists = false\n private existingDocumentLabels: string[] = []\n\n private mounted() {\n this.existingDocumentLabels = this.document.labels\n .filter(it => it !== \"Mine\" && it !== \"Not Mine\")\n .sort((a, b) => a.toLocaleLowerCase().localeCompare(b.toLocaleLowerCase()))\n\n this.foundInCvLabelExists = !!this.document.labels.find(it => it === \"Found in CV\")\n }\n\n private get documentLabels() {\n return this.existingDocumentLabels\n }\n\n private get classification(): string | undefined {\n return this.document.classification !== \"Unclassified\" ? this.document.classification : undefined\n }\n\n private isMineSelected(): boolean {\n return this.document.labels.some(it => it === \"Mine\")\n }\n\n private isNotMineSelected(): boolean {\n return this.document.labels.some(it => it === \"Not Mine\")\n }\n\n private selectMine() {\n if (this.isMineSelected()) {\n this.removeLabel(\"Mine\")\n } else {\n this.removeLabel(\"Not Mine\")\n this.addLabel(\"Mine\")\n }\n }\n\n private selectNotMine() {\n if (this.isNotMineSelected()) {\n this.removeLabel(\"Not Mine\")\n } else {\n this.removeLabel(\"Mine\")\n this.addLabel(\"Not Mine\")\n }\n }\n\n private async removeLabel(label: string) {\n const {document, investigationType} = this\n if (document.labels.includes(label)) {\n await removeDocumentLabel(this.$store, {document, label, investigationType})\n }\n }\n\n private async addLabel(label: string) {\n const {document, investigationType} = this\n if (!document.labels.includes(label)) {\n await addDocumentLabel(this.$store, {document, label, investigationType})\n }\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentItemReviewHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentItemReviewHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DocumentItemReviewHeader.vue?vue&type=template&id=5d1ae3f4&scoped=true&\"\nimport script from \"./DocumentItemReviewHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./DocumentItemReviewHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DocumentItemReviewHeader.vue?vue&type=style&index=0&id=5d1ae3f4&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 \"5d1ae3f4\",\n null\n \n)\n\nexport default component.exports","\nfunction calculateNodeOffset(element: HTMLElement, selection: Selection) {\n let offsetSum = 0\n const iter = document.createNodeIterator(element, NodeFilter.SHOW_TEXT)\n\n let textNode\n let found = false\n const range = selection.getRangeAt(0)\n const startContainer = range.startContainer\n do {\n textNode = iter.nextNode()\n if (textNode) {\n if (startContainer !== textNode) {\n offsetSum += textNode.textContent!.length\n } else {\n found = true\n }\n }\n } while (!found && textNode)\n return offsetSum\n}\n\n\nfunction calculateSentenceStartIndexAndLength(text: string, needleIndex: number, selectionLength: number) {\n const endSentenceSigns = [\". \", \"… \", \"! \", \"? \", \"| \", \".\\n\\n\", \"…\\n\\n\", \"!\\n\\n\", \"?\\n\\n\", \"|\\n\\n\"]\n const startIndexes: number[] = []\n const endIndexes: number[] = []\n endSentenceSigns.forEach(sign => {\n const currentStartIndex = text.substr(0, needleIndex).lastIndexOf(sign) + 1\n const currentEndIndex = text.indexOf(sign, needleIndex + selectionLength + 8) > -1 ? text.indexOf(sign, needleIndex + selectionLength + 8) : text.length\n startIndexes.push(currentStartIndex)\n endIndexes.push(currentEndIndex)\n })\n const startIndex = Math.max(...startIndexes)\n const endIndex = Math.min(...endIndexes)\n const length = endIndex - startIndex\n return {startIndex, length}\n}\n\n\nexport const getSentence = function(element: HTMLElement, selection: Selection) {\n if (selection) {\n const text = element.innerText\n const selectionNodeStart = calculateNodeOffset(element, selection)\n const needleIndex = selectionNodeStart + selection.anchorOffset\n const selectionLength = selection.getRangeAt(0).toString().length\n const boldedText = text.substr(0, needleIndex) +\n \"\" + text.substr(needleIndex, selectionLength) + \"\" +\n text.substr(needleIndex + selectionLength)\n const {startIndex, length} = calculateSentenceStartIndexAndLength(boldedText, needleIndex, selectionLength)\n return boldedText.substr(startIndex, length).trim()\n }\n}\n\n\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\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 Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport {\n DocumentEntity,\n DocumentMarkupsEntity,\n InvestigationAuthor,\n MarkedUpText,\n PersonEntity\n} from \"@/types/investigations\"\nimport {Moment} from \"moment\"\nimport {Prop, Watch} from \"vue-property-decorator\"\nimport TextSelection from \"@/directives/TextSelection\"\nimport {showTermPopupMenu} from \"@/store/investigation/dialogs/term-popup-menu-module\"\nimport {Optional} from \"@/types\"\nimport TextMarkerService from \"@/views/investigation/services/TextMarkerService\"\nimport {\n addDocumentLabel,\n deleteDocumentLabel,\n getDocumentMarkups,\n getDocuments,\n getViewModeLevel,\n removeDocumentLabel\n} from \"@/store/investigation/documents-module\"\nimport {\n fetchTopLabels,\n getActiveAuthorIds,\n getBWJournals,\n getDocumentLabels,\n getMatchingResearcherIds,\n getSelectedTops,\n setPersonForRightPaneSummary,\n setSelectedTops,\n updateBWJournal\n} from \"@/store/investigation/investigation-module\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport RenameLabelDialog from \"@/views/investigation/dialogs/RenameLabelDialog.vue\"\nimport UpdateEntityImageDialog from \"@/views/investigation/dialogs/UpdateEntityImageDialog.vue\"\nimport {openConfirmationDialog} from \"@/views/investigation/dialogs/ConfirmationDialog.vue\"\nimport {PermissionsMixin} from \"@/store/user-mixin\"\nimport DocumentItemHeader from \"@/views/investigation/panes/DocumentItemHeader.vue\"\nimport {InvestigationMixin} from \"@/store/investigation-mixin\"\nimport DocumentItemReviewHeader from \"@/views/investigation/panes/DocumentItemReviewHeader.vue\"\nimport {getSentence} from \"@/utils/text-utils\"\n\ninterface DocumentDetail {\n html: string\n class: string,\n title: string\n}\n\n@Component({\n directives: {TextSelection},\n components: {DocumentItemReviewHeader, DocumentItemHeader, PopupMenu, RenameLabelDialog, UpdateEntityImageDialog}\n})\nexport default class DocumentItem extends mixins(Vue, PermissionsMixin, InvestigationMixin) {\n\n @Prop()\n private document!: DocumentEntity\n\n @Prop()\n private isEditable!: boolean\n\n private disableShowLess: boolean = false\n private isAbstractClamped: boolean = false\n private expanded: boolean = false\n private newLabel: string = \"\"\n private labelContext: string = \"\"\n private isShowingAllAuthors: boolean = false\n private maxAuthorsToShow: number = 8\n\n private mounted() {\n\n if (this.isFacultyWorksUser) {\n this.maxAuthorsToShow = 22\n }\n\n this.$store.watch(state => getViewModeLevel(this.$store), (newValue, oldValue) => {\n this.expanded = false\n })\n\n this.$nextTick(() => {\n const abstractSection = this.$refs.abstract as HTMLInputElement\n this.isAbstractClamped = abstractSection ? abstractSection.offsetHeight < abstractSection.scrollHeight : false\n\n if (this.document.abstract.text === \"\" && this.document.keywords && this.document.keywords.length > 0) {\n this.disableShowLess = true\n }\n })\n }\n\n private isActive(author: InvestigationAuthor) {\n return getActiveAuthorIds(this.$store).indexOf(author.id) >= 0\n }\n\n private getAuthorNameTooltip(author: InvestigationAuthor) {\n let nameFromResearcherList = null\n if (this.isFacultyWorksUser) {\n const personIds = getMatchingResearcherIds(this.$store)\n nameFromResearcherList = personIds[author.id]\n }\n if (!nameFromResearcherList) {\n return author.affiliations.join(\"; \")\n }\n const matches = nameFromResearcherList === author.name\n ? `Author name is exact` : `Compatible author name: ${nameFromResearcherList}`\n\n return author.affiliations.length > 0 && matches\n ? `${author.affiliations.join(\"; \")} ${matches}`\n : author.affiliations.join(\"; \") || matches\n }\n\n private getAuthorNameHighlightClass(author: InvestigationAuthor) {\n if (!this.shouldDisplayDocumentAndAuthorImages) {\n return \"\"\n }\n const cssClasses = []\n\n if (author.affiliations.length === 0 && this.isFacultyWorksUser) {\n cssClasses.push(\"affiliation-missing\")\n } else if (author.universityProfileUrl || author.imageId) {\n cssClasses.push(\"profile-url-exists\")\n } else if (!!author.lastReviewTime && this.isFacultyWorksUser) {\n cssClasses.push(\"no-internet-presence\")\n }\n\n if (this.isFacultyWorksUser) {\n const personIds = getMatchingResearcherIds(this.$store)\n if (personIds[author.id]) {\n cssClasses.push(\"compatible-author\")\n }\n\n if (!this.isActive(author)) {\n cssClasses.push(\"inactive-author\")\n }\n }\n\n return cssClasses.join(\" \")\n }\n\n get shouldDisplayDocumentAndAuthorImages(): boolean {\n return this.investigationSubType === \"Person\" || this.investigationSubType === \"PersonGroup\" ||\n this.investigationSubType === \"FacultyWorks\" || this.investigationSubType === \"ResearcherWorks\"\n }\n\n get shouldDisplayShowMoreButton(): boolean {\n return this.document.authors.length > this.maxAuthorsToShow + 2\n }\n\n get visibleAuthors(): InvestigationAuthor[] {\n if (!this.shouldDisplayShowMoreButton || this.isShowingAllAuthors ) {\n return this.document.authors\n }\n return this.document.authors.slice(0, this.maxAuthorsToShow)\n }\n\n get authorsWithImages(): InvestigationAuthor[] {\n return this.document.authors.filter(it => it.imageId)\n }\n\n get showMoreText(): string {\n return this.isShowingAllAuthors ? \"View Less\" : `View All ${this.document.authors.length} Authors`\n }\n\n private get filteredInvestigationLabels(): string[] {\n const allLabels = [...getDocumentLabels(this.$store)]\n allLabels.sort()\n const userLabel = this.newLabel.toLocaleLowerCase()\n const hasUserTypedLabel = userLabel.length > 0\n return allLabels\n .filter(label => hasUserTypedLabel ? label.toLocaleLowerCase().includes(userLabel) : true)\n .sort((a, b) => a.toLocaleLowerCase().localeCompare(b.toLocaleLowerCase()))\n }\n\n private get documentMarkups(): DocumentMarkupsEntity | undefined {\n return getDocumentMarkups(this.$store).find(documentMarkups => documentMarkups.id === this.document.id)\n }\n\n private get viewModeLevel(): number {\n return this.expanded ? 3 : (this.isEditable ? getViewModeLevel(this.$store) : 1)\n }\n\n private get displayKeywords() {\n return this.document.keywords.map(this.markText).join(\", \")\n }\n\n private get documentDetails(): DocumentDetail[] {\n const details: DocumentDetail[] = []\n\n if (this.document.date) {\n const dateHtml = this.formatDate(this.document.date, this.document.datePrecision)\n details.push({class: \"date no-wrap\", html: dateHtml, title: dateHtml})\n }\n\n if (this.document.citationNumber && !this.isFacultyWorksUser) {\n const citationHtml = `${this.document.citationNumber} citations`\n details.push({class: \"citation-number no-wrap\", html: citationHtml, title: citationHtml})\n }\n\n if (this.document.journal) {\n const lst = getBWJournals(this.$store).get(this.document.journal)\n const bwClass = lst === \"WHITELIST\" ? \"journal-whitelisted\" : lst === \"BLACKLIST\" ? \"journal-blacklisted\" : \"journal-unlisted\"\n details.push({class: `published-in ${bwClass}`, html: this.document.journal, title: this.document.journal})\n }\n\n if (this.isFacultyWorksUser) {\n const volume = this.document.volume || \"\"\n const issue = !this.document.issue ? \"\" : `(${this.document.issue})`\n const pages = this.document.firstPage || this.document.lastPage ? `pp. ${this.document.firstPage || \"\"}-${this.document.lastPage || \"\"}` : \"\"\n const doi = !this.document.doi ? \"\" : `DOI`\n const pagesSeparator = (volume || issue) && pages ? \", \" : \"\"\n const doiSeparator = (volume || issue || pages) && doi ? \", \" : \"\"\n const html = `${volume}${issue}${pagesSeparator}${pages}${doiSeparator}${doi}`\n if (html) {\n details.push({html, class: \"\", title: \"\"})\n }\n }\n\n if (this.isFacultyWorksUser && this.viewModeLevel >= 4) {\n const publisher = this.document.publisher || \"\"\n details.push({class: this.getPublisherColor(), html: publisher, title: `publisher: ${publisher}\nharvester: ${this.document.harvesterType}`})\n }\n\n if (this.document.type === \"Web Page\") {\n const urlParts = this.document.url.split(\"/\")\n\n let boldUrl = urlParts[0] + \"//\" + urlParts[2] + \"\"\n for (let i = 3; i < urlParts.length; i++) {\n boldUrl += \"/\" + urlParts[i]\n }\n boldUrl = `${boldUrl}`\n\n details.push({class: \"web-page-url\", html: boldUrl, title: this.document.url})\n }\n\n return details\n }\n\n private getPublisherColor(): string {\n switch (this.document.harvesterType) {\n case \"PUBLISHER\": return \"entities-25-text\"\n case \"GENERIC\": return \"entities-26-text\"\n case \"MICROSOFT\": return \"entities-23-text\"\n case \"GOOGLE\": return \"entities-24-text\"\n default: return \"\"\n }\n }\n\n // ugly and slow, but was quick to implement\n private async toggleAcceptedLabel() {\n const {document, investigationType} = this\n if (document.labels.includes(\"accepted\")) {\n await removeDocumentLabel(this.$store, {document, label: \"accepted\", investigationType})\n } else {\n const markedFix = document.labels.includes(\"fix\")\n if (markedFix) {\n document.labels = document.labels.filter(x => x !== \"fix\")\n }\n await addDocumentLabel(this.$store, {document, label: \"accepted\", investigationType})\n if (markedFix) {\n const success = await removeDocumentLabel(this.$store, {document, label: \"fix\", investigationType})\n if (!success) {\n document.labels.push(\"fix\")\n }\n }\n }\n await fetchTopLabels(this.$store)\n this.removeLabelFilter(\"fix\")\n this.removeLabelFilter(\"accepted\")\n }\n\n private async toggleLabel(label: string) {\n const {document, investigationType} = this\n document.labels.includes(label) ?\n await removeDocumentLabel(this.$store, {document, label, investigationType}) :\n await addDocumentLabel(this.$store, {document, label, investigationType})\n await fetchTopLabels(this.$store)\n this.removeLabelFilter(label)\n }\n\n private removeLabelFilter(label: string) {\n const documents = getDocuments(this.$store)\n const toLowerCase = (text: string) => text.toLowerCase()\n const documentHasLabel = (document: DocumentEntity) => document.labels.map(toLowerCase).includes(label.toLowerCase())\n const hasAnyDocumentWithLabel = documents.some(documentHasLabel)\n\n const selectedTops = getSelectedTops(this.$store)\n const hasLabelFilter = selectedTops.some(top => top.name === \"predefined.Labels\" && top.selectedValue === label)\n\n if (!hasAnyDocumentWithLabel && hasLabelFilter) {\n this.closeFilter(label)\n }\n }\n\n private closeFilter(label: string) {\n const newSelectedTops = getSelectedTops(this.$store).filter(activeFilter => activeFilter.selectedValue !== label)\n setSelectedTops(this.$store, newSelectedTops)\n this.$emit(\"closeLabelsMenu\")\n this.$emit(\"refresh-documents\")\n }\n\n private listJournalAs(list: \"WHITELIST\" | \"BLACKLIST\" | \"NONE\") {\n updateBWJournal(this.$store, {journal: this.document.journal!!, list})\n }\n\n private async addDocumentLabel() {\n const label = this.newLabel.trim()\n if (label) {\n this.newLabel = \"\"\n const {document, investigationType} = this\n this.$emit(\"closeLabelsMenu\")\n await addDocumentLabel(this.$store, {document, label, investigationType})\n await fetchTopLabels(this.$store)\n }\n }\n\n private openLabelsMenu(labelsMenuOpenerButton: HTMLElement) {\n if (this.isEditable) {\n this.$emit(\"openLabelsMenu\", labelsMenuOpenerButton)\n Vue.nextTick(() => {\n const labelText = this.$refs.labelText as HTMLInputElement\n labelText.focus()\n })\n }\n }\n\n private openJournalColorMenu(button: HTMLElement) {\n this.$nextTick(() => this.$emit(\"openJournalColorMenu\", button))\n }\n\n private openLabelMenu(button: HTMLElement, label: string) {\n this.labelContext = label\n this.$nextTick(() => this.$emit(\"openLabelMenu\", button))\n }\n\n private renameLabel() {\n if (this.labelContext !== \"\") {\n // @ts-ignore\n (this.$refs.renameLabelDialog as RenameLabelDialog).open({\n label: this.labelContext,\n investigationType: this.investigationType,\n labelType: \"Document\"\n })\n this.$emit(\"closeLabelMenu\")\n }\n }\n\n private deleteLabel() {\n if (this.labelContext !== \"\") {\n openConfirmationDialog({\n message: `Are you sure you want to delete label \"${this.labelContext}\"?
This label will be removed from any document it was associated with.`,\n title: \"Delete Label\",\n okText: \"Delete Label\",\n onOk: () => this.performDeleteLabel(),\n showCancel: true\n })\n this.$emit(\"closeLabelMenu\")\n }\n }\n\n private async performDeleteLabel() {\n const label = this.labelContext!!\n const {investigationType} = this\n await deleteDocumentLabel(this.$store, {label, investigationType})\n this.closeFilter(label)\n }\n\n @Watch(\"documentMarkups\")\n private updateMarkups() {\n if (this.isEditable) {\n const markups = this.documentMarkups\n if (markups) {\n this.document.abstract = markups.abstract\n this.document.title = markups.title\n this.document.keywords = markups.keywords\n this.document.terms = markups.terms\n this.document.snippets = markups.snippets\n }\n }\n }\n\n private toggleExpansion() {\n if (this.viewModeLevel !== 4) {\n this.expanded = !this.expanded\n }\n }\n\n private toggleShowAllAuthors() {\n this.isShowingAllAuthors = !this.isShowingAllAuthors\n }\n\n private setDocumentTouched() {\n if (!this.document.touched && !this.isInPersonProfile) {\n this.$emit(\"touched-changed\")\n }\n }\n\n private formatDate(date?: Moment, precision?: string): string {\n if (date) {\n if (!precision || precision === \"Year\") {\n return date.format(\"YYYY\")\n }\n if (precision === \"MonthYear\") {\n return date.format(\"MMM YYYY\")\n }\n if (precision === \"DayMonthYear\") {\n return date.format(\"DD MMM YYYY\")\n }\n\n return date.format(\"YYYY\")\n }\n\n return \"\"\n }\n\n private async textSelected(text: Optional, boundingRect: DOMRect, element: HTMLElement, selection: Selection) {\n if (!this.isInPersonProfile) {\n const documentId = this.document.id\n const sentence = getSentence(element, selection)\n await showTermPopupMenu(this.$store, {term: text, termElement: element, boundingRect, showAddTerm: true, showAddPenalizedTerm: true, investigationType: this.investigationType, documentId, sentence, showAddObservation: true})\n }\n }\n\n private async termClicked(term: string) {\n const termElements = this.$refs.terms as HTMLElement[]\n const termElement = termElements.filter(element => element.innerText === term)[0]\n const documentId = this.document.id\n await showTermPopupMenu(this.$store, {term, termElement, showAddTerm: true, showAddPenalizedTerm: true, investigationType: this.investigationType, documentId, showAddObservation: true})\n }\n\n private markText(text: MarkedUpText): string {\n const marker = new TextMarkerService()\n const groupNames = Array.from(Array(20).keys(), i => this.isInPersonProfile ? \"\" : `group-${i + 1}-text`)\n const entitiesNames = Array.from(Array(10).keys(), i => this.isInPersonProfile ? \"\" : `entities-${i + 22}-text`)\n return marker.markText(text, [\"filter-highlighted-text\", ...groupNames, ...entitiesNames])\n }\n\n private removeNewlines(text: string): string {\n // leave the newlines only in texts that don't contain HTML tags\n return (text.indexOf(\"

\") < 0) ? text : text\n .replace(\"\\n\", \" \")\n .replace(RegExp(\"()\\\\s+?(<\\\\S+?>)\", \"g\"), \"$1$2\")\n }\n\n private selectAuthor(author: InvestigationAuthor) {\n const person: PersonEntity = {id: author.id, name: author.name, relevancy: \"Neutral\", documentsCount: 0, filteredOut: false}\n setPersonForRightPaneSummary(this.$store, person)\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DocumentItem.vue?vue&type=template&id=2eb4c9eb&scoped=true&\"\nimport script from \"./DocumentItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./DocumentItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DocumentItem.vue?vue&type=style&index=0&id=2eb4c9eb&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 \"2eb4c9eb\",\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',{staticClass:\"graph-image\"},[(_vm.dataUrl)?_c('img',{attrs:{\"src\":_vm.dataUrl}}):_vm._e(),(_vm.imageId)?_c('div',{staticClass:\"in-report\"},[_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.imageLoaded),expression:\"imageLoaded\"}],attrs:{\"src\":_vm.imageUrl},on:{\"load\":function($event){_vm.imageLoaded = true},\"error\":function($event){_vm.imageLoaded = false}}}),(!_vm.imageLoaded)?_c('img',{staticClass:\"loading\",attrs:{\"src\":require(\"../../../assets/images/loading-icon-not-animated.png\"),\"width\":\"40\",\"height\":\"40\"}}):_vm._e()]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {Prop} from \"vue-property-decorator\"\n\n@Component\nexport default class GraphImage extends Vue {\n\n @Prop({default: null})\n private dataUrl!: string | null\n\n @Prop({default: null})\n private imageId!: string | null\n\n private imageLoaded: boolean = false\n\n private get imageUrl() {\n return `/api/images?imageId=${this.imageId}`\n }\n}\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GraphImage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GraphImage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GraphImage.vue?vue&type=template&id=009d1bc0&scoped=true&\"\nimport script from \"./GraphImage.vue?vue&type=script&lang=ts&\"\nexport * from \"./GraphImage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GraphImage.vue?vue&type=style&index=0&id=009d1bc0&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"009d1bc0\",\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 Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {Prop} from \"vue-property-decorator\"\nimport AuthorSummaryPane from \"@/views/investigation/panes/AuthorSummaryPane.vue\"\nimport {DocumentEntity, DocumentObservationInfo, GraphObservationInfo, ObservationInfo, ObservationType, PersonObservationInfo, PersonSummaryEntity} from \"@/types/investigations\"\nimport {ObservationEntity} from \"@/store/investigation/observation-module\"\nimport DocumentItem from \"@/views/investigation/panes/DocumentItem.vue\"\nimport {getDocuments} from \"@/store/investigation/documents-module\"\nimport moment from \"moment\"\nimport GraphImage from \"@/views/investigation/graphs/GraphImage.vue\"\n\n@Component({\n components: {GraphImage, DocumentItem, AuthorSummaryPane}\n})\nexport default class ReferencedEntityPreview extends Vue {\n @Prop()\n // @ts-ignore\n private observation: ObservationEntity\n\n @Prop()\n // @ts-ignore\n private type: ObservationType\n\n @Prop()\n // @ts-ignore\n private referencedEntity: string\n\n @Prop()\n private scroll!: boolean\n\n private get imageId(): string | null {\n return this.info ? (this.info as PersonObservationInfo).imageId : null\n }\n\n private get summary(): PersonSummaryEntity | null {\n return this.info ? (this.info as PersonObservationInfo).summary : null\n }\n\n private get imageKey(): string | null {\n return this.info ? (this.info as GraphObservationInfo).imageKey : null\n }\n\n private get info(): ObservationInfo | undefined {\n if (!this.observation) {\n return undefined\n }\n return this.observation.info\n }\n\n private get document(): DocumentEntity {\n if (this.observation && this.observation.type === \"Document\") {\n const documentObservationInfo = {...this.observation.info!} as DocumentObservationInfo\n if (documentObservationInfo.date) {\n documentObservationInfo.date = moment(documentObservationInfo.date)\n }\n return documentObservationInfo as unknown as DocumentEntity\n }\n const documents = getDocuments(this.$store)\n return documents.find(document => document.id === this.referencedEntity)!\n }\n\n private get graphImage(): GraphObservationInfo | null {\n if (this.observation && this.observation.type === \"Graph\") {\n return this.observation.info as GraphObservationInfo\n }\n return null\n }\n\n\n private get previewStyle() {\n const {scroll} = this\n return {\n border: scroll ? \"1px solid #E7E7E7\" : \"0\",\n padding: scroll ? (this.type === \"Graph\" ? \"0\" : \"1rem\") : \"0\",\n \"white-space\": \"pre-wrap\"\n }\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReferencedEntityPreview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReferencedEntityPreview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReferencedEntityPreview.vue?vue&type=template&id=0354e7e7&scoped=true&\"\nimport script from \"./ReferencedEntityPreview.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReferencedEntityPreview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReferencedEntityPreview.vue?vue&type=style&index=0&id=0354e7e7&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 \"0354e7e7\",\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\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport KendoEditorWrapper from \"@/components/KendoEditorWrapper.vue\"\nimport {getInvestigation} from \"@/store/investigation/investigation-module\"\nimport {\n addObservation,\n editObservation,\n getObservations, getObservationSections,\n ObservationEntity,\n ObservationSectionEntity\n} from \"@/store/investigation/observation-module\"\nimport {Prop, Watch} from \"vue-property-decorator\"\nimport ReferencedEntityPreview from \"@/views/investigation/previews/ReferencedEntityPreview.vue\"\nimport {ObservationType} from \"@/types/investigations\"\nimport GenericDialogNew, {createDialogMountingPoint} from \"@/components/GenericDialogNew.vue\"\nimport UploadImagePane from \"@/components/UploadImagePane.vue\"\nimport {ImageCropData} from \"@/api/investigation-service\"\nimport {PermissionsMixin} from \"@/store/user-mixin\"\n\nexport function openCreateObservationDialog(parent: Vue, options: CreateObservationDialogOptions) {\n new (Vue.extend(CreateObservationDialog))({parent, store: parent.$store, router: parent.$router, propsData: {options}}).$mount(createDialogMountingPoint())\n}\n\nexport class CreateObservationDialogOptions {\n public type!: ObservationType\n public observation?: ObservationEntity\n public referencedEntity?: string\n public observationBody?: string\n public observationTitle?: string\n public allowImageUpload?: boolean = false\n}\n\n@Component({\n components: {UploadImagePane, GenericDialogNew, KendoEditorWrapper, ReferencedEntityPreview}\n})\nexport default class CreateObservationDialog extends mixins(Vue, PermissionsMixin) {\n\n @Prop()\n private options!: CreateObservationDialogOptions\n\n private pages: string[] = [\"Details\"]\n private currentPage: string = \"Details\"\n private title: string = \"\"\n private body: string = \"\"\n private imageId: string | null = null\n private imageCropData: ImageCropData | null = null\n private selectedSection: ObservationSectionEntity | null = null\n\n private availableSections: ObservationSectionEntity[] = []\n\n\n public async mounted() {\n if (this.options.allowImageUpload) {\n this.pages.push(\"Image\")\n }\n\n if (this.options.observation) {\n this.title = this.options.observation.title\n this.body = this.options.observation.observation\n this.imageId = this.options.observation.imageId\n }\n if (this.options.observationBody) {\n this.body = this.options.observationBody\n }\n if (this.options.observationTitle) {\n this.title = this.options.observationTitle\n }\n\n this.availableSections = getObservationSections(this.$store)\n this.selectedSection = this.availableSections.find(x => x.id === this.options.observation?.section) || null\n\n this.$nextTick(() => {\n const title = this.$refs.title as HTMLInputElement\n title.focus()\n })\n }\n\n\n @Watch(\"imageCropData\")\n private imageFileWatcher() {\n if (!this.imageCropData) {\n this.imageId = null\n }\n }\n\n\n private close() {\n (this.$refs.genericDialog as GenericDialogNew).close()\n }\n\n\n private save() {\n if (this.title) {\n const observations = getObservations(this.$store)\n const body = this.trimBody(this.body)\n const imageId = this.imageId\n const observation: ObservationEntity = this.options.observation ?\n {\n ...this.options.observation,\n observation: body,\n title: this.title.trim(),\n section: this.selectedSection?.id || null,\n imageId\n }\n :\n {\n observation: body,\n title: this.title.trim(),\n referencedObject: this.options.referencedEntity,\n section: this.selectedSection?.id || null,\n ordinal: Math.max(...observations.filter(o => o.section === null).map(it => it.ordinal)) + 1,\n imageId\n }\n\n const investigation = getInvestigation(this.$store)!!\n const {investigationType} = investigation\n const observationType = this.options.type\n const imageCropData = this.imageCropData ? this.imageCropData!! : undefined\n const observationToSend = {observation, investigationType, observationType, imageCropData}\n this.options.observation ?\n editObservation(this.$store, observationToSend) :\n addObservation(this.$store, observationToSend)\n\n this.close()\n }\n }\n\n private trimBody(body: string): string {\n if (!this.isFacultyWorksUser) {\n return body\n }\n if (!body) {\n return \"\"\n }\n // single tags are problematic with the current abstract slicing algorithm\n const re2 = RegExp(\"<\\\\s*/?\\\\s*(br|p)\\\\s*/?\\\\s*>\", \"gi\")\n return body\n .replace(re2, \"\\n\")\n .split(/(?:\\n| )+/gim)\n .filter(x => x.length > 0)\n .map(x => `

${x.trim()}

`).join(\"\")\n }\n\n private setPersonNameInTitle(name: string) {\n this.title = name\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateObservationDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateObservationDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateObservationDialog.vue?vue&type=template&id=6cfb2447&scoped=true&\"\nimport script from \"./CreateObservationDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateObservationDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CreateObservationDialog.vue?vue&type=style&index=0&id=6cfb2447&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 \"6cfb2447\",\n null\n \n)\n\nexport default component.exports","import axios from \"axios\"\nimport { MentionedEntityType } from \"@/types/investigations\"\n\n\nexport default {\n\n async removeEntities(investigationId: string, entities: { [name: string]: MentionedEntityType }) {\n await axios.post(`/api/investigations/${investigationId}/entities/remove`, entities)\n },\n\n async restoreAll(investigationId: string) {\n await axios.post(`/api/investigations/${investigationId}/entities/restore-all`)\n },\n\n async mergeEntities(investigationId: string, entityType: MentionedEntityType, names: string[]) {\n await axios.post(`/api/investigations/${investigationId}/entities/${pluralize(entityType)}/merge`, names)\n }\n}\n\n\nfunction pluralize(entityType: MentionedEntityType): string {\n return `${entityType.toLowerCase()}s`\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('GenericDialogNew',{ref:\"genericDialog\",attrs:{\"modal\":true},on:{\"enterPressed\":function($event){return _vm.ok()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.options.title))])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"dialog-body-container\"},[_c('div',[(!_vm.file)?_c('div',{staticClass:\"drag-target\",class:{'over': _vm.dragOver},on:{\"drop\":function($event){$event.preventDefault();return _vm.dragFile.apply(null, arguments)},\"dragover\":function($event){$event.preventDefault();_vm.dragOver = true},\"dragleave\":function($event){$event.preventDefault();_vm.dragOver = false}}},[_c('div',{staticClass:\"text\"},[_vm._v(\"Drag and drop file here / click to select\")]),_c('input',{attrs:{\"id\":\"fileUploadField\",\"type\":\"file\"},on:{\"change\":function($event){return _vm.fileSelected($event)}}}),_c('label',{attrs:{\"for\":\"fileUploadField\"}})]):_c('div',{staticClass:\"file-container\"},[_c('span',{staticClass:\"file-name\"},[_vm._v(_vm._s(_vm.fileName))])])]),_c('div',{staticClass:\"buttons\"},[_c('div',{staticClass:\"left\"},[(_vm.file)?_c('button',{staticClass:\"clear\",on:{\"click\":_vm.clear}},[_vm._v(\"Clear\")]):_vm._e()]),_c('div',{staticClass:\"right\"},[_c('button',{staticClass:\"cancel\",on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]),(_vm.okButtonExists)?_c('button',{staticClass:\"ok\",on:{\"click\":_vm.ok}},[_vm._v(\"Upload\")]):_vm._e()])])])]},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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {Prop} from \"vue-property-decorator\"\nimport {getInvestigation} from \"@/store/investigation/investigation-module\"\nimport GenericDialogNew, {createDialogMountingPoint} from \"@/components/GenericDialogNew.vue\"\n\nexport function openUploadDialog(options: UploadFileDialogOptions) {\n const dialogOptions = {title: \"Upload File\", ...options}\n new (Vue.extend(UploadFileDialog))({propsData: {options: dialogOptions}}).$mount(createDialogMountingPoint())\n}\n\nexport interface UploadFileDialogOptions {\n readonly title?: string\n readonly handler: (file: File) => void\n}\n\n@Component({\n components: {GenericDialogNew}\n})\nexport default class UploadFileDialog extends Vue {\n\n @Prop()\n private options!: UploadFileDialogOptions\n\n private dragOver: boolean = false\n private file: File | null = null\n\n public mount() {\n this.file = null\n }\n\n private get investigation() {\n return getInvestigation(this.$store)!\n }\n\n private get okButtonExists() {\n return this.file\n }\n\n private get fileName() {\n return this.file!.name\n }\n\n private async ok() {\n if (this.file) {\n this.options.handler(this.file)\n }\n\n this.close()\n }\n\n private close() {\n (this.$refs.genericDialog as GenericDialogNew).close()\n }\n\n private clear() {\n this.file = null\n }\n\n private fileSelected(e: Event) {\n const input = e.target as HTMLInputElement\n if (input.files) {\n const file = input.files[0]\n this.setFile(file)\n }\n }\n\n private dragFile(e: DragEvent) {\n const droppedFiles = e.dataTransfer!.files\n if (!droppedFiles) {\n return\n }\n ([...droppedFiles]).forEach(file => {\n this.setFile(file)\n })\n }\n\n private setFile(file: File) {\n this.file = file\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadFileDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadFileDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UploadFileDialog.vue?vue&type=template&id=d9773dc2&scoped=true&\"\nimport script from \"./UploadFileDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./UploadFileDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UploadFileDialog.vue?vue&type=style&index=0&id=d9773dc2&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 \"d9773dc2\",\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('GenericDialogNew',{ref:\"genericDialog\",attrs:{\"modal\":true},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"Filter by Document URLs\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('section',{staticClass:\"dialog-content\"},[_c('p',[_vm._v(\"Filter by URLs. These will be fuzzy-matched with the document URLs.\")]),_c('p',[_vm._v(\"Unmatched URLs will be written to the server log.\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.urls),expression:\"urls\"}],attrs:{\"placeholder\":\"A newline-separated list of URLs. Valid URLs must start with http(s)://\"},domProps:{\"value\":(_vm.urls)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.urls=$event.target.value}}})]),_c('section',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button save\",attrs:{\"disabled\":_vm.urls.trim().length === 0},on:{\"click\":function($event){return _vm.apply()}}},[_vm._v(\"Filter\")])])]},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\nimport GenericDialogNew, {createDialogMountingPoint} from \"@/components/GenericDialogNew.vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport Vue from \"vue\"\nimport {fetchAllData, setFilterToSpecificUrls} from \"@/store/investigation/investigation-module\"\n\nexport function createFilterByUrlsDialog(parent: Vue) {\n const params = {parent, store: parent.$store, router: parent.$router, propsData: {}}\n new (Vue.extend(FilterByUrlsDialog))(params).$mount(createDialogMountingPoint())\n}\n\n@Component({ components: {GenericDialogNew} })\nexport default class FilterByUrlsDialog extends mixins(Vue) {\n private urls: string = \"\"\n\n private close() {\n (this.$refs.genericDialog as GenericDialogNew).close()\n }\n\n private apply() {\n const urlList = this.urls.split('\\n').map(x => x.trim())\n setFilterToSpecificUrls(this.$store, urlList)\n this.close()\n fetchAllData(this.$store)\n }\n}\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterByUrlsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterByUrlsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FilterByUrlsDialog.vue?vue&type=template&id=027b1b61&scoped=true&\"\nimport script from \"./FilterByUrlsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilterByUrlsDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FilterByUrlsDialog.vue?vue&type=style&index=0&id=027b1b61&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 \"027b1b61\",\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\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport {\n areAlertsEnabled,\n getUserGuideUrl,\n getVersion,\n isReportEnabled,\n isShowingHebrewTutorials,\n isSupportBatchInvestigations\n} from \"@/store/environment-module\"\nimport {\n fetchAllData,\n fetchGraphData,\n fetchInvestigationHtml,\n fetchPersonInvestigationExport,\n fetchTopicInvestigationExport,\n getAlertsEnabled,\n getAvailableDocumentIds,\n getDisambiguatePersonName,\n getInvestigation,\n getSpecForStore,\n setFilterByResearchers,\n setFilterToDuplicates, setFilterToMissingDate,\n setFilterToMissingVolume,\n setFilterToUnaffiliated,\n setFilterToUnknownPublishers,\n setFreeTextFilter,\n setSelectedTops,\n showOnlyMyPublications,\n updateAlertsEnabled,\n updateTitle\n} from \"@/store/investigation/investigation-module\"\nimport UserMenu from \"@/components/UserMenu.vue\"\nimport {Watch} from \"vue-property-decorator\"\nimport AlertsDialog from \"@/views/investigation/dialogs/AlertsDialog.vue\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport HarvestDialog from \"@/views/investigation/dialogs/HarvestDialog.vue\"\nimport HarvestByDoiDialog from \"@/views/investigation/dialogs/HarvestByDoiDialog.vue\"\nimport ResearcherHarvestDialog from \"@/views/investigation/dialogs/ResearcherHarvestDialog.vue\"\nimport {\n createBatchAccuracyReport,\n createBatchPersonInvestigations,\n deleteAllPendingInvestigations,\n fetchAllInvestigations,\n isShowAllInvestigations,\n restartFailedInvestigations,\n toggleShowAllInvestigations\n} from \"@/store/investigations-module\"\nimport {InvestigationEntity, SelectedTop} from \"@/types/investigations\"\nimport moment from \"moment\"\nimport investigationService from \"../../api/investigation-service\"\nimport InvestigationConfigurationDialog from \"@/views/investigation/dialogs/InvestigationConfigurationDialog.vue\"\nimport {downloadBlob} from \"@/utils/utils\"\nimport {openConfirmationDialog} from \"@/views/investigation/dialogs/ConfirmationDialog.vue\"\nimport {getGraphType} from \"@/store/investigation/graph-module\"\nimport {openCreateObservationDialog} from \"@/views/investigation/dialogs/CreateObservationDialog.vue\"\nimport investigationEntityService from \"../../api/investigation-entity-service\"\nimport adminService from \"@/api/admin-service\"\nimport {openMessageDialog} from \"@/components/MessageDialog.vue\"\nimport {openUploadDialog} from \"@/views/investigation/dialogs/UploadFileDialog.vue\"\nimport {openEditDocumentDialog} from \"@/views/investigation/dialogs/EditDocumentDialog.vue\"\nimport {\n createDocument,\n updateDocumentAbstractImage,\n updateDocumentCoverImage,\n updateFullTextFile\n} from \"@/store/investigation/documents-module\"\nimport {PermissionsMixin} from \"@/store/user-mixin\"\nimport {InvestigationMixin} from \"@/store/investigation-mixin\"\nimport investigationsService from \"@/api/investigations-service\"\nimport {setDateFilterYears} from \"@/store/investigation/date-filter-module\"\nimport {getInvestigationCreationType} from \"@/types/new-investigation\"\nimport {createFilterByUrlsDialog} from '@/views/investigation/dialogs/FilterByUrlsDialog.vue'\n\n\n@Component({\n components: {\n InvestigationConfigurationDialog,\n PopupMenu,\n UserMenu,\n AlertsDialog,\n HarvestDialog,\n HarvestByDoiDialog,\n ResearcherHarvestDialog\n }\n})\nexport default class HeaderBar extends mixins(Vue, PermissionsMixin, InvestigationMixin) {\n\n private static convertBase64ToBlob(base64: string) {\n const decodedData = window.atob(base64)\n const uInt8Array = new Uint8Array(decodedData.length)\n for (let i = 0; i < decodedData.length; ++i) {\n uInt8Array[i] = decodedData.charCodeAt(i)\n }\n return new Blob([uInt8Array])\n }\n\n private title: string = \"\"\n private oldTitle: string = \"\"\n private isEditing: boolean = false\n private supportBatchInvestigations = this.$wrap(isSupportBatchInvestigations)\n\n private mounted() {\n if (this.isInReviewProfile) {\n this.$nextTick(() => {\n const menuRef = this.$refs.menuRef as HTMLElement\n setTimeout(() => this.$emit(\"openReviewProfileMenu\", menuRef, false, false), 1000)\n })\n }\n }\n\n get showHebrewTutorials() {\n return isShowingHebrewTutorials(this.$store)\n }\n\n get isInInvestigationCreationPage(): boolean {\n return this.$route.name === \"createInvestigation\"\n }\n\n get isInvestigating(): boolean {\n return (this.isInTopicInvestigation || this.isInPersonInvestigation)\n }\n\n get headerClass() {\n return { profile: this.isInPersonProfile, facultyworks: this.isFacultyWorksUser }\n }\n\n get selectInvestigationsText() {\n return this.isShowingAllInvestigations() ? \"Show Only My Investigations\" : \"Show All Investigations\"\n }\n\n private get isInDisambiguate(): boolean {\n return this.$route.fullPath !== undefined && this.$route.fullPath.includes(\"/disambiguate\")\n }\n\n private get isReportEnabled(): boolean {\n return isReportEnabled(this.$store)\n }\n\n private get isInAdminPage(): boolean {\n if (!this.$route.path) {\n return false\n }\n return this.$route.path.includes(\"/admin\")\n }\n\n private get investigationTitle(): string {\n if (this.isInDisambiguate) {\n return getDisambiguatePersonName(this.$store)!!\n }\n\n if ((this.isInvestigating && this.investigation !== null) || this.isInPersonProfile) {\n return (this.investigation as unknown as InvestigationEntity).title\n }\n\n return \"\"\n }\n\n\n private get version(): string {\n return getVersion(this.$store)\n }\n\n private get userGuideUrl(): string {\n return getUserGuideUrl(this.$store)\n }\n\n private get followText() {\n return this.alertsEnabled ? \"Cancel Alerts\" : \"Alerts\"\n }\n\n private get followTitle() {\n return this.alertsEnabled ? \"Cancel alerts for investigation\" : \"Create alerts for investigation\"\n }\n\n private get alertsEnabled() {\n return getAlertsEnabled(this.$store)\n }\n\n private get alertsFeatureIsOn() {\n return areAlertsEnabled(this.$store)\n }\n\n private async mergePersons() {\n const investigation = this.investigation!!\n await investigationService.merge(investigation.id, investigation.investigationType)\n }\n\n private async undeleteAuthors() {\n openConfirmationDialog({\n message: `You are about to bring back all removed authors. Are you sure?`,\n title: \"Bring Back All Removed Authors\",\n okText: \"Bring Back\",\n onOk: () => this.performAuthorUndelete(),\n showCancel: true\n })\n }\n\n\n private async restoreEntities() {\n // @ts-ignore\n openConfirmationDialog({\n message: `You are about to bring back all removed entities. Are you sure?`,\n title: \"Bring Back All Removed Entities\",\n okText: \"Bring Back\",\n onOk: () => this.performRestoreEntities(),\n showCancel: true\n })\n }\n\n private async performAuthorUndelete() {\n const investigation = this.investigation!\n await investigationService.undelete(investigation.id, investigation.investigationType)\n getGraphType(this.$store) === null ? await fetchAllData(this.$store) : await fetchGraphData(this.$store)\n }\n\n\n private async performRestoreEntities() {\n const investigation = this.investigation!\n await investigationEntityService.restoreAll(investigation.id)\n getGraphType(this.$store) === null ? await fetchAllData(this.$store) : await fetchGraphData(this.$store)\n }\n\n private async authorsGraph() {\n const id = this.investigation!.id\n const xml = await investigationService.getAuthorsGraph(id, this.investigation!.investigationType, getSpecForStore(this.$store))\n const url = window.URL.createObjectURL(new Blob([xml.data]))\n const link = document.createElement(\"a\")\n link.href = url\n link.setAttribute(\"download\", `cytoscape-export-${id}.xml`)\n document.body.appendChild(link)\n link.click()\n }\n\n private async termsGraph() {\n const id = this.investigation!.id\n const xml = await investigationService.getXmlTermsGraph(id, this.investigation!.investigationType, getSpecForStore(this.$store))\n const url = window.URL.createObjectURL(new Blob([xml.data]))\n const link = document.createElement(\"a\")\n link.href = url\n link.setAttribute(\"download\", `cytoscape-export-${id}.xml`)\n document.body.appendChild(link)\n link.click()\n }\n\n @Watch(\"investigationTitle\")\n private updateTitle() {\n this.title = this.investigationTitle\n this.$nextTick(() => {\n if (!this.isInDisambiguate) {\n document.title = this.title ? this.title : \"Socrates\"\n }\n })\n }\n\n private editTitle() {\n if (!this.isInInvestigationsPage && !this.isInPersonProfile && !this.isInDisambiguate && !this.supportBatchInvestigations()) {\n this.oldTitle = this.title\n this.isEditing = true\n this.$nextTick(() => {\n const editor = this.$refs.titleEditor as HTMLElement\n editor.focus()\n })\n }\n }\n\n private endEditTitle() {\n this.isEditing = false\n if (!this.isInInvestigationsPage) {\n updateTitle(this.$store, this.title)\n }\n }\n\n private cancelEditTitle() {\n this.title = this.oldTitle\n this.endEditTitle()\n }\n\n private openHeaderProcessMenu() {\n const processButton = this.$refs.process as HTMLElement\n this.$emit(\"openHeaderProcessMenu\", processButton)\n }\n\n private openFacultyworksMenu() {\n const facultyworksMenu = this.$refs.facultyworksMenu as HTMLElement\n this.$emit(\"openFacultyworksMenu\", facultyworksMenu)\n }\n\n private async toggleAlerts() {\n if (!this.alertsEnabled) {\n this.openAlertsDialog()\n } else {\n await updateAlertsEnabled(this.$store, false)\n }\n }\n\n private async openAlertsDialog() {\n // @ts-ignore\n (this.$refs.alertsDialog as AlertsDialog).open()\n }\n\n private openHarvestDialog() {\n // @ts-ignore\n (this.$refs.harvestDialog as HarvestDialog).open()\n }\n\n private openHarvestAuthorsDialog() {\n (this.$refs.researcherHarvestDialog as ResearcherHarvestDialog).open({\n title: \"Add Authors to Investigation\",\n searchStringLabel: \"Author Names:\",\n placeholder: \"Author names, separated by newlines\"\n })\n }\n\n private harvestResultSetUrls() {\n const investigation = getInvestigation(this.$store)!!\n openConfirmationDialog({\n message: `Are you sure you want to re-harvest the current set of documents?`,\n title: \"Re-Harvest Documents\",\n okText: \"Yep\",\n onOk: () => investigationService.createHarvestByDocs(\n investigation.id, investigation.investigationType, getAvailableDocumentIds(this.$store)),\n showCancel: true\n })\n }\n\n private openHarvestByDoiDialog() {\n // @ts-ignore\n (this.$refs.harvestByDoiDialog as HarvestByDoiDialog).open()\n }\n\n private openInvestigationConfigurationDialog() {\n // @ts-ignore\n (this.$refs.investigationConfigurationDialog as InvestigationConfigurationDialog).open()\n }\n\n private async exportToExcel() {\n const investigation = this.investigation!\n const blob = await investigationService.getPersonProfileExcel(investigation.id, getSpecForStore(this.$store), investigation.investigationType)\n const fileName = `${moment().format(\"YYYY_MM_DD_HH_mm_ss\")} - ${this.title}.xlsx`\n downloadBlob(blob, fileName)\n }\n\n private async exportPublications() {\n const investigation = this.investigation!\n const blob = await investigationService.getPublicationsExcel(investigation.id, getSpecForStore(this.$store), investigation.investigationType)\n const fileName = `${moment().format(\"YYYYMMDDTHHmmss\")} - ${this.title}.xlsx`\n downloadBlob(blob, fileName)\n }\n\n private isShowingAllInvestigations() {\n return isShowAllInvestigations(this.$store)\n }\n\n private async toggleShowAllInvestigations() {\n toggleShowAllInvestigations(this.$store)\n await fetchAllInvestigations(this.$store, true)\n }\n\n private isShowProcessMenu() {\n if (this.isInInvestigationCreationPage || this.isInReviewProfile) {\n return false\n }\n\n if (!this.isInInvestigationsPage) {\n return true\n }\n\n return this.isAdminUser || this.supportBatchInvestigations()\n }\n\n private createObservation() {\n openCreateObservationDialog(this, {\n type: \"Investigation\",\n allowImageUpload: true\n })\n }\n\n private async downloadTopicExport() {\n openMessageDialog({title: \"Export to Excel\", message: \"Export to Excel started, this might take a short while.\"})\n\n const blob = await fetchTopicInvestigationExport(this.$store, this.investigation!.id)\n const fileName = `${moment().format(\"YYYY_MM_DD_HH_mm_ss\")} - ${this.investigationTitle}.xlsx`\n downloadBlob(blob, fileName)\n }\n\n private async downloadPersonExport() {\n openMessageDialog({title: \"Export to Excel\", message: \"Export to Excel started, this might take a short while.\"})\n\n const blob = await fetchPersonInvestigationExport(this.$store, this.investigation!.id)\n const fileName = `${moment().format(\"YYYYMMDDTHHmmss\")} - ${this.investigationTitle}.xlsx`\n downloadBlob(blob, fileName)\n }\n\n private async downloadHtml(themeName: string) {\n let mainPart = this.investigationTitle.replace(RegExp(\"(.*)\\,.*\"), \"$1\")\n if (mainPart === this.investigationTitle) {\n // backward compatibility (names starting with the institute and faculty.works)\n mainPart = this.investigationTitle.replace(RegExp(\".*?\\\\s*[/-]\\\\s*(.*)\"), \"$1\")\n }\n const fname = mainPart.replace(RegExp(\"\\\\W+\", \"g\"), \".\").toLowerCase()\n const data = await fetchInvestigationHtml(this.$store,\n {id: this.investigation!.id, theme: themeName, filename: fname})\n if (data.base64File !== null) {\n const longFilename = `${moment().format(\"YYYYMMDDTHHmmss\")} ${fname}.zip`\n downloadBlob(HeaderBar.convertBase64ToBlob(data.base64File!), longFilename)\n } else if (data.numOfDuplicates != null) {\n openConfirmationDialog({\n message: `Found ${data.numOfDuplicates} duplicates; They must be resolved for generate to succeed.`,\n title: \"Page Generation Halted\",\n okText: \"Show Duplicates\",\n cancelText: \"Close\",\n onOk: () => this.filterToAcceptedDuplicates(),\n showCancel: true\n })\n } else {\n openMessageDialog({\n title: \"Page Generation Failed\",\n message: data.failedTitle || \"No message provided\"\n })\n }\n }\n\n private openHeaderHelpMenu() {\n const helpButton = this.$refs.help as HTMLElement\n this.$emit(\"openHeaderHelpMenu\", helpButton)\n }\n\n private openUserGuide() {\n window.open(this.userGuideUrl)\n }\n\n private openVideoTutorialHebrew() {\n window.open(\"https://www.youtube.com/playlist?list=PLevDEGwGyhV8pKXwqrRQ8I6aNhIFtQX_s\")\n }\n\n private openVideoTutorialEnglish() {\n window.open(\"https://www.youtube.com/playlist?list=PLevDEGwGyhV8x-qodzxUBN8sMYT7cH2wM\")\n }\n\n private uploadAuthorsFile() {\n openUploadDialog({title: \"Upload Authors File\", handler: (file: File) => {\n createBatchPersonInvestigations(this.$store, file)\n }})\n }\n\n private uploadInvestigationDefinitions() {\n openUploadDialog({title: \"Upload Predefined Investigations File (XLSX / ZIP)\", handler: async (file: File) => {\n try {\n await investigationsService.createInvestigationsWithDefinitions(file)\n openMessageDialog({title: \"Upload Predefined Investigations\", message: \"Investigation(s) created successfully\"})\n } catch (e) {\n openMessageDialog({title: \"Error Parsing File\", message: e, multipleMessages: true})\n }\n }})\n }\n\n private deleteAllPending() {\n openConfirmationDialog({\n message: `You are about to delete all pending investigations. Are you sure?`,\n title: \"Delete All Pending Investigations\",\n okText: \"Delete\",\n onOk: () => deleteAllPendingInvestigations(this.$store),\n showCancel: true\n })\n }\n\n private restartFailed() {\n restartFailedInvestigations(this.$store)\n }\n\n private performClusterDiff() {\n const investigation = this.investigation!\n this.$router.push({path: `/admin/cluster-report/${investigation.id}`, query: {}})\n }\n\n private evaluateAccuracyUsingCvs() {\n openUploadDialog({title: \"Upload Curated Author CV ZIP\", handler: async (file: File) => {\n const s3Key = await createBatchAccuracyReport(this.$store, file)\n openMessageDialog({title: \"Accuracy Report\", message: `Accuracy report will be available in S3 at ${s3Key}`})\n }})\n }\n\n private async generateQualityEstimationReport() {\n const s3Key = await adminService.generateQualityEstimationReport()\n openMessageDialog({title: \"Estimation Report\", message: `Quality estimation report will be available in S3 at ${s3Key}`})\n }\n\n private async generateAuthorFeedbackReport() {\n const s3Key = await adminService.generateAuthorFeedbackReport()\n openMessageDialog({title: \"Author Feedback Report\", message: `Author Feedback report will be available in S3 at ${s3Key}`})\n }\n\n private async showOnlyMyPublications() {\n await showOnlyMyPublications(this.$store)\n }\n\n private async openReviewProfile() {\n const investigation = this.investigation!\n const mainClusterFilter = await investigationService.getMainClusterFilter(investigation.id)\n\n const slashIndex = this.$route.path.lastIndexOf(\"/\")\n window.open(this.$route.fullPath.substring(0, slashIndex) + \"/review_profile/\" + mainClusterFilter.personId, \"_blank\")\n }\n\n private createDocument() {\n openEditDocumentDialog({\n doc: null,\n callback: async (documentType, overwrites, fullTextFile,\n coverImage: { modified: boolean, file: File | null, journalImage: boolean },\n abstractImage: { modified: boolean, file: File | null }\n ) => {\n if (overwrites) {\n const newDocId = await createDocument(this.$store, {documentType, overwrites})\n\n if (coverImage.modified) {\n await updateDocumentCoverImage(this.$store, {id: newDocId, file: coverImage.file, journalImage: coverImage.journalImage})\n }\n if (abstractImage.modified) {\n await updateDocumentAbstractImage(this.$store, {id: newDocId, file: abstractImage.file})\n }\n if (fullTextFile) {\n await updateFullTextFile(this.$store, { id: newDocId, file: fullTextFile })\n }\n }\n }\n })\n }\n\n private openReviewProfileTutorial() {\n window.open(\"https://docs.google.com/presentation/d/e/2PACX-1vSITw8hW3i05tuAnvr3wHrgVO9RvW-lVdJFIfJrKArnv9vz7nVhYpvaZE4NZ3UYCyS_h5kRDQFrBydZ/pub\", \"_blank\")\n }\n\n private async filterByResearchers() {\n setDateFilterYears(this.$store, { start: moment().year() - 1, end: moment().year() })\n setFilterByResearchers(this.$store, true)\n getGraphType(this.$store) === null ? await fetchAllData(this.$store) : await fetchGraphData(this.$store)\n }\n\n private async filterToUnaffiliated() {\n setFilterToUnaffiliated(this.$store, true)\n getGraphType(this.$store) === null ? await fetchAllData(this.$store) : await fetchGraphData(this.$store)\n }\n\n private async filterToUnknownPublishers() {\n setFilterToUnknownPublishers(this.$store, true)\n getGraphType(this.$store) === null ? await fetchAllData(this.$store) : await fetchGraphData(this.$store)\n }\n\n private async filterToMissingVolume() {\n setFilterToMissingVolume(this.$store, true)\n getGraphType(this.$store) === null ? await fetchAllData(this.$store) : await fetchGraphData(this.$store)\n }\n\n private async filterToMissingDate() {\n setFilterToMissingDate(this.$store, true)\n getGraphType(this.$store) === null ? await fetchAllData(this.$store) : await fetchGraphData(this.$store)\n }\n\n private async openFilterByUrlsDialog() {\n createFilterByUrlsDialog(this)\n }\n\n private async filterToDuplicates() {\n setFilterToDuplicates(this.$store, true)\n getGraphType(this.$store) === null ? await fetchAllData(this.$store) : await fetchGraphData(this.$store)\n }\n\n private async filterToAcceptedDuplicates() {\n // clear existing filters\n setDateFilterYears(this.$store, {start: null, end: null})\n setFreeTextFilter(this.$store, null)\n setFilterByResearchers(this.$store, false)\n setFilterToUnaffiliated(this.$store, false)\n setFilterToUnknownPublishers(this.$store, false)\n\n // set the \"accepted\" label and special filter\n const tops = [{name: \"predefined.Labels\", selectedDisplayValue: \"accepted\", selectedValue: \"accepted\"}] as SelectedTop[]\n setSelectedTops(this.$store, tops)\n await this.filterToDuplicates()\n }\n\n private get investigationSubTypeText() {\n return \"Type: \" + (getInvestigationCreationType(this.investigationSubType))!!.title\n }\n\n private get investigationSubTypeColor() {\n return getInvestigationCreationType(this.investigationSubType)!!.color\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeaderBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HeaderBar.vue?vue&type=template&id=7851fde6&scoped=true&\"\nimport script from \"./HeaderBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./HeaderBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HeaderBar.vue?vue&type=style&index=0&id=7851fde6&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 \"7851fde6\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport HeaderBar from \"@/components/header/HeaderBar.vue\"\n\n@Component({\n components: {HeaderBar}\n })\n export default class MainPage extends Vue {\n }\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MainPage.vue?vue&type=template&id=cc173490&scoped=true&\"\nimport script from \"./MainPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./MainPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MainPage.vue?vue&type=style&index=0&id=cc173490&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cc173490\",\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('AuthPageContainer',[(_vm.error)?_c('div',{staticClass:\"error\"},[_c('div',[_vm._v(\"Could not register your account,\")]),_c('div',[_vm._v(\"Please sign up again.\")]),_c('div',{staticClass:\"separator\"}),_c('router-link',{staticClass:\"sign-up-button\",attrs:{\"tag\":\"button\",\"to\":\"/sign-up\"}},[_vm._v(\"Sign Up\")])],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport { createUserAndSignIn } from \"../store/auth-module\"\nimport AuthPageContainer from \"@/components/AuthPageContainer.vue\"\n\n@Component({\n components: { AuthPageContainer }\n})\nexport default class RegisterAccountPage extends Vue {\n\n private createUserAndSignIn = this.$wrap(createUserAndSignIn)\n\n private error: boolean = false\n\n private async mounted() {\n try {\n await this.createUserAndSignIn(this.$route.query[`token`] as string)\n this.$router.push(\"/\")\n } catch (e) {\n this.error = true\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegisterAccountPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegisterAccountPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RegisterAccountPage.vue?vue&type=template&id=52c8f347&scoped=true&\"\nimport script from \"./RegisterAccountPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegisterAccountPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RegisterAccountPage.vue?vue&type=style&index=0&id=52c8f347&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"52c8f347\",\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._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"error-page\"},[_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"background\"}),_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"../assets/images/logo.svg\"),\"alt\":\"SNE Logo\"}}),_c('div',{staticClass:\"title\"},[_vm._v(\"OOPS!\")]),_c('div',{staticClass:\"reason\"},[_vm._v(\"We can't find the page that you're looking for :(\")])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\n\n@Component\nexport default class NotFoundPage extends Vue {\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotFoundPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NotFoundPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NotFoundPage.vue?vue&type=template&id=8c54249c&scoped=true&\"\nimport script from \"./NotFoundPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./NotFoundPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NotFoundPage.vue?vue&type=style&index=0&id=8c54249c&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8c54249c\",\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\"\nimport Vuex, {Store} from \"vuex\"\nimport investigations, {InvestigationsState} from \"@/store/investigations-module\"\nimport auth, {AuthState} from \"@/store/auth-module\"\nimport investigation, {InvestigationState} from \"@/store/investigation/investigation-module\"\nimport environment, {EnvironmentState} from \"@/store/environment-module\"\n\n\nexport interface RootState {\n auth: AuthState\n environment: EnvironmentState\n investigations: InvestigationsState,\n investigation: InvestigationState,\n}\n\nVue.use(Vuex)\n\nexport function buildStore(): Store {\n return new Store({\n modules: {\n auth,\n environment,\n investigations,\n investigation\n }\n })\n}\n\nconst store = buildStore()\nexport default store\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"investigation-page\"},[_c('div',{staticClass:\"investigation-page-content\"},[(_vm.shouldShowParticleLoader)?_c('ParticleLoadingScreen'):_c('div',[(!_vm.isInReviewProfile)?_c('InvestigationHeaderBar'):_vm._e(),(!_vm.isLoadingInvestigation)?_c('router-view',{staticClass:\"view\"}):_vm._e()],1)],1),_c('TermPopupMenu'),_c('NoteDialog')],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:\"investigation-header-bar\"},[_c('nav',[(!_vm.isFacultyWorksUser)?_c('router-link',{staticClass:\"home-link\",attrs:{\"to\":{name: 'investigations'},\"tag\":\"li\",\"title\":\"Go to the list of investigations\"}},[_c('img',{staticClass:\"home\",attrs:{\"alt\":\"Home\",\"src\":require(\"../../assets/images/home.svg\")},on:{\"load\":_vm.routeChanged}})]):_vm._e(),_c('div',{staticClass:\"tab-slider\",style:({'left': (_vm.sliderLeft + \"px\"), 'width': (_vm.sliderWidth + \"px\")})}),_c('ul',{staticClass:\"tabs-container\"},[_vm._l((_vm.tabs),function(tab){return _c('router-link',{key:tab.to,staticClass:\"tab\",attrs:{\"to\":tab.to,\"active-class\":\"active\",\"tag\":\"li\"}},[_c('div',{staticClass:\"tab-text\"},[_vm._v(_vm._s(tab.title))])])}),(_vm.isInDisambiguate)?_c('li',{staticClass:\"back-button\",on:{\"click\":function($event){return _vm.goBack()}}},[_c('span',{staticClass:\"back-button-arrow\"}),_c('span',[_vm._v(\"Back\")])]):_vm._e()],2),(_vm.isFacultyWorksUser && _vm.isInPersonDocuments)?_c('ul',{staticClass:\"fw-workflow\"},[_c('li',[_c('button',{on:{\"click\":_vm.setWorkflowStageFix}},[_vm._v(\" Mark \\\"fix\\\" \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.getNumberOfDocumentsToMarkFix())}})])]),_c('li',{staticClass:\"arrow\"},[_vm._v(\"➡\")]),_c('li',[_c('button',{on:{\"click\":_vm.setWorkflowStageDedup}},[_vm._v(\" De-dup \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.getNumberOfDuplicatesToReview())}})])]),_c('li',{staticClass:\"arrow\"},[_vm._v(\"➡\")]),_c('li',[_c('button',{on:{\"click\":_vm.setWorkflowStageEnrich}},[_vm._v(\" Enrich \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.getNumberOfDocumentsToEnrich())}})])])]):_vm._e()],1),(_vm.showExportToWord() && !_vm.isFacultyWorksUser)?_c('button',{staticClass:\"export-to-word\",on:{\"click\":_vm.exportInvestigation}},[_vm._v(\"Export to Word\")]):_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\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport {Watch} from \"vue-property-decorator\"\nimport {\n fetchAllData,\n fetchAllPersonData,\n getInvestigation,\n getIsInProfile,\n restoreInvestigationState,\n setDisambiguatePersonName,\n setPersonForRightPaneSummary,\n setDisplayedResultsStatus,\n setFilterByResearchers,\n setDocumentsSortBy,\n setFilterToDuplicates,\n setSelectedTops,\n clearFilters,\n getAvailableDocumentIds,\n getDisplayedResultsStatus,\n getFilterByResearchers,\n getFilterToDuplicates,\n getSelectedTops\n} from \"@/store/investigation/investigation-module\"\nimport {setDisambiguationPersonId} from \"@/store/investigation/person-filter-module\"\nimport {isReportEnabled, isShowingTimeline} from \"@/store/environment-module\"\nimport investigationService from \"../../api/investigation-service\"\nimport {downloadBlob} from \"@/utils/utils\"\nimport moment from \"moment\"\nimport {PermissionsMixin} from \"@/store/user-mixin\"\nimport {SelectedTop, DocumentEntity, FacultyWorksWorkflowStage} from \"@/types/investigations\"\nimport {getDocuments} from \"@/store/investigation/documents-module\"\n\ninterface Tab {\n readonly title: string,\n readonly to: string\n}\n\n@Component\nexport default class InvestigationHeaderBar extends mixins(Vue, PermissionsMixin) {\n\n private sliderLeft: number = 0\n private sliderWidth: number = 0\n private workflowStage: FacultyWorksWorkflowStage | null = null\n private selectedTopFix: SelectedTop = {name: \"predefined.Labels\", selectedDisplayValue: \"fix\", selectedValue: \"fix\"}\n private selectedTopAccepted: SelectedTop = {name: \"predefined.Labels\", selectedDisplayValue: \"accepted\", selectedValue: \"accepted\"}\n\n private regularTabs: Tab[] = [\n {title: \"Documents\", to: \"documents\"},\n {title: \"Author Graph\", to: \"author-graph\"}\n ]\n\n private profileTabs: Tab[] = [\n {title: \"Overview\", to: \"overview\"},\n {title: \"Publications\", to: \"documents\"},\n {title: \"Co-Authors\", to: \"author-graph\"},\n {title: \"Research Interests\", to: \"entity-graph\"}\n ]\n\n private disambiguationTabs: Tab[] = [\n {title: \"Disambiguate\", to: \"disambiguate\"}\n ]\n\n private get isInTopicInvestigation() {\n return this.$route.path.includes(\"topic/\")\n }\n\n private get isInPersonDocuments() {\n return !this.isInTopicInvestigation && this.$route.fullPath.includes(\"documents\")\n }\n\n private get isInDisambiguate() {\n return this.$route.fullPath.includes(\"disambiguate\")\n }\n\n private get isInProfile() {\n return getIsInProfile(this.$store)\n }\n\n private get showTimeline(): boolean {\n return isShowingTimeline(this.$store)\n }\n\n private get isReportEnabled(): boolean {\n return isReportEnabled(this.$store)\n }\n\n private get tabs() {\n if (this.isInDisambiguate) {\n return this.disambiguationTabs\n }\n if (this.isInProfile) {\n return this.profileTabs\n }\n return this.regularTabs\n }\n\n private mounted() {\n if (this.showTimeline && this.isInTopicInvestigation) {\n this.regularTabs.push({title: \"Timeline\", to: \"timeline\"})\n }\n this.regularTabs.push({title: \"Entity Graph\", to: \"entity-graph\"})\n if (this.isReportEnabled) {\n const title = this.isFacultyWorksUser ? \"Configuration\" : \"Insight Report\"\n this.regularTabs.push({title, to: \"report-editor\"})\n }\n this.routeChanged()\n }\n\n @Watch(\"tabs\")\n @Watch(\"$route\")\n private routeChanged() {\n Vue.nextTick(() => {\n const tabIndex = this.tabs.findIndex(tab => {\n return this.$route.path.endsWith(tab.to)\n })\n if (tabIndex !== -1) {\n this.tabChosen(tabIndex)\n }\n })\n }\n\n private tabChosen(index: number) {\n const tabContentElement = document.querySelector(`.tabs-container > .tab:nth-child(${index + 1}) > .tab-text`) as HTMLElement\n this.sliderLeft = tabContentElement.offsetLeft\n this.sliderWidth = tabContentElement.offsetWidth\n }\n\n private goBack() {\n setPersonForRightPaneSummary(this.$store, null)\n setDisambiguationPersonId(this.$store, null)\n setDisambiguatePersonName(this.$store, null)\n this.$router.back()\n restoreInvestigationState(this.$store)\n fetchAllPersonData(this.$store)\n }\n\n private showExportToWord(): boolean {\n return this.$router.currentRoute.name === \"topicReportEditor\" || this.$router.currentRoute.name === \"personReportEditor\"\n }\n\n private async exportInvestigation() {\n const investigation = getInvestigation(this.$store)\n const blob = await investigationService.exportInvestigationToWord(investigation!!.id, investigation!!.investigationType)\n const fileName = `${moment().format(\"YYYY_MM_DD_HH_mm_ss\")} - Investigation Report - ${investigation!!.title!!}.docx`.replace(/[/\\\\?%*:|\"<>]/g, \"\")\n downloadBlob(blob, fileName)\n }\n\n private getNumberOfDocumentsToMarkFix(): string {\n return this.getNumberOfDocumentsToReview(\"MarkFix\", (d: DocumentEntity) => !d.touched)\n }\n\n private getNumberOfDuplicatesToReview(): string {\n const computedStr = this.getNumberOfDocumentsToReview(\"Dedup\", (d: DocumentEntity) =>\n d.labels.includes(\"fix\") && !d.labels.includes(\"dup-suspect cleared\") && !d.labels.includes(\"duplicate\"))\n const markedDuplicate = getDocuments(this.$store).filter((d: DocumentEntity) =>\n d.labels.includes(\"duplicate\")).length\n return markedDuplicate === 0 ? computedStr : computedStr.replace(\")\", \"*)\")\n }\n\n private getNumberOfDocumentsToEnrich(): string {\n return this.getNumberOfDocumentsToReview(\"Enrich\", (d: DocumentEntity) =>\n d.labels.includes(\"fix\"))\n }\n\n private getNumberOfDocumentsToReview(workflowStage: FacultyWorksWorkflowStage,\n filter: (d: DocumentEntity) => boolean): string {\n if (this.workflowStage !== workflowStage || !this.validateWorkflowStageState(workflowStage)) {\n return \"\"\n }\n const documents = getDocuments(this.$store)\n const num = documents.filter(filter).length\n const withReservation = documents.length < getAvailableDocumentIds(this.$store).length\n return num === 0 && !withReservation\n ? \"✔︎\"\n : ` (${num}${withReservation ? \"+\" : \"\"})`\n }\n\n private validateWorkflowStageState(workflowStage: FacultyWorksWorkflowStage): boolean {\n switch (workflowStage) {\n case \"MarkFix\":\n return getDisplayedResultsStatus(this.$store) === \"Unread\" && getFilterByResearchers(this.$store)\n case \"Dedup\":\n return getFilterToDuplicates(this.$store) &&\n getSelectedTops(this.$store).includes(this.selectedTopFix) &&\n getSelectedTops(this.$store).includes(this.selectedTopAccepted)\n case \"Enrich\":\n return getSelectedTops(this.$store).includes(this.selectedTopFix)\n default:\n return false\n }\n }\n\n private async setWorkflowStageFix() {\n clearFilters(this.$store)\n setDisplayedResultsStatus(this.$store, \"Unread\")\n setFilterByResearchers(this.$store, true)\n setDocumentsSortBy(this.$store, \"publishDate\")\n await fetchAllData(this.$store)\n this.workflowStage = \"MarkFix\"\n }\n\n private async setWorkflowStageDedup() {\n clearFilters(this.$store)\n setSelectedTops(this.$store, [this.selectedTopFix, this.selectedTopAccepted])\n setFilterToDuplicates(this.$store, true)\n setDocumentsSortBy(this.$store, \"duplicateOrder\")\n await fetchAllData(this.$store)\n this.workflowStage = \"Dedup\"\n }\n\n private async setWorkflowStageEnrich() {\n clearFilters(this.$store)\n setSelectedTops(this.$store, [this.selectedTopFix])\n setDocumentsSortBy(this.$store, \"publishDate\")\n await fetchAllData(this.$store)\n this.workflowStage = \"Enrich\"\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvestigationHeaderBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvestigationHeaderBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InvestigationHeaderBar.vue?vue&type=template&id=5c22663e&scoped=true&\"\nimport script from \"./InvestigationHeaderBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./InvestigationHeaderBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InvestigationHeaderBar.vue?vue&type=style&index=0&id=5c22663e&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 \"5c22663e\",\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',[(_vm.menuData !== undefined && _vm.visible && this.shouldDisplayMenu)?_c('div',{staticClass:\"menu\",style:({'bottom': _vm.menuTopPosition, 'left': _vm.menuLeftPosition})},[(_vm.shouldDisplayAddTerm)?_c('div',{staticClass:\"menu-item definition\",on:{\"click\":function($event){return _vm.openGoogleDefinition()}}},[_vm._v(\"Definition\")]):_vm._e(),(_vm.showingAddObservation)?_c('div',{staticClass:\"menu-item add-observation\",on:{\"click\":_vm.openObservationDialog}},[_vm._v(\"Add Insight to Report\")]):_vm._e(),(_vm.showAddTerm && _vm.shouldDisplayAddTerm && !_vm.termExists)?_c('div',{staticClass:\"menu-item-separator\"}):_vm._e(),(_vm.showAddTerm && _vm.shouldDisplayAddTerm && !_vm.termExists)?_c('CreateTermTemplate',{attrs:{\"term\":_vm.term}}):_vm._e()],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('div',{staticClass:\"menu-item-caption\"},[_vm._v(\"Add Term to Group:\")]),_vm._l((_vm.termGroups),function(termGroup){return _c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.addTerm(termGroup, 'Regular')}}},[_c('div',{staticClass:\"group-color\",style:({backgroundColor: _vm.getGroupColor(termGroup.color)})}),_c('div',{staticClass:\"group-name\"},[_vm._v(_vm._s(termGroup.name))]),_c('div',{staticClass:\"action-button-pane\"},[_c('button',{staticClass:\"action-button mandatory\",attrs:{\"title\":\"Mandatory\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addTerm(termGroup, 'Mandatory')}}}),_c('button',{staticClass:\"action-button boost\",attrs:{\"title\":\"Boost\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addTerm(termGroup, 'Boost')}}}),_c('button',{staticClass:\"action-button penalty\",attrs:{\"title\":\"Penalty\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addTerm(termGroup, 'Penalty')}}}),_c('button',{staticClass:\"action-button exclude\",attrs:{\"title\":\"Exclude\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addTerm(termGroup, 'Exclude')}}})])])}),(_vm.enableCreateGroup)?_c('div',{staticClass:\"new-group-separator\"}):_vm._e(),(_vm.enableCreateGroup)?_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.addTerm(null, 'Regular')}}},[_c('div',{staticClass:\"new-group-icon\"}),_c('div',{staticClass:\"group-name\"},[_vm._v(\"Create Term Group\")]),_c('div',{staticClass:\"action-button-pane\"},[_c('button',{staticClass:\"action-button mandatory\",attrs:{\"title\":\"Mandatory\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addTerm(null, 'Mandatory')}}}),_c('button',{staticClass:\"action-button boost\",attrs:{\"title\":\"Boost\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addTerm(null, 'Boost')}}}),_c('button',{staticClass:\"action-button penalty\",attrs:{\"title\":\"Penalty\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addTerm(null, 'Penalty')}}}),_c('button',{staticClass:\"action-button exclude\",attrs:{\"title\":\"Exclude\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addTerm(null, 'Exclude')}}})])]):_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('GenericDialogNew',{ref:\"genericDialog\",attrs:{\"modal\":true},on:{\"enterPressed\":function($event){return _vm.renameGroup()},\"dialogAppeared\":function($event){return _vm.dialogAppeared()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"Rename Term Group\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"rename-term-group-dialog-content\"},[[_c('div',{staticClass:\"dialog-content\"},[_c('div',{staticClass:\"group-name-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.groupName),expression:\"groupName\"}],ref:\"groupNameText\",staticClass:\"group-name-input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.groupName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.groupName=$event.target.value}}})])]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button rename-term-group\",attrs:{\"disabled\":_vm.groupName.length === 0},on:{\"click\":_vm.renameGroup}},[_vm._v(\"Rename Group\")])])]],2)]},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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {Prop} from \"vue-property-decorator\"\nimport {renameTermGroup} from \"@/store/investigation/investigation-terms-module\"\nimport {InvestigationTermGroupEntity} from \"@/types/investigations\"\nimport GenericDialogNew, {createDialogMountingPoint} from \"@/components/GenericDialogNew.vue\"\n\nexport function openRenameTermGroupDialog(parent: Vue, options: RenameTermGroupDialogOptions) {\n new (Vue.extend(RenameTermGroupDialog))({parent, store: parent.$store, router: parent.$router, propsData: {options}}).$mount(createDialogMountingPoint())\n}\n\nexport interface RenameTermGroupDialogOptions {\n readonly group: InvestigationTermGroupEntity\n}\n\n@Component({\n components: { GenericDialogNew }\n})\nexport default class RenameTermGroupDialog extends Vue {\n\n @Prop()\n private options!: RenameTermGroupDialogOptions\n\n private groupName: string = \"\"\n\n\n public mounted() {\n Vue.nextTick(() => {\n this.groupName = this.options.group.name\n\n const groupNameText = this.$refs.groupNameText as HTMLInputElement\n groupNameText.focus()\n })\n }\n\n private dialogAppeared() {\n const textInput = this.$refs.groupNameText as HTMLInputElement\n textInput.select()\n textInput.focus()\n }\n\n private close() {\n (this.$refs.genericDialog as GenericDialogNew).close()\n }\n\n\n private async renameGroup() {\n this.close()\n await renameTermGroup(this.$store, {...this.options.group, name: this.groupName})\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenameTermGroupDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenameTermGroupDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RenameTermGroupDialog.vue?vue&type=template&id=306e7149&scoped=true&\"\nimport script from \"./RenameTermGroupDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./RenameTermGroupDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RenameTermGroupDialog.vue?vue&type=style&index=0&id=306e7149&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 \"306e7149\",\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {addTermFromText, createTermGroup, getTermGroups, getTerms, MAX_ALLOWED_TERMS} from \"@/store/investigation/investigation-terms-module\"\nimport {InvestigationTermGroupEntity, TermModifier} from \"@/types/investigations\"\nimport {Prop} from \"vue-property-decorator\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport {Store} from \"vuex\"\nimport {getGroupColor} from \"@/utils/color-utils\"\nimport {openMessageDialog} from \"@/components/MessageDialog.vue\"\nimport {openRenameTermGroupDialog} from \"@/views/investigation/dialogs/RenameTermGroupDialog.vue\"\nimport {fetchAllData, fetchDocumentMarkups} from \"@/store/investigation/investigation-module\"\nimport {getGraphType} from \"@/store/investigation/graph-module\"\n\n@Component({\n components: {PopupMenu}\n})\nexport default class CreateTermTemplate extends Vue {\n\n @Prop({default: true})\n private enableCreateGroup!: boolean\n\n @Prop()\n private term!: string\n\n @Prop()\n private action!: (store: Store, payload: any) => void\n\n get termGroups(): InvestigationTermGroupEntity[] {\n return getTermGroups(this.$store)\n }\n\n private async addTerm(groupEntity: InvestigationTermGroupEntity | null, modifier: TermModifier) {\n if (getTerms(this.$store).length + 1 > MAX_ALLOWED_TERMS) {\n openMessageDialog({title: \"Add Terms\", message: `Cannot add more than ${MAX_ALLOWED_TERMS} terms`})\n return\n }\n\n const newGroupName = this.chooseNewGroupName()\n\n const creatingNewGroup = !groupEntity\n if (creatingNewGroup) {\n await createTermGroup(this.$store, newGroupName)\n groupEntity = getTermGroups(this.$store).find(it => it.name === newGroupName)!!\n }\n\n const {term} = this\n const group = groupEntity!!.id\n this.$parent.$emit(\"addedTerm\", {term, groupEntity, modifier})\n const action: (store: Store, payload: any) => void = this.action === undefined ? addTermFromText : this.action\n await action(this.$store, {term, selected: true, modifier, group})\n\n if (creatingNewGroup) {\n openRenameTermGroupDialog(this, {group: groupEntity!!})\n }\n\n if (getGraphType(this.$store) === null) {\n if (action === addTermFromText) {\n modifier === \"Mandatory\" ? await fetchAllData(this.$store) : await fetchDocumentMarkups(this.$store)\n }\n }\n }\n\n private getGroupColor(group: string): string {\n return getGroupColor(group, false)\n }\n\n private chooseNewGroupName() {\n const termGroupNames = getTermGroups(this.$store).map(it => it.name)\n let index = 0\n while (true) {\n const newGroupName = ``\n if (!termGroupNames.find(it => it === newGroupName)) {\n return newGroupName\n }\n index++\n }\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateTermTemplate.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateTermTemplate.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateTermTemplate.vue?vue&type=template&id=3013c813&scoped=true&\"\nimport script from \"./CreateTermTemplate.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateTermTemplate.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CreateTermTemplate.vue?vue&type=style&index=0&id=3013c813&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 \"3013c813\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {Watch} from \"vue-property-decorator\"\nimport {getTermPopupMenuData, hideTermPopupMenu, TermPopupMenuData} from \"@/store/investigation/dialogs/term-popup-menu-module\"\nimport {Optional} from \"@/types\"\nimport CreateTermTemplate from \"@/views/investigation/templates/CreateTermTemplate.vue\"\nimport {getTerms} from \"@/store/investigation/investigation-terms-module\"\nimport {openCreateObservationDialog} from \"@/views/investigation/dialogs/CreateObservationDialog.vue\"\n\n@Component({components: {CreateTermTemplate}})\nexport default class TermPopupMenu extends Vue {\n\n private menuTopPosition: string = \"0px\"\n private menuLeftPosition: string = \"0px\"\n\n private term: string | null = null\n private sentence: string | null = null\n private termExists: boolean = false\n private visible: boolean = false\n private boundingRect?: DOMRect\n private centered!: boolean\n private showAddTerm!: boolean\n private showAddPenalizedTerm!: boolean\n private isInObservation: boolean = false\n private showAddObservation: boolean = false\n\n private clickDebounce: boolean = false\n private element?: HTMLElement\n private documentId: string | null = null\n\n\n private get menuData(): Optional {\n return getTermPopupMenuData(this.$store)\n }\n\n private get shouldDisplayAddTerm() {\n const data: Optional = getTermPopupMenuData(this.$store)\n return data && data.term && data.term.length < 60\n }\n\n private get shouldDisplayMenu() {\n const data: Optional = getTermPopupMenuData(this.$store)\n return data && data.term && data.term.length > 0\n }\n\n private get observationBody() {\n return `From the Article:
\"${this.sentence || this.term}\"`\n }\n\n private get showingAddObservation() {\n return this.showAddObservation && !this.isInObservation\n }\n\n @Watch(\"menuData\")\n private async updatePopupMenu() {\n const data: Optional = await getTermPopupMenuData(this.$store)\n\n if (data) {\n this.clickDebounce = false\n this.visible = true\n this.centered = data.centered !== undefined ? data.centered : true\n this.element = data.termElement\n this.boundingRect = data.boundingRect\n this.term = data.term ? data.term : null\n this.sentence = data.sentence ? data.sentence : null\n this.showAddTerm = !!data.showAddTerm && data.investigationType === \"Topic\"\n this.showAddPenalizedTerm = !!data.showAddPenalizedTerm && data.investigationType === \"Topic\"\n const terms = getTerms(this.$store).map(term => term.term.toLocaleLowerCase())\n this.termExists = this.term ? terms.includes(this.term.toLocaleLowerCase()) : false\n\n const boundingRect = data.boundingRect ? data.boundingRect : data.termElement.getBoundingClientRect()\n this.menuTopPosition = Math.round(window.innerHeight - boundingRect.top + 10) + \"px\"\n this.menuLeftPosition = Math.round((this.centered ? boundingRect.width / 2 : 0) + boundingRect.left) + \"px\"\n\n this.documentId = data.documentId ? data.documentId : null\n this.isInObservation = data.isInObservation ? data.isInObservation : false\n this.showAddObservation = data.showAddObservation ? data.showAddObservation : false\n\n document.body.addEventListener(\"click\", this.onClickOutside!, true)\n document.body.addEventListener(\"scroll\", this.onClickOutside!, true)\n }\n }\n\n private async onClickOutside(event?: Event) {\n if (event && this.element === event.target) {\n // receiving a boundingRect means that the popup was triggered by text selection - which means that a click event will\n // follow the mouse-up event of the selection --> we need to disregard the first click event otherwise the popup will\n // immediately close\n if (!this.clickDebounce) {\n this.clickDebounce = true\n return\n }\n }\n\n document.body.removeEventListener(\"click\", this.onClickOutside!, true)\n document.body.removeEventListener(\"scroll\", this.onClickOutside!, true)\n\n await hideTermPopupMenu(this.$store)\n }\n\n private async openGoogleDefinition() {\n await this.onClickOutside()\n window.open(`https://www.google.com/search?q=define+${this.term}`, \"_blank\")\n }\n\n private openObservationDialog() {\n openCreateObservationDialog(this, {\n referencedEntity: this.documentId!!,\n observationTitle: this.term!!,\n observationBody: this.observationBody,\n type: \"Document\",\n allowImageUpload: true\n })\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TermPopupMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TermPopupMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TermPopupMenu.vue?vue&type=template&id=ec40e84e&scoped=true&\"\nimport script from \"./TermPopupMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./TermPopupMenu.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TermPopupMenu.vue?vue&type=style&index=0&id=ec40e84e&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 \"ec40e84e\",\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('GenericDialog',{attrs:{\"visible\":_vm.isOpen,\"modal\":true},on:{\"onClose\":function($event){return _vm.close()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.note? 'Edit' : 'Add')+\" Note\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"note-dialog-content\"},[[_c('div',{staticClass:\"dialog-content\"},[_c('kendo-editor-wrapper',{staticClass:\"notes\",model:{value:(_vm.note),callback:function ($$v) {_vm.note=$$v},expression:\"note\"}})],1),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button save\",on:{\"click\":function($event){return _vm.save()}}},[_vm._v(\"Save\")])])]],2)]},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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport GenericDialog from \"@/components/GenericDialog.vue\"\nimport KendoEditorWrapper from \"@/components/KendoEditorWrapper.vue\"\nimport {getNoteDialogData, NoteDialogData} from \"@/store/investigation/dialogs/note-dialog-module\"\nimport {Optional} from \"@/types\"\nimport {Watch} from \"vue-property-decorator\"\nimport {setDocumentNote} from \"@/store/investigation/documents-module\"\nimport {getInvestigation} from \"@/store/investigation/investigation-module\"\nimport {InvestigationType} from \"@/types/investigations\"\n\n@Component({\n components: {GenericDialog, KendoEditorWrapper}\n })\n export default class NoteDialog extends Vue {\n\n private isOpen = false\n private documentId: string = \"\"\n private note?: string\n\n get getData(): Optional {\n return getNoteDialogData(this.$store)\n }\n\n\n @Watch(\"getData\")\n private async updateDialog() {\n const data: Optional = await getNoteDialogData(this.$store)\n\n if (data) {\n this.documentId = data.documentId\n this.note = data.note\n this.isOpen = true\n\n document.addEventListener(\"keyup\", this.handleKey)\n } else {\n this.close()\n }\n }\n\n\n private close() {\n this.isOpen = false\n document.removeEventListener(\"keyup\", this.handleKey)\n }\n\n\n private async handleKey(e: KeyboardEvent) {\n switch (e.key) {\n case \"Escape\":\n this.close()\n break\n case \"Enter\":\n await this.save()\n break\n }\n }\n\n\n private async save() {\n const investigationType: InvestigationType = getInvestigation(this.$store)!!.investigationType\n await setDocumentNote(this.$store, {id: this.documentId, note: this.note, investigationType})\n this.close()\n }\n }\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NoteDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NoteDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NoteDialog.vue?vue&type=template&id=e8b23386&scoped=true&\"\nimport script from \"./NoteDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./NoteDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NoteDialog.vue?vue&type=style&index=0&id=e8b23386&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e8b23386\",\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',{staticClass:\"particle-loading-screen\"},[_c('vue-particles',{attrs:{\"color\":\"#777\",\"particleSize\":4,\"moveSpeed\":3,\"hoverMode\":\"grab\",\"linesColor\":\"#777\"}}),_c('div',{staticClass:\"loader-circle\"},[_c('img',{staticClass:\"logo-letter\",attrs:{\"src\":require(\"../assets/images/logo-s.svg\"),\"width\":\"47\",\"height\":\"79\"}}),_c('div',{staticClass:\"logo-sentences\"},[(_vm.shouldShowLongerThanExpectedMessage)?_c('div',[_c('div',[_vm._v(\"Launching the investigation takes longer than expected,\")]),_c('div',[_vm._v(\"please be patient…\")])]):_c('div',[_c('div',[_vm._v(\"We will take off in just a few seconds...\")]),_c('div',[_vm._v(\"Get ready for an enlightening journey!\")])])])]),_vm._m(0)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"loader-line-mask\"},[_c('div',{staticClass:\"loader-line\"})])}]\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 Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport moment, {Moment} from \"moment\"\nimport {getInvestigation} from \"@/store/investigation/investigation-module\"\n\n@Component\n export default class ParticleLoadingScreen extends Vue {\n\n private interval: any\n private investigationCreationMoment: Moment = moment()\n private shouldShowLongerThanExpectedMessage: boolean = false\n\n private mounted() {\n const investigation = getInvestigation(this.$store)!\n this.investigationCreationMoment = moment(new Date()).subtract(investigation.age, \"seconds\")\n this.setShowMessage()\n if (!this.shouldShowLongerThanExpectedMessage) {\n this.interval = setInterval(this.setShowMessage, 1000)\n }\n }\n\n private setShowMessage() {\n this.shouldShowLongerThanExpectedMessage = this.calculateShouldShowLongerThanExpectedMessage()\n if (this.shouldShowLongerThanExpectedMessage) {\n clearInterval(this.interval)\n }\n }\n\n private calculateShouldShowLongerThanExpectedMessage() {\n return moment(new Date()).diff(this.investigationCreationMoment, \"seconds\") > 45\n }\n\n private beforeDestroy() {\n clearInterval(this.interval)\n }\n }\n\n","import moment, {Moment} from \"moment\"\nimport Rollbar from \"rollbar\"\n\nexport enum SocketMessageType {\n Register = \"Register\",\n Unregister = \"Unregister\",\n KeepAlive = \"KeepAlive\",\n InvestigationState = \"InvestigationState\"\n}\n\n\nexport class SocketMessage {\n constructor(public type: SocketMessageType, public content: string) {}\n}\n\n\nexport type MessageHandler = (data?: string) => void\n\n\nexport interface WebSocketManager {\n registerInvestigation(investigationId: string, updateMessageHandler: MessageHandler, user: string, rollbarAccessToken: string): void\n unregisterInvestigation(): void\n}\n\n\nclass WebSocketManagerImpl implements WebSocketManager {\n\n private socket?: WebSocket\n private isFirstKeepAlive: boolean = true\n private keepAliveInterval: any\n private investigationId?: string\n private messageHandlers: Map = new Map()\n private lastMessageSentTime?: Moment\n private lastMessageReceivedTime?: Moment\n private messageIntervalMillis: number = 10000\n private rollbar: Rollbar | null = null\n private rollbarAccessToken: string = \"\"\n private user: string = \"\"\n\n\n public registerInvestigation(investigationId: string, updateMessageHandler: MessageHandler, user: string, rollbarAccessToken: string) {\n // console.log(\"registerInvestigation\", new Date().getTime())\n this.clearMetaData()\n this.user = user\n this.rollbarAccessToken = rollbarAccessToken\n this.messageHandlers.set(SocketMessageType.InvestigationState, updateMessageHandler)\n this.messageHandlers.set(SocketMessageType.KeepAlive, this.updateLastMessageReceivedTime.bind(this))\n this.investigationId = investigationId\n this.connectAndRun(() => {\n this.sendMessage(SocketMessageType.Register, investigationId)\n this.keepAliveInterval = setInterval(this.keepAlive.bind(this), this.messageIntervalMillis)\n })\n }\n\n public unregisterInvestigation() {\n // console.log(\"unregisterInvestigation\")\n this.sendMessage(SocketMessageType.Unregister, this.investigationId!)\n this.clearMetaData()\n }\n\n\n private clearMetaData() {\n // console.log(\"clearMetaData\")\n if (this.keepAliveInterval) {\n clearInterval(this.keepAliveInterval)\n this.keepAliveInterval = undefined\n }\n this.isFirstKeepAlive = true\n this.messageHandlers.delete(SocketMessageType.InvestigationState)\n this.messageHandlers.delete(SocketMessageType.KeepAlive)\n this.lastMessageSentTime = undefined\n this.lastMessageReceivedTime = undefined\n this.investigationId = undefined\n }\n\n\n private keepAlive() {\n // console.log(\"keepAlive\", this.isFirstKeepAlive)\n if (!this.isFirstKeepAlive) {\n this.checkKeepAlive()\n }\n this.lastMessageSentTime = moment()\n this.sendMessage(SocketMessageType.KeepAlive, this.investigationId!)\n // console.log(\"keepAlive: isFirstKeepAlive\", this.isFirstKeepAlive)\n this.isFirstKeepAlive = false\n }\n\n\n private updateLastMessageReceivedTime() {\n // console.log(\"updateLastMessageReceivedTime\")\n this.lastMessageReceivedTime = moment()\n }\n\n\n private checkKeepAlive() {\n // console.log(\"checkKeepAlive\")\n if (!this.isWithinSocketMessageInterval()) {\n this.resetConnection()\n }\n }\n\n\n private resetConnection() {\n // console.log(\"resetConnection\")\n this.lastMessageReceivedTime = undefined\n this.closeConnection()\n if (this.investigationId) {\n this.registerInvestigation(\n this.investigationId,\n this.messageHandlers.get(SocketMessageType.InvestigationState)!,\n this.user,\n this.rollbarAccessToken)\n }\n }\n\n\n private sendMessage(messageType: SocketMessageType, content: string) {\n // if (!this.rollbar) {\n // this.rollbar = new Rollbar({\n // accessToken: this.rollbarAccessToken,\n // captureUncaught: true,\n // captureUnhandledRejections: true\n // })\n // }\n // if (!content) {\n // this.rollbar.error(`Socket message type ${messageType} is null, user: ${this.user}`)\n // } else {\n // this.rollbar.debug(`Socket message type ${messageType} is ${content}, user: ${this.user}`)\n // }\n const socketMessage = new SocketMessage(messageType, content)\n // console.log(\"sendMessage\", socketMessage)\n if (this.isConnectionOpen()) {\n this.socket!.send(JSON.stringify(socketMessage))\n }\n }\n\n\n private onMessage(event: MessageEvent) {\n const incomingMessage = JSON.parse(event.data) as SocketMessage\n const handler = this.messageHandlers.get(SocketMessageType[incomingMessage.type])\n if (handler) {\n handler(incomingMessage.content)\n }\n }\n\n private closeConnection() {\n if (this.socket !== undefined) {\n this.socket!.close()\n }\n this.socket = undefined\n }\n\n private connect(onMessageCallback: ({data}: any) => void) {\n // console.log(\"connect\")\n if (!this.isConnectionOpen()) {\n const protocol = window.location.protocol.replace(/(http)(s)?/, \"ws$2\")\n const host = window.location.host.replace(\"4001\", \"4000\")\n const websocketUrl = `${protocol}//${host}/api/web-socket`\n this.socket = new WebSocket(websocketUrl)\n this.socket.onmessage = onMessageCallback\n // tslint:disable-next-line:no-console\n this.socket.onerror = (ev: Event) => console.log(ev)\n // tslint:disable-next-line:no-console\n this.socket.onclose = (ev: Event) => console.log(ev)\n }\n }\n\n private connectAndRun(callback: () => void) {\n // console.log(\"connectAndRun\")\n this.connect(event => this.onMessage(event))\n this.waitUntilConnectionOpen(callback)\n }\n\n private waitUntilConnectionOpen(callback: () => void) {\n // console.log(\"waitUntilConnectionOpen\")\n if (!this.isConnectionOpen()) {\n setTimeout(() => {\n if (this.isConnectionOpen()) {\n callback()\n } else {\n setTimeout(this.resetConnection.bind(this), this.messageIntervalMillis)\n }\n }, 2000)\n } else {\n callback()\n }\n }\n\n private isConnectionOpen() {\n return this.socket && this.socket.readyState === WebSocket.OPEN\n }\n\n private isWithinSocketMessageInterval() {\n if (!this.lastMessageReceivedTime) {\n return false\n }\n // console.log(\"isWithinSocketMessageInterval\", Math.abs(this.lastMessageReceivedTime!.diff(moment(this.lastMessageSentTime))))\n const maxSocketLatency = 1000\n return Math.abs(this.lastMessageReceivedTime!.diff(moment(this.lastMessageSentTime))) <= maxSocketLatency\n }\n}\n\n\nexport const webSocketManager: WebSocketManager = new WebSocketManagerImpl()\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ParticleLoadingScreen.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ParticleLoadingScreen.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ParticleLoadingScreen.vue?vue&type=template&id=335ad489&scoped=true&\"\nimport script from \"./ParticleLoadingScreen.vue?vue&type=script&lang=ts&\"\nexport * from \"./ParticleLoadingScreen.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ParticleLoadingScreen.vue?vue&type=style&index=0&id=335ad489&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"335ad489\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {fetchInvestigation, getInvestigation, getIsInReviewProfile, setActivityStatus, updateRelevancyStatus} from \"@/store/investigation/investigation-module\"\nimport InvestigationHeaderBar from \"@/views/investigation/InvestigationHeaderBar.vue\"\nimport TermPopupMenu from \"@/views/investigation/popups/TermPopupMenu.vue\"\nimport NoteDialog from \"@/views/investigation/dialogs/NoteDialog.vue\"\nimport ParticleLoadingScreen from \"@/components/ParticleLoadingScreen.vue\"\nimport moment, {Moment} from \"moment\"\nimport {getCurrentUser} from \"@/store/auth-module\"\nimport {getRollbarAccessToken} from \"@/store/environment-module\"\nimport {webSocketManager} from \"@/infrastructure/WebsocketManager\"\nimport {getDocuments} from \"@/store/investigation/documents-module\"\nimport {getTermGroups} from \"@/store/investigation/investigation-terms-module\"\n\n@Component({\n components: {NoteDialog, TermPopupMenu, InvestigationHeaderBar, ParticleLoadingScreen}\n})\nexport default class InvestigationPage extends Vue {\n\n private interval: any\n private investigationCreationMoment: Moment = moment()\n private shouldShowParticleLoader: boolean = false\n\n get isLoadingInvestigation(): boolean {\n return getInvestigation(this.$store) === null\n }\n\n private async mounted() {\n const investigationType = this.$route.path.includes(\"topic/\") ? \"Topic\" : \"Person\"\n const id = this.$route.params.id\n if (investigationType === \"Topic\") {\n await fetchInvestigation(this.$store, {id, investigationType: \"Topic\"})\n const investigation = getInvestigation(this.$store)!\n this.investigationCreationMoment = moment(new Date()).subtract(investigation.age, \"seconds\")\n this.setShowParticleLoader()\n if (this.shouldShowParticleLoader) {\n this.interval = setInterval(this.setShowParticleLoader, 1000)\n }\n } else {\n await fetchInvestigation(this.$store, {id, investigationType: \"Person\"})\n this.shouldShowParticleLoader = false\n }\n const investigationId: string = getInvestigation(this.$store)!.id\n const user = getCurrentUser(this.$store)!.nickname\n const rollbarAccessToken = getRollbarAccessToken(this.$store)\n webSocketManager.registerInvestigation(\n investigationId,\n message => {\n const update = JSON.parse(message!)\n const {differentEnough, relevancyScore} = update\n setActivityStatus(this.$store, update.activityScore)\n updateRelevancyStatus(this.$store, {differentEnough, relevancyScore})\n },\n user,\n rollbarAccessToken\n )\n }\n\n private setShowParticleLoader() {\n this.shouldShowParticleLoader = this.calculateShouldShowParticleLoader()\n if (!this.shouldShowParticleLoader) {\n clearInterval(this.interval)\n }\n }\n\n private calculateShouldShowParticleLoader(): boolean {\n const investigation = getInvestigation(this.$store)!\n const passedNinetySeconds = moment(new Date()).diff(this.investigationCreationMoment, \"seconds\") >= 90\n const termGroups = getTermGroups(this.$store)\n const documents = getDocuments(this.$store)\n const fetchedData = termGroups.length\n const hasDocuments = documents.length\n return !passedNinetySeconds && (!fetchedData || !hasDocuments)\n }\n\n private beforeDestroy() {\n clearInterval(this.interval)\n }\n\n private get isInReviewProfile(): boolean {\n return getIsInReviewProfile(this.$store)\n }\n}\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvestigationPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvestigationPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InvestigationPage.vue?vue&type=template&id=ef4435c4&scoped=true&\"\nimport script from \"./InvestigationPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./InvestigationPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InvestigationPage.vue?vue&type=style&index=0&id=ef4435c4&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 \"ef4435c4\",\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('SplitPane',{scopedSlots:_vm._u([{key:\"left\",fn:function(){return [_c('div',{staticClass:\"scroll-container\"},[_c('div',{staticClass:\"pane left\"},[_c('router-view',{attrs:{\"name\":\"leftPane\"},on:{\"refresh-documents\":_vm.refreshContent,\"scroll-to-section\":_vm.scrollToSection,\"scroll-to-observation\":_vm.scrollToObservation}})],1)])]},proxy:true},{key:\"middle\",fn:function(){return [_c('div',{staticClass:\"scroll-container\"},[_c('SpinningLoader',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isBusy),expression:\"isBusy\"}]}),_c('div',{ref:\"documentsContainer\",staticClass:\"pane middle\"},[_c('router-view',{ref:\"content\",attrs:{\"scrolled-to-observation\":_vm.scrolledToObservation,\"scrolled-to-section\":_vm.scrolledToSection,\"name\":\"middlePane\"},on:{\"documentsUpdated\":_vm.documentsUpdated,\"scrolled\":_vm.resetScrollVars}})],1)],1)]},proxy:true},(!_vm.isInReportEditor)?{key:\"right\",fn:function(){return [_c('div',{staticClass:\"scroll-container\"},[_c('div',{staticClass:\"pane\"},[_c('TopsPane',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isShowingTopsPane),expression:\"isShowingTopsPane\"}],on:{\"refresh-documents\":_vm.refreshContent}}),(_vm.isAuthorSummaryInRightPane)?_c('AuthorSummaryPane',{staticClass:\"pane\",attrs:{\"allow-image-update\":true,\"containingParentName\":\"right-pane\",\"passed-person-name\":_vm.personForRightPaneSummary.name,\"person-id\":_vm.personForRightPaneSummary.id,\"show-documents\":true}}):_vm._e(),(_vm.isEntitySummaryVisible)?_c('EntitySummaryPane',{attrs:{\"containingParentName\":\"right-pane\",\"entity\":_vm.entityForSummary}}):_vm._e(),(_vm.isEntityRelationshipSummaryVisible)?_c('EntityRelationshipSummaryPane',{attrs:{\"containingParentName\":\"right-pane\",\"entities\":_vm.entityRelationshipForSummary}}):_vm._e()],1)])]},proxy:true}:{key:\"right\",fn:function(){return [_c('div')]},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('div',{staticClass:\"splitted-pane\",class:_vm.layout,style:({'grid-template-columns': _vm.gridTemplateColumns})},[_c('div',{staticClass:\"left-pane\",class:{'shadow': _vm.allowLeftPaneExpand && _vm.leftPaneWidth !== 0}},[_vm._t(\"left\"),(_vm.allowLeftPaneExpand && _vm.showLeftPane)?_c('div',[_c('button',{staticClass:\"expand-collapse\",attrs:{\"title\":_vm.expandCollapseTitle},on:{\"click\":function($event){return _vm.toggleLeftPane()}}},[_c('div',{staticClass:\"expand-collapse-icon\",class:{'expand': _vm.leftPaneWidth === 0}})]),_c('div',{staticClass:\"shadow-concealer\"})]):_vm._e()],2),(_vm.showMiddlePane)?_vm._t(\"middle\"):_vm._e(),(_vm.showRightPane)?_vm._t(\"right\"):_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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {Watch} from \"vue-property-decorator\"\n\n@Component\nexport default class SplitPane extends Vue {\n\n private allowLeftPaneExpand: boolean = true\n private showLeftPane = false\n private showMiddlePane = true\n private showRightPane = true\n private layout = \"\"\n private leftPaneWidth = 0\n\n private mounted() {\n this.routeChange()\n }\n\n @Watch(\"$route\")\n private routeChange() {\n this.layout = this.$route.meta?.layout || \"three-pane\"\n this.allowLeftPaneExpand = this.$route.meta?.allowLeftPaneExpand === undefined ? true : this.$route.meta.allowLeftPaneExpand\n this.showLeftPane = this.layout === \"three-pane\"\n this.showMiddlePane = true\n this.showRightPane = [\"three-pane\", \"middle-pane-right-pane\"].includes(this.layout)\n }\n\n private toggleLeftPane() {\n this.leftPaneWidth = this.leftPaneWidth === 25 ? 0 : 25\n }\n\n private get gridTemplateColumns(): string {\n if (this.layout === \"three-pane\") {\n if (this.allowLeftPaneExpand) {\n return `${this.leftPaneWidth}vw calc(${75 - this.leftPaneWidth}vw - 1.6rem - 1.6rem) 25vw`\n }\n return `25vw calc(50vw - 1.6rem - 1.6rem) 25vw`\n }\n\n if (this.layout === \"middle-pane-right-pane\") {\n return \"0 calc(75vw - 1.6rem - 1.6rem) 25vw\"\n }\n\n return \"100vw\"\n }\n\n private get expandCollapseTitle(): string {\n return (this.leftPaneWidth === 0) ? \"Expand\" : \"Collapse\"\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SplittedPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SplittedPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SplittedPane.vue?vue&type=template&id=585de162&scoped=true&\"\nimport script from \"./SplittedPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./SplittedPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SplittedPane.vue?vue&type=style&index=0&id=585de162&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 \"585de162\",\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',{staticClass:\"container\"},[(_vm.displayTopsPane)?_c('div',{staticClass:\"sticky\"},[_c('div',{staticClass:\"subheader-container\"},[_c('h1',{staticClass:\"subheader\"},[_vm._v(\"Analytics & Filters\")]),(_vm.hasFiltersApplied)?_c('button',{staticClass:\"clear-filters\",on:{\"click\":_vm.clearFilters}},[_vm._v(\"Clear Filters\")]):_vm._e()]),(_vm.hasFiltersApplied)?_c('div',{staticClass:\"active-filters-container\"},[_c('div',{staticClass:\"active-filters\"},[(_vm.hasFilterByResearchers)?_c('div',{staticClass:\"filter\",attrs:{\"title\":\"Researchers Only\"},on:{\"click\":_vm.clearResearchersFilter}},[_vm._v(\"Researchers Only\")]):_vm._e(),(_vm.hasFilterToDuplicates)?_c('div',{staticClass:\"filter\",attrs:{\"title\":\"Duplicates Only\"},on:{\"click\":_vm.clearDuplicatesFilter}},[_vm._v(\"Duplicates Only\")]):_vm._e(),(_vm.hasFilterToUnaffiliated)?_c('div',{staticClass:\"filter\",attrs:{\"title\":\"Partly Unaffiliated\"},on:{\"click\":_vm.clearUnaffiliatedFilter}},[_vm._v(\"Partly Unaffiliated\")]):_vm._e(),(_vm.hasFilterToUnknownPublishers)?_c('div',{staticClass:\"filter\",attrs:{\"title\":\"Unknown Publishers\"},on:{\"click\":_vm.clearUnknownPublishersFilter}},[_vm._v(\"Unknown Publishers\")]):_vm._e(),(_vm.hasFilterToMissingVolume)?_c('div',{staticClass:\"filter\",attrs:{\"title\":\"Publications with no volume\"},on:{\"click\":_vm.clearMissingVolumeFilter}},[_vm._v(\"Missing Volume\")]):_vm._e(),(_vm.hasFilterToMissingDate)?_c('div',{staticClass:\"filter\",attrs:{\"title\":\"Publications with no date\"},on:{\"click\":_vm.clearMissingDateFilter}},[_vm._v(\"Missing Date\")]):_vm._e(),(_vm.hasSpecificUrlsFilter)?_c('div',{staticClass:\"filter\",attrs:{\"title\":\"Specific URLs\"},on:{\"click\":_vm.clearSpecificUrlsFilter}},[_vm._v(\"Specific URLs\")]):_vm._e(),(_vm.hasFreeTextFilter)?_c('div',{staticClass:\"filter\",attrs:{\"title\":(\"Text: \" + _vm.freeText)},on:{\"click\":_vm.clearFreeTextSearch}},[_vm._v(_vm._s((\"\\\"\" + _vm.freeText + \"\\\"\")))]):_vm._e(),(_vm.hasDisplayStatusFilter)?_c('div',{staticClass:\"filter\",attrs:{\"title\":(\"Label: \" + _vm.labelFilterText)},on:{\"click\":_vm.closeLabelFilter}},[_vm._v(_vm._s(_vm.labelFilterText))]):_vm._e(),(_vm.hasDateFilter)?_c('div',{staticClass:\"filter\",attrs:{\"title\":(\"Date: \" + _vm.dateFilterText)},on:{\"click\":_vm.closeDateFilter}},[_vm._v(_vm._s(_vm.dateFilterText))]):_vm._e(),_vm._l((_vm.selectedTops),function(selectedTop){return (_vm.hasTopFilter)?_c('div',{key:selectedTop.name + selectedTop.selectedValue,staticClass:\"filter\",attrs:{\"title\":((_vm.topName(selectedTop)) + \": \" + (selectedTop.selectedDisplayValue))},on:{\"click\":function($event){return _vm.closeFilter(selectedTop)}}},[_vm._v(_vm._s(selectedTop.selectedDisplayValue))]):_vm._e()})],2)]):_vm._e()]):_vm._e(),(_vm.displayTopsPane)?_c('div',{staticClass:\"tops-pane\"},[(_vm.showDateHistogram)?_c('DateFilter'):_vm._e(),_c('div',{staticClass:\"free-text-filter-container\"},[_c('div',{staticClass:\"input-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.localFreeText),expression:\"localFreeText\"}],staticClass:\"free-text-filter-input\",attrs:{\"placeholder\":\"Enter text to filter by\",\"type\":\"text\"},domProps:{\"value\":(_vm.localFreeText)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.searchFreeText.apply(null, arguments)},\"input\":function($event){if($event.target.composing){ return; }_vm.localFreeText=$event.target.value}}}),(_vm.shouldShowFreeTextSearchButton)?_c('button',{staticClass:\"control-button search\",class:{'active': _vm.localFreeText.length > 0},on:{\"click\":_vm.searchFreeText}}):_c('button',{staticClass:\"control-button clear\",on:{\"click\":_vm.clearFreeTextSearch}})])]),_c('hr',{staticClass:\"graph separator\"}),(!_vm.isInPersonProfile)?_c('DocumentLabelFilter'):_vm._e(),(_vm.graphs.length > 0 && !_vm.isInPersonProfile)?_c('hr',{staticClass:\"separator\"}):_vm._e(),_c('div',{staticClass:\"tops-pane-graphs\"},_vm._l((_vm.graphs),function(graph,index){return _c('div',{key:graph.title},[_c('BarGraph',{attrs:{\"graph\":graph},on:{\"set-new-term\":_vm.setNewTerm}}),(index !== _vm.graphs.length-1)?_c('hr',{staticClass:\"separator\"}):_vm._e()],1)}),0)],1):_vm._e(),_c('PopupMenu',{attrs:{\"close-event\":\"closeCreateTermMenu\",\"event\":\"openCreateTermMenu\"}},[_c('CreateTermTemplate',{attrs:{\"term\":_vm.newTerm}})],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:\"bar-graph-container\",class:{'expanded': _vm.expanded}},[_c('div',{staticClass:\"title-pane\",on:{\"click\":function($event){_vm.expanded = !_vm.expanded}}},[_c('div',{staticClass:\"title\",attrs:{\"title\":_vm.graphTitle(_vm.graph)}},[_vm._v(_vm._s(_vm.graphTitle(_vm.graph)))]),_c('div',{staticClass:\"buttons\"},[(_vm.shouldShowContextMenuButton)?_c('button',{ref:\"contextMenuOpener\",staticClass:\"action-button context-menu-opener\",on:{\"click\":function($event){$event.stopPropagation();return _vm.openContextMenu(_vm.graph)}}},[_vm._v(\"...\")]):_vm._e(),_c('button',{staticClass:\"action-button sort-button\",class:{'sorted-by-total': _vm.sortedByTotal},attrs:{\"title\":'Sort by Gray Bars'},on:{\"click\":function($event){$event.stopPropagation();_vm.sortedByTotal = !_vm.sortedByTotal}}}),_c('button',{staticClass:\"expand-button\",class:{'expanded': _vm.expanded}})])]),(!['predefined.Classifications', 'predefined.Languages'].includes(_vm.graph.type))?_c('div',{staticClass:\"search-filter-container\"},[_c('div',{staticClass:\"input-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.search),expression:\"search\"}],staticClass:\"search-input\",attrs:{\"placeholder\":\"Type to filter...\",\"type\":\"text\"},domProps:{\"value\":(_vm.search)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.search=$event.target.value}}}),(_vm.search.length < 2)?_c('button',{staticClass:\"control-button active search\"}):_c('button',{staticClass:\"control-button clear\",on:{\"click\":function($event){_vm.search = ''}}})])]):_vm._e(),(this.bars.length === 0)?_c('h4',{staticClass:\"no-data-available\"},[_vm._v(\"No results exist for your search\")]):_vm._e(),_c('transition-group',{staticClass:\"bars\",attrs:{\"name\":\"bar-container\",\"tag\":\"section\"}},_vm._l((_vm.bars),function(bar,index){return _c('div',{key:bar.value,staticClass:\"bar-container\"},[_c('div',{staticClass:\"title-selector\"},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.isSelected(bar.value)},on:{\"click\":function($event){return _vm.toggleBarSelection(bar)}}}),(_vm.shouldShowLegend)?_c('div',{staticClass:\"legend-item\",class:_vm.legendClass(bar)}):_vm._e(),_c('label',{staticClass:\"bar-title\",class:{bolded: _vm.isSelected(bar.value)},attrs:{\"title\":_vm.calculateTitle(bar)},on:{\"click\":function($event){return _vm.toggleBarSelection(bar)}}},[_vm._v(_vm._s(bar.caption))]),_c('div',{staticClass:\"counts\"},[_vm._v(\"(\"),_c('span',{staticClass:\"relevant\"},[_vm._v(_vm._s(bar.relevantCount))]),_c('span',{staticClass:\"total\"},[_vm._v(\" / \"+_vm._s(bar.totalCount))]),_vm._v(\")\")]),(!['predefined.Classifications', 'predefined.Languages', 'predefined.Labels'].includes(_vm.graph.type))?_c('button',{ref:\"topsContextMenu\" + index,refInFor:true,staticClass:\"action-button tops-context-menu-opener\",on:{\"click\":function($event){return _vm.openTopsContextMenu(index, $event)}}},[_vm._v(\"...\")]):_vm._e(),(_vm.graph.type === 'predefined.Labels')?_c('button',{staticClass:\"action-button tops-context-menu-opener forbids-close\",on:{\"click\":function($event){return _vm.openLabelMenu($event.target, bar.value)}}},[_vm._v(\"...\")]):_vm._e()]),_c('div',{staticClass:\"bar-total\"},[_c('div',{staticClass:\"bar total\",style:({width: (bar.totalPercentage * 100) + '%'}),attrs:{\"title\":_vm.calculateTitle(bar)}}),_c('div',{staticClass:\"bar relevant\",style:({width: (bar.relevantPercentage * 100) + '%'}),attrs:{\"title\":_vm.calculateTitle(bar)}})])])}),0),_c('PopupMenu',{attrs:{\"event\":\"openpredefined.LabelsContextMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.copyItemsToClipboard}},[_vm._v(\"Copy All Labels\")])]),_c('PopupMenu',{staticClass:\"label-menu forbids-close\",attrs:{\"close-event\":\"closeLabelMenu\",\"event\":\"openLabelMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.copyLabelToClipboard}},[_vm._v(\"Copy\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.renameLabel}},[_vm._v(\"Rename\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.deleteLabel}},[_vm._v(\"Delete\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.bulkApplyLabel(true)}}},[_vm._v(\"Add to current documents\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.bulkApplyLabel(false)}}},[_vm._v(\"Remove from current documents\")])]),_c('PopupMenu',{attrs:{\"event\":\"openpredefined.PersonsContextMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.copyItemsToClipboard}},[_vm._v(\"Copy All Authors\")]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",class:{disabled: !_vm.selectAllVisibleItemsAllowed()},on:{\"click\":function($event){return _vm.selectAllVisibleItems(true)}}},[_vm._v(\"Select all visible\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.selectAllVisibleItems(false)}}},[_vm._v(\"Deselect all visible\")])]),_c('PopupMenu',{attrs:{\"event\":\"openpredefined.EmailContextMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.copyItemsToClipboard}},[_vm._v(\"Copy All Emails\")])]),_c('PopupMenu',{attrs:{\"event\":\"openpredefined.DomainsContextMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.copyItemsToClipboard}},[_vm._v(\"Copy All Domains\")])]),_c('PopupMenu',{attrs:{\"event\":\"openpredefined.Mentioned TermsContextMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.copyItemsToClipboard}},[_vm._v(\"Copy All Mentioned Terms\")])]),_c('PopupMenu',{attrs:{\"event\":\"openpredefined.InstitutionsContextMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.copyItemsToClipboard}},[_vm._v(\"Copy All Institutes of Authors\")])]),_c('PopupMenu',{attrs:{\"event\":\"openentity.Mentioned OrganizationsContextMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.copyItemsToClipboard}},[_vm._v(\"Copy All Mentioned Organizations\")])]),_c('PopupMenu',{attrs:{\"event\":\"openentity.Mentioned PersonsContextMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.copyItemsToClipboard}},[_vm._v(\"Copy All Mentioned People\")])]),_c('PopupMenu',{attrs:{\"event\":\"openDictionaryContextMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.copyItemsToClipboard}},[_vm._v(\"Copy All Values\")])]),_c('PopupMenu',{attrs:{\"event\":\"openTopsContextMenu.\" + _vm.graph.type}},[(_vm.isInPersonProfile)?_c('div',[_c('div',{ref:\"copy\",staticClass:\"menu-item\"},[_vm._v(\"Copy\")]),_c('div',{ref:\"google\",staticClass:\"menu-item\"},[_vm._v(\"Google It\")])]):_c('div',[_c('div',{ref:\"copy\",staticClass:\"menu-item\"},[_vm._v(\"Copy\")]),_c('div',{ref:\"addTerm\",staticClass:\"menu-item\",class:{disabled: _vm.termExists, 'forbids-close': _vm.termExists}},[_c('div',{staticClass:\"add-term-text\"},[_vm._v(\"Add as Search Term\")])]),_c('div',{ref:\"google\",staticClass:\"menu-item\"},[_vm._v(\"Google It\")]),(_vm.graph.type === 'predefined.Domains')?_c('div',{ref:\"addToWebPageSearch\",staticClass:\"menu-item\"},[_vm._v(\"Add to Web Page Search\")]):_vm._e(),(_vm.graph.type === 'predefined.Persons' && _vm.isReportEnabled)?_c('div',{ref:\"createObservation\",staticClass:\"menu-item\"},[_vm._v(\"Add Insight to Report\")]):_vm._e(),(_vm.graph.type === 'predefined.Persons')?_c('div',{ref:\"enrich\",staticClass:\"menu-item\"},[_vm._v(\"Enrich this Person\")]):_vm._e(),(_vm.graph.type === 'predefined.Persons' && _vm.investigation.investigationType === 'Person')?_c('div',{ref:\"disambiguate\",staticClass:\"menu-item\"},[_vm._v(\"Disambiguate\")]):_vm._e(),(_vm.graph.type === 'predefined.Persons' && _vm.investigation.investigationType === 'Person' && this.isFacultyWorksUser)?_c('div',{ref:\"addActiveAuthor\",staticClass:\"menu-item\"},[_vm._v(\"Add to \\\"Active Authors\\\"\")]):_vm._e(),(_vm.graph.type === 'entity.Mentioned Organizations')?_c('div',{ref:\"removeOrganization\",staticClass:\"menu-item\"},[_vm._v(\"Remove Organization\")]):_vm._e(),(_vm.graph.type === 'predefined.Mentioned Terms')?_c('div',{ref:\"removeTerm\",staticClass:\"menu-item\"},[_vm._v(\"Remove Term\")]):_vm._e(),(_vm.graph.type === 'entity.Mentioned Locations')?_c('div',{ref:\"removeLocation\",staticClass:\"menu-item\"},[_vm._v(\"Remove Location\")]):_vm._e()])]),_c('RenameLabelDialog',{ref:\"renameLabelDialog\"}),(_vm.displayShowMoreButton)?_c('div',{staticClass:\"show-more-button\",class:{'shows-more': _vm.showsMore},on:{\"click\":_vm.toggleShowMore}},[_vm._v(_vm._s(_vm.toggleShowMoreText))]):_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\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport {Prop, Watch} from \"vue-property-decorator\"\nimport {BarGraphModel, BarModel, MentionedEntityType, RegionBarModel, SelectedTop} from \"@/types/investigations\"\nimport {fetchAllData, fetchAllPersonData, fetchGraphData, getInvestigation, getSelectedTops, getShowAuthorGraphLegend, saveInvestigationState, setDisambiguatePersonName, setSelectedTops, addActiveAuthor} from \"@/store/investigation/investigation-module\"\nimport TopicInvestigationService from \"../api/topic-investigation-service\"\nimport {getGraphType} from \"@/store/investigation/graph-module\"\nimport {copyToClipboard} from \"@/utils/utils\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport {setDisambiguationPersonId} from \"@/store/investigation/person-filter-module\"\nimport {bulkApplyDocumentLabel, deleteDocumentLabel, getTopsExpansion, getTopsSorting, setTopExpanded, setTopSorting} from \"@/store/investigation/documents-module\"\nimport {getTerms} from \"@/store/investigation/investigation-terms-module\"\nimport {isReportEnabled} from \"@/store/environment-module\"\nimport {openCreateObservationDialog} from \"@/views/investigation/dialogs/CreateObservationDialog.vue\"\nimport RenameLabelDialog from \"@/views/investigation/dialogs/RenameLabelDialog.vue\"\nimport investigationEntityService from \"@/api/investigation-entity-service\"\nimport {openConfirmationDialog} from \"@/views/investigation/dialogs/ConfirmationDialog.vue\"\nimport {PermissionsMixin} from \"@/store/user-mixin\"\nimport {InvestigationMixin} from \"@/store/investigation-mixin\"\nimport {configurationService} from \"@/api/investigation-configuration-service\"\n\n@Component({\n components: {PopupMenu, RenameLabelDialog}\n})\nexport default class BarGraph extends mixins(Vue, PermissionsMixin, InvestigationMixin) {\n\n @Prop()\n private graph!: BarGraphModel\n\n private button?: HTMLElement\n private term?: string\n private value?: string | null = null\n private termExists: boolean = false\n private showsMore: boolean = false\n private search: string = \"\"\n private labelContext: string = \"\"\n\n get bars(): BarModel[] {\n const filteredBars = this.filteredBars().sort(this.barSorter)\n if (this.showsMore) {\n return filteredBars\n }\n return filteredBars.slice(0, 10)\n }\n\n\n private get expanded(): boolean {\n return getTopsExpansion(this.$store)[this.graph.type]\n }\n\n private set expanded(isExpanded: boolean) {\n setTopExpanded(this.$store, {type: this.graph.type, isExpanded})\n }\n\n private get sortedByTotal(): boolean {\n const topsSorting = getTopsSorting(this.$store)[this.graph.type]\n return topsSorting === undefined ? false : !topsSorting\n }\n\n private set sortedByTotal(sortedByTotal: boolean) {\n setTopSorting(this.$store, {type: this.graph.type, isSortedByRelevant: !sortedByTotal})\n }\n\n private get barSorter() {\n return this.sortedByTotal ?\n (a: BarModel, b: BarModel) => b.totalPercentage - a.totalPercentage :\n (a: BarModel, b: BarModel) => b.relevantPercentage - a.relevantPercentage\n\n }\n\n private get shouldShowLegend() {\n return this.graph.type === \"predefined.Regions\" && getShowAuthorGraphLegend(this.$store) && getGraphType(this.$store) === \"Author\"\n }\n\n private get selectedTops() {\n return getSelectedTops(this.$store)\n }\n\n private get shouldShowDisambiguateInAuthorTop() {\n return this.graph.type === \"predefined.Persons\" || this.$route.path.includes(\"documents\")\n }\n\n private get isReportEnabled(): boolean {\n return isReportEnabled(this.$store)\n }\n\n private get shouldShowContextMenuButton() {\n return [\n \"predefined.Persons\",\n \"predefined.Institutions\",\n \"predefined.Labels\",\n \"predefined.Email\",\n \"predefined.Domains\",\n \"predefined.Mentioned Terms\",\n \"entity.Mentioned Organizations\",\n \"entity.Mentioned Persons\"\n ].includes(this.graph.type) || this.isDictionary\n }\n\n private get isDictionary() {\n return !this.graph.type.startsWith(\"predefined\") && !this.graph.type.startsWith(\"entity\")\n }\n\n private get toggleShowMoreText() {\n return this.showsMore ? \"Close\" : \"Show More\"\n }\n\n private get displayShowMoreButton() {\n return this.filteredBars().length > 10\n }\n\n private mounted() {\n this.changeExpansion()\n if (this.isInReviewProfile && this.graph.type === \"predefined.Classifications\") {\n this.expanded = true\n }\n }\n\n @Watch(\"shouldShowLegend\")\n private changeExpansion() {\n this.expanded = this.shouldShowLegend\n }\n\n private filteredBars() {\n const bars = this.graph.bars\n const search = this.search.trim()\n return search.length > 1 ? bars.filter(bar => bar.caption.toLowerCase().includes(search.toLowerCase())) : bars\n }\n\n private openContextMenu(barGraphModel: BarGraphModel) {\n const contextMenuOpenerButton = this.$refs.contextMenuOpener as HTMLElement\n if (this.isDictionary) {\n this.$emit(`openDictionaryContextMenu`, contextMenuOpenerButton)\n } else {\n this.$emit(`open${barGraphModel.type}ContextMenu`, contextMenuOpenerButton)\n }\n }\n\n private calculateTitle(bar: BarModel) {\n return bar.title ? bar.title : bar.caption\n }\n\n private legendClass(bar: RegionBarModel) {\n return bar.code !== undefined ? \"region\" + bar.code : \"\"\n }\n\n private toSelectedTop(bar: BarModel): SelectedTop {\n return {name: this.graph.type, selectedDisplayValue: bar.caption, selectedValue: bar.value}\n }\n\n private async toggleBarSelection(bar: BarModel) {\n await this.setBarsSelected([bar], !this.isSelected(bar.value))\n }\n\n private async setBarsSelected(bars: BarModel[], selected: boolean) {\n let tops = this.selectedTops\n if (!selected) {\n const toDeselect = bars.filter(bar => this.isSelected(bar.value)).map(bar => bar.value)\n tops = tops.filter(top => top.name !== this.graph.type || !toDeselect.includes(top.selectedValue))\n } else {\n const toSelect = bars.filter(bar => !this.isSelected(bar.value))\n tops = tops.concat(toSelect.map(bar => this.toSelectedTop(bar)))\n }\n\n await setSelectedTops(this.$store, tops)\n\n getGraphType(this.$store) === null ? await this.$parent.$emit(\"refresh-documents\") : await fetchGraphData(this.$store)\n if (this.isInPersonProfile && this.$route.path.endsWith(\"overview\") && getGraphType(this.$store) === null) {\n await fetchGraphData(this.$store)\n }\n }\n\n private toggleShowMore() {\n if (!this.showsMore) {\n this.showsMore = true\n } else {\n this.showsMore = false\n this.expanded = false\n }\n }\n\n private isSelected(value: string) {\n return this.selectedTops.some(top => top.name === this.graph.type && top.selectedValue === value)\n }\n\n private selectAllVisibleItemsAllowed() {\n return this.filteredBars().length < 30\n }\n\n private selectAllVisibleItems(selected: boolean) {\n if (selected && !this.selectAllVisibleItemsAllowed()) {\n return\n }\n this.setBarsSelected(this.filteredBars(), selected)\n }\n\n // No unbind is needed since the menu items` dom elements are removed when popup is closed\n // and there is no reference kept to them.\n\n private copyItemsToClipboard() {\n copyToClipboard(this.graph.bars.map(bar => bar.caption).join(\"\\r\\n\"))\n }\n\n private openTopsContextMenu(index: number, event: MouseEvent) {\n this.button = event.target as HTMLElement\n const topsContextButtons = this.$refs[`topsContextMenu` + index] as HTMLElement[]\n this.bindContextMenuItems(this.bars[index].caption, this.bars[index].value)\n this.$emit(\"openTopsContextMenu.\" + this.graph.type, topsContextButtons[0])\n }\n\n // setTimeout is used to wait on dom elements to render when popup is shown\n private bindContextMenuItems(term: string, value: string) {\n const terms = getTerms(this.$store).map(existingTerm => existingTerm.term.toLowerCase())\n this.term = term\n this.value = value\n this.termExists = terms.includes(term.toLowerCase())\n\n this.$nextTick(() => {\n setTimeout(() => {\n const copy = this.$refs.copy as HTMLElement\n copy.onclick = () => copyToClipboard(term)\n\n const addTerm = this.$refs.addTerm as HTMLElement\n if (addTerm && !this.termExists) {\n addTerm.onclick = () => {\n this.$emit(\"set-new-term\", term)\n this.$parent.$emit(\"openCreateTermMenu\", this.button)\n }\n }\n const google = this.$refs.google as HTMLElement\n google.onclick = () => window.open(`https://www.google.com/search?q=${term}`, \"_blank\")\n\n const addToWebPageSearch = this.$refs.addToWebPageSearch as HTMLElement\n if (addToWebPageSearch) {\n addToWebPageSearch.onclick = () => this.addToWebPageSearch(term)\n }\n\n const createObservation = this.$refs.createObservation as HTMLElement\n if (createObservation) {\n createObservation.onclick = () => this.createObservation()\n }\n\n const enrich = this.$refs.enrich as HTMLElement\n if (enrich) {\n enrich.onclick = () => this.harvestPerson(term)\n }\n\n const addActiveAuthorElem = this.$refs.addActiveAuthor as HTMLElement\n if (addActiveAuthorElem) {\n addActiveAuthorElem.onclick = () => this.addActiveAuthor(term, value)\n }\n\n const disambiguate = this.$refs.disambiguate as HTMLElement\n if (disambiguate) {\n disambiguate.onclick = () => this.disambiguatePerson(term, value)\n }\n\n const removeOrganization = this.$refs.removeOrganization as HTMLElement\n if (removeOrganization) {\n removeOrganization.onclick = () => this.removeOrganization(term)\n }\n\n const removeTerm = this.$refs.removeTerm as HTMLElement\n if (removeTerm) {\n removeTerm.onclick = () => this.removeTerm(term)\n }\n\n const removeLocation = this.$refs.removeLocation as HTMLElement\n if (removeLocation) {\n removeLocation.onclick = () => this.removeLocation(term)\n }\n }, 0)\n })\n }\n\n private async addToWebPageSearch(domain: string) {\n const configuration = await configurationService.getConfiguration(this.investigation!.id)\n const sites = configuration.searchDefinition.webHarvestFromSites\n\n if (sites.some(it => it.includes(domain))) {\n return\n }\n\n sites.push(domain)\n\n await configurationService.setConfiguration(this.investigation!.id, configuration)\n }\n\n private createObservation() {\n openCreateObservationDialog(this, {\n type: \"Person\",\n referencedEntity: this.value!!.toString()\n })\n }\n\n private harvestPerson(title: string) {\n const investigation = getInvestigation(this.$store)!\n TopicInvestigationService.createPersonHarvests(investigation.id, [title])\n }\n\n private addActiveAuthor(title: string, id: string) {\n addActiveAuthor(this.$store, {activeAuthorId: id, activeAuthorName: title})\n }\n\n private disambiguatePerson(title: string, id: string) {\n const investigation = getInvestigation(this.$store)!\n setDisambiguatePersonName(this.$store, title)\n setDisambiguationPersonId(this.$store, id.toString())\n saveInvestigationState(this.$store)\n this.$router.push({path: \"disambiguate\"})\n fetchAllPersonData(this.$store)\n }\n\n private removeOrganization(name: string) {\n this.removeEntity(name, \"ORGANIZATION\", \"Organization\")\n }\n\n\n private removeTerm(name: string) {\n this.removeEntity(name, \"TERM\", \"Term\")\n }\n\n\n private removeLocation(name: string) {\n this.removeEntity(name, \"LOCATION\", \"Location\")\n }\n\n\n private removeEntity(name: string, entityType: MentionedEntityType, entityDescription: string) {\n const performRemoveEntity = async () => {\n const investigation = getInvestigation(this.$store)!!\n await investigationEntityService.removeEntities(investigation.id, { [name]: entityType })\n getGraphType(this.$store) === null ? await fetchAllData(this.$store) : await fetchGraphData(this.$store)\n }\n\n openConfirmationDialog({\n message: `You are about to remove the ${entityDescription.toLowerCase()} '${name}'. Are you sure?`,\n title: `Remove ${entityDescription}`,\n okText: \"Remove\",\n onOk: () => performRemoveEntity(),\n showCancel: true\n })\n }\n\n\n private openLabelMenu(button: HTMLElement, label: string) {\n this.labelContext = label\n this.$nextTick(() => this.$emit(\"openLabelMenu\", button))\n }\n\n private copyLabelToClipboard() {\n copyToClipboard(this.labelContext)\n this.$emit(\"closeLabelMenu\")\n }\n\n private renameLabel() {\n if (this.labelContext !== \"\") {\n // @ts-ignore\n (this.$refs.renameLabelDialog as RenameLabelDialog).open({\n label: this.labelContext,\n investigationType: this.investigationType,\n labelType: \"Document\"\n })\n this.$emit(\"closeLabelMenu\")\n }\n }\n\n private deleteLabel() {\n if (this.labelContext !== \"\") {\n openConfirmationDialog({\n message: `Are you sure you want to delete label \"${this.labelContext}\"?
This label will be removed from any document it was associated with.`,\n title: \"Delete Label\",\n okText: \"Delete Label\",\n onOk: () => this.performDeleteLabel(),\n showCancel: true\n })\n this.$emit(\"closeLabelMenu\")\n }\n }\n\n private bulkApplyLabel(add: boolean) {\n if (this.labelContext !== \"\") {\n openConfirmationDialog({\n message: `Are you sure you want to ${add ? \"add\" : \"remove\"} label \"${this.labelContext}\" ${add ? \"to\" : \"from\"} the current set of documents?`,\n title: `${add ? \"Add\" : \"Remove\"} Label`,\n okText: \"Apply\",\n onOk: () => this.performBulkApplyLabel(add),\n showCancel: true\n })\n this.$emit(\"closeLabelMenu\")\n }\n }\n\n private async refreshResults() {\n await fetchAllData(this.$store)\n this.$emit(\"documentsUpdated\")\n }\n\n private async performBulkApplyLabel(add: boolean) {\n const label = this.labelContext!!\n const {investigationType} = this\n await bulkApplyDocumentLabel(this.$store, {label, add, investigationType})\n await this.refreshResults()\n }\n\n private async performDeleteLabel() {\n const label = this.labelContext!!\n const {investigationType} = this\n await deleteDocumentLabel(this.$store, {label, investigationType})\n this.closeFilter(label)\n }\n\n private closeFilter(label: string) {\n const newSelectedTops = getSelectedTops(this.$store).filter(activeFilter => activeFilter.selectedValue !== label)\n setSelectedTops(this.$store, newSelectedTops)\n this.$emit(\"closeLabelsMenu\")\n this.$parent.$emit(\"refresh-documents\")\n }\n\n private graphTitle(graph: BarGraphModel): string {\n if (this.isInPersonProfile) {\n if (graph.title === \"Classifications\") {\n return \"Publication Types\"\n }\n if (graph.title === \"Authors\") {\n return \"Co-Authors\"\n }\n if (graph.title === \"Institutes of Authors\") {\n return \"Institutes\"\n }\n if (graph.title === \"Countries of Author Institutes\") {\n return \"Countries\"\n }\n }\n return graph.title\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BarGraph.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BarGraph.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BarGraph.vue?vue&type=template&id=222a4a78&\"\nimport script from \"./BarGraph.vue?vue&type=script&lang=ts&\"\nexport * from \"./BarGraph.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BarGraph.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport 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('section',{staticClass:\"date-filter\"},[(_vm.showTitle)?_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))]):_vm._e(),_c('div',{ref:\"svg\",staticClass:\"graph-container\",class:{'higher': _vm.higher}},[(_vm.histogram.bars.length === 0)?_c('h4',{staticClass:\"no-data-available\"},[_vm._v(\"No data available\")]):_c('div',{staticClass:\"graph-and-popup-container\"},[(_vm.popupContent)?_c('div',{staticClass:\"hover-popup\",style:({top: _vm.popupTop, left: _vm.popupLeft})},[_c('span',[_vm._v(_vm._s(_vm.popupContent))]),_c('span',{staticClass:\"arrow\"})]):_vm._e(),_c('svg',{staticClass:\"graph\",on:{\"dblclick\":function($event){return _vm.cancelHandleFilter($event)},\"mousedown\":function($event){return _vm.startDrag($event)},\"mouseleave\":function($event){return _vm.onMouseLeave($event)},\"mousemove\":function($event){return _vm.onMouseMove($event)},\"mouseup\":function($event){return _vm.endDrag($event)}}},[_c('defs',[_c('linearGradient',{attrs:{\"id\":\"bar-gradient-total\",\"x1\":\"0\",\"x2\":\"0\",\"y1\":\"0\",\"y2\":\"1\"}},[_c('stop',{staticClass:\"bar-gradient-total-stop1\",attrs:{\"offset\":\"0\"}}),_c('stop',{staticClass:\"bar-gradient-total-stop2\",attrs:{\"offset\":\"1\"}})],1),_c('linearGradient',{attrs:{\"id\":\"bar-gradient-relevant\",\"x1\":\"0\",\"x2\":\"0\",\"y1\":\"0\",\"y2\":\"1\"}},[_c('stop',{staticClass:\"bar-gradient-relevant-stop1\",attrs:{\"offset\":\"0\"}}),_c('stop',{staticClass:\"bar-gradient-relevant-stop2\",attrs:{\"offset\":\"1\"}})],1),_c('linearGradient',{attrs:{\"id\":\"bar-gradient-relevant-hover\",\"x1\":\"0\",\"x2\":\"0\",\"y1\":\"0\",\"y2\":\"1\"}},[_c('stop',{staticClass:\"bar-gradient-relevant-hover-stop1\",attrs:{\"offset\":\"0%\"}}),_c('stop',{staticClass:\"bar-gradient-relevant-hover-stop2\",attrs:{\"offset\":\"100%\"}})],1),_c('linearGradient',{attrs:{\"id\":\"bar-gradient-out-total\",\"x1\":\"0\",\"x2\":\"0\",\"y1\":\"0\",\"y2\":\"1\"}},[_c('stop',{staticClass:\"bar-gradient-out-total-stop1\",attrs:{\"offset\":\"0%\"}}),_c('stop',{staticClass:\"bar-gradient-out-total-stop2\",attrs:{\"offset\":\"100%\"}})],1),_c('linearGradient',{attrs:{\"id\":\"bar-gradient-out-relevant-hover\",\"x1\":\"0\",\"x2\":\"0\",\"y1\":\"0\",\"y2\":\"1\"}},[_c('stop',{staticClass:\"bar-gradient-out-relevant-hover-stop1\",attrs:{\"offset\":\"0%\"}}),_c('stop',{staticClass:\"bar-gradient-out-relevant-hover-stop2\",attrs:{\"offset\":\"100%\"}})],1)],1),_vm._l((_vm.histogram.bars),function(bar,index){return _c('g',[_c('rect',{staticClass:\"bar total\",class:{'out': index < _vm.minHandle() || index > _vm.maxHandle(), 'hover': index === _vm.popupIndex},attrs:{\"data-index\":index,\"height\":bar.totalScore * _vm.heightUnit,\"width\":_vm.barWidth,\"x\":index * _vm.totalBarWidth + _vm.sideMargin,\"y\":_vm.baselineHeight - bar.totalScore * _vm.heightUnit}}),_c('rect',{staticClass:\"bar relevant\",class:{'out': index < _vm.minHandle() || index > _vm.maxHandle(), 'hover': index === _vm.popupIndex},attrs:{\"data-index\":index,\"height\":bar.relevantScore * _vm.heightUnit,\"width\":_vm.barWidth,\"x\":index * _vm.totalBarWidth + _vm.sideMargin,\"y\":_vm.baselineHeight - bar.relevantScore * _vm.heightUnit}})])}),_c('line',{staticClass:\"base-line\",attrs:{\"y1\":_vm.baselineHeight,\"y2\":_vm.baselineHeight,\"x1\":\"0\",\"x2\":\"100%\"}}),_c('line',{staticClass:\"base-line-inner\",attrs:{\"x1\":_vm.sideMargin + _vm.minHandle() * _vm.totalBarWidth + _vm.barWidth / 2,\"x2\":_vm.sideMargin + _vm.maxHandle() * _vm.totalBarWidth + _vm.barWidth / 2,\"y1\":_vm.baselineHeight,\"y2\":_vm.baselineHeight}}),_c('text',{staticClass:\"year-selector-text\",attrs:{\"x\":_vm.sideMargin + _vm.filterHandle1 * _vm.totalBarWidth + _vm.barWidth / 2 - _vm.textGap,\"y\":_vm.baselineHeight + 30}},[_vm._v(_vm._s(_vm.histogram.bars[_vm.filterHandle1].year)+\" \")]),_c('text',{staticClass:\"year-selector-text\",attrs:{\"x\":_vm.sideMargin + _vm.filterHandle2 * _vm.totalBarWidth + _vm.barWidth / 2 + _vm.textGap,\"y\":_vm.baselineHeight + 30}},[_vm._v(_vm._s(_vm.histogram.bars[_vm.filterHandle2].year)+\" \")]),_c('rect',{staticClass:\"year-selector handle1\",attrs:{\"x\":_vm.sideMargin + _vm.filterHandle1 * _vm.totalBarWidth + _vm.barWidth / 2 - 12,\"fill\":\"#00B0FF\",\"fill-opacity\":\"0\",\"height\":\"25\",\"width\":\"25\",\"y\":\"85\"}}),_c('polygon',{staticClass:\"year-selector handle1\",attrs:{\"points\":_vm.handlePoints(_vm.filterHandle1),\"fill\":\"#00B0FF\"}}),_c('rect',{staticClass:\"year-selector handle2\",attrs:{\"x\":_vm.sideMargin + _vm.filterHandle2 * _vm.totalBarWidth + _vm.barWidth / 2 - 12,\"fill\":\"#00B0FF\",\"fill-opacity\":\"0\",\"height\":\"25\",\"width\":\"25\",\"y\":\"85\"}}),_c('polygon',{staticClass:\"year-selector handle2\",attrs:{\"points\":_vm.handlePoints(_vm.filterHandle2),\"fill\":\"#00B0FF\"}})],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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {DateHistogram} from \"@/types/investigations\"\nimport {getDateFilterEnd, getDateFilterStart, getDateHistogram, setDateFilterYears} from \"@/store/investigation/date-filter-module\"\nimport {Prop, Watch} from \"vue-property-decorator\"\nimport {fetchGraphData, getIsInProfile} from \"@/store/investigation/investigation-module\"\nimport {getGraphType} from \"@/store/investigation/graph-module\"\n\n@Component\nexport default class DateFilter extends Vue {\n\n private barWidth: number = 0\n private totalBarWidth = 0\n private sideMargin: number = 0\n private heightUnit: number = 0\n private filterHandle1: number = 0\n private filterHandle2: number = 0\n private baselineHeight: number = 0\n private popupContent: string | null = null\n private popupLeft: string = \"\"\n private popupTop: string = \"\"\n private popupIndex: number = -1\n private selectedElement: SVGElement | null = null\n private draggingHandle1: boolean = false\n private dragStartBarIndex: number = 0\n private textGap: number = 0\n\n @Prop({type: Boolean, default: true})\n private showTitle!: boolean\n\n @Prop({type: Boolean, default: false})\n private higher!: boolean\n\n get histogram(): DateHistogram {\n return getDateHistogram(this.$store)\n }\n\n private get title(): string {\n if (getIsInProfile(this.$store)) {\n return \"Publications per Year\"\n }\n return \"Relevance per Year\"\n }\n\n private mounted() {\n this.initViewProperties()\n }\n\n private handlePoints(handle: number): string {\n const baseX = this.sideMargin + handle * this.totalBarWidth + this.barWidth / 2\n const baseY = this.higher ? 83 : 0\n const firstPoint = {x: baseX, y: 87 + baseY}\n const secondPoint = {x: baseX + 7, y: 95 + baseY}\n const thirdPoint = {x: baseX - 7, y: 95 + baseY}\n return `${firstPoint.x} ${firstPoint.y}, ${secondPoint.x} ${secondPoint.y}, ${thirdPoint.x} ${thirdPoint.y}`\n }\n\n @Watch(\"histogram\")\n private updateHistogram() {\n const canvas = this.$refs.svg as HTMLDivElement\n const interval = setInterval(() => {\n if (canvas && canvas.clientWidth && canvas.clientHeight) {\n clearInterval(interval)\n this.initViewProperties()\n }\n }, 100)\n }\n\n\n private initViewProperties() {\n const canvas = this.$refs.svg as HTMLDivElement\n const bars = getDateHistogram(this.$store).bars\n const shouldInitProperties = canvas && canvas.clientWidth && canvas.clientHeight && bars.length\n if (!shouldInitProperties) {\n return\n }\n\n this.sideMargin = 35\n const bottomGap = 30\n const barGap = Math.round((canvas.clientWidth - this.sideMargin * 2) / bars.length * 0.2)\n // console.log(\"canvas.clientWidth: \", canvas.clientWidth, \"bars.length: \", bars.length, \"canvas.clientHeight: \", canvas.clientHeight, canvas.getBoundingClientRect())\n this.barWidth = (canvas.clientWidth + barGap - this.sideMargin * 2) / bars.length - barGap\n if (this.barWidth > 20) {\n this.sideMargin += ((this.barWidth - 20) * bars.length) / 2\n this.barWidth = 20\n }\n\n this.totalBarWidth = barGap + this.barWidth\n this.baselineHeight = canvas.clientHeight - bottomGap\n this.heightUnit = canvas.clientHeight - bottomGap\n\n const dateHistogram = getDateHistogram(this.$store)\n\n const histogramStart = dateHistogram.bars[0].year\n const userSelectionStart = getDateFilterStart(this.$store) || histogramStart\n const start = Math.max(userSelectionStart, histogramStart)\n this.filterHandle1 = bars.findIndex(bar => bar.year === start)\n\n const histogramEnd = dateHistogram.bars[dateHistogram.bars.length - 1].year\n const userSelectionEnd = getDateFilterEnd(this.$store) || histogramEnd\n const end = Math.min(userSelectionEnd, histogramEnd)\n this.filterHandle2 = bars.findIndex(bar => bar.year === end)\n\n this.updateTextGap()\n }\n\n\n private minHandle(): number {\n return Math.min(this.filterHandle1, this.filterHandle2)\n }\n\n\n private maxHandle(): number {\n return Math.max(this.filterHandle1, this.filterHandle2)\n }\n\n\n private onMouseLeave() {\n this.closePopup()\n }\n\n\n private onMouseMove(event: MouseEvent) {\n if (this.selectedElement) {\n if (event.buttons === 0) {\n this.selectedElement = null\n } else {\n this.closePopup()\n this.drag(event)\n }\n } else {\n const barIndex = Math.trunc((event.offsetX - this.sideMargin) / this.totalBarWidth)\n if (barIndex >= 0 && barIndex < this.histogram.bars.length) {\n const bar = this.histogram.bars[barIndex]\n const canvas = this.$refs.svg as HTMLDivElement\n\n const nounForm = bar.totalCount === 1 ? \"Publication\" : \"Publications\"\n const boundingRect = canvas.getBoundingClientRect()\n this.popupContent = `${bar.relevantCount} of ${bar.totalCount} ${nounForm} - ${bar.year}`\n this.popupLeft = (this.sideMargin + barIndex * this.totalBarWidth + this.barWidth / 2 + boundingRect.left) + \"px\"\n this.popupTop = ((this.baselineHeight - bar.totalScore * this.heightUnit) * 0.6 + boundingRect.top) + \"px\"\n this.popupIndex = barIndex\n } else {\n this.closePopup()\n }\n }\n }\n\n\n private closePopup() {\n this.popupContent = null\n this.popupIndex = -1\n }\n\n\n private startDrag(event: MouseEvent) {\n const target = event.target as SVGElement\n if (target.classList.contains(\"year-selector\")) {\n this.selectedElement = target\n this.draggingHandle1 = target.classList.contains(\"handle1\")\n this.dragStartBarIndex = this.calculateBarIndex(event)\n document.getElementsByTagName(\"html\")[0].classList.add(\"no-select\")\n document.onmouseup = this.endDrag\n }\n }\n\n\n private drag(event: MouseEvent) {\n event.preventDefault()\n\n const barIndex = this.calculateBarIndex(event)\n\n if (this.draggingHandle1) {\n this.filterHandle1 = barIndex\n } else {\n this.filterHandle2 = barIndex\n }\n\n this.updateTextGap()\n }\n\n\n private calculateBarIndex(event: MouseEvent) {\n let barIndex = Math.trunc((event.offsetX - this.sideMargin) / this.totalBarWidth)\n barIndex = Math.max(barIndex, 0)\n barIndex = Math.min(barIndex, this.histogram.bars.length - 1)\n return barIndex\n }\n\n private cancelHandleFilter(event: MouseEvent) {\n const target = event.target as SVGElement\n if (!target.classList.contains(\"year-selector\")) {\n return\n }\n\n const handlesOverlap = this.filterHandle1 === this.filterHandle2\n\n if (handlesOverlap) {\n this.filterHandle1 = 0\n this.filterHandle2 = this.histogram.bars.length - 1\n\n } else {\n [this.filterHandle1, this.filterHandle2] = [this.minHandle(), this.maxHandle()]\n\n const handle1Element = event.target as HTMLElement\n const isHandle1 = handle1Element.classList.contains(\"handle1\")\n\n if (isHandle1) {\n this.filterHandle1 = 0\n } else {\n this.filterHandle2 = this.histogram.bars.length - 1\n }\n }\n\n this.reloadData(null, null)\n }\n\n\n private endDrag(event: MouseEvent) {\n if (this.selectedElement === null) {\n const hoveredBar = document.querySelector(\"rect.bar:hover\")\n if (hoveredBar) {\n const [lastFilterHandle1, lastFilterHandle2] = [this.filterHandle1, this.filterHandle2]\n\n const index: number = parseInt(hoveredBar.getAttribute(\"data-index\")!!, 10)\n if (lastFilterHandle1 !== index || lastFilterHandle2 !== index) {\n this.filterHandle1 = index\n this.filterHandle2 = index\n\n const year = this.histogram.bars[index].year\n\n this.reloadData(year, year)\n }\n }\n } else {\n const firstYear = this.histogram.bars[0].year\n const start = this.minHandle() > 0 ? this.minHandle() + firstYear : null\n const end = this.maxHandle() < this.histogram.bars.length - 1 ? this.maxHandle() + firstYear : null\n\n if (this.hasElementMoved(event)) {\n this.reloadData(start, end)\n }\n\n this.selectedElement = null\n document.getElementsByTagName(\"html\")[0].classList.remove(\"no-select\")\n document.onmouseup = null\n }\n }\n\n private hasElementMoved(event: MouseEvent): boolean {\n const newBarIndex = this.calculateBarIndex(event)\n return this.dragStartBarIndex !== newBarIndex\n }\n\n private async reloadData(start: number | null, end: number | null) {\n setDateFilterYears(this.$store, {start, end})\n getGraphType(this.$store) === null ? await this.$parent.$emit(\"refresh-documents\") : await fetchGraphData(this.$store)\n }\n\n private updateTextGap() {\n const filterDiff = this.filterHandle2 - this.filterHandle1\n const absFilterDiff = Math.abs(filterDiff * this.totalBarWidth)\n if (absFilterDiff < 40) {\n this.textGap = Math.sign(filterDiff) * (40 - absFilterDiff) / 2\n } else {\n this.textGap = 0\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateFilter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateFilter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DateFilter.vue?vue&type=template&id=4f1babcc&scoped=true&\"\nimport script from \"./DateFilter.vue?vue&type=script&lang=ts&\"\nexport * from \"./DateFilter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DateFilter.vue?vue&type=style&index=0&id=4f1babcc&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 \"4f1babcc\",\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',{staticClass:\"bar-graph-container\",class:{'expanded': _vm.expanded}},[_c('div',{staticClass:\"title-pane\",on:{\"click\":function($event){_vm.expanded = !_vm.expanded}}},[_c('div',{staticClass:\"title\"},[_vm._v(\"Displayed Results\")]),_c('div',{staticClass:\"buttons\"},[_c('button',{staticClass:\"action-button context-menu-opener\",on:{\"click\":function($event){$event.stopPropagation();return _vm.openContextMenu($event.target)}}},[_vm._v(\"...\")]),_c('button',{staticClass:\"expand-button\",class:{'expanded': _vm.expanded}})])]),_c('transition-group',{staticClass:\"document-labels\",attrs:{\"tag\":\"section\",\"name\":\"bar-container\"}},_vm._l((_vm.labels),function(label){return _c('div',{key:label,staticClass:\"document-label\"},[_c('div',{staticClass:\"selector\",class:{checked: _vm.isSelected(label)},on:{\"click\":function($event){return _vm.selectLabel(label)}}}),_c('div',{staticClass:\"bar-title\",class:{bolded: _vm.isSelected(label)},attrs:{\"title\":\"\"},on:{\"click\":function($event){return _vm.selectLabel(label)}}},[_vm._v(\" \"+_vm._s(_vm.getLabelCaption(label))+\" \")])])}),0),_c('PopupMenu',{attrs:{\"event\":\"openContextMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.markCurrentAsRead}},[_vm._v(\"Mark current documents as read\")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import {DisplayedResultsStatus} from \"@/types/investigations\"\n\nexport const getLabelText = (label: DisplayedResultsStatus): string => {\n switch (label) {\n case \"Unread\": return \"Unread\"\n case \"Annotated\": return \"Starred / Annotated / Labeled\"\n case \"Relevant\": return \"Liked\"\n case \"Irrelevant\": return \"Disliked\"\n default: return \"All\"\n }\n}\n","\n\n\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 Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {\n fetchAllData,\n fetchGraphData,\n getDisplayedResultsStatus,\n getInvestigation,\n setDisplayedResultsStatus\n} from \"@/store/investigation/investigation-module\"\nimport {getGraphType} from \"@/store/investigation/graph-module\"\nimport {DisplayedResultsStatus} from \"@/types/investigations\"\nimport {getLabelText} from \"@/components/filter/DocumentLabelFilterUtil\"\nimport {bulkMarkRead, getTopsExpansion, setTopExpanded} from \"@/store/investigation/documents-module\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\n\ninterface DocumentLabel {\n readonly id: DisplayedResultsStatus,\n readonly caption: string\n}\n\n\n@Component({\n components: {PopupMenu}\n})\nexport default class DocumentDisplayedResultsFilter extends Vue {\n\n private get expanded(): boolean {\n return getTopsExpansion(this.$store)[\"predefined.DocumentLabel\"]\n }\n\n private set expanded(isExpanded: boolean) {\n setTopExpanded(this.$store, {type: \"predefined.DocumentLabel\", isExpanded})\n }\n\n private openContextMenu(button: HTMLElement) {\n this.$nextTick(() => this.$emit(\"openContextMenu\", button))\n }\n\n private get labels(): string[] {\n const personInvestigationLabels = [\"Unread\", \"Annotated\"]\n const topicInvestigationLabels = personInvestigationLabels.concat(\"Relevant\", \"Irrelevant\")\n return this.isInTopicInvestigation ? topicInvestigationLabels : personInvestigationLabels\n }\n\n private get isInTopicInvestigation() {\n return getInvestigation(this.$store)!.investigationType === \"Topic\"\n }\n\n private get selectedLabel(): DisplayedResultsStatus {\n return getDisplayedResultsStatus(this.$store)\n }\n\n private isSelected(label: string): boolean {\n return this.selectedLabel === label\n }\n\n private async selectLabel(label: string) {\n const isDeselectingOption = this.selectedLabel === label\n const newLabel: DisplayedResultsStatus = isDeselectingOption ? \"All\" : label as DisplayedResultsStatus\n setDisplayedResultsStatus(this.$store, newLabel)\n getGraphType(this.$store) === null ? await this.$parent.$emit(\"refresh-documents\") : await fetchGraphData(this.$store)\n }\n\n private getLabelCaption(label: DisplayedResultsStatus): string {\n return getLabelText(label)\n }\n\n private async markCurrentAsRead() {\n const investigation = getInvestigation(this.$store)!!\n await bulkMarkRead(this.$store, investigation?.investigationType)\n await fetchAllData(this.$store)\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentDisplayedResultsFilter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentDisplayedResultsFilter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DocumentDisplayedResultsFilter.vue?vue&type=template&id=6b7aff60&scoped=true&\"\nimport script from \"./DocumentDisplayedResultsFilter.vue?vue&type=script&lang=ts&\"\nexport * from \"./DocumentDisplayedResultsFilter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DocumentDisplayedResultsFilter.vue?vue&type=style&index=0&id=6b7aff60&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b7aff60\",\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\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport BarGraph from \"@/components/BarGraph.vue\"\nimport DateFilter from \"@/components/filter/DateFilter.vue\"\nimport DocumentDisplayedResultsFilter from \"@/components/filter/DocumentDisplayedResultsFilter.vue\"\nimport {BarGraphModel, BarModel, RegionBarModel, ScoredAffiliationEntity, ScoredAuthorEntity, ScoredNameEntity, ScoredRegionEntity, SelectedTop} from \"@/types/investigations\"\nimport {\n fetchGraphData,\n getDisplayedResultsStatus,\n getFilterByResearchers,\n getFilterToUnaffiliated,\n getFilterToDuplicates,\n getFreeTextFilter,\n getIsLoadingInvestigation,\n getJournals,\n getSelectedTops,\n getTopAffiliationGeographies,\n getTopAuthors,\n getTopClassifications,\n getTopConcepts,\n getTopConferences,\n getTopDomains,\n getTopEmails,\n getTopInstitutions,\n getTopLabels,\n getTopLanguages,\n getTopLexemes,\n getTopLocations,\n getTopOrganizations,\n getTopPersons,\n getTopRegions,\n getTopTerms,\n getTotalDocumentCount,\n setDisplayedResultsStatus,\n setFilterByResearchers,\n setFilterToDuplicates,\n setFilterToUnaffiliated,\n setFreeTextFilter,\n setSelectedTops,\n getFilterToUnknownPublishers,\n setFilterToUnknownPublishers,\n clearFilters,\n getFilterToSpecificUrls,\n setFilterToSpecificUrls,\n getFilterToMissingVolume,\n getFilterToMissingDate,\n setFilterToMissingVolume,\n setFilterToMissingDate\n} from \"@/store/investigation/investigation-module\"\nimport {getDateFilterEnd, getDateFilterStart, getDateHistogram, setDateFilterYears} from \"@/store/investigation/date-filter-module\"\nimport {getGraphType} from \"@/store/investigation/graph-module\"\nimport {getLabelText} from \"@/components/filter/DocumentLabelFilterUtil\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport CreateTermTemplate from \"@/views/investigation/templates/CreateTermTemplate.vue\"\nimport {InvestigationMixin} from \"@/store/investigation-mixin\"\n\n@Component({\n components: {BarGraph, DateFilter, DocumentLabelFilter: DocumentDisplayedResultsFilter, PopupMenu, CreateTermTemplate}\n})\nexport default class TopsPane extends mixins(Vue, InvestigationMixin) {\n\n private localFreeText: string = \"\"\n private newTerm: string = \"\"\n\n get showDateHistogram(): boolean {\n return getDateHistogram(this.$store).bars.length > 0 && !getIsLoadingInvestigation(this.$store)\n }\n\n private get displayTopsPane() {\n return getGraphType(this.$store) != null || ((this.hasDocuments || this.hasFiltersApplied))\n }\n\n private get hasDocuments(): boolean {\n return getTotalDocumentCount(this.$store) > 0\n }\n\n private get hasFiltersApplied(): boolean {\n return this.hasFreeTextFilter || this.hasDisplayStatusFilter || this.hasTopFilter || this.hasDateFilter ||\n this.hasFilterByResearchers || this.hasFilterToUnknownPublishers || this.hasFilterToDuplicates ||\n this.hasFilterToDuplicates || this.hasSpecificUrlsFilter || this.hasFilterToMissingVolume ||\n this.hasFilterToMissingDate\n }\n\n private get shouldShowFreeTextSearchButton() {\n return this.freeText === null || this.freeText !== this.localFreeText\n }\n\n private get freeText(): string | null {\n return getFreeTextFilter(this.$store)\n }\n\n private set freeText(value: string | null) {\n if (value === \"\") {\n value = null\n }\n setFreeTextFilter(this.$store, value)\n }\n\n private get hasFreeTextFilter() {\n return this.freeText !== null\n }\n\n private get hasFilterByResearchers() {\n return getFilterByResearchers(this.$store)\n }\n\n private get hasFilterToDuplicates() {\n return getFilterToDuplicates(this.$store)\n }\n\n private get hasFilterToUnaffiliated() {\n return getFilterToUnaffiliated(this.$store)\n }\n\n private get hasFilterToUnknownPublishers() {\n return getFilterToUnknownPublishers(this.$store)\n }\n\n private get hasFilterToMissingVolume() {\n return getFilterToMissingVolume(this.$store)\n }\n\n private get hasFilterToMissingDate() {\n return getFilterToMissingDate(this.$store)\n }\n\n private get hasSpecificUrlsFilter() {\n return getFilterToSpecificUrls(this.$store).length > 0\n }\n\n private get hasDisplayStatusFilter() {\n return getDisplayedResultsStatus(this.$store) !== \"All\"\n }\n\n private get labelFilterText() {\n return getLabelText(getDisplayedResultsStatus(this.$store)!!)\n }\n\n private get hasDateFilter() {\n return getDateFilterStart(this.$store) != null || getDateFilterEnd(this.$store) != null\n }\n\n private get dateFilterText() {\n const bars = getDateHistogram(this.$store).bars\n const start = getDateFilterStart(this.$store) != null ? getDateFilterStart(this.$store) : (bars.length > 0 ? bars[0].year : \"\")\n const end = getDateFilterEnd(this.$store) != null ? getDateFilterEnd(this.$store) : (bars.length > 0 ? bars[bars.length - 1].year : \"\")\n return start === end ? end : `${start} - ${end}`\n }\n\n private get hasTopFilter() {\n return this.selectedTops.length > 0\n }\n\n private get selectedTops() {\n return getSelectedTops(this.$store)\n }\n\n private get graphs(): BarGraphModel[] {\n const graphs: BarGraphModel[] = []\n\n if (!this.isInReviewProfile) {\n this.addGraph(graphs, \"Labels\", \"predefined.Labels\", getTopLabels(this.$store))\n }\n this.addLanguageGraph(graphs, \"Languages\", \"predefined.Languages\", getTopLanguages(this.$store))\n this.addGraph(graphs, \"Classifications\", \"predefined.Classifications\", getTopClassifications(this.$store))\n if (!this.isInPersonProfile) {\n this.addGraph(graphs, \"Domains\", \"predefined.Domains\", getTopDomains(this.$store))\n }\n this.addAuthorGraph(graphs, \"Authors\", \"predefined.Persons\", getTopAuthors(this.$store))\n this.addGraph(graphs, \"Journals\", \"predefined.Journals\", getJournals(this.$store))\n this.addGraph(graphs, \"Conference Proceedings\", \"predefined.Conferences\", getTopConferences(this.$store))\n this.addAffiliationGraph(graphs, \"Institutes of Authors\", \"predefined.Institutions\", getTopInstitutions(this.$store))\n if (!this.isInPersonProfile) {\n this.addRegionGraph(graphs, \"Regions of Authors\", \"predefined.Regions\", getTopRegions(this.$store))\n }\n this.addGraph(graphs, \"Countries of Author Institutes\", \"predefined.Affiliation Geographies\", getTopAffiliationGeographies(this.$store))\n this.addGraph(graphs, \"Emails\", \"predefined.Email\", getTopEmails(this.$store))\n this.addGraph(graphs, \"Mentioned Terms\", \"predefined.Mentioned Terms\", getTopTerms(this.$store))\n this.addGraph(graphs, \"Mentioned People\", \"entity.Mentioned Persons\", getTopPersons(this.$store))\n this.addGraph(graphs, \"Mentioned Organizations\", \"entity.Mentioned Organizations\", getTopOrganizations(this.$store))\n this.addGraph(graphs, \"Mentioned Locations\", \"entity.Mentioned Locations\", getTopLocations(this.$store))\n this.addGraph(graphs, \"Mentioned Concepts\", \"entity.Mentioned Concepts\", getTopConcepts(this.$store))\n\n getTopLexemes(this.$store).forEach(topLexeme => {\n this.addGraph(graphs, topLexeme.displayName, topLexeme.name, topLexeme.lexemeScores)\n })\n\n return graphs\n }\n\n private async getAllData() {\n getGraphType(this.$store) === null ? await this.$emit(\"refresh-documents\") : await fetchGraphData(this.$store)\n }\n\n private setNewTerm(term: string) {\n this.newTerm = term\n }\n\n private async clearFilters() {\n clearFilters(this.$store)\n this.localFreeText = \"\"\n this.getAllData()\n }\n\n private searchFreeText() {\n this.freeText = this.localFreeText = this.localFreeText.trim()\n this.getAllData()\n }\n\n private clearFreeTextSearch() {\n this.freeText = null\n this.localFreeText = \"\"\n this.getAllData()\n }\n\n private clearResearchersFilter() {\n setFilterByResearchers(this.$store, false)\n this.getAllData()\n }\n\n private clearDuplicatesFilter() {\n setFilterToDuplicates(this.$store, false)\n this.getAllData()\n }\n\n private clearUnaffiliatedFilter() {\n setFilterToUnaffiliated(this.$store, false)\n this.getAllData()\n }\n\n private clearUnknownPublishersFilter() {\n setFilterToUnknownPublishers(this.$store, false)\n this.getAllData()\n }\n\n private clearMissingVolumeFilter() {\n setFilterToMissingVolume(this.$store, false)\n this.getAllData()\n }\n\n private clearMissingDateFilter() {\n setFilterToMissingDate(this.$store, false)\n this.getAllData()\n }\n\n private clearSpecificUrlsFilter() {\n setFilterToSpecificUrls(this.$store, [])\n this.getAllData()\n }\n\n private async closeLabelFilter() {\n setDisplayedResultsStatus(this.$store, \"All\")\n this.getAllData()\n }\n\n private async closeDateFilter() {\n setDateFilterYears(this.$store, {start: null, end: null})\n this.getAllData()\n }\n\n private async closeFilter(filter: SelectedTop) {\n setSelectedTops(this.$store, this.selectedTops.filter(activeFilter => activeFilter.name !== filter.name || activeFilter.selectedValue !== filter.selectedValue))\n this.getAllData()\n }\n\n private topName(top: SelectedTop) {\n const topGraph = this.graphs.find(graph => graph.type === top.name)\n return topGraph ? topGraph.title : top.name\n }\n\n private addGraph(graphs: BarGraphModel[], title: string, type: string, tops: ScoredNameEntity[]) {\n if (tops.length > 0) {\n graphs.push(new BarGraphModel(title, type, tops.map(top => new BarModel(top.name, top.totalScore, top.relevantScore, top.totalCount, top.relevantCount, \"\", top.name))))\n }\n }\n\n private addLanguageGraph(graphs: BarGraphModel[], title: string, type: string, tops: ScoredNameEntity[]) {\n if (tops.length > 1 || (tops.length === 1 && tops[0].name !== \"English\")) {\n graphs.push(new BarGraphModel(title, type, tops.map(top => new BarModel(top.name, top.totalScore, top.relevantScore, top.totalCount, top.relevantCount, \"\", top.name))))\n }\n }\n\n private addAuthorGraph(graphs: BarGraphModel[], title: string, type: string, tops: ScoredAuthorEntity[]) {\n if (tops.length > 0) {\n graphs.push(new BarGraphModel(title, type, tops.map(top => new BarModel(top.author.name, top.totalScore, top.relevantScore, top.totalCount, top.relevantCount, top.author.id, top.author.id))))\n }\n }\n\n private addAffiliationGraph(graphs: BarGraphModel[], title: string, type: string, tops: ScoredAffiliationEntity[]) {\n if (tops.length > 0) {\n graphs.push(new BarGraphModel(title, type, tops.map(top => new BarModel(top.affiliation.name, top.totalScore, top.relevantScore, top.totalCount, top.relevantCount, top.affiliation.title, top.affiliation.name))))\n }\n }\n\n private addRegionGraph(graphs: BarGraphModel[], title: string, type: string, tops: ScoredRegionEntity[]) {\n if (tops.length > 0) {\n graphs.push(new BarGraphModel(title, type, tops.map(top => new RegionBarModel(top.region.name, top.totalScore, top.relevantScore, top.totalCount, top.relevantCount, \"\", top.region.code, top.region.name))))\n }\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopsPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopsPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TopsPane.vue?vue&type=template&id=56a5691a&scoped=true&\"\nimport script from \"./TopsPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./TopsPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TopsPane.vue?vue&type=style&index=0&id=56a5691a&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 \"56a5691a\",\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',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isBusy || _vm.allTermGroups.length),expression:\"!isBusy || allTermGroups.length\"}],staticClass:\"terms-pane\"},[_c('div',{staticClass:\"sticky\"},[_c('div',{staticClass:\"title-container\"},[_c('span',{staticClass:\"title\"},[_vm._v(\"Search Definition\")]),_c('button',{staticClass:\"action-button terms-menu-opener\",attrs:{\"title\":\"Create Term Group\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.openMainMenu($event.target)}}}),_c('PopupMenu',{attrs:{\"event\":\"openMainMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.openCreateGroupDialog}},[_vm._v(\"Create New Group\")]),(_vm.isShowPredefinedTermGroups)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.openAddPredefinedTermGroupsDialog}},[_vm._v(\"Add Predefined Groups\")]):_vm._e()])],1),(_vm.filterItems.length)?_c('div',{staticClass:\"active-filters-container\"},[_c('div',{staticClass:\"active-filters\"},_vm._l((_vm.filterItems),function(filterItem){return _c('div',{key:filterItem.type + filterItem.name,staticClass:\"filter\",class:filterItem.type,attrs:{\"title\":(\"\" + (filterItem.name))},on:{\"click\":function($event){return _vm.closeFilterItem(filterItem)}}},[_vm._v(_vm._s(filterItem.name))])}),0)]):_vm._e(),_c('div',{staticClass:\"active-add-container\",class:{margined: !_vm.filterItems.length}},[_c('div',{staticClass:\"input-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newTerm),expression:\"newTerm\"}],staticClass:\"active-add-input\",attrs:{\"placeholder\":\"Add Term...\",\"type\":\"text\"},domProps:{\"value\":(_vm.newTerm)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.addTerm.apply(null, arguments)},\"input\":function($event){if($event.target.composing){ return; }_vm.newTerm=$event.target.value}}}),_c('div',{staticClass:\"add-term-buttons\"},[_c('button',{ref:\"addTermButton\",staticClass:\"control-button add\",class:{'active': _vm.typedNewTerm && !_vm.termExists},on:{\"click\":_vm.addTerm}})])])])]),_c('div',{staticClass:\"terms-pane-inner\"},[_c('div',{staticClass:\"active-pane box\"},[_c('PopupMenu',{attrs:{\"event\":\"openTermGroupMenu\"}},[_c('div',{staticClass:\"menu-item\",attrs:{\"data-test\":\"addBatch\"},on:{\"click\":_vm.openBatchTermsDialog}},[_vm._v(\"Add Multiple Terms…\")]),_c('div',{staticClass:\"menu-item\",attrs:{\"data-test\":\"copyToClipboard\"},on:{\"click\":_vm.copyGroupToClipboard}},[_vm._v(\"Copy to Clipboard\")]),_c('div',{staticClass:\"menu-item\",attrs:{\"data-test\":\"renameGroup\"},on:{\"click\":_vm.renameGroup}},[_vm._v(\"Rename Group\")]),_c('div',{staticClass:\"menu-item\",class:{'disabled': _vm.isDefaultGroupInContext},attrs:{\"data-test\":\"deleteGroup\"},on:{\"click\":_vm.deleteGroup}},[_vm._v(\"Delete Group\")])]),_c('PopupMenu',{attrs:{\"close-event\":\"closeSingleTermMenu\",\"event\":\"openSingleTermMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.copyTermToClipboard}},[_vm._v(\"Copy\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.renameTerm}},[_vm._v(\"Rename\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.googleIt}},[_vm._v(\"Google It\")]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-title\"},[_vm._v(\"Move Term to:\")]),_vm._l((_vm.termGroups),function(termGroup){return _c('div',{staticClass:\"menu-item choose-term-group\",class:{'disabled': _vm.isGroupDisabledForMove(termGroup)},on:{\"click\":function($event){return _vm.moveToGroup(termGroup)}}},[_c('div',{staticClass:\"group-color\",style:({backgroundColor: _vm.getGroupColor(termGroup.color)})}),_c('div',{staticClass:\"group-name\"},[_vm._v(_vm._s(termGroup.name))])])}),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item create-term-group\",on:{\"click\":function($event){return _vm.moveToNewGroup(_vm.termContext, 'Regular')}}},[_c('div',{staticClass:\"new-group-icon\"}),_c('div',{staticClass:\"create-group-name\"},[_vm._v(\"Create Term Group\")])]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",attrs:{\"data-test\":\"deleteTerm\"},on:{\"click\":function($event){return _vm.removeTerm(_vm.termContext)}}},[_vm._v(\"Delete\")])],2),_c('BatchTermsDialog',{ref:\"batchTermsDialog\"}),_c('transition-group',{attrs:{\"name\":\"activeTerms\",\"tag\":\"div\"},on:{\"enter\":_vm.handleTransition,\"leave\":_vm.handleTransition}},_vm._l((_vm.termGroups),function(termGroup,index){return _c('div',{key:termGroup.id,staticClass:\"term-group\",class:{'expanded': _vm.expandedStates[termGroup.id]}},[_c('div',{staticClass:\"title\",style:({backgroundColor: _vm.getGroupColor(termGroup.color)}),on:{\"click\":function($event){_vm.expandedStates[termGroup.id] = !_vm.expandedStates[termGroup.id]}}},[_c('div',{staticClass:\"group-info\"},[_c('div',{staticClass:\"entity-icon-container\",on:{\"click\":function($event){$event.stopPropagation();return _vm.modifyTermGroup(termGroup, 'Regular')}}},[_c('div',{staticClass:\"entity-icon\",class:termGroup.modifier.toLowerCase(),attrs:{\"title\":termGroup.modifier}})]),_c('div',{staticClass:\"group-icon\"}),_c('div',{staticClass:\"group-name\",attrs:{\"title\":((termGroup.name) + \" (\" + (_vm.termsOf(termGroup).length) + \")\")}},[_vm._v(_vm._s(termGroup.name)+\" (\"+_vm._s(_vm.termsOf(termGroup).length)+\")\")])]),_c('div',{staticClass:\"group-buttons\"},[_c('div',{staticClass:\"action-button-pane always-visible\"},[_c('button',{staticClass:\"action-button mandatory\",class:{active: termGroup.modifier === 'Mandatory'},attrs:{\"title\":\"Mandatory\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.modifyTermGroup(termGroup, 'Mandatory')}}}),_c('button',{staticClass:\"action-button term-group-menu-opener\",on:{\"click\":function($event){$event.stopPropagation();return _vm.openTermGroupMenu($event.target, termGroup)}}})]),_c('button',{staticClass:\"expand-button\",class:{'expanded': _vm.expandedStates[termGroup.id]}})])]),_vm._l((_vm.termsOf(termGroup)),function(term,index){return _c('div',{key:term.term,ref:\"queryTerms\",refInFor:true,staticClass:\"active-entity\",class:{'last-entity': index === (_vm.terms.length - 1), 'term-container': true}},[_c('div',{staticClass:\"entity-icon-container\",on:{\"click\":function($event){return _vm.modifyTerm(term, 'Regular')}}},[_c('div',{staticClass:\"entity-icon\",class:term.modifier.toLowerCase(),attrs:{\"title\":term.modifier}})]),_c('div',{staticClass:\"term\",attrs:{\"title\":term.term}},[_c('span',{on:{\"click\":function($event){return _vm.queryTermClicked(term.term, index)}}},[_vm._v(_vm._s(term.term))])]),_c('div',{staticClass:\"action-button-pane\"},[_c('button',{staticClass:\"action-button mandatory\",class:{active: term.modifier === 'Mandatory'},attrs:{\"title\":\"Mandatory\"},on:{\"click\":function($event){return _vm.modifyTerm(term, 'Mandatory')}}}),_c('button',{staticClass:\"action-button boost\",class:{active: term.modifier === 'Boost'},attrs:{\"title\":\"Boost\"},on:{\"click\":function($event){return _vm.modifyTerm(term, 'Boost')}}}),_c('button',{staticClass:\"action-button penalty\",class:{active: term.modifier === 'Penalty'},attrs:{\"title\":\"Penalty\"},on:{\"click\":function($event){return _vm.modifyTerm(term, 'Penalty')}}}),_c('button',{staticClass:\"action-button exclude\",class:{active: term.modifier === 'Exclude'},attrs:{\"title\":\"Exclude\"},on:{\"click\":function($event){return _vm.modifyTerm(term, 'Exclude')}}}),_c('button',{staticClass:\"action-button single-term-menu-opener\",on:{\"click\":function($event){return _vm.openSingleTermMenu($event.target, term)}}})])])})],2)}),0)],1)]),_c('PopupMenu',{attrs:{\"close-event\":\"closeCreateTermMenu\",\"event\":\"openCreateTermMenu\"}},[_c('CreateTermTemplate',{attrs:{\"term\":_vm.newTerm}})],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('GenericDialog',{attrs:{\"modal\":true,\"visible\":_vm.isOpen},on:{\"onClose\":function($event){return _vm.close()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"Add Multiple Terms\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"batch-terms-dialog-content\"},[[_c('div',{staticClass:\"dialog-content\"},[_c('div',{staticClass:\"terms-string-container\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.termsText),expression:\"termsText\"}],ref:\"terms\",staticClass:\"terms-string\",attrs:{\"placeholder\":\"Use commas or line breaks to separate terms\",\"rows\":\"10\"},domProps:{\"value\":(_vm.termsText)},on:{\"keyup\":function($event){return _vm.termsTextChanged()},\"input\":function($event){if($event.target.composing){ return; }_vm.termsText=$event.target.value}}})]),(_vm.error)?_c('div',{staticClass:\"error\"},[_vm._v(_vm._s(_vm.error))]):_vm._e()]),_c('div',{staticClass:\"checkbox-container\"},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.includeHarvests},on:{\"click\":function($event){_vm.includeHarvests = !_vm.includeHarvests}}}),_c('label',{on:{\"click\":function($event){_vm.includeHarvests = !_vm.includeHarvests}}},[_vm._v(\"Harvest these terms\")])]),_c('div',{staticClass:\"harvest-only-top-terms\",class:{invisible: !_vm.harvestOnlyTopTermsVisible}},[_vm._v(\"Harvest is limited to only top 15 terms\")]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button add-terms\",attrs:{\"disabled\":_vm.terms.length === 0 || _vm.error},on:{\"click\":_vm.addTerms}},[_vm._v(\"Add Terms\")])])]],2)]},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\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport GenericDialog from \"@/components/GenericDialog.vue\"\nimport {addBatchTerms, getTerms, MAX_ALLOWED_TERMS} from \"@/store/investigation/investigation-terms-module\"\nimport {getGraphType} from \"@/store/investigation/graph-module\"\nimport {PermissionsMixin} from \"@/store/user-mixin\"\nimport {InvestigationTermGroupEntity} from \"@/types/investigations\"\n\n@Component({\n components: {GenericDialog}\n})\nexport default class BatchTermsDialog extends mixins(Vue, PermissionsMixin) {\n\n private isOpen = false\n private termsText: string = \"\"\n private terms: string[] = []\n private termGroup: InvestigationTermGroupEntity | null = null\n private includeHarvests: boolean = false\n private error: string | null = null\n\n\n private get harvestOnlyTopTermsVisible() {\n return false // this.includeHarvests && this.terms.length > 15\n }\n\n public open(batchOptions: { termGroup: InvestigationTermGroupEntity }) {\n this.isOpen = true\n this.termsText = \"\"\n this.terms = []\n this.termGroup = batchOptions.termGroup\n this.includeHarvests = true\n document.addEventListener(\"keyup\", this.handleKey)\n\n Vue.nextTick(() => {\n const termsText = this.$refs.terms as HTMLInputElement\n termsText.focus()\n })\n }\n\n\n private close() {\n this.isOpen = false\n document.removeEventListener(\"keyup\", this.handleKey)\n }\n\n\n private handleKey(e: KeyboardEvent) {\n switch (e.key) {\n case \"Escape\":\n this.close()\n break\n }\n }\n\n private termsTextChanged() {\n this.terms = this.termsText.split(/[\\n,]/).map(term => term.trim()).filter(term => term.length > 0).reverse()\n\n this.error = null\n if (this.terms.length + getTerms(this.$store).length > MAX_ALLOWED_TERMS) {\n this.error = `Cannot add more than ${MAX_ALLOWED_TERMS} terms`\n }\n }\n\n private async addTerms() {\n if (this.error) {\n return\n }\n\n this.close()\n await addBatchTerms(this.$store, {groups: [{name: this.termGroup!!.name, terms: this.terms}], includeHarvests: this.includeHarvests})\n if (getGraphType(this.$store) === null) {\n await this.$parent.$emit(\"refresh-documents\")\n }\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatchTermsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatchTermsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BatchTermsDialog.vue?vue&type=template&id=741b2556&scoped=true&\"\nimport script from \"./BatchTermsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./BatchTermsDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BatchTermsDialog.vue?vue&type=style&index=0&id=741b2556&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 \"741b2556\",\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('GenericDialogNew',{ref:\"genericDialog\",attrs:{\"modal\":true},on:{\"enterPressed\":function($event){return _vm.createGroup()},\"dialogAppeared\":function($event){return _vm.dialogAppeared()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"Create Term Group\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"create-term-group-dialog-content\"},[[_c('div',{staticClass:\"dialog-content\"},[_c('div',{staticClass:\"group-name-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.groupName),expression:\"groupName\"}],ref:\"groupNameText\",staticClass:\"group-name-input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.groupName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.groupName=$event.target.value}}})]),_c('CheckBox',{staticClass:\"ass-as-term-checkbox\",attrs:{\"label\":\"Add group name as search term\"},model:{value:(_vm.addGroupAsTerm),callback:function ($$v) {_vm.addGroupAsTerm=$$v},expression:\"addGroupAsTerm\"}})],1),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button create-term-group\",attrs:{\"disabled\":_vm.groupName.length === 0},on:{\"click\":_vm.createGroup}},[_vm._v(\"Create Group\")])])]],2)]},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('div',{staticClass:\"checkbox-container\",on:{\"click\":_vm.toggle}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.value}}),_c('label',[_vm._v(_vm._s(_vm.label))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {Prop} from \"vue-property-decorator\"\n\n@Component\nexport default class CheckBox extends Vue {\n\n @Prop()\n private label!: string\n\n @Prop()\n private value!: boolean\n\n private newValue: boolean = false\n\n\n private mounted() {\n this.newValue = this.value\n }\n\n private toggle() {\n this.newValue = !this.newValue\n this.$emit(\"input\", this.newValue)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckBox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CheckBox.vue?vue&type=template&id=cdadb338&scoped=true&\"\nimport script from \"./CheckBox.vue?vue&type=script&lang=ts&\"\nexport * from \"./CheckBox.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CheckBox.vue?vue&type=style&index=0&id=cdadb338&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 \"cdadb338\",\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 Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {addTerm, createTermGroup, getTermGroups} from \"@/store/investigation/investigation-terms-module\"\nimport GenericDialogNew, {createDialogMountingPoint} from \"@/components/GenericDialogNew.vue\"\nimport CheckBox from \"@/components/CheckBox.vue\"\n\nexport function openCreateTermGroupDialog(parent: Vue) {\n new (Vue.extend(CreateTermGroupDialog))({parent, store: parent.$store, router: parent.$router}).$mount(createDialogMountingPoint())\n}\n\n@Component({\n components: {CheckBox, GenericDialogNew }\n})\nexport default class CreateTermGroupDialog extends Vue {\n\n private groupName: string = \"\"\n\n private addGroupAsTerm: boolean = false\n\n public open() {\n this.groupName = \"\"\n\n Vue.nextTick(() => {\n const groupNameText = this.$refs.groupNameText as HTMLInputElement\n groupNameText.focus()\n })\n }\n\n private dialogAppeared() {\n const textInput = this.$refs.groupNameText as HTMLInputElement\n textInput.focus()\n }\n\n private close() {\n (this.$refs.genericDialog as GenericDialogNew).close()\n }\n\n private async createGroup() {\n this.close()\n await createTermGroup(this.$store, this.groupName)\n if (this.addGroupAsTerm) {\n const newGroup = getTermGroups(this.$store).find(it => it.name === this.groupName)\n if (newGroup) {\n await addTerm(this.$store, {term: this.groupName, modifier: \"Regular\", group: newGroup.id})\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--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateTermGroupDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateTermGroupDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateTermGroupDialog.vue?vue&type=template&id=3982c2e5&scoped=true&\"\nimport script from \"./CreateTermGroupDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateTermGroupDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CreateTermGroupDialog.vue?vue&type=style&index=0&id=3982c2e5&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 \"3982c2e5\",\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('GenericDialogNew',{ref:\"genericDialog\",attrs:{\"modal\":true},on:{\"enterPressed\":function($event){return _vm.save()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"Add Predefined Term Groups\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('section',{staticClass:\"add-predefined-term-groups-dialog\"},[_c('div',{staticClass:\"error-message-container\",class:{'show': _vm.errorMessage}},[_c('div',{staticClass:\"error-message\"},[_vm._v(\" \"+_vm._s(_vm.errorMessage)+\" \")])]),_c('section',{staticClass:\"pages-pane\"},[_c('ul',{staticClass:\"pages-container\"},_vm._l((_vm.groups),function(group){return _c('li',{key:group.name,staticClass:\"page\",class:{'active': group === _vm.currentGroup},on:{\"click\":function($event){_vm.currentGroup = group}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.isGroupSelected(group)},on:{\"click\":function($event){return _vm.toggleSelectedGroup(group)}}}),_c('span',[_vm._v(_vm._s(group.name))])])}),0)]),_c('section',{staticClass:\"pages-content-container\"},[(!_vm.currentGroup)?_c('div',{staticClass:\"loading\"},[_vm._v(\"Fetching predefined groups and terms...\")]):_c('section',{staticClass:\"page-content-container\"},[_c('section',{staticClass:\"page-content-pane visible\"},_vm._l((_vm.currentGroup.terms),function(term){return _c('div',[_c('div',{staticClass:\"term\"},[_vm._v(_vm._s(term))])])}),0)])]),_c('section',{staticClass:\"dialog-buttons-container separator\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button save\",attrs:{\"disabled\":_vm.selectedGroups.length === 0},on:{\"click\":function($event){return _vm.save()}}},[_vm._v(\"Add Groups\")])])])]},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\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport {PredefinedTermGroupEntity} from \"@/types/investigations\"\nimport GenericDialogNew, {createDialogMountingPoint} from \"@/components/GenericDialogNew.vue\"\nimport termsService, {BatchTermsGroup} from \"@/api/investigation/terms-service\"\nimport {InvestigationMixin} from \"@/store/investigation-mixin\"\nimport {addBatchTerms, getTerms, MAX_ALLOWED_TERMS} from \"@/store/investigation/investigation-terms-module\"\nimport {getGraphType} from \"@/store/investigation/graph-module\"\n\nexport function openAddPredefinedTermGroupsDialog(parent: Vue) {\n new (Vue.extend(AddPredefinedTermGroupsDialog))({parent, store: parent.$store}).$mount(createDialogMountingPoint())\n}\n\n\n@Component({\n components: {GenericDialogNew}\n})\nexport default class AddPredefinedTermGroupsDialog extends mixins(Vue, InvestigationMixin) {\n\n private groups: PredefinedTermGroupEntity[] = []\n private currentGroup: PredefinedTermGroupEntity | null = null\n private selectedGroups: PredefinedTermGroupEntity[] = []\n private errorMessage: string | null = null\n\n public async mounted() {\n this.groups = await termsService.getPredefinedTermGroups(this.investigation!!.id)\n this.currentGroup = this.groups[0]\n }\n\n\n private toggleSelectedGroup(group: PredefinedTermGroupEntity) {\n if (this.isGroupSelected(group)) {\n this.selectedGroups = this.selectedGroups.filter(it => it !== group)\n } else {\n this.selectedGroups.push(group)\n }\n }\n\n\n private isGroupSelected(group: PredefinedTermGroupEntity): boolean {\n return !!this.selectedGroups.find(it => it === group)\n }\n\n\n private close() {\n (this.$refs.genericDialog as GenericDialogNew).close()\n }\n\n\n private async save() {\n this.errorMessage = null\n\n const selectedTerms = this.selectedGroups\n .flatMap(it => it.terms)\n\n if (selectedTerms.length + getTerms(this.$store).length > MAX_ALLOWED_TERMS) {\n this.errorMessage = `Cannot add more than ${MAX_ALLOWED_TERMS} terms`\n return\n }\n\n this.close()\n\n const groups = this.selectedGroups\n .map(it => ({name: it.name, terms: it.terms} as BatchTermsGroup))\n\n await addBatchTerms(this.$store, {groups, includeHarvests: true})\n if (getGraphType(this.$store) === null) {\n await this.$parent.$emit(\"refresh-documents\")\n }\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddPredefinedTermGroupsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddPredefinedTermGroupsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AddPredefinedTermGroupsDialog.vue?vue&type=template&id=6cf77f86&scoped=true&\"\nimport script from \"./AddPredefinedTermGroupsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./AddPredefinedTermGroupsDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AddPredefinedTermGroupsDialog.vue?vue&type=style&index=0&id=6cf77f86&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 \"6cf77f86\",\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('GenericDialogNew',{ref:\"genericDialog\",attrs:{\"modal\":true},on:{\"enterPressed\":_vm.rename,\"dialogAppeared\":_vm.dialogAppeared},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"Rename Term\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"rename-term-dialog-content\"},[[_c('div',{staticClass:\"dialog-content\"},[_c('div',{staticClass:\"term-name-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newName),expression:\"newName\"}],ref:\"termNameText\",staticClass:\"term-name-input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.newName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.newName=$event.target.value}}})])]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button rename-term\",attrs:{\"disabled\":_vm.newName.length === 0},on:{\"click\":_vm.rename}},[_vm._v(\"Rename Term\")])])]],2)]},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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {Prop} from \"vue-property-decorator\"\nimport {InvestigationTermEntity} from \"@/types/investigations\"\nimport GenericDialogNew, {createDialogMountingPoint} from \"@/components/GenericDialogNew.vue\"\n\nexport function openRenameTermDialog(parent: Vue, options: RenameTermDialogOptions) {\n new (Vue.extend(RenameTermDialog))({\n parent,\n store: parent.$store,\n router: parent.$router,\n propsData: {options}\n }).$mount(createDialogMountingPoint())\n}\n\nexport interface RenameTermDialogOptions {\n readonly term: InvestigationTermEntity\n readonly onRename: (newName: string) => void\n}\n\n@Component({\n components: { GenericDialogNew }\n})\nexport default class RenameTermDialog extends Vue {\n\n @Prop()\n private options!: RenameTermDialogOptions\n\n private newName: string = \"\"\n\n\n public mounted() {\n Vue.nextTick(() => {\n this.newName = this.options.term.term\n\n const termNameText = this.$refs.termNameText as HTMLInputElement\n termNameText.focus()\n })\n }\n\n private dialogAppeared() {\n const textInput = this.$refs.termNameText as HTMLInputElement\n textInput.select()\n textInput.focus()\n }\n\n private close() {\n (this.$refs.genericDialog as GenericDialogNew).close()\n }\n\n private async rename() {\n this.close()\n this.options.onRename(this.newName)\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenameTermDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenameTermDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RenameTermDialog.vue?vue&type=template&id=276fd6b9&scoped=true&\"\nimport script from \"./RenameTermDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./RenameTermDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RenameTermDialog.vue?vue&type=style&index=0&id=276fd6b9&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 \"276fd6b9\",\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {\n createTermGroup,\n deleteTermGroup,\n getTermGroups,\n getTerms,\n modifyTerm,\n modifyTermGroup,\n moveToGroup,\n removeTerm,\n renameTerm\n} from \"@/store/investigation/investigation-terms-module\"\nimport {InvestigationTermEntity, InvestigationTermGroupEntity, InvestigationType, TermGroupModifier, TermModifier} from \"@/types/investigations\"\nimport {showTermPopupMenu} from \"@/store/investigation/dialogs/term-popup-menu-module\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport BatchTermsDialog from \"@/views/investigation/dialogs/BatchTermsDialog.vue\"\nimport {copyToClipboard, wrapActiveRequests} from \"@/utils/utils\"\nimport {fetchDocumentMarkups, getCancelToken, getInvestigation, getIsBusy, getIsRenderingGraph} from \"@/store/investigation/investigation-module\"\nimport {Watch} from \"vue-property-decorator\"\nimport {getGroupsExpansion, setGroupsExpansion} from \"@/store/investigation/documents-module\"\nimport CreateTermTemplate from \"@/views/investigation/templates/CreateTermTemplate.vue\"\nimport {getGroupColor} from \"@/utils/color-utils\"\nimport {openConfirmationDialog} from \"@/views/investigation/dialogs/ConfirmationDialog.vue\"\nimport {openRenameTermGroupDialog} from \"@/views/investigation/dialogs/RenameTermGroupDialog.vue\"\nimport {openCreateTermGroupDialog} from \"@/views/investigation/dialogs/CreateTermGroupDialog.vue\"\nimport {openAddPredefinedTermGroupsDialog} from \"@/views/investigation/dialogs/AddPredefinedTermGroupsDialog.vue\"\nimport {isShowPredefinedTermGroups} from \"@/store/environment-module\"\nimport { openRenameTermDialog } from '../dialogs/RenameTermDialog.vue'\n\n\n@Component({\n components: {CreateTermTemplate, PopupMenu, BatchTermsDialog}\n})\nexport default class TermsPane extends Vue {\n\n private newTerm: string = \"\"\n private isInTransition = false\n private termContext: InvestigationTermEntity | null = null\n private groupContext: InvestigationTermGroupEntity | null = null\n private expandedStates: { [key: string]: boolean } = {}\n\n get allTermGroups(): InvestigationTermGroupEntity[] {\n return getTermGroups(this.$store)\n }\n\n get termGroups(): InvestigationTermGroupEntity[] {\n const groups = this.allTermGroups\n return this.typedNewTerm ?\n groups.filter(group => this.termsOf(group).length) :\n groups\n }\n\n get isBusy(): boolean {\n return getIsBusy(this.$store) || getIsRenderingGraph(this.$store)\n }\n\n private get filterItems() {\n const items: Array<{ type: string, name: string }> = []\n\n const groupItems = this.termGroups\n .filter(it => it.modifier === \"Mandatory\")\n .map(it => ({type: \"group\", name: it.name}))\n .sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase()))\n\n const mandatoryItems: Array<{type: string, name: string}> = []\n const excludedItems: Array<{type: string, name: string}> = []\n this.terms.forEach(it => {\n if (it.modifier === \"Mandatory\") {\n mandatoryItems.push({type: \"mandatory\", name: it.term})\n }\n if (it.modifier === \"Exclude\") {\n excludedItems.push({type: \"exclude\", name: it.term})\n }\n })\n\n mandatoryItems.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase()))\n excludedItems.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase()))\n\n return [...groupItems, ...mandatoryItems, ...excludedItems]\n }\n\n private get typedNewTerm() {\n return this.newTerm.length > 0\n }\n\n private get termExists() {\n const terms = getTerms(this.$store).map(term => term.term.toLocaleLowerCase())\n return terms.includes(this.newTerm.toLocaleLowerCase())\n }\n\n private get terms(): InvestigationTermEntity[] {\n const terms = this.allTerms\n return this.typedNewTerm ?\n terms.filter(term => term.term.toLowerCase().includes(this.newTerm.toLowerCase())) :\n terms\n }\n\n private get allTerms(): InvestigationTermEntity[] {\n return getTerms(this.$store)\n }\n\n private get isDefaultGroupInContext() {\n return this.termGroups.length === 1\n }\n\n private get investigationType(): InvestigationType {\n return getInvestigation(this.$store)!.investigationType\n }\n\n private mounted() {\n this.$on(\"closedOncloseSingleTermMenu\", this.singleTermMenuClosed)\n this.$on(\"closedOncloseCreateTermMenu\", this.createTermMenuClosed)\n }\n\n private closeFilterItem(item: { type: string, name: string }) {\n if (item.type === \"mandatory\" || item.type === \"exclude\") {\n const term = this.terms.find(investigationTerm => investigationTerm.term === item.name)!\n this.modifyTerm(term, \"Regular\")\n } else {\n const group = this.termGroups.find(termGroup => termGroup.name === item.name)!\n this.modifyTermGroup(group, \"Regular\")\n }\n }\n\n private termsOf(group: InvestigationTermGroupEntity): InvestigationTermEntity[] {\n return this.terms.filter(term => group.id === term.group)\n }\n\n @Watch(\"termGroups\")\n private updateGroupExpansion() {\n const expandedStates = getGroupsExpansion(this.$store)\n this.termGroups.forEach(group => this.$set(this.expandedStates, group.id, expandedStates[group.id] !== undefined ? expandedStates[group.id] : true))\n }\n\n @Watch(\"expandedStates\")\n private updateGroupsExpansion() {\n setGroupsExpansion(this.$store, this.expandedStates)\n }\n\n private isGroupDisabledForMove(termGroup: InvestigationTermGroupEntity) {\n return this.termsOf(termGroup).includes(this.termContext!)\n }\n\n private async moveToGroup(termGroup: InvestigationTermGroupEntity) {\n if (this.termContext) {\n const {term} = this.termContext\n const group = termGroup.id\n await moveToGroup(this.$store, {term, group})\n await fetchDocumentMarkups(this.$store)\n }\n\n this.termContext = null\n }\n\n private singleTermMenuClosed() {\n return null\n }\n\n private async createTermMenuClosed() {\n this.newTerm = \"\"\n }\n\n private async addTerm() {\n if (this.typedNewTerm && !this.termExists) {\n await this.$emit(\"openCreateTermMenu\", this.$refs.addTermButton)\n }\n }\n\n private async modifyTerm(term: InvestigationTermEntity, modifier: TermModifier) {\n if (term.modifier === \"Regular\" && modifier === \"Regular\") {\n return\n }\n\n const newModifier = term.modifier === modifier ? \"Regular\" : modifier\n await wrapActiveRequests(this.$store, async () => {\n await modifyTerm(this.$store, {...term, modifier: newModifier})\n getCancelToken(this.$store).cancel()\n await this.$emit(\"refresh-documents\")\n })\n }\n\n private async renameTerm() {\n const term = this.termContext!!\n openRenameTermDialog(this, {term, onRename: newName => this.performRenameTerm(term, newName)})\n }\n\n private async performRenameTerm(term: InvestigationTermEntity, newName: string) {\n await wrapActiveRequests(this.$store, async () => {\n await renameTerm(this.$store, { oldTerm: term, newName })\n getCancelToken(this.$store).cancel()\n await this.$emit(\"refresh-documents\")\n })\n }\n\n private async modifyTermGroup(termGroup: InvestigationTermGroupEntity, modifier: TermGroupModifier) {\n if (termGroup.modifier === \"Regular\" && modifier === \"Regular\") {\n return\n }\n\n const newModifier = termGroup.modifier === modifier ? \"Regular\" : modifier\n await wrapActiveRequests(this.$store, async () => {\n await modifyTermGroup(this.$store, {...termGroup, modifier: newModifier})\n getCancelToken(this.$store).cancel()\n await this.$emit(\"refresh-documents\")\n })\n }\n\n private async removeTerm(term: InvestigationTermEntity) {\n openConfirmationDialog({\n message: `Are you sure you want to delete \"${term.term}\"?`,\n title: \"Delete Term\",\n okText: \"Delete\",\n onOk: () => this.performDeleteTerm(term),\n showCancel: true\n })\n }\n\n private async performDeleteTerm(term: InvestigationTermEntity) {\n await removeTerm(this.$store, term.term)\n term.modifier !== \"Regular\" ? await this.$emit(\"refresh-documents\") : await fetchDocumentMarkups(this.$store)\n }\n\n private async moveToNewGroup(term: InvestigationTermEntity, modifier: TermModifier) {\n const newGroupName = this.chooseNewGroupName()\n await createTermGroup(this.$store, newGroupName)\n\n const groupEntity = getTermGroups(this.$store).find(it => it.name === newGroupName)!!\n await moveToGroup(this.$store, {term: term.term, group: groupEntity.id})\n\n openRenameTermGroupDialog(this, {group: groupEntity!!})\n }\n\n private chooseNewGroupName() {\n const termGroupNames = getTermGroups(this.$store).map(it => it.name)\n let index = 0\n while (true) {\n const newGroupName = ``\n if (!termGroupNames.find(it => it === newGroupName)) {\n return newGroupName\n }\n index++\n }\n }\n\n private handleTransition(el: HTMLElement, done: () => void) {\n this.isInTransition = true\n done()\n this.isInTransition = false\n }\n\n private async queryTermClicked(term: string, index: number) {\n const termElements = (this.$refs.queryTerms as HTMLElement[])\n const termElement = termElements.filter(element => element.innerText === term)[0]\n const termElementInner = termElement.querySelector(\"span\")!\n\n await showTermPopupMenu(this.$store, {term, centered: false, termElement: termElementInner, investigationType: this.investigationType, showAddObservation: false})\n }\n\n private openSingleTermMenu(button: HTMLElement, term: InvestigationTermEntity) {\n this.termContext = term\n this.$nextTick(() => this.$emit(\"openSingleTermMenu\", button))\n }\n\n private openTermGroupMenu(button: HTMLElement, termGroup: InvestigationTermGroupEntity) {\n this.groupContext = termGroup\n this.$nextTick(() => this.$emit(\"openTermGroupMenu\", button))\n }\n\n private openMainMenu(button: HTMLElement) {\n this.$nextTick(() => this.$emit(\"openMainMenu\", button))\n }\n\n private openBatchTermsDialog() {\n // @ts-ignore\n (this.$refs.batchTermsDialog as BatchTermsDialog).open({termGroup: this.groupContext})\n }\n\n private openCreateGroupDialog() {\n openCreateTermGroupDialog(this)\n }\n\n private openAddPredefinedTermGroupsDialog() {\n openAddPredefinedTermGroupsDialog(this)\n }\n\n private get isShowPredefinedTermGroups(): boolean {\n return isShowPredefinedTermGroups(this.$store)\n }\n\n private renameGroup() {\n openRenameTermGroupDialog(this, {group: this.groupContext!})\n }\n\n private copyToClipboard() {\n const allTerms = getTerms(this.$store).slice().map(term => term.term).join(\"\\n\")\n copyToClipboard(allTerms)\n }\n\n private copyGroupToClipboard() {\n const allTerms = getTerms(this.$store)\n .filter(term => term.group === this.groupContext!.id)\n .slice()\n .map(term => term.term).join(\"\\n\")\n copyToClipboard(allTerms)\n this.groupContext = null\n }\n\n\n private deleteGroup() {\n if (!this.isDefaultGroupInContext) {\n openConfirmationDialog({\n message: `Are you sure you want to delete \"${this.groupContext!.name}\" group? Its terms will be deleted.`,\n title: \"Delete Term Group\",\n okText: \"Delete Group\",\n onOk: () => this.performDeleteGroup(),\n showCancel: true\n })\n }\n }\n\n private async performDeleteGroup() {\n const hasTerms = this.termsOf(this.groupContext!!).length > 0\n await deleteTermGroup(this.$store, this.groupContext!!)\n if (hasTerms) {\n await this.$emit(\"refresh-documents\")\n } else {\n await fetchDocumentMarkups(this.$store)\n }\n }\n\n private getGroupColor(group: string): string {\n return getGroupColor(group, false)\n }\n\n private copyTermToClipboard() {\n copyToClipboard(this.termContext!!.term)\n }\n\n private googleIt() {\n window.open(`https://www.google.com/search?q=${this.termContext!!.term}`, \"_blank\")\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TermsPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TermsPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TermsPane.vue?vue&type=template&id=b959c8f0&scoped=true&\"\nimport script from \"./TermsPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./TermsPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TermsPane.vue?vue&type=style&index=0&id=b959c8f0&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 \"b959c8f0\",\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',{staticClass:\"report-navigation-pane\"},[_c('div',{staticClass:\"sticky\"},[_c('div',{staticClass:\"title-container\"},[_c('span',{staticClass:\"title\"},[_vm._v(\"Navigation\")]),_c('button',{staticClass:\"action-button observations-menu-opener\",attrs:{\"title\":\"Create Section\"},on:{\"click\":_vm.openCreateSectionDialog}})])]),_c('div',{staticClass:\"report-navigation-pane-inner\"},[_c('div',{staticClass:\"active-pane box\"},[(_vm.sectionObservationOrder.length)?_c('div',{directives:[{name:\"drag-and-drop\",rawName:\"v-drag-and-drop:options\",value:(_vm.dragAndDropOptions),expression:\"dragAndDropOptions\",arg:\"options\"}],staticClass:\"drag-container\"},[_c('div',{staticClass:\"drag-list\"},[_c('transition-group',{attrs:{\"name\":\"activeObservations\",\"tag\":\"div\"},on:{\"enter\":_vm.handleTransition,\"leave\":_vm.handleTransition}},_vm._l((_vm.sectionObservationOrder),function(section){return _c('div',{key:section.id,staticClass:\"observation-section\",class:{expanded: _vm.expandedStates[section.id] || section.id === '0'}},[(section.name)?_c('div',{staticClass:\"title-container\",on:{\"click\":function($event){return _vm.scrollToSection(section)}}},[_c('div',{staticClass:\"section-name\",attrs:{\"title\":section.name}},[_vm._v(_vm._s(section.name))]),_c('div',{staticClass:\"section-buttons\"},[_c('div',{staticClass:\"action-button-pane\"},[_c('button',{staticClass:\"action-button observation-section-menu-opener\",on:{\"click\":function($event){$event.stopPropagation();return _vm.openObservationSectionMenu($event.target, section)}}})]),_c('button',{staticClass:\"expand-button\",class:{'expanded': _vm.expandedStates[section.id]},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleExpansion(section.id)}}})])]):_vm._e(),_c('vue-draggable-group',{attrs:{\"data-id\":section.id,\"groups\":_vm.sectionObservationOrder},model:{value:(section.items),callback:function ($$v) {_vm.$set(section, \"items\", $$v)},expression:\"section.items\"}},[_c('div',{staticClass:\"drag-inner-list\",attrs:{\"data-id\":section.id}},_vm._l((section.items),function(item){return _c('div',{key:item.id,staticClass:\"drag-item active-entity observation-container\",class:{hasMargin: section.name !== \"\"},attrs:{\"data-id\":item.id},on:{\"click\":function($event){return _vm.scrollToObservation(item.observation)}}},[_c('div',{staticClass:\"observation\",attrs:{\"title\":item.observation.title}},[_vm._v(_vm._s(item.observation.title))]),_c('div',{staticClass:\"action-button-pane\"},[_c('button',{staticClass:\"action-button single-observation-menu-opener\",on:{\"click\":function($event){$event.stopPropagation();return _vm.openObservationMenu($event.target, item.observation)}}})])])}),0)])],1)}),0)],1)]):_vm._e()])]),_c('CreateObservationSectionDialog',{ref:\"createObservationSectionDialog\"}),_c('RenameObservationSectionDialog',{ref:\"renameObservationSectionDialog\"}),_c('ObservationSectionIndexDialog',{ref:\"observationSectionIndexDialog\"}),_c('PopupMenu',{attrs:{\"event\":\"openObservationSectionMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.setSectionIndex}},[_vm._v(\"Set Section Index\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.renameSection}},[_vm._v(\"Rename Section\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.deleteSection}},[_vm._v(\"Delete Section\")])]),_c('PopupMenu',{attrs:{\"close-event\":\"closeObservationMenu\",\"event\":\"openObservationMenu\"}},[_c('div',{staticClass:\"menu-title\"},[_vm._v(\"Move Insight to:\")]),_vm._l((_vm.observationSections),function(section){return _c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.moveToSection(section)}}},[_vm._v(_vm._s(section.name))])})],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('GenericDialog',{attrs:{\"visible\":_vm.isOpen,\"modal\":true},on:{\"onClose\":function($event){return _vm.close()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"Create Section\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"create-observation-section-dialog-content\"},[[_c('div',{staticClass:\"dialog-content\"},[_c('div',{staticClass:\"section-name-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.sectionName),expression:\"sectionName\"}],ref:\"sectionNameText\",staticClass:\"section-name-input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.sectionName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.sectionName=$event.target.value}}})])]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button create-observation-section\",attrs:{\"disabled\":_vm.sectionName.length === 0},on:{\"click\":_vm.createsection}},[_vm._v(\"Create Section\")])])]],2)]},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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport GenericDialog from \"@/components/GenericDialog.vue\"\nimport {createObservationSection} from \"@/store/investigation/observation-module\"\n\n@Component({\n components: {GenericDialog}\n})\nexport default class CreateObservationSectionDialog extends Vue {\n\n private isOpen = false\n private sectionName: string = \"\"\n\n\n public open() {\n this.isOpen = true\n this.sectionName = \"\"\n document.addEventListener(\"keyup\", this.handleKey)\n\n Vue.nextTick(() => {\n const sectionNameText = this.$refs.sectionNameText as HTMLInputElement\n sectionNameText.focus()\n })\n }\n\n\n private close() {\n this.isOpen = false\n document.removeEventListener(\"keyup\", this.handleKey)\n }\n\n\n private handleKey(e: KeyboardEvent) {\n switch (e.key) {\n case \"Escape\":\n this.close()\n break\n case \"Enter\":\n this.createsection()\n break\n }\n }\n\n private async createsection() {\n this.close()\n await createObservationSection(this.$store, this.sectionName)\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateObservationSectionDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateObservationSectionDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateObservationSectionDialog.vue?vue&type=template&id=0a11911c&scoped=true&\"\nimport script from \"./CreateObservationSectionDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateObservationSectionDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CreateObservationSectionDialog.vue?vue&type=style&index=0&id=0a11911c&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0a11911c\",\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('GenericDialog',{attrs:{\"visible\":_vm.isOpen,\"modal\":true},on:{\"onClose\":function($event){return _vm.close()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"Rename Section\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"rename-observation-section-dialog-content\"},[[_c('div',{staticClass:\"dialog-content\"},[_c('div',{staticClass:\"section-name-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.section.name),expression:\"section.name\"}],ref:\"sectionNameText\",staticClass:\"section-name-input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.section.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.section, \"name\", $event.target.value)}}})])]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button rename-observation-section\",attrs:{\"disabled\":_vm.section.name.length === 0},on:{\"click\":_vm.renameGroup}},[_vm._v(\"Rename\")])])]],2)]},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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport GenericDialog from \"@/components/GenericDialog.vue\"\nimport {ObservationSectionEntity, renameObservationSection} from \"@/store/investigation/observation-module\"\n\n@Component({\n components: {GenericDialog}\n })\n export default class RenameObservationSectionDialog extends Vue {\n\n private isOpen = false\n private section: ObservationSectionEntity | null = null\n\n\n public open(options: {section: ObservationSectionEntity}) {\n this.isOpen = true\n this.section = {...options.section}\n document.addEventListener(\"keyup\", this.handleKey)\n\n Vue.nextTick(() => {\n const sectionNameText = this.$refs.sectionNameText as HTMLInputElement\n sectionNameText.focus()\n })\n }\n\n\n private close() {\n this.isOpen = false\n document.removeEventListener(\"keyup\", this.handleKey)\n }\n\n\n private handleKey(e: KeyboardEvent) {\n switch (e.key) {\n case \"Escape\":\n this.close()\n break\n case \"Enter\":\n this.renameGroup()\n break\n }\n }\n\n private async renameGroup() {\n this.close()\n await renameObservationSection(this.$store, this.section!!)\n }\n }\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenameObservationSectionDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenameObservationSectionDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RenameObservationSectionDialog.vue?vue&type=template&id=72938d5e&scoped=true&\"\nimport script from \"./RenameObservationSectionDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./RenameObservationSectionDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RenameObservationSectionDialog.vue?vue&type=style&index=0&id=72938d5e&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"72938d5e\",\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('GenericDialog',{attrs:{\"visible\":_vm.isOpen,\"modal\":true},on:{\"onClose\":function($event){return _vm.close()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"Set Section Index\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"rename-observation-section-dialog-content\"},[[_c('div',{staticClass:\"dialog-content\"},[_c('div',{staticClass:\"section-name-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.index),expression:\"index\"}],staticClass:\"section-name-input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.index)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.index=$event.target.value}}})])]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button rename-observation-section\",attrs:{\"disabled\":_vm.section.name.length === 0},on:{\"click\":_vm.setIndex}},[_vm._v(\"Save\")])])]],2)]},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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport GenericDialog from \"@/components/GenericDialog.vue\"\nimport {ObservationSectionEntity, setObservationSectionIndex, getObservationSections} from \"@/store/investigation/observation-module\"\n\n@Component({\n components: {GenericDialog}\n})\nexport default class ObservationSectionIndexDialog extends Vue {\n\n private isOpen = false\n private index: number = -1\n private section: ObservationSectionEntity | null = null\n\n public open(options: {section: ObservationSectionEntity}) {\n const sections = getObservationSections(this.$store)\n this.isOpen = true\n this.section = options.section\n this.index = sections.findIndex(x => x.id === options.section.id)\n document.addEventListener(\"keyup\", this.handleKey)\n\n Vue.nextTick(() => {\n const sectionNameText = this.$refs.sectionNameText as HTMLInputElement\n sectionNameText.focus()\n })\n }\n\n private close() {\n this.isOpen = false\n document.removeEventListener(\"keyup\", this.handleKey)\n }\n\n private handleKey(e: KeyboardEvent) {\n switch (e.key) {\n case \"Escape\":\n this.close()\n break\n case \"Enter\":\n this.setIndex()\n break\n }\n }\n\n private async setIndex() {\n this.close()\n await setObservationSectionIndex(this.$store, {sectionId: this.section!!.id, newIndex: this.index})\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ObservationSectionIndexDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ObservationSectionIndexDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ObservationSectionIndexDialog.vue?vue&type=template&id=5d08ebb8&scoped=true&\"\nimport script from \"./ObservationSectionIndexDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ObservationSectionIndexDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ObservationSectionIndexDialog.vue?vue&type=style&index=0&id=5d08ebb8&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d08ebb8\",\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 Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {deleteObservation, deleteObservationSection, getObservations, getObservationSections, getSectionObservationOrder, moveToSection, ObservationEntity, ObservationSectionEntity, setSectionObservationOrder} from \"@/store/investigation/observation-module\"\nimport {InvestigationType} from \"@/types/investigations\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport CreateObservationSectionDialog from \"@/views/investigation/dialogs/CreateObservationSectionDialog.vue\"\nimport RenameObservationSectionDialog from \"@/views/investigation/dialogs/RenameObservationSectionDialog.vue\"\nimport ObservationSectionIndexDialog from \"@/views/investigation/dialogs/ObservationSectionIndexDialog.vue\"\nimport {getInvestigation} from \"@/store/investigation/investigation-module\"\nimport {Watch} from \"vue-property-decorator\"\nimport {VueDraggableOptions} from \"vue-draggable/types/vue-draggable-options\"\nimport {openConfirmationDialog} from \"@/views/investigation/dialogs/ConfirmationDialog.vue\"\n\n\n@Component({\n components: {PopupMenu, CreateObservationSectionDialog, RenameObservationSectionDialog, ObservationSectionIndexDialog}\n})\nexport default class ReportNavigationPane extends Vue {\n\n private newObservation: string = \"\"\n private isObservationTooltipShown = false\n private isInTransition = false\n private observationTooltipText = \"\"\n private observationPopupInterval: number = 0\n private observationContext: ObservationEntity | null = null\n private sectionContext: ObservationSectionEntity | null = null\n private expandedStates: { [key: string]: boolean } = {}\n\n get observationSections(): ObservationSectionEntity[] {\n return getObservationSections(this.$store)\n }\n\n private get observations(): ObservationEntity[] {\n return getObservations(this.$store)\n }\n\n private get investigationType(): InvestigationType {\n return getInvestigation(this.$store)!.investigationType\n }\n\n private get sectionObservationOrder() {\n return [...getSectionObservationOrder(this.$store)]\n }\n\n private set sectionObservationOrder(value: any) {\n setSectionObservationOrder(this.$store, value)\n }\n\n private get sections() {\n return [...getObservationSections(this.$store), {name: \"\", id: \"0\", ordinal: -1}]\n }\n\n private get dragAndDropOptions(): VueDraggableOptions {\n return {\n dropzoneSelector: \".drag-inner-list\",\n draggableSelector: \".drag-item\",\n multipleDropzonesItemsDraggingEnabled: true\n } as unknown as VueDraggableOptions\n }\n\n private mounted() {\n this.$on(\"closedOncloseSingleObservationMenu\", this.singleObservationMenuClosed)\n this.$on(\"closedOncloseCreateObservationMenu\", this.createObservationMenuClosed)\n }\n\n private toggleExpansion(sectionId: string) {\n this.expandedStates[sectionId] = !this.expandedStates[sectionId]\n }\n\n private observationsOf(section: ObservationSectionEntity): ObservationEntity[] {\n return this.observations\n .filter(observation => section.id === observation.section)\n .sort((a: ObservationEntity, b: ObservationEntity) => a.ordinal - b.ordinal)\n }\n\n @Watch(\"observationSections\")\n private updateSectionExpansion() {\n this.observationSections.forEach(section => this.$set(\n this.expandedStates,\n section.id,\n this.expandedStates[section.id] !== undefined ? this.expandedStates[section.id] : true\n ))\n }\n\n private async moveToSection(observationSection: ObservationSectionEntity) {\n const observation = this.observationContext!.id!\n const section = observationSection.id\n await moveToSection(this.$store, {observation, section})\n this.observationContext = null\n }\n\n private singleObservationMenuClosed() {\n return null\n }\n\n private async createObservationMenuClosed() {\n this.newObservation = \"\"\n }\n\n private async deleteObservation(observation: ObservationEntity) {\n const observationId = observation.id!\n const investigationType = getInvestigation(this.$store)!.investigationType\n await deleteObservation(this.$store, {observationId, investigationType})\n await this.$emit(\"refresh-observations\")\n }\n\n private handleTransition(el: HTMLElement, done: () => void) {\n this.isInTransition = true\n done()\n this.isInTransition = false\n }\n\n private openObservationMenu(button: HTMLElement, observation: ObservationEntity) {\n this.observationContext = observation\n this.$nextTick(() => this.$emit(\"openObservationMenu\", button))\n }\n\n private openObservationSectionMenu(button: HTMLElement, observationSection: ObservationSectionEntity) {\n this.sectionContext = observationSection\n this.$nextTick(() => this.$emit(\"openObservationSectionMenu\", button))\n }\n\n private openCreateSectionDialog() {\n // @ts-ignore\n (this.$refs.createObservationSectionDialog as CreateObservationSectionDialog).open()\n }\n\n private renameSection() {\n if (this.sectionContext != null && this.sectionContext.name !== \"Default Section\") {\n // @ts-ignore\n (this.$refs.renameObservationSectionDialog as RenameObservationSectionDialog).open({section: this.sectionContext})\n }\n }\n\n private setSectionIndex() {\n if (this.sectionContext != null && this.sectionContext.name !== \"Default Section\") {\n // @ts-ignore\n (this.$refs.observationSectionIndexDialog as ObservationSectionIndexDialog).open({section: this.sectionContext})\n }\n }\n\n private deleteSection() {\n if (this.sectionContext != null && this.sectionContext.name !== \"Default Section\") {\n openConfirmationDialog({\n message: `Are you sure you want to delete \"${this.sectionContext.name}\" section?`,\n title: \"Delete Section\",\n okText: \"Delete\",\n onOk: () => this.performDeleteSection(),\n showCancel: true\n })\n }\n }\n\n private async performDeleteSection() {\n const hasObservations = this.observationsOf(this.sectionContext!!).length > 0\n await deleteObservationSection(this.$store, this.sectionContext!!)\n }\n\n private scrollToSection(section: ObservationSectionEntity) {\n this.$emit(\"scroll-to-section\", section.id)\n }\n\n private scrollToObservation(observation: ObservationEntity) {\n this.$emit(\"scroll-to-observation\", observation.id)\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportNavigationPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportNavigationPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReportNavigationPane.vue?vue&type=template&id=091abc0d&scoped=true&\"\nimport script from \"./ReportNavigationPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReportNavigationPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReportNavigationPane.vue?vue&type=style&index=0&id=091abc0d&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 \"091abc0d\",\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',{staticClass:\"entity-summary-pane pane\"},[(!_vm.isDataFetched)?_c('div',{staticClass:\"loading-container\"},[_c('img',{attrs:{\"src\":require(\"../../../assets/images/loading.gif\"),\"alt\":\"loading\"}}),_c('div',{staticClass:\"loading-text\"},[_vm._v(\"Loading Entity Summary...\")])]):_c('div',[_c('div',{staticClass:\"sticky\"},[_c('div',{staticClass:\"subheader-container\"},[_c('h1',{staticClass:\"subheader\"},[_vm._v(\"Entity Summary\")]),_c('button',{staticClass:\"close-graph button\",on:{\"click\":_vm.close}})])]),(_vm.isDataFetched)?_c('div',[_c('div',{staticClass:\"general-info-container\"},[_c('div',{staticClass:\"entity-image\",class:_vm.entity.type.toLowerCase()}),_c('div',{staticClass:\"name-container\"},[_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.entity.name))])]),(_vm.entitySummary)?_c('section',{staticClass:\"summary-data\"},[_c('DocumentExcerptsPane',{attrs:{\"documents\":_vm.entitySummary.documents}})],1):_vm._e()])]):_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.documents.length > 0)?_c('div',{staticClass:\"document-excerpts-pane\"},[_c('div',{staticClass:\"title-container\"},[_c('h1',{staticClass:\"title\"},[_c('span',[_vm._v(\"Documents\")]),_c('span',[_vm._v(\" (\"+_vm._s(_vm.documents.length)+\")\")])]),_c('button',{ref:\"contextMenuOpener\",staticClass:\"action-button context-menu-opener\",on:{\"click\":function($event){$event.stopPropagation();return _vm.openContextMenu()}}},[_vm._v(\"...\")])]),_c('PopupMenu',{attrs:{\"event\":\"openContextMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.addLabelToAll}},[_vm._v(\"Add Label to All Documents\")])]),_c('div',{staticClass:\"document-list\"},[_vm._l((_vm.shownDocuments),function(document){return _c('div',{key:document.id,staticClass:\"document\"},[_c('DocumentExcerpts',{attrs:{\"document\":document}})],1)}),(_vm.documents.length > _vm.showDocumentCount)?_c('a',{staticClass:\"show-all\",on:{\"click\":function($event){return _vm.toggleShowAll()}}},[_vm._v(_vm._s(_vm.showingAll ? 'Show Less' : 'Show All'))]):_vm._e()],2)],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',{staticClass:\"document-excerpt\"},[_c('a',{attrs:{\"href\":_vm.document.url,\"target\":\"_blank\"}},[_c('div',{staticClass:\"title\",class:{bold: _vm.document.excerpts !== null},attrs:{\"title\":_vm.document.title},domProps:{\"innerHTML\":_vm._s(_vm.markedUpExcerpt(_vm.document.markedUpTitle))}})]),_vm._l((_vm.document.excerpts),function(excerpt){return _c('div',{directives:[{name:\"text-selection\",rawName:\"v-text-selection\",value:(_vm.textSelected),expression:\"textSelected\"}],staticClass:\"excerpt\",domProps:{\"innerHTML\":_vm._s(_vm.markedUpExcerpt(excerpt))}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport {Prop} from \"vue-property-decorator\"\nimport {EntitySummaryDocument, MarkedUpText} from \"@/types/investigations\"\nimport TextMarkerService from \"@/views/investigation/services/TextMarkerService\"\nimport {Optional} from \"@/types\"\nimport {showTermPopupMenu} from \"@/store/investigation/dialogs/term-popup-menu-module\"\nimport {InvestigationMixin} from \"@/store/investigation-mixin\"\nimport {getSentence} from \"@/utils/text-utils\"\nimport TextSelection from \"@/directives/TextSelection\"\n\n@Component({\n directives: {TextSelection}\n})\nexport default class DocumentExcerpts extends mixins(Vue, InvestigationMixin) {\n\n @Prop()\n private document!: EntitySummaryDocument\n\n private markedUpExcerpt(text: MarkedUpText): string {\n const marker = new TextMarkerService()\n return marker.markText(text, [\"yellow-highlight\"])\n }\n\n private async textSelected(text: Optional, boundingRect: DOMRect, element: HTMLElement, selection: Selection) {\n if (!this.isInPersonProfile) {\n const documentId = this.document.id\n const sentence = getSentence(element, selection)\n await showTermPopupMenu(this.$store, {term: text, termElement: element, boundingRect, showAddTerm: true, showAddPenalizedTerm: true, investigationType: this.investigationType, documentId, sentence, showAddObservation: true})\n }\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentExcerpts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentExcerpts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DocumentExcerpts.vue?vue&type=template&id=9c496386&scoped=true&\"\nimport script from \"./DocumentExcerpts.vue?vue&type=script&lang=ts&\"\nexport * from \"./DocumentExcerpts.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DocumentExcerpts.vue?vue&type=style&index=0&id=9c496386&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 \"9c496386\",\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('GenericDialogNew',{ref:\"genericDialog\",attrs:{\"modal\":true},on:{\"enterPressed\":function($event){return _vm.addLabel()},\"dialogAppeared\":function($event){return _vm.dialogAppeared()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"Add Label to All Documents\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"rename-label-dialog-content\"},[[_c('div',{staticClass:\"dialog-content\"},[_c('div',{staticClass:\"label-name-container forbids-close\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newLabel),expression:\"newLabel\"}],ref:\"labelText\",staticClass:\"label-name-input\",attrs:{\"list\":\"existingLabels\",\"type\":\"text\"},domProps:{\"value\":(_vm.newLabel)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.newLabel=$event.target.value}}}),_c('datalist',{attrs:{\"id\":\"existingLabels\"}},_vm._l((_vm.existingLabels),function(label){return _c('option',{key:label},[_vm._v(_vm._s(label))])}),0)])]),_c('div',{staticClass:\"dialog-buttons-container forbids-close\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button rename-label\",attrs:{\"disabled\":_vm.newLabel.trim().length === 0},on:{\"click\":_vm.addLabel}},[_vm._v(\"Add Label\")])])]],2)]},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\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport GenericDialogNew, {createDialogMountingPoint} from \"@/components/GenericDialogNew.vue\"\nimport {Prop} from \"vue-property-decorator\"\nimport {getDocumentLabels} from \"@/store/investigation/investigation-module\"\nimport investigationService from \"@/api/investigation-service\"\nimport {InvestigationMixin} from \"@/store/investigation-mixin\"\n\nexport function openAddLabelToDocumentsDialog(parent: Vue, options: AddLabelToDocumentsDialogOptions) {\n new (Vue.extend(AddLabelToDocumentsDialog))({parent, store: parent.$store, propsData: {options}}).$mount(createDialogMountingPoint())\n}\n\nexport interface AddLabelToDocumentsDialogOptions {\n readonly documents: string[]\n}\n\n\n@Component({\n components: {GenericDialogNew}\n})\nexport default class AddLabelToDocumentsDialog extends mixins(Vue, InvestigationMixin) {\n\n private newLabel: string = \"\"\n private existingLabels: string[] = []\n\n @Prop()\n private options!: AddLabelToDocumentsDialogOptions\n\n\n private mounted() {\n this.existingLabels = getDocumentLabels(this.$store)\n }\n\n\n private dialogAppeared() {\n const labelText = this.$refs.labelText as HTMLInputElement\n labelText.focus()\n }\n\n\n private close() {\n (this.$refs.genericDialog as GenericDialogNew).close()\n }\n\n\n private async addLabel() {\n if (this.newLabel.trim().length === 0) {\n return\n }\n\n this.close()\n\n const newLabel = this.newLabel.trim()\n await investigationService.addLabelToSeveralDocuments(this.investigation!!.id, this.options.documents, newLabel, this.investigationType)\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddLabelToDocumentsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddLabelToDocumentsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AddLabelToDocumentsDialog.vue?vue&type=template&id=1587ec67&scoped=true&\"\nimport script from \"./AddLabelToDocumentsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./AddLabelToDocumentsDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AddLabelToDocumentsDialog.vue?vue&type=style&index=0&id=1587ec67&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 \"1587ec67\",\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {Prop} from \"vue-property-decorator\"\nimport {EntitySummaryDocument} from \"@/types/investigations\"\nimport DocumentExcerpts from \"@/views/investigation/panes/DocumentExcerpts.vue\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport {openAddLabelToDocumentsDialog} from \"@/views/investigation/dialogs/AddLabelToDocumentsDialog.vue\"\n\n@Component({\n components: {DocumentExcerpts, PopupMenu}\n})\nexport default class DocumentExcerptsPane extends Vue {\n\n @Prop()\n private documents!: EntitySummaryDocument[]\n\n private showingAll: boolean = false\n private showDocumentCount = 10\n\n\n private get shownDocuments(): EntitySummaryDocument[] {\n if (this.showingAll) {\n return this.documents\n }\n return this.documents.slice(0, this.showDocumentCount)\n }\n\n private toggleShowAll() {\n this.showingAll = !this.showingAll\n }\n\n private openContextMenu() {\n const contextMenuOpenerButton = this.$refs.contextMenuOpener as HTMLElement\n this.$emit(`openContextMenu`, contextMenuOpenerButton)\n }\n\n private addLabelToAll() {\n openAddLabelToDocumentsDialog(this, { documents: this.documents.map(it => it.id) })\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentExcerptsPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentExcerptsPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DocumentExcerptsPane.vue?vue&type=template&id=756faba2&scoped=true&\"\nimport script from \"./DocumentExcerptsPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./DocumentExcerptsPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DocumentExcerptsPane.vue?vue&type=style&index=0&id=756faba2&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 \"756faba2\",\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {\n getEntityForSummary,\n getInvestigation,\n getSpecForStore,\n setEntityForSummary\n} from \"@/store/investigation/investigation-module\"\nimport investigationService from \"@/api/investigation-service\"\nimport {Prop, Watch} from \"vue-property-decorator\"\nimport {EntitySummaryEntity, MentionedEntity} from \"@/types/investigations\"\nimport DocumentExcerptsPane from \"@/views/investigation/panes/DocumentExcerptsPane.vue\"\n\n@Component({\n components: {\n DocumentExcerptsPane\n }\n})\nexport default class EntitySummaryPane extends Vue {\n\n @Prop()\n private entity!: MentionedEntity\n\n private isDataFetched = true\n private entitySummary: EntitySummaryEntity | null = null\n\n private async mounted() {\n await this.entityChanged()\n }\n\n @Watch(\"entity\")\n private async entityChanged() {\n const investigation = getInvestigation(this.$store)!\n const spec = getSpecForStore(this.$store)\n this.isDataFetched = false\n this.entitySummary = await investigationService.getEntityForSummary(investigation.id, investigation.investigationType, this.entity.name, this.entity.type, spec)\n this.isDataFetched = true\n }\n\n private get isInRightPane() {\n return getEntityForSummary(this.$store) != null\n }\n\n\n private close() {\n setEntityForSummary(this.$store, null)\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EntitySummaryPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EntitySummaryPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EntitySummaryPane.vue?vue&type=template&id=eaef6c86&scoped=true&\"\nimport script from \"./EntitySummaryPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./EntitySummaryPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EntitySummaryPane.vue?vue&type=style&index=0&id=eaef6c86&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eaef6c86\",\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',{staticClass:\"entity-relationship-summary-pane pane\"},[(!_vm.isDataFetched)?_c('div',{staticClass:\"loading-container\"},[_c('img',{attrs:{\"src\":require(\"../../../assets/images/loading.gif\"),\"alt\":\"loading\"}}),_c('div',{staticClass:\"loading-text\"},[_vm._v(\"Loading Entity Relationship Summary...\")])]):_c('div',[_c('div',{staticClass:\"sticky\"},[_c('div',{staticClass:\"subheader-container\"},[_c('h1',{staticClass:\"subheader\"},[_vm._v(\"Entity Relationship Summary\")]),_c('button',{staticClass:\"close-graph button\",on:{\"click\":_vm.close}})])]),(_vm.isDataFetched)?_c('div',[_c('div',{staticClass:\"general-info-container\"},[_c('div',{staticClass:\"entity-images\"},[_c('div',{staticClass:\"entity-image\",class:_vm.entities[0].type.toLowerCase()}),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"entity-image\",class:_vm.entities[1].type.toLowerCase()})]),_c('div',{staticClass:\"name-container\"},[_c('div',{staticClass:\"name\"},[_vm._v(_vm._s(_vm.entities[0].name)+\" - \"+_vm._s(_vm.entities[1].name))])]),(_vm.entityRelationshipSummary)?_c('section',{staticClass:\"summary-data\"},[_c('DocumentExcerptsPane',{attrs:{\"documents\":_vm.entityRelationshipSummary.documents}})],1):_vm._e()])]):_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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {\n getEntityRelationshipForSummary,\n getInvestigation,\n setEntityRelationshipForSummary\n} from \"@/store/investigation/investigation-module\"\nimport investigationService from \"@/api/investigation-service\"\nimport {Prop, Watch} from \"vue-property-decorator\"\nimport {EntityRelationshipSummaryEntity, MentionedEntity} from \"@/types/investigations\"\nimport DocumentExcerptsPane from \"@/views/investigation/panes/DocumentExcerptsPane.vue\"\n\n@Component({\n components: {\n DocumentExcerptsPane\n }\n})\nexport default class EntityRelationshipSummaryPane extends Vue {\n\n @Prop()\n private entities!: MentionedEntity[]\n\n private isDataFetched = true\n private entityRelationshipSummary: EntityRelationshipSummaryEntity | null = null\n\n private async mounted() {\n await this.entityChanged()\n }\n\n @Watch(\"entities\")\n private async entityChanged() {\n const investigation = getInvestigation(this.$store)!\n this.isDataFetched = false\n this.entityRelationshipSummary = await investigationService.getEntityRelationshipForSummary(investigation.id, investigation.investigationType, this.entities[0], this.entities[1])\n this.isDataFetched = true\n }\n\n private get isInRightPane() {\n return getEntityRelationshipForSummary(this.$store) != null\n }\n\n private close() {\n setEntityRelationshipForSummary(this.$store, null)\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EntityRelationshipSummaryPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EntityRelationshipSummaryPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EntityRelationshipSummaryPane.vue?vue&type=template&id=9ab73448&scoped=true&\"\nimport script from \"./EntityRelationshipSummaryPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./EntityRelationshipSummaryPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EntityRelationshipSummaryPane.vue?vue&type=style&index=0&id=9ab73448&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9ab73448\",\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport SplitPane from \"@/components/SplittedPane.vue\"\nimport TopsPane from \"@/views/investigation/panes/TopsPane.vue\"\nimport {clearInvestigationStore, fetchGraphData, getEntityForSummary, getEntityRelationshipForSummary, getIsBusy, getPersonForRightPaneSummary, setDisplayedResultsStatus} from \"@/store/investigation/investigation-module\"\nimport {setDateFilterYears} from \"@/store/investigation/date-filter-module\"\nimport TermsPane from \"@/views/investigation/panes/TermsPane.vue\"\nimport {webSocketManager} from \"@/infrastructure/WebsocketManager\"\nimport AuthorSummaryPane from \"@/views/investigation/panes/AuthorSummaryPane.vue\"\nimport DocumentsPane from \"@/views/investigation/panes/DocumentsPane.vue\"\nimport ReportNavigationPane from \"@/views/investigation/panes/ReportNavigationPane.vue\"\nimport EntitySummaryPane from \"@/views/investigation/panes/EntitySummaryPane.vue\"\nimport EntityRelationshipSummaryPane from \"@/views/investigation/panes/EntityRelationshipSummaryPane.vue\"\nimport SpinningLoader from \"@/components/SpinningLoader.vue\"\nimport {getGraphType} from \"@/store/investigation/graph-module\"\n\n@Component({\n components: {EntityRelationshipSummaryPane, EntitySummaryPane, AuthorSummaryPane, SplitPane, TopsPane, TermsPane, ReportNavigationPane, SpinningLoader}\n})\nexport default class TopicInvestigation extends Vue {\n\n private scrolledToObservation: string | null = \"\"\n private scrolledToSection: string | null = \"\"\n\n private get isShowingTopsPane() {\n return !this.isAuthorSummaryInRightPane && !this.isEntitySummaryVisible && !this.isEntityRelationshipSummaryVisible\n }\n\n private get personForRightPaneSummary() {\n return getPersonForRightPaneSummary(this.$store)\n }\n\n private get isAuthorSummaryInRightPane(): boolean {\n return this.personForRightPaneSummary != null\n }\n\n private get entityForSummary() {\n return getEntityForSummary(this.$store)\n }\n\n private get entityRelationshipForSummary() {\n return getEntityRelationshipForSummary(this.$store)\n }\n\n private get isEntitySummaryVisible(): boolean {\n return this.entityForSummary != null\n }\n\n private get isEntityRelationshipSummaryVisible(): boolean {\n return this.entityRelationshipForSummary != null\n }\n\n private get isInDocuments() {\n return this.$route.path.includes(\"documents\")\n }\n\n private get isInReportEditor() {\n return this.$route.path.includes(\"report-editor\")\n }\n\n private get isBusy(): boolean {\n return getIsBusy(this.$store)\n }\n\n private beforeCreate() {\n setDisplayedResultsStatus(this.$store, \"All\")\n }\n\n private async mounted() {\n setDateFilterYears(this.$store, {start: null, end: null})\n }\n\n private refreshContent() {\n if (getGraphType(this.$store) === null) {\n const documentsPane = this.$refs.content as DocumentsPane\n // @ts-ignore\n if (documentsPane.refreshResults) {\n documentsPane.refreshResults()\n }\n } else {\n fetchGraphData(this.$store)\n }\n }\n\n private beforeRouteLeave(to: string, from: string, next: () => void) {\n webSocketManager.unregisterInvestigation()\n clearInvestigationStore(this.$store)\n next()\n }\n\n private documentsUpdated() {\n const documentContainer = this.$refs.documentsContainer as HTMLDivElement\n documentContainer.scrollTop = 0\n }\n\n private scrollToSection(sectionId: string) {\n const content = this.$refs.content as Vue\n this.scrolledToSection = sectionId\n }\n\n private scrollToObservation(observationId: string) {\n const content = this.$refs.content as Vue\n this.scrolledToObservation = observationId\n }\n\n private resetScrollVars() {\n this.scrolledToSection = null\n this.scrolledToObservation = null\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopicInvestigation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopicInvestigation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TopicInvestigation.vue?vue&type=template&id=6087f71a&scoped=true&\"\nimport script from \"./TopicInvestigation.vue?vue&type=script&lang=ts&\"\nexport * from \"./TopicInvestigation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TopicInvestigation.vue?vue&type=style&index=0&id=6087f71a&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 \"6087f71a\",\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('SplitPane',{scopedSlots:_vm._u([{key:\"left\",fn:function(){return [_c('div',{staticClass:\"scroll-container\"},[_c('div',{staticClass:\"pane left\"},[_c('router-view',{attrs:{\"name\":\"leftPane\"},on:{\"documentsUpdated\":_vm.documentsUpdated,\"scroll-to-section\":_vm.scrollToSection,\"scroll-to-observation\":_vm.scrollToObservation}})],1)])]},proxy:true},{key:\"middle\",fn:function(){return [_c('div',{staticClass:\"scroll-container\"},[_c('SpinningLoader',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isBusy),expression:\"isBusy\"}]}),_c('div',{ref:\"documentsContainer\",staticClass:\"pane middle\"},[_c('router-view',{ref:\"content\",attrs:{\"scrolled-to-observation\":_vm.scrolledToObservation,\"scrolled-to-section\":_vm.scrolledToSection,\"name\":\"middlePane\"},on:{\"documentsUpdated\":_vm.documentsUpdated,\"scrolled\":_vm.resetScrollVars}})],1)],1)]},proxy:true},(!_vm.isInReportEditor)?{key:\"right\",fn:function(){return [_c('div',{staticClass:\"scroll-container\"},[_c('div',{staticClass:\"pane\"},[_c('TopsPane',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isShowingTopsPane),expression:\"isShowingTopsPane\"}],on:{\"refresh-documents\":_vm.refreshContent}}),(_vm.isAuthorSummaryInRightPane)?_c('AuthorSummaryPane',{staticClass:\"pane\",attrs:{\"allow-image-update\":true,\"containingParentName\":\"right-pane\",\"passed-person-name\":_vm.personForRightPaneSummary.name,\"person-id\":_vm.personForRightPaneSummary.id,\"show-documents\":true}}):_vm._e(),(_vm.isEntitySummaryVisible)?_c('EntitySummaryPane',{attrs:{\"containingParentName\":\"right-pane\",\"entity\":_vm.entityForSummary}}):_vm._e(),(_vm.isEntityRelationshipSummaryVisible)?_c('EntityRelationshipSummaryPane',{attrs:{\"containingParentName\":\"right-pane\",\"entities\":_vm.entityRelationshipForSummary}}):_vm._e()],1)])]},proxy:true}:{key:\"right\",fn:function(){return [_c('div')]},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('div',{staticClass:\"author-disambiguation-pane\"},[_c('div',{staticClass:\"title-container\"},[_c('span',{staticClass:\"title\"},[_vm._v(\"Possible Matches (\"+_vm._s(_vm.persons.filter(function (it) { return !it.filteredOut; }).length)+\" / \"+_vm._s(_vm.persons.length)+\")\")]),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasFilters),expression:\"hasFilters\"}],staticClass:\"sort-button\",class:{'sorted-by-relevant': _vm.sortByRelevant},attrs:{\"title\":\"Sort by matching documents\"},on:{\"click\":function($event){_vm.sortByRelevant = !_vm.sortByRelevant}}})]),_c('div',{staticClass:\"person-clusters\"},_vm._l((_vm.sortedPersons),function(person,index){return _c('div',{key:person.id,class:{\n 'last-person': index === _vm.persons.length - 1,\n 'person-cluster': true,\n hasVote: _vm.isVoted(person) || person.relevancy === 'Irrelevant'\n }},[_c('div',{staticClass:\"person-selector\",on:{\"click\":function($event){return _vm.selectPerson(person.id)}}},[_c('div',{staticClass:\"selector\",class:{checked: person.id === _vm.personId}}),_c('div',{staticClass:\"person\",class:{highlight: person.id === _vm.personId, 'filtered-out': person.filteredOut}},[_vm._v(\" \"+_vm._s(person.name)+\" \"),_c('span',{staticClass:\"counts\"},[_vm._v(\"(\"),_c('span',{class:{relevant: !person.filteredOut}},[_vm._v(_vm._s(_vm.relevantCount(person)))]),_vm._v(\" / \"+_vm._s(person.documentsCount)+\")\")])])]),_c('div',{staticClass:\"voting\"},[_c('button',{staticClass:\"vote irrelevant\",class:{active: _vm.isIrrelevantTurnedOn(person)},attrs:{\"title\":\"Mark person as irrelevant\"},on:{\"click\":function($event){return _vm.vote(person, 'Irrelevant')}}}),_c('button',{staticClass:\"vote relevant\",class:{active: _vm.isRelevantTurnedOn(person)},attrs:{\"title\":\"Mark person as relevant\"},on:{\"click\":function($event){return _vm.vote(person, 'Relevant')}}})])])}),0),(_vm.shouldShowApplyButton)?_c('div',{staticClass:\"apply-container\"},[_c('button',{staticClass:\"apply\",attrs:{\"title\":\"Merge accepted candidates and remove/restore rejected\"},on:{\"click\":_vm.disambiguate}},[_vm._v(\" Apply changes \")])]):_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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {InvestigationEntity, PersonEntity, PersonVote, Relevancy} from \"@/types/investigations\"\nimport {fetchAllPersonData, getInvestigation, getPersonRelevantCounts, getPersons, getRelevantDocumentCount, getTotalDocumentCount, setPersons} from \"@/store/investigation/investigation-module\"\nimport {getDisambiguationPersonId, setDisambiguationPersonId} from \"@/store/investigation/person-filter-module\"\nimport InvestigationService from \"@/api/investigation-service\"\nimport {wrapActiveRequests} from \"@/utils/utils\"\nimport investigationService from \"../../../api/investigation-service\"\nimport {openConfirmationDialog} from \"@/views/investigation/dialogs/ConfirmationDialog.vue\"\n\n@Component\nexport default class AuthorDisambiguationPane extends Vue {\n\n private personVotes: PersonVote[] = []\n private sortByRelevant: boolean = false\n\n private getInvestigation = this.$wrap(getInvestigation)\n\n private get persons(): PersonEntity[] {\n return getPersons(this.$store)\n }\n\n private get sortedPersons(): PersonEntity[] {\n return this.sortByRelevant && this.hasFilters ? this.persons.slice().sort(this.relevantDocumentSort) : this.persons\n }\n\n private relevantDocumentSort(first: PersonEntity, second: PersonEntity) {\n const sortByRelevantDocuments = (a: PersonEntity, b: PersonEntity) => this.relevantCount(b) - this.relevantCount(a)\n const defaultSort = (a: PersonEntity, b: PersonEntity) => this.persons.indexOf(a) - this.persons.indexOf(b)\n\n return sortByRelevantDocuments(first, second) || defaultSort(first, second)\n }\n\n private get hasFilters(): boolean {\n return getTotalDocumentCount(this.$store) !== getRelevantDocumentCount(this.$store)\n }\n\n private get shouldShowApplyButton() {\n const relevantPersons = this.personVotes.filter(vote => vote.relevancy === \"Relevant\")\n if (relevantPersons.length === 1) {\n return false\n }\n return !!this.personVotes.length\n }\n\n private get personId(): string | null {\n return getDisambiguationPersonId(this.$store)\n }\n\n private mounted() {\n setPersons(this.$store, [])\n }\n\n private async selectPerson(id: string) {\n setDisambiguationPersonId(this.$store, this.personId !== id ? id : null)\n await fetchAllPersonData(this.$store)\n this.$emit(\"documentsUpdated\")\n }\n\n private isVoted(person: PersonEntity, relevancy?: Relevancy): boolean {\n if (relevancy) {\n return !!this.personVotes.find(vote => vote.id === person.id && vote.relevancy === relevancy)\n }\n return !!this.personVotes.find(vote => vote.id === person.id)\n }\n\n private isRelevantTurnedOn(person: PersonEntity): boolean {\n return this.isVoted(person, 'Relevant')\n }\n\n private isIrrelevantTurnedOn(person: PersonEntity): boolean {\n return this.isVoted(person, 'Irrelevant') ||\n (person.relevancy === 'Irrelevant' && !this.isVoted(person))\n }\n\n private async vote(person: PersonEntity, relevancy: Relevancy) {\n // const isAnyButtonOn = this.isIrrelevantTurnedOn(person) || this.isRelevantTurnedOn(person)\n const isMyButtonOn = (relevancy === \"Relevant\" && this.isRelevantTurnedOn(person)) ||\n (relevancy === \"Irrelevant\" && this.isIrrelevantTurnedOn(person))\n\n this.clearVote(person)\n\n if (isMyButtonOn) {\n if (person.relevancy === \"Irrelevant\") {\n this.addVote(person, \"Neutral\")\n }\n } else {\n if (relevancy !== \"Irrelevant\" || person.relevancy !== \"Irrelevant\") {\n this.addVote(person, relevancy)\n }\n }\n }\n\n private clearVote(person: PersonEntity) {\n this.personVotes = this.personVotes.filter(vote => vote.id !== person.id)\n }\n\n private addVote(person: PersonEntity, relevancy: Relevancy) {\n this.personVotes.push({id: person.id, relevancy})\n }\n\n private async disambiguate() {\n const investigation = this.getInvestigation()!\n const neutralPersons = this.personVotes.filter(vote => vote.relevancy === \"Neutral\").map(vote => vote.id)\n const relevantPersons = this.personVotes.filter(vote => vote.relevancy === \"Relevant\").map(vote => vote.id)\n const irrelevantPersons = this.personVotes.filter(vote => vote.relevancy === \"Irrelevant\").map(vote => vote.id)\n const authorCountMessage = []\n if (relevantPersons.length > 1) {\n authorCountMessage.push(`merge ${relevantPersons.length} authors`)\n }\n if (irrelevantPersons.length) {\n if (authorCountMessage.length) {\n authorCountMessage.push(neutralPersons.length ? \", \" : \" and \")\n authorCountMessage.push(`remove ${irrelevantPersons.length}`)\n } else {\n authorCountMessage.push(`remove ${irrelevantPersons.length} author${irrelevantPersons.length > 1 ? \"s\" : \"\"}`)\n }\n }\n if (neutralPersons.length) {\n if (authorCountMessage.length) {\n authorCountMessage.push(` and restore ${neutralPersons.length}`)\n } else {\n authorCountMessage.push(`restore ${neutralPersons.length} author${neutralPersons.length > 1 ? \"s\" : \"\"}`)\n }\n }\n const note = relevantPersons.length ? \"Note that merging cannot be undone.\" : \"\"\n const message = `You are about to ${authorCountMessage.join(\"\")}.
Are you sure?
${note}`\n const title = \"Merge and Remove Authors\"\n const onOk = () => this.performDisambiguation(investigation, irrelevantPersons, relevantPersons, neutralPersons)\n const disambiguationDialog = {message, title, okText: \"I'm sure\", onOk, showCancel: true}\n openConfirmationDialog(disambiguationDialog)\n }\n\n private async performDisambiguation(investigation: InvestigationEntity,\n irrelevantPersons: string[], relevantPersons: string[], neutralPersons: string[]) {\n await wrapActiveRequests(this.$store, async () => {\n await InvestigationService.disambiguate(\n investigation.id, investigation.investigationType, irrelevantPersons, relevantPersons, neutralPersons)\n await investigationService.merge(investigation.id, investigation.investigationType)\n this.unselectPerson(relevantPersons)\n await fetchAllPersonData(this.$store)\n this.personVotes = []\n })\n }\n\n private unselectPerson(disappearingIds: string[]) {\n if (!!disappearingIds.find(personId => personId === this.personId)) {\n setDisambiguationPersonId(this.$store, null)\n }\n }\n\n private relevantCount(person: PersonEntity): number {\n return getPersonRelevantCounts(this.$store)[person.id] || 0\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthorDisambiguationPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthorDisambiguationPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AuthorDisambiguationPane.vue?vue&type=template&id=982598ec&scoped=true&\"\nimport script from \"./AuthorDisambiguationPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./AuthorDisambiguationPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AuthorDisambiguationPane.vue?vue&type=style&index=0&id=982598ec&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 \"982598ec\",\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',{staticClass:\"graph-pane\",class:{'in-documents-pane': _vm.locked}},[[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.locked),expression:\"!locked\"}],staticClass:\"header-content\",class:{'advanced-menu': _vm.showingAdvancedMenu}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"results\"},[_vm._v(\"Authors (\"+_vm._s(_vm.numberOfNodes)+\")\")]),_c('div',{staticClass:\"header-controls\"},[_c('div',{staticClass:\"left-panel\"},[_c('div',{staticClass:\"header-field\"},[_c('label',{staticClass:\"header-label\",attrs:{\"for\":\"authorHighlightInput\"}},[_vm._v(\"Highlight:\")]),_c('div',{staticClass:\"highlight-container\"},[_c('div',{staticClass:\"highlight-input-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.highlightFilter.filter),expression:\"highlightFilter.filter\"}],staticClass:\"highlight-input\",attrs:{\"id\":\"authorHighlightInput\",\"placeholder\":\"Name\",\"type\":\"text\"},domProps:{\"value\":(_vm.highlightFilter.filter)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.filter()},\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.highlightFilter, \"filter\", $event.target.value)}}}),_c('div',{staticClass:\"highlight-counts\"},[_vm._v(_vm._s(_vm.calcHighlightFilterCounts()))])]),_c('div',{staticClass:\"highlight-button previous\",attrs:{\"title\":\"Previous match\"},on:{\"click\":function($event){return _vm.highlightPrevious()}}}),_c('div',{staticClass:\"highlight-button next\",attrs:{\"title\":\"Next match\"},on:{\"click\":function($event){return _vm.highlightNext()}}}),_c('div',{staticClass:\"highlight-button clear\",attrs:{\"title\":\"Clear\"},on:{\"click\":function($event){return _vm.clearHighlight()}}})])])]),_c('div',{staticClass:\"right-panel\"},[(!_vm.isInPersonProfile)?_c('Speedometer',{staticClass:\"speedometer\",attrs:{\"rotation\":_vm.activityIndicatorRotation}}):_vm._e(),(!_vm.isInPersonProfile)?_c('button',{staticClass:\"refresh-graph\",style:({backgroundColor: _vm.resultsDifferenceColor}),attrs:{\"title\":\"Refresh the graph\"},on:{\"click\":_vm.refresh}}):_vm._e(),_c('button',{staticClass:\"create-observation\",attrs:{\"title\":\"Add Insight to Report\"},on:{\"click\":function($event){return _vm.createGraphObservation()}}}),_c('button',{ref:\"viewModeMenuOpener\",staticClass:\"view-mode-menu\",attrs:{\"title\":\"Select layout\"},on:{\"click\":_vm.openViewModeMenu}}),_c('button',{ref:\"advancedMenuOpener\",staticClass:\"advanced-menu\",attrs:{\"title\":\"Advanced Menu\"},on:{\"click\":_vm.openAdvancedMenu}})],1),_c('PopupMenu',{attrs:{\"event\":\"openViewModeMenu\"}},[_c('div',{staticClass:\"menu-item with-check\",class:{'checked': _vm.settings.layout === 'circular'},on:{\"click\":function($event){return _vm.performLayout(\"circular\")}}},[_vm._v(\"Circular\")]),_c('div',{staticClass:\"menu-item with-check\",class:{'checked': _vm.settings.layout === 'organic'},on:{\"click\":function($event){return _vm.performLayout(\"organic\")}}},[_vm._v(\"Organic\")]),_c('div',{staticClass:\"menu-item with-check\",class:{'checked': _vm.settings.layout === 'structural'},on:{\"click\":function($event){return _vm.performLayout(\"structural\")}}},[_vm._v(\"Structural\")]),_c('div',{staticClass:\"menu-item with-check\",class:{'checked': _vm.settings.layout === 'lens'},on:{\"click\":function($event){return _vm.performLayout(\"lens\")}}},[_vm._v(\"Lens\")])]),_c('PopupMenu',{attrs:{\"event\":\"openAdvancedMenu\"}},[(_vm.isOmnipotentUser)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.openGraphSettings}},[_vm._v(\"Graph Settings\")]):_vm._e(),_c('div',{staticClass:\"menu-item with-check\",class:{'checked': _vm.showingAdvancedMenu},on:{\"click\":_vm.toggleAdvancedMenu}},[_vm._v(\"Advanced Menu\")])])],1)]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showingAdvancedMenu),expression:\"showingAdvancedMenu\"}],staticClass:\"row advanced-controls\"},[_c('div',{staticClass:\"header-controls\"},[_c('div',{staticClass:\"left-panel\"},[_c('div',{staticClass:\"header-field\"},[_c('label',{staticClass:\"header-label\",attrs:{\"for\":\"sizeBySelect\"}},[_vm._v(\"Size by:\")]),_c('select',{ref:\"sizeBySelect\",staticClass:\"header-combo\",attrs:{\"id\":\"sizeBySelect\"},on:{\"change\":function($event){return _vm.performSizeBy()}}},[_c('option',{attrs:{\"value\":\"documentCount\"},domProps:{\"selected\":_vm.settings.sizeBy.option === 'documentCount'}},[_vm._v(\"Document Count\")]),_c('option',{attrs:{\"value\":\"score\"},domProps:{\"selected\":_vm.settings.sizeBy.option === 'score'}},[_vm._v(\"Relevance\")]),(_vm.showSizeBySimilarity)?_c('option',{attrs:{\"value\":\"similarity\"},domProps:{\"selected\":_vm.settings.sizeBy.option === 'similarity'}},[_vm._v(\"Similarity\")]):_vm._e()])]),_c('div',{staticClass:\"header-field\"},[_c('label',{staticClass:\"header-label\",attrs:{\"for\":\"colorBySelect\"}},[_vm._v(\"Color by:\")]),_c('select',{ref:\"colorBySelect\",staticClass:\"header-combo\",attrs:{\"id\":\"colorBySelect\"},on:{\"change\":function($event){return _vm.performColorBy()}}},[_c('option',{attrs:{\"value\":\"recentAffiliationCode\"},domProps:{\"selected\":_vm.settings.colorBy.option === 'recentAffiliationCode'}},[_vm._v(\"Recent Region\")]),_c('option',{attrs:{\"value\":\"primaryAffiliationCode\"},domProps:{\"selected\":_vm.settings.colorBy.option === 'primaryAffiliationCode'}},[_vm._v(\"None\")]),(_vm.showColorBySimilarity)?_c('option',{attrs:{\"value\":\"similarity\"},domProps:{\"selected\":_vm.settings.colorBy.option === 'similarity'}},[_vm._v(\"Similarity\")]):_vm._e()])]),_c('div',{staticClass:\"header-field\"},[_c('div',{staticClass:\"snowflake\",class:{'checked': _vm.settings.showSnowflakes},attrs:{\"title\":\"Show/hide authors of isolated articles\"},on:{\"click\":_vm.toggleSnowflakes}})])]),_c('div',{staticClass:\"right-panel\"},[_c('div',{staticClass:\"header-field\"},[_c('button',{staticClass:\"advanced-menu-close\",on:{\"click\":function($event){return _vm.toggleAdvancedMenu()}}})])])])])])],[_c('div',{ref:\"graphContent\",staticClass:\"graph-content\",class:{'showing-advanced-menu': _vm.showingAdvancedMenu}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.chartData && this.graphData.nodes.length !== 0),expression:\"chartData && this.graphData.nodes.length !== 0\"}],ref:\"chart\",staticClass:\"keylines-graph\"},[_c('custom-kl-chart',{attrs:{\"id\":'kl-graph' + Math.random(),\"data\":_vm.chartData,\"containerClass\":\"kl-chart\"},on:{\"kl-ready\":_vm.klReady,\"kl-contextmenu\":_vm.openPopupMenu,\"kl-click\":_vm.clickedGraph}})],1),(this.graphData.nodes.length === 0)?_c('NoResults'):_vm._e(),(!_vm.isInPersonProfileSummary && this.graphData.nodes.length > 0)?_c('div',{staticClass:\"fullScreen\",attrs:{\"title\":_vm.fullScreenText},on:{\"click\":_vm.toggleFullScreen}}):_vm._e(),_c('div',{ref:\"menuRef\",style:({position: \"fixed\", left: _vm.menuPosition.left + 'px', top: _vm.menuPosition.top + 'px'})}),(!_vm.locked && _vm.chart)?_c('PopupMenu',{attrs:{\"close-event\":\"closeGraphContextMenu\",\"event\":\"openGraphContextMenu\"}},[(_vm.isInPersonProfile)?_c('div',[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.copyNodeText}},[_vm._v(\"Copy\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.googleIt}},[_vm._v(\"Google It\")]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.selectNeighbouringNodes(1)}}},[_vm._v(\"Select All Co-Authors\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.selectNeighbouringNodes(1000)}}},[_vm._v(\"Select All Connected Authors\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.invertSelection}},[_vm._v(\"Invert Selection\")])]):_c('div',[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.copyNodeText}},[_vm._v(\"Copy\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.googleIt}},[_vm._v(\"Google It\")]),(_vm.isReportEnabled)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.createPersonObservation}},[_vm._v(\"Add Insight to Report\")]):_vm._e(),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",class:{disabled: !_vm.showAddFilter},on:{\"click\":_vm.addAsFilter}},[_vm._v(\"Add As Filter\")]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.selectNeighbouringNodes(1)}}},[_vm._v(\"Select All Co-Authors\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.selectNeighbouringNodes(1000)}}},[_vm._v(\"Select All Connected Authors\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.invertSelection}},[_vm._v(\"Invert Selection\")]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",class:{disabled: _vm.disableFindShortestPath},on:{\"click\":function($event){return _vm.executeIfNotDisabled(_vm.disableFindShortestPath, _vm.drawConnectingPath)}}},[_vm._v(\"Find Shortest Path\")]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.enrichAuthor}},[_vm._v(_vm._s(_vm.enrichAuthorMenuTitle))]),_c('div',{staticClass:\"menu-item\",class:{disabled: !_vm.showDisambiguate},on:{\"click\":function($event){return _vm.executeIfNotDisabled(!_vm.showDisambiguate, _vm.disambiguateAuthor)}}},[_vm._v(\"Disambiguate Author\")]),(_vm.showUndoMerge)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.undoMerge}},[_vm._v(\"Undo Manual Merge\")]):_vm._e(),(_vm.showMerge)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.showMergeConfirmation}},[_vm._v(_vm._s(_vm.mergePersonMenuTitle))]):_vm._e(),_c('div',{staticClass:\"menu-item\",class:{disabled: !_vm.showSemanticAffinity},on:{\"click\":function($event){return _vm.executeIfNotDisabled(!_vm.showSemanticAffinity, _vm.sizeBySemanticAffinity)}}},[_vm._v(\"Size By Similarity to This Author\")]),_c('div',{staticClass:\"menu-item\",class:{disabled: !_vm.showSemanticAffinity},on:{\"click\":function($event){return _vm.executeIfNotDisabled(!_vm.showSemanticAffinity, _vm.colorBySemanticAffinity)}}},[_vm._v(\"Color By Similarity to This Author\")]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.removePerson}},[_vm._v(_vm._s(_vm.removePersonMenuTitle))]),_c('div',{staticClass:\"menu-item\",class:{disabled: !_vm.hasUnselectedNodes},on:{\"click\":function($event){return _vm.executeIfNotDisabled(!_vm.hasUnselectedNodes, _vm.retainPerson)}}},[_vm._v(_vm._s(_vm.retainPersonMenuTitle))]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",class:{disabled: !_vm.enableLaunchWebInvestigation},on:{\"click\":function($event){return _vm.executeIfNotDisabled(!_vm.enableLaunchWebInvestigation, _vm.createWebInvestigation)}}},[_vm._v(\"Launch Web Investigation\")]),_c('div',{staticClass:\"menu-item\",class:{disabled: !_vm.enableLaunchPersonInvestigation},on:{\"click\":function($event){return _vm.executeIfNotDisabled(!_vm.enableLaunchPersonInvestigation, _vm.createPersonInvestigation)}}},[_vm._v(\"Launch Academic Researcher Investigation\")]),_c('div',{staticClass:\"menu-separator\"}),(_vm.showMergeReport)?_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.downloadMergeReport}},[_vm._v(\"Download Merge Report\")]):_vm._e(),_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.editAuthorDetails()}}},[_vm._v(\"Edit Author Details\")])])]):_vm._e()],1)],_c('GraphSettingsDialog',{ref:\"graphSettingsDialog\"})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","//\n// Vue components KeyLines v5.10.6-82439\n//\n// Copyright © 2011-2022 Cambridge Intelligence Limited.\n// All rights reserved.\n//\n\nimport Vue from 'vue';\n\nKeyLines.promisify();\n\nconst template = '
';\n\nexport const KlComponent = Vue.component('kl-component', {\n props: {\n id: {\n type: String,\n required: true\n },\n container: Object,\n containerClass: String,\n styleObject: Object,\n options: Object,\n data: Object,\n animateOnLoad: {\n type: Boolean,\n default: false\n },\n selection: {\n type: Array,\n default: () => []\n }\n },\n template,\n mounted() {\n KeyLines.create({\n id: this.id,\n options: this.options,\n container: this.$refs ? this.$refs.container : null,\n type: this.type\n }).then(component => {\n this.klcreate(component);\n }).catch(console.err);\n },\n beforeDestroy() {\n this.component.destroy();\n },\n methods: {\n onEvent(...args) {\n const name = 'kl-' + args[0];\n const rest = args.slice(1);\n this.$emit('kl-all', args);\n this.$emit.apply(this, [name, ...rest]);\n },\n klcreate(component) {\n this.component = component;\n this.component.bind('all', this.onEvent);\n this.component.load(this.data)\n .then(() => this.onLoad({ animate: !!this.animateOnLoad }))\n .then(() => {\n component.selection(this.selection);\n this.$emit('kl-ready', component);\n });\n }\n }\n});\n\nexport const KlChart = Vue.component('kl-chart', {\n extends: KlComponent,\n data: () => ({\n type: 'chart'\n }),\n methods: {\n onLoad(options) {\n return this.component.layout('standard', options);\n }\n }\n});\n\nexport const KlTimebar = Vue.component('kl-timebar', {\n extends: KlComponent,\n data: () => ({\n type: 'timebar'\n }),\n methods: {\n onLoad(options) {\n const setOptions = this.component.options({ options });\n const setZoom = this.component.zoom('fit');\n return setOptions && setZoom;\n }\n }\n});\n","import {LayoutName} from \"@/keylines\"\n\nexport interface HighlightFilter {\n filter: string,\n current: number | null\n list: string[]\n}\n\nexport type LayoutPacking = \"circle\" | \"rectangle\" | \"none\"\n\nexport interface GraphLayout {\n readonly name: LayoutName,\n readonly packing: LayoutPacking\n}\n\nexport const graphLayouts: {[key: string]: GraphLayout} = {\n circular: {\n name: \"organic\",\n packing: \"circle\"\n },\n organic: {\n name: \"organic\",\n packing: \"rectangle\"\n },\n structural: {\n name: \"structural\",\n packing: \"rectangle\"\n },\n lens: {\n name: \"lens\",\n packing: \"rectangle\"\n }\n}\n","import Vue from \"vue\"\nimport {KlComponent} from \"@/externals/vue-keylines\"\n\nexport const CustomKlChart = Vue.component('custom-kl-chart', {\n extends: KlComponent,\n data: () => ({\n type: 'chart'\n }),\n methods: {\n onLoad(options) {\n }\n }\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"speedometer\",attrs:{\"title\":\"Collecting & Analyzing Data in the Background\"}},[_c('div',{staticClass:\"mask\"},[_c('div',{staticClass:\"semi-circle\"}),_c('div',{staticClass:\"semi-circle-mask\",style:(_vm.gaugeStyle)})]),_c('div',{staticClass:\"needle animated\"},[_c('div',{staticClass:\"inner\",style:(_vm.gaugeStyle)})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {Prop} from \"vue-property-decorator\"\n\n@Component\nexport default class Speedometer extends Vue {\n @Prop()\n private rotation!: number\n\n get gaugeStyle() {\n return \"transform: rotate(\" + this.rotation + \"deg);\"\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Speedometer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Speedometer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Speedometer.vue?vue&type=template&id=12964e7e&scoped=true&\"\nimport script from \"./Speedometer.vue?vue&type=script&lang=ts&\"\nexport * from \"./Speedometer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Speedometer.vue?vue&type=style&index=0&id=12964e7e&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"12964e7e\",\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('GenericDialog',{attrs:{\"modal\":true,\"visible\":_vm.isOpen},on:{\"onClose\":function($event){return _vm.close()}},scopedSlots:_vm._u([{key:\"dialog-title\",fn:function(){return [_c('span',[_vm._v(\"Graph Settings\")])]},proxy:true},{key:\"dialog-content\",fn:function(){return [_c('div',{staticClass:\"investigation-configuration\"},[_c('div',{staticClass:\"error-message-container\",class:{'show': _vm.errorMessage}},[_c('div',{staticClass:\"error-message\"},[_vm._v(\" \"+_vm._s(_vm.errorMessage)+\" \")])]),_c('div',{staticClass:\"pages-content\"},[(_vm.pages.length > 0)?_c('section',{staticClass:\"pages-pane\"},[_c('ul',{staticClass:\"page-list\"},_vm._l((_vm.pages),function(page){return _c('li',{key:page,staticClass:\"page\",class:{'active': page === _vm.currentPage},on:{\"click\":function($event){_vm.currentPage = page}}},[_vm._v(_vm._s(page))])}),0)]):_vm._e(),_c('section',{staticClass:\"pages-content-container\"},[_c('section',{staticClass:\"page-content-container\"},[_c('section',{staticClass:\"page-content-pane\",class:{'active': _vm.currentPage === 'Counts And Thresholds'}},[_c('section',{staticClass:\"web-pages\"},[_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"input-container\"},[_c('label',[_vm._v(\"Total number of nodes:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.totalNumberOfNodes),expression:\"totalNumberOfNodes\"}],attrs:{\"type\":\"text\",\"placeholder\":(\"max: \" + (_vm.options.maxNodeCount))},domProps:{\"value\":(_vm.totalNumberOfNodes)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.totalNumberOfNodes=$event.target.value}}})])]),_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"input-container\"},[_c('label',[_vm._v(\"Edge visibility threshold:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.edgeThreshold),expression:\"edgeThreshold\"}],attrs:{\"type\":\"text\",\"placeholder\":((_vm.options.minEdgeFactor) + \" to \" + (_vm.options.maxEdgeFactor))},domProps:{\"value\":(_vm.edgeThreshold)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.edgeThreshold=$event.target.value}}})])])])])]),_c('div',{staticClass:\"dialog-buttons-container\"},[_c('button',{staticClass:\"dialog-button cancel\",on:{\"click\":_vm.close}},[_vm._v(\"Cancel\")]),_c('button',{staticClass:\"dialog-button ok\",class:{'saving': _vm.saving},attrs:{\"disabled\":_vm.saving},on:{\"click\":function($event){return _vm.save()}}},[_vm._v(\"Save\")])])])])])]},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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport GenericDialog from \"@/components/GenericDialog.vue\"\nimport {getInvestigation} from \"@/store/investigation/investigation-module\"\nimport {InvestigationConfigurationEntity} from \"@/types/investigations\"\nimport {configurationService} from \"@/api/investigation-configuration-service\"\n\nexport interface GraphSettingsDialogOptions {\n graphType: string,\n maxEdgeFactor: number,\n minEdgeFactor: number,\n maxNodeCount: number,\n readonly onOk: () => void\n}\n\n@Component({\n components: {GenericDialog}\n})\nexport default class GraphSettingsDialog extends Vue {\n private options!: GraphSettingsDialogOptions\n private isOpen = false\n private pages: string[] = []\n private currentPage: string = \"\"\n private saving: boolean = false\n private errorMessage: string | null = null\n private configuration!: InvestigationConfigurationEntity\n\n private totalNumberOfNodes: string = \"\"\n private edgeThreshold: string = \"\"\n\n public async open(options: GraphSettingsDialogOptions) {\n this.options = options\n document.addEventListener(\"keyup\", this.handleKey)\n\n this.saving = false\n this.pages = [\"Counts And Thresholds\"]\n this.currentPage = this.pages[0]\n\n const investigation = getInvestigation(this.$store)!!\n this.configuration = await configurationService.getConfiguration(investigation.id)\n this.totalNumberOfNodes = this.optionalNumberToString(this.configuration.graphsSettings[this.options.graphType]!.totalNumberOfNodes)\n this.edgeThreshold = this.optionalNumberToString(this.configuration.graphsSettings[this.options.graphType]!.edgeThreshold)\n\n this.errorMessage = \"\"\n this.isOpen = true\n }\n\n\n private close() {\n this.isOpen = false\n document.removeEventListener(\"keyup\", this.handleKey)\n }\n\n\n private async handleKey(e: KeyboardEvent) {\n switch (e.key) {\n case \"Escape\":\n this.close()\n break\n case \"Enter\":\n await this.save()\n break\n }\n }\n\n\n private validate(): boolean {\n this.errorMessage = null\n\n if (this.nullToEmpty(this.totalNumberOfNodes) !== \"\") {\n\n const totalNumberOfNodes = Number(this.totalNumberOfNodes)\n if (Number.isNaN(totalNumberOfNodes) || !Number.isInteger(totalNumberOfNodes) || totalNumberOfNodes < 0 || totalNumberOfNodes > this.options.maxNodeCount) {\n this.errorMessage = `Total number of nodes should be a whole number between 0 and ${this.options.maxNodeCount}`\n return false\n }\n }\n\n if (this.nullToEmpty(this.edgeThreshold) !== \"\") {\n const edgeThreshold = Number(this.edgeThreshold)\n if (Number.isNaN(edgeThreshold) || edgeThreshold < this.options.minEdgeFactor || edgeThreshold > this.options.maxEdgeFactor) {\n this.errorMessage = `Edge threshold should be a number between ${this.options.minEdgeFactor} and ${this.options.maxEdgeFactor}`\n return false\n }\n }\n\n return true\n }\n\n\n private async save() {\n if (!this.validate()) {\n return\n }\n\n this.saving = true\n const investigation = getInvestigation(this.$store)!!\n\n const newConfiguration: InvestigationConfigurationEntity = {\n ...this.configuration\n }\n\n newConfiguration.graphsSettings[this.options.graphType] = {\n totalNumberOfNodes: this.totalNumberOfNodes.length === 0 ? undefined : Number.parseInt(this.totalNumberOfNodes, 10),\n edgeThreshold: this.edgeThreshold.length === 0 ? undefined : Number.parseFloat(this.edgeThreshold)\n }\n\n this.errorMessage = await configurationService.setConfiguration(investigation.id, newConfiguration)\n this.saving = false\n if (!this.errorMessage) {\n this.close()\n\n this.options!!.onOk()\n }\n }\n\n\n private nullToEmpty(str?: string): string {\n return str != null ? str : \"\"\n }\n\n\n private optionalNumberToString(num?: number): string {\n return num == null ? \"\" : num.toString(10)\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GraphSettingsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GraphSettingsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GraphSettingsDialog.vue?vue&type=template&id=555421e0&scoped=true&\"\nimport script from \"./GraphSettingsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./GraphSettingsDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GraphSettingsDialog.vue?vue&type=style&index=0&id=555421e0&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 \"555421e0\",\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',{staticClass:\"no-results\"},[(_vm.isInReviewProfile)?_c('div',[_vm._v(\"Your publications are currently all filtered out. Release the filter toggle button to see all publications. If you selected additional filters - you can click the \\\"Clear Filters\\\" button at the top right.\")]):_c('div',[(_vm.hasFilter)?_c('div',[_c('div',[_vm._v(\"No results match the current filters.\")]),_c('div',[_vm._v(\"Please consider turning off some of the filters.\")])]):_c('div',[(_vm.showingSuggestedTerms && !_vm.hasSuggestedTerms)?_c('div',[_vm._v(\"There are no results or suggested terms to show, yet...\")]):_c('div',[_vm._v(\"No results\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport {getDateFilterEnd, getDateFilterStart} from \"@/store/investigation/date-filter-module\"\nimport {getDisplayedResultsStatus, getSelectedTops} from \"@/store/investigation/investigation-module\"\nimport {getSuggestedTerms} from \"@/store/investigation/investigation-terms-module\"\nimport {Prop} from \"vue-property-decorator\"\nimport {InvestigationMixin} from \"@/store/investigation-mixin\"\n\n@Component\nexport default class NoResults extends mixins(Vue, InvestigationMixin) {\n\n @Prop({type: Boolean, default: false})\n private showingSuggestedTerms!: boolean\n\n private get hasFilter() {\n const suggestedTerms = this.showingSuggestedTerms && this.hasSuggestedTerms\n const activeFilters = getSelectedTops(this.$store)\n const hasDateFilter = getDateFilterStart(this.$store) != null || getDateFilterEnd(this.$store) != null\n const hasTopFilter = activeFilters.length > 0\n const hasDisplayStatusFilter = getDisplayedResultsStatus(this.$store) !== \"All\"\n return suggestedTerms || hasDateFilter || hasTopFilter || hasDisplayStatusFilter\n }\n\n private get hasSuggestedTerms(): boolean {\n return getSuggestedTerms(this.$store).length !== 0\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NoResults.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NoResults.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NoResults.vue?vue&type=template&id=7d0402c2&scoped=true&\"\nimport script from \"./NoResults.vue?vue&type=script&lang=ts&\"\nexport * from \"./NoResults.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NoResults.vue?vue&type=style&index=0&id=7d0402c2&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 \"7d0402c2\",\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\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport \"keylines\"\nimport \"./CustomKeylinesChart\"\nimport {Chart, ChartData, ChartOptions, Link, Node, NodeProperties} from \"@/keylines\"\nimport {decreaseActiveRequests, fetchGraphData, getActivityStatus, getAuthorGraphSettings, getInvestigation, getRelevancyStatus, getSelectedNodes, getSelectedTops, getShortestPath, increaseActiveRequests, saveInvestigationState, setAuthorGraphSettings, setDisambiguatePersonName, setIsRenderingGraph, setPersonForRightPaneSummary, setSelectedNodes, setSelectedTops, setShortestPath, setShowAuthorGraphLegend} from \"@/store/investigation/investigation-module\"\nimport SpinningLoader from \"@/components/SpinningLoader.vue\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport {copyToClipboard, downloadBlob, wrapActiveRequests} from \"@/utils/utils\"\nimport {getGraph, removeGraphNodes, setGraphType} from \"@/store/investigation/graph-module\"\nimport TopicInvestigationService from \"../../../api/topic-investigation-service\"\nimport investigationService, {ImageCropData} from \"../../../api/investigation-service\"\nimport investigationsService from \"../../../api/investigations-service\"\nimport personInvestigationService from \"../../../api/person-investigation-service\"\nimport adminService from \"../../../api/admin-service\"\nimport {Prop, Watch} from \"vue-property-decorator\"\nimport {ColorCode, GraphSetBy, InvestigationPersonDetails, PersonEntity, RGB} from \"@/types/investigations\"\nimport {setDisambiguationPersonId} from \"@/store/investigation/person-filter-module\"\nimport moment from \"moment\"\nimport {graphLayouts, HighlightFilter} from \"@/views/investigation/graphs/graph-tools\"\nimport Speedometer from \"@/views/investigation/graphs/Speedometer.vue\"\nimport {openCreateObservationDialog} from \"@/views/investigation/dialogs/CreateObservationDialog.vue\"\nimport {isReportEnabled} from \"@/store/environment-module\"\nimport {configurationService} from \"@/api/investigation-configuration-service\"\nimport GraphSettingsDialog from \"@/views/investigation/dialogs/GraphSettingsDialog.vue\"\nimport NoResults from \"@/components/NoResults.vue\"\nimport {openAuthorDetailsDialog} from \"@/views/investigation/dialogs/AuthorDetailsDialog.vue\"\nimport {openConfirmationDialog} from \"@/views/investigation/dialogs/ConfirmationDialog.vue\"\nimport {PermissionsMixin} from \"@/store/user-mixin\"\nimport InvestigationService from \"@/api/investigation-service\"\nimport {undoMergeMessage} from \"@/utils/common-messages\"\nimport {InvestigationMixin} from \"@/store/investigation-mixin\"\n\n@Component({\n components: {NoResults, GraphSettingsDialog, SpinningLoader, PopupMenu, Speedometer}\n})\nexport default class AuthorGraph extends mixins(Vue, PermissionsMixin, InvestigationMixin) {\n\n private chart: Chart | null = null\n private chartData: ChartData = {type: \"LinkChart\", items: []}\n private selectedId: number = 0\n private originalProperties: any[] = []\n private enrichAuthorMenuTitle: string = \"\"\n private removePersonMenuTitle: string = \"\"\n private retainPersonMenuTitle: string = \"\"\n private mergePersonMenuTitle: string = \"\"\n private activityIndicatorInterval: any\n private activityIndicatorRotation: number = 0\n private menuPosition: { left: number, top: number } = {left: 0, top: 0}\n private showMerge: boolean = false\n private disableFindShortestPath: boolean = false\n private showDisambiguate: boolean = false\n private showUndoMerge: boolean = false\n private showSemanticAffinity: boolean = false\n private showMergeReport: boolean = false\n private enableLaunchWebInvestigation: boolean = false\n private enableLaunchPersonInvestigation: boolean = false\n private numberOfNodes: number = 0\n private isHiding: boolean = false\n private isContextMenuOpen: boolean = false\n private showSizeBySimilarity: boolean = false\n private showColorBySimilarity: boolean = false\n private showAddFilter: boolean = false\n private colorMap: ColorCode = {\n 0: \"#D6D4D4\",\n 1: \"#33B8FF\",\n 2: \"#81B1D3\",\n 3: \"#FFD540\",\n 4: \"#EA69B1\",\n 5: \"#AB7DF6\",\n 6: \"#FE7474\",\n 7: \"#88CF65\",\n 8: \"#889CFE\",\n 9: \"#26C1C9\"\n }\n private maxEdgeFactor: number = 0\n private minEdgeFactor: number = 0\n private highlightFilter: HighlightFilter = {\n filter: \"\",\n current: null,\n list: []\n }\n private isInFullScreen = false\n private imageDataUrl: string = \"\"\n private showingAdvancedMenu = false\n\n @Prop({type: Boolean, default: false})\n private locked!: boolean\n\n get isInPersonProfileSummary(): boolean {\n return this.$route.name!!.endsWith(\"ProfileOverview\")\n }\n\n private get isReportEnabled(): boolean {\n return isReportEnabled(this.$store)\n }\n\n private get graphData() {\n return getGraph(this.$store)\n }\n\n private get fullScreenText() {\n return this.isInFullScreen ? \"Exit Full Screen\" : \"Enter Full Screen\"\n }\n\n private get settings() {\n return getAuthorGraphSettings(this.$store)\n }\n\n private get activityIndicator(): number {\n return getActivityStatus(this.$store)\n }\n\n private get hasUnselectedNodes() {\n return this.getUnselectedNodesIds().length > 0\n }\n\n private get resultsDifferenceColor() {\n const percentFade = Math.min(getRelevancyStatus(this.$store).relevancyScore / 100, 1)\n const startRed = 0\n const startGreen = 176\n const startBlue = 255\n const middleRed = 160\n const middleGreen = 109\n const middleBlue = 244\n const endRed = 233\n const endGreen = 30\n const endBlue = 99\n return this.colorGradient(\n percentFade,\n {red: startRed, green: startGreen, blue: startBlue},\n {red: middleRed, green: middleGreen, blue: middleBlue},\n {red: endRed, green: endGreen, blue: endBlue}\n )\n }\n\n\n public mounted() {\n const option = \"score\"\n const sizeBy: GraphSetBy = {option}\n setAuthorGraphSettings(this.$store, {...this.settings, sizeBy})\n this.clearHighlight()\n this.syncGraphSettings()\n setDisambiguatePersonName(this.$store, null)\n setDisambiguationPersonId(this.$store, null)\n\n this.$on(\"closedOncloseGraphContextMenu\", this.contextMenuClosed)\n this.activityIndicatorInterval = setInterval(() => this.activityIndicatorRotation = this.activityIndicator + (this.activityIndicator > 0 && this.activityIndicator <= 170 ? 10 * Math.random() : 0), 500)\n }\n\n private contextMenuClosed() {\n this.isContextMenuOpen = false\n }\n\n private syncGraphSettings() {\n setGraphType(this.$store, \"Author\")\n this.highlightFilter.filter = this.settings.filter\n this.showSizeBySimilarity = this.settings.sizeBy.option === \"similarity\"\n this.showColorBySimilarity = this.settings.colorBy.option === \"similarity\"\n setPersonForRightPaneSummary(this.$store, this.settings.personForRightPaneSummary)\n this.$nextTick(async () => {\n const colorBySelect = (this.$refs.colorBySelect as HTMLSelectElement)\n setShowAuthorGraphLegend(this.$store, colorBySelect.value === \"recentAffiliationCode\")\n })\n }\n\n private toggleSnowflakes() {\n const showSnowflakes = !this.settings.showSnowflakes\n setAuthorGraphSettings(this.$store, {...this.settings, showSnowflakes})\n this.fetchData()\n }\n\n private openViewModeMenu() {\n const viewModeMenuOpenerButton = this.$refs.viewModeMenuOpener as HTMLElement\n this.$emit(\"openViewModeMenu\", viewModeMenuOpenerButton)\n }\n\n private openAdvancedMenu() {\n const advancedMenuOpenerButton = this.$refs.advancedMenuOpener as HTMLElement\n this.$emit(\"openAdvancedMenu\", advancedMenuOpenerButton)\n }\n\n private toggleAdvancedMenu() {\n this.showingAdvancedMenu = !this.showingAdvancedMenu\n }\n\n private async showHideItemsBasedOnConfiguration() {\n const configuration = await configurationService.getConfiguration(this.investigation!!.id)\n const totalNumberOfNodes = configuration.graphsSettings[`author`].totalNumberOfNodes\n const edgeThreshold = configuration.graphsSettings[`author`].edgeThreshold\n\n const visibleItemIds: string[] = []\n const invisibleItemIds: string[] = []\n const allNodes: Node[] = []\n\n this.chartData.items.forEach(item => {\n if (item.type === \"node\") {\n allNodes.push(item)\n } else if (item.type === \"link\") {\n if (edgeThreshold == null || (item.w && item.w >= edgeThreshold)) {\n visibleItemIds.push(item.id)\n } else {\n invisibleItemIds.push(item.id)\n }\n }\n })\n\n if (totalNumberOfNodes != null) {\n const allNodesIds: string[] = allNodes.sort((n1, n2) => n2.e! - n1.e!).map(node => node.id)\n allNodesIds.slice(0, totalNumberOfNodes).forEach(node => visibleItemIds.push(node))\n allNodesIds.slice(totalNumberOfNodes, allNodes.length).forEach(node => invisibleItemIds.push(node))\n } else {\n allNodes.map(node => node.id).forEach(node => visibleItemIds.push(node))\n }\n\n await this.chart!.show(visibleItemIds)\n await this.chart!.hide(invisibleItemIds)\n }\n\n private async openGraphSettings() {\n const maxNodeCount = this.chartData.items.filter(item => item.type === \"node\").length\n\n this.graphSettingsDialog().open({\n graphType: \"author\",\n maxEdgeFactor: this.maxEdgeFactor,\n minEdgeFactor: this.minEdgeFactor,\n maxNodeCount,\n\n onOk: async () => {\n await this.showHideItemsBasedOnConfiguration()\n this.calcNumberOfNodes()\n await this.performLayout(this.settings.layout)\n }\n })\n }\n\n private async fetchData() {\n await fetchGraphData(this.$store)\n }\n\n @Watch(\"graphData\")\n private resetGraph() {\n const chart = this.chart!\n this.chartData = {type: \"LinkChart\", items: []}\n chart.load(this.chartData)\n if (this.graphData.nodes.length !== 0) {\n this.$nextTick(async () => {\n this.chartData = this.getChartData()\n await chart.load(this.chartData)\n await this.showHideItemsBasedOnConfiguration()\n this.calcNumberOfNodes()\n await this.performLayout(this.settings.layout)\n chart.selection(getShortestPath(this.$store).length ? getShortestPath(this.$store) : getSelectedNodes(this.$store))\n\n await chart.zoom(\"fit\")\n if (getShortestPath(this.$store).length) {\n this.drawConnectingPath()\n }\n setIsRenderingGraph(this.$store, false)\n })\n } else {\n setIsRenderingGraph(this.$store, false)\n }\n }\n\n private toggleFullScreen() {\n const graphContent = this.$refs.graphContent as HTMLElement\n // @ts-ignore\n KeyLines.toggleFullScreen(graphContent, isInFullScreen => this.isInFullScreen = isInFullScreen)\n }\n\n private getChartData(): ChartData {\n const sizeBy = (this.$refs.sizeBySelect as HTMLSelectElement).value as string\n const colorBy = (this.$refs.colorBySelect as HTMLSelectElement).value as string\n\n const maxDocumentCount = Math.max(...this.graphData.nodes.map(node => node.props.documentCount))\n this.graphData.nodes.forEach(node => {\n node.props.normalizedDocumentCount = Math.min(25, 1 + Math.sqrt(node.props.documentCount))\n })\n\n const keyLinesNodes = this.graphData.nodes\n .map(node => {\n const hasBorder = !this.isInPersonProfile && (node.props.harvesting || node.props.harvested)\n const borderStyle = hasBorder ? (node.props.harvested ? \"solid\" : \"dashed\") : null\n const c = colorBy === \"similarity\" ?\n this.colorGradient(\n node.props.colorAffinityScore,\n {red: 205, green: 205, blue: 205},\n {red: 172, green: 102, blue: 102},\n {red: 139, green: 0, blue: 0}\n ) :\n this.colorMap[node.props[colorBy]]\n const splittedName = node.props.personName.replace(\" \", \"\\n\") as string\n const longest = Math.max(...splittedName.split(\"\\n\").map(t => t.length))\n const fontSize = longest < 10 ? 10 : Math.max(Math.round(-0.43 * longest + 12.8), 5)\n let e\n switch (sizeBy) {\n case \"score\":\n e = node.props.score\n break\n case \"documentCount\":\n e = node.props.normalizedDocumentCount\n break\n case \"similarity\":\n e = 0.5 + node.props.sizeAffinityScore * 9.5\n }\n\n return {\n id: node.id,\n type: \"node\",\n sh: \"circle\",\n ff: \"Roboto\",\n t: splittedName,\n c,\n e,\n b: hasBorder ? \"#606060\" : c,\n bw: 6,\n bs: borderStyle,\n fs: fontSize,\n fbc: \"transparent\",\n d: {\n props: node.props\n },\n bg: false\n } as unknown as Node\n })\n\n const keyLinesLinks = this.graphData.edges\n .map(edge => {\n return {\n id: edge.id,\n type: \"link\",\n bg: false,\n id1: edge.sourceId,\n id2: edge.targetId,\n c: edge.props.color,\n w: edge.props.weight,\n d: {\n props: edge.props\n }\n } as Link\n })\n\n let items: Array = []\n items = items.concat(keyLinesNodes).concat(keyLinesLinks)\n\n this.maxEdgeFactor = Math.round(Math.max(...keyLinesNodes.map(node => node.e as number)) * 100) / 100\n this.minEdgeFactor = Math.round(Math.min(...keyLinesNodes.map(node => node.e as number)) * 100) / 100\n\n return {\n type: \"LinkChart\",\n items\n } as ChartData\n }\n\n private getSelectedNode(): Node {\n return this.chartData.items.filter(item => item.type === \"node\" && item.id === this.selectedId.toString())[0] as unknown as Node\n }\n\n private getSelectedNodes(): Node[] {\n if (this.chart) {\n const selectedIds = this.chart!.selection()\n return this.chartData.items\n .filter(item => item.type === \"node\")\n .filter(item => selectedIds.find(id => id === item.id)) as Node[]\n }\n return []\n }\n\n private getSelectedNodesIds(): string[] {\n return this.getSelectedNodes().map(node => node.id)\n }\n\n private getUnselectedNodesIds(): string[] {\n const selectedNodesIds = this.getSelectedNodesIds()\n return this.chartData.items\n .filter(item => item.type === \"node\")\n .map(item => item.id)\n .filter(item => !selectedNodesIds.find(selected => selected === item))\n }\n\n private openPopupMenu(id: number | null, x: number, y: number) {\n const menuRef = this.$refs.menuRef as HTMLElement\n\n if (id !== null) {\n this.chart!.setProperties(this.originalProperties)\n\n this.selectedId = id\n const chartElement = this.$refs.chart as HTMLElement\n const boundingClientRect = chartElement.getBoundingClientRect()\n this.menuPosition = {left: x + boundingClientRect.left, top: y + boundingClientRect.top}\n this.buildContextMenu()\n this.$emit(\"openGraphContextMenu\", menuRef)\n this.isContextMenuOpen = true\n } else {\n this.$emit(\"closeGraphContextMenu\", menuRef)\n }\n }\n\n private clickedGraph(id: string) {\n if (!this.isContextMenuOpen) {\n if (id) {\n this.viewProfile(parseInt(id, 10))\n } else {\n setPersonForRightPaneSummary(this.$store, null)\n setAuthorGraphSettings(this.$store, {...this.settings, personForRightPaneSummary: null})\n }\n }\n }\n\n private buildContextMenu() {\n const selectedNodesIds = this.getSelectedNodesIds()\n this.showMerge = selectedNodesIds.length > 1\n this.disableFindShortestPath = selectedNodesIds.length !== 2 || !this.hasConnectingPath(selectedNodesIds)\n this.setContextMenuTitles(selectedNodesIds)\n this.showMergeReport = selectedNodesIds.length > 1 && this.isOmnipotentUser\n this.showDisambiguate = selectedNodesIds.length === 1 && this.investigationType === \"Person\"\n this.showSemanticAffinity = selectedNodesIds.length === 1\n this.showUndoMerge = selectedNodesIds.length === 1 && this.getSelectedNodes()[0].d.props.manuallyMerged\n this.enableLaunchWebInvestigation = selectedNodesIds.length === 1\n this.enableLaunchPersonInvestigation = selectedNodesIds.length === 1\n this.showAddFilter = this.calculateShowAddFilter()\n }\n\n\n private calculateShowAddFilter(): boolean {\n return this.getSelectedNodes()\n .every(node =>\n !this.selectedTops.some(top =>\n top.name === \"predefined.persons\" && top.selectedValue === node.id\n )\n )\n }\n\n\n private async addAsFilter() {\n if (this.showAddFilter) {\n this.getSelectedNodes().forEach(node => {\n this.selectedTops.push({name: \"predefined.Persons\", selectedDisplayValue: node.d.props.personName, selectedValue: parseInt(node.id, 10)})\n })\n\n await setSelectedTops(this.$store, this.selectedTops)\n await fetchGraphData(this.$store)\n }\n }\n\n\n private get selectedTops() {\n return getSelectedTops(this.$store)\n }\n\n\n private async refresh() {\n setPersonForRightPaneSummary(this.$store, null)\n setAuthorGraphSettings(this.$store, {...this.settings, personForRightPaneSummary: null})\n await this.fetchData()\n }\n\n private beforeDestroy() {\n setPersonForRightPaneSummary(this.$store, null)\n setIsRenderingGraph(this.$store, false)\n }\n\n private async klReady(chart: Chart) {\n this.chart = chart\n await this.fetchData()\n const chartOptions: ChartOptions = {\n minZoom: 0.001,\n handMode: true,\n zoom: {\n adaptiveStyling: true\n },\n linkEnds: {\n avoidLabels: false,\n spacing: \"tight\"\n },\n selectionColour: \"#0055B3\",\n drag: {\n links: false,\n panAtBoundary: true\n },\n selectedNode: {\n b: \"#0055B3\",\n fb: true,\n fbc: \"transparent\"\n },\n selectedLink: {},\n marqueeLinkSelection: \"off\",\n overview: {\n icon: false,\n shown: false\n },\n navigation: {\n x: 20,\n y: 10\n }\n }\n if (this.locked) {\n chartOptions.maxItemZoom = 1\n chartOptions.selectionColour = undefined\n chartOptions.drag = undefined\n chartOptions.selectedNode = undefined\n chartOptions.navigation = {\n shown: false\n }\n }\n\n await this.chart.options(chartOptions)\n this.chart.bind(\"selectionchange\", this.handleSelectionChange)\n this.chart.bind(\"delete\", (() => {\n this.hide(this.getSelectedNodesIds())\n return true\n }))\n if (this.locked) {\n await this.chart.lock(true, {})\n }\n }\n\n private handleSelectionChange() {\n if (!this.isHiding && !this.locked) {\n if (this.isContextMenuOpen) {\n this.chart!.selection(getSelectedNodes(this.$store))\n } else {\n this.chart!.setProperties(this.originalProperties)\n this.originalProperties = []\n setShortestPath(this.$store, [])\n\n const selectedNodesIds = this.getSelectedNodesIds()\n setSelectedNodes(this.$store, selectedNodesIds)\n this.selectNeighbouringNodes(1)\n this.chart!.selection(selectedNodesIds)\n\n if (selectedNodesIds.length === 0) {\n this.chart!.foreground(item => true)\n setPersonForRightPaneSummary(this.$store, null)\n setAuthorGraphSettings(this.$store, {...this.settings, personForRightPaneSummary: null})\n }\n }\n }\n }\n\n private setContextMenuTitles(selectedNodes: string[]) {\n if (selectedNodes.length === 1) {\n this.enrichAuthorMenuTitle = \"Enrich Author\"\n this.removePersonMenuTitle = \"Remove Selected Author\"\n } else {\n this.enrichAuthorMenuTitle = `Enrich ${selectedNodes.length} Authors`\n this.removePersonMenuTitle = `Remove ${selectedNodes.length} Selected Authors`\n }\n this.mergePersonMenuTitle = `Merge ${selectedNodes.length} Selected Authors`\n\n const unselectedNodesIds = this.getUnselectedNodesIds()\n if (unselectedNodesIds.length === 1) {\n this.retainPersonMenuTitle = \"Remove Unselected Author\"\n } else {\n this.retainPersonMenuTitle = `Remove ${unselectedNodesIds.length} Unselected Authors`\n }\n }\n\n private hasConnectingPath(selectedNodes: string[]): boolean {\n const paths = this.chart!.graph().shortestPaths(selectedNodes[0], selectedNodes[1], {direction: \"any\"})\n const connectedNodeIds = paths.items.filter(itemId => this.chart!.getItem(itemId)!!.type === \"node\")\n return connectedNodeIds.length > 0\n }\n\n private executeIfNotDisabled(disabled: boolean, action: () => void) {\n if (!disabled) {\n action()\n }\n }\n\n private drawConnectingPath() {\n this.chart!.setProperties(this.originalProperties)\n\n const chart = this.chart!\n if (this.getSelectedNodesIds()[0] && this.getSelectedNodesIds()[1]) {\n setShortestPath(this.$store, this.getSelectedNodesIds())\n const paths = chart.graph().shortestPaths(this.getSelectedNodesIds()[0], this.getSelectedNodesIds()[1], {direction: \"any\"})\n\n const connectedNodeIds = paths.items.filter(itemId => chart.getItem(itemId)!!.type === \"node\")\n const unconnectedNodeIds = this.chartData.items\n .filter(item => item.type === \"node\")\n .map(item => item.id)\n .filter(item => !connectedNodeIds.find(connected => connected === item))\n\n const connectedEdgeIds = paths.items.filter(itemId => chart.getItem(itemId)!!.type === \"link\")\n const unconnectedEdgeIds = this.chartData.items\n .filter(item => item.type === \"link\")\n .map(item => item.id)\n .filter(item => !connectedEdgeIds.find(connected => connected === item))\n\n const unconnectedNodes: Node[] = unconnectedNodeIds.map(unconnectedNodeId => chart.getItem(unconnectedNodeId)!!) as unknown as Node[]\n const unconnectedEdges: Link[] = unconnectedEdgeIds.map(unconnectedEdgeId => chart.getItem(unconnectedEdgeId)!!) as unknown as Link[]\n const connectedEdges: Link[] = connectedEdgeIds.map(connectedEdgeId => chart.getItem(connectedEdgeId)!!) as unknown as Link[]\n\n this.originalProperties = []\n this.originalProperties.push(...[\n ...unconnectedNodes.map(node => ({id: node.id, bg: node.bg})),\n ...[...unconnectedEdges, ...connectedEdges].map(edge => ({id: edge.id, bg: edge.bg, w: edge.w, c: edge.c}))\n ])\n chart.setProperties([\n ...[...unconnectedNodes, ...unconnectedEdges].map(item => ({id: item.id, bg: true})),\n ...connectedEdges.map(edge => ({id: edge.id, c: \"#0055B3\", w: 25}))\n ])\n chart.selection(connectedNodeIds)\n setSelectedNodes(this.$store, connectedNodeIds)\n }\n }\n\n private enrichAuthor() {\n const selectedNodes = this.getSelectedNodes()\n if (selectedNodes.length > 1) {\n openConfirmationDialog({\n message: `You are about to enrich ${selectedNodes.length} authors. Are you sure?
This might take a while.`,\n title: `Enrich Authors`,\n okText: \"Enrich\",\n onOk: () => this.performEnrichAuthors(selectedNodes),\n showCancel: true\n })\n } else {\n this.performEnrichAuthors(selectedNodes)\n }\n }\n\n private disambiguateAuthor() {\n if (this.investigationType === \"Person\") {\n const node = this.getSelectedNode()\n if (node) {\n setDisambiguatePersonName(this.$store, node!!.d.props.personName)\n setDisambiguationPersonId(this.$store, node!!.id)\n saveInvestigationState(this.$store)\n this.$router.push({path: \"disambiguate\"})\n }\n }\n }\n\n private async downloadMergeReport() {\n const nodeIds = this.getSelectedNodesIds()\n const blob = await adminService.createMergeReport(nodeIds)\n const fileName = `${moment().format(\"YYYY_MM_DD_HH_mm_ss\")} - merge-report.txt`\n downloadBlob(blob, fileName)\n }\n\n private performEnrichAuthors(selectedNodes: Node[]) {\n const properties = selectedNodes.map(node => {\n return {\n id: node.id,\n b: \"#606060\",\n bw: 6,\n bs: \"dashed\"\n } as NodeProperties\n })\n this.chart!.setProperties(properties)\n\n TopicInvestigationService.createPersonHarvests(this.investigation!.id, selectedNodes.map(node => node.d.props.personName))\n }\n\n private performRemovePersons(selectedNodes: string[]) {\n investigationService.disambiguate(this.investigation!.id, this.investigationType, selectedNodes, [], [])\n this.hide(selectedNodes)\n removeGraphNodes(this.$store, selectedNodes)\n }\n\n private viewProfile(profileId: number) {\n this.selectedId = profileId\n\n if (profileId) {\n const id = this.getSelectedNode().id\n const name = this.getSelectedNode().d.props.personName\n const documentsCount = this.getSelectedNode().d.props!.documentsCount\n const person: PersonEntity = {id, name, relevancy: \"Neutral\", documentsCount, filteredOut: false}\n setPersonForRightPaneSummary(this.$store, person)\n this.settings.personForRightPaneSummary = person\n } else {\n setPersonForRightPaneSummary(this.$store, null)\n setAuthorGraphSettings(this.$store, {...this.settings, personForRightPaneSummary: null})\n }\n }\n\n private removePerson() {\n const selectedNodes = this.getSelectedNodesIds()\n const plural = selectedNodes.length > 1 ? \"s\" : \"\"\n openConfirmationDialog({\n message: `You are about to remove ${selectedNodes.length} author${plural} from the graph. Are you sure?`,\n title: `Remove Selected Author${plural}`,\n okText: \"Remove\",\n onOk: () => this.performRemovePersons(selectedNodes),\n showCancel: true\n })\n }\n\n private invertSelection() {\n this.chart!.selection(this.getUnselectedNodesIds())\n this.handleSelectionChange()\n }\n\n private retainPerson() {\n const nodesToBeRemoved = this.getUnselectedNodesIds()\n\n const plural = nodesToBeRemoved.length > 1 ? \"s\" : \"\"\n openConfirmationDialog({\n message: `You are about to remove ${nodesToBeRemoved.length} author${plural} from the graph. Only selected authors will remain. Are you sure?`,\n title: `Remove Unselected Author${plural}`,\n okText: \"Remove\",\n onOk: () => this.performRemovePersons(nodesToBeRemoved),\n showCancel: true\n })\n }\n\n private async performLayout(layoutName: string) {\n setAuthorGraphSettings(this.$store, {...this.settings, layout: layoutName})\n const layout = graphLayouts[layoutName]\n await this.chart!.layout(layout.name, {packing: layout.packing})\n }\n\n private async performSizeBy() {\n this.showSizeBySimilarity = false\n const option = (this.$refs.sizeBySelect as HTMLSelectElement).value as string\n const sizeBy: GraphSetBy = {option}\n setAuthorGraphSettings(this.$store, {...this.settings, sizeBy})\n\n const properties: NodeProperties[] = []\n this.chart!.each({type: \"node\"}, node => {\n const nodeData = this.getNode(node.id)\n properties.push({id: node.id, e: sizeBy.option === \"score\" ? nodeData.d.props.score : nodeData.d.props.normalizedDocumentCount})\n })\n await this.chart!.animateProperties(properties, {time: 300, easing: \"cubic\"})\n }\n\n private async performColorBy() {\n this.showColorBySimilarity = false\n const option = (this.$refs.colorBySelect as HTMLSelectElement).value as string\n const colorBy: GraphSetBy = {option}\n setAuthorGraphSettings(this.$store, {...this.settings, colorBy})\n\n const properties: NodeProperties[] = []\n this.chart!.each({type: \"node\"}, node => {\n const color = this.colorMap[node.d.props[colorBy.option]]\n const borderColor = (node.d.props.harvested || node.d.props.harvesting) ? \"#606060\" : color\n\n properties.push({id: node.id, b: borderColor, c: color})\n })\n setShowAuthorGraphLegend(this.$store, colorBy.option === \"recentAffiliationCode\")\n await this.chart!.animateProperties(properties, {time: 300, easing: \"cubic\"})\n }\n\n private async selectNeighbouringNodes(hops: number) {\n const result = this.chart!.graph().neighbours(this.chart!.selection(), {hops, all: false})\n result.nodes.push(...this.chart!.selection())\n await this.chart!.selection(result.nodes)\n\n result.links!!.forEach((itemId, index) => {\n const item = this.chart!.getItem(itemId)\n this.originalProperties.push({id: itemId, c: \"rgba(135, 135, 135, 0.4)\", w: (item!! as Link).w, bg: true})\n })\n\n if (result.nodes.length !== 0 || result.links!.length !== 0) {\n await this.chart!.foreground(item => {\n if (item.type === \"node\" && !result.nodes.includes(item.id)) {\n return false\n }\n if (item.type === \"link\" && !result.links!.includes(item.id)) {\n return false\n }\n return true\n }, {type: \"all\"})\n }\n await this.chart!.setProperties(result.links!!.map(link => ({id: link, c: \"rgba(0,102,215,0.53)\", bg: false})))\n }\n\n private getNode(id: string): Node {\n return this.chartData.items.filter(item => item.type === \"node\" && item.id === id)[0] as Node\n }\n\n private copyNodeText() {\n copyToClipboard(this.getSelectedNodes().map(node => node.d.props.personName).sort((a, b) => a.localeCompare(b)).join(\"\\n\"))\n }\n\n private googleIt() {\n const searchString = this.getSelectedNode().d.props.personName\n window.open(`https://www.google.com/search?q=${searchString}`, \"_blank\")\n }\n\n private async createGraphObservation() {\n this.imageDataUrl = await this.chart!.toDataURL(undefined, undefined, {fit: \"exact\", selection: true})\n\n openCreateObservationDialog(this, {\n type: \"Graph\",\n referencedEntity: this.imageDataUrl,\n observationTitle: this.getObservationTitle()\n })\n }\n\n private createPersonObservation() {\n openCreateObservationDialog(this, {\n type: \"Person\",\n referencedEntity: this.selectedId.toString()\n })\n }\n\n private hide(persons: string[]) {\n this.isHiding = true\n this.chart!.hide(persons)\n setPersonForRightPaneSummary(this.$store, null)\n setAuthorGraphSettings(this.$store, {...this.settings, personForRightPaneSummary: null})\n this.isHiding = false\n this.calcNumberOfNodes()\n }\n\n private showMergeConfirmation() {\n const selectedNodes = this.getSelectedNodes()\n const nodeCount = selectedNodes.length\n const authors = selectedNodes.map(node => node.d.props.personName)\n let authorsHtml = `
    `\n authors.forEach(author => authorsHtml += `
  • ${author}
  • `)\n authorsHtml += `
`\n const nodeIds = selectedNodes.map(node => node.id)\n\n openConfirmationDialog({\n message: `You are about to merge ${nodeCount} authors:${authorsHtml}Are you sure?
This operation cannot be undone.`,\n title: \"Merge Authors\",\n okText: \"Merge\",\n onOk: () => this.performMerge(nodeIds),\n showCancel: true\n })\n }\n\n private async performMerge(relevantPersons: string[]) {\n const investigation = this.investigation!\n wrapActiveRequests(this.$store, async () => {\n setPersonForRightPaneSummary(this.$store, null)\n setAuthorGraphSettings(this.$store, {...this.settings, personForRightPaneSummary: null})\n await investigationService.disambiguate(investigation.id, investigation.investigationType, [], relevantPersons, [])\n await fetchGraphData(this.$store)\n })\n await investigationService.merge(investigation.id, investigation.investigationType)\n }\n\n private async sizeBySemanticAffinity() {\n const investigation = this.investigation!\n const selectedNode = this.getSelectedNode()\n if (selectedNode) {\n await increaseActiveRequests(this.$store)\n const affinities = await personInvestigationService.getSemanticAffinity(investigation!!.id, selectedNode.id!!)\n const nodeAffinities = this.chartData.items\n .filter(item => item.type === \"node\")\n .filter(node => affinities.map(affinity => affinity.personId).includes(node.id))\n .map(node => ({\n id: node.id,\n affinity: affinities.filter(affinity => affinity.personId === node.id)[0].semanticAffinity\n }))\n\n const properties = nodeAffinities.map(nodeAffinity => ({id: nodeAffinity.id, e: 0.5 + nodeAffinity.affinity * 9.5}))\n await decreaseActiveRequests(this.$store)\n\n await this.chart!.animateProperties(properties, {time: 300, easing: \"cubic\"})\n this.showSizeBySimilarity = true\n Vue.nextTick(() => {\n const sizeBySelect = (this.$refs.sizeBySelect as HTMLSelectElement)\n sizeBySelect.value = \"similarity\"\n const option = sizeBySelect.value\n const personId = this.getSelectedNode() ? this.getSelectedNode().id : undefined\n const sizeBy: GraphSetBy = {option, personId}\n setAuthorGraphSettings(this.$store, {...this.settings, sizeBy})\n })\n }\n }\n\n private async colorBySemanticAffinity() {\n const investigation = this.investigation!\n const selectedNode = this.getSelectedNode()\n if (selectedNode) {\n await increaseActiveRequests(this.$store)\n const affinities = await personInvestigationService.getSemanticAffinity(investigation!!.id, selectedNode.id!!)\n const nodeAffinities = this.chartData.items\n .filter(item => item.type === \"node\")\n .filter(node => affinities.map(affinity => affinity.personId).includes(node.id))\n .map(node => ({\n id: node.id,\n affinity: affinities.filter(affinity => affinity.personId === node.id)[0].semanticAffinity\n }))\n const startColor = {red: 205, green: 205, blue: 205}\n const endColor = {red: 139, green: 0, blue: 0}\n const properties = nodeAffinities.map(nodeAffinity => {\n const color = this.colorGradient(nodeAffinity.affinity, startColor, endColor)\n return {id: nodeAffinity.id, c: color, b: color}\n })\n\n await decreaseActiveRequests(this.$store)\n\n await this.chart!.animateProperties(properties, {time: 300, easing: \"cubic\"})\n this.showColorBySimilarity = true\n Vue.nextTick(() => {\n const colorBySelect = (this.$refs.colorBySelect as HTMLSelectElement)\n colorBySelect.value = \"similarity\"\n setShowAuthorGraphLegend(this.$store, false)\n const option = colorBySelect.value\n const personId = this.getSelectedNode() ? this.getSelectedNode().id : undefined\n const colorBy: GraphSetBy = {option, personId}\n setAuthorGraphSettings(this.$store, {...this.settings, colorBy})\n })\n }\n }\n\n private graphSettingsDialog(): GraphSettingsDialog {\n return this.$refs.graphSettingsDialog as GraphSettingsDialog\n }\n\n private colorGradient(fadeFraction: number, rgbColor1: RGB, rgbColor2: RGB, rgbColor3?: RGB) {\n let color1: RGB = rgbColor1\n let color2: RGB = rgbColor2\n let fade: number = fadeFraction\n\n // Do we have 3 colors for the gradient? Need to adjust the params.\n if (rgbColor3) {\n fade = fade * 2\n\n // Find which interval to use and adjust the fade percentage\n if (fade >= 1) {\n fade -= 1\n color1 = rgbColor2\n color2 = rgbColor3\n }\n }\n\n const diffRed: number = color2.red - color1.red\n const diffGreen: number = color2.green - color1.green\n const diffBlue: number = color2.blue - color1.blue\n\n const gradient: RGB = {\n red: Math.floor(color1.red + (diffRed * fade)),\n green: Math.floor(color1.green + (diffGreen * fade)),\n blue: Math.floor(color1.blue + (diffBlue * fade))\n }\n\n return `rgb(${gradient.red},${gradient.green},${gradient.blue})`\n }\n\n private addHalosToNodes() {\n const names = this.highlightFilter.filter.substr(1)\n if (names.length === 0) {\n this.chart!.setProperties({id: \".\", ha0: undefined}, true)\n } else {\n names.split(\",\").forEach(name => {\n name = name.trim()\n this.chart!.each({type: \"node\"}, node => {\n if (node.d.props.personName.includes(name)) {\n this.chart!.setProperties({\n id: node.id,\n ha0: {\n c: \"rgb(158,161,255)\",\n r: 35,\n w: 10\n }\n })\n }\n })\n })\n }\n }\n\n private calcNumberOfNodes() {\n let count = 0\n this.chart!.each({type: \"node\"}, node => {\n if (!node.hi) {\n count++\n }\n })\n this.numberOfNodes = count\n }\n\n private filter() {\n setAuthorGraphSettings(this.$store, {...this.settings, filter: this.highlightFilter.filter})\n if (this.highlightFilter.filter.startsWith(\"!\")) {\n this.addHalosToNodes()\n }\n\n this.highlightFilter.current = null\n this.highlightFilter.list = []\n\n if (this.highlightFilter.filter !== \"\") {\n const lowerCaseFilterName = this.highlightFilter.filter.toLowerCase()\n const filteredNodeIds = this.chartData.items\n .filter(item => item.type === \"node\")\n .map(item => item as NodeProperties)\n .filter(node => {\n return this.highlightFilter.filter === \"\" || node.d.props.personName.toLowerCase().includes(lowerCaseFilterName)\n })\n .map(node => node.id)\n this.chart!.ping(filteredNodeIds, {\n c: \"#ff0000\",\n repeat: 10,\n r: 120,\n w: 100,\n time: 800\n })\n this.chart!.zoom(\"fit\", {ids: filteredNodeIds, animate: true})\n this.highlightFilter.current = null\n this.highlightFilter.list = filteredNodeIds\n }\n }\n\n private calcHighlightFilterCounts() {\n if (this.highlightFilter.list.length === 0) {\n return \"\"\n }\n if (this.highlightFilter.current != null) {\n return `${this.highlightFilter.current + 1}/${this.highlightFilter.list.length}`\n }\n\n return `${this.highlightFilter.list.length}`\n }\n\n private highlightPrevious() {\n this.highlightJump(-1)\n }\n\n private highlightNext() {\n this.highlightJump(1)\n }\n\n private async highlightJump(direction: number) {\n if (this.highlightFilter.list === []) {\n return\n }\n if (this.highlightFilter.current === null) {\n this.highlightFilter.current = direction === 1 ? 0 : this.highlightFilter.list.length - 1\n } else {\n this.highlightFilter.current += direction\n if (this.highlightFilter.current === -1 || this.highlightFilter.current === this.highlightFilter.list.length) {\n this.highlightFilter.current = null\n }\n }\n\n const nodeIds = this.highlightFilter.current === null ? this.highlightFilter.list : this.highlightFilter.list[this.highlightFilter.current]\n\n this.chart!.ping(nodeIds, {\n c: \"#ff0000\",\n repeat: 3,\n r: 120,\n w: 100,\n time: 800\n })\n await this.chart!.zoom(\"fit\", {ids: nodeIds, animate: true, time: 500})\n }\n\n private clearHighlight() {\n this.highlightFilter = {\n filter: \"\",\n current: null,\n list: []\n }\n }\n\n private async editAuthorDetails() {\n const node = this.getSelectedNode()\n if (node) {\n openAuthorDetailsDialog(this, {\n personId: node!!.id,\n personName: node!!.d.props.personName,\n onUpdateCallback: async (details: InvestigationPersonDetails, imageModified: boolean,\n imageCropData?: ImageCropData, imageUrl?: string) => {\n\n const investigation = this.investigation!\n await investigationService.updatePersonDetails(\n investigation.id, investigation.investigationType, details)\n\n if (imageModified) {\n if (imageCropData) {\n await InvestigationService.updatePersonImage(\n investigation.id, investigation.investigationType, node!!.id, imageCropData, imageUrl)\n } else {\n await InvestigationService.clearPersonImage(\n investigation.id, investigation.investigationType, node!!.id)\n }\n }\n }\n })\n }\n }\n\n private getObservationTitle(): string {\n const nodes = this.getSelectedNodes()\n if (nodes.length === 1) {\n return nodes[0].d.props.personName\n }\n\n if (nodes.length === 2) {\n return nodes[0].d.props.personName + \" & \" + nodes[1].d.props.personName\n }\n\n return \"Author Graph Insight\"\n }\n\n private undoMerge() {\n const nodes = this.getSelectedNodes()\n if (nodes.length !== 1) {\n return\n }\n\n const performUndoMerge = async () => {\n const investigation = this.investigation!\n\n setPersonForRightPaneSummary(this.$store, null)\n setAuthorGraphSettings(this.$store, {...this.settings, personForRightPaneSummary: null})\n await investigationService.undoMerge(investigation.id, investigation.investigationType, [nodes[0].id])\n }\n\n openConfirmationDialog({\n message: undoMergeMessage(nodes[0].d.props.personName),\n title: \"Undo Manual Merge\",\n okText: \"Undo Merge\",\n onOk: () => performUndoMerge(),\n showCancel: true\n })\n }\n\n\n private async createWebInvestigation() {\n const nodes = this.getSelectedNodes()\n if (nodes.length !== 1) {\n return\n }\n\n const investigation = getInvestigation(this.$store)!!\n const newInvestigation = await personInvestigationService.createCorrelatedInvestigation(getInvestigation(this.$store)!.id, nodes[0].id, investigation.investigationType)\n const href = this.$router.resolve({name: \"topicInvestigation\", params: {id: newInvestigation.id}}).href\n openConfirmationDialog({\n message: `A new web investigation was launched successfully.
Click here to open it now.`,\n title: \"New Web Investigation\",\n okText: \"Ok\",\n onOk: () => {\n return\n },\n showCancel: false\n })\n }\n\n\n private async createPersonInvestigation() {\n const nodes = this.getSelectedNodes()\n if (nodes.length !== 1) {\n return\n }\n\n const newInvestigation = await investigationsService.createPerson(nodes[0].d.props.personName, true, false)\n const href = this.$router.resolve({name: \"personInvestigation\", params: {id: newInvestigation.id}}).href\n openConfirmationDialog({\n message: `A new academic researcher investigation was launched successfully.
Click here to open it now.`,\n title: \"New Academic Researcher Investigation\",\n okText: \"Ok\",\n onOk: () => {\n return\n },\n showCancel: false\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--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthorGraph.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthorGraph.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AuthorGraph.vue?vue&type=template&id=75502bb0&scoped=true&\"\nimport script from \"./AuthorGraph.vue?vue&type=script&lang=ts&\"\nexport * from \"./AuthorGraph.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AuthorGraph.vue?vue&type=style&index=0&id=75502bb0&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 \"75502bb0\",\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport SplitPane from \"@/components/SplittedPane.vue\"\nimport TopsPane from \"@/views/investigation/panes/TopsPane.vue\"\nimport AuthorDisambiguationPane from \"@/views/investigation/panes/AuthorDisambiguationPane.vue\"\nimport AuthorSummaryPane from \"@/views/investigation/panes/AuthorSummaryPane.vue\"\nimport {clearInvestigationStore, getEntityForSummary, getEntityRelationshipForSummary, getIsBusy, getIsInDisambiguate, getPersonForRightPaneSummary, setDisambiguatePersonName, setDisplayedResultsStatus, setIsInDisambiguate} from \"@/store/investigation/investigation-module\"\nimport ReportNavigationPane from \"@/views/investigation/panes/ReportNavigationPane.vue\"\nimport {webSocketManager} from \"@/infrastructure/WebsocketManager\"\nimport AuthorGraph from \"@/views/investigation/graphs/AuthorGraph.vue\"\nimport {getGraphType} from \"@/store/investigation/graph-module\"\nimport DocumentsPane from \"@/views/investigation/panes/DocumentsPane.vue\"\nimport EntitySummaryPane from \"@/views/investigation/panes/EntitySummaryPane.vue\"\nimport SpinningLoader from \"@/components/SpinningLoader.vue\"\nimport EntityRelationshipSummaryPane from \"@/views/investigation/panes/EntityRelationshipSummaryPane.vue\"\n\n@Component({\n components: {EntityRelationshipSummaryPane, EntitySummaryPane, AuthorGraph, SplitPane, TopsPane, AuthorDisambiguationPane, AuthorSummaryPane, ReportNavigationPane, SpinningLoader}\n})\nexport default class PersonInvestigation extends Vue {\n\n private scrolledToObservation: string | null = \"\"\n private scrolledToSection: string | null = \"\"\n\n private get isShowingTopsPane() {\n return !this.isAuthorSummaryInRightPane && !this.isEntitySummaryVisible && !this.isEntityRelationshipSummaryVisible\n }\n\n private get personForRightPaneSummary() {\n return getPersonForRightPaneSummary(this.$store)\n }\n\n private get isAuthorSummaryInRightPane(): boolean {\n return this.personForRightPaneSummary != null\n }\n\n private get entityForSummary() {\n return getEntityForSummary(this.$store)\n }\n\n private get entityRelationshipForSummary() {\n return getEntityRelationshipForSummary(this.$store)\n }\n\n private get isEntitySummaryVisible(): boolean {\n return this.entityForSummary != null\n }\n\n private get isEntityRelationshipSummaryVisible(): boolean {\n return this.entityRelationshipForSummary != null\n }\n\n private get isInReportEditor() {\n return this.$route.path.includes(\"report-editor\")\n }\n\n private get isBusy(): boolean {\n return getIsBusy(this.$store)\n }\n\n private get showDisambiguationPane() {\n return getIsInDisambiguate(this.$store)\n }\n\n private get showingGraph() {\n return getGraphType(this.$store) != null\n }\n\n private async beforeCreate() {\n setDisplayedResultsStatus(this.$store, \"All\")\n if (this.$route.path.endsWith(\"disambiguate\")) {\n setDisambiguatePersonName(this.$store, this.$route.query.name as string)\n } else {\n setIsInDisambiguate(this.$store, false)\n }\n }\n\n private refreshContent() {\n const documentsPane = this.$refs.content as DocumentsPane\n // @ts-ignore\n documentsPane.refreshResults()\n }\n\n private beforeRouteLeave(to: string, from: string, next: () => void) {\n webSocketManager.unregisterInvestigation()\n clearInvestigationStore(this.$store)\n next()\n }\n\n private documentsUpdated() {\n const documentContainer = this.$refs.documentsContainer as HTMLDivElement\n documentContainer.scrollTop = 0\n }\n\n private scrollToSection(sectionId: string) {\n const content = this.$refs.content as Vue\n this.scrolledToSection = sectionId\n }\n\n private scrollToObservation(observationId: string) {\n const content = this.$refs.content as Vue\n this.scrolledToObservation = observationId\n }\n\n private resetScrollVars() {\n this.scrolledToSection = null\n this.scrolledToObservation = null\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PersonInvestigation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PersonInvestigation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PersonInvestigation.vue?vue&type=template&id=00e5863a&scoped=true&\"\nimport script from \"./PersonInvestigation.vue?vue&type=script&lang=ts&\"\nexport * from \"./PersonInvestigation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PersonInvestigation.vue?vue&type=style&index=0&id=00e5863a&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 \"00e5863a\",\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('AuthPageContainer',[(_vm.tokenExists)?_c('div',[(_vm.isTokenValidating)?_c('div'):(!_vm.error)?_c('div',[_c('div',{staticClass:\"change-password-container\"},[_c('form',[_c('div',{staticClass:\"title-container\"},[_c('div',{staticClass:\"header\"},[_vm._v(\"Please enter your new password.\")])]),_c('label',{staticClass:\"form-label\",class:{up: _vm.password !== '' || _vm.passwordHasFocus},attrs:{\"for\":\"password\"}},[_vm._v(\"Password\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.password),expression:\"password\"}],staticClass:\"form-input\",attrs:{\"id\":\"password\",\"type\":\"password\",\"autocomplete\":\"off\"},domProps:{\"value\":(_vm.password)},on:{\"focus\":function($event){_vm.passwordHasFocus = true},\"blur\":function($event){_vm.passwordHasFocus = false},\"input\":function($event){if($event.target.composing){ return; }_vm.password=$event.target.value}}}),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.passwordError)?_c('div',{staticClass:\"form-input-error\"},[_vm._v(\"Please enter your password\")]):_vm._e()]),_c('label',{staticClass:\"form-label\",class:{up: _vm.confirmPassword !== '' || _vm.confirmPasswordHasFocus},attrs:{\"for\":\"confirmPassword\"}},[_vm._v(\"Confirm Password\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.confirmPassword),expression:\"confirmPassword\"}],staticClass:\"form-input\",attrs:{\"id\":\"confirmPassword\",\"type\":\"password\",\"autocomplete\":\"off\"},domProps:{\"value\":(_vm.confirmPassword)},on:{\"focus\":function($event){_vm.confirmPasswordHasFocus = true},\"blur\":function($event){_vm.confirmPasswordHasFocus = false},\"input\":function($event){if($event.target.composing){ return; }_vm.confirmPassword=$event.target.value}}}),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.confirmPasswordError)?_c('div',{staticClass:\"form-input-error\"},[_vm._v(\"Please confirm your password\")]):_vm._e()]),_c('button',{staticClass:\"set-password-button\",on:{\"click\":function($event){$event.preventDefault();return _vm.changePassword.apply(null, arguments)}}},[_c('div',{staticClass:\"button-text\"},[(_vm.sending)?_c('img',{staticClass:\"rotating-progress\",attrs:{\"src\":require(\"../assets/images/loading-icon-white-not-animated.png\"),\"width\":\"40\",\"height\":\"40\",\"alt\":\"progress\"}}):_vm._e(),_c('span',[_vm._v(\"Set New Password\")])])]),_c('section',{staticClass:\"management\"},[_c('label',{staticClass:\"sign-in\"},[_vm._v(\"Back to\")]),_c('router-link',{staticClass:\"sign-in-link\",attrs:{\"to\":\"sign-in\"}},[_vm._v(\"Sign In\")])],1)],1)])]):_c('div',{staticClass:\"error\"},[_c('div',[_vm._v(\"Could not validate your token,\")]),_c('div',[_vm._v(\"Please reset your password again.\")]),_c('router-link',{staticClass:\"reset-button\",attrs:{\"tag\":\"button\",\"to\":\"/reset\"}},[_vm._v(\"Reset\")])],1)]):_c('div',[(!_vm.sent)?_c('div',{staticClass:\"forgot-password-container\"},[_c('form',[_c('div',{staticClass:\"title-container\"},[_c('div',{staticClass:\"header\"},[_vm._v(\"Forgot your password?\")]),_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(!_vm.error)?_c('span',{staticClass:\"regular\"},[_vm._v(\"Enter your email address below and we’ll get you back on track.\")]):_c('span',{key:'error',staticClass:\"error\"},[_vm._v(\"Oops! That email is not valid.\")])])],1),_c('label',{staticClass:\"form-label\",class:{up: _vm.email !== '' || _vm.emailHasFocus},attrs:{\"for\":\"email\"}},[_vm._v(\"Email Address\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.email),expression:\"email\"}],staticClass:\"form-input\",attrs:{\"id\":\"email\",\"autocomplete\":\"off\"},domProps:{\"value\":(_vm.email)},on:{\"focus\":function($event){_vm.emailHasFocus = true},\"blur\":function($event){_vm.emailHasFocus = false},\"input\":function($event){if($event.target.composing){ return; }_vm.email=$event.target.value}}}),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.emailError)?_c('div',{staticClass:\"form-input-error\"},[_vm._v(\"Please enter your email address\")]):_vm._e()]),_c('button',{staticClass:\"reset-button\",on:{\"click\":function($event){$event.preventDefault();return _vm.create.apply(null, arguments)}}},[_c('div',{staticClass:\"button-text\"},[(_vm.sending)?_c('img',{staticClass:\"rotating-progress\",attrs:{\"src\":require(\"../assets/images/loading-icon-white-not-animated.png\"),\"width\":\"40\",\"height\":\"40\",\"alt\":\"progress\"}}):_vm._e(),_c('span',[_vm._v(\"Request Reset Link\")])])]),_c('section',{staticClass:\"management\",class:{showsSignUp: _vm.showSignUp}},[_c('label',{staticClass:\"sign-in\"},[_vm._v(\"Back to\")]),_c('router-link',{staticClass:\"sign-in-link\",attrs:{\"to\":\"sign-in\"}},[_vm._v(\"Sign In\")]),(_vm.showSignUp)?_c('section',{staticClass:\"sign-up-container\"},[_c('div',{staticClass:\"separator\"}),_c('label',{staticClass:\"forgot-label\"},[_vm._v(\"Don’t have an account?\")]),_c('router-link',{staticClass:\"reset-link\",attrs:{\"to\":\"/sign-up\"}},[_vm._v(\"Sign Up\")])],1):_vm._e()],1)],1)]):_c('div',{staticClass:\"sent-request-message\"},[_c('div',{staticClass:\"sent-text\"},[_vm._v(\" Your request to reset your password has been successfully accepted!\"),_c('br'),_c('br'),_vm._v(\" Please check your email to continue. \")])])])])}\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 Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport AuthPageContainer from \"@/components/AuthPageContainer.vue\"\nimport userService from \"../api/user-service\"\nimport {isTokenValidating, validateToken} from \"@/store/auth-module\"\nimport {isShowingSignUp} from \"@/store/environment-module\"\n\n@Component({\n components: { AuthPageContainer }\n})\nexport default class ResetPage extends Vue {\n\n private validateToken = this.$wrap(validateToken)\n\n private email: string = \"\"\n private emailHasFocus: boolean = false\n private emailError: boolean = false\n private password: string = \"\"\n private passwordHasFocus: boolean = false\n private confirmPassword: string = \"\"\n private confirmPasswordHasFocus: boolean = false\n private passwordError: boolean = false\n private confirmPasswordError: boolean = false\n private sending: boolean = false\n private sent: boolean = false\n private error: boolean = false\n\n private get isTokenValidating(): boolean {\n return isTokenValidating(this.$store)\n }\n\n private get showSignUp() {\n return isShowingSignUp(this.$store)\n }\n\n private get tokenExists(): boolean {\n return !!(this.$route.query[`token`] as string)\n }\n\n private async mounted() {\n if (this.tokenExists) {\n try {\n await this.validateToken(this.$route.query[`token`] as string)\n } catch (e) {\n this.error = true\n }\n }\n }\n\n private async create() {\n this.emailError = this.email === \"\"\n\n if (this.emailError) {\n return\n }\n\n this.sending = true\n try {\n await userService.reset(this.email)\n this.sent = true\n\n } catch (error) {\n this.error = true\n this.sending = false\n }\n }\n\n private async changePassword() {\n this.passwordError = this.password === \"\"\n this.confirmPasswordError = this.password !== this.confirmPassword\n\n if (this.passwordError || this.confirmPasswordError) {\n return\n }\n\n this.sending = true\n try {\n await userService.changePasswordAndSignIn(this.$route.query[`token`] as string, this.password)\n this.$router.push(\"/\")\n\n } catch (error) {\n this.error = true\n this.sending = 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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ResetPage.vue?vue&type=template&id=5cd20bd2&scoped=true&\"\nimport script from \"./ResetPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResetPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ResetPage.vue?vue&type=style&index=0&id=5cd20bd2&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5cd20bd2\",\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('AuthPageContainer',[(!_vm.sent)?_c('div',{staticClass:\"sign-up-container\"},[_c('form',[_c('div',{staticClass:\"title-container\"},[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(!_vm.error)?_c('span',{key:'regular',staticClass:\"regular\"},[_vm._v(\"Create an account by filling the form below:\")]):_c('span',{key:'error',staticClass:\"error\"},[_vm._v(_vm._s(_vm.errorMessage))])])],1),_c('label',{staticClass:\"form-label\",class:{up: _vm.email !== '' || _vm.emailHasFocus},attrs:{\"for\":\"email\"}},[_vm._v(\"Email Address\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.email),expression:\"email\"}],staticClass:\"form-input\",attrs:{\"id\":\"email\",\"autocomplete\":\"off\",\"data-test\":\"email\"},domProps:{\"value\":(_vm.email)},on:{\"focus\":function($event){_vm.emailHasFocus = true},\"blur\":function($event){_vm.emailHasFocus = false},\"input\":function($event){if($event.target.composing){ return; }_vm.email=$event.target.value}}}),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.emailError)?_c('div',{staticClass:\"form-input-error\"},[_vm._v(\"Please enter your email address\")]):_vm._e()]),_c('label',{staticClass:\"form-label\",class:{up: _vm.password !== '' || _vm.passwordHasFocus},attrs:{\"for\":\"password\"}},[_vm._v(\"Password\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.password),expression:\"password\"}],staticClass:\"form-input\",attrs:{\"id\":\"password\",\"type\":\"password\",\"data-test\":\"password\"},domProps:{\"value\":(_vm.password)},on:{\"focus\":function($event){_vm.passwordHasFocus = true},\"blur\":function($event){_vm.passwordHasFocus = false},\"input\":function($event){if($event.target.composing){ return; }_vm.password=$event.target.value}}}),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.passwordError)?_c('div',{staticClass:\"form-input-error\"},[_vm._v(\"Please enter your password\")]):_vm._e()]),_c('label',{staticClass:\"form-label\",class:{up: _vm.name !== '' || _vm.nameHasFocus},attrs:{\"for\":\"name\"}},[_vm._v(\"Nickname\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.name),expression:\"name\"}],staticClass:\"form-input\",attrs:{\"id\":\"name\",\"data-test\":\"nickname\"},domProps:{\"value\":(_vm.name)},on:{\"focus\":function($event){_vm.nameHasFocus = true},\"blur\":function($event){_vm.nameHasFocus = false},\"input\":function($event){if($event.target.composing){ return; }_vm.name=$event.target.value}}}),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.nameError)?_c('div',{staticClass:\"form-input-error\"},[_vm._v(\"Please enter your nick name\")]):_vm._e()]),_c('section',{staticClass:\"legal\"},[_vm._v(\" The Service, its features, functionality and performance comprise confidential information of Socrates. You must maintain in confidence information you are exposed to through your use of the Service relating to its operation, functionality, features, design and business practices. You must do so in a manner no less protective than you use to protect our own similar assets, but in no event less than reasonable care. You must not use or disclose that information for any purpose other than within your utilization of Service. \")]),_c('button',{staticClass:\"sign-up-button\",attrs:{\"data-test\":\"create\"},on:{\"click\":function($event){$event.preventDefault();return _vm.create.apply(null, arguments)}}},[_c('div',{staticClass:\"button-text\"},[(_vm.sending)?_c('img',{staticClass:\"rotating-progress\",attrs:{\"src\":require(\"../assets/images/loading-icon-white-not-animated.png\"),\"width\":\"40\",\"height\":\"40\",\"alt\":\"progress\"}}):_vm._e(),_c('span',[_vm._v(\"Create\")])])]),_c('section',{staticClass:\"management\"},[_c('label',{staticClass:\"sign-in\"},[_vm._v(\"Already have an account?\")]),_c('router-link',{staticClass:\"sign-in-link\",attrs:{\"to\":\"sign-in\"}},[_vm._v(\"Sign In\")])],1)],1)]):_c('div',{staticClass:\"sent-request-message\"},[_vm._v(\" Your request to create a new account has been successfully accepted!\"),_c('br'),_c('br'),_vm._v(\" Please check your email and activate your account. \")])])}\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport AuthPageContainer from \"@/components/AuthPageContainer.vue\"\nimport userService from \"../api/user-service\"\nimport {isDirectSignUp} from \"@/store/environment-module\"\nimport {signIn} from \"@/store/auth-module\"\n\n@Component({\n components: {AuthPageContainer}\n})\nexport default class SignUpPage extends Vue {\n\n private email: string = \"\"\n private password: string = \"\"\n private name: string = \"\"\n private errorMessage: string = \"\"\n\n private emailHasFocus: boolean = false\n private passwordHasFocus: boolean = false\n private nameHasFocus: boolean = false\n private emailError: boolean = false\n private passwordError: boolean = false\n private nameError: boolean = false\n private sending: boolean = false\n private sent: boolean = false\n private error: boolean = false\n\n private get isDirectSignUp() {\n return isDirectSignUp(this.$store)\n }\n\n private async create() {\n this.emailError = this.email.trim() === \"\"\n this.passwordError = this.password.trim() === \"\"\n this.nameError = this.name.trim() === \"\"\n\n if (this.emailError || this.passwordError || this.nameError) {\n return\n }\n\n this.sending = true\n\n try {\n if (this.isDirectSignUp) {\n await userService.createUser(this.name, this.email, this.password)\n await signIn(this.$store, {email: this.email, password: this.password})\n this.$router.push(\"/\")\n } else {\n await userService.signUp(this.name, this.email, this.password)\n this.sent = true\n }\n\n } catch (error) {\n switch (error.response.data) {\n case \"Duplicate\":\n this.errorMessage = `There is an existing account associated with ${this.email}`\n break\n case \"Invalid user data\":\n this.errorMessage = \"Please make sure Nickname contains at least 2 alphanumeric characters\"\n break\n case \"Email error\":\n this.errorMessage = \"Email error\"\n break\n default:\n this.errorMessage = \"Oops! Sign Up failed. Please try again.\"\n }\n this.error = true\n this.sending = false\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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignUpPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SignUpPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SignUpPage.vue?vue&type=template&id=d975f2e2&scoped=true&\"\nimport script from \"./SignUpPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./SignUpPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SignUpPage.vue?vue&type=style&index=0&id=d975f2e2&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d975f2e2\",\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('SplitPane',{scopedSlots:_vm._u([{key:\"left\",fn:function(){return [(_vm.isShowLeftPane)?_c('div',{staticClass:\"scroll-container\"},[_c('div',{staticClass:\"pane left\",class:{'in-review': _vm.isInReviewProfile}},[_c('AuthorSummaryPane',{attrs:{\"containingParentName\":\"left-pane\",\"person-id\":_vm.personId}})],1)]):_vm._e()]},proxy:true},{key:\"middle\",fn:function(){return [_c('div',{staticClass:\"scroll-container\"},[_c('SpinningLoader',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isBusy),expression:\"isBusy\"}]}),_c('div',{ref:\"documentsContainer\",staticClass:\"pane middle\",class:{'in-review': _vm.isInReviewProfile}},[_c('router-view',{ref:\"content\",attrs:{\"name\":\"middlePane\"},on:{\"documentsUpdated\":_vm.documentsUpdated}})],1)],1)]},proxy:true},{key:\"right\",fn:function(){return [_c('div',{staticClass:\"scroll-container\"},[_c('div',{staticClass:\"pane\",class:{'in-review': _vm.isInReviewProfile}},[_c('TopsPane',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isSummaryInRightPane),expression:\"!isSummaryInRightPane\"}],on:{\"refresh-documents\":_vm.refreshContent}}),(_vm.isSummaryInRightPane)?_c('AuthorSummaryPane',{staticClass:\"pane\",attrs:{\"containingParentName\":\"right-pane\",\"person-id\":_vm.personForRightPaneSummary.id}}):_vm._e()],1)])]},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\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport SplitPane from \"@/components/SplittedPane.vue\"\nimport TopsPane from \"@/views/investigation/panes/TopsPane.vue\"\nimport AuthorSummaryPane from \"@/views/investigation/panes/AuthorSummaryPane.vue\"\nimport {getIsBusy, getIsInReviewProfile, getPersonForRightPaneSummary, setDisplayedResultsStatus, setIsInProfile} from \"@/store/investigation/investigation-module\"\nimport {setPersonId} from \"@/store/investigation/person-filter-module\"\nimport DocumentsPane from \"@/views/investigation/panes/DocumentsPane.vue\"\nimport {RawLocation, Route} from \"vue-router\"\nimport {InvestigationMixin} from \"@/store/investigation-mixin\"\nimport SpinningLoader from \"@/components/SpinningLoader.vue\"\n\n@Component({\n components: {SplitPane, TopsPane, AuthorSummaryPane, SpinningLoader}\n})\nexport default class PersonProfile extends mixins(Vue, InvestigationMixin) {\n\n private isShowLeftPane = false\n\n private get personForRightPaneSummary() {\n return getPersonForRightPaneSummary(this.$store)\n }\n\n private get isSummaryInRightPane(): boolean {\n return this.personForRightPaneSummary != null\n }\n\n private get personId(): string {\n return this.$route.params.personId\n }\n\n private beforeRouteEnter(to: Route, from: Route, next: (to?: RawLocation | false | ((vm: PersonProfile) => any) | void) => void) {\n next(vm => {\n vm.isShowLeftPane = to.path.endsWith(\"documents\") || getIsInReviewProfile(vm.$store)\n })\n }\n\n private beforeRouteUpdate(to: Route, from: Route, next: (to?: RawLocation | false | ((vm: PersonProfile) => any) | void) => void) {\n this.isShowLeftPane = to.path.endsWith(\"documents\")\n next()\n }\n\n private async beforeCreate() {\n setDisplayedResultsStatus(this.$store, \"All\")\n setIsInProfile(this.$store, true)\n setPersonId(this.$store, this.$route.params.personId)\n }\n\n private documentsUpdated() {\n const documentContainer = this.$refs.documentsContainer as HTMLDivElement\n documentContainer.scrollTop = 0\n }\n\n private refreshContent() {\n const documentsPane = this.$refs.content as DocumentsPane\n documentsPane.refreshResults()\n }\n\n private get isBusy(): boolean {\n return getIsBusy(this.$store)\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PersonProfile.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PersonProfile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PersonProfile.vue?vue&type=template&id=4b7d5243&scoped=true&\"\nimport script from \"./PersonProfile.vue?vue&type=script&lang=ts&\"\nexport * from \"./PersonProfile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PersonProfile.vue?vue&type=style&index=0&id=4b7d5243&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 \"4b7d5243\",\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',{staticClass:\"container\"},[_c('div',{staticClass:\"documents-pane\"},[_c('div',{staticClass:\"sticky\"},[_c('div',{staticClass:\"subheader-container\"},[_c('h1',{staticClass:\"subheader\"},[_vm._v(\" Results \"),(_vm.loaded)?_c('span',{staticClass:\"documents-count\"},[_vm._v(\"(\"+_vm._s(_vm.documentCount)+\")\")]):_vm._e()]),_c('div',{staticClass:\"grows\"},[_c('div',{staticClass:\"sortByContainer\"},[_c('label',{staticClass:\"header-label\",attrs:{\"for\":\"sortBySelect\"}},[_vm._v(\"Sort by:\")]),_c('select',{ref:\"sortBySelect\",staticClass:\"header-combo\",attrs:{\"id\":\"sortBySelect\"},on:{\"change\":function($event){return _vm.performSortBy()}}},[(_vm.isInTopicInvestigation)?_c('option',{attrs:{\"value\":\"relevance\"},domProps:{\"selected\":_vm.sortBy === 'relevance'}},[_vm._v(\"Relevance\")]):_vm._e(),(!_vm.isFacultyWorksUser)?_c('option',{attrs:{\"value\":\"publishDate\"},domProps:{\"selected\":_vm.sortBy === 'publishDate'}},[_vm._v(\"Publish Date (Descending)\")]):_c('option',{attrs:{\"value\":\"publishDate\"},domProps:{\"selected\":_vm.sortBy === 'publishDate'}},[_vm._v(\"Publish Date\")]),(!_vm.isFacultyWorksUser)?_c('option',{attrs:{\"value\":\"reversePublishDate\"},domProps:{\"selected\":_vm.sortBy === 'reversePublishDate'}},[_vm._v(\"Publish Date (Ascending)\")]):_vm._e(),_c('option',{attrs:{\"value\":\"citationNumber\"},domProps:{\"selected\":_vm.sortBy === 'citationNumber'}},[_vm._v(\"Number of Citations\")]),(_vm.isFacultyWorksUser)?_c('option',{attrs:{\"value\":\"duplicateOrder\"},domProps:{\"selected\":_vm.sortBy === 'duplicateOrder'}},[_vm._v(\"Dup-Scanning Order\")]):_vm._e()])]),(!_vm.isInPersonProfile)?_c('Speedometer',{staticClass:\"speedometer\",attrs:{\"rotation\":_vm.harvestIndicatorRotation}}):_vm._e(),(!_vm.isInPersonProfile)?_c('div',{staticClass:\"header-button-container\"},[_c('div',{staticClass:\"header-button refresh-results\",style:({backgroundColor: _vm.resultsDifferenceColor}),attrs:{\"title\":\"Refresh the Results\"},on:{\"click\":_vm.refreshResults}})]):_vm._e(),_c('div',{staticClass:\"header-button-container\"},[_c('div',{ref:\"viewModeMenuOpener\",staticClass:\"header-button view-mode-menu\",attrs:{\"title\":\"Select display mode\"},on:{\"click\":_vm.openViewModeMenu}}),(!_vm.isInPersonInvestigation)?_c('div',{ref:\"highlightModeMenuOpener\",staticClass:\"header-button highlight-mode-menu\",attrs:{\"title\":\"Select highlight mode\"},on:{\"click\":_vm.openHighlightModeMenu}}):_vm._e(),(_vm.isInReviewProfile)?_c('div',{staticClass:\"header-button filter-reviewed-documents\",class:{'active': _vm.includeOnlyUnlabeled},attrs:{\"title\":\"Filter documents for review\"},on:{\"click\":_vm.toggleFilterReviewedDocuments}}):_vm._e()])],1)])]),(!_vm.isInTopicInvestigation && !_vm.isInPersonProfile && _vm.hasDocuments && _vm.relevantPersonSelected)?_c('AuthorSummaryPane',{staticClass:\"pane\",attrs:{\"allow-image-update\":true,\"containingParentName\":\"documents-pane\",\"person-id\":_vm.relevantPersonSelected}}):_vm._e(),_c('PopupMenu',{attrs:{\"event\":\"openViewModeMenu\"}},[_c('div',{staticClass:\"menu-item with-check\",class:{'checked': _vm.viewModeLevel === 0},on:{\"click\":function($event){_vm.viewModeLevel = 0}}},[_vm._v(\" Titles \")]),_c('div',{staticClass:\"menu-item with-check\",class:{'checked': _vm.viewModeLevel === 1},on:{\"click\":function($event){_vm.viewModeLevel = 1}}},[_vm._v(\" Preview \")]),_c('div',{staticClass:\"menu-item with-check\",class:{'checked': _vm.viewModeLevel === 2},on:{\"click\":function($event){_vm.viewModeLevel = 2}}},[_vm._v(\" Extended \")]),_c('div',{staticClass:\"menu-item with-check\",class:{'checked': _vm.viewModeLevel === 3},on:{\"click\":function($event){_vm.viewModeLevel = 3}}},[_vm._v(\" All Details \")]),(_vm.isOmnipotentUser)?_c('div',{staticClass:\"menu-item with-check\",class:{'checked': _vm.viewModeLevel === 4},on:{\"click\":function($event){_vm.viewModeLevel = 4}}},[_vm._v(\" All Details + Images \")]):_vm._e()]),_c('PopupMenu',{staticClass:\"highlights-menu forbids-close\",attrs:{\"close-event\":\"closeHighlightsMenu\",\"event\":\"openHighlightModeMenu\"}},_vm._l((_vm.possibleHighlightNames),function(highlightName){return (highlightName !== \"Highlight Mentioned Entities\" || _vm.entityDetectionEnabled)?_c('div',{key:highlightName,staticClass:\"form-row\"},[_c('div',{staticClass:\"checkbox-container forbids-close\",on:{\"click\":function($event){return _vm.toggleHighlight(highlightName)}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.isHighlightChecked(highlightName)}}),_c('label',[_vm._v(_vm._s(highlightName))])])]):_vm._e()}),0),_c('section',{staticClass:\"main\"},[(_vm.showSuggestedTerms)?_c('SuggestedTermsPane',{staticClass:\"suggested-terms-pane\",on:{\"refresh-documents\":_vm.refreshResults,\"refresh-markups\":_vm.refreshMarkups}}):_vm._e(),_c('div',[(!_vm.documents.length)?_c('NoResults',{attrs:{\"showing-suggested-terms\":true}}):_vm._l((_vm.documents),function(document,index){return _c('div',{key:document.id},[_c('DocumentItem',{class:{'shrink': _vm.viewModeLevel <= 1},attrs:{\"document\":document,\"is-editable\":true},on:{\"create-observation\":_vm.createObservation,\"refresh-documents\":_vm.refreshResults,\"starred-changed\":function($event){return _vm.updateDocumentStarred(document, $event)},\"relevancy-changed\":function($event){return _vm.updateDocumentRelevancy(document, $event)},\"touched-changed\":function($event){return _vm.updateDocumentRead(document.id)},\"note-changed\":function($event){return _vm.updateDocumentNote(document.id, $event)}}}),(index !== _vm.documents.length - 1)?_c('hr',{staticClass:\"document-separator\",class:{'touched': document.touched && !_vm.isInPersonProfile}}):_vm._e(),(_vm.shouldShowResultsEnd(index))?_c('div',{ref:\"resultsEnd\",refInFor:true,attrs:{\"id\":\"resultsEnd\"}}):_vm._e()],1)})],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 (_vm.suggestedTerms.length > 0)?_c('div',{staticClass:\"suggested-terms-pane\"},[_c('div',{staticClass:\"suggested-terms-container\"},[_c('div',{staticClass:\"suggested-terms-title\"},[_vm._v(\"Add relevant terms for better results\")]),_c('div',{staticClass:\"suggested-terms-list\"},_vm._l((_vm.suggestedTerms),function(suggestedTerm){return _c('div',{key:suggestedTerm.term,staticClass:\"suggested-term\",attrs:{\"title\":suggestedTerm.term},on:{\"click\":function($event){return _vm.toggleSuggestedTerm(suggestedTerm, $event)}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': suggestedTerm.selected}}),_c('div',{staticClass:\"entity-icon\",class:suggestedTerm.modifier.toLowerCase(),attrs:{\"title\":suggestedTerm.modifier},on:{\"click\":function($event){$event.stopPropagation();return _vm.updateTermWithModifier(suggestedTerm.term, 'Regular')}}}),_c('label',{class:{'checked': suggestedTerm.selected}},[_vm._v(_vm._s(suggestedTerm.term))]),_c('div',{staticClass:\"action-button-pane\",class:{hasGroups: _vm.hasGroups}},[(!_vm.hasGroups)?_c('div',{staticClass:\"modifier-action-buttons\"},[_c('button',{staticClass:\"action-button mandatory\",class:{active: suggestedTerm.modifier === 'Mandatory'},attrs:{\"title\":\"Mandatory\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.updateTermWithModifier(suggestedTerm.term, 'Mandatory')}}}),_c('button',{staticClass:\"action-button boost\",class:{active: suggestedTerm.modifier === 'Boost'},attrs:{\"title\":\"Boost\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.updateTermWithModifier(suggestedTerm.term, 'Boost')}}}),_c('button',{staticClass:\"action-button penalty\",class:{active: suggestedTerm.modifier === 'Penalty'},attrs:{\"title\":\"Penalty\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.updateTermWithModifier(suggestedTerm.term, 'Penalty')}}}),_c('button',{staticClass:\"action-button exclude\",class:{active: suggestedTerm.modifier === 'Exclude'},attrs:{\"title\":\"Exclude\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.updateTermWithModifier(suggestedTerm.term, 'Exclude')}}})]):_vm._e(),_c('button',{staticClass:\"action-button define\",attrs:{\"title\":\"Define\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.queryTermClicked(suggestedTerm.term)}}})])])}),0),_c('button',{staticClass:\"next-suggested-terms\",on:{\"click\":_vm.nextSuggestedTerms}},[_vm._v(\"Next\")])]),_c('PopupMenu',{attrs:{\"close-event\":\"closeCreateTermMenu\",\"event\":\"openCreateTermMenu\"}},[_c('CreateTermTemplate',{attrs:{\"action\":_vm.updateSuggestedTerm,\"term\":_vm.newTerm,\"enableCreateGroup\":false}})],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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {getSuggestedTerms, getTermGroups, getTerms, MAX_ALLOWED_TERMS, SuggestedTerm, updateSuggestedTerm} from \"@/store/investigation/investigation-terms-module\"\nimport {fetchNextSuggestedTerms, getInvestigation} from \"@/store/investigation/investigation-module\"\nimport CreateTermTemplate from \"@/views/investigation/templates/CreateTermTemplate.vue\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport {TermModifier} from \"@/types/investigations\"\nimport {openMessageDialog} from \"@/components/MessageDialog.vue\"\n\n@Component({components: {PopupMenu, CreateTermTemplate}})\nexport default class SuggestedTermsPane extends Vue {\n\n private updateSuggestedTerm = updateSuggestedTerm\n private isSendingTerms = false\n private newTerm: string = \"\"\n\n get suggestedTerms(): SuggestedTerm[] {\n return [...getSuggestedTerms(this.$store)]\n }\n\n private get terms() {\n return getTerms(this.$store)\n }\n\n private get hasGroups() {\n return getTermGroups(this.$store).length > 1\n }\n\n private get investigationSearchString(): string {\n return getInvestigation(this.$store)!.initialSearchString\n }\n\n private toggleSuggestedTerm(toggleTerm: SuggestedTerm, event: Event) {\n const currentTerm = this.suggestedTerms.find(suggestedTerm => suggestedTerm.term === toggleTerm.term)!\n const term = toggleTerm.term\n if (currentTerm.selected) {\n updateSuggestedTerm(this.$store, {term, selected: false, group: undefined, modifier: \"Regular\"})\n return\n }\n if (this.hasGroups) {\n this.newTerm = term\n this.$emit(\"openCreateTermMenu\", event.target)\n } else {\n this.updateTermWithModifier(term, \"Regular\")\n }\n }\n\n private async updateTermWithModifier(term: string, requestedModifier: TermModifier) {\n const selectedTerm = this.suggestedTerms.find(suggestedTerm => suggestedTerm.term === term)!\n const group = getTermGroups(this.$store)[0].id\n const modifier: TermModifier = selectedTerm.modifier === requestedModifier ? \"Regular\" : requestedModifier\n updateSuggestedTerm(this.$store, {term, selected: true, group, modifier})\n }\n\n private async nextSuggestedTerms() {\n if (getTerms(this.$store).length + getSuggestedTerms(this.$store).filter(it => it.selected).length > MAX_ALLOWED_TERMS) {\n openMessageDialog({title: \"Add Terms\", message: `Cannot add more than ${MAX_ALLOWED_TERMS} terms`})\n return\n }\n\n const investigation = getInvestigation(this.$store)!\n if (!this.isSendingTerms) {\n this.isSendingTerms = true\n const wasMandatoryAdded = getSuggestedTerms(this.$store).some(suggestedTerm => suggestedTerm.selected && suggestedTerm.modifier === \"Mandatory\")\n await fetchNextSuggestedTerms(this.$store)\n this.isSendingTerms = false\n this.$emit(!wasMandatoryAdded ? \"refresh-markups\" : \"refresh-documents\")\n }\n }\n\n private async queryTermClicked(term: string) {\n window.open(`https://www.google.com/search?q=define+${term}`, \"_blank\")\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SuggestedTermsPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SuggestedTermsPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SuggestedTermsPane.vue?vue&type=template&id=2b2eb687&scoped=true&\"\nimport script from \"./SuggestedTermsPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./SuggestedTermsPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SuggestedTermsPane.vue?vue&type=style&index=0&id=2b2eb687&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 \"2b2eb687\",\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\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport {\n getDocuments,\n getHighlightModes,\n getViewModeLevel,\n setDocumentNote,\n setDocumentRelevancy,\n setDocumentStarred,\n setDocumentRead,\n setHighlightModes,\n setViewModeLevel\n} from \"@/store/investigation/documents-module\"\nimport {\n fetchAllData,\n fetchDocumentMarkups,\n fetchNextDocuments,\n getActivityStatus,\n getDocumentsSortBy,\n getIncludeOnlyUnlabeled,\n getIsBusy,\n getRelevancyStatus,\n getRelevantDocumentCount,\n getTotalDocumentCount,\n setDocumentsSortBy,\n setIncludeOnlyUnlabeled,\n setPersonForRightPaneSummary\n} from \"@/store/investigation/investigation-module\"\nimport {DocumentEntity, Relevancy, RGB} from \"@/types/investigations\"\nimport DocumentItem from \"@/views/investigation/panes/DocumentItem.vue\"\nimport SuggestedTermsPane from \"@/views/investigation/panes/SuggestedTermsPane.vue\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport RecentAffiliationsPane from \"@/views/investigation/panes/RecentAffiliationsPane.vue\"\nimport {getDisambiguationPersonId, getPersonId} from \"@/store/investigation/person-filter-module\"\nimport AuthorSummaryPane from \"@/views/investigation/panes/AuthorSummaryPane.vue\"\nimport {setGraphType} from \"@/store/investigation/graph-module\"\nimport Speedometer from \"@/views/investigation/graphs/Speedometer.vue\"\nimport {getDocumentsPageSize, isEntityDetectionEnabled} from \"@/store/environment-module\"\nimport {Watch} from \"vue-property-decorator\"\nimport {openCreateObservationDialog} from \"@/views/investigation/dialogs/CreateObservationDialog.vue\"\nimport NoResults from \"@/components/NoResults.vue\"\nimport SpinningLoader from \"@/components/SpinningLoader.vue\"\nimport {InvestigationMixin} from \"@/store/investigation-mixin\"\nimport {PermissionsMixin} from \"@/store/user-mixin\"\n\n@Component({\n components: {DocumentItem, SuggestedTermsPane, PopupMenu, RecentAffiliationsPane, AuthorSummaryPane, Speedometer, NoResults, SpinningLoader}\n})\nexport default class DocumentsPane extends mixins(Vue, InvestigationMixin, PermissionsMixin) {\n\n private harvestIndicatorInterval: any\n private harvestIndicatorRotation: number = 0\n private observer: IntersectionObserver | undefined\n private documentId: string | null = null\n private title: string | null = null\n private possibleHighlightNames: string[] = [\"Highlight Search Terms\", \"Highlight Mentioned Entities\"]\n\n public async mounted() {\n setGraphType(this.$store, null)\n setIncludeOnlyUnlabeled(this.$store, true)\n await this.refreshResults()\n this.harvestIndicatorInterval = setInterval(() => this.harvestIndicatorRotation = this.activityIndicator + (this.activityIndicator > 0 && this.activityIndicator <= 170 ? 10 * Math.random() : 0), 500)\n }\n\n public async refreshResults() {\n await fetchAllData(this.$store)\n this.$emit(\"documentsUpdated\")\n }\n\n get documents(): DocumentEntity[] {\n return getDocuments(this.$store)\n }\n\n get loaded(): boolean {\n return !getIsBusy(this.$store)\n }\n\n private get entityDetectionEnabled() {\n return isEntityDetectionEnabled(this.$store)\n }\n\n private get hasDocuments(): boolean {\n return getTotalDocumentCount(this.$store) > 0\n }\n\n private get relevantPersonSelected() {\n return getPersonId(this.$store) || getDisambiguationPersonId(this.$store)\n }\n\n private get activityIndicator(): number {\n return getActivityStatus(this.$store)\n }\n\n private get resultsDifferenceColor() {\n const percentFade = Math.min(getRelevancyStatus(this.$store).relevancyScore / 100, 1)\n const startRed = 0\n const startGreen = 176\n const startBlue = 255\n const middleRed = 160\n const middleGreen = 109\n const middleBlue = 244\n const endRed = 233\n const endGreen = 30\n const endBlue = 99\n return this.colorGradient(\n percentFade,\n {red: startRed, green: startGreen, blue: startBlue},\n {red: middleRed, green: middleGreen, blue: middleBlue},\n {red: endRed, green: endGreen, blue: endBlue}\n )\n }\n\n private get documentCount(): string {\n const total = getTotalDocumentCount(this.$store)\n const relevant = getRelevantDocumentCount(this.$store)\n return total !== relevant ? `${relevant} of ${total}` : `${total}`\n }\n\n private get viewModeLevel(): number {\n return getViewModeLevel(this.$store)\n }\n\n private set viewModeLevel(level: number) {\n setViewModeLevel(this.$store, level)\n }\n\n private get highlightModes(): string[] {\n return [...getHighlightModes(this.$store)]\n }\n\n private set highlightModes(level: string[]) {\n setHighlightModes(this.$store, level)\n }\n\n private get shouldLoadMoreResults() {\n const availableResultsLeft = getRelevantDocumentCount(this.$store) - getDocuments(this.$store).length\n return availableResultsLeft > 0 && this.documents.length\n }\n\n private get showSuggestedTerms() {\n return this.isInTopicInvestigation\n }\n\n private get sortBy() {\n return getDocumentsSortBy(this.$store)\n }\n\n private async refreshMarkups() {\n await fetchDocumentMarkups(this.$store)\n }\n\n private createObservation(documentId: string) {\n this.documentId = documentId\n this.title = this.documents.find(document => document.id === documentId)!.title.text\n\n openCreateObservationDialog(this, {\n type: \"Document\",\n referencedEntity: this.documentId,\n observationTitle: this.title,\n allowImageUpload: true\n })\n }\n\n private colorGradient(fadeFraction: number, rgbColor1: RGB, rgbColor2: RGB, rgbColor3: RGB) {\n let color1: RGB = rgbColor1\n let color2: RGB = rgbColor2\n let fade: number = fadeFraction\n\n // Do we have 3 colors for the gradient? Need to adjust the params.\n if (rgbColor3) {\n fade = fade * 2\n\n // Find which interval to use and adjust the fade percentage\n if (fade >= 1) {\n fade -= 1\n color1 = rgbColor2\n color2 = rgbColor3\n }\n }\n\n const diffRed: number = color2.red - color1.red\n const diffGreen: number = color2.green - color1.green\n const diffBlue: number = color2.blue - color1.blue\n\n const gradient: RGB = {\n red: Math.floor(color1.red + (diffRed * fade)),\n green: Math.floor(color1.green + (diffGreen * fade)),\n blue: Math.floor(color1.blue + (diffBlue * fade))\n }\n\n return `rgb(${gradient.red},${gradient.green},${gradient.blue})`\n }\n\n private shouldShowResultsEnd(index: number) {\n return index === this.documents.length - (getDocumentsPageSize(this.$store) / 2)\n }\n\n private beforeDestroy() {\n setPersonForRightPaneSummary(this.$store, null)\n\n clearInterval(this.harvestIndicatorInterval)\n if (this.observer) {\n this.observer.disconnect()\n }\n }\n\n private async getNextDocuments() {\n await fetchNextDocuments(this.$store)\n }\n\n @Watch(\"documents\")\n private observeEndOfResults() {\n const observerCallback: IntersectionObserverCallback = ([endResultsIndicator]) => {\n if (endResultsIndicator && endResultsIndicator.isIntersecting && this.shouldLoadMoreResults) {\n this.getNextDocuments()\n }\n }\n if (this.observer) {\n this.observer.disconnect()\n }\n this.observer = new IntersectionObserver(observerCallback)\n this.$nextTick(() => {\n const resultsEnd = document.querySelector(\"#resultsEnd\")\n if (resultsEnd) {\n this.observer!.observe(resultsEnd)\n }\n })\n }\n\n private async updateDocumentRelevancy(doc: DocumentEntity, relevancy: Relevancy) {\n const investigationType = this.investigationType\n const mainTerms = doc.terms.map(term => term.text)\n await setDocumentRelevancy(this.$store, {id: doc.id, relevancy, investigationType, mainTerms})\n }\n\n private async updateDocumentStarred(doc: DocumentEntity, starred: boolean) {\n const investigationType = this.investigationType\n await setDocumentStarred(this.$store, {id: doc.id, starred, investigationType})\n }\n\n private async updateDocumentRead(id: string) {\n const investigationType = this.investigationType\n await setDocumentRead(this.$store, {id, investigationType})\n }\n\n private async updateDocumentNote(id: string, note: string) {\n const investigationType = this.investigationType\n await setDocumentNote(this.$store, {id, investigationType, note})\n }\n\n private openViewModeMenu() {\n const viewModeMenuOpenerButton = this.$refs.viewModeMenuOpener as HTMLElement\n this.$emit(\"openViewModeMenu\", viewModeMenuOpenerButton)\n }\n\n private openHighlightModeMenu() {\n const highlightModeMenuOpenerButton = this.$refs.highlightModeMenuOpener as HTMLElement\n this.$emit(\"openHighlightModeMenu\", highlightModeMenuOpenerButton)\n }\n\n private toggleHighlight(highlightName: string) {\n const isHighlighted = this.isHighlightChecked(highlightName)\n const newHighlights = this.highlightModes.filter(mode => mode !== highlightName)\n if (!isHighlighted) {\n newHighlights.push(highlightName)\n }\n this.highlightModes = newHighlights\n this.refreshResults()\n }\n\n private isHighlightChecked(highlightName: string) {\n return this.highlightModes.includes(highlightName)\n }\n\n private performSortBy() {\n const option = (this.$refs.sortBySelect as HTMLSelectElement).value as string\n setDocumentsSortBy(this.$store, option)\n this.refreshResults()\n }\n\n private async toggleFilterReviewedDocuments() {\n setIncludeOnlyUnlabeled(this.$store, !getIncludeOnlyUnlabeled(this.$store))\n await this.refreshResults()\n }\n\n private get includeOnlyUnlabeled() {\n return getIncludeOnlyUnlabeled(this.$store)\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentsPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentsPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DocumentsPane.vue?vue&type=template&id=3cb0b088&scoped=true&\"\nimport script from \"./DocumentsPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./DocumentsPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DocumentsPane.vue?vue&type=style&index=0&id=3cb0b088&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 \"3cb0b088\",\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',{staticClass:\"overview-container\"},[_c('div',{staticClass:\"splitted\"},[_c('div',{staticClass:\"overview-pane left\"},[_c('AuthorSummaryPane',{staticClass:\"pane\",attrs:{\"containingParentName\":\"left-pane\",\"person-id\":_vm.personId}})],1),_c('div',{staticClass:\"overview-pane top-middle\"},[_vm._m(0),_c('AuthorGraph',{attrs:{\"locked\":true}}),_c('div',{staticClass:\"mask\",attrs:{\"title\":\"Go To Co-Authors\"},on:{\"click\":_vm.goToAuthorGraph,\"contextmenu\":_vm.goToAuthorGraph}})],1),_c('div',{staticClass:\"overview-pane top-right\"},[_vm._m(1),_c('div',{staticClass:\"unified-graph-preview\"}),_c('div',{staticClass:\"mask\",attrs:{\"title\":\"Go To Research Interests\"},on:{\"click\":_vm.goToTermGraph,\"contextmenu\":_vm.goToTermGraph}})]),_c('div',{staticClass:\"overview-pane bottom-middle\"},[_vm._m(2),(!(_vm.documents && _vm.documents.length))?_c('h4',[_vm._v(\"No Results\")]):_vm._l((_vm.documents),function(document,index){return _c('div',{key:document.id},[_c('OverviewDocumentItem',{attrs:{\"document\":document,\"document-index\":index + 1}}),(index !== 2)?_c('hr',{staticClass:\"document-separator\",class:{'touched': document.touched && !_vm.isInPersonProfile}}):_vm._e()],1)}),_c('div',{staticClass:\"mask\",attrs:{\"title\":\"Go To Publications\"},on:{\"click\":_vm.goToDocuments,\"contextmenu\":_vm.goToDocuments}})],2),_c('div',{staticClass:\"overview-pane bottom-right\"},[_vm._m(3),_c('DateFilter',{attrs:{\"higher\":true,\"show-title\":false}}),_c('div',{staticClass:\"mask\",attrs:{\"title\":\"Go To Publications\"},on:{\"click\":_vm.goToDocuments,\"contextmenu\":_vm.goToDocuments}})],1),_c('div',{staticClass:\"lower-space\"})])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"subheader-container\"},[_c('h1',{staticClass:\"subheader\"},[_vm._v(\"Co-Authors\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"subheader-container\"},[_c('h1',{staticClass:\"subheader\"},[_vm._v(\"Research Interests\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"subheader-container\"},[_c('h1',{staticClass:\"subheader\"},[_vm._v(\"Publications\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"subheader-container\"},[_c('h1',{staticClass:\"subheader\"},[_vm._v(\"Publications per Year\")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"overview-document-item\"},[_c('div',{staticClass:\"document-upper-details-and-controls\"},[_c('div',{staticClass:\"document-upper-details\"},[_c('div',{staticClass:\"document-title-container\"},[_c('h1',{staticClass:\"document-title\"},[_vm._v(_vm._s(_vm.documentIndex)+\". \"+_vm._s(_vm.document.title.text))])]),_c('div',{staticClass:\"meta-data\"},[(_vm.document.authors.length)?_c('section',{staticClass:\"authors\",attrs:{\"title\":_vm.authorsCount()}},[_vm._v(\" \"+_vm._s(_vm.document.authors.map(function (it) { return it.name; }).join(\", \"))+\" \")]):_vm._e(),_c('section',{staticClass:\"more-details\"},[(_vm.classification)?_c('div',{staticClass:\"classification\",class:_vm.classificationClassName(_vm.classification)},[_vm._v(_vm._s(_vm.classification))]):_vm._e(),(_vm.originalLanguage)?_c('div',{staticClass:\"original-language\"},[_vm._v(_vm._s(_vm.originalLanguage))]):_vm._e(),_vm._l((_vm.documentDetails),function(detail,index){return [_c('section',{key:index,class:detail.class,attrs:{\"title\":decodeURIComponent(detail.title)},domProps:{\"innerHTML\":_vm._s(decodeURIComponent(detail.html))}}),(index + 1 < _vm.documentDetails.length)?_c('hr',{staticClass:\"separator\"}):_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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {DocumentEntity, DocumentMarkupsEntity, InvestigationType} from \"@/types/investigations\"\nimport {Moment} from \"moment\"\nimport {Prop} from \"vue-property-decorator\"\nimport {getDocumentMarkups} from \"@/store/investigation/documents-module\"\nimport {getInvestigation} from \"@/store/investigation/investigation-module\"\n\ninterface DocumentDetail {\n html: string\n class: string,\n title: string\n}\n\n@Component\nexport default class OverviewDocumentItem extends Vue {\n\n @Prop()\n private document!: DocumentEntity\n\n @Prop()\n private documentIndex!: number\n\n\n private get documentMarkups(): DocumentMarkupsEntity {\n return getDocumentMarkups(this.$store).filter(documentMarkups => documentMarkups.id === this.document.id)[0]\n }\n\n private get documentDetails(): DocumentDetail[] {\n const details: DocumentDetail[] = []\n\n if (this.document.date) {\n const dateHtml = this.formatDate(this.document.date)\n details.push({class: \"date\", html: dateHtml, title: dateHtml})\n }\n\n if (this.document.citationNumber) {\n const citationHtml = `${this.document.citationNumber} citations`\n details.push({class: \"citation-number\", html: citationHtml, title: citationHtml})\n }\n\n if (this.document.journal) {\n details.push({class: \"published-in\", html: this.document.journal, title: this.document.journal})\n }\n\n if (this.document.type === \"Web Page\") {\n const urlParts = this.document.url.split(\"/\")\n\n let boldUrl = urlParts[0] + \"//\" + urlParts[2] + \"\"\n for (let i = 3; i < urlParts.length; i++) {\n boldUrl += \"/\" + urlParts[i]\n }\n boldUrl = `${boldUrl}`\n\n details.push({class: \"web-page-url\", html: boldUrl, title: this.document.url})\n }\n\n return details\n }\n\n private get classification(): string {\n return this.document.classification\n }\n\n private get originalLanguage(): string | undefined {\n if (this.document.originalLanguage === \"English\") {\n return undefined\n }\n return this.document.originalLanguage\n }\n\n private get investigationType(): InvestigationType {\n return getInvestigation(this.$store)!.investigationType\n }\n\n private classificationClassName(classification: string) {\n return \"classification-\" + classification.replace(\" \", \"-\").toLowerCase()\n }\n\n private formatDate(date: Moment) {\n return date ? date.format(\"YYYY\") : \"\"\n }\n\n private authorsCount() {\n const count = this.document.authors.length\n return count > 1 ? `${count} authors` : \"1 author\"\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OverviewDocumentItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OverviewDocumentItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OverviewDocumentItem.vue?vue&type=template&id=771cf22c&scoped=true&\"\nimport script from \"./OverviewDocumentItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./OverviewDocumentItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OverviewDocumentItem.vue?vue&type=style&index=0&id=771cf22c&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 \"771cf22c\",\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {getDocuments} from \"@/store/investigation/documents-module\"\nimport {fetchAllData, getIsInProfile} from \"@/store/investigation/investigation-module\"\nimport {DocumentEntity} from \"@/types/investigations\"\nimport AuthorSummaryPane from \"@/views/investigation/panes/AuthorSummaryPane.vue\"\nimport AuthorGraph from \"@/views/investigation/graphs/AuthorGraph.vue\"\nimport DateFilter from \"@/components/filter/DateFilter.vue\"\nimport OverviewDocumentItem from \"@/views/investigation/panes/OverviewDocumentItem.vue\"\n\n@Component({\n components: {AuthorGraph, DateFilter, AuthorSummaryPane, OverviewDocumentItem}\n})\nexport default class OverviewPane extends Vue {\n\n get documents(): DocumentEntity[] {\n return getDocuments(this.$store).slice(0, 3)\n }\n\n get isInPersonProfile(): boolean {\n return getIsInProfile(this.$store)\n }\n\n private get personId(): string {\n return this.$route.params.personId\n }\n\n private goToAuthorGraph() {\n this.$router.push(\"author-graph\")\n }\n\n private goToTermGraph() {\n this.$router.push(\"entity-graph\")\n }\n\n private goToDocuments() {\n this.$router.push(\"documents\")\n }\n\n private async mounted() {\n await fetchAllData(this.$store)\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OverviewPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OverviewPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OverviewPane.vue?vue&type=template&id=73648b2f&scoped=true&\"\nimport script from \"./OverviewPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./OverviewPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OverviewPane.vue?vue&type=style&index=0&id=73648b2f&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 \"73648b2f\",\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',{staticClass:\"container\"},[_c('div',{staticClass:\"observations-pane\"},[_c('div',{staticClass:\"sticky\"},[_c('div',{staticClass:\"subheader-container\"},[_c('h1',{staticClass:\"subheader\"},[_vm._v(\" Insights \"),(_vm.loaded)?_c('span',{staticClass:\"observations-count\"},[_vm._v(\"(\"+_vm._s(_vm.observations.length)+\")\")]):_vm._e()]),_c('div',{staticClass:\"header-button-container\"},[_c('div',{ref:\"viewModeMenuOpener\",staticClass:\"header-button view-mode-menu\",attrs:{\"title\":\"Select display mode\"},on:{\"click\":_vm.openViewModeMenu}})])])]),_c('section',{staticClass:\"main\"},[(!_vm.observations.length)?_c('div',{staticClass:\"click-to-add\"},[_c('div',[_vm._v(\"There are no insights to show, yet...\")]),_c('div',[_vm._v(\"Click \"),_c('span',{on:{\"click\":_vm.createObservation}},[_vm._v(\"here\")]),_vm._v(\" to add the first insight\")])]):(_vm.sectionObservationOrder.length)?_c('div',{directives:[{name:\"drag-and-drop\",rawName:\"v-drag-and-drop:options\",value:(_vm.dragAndDropOptions),expression:\"dragAndDropOptions\",arg:\"options\"}],staticClass:\"drag-container\"},[_c('div',{staticClass:\"drag-list\"},_vm._l((_vm.sectionObservationOrder),function(section){return _c('div',{key:section.id,ref:section.id,refInFor:true,staticClass:\"observation-section\",class:{expanded: _vm.expandedStates[section.id] || section.id === '0', empty: section.items.length === 0}},[(section.name)?_c('div',{staticClass:\"title-container\"},[(section.name)?_c('div',{staticClass:\"title\",attrs:{\"title\":section.name}},[_vm._v(_vm._s(section.name))]):_vm._e(),_c('div',{staticClass:\"section-buttons\"},[_c('div',{staticClass:\"action-button-pane\"},[_c('button',{staticClass:\"action-button observation-section-menu-opener\",on:{\"click\":function($event){$event.stopPropagation();return _vm.openObservationSectionMenu($event.target, section)}}})]),_c('button',{staticClass:\"expand-button\",class:{'expanded': _vm.expandedStates[section.id]},on:{\"click\":function($event){return _vm.toggleExpansion(section.id)}}})])]):_vm._e(),_c('vue-draggable-group',{attrs:{\"data-id\":section.id,\"groups\":_vm.sectionObservationOrder},model:{value:(section.items),callback:function ($$v) {_vm.$set(section, \"items\", $$v)},expression:\"section.items\"}},[_c('div',{staticClass:\"drag-inner-list\",attrs:{\"data-id\":section.id}},_vm._l((section.items),function(item){return _c('div',{key:item.id,staticClass:\"drag-item\",attrs:{\"data-id\":item.id}},[_c('ObservationItem',{key:item.id,ref:item.id,refInFor:true,attrs:{\"image-id\":_vm.imageId(item.observation),\"observation\":item.observation}})],1)}),0)])],1)}),0)]):_vm._e()])]),_c('PopupMenu',{attrs:{\"event\":\"openViewModeMenu\"}},[_c('div',{staticClass:\"menu-item with-check\",class:{'checked': _vm.viewModeLevel === 0},on:{\"click\":function($event){_vm.viewModeLevel = 0}}},[_vm._v(\" Titles \")]),_c('div',{staticClass:\"menu-item with-check\",class:{'checked': _vm.viewModeLevel === 1},on:{\"click\":function($event){_vm.viewModeLevel = 1}}},[_vm._v(\" All Details \")])]),_c('PopupMenu',{attrs:{\"event\":\"openObservationSectionMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.setSectionIndex}},[_vm._v(\"Set Section Index\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.renameSection}},[_vm._v(\"Rename Section\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.deleteSection}},[_vm._v(\"Delete Section\")])]),_c('RenameObservationSectionDialog',{ref:\"renameObservationSectionDialog\"}),_c('ObservationSectionIndexDialog',{ref:\"observationSectionIndexDialog\"})],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:\"observation-item\"},[_c('div',{staticClass:\"observation-upper-details-and-controls\"},[_c('div',{staticClass:\"observation-upper-details\"},[_c('div',{staticClass:\"observation-title-container\"},[_c('h1',{staticClass:\"observation-title\",on:{\"click\":_vm.toggleExpansion}},[_vm._v(_vm._s(_vm.observation.title))]),_c('div',{staticClass:\"action-buttons\"},[_c('button',{staticClass:\"edit\",on:{\"click\":_vm.editObservation}}),_c('button',{staticClass:\"delete\",on:{\"click\":_vm.deleteObservation}})])]),(_vm.expanded)?_c('div',{staticClass:\"observation-date-container\"},[_c('div',{staticClass:\"observation-date\"},[_vm._v(_vm._s(_vm.observationDate))]),_c('div',{staticClass:\"separator\"}),_c('div',{staticClass:\"observation-time\"},[_vm._v(_vm._s(_vm.observationTime))])]):_vm._e(),(_vm.expanded)?_c('section',{ref:\"abstract\",staticClass:\"observation\"},[_c('div',{staticClass:\"observation-text\",domProps:{\"innerHTML\":_vm._s(_vm.observation.observation)}})]):_vm._e(),(_vm.observation.type !== \"Investigation\" && _vm.expanded)?_c('ReferencedEntityPreview',{attrs:{\"observation\":_vm.observation,\"scroll\":false,\"type\":_vm.observation.type}}):_vm._e(),_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.observation.imageId),expression:\"observation.imageId\"}],ref:\"image\",staticClass:\"observation-image\"})],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 Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {Prop, Watch} from \"vue-property-decorator\"\nimport {deleteObservation, getObservationViewModeLevel, ObservationEntity} from \"@/store/investigation/observation-module\"\nimport ReferencedEntityPreview from \"@/views/investigation/previews/ReferencedEntityPreview.vue\"\nimport moment from \"moment\"\nimport {openCreateObservationDialog} from \"@/views/investigation/dialogs/CreateObservationDialog.vue\"\nimport {getInvestigation} from \"@/store/investigation/investigation-module\"\nimport {openConfirmationDialog} from \"@/views/investigation/dialogs/ConfirmationDialog.vue\"\n\n@Component({\n components: {ReferencedEntityPreview}\n})\nexport default class ObservationItem extends Vue {\n\n @Prop()\n private observation!: ObservationEntity\n\n private expanded: boolean = false\n\n private mounted() {\n this.showImageOnOpen()\n this.updateExpansion()\n }\n\n @Watch(\"observation\")\n private showImageOnOpen() {\n const image = this.$refs.image as HTMLImageElement\n\n if (!!this.observation.imageId) {\n image.src = `/api/images?imageId=${this.observation.imageId}&time=${this.observation.imageTimestamp}`\n } else {\n image.src = \"\"\n }\n }\n\n private get viewModeLevel(): number {\n return getObservationViewModeLevel(this.$store)\n }\n\n private get observationDate() {\n return this.time.format(\"DD MMM YYYY\")\n }\n\n private get observationTime() {\n return this.time.format(\"HH:mm\")\n }\n\n private get time() {\n return moment(this.observation.time)\n }\n\n @Watch(\"viewModeLevel\")\n private updateExpansion() {\n this.expanded = this.viewModeLevel === 1\n }\n\n private editObservation() {\n const allowImageUpload = this.observation.type === \"Document\" || this.observation.type === \"Investigation\"\n\n openCreateObservationDialog(this, {\n type: this.observation.type!!,\n observation: this.observation,\n referencedEntity: this.observation.referencedObject,\n allowImageUpload\n })\n }\n\n private deleteObservation() {\n openConfirmationDialog({\n message: `Are you sure you want to delete this insight?`,\n title: `Delete Insight`,\n okText: \"Delete\",\n onOk: () => this.performDelete(),\n showCancel: true\n })\n }\n\n private performDelete() {\n const investigationType = getInvestigation(this.$store)!!.investigationType\n deleteObservation(this.$store, {observationId: this.observation.id!, investigationType})\n }\n\n private toggleExpansion() {\n this.expanded = !this.expanded\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ObservationItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ObservationItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ObservationItem.vue?vue&type=template&id=fbcd8d06&scoped=true&\"\nimport script from \"./ObservationItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./ObservationItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ObservationItem.vue?vue&type=style&index=0&id=fbcd8d06&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 \"fbcd8d06\",\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {fetchAllObservations, getInvestigation, getIsBusy, getTotalDocumentCount} from \"@/store/investigation/investigation-module\"\nimport {deleteObservationSection, getObservations, getObservationSections, getObservationViewModeLevel, getSectionObservationOrder, ObservationEntity, ObservationSectionEntity, reorderObservations, setObservationViewModeLevel, setSectionObservationOrder} from \"@/store/investigation/observation-module\"\nimport ObservationItem from \"@/views/investigation/panes/ObservationItem.vue\"\nimport {isReportEnabled} from \"@/store/environment-module\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport {Prop, Watch} from \"vue-property-decorator\"\nimport {VueDraggableOptions} from \"vue-draggable/types/vue-draggable-options\"\nimport RenameObservationSectionDialog from \"@/views/investigation/dialogs/RenameObservationSectionDialog.vue\"\nimport ObservationSectionIndexDialog from \"@/views/investigation/dialogs/ObservationSectionIndexDialog.vue\"\nimport {openConfirmationDialog} from \"@/views/investigation/dialogs/ConfirmationDialog.vue\"\nimport {openCreateObservationDialog} from \"@/views/investigation/dialogs/CreateObservationDialog.vue\"\n\n\n@Component({\n components: {ObservationItem, PopupMenu, RenameObservationSectionDialog, ObservationSectionIndexDialog}\n})\nexport default class ReportEditor extends Vue {\n\n @Prop()\n private scrolledToObservation!: string\n\n @Prop()\n private scrolledToSection!: string\n\n private getInvestigation = this.$wrap(getInvestigation)\n\n private isCreatingOrder: boolean = true\n private isReordering: boolean = false\n private expandedStates: { [key: string]: boolean } = {}\n private sectionContext: ObservationSectionEntity | null = null\n\n get observationSections(): ObservationSectionEntity[] {\n return getObservationSections(this.$store)\n }\n\n get loaded(): boolean {\n return !getIsBusy(this.$store)\n }\n\n private get sectionObservationOrder() {\n return [...getSectionObservationOrder(this.$store)]\n }\n\n private set sectionObservationOrder(value: any) {\n setSectionObservationOrder(this.$store, value)\n }\n\n private get isReportEnabled(): boolean {\n return isReportEnabled(this.$store)\n }\n\n private get hasDocuments(): boolean {\n return getTotalDocumentCount(this.$store) > 0\n }\n\n private get investigationType() {\n return getInvestigation(this.$store)!.investigationType\n }\n\n private get observations(): ObservationEntity[] {\n return [...getObservations(this.$store)].sort((a: ObservationEntity, b: ObservationEntity) => {\n const sectionScore = Number(a.section || 0) - Number(b.section || 0)\n const ordinalScore = a.ordinal - b.ordinal\n return sectionScore * 2 + ordinalScore\n })\n }\n\n private get viewModeLevel(): number {\n return getObservationViewModeLevel(this.$store)\n }\n\n private set viewModeLevel(level: number) {\n setObservationViewModeLevel(this.$store, level)\n }\n\n private get dragAndDropOptions(): VueDraggableOptions {\n return {\n dropzoneSelector: \".drag-inner-list\",\n draggableSelector: \".drag-item\",\n multipleDropzonesItemsDraggingEnabled: true\n } as unknown as VueDraggableOptions\n }\n\n private get sections() {\n return [...getObservationSections(this.$store), {name: \"\", id: \"0\", ordinal: -1}]\n }\n\n private get observationsWithoutSection(): ObservationEntity[] {\n return this.observations\n .filter(observation => observation.section === null)\n .sort((a: ObservationEntity, b: ObservationEntity) => a.ordinal - b.ordinal)\n }\n\n private async mounted() {\n if (this.isReportEnabled) {\n await fetchAllObservations(this.$store)\n // window.document.getElementsByClassName(\"observation-item\")[0].scrollIntoView()\n } else {\n this.$router.push(\"documents\")\n }\n }\n\n @Watch(\"observations\")\n @Watch(\"sections\")\n private createSectionObservationOrder() {\n this.isCreatingOrder = true\n const newSectionObservationOrder: any[] = []\n\n this.sections.forEach(section => {\n const observationsObjects = section.name ? this.observationsOf(section) : this.observationsWithoutSection\n const items = observationsObjects.map(observation => ({\n id: Number(observation.id!),\n groupId: observation.section,\n name: observation.title,\n observation: {...observation}\n }))\n newSectionObservationOrder.push({\n id: section.id,\n name: section.name,\n ordinal: section.ordinal,\n items\n })\n })\n this.sectionObservationOrder = newSectionObservationOrder\n this.isReordering = false\n }\n\n @Watch(\"observationSections\")\n private updateSectionExpansion() {\n this.observationSections.forEach(section => this.$set(\n this.expandedStates,\n section.id,\n this.expandedStates[section.id] !== undefined ? this.expandedStates[section.id] : true\n ))\n }\n\n private imageId(observation: ObservationEntity): string | null {\n if (observation.type === \"Investigation\") {\n return null\n }\n return observation.referencedObject!\n }\n\n private openViewModeMenu() {\n const viewModeMenuOpenerButton = this.$refs.viewModeMenuOpener as HTMLElement\n this.$emit(\"openViewModeMenu\", viewModeMenuOpenerButton)\n }\n\n @Watch(\"scrolledToSection\")\n private scrollToSection() {\n if (this.scrolledToSection) {\n const section = this.$refs[this.scrolledToSection] as Vue[]\n const element = section[0] as unknown as HTMLElement\n element.scrollIntoView()\n window.document.getElementsByClassName(\"middle\")[0].scrollTop -= 60\n this.$emit(\"scrolled\")\n }\n }\n\n @Watch(\"scrolledToObservation\")\n private scrollToObservation() {\n\n if (this.scrolledToObservation) {\n const section = this.observations.find(observation => observation.id === this.scrolledToObservation)!.section\n if (section && !this.expandedStates[section]) {\n this.expandedStates[section] = true\n setTimeout(this.performScrollToObservation, 100)\n } else {\n this.performScrollToObservation()\n }\n }\n }\n\n private performScrollToObservation() {\n const container = window.document.getElementsByClassName(\"middle\")[0]\n const observation = this.$refs[this.scrolledToObservation] as Vue[]\n const target = observation[0].$el.getBoundingClientRect()\n observation[0].$el.scrollIntoView()\n window.document.getElementsByClassName(\"middle\")[0].scrollTop -= 60\n this.$emit(\"scrolled\")\n }\n\n @Watch(\"sectionObservationOrder\", {deep: true})\n private changedSectionObservationOrder() {\n this.isReordering = true\n if (!this.isCreatingOrder) {\n const newObservations: ObservationEntity[] = []\n this.sectionObservationOrder.forEach(\n (section: any) => section.items\n .map((item: any) => item.observation)\n .forEach((observation: ObservationEntity, index: number) => {\n observation.section = section.id === \"0\" ? null : section.id.toString()\n observation.ordinal = index\n newObservations.push(observation)\n }\n ))\n\n reorderObservations(this.$store, newObservations)\n }\n this.isCreatingOrder = false\n }\n\n private observationsOf(section: ObservationSectionEntity): ObservationEntity[] {\n return this.observations\n .filter(observation => section.id === observation.section || (observation.section === null && section.id === \"0\"))\n .sort((a: ObservationEntity, b: ObservationEntity) => a.ordinal - b.ordinal)\n }\n\n private toggleExpansion(sectionId: string) {\n this.expandedStates[sectionId] = !this.expandedStates[sectionId]\n }\n\n private openObservationSectionMenu(button: HTMLElement, observationSection: ObservationSectionEntity) {\n this.sectionContext = observationSection\n this.$nextTick(() => this.$emit(\"openObservationSectionMenu\", button))\n }\n\n private renameSection() {\n if (this.sectionContext != null && this.sectionContext.name !== \"Default Section\") {\n // @ts-ignore\n (this.$refs.renameObservationSectionDialog as RenameObservationSectionDialog).open({section: this.sectionContext})\n }\n }\n\n private setSectionIndex() {\n if (this.sectionContext != null && this.sectionContext.name !== \"Default Section\") {\n // @ts-ignore\n (this.$refs.observationSectionIndexDialog as ObservationSectionIndexDialog).open({section: this.sectionContext})\n }\n }\n\n private deleteSection() {\n if (this.sectionContext != null && this.sectionContext.name !== \"Default Section\") {\n // @ts-ignore\n openConfirmationDialog({\n message: `Are you sure you want to delete \"${this.sectionContext.name}\" section?`,\n title: \"Delete Section\",\n okText: \"Delete\",\n onOk: () => this.performDeleteSection(),\n showCancel: true\n })\n }\n }\n\n private async performDeleteSection() {\n const hasObservations = this.observationsOf(this.sectionContext!!).length > 0\n await deleteObservationSection(this.$store, this.sectionContext!!)\n }\n\n private createObservation() {\n openCreateObservationDialog(this, {\n type: \"Investigation\",\n allowImageUpload: true\n })\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReportEditor.vue?vue&type=template&id=3e7d05d9&scoped=true&\"\nimport script from \"./ReportEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReportEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReportEditor.vue?vue&type=style&index=0&id=3e7d05d9&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 \"3e7d05d9\",\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\")}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\n\n@Component\n export default class EmptyPane extends Vue { }\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmptyPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmptyPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EmptyPane.vue?vue&type=template&id=48abb5fe&\"\nimport script from \"./EmptyPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./EmptyPane.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('div',{staticClass:\"admin-page\"},[_c('section',{staticClass:\"control-panel\"},[_c('div',{staticClass:\"field\"},[_c('input',{attrs:{\"id\":\"cvFileUpload\",\"type\":\"file\"},on:{\"change\":function($event){return _vm.cvFileSelected($event)}}}),_c('label',{staticClass:\"field-button\",attrs:{\"for\":\"cvFileUpload\"}},[(_vm.cvFile)?_c('span',[_vm._v(\"CV File: \"+_vm._s(_vm.cvFile.name))]):_c('span',[_vm._v(\"Upload CV File\")])])]),_c('div',{staticClass:\"field\"},[_c('label',{staticClass:\"field-label\",attrs:{\"for\":\"doi\"}},[_vm._v(\"DOI\")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.doi),expression:\"doi\"}],staticClass:\"field-input\",attrs:{\"id\":\"doi\",\"type\":\"text\"},domProps:{\"value\":(_vm.doi)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.doi=$event.target.value}}}),_vm._v(\" \"),_c('button',{staticClass:\"field-button\",on:{\"click\":function($event){return _vm.getClusterReport()}}},[_vm._v(\"Set\")])]),_c('div',{staticClass:\"field checkbox-container\",on:{\"click\":_vm.toggleShowClusterId}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.showClusterId}}),_c('label',{staticClass:\"field-label\"},[_vm._v(\"Show Cluster ID\")])]),_c('div',{staticClass:\"field\"},[_c('button',{staticClass:\"field-button\",on:{\"click\":_vm.toggleMergeReport}},[(!_vm.showMergeReport)?_c('span',[_vm._v(\"Show\")]):_c('span',[_vm._v(\"Hide\")]),_vm._v(\" Merge Scores \")])]),_c('div',{staticClass:\"field group no-margin\"},[_c('div',{staticClass:\"group-title\"},[_vm._v(\"Merge Group Selection\")]),_c('div',{},[_c('div',{staticClass:\"field group no-border no-margin\"},[_c('div',{staticClass:\"checkbox-container\",on:{\"click\":function($event){return _vm.setMergeGroupSelectionType('Correct')}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.mergeGroupSelectionType === 'Correct'}}),_c('label',{staticClass:\"field-label\"},[_vm._v(\"Select Correct\")])]),_c('div',{staticClass:\"checkbox-container\",on:{\"click\":function($event){return _vm.setMergeGroupSelectionType('Incorrect')}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.mergeGroupSelectionType === 'Incorrect'}}),_c('label',{staticClass:\"field-label\"},[_vm._v(\"Select Incorrect\")])])]),_c('div',{staticClass:\"field no-margin\"},[_c('label',{staticClass:\"field-label\"},[_vm._v(\"S3 Path\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.s3Path),expression:\"s3Path\"}],staticClass:\"field-input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.s3Path)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.s3Path=$event.target.value}}})])]),_c('div',{staticClass:\"field no-margin\"},[_c('button',{staticClass:\"field-button\",on:{\"click\":_vm.findPointsOfContact}},[_vm._v(\"Find Points of Contact\")])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.executing),expression:\"executing\"}],staticClass:\"loading-data\"},[_c('img',{attrs:{\"alt\":\"loading\",\"src\":require(\"../../assets/images/loading.gif\")}}),_c('div',[_vm._v(\"Preparing Report\")])])]),(_vm.clusterReport && _vm.cvFile)?_c('section',{staticClass:\"report-statistics\"},[_c('h1',{staticClass:\"statistics-table-title\"},[_vm._v(\"Articles (Incl. all papers except patents)\")]),_c('table',{staticClass:\"statistics-table\"},[_vm._m(0),_c('tbody',[_c('tr',[_c('td',[_c('div',[_vm._v(_vm._s(_vm.clusterReport.articleStats.cvTitlesCount))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm.clusterReport.articleStats.cvTitlesFound.count))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm.clusterReport.articleStats.cvTitlesInMainCluster.count))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm.clusterReport.articleStats.cvTitlesInWrongCluster.count))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm.clusterReport.articleStats.cvTitlesNotFound.count))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm.clusterReport.articleStats.allTitlesInMainCluster))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm.clusterReport.articleStats.mainClusterTitlesNotInCV))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm.clusterReport.articleStats.extraTitles))])])]),_c('tr',[_c('td'),_c('td',[_c('div',[_vm._v(_vm._s(_vm._f(\"percentage\")(_vm.clusterReport.articleStats.cvTitlesFound.percentage)))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm._f(\"percentage\")(_vm.clusterReport.articleStats.cvTitlesInMainCluster.percentage)))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm._f(\"percentage\")(_vm.clusterReport.articleStats.cvTitlesInWrongCluster.percentage)))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm._f(\"percentage\")(_vm.clusterReport.articleStats.cvTitlesNotFound.percentage)))])]),_c('td'),_c('td'),_c('td')])])])]):_vm._e(),(_vm.clusterReport && _vm.cvFile)?_c('section',{staticClass:\"report-statistics\"},[_c('h1',{staticClass:\"statistics-table-title\"},[_vm._v(\"Patents\")]),_c('table',{staticClass:\"statistics-table\"},[_vm._m(1),_c('tbody',[_c('tr',[_c('td',[_c('div',[_vm._v(_vm._s(_vm.clusterReport.patentStats.cvTitlesCount))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm.clusterReport.patentStats.cvTitlesFound.count))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm.clusterReport.patentStats.cvTitlesInMainCluster.count))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm.clusterReport.patentStats.cvTitlesInWrongCluster.count))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm.clusterReport.patentStats.cvTitlesNotFound.count))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm.clusterReport.patentStats.allTitlesInMainCluster))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm.clusterReport.patentStats.mainClusterTitlesNotInCV))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm.clusterReport.patentStats.extraTitles))])])]),_c('tr',[_c('td'),_c('td',[_c('div',[_vm._v(_vm._s(_vm._f(\"percentage\")(_vm.clusterReport.patentStats.cvTitlesFound.percentage)))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm._f(\"percentage\")(_vm.clusterReport.patentStats.cvTitlesInMainCluster.percentage)))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm._f(\"percentage\")(_vm.clusterReport.patentStats.cvTitlesInWrongCluster.percentage)))])]),_c('td',[_c('div',[_vm._v(_vm._s(_vm._f(\"percentage\")(_vm.clusterReport.patentStats.cvTitlesNotFound.percentage)))])]),_c('td'),_c('td'),_c('td')])])])]):_vm._e(),(!!_vm.clusterReport)?_c('section',{staticClass:\"report\"},[_c('section',{staticClass:\"inputs\"},[_c('h1',[_vm._v(\"Documents Table\")]),_c('table',[_c('thead',[_c('tr',[_c('th',[_c('div',{staticClass:\"cell header\",on:{\"click\":function($event){return _vm.documentsHeaderClicked('DocumentId')}}},[_c('div',{staticClass:\"title\"},[_vm._v(\"Doc ID\")]),_c('div',{staticClass:\"sort-button\",class:{'show': _vm.documentsSortBy === 'DocumentId', 'desc': _vm.documentsSortDir === 'Desc'}},[_vm._v(\"▴\")])])]),_c('th',[_c('div',{staticClass:\"cell header\",on:{\"click\":function($event){return _vm.documentsHeaderClicked('DocumentTitle')}}},[_c('div',{staticClass:\"title\"},[_vm._v(\"Document Title\")]),_c('div',{staticClass:\"sort-button\",class:{'show': _vm.documentsSortBy === 'DocumentTitle', 'desc': _vm.documentsSortDir === 'Desc'}},[_vm._v(\"▴\")])])]),_c('th',[_c('div',{staticClass:\"cell header\",on:{\"click\":function($event){return _vm.documentsHeaderClicked('InCV')}}},[_c('div',{staticClass:\"title\"},[_vm._v(\"In CV?\")]),_c('div',{staticClass:\"sort-button\",class:{'show': _vm.documentsSortBy === 'InCV', 'desc': _vm.documentsSortDir === 'Desc'}},[_vm._v(\"▴\")])])]),_c('th',[_c('div',{staticClass:\"cell header\",on:{\"click\":function($event){return _vm.documentsHeaderClicked('SNE')}}},[_c('div',{staticClass:\"title\"},[_vm._v(\"Socrates\")]),_c('div',{staticClass:\"sort-button\",class:{'show': _vm.documentsSortBy === 'SNE', 'desc': _vm.documentsSortDir === 'Desc'}},[_vm._v(\"▴\")])])]),_c('th',[_c('div',{staticClass:\"cell header\",on:{\"click\":function($event){return _vm.documentsHeaderClicked('MAG')}}},[_c('div',{staticClass:\"title\"},[_vm._v(\"MAG\")]),_c('div',{staticClass:\"sort-button\",class:{'show': _vm.documentsSortBy === 'MAG', 'desc': _vm.documentsSortDir === 'Desc'}},[_vm._v(\"▴\")])])])])]),_c('tbody',_vm._l((_vm.sortedDocuments),function(row){return _c('tr',[_c('td',[_c('div',{staticClass:\"cell group-selection\"},[(row.documentId)?_c('span',[_vm._v(_vm._s(row.documentId))]):_c('span',[_vm._v(\"-\")]),(_vm.mergeGroupSelectionType !== 'None' && row.documentId)?_c('div',{staticClass:\"merge-groups-checkboxes\"},[_c('button',{staticClass:\"checkbox\",class:{'checked': _vm.mergeGroupSelection[row.documentId] === 'Correct'},attrs:{\"title\":\"Correct group\",\"disabled\":_vm.mergeGroupSelectionType !== 'Correct' || _vm.mergeGroupSelection[row.documentId] === 'Incorrect'},on:{\"click\":function($event){return _vm.selectDocumentForMergeGroup(row.documentId, 'Correct')}}}),_c('button',{staticClass:\"checkbox negative\",class:{'checked': _vm.mergeGroupSelection[row.documentId] === 'Incorrect'},attrs:{\"title\":\"Incorrect group\",\"disabled\":_vm.mergeGroupSelectionType !== 'Incorrect' || _vm.mergeGroupSelection[row.documentId] === 'Correct'},on:{\"click\":function($event){return _vm.selectDocumentForMergeGroup(row.documentId, 'Incorrect')}}})]):_vm._e()])]),_c('td',[_c('div',{staticClass:\"cell document-title\"},[_vm._v(_vm._s(row.documentTitle))])]),_c('td',{class:{'highlighted-in-cv': row.appearsInCv === 'Yes'}},[_c('div',{staticClass:\"cell document-in-cv\"},[_c('span',[_vm._v(_vm._s(row.appearsInCv))]),(row.patent)?_c('span',[_vm._v(\" -P\")]):_vm._e()])]),_c('td',{class:{'primary-selected': _vm.isPrimaryColored(row.cluster1PersonId)},on:{\"click\":function($event){return _vm.selectCluster(row.cluster1PersonId, true)}}},[_c('div',{staticClass:\"cell\"},[(_vm.showClusterId)?_c('div',[_vm._v(_vm._s(row.cluster1PersonId))]):_vm._e(),_c('div',[_vm._v(_vm._s(row.cluster1PersonName))])])]),_c('td',{class:{'secondary-selected': _vm.isSecondaryColored(row.cluster2PersonId)},on:{\"click\":function($event){return _vm.selectCluster(row.cluster2PersonId, false)}}},[_c('div',{staticClass:\"cell\"},[(_vm.showClusterId)?_c('div',[_vm._v(_vm._s(row.cluster2PersonId))]):_vm._e(),_c('div',[_vm._v(_vm._s(row.cluster2PersonName))])])])])}),0)])]),_c('section',{staticClass:\"outputs\"},[_c('h1',[_vm._v(\"Cluster Comparison Table\")]),_c('table',[_c('thead',[_c('tr',[_c('th',[_c('div',{staticClass:\"cell header\",on:{\"click\":function($event){return _vm.comparisonHeaderClicked('SNE')}}},[_c('div',{staticClass:\"title sne-cluster\"},[_vm._v(\"Socrates\")]),_c('div',{staticClass:\"sort-button\",class:{'show': _vm.comparisonsSortBy === 'SNE', 'desc': _vm.comparisonsSortDir === 'Desc'}},[_vm._v(\"▴\")])])]),_c('th',[_c('div',{staticClass:\"cell header\",on:{\"click\":function($event){return _vm.comparisonHeaderClicked('DocCount')}}},[_c('div',{staticClass:\"title doc-count\"},[_vm._v(\"# Docs\")]),_c('div',{staticClass:\"sort-button\",class:{'show': _vm.comparisonsSortBy === 'DocCount', 'desc': _vm.comparisonsSortDir === 'Desc'}},[_vm._v(\"▴\")])])]),_c('th',[_c('div',{staticClass:\"cell header\",on:{\"click\":function($event){return _vm.comparisonsMagHeaderClicked()}}},[_c('div',{staticClass:\"title mag-cluster\"},[_vm._v(\"MAG\")]),_c('div',{staticClass:\"sort-button show\",class:{'desc': _vm.comparisonsMagSortDir === 'Desc'}},[_vm._v(\"▴\")])])]),(_vm.showMergeReport)?_c('th',[_c('div',{staticClass:\"cell header\",on:{\"click\":function($event){return _vm.comparisonHeaderClicked('SimilarityScore')}}},[_c('div',{staticClass:\"title total-score\"},[_vm._v(\"Similarity Score\")]),_c('div',{staticClass:\"sort-button\",class:{'show': _vm.comparisonsSortBy === 'SimilarityScore', 'desc': _vm.comparisonsSortDir === 'Desc'}},[_vm._v(\"▴\")])])]):_vm._e(),(_vm.showMergeReport)?_c('th',[_vm._m(2)]):_vm._e()])]),_c('tbody',_vm._l((_vm.sortedClusterComparisons),function(comparison){return _c('tr',{key:comparison.sourceClusterId},[_c('td',{staticClass:\"bottom-border clickable\",class:{'primary-selected': _vm.isPrimaryColored(comparison.sourceClusterId)},on:{\"click\":function($event){return _vm.selectCluster(comparison.sourceClusterId, true)}}},[_c('div',{staticClass:\"cell\",class:{'highlighted': _vm.clusterReport.matchingClusterId === comparison.sourceClusterId}},[_c('div',{staticClass:\"select-anchor clickable\",class:{'visible': _vm.compareClusterId === comparison.sourceClusterId},attrs:{\"title\":\"Select this cluster\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.updateMergeDecisions(comparison.sourceClusterId)}}}),_c('div',[_vm._v(_vm._s(comparison.sourceClusterId))])])]),_c('td',{staticClass:\"bottom-border clickable\",class:{'primary-selected': _vm.isPrimaryColored(comparison.sourceClusterId)},on:{\"click\":function($event){return _vm.selectCluster(comparison.sourceClusterId, true)}}},[_c('div',{staticClass:\"cell\"},[_c('div',[_vm._v(_vm._s(comparison.sourceClusterCount))])])]),_c('td',{staticClass:\"bottom-border clickable\"},_vm._l((comparison.targetClusters),function(target){return _c('div',{staticClass:\"cell target-clusters clickable\",class:{'secondary-selected': _vm.isSecondaryColored(target.targetClusterId)},on:{\"click\":function($event){return _vm.selectCluster(target.targetClusterId, false)}}},[_c('div',[_c('a',{staticClass:\"link\",attrs:{\"href\":_vm.getAuthorLink(target.targetClusterId),\"target\":\"_blank\"}},[(_vm.showClusterId)?_c('span',{staticClass:\"cluster-id\"},[_vm._v(_vm._s(target.targetClusterId))]):_c('span',{staticClass:\"cluster-id\"},[_vm._v(\"MAG/IEEE\")])]),_c('span',{staticClass:\"cluster-stats\"},[_vm._v(\"-   \"+_vm._s(target.value.count))]),(target.value.percentage !== 1)?_c('span',[_vm._v(\"  (\"+_vm._s(_vm._f(\"percentage\")(target.value.percentage))+\")\")]):_vm._e()])])}),0),(_vm.showMergeReport)?_c('td',{staticClass:\"bottom-border clickable\",class:{'primary-selected': _vm.isPrimaryColored(comparison.sourceClusterId)},on:{\"click\":function($event){return _vm.selectCluster(comparison.sourceClusterId, true)}}},[_c('div',{staticClass:\"cell\"},[_c('div',[_vm._v(_vm._s(_vm._f(\"formatNumber\")(_vm.mergeDecisions[comparison.sourceClusterId] ? _vm.mergeDecisions[comparison.sourceClusterId].totalScore : \"\")))])])]):_vm._e(),(_vm.showMergeReport)?_c('td',{staticClass:\"bottom-border clickable\",class:{'primary-selected': _vm.isPrimaryColored(comparison.sourceClusterId)},on:{\"click\":function($event){return _vm.selectCluster(comparison.sourceClusterId, true)}}},[_c('div',{staticClass:\"cell decisions-cell\"},_vm._l((_vm.mergeDecisions[comparison.sourceClusterId] ? _vm.mergeDecisions[comparison.sourceClusterId].scores : {}),function(value,name){return _c('div',[_c('span',{staticClass:\"score-name\"},[_vm._v(_vm._s(name)+\":\")]),_c('span',[_vm._v(_vm._s(_vm._f(\"formatNumber\")(value)))])])}),0)]):_vm._e()])}),0)])])]):_vm._e(),_c('section',{staticClass:\"debug-merge-result\",class:{'opened': _vm.debugMergeResultDialogOpened }},[_c('div',{staticClass:\"header\"},[_c('span',{staticClass:\"title\"},[_vm._v(\"Debug Merge Results\")]),_c('button',{staticClass:\"close-button\",on:{\"click\":function($event){_vm.debugMergeResultDialogOpened = !_vm.debugMergeResultDialogOpened}}})]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.debugMergeResult),expression:\"debugMergeResult\"}],domProps:{\"value\":(_vm.debugMergeResult)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.debugMergeResult=$event.target.value}}})])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_c('div',[_vm._v(\"CV Titles\")])]),_c('th',[_c('div',[_vm._v(\"CV Titles Found\")])]),_c('th',[_c('div',[_vm._v(\"CV Titles In Main Cluster\")])]),_c('th',[_c('div',[_vm._v(\"CV Titles In Wrong Cluster\")])]),_c('th',[_c('div',[_vm._v(\"CV Titles Not Found\")])]),_c('th',[_c('div',[_vm._v(\"All Titles In Main Cluster\")])]),_c('th',[_c('div',[_vm._v(\"Main Cluster Titles Not in CV\")])]),_c('th',[_c('div',[_vm._v(\"Extra Titles\")])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',[_c('div',[_vm._v(\"CV Titles\")])]),_c('th',[_c('div',[_vm._v(\"CV Titles Found\")])]),_c('th',[_c('div',[_vm._v(\"CV Titles In Main Cluster\")])]),_c('th',[_c('div',[_vm._v(\"CV Titles In Wrong Cluster\")])]),_c('th',[_c('div',[_vm._v(\"CV Titles Not Found\")])]),_c('th',[_c('div',[_vm._v(\"All Titles In Main Cluster\")])]),_c('th',[_c('div',[_vm._v(\"Main Cluster Titles Not in CV\")])]),_c('th',[_c('div',[_vm._v(\"Extra Titles\")])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"cell header\"},[_c('div',{staticClass:\"title score-details\"},[_vm._v(\"Similarity Score Details\")]),_c('div',{staticClass:\"sort-button\"},[_vm._v(\"▴\")])])}]\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport adminService from \"../../api/admin-service\"\nimport {ClusterComparison, ClusterReport, ClusterReportDocument, TargetCluster} from \"@/types/clusters\"\nimport {openMessageDialog} from \"@/components/MessageDialog.vue\"\n\ntype DocumentColumns = \"DocumentId\" | \"DocumentTitle\" | \"InCV\" | \"SNE\" | \"MAG\"\ntype ComparisonColumns = \"SNE\" | \"DocCount\" | \"MAG\" | \"SimilarityScore\" | \"SimilarityScoreDetails\"\ntype SortDirection = \"Asc\" | \"Desc\"\n\ntype MergeGroupSelectionType = \"None\" | \"Correct\" | \"Incorrect\"\n\n@Component({\n filters: {\n formatNumber: (num: number) => {\n if (num === 0) {\n return \"0\"\n }\n if (num != null) {\n return Intl.NumberFormat([], {style: \"decimal\", maximumFractionDigits: 1, useGrouping: false}).format(num)\n }\n return \"\"\n },\n percentage: (value: number) => {\n value = value * 100\n value = Math.round(value * 10) / 10\n return `${value}%`\n }\n }\n})\nexport default class ClusterReportPage extends Vue {\n private investigationId: string = \"\"\n private clusterReport?: ClusterReport | null = null\n private primaryColoredIds: string[] = []\n private secondaryColoredIds: string[] = []\n private sortedDocuments: ClusterReportDocument[] = []\n private sortedClusterComparisons: ClusterComparison[] = []\n private mergeDecisions: { [key: string]: { totalScore: number, scores: { [key: string]: number } } } = {}\n private executing = false\n private doi?: string = \"\"\n private cvFile: File | null = null\n private showClusterId = true\n private compareClusterId: string | null = null\n private showMergeReport: boolean = false\n private mergeGroupSelectionType: MergeGroupSelectionType = \"None\"\n private mergeGroupSelection: {[key: string]: MergeGroupSelectionType} = {}\n private debugMergeResult: string = \"\"\n private debugMergeResultDialogOpened: boolean = false\n private s3Path: string = \"\"\n\n private documentsSortBy: DocumentColumns = \"DocumentId\"\n private documentsSortDir: SortDirection = \"Asc\"\n private comparisonsSortBy: ComparisonColumns = \"SNE\"\n private comparisonsSortDir: SortDirection = \"Asc\"\n private comparisonsMagSortDir: SortDirection = \"Desc\"\n\n private async mounted() {\n this.investigationId = this.$route.params.investigationId\n\n await this.getClusterReport()\n\n if (this.doi !== \"\") {\n this.comparisonsSortBy = \"SimilarityScore\"\n this.comparisonsSortDir = \"Desc\"\n\n const matchingClusterId = this.clusterReport!!.matchingClusterId || null\n this.selectCluster(matchingClusterId, true)\n }\n }\n\n\n private async getClusterReport() {\n this.executing = true\n const doiList = (this.doi) ? this.doi.split(\"\\n\").filter(it => it.length !== 0) : []\n\n this.clusterReport = null\n this.clusterReport = await adminService.clusterReport(this.investigationId, this.cvFile, doiList)\n this.sortDocuments()\n this.sortComparisons()\n this.doi = this.clusterReport.doiList.join(\"\\n\")\n\n this.sortedDocuments.forEach(it => {\n if (it.documentId && !this.mergeGroupSelection[it.documentId]) {\n this.$set(this.mergeGroupSelection, it.documentId, \"None\")\n }\n })\n\n this.executing = false\n }\n\n\n private async cvFileSelected(e: Event) {\n const input = e.target as HTMLInputElement\n if (input.files) {\n this.cvFile = input.files[0]\n input.value = \"\" // so that next upload of same file will be caught be change handler\n\n await this.getClusterReport()\n\n this.sortedDocuments.forEach(it => {\n if (this.clusterReport && it.documentId && it.appearsInCv === \"Yes\" && it.cluster1PersonId === this.clusterReport.matchingClusterId) {\n this.$set(this.mergeGroupSelection, it.documentId, \"Correct\")\n }\n })\n }\n }\n\n\n private selectCluster(clusterId: string | null, primary: boolean) {\n const primarySet = new Set()\n const secondarySet = new Set()\n\n if (clusterId) {\n if (primary) {\n primarySet.add(clusterId)\n } else {\n secondarySet.add(clusterId)\n }\n\n this.clusterReport!!.documents.forEach(row => {\n if (primary) {\n if (row.cluster2PersonId && row.cluster1PersonId === clusterId) {\n secondarySet.add(row.cluster2PersonId)\n if (row.documentId && (this.mergeGroupSelection[row.documentId] === this.mergeGroupSelectionType || this.mergeGroupSelection[row.documentId] === \"None\")) {\n this.selectDocumentForMergeGroup(row.documentId, this.mergeGroupSelectionType)\n }\n }\n } else {\n if (row.cluster1PersonId && row.cluster2PersonId === clusterId) {\n primarySet.add(row.cluster1PersonId)\n if (row.documentId && (this.mergeGroupSelection[row.documentId] === this.mergeGroupSelectionType || this.mergeGroupSelection[row.documentId] === \"None\")) {\n this.selectDocumentForMergeGroup(row.documentId, this.mergeGroupSelectionType)\n }\n }\n }\n })\n }\n\n this.primaryColoredIds = [...primarySet]\n this.secondaryColoredIds = [...secondarySet]\n\n this.updateMergeDecisions(this.compareClusterId)\n this.sortComparisons()\n }\n\n\n private async updateMergeDecisions(compareClusterId: string | null) {\n this.compareClusterId = compareClusterId\n this.mergeDecisions = {}\n\n if (this.showMergeReport) {\n if (this.compareClusterId) {\n const personIds = this.clusterReport!!.comparisons.map(it => it.sourceClusterId)\n const allMergeDecisions = await adminService.createMergeFinalReport(this.compareClusterId, personIds)\n\n const sneClusterId = parseInt(this.compareClusterId, 10)\n allMergeDecisions.forEach(decision => {\n const otherClusterId = decision.id1 === sneClusterId ? decision.id2 : decision.id1\n\n const scores: { [key: string]: number } = {}\n Object.keys(decision.scores).forEach(key => {\n scores[key] = decision.scores[key]\n })\n\n this.mergeDecisions[otherClusterId] = {totalScore: decision.totalScore, scores}\n })\n }\n }\n\n this.sortComparisons()\n }\n\n\n private isPrimaryColored(personID: string): boolean {\n return this.primaryColoredIds.some(id => id === personID)\n }\n\n private isSecondaryColored(personID: string): boolean {\n return this.secondaryColoredIds.some(id => id === personID)\n }\n\n\n private documentsHeaderClicked(column: DocumentColumns) {\n if (this.documentsSortBy === column) {\n this.documentsSortDir = this.documentsSortDir === \"Asc\" ? \"Desc\" : \"Asc\"\n } else {\n this.documentsSortBy = column\n this.documentsSortDir = \"Asc\"\n }\n\n this.sortDocuments()\n }\n\n\n private sortDocuments() {\n this.sortedDocuments = []\n if (this.clusterReport) {\n let sort1Function: (c1: ClusterReportDocument, c2: ClusterReportDocument) => number\n switch (this.documentsSortBy) {\n case \"DocumentId\":\n sort1Function = (c1: ClusterReportDocument, c2: ClusterReportDocument) => this.nullToEmpty(c1.documentId).localeCompare(this.nullToEmpty(c2.documentId))\n break\n\n case \"DocumentTitle\":\n sort1Function = (c1: ClusterReportDocument, c2: ClusterReportDocument) => c1.documentTitle.localeCompare(c2.documentTitle)\n break\n\n case \"InCV\":\n sort1Function = (c1: ClusterReportDocument, c2: ClusterReportDocument) => this.nullToEmpty(c1.appearsInCv + c1.patent).localeCompare(this.nullToEmpty(c2.appearsInCv + c2.patent))\n break\n\n case \"SNE\":\n sort1Function = (c1: ClusterReportDocument, c2: ClusterReportDocument) => this.nullToEmpty(c1.cluster1PersonId).localeCompare(this.nullToEmpty(c2.cluster1PersonId))\n break\n\n default:\n sort1Function = (c1: ClusterReportDocument, c2: ClusterReportDocument) => this.nullToEmpty(c1.cluster2PersonId).localeCompare(this.nullToEmpty(c2.cluster2PersonId))\n break\n }\n\n let sort2Function = sort1Function\n if (this.documentsSortDir === \"Desc\") {\n sort2Function = (c1: ClusterReportDocument, c2: ClusterReportDocument) => -sort1Function(c1, c2)\n }\n\n this.sortedDocuments = this.clusterReport.documents.sort(sort2Function)\n }\n }\n\n\n private comparisonHeaderClicked(column: ComparisonColumns) {\n if (this.comparisonsSortBy === column) {\n this.comparisonsSortDir = this.comparisonsSortDir === \"Asc\" ? \"Desc\" : \"Asc\"\n } else {\n this.comparisonsSortBy = column\n this.comparisonsSortDir = \"Asc\"\n }\n\n this.sortComparisons()\n }\n\n\n private comparisonsMagHeaderClicked() {\n this.comparisonsMagSortDir = this.comparisonsMagSortDir === \"Asc\" ? \"Desc\" : \"Asc\"\n this.sortComparisons()\n }\n\n\n private sortComparisons() {\n this.sortedClusterComparisons = []\n if (this.clusterReport) {\n this.sortedClusterComparisons = this.clusterReport.comparisons.sort((c1: ClusterComparison, c2: ClusterComparison) => {\n let sortValue = 0\n switch (this.comparisonsSortBy) {\n case \"SNE\":\n sortValue = c1.sourceClusterId.localeCompare(c2.sourceClusterId)\n break\n\n case \"DocCount\":\n sortValue = c1.sourceClusterCount - c2.sourceClusterCount\n break\n\n case \"SimilarityScore\":\n const valueC1 = this.mergeDecisions[c1.sourceClusterId] ? this.mergeDecisions[c1.sourceClusterId].totalScore : 100000\n const valueC2 = this.mergeDecisions[c2.sourceClusterId] ? this.mergeDecisions[c2.sourceClusterId].totalScore : 100000\n sortValue = valueC1 - valueC2\n break\n }\n\n if (this.comparisonsSortDir === \"Desc\") {\n sortValue = -sortValue\n }\n return sortValue\n })\n\n const targetSortFunc = (t1: TargetCluster, t2: TargetCluster) => {\n let sortValue = t1.value.count - t2.value.count\n if (this.comparisonsMagSortDir === \"Desc\") {\n sortValue = -sortValue\n }\n return sortValue\n }\n\n this.sortedClusterComparisons = this.sortedClusterComparisons.map(comparison => {\n return {sourceClusterId: comparison.sourceClusterId, sourceClusterCount: comparison.sourceClusterCount, targetClusters: comparison.targetClusters.sort(targetSortFunc)}\n })\n }\n }\n\n private nullToEmpty(str?: string) {\n if (str != null) {\n return str\n }\n return \"\"\n }\n\n private getAuthorLink(authorId: string): string {\n if (authorId.startsWith(\"MAG/\")) {\n return `https://academic.microsoft.com/author/${authorId.substring(4)}`\n }\n\n if (authorId.startsWith(\"IEEE/\")) {\n return `https://ieeexplore.ieee.org/author/${authorId.substring(5)}`\n }\n\n return authorId\n }\n\n\n private toggleShowClusterId() {\n this.showClusterId = !this.showClusterId\n }\n\n\n private toggleMergeReport() {\n this.showMergeReport = !this.showMergeReport\n if (this.showMergeReport) {\n const matchingClusterId = this.clusterReport!!.matchingClusterId || null\n this.updateMergeDecisions(matchingClusterId)\n }\n }\n\n\n private setMergeGroupSelectionType(type: MergeGroupSelectionType) {\n this.mergeGroupSelectionType = this.mergeGroupSelectionType === type ? \"None\" : type\n }\n\n\n private selectDocumentForMergeGroup(documentId: string, groupType: MergeGroupSelectionType) {\n this.$set(this.mergeGroupSelection, documentId, this.mergeGroupSelection[documentId] === groupType ? \"None\" : groupType)\n }\n\n\n private async findPointsOfContact() {\n if (!this.compareClusterId) {\n openMessageDialog({title: \"Merge Debug Tool\", message: \"Main cluster not specified\"})\n return\n }\n\n const ids1: string[] = []\n const ids2: string[] = []\n Object.keys(this.mergeGroupSelection).forEach(key => {\n if (this.mergeGroupSelection[key] === \"Correct\") {\n ids1.push(key)\n } else if (this.mergeGroupSelection[key] === \"Incorrect\") {\n ids2.push(key)\n }\n })\n\n this.debugMergeResult = \"Calculating...\"\n this.debugMergeResult = await adminService.debugMerge(this.s3Path, this.compareClusterId!!, ids1, ids2)\n this.debugMergeResultDialogOpened = true\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClusterReportPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClusterReportPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClusterReportPage.vue?vue&type=template&id=13e4fb16&scoped=true&\"\nimport script from \"./ClusterReportPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClusterReportPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ClusterReportPage.vue?vue&type=style&index=0&id=13e4fb16&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 \"13e4fb16\",\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',{staticClass:\"admin-page\"},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\n\n@Component\nexport default class AdminPage extends Vue {\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdminPage.vue?vue&type=template&id=18fffd1e&scoped=true&\"\nimport script from \"./AdminPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdminPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AdminPage.vue?vue&type=style&index=0&id=18fffd1e&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"18fffd1e\",\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',{staticClass:\"timeline-pane\"},[_vm._m(0),(_vm.noData)?_c('div',{staticClass:\"no-data\"},[_vm._v(\"No data to display\")]):_vm._e(),(_vm.dataSource && !_vm.noData)?_c('div',{attrs:{\"id\":\"chart-container\"}},[_c('fusioncharts',{attrs:{\"dataFormat\":_vm.dataFormat,\"dataSource\":_vm.dataSource,\"height\":_vm.height,\"type\":_vm.type,\"width\":_vm.width}})],1):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header-content\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"results\"},[_vm._v(\"Timeline\")])])])}]\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 Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport FusionCharts from \"fusioncharts\"\nimport {getTimeline, setGraphType} from \"@/store/investigation/graph-module\"\nimport {fetchTimelineData, setIsRenderingGraph} from \"@/store/investigation/investigation-module\"\nimport {Watch} from \"vue-property-decorator\"\nimport {TimelineChartData} from \"@/types/investigations\"\n\n\n@Component\nexport default class TimelineGraph extends Vue {\n private type = \"timeseries\" // The chart type\n private width = \"100%\" // Width of the chart\n private height = \"calc(100% - 3.88em)\" // Height of the chart\n private dataFormat = \"json\" // Data type\n private dataSource: any = null\n private noData: boolean = true\n\n private async mounted() {\n setGraphType(this.$store, \"Timeline\")\n await fetchTimelineData(this.$store)\n }\n\n private get chartData(): TimelineChartData {\n return getTimeline(this.$store)\n }\n\n @Watch(\"chartData\")\n private resetChart() {\n\n if (this.chartData.selectedTermGroups.length === 0 && this.chartData.selectedTerms.length === 0 && !this.chartData.selectedExternalSeries) {\n this.noData = true\n } else {\n this.noData = false\n\n const schema = [{\n name: \"Time\",\n type: \"date\",\n format: \"%Y-%m-%d\"\n }]\n this.chartData.chartEntity.columns.slice(1).forEach(it => schema.push(\n {\n name: it,\n type: \"number\",\n format: \"\"\n }\n ))\n\n const fusionTable = new FusionCharts.DataStore().createDataTable(this.chartData.chartEntity.dataItems, schema)\n\n const leftYAxisPlots: any[] = []\n const rightYAxisPlots: any[] = []\n this.chartData.selectedTermGroups.forEach(it => leftYAxisPlots.push({\n value: it,\n connectnulldata: true,\n type: \"smooth-line\"\n }\n ))\n this.chartData.selectedTerms.forEach(it => leftYAxisPlots.push({\n value: it,\n connectnulldata: true,\n type: \"smooth-line\"\n }\n ))\n if (this.chartData.selectedExternalSeries) {\n rightYAxisPlots.push({\n value: this.chartData.selectedExternalSeries,\n connectnulldata: true,\n type: \"smooth-line\"\n })\n }\n const plots = [{\n plot: leftYAxisPlots,\n title: \"Document Count\"\n }]\n if (this.chartData.selectedExternalSeries) {\n const externalSeries = this.chartData.selectedExternalSeries\n plots.push({\n plot: [{\n value: externalSeries,\n connectnulldata: true,\n type: \"smooth-line\"\n }],\n title: externalSeries\n })\n }\n\n this.dataSource = {\n chart: {\n multiCanvas: false\n },\n series: \"Term\",\n yaxis: plots,\n data: fusionTable\n }\n }\n\n setIsRenderingGraph(this.$store, 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--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimelineGraph.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimelineGraph.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TimelineGraph.vue?vue&type=template&id=90ac3eac&scoped=true&\"\nimport script from \"./TimelineGraph.vue?vue&type=script&lang=ts&\"\nexport * from \"./TimelineGraph.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TimelineGraph.vue?vue&type=style&index=0&id=90ac3eac&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 \"90ac3eac\",\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',{staticClass:\"container\"},[_vm._m(0),_c('div',{staticClass:\"groups-container\"},[_vm._l((_vm.allTermGroups),function(termGroup){return _c('div',{key:termGroup.id},[_c('div',{staticClass:\"term-group\",on:{\"click\":function($event){return _vm.selectTermGroup(termGroup)}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.isGroupSelected(termGroup)}}),_c('div',{staticClass:\"group-name\",attrs:{\"title\":((termGroup.name) + \" (\" + (_vm.termsOf(termGroup).length) + \")\")}},[_vm._v(_vm._s(termGroup.name)+\" (\"+_vm._s(_vm.termsOf(termGroup).length)+\")\")])]),_vm._l((_vm.termsOf(termGroup)),function(term){return _c('div',{key:term.term,staticClass:\"term-container\",on:{\"click\":function($event){return _vm.selectTerm(term)}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': _vm.isTermSelected(term)}}),_c('div',{staticClass:\"term\",attrs:{\"title\":term.term}},[_c('span',[_vm._v(_vm._s(term.term))])])])})],2)}),_c('div',[_vm._m(1),_vm._l((_vm.allExternalSeries),function(externalSeries){return _c('div',{staticClass:\"term-container\",on:{\"click\":function($event){return _vm.selectExternalSeries(externalSeries)}}},[_c('div',{staticClass:\"checkbox radio\",class:{'checked': _vm.isExternalSeriesSelected(externalSeries)}}),_c('div',{staticClass:\"term\",attrs:{\"title\":externalSeries}},[_c('span',[_vm._v(_vm._s(externalSeries))])])])})],2)],2)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sticky\"},[_c('div',{staticClass:\"subheader-container\"},[_c('h1',{staticClass:\"subheader\"},[_vm._v(\"Terms and Term Groups\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"term-group\"},[_c('div',{staticClass:\"group-name\"},[_vm._v(\"External Series\")])])}]\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\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport {InvestigationTermEntity, InvestigationTermGroupEntity} from \"@/types/investigations\"\nimport {getTermGroups, getTerms} from \"@/store/investigation/investigation-terms-module\"\nimport {getExternalSeries, getTimeline, toggleExternalSeries, toggleTimelineTerm, toggleTimelineTermGroup} from \"@/store/investigation/graph-module\"\n\n@Component\nexport default class TimelineTermsPane extends Vue {\n\n private get allTerms(): InvestigationTermEntity[] {\n return getTerms(this.$store)\n }\n\n get allTermGroups(): InvestigationTermGroupEntity[] {\n return getTermGroups(this.$store)\n }\n\n get allExternalSeries(): string[] {\n return getExternalSeries(this.$store)\n }\n\n private termsOf(group: InvestigationTermGroupEntity): InvestigationTermEntity[] {\n return this.allTerms.filter(term => group.id === term.group)\n }\n\n private isGroupSelected(group: InvestigationTermGroupEntity): boolean {\n return !!getTimeline(this.$store).selectedTermGroups.find(it => it === group.name)\n }\n\n private isTermSelected(term: InvestigationTermEntity): boolean {\n return !!getTimeline(this.$store).selectedTerms.find(it => it === term.term)\n }\n\n private isExternalSeriesSelected(externalSeries: string): boolean {\n return getTimeline(this.$store).selectedExternalSeries === externalSeries\n }\n\n private selectTermGroup(group: InvestigationTermGroupEntity) {\n toggleTimelineTermGroup(this.$store, group)\n }\n\n private selectTerm(term: InvestigationTermEntity) {\n toggleTimelineTerm(this.$store, term)\n }\n\n private selectExternalSeries(externalSeries: string) {\n toggleExternalSeries(this.$store, externalSeries)\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimelineTermsPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimelineTermsPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TimelineTermsPane.vue?vue&type=template&id=71b0fa1f&scoped=true&\"\nimport script from \"./TimelineTermsPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./TimelineTermsPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TimelineTermsPane.vue?vue&type=style&index=0&id=71b0fa1f&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71b0fa1f\",\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',{staticClass:\"admin-merge-page\"},[_c('section',{staticClass:\"controls\"},[_c('label',{attrs:{\"for\":\"investigation-id\"}},[_vm._v(\"Investigation ID\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.investigationId),expression:\"investigationId\"}],attrs:{\"id\":\"investigation-id\",\"type\":\"text\"},domProps:{\"value\":(_vm.investigationId)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.investigationId=$event.target.value}}}),_c('button',{on:{\"click\":_vm.redoMerge}},[_vm._v(\"Redo Merge\")]),_c('button',{on:{\"click\":_vm.redoMergeAll}},[_vm._v(\"Redo Merge All\")])]),_c('section',{staticClass:\"merge-info\"},[_c('h1',[_vm._v(\"Currently Running Merges\")]),_c('div',{staticClass:\"json-data\"},[_vm._v(_vm._s(_vm.mergeHealthChecks))]),_c('h1',{staticClass:\"seperated\"},[_vm._v(\"Normalization Queue\")]),_c('div',{staticClass:\"json-data\"},[_vm._v(_vm._s(_vm.normalizationHealthChecks))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\"\nimport Component from \"vue-class-component\"\nimport adminService from \"../../api/admin-service\"\nimport {openConfirmationDialog} from \"@/views/investigation/dialogs/ConfirmationDialog.vue\"\nimport {openMessageDialog} from \"@/components/MessageDialog.vue\"\n\n@Component\nexport default class AdminMergePage extends Vue {\n\n private investigationId: string = \"\"\n private timerId: number | null = null\n private mergeHealthChecks: string = \"\"\n private normalizationHealthChecks: string = \"\"\n\n private async mounted() {\n this.timerId = setTimeout(this.getHealthChecks, 1000)\n }\n\n private beforeDestroy() {\n if (this.timerId) {\n clearTimeout(this.timerId)\n }\n }\n\n private async getHealthChecks() {\n const healthChecks = await adminService.getHealthChecks()\n\n this.mergeHealthChecks = JSON.stringify(healthChecks.merge, null, 2)\n this.normalizationHealthChecks = JSON.stringify(healthChecks.normalization, null, 2)\n\n this.timerId = setTimeout(this.getHealthChecks, 1000)\n }\n\n private redoMerge() {\n if (this.investigationId.length === 0) {\n openMessageDialog({title: \"Error\", message: \"Please fill in the investigation ID\"})\n return\n }\n\n const onOk = async () => {\n const error = await adminService.merge(this.investigationId)\n if (error.length !== 0) {\n openMessageDialog({title: \"Error\", message: error})\n }\n }\n\n openConfirmationDialog({\n message: `You are about to redo merge for investigation ${this.investigationId}.

Are you sure?`,\n title: \"Redo Merge\",\n okText: \"Redo Merge\",\n onOk,\n showCancel: true\n })\n }\n\n private redoMergeAll() {\n const onOk = async () => {\n const error = await adminService.mergeAll()\n\n if (error.length !== 0) {\n openMessageDialog({title: \"Error\", message: error})\n }\n }\n\n openConfirmationDialog({\n message: `You are about to redo merge for all investigations.

Are you sure?`,\n title: \"Redo Merge\",\n okText: \"Redo Merge\",\n onOk,\n showCancel: true\n })\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminMergePage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminMergePage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdminMergePage.vue?vue&type=template&id=bfc001bc&scoped=true&\"\nimport script from \"./AdminMergePage.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdminMergePage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AdminMergePage.vue?vue&type=style&index=0&id=bfc001bc&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 \"bfc001bc\",\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',{staticClass:\"graph-pane\"},[[_c('div',{staticClass:\"header-content\"},[_c('div',{staticClass:\"results\"},[_vm._v(\"Entities (\"+_vm._s(_vm.numberOfNodes)+\")\")]),_c('div',{staticClass:\"header-controls\"},[_c('div',{staticClass:\"left-panel\"},[_c('div',{staticClass:\"header-field\"},[_c('label',{staticClass:\"header-label\",attrs:{\"for\":\"unifiedHighlightInput\"}},[_vm._v(\"Highlight:\")]),_c('div',{staticClass:\"highlight-container\"},[_c('div',{staticClass:\"highlight-input-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.highlightFilter.filter),expression:\"highlightFilter.filter\"}],staticClass:\"highlight-input\",attrs:{\"id\":\"unifiedHighlightInput\",\"placeholder\":\"Name\",\"type\":\"text\"},domProps:{\"value\":(_vm.highlightFilter.filter)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.filter()},\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.highlightFilter, \"filter\", $event.target.value)}}}),_c('div',{staticClass:\"highlight-counts\"},[_vm._v(_vm._s(_vm.calcHighlightFilterCounts()))])]),_c('div',{staticClass:\"highlight-button previous\",attrs:{\"title\":\"Previous match\"},on:{\"click\":function($event){return _vm.highlightPrevious()}}}),_c('div',{staticClass:\"highlight-button next\",attrs:{\"title\":\"Next match\"},on:{\"click\":function($event){return _vm.highlightNext()}}}),_c('div',{staticClass:\"highlight-button clear\",attrs:{\"title\":\"Clear\"},on:{\"click\":function($event){return _vm.clearHighlight()}}})])])]),_c('div',{staticClass:\"right-panel\"},[_c('Speedometer',{staticClass:\"speedometer\",attrs:{\"rotation\":_vm.harvestIndicatorRotation}}),_c('button',{staticClass:\"refresh-graph\",style:({backgroundColor: _vm.resultsDifferenceColor}),attrs:{\"title\":\"Refresh the graph\"},on:{\"click\":_vm.refresh}}),_c('button',{staticClass:\"create-observation\",attrs:{\"title\":\"Add Insight to Report\"},on:{\"click\":function($event){return _vm.createGraphObservation()}}}),_c('button',{ref:\"viewModeMenuOpener\",staticClass:\"view-mode-menu\",attrs:{\"title\":\"Select layout\"},on:{\"click\":_vm.openViewModeMenu}})],1),_c('PopupMenu',{attrs:{\"close-event\":\"closeGraphContextMenu\",\"event\":\"openViewModeMenu\"}},[_c('div',{staticClass:\"menu-item with-check\",class:{'checked': _vm.settings.layout === 'circular'},on:{\"click\":function($event){return _vm.performLayout(\"circular\")}}},[_vm._v(\"Circular\")]),_c('div',{staticClass:\"menu-item with-check\",class:{'checked': _vm.settings.layout === 'organic'},on:{\"click\":function($event){return _vm.performLayout(\"organic\")}}},[_vm._v(\"Organic\")]),_c('div',{staticClass:\"menu-item with-check\",class:{'checked': _vm.settings.layout === 'structural'},on:{\"click\":function($event){return _vm.performLayout(\"structural\")}}},[_vm._v(\"Structural\")]),_c('div',{staticClass:\"menu-item with-check\",class:{'checked': _vm.settings.layout === 'lens'},on:{\"click\":function($event){return _vm.performLayout(\"lens\")}}},[_vm._v(\"Lens\")])])],1)])],[_c('div',{ref:\"graphContent\",staticClass:\"graph-content\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.chartData && this.graphData.nodes.length !== 0),expression:\"chartData && this.graphData.nodes.length !== 0\"}],ref:\"chart\",staticClass:\"keylines-graph\"},[_c('custom-kl-chart',{attrs:{\"id\":'kl-graph' + Math.random(),\"data\":_vm.chartData,\"containerClass\":\"kl-chart\"},on:{\"kl-ready\":_vm.klReady,\"kl-contextmenu\":_vm.openPopupMenu,\"kl-click\":_vm.clickedGraph}})],1),(this.graphData.nodes.length === 0)?_c('NoResults'):_vm._e(),(_vm.isInTopicInvestigation && !_vm.isInPersonProfile)?_c('div',{staticClass:\"legend\"},_vm._l((_vm.visibleLayers),function(layer){return _c('div',{staticClass:\"checkbox-container\",on:{\"click\":function($event){return _vm.toggleLayer(layer)}}},[_c('div',{staticClass:\"checkbox\",class:{'checked': layer.visible},style:({'background-color': layer.cssColor})}),_c('label',[_vm._v(_vm._s(layer.name))])])}),0):_vm._e(),(this.graphData.nodes.length > 0)?_c('div',{staticClass:\"fullScreen\",attrs:{\"title\":_vm.fullScreenText},on:{\"click\":_vm.toggleFullScreen}}):_vm._e(),_c('div',{ref:\"menuRef\",style:({position: \"fixed\", left: _vm.menuPosition.left + 'px', top: _vm.menuPosition.top + 'px'})}),_c('PopupMenu',{attrs:{\"close-event\":\"closeGraphContextMenu\",\"event\":\"openGraphContextMenu\"}},[_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.copyNodeText}},[_vm._v(\"Copy\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.googleIt}},[_vm._v(\"Google It\")]),(_vm.isInTopicInvestigation)?_c('div',{staticClass:\"menu-separator\"}):_vm._e(),(_vm.isInTopicInvestigation)?_c('div',{staticClass:\"menu-item\",class:{disabled: _vm.disableAddTerm},on:{\"click\":_vm.addTerm}},[_vm._v(\"Add as Search Term\")]):_vm._e(),_c('div',{staticClass:\"menu-item\",class:{disabled: !_vm.showAddFilter},on:{\"click\":_vm.addAsFilter}},[_vm._v(\"Add As Filter\")]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.selectNeighbouringNodes(1)}}},[_vm._v(\"Select Neighbors\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":function($event){return _vm.selectNeighbouringNodes(1000)}}},[_vm._v(\"Select All Connected Neighbors\")]),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.invertSelection}},[_vm._v(\"Invert Selection\")]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",class:{disabled: _vm.disableFindShortestPath},on:{\"click\":_vm.drawConnectingPath}},[_vm._v(\"Find Shortest Path\")]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",class:{disabled: _vm.disableMerge},on:{\"click\":_vm.mergeSelectedEntities}},[_vm._v(_vm._s(_vm.mergeEntityMenuTitle))]),_c('div',{staticClass:\"menu-separator\"}),_c('div',{staticClass:\"menu-item\",on:{\"click\":_vm.removeSelectedEntities}},[_vm._v(_vm._s(_vm.removeEntityMenuTitle))])])],1)],_c('PopupMenu',{attrs:{\"close-event\":\"closeCreateTermMenu\",\"event\":\"openCreateTermMenu\"}},[_c('CreateTermTemplate',{attrs:{\"term\":_vm.newTerm}})],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\nimport Vue from \"vue\"\nimport Component, {mixins} from \"vue-class-component\"\nimport {Watch} from \"vue-property-decorator\"\nimport GenericDialog from \"@/components/GenericDialog.vue\"\nimport \"keylines\"\nimport \"./CustomKeylinesChart\"\nimport {Chart, ChartData, ChartOptions, Link, Node, NodeProperties} from \"@/keylines\"\nimport {fetchGraphData, getActivityStatus, getInvestigation, getRelevancyStatus, getSelectedNodes, getSelectedTops, getShortestPath, getUnifiedGraphSettings, setEntityForSummary, setEntityRelationshipForSummary, setIsRenderingGraph, setPersonForRightPaneSummary, setSelectedNodes, setSelectedTops, setShortestPath, setUnifiedGraphSettings} from \"@/store/investigation/investigation-module\"\nimport SpinningLoader from \"@/components/SpinningLoader.vue\"\nimport PopupMenu from \"@/components/PopupMenu.vue\"\nimport {capitalize, copyToClipboard} from \"@/utils/utils\"\nimport {getGraph, setGraphType} from \"@/store/investigation/graph-module\"\nimport {getTermGroups, getTerms, MAX_ALLOWED_TERMS} from \"@/store/investigation/investigation-terms-module\"\nimport {graphLayouts, HighlightFilter} from \"@/views/investigation/graphs/graph-tools\"\nimport {InvestigationTermEntity, MentionedEntity, MentionedEntityType, RGB, TermModifier} from \"@/types/investigations\"\nimport Speedometer from \"@/views/investigation/graphs/Speedometer.vue\"\nimport CreateTermTemplate from \"@/views/investigation/templates/CreateTermTemplate.vue\"\nimport {configurationService} from \"@/api/investigation-configuration-service\"\nimport {getGroupColor} from \"@/utils/color-utils\"\nimport NoResults from \"@/components/NoResults.vue\"\nimport {openCreateObservationDialog} from \"@/views/investigation/dialogs/CreateObservationDialog.vue\"\nimport {openMessageDialog} from \"@/components/MessageDialog.vue\"\nimport {openConfirmationDialog} from \"@/views/investigation/dialogs/ConfirmationDialog.vue\"\nimport {PermissionsMixin} from \"@/store/user-mixin\"\nimport investigationEntityService from \"@/api/investigation-entity-service\"\nimport {InvestigationMixin} from \"@/store/investigation-mixin\"\n\n\nclass VisibleLayer {\n constructor(public name: string, public type: MentionedEntityType, public visible: boolean, public color: string, public cssColor: string | null) {\n }\n}\n\n@Component({\n components: {\n NoResults,\n SpinningLoader,\n GenericDialog,\n PopupMenu,\n Speedometer,\n CreateTermTemplate\n }\n})\nexport default class UnifiedGraph extends mixins(Vue, PermissionsMixin, InvestigationMixin) {\n\n private chart!: Chart\n private chartData: ChartData = {type: \"LinkChart\", items: []}\n private selectedId: number = 0\n private originalProperties: any[] = []\n private isRenderedByNumberOfDocuments = true\n private harvestIndicatorInterval: any\n private harvestIndicatorRotation: number = 0\n private menuPosition: { left: number, top: number } = {left: 0, top: 0}\n private numberOfNodes: number = 0\n private isHiding: boolean = false\n private isContextMenuOpen: boolean = false\n private mergeEntityMenuTitle: string = \"\"\n private removeEntityMenuTitle: string = \"\"\n private isInFullScreen = false\n private imageDataUrl: string = \"\"\n private newTerm: string = \"\"\n private disableAddTerm: boolean = false\n private maxEdgeFactor: number = 0\n private minEdgeFactor: number = 0\n private visibleLayers: VisibleLayer[] = []\n private termsListener!: () => void\n private termGroupListener!: () => void\n private disableMerge: boolean = true\n private showAddFilter: boolean = false\n private disableFindShortestPath: boolean = false\n\n\n private highlightFilter: HighlightFilter = {\n filter: \"\",\n current: null,\n list: []\n }\n\n private get graphData() {\n return getGraph(this.$store)\n }\n\n private get getTerms(): InvestigationTermEntity[] {\n return getTerms(this.$store)\n }\n\n private get getTermGroups() {\n return getTermGroups(this.$store)\n }\n\n private get settings() {\n return getUnifiedGraphSettings(this.$store)\n }\n\n private get activityIndicator(): number {\n return getActivityStatus(this.$store)\n }\n\n private get fullScreenText() {\n return this.isInFullScreen ? \"Exit Full Screen\" : \"Enter Full Screen\"\n }\n\n private get resultsDifferenceColor() {\n const percentFade = Math.min(getRelevancyStatus(this.$store).relevancyScore / 100, 1)\n const startRed = 0\n const startGreen = 176\n const startBlue = 255\n const middleRed = 160\n const middleGreen = 109\n const middleBlue = 244\n const endRed = 233\n const endGreen = 30\n const endBlue = 99\n return this.colorGradient(\n percentFade,\n {red: startRed, green: startGreen, blue: startBlue},\n {red: middleRed, green: middleGreen, blue: middleBlue},\n {red: endRed, green: endGreen, blue: endBlue}\n )\n }\n\n public async mounted() {\n setGraphType(this.$store, \"Unified\")\n this.clearHighlight()\n this.highlightFilter.filter = this.settings.filter\n await this.fetchData()\n\n this.$on(\"closedOncloseGraphContextMenu\", this.contextMenuClosed)\n\n this.harvestIndicatorInterval = setInterval(() => this.harvestIndicatorRotation = this.activityIndicator + (this.activityIndicator > 0 && this.activityIndicator <= 170 ? 10 * Math.random() : 0), 500)\n\n this.termGroupListener = this.$store.watch(state => getTermGroups(this.$store), (newValue, oldValue) => {\n this.updateTermGroups()\n })\n }\n\n private beforeDestroy() {\n setEntityForSummary(this.$store, null)\n setEntityRelationshipForSummary(this.$store, null)\n\n this.isRenderedByNumberOfDocuments = true\n setIsRenderingGraph(this.$store, false)\n\n if (this.termGroupListener) {\n this.termGroupListener()\n }\n\n if (this.termsListener) {\n this.termsListener()\n }\n }\n\n private contextMenuClosed() {\n setEntityForSummary(this.$store, null)\n setEntityRelationshipForSummary(this.$store, null)\n this.isContextMenuOpen = false\n }\n\n private openViewModeMenu() {\n const viewModeMenuOpenerButton = this.$refs.viewModeMenuOpener as HTMLElement\n this.$emit(\"openViewModeMenu\", viewModeMenuOpenerButton)\n }\n\n private async showHideItemsBasedOnConfiguration() {\n const investigation = getInvestigation(this.$store)!!\n const configuration = await configurationService.getConfiguration(investigation.id)\n const totalNumberOfNodes = configuration.graphsSettings[`term`].totalNumberOfNodes\n const edgeThreshold = configuration.graphsSettings[`term`].edgeThreshold\n\n const visibleItemIds: string[] = []\n const invisibleItemIds: string[] = []\n const allNodes: Node[] = []\n\n this.chartData.items.forEach(item => {\n if (item.type === \"node\") {\n allNodes.push(item)\n } else if (item.type === \"link\") {\n if (edgeThreshold == null || (item.w && item.w >= edgeThreshold)) {\n visibleItemIds.push(item.id)\n } else {\n invisibleItemIds.push(item.id)\n }\n }\n })\n\n if (totalNumberOfNodes != null) {\n const allNodesIds: string[] = allNodes.sort((n1, n2) => n2.e! - n1.e!).map(node => node.id)\n allNodesIds.slice(0, totalNumberOfNodes).forEach(node => visibleItemIds.push(node))\n allNodesIds.slice(totalNumberOfNodes, allNodes.length).forEach(node => invisibleItemIds.push(node))\n } else {\n allNodes.map(node => node.id).forEach(node => visibleItemIds.push(node))\n }\n\n await this.chart.show(visibleItemIds)\n await this.chart.hide(invisibleItemIds)\n }\n\n private async fetchData() {\n await fetchGraphData(this.$store)\n }\n\n @Watch(\"visibleLayers\", {deep: true})\n private updateLayers() {\n const visibleTypes = new Set(this.visibleLayers.filter(layer => layer.visible).map(layer => layer.type))\n\n this.chart.selection([])\n this.chart.foreground(item => true)\n this.chart.filter(item => {\n return visibleTypes.has(item.d.props.type)\n }, {type: \"node\", time: 200})\n\n this.handleSelectionChange()\n }\n\n\n @Watch(\"graphData\")\n private resetGraph() {\n this.chartData = {type: \"LinkChart\", items: []}\n this.chart.load(this.chartData)\n this.chartData = this.getChartData()\n\n this.updateTermGroups()\n\n if (this.graphData.nodes.length !== 0) {\n this.$nextTick(async () => {\n await this.chart.load(this.chartData)\n await this.showHideItemsBasedOnConfiguration()\n this.calcNumberOfNodes()\n await this.performLayout(this.settings.layout)\n this.chart.selection(getShortestPath(this.$store).length ? getShortestPath(this.$store) : getSelectedNodes(this.$store))\n\n await this.chart.zoom(\"fit\", {animate: true})\n if (getShortestPath(this.$store).length) {\n this.drawConnectingPath()\n }\n\n setIsRenderingGraph(this.$store, false)\n })\n } else {\n setIsRenderingGraph(this.$store, false)\n }\n }\n\n private toggleFullScreen() {\n const graphContent = this.$refs.graphContent as HTMLElement\n // @ts-ignore\n KeyLines.toggleFullScreen(graphContent, isInFullScreen => this.isInFullScreen = isInFullScreen)\n }\n\n private getChartData(): ChartData {\n const documentProjectionMin = 5.0\n const documentProjectionMax = 20.0\n\n if (this.graphData !== null) {\n const maxWeight = Math.max(...this.graphData.nodes.map(node => node.props.weight, 1))\n\n const keyLinesNodes = this.graphData.nodes\n .map(node => {\n const splittedName = node.props.term.replace(\" \", \"\\n\") as string\n const longest = Math.max(...splittedName.split(\"\\n\").map(t => t.length))\n const fontSize = longest < 10 ? 10 : Math.max(Math.round(-0.43 * longest + 12.8), 5)\n\n let color = \"transparent\"\n switch (node.props.type as MentionedEntityType) {\n case \"PERSON\":\n color = \"#FFD540\"\n break\n\n case \"ORGANIZATION\":\n color = \"#F67DA7\"\n break\n\n case \"LOCATION\":\n color = \"#9df67d\"\n break\n\n case \"CONCEPT\":\n color = \"#56D0E5\"\n break\n\n case \"TERM\":\n color = \"#AEC7CE\"\n break\n }\n\n return {\n id: node.id,\n type: \"node\",\n sh: \"circle\",\n ff: \"Roboto\",\n t: splittedName,\n c: color,\n fs: fontSize,\n fbc: \"transparent\",\n e: node.props.weight / maxWeight * (documentProjectionMax - documentProjectionMin) + documentProjectionMin,\n d: {\n props: node.props\n }\n } as unknown as Node\n })\n\n const keyLinesLinks = this.graphData.edges\n .map(edge => {\n return {\n id: edge.id,\n type: \"link\",\n bg: false,\n id1: edge.sourceId,\n id2: edge.targetId,\n c: \"rgba(135, 135, 135, 0.4)\",\n w: 1 + Math.log10(edge.props.weight),\n d: {\n props: edge.props\n }\n } as Link\n })\n\n let items: Array = []\n items = items.concat(keyLinesNodes).concat(keyLinesLinks)\n\n this.maxEdgeFactor = Math.round(Math.max(...keyLinesNodes.map(node => node.e as number)) * 100) / 100\n this.minEdgeFactor = Math.round(Math.min(...keyLinesNodes.map(node => node.e as number)) * 100) / 100\n\n return {\n type: \"LinkChart\",\n items\n } as ChartData\n }\n return {type: \"LinkChart\", items: []}\n }\n\n private getSelectedNode(): Node {\n return this.chartData.items.filter(item => item.type === \"node\" && item.id === this.selectedId.toString())[0] as unknown as Node\n }\n\n private getSelectedNodes(): Node[] {\n if (this.chart) {\n const selectedIds = this.chart.selection()\n return this.chartData.items\n .filter(item => item.type === \"node\")\n .filter(item => selectedIds.find(id => id === item.id)) as Node[]\n }\n return []\n }\n\n private getSelectedNodesIds(): string[] {\n return this.getSelectedNodes().map(node => node.id)\n }\n\n private getUnselectedNodesIds(): string[] {\n const selectedNodesIds = this.getSelectedNodesIds()\n return this.chartData.items\n .filter(item => item.type === \"node\")\n .map(item => item.id)\n .filter(item => !selectedNodesIds.find(selected => selected === item))\n }\n\n private openPopupMenu(id: number | null, x: number, y: number) {\n if (id !== null) {\n this.showAddFilter = this.calculateShowAddFilter()\n\n const selectedTypes = new Set(this.getSelectedNodes().map(node => node.d.props.type as MentionedEntityType))\n this.disableMerge = this.getSelectedNodesIds().length <= 1 || selectedTypes.size > 1 || selectedTypes.has(\"TERM\")\n\n this.selectedId = id\n const menuRef = this.$refs.menuRef as HTMLElement\n const chartElement = this.$refs.chart as HTMLElement\n const boundingClientRect = chartElement.getBoundingClientRect()\n this.menuPosition = {left: x + boundingClientRect.left, top: y + boundingClientRect.top}\n this.$emit(\"openGraphContextMenu\", menuRef)\n this.isContextMenuOpen = true\n }\n }\n\n private xor(a: boolean, b: boolean): boolean {\n return a || b && !(a && b)\n }\n\n private clickedGraph(id: string | null) {\n const nodes = this.chartData.items\n .filter(item => item.type === \"node\" && item.id === id)\n if (nodes.length === 0) {\n setEntityForSummary(this.$store, null)\n setEntityRelationshipForSummary(this.$store, null)\n return\n }\n\n if (!this.isContextMenuOpen) {\n if (!!id && this.canDisplayRelationshipSummary()) {\n this.viewRelationshipSummary()\n } else if (!!id) {\n this.viewSummary(parseInt(id, 10))\n } else {\n setEntityForSummary(this.$store, null)\n setEntityRelationshipForSummary(this.$store, null)\n }\n }\n }\n\n private canDisplayRelationshipSummary() {\n return this.getSelectedNodesIds().length === 2 && this.selectedNodesAreConnected()\n }\n\n private selectedNodesAreConnected(): boolean {\n const firstNode = this.getSelectedNodesIds()[0]\n const secondNode = this.getSelectedNodesIds()[1]\n return this.graphData.edges.some(edge => edge.sourceId === firstNode && edge.targetId === secondNode ||\n edge.sourceId === secondNode && edge.targetId === firstNode\n )\n }\n\n private viewRelationshipSummary() {\n setEntityForSummary(this.$store, null)\n const nodeA = this.getSelectedNodes()[0]\n const nodeB = this.getSelectedNodes()[1]\n const entityA = new MentionedEntity(nodeA.d.props.term, nodeA.d.props.type, [])\n const entityB = new MentionedEntity(nodeB.d.props.term, nodeB.d.props.type, [])\n setEntityRelationshipForSummary(this.$store, [entityA, entityB])\n }\n\n private viewSummary(selectedId: number) {\n setEntityRelationshipForSummary(this.$store, null)\n this.selectedId = selectedId\n const name = this.getSelectedNode().d.props.term\n const type = this.getSelectedNode().d.props.type\n setEntityForSummary(this.$store, new MentionedEntity(name, type, []))\n }\n\n private async refresh() {\n await this.fetchData()\n }\n\n private async klReady(chart: Chart) {\n this.chart = chart\n const options: ChartOptions = {\n minZoom: 0.001,\n handMode: true,\n zoom: {\n adaptiveStyling: true\n },\n linkEnds: {\n avoidLabels: false,\n spacing: \"tight\"\n },\n selectionColour: \"#33b8ff\",\n drag: {\n links: false,\n panAtBoundary: true\n },\n selectedNode: {\n b: \"#0055B3\",\n fb: true,\n fbc: \"transparent\"\n },\n selectedLink: {},\n marqueeLinkSelection: \"off\",\n overview: {\n icon: false,\n shown: false\n },\n navigation: {\n x: 20,\n y: 10\n }\n }\n this.chart.options(options)\n this.chart.bind(\"selectionchange\", (() => {\n this.handleSelectionChange()\n }))\n this.chart.bind(\"delete\", (() => {\n this.removeSelectedEntities()\n return true\n }))\n }\n\n private handleSelectionChange() {\n if (!this.isHiding) {\n this.chart.foreground(item => true)\n\n const selectedNodeIds = this.getSelectedNodesIds()\n this.chart.setProperties(this.originalProperties)\n\n this.originalProperties = []\n\n this.buildContextMenu(selectedNodeIds)\n\n this.selectNeighbouringNodes(1)\n this.chart.selection(selectedNodeIds)\n\n if (selectedNodeIds.length === 0) {\n this.chart.foreground(item => true)\n }\n }\n }\n\n private buildContextMenu(selectedNodeIds: string[]) {\n if (selectedNodeIds.length === 1) {\n const termName = this.getNode(selectedNodeIds[0]).d.props.term.toLowerCase()\n const term = this.getTerms.find(it => it.term.toLowerCase() === termName)\n this.removeEntityMenuTitle = \"Remove Selected Entity\"\n this.disableAddTerm = !!term\n } else {\n this.removeEntityMenuTitle = `Remove ${selectedNodeIds.length} Selected Entities`\n this.disableAddTerm = true\n }\n\n this.mergeEntityMenuTitle = `Merge ${selectedNodeIds.length} Selected Entities`\n\n this.disableFindShortestPath = selectedNodeIds.length !== 2 || !this.hasConnectingPath(selectedNodeIds)\n }\n\n private hasConnectingPath(selectedNodes: string[]): boolean {\n const paths = this.chart!.graph().shortestPaths(selectedNodes[0], selectedNodes[1], {direction: \"any\"})\n const connectedNodeIds = paths.items.filter(itemId => this.chart!.getItem(itemId)!!.type === \"node\")\n return connectedNodeIds.length > 0\n }\n\n private drawConnectingPath() {\n this.chart!.setProperties(this.originalProperties)\n\n const chart = this.chart!\n if (this.getSelectedNodesIds()[0] && this.getSelectedNodesIds()[1]) {\n setShortestPath(this.$store, this.getSelectedNodesIds())\n const paths = chart.graph().shortestPaths(this.getSelectedNodesIds()[0], this.getSelectedNodesIds()[1], {direction: \"any\"})\n\n const connectedNodeIds = paths.items.filter(itemId => chart.getItem(itemId)!!.type === \"node\")\n const unconnectedNodeIds = this.chartData.items\n .filter(item => item.type === \"node\")\n .map(item => item.id)\n .filter(item => !connectedNodeIds.find(connected => connected === item))\n\n const connectedEdgeIds = paths.items.filter(itemId => chart.getItem(itemId)!!.type === \"link\")\n const unconnectedEdgeIds = this.chartData.items\n .filter(item => item.type === \"link\")\n .map(item => item.id)\n .filter(item => !connectedEdgeIds.find(connected => connected === item))\n\n const unconnectedNodes: Node[] = unconnectedNodeIds.map(unconnectedNodeId => chart.getItem(unconnectedNodeId)!!) as unknown as Node[]\n const unconnectedEdges: Link[] = unconnectedEdgeIds.map(unconnectedEdgeId => chart.getItem(unconnectedEdgeId)!!) as unknown as Link[]\n const connectedEdges: Link[] = connectedEdgeIds.map(connectedEdgeId => chart.getItem(connectedEdgeId)!!) as unknown as Link[]\n\n this.originalProperties = []\n this.originalProperties.push(...[\n ...unconnectedNodes.map(node => ({id: node.id, bg: node.bg})),\n ...[...unconnectedEdges, ...connectedEdges].map(edge => ({id: edge.id, bg: edge.bg, w: edge.w, c: edge.c}))\n ])\n chart.setProperties([\n ...[...unconnectedNodes, ...unconnectedEdges].map(item => ({id: item.id, bg: true})),\n ...connectedEdges.map(edge => ({id: edge.id, c: \"#0055B3\", w: 25, bg: false}))\n ])\n chart.selection(connectedNodeIds)\n setSelectedNodes(this.$store, connectedNodeIds)\n }\n }\n\n private async performLayout(layoutName: string) {\n setUnifiedGraphSettings(this.$store, {...this.settings, layout: layoutName})\n const layout = graphLayouts[layoutName]\n await this.chart.layout(layout.name, {packing: layout.packing})\n }\n\n private async selectNeighbouringNodes(hops: number) {\n const result = this.chart.graph().neighbours(this.chart.selection(), {hops, all: false})\n result.nodes.push(...this.chart.selection())\n await this.chart.selection(result.nodes)\n\n result.links!!.forEach((itemId, index) => {\n const item = this.chart.getItem(itemId)\n this.originalProperties.push({id: itemId, c: \"rgba(135, 135, 135, 0.4)\", w: (item!! as Link).w, bg: true})\n })\n\n if (result.nodes.length !== 0 || result.links!.length !== 0) {\n await this.chart.foreground(item => {\n if (item.type === \"node\" && !result.nodes.includes(item.id)) {\n return false\n }\n if (item.type === \"link\" && !result.links!.includes(item.id)) {\n return false\n }\n return true\n }, {type: \"all\"})\n }\n await this.chart.setProperties(result.links!!.map(link => ({id: link, c: \"rgba(0,102,215,0.53)\", bg: false})))\n }\n\n private invertSelection() {\n this.chart.selection(this.getUnselectedNodesIds())\n this.handleSelectionChange()\n }\n\n private getNode(id: string): Node {\n return this.chartData.items.filter(item => item.type === \"node\" && item.id === id)[0] as Node\n }\n\n private googleIt() {\n const entity = this.getSelectedNode().d.props.term!\n window.open(`https://www.google.com/search?q=${entity}`, \"_blank\")\n }\n\n private async createGraphObservation() {\n this.imageDataUrl = await this.chart!.toDataURL(undefined, undefined, {fit: \"exact\", selection: true})\n\n openCreateObservationDialog(this, {\n type: \"Graph\",\n referencedEntity: this.imageDataUrl,\n observationTitle: this.getObservationTitle()\n })\n }\n\n private async addTerm() {\n if (this.disableAddTerm) {\n return\n }\n\n if (this.getTerms.length + 1 > MAX_ALLOWED_TERMS) {\n openMessageDialog({title: \"Add Terms\", message: `Cannot add more than ${MAX_ALLOWED_TERMS} terms`})\n return\n }\n\n this.newTerm = this.getSelectedNode().d.props.term!\n const modifier: TermModifier = \"Regular\"\n this.$emit(\"openCreateTermMenu\", this.$refs.menuRef)\n this.disableAddTerm = true\n }\n\n private copyNodeText() {\n copyToClipboard(this.getSelectedNode().d.props.term!)\n }\n\n private hide(persons: string[]) {\n this.isHiding = true\n this.chart.hide(persons)\n setPersonForRightPaneSummary(this.$store, null)\n this.isHiding = false\n this.calcNumberOfNodes()\n }\n\n private removeSelectedEntities() {\n const selectedNodes = this.getSelectedNodesIds()\n const plural = selectedNodes.length > 1 ? \"ies\" : \"y\"\n // @ts-ignore\n openConfirmationDialog({\n message: `You are about to remove ${selectedNodes.length} entit${plural} from the graph. Are you sure?`,\n title: `Remove Selected Entit${plural}`,\n okText: \"Remove\",\n onOk: () => this.performRemoveEntities(selectedNodes),\n showCancel: true\n })\n }\n\n\n private performRemoveEntities(selectedNodes: string[]) {\n const entities = this.graphData.nodes\n .filter(node => selectedNodes.includes(node.id))\n .reduce((obj, node) => ({ ...obj, [node.props.term as string]: node.props.type as MentionedEntityType}), {})\n\n const investigation = this.investigation!\n investigationEntityService.removeEntities(investigation.id, entities)\n\n this.hide(selectedNodes)\n this.chart.foreground(item => true)\n }\n\n\n private colorGradient(fadeFraction: number, rgbColor1: RGB, rgbColor2: RGB, rgbColor3: RGB) {\n let color1: RGB = rgbColor1\n let color2: RGB = rgbColor2\n let fade: number = fadeFraction\n\n // Do we have 3 colors for the gradient? Need to adjust the params.\n if (rgbColor3) {\n fade = fade * 2\n\n // Find which interval to use and adjust the fade percentage\n if (fade >= 1) {\n fade -= 1\n color1 = rgbColor2\n color2 = rgbColor3\n }\n }\n\n const diffRed: number = color2.red - color1.red\n const diffGreen: number = color2.green - color1.green\n const diffBlue: number = color2.blue - color1.blue\n\n const gradient: RGB = {\n red: Math.floor(color1.red + (diffRed * fade)),\n green: Math.floor(color1.green + (diffGreen * fade)),\n blue: Math.floor(color1.blue + (diffBlue * fade))\n }\n\n return `rgb(${gradient.red},${gradient.green},${gradient.blue})`\n }\n\n private addHalosToNodes() {\n const names = this.highlightFilter.filter.substr(1)\n if (names.length === 0) {\n this.chart.setProperties({id: \".\"}, true)\n } else {\n names.split(\",\").forEach(name => {\n name = name.trim()\n this.chart.each({type: \"node\"}, node => {\n if (node.d.props.term.includes(name)) {\n this.chart.setProperties({\n id: node.id,\n ha0: {\n c: \"rgb(158,161,255)\",\n r: 35,\n w: 10\n }\n })\n }\n })\n })\n }\n }\n\n private calcNumberOfNodes() {\n let count = 0\n if (this.chart) {\n this.chart.each({type: \"node\"}, node => {\n if (!node.hi) {\n count++\n }\n })\n }\n this.numberOfNodes = count\n }\n\n private filter() {\n setUnifiedGraphSettings(this.$store, {...this.settings, filter: this.highlightFilter.filter})\n if (this.highlightFilter.filter.startsWith(\"!\")) {\n this.addHalosToNodes()\n }\n\n this.highlightFilter.current = null\n this.highlightFilter.list = []\n\n if (this.highlightFilter.filter !== \"\") {\n const lowerCaseFilterName = this.highlightFilter.filter.toLowerCase()\n const filteredNodeIds = this.chartData.items\n .filter(item => item.type === \"node\")\n .map(item => item as NodeProperties)\n .filter(node => {\n return this.highlightFilter.filter === \"\" || node.d.props.term.toLowerCase().includes(lowerCaseFilterName)\n })\n .map(node => node.id)\n this.chart.ping(filteredNodeIds, {\n c: \"#ff0000\",\n repeat: 10,\n r: 120,\n w: 100,\n time: 800\n })\n this.chart.zoom(\"fit\", {ids: filteredNodeIds, animate: true})\n this.highlightFilter.current = null\n this.highlightFilter.list = filteredNodeIds\n }\n }\n\n private calcHighlightFilterCounts() {\n if (this.highlightFilter.list.length === 0) {\n return \"\"\n }\n if (this.highlightFilter.current != null) {\n return `${this.highlightFilter.current + 1}/${this.highlightFilter.list.length}`\n }\n\n return `${this.highlightFilter.list.length}`\n }\n\n private highlightPrevious() {\n this.highlightJump(-1)\n }\n\n private highlightNext() {\n this.highlightJump(1)\n }\n\n private async highlightJump(direction: number) {\n if (this.highlightFilter.list === []) {\n return\n }\n if (this.highlightFilter.current === null) {\n this.highlightFilter.current = direction === 1 ? 0 : this.highlightFilter.list.length - 1\n } else {\n this.highlightFilter.current += direction\n if (this.highlightFilter.current === -1 || this.highlightFilter.current === this.highlightFilter.list.length) {\n this.highlightFilter.current = null\n }\n }\n\n const nodeIds = this.highlightFilter.current === null ? this.highlightFilter.list : this.highlightFilter.list[this.highlightFilter.current]\n\n this.chart.ping(nodeIds, {\n c: \"#ff0000\",\n repeat: 3,\n r: 120,\n w: 100,\n time: 800\n })\n await this.chart.zoom(\"fit\", {ids: nodeIds, animate: true, time: 500})\n }\n\n private clearHighlight() {\n this.highlightFilter = {\n filter: \"\",\n current: null,\n list: []\n }\n }\n\n private updateTermGroups() {\n const nodeTypes = this.chartData.items\n .filter(it => it.type === \"node\")\n .map(it => it.d.props.type as MentionedEntityType)\n const visibleNodeTypes = new Set(nodeTypes)\n\n const oldVisibleLayers = this.visibleLayers\n\n this.visibleLayers = []\n if (visibleNodeTypes.has(\"PERSON\")) {\n const peopleLayer = oldVisibleLayers.find(it => it.name === \"People\")\n const visible = peopleLayer ? peopleLayer.visible : true\n this.visibleLayers.push({name: \"People\", type: \"PERSON\", visible, color: \"\", cssColor: \"#FFD540\"})\n }\n\n if (visibleNodeTypes.has(\"ORGANIZATION\")) {\n const organizationLayer = oldVisibleLayers.find(it => it.name === \"Organizations\")\n const visible = organizationLayer ? organizationLayer.visible : true\n this.visibleLayers.push({name: \"Organizations\", type: \"ORGANIZATION\", visible, color: \"\", cssColor: \"#F67DA7\"})\n }\n\n if (visibleNodeTypes.has(\"LOCATION\")) {\n const locationLayer = oldVisibleLayers.find(it => it.name === \"Locations\")\n const visible = locationLayer ? locationLayer.visible : true\n this.visibleLayers.push({name: \"Locations\", type: \"LOCATION\", visible, color: \"\", cssColor: \"#9df67d\"})\n }\n\n if (visibleNodeTypes.has(\"CONCEPT\")) {\n const conceptLayer = oldVisibleLayers.find(it => it.name === \"Concepts\")\n const visible = conceptLayer ? conceptLayer.visible : true\n this.visibleLayers.push({name: \"Concepts\", type: \"CONCEPT\", visible, color: \"\", cssColor: \"#56D0E5\"})\n }\n\n if (visibleNodeTypes.has(\"TERM\")) {\n const termLayer = oldVisibleLayers.find(it => it.name === \"Terms\")\n const visible = termLayer ? termLayer.visible : true\n this.visibleLayers.push({name: \"Terms\", type: \"TERM\", visible, color: \"\", cssColor: getGroupColor(\"default\", true)})\n }\n }\n\n\n private layerCheckboxClass(layer: VisibleLayer) {\n return `${layer.visible ? \"checked\" : \"\"} group-${layer.color}`\n }\n\n\n private toggleLayer(layer: VisibleLayer) {\n layer.visible = !layer.visible\n if (this.visibleLayers.filter(visibleLayer => visibleLayer.visible).length === 0) {\n layer.visible = !layer.visible\n }\n }\n\n\n private getObservationTitle(): string {\n const nodes = this.getSelectedNodes()\n if (nodes.length === 1) {\n return nodes[0].d.props.term\n }\n\n if (nodes.length === 2) {\n return nodes[0].d.props.term + \" & \" + nodes[1].d.props.term\n }\n\n return \"Entity Graph Insight\"\n }\n\n\n private calculateShowAddFilter(): boolean {\n return this.getSelectedNodes()\n .every(node =>\n !this.selectedTops.some(top =>\n top.name === entityTypeName(node) && top.selectedValue === node.d.props.term\n )\n )\n }\n\n\n private async addAsFilter() {\n if (this.showAddFilter) {\n this.getSelectedNodes().forEach(node => {\n const name = entityTypeName(node)\n const value = node.d.props.term\n this.selectedTops.push({name, selectedDisplayValue: value, selectedValue: value})\n })\n\n await setSelectedTops(this.$store, this.selectedTops)\n await fetchGraphData(this.$store)\n }\n }\n\n private get selectedTops() {\n return getSelectedTops(this.$store)\n }\n\n private mergeSelectedEntities() {\n if (!this.disableMerge) {\n const selectedNodeIds = this.getSelectedNodesIds()\n const selectedNodes = this.graphData.nodes.filter(node => selectedNodeIds.includes(node.id))\n const entityNames = selectedNodes.map(node => node.props.term as string)\n const entityType = selectedNodes[0].props.type as MentionedEntityType\n\n openConfirmationDialog({\n message: `You are about to merge ${entityNames.length} entities:
    ${entityNames.map(name => `
  • ${name}
  • `).join(\"\")}
Are you sure?
This operation cannot be undone.`,\n title: \"Merge Entities\",\n okText: \"Merge\",\n onOk: () => this.performMergeEntities(entityNames, entityType),\n showCancel: true\n })\n }\n }\n\n private async performMergeEntities(entityNames: string[], entityType: MentionedEntityType) {\n const investigation = this.investigation!\n await investigationEntityService.mergeEntities(investigation.id, entityType, entityNames)\n\n await fetchGraphData(this.$store)\n }\n}\n\nfunction entityTypeName(node: KeyLines.Node) {\n return `${node.d.props.type === \"TERM\" ? \"predefined\" : \"entity\"}.Mentioned ${capitalize(node.d.props.type)}s`\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedGraph.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnifiedGraph.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UnifiedGraph.vue?vue&type=template&id=35b51b1e&scoped=true&\"\nimport script from \"./UnifiedGraph.vue?vue&type=script&lang=ts&\"\nexport * from \"./UnifiedGraph.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UnifiedGraph.vue?vue&type=style&index=0&id=35b51b1e&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 \"35b51b1e\",\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\"\nimport VueRouter, {NavigationGuard, Route} from \"vue-router\"\nimport InvestigationsPage from \"@/views/investigations/InvestigationsPage.vue\"\nimport NewInvestigationPage from \"@/views/investigations/NewInvestigationPage.vue\"\nimport SignInPage from \"@/views/SignInPage.vue\"\nimport MainPage from \"@/views/MainPage.vue\"\nimport {fetchCurrentUser, isSignedIn} from \"@/store/auth-module\"\nimport {disambiguationSavedState, restoreInvestigationState, saveInvestigationState, setIsInOverview, setIsInReviewProfile} from \"@/store/investigation/investigation-module\"\nimport RegisterAccountPage from \"@/views/RegisterAccountPage.vue\"\nimport NotFoundPage from \"@/views/NotFoundPage.vue\"\nimport store from \"@/store\"\nimport InvestigationPage from \"@/views/investigation/InvestigationPage.vue\"\nimport TopicInvestigation from \"@/views/investigation/TopicInvestigation.vue\"\nimport PersonInvestigation from \"@/views/investigation/PersonInvestigation.vue\"\nimport ResetPage from \"@/views/ResetPage.vue\"\nimport SignUpPage from \"@/views/SignUpPage.vue\"\nimport PersonProfile from \"@/views/investigation/PersonProfile.vue\"\nimport DocumentsPane from \"@/views/investigation/panes/DocumentsPane.vue\"\nimport AuthorGraph from \"@/views/investigation/graphs/AuthorGraph.vue\"\nimport OverviewPane from \"@/views/investigation/panes/OverviewPane.vue\"\nimport ReportEditor from \"@/views/investigation/panes/ReportEditor.vue\"\nimport ReportNavigationPane from \"@/views/investigation/panes/ReportNavigationPane.vue\"\nimport TermsPane from \"@/views/investigation/panes/TermsPane.vue\"\nimport AuthorDisambiguationPane from \"@/views/investigation/panes/AuthorDisambiguationPane.vue\"\nimport EmptyPane from \"@/views/investigation/panes/EmptyPane.vue\"\nimport ClusterReportPage from \"@/views/admin/ClusterReportPage.vue\"\nimport AdminPage from \"@/views/admin/AdminPage.vue\"\nimport TimelineGraph from \"@/views/investigation/graphs/TimelineGraph.vue\"\nimport TimelineTermsPane from \"@/views/investigation/panes/TimelineTermsPane.vue\"\nimport AdminMergePage from \"@/views/admin/AdminMergePage.vue\"\nimport UnifiedGraph from \"@/views/investigation/graphs/UnifiedGraph.vue\"\nimport {fetchEnvironment} from \"@/store/environment-module\"\nimport {RawLocation} from \"vue-router/types/router\"\n\n\nVue.use(VueRouter)\n\nconst environmentGuard: NavigationGuard = async (to, from, next) => {\n const version = store.getters[\"environment/getVersion\"]\n if (!version) {\n await fetchEnvironment(store)\n }\n next()\n}\n\nconst router = new VueRouter({\n mode: \"history\",\n base: process.env.BASE_URL,\n routes: [\n {\n name: \"sign-in\",\n path: \"/sign-in\",\n component: SignInPage,\n beforeEnter: environmentGuard\n },\n {\n name: \"sign-up\",\n path: \"/sign-up\",\n component: SignUpPage,\n beforeEnter: environmentGuard\n },\n {\n name: \"reset\",\n path: \"/reset\",\n component: ResetPage,\n beforeEnter: environmentGuard\n },\n {\n name: \"register\",\n path: \"/register\",\n component: RegisterAccountPage,\n beforeEnter: environmentGuard\n },\n {\n name: \"root\",\n path: \"/\",\n redirect: { name: \"investigations\" },\n component: MainPage,\n meta: {\n requiresAuth: true\n },\n beforeEnter: environmentGuard,\n children: [\n {\n name: \"admin\",\n path: \"admin\",\n component: AdminPage,\n redirect: { name: \"admin-merge\" },\n beforeEnter: async (to, from, next) => {\n const isOmnipotentUser = store.getters[\"auth/isOmnipotentUser\"]\n if (isOmnipotentUser) {\n next()\n }\n },\n children: [\n {\n name: \"clusterReport\",\n path: \"cluster-report/:investigationId\",\n component: ClusterReportPage\n },\n {\n name: \"admin-merge\",\n path: \"merge\",\n component: AdminMergePage\n }\n ]\n },\n {\n name: \"investigations\",\n path: \"/investigations\",\n component: InvestigationsPage\n },\n {\n name: \"createInvestigation\",\n path: \"/investigations/create\",\n component: NewInvestigationPage\n },\n {\n name: \"investigation\",\n path: \"/investigations/:id\",\n component: InvestigationPage,\n redirect: \"/investigations/topic/:id/\",\n children: [\n {\n name: \"topicInvestigation\",\n path: \"/investigations/topic/:id\",\n component: TopicInvestigation,\n redirect: \"/investigations/topic/:id/documents\",\n beforeEnter: async (to, from, next) => {\n next()\n },\n children: [\n {\n name: \"topicDocuments\",\n path: \"documents\",\n meta: { allowLeftPaneExpand: false },\n components: {\n leftPane: TermsPane,\n middlePane: DocumentsPane\n }\n },\n {\n name: \"topicAuthorGraph\",\n path: \"author-graph\",\n components: {\n leftPane: TermsPane,\n middlePane: AuthorGraph\n }\n },\n {\n name: \"topicUnifiedGraph\",\n path: \"entity-graph\",\n components: {\n leftPane: TermsPane,\n middlePane: UnifiedGraph\n }\n },\n {\n name: \"timeline\",\n path: \"timeline\",\n meta: { allowLeftPaneExpand: false },\n components: {\n leftPane: TimelineTermsPane,\n middlePane: TimelineGraph\n }\n },\n {\n name: \"topicReportEditor\",\n path: \"report-editor\",\n meta: { allowLeftPaneExpand: false },\n components: {\n leftPane: ReportNavigationPane,\n middlePane: ReportEditor\n }\n }\n ]\n },\n {\n name: \"personInvestigation\",\n path: \"/investigations/person/:id\",\n component: PersonInvestigation,\n redirect: \"/investigations/person/:id/:tab\",\n beforeEnter: async (to, from, next) => {\n next()\n },\n children: [\n {\n name: \"personDocuments\",\n path: \"documents\",\n meta: { allowLeftPaneExpand: false, layout: \"middle-pane-right-pane\" },\n components: {\n leftPane: EmptyPane,\n middlePane: DocumentsPane\n }\n },\n {\n name: \"personAuthorGraph\",\n path: \"author-graph\",\n meta: { layout: \"middle-pane-right-pane\" },\n components: {\n middlePane: AuthorGraph\n },\n children: [\n {\n name: \"personAuthorGraphSummary\",\n path: \"summary/:name/:personId\",\n components: {\n middlePane: AuthorGraph\n }\n }\n ]\n },\n {\n name: \"personUnifiedGraph\",\n path: \"entity-graph\",\n meta: { layout: \"middle-pane-right-pane\" },\n components: {\n middlePane: UnifiedGraph\n }\n },\n {\n name: \"personReportEditor\",\n path: \"report-editor\",\n meta: { allowLeftPaneExpand: false },\n components: {\n leftPane: ReportNavigationPane,\n middlePane: ReportEditor\n }\n },\n {\n name: \"personDisambiguate\",\n path: \"disambiguate\",\n meta: { allowLeftPaneExpand: false },\n components: {\n leftPane: AuthorDisambiguationPane,\n middlePane: DocumentsPane\n }\n }\n ]\n },\n {\n name: \"personInvestigationPersonProfile\",\n path: \"/investigations/person/:id/profile/:personId\",\n component: PersonProfile,\n beforeEnter: async (to, from, next) => {\n await next()\n },\n children: [\n {\n name: \"personProfileOverview\",\n path: \"overview\",\n meta: { layout: \"middle-pane\"},\n components: {\n middlePane: OverviewPane\n }\n }, {\n name: \"personProfileDocuments\",\n path: \"documents\",\n meta: { allowLeftPaneExpand: false },\n components: {\n middlePane: DocumentsPane\n }\n },\n {\n name: \"personProfileAuthorGraph\",\n path: \"author-graph\",\n meta: { layout: \"middle-pane-right-pane\" },\n components: {\n middlePane: AuthorGraph\n }\n },\n {\n name: \"personProfileTermGraph\",\n path: \"entity-graph\",\n meta: { layout: \"middle-pane-right-pane\" },\n components: {\n middlePane: UnifiedGraph\n }\n }\n ]\n },\n {\n name: \"topicInvestigationPersonProfile\",\n path: \"/investigations/topic/:id/profile/:personId\",\n component: PersonProfile,\n beforeEnter: async (to, from, next) => {\n await next()\n },\n children: [\n {\n name: \"topicProfileOverview\",\n path: \"overview\",\n meta: { layout: \"middle-pane\"},\n components: {\n middlePane: OverviewPane\n }\n },\n {\n name: \"topicProfileDocuments\",\n path: \"documents\",\n meta: { allowLeftPaneExpand: false },\n components: {\n middlePane: DocumentsPane\n }\n },\n {\n name: \"topicProfileAuthorGraph\",\n path: \"author-graph\",\n meta: { layout: \"middle-pane-right-pane\" },\n components: {\n middlePane: AuthorGraph\n }\n },\n {\n name: \"topicProfileTermGraph\",\n path: \"entity-graph\",\n meta: { layout: \"middle-pane-right-pane\" },\n components: {\n middlePane: UnifiedGraph\n }\n }\n ]\n },\n {\n path: \"/investigations/person/:id/review_profile/:personId\",\n component: PersonProfile,\n children: [\n {\n name: \"personReviewProfileDocuments\",\n path: \"\",\n meta: { allowLeftPaneExpand: false },\n components: {\n middlePane: DocumentsPane\n }\n }\n ]\n }\n ]\n }\n ]\n },\n {\n path: \"*\",\n component: NotFoundPage\n }\n ]\n})\n\nrouter.beforeEach((async (to: Route, from: Route, next: (to?: RawLocation | false | ((vm: Vue) => any) | void) => void) => {\n setIsInOverview(store, to.name === \"personProfileOverview\")\n if (to.name === \"personProfileOverview\" && from.name !== \"personProfileOverview\") {\n saveInvestigationState(store)\n } else if (to.name !== \"personProfileOverview\" && from.name === \"personProfileOverview\" && disambiguationSavedState) {\n restoreInvestigationState(store)\n } else if (to.name === \"personReviewProfileDocuments\") {\n setIsInReviewProfile(store, true)\n }\n if (to.matched.some(record => record.meta.requiresAuth)) {\n await fetchCurrentUser(store)\n\n if (isSignedIn(store)) {\n next()\n return\n }\n\n next({ name: \"sign-in\", query: { redirect: to.fullPath} })\n } else {\n next()\n }\n}))\n\nexport default router\n","import \"@progress/kendo-ui\"\nimport \"@progress/kendo-theme-default/dist/all.css\"\nimport {EditorInstaller} from \"@progress/kendo-editor-vue-wrapper\"\nimport Vue from \"vue\"\n\nexport function KendoEditorPlugin(VueApp: typeof Vue, options?: any): void {\n VueApp.use(EditorInstaller)\n}\n","import Vue from \"vue\"\nimport {\n CommitAccessorNoPayload,\n CommitAccessorWithPayload,\n DispatchAccessorNoPayload,\n DispatchAccessorWithPayload,\n GetAccessor\n} from \"vuex-typescript\"\nimport { Store } from \"vuex\"\n\n\nexport function VuexTypescriptPlugin(vue: typeof Vue) {\n vue.prototype.$wrap = function(handler: (store: Store, payload?: any) => any) {\n return (payload?: any) => handler(this.$store, payload)\n }\n}\n\n\ndeclare module \"vue/types/vue\" {\n interface Vue {\n $wrap(getter: GetAccessor): () => TResult\n $wrap(commit: CommitAccessorNoPayload): () => void\n $wrap(commit: CommitAccessorWithPayload): (payload: TPayload) => void\n $wrap(action: DispatchAccessorNoPayload): () => Promise\n $wrap(action: DispatchAccessorWithPayload): (payload: TPayload) => Promise\n }\n}\n","import Vue from \"vue\"\nimport App from \"./App.vue\"\nimport router from \"./router\"\nimport store from \"./store\"\nimport {KendoEditorPlugin} from \"./plugins/kendo-editor\"\nimport {VuexTypescriptPlugin} from \"@/plugins/vuex-typescript-plugin\"\nimport Vuetify from \"vuetify\"\n// @ts-ignore\nimport VueParticles from \"vue-particles\"\nimport VueDraggable from \"vue-draggable\"\nimport \"keylines\"\n// import \"cropper/index.js\"\nimport \"./externals/vue-keylines\"\n// @ts-ignore\nimport VueFusionCharts from \"vue-fusioncharts\"\nimport FusionCharts from \"fusioncharts\"\nimport FusionTheme from \"fusioncharts/themes/fusioncharts.theme.fusion\"\nimport TimeSeries from \"fusioncharts/fusioncharts.timeseries\"\n\nVue.use(KendoEditorPlugin)\nVue.use(VuexTypescriptPlugin)\nVue.use(Vuetify)\nVue.use(VueParticles)\nVue.use(VueDraggable)\nVue.use(VueFusionCharts, FusionCharts, FusionTheme, TimeSeries)\n\nVue.config.productionTip = false\n\nnew Vue({\n router,\n store,\n render: h => h(App)\n}).$mount(\"#app\")\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenameTermDialog.vue?vue&type=style&index=0&id=276fd6b9&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewUniversityInvestigationDetails.vue?vue&type=style&index=0&id=4cf34264&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResearcherHarvestDialog.vue?vue&type=style&index=0&id=6cc65a8e&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EntitySummaryPane.vue?vue&type=style&index=0&id=eaef6c86&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/logo.659ca2e5.svg\";","module.exports = KeyLines;","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewInvestigationPage.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentItemHeader.vue?vue&type=style&index=0&id=a7599b6c&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminMergePage.vue?vue&type=style&index=0&id=bfc001bc&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ErrorMessageDialog.vue?vue&type=style&index=0&id=2b969ada&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertsDialog.vue?vue&type=style&index=0&id=33f0da13&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RenameObservationSectionDialog.vue?vue&type=style&index=0&id=72938d5e&scoped=true&lang=scss&\""],"sourceRoot":""}