{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/massive.png","webpack:///./src/assets/submission-portal-hero.png","webpack:///./src/assets/GOLD.png","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/components/FilterTree.vue?1d43","webpack:///./src/components/Presentation/UpSet.vue?b2db","webpack:///./src/components/Presentation/DateHistogram.vue?f5a6","webpack:///./src/views/SubmissionPortal/HarmonizerView.vue?07e7","webpack:///./src/assets/ESS.png","webpack:///./src/components/Presentation/AppHeader.vue?aeb5","webpack:///./src/components/FilterSankeyTree.vue?77ae","webpack:///./src/components/TeamInfo.vue?ce82","webpack:///./src/views/SubmissionPortal/Components/MetadataSuggester.vue?03fb","webpack:///./src/components/Presentation/TimeHistogram.vue?ad2c","webpack:///./src/views/SubmissionPortal/Components/IconBar.vue?522b","webpack:///./src/components/Presentation/AuthButton.vue?f5f1","webpack:///./src/components/Presentation/AuthButton.vue?b7ed","webpack:///./src/views/Search/SearchLayout.vue?2ef5","webpack:///./src/components/Presentation/SearchResults.vue?8c3a","webpack:///./src/components/Presentation/SearchResults.vue","webpack:///./src/components/Presentation/SearchResults.vue?0ccb","webpack:///./src/components/Presentation/SearchResults.vue?26d0","webpack:///./src/colors.js","webpack:///./src/store/localStorage.ts","webpack:///./src/data/api.ts","webpack:///./src/encoding.ts","webpack:///./src/util.js","webpack:///./src/data/utils.ts","webpack:///./src/store/index.ts","webpack:///./src/use/useFacetSummaryData.ts","webpack:///./src/use/useRequest.ts","webpack:///./src/use/usePaginatedResults.ts","webpack:///./src/use/useClockGate.ts","webpack:///./src/components/SampleListExpansion.vue?df23","webpack:///./src/components/DataObjectTable.vue?4989","webpack:///./src/components/DownloadDialog.vue?ad9d","webpack:///./src/components/DownloadDialog.vue","webpack:///./src/components/DownloadDialog.vue?bc66","webpack:///./src/components/DownloadDialog.vue?9a84","webpack:///./src/components/DataObjectTable.vue","webpack:///./src/components/DataObjectTable.vue?53cc","webpack:///./src/components/DataObjectTable.vue?f27a","webpack:///./src/components/SampleListExpansion.vue","webpack:///./src/components/SampleListExpansion.vue?7666","webpack:///./src/components/SampleListExpansion.vue?a443","webpack:///./src/components/AppBanner.vue?2c8a","webpack:///./src/components/AppBanner.vue","webpack:///./src/components/AppBanner.vue?6789","webpack:///./src/components/AppBanner.vue?1395","webpack:///./src/components/BulkDownload.vue?b090","webpack:///./src/use/useBulkDownload.ts","webpack:///./src/components/BulkDownload.vue","webpack:///./src/components/BulkDownload.vue?5e56","webpack:///./src/components/BulkDownload.vue?41e1","webpack:///./src/views/Search/EnvironmentVisGroup.vue?21c7","webpack:///./src/components/EcosystemSankey.vue?b7f3","webpack:///src/components/EcosystemSankey.vue","webpack:///./src/components/EcosystemSankey.vue?c795","webpack:///./src/components/EcosystemSankey.vue","webpack:///./src/views/Search/EnvironmentVisGroup.vue","webpack:///./src/views/Search/EnvironmentVisGroup.vue?50fe","webpack:///./src/views/Search/EnvironmentVisGroup.vue?43bf","webpack:///./src/views/Search/BiosampleVisGroup.vue?ff2b","webpack:///./src/components/Presentation/FacetBarChart.vue?65c3","webpack:///./src/components/Presentation/FacetBarChart.vue","webpack:///./src/components/Presentation/FacetBarChart.vue?d6b7","webpack:///./src/components/Presentation/FacetBarChart.vue?2629","webpack:///./src/components/Presentation/DateHistogram.vue?cb54","webpack:///./src/components/Presentation/ChartContainer.vue?adec","webpack:///./src/components/Presentation/ChartContainer.vue","webpack:///./src/components/Presentation/ChartContainer.vue?2421","webpack:///./src/components/Presentation/ChartContainer.vue?5a76","webpack:///./src/components/Presentation/TimeHistogram.vue?6871","webpack:///src/components/Presentation/TimeHistogram.vue","webpack:///./src/components/Presentation/TimeHistogram.vue?0e1b","webpack:///./src/components/Presentation/TimeHistogram.vue","webpack:///src/components/Presentation/DateHistogram.vue","webpack:///./src/components/Presentation/DateHistogram.vue?1be8","webpack:///./src/components/Presentation/DateHistogram.vue","webpack:///./src/components/Presentation/UpSet.vue?7b5e","webpack:///src/components/Presentation/UpSet.vue","webpack:///./src/components/Presentation/UpSet.vue?210b","webpack:///./src/components/Presentation/UpSet.vue","webpack:///./src/components/Wrappers/FacetSummaryWrapper.vue?7cfd","webpack:///./src/mixins/SegmentConditions.js","webpack:///./src/mixins/FacetSummary.js","webpack:///src/components/Wrappers/FacetSummaryWrapper.vue","webpack:///./src/components/Wrappers/FacetSummaryWrapper.vue?63ba","webpack:///./src/components/Wrappers/FacetSummaryWrapper.vue","webpack:///./src/components/Wrappers/BinnedSummaryWrapper.vue?444d","webpack:///./src/mixins/BinnedFacetSummary.js","webpack:///src/components/Wrappers/BinnedSummaryWrapper.vue","webpack:///./src/components/Wrappers/BinnedSummaryWrapper.vue?55d7","webpack:///./src/components/Wrappers/BinnedSummaryWrapper.vue","webpack:///./src/components/TooltipCard.vue?9107","webpack:///src/components/TooltipCard.vue","webpack:///./src/components/TooltipCard.vue?4b0e","webpack:///./src/components/TooltipCard.vue","webpack:///./src/components/ClusterMap.vue?2f60","webpack:///./src/components/ClusterMap.vue","webpack:///./src/components/ClusterMap.vue?3682","webpack:///./src/components/ClusterMap.vue?8579","webpack:///./src/views/Search/BiosampleVisGroup.vue","webpack:///./src/views/Search/BiosampleVisGroup.vue?e11f","webpack:///./src/views/Search/BiosampleVisGroup.vue?8a41","webpack:///./src/views/Search/SearchSidebar.vue?cc96","webpack:///./src/components/Presentation/ConditionChips.vue?9caa","webpack:///src/components/Presentation/ConditionChips.vue","webpack:///./src/components/Presentation/ConditionChips.vue?cb69","webpack:///./src/components/Presentation/ConditionChips.vue","webpack:///./src/components/MenuContent.vue?8c96","webpack:///./src/components/Presentation/FilterDate.vue?9216","webpack:///./src/components/Presentation/DateInput.vue?8901","webpack:///src/components/Presentation/DateInput.vue","webpack:///./src/components/Presentation/DateInput.vue?e3ca","webpack:///./src/components/Presentation/DateInput.vue","webpack:///./src/components/Presentation/FilterDate.vue","webpack:///./src/components/Presentation/FilterDate.vue?ae9d","webpack:///./src/components/Presentation/FilterDate.vue?525c","webpack:///./src/components/Presentation/FilterFloat.vue?a6de","webpack:///./src/components/Presentation/FilterFloat.vue","webpack:///./src/components/Presentation/FilterFloat.vue?79ee","webpack:///./src/components/Presentation/FilterFloat.vue?2410","webpack:///./src/components/Presentation/FilterList.vue?7108","webpack:///src/components/Presentation/FilterList.vue","webpack:///./src/components/Presentation/FilterList.vue?837d","webpack:///./src/components/Presentation/FilterList.vue","webpack:///./src/components/FilterSankeyTree.vue?fb0c","webpack:///src/components/FilterSankeyTree.vue","webpack:///./src/components/FilterSankeyTree.vue?adb6","webpack:///./src/components/FilterSankeyTree.vue","webpack:///./src/components/FilterGene.vue?d760","webpack:///./src/components/FilterGene.vue","webpack:///./src/components/FilterGene.vue?4426","webpack:///./src/components/FilterGene.vue?e8d3","webpack:///./src/components/FilterTree.vue?8a31","webpack:///./src/components/FilterTree.vue","webpack:///./src/components/FilterTree.vue?2bf2","webpack:///./src/components/FilterTree.vue?0248","webpack:///./src/components/MenuContent.vue","webpack:///./src/components/MenuContent.vue?72e9","webpack:///./src/components/MenuContent.vue?7f7a","webpack:///./src/components/FacetedSearch.vue?99ca","webpack:///./src/components/FacetedSearch.vue","webpack:///./src/components/FacetedSearch.vue?55c3","webpack:///./src/components/FacetedSearch.vue?c768","webpack:///./src/views/Search/SearchSidebar.vue","webpack:///./src/views/Search/SearchSidebar.vue?b5c0","webpack:///./src/views/Search/SearchSidebar.vue?7735","webpack:///./src/views/Search/SearchHelpMenu.vue?fae6","webpack:///./src/views/Search/SearchHelpMenu.vue","webpack:///./src/views/Search/SearchHelpMenu.vue?2b2c","webpack:///./src/views/Search/SearchHelpMenu.vue?5064","webpack:///./src/views/Search/SearchLayout.vue","webpack:///./src/views/Search/SearchLayout.vue?33d0","webpack:///./src/views/Search/SearchLayout.vue?5255","webpack:///./src/views/IndividualResults/SamplePage.vue?e32a","webpack:///./src/components/Presentation/AttributeList.vue?bdb2","webpack:///./src/components/Presentation/AttributeItem.vue?e3e9","webpack:///./src/components/Presentation/AttributeItem.vue","webpack:///./src/components/Presentation/AttributeItem.vue?03ad","webpack:///./src/components/Presentation/AttributeItem.vue?8020","webpack:///./src/components/Presentation/AttributeList.vue","webpack:///./src/components/Presentation/AttributeList.vue?fb2d","webpack:///./src/components/Presentation/AttributeList.vue?5856","webpack:///./src/views/IndividualResults/IndividualTitle.vue?50dd","webpack:///./src/views/IndividualResults/IndividualTitle.vue","webpack:///./src/views/IndividualResults/IndividualTitle.vue?7980","webpack:///./src/views/IndividualResults/IndividualTitle.vue?18d2","webpack:///./src/views/IndividualResults/SamplePage.vue","webpack:///./src/views/IndividualResults/SamplePage.vue?8d16","webpack:///./src/views/IndividualResults/SamplePage.vue?a4da","webpack:///./src/views/IndividualResults/StudyPage.vue?f616","webpack:///./src/use/useRouter.ts","webpack:///./src/components/TeamInfo.vue?c637","webpack:///./src/components/Presentation/OrcidId.vue?439a","webpack:///./src/components/Presentation/OrcidId.vue","webpack:///./src/components/Presentation/OrcidId.vue?0dc5","webpack:///./src/components/Presentation/OrcidId.vue?b380","webpack:///./src/components/TeamInfo.vue","webpack:///./src/components/TeamInfo.vue?a3a5","webpack:///./src/components/TeamInfo.vue?3565","webpack:///./src/views/IndividualResults/StudyPage.vue","webpack:///./src/views/IndividualResults/StudyPage.vue?eba5","webpack:///./src/views/IndividualResults/StudyPage.vue?abb4","webpack:///./src/views/User/UserPage.vue?e413","webpack:///./src/views/User/UserPage.vue","webpack:///./src/views/User/UserPage.vue?415b","webpack:///./src/views/User/UserPage.vue?d735","webpack:///./src/views/User/UserDetailPage.vue?af6f","webpack:///./src/views/User/UserDetailPage.vue","webpack:///./src/views/User/UserDetailPage.vue?dfe6","webpack:///./src/views/User/UserDetailPage.vue?d90f","webpack:///./src/views/Login/LoginPage.vue?cdd6","webpack:///./src/views/Login/LoginPage.vue","webpack:///./src/views/Login/LoginPage.vue?69a2","webpack:///./src/views/Login/LoginPage.vue?3a31","webpack:///./src/views/SubmissionPortal/Components/MultiOmicsDataForm.vue?f4f2","webpack:///./src/views/SubmissionPortal/types.ts","webpack:///./src/definitions.ts","webpack:///./src/views/SubmissionPortal/store/api.ts","webpack:///./src/views/SubmissionPortal/harmonizerApi.ts","webpack:///./src/views/SubmissionPortal/store/index.ts","webpack:///./src/views/SubmissionPortal/Components/SubmissionDocsLink.vue?5eb8","webpack:///./src/views/SubmissionPortal/Components/SubmissionDocsLink.vue","webpack:///./src/views/SubmissionPortal/Components/SubmissionDocsLink.vue?7a2f","webpack:///./src/views/SubmissionPortal/Components/SubmissionDocsLink.vue?db87","webpack:///./src/views/SubmissionPortal/Components/SubmissionPermissionBanner.vue?503e","webpack:///./src/views/SubmissionPortal/Components/SubmissionPermissionBanner.vue","webpack:///./src/views/SubmissionPortal/Components/MultiOmicsDataForm.vue","webpack:///./src/views/SubmissionPortal/Components/MultiOmicsDataForm.vue?69db","webpack:///./src/views/SubmissionPortal/Components/MultiOmicsDataForm.vue?d572","webpack:///./src/views/SubmissionPortal/StepperView.vue?a5f8","webpack:///./src/views/SubmissionPortal/Components/SubmissionStepper.vue?9584","webpack:///./src/views/SubmissionPortal/Components/SubmissionStepper.vue","webpack:///./src/views/SubmissionPortal/Components/SubmissionStepper.vue?1104","webpack:///./src/views/SubmissionPortal/Components/SubmissionStepper.vue?abe9","webpack:///./src/views/SubmissionPortal/StepperView.vue","webpack:///./src/views/SubmissionPortal/StepperView.vue?4c91","webpack:///./src/views/SubmissionPortal/StepperView.vue?19bc","webpack:///./src/views/SubmissionPortal/Components/SubmissionContextForm.vue?9c94","webpack:///./src/views/SubmissionPortal/Components/SubmissionContextShippingForm.vue?8a55","webpack:///./src/views/SubmissionPortal/Components/SubmissionContextShippingSummary.vue?a966","webpack:///./src/views/SubmissionPortal/Components/SubmissionContextShippingSummary.vue","webpack:///./src/views/SubmissionPortal/Components/SubmissionContextShippingSummary.vue?a7ed","webpack:///./src/views/SubmissionPortal/Components/SubmissionContextShippingSummary.vue?cccc","webpack:///./src/views/SubmissionPortal/Components/SubmissionContextShippingForm.vue","webpack:///./src/views/SubmissionPortal/Components/SubmissionContextShippingForm.vue?87b8","webpack:///./src/views/SubmissionPortal/Components/SubmissionContextShippingForm.vue?1530","webpack:///./src/views/SubmissionPortal/Components/SubmissionContextForm.vue","webpack:///./src/views/SubmissionPortal/Components/SubmissionContextForm.vue?90ae","webpack:///./src/views/SubmissionPortal/Components/SubmissionContextForm.vue?b62c","webpack:///./src/views/SubmissionPortal/Components/StudyForm.vue?a567","webpack:///./src/views/SubmissionPortal/Components/StudyForm.vue","webpack:///./src/views/SubmissionPortal/Components/StudyForm.vue?2287","webpack:///./src/views/SubmissionPortal/Components/StudyForm.vue?397f","webpack:///./src/views/SubmissionPortal/SubmissionView.vue?fbe3","webpack:///./src/views/SubmissionPortal/Components/TitleBanner.vue?919b","webpack:///./src/views/SubmissionPortal/Components/TitleBanner.vue","webpack:///./src/views/SubmissionPortal/Components/TitleBanner.vue?aa32","webpack:///./src/views/SubmissionPortal/Components/TitleBanner.vue?5a79","webpack:///./src/views/SubmissionPortal/Components/IntroBlurb.vue?2c0d","webpack:///./src/views/SubmissionPortal/Components/IntroBlurb.vue","webpack:///./src/views/SubmissionPortal/Components/IntroBlurb.vue?3d28","webpack:///./src/views/SubmissionPortal/Components/IntroBlurb.vue?5e1d","webpack:///./src/views/SubmissionPortal/Components/IconBar.vue?0140","webpack:///./src/views/SubmissionPortal/Components/IconBar.vue","webpack:///./src/views/SubmissionPortal/Components/IconBar.vue?51a5","webpack:///./src/views/SubmissionPortal/Components/IconBar.vue?e20d","webpack:///./src/views/SubmissionPortal/Components/LoginPrompt.vue?582e","webpack:///./src/views/SubmissionPortal/Components/LoginPrompt.vue","webpack:///./src/views/SubmissionPortal/Components/LoginPrompt.vue?483e","webpack:///./src/views/SubmissionPortal/Components/LoginPrompt.vue?74f7","webpack:///./src/views/SubmissionPortal/SubmissionView.vue","webpack:///./src/views/SubmissionPortal/SubmissionView.vue?7ffc","webpack:///./src/views/SubmissionPortal/SubmissionView.vue?1cf4","webpack:///./src/views/SubmissionPortal/Components/TemplateChooser.vue?f98c","webpack:///./src/views/SubmissionPortal/Components/TemplateChooser.vue","webpack:///./src/views/SubmissionPortal/Components/TemplateChooser.vue?f1dc","webpack:///./src/views/SubmissionPortal/Components/TemplateChooser.vue?8825","webpack:///./src/views/SubmissionPortal/HarmonizerView.vue?2976","webpack:///./src/views/SubmissionPortal/Components/HarmonizerSidebar.vue?fd3e","webpack:///./src/views/SubmissionPortal/Components/FindReplace.vue?98f8","webpack:///./src/views/SubmissionPortal/Components/FindReplace.vue","webpack:///./src/views/SubmissionPortal/Components/FindReplace.vue?9452","webpack:///./src/views/SubmissionPortal/Components/FindReplace.vue?f641","webpack:///./src/views/SubmissionPortal/Components/ContactCard.vue?56ff","webpack:///./src/views/SubmissionPortal/Components/ContactCard.vue","webpack:///./src/views/SubmissionPortal/Components/ContactCard.vue?ff2f","webpack:///./src/views/SubmissionPortal/Components/ContactCard.vue?69e3","webpack:///./src/views/SubmissionPortal/Components/ImportExportButtons.vue?e8fe","webpack:///./src/views/SubmissionPortal/Components/ImportExportButtons.vue","webpack:///./src/views/SubmissionPortal/Components/ImportExportButtons.vue?9f4f","webpack:///./src/views/SubmissionPortal/Components/ImportExportButtons.vue?bb45","webpack:///./src/views/SubmissionPortal/Components/ColumnHelp.vue?e743","webpack:///./src/views/SubmissionPortal/Components/ColumnHelp.vue","webpack:///./src/views/SubmissionPortal/Components/ColumnHelp.vue?4582","webpack:///./src/views/SubmissionPortal/Components/ColumnHelp.vue?7a7d","webpack:///./src/views/SubmissionPortal/Components/MetadataSuggester.vue?ae2e","webpack:///./src/views/SubmissionPortal/Components/MetadataSuggester.vue","webpack:///./src/views/SubmissionPortal/Components/MetadataSuggester.vue?0206","webpack:///./src/views/SubmissionPortal/Components/MetadataSuggester.vue?b131","webpack:///./src/views/SubmissionPortal/Components/HarmonizerSidebar.vue","webpack:///./src/views/SubmissionPortal/Components/HarmonizerSidebar.vue?acdc","webpack:///./src/views/SubmissionPortal/Components/HarmonizerSidebar.vue?9750","webpack:///./src/components/Presentation/AppHeader.vue?f3b0","webpack:///./src/components/Presentation/AuthButton.vue?3bf1","webpack:///./src/components/Presentation/AuthButton.vue","webpack:///./src/components/Presentation/AuthButton.vue?d913","webpack:///./src/components/Presentation/AuthButton.vue?e3ec","webpack:///./src/menus.ts","webpack:///./src/components/Presentation/AppHeader.vue","webpack:///./src/components/Presentation/AppHeader.vue?e3df","webpack:///./src/components/Presentation/AppHeader.vue?12a8","webpack:///./src/views/SubmissionPortal/HarmonizerView.vue","webpack:///./src/views/SubmissionPortal/HarmonizerView.vue?4f68","webpack:///./src/views/SubmissionPortal/HarmonizerView.vue?a773","webpack:///./src/views/SubmissionPortal/Components/ValidateSubmit.vue?876f","webpack:///./src/views/SubmissionPortal/Components/ValidateSubmit.vue","webpack:///./src/views/SubmissionPortal/Components/ValidateSubmit.vue?84e1","webpack:///./src/views/SubmissionPortal/Components/ValidateSubmit.vue?683d","webpack:///./src/views/SubmissionPortal/Components/SubmissionList.vue?971b","webpack:///./src/views/SubmissionPortal/Components/SubmissionList.vue","webpack:///./src/views/SubmissionPortal/Components/SubmissionList.vue?fbf0","webpack:///./src/views/SubmissionPortal/Components/SubmissionList.vue?c050","webpack:///./src/plugins/utils.ts","webpack:///./src/plugins/router.ts","webpack:///./src/plugins/vuetify.js","webpack:///./src/App.vue?e427","webpack:///./src/App.vue","webpack:///./src/App.vue?198c","webpack:///./src/App.vue?1315","webpack:///./src/main.ts","webpack:///./src/views/SubmissionPortal/Components/SubmissionContextShippingSummary.vue?2cce","webpack:///./src/components/Presentation/ConditionChips.vue?a212","webpack:///./src/views/SubmissionPortal/Components/HarmonizerSidebar.vue?5121","webpack:///./src/views/Search/BiosampleVisGroup.vue?e598"],"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","jsonpScriptSrc","p","exports","module","l","threw","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","map","webpackContext","req","id","webpackContextResolve","code","keys","_vm","this","_h","$createElement","_c","_self","attrs","biosample","results","count","loading","directives","rawName","study","expression","staticStyle","staticClass","model","callback","$$v","vistab","_v","gatedOmicsVisConditions","gatedEnvironmentVisConditions","_s","consortium","scopedSlots","_u","fn","ref","on","_g","_b","$event","showConsortia","limit","consortiumStudyResults","pageSync","setPage","$router","params","setItemsPerPage","studyCheckboxState","stopPropagation","setChecked","children","toggleChildren","showChildren","includes","_e","props","_l","item","omicsType","fieldDisplayName","childProps","showStudies","studyType","icon","studyResults","disableBulkDownload","loggedInUser","biosampleType","study_id","domProps","alternate_identifiers","emsl_biosample_identifiers","setExpanded","expanded","expandedOmicsDetails","showBulk","dataObjectFilter","staticRenderFns","disablePagination","page","Math","ceil","rows","$emit","resultIndex","disableNavigateOnClick","click","_t","study_category","titleKey","subtitleKey","Number","required","itemsPerPage","String","default","Array","Boolean","setup","component","VCol","VDivider","VIcon","VList","VListItem","VListItemAvatar","VListItemContent","VListItemSubtitle","VListItemTitle","VPagination","VRow","VSelect","red","orange","green","colors","lightGreen","darken2","blue","purple","grey","primary","secondary","accent","aquatic","terrestrial","hostAssociated","engineered","metagenome","metatranscriptome","sequencing","success","QUERY_STATE_KEY","REFRESH_TOKEN_KEY","REJECTED_SUGGESTIONS","PENDING_SUGGESTIONS","getQueryState","state","localStorage","getItem","JSON","parse","setQueryState","setItem","stringify","clearQueryState","removeItem","getRefreshToken","setRefreshToken","token","clearRefreshToken","storageKey","str","obj","StoredMap","joinKeys","isArray","join","pendingSuggestions","getRejectedSuggestions","submissionId","schemaClassName","setRejectedSuggestions","suggestions","set","getPendingSuggestions","setPendingSuggestions","REFRESH_TOKEN_EXPIRED_EVENT","url","maxAge","exclude","query","methods","paths","client","a","baseURL","VUE_APP_BASE_URL","adapter","staticFileClient","authClient","opMap","between","has","like","_search","table","offset","conditions","data_object_filter","post","searchBiosample","searchStudy","searchOmicsProcessing","searchReadsQC","searchMetagenomeAssembly","searchMetagenomeAnnotation","searchMetaproteomicAnalysis","searchDataObject","_getById","route","getBiosample","getStudy","getFacetSummary","field","path","attribute","facets","facetName","facet","sort","b","getBinnedFacet","numBins","resolution","num_bins","getDatabaseSummary","mergeSummary","attributes","gold_classification","env_broad_scale","env_local_scale","env_medium","gene_function","getDatabaseStats","getEnvironmentGeospatialAggregation","getEnvironmentSankeyAggregation","getDataObjectList","parentType","parentId","supportedTypes","indexOf","getEnvoTrees","getBulkDownloadSummary","getBulkDownloadAggregateSummary","createBulkDownload","defaults","keggSearch","terms","cogSearch","pfamSearch","goSearch","textSearch","me","getAllUsers","body","getAppSettings","getSubmissionSchema","getGoldEcosystemTree","REDIRECT_URI","location","origin","initiateOrcidLogin","loginUrl","encodeURIComponent","href","handleTokenResponse","response","access_token","refresh_token","headers","common","Authorization","exchangeAuthCode","redirect_uri","logout","refreshRequestCache","REFRESH_REQUEST_MAX_AGE_MS","exchangeRefreshToken","_doExchange","refreshToken","dispatchEvent","CustomEvent","detail","interceptors","use","status","config","sent","tokenResponse","api","search","updateUser","geneFunctionTables","pathwayRegex","pathwayPrefixShort","v","match","prefix","replace","toLowerCase","pathwayPrefixLong","toUpperCase","KeggPrefix","ORTHOLOGY","pattern","short","long","urlBase","PATHWAY","MODULE","keggEncode","prefixes","values","replacement","transformed","cogEncode","startsWith","split","pfamEncode","goEncode","stringIsKegg","find","geneFunctionTypeInfo","kegg","label","description","expectedFormats","helpSite","encodeFunction","searchFunction","searchWithInputText","cog","pfam","go","makeSetsFromBitmask","mask_str","mask","parseInt","sets","types","heading","plural","visible","schemaName","omics_processing","reads_qc","metagenome_assembly","metagenome_annotation","metaproteomic_analysis","data_object","kegg_function","pfam_function","cog_function","go_function","hideFacet","omics_processing_id","sortKey","git_url","latitude","longitude","identifier","file_size","depth","sample_collection_site","geo_loc_name","add_date","hideAttr","mod_date","collection_date","ecosystem_path_id","habitat","community","principal_investigator_name","doi","group","instrument_name","omics_type","processing_institution","ecosystem","ecosystem_category","ecosystem_type","ecosystem_subtype","specific_ecosystem","open_in_gold","scientific_objective","gold_name","gold_description","ncbi_taxonomy_name","ncbi_project_name","principal_investigator_image_url","image_url","mags_analysis","nom_analysis","multiomics","tableFields","encode","ecosystems","color","getField","MultiomicsValue","MB","MG","MP","MT","NOM","LIP","valueCardinality","typeWithCardinality","cardinality","capitalizeAcronyms","word","toSentenceCase","fieldsname","reduce","prev","cur","valueDisplayName","moment","utc","format","filesize","makeTree","heirarchy","root","parent","heirarchyKey","isDefaultExpanded","nodeMap","topoSort","forEach","_","parentKey","k","nodeName","nodeKey","node","saveAs","filename","text","element","concat","style","display","removeChild","formatBiosampleDepth","depthAnnotation","formattedStr","minMagnitude","has_minimum_numeric_value","maxMagnitude","has_maximum_numeric_value","magnitude","has_numeric_value","unit","has_unit","ORCID_BASE_URL","process","NMDC_ORCID_BASE_URL","removeCondition","conds","copy","foundIndex","findIndex","cond","op","humanFileSize","bytes","si","dp","thresh","abs","units","u","_bytes","round","toFixed","urlify","matcher","matches","urlified","lastIndex","index","substring","bulkDownloadSelected","userLoading","user","hasAcceptedTerms","treeData","bannerTitle","bannerMessage","unreactive","nodeMapId","nodeMapLabel","persistState","setConditions","catch","setUniqueCondition","others","filter","restoreState","previousState","val","workflow","file_type","_router","loadUser","loginState","appSettings","portal_banner_title","portal_banner_message","currentRoute","makeNodeMap","delete","getTreeData","resp","trees","nodeList","toggleConditions","duplicates","newConditions","withoutDuplicates","removeConditions","acceptTerms","stateRefs","useFacetSummaryData","otherConditions","myConditions","useRequest","func","reset","usePaginatedResult","sortColumn","sortOrder","floor","fetchResults","debouncedFetchResults","newPage","newLimit","setSortOptions","columnSort","doFetch","deep","refetch","useClockGate","gate","clock","clockStateCache","gatedClock","projects","isOpen","omics_data","termsDialog","$set","onAcceptTerms","items","newgroup","group_name","massSpecConfigId","chromConfigId","massSpecConfigName","chromConfigName","getRelatedBiosampleIds","biosampleId","visibility","selected","file_type_description","file_size_bytes","downloads","handleDownload","VBtn","VCard","VCardActions","VCardText","VCardTitle","VSpacer","descriptionMap","components","DownloadDialog","omicsProcessing","sortable","width","getOmicsDataWithInputIds","biosampleInputIds","biosample_inputs","input","annotations","omics","omicsCopy","inputIds","mass_spectrometry_configuration_id","mass_spectrometry_configuration_name","chromatography_configuration_id","chromatography_configuration_name","getGroupName","omicsData","outputs","getDownloadUrlAndOpen","open","VDataTable","VDialog","VTooltip","buttonOrder","DataObjectTable","omicsProcessingId","resultId","filteredOmicsProcessing","entries","agroup","bgroup","ai","bi","title","showAppBanner","VBanner","downloadSummary","searchResultCount","size","options","disabled","handleLoginClick","createAndDownload","useBulkDownload","downloadOptions","bulkDownloads","download","getSummary","getDownloadOptions","Treeselect","createLabelString","labelString","file_types","filetype","fileTypeStats","assign","VChip","packages","sankeyData","sankeyOptions","chartEvents","GChart","select","selection","trim","asyncComputed","computed","height","sankey","link","colorMode","interactivity","EcosystemSankey","helpBarchart","helpMap","setBoundsFromMap","helpTimeline","helpUpset","upsetData","tooltips","staticUpsetTooltips","order","chartData","barChartOptions","showTitle","showBaseline","leftMargin","rightMargin","chart","stacked","facetSummary","facetSummaryUnconditional","emit","chartRef","chartObject","getSelection","row","role","excludedCount","$vuetify","theme","currentTheme","chartArea","left","right","top","hAxis","textStyle","fontName","gridlines","ticks","baselineColor","baseline","viewWindowMode","vAxis","legend","position","alwaysOutside","stem","isStacked","onBrushEnd","selectedData","totalData","range","proxy","widths","heights","containerRef","ro","ResizeObserver","entry","contentRect","observe","disconnect","binWidth","bottom","makeHistogram","el","selectedRange","selectedBins","x0","Date","bins","x1","totalBins","isNaN","minTime","maxTime","y","domain","svg","enterSelection","sourceEvent","start","end","bg","brush","move","defaultSelection","remove","drawn","ChartContainer","TimeHistogram","min","max","watch","condition","nextTick","setMinMax","$nextTick","afterDrag","brushRange","makeUpSet","dataOrig","next","selectAll","uniqueCounts","append","facetSummaryAggregate","mixins","SegmentConditions","useAllConditions","isSelectable","item1","some","item2","FacetSummary","zIndex","updateBounds","mapProps","bounds","attribution","maxZoom","maxNativeZoom","latLng","Default","_getIconUrl","mergeOptions","iconRetinaUrl","iconUrl","shadowUrl","LMap","LTileLayer","LMarker","LPopup","LMarkerCluster","mapRef","zoom","iconSize","mapData","mapCenter","LatLngBounds","getMapData","res","cluster","_southWest","lat","_northEast","lng","fitBoundsOptions","padding","fitBounds","mapObject","invalidateSize","DateHistogram","FacetBarChart","ClusterMap","TooltipCard","FacetSummaryWrapper","BinnedSummaryWrapper","UpSet","sampleFacetSummary","studyFacetSummary","multiomicsObj","counts","Samples","Studies","dbSummary","toggleMenu","summary","dbSummaryForTable","resultsCount","biosampleDescription","filterText","textSearchResults","FunctionSearchFacets","verb","valueTransform","menuState","conditionGroups","parsed","from","VMenu","update","selectedOption","value1","value2","addFilter","textFieldRules","updateFromTextField","textFieldDate","menu","isoDate","updateFromDatePicker","$refs","save","date","toISOString","VDatePicker","VTextField","extend","DateInput","toString","created","loadFromConditions","parseFloat","tableHeaders","createdDelay","setSelected","toggleSelectAll","class","filterable","tree","raw","freeze","VProgressLinear","geneTypeParams","addTerm","removeTerm","geneType","typeToTable","geneSearch","getTermDisplayText","term","then","VAutocomplete","normalizer","facetSummaryMap","FilterDate","FilterFloat","FilterList","FilterGene","FilterSankeyTree","FilterTree","fieldSchemaName","schema","classes","slots","groupname","filteredFields","groupedFields","goldDescription","sf","hasActiveConditions","facetValues","tableName","groupOrders","fields","privatefilteredFields","lower","fieldsWithMeta","gold_path_field","tooltip","category","VListItemIcon","VSubheader","ConditionChips","FacetedSearch","MenuContent","isLoading","tableToType","updateSearch","VNavigationDrawer","AppBanner","BiosampleVisGroup","BulkDownload","EnvironmentVisGroup","SampleListExpansion","SearchResults","SearchSidebar","SearchHelpMenu","studyId","child","studyConditions","consortia","disable_bulk_download","studySummaryData","studyCondition","consortiumCondition","VCheckbox","VContainer","VExpandTransition","VListItemAction","VMain","VTab","VTabItem","VTabs","VTabsItems","alternateIdentifiers","emslId","displayName","relatedBiosamples","image","bindClick","getValue","biosample_categories","env","AttributeItem","displayFields","skipFields","Set","includeFields","ret","formattedDepth","geoLocIndex","relatedBiosampleIds","relatedBiosampleInfo","biosampleInput","add","AttributeList","IndividualTitle","breakpoint","xs","seeOmicsForStudy","seeStudyInContext","studyData","goldLinks","relevant_protocols","principal_investigator_websites","proto","images","gold","site","doi_map","awardDois","award","cite","provider","openLink","publicationDois","pub","pubIndex","datasetDois","dataDOI","part_of","routerKey","provideRouter","router","useRouter","principal_investigator","getOrcid","homepage_website","member","applies_to_person","orcid","applied_roles","funding_sources","flat","orcidBaseUrl","orcidId","authenticated","person","OrcidId","team","has_credit_associations","hasOrcid","VAvatar","VCardSubtitle","VImg","CitationOverrides","GoldStudyLinkBase","TeamInfo","dois","massiveDois","essDiveDois","parentStudies","sample_count","acc","gold_study_identifiers","links","relatedTypeDescription","relatedType","formatAPA","citation","template","lang","_item","doiMap","info","DOI","ess","massive","users","itemsPerPageOptions","currentUser","updateAdminStatus","align","VSwitch","editEmail","requiredRules","test","updateEmail","email","isTokenVisible","handleRefreshTokenVisibilityButtonClick","handleRefreshTokenCopyButtonClick","refreshTokenExpirationDate","isCopyRefreshTokenSnackbarVisible","refreshTokenInput","decodedToken","exp","unix","navigator","clipboard","writeText","msg","otherRules","is_admin","isEmailValid","VSnackbar","BiosafetyLevels","AwardTypes","SuggestionType","SuggestionsMode","canEditSubmissionMetadata","multiOmicsFormValid","contextForm","dataGenerated","Definitions","studyGoldID","multiOmicsForm","studyNCBIBioProjectAccession","studyAlternativeNames","metadataTypes","facilities","facilityGenerated","templateChoiceDisabled","omicsProcessingTypes","endsWith","studyName","piName","piEmail","piOrcid","fundingSources","linkOutWebpage","studyDescription","studyOptionalNotes","studyContributors","contributorFullName","contributorRoles","contributorOrcid","studyNCBIProjectTitle","unknownDoi","EMSL","JGI_MG","JGI_MG_LR","JGT_MT","HARMONIZER_TEMPLATES","air","schemaClass","sampleDataSlot","sediment","soil","water","addressToString","address","contactAndStreetInfo","phone","line1","line2","line","stateAndZip","postalCode","joinString","city","createRecord","record","isTestSubmission","metadata_submission","source_client","is_test_submission","updateRecord","permissions","patch","httpStatus","listRecords","column_sort","sort_order","getRecord","lockSubmission","put","unlockSubmission","deleteSubmission","getMetadataSuggestions","endpoint","ADDITIONS","REPLACEMENTS","GOLD_FIELDS","upstream","downstream","getVariants","checkBoxes","base","templates","schemaSectionNames","schemaSectionColumns","ready","selectedColumn","slotNames","slotInfo","Map","templateName","goldEcosystemTree","classDefinition","excelWorksheetName","excel_worksheet_name","dh","modalsRoot","querySelector","fieldSettings","_getFieldSettings","columnHelpEntries","helpSidebar","enabled","footer","useSchema","_postTemplateChange","column_ptr","section","column","columnNames","hot","getSelectedLast","columnName","col","getFields","getDataAtCell","fieldNames","getColumn","flatVocab","fieldObj","f","flatVocabulary","newCol","source","dependentRowData","_getSameRowCellData","_getGoldOptions","trimDropdown","onChange","change","triggered_changes","other","otherIdx","addHook","leading","updateSettings","customBorders","outsideClickDeselects","jumpToRowCol","clear","idx","columnIndex","_getColumnCoordinates","loadDataObjects","render","refreshState","showAllColumns","showRequiredColumns","showRecommendedColumns","showColumnsBySectionTitle","getCommentDict","getPlugin","borders","clearBorders","setBorders","hide","setDataAtCell","rowData","currentRowDataArray","getDataAtRow","currentRowData","fromEntries","getDataObjects","scrollViewportTo","scrollTo","getSelected","renderReference","folder","setupTemplate","validate","invalid_cells","changes","useTemplate","getSettings","columns","readOnly","maxRows","invalidCells","slotName","className","classAttributes","slot","getSlot","rank","slot_group","getSlotRank","aSlotGroupRank","getSlotGroupRank","bSlotGroupRank","aSlotRank","bSlotRank","orderedAttrNames","getOrderedAttributeNames","header","attrName","tableData","unflattenedValue","multivalued","flatValue","permissionTitleToDbValueMap","Viewer","Editor","permissionLevelHierarchy","owner","editor","metadata_contributor","viewer","submissionStatus","InProgress","SubmittedPendingReview","Complete","isSubmissionStatus","_submissionLockedBy","getSubmissionLockedBy","_permissionLevel","isOwner","canEditSampleMetadata","hasChanged","addressFormDefault","shipper","country","expectedShippingDate","shippingConditions","sample","experimentalGoals","randomization","usdaRegulated","permitNumber","biosafetyLevel","irbOrHipaa","comments","contextFormDefault","ship","otherAward","contextFormValid","addressForm","addressFormValid","studyFormDefault","studyDate","notes","contributors","studyFormValid","studyForm","multiOmicsFormDefault","alternativeNames","studyNumber","GOLDStudyId","JGIStudyId","NCBIBioProjectId","multiOmicsAssociationsDefault","emsl","jgi","multiOmicsAssociations","packageName","templateList","list","sampleData","templateWithDataIndex","metadataSuggestions","suggestionMode","LIVE","suggestionType","ALL","tabsValidated","newTabsValidated","templateKey","payloadObject","getPermissions","contributor","permissionLevel","submitPayload","incrementalSaveRecord","payload","generateRecord","isTestSubBool","loadRecord","permission_level","lockResponse","locked_by","isAxiosError","mergeSampleData","addMetadataSuggestions","requests","batchSize","batches","batch","suggestion","removeMetadataSuggestions","fullUrl","baseUrl","anchor","VAlert","SubmissionDocsLink","SubmissionPermissionBanner","formRef","reValidate","VCombobox","VForm","loggedInUserHasLock","isEditingSubmission","step","gotoStep","StepperMap","1","2","3","4","5","6","currentRouteName","$route","newstep","routeName","VStepper","VStepperHeader","VStepperStep","SubmissionStepper","lockedByUser","addEventListener","revalidate","facilityGeneratedChange","facility","facilityChange","projectAwardValidationRules","otherAwardValidationRules","doiRequiredRules","removeAwardDoi","addAwardDoi","showAddressForm","shippingConditionsItems","_k","keyCode","expectedShippingDateString","datePicker","sampleEnumValues","biosafetyLevelValues","shipperAddressOneLiner","shipperSummary","sampleProp","shipperData","existingShipperData","shipperDatum","shipperAddressString","toLocaleDateString","sampleProperties","VExpansionPanel","VExpansionPanelContent","VExpansionPanelHeader","VExpansionPanels","SubmissionContextShippingSummary","addressFormRef","sampleItems","enums","SampleTypeEnum","permissible_values","addressSummary","reformatDate","dateString","newValue","VTextarea","SubmissionContextShippingForm","facilityEnum","ProcessingInstitutionEnum","awardTypes","awardChosen","valid","inputEmpty","VRadio","VRadioGroup","NmdcSchema","Study","currentUserOrcid","addFundingSource","maxWidth","orcidRequiredRule","uniqueOrcidRule","CreditEnum","permissionLevelChoices","addContributor","permissionHelpText","roles","existingOrcids","contributorListIndex","backgroundImage","backgroundSize","IconBar","IntroBlurb","LoginPrompt","TitleBanner","load","showBanner","_m","option","templateListDisplayNames","APP_HEADER_HEIGHT","validationErrorGroups","snackbar","importErrorSnackbar","notImportedWorksheetNames","validationItems","validationActiveCategory","errorClick","highlightedValidationError","validationErrors","saveRecordRequest","maxHeight","focus","jumpTo","sectionName","jumpToModel","columnVisibility","ColorKey","recommended","harmonizerApi","sectionTitle","changeTemplate","validationTotalCounts","sidebarOpen","HELP_SIDEBAR_WIDTH","TABS_HEIGHT","selectedHelpDict","activeTemplate","openFile","downloadSamples","backgroundColor","opacity","canSubmit","submitCount","submitLoading","submitDialog","doSubmit","tabModel","tab","columnHelp","harmonizerTemplate","launchReference","metadataEditingAllowed","handleImport","preventDefault","arguments","cursor","previous","replaceOnce","replaceAll","scroll","highlight","updateResults","comparator","low","high","mid","resultsToChange","replacements","getCellData","setCellData","elevation","emailTemplate","subjects","support","bug","feature","subject","handleFileInputChange","importDisabled","showOpenFileDialog","emits","xlsxFileInput","files","guidance","examples","TOOLTIP_DELAY","suggestionModeOptions","suggestionTypeOptions","ON_DEMAND","onDemandSuggestionsLoading","handleSuggestForSelectedRows","handleRejectAllSuggestions","handleAcceptAllSuggestions","hasSuggestions","getSlotTitle","current_value","handleJumpToCell","handleRejectSuggestion","handleAcceptSuggestion","rejectedSuggestions","handleResetRejectedSuggestions","getSuggestionKey","suggestionsByRow","filteredSuggestions","acceptSuggestions","cellData","rejectSuggestions","selectedRanges","getSelectedCells","changedRowData","getDataByRows","VSheet","MetadataSuggester","ColumnHelp","ImportExportButtons","ContactCard","FindReplace","TABS","args","to","nav","handleLogout","handleLogin","submissionState","submissionRegex","RegExp","VSkeletonLoader","Menus","AuthButton","VAppBar","invalidCell","emptyCell","SUGGESTION_REQUEST_DELAY","EXPORT_FILENAME","SAMP_NAME","SOURCE_MAT_ID","ANALYSIS_TYPE","SCHEMA_ID","TYPE_FIELD","COMMON_COLUMNS","ALWAYS_READ_ONLY_COLUMNS","HarmonizerSidebar","harmonizerElement","activeTemplateKey","activeTemplateData","setColumnsReadOnly","environmentList","setMaxRows","loadData","setInvalidCells","remapped","invalid","rowErrors","errorText","issue","cells","saveRecord","changeBatch","debouncedSuggestionRequest","trailing","cancel","isNonEmpty","onDataChange","nonEmptyChanges","exportJson","schemaRequest","schemaLoading","currentSeries","currentError","every","getElementById","init","addChangeHook","setTableReadOnly","allTabsValid","errorGroup","errors","changeVisibility","getHelp","submitRequest","rowIsVisibleForTemplate","environmentKeys","row_types","synchronizeTabData","nextData","templateSlot","environmentSlots","environmentSlot","rowId","existing","newRow","environmentRow","workbook","book_new","worksheet","json_to_sheet","getHeaderRow","flattenArrayValues","skipHeader","book_append_sheet","compression","file","reader","FileReader","imported","notImported","Sheets","slotIdToNameMap","slotNameToIdMap","worksheetData","sheet_to_json","remappedData","unflattenArrayValues","readAsArrayBuffer","nextTemplateKey","nextTemplate","VBadge","VProgressCircular","downloadJson","aoa_to_sheet","bookType","FS","submission","createNewSubmission","author","date_last_modified","toLocaleString","getStatus","resume","handleOpenDeleteDialog","isDeleteDialogOpen","deleteDialogSubmission","study_name","False","handleDelete","sortBy","sortDesc","groupBy","groupDesc","multiSort","mustSort","QueryParams","Root","fromJSON","lookupType","arrayBufferToBase64Urlencoded","buffer","binary","Uint8Array","len","byteLength","fromCharCode","base64","btoa","base64UrlencodedToArrayBuffer","base64Urlencoded","atob","charCodeAt","stringifyQuery","clone","fromObject","u8a","finish","q","queryParamsString","URLSearchParams","parseQuery","decode","toObject","routes","SamplePage","StudyPage","SubmissionView","StepperView","redirect","SubmissionList","SubmissionContextForm","StudyForm","MultiOmicsDataForm","TemplateChooser","ValidateSubmit","HarmonizerView","UserPage","UserDetailPage","LoginPage","scrollBehavior","x","beforeEach","fullPath","Vue","Vuetify","customProperties","themes","light","AppHeader","handleRefreshTokenExpired","removeEventListener","VApp","gaId","dsn","tracesSampleRate","productionTip","vuetify","h","App","$mount"],"mappings":"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","file":"js/app.da754494.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// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-2d0af9de\":\"633cc8f7\"}[chunkId] + \".js\"\n \t}\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\tvar threw = true;\n \t\ttry {\n \t\t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n \t\t\tthrew = false;\n \t\t} finally {\n \t\t\tif(threw) delete installedModules[moduleId];\n \t\t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([1,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = __webpack_public_path__ + \"img/massive.043c1b59.png\";","module.exports = __webpack_public_path__ + \"img/submission-portal-hero.e4a0bef3.png\";","module.exports = __webpack_public_path__ + \"img/GOLD.59a66f2e.png\";","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-ps\": \"4c98\",\n\t\"./ar-ps.js\": \"4c98\",\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-kmr\": \"7558\",\n\t\"./ku-kmr.js\": \"7558\",\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!./FilterTree.vue?vue&type=style&index=0&id=8c09abfe&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpSet.vue?vue&type=style&index=0&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateHistogram.vue?vue&type=style&index=0&id=96b00404&scoped=true&lang=css&\"","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!./HarmonizerView.vue?vue&type=style&index=0&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/ESS.d3b099eb.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!./AppHeader.vue?vue&type=style&index=0&id=37e64143&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!./FilterSankeyTree.vue?vue&type=style&index=0&id=5ae140d0&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamInfo.vue?vue&type=style&index=0&lang=css&\"","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!./MetadataSuggester.vue?vue&type=style&index=0&id=620cd056&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeHistogram.vue?vue&type=style&index=0&id=759d293a&scoped=true&lang=css&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconBar.vue?vue&type=style&index=0&id=faefabfe&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthButton.vue?vue&type=style&index=1&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthButton.vue?vue&type=style&index=0&id=2e5c4526&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('SearchSidebar',{attrs:{\"results-count\":_vm.biosample.data.results.count,\"is-loading\":_vm.biosample.loading.value}}),_c('v-main',[_c('v-progress-linear',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.biosample.loading.value || _vm.study.loading.value),expression:\"biosample.loading.value || study.loading.value\"}],staticStyle:{\"position\":\"fixed\",\"top\":\"64\",\"z-index\":\"2\"},attrs:{\"indeterminate\":\"\",\"background-opacity\":\"0\"}}),_c('AppBanner'),_c('v-container',{staticClass:\"py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',[_c('v-row',[_c('v-col',[_c('v-tabs',{attrs:{\"height\":\"30px\"},model:{value:(_vm.vistab),callback:function ($$v) {_vm.vistab=$$v},expression:\"vistab\"}},[_c('v-tab',{key:\"omics\"},[_vm._v(\" Data Type \")]),_c('v-tab',{key:\"environments\"},[_vm._v(\" Environment \")])],1)],1),_c('v-spacer'),_c('v-col',{staticClass:\"d-flex justify-end flex-grow-0 flex-shrink-0\"},[_c('search-help-menu')],1)],1),_c('v-tabs-items',{staticClass:\"my-3\",model:{value:(_vm.vistab),callback:function ($$v) {_vm.vistab=$$v},expression:\"vistab\"}},[_c('v-tab-item',{key:\"omics\"},[_c('BiosampleVisGroup',{attrs:{\"conditions\":_vm.gatedOmicsVisConditions}})],1),_c('v-tab-item',{key:\"environments\"},[_c('EnvironmentVisGroup',{attrs:{\"conditions\":_vm.gatedEnvironmentVisConditions}})],1)],1),_c('v-card',{attrs:{\"outlined\":\"\"}},[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-title',{staticClass:\"pb-0\"},[_vm._v(\" \"+_vm._s(_vm.consortium.data.results.count === 1 ? 'Consortium' : 'Consortia')+\" \"),_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-help-circle\")])],1)]}}])},[_c('span',[_vm._v(\"Standardized Data Collections\")])]),_c('v-spacer'),_c('v-card-actions',[_c('v-btn',{attrs:{\"elevation\":\"0\",\"color\":\"primary\",\"disabled\":_vm.consortium.data.results.count === 0},on:{\"click\":function($event){_vm.showConsortia=!_vm.showConsortia}}},[_vm._v(\" \"+_vm._s(_vm.showConsortia ? 'Hide' : 'View')+\" Consortia \"),_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.showConsortia ? 'mdi-chevron-up' : 'mdi-chevron-down')+\" \")])],1)],1)],1),_c('v-expand-transition',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showConsortia),expression:\"showConsortia\"}]},[_c('SearchResults',{attrs:{\"disable-navigate-on-click\":\"\",\"count\":_vm.consortium.data.results.count,\"icon\":'mdi-database',\"items-per-page\":_vm.consortium.data.limit,\"results\":_vm.consortiumStudyResults,\"page\":_vm.consortium.data.pageSync,\"loading\":_vm.consortium.loading.value},on:{\"set-page\":function($event){return _vm.consortium.setPage($event)},\"selected\":function($event){return _vm.$router.push({ name: 'Study', params: { id: $event} })},\"set-items-per-page\":function($event){return _vm.consortium.setItemsPerPage($event)}},scopedSlots:_vm._u([{key:\"action\",fn:function(ref){\nvar result = ref.result;\nreturn [_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"input-value\":_vm.studyCheckboxState,\"value\":result.id},on:{\"click\":function($event){$event.stopPropagation();},\"change\":function($event){return _vm.setChecked(result.id,{children:result.children})}}})],1)]}},{key:\"child-list\",fn:function(ref){\nvar result = ref.result;\nreturn [(result.children && result.children.length > 0)?_c('v-list-item-action',{staticClass:\"ma-0\"},[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.toggleChildren(result)}}},[(_vm.showChildren.includes(result.id))?_c('v-icon',[_vm._v(\" mdi-chevron-up-box \")]):_c('v-icon',[_vm._v(\" mdi-chevron-down-box \")])],1)],1):_vm._e()]}},{key:\"action-right\",fn:function(ref){\nvar result = ref.result;\nreturn [_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\",\"large\":\"\",\"to\":{ name: 'Study', params: { id: result.id } }}},[_c('v-icon',[_vm._v(\" mdi-open-in-new \")])],1)],1)]}},{key:\"item-content\",fn:function(props){return [(props.result.omics_processing_counts)?_c('div',[_vm._l((props.result.omics_processing_counts),function(item){return [(item.count)?_c('v-chip',{key:item.type,staticClass:\"mr-2 my-1\",attrs:{\"small\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.setChecked(props.result.id, {omicsType:item.type})}}},[_vm._v(\" \"+_vm._s(_vm.fieldDisplayName(item.type))+\": \"+_vm._s(item.count)+\" \")]):_vm._e()]})],2):_vm._e(),(_vm.showChildren.includes(props.result.id))?_c('v-card',{staticClass:\"pa-4 mt-2\",attrs:{\"flat\":\"\"}},[_c('v-divider'),_c('SearchResults',{attrs:{\"disable-navigate-on-click\":\"\",\"disable-pagination\":\"\",\"count\":props.result.children.length,\"icon\":'mdi-database',\"items-per-page\":props.result.children.length,\"results\":props.result.children,\"page\":1,\"loading\":false},on:{\"selected\":function($event){return _vm.$router.push({ name: 'Study', params: { id: $event} })}},scopedSlots:_vm._u([{key:\"action\",fn:function(ref){\nvar result = ref.result;\nreturn [_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"disabled\":_vm.studyCheckboxState.includes(props.result.id),\"input-value\":_vm.studyCheckboxState,\"value\":result.id},on:{\"click\":function($event){$event.stopPropagation();},\"change\":function($event){return _vm.setChecked(result.id)}}})],1)]}},{key:\"action-right\",fn:function(ref){\nvar result = ref.result;\nreturn [_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\",\"large\":\"\",\"to\":{ name: 'Study', params: { id: result.id } }}},[_c('v-icon',[_vm._v(\" mdi-open-in-new \")])],1)],1)]}},{key:\"item-content\",fn:function(childProps){return [(childProps.result.omics_processing_counts)?_c('div',[_vm._l((childProps.result.omics_processing_counts),function(item){return [(item.count)?_c('v-chip',{key:item.type,staticClass:\"mr-2 my-1\",attrs:{\"small\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.setChecked(props.result.id, {omicsType:item.type})}}},[_vm._v(\" \"+_vm._s(_vm.fieldDisplayName(item.type))+\": \"+_vm._s(item.count)+\" \")]):_vm._e()]})],2):_vm._e()]}}],null,true)})],1):_vm._e()]}}])})],1)])],1),_c('v-divider'),_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-title',{staticClass:\"pb-0\"},[_vm._v(\" \"+_vm._s(_vm.study.data.results.count === 1 ? 'Study' : 'Studies')+\" \"),_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-help-circle\")])],1)]}}])},[_c('span',[_vm._v(\"Research-driven Experimental Data Sets\")])]),_c('v-spacer'),_c('v-card-actions',[_c('v-btn',{attrs:{\"elevation\":\"0\",\"color\":\"primary\",\"disabled\":_vm.study.data.results.count === 0},on:{\"click\":function($event){_vm.showStudies=!_vm.showStudies}}},[_vm._v(\" \"+_vm._s(_vm.showStudies ? 'Hide' : 'View')+\" Studies \"),_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.showStudies ? 'mdi-chevron-up' : 'mdi-chevron-down')+\" \")])],1)],1)],1),_c('v-expand-transition',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showStudies),expression:\"showStudies\"}]},[_c('SearchResults',{attrs:{\"disable-navigate-on-click\":\"\",\"count\":_vm.study.data.results.count,\"icon\":_vm.studyType.icon,\"items-per-page\":_vm.study.data.limit,\"results\":_vm.studyResults,\"page\":_vm.study.data.pageSync,\"loading\":_vm.study.loading.value},on:{\"set-page\":function($event){return _vm.study.setPage($event)},\"selected\":function($event){return _vm.$router.push({ name: 'Study', params: { id: $event} })},\"set-items-per-page\":function($event){return _vm.study.setItemsPerPage($event)}},scopedSlots:_vm._u([{key:\"action\",fn:function(ref){\nvar result = ref.result;\nreturn [_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"input-value\":_vm.studyCheckboxState,\"value\":result.id},on:{\"click\":function($event){$event.stopPropagation();},\"change\":function($event){return _vm.setChecked(result.id, {children:result.children})}}})],1)]}},{key:\"child-list\",fn:function(ref){\nvar result = ref.result;\nreturn [(result.children && result.children.length > 0)?_c('v-list-item-action',{staticClass:\"ma-0\"},[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.toggleChildren(result)}}},[(_vm.showChildren.includes(result.id))?_c('v-icon',[_vm._v(\" mdi-chevron-up-box \")]):_c('v-icon',[_vm._v(\" mdi-chevron-down-box \")])],1)],1):_vm._e()]}},{key:\"action-right\",fn:function(ref){\nvar result = ref.result;\nreturn [_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\",\"large\":\"\",\"to\":{ name: 'Study', params: { id: result.id } }}},[_c('v-icon',[_vm._v(\" mdi-open-in-new \")])],1)],1)]}},{key:\"item-content\",fn:function(props){return [(props.result.omics_processing_counts)?_c('div',[_vm._l((props.result.omics_processing_counts),function(item){return [(item.count)?_c('v-chip',{key:item.type,staticClass:\"mr-2 my-1\",attrs:{\"small\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.setChecked(props.result.id, {omicsType:item.type})}}},[_vm._v(\" \"+_vm._s(_vm.fieldDisplayName(item.type))+\": \"+_vm._s(item.count)+\" \")]):_vm._e()]})],2):_vm._e(),(_vm.showChildren.includes(props.result.id))?_c('v-card',{staticClass:\"pa-4 mt-2\",attrs:{\"flat\":\"\"}},[_c('v-divider'),_c('SearchResults',{attrs:{\"disable-navigate-on-click\":\"\",\"disable-pagination\":\"\",\"count\":props.result.children.length,\"icon\":_vm.studyType.icon,\"items-per-page\":props.result.children.length,\"results\":props.result.children,\"page\":1,\"loading\":false},on:{\"selected\":function($event){return _vm.$router.push({ name: 'Study', params: { id: $event} })}},scopedSlots:_vm._u([{key:\"action\",fn:function(ref){\nvar result = ref.result;\nreturn [_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"disabled\":_vm.studyCheckboxState.includes(props.result.id),\"input-value\":_vm.studyCheckboxState,\"value\":result.id},on:{\"click\":function($event){$event.stopPropagation();},\"change\":function($event){return _vm.setChecked(result.id)}}})],1)]}},{key:\"action-right\",fn:function(ref){\nvar result = ref.result;\nreturn [_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\",\"large\":\"\",\"to\":{ name: 'Study', params: { id: result.id } }}},[_c('v-icon',[_vm._v(\" mdi-open-in-new \")])],1)],1)]}},{key:\"item-content\",fn:function(childProps){return [(childProps.result.omics_processing_counts)?_c('div',[_vm._l((childProps.result.omics_processing_counts),function(item){return [(item.count)?_c('v-chip',{key:item.type,staticClass:\"mr-2 my-1\",attrs:{\"small\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.setChecked(childProps.result.id, {omicsType:item.type})}}},[_vm._v(\" \"+_vm._s(_vm.fieldDisplayName(item.type))+\": \"+_vm._s(item.count)+\" \")]):_vm._e()]})],2):_vm._e()]}}],null,true)})],1):_vm._e()]}}])})],1)])],1)],1),_c('v-card',{staticClass:\"my-4\",attrs:{\"outlined\":\"\"}},[_c('div',{staticClass:\"ma-3\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-card-title',{staticClass:\"grow py-0\"},[(_vm.biosample.loading.value)?_c('span',[_vm._v(\" Samples \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.biosample.data.results.count)+\" \"+_vm._s(_vm.biosample.data.results.count === 1 ? 'Sample' : 'Samples')+\" \")])]),_c('v-spacer'),(!_vm.disableBulkDownload)?_c('div',{staticStyle:{\"width\":\"70%\"}},[_c('BulkDownload',{attrs:{\"disabled\":!_vm.loggedInUser,\"search-result-count\":_vm.biosample.data.results.count}})],1):_vm._e()],1)]),_c('SearchResults',{attrs:{\"disable-navigate-on-click\":\"\",\"count\":_vm.biosample.data.results.count,\"icon\":_vm.biosampleType.icon,\"items-per-page\":_vm.biosample.data.limit,\"results\":_vm.biosample.data.results.results,\"page\":_vm.biosample.data.pageSync,\"subtitle-key\":'study_id',\"loading\":_vm.biosample.loading.value},on:{\"set-page\":function($event){return _vm.biosample.setPage($event)},\"selected\":function($event){return _vm.$router.push({ name: 'Sample', params: { id: $event }})},\"set-items-per-page\":function($event){return _vm.biosample.setItemsPerPage($event)}},scopedSlots:_vm._u([{key:\"subtitle\",fn:function(props){return [_c('span',{staticClass:\"pr-2\"},[_vm._v(\"Study ID:\")]),_c('router-link',{staticClass:\"pr-2 grey--text text--darken-2\",attrs:{\"to\":{name: 'Study', params: { id: props.result.study_id }}},domProps:{\"textContent\":_vm._s(props.result.study_id)}}),(props.result.alternate_identifiers.length || props.result.emsl_biosample_identifiers.length)?[_c('span',{staticClass:\"pr-2\"},[_vm._v(\"Sample Identifiers:\")]),_vm._l((props.result.alternate_identifiers),function(id){return _c('a',{key:id,staticClass:\"pr-2 grey--text text--darken-2\",attrs:{\"href\":(\"https://identifiers.org/\" + id),\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(_vm._s(id))])}),_vm._l((props.result.emsl_biosample_identifiers),function(id){return _c('span',{key:id},[_vm._v(\" \"+_vm._s(id)+\" \")])})]:_vm._e()]}},{key:\"item-content\",fn:function(props){return [_c('SampleListExpansion',_vm._b({on:{\"open-details\":function($event){return _vm.setExpanded(props.result.id, $event)}}},'SampleListExpansion',{\n result: props.result,\n expanded: _vm.expandedOmicsDetails,\n loggedInUser: _vm.loggedInUser,\n showBulk: _vm.dataObjectFilter.length > 0,\n },false))]}},{key:\"action-right\",fn:function(ref){\n var result = ref.result;\nreturn [_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\",\"large\":\"\",\"to\":{ name: 'Sample', params: { id: result.id } }}},[_c('v-icon',[_vm._v(\" mdi-open-in-new \")])],1)],1)]}}])}),(_vm.biosample.data.results.count === 0)?_c('h2',[_vm._v(\" No results for selected conditions in sample table \")]):_vm._e()],1)],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.disablePagination)?_c('v-col',{staticClass:\"pb-0\",attrs:{\"cols\":\"12\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-pagination',{staticClass:\"pt-3\",attrs:{\"value\":_vm.page,\"length\":Math.ceil(_vm.count / _vm.rows),\"total-visible\":7,\"depressed\":\"\"},on:{\"input\":function($event){return _vm.$emit('set-page', $event)}}})],1),_c('v-col',{attrs:{\"cols\":\"1\"}},[_c('v-select',{staticClass:\"px-4\",attrs:{\"items\":[5, 10, 15, 20],\"label\":\"Items per page\"},on:{\"input\":function($event){return _vm.$emit('set-items-per-page', $event)}},model:{value:(_vm.rows),callback:function ($$v) {_vm.rows=$$v},expression:\"rows\"}})],1)],1)],1):_vm._e(),_c('v-list',{attrs:{\"dense\":\"\"}},[_vm._l((_vm.results),function(result,resultIndex){return [(resultIndex > 0)?_c('v-divider',{key:((result.id) + \"-divider\")}):_vm._e(),_c('v-list-item',_vm._g({key:result.id,attrs:{\"ripple\":!_vm.disableNavigateOnClick,\"inactive\":_vm.disableNavigateOnClick}},{\n click: _vm.disableNavigateOnClick\n ? function () {}\n : function () { return _vm.$emit('selected', result.id); },\n }),[_vm._t(\"action\",null,null,{ result: result }),_c('v-list-item-avatar',[(result.children && result.children.length > 0 && result.study_category === 'research_study')?_c('v-icon',[_vm._v(\" mdi-book-multiple-outline \")]):_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.icon)+\" \")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(result[_vm.titleKey])+\" \"),_vm._t(\"child-list\",null,null,{ result: result})],2),_c('v-list-item-subtitle',[_vm._t(\"subtitle\",function(){return [_vm._v(\" \"+_vm._s(result[_vm.subtitleKey] || 'No description')+\" \")]},null,{ result: result })],2),_vm._t(\"item-content\",null,null,{ result: result })],2),_vm._t(\"action-right\",null,null,{ result: result })],2)]})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent, PropType, ref } from '@vue/composition-api';\n\nimport { BaseSearchResult } from '@/data/api';\n\nexport default defineComponent({\n props: {\n page: {\n type: Number,\n required: true,\n },\n itemsPerPage: {\n type: Number,\n required: true,\n },\n count: {\n type: Number,\n required: true,\n },\n titleKey: {\n type: String,\n default: 'name',\n },\n subtitleKey: {\n type: String,\n default: 'description',\n },\n results: {\n type: Array as PropType,\n default: () => [],\n },\n icon: {\n type: String,\n default: 'mdi-book',\n },\n disableNavigateOnClick: {\n type: Boolean,\n default: false,\n },\n disablePagination: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n const rows = ref(props.itemsPerPage);\n return {\n rows,\n };\n },\n\n});\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResults.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchResults.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchResults.vue?vue&type=template&id=c9e9dada&\"\nimport script from \"./SearchResults.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchResults.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAvatar } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VPagination } from 'vuetify/lib/components/VPagination';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VCol,VDivider,VIcon,VList,VListItem,VListItemAvatar,VListItemContent,VListItemSubtitle,VListItemTitle,VPagination,VRow,VSelect})\n","import colors from 'vuetify/lib/util/colors';\n\nconst red = '#ED5338';\nconst orange = '#E88320';\nconst green = colors.lightGreen.darken2;\nconst blue = '#00AAE7';\nconst purple = '#4F3B80';\n\nexport default {\n red,\n orange,\n green,\n blue,\n purple,\n grey: colors.grey,\n primary: purple,\n secondary: red,\n accent: orange,\n aquatic: blue,\n terrestrial: green,\n hostAssociated: red,\n engineered: orange,\n metagenome: blue,\n metatranscriptome: green,\n sequencing: red,\n success: green,\n};\n","import { MetadataSuggestion } from '@/views/SubmissionPortal/types';\n\nconst QUERY_STATE_KEY = 'storage.queryState';\nconst REFRESH_TOKEN_KEY = 'storage.refreshToken';\nconst REJECTED_SUGGESTIONS = 'storage.rejectedSuggestions';\nconst PENDING_SUGGESTIONS = 'storage.pendingSuggestions';\n\nfunction getQueryState() {\n const state = window.localStorage.getItem(QUERY_STATE_KEY);\n return state ? JSON.parse(state) : null;\n}\n\nfunction setQueryState(state: any) {\n return window.localStorage.setItem(QUERY_STATE_KEY, JSON.stringify(state));\n}\n\nfunction clearQueryState() {\n return window.localStorage.removeItem(QUERY_STATE_KEY);\n}\n\nfunction getRefreshToken() {\n return window.localStorage.getItem(REFRESH_TOKEN_KEY);\n}\n\nfunction setRefreshToken(token: string) {\n return window.localStorage.setItem(REFRESH_TOKEN_KEY, token);\n}\n\nfunction clearRefreshToken() {\n return window.localStorage.removeItem(REFRESH_TOKEN_KEY);\n}\n\n/**\n * A class to simplify storing and retrieving objects that are approximately like a Map in localStorage.\n */\nclass StoredMap {\n private readonly storageKey: string;\n\n /**\n * Create a new StoredMap.\n * @param storageKey The key to use in localStorage.\n */\n constructor(storageKey: string) {\n this.storageKey = storageKey;\n }\n\n private static joinKeys(keys: string | string[]): string {\n return Array.isArray(keys) ? keys.join('__') : keys;\n }\n\n /**\n * Get the value associated with the given key from the stored map.\n * @param key\n */\n get(key: string | string[]): T {\n const str = window.localStorage.getItem(this.storageKey);\n const obj = str ? JSON.parse(str) : {};\n return obj[StoredMap.joinKeys(key)];\n }\n\n /**\n * Set the value associated with the given key in the stored map.\n * @param key\n * @param value\n */\n set(key: string | string[], value: T) {\n const str = window.localStorage.getItem(this.storageKey);\n const obj = str ? JSON.parse(str) : {};\n obj[StoredMap.joinKeys(key)] = value;\n window.localStorage.setItem(this.storageKey, JSON.stringify(obj));\n }\n}\n\nconst rejectedSuggestions = new StoredMap(REJECTED_SUGGESTIONS);\nconst pendingSuggestions = new StoredMap(PENDING_SUGGESTIONS);\n\n/**\n * Get the stored rejected suggestions for a given submission and schema class.\n * @param submissionId\n * @param schemaClassName\n */\nfunction getRejectedSuggestions(submissionId: string, schemaClassName: string): string[] {\n return rejectedSuggestions.get([submissionId, schemaClassName]) || [];\n}\n\n/**\n * Set the stored rejected suggestions for a given submission and schema class.\n * @param submissionId\n * @param schemaClassName\n * @param suggestions\n */\nfunction setRejectedSuggestions(submissionId: string, schemaClassName: string, suggestions: string[]) {\n rejectedSuggestions.set([submissionId, schemaClassName], suggestions);\n}\n\n/**\n * Get the stored pending suggestions for a given submission and schema class.\n * @param submissionId\n * @param schemaClassName\n */\nfunction getPendingSuggestions(submissionId: string, schemaClassName: string) {\n return pendingSuggestions.get([submissionId, schemaClassName]) || [];\n}\n\n/**\n * Set the stored pending suggestions for a given submission and schema class.\n * @param submissionId\n * @param schemaClassName\n * @param suggestions\n */\nfunction setPendingSuggestions(submissionId: string, schemaClassName: string, suggestions: MetadataSuggestion[]) {\n return pendingSuggestions.set([submissionId, schemaClassName], suggestions);\n}\n\nexport {\n getQueryState,\n setQueryState,\n clearQueryState,\n getRefreshToken,\n setRefreshToken,\n clearRefreshToken,\n getRejectedSuggestions,\n setRejectedSuggestions,\n getPendingSuggestions,\n setPendingSuggestions,\n};\n","import { merge } from 'lodash';\nimport axios, { AxiosError } from 'axios';\nimport { setupCache } from 'axios-cache-adapter';\n// @ts-ignore\nimport NmdcSchema from 'nmdc-schema/nmdc_schema/nmdc_materialized_patterns.yaml';\nimport { clearRefreshToken, getRefreshToken, setRefreshToken } from '@/store/localStorage';\nimport { User } from '@/types';\n\n// The token refresh and retry logic stores an extra bit of state on the request config\ndeclare module 'axios' {\n interface AxiosRequestConfig {\n sent?: boolean;\n }\n}\n\n// The name of a custom event that is dispatched when a refresh token exchange fails\n// Consider moving this to a separate module if we end up having more custom events\nexport const REFRESH_TOKEN_EXPIRED_EVENT = 'nmdc:refreshTokenExpired';\n\nconst cache = setupCache({\n key: (req) => req.url + JSON.stringify(req.params) + JSON.stringify(req.data),\n maxAge: 15 * 60 * 1000,\n exclude: {\n query: false,\n methods: ['delete'],\n paths: [\n /me/,\n /users/,\n /logout/,\n /bulk_download/,\n /data_object\\/.*/,\n ],\n },\n});\n\nconst client = axios.create({\n baseURL: process.env.VUE_APP_BASE_URL || '/api',\n adapter: cache.adapter,\n});\n\nconst staticFileClient = axios.create({\n baseURL: '/static',\n});\n\nconst authClient = axios.create({\n baseURL: '/auth',\n});\n\n/* The real entity types */\nexport type entityType = 'biosample'\n | 'study'\n | 'omics_processing'\n | 'reads_qc'\n | 'metagenome_assembly'\n | 'metagenome_annotation'\n | 'metaproteomic_analysis'\n | 'data_object'\n | 'kegg_function'\n | 'cog_function'\n | 'pfam_function'\n | 'go_function';\n\n/**\n * By including this file in source with a git submodule,\n * we get build-time typescript support for the dynamic types coming\n * out of an entirely different repository.\n */\nexport type entitySchemaType = keyof typeof NmdcSchema.classes;\n\nexport interface BaseSearchResult {\n id: string;\n name: string;\n description: string;\n alternate_identifiers: string[];\n annotations: Record;\n [key: string]: unknown; // possibly other things.\n}\n\nexport interface DataObjectSearchResult extends BaseSearchResult {\n file_size_bytes: number | null;\n md5_checksum: string;\n file_type: string;\n file_type_description: string;\n url: string;\n\n // download count\n downloads: number;\n\n // indicates selected for bulk download\n selected: boolean;\n}\n\nexport interface DerivedDataResult extends BaseSearchResult {\n type: string;\n git_url: string;\n started_at_time: string;\n ended_at_time: string;\n execution_resource: string;\n omics_processing_id: string;\n outputs: DataObjectSearchResult[];\n}\n\nexport interface OmicsProcessingResult extends BaseSearchResult {\n study_id: string;\n add_date: string;\n mod_date: string;\n open_in_gold: string;\n omics_data: DerivedDataResult[];\n outputs: DataObjectSearchResult[]; // RAW outputs\n}\n\nexport interface BiosampleSearchResult extends BaseSearchResult {\n omics_processing_id: string;\n depth: number;\n env_broad_scale_id: string;\n env_local_scale_id: string;\n env_medium_id: string;\n longitude: number | null;\n latitude: number | null;\n add_date: string;\n mod_date: string;\n open_in_gold: string;\n env_broad_scale: {\n id: string;\n label: string;\n data: string;\n };\n env_local_scale: {\n id: string;\n label: string;\n data: string;\n };\n env_medium: {\n id: string;\n label: string;\n data: string;\n };\n omics_processing: OmicsProcessingResult[];\n emsl_biosample_identifiers: string[];\n}\n\ninterface PrincipalInvestigator {\n name?: string;\n email?: string;\n orcid?: string;\n}\n\nexport interface DOI {\n cite: string,\n id:string,\n provider: string,\n}\n\nexport interface DOIMAP {\n info: Record,\n category: string,\n provider: string,\n}\n\nexport interface StudySearchResults extends BaseSearchResult {\n principal_investigator_websites: string[];\n principal_investigator_name: string;\n principal_investigator_image_url: string;\n image_url: string;\n principal_investigator: PrincipalInvestigator;\n award_dois: DOI[];\n dataset_dois: DOI[],\n doi_map: Record,\n publication_dois: DOI[];\n omics_counts: {\n type: string;\n count: number;\n }[];\n omics_processing_counts: {\n type: string;\n count: number;\n }[];\n gold_name: string;\n gold_description: string;\n scientific_objective: string;\n add_date: string;\n mod_date: string;\n open_in_gold: string;\n funding_sources?: string[];\n relevant_protocols: string[];\n gold_study_identifiers: string[];\n sample_count: number;\n study_category: string;\n homepage_website: string[] | null;\n part_of: string[] | null;\n children: StudySearchResults[];\n has_credit_associations: {\n applied_roles: string[];\n applies_to_person: {\n name?: string;\n orcid?: string;\n email?: string;\n };\n }[];\n}\n\nexport interface ReadsQCResult extends DerivedDataResult {\n stats: object;\n has_inputs: string[];\n has_output: string[];\n}\n\nexport interface MetagenomeAssembyResult extends DerivedDataResult {\n stats: object;\n has_inputs: string[];\n has_output: string[];\n}\n\nexport interface MetagenomeAnnotationResult extends DerivedDataResult {\n stats: object;\n has_inputs: string[];\n has_output: string[];\n}\n\nexport type MetaproteomicAnalysisResult = DerivedDataResult;\n\nexport interface UnitSchema {\n /* https://github.com/microbiomedata/nmdc-server/pull/350 */\n name: string;\n abbreviation: string;\n dimensionality: {\n quantity: string;\n exponent: 1;\n }[];\n}\n\nexport interface AttributeSummary {\n count: number;\n type: 'string' | 'date' | 'integer' | 'float' | 'kegg_search' | 'gene_search' | 'cog_search' | 'pfam_search';\n min?: string | number;\n max?: string | number;\n units?: UnitSchema;\n}\n\nexport interface TableSummary {\n total: number;\n attributes: Record;\n}\n\nexport type DatabaseSummaryResponse = Record;\n\nexport interface DatabaseStatsResponse {\n studies: number;\n locations: number;\n habitats: number;\n data_size: number;\n metagenomes: number;\n metatranscriptomes: number;\n proteomics: number;\n metabolomics: number;\n lipodomics: number;\n organic_matter_characterization: number;\n}\n\nexport interface FacetSummaryResponse {\n facet: string;\n count: number;\n}\n\nexport interface EnvironmentGeospatialEntity {\n count: number;\n ecosystem: string;\n ecosystem_category: string;\n latitude: number | null;\n longitude: number | null;\n}\n\ninterface EnvironmentSankeyEntity {\n count: number;\n ecosystem: string;\n ecosystem_category: string;\n ecosystem_type: string;\n ecosystem_subtype: string;\n specific_ecosystem: string;\n}\n\nexport interface EnvironmentSankeyResponse {\n [index: number]: EnvironmentSankeyEntity;\n}\n\nexport type opType = 'between' | '<' | '<=' | '>' | '>=' | '==' | '!=' | 'has' | 'like';\nexport const opMap: Record = {\n between: 'between',\n has: 'has',\n '<': 'less',\n '<=': 'lte',\n '>': 'greater',\n '>=': 'gte',\n '!=': 'not',\n '==': 'is',\n like: 'like',\n};\n\n// See https://github.com/microbiomedata/nmdc-server/pull/403 for documentation\nexport type BulkDownloadSummary = Record,\n}>;\n\nexport type BulkDownloadAggregateSummary = {\n count: number;\n size: number;\n};\n\nexport interface Condition {\n field: string;\n op: opType;\n value: string | number | [number, number];\n table: string;\n}\n\nexport interface DataObjectFilter {\n workflow: string;\n file_type: string;\n}\n\nexport interface EnvoNode {\n id: string;\n label: string;\n children?: EnvoNode[];\n}\n\nexport interface EnvoTree {\n trees: Record;\n}\n\nexport interface BulkDownload {\n ip: string;\n user_agent: string;\n orcid: string;\n conditions: Condition[];\n filter: DataObjectFilter[];\n id: string;\n created: string;\n url: string;\n}\n\nexport interface SearchParams {\n offset?: number;\n limit?: number;\n sortColumn?: string;\n sortOrder?: string;\n conditions: Condition[];\n data_object_filter?: DataObjectFilter[];\n}\n\nexport interface SearchResponse {\n count: number;\n results: T[];\n}\n\nexport interface BinResponse {\n bins: T[];\n facets: number[];\n}\n\nexport interface TokenResponse {\n access_token: string;\n refresh_token?: string;\n token_type: string;\n expires_in: number;\n}\n\nexport class RefreshTokenExchangeError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'RefreshTokenExchangeError';\n }\n}\n\nasync function _search(\n table: string,\n {\n offset = 0, limit = 100, conditions, data_object_filter,\n }: SearchParams,\n): Promise> {\n const { data } = await client.post>(\n `${table}/search`,\n { conditions, data_object_filter },\n {\n params: { offset, limit },\n },\n );\n return data;\n}\n\nasync function searchBiosample(params: SearchParams) {\n return _search('biosample', params);\n}\n\nasync function searchStudy(params: SearchParams) {\n return _search('study', params);\n}\n\nasync function searchOmicsProcessing(params: SearchParams) {\n return _search('data_generation', params);\n}\n\nasync function searchReadsQC(params: SearchParams) {\n return _search('reads_qc', params);\n}\n\nasync function searchMetagenomeAssembly(params: SearchParams) {\n return _search('metagenome_assembly', params);\n}\n\nasync function searchMetagenomeAnnotation(params: SearchParams) {\n return _search('metagenome_annotation', params);\n}\n\nasync function searchMetaproteomicAnalysis(params: SearchParams) {\n return _search('metaproteomic_analysis', params);\n}\n\nasync function searchDataObject(params: SearchParams) {\n return _search('data_object', params);\n}\n\nexport type ResultUnion = (\n SearchResponse\n| SearchResponse\n| SearchResponse\n| SearchResponse\n| SearchResponse\n| SearchResponse\n| SearchResponse\n| SearchResponse);\n\nasync function search(type: entityType, params: SearchParams) {\n let results: ResultUnion;\n switch (type) {\n case 'study':\n results = await searchStudy(params);\n break;\n case 'omics_processing':\n results = await searchOmicsProcessing(params);\n break;\n case 'biosample':\n results = await searchBiosample(params);\n break;\n case 'metagenome_assembly':\n results = await searchMetagenomeAssembly(params);\n break;\n case 'metagenome_annotation':\n results = await searchMetagenomeAnnotation(params);\n break;\n case 'reads_qc':\n results = await searchReadsQC(params);\n break;\n case 'data_object':\n results = await searchDataObject(params);\n break;\n default:\n throw new Error(`Unexpected type: ${type}`);\n }\n return results;\n}\n\nasync function _getById(route: string, id: string): Promise {\n const { data } = await client.get(`${route}/${id}`);\n return data;\n}\n\nasync function getBiosample(id: string): Promise {\n return _getById('biosample', id);\n}\n\nasync function getStudy(id: string): Promise {\n return _getById('study', id);\n}\n\nasync function getFacetSummary(\n type: string,\n field: string,\n conditions: Condition[],\n): Promise {\n const path = type === 'omics_processing' ? 'data_generation' : type;\n const { data } = await client.post<{ facets: Record }>(`${path}/facet`, {\n conditions, attribute: field,\n });\n return Object.keys(data.facets)\n .map((facetName) => ({\n facet: facetName,\n count: data.facets[facetName],\n }))\n .sort((a, b) => b.count - a.count);\n}\n\nasync function getBinnedFacet(\n table: entityType,\n attribute: string,\n conditions: Condition[],\n numBins: number,\n resolution: 'day' | 'week' | 'month' | 'year' = 'month',\n) {\n const path = table === 'omics_processing' ? 'data_generation' : table;\n const { data } = await client.post>(`${path}/binned_facet`, {\n attribute,\n conditions,\n resolution,\n num_bins: numBins,\n });\n return data;\n}\n\nasync function getDatabaseSummary(): Promise {\n const { data } = await client.get('summary');\n // TODO: fix this on the server\n // merge this object with summary response\n const mergeSummary = {\n biosample: {\n attributes: {\n gold_classification: {\n type: 'sankey-tree',\n count: -1,\n },\n env_broad_scale: {\n type: 'tree',\n count: -1,\n },\n env_local_scale: {\n type: 'tree',\n count: -1,\n },\n env_medium: {\n type: 'tree',\n count: -1,\n },\n },\n },\n gene_function: {\n attributes: {\n id: {\n type: 'gene_search',\n },\n },\n },\n };\n return merge(data, mergeSummary);\n}\n\nasync function getDatabaseStats() {\n const { data } = await client.get('stats');\n return data;\n}\n\nasync function getEnvironmentGeospatialAggregation(\n conditions: Condition[],\n): Promise {\n const { data } = await client.post('environment/geospatial', {\n conditions,\n });\n return data;\n}\n\nasync function getEnvironmentSankeyAggregation(\n conditions: Condition[],\n): Promise {\n const { data } = await client.post('environment/sankey', {\n conditions,\n });\n return data;\n}\n\nasync function getDataObjectList(\n parentType: entityType,\n parentId: string,\n): Promise {\n const type = parentType;\n if (type === undefined) {\n return [];\n }\n const supportedTypes: entityType[] = [\n 'omics_processing',\n 'reads_qc',\n 'metagenome_assembly',\n 'metagenome_annotation',\n 'metaproteomic_analysis',\n ];\n if (supportedTypes.indexOf(type) >= 0) {\n const path = type === 'omics_processing' ? 'data_generation' : type;\n const { data } = await client.get(`${path}/${parentId}/outputs`);\n return data;\n }\n return [];\n}\n\n/**\n * ENVO Tree API\n */\nasync function getEnvoTrees() {\n const { data } = await client.get('envo/tree');\n return data;\n}\n\n/**\n * Bulk Download API\n */\nasync function getBulkDownloadSummary(conditions: Condition[]) {\n const { data } = await client.post('data_object/workflow_summary', {\n conditions,\n });\n return data;\n}\n\nasync function getBulkDownloadAggregateSummary(conditions: Condition[], dataObjectFilter: DataObjectFilter[]) {\n const { data } = await client.post('bulk_download/summary', {\n conditions,\n data_object_filter: dataObjectFilter,\n });\n return data;\n}\n\nasync function createBulkDownload(conditions: Condition[], dataObjectFilter: DataObjectFilter[]) {\n const { data } = await client.post('bulk_download', {\n conditions,\n data_object_filter: dataObjectFilter,\n });\n return {\n ...data,\n /* Construct the URL to stream download this new bulk archive */\n url: `${client.defaults.baseURL}/bulk_download/${data.id}`,\n };\n}\n\nexport interface KeggTermSearchResponse {\n term: string;\n text: string;\n}\nasync function keggSearch(query: string) {\n const { data } = await client.get('kegg/term/search', { params: { query } });\n return data.terms as KeggTermSearchResponse[];\n}\n\nasync function cogSearch(query: string) {\n const { data } = await client.get('cog/term/search', { params: { query } });\n return data.terms as KeggTermSearchResponse[];\n}\n\nasync function pfamSearch(query: string) {\n const { data } = await client.get('pfam/term/search', { params: { query } });\n return data.terms as KeggTermSearchResponse[];\n}\n\nasync function goSearch(query: string) {\n const { data } = await client.get('go/term/search', { params: { query } });\n return data.terms as KeggTermSearchResponse[];\n}\n\n/**\n * Discover facet values by text search\n */\nasync function textSearch(terms: string) {\n const { data } = await client.get('search', { params: { terms, limit: 10 } });\n return data;\n}\n\nasync function me(): Promise {\n try {\n const { data } = await client.get('me');\n return data;\n } catch (error) {\n if (error instanceof RefreshTokenExchangeError) {\n return null;\n }\n throw error;\n }\n}\n\nasync function getAllUsers(params: SearchParams) {\n const { data } = await client.get>('users', {\n params: {\n limit: params.limit,\n offset: params.offset,\n },\n });\n return data;\n}\n\nasync function updateUser(id: string, body: User) {\n const { data } = await client.post(`users/${id}`, body);\n return data;\n}\n\ninterface PortalSettings {\n portal_banner_title: string | null;\n portal_banner_message: string | null;\n disable_bulk_download: boolean;\n}\n\nasync function getAppSettings(): Promise {\n const { data } = await client.get('settings');\n return data;\n}\n\nasync function getSubmissionSchema() {\n const { data } = await staticFileClient.get('/submission_schema/submission_schema.json');\n return data;\n}\n\nasync function getGoldEcosystemTree() {\n const { data } = await staticFileClient.get('/submission_schema/GoldEcosystemTree.json');\n return data;\n}\n\nconst REDIRECT_URI = `${window.location.origin}/login`;\n/**\n * Initiates the ORCID login flow by navigating to the /auth/login endpoint, providing the\n * redirect_uri as the frontend route (/login) which will handle the authorization code exchange.\n */\nfunction initiateOrcidLogin(state: string = '') {\n let loginUrl = `${window.location.origin}/auth/login?redirect_uri=${encodeURIComponent(REDIRECT_URI)}`;\n if (state) {\n loginUrl += `&state=${encodeURIComponent(state)}`;\n }\n window.location.href = loginUrl;\n}\n\n/**\n * Handle a token response by setting the API client's default Authorization header with the access\n * token and storing the refresh token (if provided) in local storage.\n *\n * @param response TokenResponse object\n */\nfunction handleTokenResponse(response: TokenResponse) {\n const { access_token, refresh_token } = response;\n client.defaults.headers.common.Authorization = `Bearer ${access_token}`;\n if (refresh_token) {\n setRefreshToken(refresh_token);\n }\n}\n\n/**\n * Exchange an authorization code for access token and refresh tokens\n *\n * @param code Authorization code\n */\nasync function exchangeAuthCode(code: string): Promise {\n const { data } = await authClient.post('/token', {\n code,\n redirect_uri: REDIRECT_URI,\n });\n handleTokenResponse(data);\n}\n\n/**\n * Logout by sending a POST request to the /auth/logout endpoint. This is the only /auth endpoint\n * which requires an Authorization header. Use the API client's Authorization header, which was set\n * on login. After the request is sent, remove the default Authorization header from the API client\n * and remove the refresh token from local storage.\n */\nasync function logout() {\n try {\n await authClient.post('/logout', null, {\n headers: {\n Authorization: client.defaults.headers.common.Authorization,\n },\n });\n } finally {\n delete client.defaults.headers.common.Authorization;\n clearRefreshToken();\n }\n}\n\nlet refreshRequestCache: Promise | null = null;\nconst REFRESH_REQUEST_MAX_AGE_MS: number = 1000 * 20;\n\n/**\n * Exchange a refresh token for a new access token. Retrieve the refresh token from local storage.\n * If one exists, send a POST request to the /auth/refresh endpoint. If the request is successful,\n * save the returned token. If the request fails, remove the refresh token from local storage\n * assuming that it either expired or has been invalidated.\n *\n * The returned promise is memoized for up to 20 seconds to prevent multiple concurrent refresh\n * token exchange requests which could happen on page load.\n */\nfunction exchangeRefreshToken(): Promise {\n async function _doExchange(): Promise {\n const refreshToken = getRefreshToken();\n if (!refreshToken) {\n throw new RefreshTokenExchangeError('No refresh token found');\n }\n delete client.defaults.headers.common.Authorization;\n try {\n const { data } = await authClient.post('/refresh', { refresh_token: refreshToken });\n handleTokenResponse(data);\n return data;\n } catch (error) {\n clearRefreshToken();\n window.dispatchEvent(new CustomEvent(REFRESH_TOKEN_EXPIRED_EVENT, {\n detail: { error },\n }));\n throw new RefreshTokenExchangeError(`Refresh request failed: ${error}`);\n }\n }\n\n if (refreshRequestCache !== null) {\n return refreshRequestCache;\n }\n refreshRequestCache = _doExchange();\n setTimeout(() => {\n refreshRequestCache = null;\n }, REFRESH_REQUEST_MAX_AGE_MS);\n return refreshRequestCache;\n}\n\n// Add a response interceptor to the API client which handles 401 errors. If a 401 is received, a\n// refresh token exchange is attempted. If the refresh token exchange is successful, the original\n// request is retried with the new access token. The `sent` flag is used to prevent infinite loops.\nclient.interceptors.response.use(undefined, async (error: AxiosError) => {\n if (error.response?.status === 401) {\n if (error.config && error.config.sent !== true) {\n const { config } = error;\n config.sent = true;\n const tokenResponse = await exchangeRefreshToken();\n // Retrying the original request will *not* pick up the new default Authorization header. We\n // must set it manually here before sending out the retry.\n config.headers = {\n ...config.headers,\n Authorization: `Bearer ${tokenResponse.access_token}`,\n };\n return client.request(config);\n }\n }\n throw error;\n});\n\nconst api = {\n createBulkDownload,\n getBinnedFacet,\n getBulkDownloadSummary,\n getBulkDownloadAggregateSummary,\n getBiosample,\n getDatabaseSummary,\n getAppSettings,\n getDatabaseStats,\n getDataObjectList,\n getEnvironmentGeospatialAggregation,\n getEnvironmentSankeyAggregation,\n getEnvoTrees,\n getFacetSummary,\n getStudy,\n getSubmissionSchema,\n getGoldEcosystemTree,\n me,\n searchBiosample,\n searchOmicsProcessing,\n searchStudy,\n searchReadsQC,\n searchMetagenomeAssembly,\n searchMetagenomeAnnotation,\n searchMetaproteomicAnalysis,\n search,\n keggSearch,\n cogSearch,\n pfamSearch,\n goSearch,\n textSearch,\n getAllUsers,\n updateUser,\n initiateOrcidLogin,\n exchangeAuthCode,\n exchangeRefreshToken,\n logout,\n};\n\nexport {\n api,\n client,\n};\n","import colors from './colors';\nimport {\n entityType, entitySchemaType, KeggTermSearchResponse, api,\n} from './data/api';\n\nexport interface EntityData {\n icon: string;\n heading: string;\n name: string;\n plural: string;\n visible: boolean;\n schemaName?: entitySchemaType; // Match the table to the NMDC Schema definition\n}\n\nexport interface FieldsData {\n icon?: string;\n hideFacet?: boolean;\n sortKey?: number;\n name?: string;\n group?: string;\n hideAttr?: boolean;\n schemaName?: string; // Match the field to the nmsc schema property\n encode?: (input: string) => string,\n}\n\ninterface PrefixInfo {\n pattern: RegExp;\n short: Function;\n long: Function;\n urlBase: string;\n}\n\ntype geneFunctionType = 'kegg' | 'pfam' | 'cog' | 'go';\n\nexport const geneFunctionTables = ['kegg_function', 'pfam_function', 'cog_function', 'go_function'];\n\nconst pathwayRegex = /^((map:?)|(path:?)|(ko:?)|(ec:?)|(rn:?)|(kegg.pathway:(map|path|ec|ko|rn)))(?=\\d{5})/i;\n\nfunction pathwayPrefixShort(v: string) {\n const match = v.match(pathwayRegex);\n if (match) {\n const prefix = match[8] ? match[8] : match[1].replace(/:$/, '');\n return prefix.toLowerCase();\n }\n return 'map';\n}\n\nfunction pathwayPrefixLong(v: string) {\n const match = v.match(pathwayRegex);\n if (match) {\n const prefix = match[7] ? match[7] : match[1].replace(match[1], `kegg.pathway:${match[1]}`);\n return prefix.toUpperCase();\n }\n return 'KEGG.PATHWAY.MAP';\n}\n\nconst KeggPrefix: Record = {\n ORTHOLOGY: {\n pattern: /^((k:?)|(kegg\\.orthology:k))(?=\\d{5})/i,\n short: () => 'k',\n long: () => 'KEGG.ORTHOLOGY:K',\n urlBase: 'https://bioregistry.io/kegg.orthology:/',\n },\n PATHWAY: {\n pattern: pathwayRegex,\n short: pathwayPrefixShort,\n long: pathwayPrefixLong,\n urlBase: 'https://bioregistry.io/kegg.pathway:/',\n },\n MODULE: {\n pattern: /^((m:?)|(kegg.module:m))(?=\\d{5})/i,\n short: () => 'M',\n long: () => 'KEGG.MODULE:M',\n urlBase: 'https://bioregistry.io/kegg.module:/',\n },\n};\n\n/**\n * Encode a string as either the long or short variant of\n * a KEGG identifier term.\n */\nfunction keggEncode(v: string, url = false) {\n const prefixes = Object.values(KeggPrefix);\n for (let i = 0; i < prefixes.length; i += 1) {\n const {\n pattern, short, long, urlBase,\n } = prefixes[i];\n const replacement = url ? short(v) : long(v);\n const transformed = v.replace(pattern, replacement);\n if (transformed !== v) {\n if (url) {\n return urlBase + transformed.toUpperCase();\n }\n return transformed;\n }\n }\n return v;\n}\n\nfunction cogEncode(v: string, url = false) {\n // COG terms, pathways and functions don't need to be transformed\n // So either just return it with a prefix so our backend can process it.\n if (!url) {\n // COG categories are just identified by a single letter\n if (v.length === 1) {\n return `COG.FUNCTION:${v}`;\n }\n // COGs themselves start with this prefix\n if (v.startsWith('COG')) {\n return `COG:${v}`;\n }\n // Pathways are identified by a name. If the other two conditions have not\n // been met at this point, assume it is a pathway.\n return `COG.PATHWAY:${v}`;\n }\n // Or figure out if it is a term, pathway, or function\n const urlBase = 'https://bioregistry.io/cog';\n const id = v.split(':')[1];\n if (v.length === 1 || v.startsWith('COG.FUNCTION:')) {\n return `${urlBase}.category:/${id}`;\n }\n if (v.startsWith('COG.PATHWAY')) {\n return `${urlBase}.pathway:/${id}`;\n }\n if (v.startsWith('COG:COG')) {\n return `${urlBase}:/${id}`;\n }\n return v;\n}\n\nfunction pfamEncode(v: string, url = false) {\n if (!url) {\n if (v.startsWith('PF')) {\n return `PFAM:${v}`;\n }\n return `PFAM.CLAN:${v}`;\n }\n const urlBase = 'https://bioregistry.io/pfam';\n const id = v.split(':')[1];\n if (v.includes('CLAN')) {\n return `${urlBase}.clan:/${id}`;\n }\n return `${urlBase}:/${id}`;\n}\n\nfunction goEncode(v: string, url = false) {\n if (url) {\n return `https://bioregistry.io/go:/${v.split(':')[1]}`;\n }\n return v;\n}\n\nexport interface GeneFunctionSearchParams {\n description: string;\n label: string;\n expectedFormats: string;\n helpSite: string;\n table: entityType;\n encodeFunction: (value: string, url: boolean) => string;\n searchFunction: (query: string) => Promise;\n searchWithInputText: (value: string) => boolean;\n}\n\nfunction stringIsKegg(v: string) {\n return !!Object.values(KeggPrefix).find((item) => v.match(item.pattern));\n}\n\nexport const geneFunctionTypeInfo: Record = {\n kegg: {\n label: 'KEGG',\n description: `\n KEGG Gene Function search filters results to\n samples that have at least one of the chosen KEGG terms.\n Orthology, Module, and Pathway are supported.\n `,\n expectedFormats: 'K00000, M00000, map00000, ko00000, rn00000, and ec00000',\n helpSite: 'https://www.genome.jp/kegg/',\n table: 'kegg_function',\n encodeFunction: keggEncode,\n searchFunction: api.keggSearch,\n searchWithInputText: stringIsKegg,\n },\n cog: {\n label: 'COG',\n description: `\n COG Gene Function search filters results to\n samples that have at least one of the chosen COG terms.\n Term, Function, and Pathway are supported.\n `,\n expectedFormats: 'COG0000',\n helpSite: 'https://www.ncbi.nlm.nih.gov/research/cog/',\n table: 'cog_function',\n encodeFunction: cogEncode,\n searchFunction: api.cogSearch,\n searchWithInputText: () => false,\n\n },\n pfam: {\n label: 'PFAM',\n description: `\n Pfam Gene Function search filters results to\n samples that have at least one of the chosen Pfam terms.\n Entry and Clan are supported.\n `,\n expectedFormats: 'PF00000, CL0000',\n helpSite: 'https://www.ebi.ac.uk/interpro/set/all/entry/pfam/',\n table: 'pfam_function',\n encodeFunction: pfamEncode,\n searchFunction: api.pfamSearch,\n searchWithInputText: () => false,\n },\n go: {\n label: 'GO',\n description: `\n GO gene function search filters result to samples that match\n at least one of the chosen GO terms.\n `,\n expectedFormats: 'GO:0000000',\n helpSite: 'https://www.geneontology.org/',\n table: 'go_function',\n encodeFunction: goEncode,\n searchFunction: api.goSearch,\n searchWithInputText: () => false,\n },\n};\n\nfunction makeSetsFromBitmask(mask_str: string) {\n const mask = parseInt(mask_str, 10); // the bitmask comes in as a string\n const sets = [];\n\n /* eslint-disable no-bitwise */\n if ((1 << 1) & mask) {\n sets.push('NOM');\n }\n if ((1 << 5) & mask) {\n sets.push('MB');\n }\n if ((1 << 3) & mask) {\n sets.push('MP');\n }\n if ((1 << 2) & mask) {\n sets.push('MT');\n }\n if ((1 << 4) & mask) {\n sets.push('MG');\n }\n if (1 & mask) {\n sets.push('LIP');\n }\n return sets;\n}\n\nconst types: Record = {\n study: {\n icon: 'mdi-book',\n heading: 'Studies',\n name: 'study',\n plural: 'studies',\n visible: true,\n schemaName: 'Study',\n },\n omics_processing: {\n icon: 'mdi-file-table-box-multiple-outline',\n heading: 'Data Types',\n name: 'omics_processing',\n plural: 'Data Generations',\n visible: true,\n schemaName: 'OmicsProcessing',\n },\n biosample: {\n icon: 'mdi-test-tube',\n heading: 'Environments',\n name: 'sample',\n plural: 'samples',\n visible: true,\n schemaName: 'Biosample',\n },\n reads_qc: {\n icon: 'mdi-dna',\n heading: 'Reads QC',\n name: 'reads_qc',\n plural: 'Reads QC',\n visible: true,\n },\n metagenome_assembly: {\n icon: 'mdi-dna',\n heading: 'Metagenome Assembly',\n name: 'metagenome_assembly',\n plural: 'Metagenome assembly',\n visible: true,\n schemaName: 'MetagenomeAssembly',\n },\n metagenome_annotation: {\n icon: 'mdi-dna',\n heading: 'Metagenome Annotation',\n name: 'metagenome_annotation',\n plural: 'Metagenome annotation',\n visible: true,\n schemaName: 'MetagenomeAnnotationActivity',\n },\n metaproteomic_analysis: {\n icon: 'mdi-dna',\n heading: 'Metaproteomic Analysis',\n name: 'metaproteomic_analysis',\n plural: 'Metaproteomic analysis',\n visible: true,\n schemaName: 'MetaproteomicsAnalysisActivity',\n },\n data_object: {\n icon: 'mdi-database',\n heading: 'Data Object',\n name: 'data_object',\n plural: 'Data objects',\n visible: false,\n schemaName: 'DataObject',\n },\n kegg_function: {\n icon: 'mdi-dna',\n heading: 'Gene Function',\n name: 'gene_function',\n plural: 'Gene functions',\n visible: true,\n },\n pfam_function: {\n icon: 'mdi-dna',\n heading: 'Gene Function',\n name: 'gene_function',\n plural: 'Gene functions',\n visible: true,\n },\n cog_function: {\n icon: 'mdi-dna',\n heading: 'Gene Function',\n name: 'gene_function',\n plural: 'Gene functions',\n visible: true,\n },\n go_function: {\n icon: 'mdi-dna',\n heading: 'Gene Function',\n name: 'gene_function',\n plural: 'Gene functions',\n visible: true,\n },\n};\n\nconst fields: Record = {\n id: {\n icon: 'mdi-key',\n hideFacet: true,\n },\n kegg: {\n icon: 'mdi-key',\n hideFacet: true,\n },\n pfam: {\n icon: 'mdi-key',\n hideFacet: true,\n },\n cog: {\n icon: 'mdi-key',\n hideFacet: true,\n },\n study_id: {\n icon: 'mdi-key-link',\n hideFacet: true,\n },\n omics_processing_id: {\n icon: 'mdi-key-link',\n hideFacet: true,\n sortKey: 0,\n },\n git_url: {\n icon: 'mdi-git',\n hideFacet: true,\n },\n location: {\n icon: 'mdi-earth',\n hideFacet: true,\n },\n latitude: {\n icon: 'mdi-earth',\n hideFacet: false,\n sortKey: 1,\n },\n longitude: {\n icon: 'mdi-earth',\n hideFacet: false,\n sortKey: 2,\n },\n identifier: {\n icon: 'mdi-text',\n hideFacet: true,\n },\n file_size: {\n icon: 'mdi-text',\n hideFacet: true,\n },\n description: {\n icon: 'mdi-text',\n hideFacet: true,\n },\n depth: {\n icon: 'mdi-tape-measure',\n sortKey: 0,\n },\n sample_collection_site: {\n icon: 'mdi-earth',\n hideFacet: true,\n },\n geo_loc_name: {\n name: 'Geographic Location Name',\n icon: 'mdi-earth',\n sortKey: 3,\n },\n add_date: {\n icon: 'mdi-calendar',\n hideFacet: true,\n hideAttr: true,\n },\n mod_date: {\n icon: 'mdi-calendar',\n name: 'Modification Date',\n hideFacet: true,\n hideAttr: true,\n },\n collection_date: {\n name: 'Collection Date',\n icon: 'mdi-calendar',\n },\n ecosystem_path_id: {\n icon: 'mdi-pine-tree',\n hideFacet: true,\n },\n habitat: {\n icon: 'mdi-pine-tree',\n hideFacet: true,\n },\n community: {\n icon: 'mdi-google-circles-communities',\n hideFacet: true,\n },\n principal_investigator_name: {\n name: 'PI Name',\n icon: 'mdi-account',\n schemaName: 'principal_investigator',\n },\n doi: {\n icon: 'mdi-file-document-outline',\n hideFacet: true,\n },\n gold_classification: {\n icon: 'mdi-pine-tree',\n name: 'GOLD Classification',\n group: 'GOLD Ecosystems',\n sortKey: 0,\n },\n instrument_name: {\n name: 'Instrument Name',\n group: 'Data Generation',\n },\n omics_type: {\n name: 'Data Type',\n group: 'Data Generation',\n },\n processing_institution: {\n name: 'Processing Institution',\n group: 'Data Generation',\n },\n /* GOLD ecosystem type */\n ecosystem: {\n icon: 'mdi-pine-tree',\n group: 'GOLD Ecosystems',\n sortKey: 1,\n hideFacet: true,\n },\n ecosystem_category: {\n icon: 'mdi-pine-tree',\n group: 'GOLD Ecosystems',\n sortKey: 2,\n hideFacet: true,\n },\n ecosystem_type: {\n icon: 'mdi-pine-tree',\n group: 'GOLD Ecosystems',\n sortKey: 3,\n hideFacet: true,\n },\n ecosystem_subtype: {\n icon: 'mdi-pine-tree',\n group: 'GOLD Ecosystems',\n sortKey: 4,\n hideFacet: true,\n },\n specific_ecosystem: {\n icon: 'mdi-pine-tree',\n group: 'GOLD Ecosystems',\n sortKey: 5,\n hideFacet: true,\n },\n /* END GOLD ecosystem type */\n /* MIxS Environmental Triad terms */\n env_broad_scale: {\n name: 'Broad-scale Environmental Context',\n group: 'MIxS Environmental Triad',\n sortKey: 1,\n },\n env_local_scale: {\n name: 'Local Environmental Context',\n group: 'MIxS Environmental Triad',\n sortKey: 2,\n },\n env_medium: {\n name: 'Environmental Medium',\n group: 'MIxS Environmental Triad',\n sortKey: 3,\n },\n open_in_gold: {\n icon: 'mdi-link',\n },\n /* END MIxS Environmental Triad terms */\n /* disable uniques */\n scientific_objective: {\n hideFacet: true,\n },\n gold_name: {\n hideFacet: true,\n },\n gold_description: {\n hideFacet: true,\n },\n name: {\n hideFacet: true,\n },\n ncbi_taxonomy_name: {\n hideFacet: true,\n },\n ncbi_project_name: {\n hideFacet: true,\n },\n principal_investigator_image_url: {\n hideFacet: true,\n hideAttr: true,\n },\n image_url: {\n hideFacet: true,\n hideAttr: true,\n },\n /* END disable uniques */\n /* Other non-facet terms to remap */\n reads_qc: {\n name: 'Reads QC',\n },\n mags_analysis: {\n name: 'MAGs analysis',\n },\n nom_analysis: {\n name: 'NOM analysis',\n },\n 'Organic Matter Characterization': {\n name: 'Natural Organic Matter',\n },\n multiomics: {\n hideAttr: true,\n },\n};\n\n/**\n * If any of the above overrides should only happen on a single entity,\n * override them here\n */\nconst tableFields: Record> = {\n kegg_function: {\n id: {\n icon: 'mdi-dna',\n group: 'Function',\n name: 'KEGG',\n encode: keggEncode,\n },\n },\n cog_function: {\n id: {\n icon: 'mdi-dna',\n group: 'Function',\n name: 'COG',\n encode: cogEncode,\n },\n },\n pfam_function: {\n id: {\n icon: 'mdi-dna',\n group: 'Function',\n name: 'PFAM',\n encode: pfamEncode,\n },\n },\n go_function: {\n id: {\n icon: 'mdi-dna',\n group: 'Function',\n name: 'GO',\n encode: goEncode,\n },\n },\n biosample: {},\n study: {},\n omics_processing: {},\n reads_qc: {},\n metagenome_annotation: {},\n metagenome_assembly: {},\n metaproteomic_analysis: {},\n data_object: {},\n};\n\nconst ecosystems = [\n {\n name: 'Host-associated',\n color: colors.hostAssociated,\n },\n {\n name: 'Aquatic',\n color: colors.aquatic,\n },\n {\n name: 'Terrestrial',\n color: colors.terrestrial,\n },\n {\n name: 'Engineered',\n color: colors.engineered,\n },\n];\n\nfunction getField(name: string, table?: entityType): FieldsData {\n if (table && table in tableFields) {\n if (name in tableFields[table]) {\n return tableFields[table][name];\n }\n }\n if (name in fields) {\n return fields[name];\n }\n return {};\n}\n\nconst MultiomicsValue = {\n MB: 0b100000,\n MG: 0b010000,\n MP: 0b001000,\n MT: 0b000100,\n NOM: 0b000010,\n LIP: 0b000001,\n};\n\nexport {\n types,\n geneFunctionType,\n ecosystems,\n MultiomicsValue,\n getField,\n keggEncode,\n cogEncode,\n pfamEncode,\n stringIsKegg,\n makeSetsFromBitmask,\n};\n","import moment from 'moment';\nimport filesize from 'filesize';\nimport { types, getField } from './encoding';\n\nexport function valueCardinality(value) {\n if (Array.isArray(value)) {\n return value.length;\n }\n return 1;\n}\n\nexport function typeWithCardinality(type, cardinality) {\n if (types[type] === undefined) {\n return type;\n }\n if (cardinality === 1) {\n return types[type].name;\n }\n return types[type].plural;\n}\n\nexport function capitalizeAcronyms(word) {\n if (['id', 'ncbi', 'gold', 'jgi', 'doi'].includes(word.toLowerCase())) {\n return word.toUpperCase();\n }\n return word;\n}\n\nexport function toSentenceCase(word) {\n return `${word[0].toUpperCase()}${word.slice(1)}`;\n}\n\nexport function fieldDisplayName(field, table) {\n const fieldsname = getField(field, table);\n if ('name' in fieldsname) {\n return fieldsname.name;\n }\n return `${field}`.split('_')\n .map((word, i) => (i === 0 ? toSentenceCase(word) : word))\n .map((word) => capitalizeAcronyms(word))\n .reduce((prev, cur) => `${prev}${prev === '' ? '' : ' '}${cur}`, '');\n}\n\nexport function valueDisplayName(field, value) {\n if (field.includes('date')) {\n return moment.utc(value).format('YYYY-MM-DD, hh:mm:ss');\n }\n if (field === 'file_size') {\n return filesize(value);\n }\n return `${value}`;\n}\n\n/**\n * Transform flat array representing fixed-height tree into actual tree object.\n * Tree is built in topological order, so return topoSort for convenience.\n * O(n) = len(data) * (len(heirarchy)^2)\n *\n * @param {Array<{ [heirarchy_key]: value, ..., count: number }>} data\n * example: [\n * { level1: 'foo', level2: 'bar', level3: 'baz', count: 2 },\n * { level1: 'foo', level2: 'bar', level3: 'other', count: 4 },\n * ]\n * @param {Array} heirarchy keys in data array\n * example: [ 'level1', 'level2', 'level3' ]\n * @returns {{ root, nodeMap, topoSort }} tree of height len(heirarchy) + 1 (including root)\n */\nexport function makeTree(data, heirarchy) {\n const root = {\n id: '',\n parent: null,\n name: '',\n label: '',\n heirarchyKey: '',\n count: 0,\n depth: 0,\n children: undefined,\n isDefaultExpanded: false,\n };\n const nodeMap = {\n [root.id]: root,\n };\n const topoSort = [root];\n heirarchy.forEach((_, depth) => {\n data.forEach((item) => {\n const parentKey = heirarchy\n .slice(0, depth)\n .map((k) => item[k])\n .join('.');\n const nodeName = item[heirarchy[depth]];\n const nodeKey = `${parentKey}${parentKey && '.'}${nodeName}`;\n const parent = nodeMap[parentKey];\n let node = nodeMap[nodeKey];\n if (parent && nodeName) {\n if (!node) {\n node = {\n id: nodeKey,\n parent,\n name: nodeName,\n label: nodeName,\n heirarchyKey: heirarchy[depth],\n count: 0,\n depth: depth + 1,\n children: undefined,\n isDefaultExpanded: false,\n };\n nodeMap[nodeKey] = node;\n\n if (parent.children === undefined) {\n parent.children = [node];\n parent.isDefaultExpanded = true;\n } else {\n parent.children.push(node);\n parent.isDefaultExpanded = false;\n }\n\n topoSort.push(node);\n }\n node.count += item.count;\n }\n });\n });\n return {\n root, nodeMap, topoSort,\n };\n}\n\nexport function getChain(node) {\n if (node) {\n return getChain(node.parent).concat([node]);\n }\n return [];\n}\n\nexport function saveAs(filename, text) {\n const element = document.createElement('a');\n element.setAttribute('href', 'data:text/plain;charset=utf-8,'.concat(encodeURIComponent(text)));\n element.setAttribute('download', filename);\n element.style.display = 'none';\n document.body.appendChild(element);\n element.click();\n document.body.removeChild(element);\n}\n\n/**\n * Returns a string describing the depth of a biosample, or returns null.\n *\n * If the biosample's depth annotation contains enough information for this function to format the depth into a string\n * having one of the formats listed below, the function formats it that way. Otherwise, the function returns whatever\n * the biosample's top-level `depth` property contains, which could be `null` (per `nmdc_server/ingest/biosample.py`).\n *\n * Formats:\n * 1. Range with unit (e.g. \"1 - 2 meters\")\n * 2. Range without unit (e.g. \"1 - 2\")\n * 3. Number with unit (e.g. \"1 meter\")\n *\n * Note: I check values' types instead of their truthiness here because I consider `0` to be a valid depth magnitude,\n * while JavaScript considers it to be falsy (per https://developer.mozilla.org/en-US/docs/Glossary/Falsy).\n *\n * References:\n * - https://jsdoc.app/tags-param#parameters-with-properties\n * - https://microbiomedata.github.io/nmdc-schema/QuantityValue/\n *\n * @param depthAnnotation {object | null} Value of the biosample's `annotations.depth` property\n * @param depthAnnotation.has_minimum_numeric_value {number?} Lower magnitude of the quantity's range\n * @param depthAnnotation.has_maximum_numeric_value {number?} Upper magnitude of the quantity's range\n * @param depthAnnotation.has_numeric_value {number?} Magnitude of the quantity\n * @param depthAnnotation.has_unit {string?} Unit of the quantity\n * @param depth {number | null} Value of the biosample's top-level `depth` property\n * @return {string | null} Either a string describing the depth of the biosample, or `null`\n */\nexport function formatBiosampleDepth(depthAnnotation, depth) {\n let formattedStr = depth; // fallback value\n if (depthAnnotation !== null) {\n const {\n has_minimum_numeric_value: minMagnitude,\n has_maximum_numeric_value: maxMagnitude,\n has_numeric_value: magnitude,\n has_unit: unit,\n } = depthAnnotation;\n if (typeof minMagnitude === 'number' && typeof maxMagnitude === 'number' && typeof unit === 'string') {\n formattedStr = `${minMagnitude} - ${maxMagnitude} ${unit}`; // range with unit\n } else if (typeof minMagnitude === 'number' && typeof maxMagnitude === 'number') {\n formattedStr = `${minMagnitude} - ${maxMagnitude}`; // range without unit\n } else if (typeof magnitude === 'number' && typeof unit === 'string') {\n formattedStr = `${magnitude} ${unit}`; // number with unit\n }\n }\n return formattedStr;\n}\n\n/**\n * Base URL (without a trailing slash) at which the user can access\n * the same ORCID environment being used by the backend API.\n */\nexport const ORCID_BASE_URL = process.env.NMDC_ORCID_BASE_URL || 'https://orcid.org';\n","import LinkifyIt from 'linkify-it';\nimport { Condition } from './api';\n\nfunction removeCondition(conditions: Condition[], conds: Condition[]) {\n const copy = conditions.slice();\n conds.forEach((c) => {\n const foundIndex = copy.findIndex((cond) => (\n cond.table === c.table\n && cond.field === c.field\n && cond.op === c.op\n && cond.value === c.value));\n if (foundIndex >= 0) {\n copy.splice(foundIndex, 1);\n }\n });\n return copy;\n}\n\n/**\n * Format bytes as human-readable text.\n *\n * @param bytes Number of bytes.\n * @param si True to use metric (SI) units, aka powers of 1000. False to use\n * binary (IEC), aka powers of 1024.\n * @param dp Number of decimal places to display.\n *\n * @return Formatted string.\n *\n * https://stackoverflow.com/questions/10420352/converting-file-size-in-bytes-to-human-readable-string\n */\nfunction humanFileSize(bytes: number | null, si = false, dp = 1) {\n if (!bytes) {\n return '';\n }\n\n const thresh = si ? 1000 : 1024;\n if (Math.abs(bytes) < thresh) {\n return `${bytes} B`;\n }\n const units = si\n ? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n : ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];\n let u = -1;\n const r = 10 ** dp;\n let _bytes = bytes;\n do {\n _bytes /= thresh;\n u += 1;\n } while (Math.round(Math.abs(_bytes) * r) / r >= thresh && u < units.length - 1);\n\n return `${_bytes.toFixed(dp)} ${units[u]}`;\n}\n\n/**\n * from https://stackoverflow.com/questions/6234773/can-i-escape-html-special-chars-in-javascript\n */\nexport function escapeHtml(unsafe: string) {\n return unsafe\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/'/g, '"')\n .replace(/'/g, ''');\n}\n\nexport function urlify(text: string): string {\n const matcher = new LinkifyIt();\n if (!text) {\n return '';\n }\n\n const matches = matcher.match(text);\n if (!matches) {\n return text;\n }\n\n let urlified = '';\n let lastIndex = 0;\n matches.forEach((match) => {\n if (match.index > lastIndex) {\n urlified += text.substring(lastIndex, match.index);\n }\n urlified += `${match.text}`;\n lastIndex = match.lastIndex;\n });\n return urlified;\n}\n\nexport {\n humanFileSize,\n removeCondition,\n};\n","import Vue from 'vue';\nimport CompositionApi, {\n computed, ComputedRef, reactive, toRefs, watchEffect,\n} from '@vue/composition-api';\nimport { noop, uniqWith } from 'lodash';\nimport VueRouter from 'vue-router';\nimport { removeCondition as utilsRemoveCond } from '@/data/utils';\nimport {\n api, Condition, DataObjectFilter, EnvoNode, EnvoTree,\n} from '@/data/api';\nimport { User } from '@/types';\nimport { clearQueryState, getQueryState, setQueryState } from '@/store/localStorage';\n\n// TODO: Remove in version 3;\nVue.use(CompositionApi);\n\nlet router: VueRouter | null = null;\nconst state = reactive({\n conditions: [] as Condition[],\n bulkDownloadSelected: [] as string[],\n userLoading: false,\n user: null as User | null,\n hasAcceptedTerms: false,\n treeData: null as EnvoTree | null,\n bannerTitle: null as string | null,\n bannerMessage: null as string | null,\n});\nconst unreactive = {\n nodeMapId: {} as Record,\n nodeMapLabel: {} as Record,\n};\n\n/**\n * Persist state into localstorage\n */\nfunction persistState() {\n /* If the user is browsing anonymously, stash their state in case they log in */\n if (!state.user) {\n setQueryState({\n conditions: state.conditions,\n bulkDownloadSelected: state.bulkDownloadSelected,\n });\n }\n}\n\n/**\n * Set conditions directly, removing duplicates\n */\nfunction setConditions(conditions: Condition[], push = false) {\n state.conditions = uniqWith(conditions, (a, b) => a.field === b.field\n && a.value === b.value\n && a.op === b.op\n && a.table === b.table);\n if (router) {\n // @ts-ignore\n router[push ? 'push' : 'replace']({ query: { conditions: state.conditions }, name: 'Search' }).catch(noop);\n }\n}\n\n/**\n * For each condition, remove all others with a similar table & field.\n */\nfunction setUniqueCondition(\n field: string[],\n table: string[],\n conditions: Condition[],\n) {\n const others = state.conditions.filter((c) => (\n !field.includes(c.field)) || (!table.includes(c.table)\n ));\n setConditions([\n ...conditions,\n ...others,\n ]);\n}\n\n/**\n * Restore state from localStorage and clear\n */\nfunction restoreState() {\n const previousState = getQueryState();\n if (previousState) {\n const { conditions, bulkDownloadSelected } = previousState;\n setConditions(conditions);\n state.bulkDownloadSelected = bulkDownloadSelected;\n clearQueryState();\n }\n}\n\n// @ts-ignore\nwindow.restoreState = restoreState;\n\n/**\n * An array of DataObjectFilter currently selected\n */\nconst dataObjectFilter: ComputedRef = computed(() => state\n .bulkDownloadSelected.map((val) => {\n /** See BulkDownload.vue for how this value is constructed */\n const [workflow, file_type] = val.split('::');\n return { workflow, file_type };\n }));\n\n/**\n * load the current user on app start\n */\nasync function init(_router: VueRouter, loadUser = true, loginState = '' as string | (string | null)[]) {\n if (loadUser) {\n state.userLoading = true;\n try {\n state.user = await api.me();\n } finally {\n state.userLoading = false;\n }\n }\n try {\n const appSettings = await api.getAppSettings();\n state.bannerTitle = appSettings.portal_banner_title;\n state.bannerMessage = appSettings.portal_banner_message;\n } catch (exception) {\n // eslint-disable-next-line no-console\n console.error(exception);\n }\n router = _router;\n // Handle the login state\n switch (loginState) {\n case 'submission':\n router.push('submission/home');\n break;\n default:\n // Login normally\n // @ts-ignore\n state.conditions = router.currentRoute.query?.conditions || [];\n if (state.user) {\n restoreState();\n }\n break;\n }\n if (!state.user) {\n watchEffect(persistState);\n }\n}\n\n/**\n * Tree data\n */\nfunction makeNodeMap(node: EnvoNode) {\n unreactive.nodeMapId[node.id] = node;\n unreactive.nodeMapLabel[node.label] = node;\n if (node.children?.length === 0) {\n Vue.delete(node, 'children');\n } else {\n node.children?.forEach(makeNodeMap);\n if (node.children?.length === 1) {\n Vue.set(node, 'isExpanded', true);\n }\n }\n}\nasync function getTreeData() {\n if (state.treeData === null) {\n const resp = await api.getEnvoTrees();\n state.treeData = resp;\n Object.values(state.treeData.trees).forEach((nodeList) => nodeList.forEach(makeNodeMap));\n }\n}\n\n/**\n * For each condition, if it already exists, remove it,\n * otherwise, add it\n */\nfunction toggleConditions(conditions: Condition[]) {\n const duplicates: Condition[] = [];\n const newConditions = conditions.filter((c) => {\n const match = state.conditions.filter((d) => (\n c.table === d.table\n && c.op === d.op\n && c.value === d.value\n && c.field === d.field));\n if (match.length === 0) {\n return true; // this is a new condition\n }\n duplicates.push(c);\n return false;\n });\n if (newConditions.length > 0 || duplicates.length > 0) {\n const withoutDuplicates = utilsRemoveCond(state.conditions, duplicates);\n setConditions([\n ...newConditions,\n ...withoutDuplicates,\n ]);\n }\n}\n\n/**\n * Remove a list of conditions\n */\nfunction removeConditions(conditions: Condition[]) {\n if (Array.isArray(conditions)) {\n setConditions(utilsRemoveCond(state.conditions, conditions));\n } else {\n setConditions([]);\n }\n}\n\n/**\n * Note that a user has accepted the terms for the\n * current browser session\n */\nfunction acceptTerms() {\n state.hasAcceptedTerms = true;\n}\n\nconst stateRefs = toRefs(state);\n\nexport {\n stateRefs,\n dataObjectFilter,\n unreactive,\n acceptTerms,\n getTreeData,\n init,\n removeConditions,\n setUniqueCondition,\n setConditions,\n toggleConditions,\n};\n","import { computed, Ref } from '@vue/composition-api';\nimport { Condition, entityType } from '@/data/api';\n\nexport default function useFacetSummaryData({\n field,\n table,\n conditions,\n}: {\n field: Ref,\n table: Ref,\n conditions: Ref,\n}) {\n const otherConditions = computed(() => (\n // conditions from OTHER fields\n conditions.value.filter((c) => (c.field !== field.value) || (c.table !== table.value))\n ));\n\n const myConditions = computed(() => (\n // conditions that match our field.\n conditions.value.filter((c) => (c.field === field.value) && (c.table === table.value))\n ));\n\n return {\n otherConditions,\n myConditions,\n };\n}\n","import { reactive, toRefs } from '@vue/composition-api';\n\nexport default function useRequest() {\n const state = reactive({\n loading: false, // indicates request in progress\n error: null as string | null, // indicates request failure\n count: 0, // indicates number of successful calls\n });\n\n async function request(func: () => Promise) {\n try {\n state.loading = true;\n state.error = null;\n state.count += 1;\n const val = await func();\n state.loading = false;\n return val;\n } catch (err) {\n state.loading = false;\n state.error = String(err);\n throw err;\n }\n }\n\n async function reset() {\n state.loading = false;\n state.error = null;\n state.count = 0;\n }\n\n return {\n ...toRefs(state),\n state,\n request,\n reset,\n };\n}\n","import {\n watch, Ref, computed, shallowReactive,\n} from '@vue/composition-api';\nimport { debounce } from 'lodash';\nimport {\n SearchParams, Condition, DataObjectFilter, SearchResponse,\n} from '@/data/api';\nimport useRequest from './useRequest';\n\nexport default function usePaginatedResult(\n conditions: Ref,\n func: (param: SearchParams) => Promise>,\n dataObjectFilter?: Ref,\n limit = 15,\n) {\n const data = shallowReactive({\n results: { count: 0, results: [] } as SearchResponse,\n offset: 0,\n limit, // same as pageSize\n sortColumn: '',\n sortOrder: 'desc',\n pageSync: 1,\n });\n const { error, loading, request } = useRequest();\n\n const page = computed(() => {\n const { offset, limit: l } = data;\n // Add one for 1-indexed page\n return Math.floor(offset / l) + 1;\n });\n\n // TODO replace with watchEffect\n async function fetchResults() {\n return request(async () => {\n data.results = await func({\n limit: data.limit,\n offset: data.offset,\n sortColumn: data.sortColumn,\n sortOrder: data.sortOrder,\n conditions: conditions.value,\n data_object_filter: dataObjectFilter?.value,\n });\n data.pageSync = Math.floor(data.offset / data.limit) + 1;\n return data.results;\n });\n }\n\n const debouncedFetchResults = debounce(fetchResults, 500);\n\n watch([conditions], () => {\n const doFetch = data.offset === 0;\n data.offset = 0;\n if (doFetch) debouncedFetchResults();\n });\n\n if (dataObjectFilter !== undefined) {\n watch(dataObjectFilter, debouncedFetchResults, { deep: true });\n }\n debouncedFetchResults();\n // ENDTODO\n\n function setPage(newPage: number) {\n data.offset = (newPage - 1) * data.limit;\n debouncedFetchResults();\n }\n\n function setItemsPerPage(newLimit: number) {\n data.limit = newLimit;\n data.offset = Math.floor(data.offset / newLimit) * newLimit;\n debouncedFetchResults();\n }\n\n function setSortOptions(columnSort: string, sortOrder: string) {\n data.sortColumn = columnSort;\n data.sortOrder = sortOrder;\n debouncedFetchResults();\n }\n\n return {\n data,\n error,\n loading,\n page,\n refetch: fetchResults,\n setPage,\n setItemsPerPage,\n setSortOptions,\n };\n}\n","/**\n * useClickGate uses a boolean ref as a clock gate\n * for some other bit of reactive state. This isn't\n * actually realated to time, it's just the name for this\n * kind of boolean logic.\n *\n * In other words, useClockGate reutrns a reactive var\n * that only updates when the clock is true. The trick is to\n * cache changes that happen while the clock is false so the\n * state can change if clock changes.\n *\n * https://en.wikipedia.org/wiki/Clock_gating\n */\nimport { cloneDeep } from 'lodash';\nimport { computed, Ref, watch } from '@vue/composition-api';\n\nexport default function useClockGate(gate: Ref, clock: Ref) {\n let clockStateCache: T = cloneDeep(clock.value);\n const gatedClock = computed(() => {\n if (gate.value) {\n return clock.value;\n }\n return clockStateCache;\n });\n watch(clock, (val) => {\n if (gate.value) {\n clockStateCache = cloneDeep(val);\n }\n });\n return gatedClock;\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.result.omics_processing.length)?_c('div',{staticClass:\"d-flex flex-column mb-2\"},[_c('div',{staticClass:\"d-flex flex-row flex-wrap\"},_vm._l((_vm.filteredOmicsProcessing),function(ref){\nvar omicsType = ref[0];\nvar projects = ref[1];\nreturn _c('v-btn',{key:projects[0].id,staticClass:\"mr-2 mt-2\",attrs:{\"x-small\":\"\",\"outlined\":!_vm.isOpen(projects[0].id),\"color\":_vm.isOpen(projects[0].id) ? 'primary' : 'default',\"disabled\":projects[0].omics_data.length == 0 ? true : false},on:{\"click\":function () { return _vm.$emit('open-details', projects[0].id); }}},[_vm._v(\" \"+_vm._s(_vm.fieldDisplayName(omicsType))+\" \"),_c('v-icon',[_vm._v(\"mdi-chevron-down\")])],1)}),1),_vm._l((_vm.filteredOmicsProcessing),function(ref){\nvar omicsType = ref[0];\nvar projects = ref[1];\nreturn [(_vm.isOpen(projects[0].id))?_c('DataObjectTable',{key:projects[0].id,staticClass:\"flex-row mt-2\",attrs:{\"omics-processing\":projects,\"omics-type\":omicsType,\"logged-in-user\":_vm.loggedInUser,\"biosample\":_vm.result}}):_vm._e()]})],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"outlined\":\"\"}},[(_vm.termsDialog.item)?_c('v-dialog',{attrs:{\"width\":400},model:{value:(_vm.termsDialog.value),callback:function ($$v) {_vm.$set(_vm.termsDialog, \"value\", $$v)},expression:\"termsDialog.value\"}},[_c('DownloadDialog',{on:{\"clicked\":_vm.onAcceptTerms}})],1):_vm._e(),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.items,\"dense\":\"\"},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nvar index = ref.index;\nreturn [((item.newgroup || index == 0) && item.group_name)?_c('tr',{style:({ 'background-color': '#e0e0e0' })},[_c('td',{attrs:{\"colspan\":\"6\"}},[_c('b',[_vm._v(\"Workflow Activity:\")]),_vm._v(\" \"+_vm._s(item.group_name)+\" \"),(\n (_vm.omicsType === 'Metabolomics' || _vm.omicsType === 'Lipidomics')\n && (item.omics_data.massSpecConfigId || item.omics_data.chromConfigId)\n )?_c('span',[_c('br'),_c('b',[_vm._v(\"Data Generation Configurations\")]),(item.omics_data.massSpecConfigId)?_c('span',[_vm._v(\" \"+_vm._s(item.omics_data.massSpecConfigName)+\": \"+_vm._s(item.omics_data.massSpecConfigId)+\"; \")]):_vm._e(),(item.omics_data.chromConfigId)?_c('span',[_vm._v(\" \"+_vm._s(item.omics_data.chromConfigName)+\": \"+_vm._s(' ' + item.omics_data.chromConfigId)+\" \")]):_vm._e()]):_vm._e(),_c('br'),(_vm.getRelatedBiosampleIds(item.omics_data).length)?_c('div',[_c('v-icon',[_vm._v(\" mdi-flask-outline \")]),_c('span',{staticClass:\"text-subtitle-2 grey--text text--darken-3\"},[_c('b',[_vm._v(\"Associated biosample inputs:\")])]),_vm._l((_vm.getRelatedBiosampleIds(item.omics_data)),function(biosampleId){return _c('router-link',{key:biosampleId,staticClass:\"ml-2 grey--text text--darken-3\",attrs:{\"to\":{name: 'Sample', params: { id: biosampleId }}}},[_vm._v(\" \"+_vm._s(biosampleId)+\" \")])})],2):_vm._e()])]):_vm._e(),_c('tr',[_c('td',[_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({style:({ visibility: item.selected ? 'visible' : 'hidden'})},'v-icon',attrs,false),on),[_vm._v(\" mdi-checkbox-marked-circle-outline \")])]}}],null,true)},[_c('span',[_vm._v(\"This file is included in the currently selected bulk download\")])])],1),_c('td',[_vm._v(_vm._s(item.file_type))]),_c('td',[_vm._v(_vm._s(item.file_type_description))]),_c('td',[_vm._v(_vm._s(_vm.humanFileSize(item.file_size_bytes)))]),_c('td',[_vm._v(_vm._s(item.downloads))]),_c('td',[_c('v-tooltip',{attrs:{\"disabled\":!!(_vm.loggedInUser && item.url),\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('span',_vm._g({},on),[(item.url)?_c('v-btn',_vm._b({attrs:{\"icon\":\"\",\"disabled\":!_vm.loggedInUser,\"color\":\"primary\"},on:{\"click\":function($event){return _vm.handleDownload(item)}}},'v-btn',attrs,false),[_c('v-icon',[_vm._v(\"mdi-download\")])],1):_c('v-btn',{attrs:{\"icon\":\"\",\"disabled\":\"\"}},[_c('v-icon',[_vm._v(\" mdi-file-hidden \")])],1)],1)]}}],null,true)},[(item.url)?_c('span',[_vm._v(\" You must be logged in \")]):_c('span',[_vm._v(\" File unavailable \")])])],1)])]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',[_c('v-card-title',[_vm._v(\"Terms and Conditions\")]),_c('v-card-text',[_c('div',{staticClass:\"mb-3\"},[_vm._v(\" These data are made available under the \"),_c('a',{attrs:{\"href\":\"https://creativecommons.org/licenses/by/4.0/\"}},[_vm._v(\" Creative Commons Attribution 4.0 International license\")]),_vm._v(\". The data may be used provided the original data contributor is cited. \")]),_c('div',[_vm._v(\" For more information on the NMDC Data Policy see \"),_c('a',{attrs:{\"href\":\"https://microbiomedata.org/nmdc-data-use-policy/\"}},[_vm._v(\" https://microbiomedata.org/nmdc-data-use-policy/ \")])])]),_c('v-divider'),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\",\"href\":_vm.href,\"loading\":_vm.loading,\"target\":\"_blank\",\"rel\":\"noopener\"},on:{\"click\":function($event){return _vm.$emit('clicked')}}},[_vm._v(\" Accept and continue to download \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n href: {\n type: Object as PropType,\n default: undefined,\n },\n loading: {\n type: Boolean,\n default: false,\n },\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DownloadDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DownloadDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DownloadDialog.vue?vue&type=template&id=b0504cdc&\"\nimport script from \"./DownloadDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./DownloadDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VDivider,VSpacer})\n","\nimport {\n computed, defineComponent, PropType, reactive,\n} from '@vue/composition-api';\nimport { flattenDeep } from 'lodash';\n\nimport { DataTableHeader } from 'vuetify';\nimport { humanFileSize } from '@/data/utils';\nimport { client, BiosampleSearchResult, OmicsProcessingResult } from '@/data/api';\nimport { stateRefs, acceptTerms } from '@/store';\n\nimport DownloadDialog from './DownloadDialog.vue';\n\nconst descriptionMap: Record = {\n 'fastq.gz': 'Raw output file',\n 'filterStats.txt': 'Reads QC summary statistics',\n 'filtered.fastq.gz': 'Reads QC result fastq (clean data)',\n 'mapping_stats.txt': 'Assembled contigs coverage information',\n 'assembly_contigs.fna': 'Final assembly contigs fasta',\n 'assembly_scaffolds.fna': 'Final assembly scaffolds fasta',\n 'assembly.agp': 'An AGP format file describes the assembly',\n 'pairedMapped_sorted.bam': 'Sorted bam file of reads mapping back to the final assembly',\n 'KO TSV': 'Tab delimited file for KO annotation.',\n 'EC TSV': 'Tab delimited file for EC annotation.',\n 'Protein FAA': 'FASTA amino acid file for annotated proteins.',\n};\n\nexport default defineComponent({\n components: { DownloadDialog },\n\n props: {\n omicsProcessing: {\n type: Array as PropType,\n required: true,\n },\n omicsType: {\n type: String,\n required: true,\n },\n loggedInUser: {\n type: Boolean,\n default: false,\n },\n biosample: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const headers: DataTableHeader[] = [\n {\n text: '',\n value: 'group_name',\n sortable: false,\n },\n {\n text: 'Data Object Type',\n value: 'object_type',\n sortable: false,\n },\n {\n text: 'Data Object Description',\n value: 'object_description',\n sortable: false,\n },\n {\n text: 'File Size',\n value: 'file_size_bytes',\n width: 100,\n sortable: false,\n },\n {\n text: 'Downloads',\n value: 'downloads',\n width: 80,\n sortable: false,\n },\n {\n text: 'Download',\n value: 'action',\n width: 80,\n sortable: false,\n },\n ];\n\n const termsDialog = reactive({\n item: null as null | OmicsProcessingResult,\n value: false,\n });\n\n function getOmicsDataWithInputIds(omicsProcessing: OmicsProcessingResult) {\n const biosampleInputIds = (omicsProcessing.biosample_inputs as BiosampleSearchResult[]).map((input) => input.id);\n const annotations = omicsProcessing.annotations as Record;\n return omicsProcessing.omics_data.map((omics) => {\n const omicsCopy = { ...omics };\n omicsCopy.inputIds = biosampleInputIds;\n if (annotations.mass_spectrometry_configuration_id) {\n omicsCopy.massSpecConfigId = annotations.mass_spectrometry_configuration_id || '';\n omicsCopy.massSpecConfigName = annotations.mass_spectrometry_configuration_name || '';\n }\n if (annotations.chromatography_configuration_id) {\n omicsCopy.chromConfigId = annotations.chromatography_configuration_id || '';\n omicsCopy.chromConfigName = annotations.chromatography_configuration_name || '';\n }\n return omicsCopy;\n });\n }\n\n function getGroupName(omicsData: {id: string, name: string}): string {\n if (omicsData.name) {\n return omicsData.name.replace('Metagenome', props.omicsType) || omicsData.id;\n }\n return `${props.omicsType} Analysis ${omicsData.id}`;\n }\n\n const items = computed(() => flattenDeep(\n flattenDeep(props.omicsProcessing.map((p) => (getOmicsDataWithInputIds(p))))\n .map((omics_data) => omics_data.outputs\n .filter((data) => data.file_type && data.file_type_description)\n .map((data_object, i) => ({\n ...data_object,\n omics_data,\n /* TODO Hack to replace metagenome with omics type name */\n group_name: getGroupName(omics_data),\n newgroup: i === 0,\n }))),\n ));\n\n function getRelatedBiosampleIds(omicsData: any) {\n if (!omicsData || !omicsData.inputIds) {\n return [];\n }\n return omicsData.inputIds.filter((id: string) => id !== props.biosample.id);\n }\n\n async function getDownloadUrlAndOpen(item: OmicsProcessingResult) {\n if (typeof item.url === 'string') {\n const { data } = await client.get(item.url, { baseURL: '' });\n window.open(data.url, '_blank', 'noopener,noreferrer');\n }\n }\n\n async function handleDownload(item: OmicsProcessingResult) {\n if (typeof item.url === 'string') {\n if (stateRefs.hasAcceptedTerms.value) {\n getDownloadUrlAndOpen(item);\n } else {\n termsDialog.item = item;\n termsDialog.value = true;\n }\n }\n }\n\n function onAcceptTerms() {\n termsDialog.value = false;\n acceptTerms();\n getDownloadUrlAndOpen(termsDialog.item!);\n termsDialog.item = null;\n }\n\n return {\n onAcceptTerms,\n handleDownload,\n descriptionMap,\n headers,\n items,\n humanFileSize,\n termsDialog,\n getRelatedBiosampleIds,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataObjectTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataObjectTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataObjectTable.vue?vue&type=template&id=7e02e360&\"\nimport script from \"./DataObjectTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataObjectTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VDataTable,VDialog,VIcon,VTooltip})\n","\nimport { groupBy } from 'lodash';\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport { fieldDisplayName } from '@/util';\nimport { BiosampleSearchResult } from '@/data/api';\nimport DataObjectTable from './DataObjectTable.vue';\n\nconst buttonOrder = [\n 'metagenome',\n 'metatranscriptome',\n 'proteomics',\n 'metabolomics',\n 'organic matter characterization',\n];\n\nexport default defineComponent({\n components: {\n DataObjectTable,\n },\n\n props: {\n result: {\n type: Object as PropType,\n required: true,\n },\n expanded: {\n type: Object as PropType<{ resultId: string; omicsProcessingId: string; }>,\n required: true,\n },\n loggedInUser: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props) {\n function isOpen(omicsProcessingId: string) {\n return props.expanded.resultId === props.result.id\n && props.expanded.omicsProcessingId === omicsProcessingId;\n }\n\n const filteredOmicsProcessing = computed(() => Object.entries(groupBy(\n props.result.omics_processing,\n (p) => p.annotations.omics_type,\n )).sort(([agroup], [bgroup]) => {\n const ai = buttonOrder.indexOf(agroup.toLowerCase());\n const bi = buttonOrder.indexOf(bgroup.toLowerCase());\n return ai - bi;\n }));\n\n return {\n isOpen,\n filteredOmicsProcessing,\n fieldDisplayName,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SampleListExpansion.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SampleListExpansion.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SampleListExpansion.vue?vue&type=template&id=33b38072&\"\nimport script from \"./SampleListExpansion.vue?vue&type=script&lang=ts&\"\nexport * from \"./SampleListExpansion.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showAppBanner)?_c('v-banner',{staticClass:\"ma-4\",attrs:{\"color\":\"blue\",\"dark\":\"\",\"icon\":\"mdi-information\"}},[_c('p',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.title || '')+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(_vm.message || '')+\" \")])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { computed, defineComponent } from '@vue/composition-api';\nimport { stateRefs } from '@/store';\n\nexport default defineComponent({\n setup() {\n const message = stateRefs.bannerMessage;\n const title = stateRefs.bannerTitle;\n const showAppBanner = computed(() => message.value || title.value);\n return { showAppBanner, message, title };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppBanner.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppBanner.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppBanner.vue?vue&type=template&id=20840791&\"\nimport script from \"./AppBanner.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppBanner.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBanner } from 'vuetify/lib/components/VBanner';\ninstallComponents(component, {VBanner})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"pa-3 d-flex flex-column align-end\",attrs:{\"outlined\":\"\",\"color\":\"primary\"}},[_c('span',{staticClass:\"text-caption font-weight-bold white--text\"},[(_vm.downloadSummary.count === 0)?[_vm._v(\" No files selected \")]:[_vm._v(\" Download \"+_vm._s(_vm.downloadSummary.count)+\" files from \"+_vm._s(_vm.searchResultCount)+\" sample search results. (Download archive size \"+_vm._s(_vm.humanFileSize(_vm.downloadSummary.size))+\") \")]],2),_c('div',{staticClass:\"d-flex flex-row align-center\"},[_c('div',{staticClass:\"white--text pr-2 text-caption grow font-weight-bold\"},[_vm._v(\" Bulk Download \")]),_c('v-tooltip',{attrs:{\"left\":\"\",\"nudge-bottom\":\"20px\",\"min-width\":\"300px\",\"max-width\":\"300px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"white\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-help-circle \")])]}}])},[_c('span',[_vm._v(\" Choose a group of files to download based on file type from the currently filtered search results. \")])]),_c('Treeselect',{attrs:{\"multiple\":\"\",\"value-consists-of\":\"LEAF_PRIORITY\",\"open-direction\":\"below\",\"options\":_vm.options,\"placeholder\":\"Select file type\"},model:{value:(_vm.bulkDownloadSelected),callback:function ($$v) {_vm.bulkDownloadSelected=$$v},expression:\"bulkDownloadSelected\"}}),(!_vm.disabled)?_c('v-dialog',{attrs:{\"width\":400,\"disabled\":_vm.downloadSummary.count === 0},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ml-3\",attrs:{\"color\":\"white\",\"depressed\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" Download ZIP \"),_c('v-icon',{staticClass:\"pl-3\"},[_vm._v(\" mdi-download \")])],1)]}}],null,false,1297551577),model:{value:(_vm.termsDialog),callback:function ($$v) {_vm.termsDialog=$$v},expression:\"termsDialog\"}},[_c('DownloadDialog',{attrs:{\"loading\":_vm.loading},on:{\"clicked\":_vm.createAndDownload}})],1):_c('v-chip',{staticClass:\"grow text-subtitle-1 ml-4\",on:{\"click\":_vm.handleLoginClick}},[_vm._v(\" Log in to download \")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Ref, ref, watch } from '@vue/composition-api';\nimport {\n api, BulkDownload, BulkDownloadAggregateSummary, BulkDownloadSummary, Condition, DataObjectFilter,\n} from '@/data/api';\nimport useRequest from './useRequest';\n\n/**\n * Encapsulates API and state for bulk download.\n */\nexport default function useBulkDownload(\n conditions: Ref,\n dataObjectFilter: Ref,\n) {\n const downloadOptions = ref({} as BulkDownloadSummary);\n const bulkDownloads = ref([] as BulkDownload[]);\n const { loading, error, request } = useRequest();\n const downloadSummary = ref({\n count: 0,\n size: 0,\n } as BulkDownloadAggregateSummary);\n\n async function download() {\n return request(async () => {\n const val = await api.createBulkDownload(conditions.value, dataObjectFilter.value);\n bulkDownloads.value.push(val);\n return val;\n });\n }\n\n async function getSummary() {\n downloadSummary.value = await api.getBulkDownloadAggregateSummary(\n conditions.value,\n dataObjectFilter.value,\n );\n }\n\n async function getDownloadOptions() {\n downloadOptions.value = await api.getBulkDownloadSummary(conditions.value);\n }\n\n watch([conditions, dataObjectFilter], getSummary);\n watch([conditions], getDownloadOptions);\n\n getDownloadOptions();\n getSummary();\n\n return {\n bulkDownloads,\n downloadOptions,\n downloadSummary,\n error,\n loading,\n download,\n };\n}\n","\nimport { computed, defineComponent, ref } from '@vue/composition-api';\n// @ts-ignore\nimport Treeselect from '@riophae/vue-treeselect';\nimport { stateRefs, dataObjectFilter } from '@/store';\nimport DownloadDialog from '@/components/DownloadDialog.vue';\nimport useBulkDownload from '@/use/useBulkDownload';\nimport { humanFileSize } from '@/data/utils';\nimport { api } from '@/data/api';\n\nexport default defineComponent({\n\n components: {\n DownloadDialog,\n Treeselect,\n },\n props: {\n disabled: {\n type: Boolean,\n default: false,\n },\n searchResultCount: {\n type: Number,\n default: 0,\n },\n },\n\n setup() {\n const termsDialog = ref(false);\n\n const {\n loading,\n downloadSummary,\n downloadOptions,\n download,\n } = useBulkDownload(stateRefs.conditions, dataObjectFilter);\n\n function createLabelString(label: string, count: number, size: number): string {\n const labelString = `${label} (${count}`;\n if (size > 0) {\n return `${labelString}, ${humanFileSize(size)})`;\n }\n return `${labelString})`;\n }\n\n const options = computed(() => Object.entries(downloadOptions.value)\n .map(([key, val]) => ({\n id: key,\n label: createLabelString(key, val.count, val.size),\n children: Object.entries(val.file_types).map(([filetype, fileTypeStats]) => ({\n id: `${key}::${filetype}`,\n label: createLabelString(filetype, fileTypeStats.count, fileTypeStats.size),\n })),\n })));\n\n async function createAndDownload() {\n const val = await download();\n termsDialog.value = false;\n window.location.assign(val.url);\n }\n\n function handleLoginClick() {\n api.initiateOrcidLogin();\n }\n\n return {\n bulkDownloadSelected: stateRefs.bulkDownloadSelected,\n options,\n loading,\n downloadSummary,\n termsDialog,\n createAndDownload,\n humanFileSize,\n handleLoginClick,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BulkDownload.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BulkDownload.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BulkDownload.vue?vue&type=template&id=41dfbf5d&\"\nimport script from \"./BulkDownload.vue?vue&type=script&lang=ts&\"\nexport * from \"./BulkDownload.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VChip,VDialog,VIcon,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',[_c('v-col',{attrs:{\"cols\":12}},[_c('EcosystemSankey',{staticStyle:{\"width\":\"100%\"},attrs:{\"conditions\":_vm.conditions},on:{\"selected\":function($event){return _vm.toggleConditions($event.conditions)}}})],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('GChart',{ref:\"chart\",attrs:{\"settings\":{\n packages: ['sankey'],\n },\"type\":\"Sankey\",\"data\":_vm.sankeyData,\"options\":_vm.sankeyOptions,\"events\":_vm.chartEvents}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EcosystemSankey.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EcosystemSankey.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EcosystemSankey.vue?vue&type=template&id=2d959b7e&\"\nimport script from \"./EcosystemSankey.vue?vue&type=script&lang=js&\"\nexport * from \"./EcosystemSankey.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport EcosystemSankey from '@/components/EcosystemSankey.vue';\n\nimport {\n toggleConditions,\n} from '@/store';\nimport { Condition } from '@/data/api';\n\nexport default defineComponent({\n components: {\n EcosystemSankey,\n },\n\n props: {\n conditions: {\n type: Array as PropType,\n required: true,\n },\n },\n\n setup() {\n return {\n toggleConditions,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnvironmentVisGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnvironmentVisGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnvironmentVisGroup.vue?vue&type=template&id=1af6eb0e&\"\nimport script from \"./EnvironmentVisGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnvironmentVisGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-row',[_c('v-col',{attrs:{\"cols\":5}},[_c('TooltipCard',{attrs:{\"text\":_vm.helpBarchart}},[_c('FacetSummaryWrapper',{attrs:{\"table\":\"omics_processing\",\"field\":\"omics_type\",\"conditions\":_vm.conditions,\"use-all-conditions\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(props){return [_c('FacetBarChart',_vm._b({attrs:{\"height\":360,\"show-title\":false,\"show-baseline\":false,\"left-margin\":120,\"right-margin\":80},on:{\"selected\":function($event){return _vm.toggleConditions($event.conditions)}}},'FacetBarChart',props,false))]}}])})],1)],1),_c('v-col',{attrs:{\"cols\":7}},[_c('TooltipCard',{staticClass:\"pa-1\",attrs:{\"text\":_vm.helpMap}},[_c('ClusterMap',{attrs:{\"conditions\":_vm.conditions,\"height\":360},on:{\"selected\":function($event){return _vm.setBoundsFromMap($event)}}})],1)],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('TooltipCard',{staticClass:\"py-2\",attrs:{\"text\":_vm.helpTimeline}},[_c('BinnedSummaryWrapper',{attrs:{\"table\":\"biosample\",\"field\":\"collection_date\",\"conditions\":_vm.conditions,\"use-all-conditions\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(props){return [_c('DateHistogram',_vm._b({on:{\"select\":function($event){return _vm.setUniqueCondition(['collection_date'], ['biosample'], $event.conditions)}}},'DateHistogram',props,false))]}}])})],1)],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('TooltipCard',{staticClass:\"py-0 d-flex flex-column justify-center fill-height\",attrs:{\"text\":_vm.helpUpset}},[_c('ChartContainer',{attrs:{\"height\":160},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar width = ref.width;\nvar height = ref.height;\nreturn [_c('UpSet',_vm._b({on:{\"select\":function($event){return _vm.setUniqueCondition(\n ['omics_type'], ['omics_processing'], $event.conditions)}}},'UpSet',{\n width: width,\n height: height,\n data: _vm.upsetData,\n tooltips: _vm.staticUpsetTooltips,\n order: 'Samples',\n },false))]}}])}),_c('div',{staticClass:\"mx-5 upset-legend\"},_vm._l((_vm.staticUpsetTooltips),function(value,key){return _c('span',{key:key},[_vm._v(\" \"+_vm._s(key)+\": \"+_vm._s(value)+\" \")])}),0)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('GChart',{ref:\"chartRef\",attrs:{\"type\":\"BarChart\",\"data\":_vm.chartData,\"options\":_vm.barChartOptions,\"events\":_vm.chartEvents}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n computed, defineComponent, PropType, ref,\n} from '@vue/composition-api';\n// @ts-ignore\nimport { GChart } from 'vue-google-charts';\nimport { fieldDisplayName } from '@/util';\nimport { ecosystems } from '@/encoding';\nimport { FacetSummaryResponse } from '@/data/api';\n\nexport default defineComponent({\n name: 'FacetBarChart',\n components: {\n GChart,\n },\n props: {\n showTitle: {\n type: Boolean,\n default: true,\n },\n showBaseline: {\n type: Boolean,\n default: true,\n },\n leftMargin: {\n type: Number,\n default: 80,\n },\n rightMargin: {\n type: Number,\n default: 40,\n },\n chart: {\n type: String,\n default: null,\n },\n table: {\n type: String,\n default: null,\n },\n field: {\n type: String,\n default: null,\n },\n height: {\n type: Number,\n default: 200,\n },\n stacked: {\n type: Boolean,\n default: true,\n },\n facetSummary: {\n type: Array as PropType,\n required: true,\n },\n facetSummaryUnconditional: {\n type: Array as PropType,\n required: true,\n },\n },\n\n setup(props, { emit, root }) {\n const chartRef = ref();\n const chartEvents = {\n select: () => {\n const chart = chartRef.value.chartObject;\n const selection = chart.getSelection();\n const value = props.facetSummaryUnconditional[selection[0].row].facet;\n if (selection.length === 1) {\n emit('selected', {\n conditions: [{\n field: props.field,\n op: '==',\n value,\n table: props.table,\n }],\n });\n }\n },\n };\n const chartData = computed(() => ([\n [\n { label: fieldDisplayName(props.field) },\n { label: 'Match', role: 'data' },\n { role: 'scope' },\n { role: 'style' },\n { label: 'No Match', role: 'data' },\n { role: 'scope' },\n { role: 'style' },\n { role: 'annotation' },\n ],\n ...props.facetSummaryUnconditional.map(\n (facet) => {\n const count = (props.facetSummary.find((e) => e.facet === facet.facet) || {}).count || 0;\n const excludedCount = facet.count - ((props.facetSummary.find(\n (e) => e.facet === facet.facet,\n ) || {}).count || 0);\n return [\n fieldDisplayName(facet.facet),\n count,\n true,\n count > 0 ? (\n ecosystems.find((e) => e.name === facet.facet)\n || { color: root.$vuetify.theme.currentTheme.primary }\n ).color : 'lightgray',\n excludedCount,\n false,\n excludedCount > 0 ? 'lightgray' : root.$vuetify.theme.currentTheme.primary,\n count > 0 ? `${count}` : 'No match',\n ];\n },\n ),\n ]));\n const barChartOptions = computed(() => ({\n height: props.height,\n chartArea: {\n left: props.leftMargin,\n right: props.rightMargin,\n top: 0,\n width: '85%',\n height: '100%',\n },\n hAxis: {\n textStyle: {\n fontName: 'Roboto',\n },\n gridlines: {\n count: 0,\n },\n ticks: [],\n baselineColor: props.showBaseline ? 'black' : 'transparent',\n baseline: 0,\n viewWindowMode: 'maximized',\n },\n vAxis: {\n textStyle: {\n fontName: 'Roboto',\n },\n },\n legend: { position: 'none' },\n annotations: { alwaysOutside: true, stem: { color: 'transparent' } },\n title: props.showTitle ? fieldDisplayName(props.field) : null,\n isStacked: true,\n }));\n\n return {\n chartRef,\n chartEvents,\n chartData,\n barChartOptions,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FacetBarChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FacetBarChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FacetBarChart.vue?vue&type=template&id=5cfdabf5&\"\nimport script from \"./FacetBarChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./FacetBarChart.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:\"histogram\"},[_c('ChartContainer',{scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar width = ref.width;\nvar height = ref.height;\nreturn [_c('TimeHistogram',_vm._b({ref:\"histogram\",on:{\"onBrushEnd\":_vm.onBrushEnd}},'TimeHistogram',{ width: width, height: height, selectedData: _vm.facetSummary, totalData: _vm.facetSummaryUnconditional, range: _vm.range || [] },false))]}},{key:\"below\",fn:function(){return [_c('div',{staticClass:\"mx-4 d-flex\"},[_c('v-spacer'),_c('h4',[_vm._v(\"Collection Date\")]),_c('v-spacer')],1)]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"containerRef\"},[_c('div',{style:({ width: _vm.widths, height: _vm.heights })},[_c('svg',{ref:\"svg\",attrs:{\"width\":_vm.widths,\"height\":_vm.heights}},[_vm._t(\"default\",null,null,{ width: _vm.width, height: _vm.height })],2)]),_vm._t(\"below\",null,null,{ width: _vm.width })],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n computed, defineComponent, onBeforeUnmount, onMounted, ref,\n} from '@vue/composition-api';\n\ninterface ResizeObserverEntry {\n contentRect: Readonly<{\n width: number;\n height: number;\n }>;\n target: Readonly;\n}\n/*\n ChartContainer provides information like width and height to a chart.\n It might be reasonable to provide this in the future with composition functions.\n*/\nexport default defineComponent({\n props: {\n height: {\n type: Number,\n default: 120,\n },\n },\n\n setup(props) {\n const width = ref(800);\n const widths = computed(() => `${width.value}px`);\n const heights = computed(() => `${props.height}px`);\n const containerRef = ref();\n const ro = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n entries.forEach((entry) => {\n width.value = entry.contentRect.width || 200;\n });\n });\n\n onMounted(() => {\n if (containerRef.value) {\n ro.observe(containerRef.value);\n }\n });\n onBeforeUnmount(() => {\n ro?.disconnect();\n });\n\n return {\n width,\n widths,\n heights,\n containerRef,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartContainer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartContainer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChartContainer.vue?vue&type=template&id=4902e296&\"\nimport script from \"./ChartContainer.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartContainer.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('svg',{ref:\"svgRoot\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeHistogram.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeHistogram.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TimeHistogram.vue?vue&type=template&id=759d293a&scoped=true&\"\nimport script from \"./TimeHistogram.vue?vue&type=script&lang=js&\"\nexport * from \"./TimeHistogram.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TimeHistogram.vue?vue&type=style&index=0&id=759d293a&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"759d293a\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateHistogram.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateHistogram.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DateHistogram.vue?vue&type=template&id=96b00404&scoped=true&\"\nimport script from \"./DateHistogram.vue?vue&type=script&lang=js&\"\nexport * from \"./DateHistogram.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DateHistogram.vue?vue&type=style&index=0&id=96b00404&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"96b00404\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{ref:\"svgRoot\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpSet.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpSet.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UpSet.vue?vue&type=template&id=7eb45878&\"\nimport script from \"./UpSet.vue?vue&type=script&lang=js&\"\nexport * from \"./UpSet.vue?vue&type=script&lang=js&\"\nimport style0 from \"./UpSet.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t(\"default\",null,null,{\n facetSummary: _vm.facetSummary,\n facetSummaryAggregate: _vm.facetSummaryAggregate,\n facetSummaryUnconditional: _vm.facetSummaryUnconditional,\n field: _vm.field,\n conditions: _vm.conditions,\n myConditions: _vm.myConditions,\n otherConditions: _vm.otherConditions,\n table: _vm.table,\n })],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default {\n computed: {\n otherConditions() {\n // conditions from OTHER fields\n return this.conditions.filter((c) => (c.field !== this.field) || (c.table !== this.table));\n },\n myConditions() {\n // conditions that match our field.\n return this.conditions.filter((c) => (c.field === this.field) && (c.table === this.table));\n },\n },\n};\n","import { valueDisplayName } from '@/util';\nimport { api } from '@/data/api';\n\nimport SegmentConditions from './SegmentConditions';\n\nexport default {\n mixins: [SegmentConditions],\n\n props: {\n field: {\n type: String,\n required: true,\n },\n table: {\n type: String,\n required: true,\n },\n useAllConditions: {\n type: Boolean,\n default: false,\n },\n conditions: {\n type: Array,\n default: () => [],\n },\n },\n\n data() {\n return {\n facetSummary: [],\n facetSummaryUnconditional: [],\n };\n },\n\n computed: {\n facetSummaryAggregate() {\n return this.facetSummary\n .map((item) => ({\n ...item,\n isSelectable: true,\n name: valueDisplayName(this.field, item.facet),\n }))\n .concat(this.facetSummaryUnconditional\n .filter((item1) => !this.facetSummary.some((item2) => item1.facet === item2.facet))\n .map((item) => ({\n ...item,\n count: 0,\n isSelectable: false,\n name: valueDisplayName(this.field, item.facet),\n })));\n },\n },\n\n asyncComputed: {\n facetSummary: {\n get() {\n return api.getFacetSummary(\n this.table,\n this.field,\n this.otherConditions\n .concat(this.useAllConditions ? this.myConditions : []),\n );\n },\n default: [],\n },\n facetSummaryUnconditional: {\n get() {\n return api.getFacetSummary(\n this.table,\n this.field,\n [],\n );\n },\n default: [],\n },\n },\n};\n","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FacetSummaryWrapper.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FacetSummaryWrapper.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FacetSummaryWrapper.vue?vue&type=template&id=d7595dc6&\"\nimport script from \"./FacetSummaryWrapper.vue?vue&type=script&lang=js&\"\nexport * from \"./FacetSummaryWrapper.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t(\"default\",null,null,{\n facetSummary: _vm.facetSummary,\n facetSummaryUnconditional: _vm.facetSummaryUnconditional,\n field: _vm.field,\n table: _vm.table,\n myConditions: _vm.myConditions,\n otherConditions: _vm.otherConditions,\n })],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { api } from '../data/api';\n\nimport SegmentConditions from './SegmentConditions';\n\nexport default {\n mixins: [SegmentConditions],\n\n props: {\n field: {\n type: String,\n required: true,\n },\n table: {\n type: String,\n required: true,\n },\n useAllConditions: {\n type: Boolean,\n default: false,\n },\n conditions: {\n type: Array,\n default: () => [],\n },\n },\n\n data() {\n return {\n facetSummary: [],\n };\n },\n\n asyncComputed: {\n facetSummary: {\n get() {\n return api.getBinnedFacet(\n this.table,\n this.field,\n this.otherConditions\n .concat(this.useAllConditions ? this.myConditions : []),\n );\n },\n default: {},\n },\n facetSummaryUnconditional: {\n get() {\n return api.getBinnedFacet(\n this.table,\n this.field,\n [],\n );\n },\n default: {},\n },\n },\n};\n","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BinnedSummaryWrapper.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BinnedSummaryWrapper.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BinnedSummaryWrapper.vue?vue&type=template&id=3226f4b8&\"\nimport script from \"./BinnedSummaryWrapper.vue?vue&type=script&lang=js&\"\nexport * from \"./BinnedSummaryWrapper.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"id\":_vm.id,\"outlined\":\"\"}},[_c('v-tooltip',{attrs:{\"attach\":(\"#\" + _vm.id),\"left\":\"\",\"nudge-bottom\":\"20px\",\"min-width\":\"300px\",\"max-width\":\"300px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({staticStyle:{\"position\":\"absolute\",\"right\":\"6px\",\"top\":\"6px\",\"z-index\":\"2\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-help-circle \")])]}}])},[_c('span',[_vm._v(_vm._s(_vm.text))])]),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TooltipCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TooltipCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TooltipCard.vue?vue&type=template&id=dcc7406a&\"\nimport script from \"./TooltipCard.vue?vue&type=script&lang=js&\"\nexport * from \"./TooltipCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VCard,VIcon,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-btn',{style:({\n position: 'absolute',\n bottom: '20px',\n left: '20px',\n zIndex: 2,\n }),attrs:{\"small\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.updateBounds}},[_vm._v(\" Search this region \")]),_c('l-map',{ref:\"mapRef\",style:({\n height: (_vm.height + \"px\"),\n width: '100%',\n zIndex: 1,\n }),on:{\"update:bounds\":function($event){_vm.mapProps.bounds = $event}}},[_c('l-tile-layer',{attrs:{\"url\":_vm.mapProps.url,\"attribution\":_vm.mapProps.attribution,\"options\":{\n maxZoom: 22,\n maxNativeZoom: 18,\n }}}),_c('l-marker-cluster',_vm._l((_vm.mapData),function(m,i){return _c('l-marker',{key:i,attrs:{\"lat-lng\":m.latLng}},[_c('l-popup',[_c('h3',[_vm._v(\"Sample Collection\")]),_c('ul',[_c('li',[_vm._v(\"Ecosystem: \"+_vm._s(m.ecosystem))]),_c('li',[_vm._v(\"Ecosystem Category: \"+_vm._s(m.ecosystem_category))]),_c('li',[_vm._v(\"Latitude: \"+_vm._s(m.latitude))]),_c('li',[_vm._v(\"Longitude: \"+_vm._s(m.longitude))])])])],1)}),1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n computed,\n defineComponent, PropType, reactive, ref, toRef, watch, watchEffect,\n} from '@vue/composition-api';\n\n/**\n * LEAFLET imports\n */\nimport L, { Icon } from 'leaflet';\nimport 'leaflet/dist/leaflet.css';\nimport {\n LMap, LTileLayer, LMarker, LPopup,\n} from 'vue2-leaflet';\n// @ts-ignore\nimport * as markerurl from 'leaflet/dist/images/marker-icon.png';\n// @ts-ignore\nimport * as retinaurl from 'leaflet/dist/images/marker-icon-2x.png';\n// @ts-ignore\nimport * as shadowurl from 'leaflet/dist/images/marker-shadow.png';\n// @ts-ignore\nimport LMarkerCluster from 'vue2-leaflet-markercluster';\nimport 'leaflet.markercluster/dist/MarkerCluster.Default.css';\nimport 'leaflet.markercluster/dist/MarkerCluster.css';\n/**\n * END LEAFLET\n */\n\nimport { api, Condition, EnvironmentGeospatialEntity } from '@/data/api';\n\n/**\n * LEAFLET icon missing hack fix\n * https://vue2-leaflet.netlify.app/quickstart/#marker-icons-are-missing\n */\ntype D = Icon.Default & {\n _getIconUrl?: string;\n};\n\ndelete (Icon.Default.prototype as D)._getIconUrl;\nIcon.Default.mergeOptions({\n iconRetinaUrl: retinaurl,\n iconUrl: markerurl,\n shadowUrl: shadowurl,\n});\n/**\n * END icon hack\n */\n\nexport default defineComponent({\n components: {\n LMap,\n LTileLayer,\n LMarker,\n LPopup,\n LMarkerCluster,\n },\n\n props: {\n conditions: {\n type: Array as PropType,\n default: () => [],\n },\n height: {\n type: Number,\n default: 360,\n },\n },\n\n setup(props, { emit }) {\n const mapRef = ref();\n const mapProps = reactive({\n bounds: null as L.LatLngBoundsExpression | null,\n zoom: 3,\n url: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',\n iconSize: 64,\n attribution: '© OpenStreetMap contributors',\n });\n const mapData = ref(\n [] as (EnvironmentGeospatialEntity & { latLng: L.LatLngExpression, key: string })[],\n );\n const mapCenter = computed(() => {\n const data: L.LatLngExpression[] = mapData.value.map(({ latLng }) => latLng);\n if (data.length === 0) return null;\n // @ts-ignore -- the type annotation for this method is wrong.\n return (new L.LatLngBounds(data));\n });\n\n async function getMapData() {\n await new Promise((res) => {\n window.setTimeout(res, 300);\n });\n const data = await api.getEnvironmentGeospatialAggregation(props.conditions);\n const values: any[] = [];\n data.forEach((cluster, index) => {\n if (cluster.latitude && cluster.longitude) {\n for (let i = 0; i < cluster.count; i += 1) {\n values.push({\n ...cluster,\n key: `${index}_${i}`,\n latLng: L.latLng(cluster.latitude, cluster.longitude),\n });\n }\n }\n });\n mapData.value = values;\n }\n\n function updateBounds() {\n const { bounds } = mapProps;\n if (bounds) {\n emit('selected', [\n {\n field: 'latitude',\n op: 'between',\n value: [\n // @ts-ignore\n bounds._southWest.lat, bounds._northEast.lat,\n ],\n table: 'biosample',\n },\n {\n field: 'longitude',\n op: 'between',\n value: [\n // @ts-ignore\n bounds._southWest.lng, bounds._northEast.lng,\n ],\n table: 'biosample',\n },\n ]);\n }\n }\n\n getMapData();\n\n watchEffect(() => {\n if (mapRef.value && mapCenter.value) {\n const fitBoundsOptions = {\n padding: [20, 20],\n maxZoom: 5,\n };\n mapRef.value.fitBounds(mapCenter.value, fitBoundsOptions);\n mapRef.value.mapObject.invalidateSize(false);\n }\n });\n watch([toRef(props, 'conditions')], getMapData);\n\n return {\n mapCenter,\n mapData,\n mapProps,\n mapRef,\n /* methods */\n updateBounds,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClusterMap.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ClusterMap.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClusterMap.vue?vue&type=template&id=104ef02c&\"\nimport script from \"./ClusterMap.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClusterMap.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\ninstallComponents(component, {VBtn})\n","\nimport {\n computed, defineComponent, ref, watchEffect, PropType,\n} from '@vue/composition-api';\nimport FacetBarChart from '@/components/Presentation/FacetBarChart.vue';\nimport DateHistogram from '@/components/Presentation/DateHistogram.vue';\n\nimport UpSet from '@/components/Presentation/UpSet.vue';\nimport ChartContainer from '@/components/Presentation/ChartContainer.vue';\n// TODO: replace with composition functions\nimport FacetSummaryWrapper from '@/components/Wrappers/FacetSummaryWrapper.vue';\nimport BinnedSummaryWrapper from '@/components/Wrappers/BinnedSummaryWrapper.vue';\n// ENDTODO\nimport TooltipCard from '@/components/TooltipCard.vue';\nimport ClusterMap from '@/components/ClusterMap.vue';\n\nimport {\n toggleConditions, removeConditions, setUniqueCondition,\n} from '@/store';\nimport { api, Condition, FacetSummaryResponse } from '@/data/api';\nimport { makeSetsFromBitmask } from '@/encoding';\n\nconst helpBarchart = 'Displays the number of omics processing runs for each data type available. Click on a bar to filter by data type.';\nconst helpMap = 'Displays geographical location (latitude, longitude) of sample collection sites. Click on a cluster to zoom in. Click \"Search this regon\" to limit search to the current map bounds.';\nconst helpTimeline = 'Displays sample collections grouped by collection date. Click and drag on the timeline to filter by collection date. The selected region can be moved by dragging it from the center. The region can be resized by clicking and dragging at the edges. Click outside the region to clear it.';\nconst helpUpset = 'This upset plot shows the number of samples with corresponding omic data associated. For example: there are 43 samples from 1 study that have metagenomics, metatranscriptomics, and natural organic matter characterizations.';\n\nconst staticUpsetTooltips = {\n MG: 'Metagenomics',\n MP: 'Metaproteomics',\n MB: 'Metabolomics',\n MT: 'Metatranscriptomics',\n NOM: 'Natural Organic Matter',\n LIP: 'Lipidomics',\n};\n\nexport default defineComponent({\n name: 'SampleVisGroup',\n\n components: {\n ChartContainer,\n DateHistogram,\n FacetBarChart,\n ClusterMap,\n TooltipCard,\n // TODO replace with composition functions\n FacetSummaryWrapper,\n BinnedSummaryWrapper,\n UpSet,\n },\n\n props: {\n conditions: {\n type: Array as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const sampleFacetSummary = ref([] as FacetSummaryResponse[]);\n const studyFacetSummary = ref([] as FacetSummaryResponse[]);\n\n const upsetData = computed(() => {\n const multiomicsObj: Record = {};\n sampleFacetSummary.value.forEach(({ facet, count }) => {\n if (parseInt(facet, 10) === 0) {\n return;\n }\n multiomicsObj[facet] = {\n counts: {\n Samples: count,\n Studies: 0,\n },\n sets: makeSetsFromBitmask(facet),\n };\n });\n studyFacetSummary.value.forEach(({ facet, count }) => {\n if (parseInt(facet, 10) === 0) {\n return;\n }\n if (!multiomicsObj[facet]) {\n multiomicsObj[facet] = {\n counts: {\n Samples: 0,\n },\n sets: makeSetsFromBitmask(facet),\n };\n }\n multiomicsObj[facet].counts.Studies = count;\n });\n return Object.keys(multiomicsObj)\n .sort((a, b) => parseInt(a, 10) - parseInt(b, 10))\n .map((k) => multiomicsObj[k]);\n });\n\n watchEffect(async () => {\n sampleFacetSummary.value = await api.getFacetSummary(\n 'biosample',\n 'multiomics',\n props.conditions,\n );\n studyFacetSummary.value = await api.getFacetSummary(\n 'study',\n 'multiomics',\n props.conditions,\n );\n });\n\n function setBoundsFromMap(val: Condition[]) {\n setUniqueCondition(['latitude', 'longitude'], ['biosample'], val);\n }\n\n return {\n helpBarchart,\n helpMap,\n helpTimeline,\n helpUpset,\n toggleConditions,\n setUniqueCondition,\n removeConditions,\n setBoundsFromMap,\n staticUpsetTooltips,\n upsetData,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiosampleVisGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiosampleVisGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BiosampleVisGroup.vue?vue&type=template&id=242a1184&scoped=true&\"\nimport script from \"./BiosampleVisGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./BiosampleVisGroup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BiosampleVisGroup.vue?vue&type=style&index=0&id=242a1184&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"242a1184\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-navigation-drawer',{attrs:{\"app\":\"\",\"clipped\":\"\",\"permanent\":\"\",\"width\":\"320\"},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('div',{staticClass:\"mx-3 my-2\"},[(_vm.conditions.length)?_c('div',{staticClass:\"text-subtitle-2 primary--text d-flex flex-row\"},[_c('span',{staticClass:\"grow\"},[_vm._v(\"Active query terms\")]),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"600\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"x-small\":\"\"},on:{\"click\":_vm.removeConditions}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-filter-off\")])],1)]}}],null,false,4013804792)},[_c('span',[_vm._v(\"Clear query terms\")])])],1):_vm._e()]),_c('ConditionChips',{staticClass:\"ma-3\",staticStyle:{\"max-height\":\"50vh\",\"overflow\":\"auto\"},attrs:{\"conditions\":_vm.conditions,\"db-summary\":_vm.dbSummary},on:{\"remove\":function($event){return _vm.removeConditions([$event])}},scopedSlots:_vm._u([{key:\"menu\",fn:function(ref){\nvar field = ref.field;\nvar table = ref.table;\nvar isOpen = ref.isOpen;\nvar toggleMenu = ref.toggleMenu;\nreturn [_c('MenuContent',_vm._b({attrs:{\"update\":\"\"},on:{\"select\":function($event){return _vm.setConditions($event.conditions)},\"close\":function($event){return toggleMenu(false)}}},'MenuContent',{\n field: field,\n table: table,\n isOpen: isOpen,\n conditions: _vm.conditions,\n summary: _vm.dbSummaryForTable(table, field),\n },false))]}}])}),_c('div',{staticClass:\"font-weight-bold text-subtitle-2 primary--text mx-3\"},[(_vm.isLoading)?_c('span',[_vm._v(\" Loading results... \")]):_c('span',[_vm._v(\"Found \"+_vm._s(_vm.resultsCount)+\" samples. \"),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"600\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"x-small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-help-circle\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.biosampleDescription))])])],1)]),_c('v-divider',{staticClass:\"my-3\"})]},proxy:true}])},[_c('FacetedSearch',{attrs:{\"filter-text\":_vm.filterText,\"facet-values\":_vm.textSearchResults,\"conditions\":_vm.conditions,\"fields\":_vm.FunctionSearchFacets},on:{\"update:filterText\":function($event){_vm.filterText=$event},\"update:filter-text\":function($event){_vm.filterText=$event},\"select\":function($event){return _vm.toggleConditions([$event])}},scopedSlots:_vm._u([{key:\"menu\",fn:function(ref){\n var field = ref.field;\n var table = ref.table;\n var isOpen = ref.isOpen;\n var toggleMenu = ref.toggleMenu;\nreturn [_c('MenuContent',_vm._b({on:{\"select\":function($event){return _vm.setConditions($event.conditions)},\"close\":function($event){return toggleMenu(false)}}},'MenuContent',{\n field: field,\n table: table,\n isOpen: isOpen,\n summary: _vm.dbSummaryForTable(table, field),\n conditions: _vm.conditions,\n },false))]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('transition-group',{attrs:{\"name\":\"list\"}},_vm._l((_vm.conditionGroups),function(group){return _c('v-card',{key:group.key,staticClass:\"d-flex flex-row pa-1 my-2\",attrs:{\"color\":\"rgb(79, 59, 128, 0.2)\"}},[_c('div',{staticStyle:{\"width\":\"94%\"}},[_c('span',{staticClass:\"text-subtitle-2\"},[_vm._v(\" \"+_vm._s(_vm.fieldDisplayName(group.field, group.table))+\" \")]),_c('span',{staticClass:\"text-caption\"},[_vm._v(\" [\"+_vm._s(_vm.verb(group.conditions[0].op))+\"] \")]),_c('transition-group',{attrs:{\"name\":\"chip\"}},_vm._l((group.conditions),function(cond){return _c('v-chip',{key:JSON.stringify(cond.value),staticClass:\"ma-1 chip\",staticStyle:{\"max-width\":\"90%\"},attrs:{\"small\":\"\",\"close\":\"\",\"label\":\"\"},on:{\"click:close\":function($event){return _vm.$emit('remove', cond)}}},[_c('span',{staticClass:\"chip-content\"},[_vm._v(\" \"+_vm._s(_vm.valueTransform(cond.value, cond.field, cond.table))+\" \")])])}),1)],1),(group.key !== 'multiomicsbiosample')?_c('v-menu',{attrs:{\"offset-x\":\"\",\"nudge-right\":10,\"close-on-content-click\":false,\"value\":_vm.menuState[group.key]},on:{\"input\":function($event){return _vm.toggleMenu(group.key, $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('div',_vm._g({staticClass:\"expand d-flex flex-column justify-center\",staticStyle:{\"width\":\"6%\"}},on),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" mdi-play \")])],1)]}}],null,true)},[_c('v-card',{attrs:{\"width\":\"500\"}},[_vm._t(\"menu\",null,null,{\n field: group.field,\n table: group.table,\n isOpen: _vm.menuState[group.key],\n toggleMenu: function (val) { return _vm.toggleMenu(group.key, false); },\n })],2)],1):_vm._e()],1)}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConditionChips.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConditionChips.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConditionChips.vue?vue&type=template&id=06f3eab8&scoped=true&\"\nimport script from \"./ConditionChips.vue?vue&type=script&lang=js&\"\nexport * from \"./ConditionChips.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ConditionChips.vue?vue&type=style&index=0&id=06f3eab8&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"06f3eab8\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VCard,VChip,VIcon,VMenu})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-card-title',{staticClass:\"pb-0\"},[_vm._v(\" \"+_vm._s(_vm.fieldDisplayName(_vm.field, _vm.table))+\" \"),(_vm.summary.units)?_c('span',{staticClass:\"pl-2\"},[_vm._v(\" (\"+_vm._s(_vm.summary.units.name)+\") \")]):_vm._e(),_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),(_vm.description)?_c('v-card-text',{staticClass:\"py-1 text-caption\",domProps:{\"innerHTML\":_vm._s(_vm.urlify(_vm.description))}}):_vm._e(),(_vm.isOpen)?[(_vm.summary.type === 'string')?_c('filter-list',{attrs:{\"field\":_vm.field,\"table\":_vm.table,\"conditions\":_vm.conditions},on:{\"select\":function($event){return _vm.$emit('select', $event)}}}):_vm._e(),(_vm.geneFunctionTables.includes(_vm.summary.type))?_c('FilterGene',{attrs:{\"field\":_vm.field,\"table\":_vm.table,\"conditions\":_vm.conditions,\"gene-type-params\":_vm.geneFunctionTypeInfo[_vm.summary.type.split('_')[0]],\"gene-type\":_vm.summary.type.split('_')[0]},on:{\"select\":function($event){return _vm.$emit('select', $event)}}}):_vm._e(),(_vm.summary.type === 'date')?_c('filter-date',_vm._b({staticClass:\"pa-5\",on:{\"select\":function($event){return _vm.$emit('select', $event)}}},'filter-date',{\n field: _vm.field, type: _vm.table, conditions: _vm.conditions,\n min: _vm.summary.min,\n max: _vm.summary.max,\n update: _vm.update,\n },false)):(['float', 'integer'].includes(_vm.summary.type))?_c('filter-float',_vm._b({staticClass:\"pa-5\",on:{\"select\":function($event){return _vm.$emit('select', $event)}}},'filter-float',{\n field: _vm.field, type: _vm.table, conditions: _vm.conditions,\n min: _vm.summary.min,\n max: _vm.summary.max,\n update: _vm.update,\n },false)):(['sankey-tree'].includes(_vm.summary.type))?_c('filter-sankey-tree',_vm._b({on:{\"select\":function($event){return _vm.$emit('select', $event)}}},'filter-sankey-tree',{ field: _vm.field, table: _vm.table, conditions: _vm.conditions },false)):(['tree'].includes(_vm.summary.type))?_c('facet-summary-wrapper',_vm._b({scopedSlots:_vm._u([{key:\"default\",fn:function(props){return [_c('filter-tree',_vm._b({on:{\"select\":function($event){return _vm.$emit('select', $event)}}},'filter-tree',props,false))]}}],null,false,1622599516)},'facet-summary-wrapper',{ table: _vm.table, field: _vm.field, conditions: _vm.conditions },false)):_vm._e()]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex flex-column\"},[_c('v-select',{staticClass:\"pb-4\",attrs:{\"items\":_vm.options,\"hide-details\":\"\",\"outlined\":\"\",\"flat\":\"\",\"dense\":\"\"},model:{value:(_vm.selectedOption),callback:function ($$v) {_vm.selectedOption=$$v},expression:\"selectedOption\"}}),_c('div',{staticClass:\"d-flex flex-row align-center pb-4\"},[_c('DateInput',{model:{value:(_vm.value1),callback:function ($$v) {_vm.value1=$$v},expression:\"value1\"}}),(_vm.selectedOption === 'between')?[_c('span',{staticClass:\"px-4\"},[_vm._v(\"and\")]),_c('DateInput',{model:{value:(_vm.value2),callback:function ($$v) {_vm.value2=$$v},expression:\"value2\"}})]:_vm._e()],2),_c('v-btn',{attrs:{\"block\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.addFilter}},[_vm._v(\" \"+_vm._s(_vm.update ? 'Update' : 'Add')+\" Filter \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-menu',{ref:\"menu\",attrs:{\"close-on-content-click\":false,\"return-value\":_vm.value,\"transition\":\"scale-transition\",\"offset-x\":\"\",\"offset-y\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-text-field',_vm._g(_vm._b({attrs:{\"rules\":_vm.textFieldRules,\"label\":\"Choose\",\"prepend-icon\":\"mdi-calendar\"},on:{\"input\":_vm.updateFromTextField},model:{value:(_vm.textFieldDate),callback:function ($$v) {_vm.textFieldDate=$$v},expression:\"textFieldDate\"}},'v-text-field',attrs,false),on))]}}]),model:{value:(_vm.menu),callback:function ($$v) {_vm.menu=$$v},expression:\"menu\"}},[_c('v-date-picker',{attrs:{\"value\":_vm.isoDate,\"no-title\":\"\",\"scrollable\":\"\"},on:{\"input\":_vm.updateFromDatePicker}},[_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.$refs.menu.save(_vm.value)}}},[_vm._v(\" OK \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DateInput.vue?vue&type=template&id=d575eaac&\"\nimport script from \"./DateInput.vue?vue&type=script&lang=js&\"\nexport * from \"./DateInput.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VDatePicker,VMenu,VSpacer,VTextField})\n","\nimport Vue, { PropType } from 'vue';\nimport { Condition, opType } from '@/data/api';\n\nimport DateInput from './DateInput.vue';\n\nexport default Vue.extend({\n components: { DateInput },\n\n props: {\n field: {\n type: String as PropType,\n required: true,\n },\n type: {\n type: String as PropType,\n required: true,\n },\n conditions: {\n type: Array as PropType,\n required: true,\n },\n min: {\n type: String as PropType,\n required: true,\n },\n max: {\n type: String as PropType,\n required: true,\n },\n update: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n return {\n options: [\n { text: 'is between', value: 'between' },\n { text: 'is greater than', value: '>' },\n { text: 'is greater than or equal to', value: '>=' },\n { text: 'is less than', value: '<' },\n { text: 'is less than or equal to', value: '<=' },\n { text: 'is equal to', value: '==' },\n { text: 'is not', value: '!=' },\n ],\n selectedOption: 'between' as opType,\n value1: this.min.toString(),\n value2: this.max.toString(),\n };\n },\n\n computed: {\n otherConditions(): Condition[] {\n // conditions from OTHER fields\n return this.conditions.filter((c) => (c.field !== this.field) || (c.table !== this.type));\n },\n myConditions(): Condition[] {\n // conditions that match our field.\n return this.conditions.filter((c) => (c.field === this.field) && (c.table === this.type));\n },\n },\n\n created() {\n this.loadFromConditions();\n },\n\n methods: {\n loadFromConditions() {\n if (this.myConditions.length === 1) {\n const [condition] = this.myConditions;\n this.selectedOption = condition.op;\n if (condition.op === 'between' && typeof condition.value === 'object') {\n [this.value1, this.value2] = condition.value.map((v) => v.toString());\n } else {\n this.value1 = condition.value.toString();\n }\n }\n },\n addFilter() {\n const value = this.selectedOption === 'between'\n ? [this.value1, this.value2]\n : this.value1;\n const condition = {\n field: this.field,\n op: this.selectedOption,\n value,\n table: this.type,\n };\n this.$emit('select', {\n conditions: [...this.otherConditions, condition],\n });\n },\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterDate.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterDate.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FilterDate.vue?vue&type=template&id=4308e304&\"\nimport script from \"./FilterDate.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilterDate.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\ninstallComponents(component, {VBtn,VSelect})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex flex-column\"},[_c('v-select',{staticClass:\"pb-4\",attrs:{\"items\":_vm.options,\"hide-details\":\"\",\"outlined\":\"\",\"flat\":\"\",\"dense\":\"\"},model:{value:(_vm.selectedOption),callback:function ($$v) {_vm.selectedOption=$$v},expression:\"selectedOption\"}}),_c('div',{staticClass:\"d-flex flex-row align-center pb-4\"},[_c('v-text-field',{attrs:{\"type\":\"number\",\"required\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"flat\":\"\",\"outlined\":\"\"},model:{value:(_vm.value1),callback:function ($$v) {_vm.value1=$$v},expression:\"value1\"}}),(_vm.selectedOption === 'between')?[_c('span',{staticClass:\"px-4\"},[_vm._v(\"and\")]),_c('v-text-field',{attrs:{\"type\":\"number\",\"required\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"flat\":\"\",\"outlined\":\"\"},model:{value:(_vm.value2),callback:function ($$v) {_vm.value2=$$v},expression:\"value2\"}})]:_vm._e()],2),_c('v-btn',{attrs:{\"block\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.addFilter}},[_vm._v(\" \"+_vm._s(_vm.update ? 'Update' : 'Add')+\" Filter \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport Vue, { PropType } from 'vue';\nimport { Condition, opType } from '@/data/api';\n\nexport default Vue.extend({\n props: {\n field: {\n type: String as PropType,\n required: true,\n },\n type: {\n type: String as PropType,\n required: true,\n },\n conditions: {\n type: Array as PropType,\n required: true,\n },\n min: {\n type: Number as PropType,\n required: true,\n },\n max: {\n type: Number as PropType,\n required: true,\n },\n update: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n return {\n options: [\n { text: 'is between', value: 'between' },\n { text: 'is greater than', value: '>' },\n { text: 'is greater than or equal to', value: '>=' },\n { text: 'is less than', value: '<' },\n { text: 'is less than or equal to', value: '<=' },\n { text: 'is equal to', value: '==' },\n { text: 'is not', value: '!=' },\n ],\n selectedOption: 'between' as opType,\n value1: this.min.toString(),\n value2: this.max.toString(),\n };\n },\n\n computed: {\n otherConditions(): Condition[] {\n // conditions from OTHER fields\n return this.conditions.filter((c) => (c.field !== this.field) || (c.table !== this.type));\n },\n myConditions(): Condition[] {\n // conditions that match our field.\n return this.conditions.filter((c) => (c.field === this.field) && (c.table === this.type));\n },\n },\n\n created() {\n this.loadFromConditions();\n },\n\n methods: {\n loadFromConditions() {\n if (this.myConditions.length === 1) {\n const [condition] = this.myConditions;\n this.selectedOption = condition.op;\n if (condition.op === 'between' && typeof condition.value === 'object') {\n [this.value1, this.value2] = condition.value.map((v) => v.toString());\n } else {\n this.value1 = condition.value.toString();\n }\n }\n },\n addFilter() {\n const value = this.selectedOption === 'between'\n ? [parseFloat(this.value1), parseFloat(this.value2)]\n : parseFloat(this.value1);\n const condition = {\n field: this.field,\n op: this.selectedOption,\n value,\n table: this.type,\n };\n this.$emit('select', {\n conditions: [...this.otherConditions, condition],\n });\n },\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterFloat.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterFloat.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FilterFloat.vue?vue&type=template&id=6e0e23fd&\"\nimport script from \"./FilterFloat.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilterFloat.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VSelect,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"match-list-table\"},[_c('v-text-field',{staticClass:\"px-3 my-3\",attrs:{\"solo\":\"\",\"label\":\"search\",\"clearable\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\",\"flat\":\"\",\"append-icon\":\"mdi-magnify\"},model:{value:(_vm.filterText),callback:function ($$v) {_vm.filterText=$$v},expression:\"filterText\"}}),_c('v-data-table',{attrs:{\"value\":_vm.selected,\"dense\":\"\",\"show-select\":\"\",\"height\":\"355px\",\"items-per-page\":10,\"search\":_vm.filterText,\"item-key\":'facet',\"items\":_vm.facetSummaryAggregate,\"headers\":_vm.tableHeaders,\"no-data-text\":'Data is loading.',\"loading\":_vm.facetSummaryAggregate.length === 0 && _vm.createdDelay,\"loading-text\":'Data is loading and could take a while.'},on:{\"item-selected\":_vm.setSelected,\"toggle-select-all\":_vm.toggleSelectAll},scopedSlots:_vm._u([{key:\"item.name\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',{class:{ 'grey--text': !item.isSelectable }},[_vm._v(\" \"+_vm._s(_vm.fieldDisplayName(item.name))+\" \")])]}}],null,true)})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FilterList.vue?vue&type=template&id=2bc1a492&\"\nimport script from \"./FilterList.vue?vue&type=script&lang=js&\"\nexport * from \"./FilterList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VDataTable,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tree-overflow\"},[(_vm.data === null && _vm.createdDelay)?_c('v-progress-linear',{staticStyle:{\"position\":\"absolute\"},attrs:{\"indeterminate\":\"\"}}):_vm._e(),_c('treeselect',{staticClass:\"ma-2 mt-4\",attrs:{\"options\":_vm.tree,\"multiple\":\"\",\"always-open\":\"\",\"max-height\":425,\"value\":_vm.value},on:{\"input\":_vm.setSelected},scopedSlots:_vm._u([{key:\"option-label\",fn:function(ref){\nvar node = ref.node;\nreturn [_c('span',[_vm._v(\" \"+_vm._s(node.label)+\" (\"+_vm._s(node.raw.count)+\") \")])]}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterSankeyTree.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterSankeyTree.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FilterSankeyTree.vue?vue&type=template&id=5ae140d0&scoped=true&\"\nimport script from \"./FilterSankeyTree.vue?vue&type=script&lang=js&\"\nexport * from \"./FilterSankeyTree.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FilterSankeyTree.vue?vue&type=style&index=0&id=5ae140d0&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 \"5ae140d0\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\ninstallComponents(component, {VProgressLinear})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"match-list-table\"},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('div',{staticClass:\"px-4 text-caption\"},[_c('p',[_vm._v(\" \"+_vm._s(_vm.geneTypeParams.description)+\" \")]),(_vm.geneTypeParams.expectedFormats)?_c('p',[_vm._v(\" Expected formats: \"),_c('code',[_vm._v(_vm._s(_vm.geneTypeParams.expectedFormats))])]):_vm._e(),_c('p',{staticClass:\"text-subtitle-2\"},[_vm._v(\" More information at \"),_c('a',{attrs:{\"href\":_vm.geneTypeParams.helpSite}},[_vm._v(_vm._s(_vm.geneTypeParams.helpSite))])])]),_vm._t(\"subtitle\"),_c('v-autocomplete',{staticClass:\"px-3 grow\",attrs:{\"loading\":_vm.loading,\"items\":_vm.items,\"search-input\":_vm.search,\"label\":_vm.geneTypeParams.label,\"clearable\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\",\"flat\":\"\"},on:{\"update:searchInput\":function($event){_vm.search=$event},\"update:search-input\":function($event){_vm.search=$event},\"change\":_vm.addTerm},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],2),_c('v-data-table',{attrs:{\"dense\":\"\",\"height\":\"355px\",\"items-per-page\":10,\"item-key\":'facet',\"items\":_vm.myConditions,\"headers\":_vm.headers},scopedSlots:_vm._u([{key:\"item.value\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('a',{attrs:{\"href\":_vm.geneTypeParams.encodeFunction(item.value, true)}},[_vm._v(\" \"+_vm._s(item.value)+\" \")])]}},{key:\"item.remove\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-btn',{attrs:{\"x-small\":\"\",\"depr\":\"\",\"color\":\"error\"},on:{\"click\":function($event){return _vm.removeTerm(item.value)}}},[_vm._v(\" remove \")])]}}],null,true)})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n computed,\n defineComponent,\n PropType,\n toRef,\n ref,\n watch,\n nextTick,\n} from '@vue/composition-api';\nimport { DataTableHeader } from 'vuetify';\nimport {\n Condition, entityType, KeggTermSearchResponse,\n} from '@/data/api';\nimport {\n keggEncode, GeneFunctionSearchParams,\n} from '@/encoding';\nimport useFacetSummaryData from '@/use/useFacetSummaryData';\nimport useRequest from '@/use/useRequest';\n\nexport default defineComponent({\n\n props: {\n conditions: {\n type: Array as PropType,\n required: true,\n },\n geneTypeParams: {\n type: Object as PropType,\n required: true,\n },\n geneType: {\n type: String,\n default: 'kegg', // can be kegg, cog, or pfam\n },\n },\n\n setup(props, { emit }) {\n const selected = ref(null);\n const conditions = toRef(props, 'conditions');\n const field = ref('id');\n const table = computed(() => {\n const typeToTable: Record = {\n kegg: 'kegg_function',\n cog: 'cog_function',\n pfam: 'pfam_function',\n go: 'go_function',\n };\n return typeToTable[props.geneType];\n });\n const { myConditions } = useFacetSummaryData({ conditions, field, table });\n\n /** Autocomplete state */\n const { loading, request } = useRequest();\n const items = ref([] as { text: string; value: string }[]);\n const search = ref('');\n\n async function geneSearch(): Promise {\n return request(() => props.geneTypeParams.searchFunction(search.value || ''));\n }\n\n function getTermDisplayText(term: string, text: string) {\n if (text) {\n return `${term}: ${text}`;\n }\n return term;\n }\n\n watch(search, async () => {\n const resp = (await geneSearch())\n .map((v: KeggTermSearchResponse) => ({ text: getTermDisplayText(v.term, v.text), value: v.term }));\n if (resp.length === 0 && search.value && props.geneTypeParams.searchWithInputText(search.value)) {\n resp.push({ value: search.value, text: search.value });\n }\n items.value = resp;\n });\n\n const headers: DataTableHeader[] = [\n {\n text: 'Term',\n value: 'value',\n width: '300',\n sortable: true,\n },\n {\n text: 'Remove',\n value: 'remove',\n sortable: false,\n width: 90,\n filterable: false,\n },\n ];\n\n function addTerm(term: string) {\n if (!term) return;\n const newConditions = [...conditions.value, {\n op: '==',\n field: field.value,\n value: props.geneTypeParams.encodeFunction(term, false),\n table: table.value,\n }];\n emit('select', { conditions: newConditions });\n nextTick().then(() => { selected.value = null; });\n }\n\n function removeTerm(term: string) {\n const newConditions = conditions.value\n .filter((c) => !(\n c.field === field.value\n && c.value === term\n && c.table === table.value\n ));\n emit('select', { conditions: newConditions });\n }\n\n return {\n field,\n table,\n headers,\n myConditions,\n /* Autocomplete */\n loading,\n search,\n items,\n selected,\n keggEncode,\n addTerm,\n removeTerm,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterGene.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterGene.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FilterGene.vue?vue&type=template&id=75142933&\"\nimport script from \"./FilterGene.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilterGene.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAutocomplete,VBtn,VDataTable,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tree-overflow\"},[(_vm.loading)?_c('v-progress-linear',{staticStyle:{\"position\":\"absolute\"},attrs:{\"indeterminate\":\"\"}}):(_vm.tree !== null)?_c('treeselect',{staticClass:\"ma-2\",attrs:{\"value\":_vm.selected,\"options\":_vm.tree,\"normailzer\":_vm.normalizer,\"multiple\":\"\",\"always-open\":\"\"},on:{\"input\":_vm.setSelected},scopedSlots:_vm._u([{key:\"option-label\",fn:function(ref){\nvar node = ref.node;\nreturn [_c('span',[_vm._v(\" \"+_vm._s(node.label)+\" (\"+_vm._s(_vm.facetSummaryMap[node.label] || '0')+\") \")])]}}])}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n defineComponent, computed, toRef, PropType,\n} from '@vue/composition-api';\n// @ts-ignore\nimport Treeselect from '@riophae/vue-treeselect';\nimport '@riophae/vue-treeselect/dist/vue-treeselect.css';\n\nimport { cloneDeep } from 'lodash';\nimport {\n Condition, entityType, EnvoNode, FacetSummaryResponse,\n} from '@/data/api';\nimport { unreactive, stateRefs, getTreeData } from '@/store';\nimport useRequest from '@/use/useRequest';\nimport useFacetSummaryData from '@/use/useFacetSummaryData';\n\nexport default defineComponent({\n components: { Treeselect },\n\n props: {\n field: {\n type: String,\n required: true,\n },\n table: {\n type: String as PropType,\n required: true,\n },\n conditions: {\n type: Array as PropType,\n default: () => [],\n },\n facetSummary: {\n type: Array as PropType,\n default: () => [],\n },\n },\n\n setup(props, { emit }) {\n const conditions = toRef(props, 'conditions');\n const field = toRef(props, 'field');\n const table = toRef(props, 'table');\n const { otherConditions, myConditions } = useFacetSummaryData({ conditions, field, table });\n\n const tree = computed(() => {\n let t = stateRefs.treeData.value?.trees[`${props.field}_id`];\n /* Eliminate nodes with only one child from the top */\n while (t && t?.length === 1 && t[0].children?.length) {\n t = t[0].children;\n }\n return t;\n });\n const selected = computed(() => {\n if (stateRefs.treeData.value === null) {\n return [];\n }\n return myConditions.value.map((v) => unreactive.nodeMapLabel[v.value as string].id);\n });\n\n const facetSummaryMap = computed(() => {\n const resp: Record = {};\n props.facetSummary.forEach((v) => { resp[v.facet] = v.count; });\n return resp;\n });\n\n const { loading, request } = useRequest();\n request(getTreeData);\n\n async function setSelected(values: string[]) {\n const c = cloneDeep(otherConditions.value);\n values.forEach((value) => {\n c.push({\n op: '==',\n field: field.value,\n value: unreactive.nodeMapId[value].label,\n table: table.value,\n });\n });\n emit('select', { conditions: c });\n }\n\n function normalizer(node: EnvoNode) {\n return {\n id: node.label,\n label: node.label,\n children: node.children,\n };\n }\n\n return {\n tree, selected, loading, facetSummaryMap, setSelected, normalizer,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterTree.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilterTree.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FilterTree.vue?vue&type=template&id=8c09abfe&scoped=true&\"\nimport script from \"./FilterTree.vue?vue&type=script&lang=ts&\"\nexport * from \"./FilterTree.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FilterTree.vue?vue&type=style&index=0&id=8c09abfe&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 \"8c09abfe\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\ninstallComponents(component, {VProgressLinear})\n","\nimport {\n defineComponent, PropType, onBeforeUnmount, computed,\n} from '@vue/composition-api';\n// @ts-ignore\nimport NmdcSchema from 'nmdc-schema/nmdc_schema/nmdc_materialized_patterns.yaml';\n\nimport { fieldDisplayName } from '@/util';\nimport { getField, geneFunctionTypeInfo, geneFunctionTables } from '@/encoding';\nimport FacetSummaryWrapper from '@/components/Wrappers/FacetSummaryWrapper.vue';\nimport FilterDate from '@/components/Presentation/FilterDate.vue';\nimport FilterFloat from '@/components/Presentation/FilterFloat.vue';\nimport FilterList from '@/components/Presentation/FilterList.vue';\nimport FilterSankeyTree from '@/components/FilterSankeyTree.vue';\nimport FilterGene from '@/components/FilterGene.vue';\nimport FilterTree from '@/components/FilterTree.vue';\nimport { urlify } from '@/data/utils';\nimport { AttributeSummary, Condition, entityType } from '@/data/api';\n\nexport default defineComponent({\n components: {\n FacetSummaryWrapper,\n FilterDate,\n FilterFloat,\n FilterList,\n FilterGene,\n FilterSankeyTree,\n FilterTree,\n },\n\n props: {\n isOpen: {\n type: Boolean,\n required: true,\n },\n field: {\n type: String,\n required: true,\n },\n table: {\n type: String as PropType,\n required: true,\n },\n summary: {\n type: Object as PropType,\n required: true,\n },\n conditions: {\n type: Array as PropType,\n required: true,\n },\n update: {\n type: Boolean,\n default: false,\n },\n },\n\n setup(props, { emit }) {\n onBeforeUnmount(() => emit('close'));\n\n const description = computed(() => {\n const fieldSchemaName = getField(props.field, props.table);\n const schemaName = fieldSchemaName.schemaName || props.field;\n if (schemaName !== undefined) {\n const schema = NmdcSchema.classes[schemaName] || NmdcSchema.slots[schemaName];\n // Avoid restating the field name as a description\n if (schema && schema.description !== schemaName) {\n return schema?.description || '';\n }\n }\n return '';\n });\n\n return {\n description,\n fieldDisplayName,\n getField,\n urlify,\n geneFunctionTypeInfo,\n geneFunctionTables,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MenuContent.vue?vue&type=template&id=62dc2438&\"\nimport script from \"./MenuContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./MenuContent.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCardText,VCardTitle,VIcon,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-text-field',{staticClass:\"mx-3\",attrs:{\"value\":_vm.filterText,\"solo\":\"\",\"label\":\"search\",\"clearable\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\",\"flat\":\"\",\"append-icon\":\"mdi-magnify\"},on:{\"input\":function($event){return _vm.$emit('update:filterText', $event || '')}}}),_c('v-list',{ref:\"list\",staticClass:\"compact\",attrs:{\"dense\":\"\",\"shaped\":\"\"}},[_vm._l((_vm.groupedFields),function(ref){\nvar groupname = ref[0];\nvar filteredFields = ref[1];\nreturn _c('div',{key:groupname},[_c('v-subheader',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.groupedFields.length > 1 && filteredFields.length > 0),expression:\"groupedFields.length > 1 && filteredFields.length > 0\"}]},[_vm._v(\" \"+_vm._s(groupname !== 'undefined' ? groupname : 'Other')+\" \"),(groupname === 'GOLD Ecosystems')?_c('v-tooltip',{attrs:{\"right\":\"\",\"open-delay\":\"600\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"ml-2\",attrs:{\"icon\":\"\",\"x-small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-help-circle\")])],1)]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(_vm.goldDescription))])]):_vm._e()],1),_vm._l((filteredFields),function(sf){return [_c('v-menu',{key:sf.key,attrs:{\"value\":_vm.menuState[sf.key],\"offset-x\":\"\",\"close-on-content-click\":false},on:{\"input\":function($event){return _vm.toggleMenu(sf.key, $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-list-item',_vm._g({directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.hasActiveConditions(sf.key)),expression:\"!hasActiveConditions(sf.key)\"}]},on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.fieldDisplayName(sf.field, sf.table))+\" \")])],1),_c('v-list-item-icon',[_c('v-icon',[_vm._v(\" mdi-play \")])],1)],1)]}}],null,true)},[_c('v-card',{attrs:{\"width\":\"500\"}},[_vm._t(\"menu\",null,null,{\n field: sf.field,\n table: sf.table,\n isOpen: _vm.menuState[sf.key],\n toggleMenu: function (val) { return _vm.toggleMenu(sf.key, val); },\n })],2)],1)]})],2)}),(_vm.facetValues.length && _vm.groupedFields.length)?_c('v-divider',{staticClass:\"my-2\"}):_vm._e(),(_vm.facetValues.length)?_c('v-subheader',[_vm._v(\" Query Options \")]):_vm._e(),_vm._l((_vm.facetValues),function(condition){return _c('v-list-item',{key:((condition.table) + \":\" + (condition.field) + \":\" + (condition.value)),on:{\"click\":function($event){return _vm.$emit('select', condition)}}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(condition.value)+\" \")]),_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(_vm.fieldDisplayName(condition.field))+\" \"),(condition.op === 'like')?_c('span',[_vm._v(\"(\"+_vm._s(_vm.tableName(condition.table))+\")\")]):_vm._e()])],1),_c('v-list-item-icon',{staticClass:\"align-self-center\"},[_c('v-icon',[_vm._v(\" mdi-filter-plus \")])],1)],1)}),(_vm.facetValues.length === 0 && _vm.groupedFields.length === 0)?_c('v-list-item',[_vm._v(\" No search results \")]):_vm._e()],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport Vue, { PropType } from 'vue';\nimport { groupBy } from 'lodash';\n\n// @ts-ignore\nimport NmdcSchema from 'nmdc-schema/nmdc_schema/nmdc_materialized_patterns.yaml';\n\nimport { fieldDisplayName } from '@/util';\nimport * as encoding from '@/encoding';\nimport { Condition, entityType } from '@/data/api';\n\nconst groupOrders = [\n 'study',\n 'function',\n 'sample',\n 'gold ecosystems',\n 'mixs environmental triad',\n 'data generation',\n];\n\nexport interface SearchFacet {\n field: string;\n table: entityType;\n group?: string;\n}\n\ntype KeyedFieldData = encoding.FieldsData & SearchFacet & { key: string; };\n\nexport default Vue.extend({\n props: {\n conditions: {\n type: Array as PropType,\n required: true,\n },\n fields: {\n type: Array as PropType,\n required: true,\n },\n filterText: {\n type: String,\n required: true,\n },\n facetValues: {\n type: Array as PropType,\n required: true,\n },\n },\n data() {\n return {\n menuState: {} as Record,\n };\n },\n computed: {\n privatefilteredFields(): SearchFacet[] {\n const { filterText } = this;\n if (filterText) {\n return this.fields.filter(({ field, table }) => {\n const lower = filterText.toLowerCase();\n return (\n field.toLowerCase().indexOf(lower) >= 0\n || fieldDisplayName(field, table).toLowerCase().indexOf(lower) >= 0\n );\n });\n }\n return this.fields;\n },\n groupedFields(): [string, KeyedFieldData[]][] {\n const fieldsWithMeta = this.privatefilteredFields\n .map((sf) => ({\n key: `${sf.table}_${sf.field}`,\n ...sf,\n ...encoding.getField(sf.field, sf.table),\n }))\n .filter(({ hideFacet }) => !hideFacet)\n .sort(((a, b) => (a.sortKey || 0) - (b.sortKey || 0)));\n return Object.entries(groupBy(fieldsWithMeta, 'group'))\n .sort(([a], [b]) => {\n const ai = groupOrders.indexOf(a.toLowerCase());\n const bi = groupOrders.indexOf(b.toLowerCase());\n return ai - bi;\n });\n },\n goldDescription() {\n // @ts-ignore\n const schema = NmdcSchema.slots.gold_path_field;\n return schema.annotations?.tooltip?.value || '';\n },\n },\n methods: {\n fieldDisplayName,\n toggleMenu(category: string, value: boolean): void {\n Vue.set(this.menuState, category, value);\n },\n hasActiveConditions(category: string): boolean {\n return this.conditions.some((cond) => `${cond.table}_${cond.field}` === category);\n },\n tableName(table: string): string {\n if (table === 'study') {\n return 'Study';\n }\n if (table === 'biosample') {\n return 'Biosample';\n }\n if (table === 'omics_processing') {\n return 'Omics Processing';\n }\n return '';\n },\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FacetedSearch.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FacetedSearch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FacetedSearch.vue?vue&type=template&id=6523e7ab&\"\nimport script from \"./FacetedSearch.vue?vue&type=script&lang=ts&\"\nexport * from \"./FacetedSearch.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VDivider,VIcon,VList,VListItem,VListItemContent,VListItemIcon,VListItemSubtitle,VListItemTitle,VMenu,VSubheader,VTextField,VTooltip})\n","\nimport {\n computed, defineComponent, ref, watch,\n} from '@vue/composition-api';\n// @ts-ignore\nimport NmdcSchema from 'nmdc-schema/nmdc_schema/nmdc_materialized_patterns.yaml';\n\nimport { geneFunctionTables, types } from '@/encoding';\nimport {\n api, Condition, DatabaseSummaryResponse, entityType,\n} from '@/data/api';\n\nimport ConditionChips from '@/components/Presentation/ConditionChips.vue';\n\nimport MenuContent from '@/components/MenuContent.vue';\nimport FacetedSearch, { SearchFacet } from '@/components/FacetedSearch.vue';\n\nimport {\n stateRefs, removeConditions, setConditions, toggleConditions,\n} from '@/store';\n\n/**\n * Sidebar has a fixed list of facets, possibly from different tables.\n */\nconst FunctionSearchFacets: SearchFacet[] = [\n {\n field: 'id',\n table: 'kegg_function',\n },\n {\n field: 'id',\n table: 'cog_function',\n },\n {\n field: 'id',\n table: 'pfam_function',\n },\n {\n field: 'id',\n table: 'go_function',\n },\n /** MIxS Environmental Triad */\n {\n field: 'env_broad_scale',\n table: 'biosample',\n },\n {\n field: 'env_local_scale',\n table: 'biosample',\n },\n {\n field: 'env_medium',\n table: 'biosample',\n },\n /** GOLD */\n {\n field: 'gold_classification',\n table: 'biosample',\n },\n /** Biosample */\n {\n field: 'geo_loc_name',\n table: 'biosample',\n group: 'Sample',\n },\n {\n field: 'depth',\n table: 'biosample',\n group: 'Sample',\n },\n {\n field: 'latitude',\n table: 'biosample',\n group: 'Sample',\n },\n {\n field: 'longitude',\n table: 'biosample',\n group: 'Sample',\n },\n {\n field: 'collection_date',\n table: 'biosample',\n group: 'Sample',\n },\n /** Study */\n {\n field: 'principal_investigator_name',\n table: 'study',\n group: 'Study',\n },\n /** Data Generation */\n {\n field: 'instrument_name',\n table: 'omics_processing',\n group: 'Data Generation',\n },\n {\n field: 'omics_type',\n table: 'omics_processing',\n group: 'Data Generation',\n },\n {\n field: 'processing_institution',\n table: 'omics_processing',\n group: 'Data Generation',\n },\n];\n\nexport default defineComponent({\n components: {\n ConditionChips,\n FacetedSearch,\n MenuContent,\n },\n\n props: {\n resultsCount: {\n type: Number,\n default: 0,\n },\n isLoading: {\n type: Boolean,\n default: false,\n },\n },\n\n setup() {\n const filterText = ref('');\n const textSearchResults = ref([] as Condition[]);\n const dbSummary = ref({} as DatabaseSummaryResponse);\n const biosampleDescription = computed(() => {\n const { schemaName } = types.biosample;\n if (schemaName !== undefined) {\n // @ts-ignore\n const schema = NmdcSchema.classes[schemaName];\n return schema.description || '';\n }\n return '';\n });\n\n api.getDatabaseSummary().then((s) => { dbSummary.value = s; });\n\n function dbSummaryForTable(table: entityType, field: string) {\n if (table in dbSummary.value) {\n return dbSummary.value[table].attributes[field];\n }\n if (geneFunctionTables.includes(table)) {\n const tableToType: Record = {\n kegg_function: 'kegg_function',\n cog_function: 'cog_function',\n pfam_function: 'pfam_function',\n go_function: 'go_function',\n };\n return {\n type: tableToType[table],\n };\n }\n return {};\n }\n\n async function updateSearch() {\n if (filterText.value.length >= 2) {\n textSearchResults.value = await api.textSearch(filterText.value);\n } else {\n textSearchResults.value = [];\n }\n }\n watch(filterText, updateSearch);\n\n return {\n /* data */\n biosampleDescription,\n conditions: stateRefs.conditions,\n dbSummary,\n textSearchResults,\n filterText,\n FunctionSearchFacets,\n types,\n /* methods */\n dbSummaryForTable,\n removeConditions,\n setConditions,\n toggleConditions,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchSidebar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchSidebar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchSidebar.vue?vue&type=template&id=27341051&\"\nimport script from \"./SearchSidebar.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchSidebar.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VDivider,VIcon,VNavigationDrawer,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-menu',{attrs:{\"open-on-hover\":\"\",\"bottom\":\"\",\"left\":\"\",\"offset-y\":\"\",\"close-delay\":\"200\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" mdi-help-circle \")])],1)]}}])},[_c('v-list',[_c('v-list-item',{attrs:{\"href\":\"https://nmdc-documentation.readthedocs.io/en/latest/howto_guides/portal_guide.html\"}},[_c('v-list-item-title',[_vm._v(\"User Guide\")])],1),_c('v-list-item',{attrs:{\"href\":\"https://nmdc-documentation.readthedocs.io/en/latest/index.html\"}},[_c('v-list-item-title',[_vm._v(\"NMDC Docs\")])],1),_c('v-list-item',{attrs:{\"href\":\"https://nmdc-documentation.readthedocs.io/en/latest/tutorials/nav_data_portal.html\"}},[_c('v-list-item-title',[_vm._v(\"Video Tutorial\")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchHelpMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchHelpMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchHelpMenu.vue?vue&type=template&id=4fbffbba&\"\nimport script from \"./SearchHelpMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchHelpMenu.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VIcon,VList,VListItem,VListItemTitle,VMenu})\n","\nimport {\n defineComponent, reactive, computed, ref, Ref,\n\n} from '@vue/composition-api';\n\nimport SearchResults from '@/components/Presentation/SearchResults.vue';\nimport { types } from '@/encoding';\nimport { fieldDisplayName } from '@/util';\nimport { api, Condition, StudySearchResults } from '@/data/api';\n\nimport {\n stateRefs, toggleConditions, dataObjectFilter,\n} from '@/store';\nimport useFacetSummaryData from '@/use/useFacetSummaryData';\nimport usePaginatedResults from '@/use/usePaginatedResults';\nimport useClockGate from '@/use/useClockGate';\nimport SampleListExpansion from '@/components/SampleListExpansion.vue';\nimport AppBanner from '@/components/AppBanner.vue';\nimport BulkDownload from '@/components/BulkDownload.vue';\nimport EnvironmentVisGroup from './EnvironmentVisGroup.vue';\nimport BiosampleVisGroup from './BiosampleVisGroup.vue';\nimport SearchSidebar from './SearchSidebar.vue';\nimport SearchHelpMenu from './SearchHelpMenu.vue';\n\nexport default defineComponent({\n name: 'SearchLayout',\n\n components: {\n AppBanner,\n BiosampleVisGroup,\n BulkDownload,\n EnvironmentVisGroup,\n SampleListExpansion,\n SearchResults,\n SearchSidebar,\n SearchHelpMenu,\n },\n\n setup() {\n const showConsortia = ref(true);\n const showStudies = ref(true);\n /**\n * Study checkbox state logic\n */\n const studyCheckboxState = computed(() => (\n stateRefs.conditions.value\n .filter((c) => c.table === 'study' && c.field === 'study_id')\n .map((c) => c.value)\n ));\n function setChecked(studyId: string, { children = [] as StudySearchResults[], omicsType = '' } = {}) {\n const conditions: Condition[] = [{\n value: studyId,\n table: 'study',\n op: '==',\n field: 'study_id',\n }];\n if (omicsType) {\n conditions.push({\n value: omicsType,\n table: 'omics_processing',\n field: 'omics_type',\n op: '==',\n });\n }\n if (children.length > 0) {\n children.forEach((child) => {\n if (!studyCheckboxState.value.includes(child.id)) {\n conditions.push({\n value: child.id,\n table: 'study',\n field: 'study_id',\n op: '==',\n });\n }\n });\n }\n\n toggleConditions(conditions);\n }\n\n const studyConditions: Ref> = ref>({\n study: [{\n field: 'study_category',\n table: 'study',\n op: '==',\n value: 'research_study',\n }],\n consortia: [{\n field: 'study_category',\n table: 'study',\n op: '==',\n value: 'consortium',\n }],\n });\n\n /**\n * SearchLayout-level settings\n */\n const disableBulkDownload = ref(true);\n api.getAppSettings().then((appSettings) => {\n disableBulkDownload.value = appSettings.disable_bulk_download;\n });\n\n /**\n * Expanded Omics details\n */\n const expandedOmicsDetails = reactive({\n resultId: '',\n omicsProcessingId: '',\n });\n function setExpanded(resultId: string, omicsProcessingId: string) {\n if (expandedOmicsDetails.resultId !== resultId\n || expandedOmicsDetails.omicsProcessingId !== omicsProcessingId) {\n expandedOmicsDetails.resultId = resultId;\n expandedOmicsDetails.omicsProcessingId = omicsProcessingId;\n } else {\n expandedOmicsDetails.resultId = '';\n expandedOmicsDetails.omicsProcessingId = '';\n }\n }\n\n const biosampleType = types.biosample;\n const biosample = usePaginatedResults(stateRefs.conditions, api.searchBiosample, dataObjectFilter);\n\n const studyType = types.study;\n const studySummaryData = useFacetSummaryData({\n field: ref('study_id'),\n table: ref('study'),\n conditions: stateRefs.conditions,\n });\n const studyCondition = computed(() => studyConditions.value.study.concat(studySummaryData.otherConditions.value));\n const consortiumCondition = computed(() => studyConditions.value.consortia.concat(studySummaryData.otherConditions.value));\n\n const study = usePaginatedResults(ref(studyCondition), api.searchStudy, undefined, 5);\n const consortium = usePaginatedResults(ref(consortiumCondition), api.searchStudy, undefined, 5);\n\n const studyResults = computed(() => Object.values(study.data.results.results)\n .map((r) => ({\n ...r,\n name: r.annotations.title || r.name,\n children: r.children?.map((c) => ({\n ...c,\n name: c.annotations.title || c.name,\n })),\n })));\n const consortiumStudyResults = computed(() => Object.values(consortium.data.results.results)\n .map((r) => ({\n ...r,\n name: r.annotations.title || r.name,\n children: r.children?.map((c) => ({\n ...c,\n name: c.annotations.title || c.name,\n })),\n })));\n\n const loggedInUser = computed(() => stateRefs.user.value !== null);\n\n const vistab = ref(0);\n const gatedOmicsVisConditions = useClockGate(\n computed(() => (vistab.value === 0)),\n stateRefs.conditions,\n );\n const gatedEnvironmentVisConditions = useClockGate(\n computed(() => (vistab.value === 1)),\n stateRefs.conditions,\n );\n const showChildren:Ref = ref([]);\n function toggleChildren(value:StudySearchResults) {\n // eslint-disable-next-line no-unused-expressions\n showChildren.value.includes(value.id) ? showChildren.value.splice(showChildren.value.indexOf(value.id), 1) : showChildren.value.push(value.id);\n }\n\n return {\n /* data */\n biosampleType,\n biosample,\n dataObjectFilter,\n expandedOmicsDetails,\n gatedEnvironmentVisConditions,\n gatedOmicsVisConditions,\n loggedInUser,\n disableBulkDownload,\n studyType,\n study,\n consortium,\n studyResults,\n consortiumStudyResults,\n showConsortia,\n showStudies,\n showChildren,\n studyCheckboxState,\n types,\n vistab,\n toggleChildren,\n /* methods */\n setChecked,\n setExpanded,\n fieldDisplayName,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SearchLayout.vue?vue&type=template&id=272d750e&\"\nimport script from \"./SearchLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./SearchLayout.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VExpandTransition } from 'vuetify/lib/components/transitions';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VProgressLinear } from 'vuetify/lib/components/VProgressLinear';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardTitle,VCheckbox,VChip,VCol,VContainer,VDivider,VExpandTransition,VIcon,VListItemAction,VMain,VProgressLinear,VRow,VSpacer,VTab,VTabItem,VTabs,VTabsItems,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.result.id)?_c('v-main',[_c('AppBanner'),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('IndividualTitle',{attrs:{\"item\":_vm.result}}),_c('AttributeList',{attrs:{\"type\":\"biosample\",\"item\":_vm.result}})],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"display-1\"},[_vm._v(\" Attributes \")]),_c('v-list',{staticClass:\"d-block py-4\",staticStyle:{\"column-count\":\"3\"}},_vm._l((_vm.displayFields),function(field){return _c('v-col',{key:field,staticClass:\"pa-0 d-inline-block\"},[_c('AttributeItem',_vm._b({},'AttributeItem',{ item: _vm.item, field: field },false))],1)}),1),(_vm.alternateIdentifiers.length > 0 || _vm.item.emsl_biosample_identifiers.length > 0)?_c('v-list',[_c('div',{staticClass:\"display-1\"},[_vm._v(\" Alternative Identifiers \")]),_vm._l((_vm.alternateIdentifiers),function(ref){\nvar name = ref.name;\nvar target = ref.target;\nreturn _c('AttributeItem',_vm._b({key:name},'AttributeItem',{ item: _vm.item, field: _vm.field, link: { name: name, target: target } },false))}),_vm._l((_vm.item.emsl_biosample_identifiers),function(emslId,index){return _c('AttributeItem',_vm._b({key:emslId},'AttributeItem',{ item: _vm.item, field: 'emsl_biosample_identifiers', index: index, displayName: 'EMSL Identifier' },false))})],2):_vm._e(),(_vm.type === 'biosample' && _vm.relatedBiosamples.length)?_c('v-list',[_c('div',{staticClass:\"display-1\"},[_vm._v(\" Related Biosamples \")]),_vm._l((_vm.relatedBiosamples),function(biosample){return _c('v-list-item',{key:biosample.id,attrs:{\"href\":'/details/sample/' + biosample.id}},[_c('v-list-item-avatar',[_c('v-icon',[_vm._v(\"mdi-link\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(biosample.name)+\" \")]),_c('v-list-item-subtitle',[_vm._v(\" ID: \"+_vm._s(biosample.id)+\" \")])],1)],1)})],2):_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 (_vm.link)?_c('v-list-item',{key:_vm.link.name,attrs:{\"href\":_vm.link.target}},[(_vm.image)?_c('img',{staticClass:\"pr-2\",attrs:{\"src\":_vm.image,\"width\":\"160px\",\"alt\":\"Logo\"}}):_c('v-list-item-avatar',[_c('v-icon',[_vm._v(\"mdi-link\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.link.name)+\" \")]),_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(_vm.link.target)+\" \")])],1)],1):_c('v-list-item',_vm._g({attrs:{\"href\":_vm.href(_vm.field),\"target\":_vm.field==='study_id' ? '' : '_blank',\"rel\":\"noopener noreferrer\"}},{\n // TODO: fix warning.\n click: _vm.bindClick ? function () { return _vm.$emit('click'); } : undefined\n }),[(_vm.image)?_c('img',{staticClass:\"pr-2\",attrs:{\"src\":_vm.image,\"width\":\"160px\",\"alt\":\"Logo\"}}):(_vm.getField(_vm.field))?_c('v-list-item-avatar',[_c('v-icon',[_vm._v(\" \"+_vm._s(_vm.getField(_vm.field).icon || 'mdi-text')+\" \")])],1):_vm._e(),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.displayName.length > 0 ? _vm.displayName : _vm.fieldDisplayName(_vm.field))+\" \")]),_c('v-list-item-subtitle',{staticStyle:{\"white-space\":\"initial\"}},[_vm._v(\" \"+_vm._s(_vm.getValue(_vm.field))+\" \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport { getField } from '@/encoding';\nimport { fieldDisplayName, formatBiosampleDepth, valueDisplayName } from '@/util';\nimport { BaseSearchResult, BiosampleSearchResult } from '@/data/api';\n\nexport default defineComponent({\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n field: {\n type: String,\n required: false,\n default: '',\n },\n index: {\n type: Number,\n required: false,\n default: -1,\n },\n link: {\n type: Object as PropType<{ name: string; target: string; } | null>,\n default: null,\n },\n bindClick: {\n type: Boolean,\n default: false,\n },\n image: {\n type: String,\n default: '',\n },\n displayName: {\n type: String,\n required: false,\n default: '',\n },\n },\n\n setup(props) {\n function getValue(field: string) {\n // For the \"depth\" field, format it as a string or `null`.\n // Note: I assert some types here to work around the inaccurate type definitions in `api.ts`.\n if (field === 'depth') {\n return formatBiosampleDepth(props.item.annotations?.depth as object | null, props.item.depth as number | null);\n }\n if (field === 'geo_loc_name') {\n return props.item.annotations.geo_loc_name;\n }\n if (field === 'biosample_categories') {\n return (props.item?.annotations.biosample_categories as string[]).join(', ');\n }\n if (\n field === 'env_broad_scale'\n || field === 'env_local_scale'\n || field === 'env_medium'\n ) {\n const item = props.item as BiosampleSearchResult;\n const env = item[field];\n return `${env.label} (${env.id})`;\n }\n if (field === 'emsl_biosample_identifiers') {\n const item = props.item as BiosampleSearchResult;\n return item.emsl_biosample_identifiers[props.index] || '';\n }\n return valueDisplayName(field, props.item[field]);\n }\n\n function href(field: string) {\n if (field.startsWith('open_in_')) {\n return props.item[field];\n }\n const value = props.item[field] as string;\n if (typeof value === 'string' && value.startsWith('http')) {\n return props.item[field];\n }\n if (field === 'study_id') {\n return `/details/study/${props.item.study_id}`;\n }\n return undefined;\n }\n\n return {\n getField,\n fieldDisplayName,\n getValue,\n href,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AttributeItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AttributeItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AttributeItem.vue?vue&type=template&id=b6248da8&\"\nimport script from \"./AttributeItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./AttributeItem.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAvatar } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VIcon,VListItem,VListItemAvatar,VListItemContent,VListItemSubtitle,VListItemTitle})\n","\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport { isObject } from 'lodash';\n\nimport { BaseSearchResult, BiosampleSearchResult } from '@/data/api';\nimport { getField } from '@/encoding';\nimport AttributeItem from './AttributeItem.vue';\nimport { formatBiosampleDepth } from '@/util';\n\nexport default defineComponent({\n components: { AttributeItem },\n\n props: {\n type: {\n type: String,\n default: '',\n },\n item: {\n type: Object as PropType,\n required: true,\n },\n },\n\n setup(props) {\n const displayFields = computed(() => {\n const skipFields = new Set([\n 'name',\n 'description',\n 'env_broad_scale_id',\n 'env_local_scale_id',\n 'env_medium_id',\n ]);\n const includeFields = new Set([\n 'env_broad_scale',\n 'env_local_scale',\n 'env_medium',\n ]);\n const ret = Object.keys(props.item).filter((field) => {\n if (skipFields.has(field)) {\n return false;\n }\n if (includeFields.has(field)) {\n return true;\n }\n\n // For the \"depth\" field, we only include it if it is something we can format as a string.\n // Note: I assert some types here to work around the inaccurate type definitions in `api.ts`.\n if (field === 'depth') {\n const formattedDepth = formatBiosampleDepth(props.item.annotations?.depth as object | null, props.item.depth as number | null);\n return formattedDepth !== null;\n }\n\n const value = props.item[field];\n return !isObject(value) && value && (!getField(field) || !getField(field).hideAttr);\n });\n\n // add geo_loc_name to after lat/lon\n if (props.item?.annotations?.geo_loc_name !== undefined) {\n const geoLocIndex = ret.includes('latitude') ? ret.indexOf('latitude') + 1 : ret.length;\n ret.splice(geoLocIndex, 0, 'geo_loc_name');\n }\n\n if (props.item?.annotations?.biosample_categories !== undefined) {\n ret.push('biosample_categories');\n }\n\n return ret;\n });\n\n const relatedBiosamples = computed(() => {\n const relatedBiosampleIds = new Set();\n const relatedBiosampleInfo: any[] | Set = [];\n if (props.type !== 'biosample') {\n return relatedBiosampleIds;\n }\n const biosample = props.item as BiosampleSearchResult;\n if (biosample.omics_processing.length) {\n biosample.omics_processing.forEach((omicsProcessing: any) => {\n if (omicsProcessing.biosample_inputs) {\n omicsProcessing.biosample_inputs.forEach((biosampleInput: BiosampleSearchResult) => {\n if (biosampleInput.id && biosampleInput.id !== biosample.id) {\n if (!relatedBiosampleIds.has(biosampleInput.id)) {\n relatedBiosampleInfo.push({ id: biosampleInput.id, name: biosampleInput.name });\n relatedBiosampleIds.add(biosampleInput.id);\n }\n }\n });\n }\n });\n }\n return relatedBiosampleInfo;\n });\n\n const alternateIdentifiers = computed(() => props.item.alternate_identifiers\n .map((id) => ({ name: id, target: `https://identifiers.org/${id}` })));\n return {\n // computed\n alternateIdentifiers,\n displayFields,\n relatedBiosamples,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AttributeList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AttributeList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AttributeList.vue?vue&type=template&id=46219589&\"\nimport script from \"./AttributeList.vue?vue&type=script&lang=ts&\"\nexport * from \"./AttributeList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAvatar } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VCol,VIcon,VList,VListItem,VListItemAvatar,VListItemContent,VListItemSubtitle,VListItemTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{attrs:{\"icon\":\"\",\"x-large\":\"\",\"to\":{name: 'Search'}}},[_c('v-icon',[_vm._v(\"mdi-chevron-left-box\")])],1)],1),_c('v-col',{staticClass:\"grow\"},[_c('div',{staticClass:\"headline\"},[_vm._v(\" \"+_vm._s(_vm.item.annotations.title || _vm.item.name)+\" \")]),(_vm.item[_vm.subtitleKey])?_c('div',{staticClass:\"subtitle-1\"},[_c('span',{staticClass:\"font-weight-bold pr-1\"},[_vm._v(_vm._s(_vm.fieldDisplayName(_vm.subtitleKey)))]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.urlify(_vm.item[_vm.subtitleKey]))}})]):_vm._e(),_vm._t(\"default\")],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent, PropType } from '@vue/composition-api';\n\nimport { BaseSearchResult } from '@/data/api';\nimport { urlify } from '@/data/utils';\nimport { fieldDisplayName } from '@/util';\n\nexport default defineComponent({\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n subtitleKey: {\n type: String,\n default: 'description',\n },\n },\n setup() {\n return { fieldDisplayName, urlify };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndividualTitle.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndividualTitle.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IndividualTitle.vue?vue&type=template&id=1cb9063e&\"\nimport script from \"./IndividualTitle.vue?vue&type=script&lang=ts&\"\nexport * from \"./IndividualTitle.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VContainer,VIcon,VRow})\n","\nimport { defineComponent, ref, watchEffect } from '@vue/composition-api';\nimport { api, BiosampleSearchResult } from '@/data/api';\nimport AppBanner from '@/components/AppBanner.vue';\nimport AttributeList from '@/components/Presentation/AttributeList.vue';\n\nimport IndividualTitle from './IndividualTitle.vue';\n\nexport default defineComponent({\n name: 'SamplePage',\n\n components: {\n AppBanner,\n AttributeList,\n IndividualTitle,\n },\n\n props: {\n id: {\n type: String,\n required: true,\n },\n },\n\n setup(props) {\n const result = ref({} as BiosampleSearchResult);\n\n watchEffect(() => {\n api.getBiosample(props.id).then((b) => { result.value = b; });\n });\n\n return { result };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SamplePage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SamplePage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SamplePage.vue?vue&type=template&id=5f3687b0&\"\nimport script from \"./SamplePage.vue?vue&type=script&lang=ts&\"\nexport * from \"./SamplePage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VContainer,VMain})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.item !== null)?_c('v-main',[_c('AppBanner'),_c('v-row',{class:{'flex-column': _vm.$vuetify.breakpoint.xs}},[_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"7\"}},[_c('v-container',[_c('IndividualTitle',{attrs:{\"item\":_vm.item},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [(_vm.item.omics_processing_counts)?_c('div',[_vm._l((_vm.item.omics_processing_counts),function(val){return [(val.count && (val.type.toLowerCase() !== 'lipidomics'))?_c('v-chip',{key:val.type,staticClass:\"mr-2 my-1\",attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.seeOmicsForStudy(val.type)}}},[_vm._v(\" \"+_vm._s(_vm.fieldDisplayName(val.type))+\": \"+_vm._s(val.count)+\" \")]):_vm._e()]})],2):_vm._e()]},proxy:true}],null,false,3938072790)}),_c('TeamInfo',{attrs:{\"item\":_vm.item}})],1),_c('v-col',{attrs:{\"offset\":\"1\"}},[_c('div',{staticClass:\"display-1\"},[_vm._v(\" NMDC Details \")]),_c('v-list',[_c('AttributeItem',_vm._b({on:{\"click\":function($event){return _vm.seeStudyInContext(_vm.item)}}},'AttributeItem',{ item: _vm.item, field: 'id', bindClick: true },false)),_c('AttributeItem',_vm._b({on:{\"click\":function($event){return _vm.seeStudyInContext(_vm.item)}}},'AttributeItem',{ item: _vm.studyData, field: 'sample_count', bindClick: true },false))],1),(\n _vm.goldLinks.size > 0 ||\n (_vm.item.relevant_protocols && _vm.item.relevant_protocols.length > 0) ||\n _vm.item.principal_investigator_websites.length > 0)?[_c('div',{staticClass:\"display-1\"},[_vm._v(\" Additional Resources \")]),(_vm.goldLinks.size > 0 || (_vm.item.relevant_protocols && _vm.item.relevant_protocols.length > 0) || _vm.item.principal_investigator_websites.length > 0)?_c('v-list',[(_vm.item.relevant_protocols)?_c('v-list-item',[_c('v-list-item-avatar',[_c('v-icon',[_vm._v(\"mdi-file-document\")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"text-h6\"},[_vm._v(\" Protocols \")])],1)],1):_vm._e(),_vm._l(((_vm.item.relevant_protocols || [])),function(proto){return _c('AttributeItem',_vm._b({key:proto,staticStyle:{\"padding-left\":\"60px\"}},'AttributeItem',{\n item: _vm.item,\n link: { name: proto, target: proto},\n field: 'relevant_protocols' }\n ,false))}),(_vm.goldLinks.size > 0 || _vm.item.principal_investigator_websites.length > 0)?_c('v-list-item',[_c('v-list-item-avatar',[_c('v-icon',[_vm._v(\"mdi-file-document\")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"text-h6\"},[_vm._v(\" Links \")])],1)],1):_vm._e(),_vm._l((_vm.goldLinks),function(link){return _c('AttributeItem',_vm._b({key:link,staticStyle:{\"padding-left\":\"60px\"},attrs:{\"image\":_vm.images.gold}},'AttributeItem',{\n item: _vm.item,\n link: {\n name: 'GOLD Metadata',\n target: link\n }\n },false))}),_vm._l(((_vm.item.principal_investigator_websites || [])),function(site){return [_c('AttributeItem',_vm._b({key:site,staticStyle:{\"padding-left\":\"60px\"}},'AttributeItem',{\n item: _vm.item,\n link: { name: site, target: site},\n }\n ,false))]})],2):_vm._e()]:_vm._e()],2)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"5\"}},[(Object.keys(_vm.item.doi_map).length > 0)?_c('div',{staticClass:\"ma-4 pa-2 grey lighten-4\"},[(_vm.data.awardDois.length > 0)?[_c('v-subheader',[_vm._v(\" Award DOIs \")]),_c('v-list',{staticClass:\"transparent\"},[_c('v-divider'),_vm._l((_vm.data.awardDois),function(award,index){return _c('v-list-item',{key:index},[_c('v-list-item-content',[_vm._v(\" \"+_vm._s(award.cite)+\" \"),(award.provider)?_c('div',{staticClass:\"pt-2\"},[_c('span',{staticClass:\"font-weight-bold pr-2\"},[_vm._v(\"Provider:\")]),_c('span',{staticClass:\"text-uppercase\"},[_vm._v(_vm._s(award.provider))])]):_vm._e()]),_c('v-list-item-action',[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.openLink((\"https://doi.org/\" + (award.id)))}}},on),[_c('v-icon',[_vm._v(\"mdi-open-in-new\")])],1)]}}],null,true)},[_c('span',[_vm._v(\"Visit site\")])])],1)],1)})],2)]:_vm._e(),(_vm.data.publicationDois.length > 0)?[_c('v-subheader',[_vm._v(\" Publications \")]),_c('v-divider'),_c('v-list',{staticClass:\"\\n transparent\"},[_vm._l((_vm.data.publicationDois),function(pub,pubIndex){return [_c('v-list-item',{key:pubIndex},[_c('v-list-item-content',[_vm._v(\" \"+_vm._s(pub.cite)+\" \"),(pub.provider)?_c('div',{staticClass:\"pt-2\"},[_c('span',{staticClass:\"font-weight-bold pr-2\"},[_vm._v(\"Provider:\")]),_c('span',{staticClass:\"text-uppercase\"},[_vm._v(_vm._s(pub.provider))])]):_vm._e()]),_c('v-list-item-action',[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.openLink((\"https://doi.org/\" + (pub.id)))}}},on),[_c('v-icon',[_vm._v(\"mdi-open-in-new\")])],1)]}}],null,true)},[_c('span',[_vm._v(\"Visit site\")])])],1)],1)]})],2)]:_vm._e(),(_vm.data.datasetDois.length > 0)?[_c('v-subheader',[_vm._v(\" Data DOIs \")]),_c('v-list',{staticClass:\"transparent\"},[_c('v-divider'),_vm._l((_vm.data.datasetDois),function(dataDOI,index){return _c('v-list-item',{key:index},[_c('v-list-item-content',[_vm._v(\" \"+_vm._s(dataDOI.cite)+\" \"),(dataDOI.provider)?_c('div',{staticClass:\"pt-2\"},[_c('span',{staticClass:\"font-weight-bold pr-2\"},[_vm._v(\"Provider:\")]),_c('span',{staticClass:\"text-uppercase\"},[_vm._v(_vm._s(dataDOI.provider))])]):_vm._e()]),_c('v-list-item-action',[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\nreturn [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.openLink((\"https://doi.org/\" + (dataDOI.id)))}}},on),[_c('v-icon',[_vm._v(\"mdi-open-in-new\")])],1)]}}],null,true)},[_c('span',[_vm._v(\"Visit site\")])])],1)],1)})],2)]:_vm._e()],2):_vm._e(),(_vm.item.part_of && _vm.item.part_of.length > 0)?_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-title',{staticClass:\"display-1\"},[_vm._v(\" Part of: \")]),_c('v-list',_vm._l((_vm.parentStudies),function(study){return _c('v-list-item',{key:study.id,attrs:{\"to\":(\"\" + (study.id))}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-file-document\")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"px-2\"},[_vm._v(\" \"+_vm._s(study.annotations.title)+\" \")])],1)],1)}),1)],1):_vm._e(),(_vm.item.children && _vm.item.children.length > 0)?_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-title',{staticClass:\"display-1\"},[_vm._v(\" Associated Studies: \")]),_c('v-list',_vm._l((_vm.item.children),function(study){return _c('v-list-item',{key:study.id,attrs:{\"to\":(\"\" + (study.id))}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mdi-file-document\")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"px-2\"},[_vm._v(\" \"+_vm._s(study.annotations.title)+\" \")])],1)],1)}),1)],1):_vm._e()],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { InjectionKey, inject, provide } from '@vue/composition-api';\nimport VueRouter from 'vue-router';\n\nconst routerKey: InjectionKey = Symbol('router');\n\nexport function provideRouter(router: VueRouter): void {\n provide(routerKey, router);\n}\n\nexport function useRouter(): void | VueRouter {\n return inject(routerKey)!!;\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-row',{staticClass:\"my-6\",attrs:{\"no-gutters\":!_vm.item.image_url && !_vm.item.principal_investigator_image_url}},[_c('v-col',{staticClass:\"shrink\",attrs:{\"offset\":\"1\"}},[(_vm.item.image_url)?_c('v-img',{key:_vm.item.image_url,attrs:{\"src\":_vm.item.image_url,\"width\":\"200\"}}):(_vm.item.principal_investigator_image_url)?_c('v-avatar',{attrs:{\"size\":200}},[_c('v-img',{attrs:{\"src\":_vm.item.principal_investigator_image_url,\"contain\":_vm.item.id === 'gold:Gs0110119',\"position\":\"40% 25%\"}})],1):_vm._e()],1),_c('v-col',{staticClass:\"grow mx-4 pr-8\"},[_c('v-row',{staticStyle:{\"height\":\"100%\"},attrs:{\"align\":\"center\",\"justify\":\"start\"}},[_c('v-card',{attrs:{\"flat\":\"\"}},[(_vm.item.study_category != 'consortium' && _vm.item.principal_investigator)?_c('div',[_c('div',{staticClass:\"text-h3\"},[_vm._v(\" \"+_vm._s(_vm.item.principal_investigator_name)+\" \")]),_c('div',{staticClass:\"text-h5 py-2\"},[_vm._v(\" Principal investigator \")]),(_vm.hasOrcid)?_c('span',{staticClass:\"py-1\",staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('orcid-id',{attrs:{\"orcid-id\":_vm.getOrcid(_vm.item.principal_investigator),\"authenticated\":false,\"width\":24}})],1):_vm._e()]):_vm._e(),(_vm.item.homepage_website && _vm.item.homepage_website[0])?_c('div',{staticClass:\"text-h5 py-2 primary--text\"},[_vm._v(\" Consortium Homepage: \"),_c('a',{attrs:{\"href\":_vm.item.homepage_website}},[_vm._v(_vm._s(_vm.item.homepage_website[0]))])]):_vm._e(),(_vm.team)?_c('div',{staticClass:\"text-h5 py-2 primary--text\"},[_vm._v(\" Team \")]):_vm._e(),_c('div',{staticClass:\"team\"},_vm._l((_vm.team),function(member){return _c('v-menu',{key:member.applies_to_person.orcid,attrs:{\"bottom\":\"\",\"max-width\":\"450px\",\"nudge-bottom\":\"34\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({staticClass:\"text-subtitle-1 px-1 grey--text text--darken-2\",staticStyle:{\"display\":\"inline-block\",\"text-decoration\":\"underline\"}},'div',attrs,false),on),[_vm._v(\" \"+_vm._s(member.applies_to_person.name)+\" \")])]}}],null,true)},[_c('v-card',{staticClass:\" d-flex flex-column justify-start pa-2\"},[_c('v-card-title',[_vm._v(_vm._s(member.applies_to_person.name))]),_c('v-card-subtitle',[_vm._v(\"CRediT: \"+_vm._s(member.applied_roles.join(', ')))]),(member.applies_to_person.orcid)?_c('orcid-id',{attrs:{\"orcid-id\":_vm.getOrcid(member),\"authenticated\":false,\"width\":24}}):_vm._e()],1)],1)}),1),(_vm.item.funding_sources)?_c('div',[_c('div',{staticClass:\"text-h5 py-2 primary--text\"},[_vm._v(\" Funding Sources \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.item.funding_sources.flat().toString())+\" \")])]):_vm._e()])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{style:({display: 'flex'})},[_c('a',{style:({display: 'flex'}),attrs:{\"href\":(_vm.orcidBaseUrl + \"/\" + _vm.orcidId)}},[(_vm.name)?_c('span',{staticClass:\"mr-1\"},[_vm._v(\" \"+_vm._s(_vm.name)+\" \")]):_vm._e(),_c('img',{attrs:{\"width\":(_vm.width + \"px\"),\"alt\":\"ORCID logo\",\"src\":\"https://orcid.org/assets/vectors/orcid.logo.icon.svg\"}}),(!_vm.name)?_c('span',{staticClass:\"ml-1\"},[_vm._v(\" \"+_vm._s(_vm.orcidId)+\" \")]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent } from '@vue/composition-api';\nimport { ORCID_BASE_URL } from '@/util';\n\nexport default defineComponent({\n props: {\n width: {\n type: Number,\n default: 16,\n },\n name: {\n type: String,\n default: '',\n },\n orcidId: {\n type: String,\n required: true,\n },\n authenticated: {\n type: Boolean,\n required: true,\n },\n orcidBaseUrl: {\n type: String,\n default: ORCID_BASE_URL,\n },\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrcidId.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OrcidId.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OrcidId.vue?vue&type=template&id=7322771e&\"\nimport script from \"./OrcidId.vue?vue&type=script&lang=ts&\"\nexport * from \"./OrcidId.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","\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\nimport { StudySearchResults } from '@/data/api';\nimport OrcidId from './Presentation/OrcidId.vue';\n\nfunction getOrcid(person: any) {\n const orcid = person?.applies_to_person?.orcid ?? person?.orcid ?? '';\n return orcid.replace('orcid:', '');\n}\n\nexport default defineComponent({\n components: {\n OrcidId,\n },\n props: {\n item: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n const team = computed(() => props.item.has_credit_associations);\n const hasOrcid = computed(() => props.item.principal_investigator?.orcid);\n return {\n team, getOrcid, hasOrcid,\n };\n },\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamInfo.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamInfo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TeamInfo.vue?vue&type=template&id=1efdf97a&\"\nimport script from \"./TeamInfo.vue?vue&type=script&lang=ts&\"\nexport * from \"./TeamInfo.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TeamInfo.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardSubtitle } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAvatar,VCard,VCardSubtitle,VCardTitle,VCol,VImg,VMenu,VRow})\n","\nimport {\n computed, defineComponent, watchEffect, ref, watch,\n} from '@vue/composition-api';\n\nimport { isObject } from 'lodash';\n// @ts-ignore\nimport Cite from 'citation-js';\nimport {\n typeWithCardinality, valueCardinality, fieldDisplayName,\n} from '@/util';\nimport {\n api, StudySearchResults, DOI, Condition,\n} from '@/data/api';\nimport { setUniqueCondition, setConditions } from '@/store';\nimport { useRouter } from '@/use/useRouter';\nimport AppBanner from '@/components/AppBanner.vue';\nimport AttributeItem from '@/components/Presentation/AttributeItem.vue';\nimport IndividualTitle from '@/views/IndividualResults/IndividualTitle.vue';\nimport TeamInfo from '@/components/TeamInfo.vue';\n/**\n * Override citations for certain DOIs\n */\n interface CitationOverridesType {\n [key: string]: string;\n}\nconst CitationOverrides: CitationOverridesType = {\n '10.46936/10.25585/60000017': 'Doktycz, M. (2020) BioScales - Defining plant gene function and its connection to ecosystem nitrogen and carbon cycling [Data set]. DOE Joint Genome Institute. https://doi.org/10.46936/10.25585/60000017',\n};\nconst GoldStudyLinkBase = 'https://gold.jgi.doe.gov/study?id=';\n\nexport default defineComponent({\n\n components: {\n AppBanner,\n AttributeItem,\n IndividualTitle,\n TeamInfo,\n },\n\n props: {\n id: {\n type: String,\n required: true,\n },\n },\n\n setup(props) {\n const dois = ref({\n awardDois: [] as DOI[],\n publicationDois: [] as DOI[],\n datasetDois: [] as DOI[],\n massiveDois: [] as DOI[],\n essDiveDois: [] as DOI[],\n });\n\n const item = ref(null as StudySearchResults | null);\n const parentStudies = ref([]as StudySearchResults[]);\n\n watch(item, () => {\n if (item.value?.part_of) {\n item.value.part_of.forEach((id: string) => {\n if (!parentStudies.value.some((study) => study.id === id)) {\n api.getStudy(id).then((b) => {\n parentStudies.value.push(b);\n });\n }\n });\n } else {\n parentStudies.value = [];\n }\n });\n\n watchEffect(() => {\n api.getStudy(props.id).then((b) => { item.value = b; });\n });\n\n const studyData = computed(() => Object.values(item)\n .map((val) => ({\n ...val,\n sample_count: val?.children?.reduce((acc: number, child: StudySearchResults) => acc + child.sample_count, val.sample_count),\n }))[0]);\n\n const displayFields = computed(() => {\n if (item.value === null) {\n return [];\n }\n return Object.entries(item.value).filter(([field, value]) => {\n if (['name', 'description'].includes(field)) {\n return false;\n }\n return !isObject(value);\n });\n });\n\n const goldLinks = computed(() => {\n if (!item.value?.gold_study_identifiers && !item.value?.open_in_gold) {\n return new Set();\n }\n const links = new Set();\n if (item.value.open_in_gold) {\n links.add(item.value.open_in_gold);\n }\n if (item.value.gold_study_identifiers) {\n item.value.gold_study_identifiers.forEach((identifier: string) => {\n if (identifier.toLowerCase().startsWith('gold:')) {\n links.add(GoldStudyLinkBase + identifier.substring(5));\n }\n });\n }\n return links;\n });\n\n function relatedTypeDescription(relatedType: string) {\n if (item.value) {\n const n = valueCardinality(item.value[`${relatedType}_id`]);\n return `${n} ${typeWithCardinality(relatedType, n)}`;\n }\n return '';\n }\n\n function openLink(url: string) {\n window.open(url, '_blank');\n }\n\n function formatAPA(citation: any) {\n return citation.format('bibliography', {\n format: 'text',\n template: 'apa',\n lang: 'en-US',\n });\n }\n\n const router = useRouter();\n\n function seeOmicsForStudy(omicsType = '') {\n setUniqueCondition(\n ['study_id', 'omics_type'],\n ['study', 'omics_processing'],\n [{\n value: props.id,\n table: 'study',\n op: '==',\n field: 'id',\n }, {\n value: omicsType,\n table: 'omics_processing',\n field: 'omics_type',\n op: '==',\n }],\n );\n /* @ts-ignore */\n router.go({ name: 'Search' });\n }\n\n function seeStudyInContext(item: StudySearchResults) {\n const conditions: Condition[] = [{\n op: '==',\n table: 'study',\n field: 'study_id',\n value: props.id,\n }];\n if (item.children.length > 0) {\n item.children.forEach((child: StudySearchResults) => {\n conditions.push({\n value: child.id,\n table: 'study',\n field: 'study_id',\n op: '==',\n });\n });\n }\n setConditions(conditions, true);\n }\n\n watch(item, async (_item) => {\n const doiMap = _item?.doi_map;\n if (doiMap) {\n dois.value.awardDois = [];\n dois.value.publicationDois = [];\n dois.value.datasetDois = [];\n dois.value.awardDois = Object.values(doiMap)\n .filter((doi) => doi.category === 'award_doi')\n .map((doi) => [{\n cite: CitationOverrides[doi.info.DOI] || formatAPA(new Cite(doi.info.DOI)),\n id: doi.info.DOI,\n provider: doi.provider,\n }]).flat();\n dois.value.datasetDois = Object.values(doiMap)\n .filter((doi) => doi.category === 'dataset_doi')\n .map((doi) => [{\n cite: CitationOverrides[doi.info.DOI] || formatAPA(new Cite(doi.info.DOI)),\n id: doi.info.DOI,\n provider: doi.provider,\n }]).flat();\n dois.value.publicationDois = Object.values(doiMap)\n .filter((doi) => doi.category === 'publication_doi')\n .map((doi) => [{\n cite: CitationOverrides[doi.info.DOI] || formatAPA(new Cite(doi.info.DOI)),\n id: doi.info.DOI,\n provider: doi.provider,\n }]).flat();\n }\n });\n return {\n CitationOverrides,\n GoldStudyLinkBase,\n goldLinks,\n data: dois,\n item,\n studyData,\n displayFields,\n /* Methods */\n seeOmicsForStudy,\n relatedTypeDescription,\n openLink,\n formatAPA,\n typeWithCardinality,\n fieldDisplayName,\n seeStudyInContext,\n parentStudies,\n images: {\n // eslint-disable-next-line global-require\n gold: require('@/assets/GOLD.png'),\n // eslint-disable-next-line global-require\n ess: require('@/assets/ESS.png'),\n // eslint-disable-next-line global-require\n massive: require('@/assets/massive.png'),\n },\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StudyPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StudyPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StudyPage.vue?vue&type=template&id=30ca9d39&\"\nimport script from \"./StudyPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./StudyPage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemAction } from 'vuetify/lib/components/VList';\nimport { VListItemAvatar } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemIcon } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardTitle,VChip,VCol,VContainer,VDivider,VIcon,VList,VListItem,VListItemAction,VListItemAvatar,VListItemContent,VListItemIcon,VListItemTitle,VMain,VRow,VSubheader,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-main',[_c('AppBanner'),_c('v-container',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-title',{staticClass:\"text-h4\"},[_vm._v(\" Users \")]),_c('v-card',{attrs:{\"outlined\":\"\"}},[_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"dense\":\"\",\"headers\":_vm.headers,\"items\":_vm.users.data.results.results,\"server-items-length\":_vm.users.data.results.count,\"options\":_vm.options,\"loading\":_vm.users.loading.value,\"items-per-page\":_vm.users.data.limit,\"footer-props\":{itemsPerPageOptions : [10, 20, 50] },\"item-key\":\"name\"},on:{\"update:options\":function($event){_vm.options=$event},\"update:itemsPerPage\":function($event){return _vm.$set(_vm.users.data, \"limit\", $event)},\"update:items-per-page\":function($event){return _vm.$set(_vm.users.data, \"limit\", $event)}},scopedSlots:_vm._u([{key:\"item.orcid\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('orcid-id',{attrs:{\"orcid-id\":item.orcid,\"authenticated\":true,\"width\":24}})]}},{key:\"item.is_admin\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-switch',{staticClass:\"mt-2\",attrs:{\"disabled\":item.name==_vm.currentUser},on:{\"click\":function($event){return _vm.updateAdminStatus(item)}},model:{value:(item.is_admin),callback:function ($$v) {_vm.$set(item, \"is_admin\", $$v)},expression:\"item.is_admin\"}})]}}],null,true)})],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent, ref, watch } from '@vue/composition-api';\nimport { DataTableHeader } from 'vuetify';\nimport { api } from '@/data/api';\nimport { stateRefs } from '@/store';\nimport { User } from '@/types';\nimport usePaginatedResults from '@/use/usePaginatedResults';\nimport AppBanner from '@/components/AppBanner.vue';\nimport OrcidId from '../../components/Presentation/OrcidId.vue';\n\nexport default defineComponent({\n components: { AppBanner, OrcidId },\n\n setup() {\n const currentUser = stateRefs.user;\n const itemsPerPage = 10;\n const options = ref({\n page: 1,\n itemsPerPage,\n });\n const headers : DataTableHeader[] = [\n {\n text: 'ORCID',\n align: 'start',\n sortable: false,\n value: 'orcid',\n },\n { text: 'Name', value: 'name', sortable: false },\n { text: 'Admin', value: 'is_admin', sortable: false },\n ];\n\n const users = usePaginatedResults(ref([]), api.getAllUsers, ref([]), itemsPerPage);\n watch(options, () => users.setPage(options.value.page), { deep: true });\n\n async function updateAdminStatus(item: User) {\n await api.updateUser(item.id, item);\n }\n\n return {\n headers,\n users,\n updateAdminStatus,\n options,\n currentUser,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserPage.vue?vue&type=template&id=4b772096&\"\nimport script from \"./UserPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserPage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VSwitch } from 'vuetify/lib/components/VSwitch';\ninstallComponents(component, {VCard,VCardTitle,VContainer,VDataTable,VMain,VSwitch})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-main',[_c('AppBanner'),_c('v-container',[(_vm.userLoading)?_c('div',[_vm._v(\" Loading... \")]):(_vm.user)?_c('div',[_c('div',{staticClass:\"mb-8\"},[_c('div',{staticClass:\"py-2\"},[_c('span',{staticClass:\"text-h4\"},[_vm._v(_vm._s(_vm.user.name))]),(_vm.user.is_admin)?_c('v-chip',{staticClass:\"mx-2\",staticStyle:{\"vertical-align\":\"baseline\"},attrs:{\"color\":\"primary\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-shield-account \")]),_vm._v(\" Admin \")],1):_vm._e()],1),_c('orcid-id',{attrs:{\"orcid-id\":_vm.user.orcid,\"authenticated\":false,\"width\":24}}),_c('v-row',[_c('v-col',{staticClass:\"pt-6\",attrs:{\"cols\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":\"Email\",\"dense\":\"\",\"readonly\":!_vm.editEmail,\"filled\":\"\",\"rules\":_vm.requiredRules('E-mail is required',[\n function (v) { return /.+@.+\\..+/.test(v) || 'E-mail must be valid'; } ])},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.updateEmail(_vm.user.email)}}},[_c('v-icon',{domProps:{\"textContent\":_vm._s(!_vm.editEmail ? 'mdi-pencil' : 'mdi-content-save')}})],1)]},proxy:true},(!_vm.user.email)?{key:\"append-outer\",fn:function(){return [_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"right\":\"\",\"color\":\"red\"}},'v-icon',attrs,false),on),[_vm._v(\" mdi-alert-circle \")])]}}],null,false,3764470461)},[_c('span',[_vm._v(\"Email is required\")])])]},proxy:true}:null],null,true),model:{value:(_vm.user.email),callback:function ($$v) {_vm.$set(_vm.user, \"email\", $$v)},expression:\"user.email\"}})],1)],1)],1),_c('div',{staticClass:\"mb-8\"},[_c('div',{staticClass:\"text-h5 py-2\"},[_vm._v(\" Developer Tools \")]),_c('p',[_vm._v(\" To access authenticated endpoints in the \"),_c('a',{attrs:{\"href\":\"/api/docs\"}},[_vm._v(\"NMDC Data and Submission Portal API\")]),_vm._v(\" you must provide an \"),_c('b',[_vm._v(\"Access Token\")]),_vm._v(\" in the \"),_c('code',[_vm._v(\"Authorization\")]),_vm._v(\" header of the request. An \"),_c('b',[_vm._v(\"Access Token\")]),_vm._v(\" is valid for 24 hours and can be obtained by providing your \"),_c('b',[_vm._v(\"Refresh Token\")]),_vm._v(\" to the \"),_c('code',[_vm._v(\"/auth/refresh\")]),_vm._v(\" endpoint. Your \"),_c('b',[_vm._v(\"Refresh Token\")]),_vm._v(\" and its expiration date can be found below. \"),_c('b',[_vm._v(\"Treat this Refresh Token as securely as you would treat a password!\")])]),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-text-field',{ref:\"refreshTokenInput\",attrs:{\"label\":\"Refresh Token\",\"readonly\":\"\",\"filled\":\"\",\"type\":_vm.isTokenVisible ? 'text' : 'password',\"value\":_vm.refreshToken},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"600\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"right\":\"\"},on:{\"click\":_vm.handleRefreshTokenVisibilityButtonClick}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.isTokenVisible ? 'mdi-eye' : 'mdi-eye-off')+\" \")])]}}])},[(_vm.isTokenVisible)?_c('span',[_vm._v(\"Hide Token\")]):_c('span',[_vm._v(\"Show Token\")])]),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"600\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({attrs:{\"right\":\"\"},on:{\"click\":_vm.handleRefreshTokenCopyButtonClick}},'v-icon',attrs,false),on),[_vm._v(\" mdi-content-copy \")])]}}])},[_c('span',[_vm._v(\"Copy Token\")])])]},proxy:true}])})],1),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-text-field',{attrs:{\"label\":\"Expiration Date\",\"readonly\":\"\",\"filled\":\"\",\"type\":\"text\",\"value\":_vm.refreshTokenExpirationDate}})],1)],1),_c('div',{staticClass:\"text-h6 py-2\"},[_vm._v(\" Example \")]),_c('ol',{staticClass:\"mb-4\"},[_c('li',[_vm._v(\" In your project, store your Refresh Token in a variable named \"),_c('code',[_vm._v(\"REFRESH_TOKEN\")]),_vm._v(\". \")]),_c('li',[_vm._v(\" Exchange your Refresh Token for an Access Token which will be valid for 24 hours. \"),_c('pre',{staticClass:\"grey lighten-4 my-2 pa-2\"},[_vm._v(\"curl \\\\\\n -H \\\"content-type: application/json\\\" \\\\\\n -d \\\"{ \\\\\\\"refresh_token\\\\\\\": \\\\\\\"$REFRESH_TOKEN\\\\\\\"}\\\" \\\\\\n \"+_vm._s(_vm.origin)+\"/auth/refresh\")])]),_c('li',[_vm._v(\" Store the value returned in the \"),_c('code',[_vm._v(\"access_token\")]),_vm._v(\" in your program and use it when making authenticated API requests. \"),_c('pre',{staticClass:\"grey lighten-4 my-2 pa-2\"},[_vm._v(\"curl \\\\\\n -H \\\"content-type: application/json\\\" \\\\\\n -H \\\"Authorization: Bearer $ACCESS_TOKEN\\\" \\\\\\n \"+_vm._s(_vm.origin)+\"/api/me\")])]),_c('li',[_vm._v(\" If your program runs for more than 24 hours. Step 2 will need to be repeated once the Access Token expires. \")]),_c('li',[_vm._v(\" When your Refresh Token expires (one year after your last login), visit this page again to get a new one. \")])])],1)]):_c('div',[_vm._v(\" You must log in to view this page. \")]),_c('v-snackbar',{attrs:{\"timeout\":\"3000\"},model:{value:(_vm.isCopyRefreshTokenSnackbarVisible),callback:function ($$v) {_vm.isCopyRefreshTokenSnackbarVisible=$$v},expression:\"isCopyRefreshTokenSnackbarVisible\"}},[_vm._v(\" Refresh Token Copied to Clipboard \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent, ref } from '@vue/composition-api';\nimport moment from 'moment';\nimport { jwtDecode } from 'jwt-decode';\nimport AppBanner from '@/components/AppBanner.vue';\nimport OrcidId from '@/components/Presentation/OrcidId.vue';\nimport { stateRefs } from '@/store';\nimport { getRefreshToken } from '@/store/localStorage';\nimport { User } from '@/types';\nimport { api } from '@/data/api';\n\nexport default defineComponent({\n name: 'UserDetailPage',\n components: { OrcidId, AppBanner },\n\n setup() {\n const refreshTokenInput = ref();\n\n const refreshToken = getRefreshToken();\n let refreshTokenExpirationDate;\n if (refreshToken != null) {\n const decodedToken = jwtDecode(refreshToken);\n if (decodedToken.exp != null) {\n refreshTokenExpirationDate = moment.unix(decodedToken.exp).format('YYYY-MM-DD HH:mm:ss');\n }\n }\n const isTokenVisible = ref(false);\n const isCopyRefreshTokenSnackbarVisible = ref(false);\n\n const handleRefreshTokenCopyButtonClick = async () => {\n if (refreshToken != null) {\n await navigator.clipboard.writeText(refreshToken);\n isCopyRefreshTokenSnackbarVisible.value = true;\n }\n };\n const { user, userLoading } = stateRefs;\n const handleRefreshTokenVisibilityButtonClick = async () => {\n isTokenVisible.value = !isTokenVisible.value;\n if (isTokenVisible.value) {\n // Wait for the type of the input to change before selecting the text.\n // For some reason, nextTick isn't enough in this case.\n setTimeout(() => {\n refreshTokenInput.value.$refs.input.select();\n }, 50);\n }\n };\n function requiredRules(msg: string, otherRules: ((v: string) => unknown)[] = []) {\n return [\n (v: string) => !!v || msg,\n ...otherRules,\n ];\n }\n const updateUser = async (value:string) => {\n const update: User = {\n id: user.value?.id as string,\n orcid: user.value?.orcid as string,\n name: user.value?.name as string,\n email: value,\n is_admin: user.value?.is_admin as boolean,\n };\n await api.updateUser(user.value?.id as string, update);\n };\n const editEmail = ref(false);\n\n const isEmailValid = ref(false);\n\n const updateEmail = (email: string | undefined) => {\n if (editEmail.value) {\n if (email == null) {\n return;\n }\n isEmailValid.value = /.+@.+\\..+/.test(email);\n if (isEmailValid.value) {\n updateUser(email);\n editEmail.value = !editEmail.value;\n }\n } else {\n editEmail.value = !editEmail.value;\n }\n };\n\n return {\n editEmail,\n updateEmail,\n isEmailValid,\n user,\n userLoading,\n origin: window.location.origin,\n refreshToken,\n refreshTokenExpirationDate,\n refreshTokenInput,\n isCopyRefreshTokenSnackbarVisible,\n isTokenVisible,\n handleRefreshTokenVisibilityButtonClick,\n handleRefreshTokenCopyButtonClick,\n updateUser,\n requiredRules,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserDetailPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserDetailPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserDetailPage.vue?vue&type=template&id=13dc5314&\"\nimport script from \"./UserDetailPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserDetailPage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VChip,VCol,VContainer,VIcon,VMain,VRow,VSnackbar,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-main',[_c('v-container',[(_vm.error === false)?_c('div',[_vm._v(\" Logging in... \")]):_c('div',[_vm._v(\" Something went wrong. \"),_c('a',{attrs:{\"href\":\"/\"}},[_vm._v(\"Go home\")]),_vm._v(\". \")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\nimport { defineComponent, onMounted, ref } from '@vue/composition-api';\nimport { useRouter } from '@/use/useRouter';\nimport { api } from '@/data/api';\nimport { init } from '@/store';\n\n/**\n * This component is responsible for handling the authorization code exchange process. It is the\n * target of the redirect URI after the user has authenticated with ORCID. The code that is passed\n * in the query string is exchanged for an access token and refresh token. Then the user is\n * redirected to the home page (via the init() function).\n */\nexport default defineComponent({\n name: 'LoginPage',\n setup() {\n const router = useRouter();\n\n const error = ref(false);\n\n onMounted(async () => {\n if (!router) {\n error.value = true;\n return;\n }\n\n // If there is no code in the query string, stop here\n const { query } = router.currentRoute;\n if (!('code' in query)) {\n error.value = true;\n return;\n }\n\n // Attempt to exchange the code for an access token\n try {\n await api.exchangeAuthCode(query.code as string);\n } catch (e) {\n error.value = true;\n return;\n }\n\n // If the exchange was successful, call the init() function to load the user's data and\n // redirect to the home page. The init() function can handle the state URL query param\n // that has been persisted through the login process.\n await init(router, true, query.state);\n });\n\n return {\n error,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoginPage.vue?vue&type=template&id=10d2ed9a&\"\nimport script from \"./LoginPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoginPage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VContainer,VMain})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"text-h2\"},[_vm._v(\" Multi-omics Data \"),_c('submission-docs-link',{attrs:{\"anchor\":\"multi-omics-data\"}})],1),_c('div',{staticClass:\"text-h5\"},[_vm._v(\" Information about the type of samples being submitted. \")]),(!_vm.canEditSubmissionMetadata())?_c('submission-permission-banner'):_vm._e(),_c('v-form',{ref:\"formRef\",staticClass:\"my-6 mb-10\",staticStyle:{\"max-width\":\"1000px\"},attrs:{\"disabled\":!_vm.canEditSubmissionMetadata()},model:{value:(_vm.multiOmicsFormValid),callback:function ($$v) {_vm.multiOmicsFormValid=$$v},expression:\"multiOmicsFormValid\"}},[(_vm.contextForm.dataGenerated === true)?_c('div',[_c('v-text-field',{attrs:{\"label\":\"GOLD Study ID\",\"hint\":_vm.Definitions.studyGoldID,\"persistent-hint\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.multiOmicsForm.GOLDStudyId),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"GOLDStudyId\", $$v)},expression:\"multiOmicsForm.GOLDStudyId\"}}),_c('v-text-field',{attrs:{\"label\":\"NCBI BioProject Accession\",\"hint\":_vm.Definitions.studyNCBIBioProjectAccession,\"persistent-hint\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.multiOmicsForm.NCBIBioProjectId),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"NCBIBioProjectId\", $$v)},expression:\"multiOmicsForm.NCBIBioProjectId\"}}),_c('v-combobox',{attrs:{\"label\":\"Alternative Names / IDs\",\"hint\":_vm.Definitions.studyAlternativeNames,\"persistent-hint\":\"\",\"deletable-chips\":\"\",\"multiple\":\"\",\"outlined\":\"\",\"chips\":\"\",\"small-chips\":\"\",\"dense\":\"\",\"append-icon\":\"\"},model:{value:(_vm.multiOmicsForm.alternativeNames),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"alternativeNames\", $$v)},expression:\"multiOmicsForm.alternativeNames\"}})],1):_vm._e(),_c('div',{staticClass:\"text-h4\"},[_vm._v(\" Data types * \")]),_c('div',{staticClass:\"text-body-2 grey--text text--darken-2 mb-4\"},[_vm._v(\" \"+_vm._s(_vm.Definitions.metadataTypes)+\" \")]),(_vm.templateChoiceDisabled)?_c('v-alert',{attrs:{\"type\":\"warning\"}},[_c('p',{staticClass:\"text-h5\"},[_vm._v(\" Data type choice disabled \")]),_vm._v(\" Data types cannot be changed when there are already metadata rows in step 6. To change the template, return to step 6 and remove all data. \")]):_vm._e(),(_vm.contextForm.facilities.includes('JGI') || _vm.contextForm.facilityGenerated === true)?_c('div',[_c('div',{staticClass:\"text-h6\"},[_vm._v(\" Joint Genome Institute (JGI) \")]),_c('v-checkbox',{attrs:{\"label\":\"Metagenome\",\"value\":\"mg-jgi\",\"disabled\":_vm.templateChoiceDisabled,\"hide-details\":\"\"},model:{value:(_vm.multiOmicsForm.omicsProcessingTypes),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"omicsProcessingTypes\", $$v)},expression:\"multiOmicsForm.omicsProcessingTypes\"}}),_c('v-checkbox',{attrs:{\"label\":\"Metagenome (Long Read)\",\"value\":\"mg-lr-jgi\",\"disabled\":_vm.templateChoiceDisabled,\"hide-details\":\"\"},model:{value:(_vm.multiOmicsForm.omicsProcessingTypes),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"omicsProcessingTypes\", $$v)},expression:\"multiOmicsForm.omicsProcessingTypes\"}}),_c('v-checkbox',{attrs:{\"label\":\"Metatranscriptome\",\"value\":\"mt-jgi\",\"disabled\":_vm.templateChoiceDisabled,\"hide-details\":\"\"},model:{value:(_vm.multiOmicsForm.omicsProcessingTypes),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"omicsProcessingTypes\", $$v)},expression:\"multiOmicsForm.omicsProcessingTypes\"}}),_c('v-checkbox',{attrs:{\"label\":\"Metabolome\",\"value\":\"mb-jgi\",\"disabled\":\"\",\"hide-details\":\"\"},model:{value:(_vm.multiOmicsForm.omicsProcessingTypes),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"omicsProcessingTypes\", $$v)},expression:\"multiOmicsForm.omicsProcessingTypes\"}}),(_vm.multiOmicsForm.omicsProcessingTypes.some(function (v) { return v.endsWith('jgi'); }))?_c('v-text-field',{staticClass:\"mt-4\",attrs:{\"rules\":[ function (v) { return !!v || 'JGI Proposal ID/Study ID is required when processing was done at JGI'; } ],\"label\":\"JGI Proposal ID/Study ID *\",\"hint\":\"This is the 6 digit ID assigned to your JGI Proposal and is required when completing metadata for samples to be sent to JGI for sequencing.\",\"persistent-hint\":\"\",\"outlined\":\"\",\"validate-on-blur\":\"\",\"dense\":\"\"},model:{value:(_vm.multiOmicsForm.JGIStudyId),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"JGIStudyId\", $$v)},expression:\"multiOmicsForm.JGIStudyId\"}}):_vm._e()],1):_vm._e(),(_vm.contextForm.facilities.includes('EMSL') || _vm.contextForm.facilityGenerated === true)?_c('div',[_c('div',{staticClass:\"text-h6 mt-4\"},[_vm._v(\" Environmental Molecular Science Laboratory (EMSL) \")]),_c('v-checkbox',{attrs:{\"label\":\"Metaproteome\",\"value\":\"mp-emsl\",\"disabled\":_vm.templateChoiceDisabled,\"hide-details\":\"\"},model:{value:(_vm.multiOmicsForm.omicsProcessingTypes),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"omicsProcessingTypes\", $$v)},expression:\"multiOmicsForm.omicsProcessingTypes\"}}),_c('v-checkbox',{attrs:{\"label\":\"Metabolome\",\"value\":\"mb-emsl\",\"disabled\":_vm.templateChoiceDisabled,\"hide-details\":\"\"},model:{value:(_vm.multiOmicsForm.omicsProcessingTypes),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"omicsProcessingTypes\", $$v)},expression:\"multiOmicsForm.omicsProcessingTypes\"}}),_c('v-checkbox',{attrs:{\"label\":\"Natural Organic Matter (FT-ICR MS)\",\"value\":\"nom-emsl\",\"disabled\":_vm.templateChoiceDisabled,\"hide-details\":\"\"},model:{value:(_vm.multiOmicsForm.omicsProcessingTypes),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"omicsProcessingTypes\", $$v)},expression:\"multiOmicsForm.omicsProcessingTypes\"}}),(_vm.multiOmicsForm.omicsProcessingTypes.some(function (v) { return v.endsWith('emsl'); }))?_c('v-text-field',{staticClass:\"mt-4\",attrs:{\"rules\":[ function (v) { return !!v || 'EMSL Study Number is required when processing was done at EMSL'; } ],\"hint\":\"EMSL Study Number is required when processing was done at EMSL\",\"persistent-hint\":\"\",\"label\":\"EMSL Proposal / Study Number *\",\"outlined\":\"\",\"validate-on-blur\":\"\",\"dense\":\"\"},model:{value:(_vm.multiOmicsForm.studyNumber),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"studyNumber\", $$v)},expression:\"multiOmicsForm.studyNumber\"}}):_vm._e()],1):_vm._e(),_c('div',{staticClass:\"text-h6 mt-4\"},[_vm._v(\" Other Non-DOE \")]),_c('v-checkbox',{attrs:{\"label\":\"Metagenome\",\"value\":\"mg\",\"disabled\":_vm.templateChoiceDisabled,\"hide-details\":\"\"},model:{value:(_vm.multiOmicsForm.omicsProcessingTypes),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"omicsProcessingTypes\", $$v)},expression:\"multiOmicsForm.omicsProcessingTypes\"}}),_c('v-checkbox',{attrs:{\"label\":\"Metatranscriptome\",\"value\":\"mt\",\"disabled\":_vm.templateChoiceDisabled,\"hide-details\":\"\"},model:{value:(_vm.multiOmicsForm.omicsProcessingTypes),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"omicsProcessingTypes\", $$v)},expression:\"multiOmicsForm.omicsProcessingTypes\"}}),_c('v-checkbox',{attrs:{\"label\":\"Metaproteome\",\"value\":\"mp\",\"disabled\":_vm.templateChoiceDisabled,\"hide-details\":\"\"},model:{value:(_vm.multiOmicsForm.omicsProcessingTypes),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"omicsProcessingTypes\", $$v)},expression:\"multiOmicsForm.omicsProcessingTypes\"}}),_c('v-checkbox',{attrs:{\"label\":\"Metabolome\",\"value\":\"mb\",\"disabled\":_vm.templateChoiceDisabled,\"hide-details\":\"\"},model:{value:(_vm.multiOmicsForm.omicsProcessingTypes),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"omicsProcessingTypes\", $$v)},expression:\"multiOmicsForm.omicsProcessingTypes\"}}),_c('v-checkbox',{attrs:{\"label\":\"Natural Organic Matter (FT-ICR MS)\",\"value\":\"nom\",\"disabled\":_vm.templateChoiceDisabled,\"hide-details\":\"\"},model:{value:(_vm.multiOmicsForm.omicsProcessingTypes),callback:function ($$v) {_vm.$set(_vm.multiOmicsForm, \"omicsProcessingTypes\", $$v)},expression:\"multiOmicsForm.omicsProcessingTypes\"}})],1),_c('strong',[_vm._v(\"* indicates required field\")]),_c('div',{staticClass:\"d-flex mt-5\"},[_c('v-btn',{attrs:{\"color\":\"gray\",\"depressed\":\"\",\"to\":{ name: 'Study Form' }}},[_c('v-icon',{staticClass:\"pr-1\"},[_vm._v(\" mdi-arrow-left-circle \")]),_vm._v(\" Go to previous step \")],1),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"depressed\":\"\",\"disabled\":(!_vm.multiOmicsFormValid),\"to\":{ name: 'Environment Package' }}},[_vm._v(\" Go to next step \"),_c('v-icon',{staticClass:\"pl-1\"},[_vm._v(\" mdi-arrow-right-circle \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { User } from '@/types';\n\n/**\n * A manifest of the options available in DataHarmonizer\n */\nexport const EMSL = 'emsl';\nexport const JGI_MG = 'jgi_mg';\nexport const JGI_MG_LR = 'jgi_mg_lr';\nexport const JGT_MT = 'jgi_mt';\nexport interface HarmonizerTemplateInfo {\n displayName: string,\n schemaClass?: string,\n sampleDataSlot?: string,\n status: 'published' | 'mixin' | 'disabled',\n // This value comes from annotations in the schema. It will be populated once the schema is loaded.\n excelWorksheetName?: string,\n}\nexport const HARMONIZER_TEMPLATES: Record = {\n air: {\n displayName: 'air',\n schemaClass: 'AirInterface',\n sampleDataSlot: 'air_data',\n status: 'published',\n },\n 'built environment': {\n displayName: 'built environment',\n schemaClass: 'BuiltEnvInterface',\n sampleDataSlot: 'built_env_data',\n status: 'published',\n },\n 'host-associated': {\n displayName: 'host-associated',\n schemaClass: 'HostAssociatedInterface',\n sampleDataSlot: 'host_associated_data',\n status: 'published',\n },\n 'human-associated': {\n displayName: 'human-associated',\n status: 'disabled',\n },\n 'human-gut': {\n displayName: 'human - gut',\n status: 'disabled',\n },\n 'human-oral': {\n displayName: 'human - oral',\n status: 'disabled',\n },\n 'human-skin': {\n displayName: 'human - skin',\n status: 'disabled',\n },\n 'human-vaginal': {\n displayName: 'human - vaginal',\n status: 'disabled',\n },\n 'hydrocarbon resources-cores': {\n displayName: 'hydrocarbon resources - cores',\n schemaClass: 'HcrCoresInterface',\n sampleDataSlot: 'hcr_cores_data',\n status: 'published',\n },\n 'hydrocarbon resources-fluids_swabs': {\n displayName: 'hydrocarbon resources - fluids swabs',\n schemaClass: 'HcrFluidsSwabsInterface',\n sampleDataSlot: 'hcr_fluids_swabs_data',\n status: 'published',\n },\n 'microbial mat_biofilm': {\n displayName: 'microbial mat_biofilm',\n schemaClass: 'BiofilmInterface',\n sampleDataSlot: 'biofilm_data',\n status: 'published',\n },\n 'miscellaneous natural or artificial environment': {\n displayName: 'miscellaneous natural or artificial environment',\n schemaClass: 'MiscEnvsInterface',\n sampleDataSlot: 'misc_envs_data',\n status: 'published',\n },\n 'plant-associated': {\n displayName: 'plant-associated',\n schemaClass: 'PlantAssociatedInterface',\n sampleDataSlot: 'plant_associated_data',\n status: 'published',\n },\n sediment: {\n displayName: 'sediment',\n schemaClass: 'SedimentInterface',\n sampleDataSlot: 'sediment_data',\n status: 'published',\n },\n soil: {\n displayName: 'soil',\n schemaClass: 'SoilInterface',\n sampleDataSlot: 'soil_data',\n status: 'published',\n },\n water: {\n displayName: 'water',\n schemaClass: 'WaterInterface',\n sampleDataSlot: 'water_data',\n status: 'published',\n },\n [EMSL]: {\n displayName: 'EMSL',\n schemaClass: 'EmslInterface',\n sampleDataSlot: 'emsl_data',\n status: 'mixin',\n },\n [JGI_MG]: {\n displayName: 'JGI MG',\n schemaClass: 'JgiMgInterface',\n sampleDataSlot: 'jgi_mg_data',\n status: 'mixin',\n },\n [JGI_MG_LR]: {\n displayName: 'JGI MG (Long Read)',\n schemaClass: 'JgiMgLrInterface',\n sampleDataSlot: 'jgi_mg_lr_data',\n status: 'mixin',\n },\n [JGT_MT]: {\n displayName: 'JGI MT',\n schemaClass: 'JgiMtInterface',\n sampleDataSlot: 'jgi_mt_data',\n status: 'mixin',\n },\n};\n\nexport enum BiosafetyLevels {\n BSL1 = 'BSL1',\n BSL2 = 'BSL2'\n}\n\nexport enum AwardTypes {\n CSP = 'CSP',\n BERSS = 'BERSS',\n BRCS = 'BRCs',\n MONET = 'MONet',\n FICUS = 'FICUS'\n}\n\nexport enum SuggestionType {\n ALL = 'All Types',\n ADDITIONS = 'Additions Only',\n REPLACEMENTS = 'Replacements Only',\n}\n\nexport enum SuggestionsMode {\n LIVE = 'Live',\n ON_DEMAND = 'On Demand',\n OFF = 'Off',\n}\n\nexport interface CellData {\n row: number,\n col: number,\n text: string,\n}\n\nexport interface ColumnHelpInfo {\n title: string,\n name: string,\n description: string,\n guidance: string,\n examples: string,\n sources: string,\n}\n\nexport interface MetadataSuggestionRequest {\n row: number,\n data: Record,\n}\n\nexport interface MetadataSuggestion {\n type: 'add' | 'replace'\n row: number\n slot: string\n value: string\n current_value?: string\n}\n\nexport interface NmdcAddress {\n name: string;\n email: string;\n phone: string;\n line1: string;\n line2: string;\n city: string;\n state: string;\n postalCode: string;\n country: string;\n}\n\nexport interface MetadataSubmission {\n packageName: (keyof typeof HARMONIZER_TEMPLATES)[];\n contextForm: any;\n addressForm: any;\n templates: string[];\n studyForm: any;\n multiOmicsForm: any;\n sampleData: Record;\n}\n\nexport interface MetadataSubmissionRecord {\n id: string;\n author_orcid: string;\n created: string;\n metadata_submission: MetadataSubmission;\n status: string;\n locked_by: User;\n lock_updated: string;\n permission_level: string | null;\n source_client: 'submission_portal' | 'field_notes' | 'nmdc_edge' | null;\n study_name: string;\n templates: string[];\n is_test_submission: boolean;\n date_last_modified: string;\n}\n\nexport interface PaginatedResponse {\n count: number;\n results: T[];\n}\n\nexport interface LockOperationResult {\n success: boolean;\n message: string\n locked_by?: User | null;\n lock_updated?: string | null;\n}\n\nexport type PermissionTitle = 'Viewer' | 'Metadata Contributor' | 'Editor';\n\nexport type PermissionLevelValues = 'viewer' | 'metadata_contributor' | 'editor' | 'owner';\n\nexport type SubmissionStatus = 'In Progress' | 'Submitted- Pending Review' | 'Complete';\n","const Definitions = {\n studyName: 'A Study Name is required. We recommend the use of standardized, informative study names as described by the GOLD team (Mukherjee et. al., 2023).',\n piName: 'The Principal Investigator who led the study and/or generated the data.',\n piEmail: 'The Principal Investigator\\'s email is required for submission. The submitter does not have to be the Principal Investigator.',\n piOrcid: 'ORCID iD of the Principal Investigator.',\n fundingSources: 'The Funding Source of the research performed under this study should be provided and include an awarding program and the award or grant number. See an existing study for an example.',\n linkOutWebpage: 'Optionally, institute, project, or research lab weblinks can be provided. If your research group or program has a website to share, please include the links.',\n studyDescription: 'The Study Description should provide a summary that includes the context of your study, research, goals, and design. We recommend this be similar to abstract format, describing the entire study similar to how an abstract describes a single publication.',\n studyOptionalNotes: 'Any additional information that is of value to your study can be provided here.',\n studyContributors: 'Other researchers associated with this study.',\n contributorFullName: 'Contributor\\'s name associated with this study. First name, Middle initial, Last name',\n contributorRoles: 'Identify all CRediT roles associated with this contributor. ORCID and CRediT Information.',\n contributorOrcid: 'ORCID iD of the contributor identified.',\n studyAlternativeNames: 'Project, study, or sample set names the are also associated with this submission or other names / identifiers for this study.',\n studyGoldID: 'Provide the GOLD study IDs associated with samples for this study.',\n studyNCBIProjectTitle: 'Provide the NCBI BioProject Title(s) associated with this study.',\n studyNCBIBioProjectAccession: 'Provide the NCBI BioProject Accession Number associated with the listed NCBI BioProject Title.',\n metadataTypes: 'Check all -omics data types associated with samples collected for this study.',\n doi: 'DOI associated with the user project awarded. This is required when data is already generated and can be found here.',\n unknownDoi: 'If selected you will not have to enter the required Award DOIs and you will be contacted by an NMDC team member after you have submitted your data.',\n};\n\nexport default Definitions;\n","import { AxiosResponse } from 'axios';\nimport { client, SearchParams } from '@/data/api';\nimport {\n LockOperationResult,\n MetadataSubmission,\n MetadataSubmissionRecord,\n MetadataSuggestion,\n MetadataSuggestionRequest,\n NmdcAddress,\n PaginatedResponse,\n SuggestionType,\n} from '@/views/SubmissionPortal/types';\n\nfunction addressToString(address: NmdcAddress): string {\n let result = '';\n const contactAndStreetInfo = [address.name, address.email, address.phone, address.line1, address.line2];\n contactAndStreetInfo.forEach((line) => {\n if (line.trim()) {\n result += `${line.trim()}\\n`;\n }\n });\n const stateAndZip = `${address.state} ${address.postalCode}`;\n const joinString = (address.city.trim() && stateAndZip.trim()) ? ', ' : '';\n result += [address.city, stateAndZip].join(joinString);\n return result;\n}\n\nasync function createRecord(record: MetadataSubmission, isTestSubmission: boolean) {\n const resp = await client.post<\n MetadataSubmissionRecord,\n AxiosResponse,\n Partial\n >('metadata_submission', {\n metadata_submission: record,\n source_client: 'submission_portal',\n is_test_submission: isTestSubmission,\n });\n return resp.data;\n}\n\nasync function updateRecord(id: string, record: Partial, status?: string, permissions?: Record) {\n const resp = await client.patch(`metadata_submission/${id}`, {\n metadata_submission: record,\n status,\n permissions,\n });\n return { data: resp.data, httpStatus: resp.status };\n}\n\nasync function listRecords(params: SearchParams) {\n const resp = await client.get>('metadata_submission', {\n params: {\n limit: params.limit,\n offset: params.offset,\n column_sort: params.sortColumn,\n sort_order: params.sortOrder,\n },\n });\n return resp.data;\n}\n\nasync function getRecord(id: string) {\n const resp = await client.get(`metadata_submission/${id}`);\n return resp.data;\n}\n\nasync function lockSubmission(id: string) {\n const resp = await client.put(`metadata_submission/${id}/lock`);\n return resp.data;\n}\n\nasync function unlockSubmission(id: string) {\n const resp = await client.put(`metadata_submission/${id}/unlock`);\n return resp.data;\n}\n\nasync function deleteSubmission(id: string) {\n const resp = await client.delete(`metadata_submission/${id}`);\n return resp.data;\n}\n\nasync function getMetadataSuggestions(data: MetadataSuggestionRequest[], type: SuggestionType) {\n let endpoint = 'metadata_submission/suggest';\n if (type === SuggestionType.ADDITIONS) {\n endpoint += '?types=add';\n } else if (type === SuggestionType.REPLACEMENTS) {\n endpoint += '?types=replace';\n }\n const resp = await client.post<\n MetadataSuggestion[],\n AxiosResponse,\n MetadataSuggestionRequest[]\n >(endpoint, data);\n return resp.data;\n}\n\nexport {\n addressToString,\n createRecord,\n getRecord,\n listRecords,\n updateRecord,\n lockSubmission,\n unlockSubmission,\n deleteSubmission,\n getMetadataSuggestions,\n};\n","import {\n Ref, ref, nextTick,\n} from '@vue/composition-api';\nimport { debounce } from 'lodash';\nimport { DataHarmonizer, Footer } from 'data-harmonizer';\nimport {\n CellData,\n HARMONIZER_TEMPLATES,\n EMSL,\n JGI_MG,\n JGI_MG_LR,\n JGT_MT,\n MetadataSuggestionRequest,\n ColumnHelpInfo,\n} from '@/views/SubmissionPortal/types';\n\n// a simple data structure to define the relationships between the GOLD ecosystem fields\nconst GOLD_FIELDS = {\n ecosystem: {\n upstream: [],\n downstream: ['ecosystem_category', 'ecosystem_type', 'ecosystem_subtype', 'specific_ecosystem'],\n },\n ecosystem_category: {\n upstream: ['ecosystem'],\n downstream: ['ecosystem_type', 'ecosystem_subtype', 'specific_ecosystem'],\n },\n ecosystem_type: {\n upstream: ['ecosystem', 'ecosystem_category'],\n downstream: ['ecosystem_subtype', 'specific_ecosystem'],\n },\n ecosystem_subtype: {\n upstream: ['ecosystem', 'ecosystem_category', 'ecosystem_type'],\n downstream: ['specific_ecosystem'],\n },\n specific_ecosystem: {\n upstream: ['ecosystem', 'ecosystem_category', 'ecosystem_type', 'ecosystem_subtype'],\n downstream: [],\n },\n};\n\nexport function getVariants(checkBoxes: string[], dataGenerated: boolean | undefined, base: string[]): string[] {\n const templates = new Set(base);\n if (dataGenerated) {\n return Array.from(templates);\n }\n if (checkBoxes.includes('mp-emsl') || checkBoxes.includes('mb-emsl') || checkBoxes.includes('nom-emsl')) {\n templates.add(EMSL);\n }\n if (checkBoxes.includes('mg-jgi')) {\n templates.add(JGI_MG);\n }\n if (checkBoxes.includes('mg-lr-jgi')) {\n templates.add(JGI_MG_LR);\n }\n if (checkBoxes.includes('mt-jgi')) {\n templates.add(JGT_MT);\n }\n return Array.from(templates);\n}\n\nexport class HarmonizerApi {\n schemaSectionNames: Ref>;\n\n schemaSectionColumns: Ref>>;\n\n ready: Ref;\n\n goldEcosystemTree: any;\n\n dh: any;\n\n footer: any;\n\n selectedColumn: Ref;\n\n schema: any;\n\n slotNames: string[];\n\n slotInfo: Map;\n\n constructor() {\n this.schemaSectionNames = ref({});\n this.schemaSectionColumns = ref({});\n this.ready = ref(false);\n this.selectedColumn = ref('');\n this.slotNames = [];\n this.slotInfo = new Map();\n }\n\n async init(r: HTMLElement, schema: any, templateName: string | undefined, goldEcosystemTree: any) {\n this.schema = schema;\n this.goldEcosystemTree = goldEcosystemTree;\n\n // Attempt to find each template's underlying schema class, pull the excel_worksheet_name annotation from it\n // and add it to the template object.\n Object.values(HARMONIZER_TEMPLATES).forEach((template) => {\n if (!template.schemaClass) {\n return;\n }\n const classDefinition = schema.classes[template.schemaClass];\n if (!classDefinition) {\n return;\n }\n // eslint-disable-next-line no-param-reassign\n template.excelWorksheetName = classDefinition.annotations?.excel_worksheet_name?.value;\n });\n\n this.dh = new DataHarmonizer(r, {\n modalsRoot: document.querySelector('.harmonizer-style-container'),\n fieldSettings: this._getFieldSettings(),\n columnHelpEntries: ['column', 'description', 'guidance', 'examples'],\n // we use our own custom help sidebar, so turn off DataHarmonizer's built-in one\n helpSidebar: {\n enabled: false,\n },\n });\n this.footer = new Footer(document.querySelector('#harmonizer-footer-root'), this.dh);\n this.dh.useSchema(this.schema, [], templateName);\n this._postTemplateChange();\n\n // @ts-ignore\n window.dh = this.dh;\n\n this.ready.value = true;\n }\n\n _getColumnCoordinates() {\n const ret: Record> = {};\n let column_ptr = 0;\n this.dh.template.forEach((section: any) => {\n ret[section.title] = { '': column_ptr };\n section.children.forEach((column: any) => {\n ret[section.title][column.title] = column_ptr;\n column_ptr += 1;\n });\n });\n return ret;\n }\n\n _getSameRowCellData(columnNames: string[]): string[] {\n const row = this.dh.hot.getSelectedLast()[0];\n return columnNames.map((columnName) => {\n const col = this.dh.getFields().findIndex((field: any) => field.name === columnName);\n if (col < 0) {\n return null;\n }\n return this.dh.hot.getDataAtCell(row, col);\n });\n }\n\n _getGoldOptions(path: string[] = []) {\n let options: any = this.goldEcosystemTree.children;\n for (let i = 0; i < path.length; i += 1) {\n const name = path[i];\n const item = options.find((child: any) => child.name === name);\n if (!item) {\n options = [];\n break;\n }\n options = item.children;\n }\n return options.map((child: any) => child.name);\n }\n\n _getFieldSettings() {\n const fieldSettings: any = {};\n const fieldNames = Object.keys(GOLD_FIELDS);\n for (let i = 0; i < fieldNames.length; i += 1) {\n const field = fieldNames[i] as keyof typeof GOLD_FIELDS;\n fieldSettings[field] = {\n getColumn: (dh: any, col: {[key: string]: any}) => {\n let flatVocab: string[];\n const fieldObj = dh.getFields().find((f: any) => f.name === field);\n if (fieldObj && fieldObj.flatVocabulary) {\n flatVocab = fieldObj.flatVocabulary;\n }\n const newCol = { ...col };\n // define a dynamic source field. this function gets the 'upstream' dependent fields,\n // looks up the valid completions in the GOLD classification tree, and provides those\n // as the autocomplete options. If the field has an enum range in the schema (i.e.\n // the field object has a `flatVocabulary` field here) then the options are restricted\n // to that set.\n newCol.source = (_: any, next: (opts: any) => void) => {\n const dependentRowData = this._getSameRowCellData(GOLD_FIELDS[field].upstream);\n let options = this._getGoldOptions(dependentRowData);\n if (flatVocab) {\n options = options.filter((o: string) => flatVocab.indexOf(o) >= 0);\n }\n next(options);\n };\n newCol.type = 'autocomplete';\n newCol.trimDropdown = false;\n return newCol;\n },\n onChange: (change: any[], fields: any, triggered_changes: any[]) => {\n // clear downstream fields if the value changes\n if (change[2] !== change[3]) {\n const { downstream } = GOLD_FIELDS[field];\n for (let j = 0; j < downstream.length; j += 1) {\n const other = downstream[j];\n const otherIdx = fields.findIndex((f: any) => f.title === other);\n triggered_changes.push([change[0], otherIdx, change[2], null]);\n }\n }\n },\n };\n }\n return fieldSettings;\n }\n\n _postTemplateChange() {\n this.dh.hot.addHook('afterSelection', debounce((_, col: number) => {\n const column = this.dh.getFields()[col];\n if (!column) {\n this.selectedColumn.value = '';\n } else {\n this.selectedColumn.value = column.title;\n }\n }, 200, { leading: true }));\n this.dh.hot.updateSettings({\n search: true,\n customBorders: true,\n height: '100%',\n width: '100%',\n outsideClickDeselects: false,\n });\n this.jumpToRowCol(0, 0);\n this.slotInfo.clear();\n this.dh.getFields().forEach((field: any, idx: number) => {\n this.slotInfo.set(field.name, {\n columnIndex: idx,\n title: field.title || field.name,\n });\n });\n this.slotNames = [...this.slotInfo.keys()];\n }\n\n refreshState() {\n this.schemaSectionNames.value = this.dh.template.reduce((acc: any, section: any) => {\n acc[section.title] = section.name;\n return acc;\n }, {});\n this.schemaSectionColumns.value = this._getColumnCoordinates();\n }\n\n async loadData(data: any[]) {\n if (!this.ready.value) {\n return;\n }\n await this.dh.loadDataObjects(data);\n await this.dh.hot.render();\n this.refreshState();\n }\n\n changeVisibility(value: string) {\n switch (value) {\n case 'all':\n this.dh.showAllColumns();\n break;\n case 'required':\n this.dh.showRequiredColumns();\n break;\n case 'recommended':\n this.dh.showRecommendedColumns();\n break;\n default:\n this.dh.showColumnsBySectionTitle(value);\n }\n }\n\n getHelp(title: string) {\n const field = this.dh.getFields().filter((f: any) => f.title === title)[0];\n return this.dh.getCommentDict(field) as ColumnHelpInfo;\n }\n\n find(query: string) {\n const search = this.dh.hot.getPlugin('search');\n const results = search.query(query);\n nextTick(this.dh.hot.render);\n return results;\n }\n\n highlight(row?: number, col?: number) {\n const borders = this.dh.hot.getPlugin('customBorders');\n nextTick(() => borders.clearBorders());\n if (row !== undefined && col !== undefined) {\n nextTick(() => borders.setBorders([[row, col, row, col]], {\n left: { hide: false, width: 2, color: 'magenta' },\n right: { hide: false, width: 2, color: 'magenta' },\n top: { hide: false, width: 2, color: 'magenta' },\n bottom: { hide: false, width: 2, color: 'magenta' },\n }));\n }\n }\n\n getCellData(row: number, col: number): CellData {\n const text = this.dh.hot.getDataAtCell(row, col);\n return { row, col, text };\n }\n\n setCellData(data: CellData[]) {\n this.dh.hot.setDataAtCell(data.map((d) => [d.row, d.col, d.text]));\n }\n\n /**\n * Get data from the DataHarmonizer grid for the given rows.\n *\n * Like `DataHarmonizer.getDataObjects`, this method returns the data as objects with keys corresponding to the slot\n * names (as opposed to Handsontable's native format, which is an array of arrays) filtering out empty cells, However,\n * unlike `DataHarmonizer.getDataObjects`, this method *does not* attempt to convert the data into native types based\n * on the schema. Instead, it returns the raw data (i.e. always strings).\n * @param rows\n */\n getDataByRows(rows: number[]): MetadataSuggestionRequest[] {\n const rowData: MetadataSuggestionRequest[] = [];\n rows.forEach((row) => {\n // Skip rows that are already in the rowData array\n if (rowData.find((r) => r.row === row)) {\n return;\n }\n // Get the raw data from Handsontable\n const currentRowDataArray = this.dh.hot.getDataAtRow(row);\n // Convert the raw data into an object with keys corresponding to the slot names, filtering out empty cells, and\n // add it to the rowData array\n const currentRowData = Object.fromEntries(\n currentRowDataArray\n .map((value: string, index: number) => [this.slotNames[index], value])\n .filter(([, value]: [string, string]) => value != null && value !== ''),\n );\n rowData.push({ row, data: currentRowData });\n });\n return rowData;\n }\n\n exportJson() {\n return this.dh.getDataObjects(false);\n }\n\n scrollViewportTo(row: number, column: number) {\n this.dh.hot.scrollViewportTo(row, column);\n }\n\n jumpToRowCol(row: number, column: number) {\n this.dh.scrollTo(row, column);\n }\n\n /**\n * Get the currently selected cells in the DataHarmonizer grid.\n *\n * Returns an array of arrays, where each inner array is of the format [startRow, startCol, endRow, endCol].\n */\n getSelectedCells(): number[][] {\n return this.dh.hot.getSelected();\n }\n\n launchReference() {\n this.dh.renderReference();\n }\n\n setupTemplate(folder: string) {\n this.dh.setupTemplate(folder);\n }\n\n async validate() {\n await this.dh.validate();\n this.refreshState();\n return this.dh.invalid_cells;\n }\n\n addBeforeChangeHook(callback: Function) {\n if (!this.ready.value) {\n return;\n }\n // calls function on any non-programmatic change of the data\n this.dh.hot.addHook('beforeChange', (changes: any[], source: string | null) => {\n if (source === 'loadData') {\n return;\n }\n callback();\n });\n }\n\n addChangeHook(callback: Function) {\n if (!this.ready.value) {\n return;\n }\n // calls function on any non-programmatic change of the data\n this.dh.hot.addHook('afterChange', (changes: any[], source: string | null) => {\n if (source === 'loadData') {\n return;\n }\n callback(changes, source);\n });\n }\n\n useTemplate(template: string | undefined) {\n if (!this.dh || !template) {\n return;\n }\n this.dh.useTemplate(template);\n this._postTemplateChange();\n }\n\n setColumnsReadOnly(slotNames: string[]) {\n const { hot } = this.dh;\n const { columns } = hot.getSettings();\n const fields = this.dh.getFields();\n for (let col = 0; col < fields.length; col += 1) {\n if (slotNames.includes(fields[col].name)) {\n columns[col].readOnly = true;\n }\n }\n hot.updateSettings({ columns });\n }\n\n setTableReadOnly() {\n this.dh.hot.updateSettings({ readOnly: true });\n this.dh.hot.render();\n }\n\n setMaxRows(maxRows: number) {\n this.dh.hot.updateSettings({ maxRows });\n }\n\n setInvalidCells(invalidCells: Record>) {\n this.dh.invalid_cells = invalidCells;\n this.dh.hot.render();\n }\n\n getSlot(slotName: string, className: string) {\n // If this slot has been fully materialized into the class's attributes, return that\n const classAttributes = this.schema.classes?.[className]?.attributes;\n if (classAttributes && slotName in classAttributes) {\n return classAttributes[slotName];\n }\n // Otherwise return the top-level slot definition\n return this.schema.slots[slotName];\n }\n\n getSlotRank(slotName: string, className: string) {\n const slot = this.getSlot(slotName, className);\n if (!slot) {\n return 9999;\n }\n return slot.rank;\n }\n\n getSlotGroupRank(slotName: string, className: string) {\n const slot = this.getSlot(slotName, className);\n if (!slot || !slot.slot_group) {\n return 9999;\n }\n return this.getSlotRank(slot.slot_group, className);\n }\n\n getOrderedAttributeNames(className: string): string[] {\n return Object.keys(this.schema.classes[className].attributes).sort(\n (a, b) => {\n const aSlotGroupRank = this.getSlotGroupRank(a, className);\n const bSlotGroupRank = this.getSlotGroupRank(b, className);\n if (aSlotGroupRank !== bSlotGroupRank) {\n return aSlotGroupRank - bSlotGroupRank;\n }\n const aSlotRank = this.getSlotRank(a, className);\n const bSlotRank = this.getSlotRank(b, className);\n return aSlotRank - bSlotRank;\n },\n );\n }\n\n getHeaderRow(className: string): Record {\n const orderedAttrNames = this.getOrderedAttributeNames(className);\n const attrs = this.schema.classes[className].attributes;\n const header = {} as Record;\n orderedAttrNames.forEach((attrName) => {\n header[attrName] = attrs[attrName].title || attrs[attrName].name;\n });\n return header;\n }\n\n unflattenArrayValues(tableData: Record[], className: string): Record[] {\n return tableData.map((row) => Object.fromEntries(\n Object.entries(row).map(([key, value]) => {\n let unflattenedValue = value;\n if (\n this.schema.classes[className].attributes[key].multivalued\n && value.split\n ) {\n unflattenedValue = value.split(';').map((v: string) => v.trim());\n }\n return [key, unflattenedValue];\n }),\n ));\n }\n\n static flattenArrayValues(tableData: Record[]) {\n if (!tableData) {\n return [];\n }\n return tableData.map((row) => Object.fromEntries(\n Object.entries(row).map(([key, value]) => {\n let flatValue = value;\n if (Array.isArray(value)) {\n flatValue = value.join('; ');\n }\n return [key, flatValue];\n }),\n ));\n }\n}\n","import Vue from 'vue';\nimport CompositionApi, {\n computed, reactive, Ref, ref, shallowRef, watch,\n} from '@vue/composition-api';\nimport { chunk, clone, forEach } from 'lodash';\nimport axios from 'axios';\nimport * as api from './api';\nimport { getVariants } from '../harmonizerApi';\nimport { User } from '@/types';\nimport {\n HARMONIZER_TEMPLATES,\n MetadataSubmission,\n MetadataSuggestion,\n NmdcAddress,\n PermissionLevelValues,\n PermissionTitle,\n SubmissionStatus,\n SuggestionType,\n SuggestionsMode,\n MetadataSuggestionRequest,\n} from '@/views/SubmissionPortal/types';\nimport { setPendingSuggestions } from '@/store/localStorage';\n\n// TODO: Remove in version 3;\nVue.use(CompositionApi);\n\nconst permissionTitleToDbValueMap: Record = {\n Viewer: 'viewer',\n 'Metadata Contributor': 'metadata_contributor',\n Editor: 'editor',\n};\n\nconst permissionLevelHierarchy: Record = {\n owner: 4,\n editor: 3,\n metadata_contributor: 2,\n viewer: 1,\n};\n\nconst submissionStatus: Record = {\n InProgress: 'In Progress',\n SubmittedPendingReview: 'Submitted- Pending Review',\n Complete: 'Complete',\n};\n\nconst isSubmissionStatus = (str: any): str is SubmissionStatus => Object.values(submissionStatus).includes(str);\n\nconst status = ref(submissionStatus.InProgress);\nconst isTestSubmission = ref(false);\n\n/**\n * Submission record locking information\n */\nlet _submissionLockedBy: User | null = null;\nfunction getSubmissionLockedBy(): User | null {\n return _submissionLockedBy;\n}\n\nlet _permissionLevel: PermissionLevelValues | null = null;\nfunction getPermissionLevel(): PermissionLevelValues | null {\n return _permissionLevel;\n}\n\nfunction isOwner(): boolean {\n if (!_permissionLevel) return false;\n return permissionLevelHierarchy[_permissionLevel] === permissionLevelHierarchy.owner;\n}\n\nfunction canEditSubmissionMetadata(): boolean {\n if (!_permissionLevel) return false;\n return permissionLevelHierarchy[_permissionLevel] >= permissionLevelHierarchy.editor;\n}\n\nfunction canEditSampleMetadata(): boolean {\n if (!_permissionLevel) return false;\n return permissionLevelHierarchy[_permissionLevel] >= permissionLevelHierarchy.metadata_contributor;\n}\n\nconst hasChanged = ref(0);\n/**\n * Submission Context Step\n */\nconst addressFormDefault = {\n // Shipper info\n shipper: {\n name: '',\n email: '',\n phone: '',\n line1: '',\n line2: '',\n city: '',\n state: '',\n postalCode: '',\n country: '',\n } as NmdcAddress,\n expectedShippingDate: undefined as undefined | Date,\n shippingConditions: '',\n // Sample info\n sample: '',\n description: '',\n experimentalGoals: '',\n randomization: '',\n usdaRegulated: undefined as undefined | boolean,\n permitNumber: '',\n biosafetyLevel: '',\n irbOrHipaa: undefined as undefined | boolean,\n comments: '',\n};\nconst contextFormDefault = {\n dataGenerated: undefined as undefined | boolean,\n awardDois: [] as string[] | null,\n ship: undefined as undefined | boolean,\n facilityGenerated: undefined as undefined | boolean,\n facilities: [] as string[],\n award: undefined as undefined | string,\n otherAward: '',\n unknownDoi: undefined as undefined | boolean,\n};\nconst contextForm = reactive(clone(contextFormDefault));\nconst contextFormValid = ref(false);\nconst addressForm = reactive(clone(addressFormDefault));\nconst addressFormValid = ref(false);\n\n/**\n * Study Form Step\n */\nconst studyFormDefault = {\n studyName: '',\n piName: '',\n piEmail: '',\n piOrcid: '',\n linkOutWebpage: [],\n studyDate: null,\n fundingSources: [] as string[] | null,\n description: '',\n notes: '',\n contributors: [] as {\n name: string;\n orcid: string;\n roles: string[];\n permissionLevel: PermissionLevelValues | null;\n }[],\n};\nconst studyFormValid = ref(false);\nconst studyForm = reactive(clone(studyFormDefault));\n\n/**\n * Multi-Omics Form Step\n */\nconst multiOmicsFormDefault = {\n alternativeNames: [] as string[],\n studyNumber: '',\n GOLDStudyId: '',\n JGIStudyId: '',\n NCBIBioProjectId: '',\n omicsProcessingTypes: [] as string[],\n};\nconst multiOmicsFormValid = ref(false);\nconst multiOmicsForm = reactive(clone(multiOmicsFormDefault));\nconst multiOmicsAssociationsDefault = {\n emsl: false,\n jgi: false,\n doi: false,\n};\nconst multiOmicsAssociations = reactive(clone(multiOmicsAssociationsDefault));\n\n/**\n * Environment Package Step\n */\nconst packageName = ref(['soil'] as (keyof typeof HARMONIZER_TEMPLATES)[]);\nconst templateList = computed(() => {\n const checkBoxes = multiOmicsForm.omicsProcessingTypes;\n const list = getVariants(checkBoxes, contextForm.dataGenerated, packageName.value);\n return list;\n});\n/**\n * DataHarmonizer Step\n */\nconst sampleData = shallowRef({} as Record);\nconst templateChoiceDisabled = computed(() => {\n // If there are no keys in sampleData, the DH view hasn't been touched\n // yet, so it's still okay to change the template.\n if (Object.keys(sampleData.value).length === 0) {\n return false;\n }\n // If the DH has been touched, see if any of the values (templates) actually\n // contain data. If at least one does, then do not allow changing the template.\n // Otherwise, allow template changes.\n const templateWithDataIndex = Object.values(sampleData.value).findIndex((value) => value.length > 0);\n if (templateWithDataIndex >= 0) {\n return true;\n }\n return false;\n});\nconst metadataSuggestions = ref([] as MetadataSuggestion[]);\nconst suggestionMode = ref(SuggestionsMode.LIVE);\nconst suggestionType = ref(SuggestionType.ALL);\n\nconst tabsValidated = ref({} as Record);\nwatch(templateList, () => {\n const newTabsValidated = {} as Record;\n forEach(templateList.value, (templateKey) => {\n newTabsValidated[templateKey] = false;\n });\n tabsValidated.value = newTabsValidated;\n});\n\n/** Submit page */\nconst payloadObject: Ref = computed(() => ({\n packageName: packageName.value,\n contextForm,\n addressForm,\n templates: templateList.value,\n studyForm,\n multiOmicsForm,\n sampleData: sampleData.value,\n}));\n\nfunction getPermissions(): Record {\n const permissions: Record = {};\n studyForm.contributors.forEach((contributor) => {\n const { orcid, permissionLevel } = contributor;\n if (orcid && permissionLevel) {\n permissions[orcid] = permissionLevel;\n }\n });\n // This should happen last to ensure the PI is an owner\n if (studyForm.piOrcid) {\n permissions[studyForm.piOrcid] = 'owner';\n }\n return permissions;\n}\n\nconst submitPayload = computed(() => {\n const value = JSON.stringify(payloadObject.value, null, 2);\n return value;\n});\n\nfunction submit(id: string, status: SubmissionStatus = submissionStatus.InProgress) {\n if (canEditSubmissionMetadata()) {\n return api.updateRecord(id, payloadObject.value, status);\n }\n throw new Error('Unable to submit due to inadequate permission level for this submission.');\n}\n\nfunction reset() {\n Object.assign(contextForm, contextFormDefault);\n contextFormValid.value = false;\n Object.assign(addressForm, addressFormDefault);\n addressFormValid.value = false;\n studyFormValid.value = false;\n addressFormValid.value = false;\n Object.assign(contextForm, contextFormDefault);\n Object.assign(addressForm, addressFormDefault);\n Object.assign(studyForm, studyFormDefault);\n multiOmicsFormValid.value = false;\n Object.assign(multiOmicsForm, multiOmicsFormDefault);\n Object.assign(multiOmicsAssociations, multiOmicsAssociationsDefault);\n packageName.value = ['soil'];\n sampleData.value = {};\n status.value = submissionStatus.InProgress;\n isTestSubmission.value = false;\n}\n\nasync function incrementalSaveRecord(id: string): Promise {\n if (!canEditSampleMetadata()) {\n return Promise.resolve();\n }\n\n let payload: Partial = {};\n let permissions: Record | undefined;\n if (isOwner()) {\n payload = payloadObject.value;\n permissions = getPermissions();\n } else if (canEditSubmissionMetadata()) {\n payload = payloadObject.value;\n } else if (canEditSampleMetadata()) {\n payload = {\n sampleData: payloadObject.value.sampleData,\n };\n }\n\n if (hasChanged.value) {\n const response = await api.updateRecord(id, payload, undefined, permissions);\n hasChanged.value = 0;\n return response.httpStatus;\n }\n hasChanged.value = 0;\n // Return a resolved Promise when hasChanged.value is false\n return Promise.resolve();\n}\n\nasync function generateRecord(isTestSubBool: boolean) {\n reset();\n const record = await api.createRecord(payloadObject.value, isTestSubBool);\n isTestSubmission.value = isTestSubBool;\n return record;\n}\n\nasync function loadRecord(id: string) {\n reset();\n const val = await api.getRecord(id);\n packageName.value = val.metadata_submission.packageName;\n Object.assign(studyForm, val.metadata_submission.studyForm);\n Object.assign(multiOmicsForm, val.metadata_submission.multiOmicsForm);\n Object.assign(contextForm, val.metadata_submission.contextForm);\n Object.assign(addressForm, val.metadata_submission.addressForm);\n sampleData.value = val.metadata_submission.sampleData;\n hasChanged.value = 0;\n status.value = isSubmissionStatus(val.status) ? val.status : submissionStatus.InProgress;\n _permissionLevel = (val.permission_level as PermissionLevelValues);\n isTestSubmission.value = val.is_test_submission;\n\n try {\n const lockResponse = await api.lockSubmission(id);\n _submissionLockedBy = lockResponse.locked_by || null;\n } catch (error) {\n if (axios.isAxiosError(error)) {\n if (error.response && error.response.status === 409) {\n // Another user has the lock\n _submissionLockedBy = error.response.data.locked_by || null;\n }\n } else {\n // Something went wrong, and we don't know who has the lock\n _submissionLockedBy = null;\n }\n }\n}\n\nwatch(payloadObject, () => { hasChanged.value += 1; }, { deep: true });\n\nfunction mergeSampleData(key: string | undefined, data: any[]) {\n if (!key) {\n return;\n }\n sampleData.value = {\n ...sampleData.value,\n [key]: data,\n };\n}\n\n/**\n * Get metadata suggestions from the server and add them to the list of pending suggestions. Then sync the pending\n * suggestions with local storage.\n *\n * @param submissionId\n * @param schemaClassName\n * @param requests\n * @param batchSize\n */\nasync function addMetadataSuggestions(submissionId: string, schemaClassName: string, requests: MetadataSuggestionRequest[], batchSize: number = 10) {\n const batches = chunk(requests, batchSize);\n for (let i = 0; i < batches.length; i += 1) {\n const batch = batches[i];\n\n // eslint-disable-next-line no-await-in-loop -- we are intentionally throttling requests to the sever\n const suggestions = await api.getMetadataSuggestions(batch, suggestionType.value);\n\n // Drop all the existing suggestions for the rows in this batch\n batch.forEach((request) => {\n metadataSuggestions.value = metadataSuggestions.value.filter(\n (suggestion) => suggestion.row !== request.row,\n );\n });\n\n // Add the new suggestions to the list\n metadataSuggestions.value.push(...suggestions);\n }\n\n setPendingSuggestions(submissionId, schemaClassName, metadataSuggestions.value);\n}\n\n/**\n * Remove the given metadata suggestions from the list of pending suggestions. Then sync the pending suggestions with\n * local storage.\n *\n * @param submissionId\n * @param schemaClassName\n * @param suggestions\n */\nfunction removeMetadataSuggestions(submissionId: string, schemaClassName: string, suggestions: MetadataSuggestion[]) {\n metadataSuggestions.value = metadataSuggestions.value.filter(\n (suggestion) => !suggestions.includes(suggestion),\n );\n\n setPendingSuggestions(submissionId, schemaClassName, metadataSuggestions.value);\n}\n\nexport {\n submissionStatus,\n permissionTitleToDbValueMap,\n permissionLevelHierarchy,\n /* state */\n multiOmicsForm,\n multiOmicsAssociations,\n multiOmicsFormValid,\n sampleData,\n contextForm,\n contextFormValid,\n addressForm,\n addressFormDefault,\n addressFormValid,\n studyForm,\n studyFormValid,\n submitPayload,\n packageName,\n templateList,\n templateChoiceDisabled,\n hasChanged,\n tabsValidated,\n status,\n isTestSubmission,\n metadataSuggestions,\n suggestionMode,\n suggestionType,\n /* functions */\n getSubmissionLockedBy,\n getPermissionLevel,\n incrementalSaveRecord,\n generateRecord,\n loadRecord,\n submit,\n mergeSampleData,\n isOwner,\n canEditSampleMetadata,\n canEditSubmissionMetadata,\n addMetadataSuggestions,\n removeMetadataSuggestions,\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('a',_vm._g(_vm._b({staticClass:\"ml-2\",attrs:{\"href\":_vm.fullUrl,\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},'a',attrs,false),on),[_c('v-btn',{attrs:{\"color\":\"primary\",\"text\":\"\",\"icon\":\"\"}},[_c('v-icon',{attrs:{\"size\":\"24px\"}},[_vm._v(\" mdi-information \")])],1)],1)]}}])},[_vm._v(\" View documentation \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { computed, defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n baseUrl: {\n type: String,\n default: 'https://nmdc-documentation.readthedocs.io/en/latest/howto_guides/submit2nmdc.html',\n },\n anchor: {\n type: String,\n default: '',\n },\n },\n setup(props) {\n const fullUrl = computed(() => props.baseUrl + (props.anchor ? `#${props.anchor}` : ''));\n return {\n fullUrl,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionDocsLink.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionDocsLink.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubmissionDocsLink.vue?vue&type=template&id=7aac2b85&\"\nimport script from \"./SubmissionDocsLink.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubmissionDocsLink.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VIcon,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-alert',{attrs:{\"type\":\"info\"}},[_vm._v(\" Your current permission level for this submission does not allow editing of this page. Contact the submission author to request a change in permission level. \")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./SubmissionPermissionBanner.vue?vue&type=template&id=7abf62fc&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\ninstallComponents(component, {VAlert})\n","\nimport { defineComponent, ref } from '@vue/composition-api';\nimport Definitions from '@/definitions';\nimport {\n multiOmicsForm, multiOmicsFormValid, multiOmicsAssociations, templateChoiceDisabled, contextForm, canEditSubmissionMetadata,\n} from '../store';\nimport SubmissionDocsLink from './SubmissionDocsLink.vue';\nimport SubmissionPermissionBanner from './SubmissionPermissionBanner.vue';\n\nexport default defineComponent({\n components: { SubmissionDocsLink, SubmissionPermissionBanner },\n setup() {\n const formRef = ref();\n\n function reValidate() {\n formRef.value.validate();\n }\n\n return {\n formRef,\n multiOmicsForm,\n multiOmicsAssociations,\n multiOmicsFormValid,\n Definitions,\n templateChoiceDisabled,\n contextForm,\n /* functions */\n reValidate,\n canEditSubmissionMetadata,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultiOmicsDataForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultiOmicsDataForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MultiOmicsDataForm.vue?vue&type=template&id=77fc43aa&\"\nimport script from \"./MultiOmicsDataForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./MultiOmicsDataForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VAlert,VBtn,VCheckbox,VCombobox,VForm,VIcon,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('SubmissionStepper',{staticClass:\"mx-0\"}),(_vm.loggedInUserHasLock || !_vm.isEditingSubmission)?_c('v-container',[_c('router-view')],1):_c('v-alert',[_c('p',{staticClass:\"text-h5\"},[_vm._v(\" This submission is currently being edited by: \")]),(_vm.getSubmissionLockedBy())?_c('orcid-id',{attrs:{\"orcid-id\":_vm.getSubmissionLockedBy().orcid,\"name\":_vm.getSubmissionLockedBy().name,\"authenticated\":true}}):_vm._e(),_c('router-link',{attrs:{\"to\":{ name: 'Submission Home'}}},[_vm._v(\" Return to submission list \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-stepper',{staticClass:\"mb-3 flex-shrink-0\",attrs:{\"value\":_vm.step,\"outlined\":\"\",\"tile\":\"\",\"dark\":\"\"}},[_c('v-stepper-header',[_c('v-stepper-step',{attrs:{\"step\":\"1\",\"editable\":1 < _vm.step,\"complete\":1 < _vm.step},on:{\"click\":function($event){return _vm.gotoStep(1)}}},[_vm._v(\" Home \"),_c('small',[_vm._v(\"Begin or resume a submission.\")])]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"step\":\"2\",\"editable\":2 < _vm.step,\"complete\":2 < _vm.step},on:{\"click\":function($event){return _vm.gotoStep(2)}}},[_vm._v(\" Submission Context \"),_c('small',[_vm._v(\"Input form\")])]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"step\":\"3\",\"editable\":3 < _vm.step,\"complete\":3 < _vm.step},on:{\"click\":function($event){return _vm.gotoStep(3)}}},[_vm._v(\" Study Information \"),_c('small',[_vm._v(\"Input Form\")])]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"step\":\"4\",\"editable\":4 < _vm.step,\"complete\":4 < _vm.step},on:{\"click\":function($event){return _vm.gotoStep(4)}}},[_vm._v(\" Multi-omics Data \"),_c('small',[_vm._v(\"Input Form\")])]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"step\":\"5\",\"editable\":5 < _vm.step,\"complete\":5 < _vm.step},on:{\"click\":function($event){return _vm.gotoStep(5)}}},[_vm._v(\" Environment Package \"),_c('small',[_vm._v(\"Choose package type\")])]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"step\":\"6\",\"editable\":6 < _vm.step,\"complete\":6 < _vm.step},on:{\"click\":function($event){return _vm.gotoStep(6)}}},[_vm._v(\" Customize Metadata Export \"),_c('small',[_vm._v(\"DataHarmonizer sample validation\")])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n computed, defineComponent, reactive, toRef, watch,\n} from '@vue/composition-api';\nimport { incrementalSaveRecord } from '../store';\n\nconst StepperMap: Record = {\n 'Submission Home': 1,\n 1: 'Submission Home',\n\n 'Submission Context': 2,\n 2: 'Submission Context',\n\n 'Study Form': 3,\n 3: 'Study Form',\n\n 'Multiomics Form': 4,\n 4: 'Multiomics Form',\n\n 'Environment Package': 5,\n 5: 'Environment Package',\n\n 'Submission Sample Editor': 6,\n 6: 'Submission Sample Editor',\n\n // 'Validate And Submit': 5,\n // 5: 'Validate And Submit',\n};\n\nexport default defineComponent({\n setup(props, { root }) {\n const currentRoute = toRef(reactive(root.$router), 'currentRoute');\n const step = computed(() => StepperMap[currentRoute.value.name || ''] || 0);\n\n const currentRouteName = computed(() => root.$route.name);\n\n watch(currentRouteName, () => {\n if (root.$route.params.id) {\n incrementalSaveRecord(root.$route.params.id);\n }\n });\n\n function gotoStep(newstep: number) {\n const routeName = StepperMap[newstep];\n if (newstep < step.value && typeof routeName === 'string') {\n root.$router.push({ name: routeName });\n }\n }\n\n return { step, gotoStep, StepperMap };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionStepper.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionStepper.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubmissionStepper.vue?vue&type=template&id=6a348c50&\"\nimport script from \"./SubmissionStepper.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubmissionStepper.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VStepper } from 'vuetify/lib/components/VStepper';\nimport { VStepperHeader } from 'vuetify/lib/components/VStepper';\nimport { VStepperStep } from 'vuetify/lib/components/VStepper';\ninstallComponents(component, {VDivider,VStepper,VStepperHeader,VStepperStep})\n","\nimport { computed, defineComponent, PropType } from '@vue/composition-api';\n\nimport SubmissionStepper from './Components/SubmissionStepper.vue';\nimport OrcidId from '@/components/Presentation/OrcidId.vue';\n\nimport { stateRefs } from '@/store';\nimport { getSubmissionLockedBy } from './store';\nimport { unlockSubmission } from './store/api';\n\nexport default defineComponent({\n components: { SubmissionStepper, OrcidId },\n\n props: {\n id: {\n type: String as PropType,\n default: null,\n },\n },\n\n setup(props) {\n const loggedInUserHasLock = computed(() => {\n const lockedByUser = getSubmissionLockedBy();\n if (!lockedByUser) {\n return true;\n }\n if (lockedByUser.orcid === stateRefs.user.value?.orcid) {\n return true;\n }\n return false;\n });\n\n const isEditingSubmission = computed(() => props.id !== null);\n\n window.addEventListener('beforeunload', () => {\n if (isEditingSubmission.value) {\n if (props.id) {\n unlockSubmission(props.id);\n }\n }\n });\n\n return { loggedInUserHasLock, getSubmissionLockedBy, isEditingSubmission };\n },\n\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepperView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepperView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StepperView.vue?vue&type=template&id=5e9b7f28&\"\nimport script from \"./StepperView.vue?vue&type=script&lang=ts&\"\nexport * from \"./StepperView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAlert,VContainer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"text-h2\"},[_vm._v(\" Submission Context \"),_c('submission-docs-link',{attrs:{\"anchor\":\"submission-context\"}})],1),_c('div',{staticClass:\"text-h5\"},[_vm._v(\" Data and sample status \")]),(!_vm.canEditSubmissionMetadata())?_c('submission-permission-banner'):_vm._e(),_c('v-form',{ref:\"formRef\",staticClass:\"mb-2\",staticStyle:{\"max-width\":\"1000px\"},attrs:{\"disabled\":!_vm.canEditSubmissionMetadata()},model:{value:(_vm.contextFormValid),callback:function ($$v) {_vm.contextFormValid=$$v},expression:\"contextFormValid\"}},[_c('v-radio-group',{attrs:{\"label\":\"Have data already been generated for your study? *\",\"rules\":[function (v) { return (v === true || v === false) || 'This field is required'; }]},on:{\"change\":_vm.revalidate},model:{value:(_vm.contextForm.dataGenerated),callback:function ($$v) {_vm.$set(_vm.contextForm, \"dataGenerated\", $$v)},expression:\"contextForm.dataGenerated\"}},[_c('v-radio',{attrs:{\"label\":\"No\",\"value\":false}}),_c('v-radio',{attrs:{\"label\":\"Yes\",\"value\":true}})],1),(_vm.contextForm.dataGenerated)?_c('v-checkbox',{staticClass:\"mb-2 mt-0\",attrs:{\"label\":\"Data was generated by a DOE user facility\",\"hide-details\":\"\"},on:{\"change\":_vm.facilityGeneratedChange},model:{value:(_vm.contextForm.facilityGenerated),callback:function ($$v) {_vm.$set(_vm.contextForm, \"facilityGenerated\", $$v)},expression:\"contextForm.facilityGenerated\"}}):_vm._e(),(_vm.contextForm.dataGenerated === false)?_c('div',[_c('legend',{staticClass:\"v-label theme--light mb-2\",staticStyle:{\"font-size\":\"14px\"}},[_vm._v(\" Are you submitting metadata for samples that will be sent to a DOE user facility? \")]),_vm._l((_vm.facilityEnum),function(facility){return _c('v-checkbox',{key:facility,attrs:{\"label\":facility,\"value\":facility,\"hide-details\":\"\"},on:{\"change\":_vm.facilityChange},model:{value:(_vm.contextForm.facilities),callback:function ($$v) {_vm.$set(_vm.contextForm, \"facilities\", $$v)},expression:\"contextForm.facilities\"}})}),(_vm.contextForm.dataGenerated === false && _vm.contextForm.facilities.includes('EMSL'))?_c('v-radio-group',{attrs:{\"label\":\"Will samples be shipped? *\",\"rules\":[function (v) { return (v === true || v === false) || 'This field is required'; }]},on:{\"change\":_vm.revalidate},model:{value:(_vm.contextForm.ship),callback:function ($$v) {_vm.$set(_vm.contextForm, \"ship\", $$v)},expression:\"contextForm.ship\"}},[_c('v-radio',{attrs:{\"label\":\"No\",\"value\":false}}),_c('v-radio',{attrs:{\"label\":\"Yes\",\"value\":true}})],1):_vm._e(),(_vm.contextForm.dataGenerated === false && _vm.contextForm.ship)?_c('submission-context-shipping-form'):_vm._e(),(_vm.contextForm.dataGenerated === false && _vm.contextForm.facilities.length > 0)?_c('v-radio-group',{staticClass:\"pb-5\",attrs:{\"label\":\"What kind of project have you been awarded? *\",\"rules\":_vm.projectAwardValidationRules()},model:{value:(_vm.contextForm.award),callback:function ($$v) {_vm.$set(_vm.contextForm, \"award\", $$v)},expression:\"contextForm.award\"}},[_c('div',{staticClass:\"d-flex\"},[_c('v-radio',{attrs:{\"value\":\"CSP\",\"label\":\"CSP\"}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\" (\"),_c('a',{attrs:{\"href\":\"https://jgi.doe.gov/user-programs/program-info/csp-overview/csp-annual-call/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(\"Community Science Program\")]),_vm._v(\") \")])],1),_c('div',{staticClass:\"d-flex\"},[_c('v-radio',{attrs:{\"value\":\"BERSS\",\"label\":\"BERSS\"}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\" (\"),_c('a',{attrs:{\"href\":\"https://jgi.doe.gov/user-programs/other-programs/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(\"Biological and Environmental Research Support Science\")]),_vm._v(\") \")])],1),_c('div',{staticClass:\"d-flex\"},[_c('v-radio',{attrs:{\"value\":\"BRCs\",\"label\":\"BRCs\"}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\" (\"),_c('a',{attrs:{\"href\":\"https://jgi.doe.gov/user-programs/other-programs/\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(\"Bioenergy Research Centers\")]),_vm._v(\") \")])],1),_c('div',{staticClass:\"d-flex\"},[_c('v-radio',{attrs:{\"value\":\"FICUS\",\"label\":\"FICUS\"}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\" (\"),_c('a',{attrs:{\"href\":\"https://www.emsl.pnnl.gov/basic/ficus-program/1872\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(\"Facilities Integrating Collaborations for User Science\")]),_vm._v(\") \")])],1),_c('div',{staticClass:\"d-flex\"},[_c('v-radio',{attrs:{\"value\":\"MONet\",\"label\":\"MONet\"}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\" (\"),_c('a',{attrs:{\"href\":\"https://www.emsl.pnnl.gov/monet\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(\"Molecular Observation Network\")]),_vm._v(\") \")])],1),_c('v-radio',{attrs:{\"value\":_vm.contextForm.otherAward},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"mr-4\"},[_vm._v(\"Other\")]),_c('v-text-field',{staticClass:\"pa-0 ma-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"outlined\":\"\",\"rules\":_vm.otherAwardValidationRules()},model:{value:(_vm.contextForm.otherAward),callback:function ($$v) {_vm.$set(_vm.contextForm, \"otherAward\", $$v)},expression:\"contextForm.otherAward\"}})]},proxy:true}],null,false,3910342524)})],1):_vm._e()],2):_vm._e(),_vm._l((_vm.contextForm.awardDois),function(_,i){return _c('div',{key:(\"awardDoi\" + i),staticClass:\"d-flex\"},[(_vm.contextForm.dataGenerated || _vm.contextForm.facilities.includes('EMSL') || _vm.contextForm.facilities.includes('JGI'))?_c('v-card',{staticClass:\"d-flex flex-column grow pa-4 mb-4\"},[_c('div',{staticClass:\"d-flex\"},[((_vm.contextForm.dataGenerated || _vm.contextForm.facilities.includes('EMSL') || _vm.contextForm.facilities.includes('JGI')) && _vm.contextForm.awardDois !== null)?_c('v-text-field',{attrs:{\"label\":(\"Award DOI \" + (_vm.contextForm.facilityGenerated ? '*' : '')),\"hint\":_vm.Definitions.doi,\"rules\":_vm.doiRequiredRules(),\"persistent-hint\":\"\",\"validate-on-blur\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":_vm.revalidate},scopedSlots:_vm._u([{key:\"message\",fn:function(ref){\nvar message = ref.message;\nreturn [_c('span',{domProps:{\"innerHTML\":_vm._s(message)}})]}}],null,true),model:{value:(_vm.contextForm.awardDois[i]),callback:function ($$v) {_vm.$set(_vm.contextForm.awardDois, i, $$v)},expression:\"contextForm.awardDois[i]\"}}):_vm._e()],1)]):_vm._e(),((_vm.contextForm.dataGenerated || _vm.contextForm.facilities.includes('EMSL') || _vm.contextForm.facilities.includes('JGI')) && _vm.contextForm.awardDois !== null)?_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeAwardDoi(i)}}},[_c('v-icon',[_vm._v(\"mdi-minus-circle\")])],1):_vm._e()],1)}),(_vm.contextForm.dataGenerated || _vm.contextForm.facilities.includes('EMSL') || _vm.contextForm.facilities.includes('JGI'))?_c('v-btn',{staticClass:\"mb-4\",attrs:{\"depressed\":\"\"},on:{\"click\":_vm.addAwardDoi}},[_c('v-icon',{staticClass:\"pr-1\"},[_vm._v(\" mdi-plus-circle \")]),_vm._v(\" Add Award DOI \")],1):_vm._e(),(!_vm.contextForm.dataGenerated && (_vm.contextForm.facilities.includes('EMSL') || _vm.contextForm.facilities.includes('JGI')))?_c('v-checkbox',{staticClass:\"pa-0 ma-0\",attrs:{\"label\":\"I don't know my award DOI\",\"hint\":_vm.Definitions.unknownDoi,\"persistent-hint\":\"\"},on:{\"change\":_vm.revalidate},model:{value:(_vm.contextForm.unknownDoi),callback:function ($$v) {_vm.$set(_vm.contextForm, \"unknownDoi\", $$v)},expression:\"contextForm.unknownDoi\"}}):_vm._e()],2),_c('strong',[_vm._v(\"* indicates required field\")]),_c('div',{staticClass:\"d-flex\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"gray\",\"depressed\":\"\",\"to\":{ name: 'Study Form' },\"disabled\":!_vm.contextFormValid || ((_vm.contextForm.facilities.includes('EMSL') && _vm.contextForm.ship) && !_vm.addressFormValid)}},[_vm._v(\" Go to next step \"),_c('v-icon',{staticClass:\"pl-1\"},[_vm._v(\" mdi-arrow-right-circle \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{staticClass:\"mt-4 pa-0\",style:(_vm.addressFormValid ? '' : 'border: 2px solid red'),attrs:{\"outlined\":\"\"}},[_c('v-card-text',{staticClass:\"pt-2\",staticStyle:{\"min-height\":\"100px\"}},[_c('span',{class:{'error--text': !_vm.addressFormValid}},[_vm._v(\"EMSL Shipping Info *\")]),(!_vm.addressFormValid)?_c('p',{staticClass:\"error--text\"},[_vm._v(\" Sender's shipping information is required \")]):_vm._e(),_c('submission-context-shipping-summary',{staticClass:\"mt-6\"})],1),_c('v-dialog',{attrs:{\"scrollable\":\"\",\"width\":\"1200\",\"eager\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"disabled\":!_vm.canEditSubmissionMetadata(),\"absolute\":\"\",\"top\":\"\",\"right\":\"\",\"color\":\"primary\"}},'v-btn',attrs,false),on),[_vm._v(\" Enter sender info \")])]}}]),model:{value:(_vm.showAddressForm),callback:function ($$v) {_vm.showAddressForm=$$v},expression:\"showAddressForm\"}},[_c('v-card',[_c('v-card-title',[_c('v-spacer'),_c('span',{staticClass:\"text-h5\"},[_vm._v(\"Shipping Information\")]),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"color\":\"primary\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" mdi-information \")])],1)]}}])},[_c('span',[_vm._v(\"Provide the address that the samples are being shipped from. \")])]),_c('v-spacer')],1),_c('v-card-text',[_c('v-form',{ref:\"addressFormRef\",staticClass:\"ml-12\",staticStyle:{\"max-width\":\"1000px\"},attrs:{\"disabled\":!_vm.canEditSubmissionMetadata()},model:{value:(_vm.addressFormValid),callback:function ($$v) {_vm.addressFormValid=$$v},expression:\"addressFormValid\"}},[_c('v-subheader',[_c('span',{staticClass:\"text-h6\"},[_vm._v(\"Sender\")])]),_c('v-divider'),_c('v-text-field',{staticClass:\"mt-2\",attrs:{\"label\":\"Sender Name\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.addressForm.shipper.name),callback:function ($$v) {_vm.$set(_vm.addressForm.shipper, \"name\", $$v)},expression:\"addressForm.shipper.name\"}}),_c('v-text-field',{attrs:{\"rules\":[function (v) { return !v || /.+@.+\\..+/.test(v) || 'E-mail must be valid'; }],\"label\":\"E-mail Address\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.addressForm.shipper.email),callback:function ($$v) {_vm.$set(_vm.addressForm.shipper, \"email\", $$v)},expression:\"addressForm.shipper.email\"}}),_c('v-text-field',{attrs:{\"label\":\"Phone Number\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.addressForm.shipper.phone),callback:function ($$v) {_vm.$set(_vm.addressForm.shipper, \"phone\", $$v)},expression:\"addressForm.shipper.phone\"}}),_c('v-text-field',{attrs:{\"label\":\"Address Line 1\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.addressForm.shipper.line1),callback:function ($$v) {_vm.$set(_vm.addressForm.shipper, \"line1\", $$v)},expression:\"addressForm.shipper.line1\"}}),_c('v-text-field',{attrs:{\"label\":\"Address Line 2\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.addressForm.shipper.line2),callback:function ($$v) {_vm.$set(_vm.addressForm.shipper, \"line2\", $$v)},expression:\"addressForm.shipper.line2\"}}),_c('v-text-field',{attrs:{\"label\":\"City\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.addressForm.shipper.city),callback:function ($$v) {_vm.$set(_vm.addressForm.shipper, \"city\", $$v)},expression:\"addressForm.shipper.city\"}}),_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-4\",attrs:{\"label\":\"State\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.addressForm.shipper.state),callback:function ($$v) {_vm.$set(_vm.addressForm.shipper, \"state\", $$v)},expression:\"addressForm.shipper.state\"}}),_c('v-text-field',{staticClass:\"mr-4\",attrs:{\"label\":\"Zip Code\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.addressForm.shipper.postalCode),callback:function ($$v) {_vm.$set(_vm.addressForm.shipper, \"postalCode\", $$v)},expression:\"addressForm.shipper.postalCode\"}}),_c('v-text-field',{attrs:{\"rules\":_vm.requiredRules('Country is required', []),\"label\":\"Country *\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.addressForm.shipper.country),callback:function ($$v) {_vm.$set(_vm.addressForm.shipper, \"country\", $$v)},expression:\"addressForm.shipper.country\"}})],1),_c('v-combobox',{attrs:{\"label\":\"Shipping Conditions\",\"items\":_vm.shippingConditionsItems,\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.addressForm.shippingConditions),callback:function ($$v) {_vm.$set(_vm.addressForm, \"shippingConditions\", $$v)},expression:\"addressForm.shippingConditions\"}}),_c('v-menu',{ref:\"datePickerEl\",attrs:{\"close-on-content-click\":false,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"min-width\":\"auto\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-text-field',_vm._g(_vm._b({attrs:{\"label\":\"Expected Shipping Date\",\"prepend-icon\":\"mdi-calendar\",\"clearable\":\"\",\"readonly\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"click\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"clear\",undefined,$event.key,undefined)){ return null; }_vm.addressForm.expectedShippingDate = undefined}},model:{value:(_vm.expectedShippingDateString),callback:function ($$v) {_vm.expectedShippingDateString=$$v},expression:\"expectedShippingDateString\"}},'v-text-field',attrs,false),on))]}}]),model:{value:(_vm.datePicker),callback:function ($$v) {_vm.datePicker=$$v},expression:\"datePicker\"}},[_c('v-date-picker',{attrs:{\"no-title\":\"\",\"scrollable\":\"\"},on:{\"input\":function($event){_vm.datePicker = false}},model:{value:(_vm.expectedShippingDateString),callback:function ($$v) {_vm.expectedShippingDateString=$$v},expression:\"expectedShippingDateString\"}})],1),_c('v-subheader',[_c('span',{staticClass:\"text-h6\"},[_vm._v(\"Sample Type/Species\")])]),_c('v-divider'),_c('v-select',{staticClass:\"mt-2\",attrs:{\"items\":_vm.sampleEnumValues,\"label\":\"Sample Type/Species\",\"dense\":\"\",\"outlined\":\"\"},model:{value:(_vm.addressForm.sample),callback:function ($$v) {_vm.$set(_vm.addressForm, \"sample\", $$v)},expression:\"addressForm.sample\"}}),_c('v-textarea',{attrs:{\"label\":\"Sample Description\",\"hint\":\"Number of samples, sample container type...\",\"outlined\":\"\",\"dense\":\"\",\"rows\":\"2\"},model:{value:(_vm.addressForm.description),callback:function ($$v) {_vm.$set(_vm.addressForm, \"description\", $$v)},expression:\"addressForm.description\"}}),_c('v-textarea',{attrs:{\"label\":\"Experiment Goals\",\"hint\":\"Briefly describe the goal for your experiment\",\"outlined\":\"\",\"dense\":\"\",\"rows\":\"2\"},model:{value:(_vm.addressForm.experimentalGoals),callback:function ($$v) {_vm.$set(_vm.addressForm, \"experimentalGoals\", $$v)},expression:\"addressForm.experimentalGoals\"}}),_c('v-textarea',{attrs:{\"label\":\"Randomization\",\"hint\":\"What experimental conditions will be used for\",\"outlined\":\"\",\"dense\":\"\",\"rows\":\"1\"},model:{value:(_vm.addressForm.randomization),callback:function ($$v) {_vm.$set(_vm.addressForm, \"randomization\", $$v)},expression:\"addressForm.randomization\"}}),_c('div',{staticClass:\"d-flex\"},[_c('v-checkbox',{staticClass:\"mr-4 mt-0\",attrs:{\"label\":\"USDA Regulated?\",\"hide-details\":\"\"},model:{value:(_vm.addressForm.usdaRegulated),callback:function ($$v) {_vm.$set(_vm.addressForm, \"usdaRegulated\", $$v)},expression:\"addressForm.usdaRegulated\"}}),_c('v-text-field',{attrs:{\"label\":\"Permit Number\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.addressForm.permitNumber),callback:function ($$v) {_vm.$set(_vm.addressForm, \"permitNumber\", $$v)},expression:\"addressForm.permitNumber\"}}),_c('v-spacer')],1),_c('div',{staticClass:\"d-flex\"},[_c('v-select',{staticClass:\"mr-4\",attrs:{\"items\":_vm.biosafetyLevelValues,\"label\":\"Biosafety Level\",\"dense\":\"\",\"outlined\":\"\"},model:{value:(_vm.addressForm.biosafetyLevel),callback:function ($$v) {_vm.$set(_vm.addressForm, \"biosafetyLevel\", $$v)},expression:\"addressForm.biosafetyLevel\"}}),_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"label\":\"IRB/HIPAA Compliance?\"},model:{value:(_vm.addressForm.irbOrHipaa),callback:function ($$v) {_vm.$set(_vm.addressForm, \"irbOrHipaa\", $$v)},expression:\"addressForm.irbOrHipaa\"}}),_c('v-spacer')],1),_c('v-subheader',[_c('span',{staticClass:\"text-h6\"},[_vm._v(\"Additional Comments\")])]),_c('v-divider',{staticClass:\"mb-2\"}),_c('v-textarea',{attrs:{\"label\":\"Comments\",\"outlined\":\"\",\"dense\":\"\",\"lines\":\"4\"},model:{value:(_vm.addressForm.comments),callback:function ($$v) {_vm.$set(_vm.addressForm, \"comments\", $$v)},expression:\"addressForm.comments\"}})],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.showAddressForm = false}}},[_vm._v(\" Save \")]),_c('v-spacer')],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-expansion-panels',{attrs:{\"accordion\":\"\",\"flat\":\"\",\"multiple\":\"\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"pa-0 ma-0\",scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{staticClass:\"icon\"},[_vm._v(\" $expand \")])]},proxy:true}])},[_c('div',{staticClass:\"header\"},[_c('span',{staticClass:\"mr-2\"},[_vm._v(\"Sender\")]),_c('span',{staticClass:\"expansion-panel-preview\"},[_vm._v(_vm._s(_vm.shipperAddressOneLiner))])])]),_c('v-expansion-panel-content',[_c('span',{staticStyle:{\"white-space\":\"pre-line\"}},[_vm._v(\" \"+_vm._s(_vm.shipperSummary)+\" \")])])],1),_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"pl-0\",scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{staticClass:\"icon\"},[_vm._v(\" $expand \")])]},proxy:true}])},[_c('span',{staticClass:\"header\"},[_vm._v(\"Sample\")])]),_c('v-expansion-panel-content',[_c('div',{staticStyle:{\"white-space\":\"pre-line\"}},_vm._l((_vm.sampleProperties),function(sampleProp){return _c('span',{key:sampleProp.title},[(sampleProp.value)?_c('p',{staticClass:\"mb-0\"},[_c('strong',{staticClass:\"label\"},[_vm._v(_vm._s(sampleProp.title)+\":\")]),_vm._v(\" \"+_vm._s(sampleProp.value)+\" \")]):_vm._e()])}),0)])],1),_c('v-expansion-panel',[_c('v-expansion-panel-header',{staticClass:\"pl-0\",scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-icon',{staticClass:\"icon\"},[_vm._v(\" $expand \")])]},proxy:true}])},[_c('span',{staticClass:\"header\"},[_vm._v(\"Additional Comments\")])]),_c('v-expansion-panel-content',[_c('span',{staticStyle:{\"white-space\":\"pre-line\"}},[_vm._v(\" \"+_vm._s(_vm.addressForm.comments)+\" \")])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { computed, defineComponent } from '@vue/composition-api';\nimport { addressForm } from '../store';\nimport { addressToString } from '../store/api';\n\nexport default defineComponent({\n setup() {\n const shipperAddressOneLiner = computed(() => {\n const shipperData = [\n addressForm.shipper.name,\n addressForm.shipper.line1,\n addressForm.shipper.line2,\n addressForm.shipper.city,\n addressForm.shipper.state,\n addressForm.shipper.postalCode,\n addressForm.shipper.country,\n ];\n const existingShipperData = shipperData.filter((shipperDatum) => !!shipperDatum.trim());\n return existingShipperData.join(', ');\n });\n const shipperAddressString = computed(() => addressToString(addressForm.shipper));\n const shipperSummary = computed(() => {\n let result = '';\n result += shipperAddressString.value.trim();\n if (addressForm.shippingConditions) {\n result += `\\nShipping Conditions: ${addressForm.shippingConditions}`;\n }\n if (addressForm.expectedShippingDate) {\n const date = new Date(addressForm.expectedShippingDate);\n result += `\\nExpected Shipping Date: ${date.toLocaleDateString()}`;\n }\n\n return result.trim();\n });\n\n const sampleProperties = computed(() => [\n {\n title: 'Sample Name',\n value: addressForm.sample,\n },\n {\n title: 'Sample Description',\n value: addressForm.description,\n },\n {\n title: 'Experiment Goals',\n value: addressForm.experimentalGoals,\n },\n {\n title: 'Randomization',\n value: addressForm.randomization,\n },\n {\n title: 'USDA Regulated',\n value: addressForm.usdaRegulated,\n },\n {\n title: 'Permit Number',\n value: addressForm.permitNumber,\n },\n {\n title: 'Biosafety Level',\n value: addressForm.biosafetyLevel,\n },\n {\n title: 'IRB/HIPAA Compliance?',\n value: (addressForm.irbOrHipaa ? 'Yes' : 'No'),\n },\n ]);\n\n return {\n shipperAddressOneLiner,\n shipperSummary,\n addressForm,\n sampleProperties,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionContextShippingSummary.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionContextShippingSummary.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubmissionContextShippingSummary.vue?vue&type=template&id=510d5ca7&scoped=true&\"\nimport script from \"./SubmissionContextShippingSummary.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubmissionContextShippingSummary.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SubmissionContextShippingSummary.vue?vue&type=style&index=0&id=510d5ca7&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"510d5ca7\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VExpansionPanel } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelContent } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanelHeader } from 'vuetify/lib/components/VExpansionPanel';\nimport { VExpansionPanels } from 'vuetify/lib/components/VExpansionPanel';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VExpansionPanel,VExpansionPanelContent,VExpansionPanelHeader,VExpansionPanels,VIcon})\n","\nimport {\n computed,\n defineComponent,\n nextTick,\n onMounted,\n ref,\n watch,\n} from '@vue/composition-api';\n// @ts-ignore\nimport NmdcSchema from 'nmdc-schema/nmdc_schema/nmdc_materialized_patterns.yaml';\nimport {\n addressForm,\n addressFormValid,\n canEditSubmissionMetadata,\n} from '../store';\nimport { BiosafetyLevels } from '@/views/SubmissionPortal/types';\nimport { addressToString } from '../store/api';\nimport SubmissionContextShippingSummary from './SubmissionContextShippingSummary.vue';\n\nexport default defineComponent({\n components: { SubmissionContextShippingSummary },\n setup() {\n const addressFormRef = ref();\n const showAddressForm = ref(false);\n const datePicker = ref(false);\n const sampleItems = ref(['water_extract_soil']);\n const sampleEnumValues = Object.keys(NmdcSchema.enums.SampleTypeEnum.permissible_values);\n const biosafetyLevelValues = Object.values(BiosafetyLevels);\n const shippingConditionsItems = [\n 'Store frozen: transported within a cold chain and stored at -70°C to -80°C upon delivery.',\n 'Store frozen: transported within a cold chain and stored at -20°C (4°F).',\n 'Store Refrigerated: at 2°-8°C (36°-46°F): for heat sensitive products that must not be frozen.',\n 'Room temperature: Store at 15°-25°C (59°-77°F).',\n ];\n\n const shipperSummary = computed(() => {\n let result = '';\n result += addressToString(addressForm.shipper);\n\n return result;\n });\n\n const addressSummary = computed(() => [{\n id: 'shipper',\n name: 'Shipper',\n children: [\n { id: 'shipperSummary', name: shipperSummary.value },\n ],\n }]);\n\n const reformatDate = (dateString: string | Date) => new Date(dateString).toISOString().substring(0, 10);\n\n const expectedShippingDateString = ref('');\n\n watch(expectedShippingDateString, (newValue: string) => {\n addressForm.expectedShippingDate = newValue.length ? new Date(newValue) : undefined;\n });\n\n function requiredRules(msg: string, otherRules: ((v: string) => unknown)[]) {\n return [\n (v: string) => !!v || msg,\n ...otherRules,\n ];\n }\n\n watch(showAddressForm, () => {\n nextTick(() => addressFormRef.value.validate());\n });\n\n onMounted(() => {\n expectedShippingDateString.value = addressForm.expectedShippingDate\n ? reformatDate(addressForm.expectedShippingDate)\n : '';\n });\n\n return {\n addressFormRef,\n addressForm,\n addressFormValid,\n showAddressForm,\n datePicker,\n expectedShippingDateString,\n sampleItems,\n biosafetyLevelValues,\n BiosafetyLevels,\n addressSummary,\n sampleEnumValues,\n shippingConditionsItems,\n canEditSubmissionMetadata,\n requiredRules,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionContextShippingForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionContextShippingForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubmissionContextShippingForm.vue?vue&type=template&id=b2905584&\"\nimport script from \"./SubmissionContextShippingForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubmissionContextShippingForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VSubheader } from 'vuetify/lib/components/VSubheader';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VCheckbox,VCombobox,VDatePicker,VDialog,VDivider,VForm,VIcon,VMenu,VSelect,VSpacer,VSubheader,VTextField,VTextarea,VTooltip})\n","\nimport {\n defineComponent,\n ref,\n onMounted,\n watch,\n nextTick,\n} from '@vue/composition-api';\n// @ts-ignore\nimport NmdcSchema from 'nmdc-schema/nmdc_schema/nmdc_materialized_patterns.yaml';\nimport Definitions from '@/definitions';\nimport {\n contextForm,\n contextFormValid,\n addressFormValid,\n canEditSubmissionMetadata,\n} from '../store';\nimport { AwardTypes } from '@/views/SubmissionPortal/types';\nimport SubmissionContextShippingForm from './SubmissionContextShippingForm.vue';\nimport SubmissionDocsLink from './SubmissionDocsLink.vue';\nimport SubmissionPermissionBanner from './SubmissionPermissionBanner.vue';\n\nexport default defineComponent({\n components: { SubmissionContextShippingForm, SubmissionDocsLink, SubmissionPermissionBanner },\n setup() {\n const formRef = ref();\n const facilityEnum = Object.keys(NmdcSchema.enums.ProcessingInstitutionEnum.permissible_values).filter(\n (facility: string) => ['EMSL', 'JGI'].includes(facility),\n );\n const projectAwardValidationRules = () => [(v: string) => {\n const awardTypes = Object.values(AwardTypes) as string[];\n const awardChosen = awardTypes.includes(v) || v === contextForm.otherAward;\n const valid = awardChosen || contextForm.facilities.length === 0;\n return valid || 'If submitting to a use facility, this field is required.';\n }];\n const otherAwardValidationRules = () => [(v: string) => {\n const awardTypes = Object.values(AwardTypes) as string[];\n if (contextForm.award && awardTypes.includes(contextForm.award)) {\n return true;\n }\n const inputEmpty = v.trim().length === 0;\n if (contextForm.facilities.length > 0) {\n return !inputEmpty || 'Please enter the kind of project award.';\n }\n return true;\n }];\n const doiRequiredRules = () => [(v: string) => {\n const valid = !!v || (!contextForm.facilityGenerated && contextForm.dataGenerated) || (contextForm.unknownDoi && !contextForm.dataGenerated);\n return valid || 'An award DOI is required if data was or is going to be generated by a DOE facility.';\n }];\n const revalidate = () => {\n nextTick(() => formRef.value.validate());\n };\n\n function addAwardDoi() {\n if (contextForm.awardDois === null || contextForm.awardDois.length === 0) {\n contextForm.awardDois = [''];\n } else {\n contextForm.awardDois.push('');\n }\n }\n\n function removeAwardDoi(i: number) {\n if (contextForm.awardDois === null) {\n contextForm.awardDois = [''];\n }\n if ((contextForm.facilities.length < contextForm.awardDois.length && !contextForm.dataGenerated) || (contextForm.facilityGenerated && contextForm.dataGenerated && contextForm.awardDois.length > 1) || (!contextForm.facilityGenerated && contextForm.dataGenerated)) {\n contextForm.awardDois.splice(i, 1);\n }\n }\n\n function facilityChange() {\n if (contextForm.awardDois === null || contextForm.awardDois.length < contextForm.facilities.length) {\n addAwardDoi();\n }\n revalidate();\n }\n\n function facilityGeneratedChange() {\n if (contextForm.facilityGenerated && (contextForm.awardDois === null || contextForm.awardDois.length < 1)) {\n addAwardDoi();\n }\n revalidate();\n }\n\n watch(\n () => contextForm.award,\n (award) => {\n const awardTypes = Object.values(AwardTypes) as string[];\n if (award && awardTypes.includes(award)) {\n contextForm.otherAward = '';\n }\n revalidate();\n },\n );\n\n onMounted(() => {\n formRef.value.validate();\n });\n\n return {\n Definitions,\n facilityEnum,\n formRef,\n contextForm,\n contextFormValid,\n addressFormValid,\n projectAwardValidationRules,\n otherAwardValidationRules,\n doiRequiredRules,\n revalidate,\n addAwardDoi,\n removeAwardDoi,\n facilityChange,\n facilityGeneratedChange,\n canEditSubmissionMetadata,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionContextForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionContextForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubmissionContextForm.vue?vue&type=template&id=264f759a&\"\nimport script from \"./SubmissionContextForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubmissionContextForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\ninstallComponents(component, {VBtn,VCard,VCheckbox,VForm,VIcon,VRadio,VRadioGroup,VSpacer,VTextField})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"text-h2\"},[_vm._v(\" Study Information \"),_c('submission-docs-link',{attrs:{\"anchor\":\"study\"}})],1),_c('div',{staticClass:\"text-h5\"},[_vm._v(\" \"+_vm._s(_vm.NmdcSchema.classes.Study.description)+\" \")]),(!_vm.canEditSubmissionMetadata())?_c('submission-permission-banner'):_vm._e(),_c('v-form',{ref:\"formRef\",staticClass:\"my-6\",staticStyle:{\"max-width\":\"1000px\"},attrs:{\"disabled\":!_vm.canEditSubmissionMetadata()},scopedSlots:_vm._u([{key:\"message\",fn:function(ref){\nvar message = ref.message;\nreturn [_c('span',{domProps:{\"innerHTML\":_vm._s(message)}})]}}]),model:{value:(_vm.studyFormValid),callback:function ($$v) {_vm.studyFormValid=$$v},expression:\"studyFormValid\"}},[_c('v-text-field',{staticClass:\"my-2\",attrs:{\"rules\":_vm.requiredRules('Name is required',[\n function (v) { return v.length > 6 || 'Study name too short'; } ]),\"validate-on-blur\":\"\",\"label\":\"Study Name *\",\"hint\":_vm.Definitions.studyName,\"persistent-hint\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.studyForm.studyName),callback:function ($$v) {_vm.$set(_vm.studyForm, \"studyName\", $$v)},expression:\"studyForm.studyName\"}}),_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"my-2 mr-4\",attrs:{\"label\":\"Principal Investigator Name\",\"hint\":_vm.Definitions.piName,\"persistent-hint\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.studyForm.piName),callback:function ($$v) {_vm.$set(_vm.studyForm, \"piName\", $$v)},expression:\"studyForm.piName\"}}),_c('v-text-field',{staticClass:\"my-2\",attrs:{\"label\":\"Principal Investigator Email *\",\"rules\":_vm.requiredRules('E-mail is required',[\n function (v) { return /.+@.+\\..+/.test(v) || 'E-mail must be valid'; } ]),\"hint\":_vm.Definitions.piEmail,\"persistent-hint\":\"\",\"type\":\"email\",\"required\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.studyForm.piEmail),callback:function ($$v) {_vm.$set(_vm.studyForm, \"piEmail\", $$v)},expression:\"studyForm.piEmail\"}})],1),_c('v-text-field',{staticClass:\"my-2\",attrs:{\"label\":\"Principal Investigator ORCID\",\"disabled\":!_vm.isOwner() || _vm.currentUserOrcid === _vm.studyForm.piOrcid,\"outlined\":\"\",\"hint\":_vm.Definitions.piOrcid,\"persistent-hint\":\"\",\"dense\":\"\"},scopedSlots:_vm._u([{key:\"message\",fn:function(ref){\n var message = ref.message;\nreturn [_c('span',{domProps:{\"innerHTML\":_vm._s(message)}})]}}]),model:{value:(_vm.studyForm.piOrcid),callback:function ($$v) {_vm.$set(_vm.studyForm, \"piOrcid\", $$v)},expression:\"studyForm.piOrcid\"}}),_c('v-combobox',{staticClass:\"my-2\",attrs:{\"label\":\"Webpage Links\",\"hint\":_vm.Definitions.linkOutWebpage,\"persistent-hint\":\"\",\"outlined\":\"\",\"dense\":\"\",\"multiple\":\"\",\"small-chips\":\"\",\"clearable\":\"\"},model:{value:(_vm.studyForm.linkOutWebpage),callback:function ($$v) {_vm.$set(_vm.studyForm, \"linkOutWebpage\", $$v)},expression:\"studyForm.linkOutWebpage\"}}),_c('v-textarea',{staticClass:\"my-2\",attrs:{\"label\":\"Study Description\",\"hint\":_vm.Definitions.studyDescription,\"persistent-hint\":\"\",\"outlined\":\"\",\"dense\":\"\"},scopedSlots:_vm._u([{key:\"message\",fn:function(ref){\n var message = ref.message;\nreturn [_c('span',{domProps:{\"innerHTML\":_vm._s(message)}})]}}]),model:{value:(_vm.studyForm.description),callback:function ($$v) {_vm.$set(_vm.studyForm, \"description\", $$v)},expression:\"studyForm.description\"}}),_c('v-text-field',{staticClass:\"my-2\",attrs:{\"label\":\"Optional Notes\",\"hint\":_vm.Definitions.studyOptionalNotes,\"persistent-hint\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.studyForm.notes),callback:function ($$v) {_vm.$set(_vm.studyForm, \"notes\", $$v)},expression:\"studyForm.notes\"}}),_c('div',{staticClass:\"text-h4\"},[_vm._v(\" Funding Sources \")]),_c('div',{staticClass:\"text-body-1 mb-2\"},[_vm._v(\" \"+_vm._s(\"Sources of funding for this study.\")+\" \")]),_vm._l((_vm.studyForm.fundingSources),function(_,i){return _c('div',{key:(\"fundingSource\" + i),staticClass:\"d-flex\"},[_c('v-card',{staticClass:\"d-flex flex-column grow pa-4 mb-4\"},[_c('div',{staticClass:\"d-flex\"},[(_vm.studyForm.fundingSources !== null)?_c('v-text-field',{staticClass:\"mb-2 mr-3\",attrs:{\"rules\":_vm.requiredRules('Field cannot be empty.'),\"label\":\"Funding Source *\",\"hint\":_vm.Definitions.fundingSources,\"outlined\":\"\",\"dense\":\"\",\"persistent-hint\":\"\"},scopedSlots:_vm._u([{key:\"message\",fn:function(ref){\n var message = ref.message;\nreturn [_c('span',{domProps:{\"innerHTML\":_vm._s(message)}})]}}],null,true),model:{value:(_vm.studyForm.fundingSources[i]),callback:function ($$v) {_vm.$set(_vm.studyForm.fundingSources, i, $$v)},expression:\"studyForm.fundingSources[i]\"}}):_vm._e()],1)]),(_vm.studyForm.fundingSources !== null)?_c('v-btn',{attrs:{\"icon\":\"\",\"disabled\":!_vm.isOwner()},on:{\"click\":function($event){return _vm.studyForm.fundingSources.splice(i, 1)}}},[_c('v-icon',[_vm._v(\"mdi-minus-circle\")])],1):_vm._e()],1)}),_c('v-btn',{staticClass:\"mb-4\",attrs:{\"depressed\":\"\",\"disabled\":!_vm.canEditSubmissionMetadata()},on:{\"click\":_vm.addFundingSource}},[_c('v-icon',{staticClass:\"pr-1\"},[_vm._v(\" mdi-plus-circle \")]),_vm._v(\" Add Funding Source \")],1),_c('div',{staticClass:\"text-h4\"},[_vm._v(\" Contributors \")]),_c('div',{staticClass:\"text-body-1 mb-2\"},[_vm._v(\" \"+_vm._s(_vm.Definitions.studyContributors)+\" \")]),_vm._l((_vm.studyForm.contributors),function(contributor,i){return _c('div',{key:(\"contributor\" + i),staticClass:\"d-flex\"},[_c('v-card',{staticClass:\"d-flex flex-column grow pa-4 mb-4\"},[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mb-2 mr-3\",attrs:{\"rules\":_vm.requiredRules('Full name is required'),\"label\":\"Full name *\",\"hint\":_vm.Definitions.contributorFullName,\"outlined\":\"\",\"dense\":\"\",\"persistent-hint\":\"\"},model:{value:(contributor.name),callback:function ($$v) {_vm.$set(contributor, \"name\", $$v)},expression:\"contributor.name\"}}),_c('v-text-field',{style:({ maxWidth: '400px'}),attrs:{\"rules\":[_vm.orcidRequiredRule(i), _vm.uniqueOrcidRule(i)],\"hint\":_vm.Definitions.contributorOrcid,\"disabled\":_vm.currentUserOrcid === contributor.orcid,\"label\":\"ORCID\",\"outlined\":\"\",\"persistent-hint\":\"\",\"dense\":\"\"},scopedSlots:_vm._u([{key:\"message\",fn:function(ref){\n var message = ref.message;\nreturn [_c('span',{domProps:{\"innerHTML\":_vm._s(message)}})]}}],null,true),model:{value:(contributor.orcid),callback:function ($$v) {_vm.$set(contributor, \"orcid\", $$v)},expression:\"contributor.orcid\"}})],1),_c('div',{staticClass:\"d-flex\"},[_c('v-select',{staticClass:\"mb-2 mr-3\",attrs:{\"rules\":[function (v) { return v.length >= 1 || 'At least one role is required'; }],\"items\":Object.keys(_vm.NmdcSchema.enums.CreditEnum.permissible_values),\"label\":\"CRediT Roles *\",\"hint\":_vm.Definitions.contributorRoles,\"deletable-chips\":\"\",\"multiple\":\"\",\"outlined\":\"\",\"chips\":\"\",\"small-chips\":\"\",\"dense\":\"\",\"persistent-hint\":\"\"},scopedSlots:_vm._u([{key:\"message\",fn:function(ref){\n var message = ref.message;\nreturn [_c('span',{domProps:{\"innerHTML\":_vm._s(message)}})]}}],null,true),model:{value:(contributor.roles),callback:function ($$v) {_vm.$set(contributor, \"roles\", $$v)},expression:\"contributor.roles\"}}),(_vm.isOwner())?_c('v-select',{style:({ maxWidth: '400px'}),attrs:{\"items\":_vm.permissionLevelChoices,\"clearable\":\"\",\"item-text\":\"title\",\"item-value\":\"value\",\"label\":\"Permission Level\",\"hint\":\"Level of permissions the contributor has for this submission\",\"outlined\":\"\",\"dense\":\"\",\"persistent-hint\":\"\"},on:{\"change\":function () { return _vm.formRef.validate(); }},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"500px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-help-circle\")])],1)]}}],null,true)},_vm._l((_vm.permissionHelpText),function(role){return _c('div',{key:role.title,staticClass:\"pb-2\"},[_c('strong',[_vm._v(_vm._s(role.title)+\": \")]),_c('span',[_vm._v(_vm._s(role.description))])])}),0)]},proxy:true}],null,true),model:{value:(contributor.permissionLevel),callback:function ($$v) {_vm.$set(contributor, \"permissionLevel\", $$v)},expression:\"contributor.permissionLevel\"}}):_vm._e()],1)]),_c('v-btn',{attrs:{\"icon\":\"\",\"disabled\":!_vm.isOwner() || _vm.currentUserOrcid === contributor.orcid},on:{\"click\":function($event){return _vm.studyForm.contributors.splice(i, 1)}}},[_c('v-icon',[_vm._v(\"mdi-minus-circle\")])],1)],1)}),_c('v-btn',{attrs:{\"depressed\":\"\",\"disabled\":!_vm.canEditSubmissionMetadata()},on:{\"click\":_vm.addContributor}},[_c('v-icon',{staticClass:\"pr-1\"},[_vm._v(\" mdi-plus-circle \")]),_vm._v(\" Add Contributor \")],1)],2),_c('strong',[_vm._v(\"* indicates required field\")]),_c('div',{staticClass:\"d-flex mt-5\"},[_c('v-btn',{attrs:{\"color\":\"gray\",\"depressed\":\"\",\"to\":{ name: 'Submission Context' }}},[_c('v-icon',{staticClass:\"pl-1\"},[_vm._v(\" mdi-arrow-left-circle \")]),_vm._v(\" Go to previous step \")],1),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"depressed\":\"\",\"disabled\":!_vm.studyFormValid,\"to\":{ name: 'Multiomics Form' }}},[_vm._v(\" Go to next step \"),_c('v-icon',{staticClass:\"pl-1\"},[_vm._v(\" mdi-arrow-right-circle \")])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n// @ts-ignore\nimport NmdcSchema from 'nmdc-schema/nmdc_schema/nmdc_materialized_patterns.yaml';\nimport {\n computed,\n defineComponent,\n onMounted,\n ref,\n Ref,\n} from '@vue/composition-api';\nimport Definitions from '@/definitions';\nimport {\n studyForm,\n studyFormValid,\n permissionTitleToDbValueMap,\n isOwner,\n canEditSubmissionMetadata,\n} from '../store';\nimport { PermissionTitle } from '@/views/SubmissionPortal/types';\nimport { stateRefs } from '@/store';\nimport SubmissionDocsLink from './SubmissionDocsLink.vue';\nimport SubmissionPermissionBanner from './SubmissionPermissionBanner.vue';\n\nexport default defineComponent({\n components: { SubmissionDocsLink, SubmissionPermissionBanner },\n setup() {\n const formRef = ref();\n\n const currentUserOrcid = computed(() => stateRefs.user.value?.orcid);\n\n const permissionHelpText = ref([\n {\n title: 'Viewer',\n description: 'Viewers can see all components of a submission, but cannot edit.',\n },\n {\n title: 'Metadata Contributor',\n description: 'Metadata contributors can view all components of a submission and can only edit the sample metadata information on the last step of the submission process.',\n },\n {\n title: 'Editor',\n description: 'Editors of a submission have full permission to edit every aspect of the submission with the exception of permission levels.',\n },\n {\n title: 'Owner',\n description: 'This level of permission is automatically assigned to the submission author and Principal Investigator. These users can edit every aspect of the submission.',\n },\n ]);\n\n function addContributor() {\n studyForm.contributors.push({\n name: '',\n orcid: '',\n roles: [],\n permissionLevel: null,\n });\n }\n\n function addFundingSource() {\n if (studyForm.fundingSources === null || studyForm.fundingSources.length === 0) {\n studyForm.fundingSources = [''];\n } else {\n studyForm.fundingSources.push('');\n }\n }\n\n function requiredRules(msg: string, otherRules: ((v: string) => unknown)[] = []) {\n return [\n (v: string) => !!v || msg,\n ...otherRules,\n ];\n }\n\n const orcidRequiredRule = (idx: number) => (v: string) => {\n if (idx > studyForm.contributors.length) return true;\n const contributor = studyForm.contributors[idx];\n // show error when: permission level exists, but orcid does not\n return (contributor.permissionLevel && !!v) || !contributor.permissionLevel || 'ORCID iD is required if a permission level is specified';\n };\n\n const uniqueOrcidRule = (idx: number) => (v: string) => {\n if (idx > studyForm.contributors.length || !v) return true;\n const existingOrcids = new Set(studyForm.contributors.filter((contributor, contributorListIndex) => idx !== contributorListIndex).map((contributor) => contributor.orcid));\n return !existingOrcids.has(v) || 'ORCID iDs must be unique';\n };\n\n const permissionLevelChoices: Ref<{ title: string, value: string }[]> = ref([]);\n Object.keys(permissionTitleToDbValueMap).forEach((title) => {\n permissionLevelChoices.value.push({\n title,\n value: permissionTitleToDbValueMap[title as PermissionTitle],\n });\n });\n\n onMounted(async () => {\n formRef.value.validate();\n });\n\n return {\n formRef,\n studyForm,\n studyFormValid,\n NmdcSchema,\n Definitions,\n addContributor,\n addFundingSource,\n requiredRules,\n permissionLevelChoices,\n isOwner,\n canEditSubmissionMetadata,\n orcidRequiredRule,\n uniqueOrcidRule,\n currentUserOrcid,\n permissionHelpText,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StudyForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StudyForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StudyForm.vue?vue&type=template&id=748697fe&\"\nimport script from \"./StudyForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./StudyForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCombobox } from 'vuetify/lib/components/VCombobox';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCombobox,VForm,VIcon,VSelect,VSpacer,VTextField,VTextarea,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-main',[_c('AppBanner'),(!_vm.stateRefs.user.value && !_vm.req.loading.value)?_c('v-container',[_c('v-container',{staticClass:\"mt-4 \"},[_c('v-row',[_c('v-col',{staticClass:\"pb-0\"},[_c('TitleBanner')],1)],1),_c('v-row',[_c('v-col',[_c('LoginPrompt')],1)],1),_c('v-row',[_c('v-col',[_c('IconBar')],1)],1),_c('v-row',[_c('v-col',[_c('IntroBlurb')],1)],1)],1)],1):(!_vm.req.loading.value && !_vm.req.error.value)?_c('router-view'):(_vm.req.loading.value)?_c('div',{staticClass:\"text-h3\"},[_vm._v(\" Submission portal is loading... \")]):(_vm.req.error.value)?_c('div',[_c('v-container',[_c('v-alert',{attrs:{\"type\":\"error\"}},[_c('div',{staticClass:\"text-h6\"},[_vm._v(\" Error loading record \"+_vm._s(_vm.id)+\" \")]),_vm._v(\" \"+_vm._s(_vm.req.error.value)+\" \")])],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',[_c('v-row',{style:({ backgroundImage: 'url(' + require('@/assets/submission-portal-hero.png') + ')', backgroundSize: 'cover' })},[_c('v-col',{staticClass:\"text-center py-16\"},[_c('h1',{staticClass:\"white--text\"},[_vm._v(\" Submission Portal \")]),_c('span',{staticClass:\"d-block white--text mt-4\"},[_vm._v(\" Ready to submit data? \")])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n defineComponent,\n} from '@vue/composition-api';\n\nexport default defineComponent({\n components: {},\n setup() {\n return {};\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TitleBanner.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TitleBanner.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TitleBanner.vue?vue&type=template&id=693a1832&\"\nimport script from \"./TitleBanner.vue?vue&type=script&lang=ts&\"\nexport * from \"./TitleBanner.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"mt-1\"},[_c('v-row',[_c('v-col',{staticClass:\"px-0\"},[_c('h2',{staticClass:\"blue--text text-h6\"},[_vm._v(\" Making it easy to follow standards \")]),_c('p',{staticClass:\"text-justify mb-0 text-body-1\"},[_vm._v(\" The Submission Portal is a flexible, template-driven tool designed to lower the barrier to collecting and reporting cohesive, standardized metadata about studies, samples, and assays. The standards we leverage include: \")])])],1),_c('v-row',[_c('v-col',{staticClass:\"px-0\"},[_c('h2',{staticClass:\"blue--text text-h6\"},[_vm._v(\" Supporting FAIR data \")]),_c('p',{staticClass:\"text-justify mb-0 text-body-1\"},[_vm._v(\" The Submission Portal leverages validation functions of the \"),_c('a',{attrs:{\"href\":\"https://github.com/cidgoh/DataHarmonizer\",\"rel\":\"noreferrer noopener\",\"target\":\"_blank\",\"title\":\"View cidgoh/DataHarmonizer on GitHub\"}},[_vm._v(\"DataHarmonizer\")]),_vm._v(\" tool to check entered metadata values against the standards in the \"),_c('a',{attrs:{\"href\":\"https://github.com/microbiomedata/nmdc-schema\",\"rel\":\"noreferrer noopener\",\"target\":\"_blank\",\"title\":\"View microbiomedata/nmdc-schema on GitHub\"}},[_vm._v(\"NMDC schema\")]),_vm._v(\". By following existing community standards like the Minimum Information about any (x) Sequence (MIxS) standard from the Genomic Standards Consortium (GSC), the Submission Portal advances FAIR microbiome data. \")])])],1),_c('v-row',[_c('v-col',{staticClass:\"px-0\"},[_c('h2',{staticClass:\"blue--text text-h6\"},[_vm._v(\" Interoperability with DOE User Facilities \")]),_c('p',{staticClass:\"text-justify mb-0 text-body-1\"},[_vm._v(\" We collaborate closely with the JGI and EMSL to support integration of multi-omics data generated across these Facilities. The Submission Portal has been designed to be compliant with both JGI and EMSL sample submission requirements, ensuring study and biosample information is consistently collected to support interoperability and reuse. \")])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n defineComponent,\n} from '@vue/composition-api';\n\nexport default defineComponent({});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IntroBlurb.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IntroBlurb.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IntroBlurb.vue?vue&type=template&id=3dbcb4f6&\"\nimport script from \"./IntroBlurb.vue?vue&type=script&lang=ts&\"\nexport * from \"./IntroBlurb.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VContainer,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"mt-4 limited-width\"},[_c('v-row',[_c('v-col',[_c('a',{staticClass:\"text-decoration-none\",attrs:{\"target\":\"_blank\",\"title\":\"View the how-to guide\",\"href\":\"https://nmdc-documentation.readthedocs.io/en/latest/howto_guides/submit2nmdc.html\",\"rel\":\"noreferrer noopener\"}},[_c('v-container',[_c('v-row',{staticClass:\"align-center flex-nowrap\"},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-avatar',{attrs:{\"color\":\"primary\"}},[_c('v-icon',{attrs:{\"color\":\"white\"}},[_vm._v(\" mdi-timer-outline \")])],1)],1),_c('v-col',[_c('span',{staticClass:\"blue--text text-left text-h6 font-weight-bold\"},[_vm._v(\" Quickstart \")])])],1)],1)],1)]),_c('v-col',[_c('a',{staticClass:\"text-decoration-none\",attrs:{\"target\":\"_blank\",\"title\":\"View the submission portal tutorial\",\"href\":\"https://nmdc-documentation.readthedocs.io/en/latest/tutorials/submission_portal.html\",\"rel\":\"noreferrer noopener\"}},[_c('v-container',[_c('v-row',{staticClass:\"align-center flex-nowrap\"},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-avatar',{attrs:{\"color\":\"primary\"}},[_c('v-icon',{attrs:{\"color\":\"white\"}},[_vm._v(\" mdi-human-male-board \")])],1)],1),_c('v-col',[_c('span',{staticClass:\"blue--text text-left text-h6 font-weight-bold\"},[_vm._v(\" Tutorial \")])])],1)],1)],1)]),_c('v-col',[_c('a',{staticClass:\"text-decoration-none\",attrs:{\"target\":\"_blank\",\"title\":\"View the metadata schema\",\"href\":\"https://w3id.org/nmdc/about\",\"rel\":\"noreferrer noopener\"}},[_c('v-container',[_c('v-row',{staticClass:\"align-center flex-nowrap\"},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-avatar',{attrs:{\"color\":\"primary\"}},[_c('v-icon',{attrs:{\"color\":\"white\"}},[_vm._v(\" mdi-book-open-variant-outline \")])],1)],1),_c('v-col',[_c('span',{staticClass:\"blue--text text-left text-h6 font-weight-bold\"},[_vm._v(\" Reference \")])])],1)],1)],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n defineComponent,\n} from '@vue/composition-api';\n\nexport default defineComponent({});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IconBar.vue?vue&type=template&id=faefabfe&scoped=true&\"\nimport script from \"./IconBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./IconBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./IconBar.vue?vue&type=style&index=0&id=faefabfe&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"faefabfe\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAvatar,VCol,VContainer,VIcon,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-alert',{staticClass:\"mt-6 mb-0\",attrs:{\"outlined\":\"\",\"text\":\"\",\"type\":\"warning\",\"color\":\"primary\",\"prominent\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('a',{attrs:{\"href\":\"https://support.orcid.org/hc/en-us/articles/360006973953\",\"rel\":\"noreferrer noopener\",\"target\":\"_blank\",\"title\":\"Learn about registering an ORCiD\"}},[_c('v-icon',_vm._g({},_vm.on),[_vm._v(\" mdi-help-circle \")])],1)]},proxy:true}])},[_c('span',{staticClass:\"text-h6 font-weight-bold mb-3\"},[_vm._v(\" Login to submit data \")]),_c('v-btn',{staticClass:\"mr-4\",attrs:{\"plain\":\"\",\"depressed\":\"\",\"text\":\"\",\"right\":\"\",\"absolute\":\"\"},on:{\"click\":_vm.handleLoginClick}},[_c('img',{staticClass:\"mr-2\",attrs:{\"width\":\"28px\",\"alt\":\"Login with ORCiD\",\"src\":\"https://orcid.org/assets/vectors/orcid.logo.icon.svg\"}}),_vm._v(\" OrcID Login \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent } from '@vue/composition-api';\nimport { api } from '@/data/api';\n\nexport default defineComponent({\n setup() {\n function handleLoginClick() {\n api.initiateOrcidLogin('submission');\n }\n return {\n handleLoginClick,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginPrompt.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginPrompt.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoginPrompt.vue?vue&type=template&id=d2b2247e&\"\nimport script from \"./LoginPrompt.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoginPrompt.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VAlert,VBtn,VIcon})\n","\nimport {\n computed,\n defineComponent,\n PropType,\n toRef,\n watch,\n} from '@vue/composition-api';\nimport { stateRefs } from '@/store';\nimport useRequest from '@/use/useRequest';\nimport { loadRecord } from './store';\nimport AppBanner from '@/components/AppBanner.vue';\nimport TitleBanner from '@/views/SubmissionPortal/Components/TitleBanner.vue';\nimport IntroBlurb from '@/views/SubmissionPortal/Components/IntroBlurb.vue';\nimport IconBar from '@/views/SubmissionPortal/Components/IconBar.vue';\nimport LoginPrompt from '@/views/SubmissionPortal/Components/LoginPrompt.vue';\n\nexport default defineComponent({\n components: {\n AppBanner,\n\n IconBar,\n IntroBlurb,\n LoginPrompt,\n TitleBanner,\n },\n props: {\n id: {\n type: String as PropType,\n default: null,\n },\n },\n setup(props, { root }) {\n const req = useRequest();\n\n function load() {\n const { id } = props;\n if (id) req.request(() => loadRecord(id));\n else req.reset();\n }\n\n watch(toRef(props, 'id'), load);\n load();\n\n const showBanner = computed(() => root.$route.path === '/submission/home');\n\n return {\n stateRefs,\n req,\n showBanner,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubmissionView.vue?vue&type=template&id=67087d02&\"\nimport script from \"./SubmissionView.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubmissionView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAlert,VCol,VContainer,VMain,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"text-h2\"},[_vm._v(\" Sample Environment \"),_c('submission-docs-link',{attrs:{\"anchor\":\"environmental-package\"}})],1),_vm._m(0),(!_vm.canEditSubmissionMetadata())?_c('submission-permission-banner'):_vm._e(),_vm._l((_vm.templates.filter(function (v) { return v[1].status === 'published'; })),function(option){return _c('v-checkbox',{key:option[0],staticClass:\"my-6\",attrs:{\"dense\":\"\",\"hide-details\":\"\",\"disabled\":_vm.templateChoiceDisabled || !_vm.canEditSubmissionMetadata(),\"label\":_vm.HARMONIZER_TEMPLATES[option[0]].displayName,\"value\":option[0]},model:{value:(_vm.packageName),callback:function ($$v) {_vm.packageName=$$v},expression:\"packageName\"}})}),_c('p',{staticClass:\"grey--text text--darken-1 my-5\"},[_vm._v(\" Under development \")]),_vm._l((_vm.templates.filter(function (v) { return v[1].status === 'disabled'; })),function(option){return _c('v-checkbox',{key:option[0],attrs:{\"hide-details\":\"\",\"disabled\":true,\"label\":_vm.HARMONIZER_TEMPLATES[option[0]].displayName,\"value\":option[0]},model:{value:(_vm.packageName),callback:function ($$v) {_vm.packageName=$$v},expression:\"packageName\"}})}),(!_vm.templateChoiceDisabled)?_c('v-alert',{attrs:{\"color\":\"grey lighten-2\"}},[_c('p',{staticClass:\"text-h5\"},[_vm._v(\" DataHarmonizer Template Choice \")]),_vm._v(\" Your DataHarmonizer template is \\\"\"+_vm._s(_vm.templateListDisplayNames)+\"\\\". \")]):_c('v-alert',{attrs:{\"type\":\"warning\"}},[_c('p',{staticClass:\"text-h5\"},[_vm._v(\" Template choice disabled \")]),_vm._v(\" Your DataHarmonizer template is \\\"\"+_vm._s(_vm.templateListDisplayNames)+\"\\\". Template cannot be changed when there are already metadata rows in step 6. To change the template, return to step 6 and remove all data. \")]),_c('div',{staticClass:\"d-flex\"},[_c('v-btn',{attrs:{\"color\":\"gray\",\"depressed\":\"\",\"to\":{ name: 'Multiomics Form' }}},[_c('v-icon',{staticClass:\"pr-1\"},[_vm._v(\" mdi-arrow-left-circle \")]),_vm._v(\" Go to previous step \")],1),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"depressed\":\"\",\"disabled\":_vm.packageName.length === 0,\"to\":{\n name: 'Submission Sample Editor',\n }}},[_c('v-icon',{staticClass:\"pr-1\"},[_vm._v(\" mdi-arrow-right-circle \")]),_vm._v(\" Go to next step \")],1)],1)],2)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-h5\"},[_vm._v(\" Choose the \"),_c('a',{attrs:{\"href\":\"https://genomicsstandardsconsortium.github.io/mixs/#extensions\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_vm._v(\"MIxS Extension\")]),_vm._v(\" for your samples. \")])}]\n\nexport { render, staticRenderFns }","\nimport { defineComponent, computed } from '@vue/composition-api';\nimport {\n templateChoiceDisabled,\n templateList,\n packageName,\n canEditSubmissionMetadata,\n} from '../store';\nimport SubmissionDocsLink from './SubmissionDocsLink.vue';\nimport SubmissionPermissionBanner from './SubmissionPermissionBanner.vue';\nimport { HARMONIZER_TEMPLATES } from '@/views/SubmissionPortal/types';\n\nexport default defineComponent({\n components: { SubmissionDocsLink, SubmissionPermissionBanner },\n setup() {\n const templateListDisplayNames = computed(() => templateList.value\n .map((templateKey) => HARMONIZER_TEMPLATES[templateKey].displayName)\n .join(' + '));\n\n return {\n packageName,\n HARMONIZER_TEMPLATES,\n templates: Object.entries(HARMONIZER_TEMPLATES),\n templateListDisplayNames,\n templateChoiceDisabled,\n canEditSubmissionMetadata,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplateChooser.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplateChooser.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TemplateChooser.vue?vue&type=template&id=34cf13b2&\"\nimport script from \"./TemplateChooser.vue?vue&type=script&lang=ts&\"\nexport * from \"./TemplateChooser.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAlert } from 'vuetify/lib/components/VAlert';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCheckbox } from 'vuetify/lib/components/VCheckbox';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAlert,VBtn,VCheckbox,VIcon,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"d-flex flex-column\",style:({'overflow-y': 'hidden', 'overflow-x': 'hidden', 'height': (\"calc(100vh - \" + _vm.APP_HEADER_HEIGHT + \"px)\")})},[_c('SubmissionStepper'),(!_vm.canEditSampleMetadata())?_c('submission-permission-banner'):_vm._e(),_c('div',{staticClass:\"d-flex flex-column px-2 pb-2\"},[_c('div',{staticClass:\"d-flex align-center\"},[(_vm.validationErrorGroups.length === 0)?_c('v-btn',{attrs:{\"color\":\"primary\",\"outlined\":\"\",\"disabled\":!_vm.canEditSampleMetadata()},on:{\"click\":_vm.validate}},[_vm._v(\" Validate \"),_c('v-icon',{staticClass:\"pl-2\"},[_vm._v(\" mdi-refresh \")])],1):_vm._e(),_c('v-snackbar',{attrs:{\"color\":\"success\",\"timeout\":\"3000\"},model:{value:(_vm.snackbar),callback:function ($$v) {_vm.snackbar=$$v},expression:\"snackbar\"}},[_vm._v(\" Validation Passed! You can now submit or continue editing. \")]),_c('v-snackbar',{attrs:{\"color\":\"error\",\"timeout\":\"5000\"},model:{value:(_vm.importErrorSnackbar),callback:function ($$v) {_vm.importErrorSnackbar=$$v},expression:\"importErrorSnackbar\"}},[_vm._v(\" The following worksheet names were not recognized: \"+_vm._s(_vm.notImportedWorksheetNames.join(', '))+\" \")]),(_vm.validationErrorGroups.length)?_c('v-card',{staticClass:\"d-flex py-2 align-center\",attrs:{\"color\":\"error\",\"width\":\"600\"}},[_c('v-select',{staticClass:\"mx-2 z-above-sidebar\",staticStyle:{\"background-color\":\"red\"},attrs:{\"items\":_vm.validationItems,\"solo\":\"\",\"color\":\"error\",\"dense\":\"\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('p',{staticClass:\"my-0\",staticStyle:{\"font-size\":\"14px\"}},[_vm._v(\" \"+_vm._s(item.text)+\" \")])]}}],null,false,1792395122),model:{value:(_vm.validationActiveCategory),callback:function ($$v) {_vm.validationActiveCategory=$$v},expression:\"validationActiveCategory\"}}),_c('div',{staticClass:\"d-flex align-center mx-2\"},[_c('v-icon',{on:{\"click\":function($event){return _vm.errorClick(_vm.highlightedValidationError - 1)}}},[_vm._v(\" mdi-arrow-left-circle \")]),_c('v-spacer'),_c('span',{staticClass:\"mx-1\"},[_vm._v(\" (\"+_vm._s(_vm.highlightedValidationError + 1)+\"/\"+_vm._s(_vm.validationErrors[_vm.validationActiveCategory].length)+\") \")]),_c('v-spacer'),_c('v-icon',{on:{\"click\":function($event){return _vm.errorClick(_vm.highlightedValidationError + 1)}}},[_vm._v(\" mdi-arrow-right-circle \")])],1),_c('v-btn',{staticClass:\"mx-2\",attrs:{\"outlined\":\"\",\"small\":\"\"},on:{\"click\":_vm.validate}},[_c('v-icon',{staticClass:\"pr-2\"},[_vm._v(\" mdi-refresh \")]),_vm._v(\" Re-validate \")],1)],1):_vm._e(),_c('submission-docs-link',{attrs:{\"anchor\":\"sample-metadata\"}}),(_vm.saveRecordRequest.count.value > 0)?_c('span',[(_vm.saveRecordRequest.loading.value)?_c('span',{staticClass:\"text-center\"},[_c('v-progress-circular',{attrs:{\"color\":\"primary\",\"width\":1,\"size\":\"20\",\"indeterminate\":\"\"}}),_vm._v(\" Saving progress \")],1):_vm._e(),(!_vm.saveRecordRequest.error.value && !_vm.saveRecordRequest.loading.value)?_c('span',[_c('v-icon',{attrs:{\"color\":\"green\"}},[_vm._v(\" mdi-check \")]),_vm._v(\" Changes saved successfully \")],1):(_vm.saveRecordRequest.error.value && !_vm.saveRecordRequest.loading.value)?_c('span',[_c('v-icon',{attrs:{\"color\":\"red\"}},[_vm._v(\" mdi-close \")]),_vm._v(\" Failed to save changes \")],1):_vm._e()]):_vm._e(),_c('v-spacer'),_c('v-autocomplete',{staticClass:\"shrink mr-2 z-above-sidebar\",attrs:{\"items\":_vm.fields,\"label\":\"Jump to column...\",\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"\",\"offset-y\":\"\",\"menu-props\":{ maxHeight: 500 }},on:{\"focus\":_vm.focus,\"change\":_vm.jumpTo},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('span',{class:{\n 'pl-4': item.value.columnName !== '',\n 'text-h5': item.value.columnName === '',\n }},[_vm._v(\" \"+_vm._s(item.value.columnName || item.value.sectionName)+\" \")])]}}]),model:{value:(_vm.jumpToModel),callback:function ($$v) {_vm.jumpToModel=$$v},expression:\"jumpToModel\"}}),_c('v-menu',{staticClass:\"z-above-sidebar\",attrs:{\"offset-y\":\"\",\"nudge-bottom\":\"4px\",\"close-on-click\":true},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"outlined\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{staticClass:\"pr-1\"},[_vm._v(\" mdi-eye \")]),_c('v-icon',[_vm._v(\" mdi-menu-down \")])],1)]}}])},[_c('v-card',{staticClass:\"py-1 px-2\",attrs:{\"width\":\"280\",\"outlined\":\"\"}},[_c('v-radio-group',{attrs:{\"label\":\"Column visibility\"},model:{value:(_vm.columnVisibility),callback:function ($$v) {_vm.columnVisibility=$$v},expression:\"columnVisibility\"}},[_c('v-radio',{attrs:{\"value\":\"all\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"black--text\"},[_vm._v(\" All Columns \")])]},proxy:true}])}),_c('v-radio',{attrs:{\"value\":\"required\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"black--text\"},[_c('span',{style:({ 'background-color': _vm.ColorKey.required.color })},[_vm._v(\"Required\")]),_vm._v(\" columns \")])]},proxy:true}])}),_c('v-radio',{attrs:{\"value\":\"recommended\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"black--text\"},[_c('span',{style:({ 'background-color': _vm.ColorKey.required.color })},[_vm._v(\"Required\")]),_vm._v(\" and \"),_c('span',{style:({ 'background-color': _vm.ColorKey.recommended.color })},[_vm._v(\"recommended\")]),_vm._v(\" columns \")])]},proxy:true}])}),_c('v-divider',{staticClass:\"mb-3\"}),_c('span',{staticClass:\"grey--text text--darken-2 text-body-1 mb-2\"},[_vm._v(\" Show section \")]),_vm._l((_vm.harmonizerApi.schemaSectionNames.value),function(sectionName,sectionTitle){return _c('v-radio',{key:sectionName,attrs:{\"value\":sectionName},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',[_vm._v(\" \"+_vm._s(sectionTitle)+\" \")])]},proxy:true}],null,true)})})],2)],1)],1)],1)]),_c('div',{staticClass:\"harmonizer-and-sidebar\"},[_c('v-tabs',{on:{\"change\":_vm.changeTemplate}},_vm._l((_vm.templateList),function(templateKey){return _c('v-tooltip',{key:templateKey,attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"flex\"}},'div',attrs,false),on),[_c('v-tab',[_c('v-badge',{attrs:{\"content\":_vm.validationTotalCounts[templateKey] || '!',\"value\":_vm.validationTotalCounts[templateKey] > 0 || !_vm.tabsValidated[templateKey],\"color\":_vm.validationTotalCounts[templateKey] > 0 ? 'error' : 'warning'}},[_vm._v(\" \"+_vm._s(_vm.HARMONIZER_TEMPLATES[templateKey].displayName)+\" \")])],1)],1)]}}],null,true)},[(_vm.validationTotalCounts[templateKey] > 0)?_c('span',[_vm._v(\" \"+_vm._s(_vm.validationTotalCounts[templateKey])+\" validation errors \")]):(!_vm.tabsValidated[templateKey])?_c('span',[_vm._v(\" This tab must be validated before submission \")]):_c('span',[_vm._v(\" \"+_vm._s(_vm.HARMONIZER_TEMPLATES[templateKey].displayName)+\" \")])])}),1),(_vm.schemaLoading)?_c('div',[_vm._v(\" Loading... \")]):_vm._e(),_c('div',{staticClass:\"harmonizer-style-container\",style:({\n 'right': _vm.sidebarOpen ? _vm.HELP_SIDEBAR_WIDTH : '0px',\n 'top': _vm.TABS_HEIGHT,\n }),attrs:{\"id\":\"harmonizer-root\"}}),_c('v-btn',{staticClass:\"sidebar-toggle\",style:({\n 'right': _vm.sidebarOpen ? _vm.HELP_SIDEBAR_WIDTH : '0px',\n }),attrs:{\"tile\":\"\",\"plain\":\"\",\"color\":\"black\",\"ripple\":false,\"height\":_vm.TABS_HEIGHT,\"width\":_vm.TABS_HEIGHT},on:{\"click\":function($event){_vm.sidebarOpen = !_vm.sidebarOpen}}},[(_vm.sidebarOpen)?_c('v-icon',{staticClass:\"sidebar-toggle-close\"},[_vm._v(\" mdi-menu-open \")]):_c('v-icon',[_vm._v(\" mdi-menu-open \")])],1),_c('v-navigation-drawer',{staticClass:\"z-above-data-harmonizer\",attrs:{\"width\":_vm.HELP_SIDEBAR_WIDTH,\"value\":_vm.sidebarOpen,\"absolute\":\"\",\"floating\":\"\",\"hide-overlay\":\"\",\"right\":\"\",\"stateless\":\"\",\"temporary\":\"\"}},[_c('HarmonizerSidebar',{attrs:{\"column-help\":_vm.selectedHelpDict,\"harmonizer-api\":_vm.harmonizerApi,\"harmonizer-template\":_vm.activeTemplate,\"metadata-editing-allowed\":_vm.canEditSampleMetadata()},on:{\"import-xlsx\":_vm.openFile,\"export-xlsx\":_vm.downloadSamples}})],1)],1),_c('div',{staticClass:\"harmonizer-style-container\"},[(_vm.canEditSampleMetadata())?_c('div',{attrs:{\"id\":\"harmonizer-footer-root\"}}):_vm._e()]),_c('div',{staticClass:\"d-flex ma-2\"},[_c('v-btn',{attrs:{\"color\":\"gray\",\"depressed\":\"\",\"to\":{ name: 'Environment Package' }}},[_c('v-icon',{staticClass:\"pr-1\"},[_vm._v(\" mdi-arrow-left-circle \")]),_vm._v(\" Go to previous step \")],1),_c('v-spacer'),_c('div',{staticClass:\"d-flex align-center\"},[_c('span',{staticClass:\"mr-1\"},[_vm._v(\"Color key\")]),_vm._l((_vm.ColorKey),function(val){return _c('v-chip',{key:val.label,staticClass:\"mr-1\",style:({ backgroundColor: val.color, opacity: 1 }),attrs:{\"disabled\":\"\"}},[_vm._v(\" \"+_vm._s(val.label)+\" \")])})],2),_c('v-spacer'),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\n var on = ref.on;\n var attrs = ref.attrs;\nreturn [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[_c('v-btn',{attrs:{\"color\":\"success\",\"depressed\":\"\",\"disabled\":!_vm.canSubmit || _vm.status !== _vm.submissionStatus.InProgress || _vm.submitCount > 0,\"loading\":_vm.submitLoading},on:{\"click\":function($event){_vm.submitDialog = true}}},[(_vm.status === _vm.submissionStatus.SubmittedPendingReview || _vm.submitCount)?_c('span',[_c('v-icon',[_vm._v(\"mdi-check-circle\")]),_vm._v(\" Submitted \")],1):_c('span',[_vm._v(\" Submit \")]),_c('v-dialog',{attrs:{\"activator\":\"parent\",\"width\":\"auto\"},model:{value:(_vm.submitDialog),callback:function ($$v) {_vm.submitDialog=$$v},expression:\"submitDialog\"}},[(_vm.isTestSubmission)?_c('v-card',[_c('v-card-title',[_vm._v(\" Submit \")]),_c('v-card-text',[_vm._v(\" Test submissions cannot be submitted for NMDC review. \")]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.submitDialog = false}}},[_vm._v(\" Close \")])],1)],1):_c('v-card',[_c('v-card-title',[_vm._v(\" Submit \")]),_c('v-card-text',[_vm._v(\" You are about to submit this study and metadata for NMDC review. Would you like to continue? \")]),_c('v-card-actions',[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\"},on:{\"click\":_vm.doSubmit}},[_vm._v(\" Yes- Submit \")]),_c('v-btn',{on:{\"click\":function($event){_vm.submitDialog = false}}},[_vm._v(\" Cancel \")])],1)],1)],1)],1)],1)]}}])},[(!_vm.canSubmit)?_c('span',[_vm._v(\" You must validate all tabs before submitting your study and metadata. \")]):_c('span',[_vm._v(\" Submit for NMDC review. \")])])],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:\"harmonizer-sidebar-content d-flex flex-column fill-height\"},[_c('div',{staticClass:\"flex-grow-0 flex-shrink-0\"},[_c('v-tabs',{attrs:{\"grow\":\"\"},model:{value:(_vm.tabModel),callback:function ($$v) {_vm.tabModel=$$v},expression:\"tabModel\"}},_vm._l((_vm.TABS),function(tab){return _c('v-tooltip',{key:tab.label,attrs:{\"open-delay\":\"600\",\"top\":\"\",\"z-index\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-tab',_vm._g(_vm._b({},'v-tab',attrs,false),on),[_c('v-icon',[_vm._v(_vm._s(tab.icon))])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(tab.label))])])}),1),_c('v-divider')],1),_c('v-tabs-items',{staticClass:\"flex-grow-1 overflow-y-auto\",model:{value:(_vm.tabModel),callback:function ($$v) {_vm.tabModel=$$v},expression:\"tabModel\"}},[_c('v-tab-item',[_c('ColumnHelp',{attrs:{\"column-help\":_vm.columnHelp,\"harmonizer-template\":_vm.harmonizerTemplate},on:{\"full-reference-click\":function($event){return _vm.harmonizerApi.launchReference()}}})],1),_c('v-tab-item',[_c('FindReplace',{attrs:{\"harmonizer-api\":_vm.harmonizerApi}})],1),_c('v-tab-item',[_c('MetadataSuggester',{attrs:{\"enabled\":_vm.metadataEditingAllowed,\"harmonizer-api\":_vm.harmonizerApi,\"schema-class-name\":_vm.harmonizerTemplate.schemaClass}})],1),_c('v-tab-item',[_c('ImportExportButtons',{attrs:{\"import-disabled\":!_vm.metadataEditingAllowed},on:{\"export\":function($event){return _vm.$emit('export-xlsx')},\"import\":_vm.handleImport}})],1),_c('v-tab-item',[_c('ContactCard',{attrs:{\"elevation\":\"0\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"elevation\":\"0\"}},[_c('v-card-title',[_vm._v(\" Find & Replace \")]),_c('v-card-text',[_c('v-row',{attrs:{\"align\":\"center\",\"dense\":\"\"}},[_c('v-col',{staticClass:\"flex-grow-1\"},[_c('v-form',{staticStyle:{\"width\":\"100%\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.next.apply(null, arguments)}}},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"label\":\"Find\",\"counter\":_vm.query ? _vm.count : undefined,\"counter-value\":_vm.query ? function () { return (_vm.count ? _vm.cursor + 1 : 0); } : null},model:{value:(_vm.query),callback:function ($$v) {_vm.query=$$v},expression:\"query\"}})],1)],1),_c('v-col',{staticClass:\"flex-grow-0 flex-shrink-0 text-no-wrap\"},[_c('v-tooltip',{attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"},on:{\"click\":_vm.previous}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-arrow-up-thin\")])],1)]}}])},[_c('span',[_vm._v(\"Find previous\")])]),_c('v-tooltip',{attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"},on:{\"click\":_vm.next}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-arrow-down-thin\")])],1)]}}])},[_c('span',[_vm._v(\"Find next\")])])],1)],1),_c('v-row',{attrs:{\"align\":\"center\",\"dense\":\"\"}},[_c('v-col',{staticClass:\"flex-grow-1\"},[_c('v-text-field',{attrs:{\"clearable\":\"\",\"label\":\"Replace\"},model:{value:(_vm.replacement),callback:function ($$v) {_vm.replacement=$$v},expression:\"replacement\"}})],1),_c('v-col',{staticClass:\"flex-grow-0 flex-shrink-0 text-no-wrap\"},[_c('v-tooltip',{attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"},on:{\"click\":_vm.replaceOnce}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-repeat-once\")])],1)]}}])},[_c('span',[_vm._v(\"Replace\")])]),_c('v-tooltip',{attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"},on:{\"click\":_vm.replaceAll}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"mdi-repeat\")])],1)]}}])},[_c('span',[_vm._v(\"Replace all\")])])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n defineComponent,\n computed,\n ref,\n watch,\n PropType,\n} from '@vue/composition-api';\nimport type { Ref } from '@vue/composition-api';\nimport type { HarmonizerApi } from '../harmonizerApi';\n\ntype SearchResult = {\n row: number;\n col: number;\n};\n\n// Pressing \"clear\" button will reset the find cursor position to 0,0.\n// Otherwise, the cursor position will be preserved so that subsequent\n// searches will start from the same position. This includes appending\n// characters to the search string or Ctrl-A+delete clearing of the\n// search string.\n\nexport default defineComponent({\n props: {\n harmonizerApi: {\n type: Object as PropType,\n required: true,\n },\n },\n setup(props) {\n // search matches, sorted by (col, row)\n const results: Ref = ref([]);\n // search query\n const query: Ref = ref('');\n // replacement term\n const replacement: Ref = ref('');\n // points to next result\n const cursor: Ref = ref(0);\n // last result at cursor\n const result: Ref = ref({ row: 0, col: 0 });\n // number of results\n const count = computed(() => results.value.length);\n\n // cyclically scroll the cursor\n function scroll(offset: number) {\n const n = count.value || 1;\n const i = cursor.value + offset;\n cursor.value = ((i % n) + n) % n;\n // clear highlighting\n props.harmonizerApi.highlight();\n if (query.value === null) {\n // reset to result origin if the query has been cleared\n result.value = { row: 0, col: 0 };\n } else if (count.value > 0) {\n // update result if there's a valid query\n result.value = results.value[cursor.value];\n // highlight the result\n props.harmonizerApi.highlight(result.value.row, result.value.col);\n props.harmonizerApi.scrollViewportTo(result.value.row, result.value.col);\n }\n }\n const next = () => scroll(1);\n const previous = () => scroll(-1);\n\n // update results with the current query and the current handsontable data\n function updateResults() {\n // comparator for sorting search results\n function comparator(a: SearchResult, b: SearchResult) {\n return a.col - b.col || a.row - b.row;\n }\n // update results\n results.value = props.harmonizerApi\n .find(query.value || '')\n .sort(comparator);\n // find leftmost insertion point\n let low = 0;\n let high = count.value - 1;\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n if (comparator(results.value[mid], result.value) >= 0) {\n high = mid - 1;\n } else {\n low = mid + 1;\n }\n }\n // seek cursor to leftmost insertion point\n scroll(low - cursor.value);\n }\n\n // replace the text at the current cursor position or all results with the replacement term\n function replace(all:boolean) {\n // array of SearchResults to perform replacements on\n const resultsToChange = all ? results.value : [result.value];\n // array of CellDatas with the replacement applied\n const replacements = resultsToChange.map((r) => {\n const data = props.harmonizerApi.getCellData(r.row, r.col);\n data.text = data.text.replace(query.value || '', replacement.value || '');\n return data;\n });\n // replace the text in Handsontable\n props.harmonizerApi.setCellData(replacements);\n // update the results to respect the new text\n updateResults();\n }\n const replaceOnce = () => replace(false);\n const replaceAll = () => replace(true);\n\n // update the search results when the query changes\n watch(query, () => updateResults());\n\n return {\n next,\n previous,\n replacement,\n scroll,\n query,\n count,\n result,\n results,\n cursor,\n replace,\n replaceOnce,\n replaceAll,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FindReplace.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FindReplace.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FindReplace.vue?vue&type=template&id=6859864e&\"\nimport script from \"./FindReplace.vue?vue&type=script&lang=ts&\"\nexport * from \"./FindReplace.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VCol,VForm,VIcon,VRow,VTextField,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"elevation\":_vm.elevation}},[_c('v-card-title',[_vm._v(\" We are here to help \")]),_c('v-card-text',[_c('v-list',{attrs:{\"subheader\":\"\"}},[_c('v-list-item',{staticClass:\"mb-2\",staticStyle:{\"background-color\":\"#eeeeee\"},attrs:{\"two-line\":\"\",\"href\":\"https://microbiomedata.org/contact/\"}},[_c('v-btn',{staticClass:\"mr-4\",staticStyle:{\"border\":\"solid #4F3B80\"},attrs:{\"icon\":\"\",\"outlined\":\"\",\"color\":\"primary\"}},[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\" mdi-open-in-new \")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"primary--text\"},[_vm._v(\" Visit our support page \")])],1)],1),_c('v-list-item',{staticClass:\"mb-2\",staticStyle:{\"background-color\":\"#eeeeee\"},attrs:{\"two-line\":\"\",\"href\":_vm.emailTemplate('support')}},[_c('v-btn',{staticClass:\"mr-4\",staticStyle:{\"border\":\"solid\"},attrs:{\"icon\":\"\",\"outlined\":\"\",\"color\":\"blue\"}},[_c('v-icon',[_vm._v(\"mdi-email\")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"blue--text\"},[_vm._v(\" Send us a message \")]),_c('v-list-item-subtitle',[_vm._v(\" Ask us for help \")])],1)],1),_c('v-list-item',{staticClass:\"mb-2\",staticStyle:{\"background-color\":\"#eeeeee\"},attrs:{\"two-line\":\"\",\"href\":_vm.emailTemplate('bug')}},[_c('v-btn',{staticClass:\"mr-4\",staticStyle:{\"border\":\"solid\"},attrs:{\"icon\":\"\",\"outlined\":\"\",\"color\":\"red\"}},[_c('v-icon',[_vm._v(\"mdi-bug\")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"red--text\"},[_vm._v(\" Report an issue \")]),_c('v-list-item-subtitle',[_vm._v(\" Let us know of any bugs \")])],1)],1),_c('v-list-item',{staticClass:\"mb-2\",staticStyle:{\"background-color\":\"#eeeeee\"},attrs:{\"two-line\":\"\",\"href\":_vm.emailTemplate('feature')}},[_c('v-btn',{staticClass:\"mr-4\",staticStyle:{\"border\":\"solid\"},attrs:{\"icon\":\"\",\"outlined\":\"\",\"color\":\"grey darken-2\"}},[_c('v-icon',[_vm._v(\"mdi-plus-circle\")])],1),_c('v-list-item-content',[_c('v-list-item-title',{staticClass:\"grey--text text--darken-2\"},[_vm._v(\" Request a feature \")]),_c('v-list-item-subtitle',[_vm._v(\" Suggest a new feature \")])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n elevation: {\n type: String,\n default: '24',\n },\n },\n setup() {\n function emailTemplate(value: string) {\n const subjects: { [key: string]: string } = {\n support: 'Support Request',\n bug: 'Bug Report',\n feature: 'Feature Request',\n };\n const subject = encodeURIComponent(subjects[value]);\n return `mailto:support@microbiomedata.org?subject=${subject}`;\n }\n return {\n emailTemplate,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ContactCard.vue?vue&type=template&id=571ee70a&\"\nimport script from \"./ContactCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./ContactCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemSubtitle } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VIcon,VList,VListItem,VListItemContent,VListItemSubtitle,VListItemTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"elevation\":\"0\"}},[_c('v-card-title',[_vm._v(\" Import & Export \")]),_c('v-card-text',[_c('v-row',[_c('v-col',[_c('v-btn',{attrs:{\"color\":\"primary\",\"block\":\"\",\"outlined\":\"\"},on:{\"click\":function($event){return _vm.$emit('export')}}},[_c('v-icon',{staticClass:\"pr-2\"},[_vm._v(\" mdi-file-download \")]),_vm._v(\" Export to XLSX \")],1)],1)],1),_c('v-row',[_c('v-col',[_c('label',{attrs:{\"for\":\"tsv-file-select\"}},[_c('input',{ref:\"xlsxFileInput\",staticStyle:{\"position\":\"fixed\",\"top\":\"-100em\"},attrs:{\"type\":\"file\",\"accept\":\".xls,.xlsx\"},on:{\"change\":_vm.handleFileInputChange}}),_c('v-btn',{attrs:{\"color\":\"primary\",\"block\":\"\",\"outlined\":\"\",\"disabled\":_vm.importDisabled},on:{\"click\":_vm.showOpenFileDialog}},[_c('v-icon',{staticClass:\"pr-2\"},[_vm._v(\" mdi-file-upload \")]),_vm._v(\" Import from XLSX \")],1)],1)])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent, ref } from '@vue/composition-api';\n\nexport default defineComponent({\n props: {\n importDisabled: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['export', 'import'],\n setup(props, { emit }) {\n const xlsxFileInput = ref();\n\n function showOpenFileDialog() {\n xlsxFileInput.value.click();\n }\n\n function handleFileInputChange(event: Event) {\n const target = event.target as HTMLInputElement;\n if (!target || !target.files) {\n return;\n }\n emit('import', target.files[0]);\n\n // Reset the file input so that the same filename can be loaded multiple times\n target.value = '';\n }\n\n return {\n handleFileInputChange,\n showOpenFileDialog,\n xlsxFileInput,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImportExportButtons.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImportExportButtons.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ImportExportButtons.vue?vue&type=template&id=0db1946e&\"\nimport script from \"./ImportExportButtons.vue?vue&type=script&lang=ts&\"\nexport * from \"./ImportExportButtons.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VCol,VIcon,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"elevation\":\"0\"}},[_c('v-card-title',[_vm._v(\" Column Info \")]),(_vm.columnHelp)?_c('v-card-text',{staticClass:\"text--primary\"},[_c('div',{staticClass:\"mb-2\"},[_c('span',{staticClass:\"font-weight-bold pr-2\"},[_vm._v(\"Column:\")]),_c('span',{attrs:{\"title\":_vm.columnHelp.name},domProps:{\"innerHTML\":_vm._s(_vm.columnHelp.title)}})]),_c('div',{staticClass:\"mb-2\"},[_c('span',{staticClass:\"font-weight-bold pr-2\"},[_vm._v(\"Description:\")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.urlify(_vm.columnHelp.description))}})]),_c('div',{staticClass:\"mb-2\"},[_c('span',{staticClass:\"font-weight-bold pr-2\"},[_vm._v(\"Guidance:\")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.urlify(_vm.columnHelp.guidance))}})]),(_vm.columnHelp.examples)?_c('div',{staticClass:\"mb-2\"},[_c('span',{staticClass:\"font-weight-bold pr-2\"},[_vm._v(\"Examples:\")]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.urlify(_vm.columnHelp.examples))}})]):_vm._e(),_c('v-btn',{attrs:{\"color\":\"grey\",\"outlined\":\"\",\"small\":\"\",\"block\":\"\"},on:{\"click\":function($event){return _vm.$emit('full-reference-click')}}},[_vm._v(\" Full \"+_vm._s(_vm.harmonizerTemplate.displayName)+\" Reference \"),_c('v-icon',{staticClass:\"pl-1\"},[_vm._v(\" mdi-open-in-new \")])],1)],1):_c('v-card-text',{staticClass:\"text--disabled\"},[_vm._v(\" Click on a cell or column to view help \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent, PropType } from '@vue/composition-api';\nimport { urlify } from '@/data/utils';\nimport { ColumnHelpInfo, HarmonizerTemplateInfo } from '@/views/SubmissionPortal/types';\n\nexport default defineComponent({\n props: {\n columnHelp: {\n type: Object as PropType,\n default: null,\n },\n harmonizerTemplate: {\n type: Object as PropType,\n required: true,\n },\n },\n emits: ['full-reference-click'],\n setup() {\n return {\n urlify,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColumnHelp.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColumnHelp.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColumnHelp.vue?vue&type=template&id=43fd9eca&\"\nimport script from \"./ColumnHelp.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColumnHelp.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VIcon})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-card',{attrs:{\"elevation\":\"0\"}},[_c('v-card-title',[_vm._v(\" Metadata Suggester \"),_c('v-spacer'),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"min-width\":\"300px\",\"max-width\":\"600px\",\"open-delay\":_vm.TOOLTIP_DELAY,\"z-index\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-icon',_vm._g(_vm._b({},'v-icon',attrs,false),on),[_vm._v(\" mdi-information-outline \")])]}}])},[_c('span',[_vm._v(\" As you enter sample metadata, the Metadata Suggester will offer suggestions for metadata values based on the metadata values you have already entered. \")])])],1),(_vm.enabled)?_c('v-card-text',[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.suggestionModeOptions,\"dense\":\"\",\"hide-details\":\"\",\"label\":\"Suggestion Mode\",\"outlined\":\"\"},model:{value:(_vm.suggestionMode),callback:function ($$v) {_vm.suggestionMode=$$v},expression:\"suggestionMode\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.suggestionTypeOptions,\"dense\":\"\",\"hide-details\":\"\",\"label\":\"Suggestion Type\",\"outlined\":\"\"},model:{value:(_vm.suggestionType),callback:function ($$v) {_vm.suggestionType=$$v},expression:\"suggestionType\"}})],1)],1),(_vm.suggestionMode === _vm.SuggestionsMode.ON_DEMAND)?_c('v-row',[_c('v-col',[_c('v-btn',{attrs:{\"color\":\"primary\",\"block\":\"\",\"loading\":_vm.onDemandSuggestionsLoading},on:{\"click\":_vm.handleSuggestForSelectedRows}},[_vm._v(\" Suggest for Selected Rows \")])],1)],1):_vm._e(),(_vm.hasSuggestions)?_c('v-row',[_c('v-col',[_c('div',{staticClass:\"d-flex justify-space-between align-center\"},[_c('div',{staticClass:\"text-body-1 text--primary font-weight-medium\"},[_vm._v(\" All Suggestions \")]),_c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":_vm.TOOLTIP_DELAY},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\",\"icon\":\"\"},on:{\"click\":_vm.handleRejectAllSuggestions}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" mdi-close \")])],1)]}}],null,false,1788744042)},[_c('span',[_vm._v(\"Reject all suggestions\")])]),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":_vm.TOOLTIP_DELAY},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"primary\",\"icon\":\"\"},on:{\"click\":_vm.handleAcceptAllSuggestions}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" mdi-check \")])],1)]}}],null,false,695921013)},[_c('span',[_vm._v(\"Accept all suggestions\")])])],1)])])],1):_vm._e(),_c('v-row',[_c('v-col',[(!_vm.hasSuggestions)?_c('div',{staticClass:\"text--disabled\"},[_vm._v(\" No suggestions available. \")]):_vm._e(),_vm._l((_vm.suggestionsByRow),function(suggestion,row){return _c('div',{key:row},[_c('div',{staticClass:\"text-body-2\"},[_vm._v(\" Row: \"+_vm._s(Number(row) + 1)+\" \")]),_c('v-sheet',{key:row,staticClass:\"mb-4\",attrs:{\"elevation\":\"0\",\"rounded\":\"\",\"outlined\":\"\"}},_vm._l((suggestion),function(s){return _c('div',{key:s.slot,staticClass:\"ma-2\"},[_c('div',{staticClass:\"flex-grow-1 full-width\"},[_c('div',{staticClass:\"text-body-2\"},[_c('span',{staticClass:\"grey--text\"},[_vm._v(\"Column:\")]),_vm._v(\" \"+_vm._s(_vm.getSlotTitle(s.slot))+\" \")])]),_c('div',{staticClass:\"d-flex flex-wrap align-center justify-end\"},[_c('div',{staticClass:\"flex-grow-1\"},[(s.current_value)?_c('span',{staticClass:\"value previous\",domProps:{\"textContent\":_vm._s(s.current_value)}}):_vm._e(),_c('span',{staticClass:\"value suggested\",domProps:{\"textContent\":_vm._s(s.value)}})]),_c('div',{staticClass:\"flex-shrink-0 flex-grow-0\"},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":_vm.TOOLTIP_DELAY},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.handleJumpToCell(s)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" mdi-target \")])],1)]}}],null,true)},[_c('span',[_vm._v(\"Jump to cell\")])]),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":_vm.TOOLTIP_DELAY},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.handleRejectSuggestion(s)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" mdi-close \")])],1)]}}],null,true)},[_c('span',[_vm._v(\"Reject suggestion\")])]),_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":_vm.TOOLTIP_DELAY},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){return _vm.handleAcceptSuggestion(s)}}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\" mdi-check \")])],1)]}}],null,true)},[_c('span',[_vm._v(\"Accept suggestion\")])])],1)])])}),0)],1)})],2)],1),(_vm.rejectedSuggestions.length > 0)?_c('v-row',[_c('v-col',[_c('v-btn',{attrs:{\"color\":\"grey\",\"outlined\":\"\",\"small\":\"\",\"block\":\"\"},on:{\"click\":_vm.handleResetRejectedSuggestions}},[_vm._v(\" Reset rejected suggestions \")])],1)],1):_vm._e()],1):_c('v-card-text',[_vm._v(\" Suggestions are disabled because you do not have permission to edit the metadata. \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n computed,\n defineComponent,\n PropType,\n ref,\n watchEffect,\n} from '@vue/composition-api';\nimport { groupBy } from 'lodash';\nimport {\n addMetadataSuggestions,\n removeMetadataSuggestions,\n metadataSuggestions,\n suggestionMode,\n suggestionType,\n} from '@/views/SubmissionPortal/store';\nimport {\n CellData,\n MetadataSuggestion,\n SuggestionsMode,\n SuggestionType,\n} from '@/views/SubmissionPortal/types';\nimport type { HarmonizerApi } from '@/views/SubmissionPortal/harmonizerApi';\nimport { getRejectedSuggestions, setRejectedSuggestions } from '@/store/localStorage';\n\nconst suggestionModeOptions = Object.values(SuggestionsMode);\nconst suggestionTypeOptions = Object.values(SuggestionType);\n\nfunction getSuggestionKey(suggestion: MetadataSuggestion) {\n return `${suggestion.row}__${suggestion.slot}__${suggestion.value}`;\n}\n\n/**\n * Component to display metadata suggestions and allow users to accept or reject them.\n */\nexport default defineComponent({\n props: {\n /**\n * Whether the suggester UI is displayed or not. If false, the component will display a message indicating that\n * the user does not have permission to edit the metadata.\n */\n enabled: {\n type: Boolean,\n required: true,\n },\n /**\n * The Harmonizer API instance.\n */\n harmonizerApi: {\n type: Object as PropType,\n required: true,\n },\n /**\n * The schema class name for the active template.\n */\n schemaClassName: {\n type: String,\n required: true,\n },\n },\n\n setup(props, { root }) {\n const rejectedSuggestions = ref([] as string[]);\n const onDemandSuggestionsLoading = ref(false);\n\n // When the route or schema class name changes (because of changing the active template tab), update the rejected\n // suggestions list from local storage.\n watchEffect(() => {\n rejectedSuggestions.value = getRejectedSuggestions(root.$route.params.id, props.schemaClassName);\n });\n\n // Filter out rejected suggestions and group by row\n const suggestionsByRow = computed(() => {\n const filteredSuggestions = metadataSuggestions.value.filter((suggestion) => {\n const key = getSuggestionKey(suggestion);\n return !rejectedSuggestions.value.includes(key);\n });\n return groupBy(filteredSuggestions, 'row');\n });\n\n const hasSuggestions = computed(() => Object.keys(suggestionsByRow.value).length > 0);\n\n /**\n * Accepts the given suggestions by setting the cell data via the Harmonizer API and removing the suggestions from\n * the store.\n * @param suggestions\n */\n function acceptSuggestions(suggestions: MetadataSuggestion[]) {\n const cellData = [] as CellData[];\n suggestions.forEach((suggestion) => {\n const { row, slot } = suggestion;\n const col = props.harmonizerApi.slotInfo.get(slot)?.columnIndex;\n if (col === undefined) {\n return;\n }\n cellData.push({ row, col, text: suggestion.value });\n });\n\n // Do this outside of the forEach so that the DataHarmonizer afterChange hook is only triggered once\n props.harmonizerApi.setCellData(cellData);\n\n removeMetadataSuggestions(root.$route.params.id, props.schemaClassName, suggestions);\n }\n\n /**\n * Rejects the given suggestions by adding them to the rejected suggestions list in local storage.\n * @param suggestions\n */\n function rejectSuggestions(suggestions: MetadataSuggestion[]) {\n suggestions.forEach((suggestion) => {\n const key = getSuggestionKey(suggestion);\n rejectedSuggestions.value.push(key);\n });\n setRejectedSuggestions(root.$route.params.id, props.schemaClassName, rejectedSuggestions.value);\n }\n\n /**\n * Handles jumping to the cell associated with the given suggestion.\n * @param suggestion\n */\n function handleJumpToCell(suggestion: MetadataSuggestion) {\n const { row, slot } = suggestion;\n const col = props.harmonizerApi.slotInfo.get(slot)?.columnIndex;\n if (col === undefined) {\n return;\n }\n props.harmonizerApi.jumpToRowCol(row, col);\n }\n\n /**\n * Handle clicking the reject button for a single suggestion.\n * @param suggestion\n */\n function handleRejectSuggestion(suggestion: MetadataSuggestion) {\n rejectSuggestions([suggestion]);\n }\n\n /**\n * Handle clicking the accept button for a single suggestion.\n * @param suggestion\n */\n function handleAcceptSuggestion(suggestion: MetadataSuggestion) {\n acceptSuggestions([suggestion]);\n }\n\n /**\n * Handle clicking the accept all button.\n */\n function handleAcceptAllSuggestions() {\n acceptSuggestions(Object.values(suggestionsByRow.value).flat());\n }\n\n /**\n * Handle clicking the reject all button.\n */\n function handleRejectAllSuggestions() {\n rejectSuggestions(Object.values(suggestionsByRow.value).flat());\n }\n\n /**\n * Handle clicking the \"Suggest for Selected Rows\" button.\n *\n * This will get the data for the selected rows, send it to the backend to get suggestions, and then add the\n * suggestions to the store.\n */\n async function handleSuggestForSelectedRows() {\n onDemandSuggestionsLoading.value = true;\n const selectedRanges = props.harmonizerApi.getSelectedCells();\n // selectedRanges is an array of arrays, representing all (possibly discontinuous) ranges of selected cells. Each\n // inner array is [startRow, startCol, endRow, endCol]. Reduce this to a flat array of row numbers contained in\n // the selected ranges.\n const rows = selectedRanges.reduce((acc, range) => {\n for (let i = range[0]; i <= range[2]; i += 1) {\n acc.push(i);\n }\n return acc;\n }, [] as number[]);\n const changedRowData = props.harmonizerApi.getDataByRows(rows);\n try {\n await addMetadataSuggestions(root.$route.params.id, props.schemaClassName, changedRowData);\n } finally {\n onDemandSuggestionsLoading.value = false;\n }\n }\n\n /**\n * Handle resetting the rejected suggestions list.\n */\n function handleResetRejectedSuggestions() {\n rejectedSuggestions.value = [];\n setRejectedSuggestions(root.$route.params.id, props.schemaClassName, rejectedSuggestions.value);\n }\n\n /**\n * Translate a slot name to its title.\n * @param slot\n */\n function getSlotTitle(slot: string) {\n return props.harmonizerApi.slotInfo.get(slot)?.title ?? slot;\n }\n\n return {\n SuggestionsMode,\n getSlotTitle,\n handleAcceptAllSuggestions,\n handleAcceptSuggestion,\n handleJumpToCell,\n handleRejectAllSuggestions,\n handleRejectSuggestion,\n handleResetRejectedSuggestions,\n handleSuggestForSelectedRows,\n hasSuggestions,\n onDemandSuggestionsLoading,\n rejectedSuggestions,\n suggestionMode,\n suggestionModeOptions,\n suggestionType,\n suggestionTypeOptions,\n suggestionsByRow,\n TOOLTIP_DELAY: '600',\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetadataSuggester.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MetadataSuggester.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MetadataSuggester.vue?vue&type=template&id=620cd056&scoped=true&\"\nimport script from \"./MetadataSuggester.vue?vue&type=script&lang=ts&\"\nexport * from \"./MetadataSuggester.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MetadataSuggester.vue?vue&type=style&index=0&id=620cd056&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 \"620cd056\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSheet } from 'vuetify/lib/components/VSheet';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VCol,VIcon,VRow,VSelect,VSheet,VSpacer,VTooltip})\n","\nimport {\n defineComponent, PropType, ref,\n} from '@vue/composition-api';\nimport FindReplace from '@/views/SubmissionPortal/Components/FindReplace.vue';\nimport type { HarmonizerApi } from '@/views/SubmissionPortal/harmonizerApi';\nimport ContactCard from '@/views/SubmissionPortal/Components/ContactCard.vue';\nimport ImportExportButtons from '@/views/SubmissionPortal/Components/ImportExportButtons.vue';\nimport ColumnHelp from '@/views/SubmissionPortal/Components/ColumnHelp.vue';\nimport MetadataSuggester from '@/views/SubmissionPortal/Components/MetadataSuggester.vue';\nimport { ColumnHelpInfo, HarmonizerTemplateInfo } from '@/views/SubmissionPortal/types';\n\n/**\n * The tabbed Data Harmonizer sidebar.\n */\nexport default defineComponent({\n components: {\n MetadataSuggester,\n ColumnHelp,\n ImportExportButtons,\n ContactCard,\n FindReplace,\n },\n props: {\n /**\n * Help information for the currently selected column.\n */\n columnHelp: {\n type: Object as PropType,\n default: null,\n },\n /**\n * Information about the active template.\n */\n harmonizerTemplate: {\n type: Object as PropType,\n required: true,\n },\n /**\n * Whether the current user is allowed to edit metadata.\n */\n metadataEditingAllowed: {\n type: Boolean,\n default: false,\n },\n /**\n * The Harmonizer API instance.\n */\n harmonizerApi: {\n type: Object as PropType,\n required: true,\n },\n },\n emits: ['export-xlsx', 'import-xlsx'],\n setup(props, { emit }) {\n const tabModel = ref(0);\n const TABS = [\n {\n icon: 'mdi-information-outline',\n label: 'Column Info',\n },\n {\n icon: 'mdi-text-search',\n label: 'Find & Replace',\n },\n {\n icon: 'mdi-assistant',\n label: 'Metadata Suggester',\n },\n {\n icon: 'mdi-swap-vertical',\n label: 'Import & Export',\n },\n {\n icon: 'mdi-help-circle-outline',\n label: 'Help',\n },\n ];\n\n const handleImport = (...args: never[]) => {\n emit('import-xlsx', ...args);\n };\n\n return {\n TABS,\n handleImport,\n tabModel,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HarmonizerSidebar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HarmonizerSidebar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HarmonizerSidebar.vue?vue&type=template&id=e716bd52&scoped=true&\"\nimport script from \"./HarmonizerSidebar.vue?vue&type=script&lang=ts&\"\nexport * from \"./HarmonizerSidebar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HarmonizerSidebar.vue?vue&type=style&index=0&id=e716bd52&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 \"e716bd52\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabItem } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTabsItems } from 'vuetify/lib/components/VTabs';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VDivider,VIcon,VTab,VTabItem,VTabs,VTabsItems,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app-bar',{staticClass:\"navigation-button-text-animate\",attrs:{\"app\":\"\",\"color\":\"white\",\"clipped-left\":\"\",\"elevation\":\"4\",\"height\":_vm.APP_HEADER_HEIGHT}},[_c('a',{staticClass:\"header-logo\",attrs:{\"href\":\"https://microbiomedata.org/\"}},[_c('img',{attrs:{\"src\":\"/NMDC_logo_long.jpg\",\"alt\":\"Home page\"}})]),_c('v-spacer'),_vm._l((_vm.Menus),function(menu){return [(!menu.items || !menu.items.length)?_c('v-btn',{key:menu.label,attrs:{\"plain\":\"\",\"small\":\"\",\"ripple\":false,\"href\":menu.href}},[_c('div',{staticClass:\"navigation-button-text\"},[_vm._v(\" \"+_vm._s(menu.label)+\" \")])]):_c('v-menu',{key:menu.label,attrs:{\"bottom\":\"\",\"right\":\"\",\"offset-y\":\"\",\"content-class\":\"navigation-button-text-animate elevation-4\",\"open-on-hover\":true,\"transition\":\"fade-transition\",\"z-index\":\"501\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"plain\":\"\",\"small\":\"\",\"ripple\":false,\"href\":menu.href}},'v-btn',attrs,false),on),[_c('div',{staticClass:\"navigation-button-text\"},[_vm._v(\" \"+_vm._s(menu.label)+\" \")]),_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" mdi-chevron-down \")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"dense\":\"\",\"expand\":\"\",\"flat\":\"\",\"nav\":\"\"}},_vm._l((menu.items),function(item){return _c('v-list-item',{key:item.label,staticClass:\"text-uppercase\",attrs:{\"href\":item.href,\"to\":item.to,\"ripple\":false}},[_c('v-list-item-content',[_c('v-list-item-title',[_c('div',{staticClass:\"navigation-button-text\"},[_vm._v(\" \"+_vm._s(item.label)+\" \")])])],1)],1)}),1)],1)]}),_c('v-divider',{attrs:{\"vertical\":\"\"}}),_c('AuthButton',{attrs:{\"nav\":\"\"}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading)?[_c('div',{staticClass:\"d-flex align-center user-loading\"},[_c('img',{staticClass:\"mx-2\",attrs:{\"width\":\"24px\",\"alt\":\"ORCID logo\",\"src\":\"https://orcid.org/assets/vectors/orcid.logo.icon.svg\"}}),_c('v-skeleton-loader',{staticClass:\"m-0\",attrs:{\"type\":\"text\",\"min-width\":\"100\"}})],1)]:(_vm.me)?[_c('v-btn',{attrs:{\"text\":!_vm.nav,\"plain\":_vm.nav,\"small\":_vm.nav,\"ripple\":!_vm.nav,\"to\":{ name: 'User' }}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-account-circle \")]),_vm._v(\" \"+_vm._s(_vm.me.name)+\" \"),_c('img',{staticClass:\"ml-2\",attrs:{\"width\":\"24px\",\"alt\":\"ORCID logo\",\"src\":\"https://orcid.org/assets/vectors/orcid.logo.icon.svg\"}})],1),_c('v-btn',{attrs:{\"icon\":!_vm.nav,\"plain\":_vm.nav,\"small\":_vm.nav,\"ripple\":!_vm.nav},on:{\"click\":_vm.handleLogout}},[_c('v-icon',[_vm._v(\"mdi-logout\")])],1)]:[_c('v-menu',{staticClass:\"login-btn-orcid-help\",attrs:{\"bottom\":\"\",\"max-width\":\"500\",\"open-on-hover\":true,\"transition\":\"fade-transition\",\"offset-y\":\"\",\"content-class\":\"login-btn-orcid-help\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"text\":!_vm.nav,\"plain\":_vm.nav,\"small\":_vm.nav},on:{\"click\":_vm.handleLogin}},'v-btn',attrs,false),on),[_c('img',{staticClass:\"mr-2\",attrs:{\"width\":\"28px\",\"alt\":\"OrcId login\",\"src\":\"https://orcid.org/assets/vectors/orcid.logo.icon.svg\"}}),_vm._v(\" OrcID Login \")])]}}])},[_c('v-card',[_c('v-card-title',[_vm._v(\"ORCID Account Integration\")]),_c('v-card-text',[_c('p',[_vm._v(\" NMDC requires an ORCID iD to log in. When logged in you have access to features such as downloading files and the ability to create and manage metadata submissions through our Submission Portal. \")]),_c('p',[_vm._v(\" Click the \\\"ORCID Login\\\" button, to either register for an ORCID iD or, if you already have one, to sign into your ORCID account, then grant permission for NMDC to access your ORCID iD. This allows us to verify your identity and securely connect to your ORCID iD. Additionally, we may use information, such as your name and email, to associate your ORCID record with your NMDC submissions. \")]),_c('p',[_vm._v(\"Learn more about \"),_c('a',{attrs:{\"href\":\"https://orcid.org/blog/2017/02/20/whats-so-special-about-signing\"}},[_vm._v(\"what's so special about signing in.\")])])])],1)],1)]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent } from '@vue/composition-api';\nimport { init, stateRefs } from '@/store';\nimport { api } from '@/data/api';\nimport { useRouter } from '@/use/useRouter';\n\nexport default defineComponent({\n props: {\n nav: {\n type: Boolean,\n default: false,\n },\n },\n setup() {\n const router = useRouter();\n\n function handleLogin() {\n if (!router) {\n api.initiateOrcidLogin();\n return;\n }\n\n const submissionState = 'submission';\n const submissionRegex = new RegExp(submissionState);\n let state = '';\n if (submissionRegex.test(router.currentRoute.path)) {\n state += submissionState;\n }\n api.initiateOrcidLogin(state);\n }\n\n async function handleLogout() {\n try {\n await api.logout();\n } catch (e) {\n // This can happen if the user attempts to log out after their access token has expired\n // and that's okay to silently ignore\n } finally {\n stateRefs.user.value = null;\n if (router) {\n await init(router, false);\n }\n }\n }\n\n return {\n handleLogin,\n handleLogout,\n me: stateRefs.user,\n loading: stateRefs.userLoading,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AuthButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AuthButton.vue?vue&type=template&id=2e5c4526&scoped=true&\"\nimport script from \"./AuthButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./AuthButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AuthButton.vue?vue&type=style&index=0&id=2e5c4526&scoped=true&lang=css&\"\nimport style1 from \"./AuthButton.vue?vue&type=style&index=1&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2e5c4526\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSkeletonLoader } from 'vuetify/lib/components/VSkeletonLoader';\ninstallComponents(component, {VBtn,VCard,VCardText,VCardTitle,VIcon,VMenu,VSkeletonLoader})\n","// Note: Each object in each `items` array represents a link in a dropdown menu.\n// When defining a link for client-side routing, use the `to` property.\n// When defining a link for server-side routing, use the `href` property.\nconst Menus = [\n {\n label: 'About Us',\n href: 'https://microbiomedata.org/about/',\n items: [\n {\n label: 'Our Story',\n href: 'https://microbiomedata.org/about/',\n },\n {\n label: 'Team',\n href: 'https://microbiomedata.org/team/',\n },\n {\n label: 'Advisory',\n href: 'https://microbiomedata.org/advisory/',\n },\n {\n label: 'FAQs',\n href: 'https://microbiomedata.org/faqs/',\n },\n {\n label: 'Data Use Policy',\n href: 'https://microbiomedata.org/nmdc-data-use-policy/',\n },\n {\n label: 'Contact Us',\n href: 'https://microbiomedata.org/contact/',\n },\n ],\n },\n {\n label: 'Products',\n items: [\n {\n label: 'Data Portal',\n to: '/',\n },\n {\n label: 'Submission Portal',\n to: '/submission/home',\n },\n {\n label: 'NMDC EDGE',\n href: 'https://nmdc-edge.org',\n },\n {\n label: 'Field Notes Mobile App',\n href: 'https://microbiomedata.org/field-notes/',\n },\n {\n label: 'Data API',\n href: 'https://api.microbiomedata.org/docs',\n },\n ],\n },\n {\n label: 'Resources',\n items: [\n {\n label: 'Data Standards',\n href: 'https://microbiomedata.org/data-standards/',\n },\n {\n label: 'Bioinformatics Workflows',\n href: 'https://microbiomedata.org/workflows/',\n },\n {\n label: 'GitHub',\n href: 'https://github.com/microbiomedata',\n },\n {\n label: 'Documentation',\n href: 'https://microbiomedata.org/documentation/',\n },\n {\n label: 'Data Management',\n href: 'https://microbiomedata.org/data-management/',\n },\n {\n label: 'Data Integration',\n href: 'https://microbiomedata.org/data-integration/',\n },\n ],\n },\n {\n label: 'Partner with Us',\n href: 'https://microbiomedata.org/community/',\n items: [\n {\n label: 'Community',\n href: 'https://microbiomedata.org/community/',\n },\n {\n label: 'Ambassadors',\n href: 'https://microbiomedata.org/ambassadors/',\n },\n {\n label: 'Champions',\n href: 'https://microbiomedata.org/community/championsprogram/',\n },\n {\n label: 'User Research',\n href: 'https://microbiomedata.org/user-research/',\n },\n ],\n },\n {\n label: 'News & Impact',\n items: [\n {\n label: 'Annual Reports',\n href: 'https://microbiomedata.org/annual_report/',\n },\n {\n label: 'Blog',\n href: 'https://microbiomedata.org/blog/',\n },\n {\n label: 'Events',\n href: 'https://microbiomedata.org/events/',\n },\n {\n label: 'Media Materials',\n href: 'https://microbiomedata.org/media/',\n },\n {\n label: 'Newsletters',\n href: 'https://microbiomedata.org/newsletters/',\n },\n {\n label: 'Publications',\n href: 'https://microbiomedata.org/publications/',\n },\n ],\n },\n];\n\nexport default Menus;\n","\nimport { defineComponent } from '@vue/composition-api';\nimport AuthButton from '@/components/Presentation/AuthButton.vue';\nimport Menus from '@/menus';\n\nexport const APP_HEADER_HEIGHT = 82;\n\nexport default defineComponent({\n components: {\n AuthButton,\n },\n setup() {\n return {\n Menus,\n APP_HEADER_HEIGHT,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppHeader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppHeader.vue?vue&type=template&id=37e64143&scoped=true&\"\nimport script from \"./AppHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppHeader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppHeader.vue?vue&type=style&index=0&id=37e64143&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 \"37e64143\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemContent } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAppBar,VBtn,VDivider,VIcon,VList,VListItem,VListItemContent,VListItemTitle,VMenu,VSpacer})\n","\nimport {\n computed, defineComponent, ref, nextTick, watch, onMounted, shallowRef,\n} from '@vue/composition-api';\nimport {\n clamp, debounce, flattenDeep, has, sum,\n} from 'lodash';\nimport { read, writeFile, utils } from 'xlsx';\nimport { api } from '@/data/api';\nimport useRequest from '@/use/useRequest';\n\nimport { HarmonizerApi } from './harmonizerApi';\nimport {\n packageName,\n sampleData,\n status,\n submit,\n incrementalSaveRecord,\n templateList,\n mergeSampleData,\n hasChanged,\n tabsValidated,\n submissionStatus,\n canEditSampleMetadata,\n isOwner,\n addMetadataSuggestions,\n suggestionMode,\n metadataSuggestions,\n isTestSubmission,\n} from './store';\nimport {\n HARMONIZER_TEMPLATES,\n EMSL,\n JGI_MG,\n JGT_MT,\n JGI_MG_LR,\n SuggestionsMode,\n} from '@/views/SubmissionPortal/types';\nimport HarmonizerSidebar from '@/views/SubmissionPortal/Components/HarmonizerSidebar.vue';\nimport SubmissionStepper from './Components/SubmissionStepper.vue';\nimport SubmissionDocsLink from './Components/SubmissionDocsLink.vue';\nimport SubmissionPermissionBanner from './Components/SubmissionPermissionBanner.vue';\nimport { APP_HEADER_HEIGHT } from '@/components/Presentation/AppHeader.vue';\nimport { stateRefs } from '@/store';\nimport { getPendingSuggestions } from '@/store/localStorage';\n\ninterface ValidationErrors {\n [error: string]: [number, number][],\n}\n\nconst ColorKey = {\n required: {\n label: 'Required field',\n color: 'yellow',\n },\n recommended: {\n label: 'Recommended field',\n color: 'plum',\n },\n invalidCell: {\n label: 'Invalid cell',\n color: '#ffcccb',\n },\n emptyCell: {\n label: 'Empty invalid cell',\n color: '#ff91a4',\n },\n};\n\nconst HELP_SIDEBAR_WIDTH = '320px';\nconst TABS_HEIGHT = '48px';\n\nconst SUGGESTION_REQUEST_DELAY = 3000;\n\nconst EXPORT_FILENAME = 'nmdc_sample_export.xlsx';\n\nconst SAMP_NAME = 'samp_name';\nconst SOURCE_MAT_ID = 'source_mat_id';\nconst ANALYSIS_TYPE = 'analysis_type';\n\n// controls which field is used to merge data from different DH views\nconst SCHEMA_ID = SAMP_NAME;\n\n// used in determining which rows are shown in each view\nconst TYPE_FIELD = ANALYSIS_TYPE;\n\n// TODO: should this be derived from schema?\nconst COMMON_COLUMNS = [SAMP_NAME, SOURCE_MAT_ID, ANALYSIS_TYPE];\n\nconst ALWAYS_READ_ONLY_COLUMNS = [\n 'dna_seq_project',\n 'rna_seq_project',\n 'dna_samp_id',\n 'rna_samp_id',\n 'rna_seq_project_pi',\n 'dna_seq_project_pi',\n 'dna_project_contact',\n 'rna_project_contact',\n 'proposal_rna',\n 'proposal_dna',\n 'rna_seq_project_name',\n 'dna_seq_project_name',\n];\n\nexport default defineComponent({\n components: {\n HarmonizerSidebar,\n SubmissionStepper,\n SubmissionDocsLink,\n SubmissionPermissionBanner,\n },\n\n setup(_, { root }) {\n const { user } = stateRefs;\n\n const harmonizerElement = ref();\n const harmonizerApi = new HarmonizerApi();\n const jumpToModel = ref();\n const highlightedValidationError = ref(0);\n const validationActiveCategory = ref('All Errors');\n const columnVisibility = ref('all');\n const sidebarOpen = ref(true);\n const invalidCells = shallowRef({} as Record>>);\n\n const activeTemplateKey = ref(templateList.value[0]);\n const activeTemplate = ref(HARMONIZER_TEMPLATES[activeTemplateKey.value]);\n const activeTemplateData = computed(() => {\n if (!activeTemplate.value.sampleDataSlot) {\n return [];\n }\n return sampleData.value[activeTemplate.value.sampleDataSlot] || [];\n });\n\n const submitDialog = ref(false);\n\n const snackbar = ref(false);\n const importErrorSnackbar = ref(false);\n const notImportedWorksheetNames = ref([] as string[]);\n\n watch(activeTemplate, () => {\n // WARNING: It's important to do the column settings update /before/ data. Otherwise,\n // columns will not be rendered with the correct width.\n harmonizerApi.setColumnsReadOnly(ALWAYS_READ_ONLY_COLUMNS);\n\n // If the environment tab selected is a mixin it should be readonly\n const environmentList = templateList.value.filter((t) => HARMONIZER_TEMPLATES[t].status === 'mixin');\n if (environmentList.includes(activeTemplateKey.value)) {\n harmonizerApi.setColumnsReadOnly(COMMON_COLUMNS);\n harmonizerApi.setMaxRows(activeTemplateData.value.length);\n }\n harmonizerApi.loadData(activeTemplateData.value);\n harmonizerApi.setInvalidCells(invalidCells.value[activeTemplateKey.value] || {});\n });\n\n const validationErrors = computed(() => {\n const remapped: ValidationErrors = {};\n const invalid: Record> = invalidCells.value[activeTemplateKey.value] || {};\n if (Object.keys(invalid).length) {\n remapped['All Errors'] = [];\n }\n Object.entries(invalid).forEach(([row, rowErrors]) => {\n Object.entries(rowErrors).forEach(([col, errorText]) => {\n const entry: [number, number] = [parseInt(row, 10), parseInt(col, 10)];\n const issue = errorText || 'Other Validation Error';\n if (has(remapped, issue)) {\n remapped[issue].push(entry);\n } else {\n remapped[issue] = [entry];\n }\n remapped['All Errors'].push(entry);\n });\n });\n return remapped;\n });\n\n const validationErrorGroups = computed(() => Object.keys(validationErrors.value));\n\n const validationTotalCounts = computed(() => Object.fromEntries(\n Object.entries(invalidCells.value).map(([template, cells]) => ([\n template,\n sum(Object.values(cells).map((row) => Object.keys(row).length)),\n ])),\n ));\n\n const saveRecordRequest = useRequest();\n const saveRecord = () => saveRecordRequest.request(() => incrementalSaveRecord(root.$route.params.id));\n\n let changeBatch: any[] = [];\n const debouncedSuggestionRequest = debounce(async () => {\n const changedRowData = harmonizerApi.getDataByRows(changeBatch.map((change) => change[0]));\n await addMetadataSuggestions(root.$route.params.id, activeTemplate.value.schemaClass!, changedRowData);\n changeBatch = [];\n }, SUGGESTION_REQUEST_DELAY, { leading: false, trailing: true });\n\n watch(suggestionMode, () => {\n // If live suggestions are disabled, clear the queue and cancel the timer\n if (suggestionMode.value !== SuggestionsMode.LIVE) {\n changeBatch = [];\n debouncedSuggestionRequest.cancel();\n }\n });\n\n // DataHarmonizer is a bit loose in its definition of empty cells. They can be null or and empty string.\n const isNonEmpty = (val: any) => val !== null && val !== '';\n\n const onDataChange = async (changes: any[]) => {\n // If we're in live suggestion mode and the user can edit the metadata, add the changes to a batch. Once the user\n // has not made further changes for a certain amount of time, send the batch to the backend for suggestions.\n if (suggestionMode.value === SuggestionsMode.LIVE && canEditSampleMetadata()) {\n // Many \"empty\" changes can be fired when clearing an entire row or column. We only care about the ones\n // where either the previous value or updated value (or both) are non-empty.\n const nonEmptyChanges = changes.filter((change) => isNonEmpty(change[2]) || isNonEmpty(change[3]));\n changeBatch.push(...nonEmptyChanges);\n debouncedSuggestionRequest();\n }\n\n hasChanged.value += 1;\n const data = harmonizerApi.exportJson();\n mergeSampleData(activeTemplate.value.sampleDataSlot, data);\n saveRecord(); // This is a background save that we intentionally don't wait for\n tabsValidated.value[activeTemplateKey.value] = false;\n };\n\n const { request: schemaRequest, loading: schemaLoading } = useRequest();\n onMounted(async () => {\n const [schema, goldEcosystemTree] = await schemaRequest(() => Promise.all([\n api.getSubmissionSchema(),\n api.getGoldEcosystemTree(),\n ]));\n const r = document.getElementById('harmonizer-root');\n if (r && schema) {\n await harmonizerApi.init(r, schema, activeTemplate.value.schemaClass, goldEcosystemTree);\n await nextTick();\n harmonizerApi.loadData(activeTemplateData.value);\n harmonizerApi.addChangeHook(onDataChange);\n metadataSuggestions.value = getPendingSuggestions(root.$route.params.id, activeTemplate.value.schemaClass!);\n if (!canEditSampleMetadata()) {\n harmonizerApi.setTableReadOnly();\n }\n }\n });\n\n async function jumpTo({ row, column }: { row: number; column: number }) {\n harmonizerApi.jumpToRowCol(row, column);\n await nextTick();\n jumpToModel.value = null;\n }\n\n function focus() {\n window.focus();\n }\n\n function errorClick(index: number) {\n const currentSeries = validationErrors.value[validationActiveCategory.value];\n highlightedValidationError.value = clamp(index, 0, currentSeries.length - 1);\n const currentError = currentSeries[highlightedValidationError.value];\n harmonizerApi.jumpToRowCol(currentError[0], currentError[1]);\n }\n\n async function validate() {\n const data = harmonizerApi.exportJson();\n mergeSampleData(activeTemplate.value.sampleDataSlot, data);\n const result = await harmonizerApi.validate();\n const valid = Object.keys(result).length === 0;\n if (!valid && !sidebarOpen.value) {\n sidebarOpen.value = true;\n }\n\n invalidCells.value = {\n ...invalidCells.value,\n [activeTemplateKey.value]: result,\n };\n saveRecord(); // This is a background save that we intentionally don't wait for\n if (valid === false) {\n errorClick(0);\n }\n tabsValidated.value = {\n ...tabsValidated.value,\n [activeTemplateKey.value]: valid,\n };\n\n snackbar.value = Object.values(tabsValidated.value).every((value) => value);\n }\n\n const canSubmit = computed(() => {\n let allTabsValid = true;\n Object.values(tabsValidated.value).forEach((value) => {\n allTabsValid = allTabsValid && value;\n });\n return allTabsValid && isOwner();\n });\n\n const fields = computed(() => flattenDeep(Object.entries(harmonizerApi.schemaSectionColumns.value)\n .map(([sectionName, children]) => Object.entries(children).map(([columnName, column]) => {\n const val = {\n text: columnName ? ` ${columnName}` : sectionName,\n value: {\n sectionName, columnName, column, row: 0,\n },\n };\n return val;\n }))));\n\n const validationItems = computed(() => validationErrorGroups.value.map((errorGroup) => {\n const errors = validationErrors.value[errorGroup];\n return {\n text: `${errorGroup} (${errors.length})`,\n value: errorGroup,\n };\n }));\n\n watch(validationActiveCategory, () => errorClick(0));\n watch(columnVisibility, () => {\n harmonizerApi.changeVisibility(columnVisibility.value);\n });\n\n const selectedHelpDict = computed(() => {\n if (harmonizerApi.selectedColumn.value) {\n return harmonizerApi.getHelp(harmonizerApi.selectedColumn.value);\n }\n return null;\n });\n\n const { request: submitRequest, loading: submitLoading, count: submitCount } = useRequest();\n const doSubmit = () => submitRequest(async () => {\n const data = await harmonizerApi.exportJson();\n mergeSampleData(activeTemplate.value.sampleDataSlot, data);\n await submit(root.$route.params.id, submissionStatus.SubmittedPendingReview);\n submitDialog.value = false;\n });\n\n function rowIsVisibleForTemplate(row: Record, templateKey: string) {\n const environmentKeys = templateList.value.filter((t) => HARMONIZER_TEMPLATES[t].status === 'published');\n if (environmentKeys.includes(templateKey)) {\n return true;\n }\n const row_types = row[TYPE_FIELD];\n if (!row_types) {\n return false;\n }\n if (templateKey === EMSL) {\n return row_types.includes('metaproteomics')\n || row_types.includes('metabolomics')\n || row_types.includes('natural organic matter');\n }\n if (templateKey === JGI_MG) {\n return row_types.includes('metagenomics');\n }\n if (templateKey === JGI_MG_LR) {\n return row_types.includes('metagenomics_long_read');\n }\n if (templateKey === JGT_MT) {\n return row_types.includes('metatranscriptomics');\n }\n return false;\n }\n\n function synchronizeTabData(templateKey: string) {\n const environmentKeys = templateList.value.filter((t) => HARMONIZER_TEMPLATES[t].status === 'published');\n if (environmentKeys.includes(templateKey)) {\n return;\n }\n const nextData = { ...sampleData.value };\n const templateSlot = HARMONIZER_TEMPLATES[templateKey].sampleDataSlot;\n\n const environmentSlots = templateList.value\n .filter((t) => HARMONIZER_TEMPLATES[t].status === 'published')\n .map((t) => HARMONIZER_TEMPLATES[t].sampleDataSlot);\n\n if (!templateSlot || !environmentSlots) {\n return;\n }\n\n // ensure the necessary keys exist in the data object\n environmentSlots.forEach((slot) => {\n if (!nextData[slot as string]) {\n nextData[slot as string] = [];\n }\n });\n\n if (!nextData[templateSlot]) {\n nextData[templateSlot] = [];\n }\n\n // add/update any rows from the environment tabs to the active tab if they apply and if\n // they aren't there already.\n environmentSlots.forEach((environmentSlot) => {\n nextData[environmentSlot as string].forEach((row) => {\n const rowId = row[SCHEMA_ID];\n\n const existing = nextData[templateSlot] && nextData[templateSlot].find((r) => r[SCHEMA_ID] === rowId);\n if (!existing && rowIsVisibleForTemplate(row, templateKey)) {\n const newRow = {} as Record;\n COMMON_COLUMNS.forEach((col) => {\n newRow[col] = row[col];\n });\n nextData[templateSlot].push(newRow);\n }\n if (existing) {\n COMMON_COLUMNS.forEach((col) => {\n existing[col] = row[col];\n });\n }\n });\n });\n // remove any rows from the active tab if they were removed from the environment tabs\n // or no longer apply to the active tab\n if (nextData[templateSlot].length > 0) {\n nextData[templateSlot] = nextData[templateSlot].filter((row) => {\n if (!rowIsVisibleForTemplate(row, templateKey)) {\n return false;\n }\n const rowId = row[SCHEMA_ID];\n return environmentSlots.some((environmentSlot) => {\n const environmentRow = nextData[environmentSlot as string].findIndex((r) => r[SCHEMA_ID] === rowId);\n return environmentRow >= 0;\n });\n });\n }\n sampleData.value = nextData;\n }\n\n async function downloadSamples() {\n templateList.value.forEach((templateKey) => {\n synchronizeTabData(templateKey);\n });\n\n const workbook = utils.book_new();\n templateList.value.forEach((templateKey) => {\n const template = HARMONIZER_TEMPLATES[templateKey];\n if (!template.sampleDataSlot || !template.schemaClass) {\n return;\n }\n const worksheet = utils.json_to_sheet([\n harmonizerApi.getHeaderRow(template.schemaClass),\n ...HarmonizerApi.flattenArrayValues(sampleData.value[template.sampleDataSlot]),\n ], {\n skipHeader: true,\n });\n utils.book_append_sheet(workbook, worksheet, template.excelWorksheetName || template.displayName);\n });\n writeFile(workbook, EXPORT_FILENAME, { compression: true });\n }\n\n function openFile(file: File) {\n const reader = new FileReader();\n reader.onload = (event) => {\n if (event == null || event.target == null) {\n return;\n }\n const workbook = read(event.target.result);\n const imported = {} as Record;\n const notImported = [] as string[];\n Object.entries(workbook.Sheets).forEach(([name, worksheet]) => {\n const template = Object.values(HARMONIZER_TEMPLATES).find((template) => (\n template.excelWorksheetName === name || template.displayName === name\n ));\n if (!template || !template.sampleDataSlot || !template.schemaClass) {\n notImported.push(name);\n return;\n }\n\n // The spreadsheet has slot names as the header row. So `sheet_to_json` will produce array\n // of objects with slot names as keys. But we want the imported data to be keyed on slot\n // IDs. This code reads the worksheet data and remaps the keys from slot names to IDs.\n const slotIdToNameMap = harmonizerApi.getHeaderRow(template.schemaClass);\n const slotNameToIdMap = Object.fromEntries(Object.entries(slotIdToNameMap).map(([k, v]) => [v, k]));\n const worksheetData: Record[] = utils.sheet_to_json(worksheet);\n const remappedData = worksheetData.map((row) => Object.fromEntries(Object.entries(row)\n .filter(([slotName]) => slotNameToIdMap[slotName] !== undefined)\n .map(([slotName, value]) => [slotNameToIdMap[slotName], value])));\n\n imported[template.sampleDataSlot] = harmonizerApi.unflattenArrayValues(\n remappedData,\n template.schemaClass,\n );\n });\n\n // Alert the user if any worksheets were not imported\n notImportedWorksheetNames.value = notImported;\n importErrorSnackbar.value = notImported.length > 0;\n\n // Load imported data\n sampleData.value = imported;\n\n // Clear validation state\n harmonizerApi.setInvalidCells({});\n invalidCells.value = {};\n Object.keys(tabsValidated.value).forEach((tab) => {\n tabsValidated.value[tab] = false;\n });\n\n // Sync with backend\n hasChanged.value += 1;\n saveRecord(); // This is a background save that we intentionally don't wait for\n\n // Load data for active tab into DataHarmonizer\n harmonizerApi.loadData(activeTemplateData.value);\n };\n reader.readAsArrayBuffer(file);\n }\n\n async function changeTemplate(index: number) {\n if (!harmonizerApi.ready.value) {\n return;\n }\n\n await validate();\n\n const nextTemplateKey = templateList.value[index];\n const nextTemplate = HARMONIZER_TEMPLATES[nextTemplateKey];\n\n // Get the stashed suggestions (if any) for the next template and present them.\n metadataSuggestions.value = getPendingSuggestions(root.$route.params.id, nextTemplate.schemaClass!);\n\n // When changing templates we may need to populate the common columns\n // from the environment tabs\n synchronizeTabData(nextTemplateKey);\n\n activeTemplateKey.value = nextTemplateKey;\n activeTemplate.value = nextTemplate;\n harmonizerApi.useTemplate(nextTemplate.schemaClass);\n harmonizerApi.addChangeHook(onDataChange);\n }\n\n return {\n user,\n APP_HEADER_HEIGHT,\n HELP_SIDEBAR_WIDTH,\n TABS_HEIGHT,\n ColorKey,\n HARMONIZER_TEMPLATES,\n columnVisibility,\n harmonizerElement,\n jumpToModel,\n harmonizerApi,\n canSubmit,\n tabsValidated,\n saveRecordRequest,\n submitLoading,\n submitCount,\n selectedHelpDict,\n packageName,\n fields,\n highlightedValidationError,\n sidebarOpen,\n validationItems,\n validationActiveCategory,\n templateList,\n activeTemplate,\n activeTemplateKey,\n invalidCells,\n validationErrors,\n validationErrorGroups,\n validationTotalCounts,\n submissionStatus,\n status,\n submitDialog,\n snackbar,\n schemaLoading,\n importErrorSnackbar,\n notImportedWorksheetNames,\n isTestSubmission,\n /* methods */\n doSubmit,\n downloadSamples,\n errorClick,\n openFile,\n focus,\n jumpTo,\n validate,\n changeTemplate,\n canEditSampleMetadata,\n };\n },\n});\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HarmonizerView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HarmonizerView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HarmonizerView.vue?vue&type=template&id=2a194230&\"\nimport script from \"./HarmonizerView.vue?vue&type=script&lang=ts&\"\nexport * from \"./HarmonizerView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HarmonizerView.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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAutocomplete } from 'vuetify/lib/components/VAutocomplete';\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VNavigationDrawer } from 'vuetify/lib/components/VNavigationDrawer';\nimport { VProgressCircular } from 'vuetify/lib/components/VProgressCircular';\nimport { VRadio } from 'vuetify/lib/components/VRadioGroup';\nimport { VRadioGroup } from 'vuetify/lib/components/VRadioGroup';\nimport { VSelect } from 'vuetify/lib/components/VSelect';\nimport { VSnackbar } from 'vuetify/lib/components/VSnackbar';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTab } from 'vuetify/lib/components/VTabs';\nimport { VTabs } from 'vuetify/lib/components/VTabs';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VAutocomplete,VBadge,VBtn,VCard,VCardActions,VCardText,VCardTitle,VChip,VDialog,VDivider,VIcon,VMenu,VNavigationDrawer,VProgressCircular,VRadio,VRadioGroup,VSelect,VSnackbar,VSpacer,VTab,VTabs,VTooltip})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"text-h2\"},[_vm._v(\" Submit \")]),_c('div',{staticClass:\"text-h5\"},[_vm._v(\" Preview of the data submission \")]),_c('v-card',{staticClass:\"pa-3\",staticStyle:{\"max-height\":\"550px\",\"overflow-y\":\"auto\"},attrs:{\"outlined\":\"\"}},[_c('pre',{staticStyle:{\"font-size\":\"14px\"}},[_vm._v(_vm._s(_vm.submitPayload))])]),_c('div',{staticClass:\"d-flex my-3\"},[_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"primary\",\"outlined\":\"\"},on:{\"click\":_vm.downloadJson}},[_c('v-icon',{staticClass:\"pr-2\"},[_vm._v(\" mdi-file-code \")]),_vm._v(\" Download Full Submission JSON \")],1),_c('v-btn',{attrs:{\"color\":\"primary\",\"outlined\":\"\"},on:{\"click\":_vm.downloadSamples}},[_c('v-icon',{staticClass:\"pr-2\"},[_vm._v(\" mdi-file-table \")]),_vm._v(\" Download Sample Metadata TSV \")],1),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"loading\":_vm.submitLoading,\"disabled\":_vm.submitLoading || _vm.submitCount > 0},on:{\"click\":_vm.doSubmit}},[(_vm.submitCount === 0)?_c('span',[_vm._v(\"Submit\")]):_c('span',[_vm._v(\"Submission successful\")])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent } from '@vue/composition-api';\nimport { writeFile, utils } from 'xlsx';\nimport { submit, submitPayload } from '../store';\nimport { saveAs } from '@/util';\nimport useRequest from '@/use/useRequest';\n\nexport default defineComponent({\n setup(_, { root }) {\n // TODO: https://github.com/microbiomedata/nmdc-server/issues/852\n function downloadSamples() {\n const worksheet = utils.aoa_to_sheet([]);\n const workbook = utils.book_new();\n utils.book_append_sheet(workbook, worksheet, 'Sheet1');\n // @ts-ignore\n writeFile(workbook, 'nmdc_sample_export.tsv', { bookType: 'csv', FS: '\\t' });\n }\n\n function downloadJson() {\n saveAs('nmdc_study.json', submitPayload.value);\n }\n\n const { request, loading: submitLoading, count: submitCount } = useRequest();\n const doSubmit = () => request(() => submit(root.$route.params.id));\n\n return {\n submitPayload,\n submitLoading,\n submitCount,\n downloadJson,\n downloadSamples,\n doSubmit,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValidateSubmit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValidateSubmit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ValidateSubmit.vue?vue&type=template&id=e135359a&\"\nimport script from \"./ValidateSubmit.vue?vue&type=script&lang=ts&\"\nexport * from \"./ValidateSubmit.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCard,VIcon,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-menu',{attrs:{\"offset-x\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-0\",staticStyle:{\"transform\":\"translateY(-50%) rotate(-90deg)\",\"right\":\"-50px\",\"top\":\"50%\",\"position\":\"fixed\",\"z-index\":\"100\"},attrs:{\"color\":\"primary\",\"large\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" support \"),_c('v-icon',{staticClass:\"ml-2\",staticStyle:{\"transform\":\"rotate(90deg)\"}},[_vm._v(\" mdi-message-question \")])],1)]}}])},[_c('ContactCard')],1),_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-text',{staticClass:\"pt-0 px-0\"},[_c('v-container',[_c('v-row',[_c('v-col',{staticClass:\"pb-0\"},[_c('TitleBanner'),_c('IconBar')],1)],1),(_vm.submission.data.results.count === 0)?_c('v-row',[_c('v-col',[_c('IntroBlurb')],1)],1):_vm._e()],1)],1),_c('v-card-text',[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){return _vm.createNewSubmission(false)}}},[_c('v-icon',[_vm._v(\"mdi-plus\")]),_vm._v(\" Create Submission \")],1),_c('v-btn',{staticClass:\"ml-3\",attrs:{\"color\":\"primary\",\"outlined\":\"\"},on:{\"click\":function($event){return _vm.createNewSubmission(true)}}},[_c('v-icon',[_vm._v(\"mdi-plus\")]),_vm._v(\" Create Test Submission \")],1),_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticClass:\"pl-2\",attrs:{\"color\":\"primary\"}},on),[_vm._v(\" mdi-information \")])]}}])},[_c('span',[_vm._v(\"Test submissions should be used when at a workshop or doing a test, example, or training. These cannot be submitted.\")])])],1),_c('v-card-title',{staticClass:\"text-h4\"},[_vm._v(\" Past submissions \")]),_c('v-card-text',[_vm._v(\" Pick up where you left off or review a previous submission. \")]),_c('v-card',{attrs:{\"outlined\":\"\"}},[_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.submission.data.results.results,\"server-items-length\":_vm.submission.data.results.count,\"options\":_vm.options,\"loading\":_vm.submission.loading.value,\"items-per-page\":_vm.submission.data.limit,\"footer-props\":{ itemsPerPageOptions: [10, 20, 50] }},on:{\"update:options\":function($event){_vm.options=$event},\"update:itemsPerPage\":function($event){return _vm.$set(_vm.submission.data, \"limit\", $event)},\"update:items-per-page\":function($event){return _vm.$set(_vm.submission.data, \"limit\", $event)}},scopedSlots:_vm._u([{key:\"item.author.name\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('orcid-id',{attrs:{\"orcid-id\":item.author.orcid,\"name\":item.author.name,\"width\":14,\"authenticated\":true}})]}},{key:\"item.templates\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(item.metadata_submission.templates.map(function (template) { return _vm.HARMONIZER_TEMPLATES[template].displayName; }).join(' + '))+\" \")]}},{key:\"item.date_last_modified\",fn:function(ref){\nvar item = ref.item;\nreturn [_vm._v(\" \"+_vm._s(new Date(item.date_last_modified + 'Z').toLocaleString())+\" \")]}},{key:\"item.status\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('v-chip',{attrs:{\"color\":_vm.getStatus(item).color}},[_vm._v(\" \"+_vm._s(_vm.getStatus(item).text)+\" \")])]}},{key:\"item.action\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"d-flex align-center\"},[_c('v-spacer'),_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\"},on:{\"click\":function () { return _vm.resume(item); }}},[_vm._v(\" Resume \"),_c('v-icon',{staticClass:\"pl-1\"},[_vm._v(\" mdi-arrow-right-circle \")])],1),_c('v-menu',{attrs:{\"offset-x\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-btn',_vm._g({staticClass:\"ml-1\",attrs:{\"text\":\"\",\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\" mdi-dots-vertical \")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function () { return _vm.handleOpenDeleteDialog(item); }}},[_c('v-list-item-title',[_vm._v(\"Delete\")])],1)],1)],1)],1)]}}],null,true)})],1)],1),_c('v-dialog',{attrs:{\"width\":550},model:{value:(_vm.isDeleteDialogOpen),callback:function ($$v) {_vm.isDeleteDialogOpen=$$v},expression:\"isDeleteDialogOpen\"}},[_c('v-card',[_c('v-spacer'),_c('v-card-title',{staticClass:\"text-h5\"},[_vm._v(\" Delete Submission \")]),_c('v-card-text',{staticClass:\"text-h5\"},[(_vm.deleteDialogSubmission && _vm.deleteDialogSubmission.study_name != '')?_c('p',[_vm._v(\" This will delete \\\"\"+_vm._s(_vm.deleteDialogSubmission.study_name)+\"\\\" and all associated data. \")]):_c('p',[_vm._v(\" This will delete this submission and all associated data. \")]),_c('p',[_vm._v(\"This cannot be undone.\")])]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"ma-3\",on:{\"click\":function($event){_vm.isDeleteDialogOpen=_vm.False}}},[_vm._v(\" Cancel \")]),_c('v-btn',{staticClass:\"ml-3 white--text\",attrs:{\"color\":\"red\"},on:{\"click\":function($event){return _vm.handleDelete(_vm.deleteDialogSubmission)}}},[_vm._v(\" Delete \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n defineComponent, ref, watch, Ref,\n} from '@vue/composition-api';\nimport { DataOptions, DataTableHeader } from 'vuetify';\nimport { useRouter } from '@/use/useRouter';\nimport usePaginatedResults from '@/use/usePaginatedResults';\nimport {\n generateRecord, submissionStatus,\n} from '../store';\nimport * as api from '../store/api';\nimport OrcidId from '../../../components/Presentation/OrcidId.vue';\nimport TitleBanner from '@/views/SubmissionPortal/Components/TitleBanner.vue';\nimport IconBar from '@/views/SubmissionPortal/Components/IconBar.vue';\nimport IntroBlurb from '@/views/SubmissionPortal/Components/IntroBlurb.vue';\nimport ContactCard from '@/views/SubmissionPortal/Components/ContactCard.vue';\nimport { deleteSubmission } from '../store/api';\nimport { HARMONIZER_TEMPLATES, MetadataSubmissionRecord } from '@/views/SubmissionPortal/types';\n\nconst headers: DataTableHeader[] = [\n {\n text: 'Study Name',\n value: 'study_name',\n },\n {\n text: 'Author',\n value: 'author.name',\n },\n {\n text: 'Template',\n value: 'templates',\n },\n {\n text: 'Status',\n value: 'status',\n },\n {\n text: 'Last Modified',\n value: 'date_last_modified',\n },\n {\n text: '',\n value: 'action',\n align: 'end',\n sortable: false,\n },\n];\n\nexport default defineComponent({\n components: {\n IconBar, IntroBlurb, OrcidId, TitleBanner, ContactCard,\n },\n setup() {\n const router = useRouter();\n const itemsPerPage = 10;\n const options: Ref = ref({\n page: 1,\n itemsPerPage,\n sortBy: ['date_last_modified'],\n sortDesc: [true],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: false,\n });\n const isDeleteDialogOpen = ref(false);\n const deleteDialogSubmission = ref(null);\n\n function getStatus(item: MetadataSubmissionRecord) {\n const color = item.status === submissionStatus.Complete ? 'success' : 'default';\n return {\n text: item.status,\n color,\n };\n }\n\n async function resume(item: MetadataSubmissionRecord) {\n router?.push({ name: 'Submission Context', params: { id: item.id } });\n }\n\n async function createNewSubmission(isTestSubmission: boolean) {\n const item = await generateRecord(isTestSubmission);\n router?.push({ name: 'Submission Context', params: { id: item.id } });\n }\n\n const submission = usePaginatedResults(ref([]), api.listRecords, ref([]), itemsPerPage);\n watch(options, () => {\n submission.setPage(options.value.page);\n const sortOrder = options.value.sortDesc[0] ? 'desc' : 'asc';\n submission.setSortOptions(options.value.sortBy[0], sortOrder);\n }, { deep: true });\n\n function handleOpenDeleteDialog(item: MetadataSubmissionRecord | null) {\n deleteDialogSubmission.value = item;\n if (deleteDialogSubmission) {\n isDeleteDialogOpen.value = true;\n }\n }\n\n async function handleDelete(item: MetadataSubmissionRecord | null) {\n if (!item) {\n return;\n }\n await deleteSubmission(item.id);\n submission.refetch();\n deleteDialogSubmission.value = null;\n isDeleteDialogOpen.value = false;\n }\n\n return {\n HARMONIZER_TEMPLATES,\n isDeleteDialogOpen,\n deleteDialogSubmission,\n IconBar,\n IntroBlurb,\n TitleBanner,\n createNewSubmission,\n getStatus,\n resume,\n handleDelete,\n handleOpenDeleteDialog,\n headers,\n options,\n submission,\n };\n },\n});\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SubmissionList.vue?vue&type=template&id=652421e5&\"\nimport script from \"./SubmissionList.vue?vue&type=script&lang=ts&\"\nexport * from \"./SubmissionList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardActions } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VChip } from 'vuetify/lib/components/VChip';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDataTable } from 'vuetify/lib/components/VDataTable';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTooltip } from 'vuetify/lib/components/VTooltip';\ninstallComponents(component, {VBtn,VCard,VCardActions,VCardText,VCardTitle,VChip,VCol,VContainer,VDataTable,VDialog,VIcon,VList,VListItem,VListItemTitle,VMenu,VRow,VSpacer,VTooltip})\n","import { cloneDeep } from 'lodash';\nimport protobufjs from 'protobufjs';\n\nimport { Condition } from '@/data/api';\nimport descriptor from '@/data/protobuf-descriptor.json';\n\nconst QueryParams = protobufjs.Root.fromJSON(descriptor).lookupType('nmdc.QueryParams');\n\n/**\n * Convert an ArrayBuffer to a base6 encoded string using URL-safe characters since the result will\n * be used in a URL query param.\n * See: https://www.rfc-editor.org/rfc/rfc4648#section-5\n * @param buffer\n */\nfunction arrayBufferToBase64Urlencoded(buffer: Iterable) {\n let binary = '';\n const bytes = new Uint8Array(buffer);\n const len = bytes.byteLength;\n for (let i = 0; i < len; i += 1) {\n binary += String.fromCharCode(bytes[i]);\n }\n const base64 = window.btoa(binary);\n return base64\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=+$/, '');\n}\n\n/**\n * Convert a base64 encoded string using URL-safe characters to an ArrayBuffer.\n * @param base64Urlencoded\n */\nfunction base64UrlencodedToArrayBuffer(base64Urlencoded: string) {\n const base64 = base64Urlencoded\n .replace(/-/g, '+')\n .replace(/_/g, '/');\n return new Uint8Array(window.atob(base64).split('').map((c) => c.charCodeAt(0)));\n}\n\n/**\n * If the query contains conditions, encode them as a protobuf message, put the result into the\n * q parameter, and remove the conditions parameter.\n */\nfunction stringifyQuery(params: any) {\n if ('conditions' in params) {\n if (params.conditions.length) {\n const clone = cloneDeep(params);\n clone.conditions.forEach((c: Condition) => {\n // eslint-disable-next-line no-param-reassign\n c.value = JSON.stringify(c.value);\n });\n // https://github.com/protobufjs/protobuf.js/issues/1261#issuecomment-667430623\n const msg = QueryParams.fromObject(clone);\n const u8a = QueryParams.encode(msg).finish();\n // eslint-disable-next-line no-param-reassign\n params.q = arrayBufferToBase64Urlencoded(u8a);\n }\n // eslint-disable-next-line no-param-reassign\n delete params.conditions;\n }\n const queryParamsString = new URLSearchParams(params).toString();\n return queryParamsString ? `?${queryParamsString}` : '';\n}\n\n/**\n * If the query contains a q parameter, decode it into the conditions parameter.\n */\nfunction parseQuery(q: string) {\n const params = new URLSearchParams(q);\n const parsed = Object.fromEntries(params.entries());\n if (params.has('q')) {\n const u8a = base64UrlencodedToArrayBuffer(params.get('q')!);\n const msg = QueryParams.decode(u8a);\n const obj = QueryParams.toObject(msg, { enums: String });\n obj.conditions.forEach((c: Condition) => {\n // @ts-ignore\n // eslint-disable-next-line no-param-reassign\n c.value = JSON.parse(c.value);\n });\n parsed.conditions = obj.conditions;\n }\n return parsed;\n}\n\nexport {\n parseQuery,\n stringifyQuery,\n};\n","import Vue from 'vue';\nimport VueRouter, { Route } from 'vue-router';\n\nimport Search from '@/views/Search/SearchLayout.vue';\nimport SamplePage from '@/views/IndividualResults/SamplePage.vue';\nimport StudyPage from '@/views/IndividualResults/StudyPage.vue';\nimport UserPage from '@/views/User/UserPage.vue';\nimport UserDetailPage from '@/views/User/UserDetailPage.vue';\nimport LoginPage from '@/views/Login/LoginPage.vue';\n\n/* Submission portal */\nimport MultiOmicsDataForm from '@/views/SubmissionPortal/Components/MultiOmicsDataForm.vue';\nimport StepperView from '@/views/SubmissionPortal/StepperView.vue';\nimport SubmissionContextForm from '@/views/SubmissionPortal/Components/SubmissionContextForm.vue';\nimport StudyForm from '@/views/SubmissionPortal/Components/StudyForm.vue';\nimport SubmissionView from '@/views/SubmissionPortal/SubmissionView.vue';\nimport TemplateChooser from '@/views/SubmissionPortal/Components/TemplateChooser.vue';\nimport HarmonizerView from '@/views/SubmissionPortal/HarmonizerView.vue';\nimport ValidateSubmit from '@/views/SubmissionPortal/Components/ValidateSubmit.vue';\nimport SubmissionList from '@/views/SubmissionPortal/Components/SubmissionList.vue';\n\nimport { unlockSubmission } from '@/views/SubmissionPortal/store/api';\n\nimport { parseQuery, stringifyQuery } from './utils';\n\nVue.use(VueRouter);\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes: [\n {\n path: '/',\n name: 'Search',\n component: Search,\n },\n {\n path: '/details/sample/:id',\n name: 'Sample',\n component: SamplePage,\n props: true,\n },\n {\n path: '/details/study/:id',\n name: 'Study',\n component: StudyPage,\n props: true,\n },\n {\n path: '/submission',\n component: SubmissionView,\n props: true,\n children: [\n {\n component: StepperView,\n path: '',\n props: true,\n children: [\n {\n name: 'Submission root',\n path: '',\n redirect: () => ({ name: 'Submission Home' }),\n },\n {\n name: 'Submission Home',\n path: 'home',\n component: SubmissionList,\n },\n {\n name: 'Submission Context',\n path: ':id/context',\n component: SubmissionContextForm,\n },\n {\n name: 'Study Form',\n path: ':id/study',\n component: StudyForm,\n },\n {\n name: 'Multiomics Form',\n path: ':id/multiomics',\n component: MultiOmicsDataForm,\n },\n {\n name: 'Environment Package',\n component: TemplateChooser,\n path: ':id/templates',\n },\n {\n name: 'Validate And Submit',\n component: ValidateSubmit,\n path: ':id/submit',\n },\n ],\n },\n {\n name: 'Submission Sample Editor',\n component: HarmonizerView,\n path: ':id/samples',\n },\n ],\n },\n {\n path: '/users',\n name: 'Users',\n component: UserPage,\n },\n {\n path: '/user',\n name: 'User',\n component: UserDetailPage,\n },\n {\n path: '/login',\n name: 'Login',\n component: LoginPage,\n },\n ],\n scrollBehavior: () => ({ x: 0, y: 0 }),\n parseQuery,\n stringifyQuery,\n});\nrouter.beforeEach((to: Route, from: Route, next: Function) => {\n if (from.fullPath.includes('submission') && !!from.params.id) {\n // We are navigating away from a submission edit screen\n if (to.fullPath.includes('submission') && !!to.params.id && to.params.id === from.params.id) {\n // We are navigating to a submission edit screen for the same submission, no need to unlock\n next();\n return;\n }\n unlockSubmission(from.params.id);\n }\n next();\n});\n\nexport default router;\n","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib';\nimport colors from '../colors';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n theme: {\n options: { customProperties: true },\n themes: {\n light: colors,\n },\n },\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('app-header'),_c('keep-alive',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent, onMounted, onUnmounted } from '@vue/composition-api';\nimport AppHeader from '@/components/Presentation/AppHeader.vue';\nimport { stateRefs, init } from '@/store/';\nimport { useRouter } from '@/use/useRouter';\nimport { api, REFRESH_TOKEN_EXPIRED_EVENT, RefreshTokenExchangeError } from '@/data/api';\n\nexport default defineComponent({\n name: 'App',\n components: { AppHeader },\n setup() {\n const router = useRouter();\n\n const handleRefreshTokenExpired = () => {\n stateRefs.user.value = null;\n if (router) {\n init(router, false);\n }\n };\n\n onMounted(async () => {\n window.addEventListener(REFRESH_TOKEN_EXPIRED_EVENT, handleRefreshTokenExpired);\n\n if (!router) {\n return;\n }\n if (router.currentRoute.path === '/login') {\n // init() will be called in the LoginPage component in this case\n return;\n }\n // The first time the app is loaded, there will not yet be an access token configured on\n // the API client. There *may* be a refresh token in storage, so attempt to exchange it\n // before calling the init() function. The exchangeRefreshToken function will throw a\n // RefreshTokenExchangeError if the refresh token is invalid or expired. If that or any other\n // exception is thrown during the exchange, we still want to call init() to finish setting up\n // the app, but we don't want to re-throw the error.\n try {\n await api.exchangeRefreshToken();\n } catch (error) {\n if (!(error instanceof RefreshTokenExchangeError)) {\n throw error;\n }\n } finally {\n await init(router);\n }\n });\n\n onUnmounted(() => {\n window.removeEventListener(REFRESH_TOKEN_EXPIRED_EVENT, handleRefreshTokenExpired);\n });\n\n return {\n stateRefs,\n };\n },\n});\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--15-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--15-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--15-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--15-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=9cfd35b2&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\ninstallComponents(component, {VApp})\n","import Vue from 'vue';\nimport CompositionPlugin from '@vue/composition-api';\nimport VueGtag from 'vue-gtag';\nimport { init as SentryInit } from '@sentry/vue';\nimport AsyncComputed from 'vue-async-computed';\n\nimport router from '@/plugins/router';\nimport vuetify from '@/plugins/vuetify';\nimport { provideRouter } from '@/use/useRouter';\n\nimport App from './App.vue';\n\nVue.use(AsyncComputed);\nVue.use(CompositionPlugin);\n\n/**\n * Enable instrumentation in production\n */\nif (process.env.NODE_ENV === 'production') {\n const gaId = 'UA-68089198-4';\n Vue.use(VueGtag, {\n config: { id: gaId },\n includes: [{ id: gaId }],\n }, router);\n SentryInit({\n Vue,\n dsn: 'https://87132695029c4406afe033fb3b13b115@o267860.ingest.sentry.io/5658761',\n tracesSampleRate: 1.0,\n });\n}\n\nVue.config.productionTip = false;\n\nnew Vue({\n router,\n vuetify,\n setup() {\n provideRouter(router);\n },\n render: (h) => h(App),\n}).$mount('#app');\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SubmissionContextShippingSummary.vue?vue&type=style&index=0&id=510d5ca7&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConditionChips.vue?vue&type=style&index=0&id=06f3eab8&scoped=true&lang=css&\"","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!./HarmonizerSidebar.vue?vue&type=style&index=0&id=e716bd52&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BiosampleVisGroup.vue?vue&type=style&index=0&id=242a1184&scoped=true&lang=css&\""],"sourceRoot":""}