@abi-software/map-side-bar 1.1.9 → 1.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://map-side-bar/webpack/universalModuleDefinition","webpack://map-side-bar/webpack/bootstrap","webpack://map-side-bar/external \"element-ui/lib/pagination\"","webpack://map-side-bar/external \"core-js/modules/es.symbol.iterator\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/pagination.css\"","webpack://map-side-bar/external \"core-js/modules/es.parse-int\"","webpack://map-side-bar/external \"element-ui/lib/select\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/select.css\"","webpack://map-side-bar/external \"core-js/modules/es.array.for-each\"","webpack://map-side-bar/external \"core-js/modules/es.array.concat\"","webpack://map-side-bar/external \"core-js/modules/web.dom-collections.iterator\"","webpack://map-side-bar/external \"core-js/modules/es.object.keys\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/link.css\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/button.css\"","webpack://map-side-bar/external \"core-js/modules/web.url\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/loading.css\"","webpack://map-side-bar/external \"element-ui/lib/drawer\"","webpack://map-side-bar/external \"@abi-software/svg-sprite\"","webpack://map-side-bar/./src/components/Tabs.vue?88de","webpack://map-side-bar/external \"core-js/modules/es.object.get-own-property-descriptors\"","webpack://map-side-bar/external \"core-js/modules/es.string.split\"","webpack://map-side-bar/external \"core-js/modules/es.set\"","webpack://map-side-bar/external \"core-js/modules/es.array.filter\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/card.css\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/drawer.css\"","webpack://map-side-bar/external \"core-js/modules/es.symbol.description\"","webpack://map-side-bar/external \"core-js/modules/es.regexp.exec\"","webpack://map-side-bar/external \"element-ui/lib/button\"","webpack://map-side-bar/external \"core-js/modules/es.regexp.to-string\"","webpack://map-side-bar/external \"core-js/modules/es.symbol\"","webpack://map-side-bar/external \"core-js/modules/es.array.slice\"","webpack://map-side-bar/external \"core-js/modules/es.object.get-own-property-descriptor\"","webpack://map-side-bar/external \"element-ui/lib/cascader\"","webpack://map-side-bar/external \"element-ui/lib/locale/lang/en\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/cascader.css\"","webpack://map-side-bar/external \"core-js/modules/es.array.sort\"","webpack://map-side-bar/external \"core-js/modules/es.number.constructor\"","webpack://map-side-bar/./src/components/SidebarContent.vue?f1d4","webpack://map-side-bar/external \"regenerator-runtime/runtime\"","webpack://map-side-bar/external \"core-js/modules/es.array.splice\"","webpack://map-side-bar/external \"element-ui/lib/link\"","webpack://map-side-bar/./src/components/ContextCard.vue?2ed7","webpack://map-side-bar/external \"element-ui/lib/locale\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/option.css\"","webpack://map-side-bar/external \"core-js/modules/es.promise\"","webpack://map-side-bar/external \"core-js/modules/es.object.to-string\"","webpack://map-side-bar/external \"algoliasearch\"","webpack://map-side-bar/external \"vue\"","webpack://map-side-bar/external \"core-js/modules/es.array.iterator\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/icon.css\"","webpack://map-side-bar/external \"core-js/modules/es.string.iterator\"","webpack://map-side-bar/external \"core-js/modules/es.map\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/base.css\"","webpack://map-side-bar/external \"core-js/modules/es.array.flat\"","webpack://map-side-bar/./assets/missing-image.svg","webpack://map-side-bar/./src/components/SideBar.vue?f7bf","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/input.css\"","webpack://map-side-bar/external \"core-js/modules/es.array.includes\"","webpack://map-side-bar/external \"element-ui/lib/loading\"","webpack://map-side-bar/external \"element-ui/lib/card\"","webpack://map-side-bar/external \"element-ui/lib/icon\"","webpack://map-side-bar/external \"core-js/modules/es.function.name\"","webpack://map-side-bar/external \"core-js/modules/web.dom-collections.for-each\"","webpack://map-side-bar/external \"core-js/modules/es.string.search\"","webpack://map-side-bar/external \"core-js/modules/es.string.replace\"","webpack://map-side-bar/external \"element-ui/lib/option\"","webpack://map-side-bar/./src/components/SearchFilters.vue?69f2","webpack://map-side-bar/external \"core-js/modules/es.array.last-index-of\"","webpack://map-side-bar/external \"current-script-polyfill\"","webpack://map-side-bar/external \"core-js/modules/es.array.from\"","webpack://map-side-bar/external \"element-ui/lib/input\"","webpack://map-side-bar/./src/components/DatasetCard.vue?c612","webpack://map-side-bar/external \"core-js/modules/es.object.entries\"","webpack://map-side-bar/external \"core-js/modules/es.array.unscopables.flat\"","webpack://map-side-bar/external \"core-js/modules/es.array.map\"","webpack://map-side-bar/external \"core-js/modules/es.promise.finally\"","webpack://map-side-bar/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://map-side-bar/./src/components/SideBar.vue?9566","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://map-side-bar/./src/components/SidebarContent.vue?e34e","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://map-side-bar/./src/components/SearchFilters.vue?b07d","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/toArray.js","webpack://map-side-bar/./src/components/Cascader.vue","webpack://map-side-bar/src/components/Cascader.vue","webpack://map-side-bar/./src/components/Cascader.vue?9729","webpack://map-side-bar/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://map-side-bar/./src/components/species-map.js","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://map-side-bar/./src/algolia/algolia.js","webpack://map-side-bar/./src/algolia/utils.js","webpack://map-side-bar/src/components/SearchFilters.vue","webpack://map-side-bar/./src/components/SearchFilters.vue?8079","webpack://map-side-bar/./src/components/SearchFilters.vue","webpack://map-side-bar/./src/components/DatasetCard.vue?cde9","webpack://map-side-bar/./src/components/EventBus.js","webpack://map-side-bar/./src/components/scaffold-meta-map.js","webpack://map-side-bar/src/components/DatasetCard.vue","webpack://map-side-bar/./src/components/DatasetCard.vue?d021","webpack://map-side-bar/./src/components/DatasetCard.vue","webpack://map-side-bar/./src/components/ContextCard.vue?bea5","webpack://map-side-bar/src/components/ContextCard.vue","webpack://map-side-bar/./src/components/ContextCard.vue?667e","webpack://map-side-bar/./src/components/ContextCard.vue","webpack://map-side-bar/src/components/SidebarContent.vue","webpack://map-side-bar/./src/components/SidebarContent.vue?7e01","webpack://map-side-bar/./src/components/SidebarContent.vue","webpack://map-side-bar/./src/components/Tabs.vue?5d47","webpack://map-side-bar/src/components/Tabs.vue","webpack://map-side-bar/./src/components/Tabs.vue?3d38","webpack://map-side-bar/./src/components/Tabs.vue","webpack://map-side-bar/src/components/SideBar.vue","webpack://map-side-bar/./src/components/SideBar.vue?b259","webpack://map-side-bar/./src/components/SideBar.vue","webpack://map-side-bar/external \"core-js/modules/es.string.includes\""],"names":["root","factory","exports","module","define","amd","self","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","require","window","document","currentScript","src","match","render","_vm","_h","$createElement","_c","_self","ref","drawerOpen","_e","staticClass","on","toggleDrawer","attrs","$event","close","tabs","length","activeId","tabClicked","_l","tab","directives","rawName","id","expression","refInFor","contextCard","envVars","searchChanged","staticRenderFns","_defineProperty","obj","configurable","writable","bodyStyle","slot","contextCardEntry","clearSearchClicked","nativeOn","searchEvent","model","callback","$$v","searchInput","_v","filterEntry","filterUpdate","numberPerPageUpdate","filtersLoading","results","loadingCards","sciCrunchError","_s","page","numberPerPage","numberOfHits","pageChange","_arrayWithoutHoles","arr","Array","isArray","arr2","_iterableToArray","iter","iterator","toString","from","_nonIterableSpread","TypeError","_toConsumableArray","arrayWithoutHoles","iterableToArray","nonIterableSpread","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","_asyncToGenerator","fn","args","arguments","apply","err","undefined","options","props","cascadeEvent","cascadeExpandChange","tagsChangedCallback","cascadeSelected","numberShownChanged","numberShown","item","numberOfResultsText","_arrayWithHoles","_nonIterableRest","_toArray","arrayWithHoles","nonIterableRest","extends","methods","computePresentTags","customNodes","tags","push","genTag","first","restCount","collapseTags","text","closable","rest","forEach","checkedNodes","presentTags","$emit","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","component","_classCallCheck","instance","Constructor","_defineProperties","target","descriptor","_createClass","protoProps","staticProps","AlgoliaClient","algoliaId","algoliaKey","PENNSIEVE_API_LOCATION","client","algoliasearch","ALGOLIA_INDEX","index","initIndex","propPathMapping","map","Map","entries","facetPropPaths","keys","facetData","facetId","search","sortFacetValuesBy","facets","response","facetPropPath","children","responseFacets","responseFacetChildren","facet","label","discoverId","fetch","json","dataset","version","doi","discoverIds","promiseList","_discoverAllDois","all","values","flat","filter","query","hitsperPage","hitsPerPage","filters","searchData","items","hits","total","nbHits","pennsieve","identifier","dois","curie","split","facetPropPathMapping","getFilters","selectedFacetArray","f","removeShowAllFacets","facetsToOr","substring","lastIndexOf","facetArray","txt","charAt","toUpperCase","slice","capitalise","components","CustomCascader","SvgSpriteColor","entry","type","default","data","cascaderIsReady","previousShowAllChecked","species","gender","organ","datasets","showFilters","showFiltersText","numberDatasetsShown","computed","createCascaderItemValue","term","populateCascader","event","showAllEventModifier","setCascader","makeCascadeLabelsClickable","hasShowAll","facetMaps","showAll","splice","modifiedEvent","sort","a","b","__expandItem__","parseInt","updatePreviousShowAllChecked","element","toLowerCase","includes","filterFacets","addFilter","initiateSearch","checkShowAllBoxes","$nextTick","mounted","algoliaClient","class","expanded","thumbnail","openDataset","cardClicked","contributors","publishDate","publishYear","samples","simulation","openScaffold","openPlot","openRepository","openSimulation","cardOverflow","expand","EventBus","Vue","77","meta_file","title","description","bannerImage","image","76","32","string","replace","dataLocation","hasCSVFile","lastName","numberSamples","numberSubjects","organs","open","additionalLinks","el","xmlhttp","apiLocation","setRequestHeader","onreadystatechange","readyState","status","url","JSON","parse","responseText","uri","send","stringify","isSedmlResource","resource","getScaffoldPath","path","getFileFromPath","isOverflown","clientHeight","scrollHeight","splitDOI","getBanner","fullName","$refs","card","updated","watch","showDetails","padding","display","width","staticStyle","handleErrors","initial_state","lastSearch","pageModel","start","hasSearched","visible","Boolean","isDrawer","firstSearch","String","flex","openSearch","resetPageNavigation","searchAlgolia","filtersRef","keyCode","MouseEvent","val","searchSciCrunch","disableCards","callSciCrunch","API_LOCATION","params","content","scroll","style","resultsProcessing","sampleSize","subjectSize","timestamp","datasetId","organisms","csvFiles","scaffolds","s3uri","createfilterParams","append","e","fullEndpoint","console","log","created","searchEndpoint","highlightText","titleClicked","tabTitles","Number","openAtStart","openNeuronSearch"],"mappings":"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","file":"map-side-bar.umd.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"map-side-bar\"] = factory();\n\telse\n\t\troot[\"map-side-bar\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fae3\");\n","module.exports = require(\"element-ui/lib/pagination\");","module.exports = require(\"core-js/modules/es.symbol.iterator\");","module.exports = require(\"element-ui/lib/theme-chalk/pagination.css\");","module.exports = require(\"core-js/modules/es.parse-int\");","module.exports = require(\"element-ui/lib/select\");","module.exports = require(\"element-ui/lib/theme-chalk/select.css\");","module.exports = require(\"core-js/modules/es.array.for-each\");","module.exports = require(\"core-js/modules/es.array.concat\");","module.exports = require(\"core-js/modules/web.dom-collections.iterator\");","module.exports = require(\"core-js/modules/es.object.keys\");","module.exports = require(\"element-ui/lib/theme-chalk/link.css\");","module.exports = require(\"element-ui/lib/theme-chalk/button.css\");","module.exports = require(\"core-js/modules/web.url\");","module.exports = require(\"element-ui/lib/theme-chalk/loading.css\");","module.exports = require(\"element-ui/lib/drawer\");","module.exports = require(\"@abi-software/svg-sprite\");","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tabs.vue?vue&type=style&index=0&id=d68260c4&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tabs.vue?vue&type=style&index=0&id=d68260c4&scoped=true&lang=css&\"","module.exports = require(\"core-js/modules/es.object.get-own-property-descriptors\");","module.exports = require(\"core-js/modules/es.string.split\");","module.exports = require(\"core-js/modules/es.set\");","module.exports = require(\"core-js/modules/es.array.filter\");","module.exports = require(\"element-ui/lib/theme-chalk/card.css\");","module.exports = require(\"element-ui/lib/theme-chalk/drawer.css\");","module.exports = require(\"core-js/modules/es.symbol.description\");","module.exports = require(\"core-js/modules/es.regexp.exec\");","module.exports = require(\"element-ui/lib/button\");","module.exports = require(\"core-js/modules/es.regexp.to-string\");","module.exports = require(\"core-js/modules/es.symbol\");","module.exports = require(\"core-js/modules/es.array.slice\");","module.exports = require(\"core-js/modules/es.object.get-own-property-descriptor\");","module.exports = require(\"element-ui/lib/cascader\");","module.exports = require(\"element-ui/lib/locale/lang/en\");","module.exports = require(\"element-ui/lib/theme-chalk/cascader.css\");","module.exports = require(\"core-js/modules/es.array.sort\");","module.exports = require(\"core-js/modules/es.number.constructor\");","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarContent.vue?vue&type=style&index=0&id=930a8680&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarContent.vue?vue&type=style&index=0&id=930a8680&scoped=true&lang=css&\"","module.exports = require(\"regenerator-runtime/runtime\");","module.exports = require(\"core-js/modules/es.array.splice\");","module.exports = require(\"element-ui/lib/link\");","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextCard.vue?vue&type=style&index=0&id=262a6750&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextCard.vue?vue&type=style&index=0&id=262a6750&scoped=true&lang=css&\"","module.exports = require(\"element-ui/lib/locale\");","module.exports = require(\"element-ui/lib/theme-chalk/option.css\");","module.exports = require(\"core-js/modules/es.promise\");","module.exports = require(\"core-js/modules/es.object.to-string\");","module.exports = require(\"algoliasearch\");","module.exports = require(\"vue\");","module.exports = require(\"core-js/modules/es.array.iterator\");","module.exports = require(\"element-ui/lib/theme-chalk/icon.css\");","module.exports = require(\"core-js/modules/es.string.iterator\");","module.exports = require(\"core-js/modules/es.map\");","module.exports = require(\"element-ui/lib/theme-chalk/base.css\");","module.exports = require(\"core-js/modules/es.array.flat\");","module.exports = __webpack_public_path__ + \"img/missing-image.1878d8b8.svg\";","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=style&index=0&id=3f7eb1a5&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=style&index=0&id=3f7eb1a5&scoped=true&lang=css&\"","module.exports = require(\"element-ui/lib/theme-chalk/input.css\");","module.exports = require(\"core-js/modules/es.array.includes\");","module.exports = require(\"element-ui/lib/loading\");","module.exports = require(\"element-ui/lib/card\");","module.exports = require(\"element-ui/lib/icon\");","module.exports = require(\"core-js/modules/es.function.name\");","module.exports = require(\"core-js/modules/web.dom-collections.for-each\");","module.exports = require(\"core-js/modules/es.string.search\");","module.exports = require(\"core-js/modules/es.string.replace\");","module.exports = require(\"element-ui/lib/option\");","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilters.vue?vue&type=style&index=0&id=e43dafae&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilters.vue?vue&type=style&index=0&id=e43dafae&scoped=true&lang=css&\"","module.exports = require(\"core-js/modules/es.array.last-index-of\");","module.exports = require(\"current-script-polyfill\");","module.exports = require(\"core-js/modules/es.array.from\");","module.exports = require(\"element-ui/lib/input\");","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatasetCard.vue?vue&type=style&index=0&id=0e9538ce&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatasetCard.vue?vue&type=style&index=0&id=0e9538ce&scoped=true&lang=css&\"","module.exports = require(\"core-js/modules/es.object.entries\");","module.exports = require(\"core-js/modules/es.array.unscopables.flat\");","module.exports = require(\"core-js/modules/es.array.map\");","module.exports = require(\"core-js/modules/es.promise.finally\");","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n require('current-script-polyfill')\n }\n\n var i\n if ((i = window.document.currentScript) && (i = i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_public_path__ = i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"container\"},[(!_vm.drawerOpen)?_c('div',{staticClass:\"open-tab\",on:{\"click\":_vm.toggleDrawer}},[_c('i',{staticClass:\"el-icon-arrow-left\"})]):_vm._e(),_c('el-drawer',{staticClass:\"side-bar\",attrs:{\"custom-class\":\"my-drawer\",\"visible\":_vm.drawerOpen,\"appendToBody\":false,\"modal-append-to-body\":false,\"size\":\"550\",\"with-header\":false,\"wrapperClosable\":false,\"modal\":false},on:{\"update:visible\":function($event){_vm.drawerOpen=$event}}},[_c('div',{staticClass:\"box-card\"},[(_vm.drawerOpen)?_c('div',{staticClass:\"close-tab\",on:{\"click\":_vm.close}},[_c('i',{staticClass:\"el-icon-arrow-right\"})]):_vm._e(),_c('div',{staticClass:\"sidebar-container\"},[(_vm.tabs.length > 1)?_c('tabs',{attrs:{\"tabTitles\":_vm.tabs,\"activeId\":_vm.activeId},on:{\"titleClicked\":_vm.tabClicked}}):_vm._e(),_vm._l((_vm.tabs),function(tab){return [_c('sidebar-content',{directives:[{name:\"show\",rawName:\"v-show\",value:(tab.id===_vm.activeId),expression:\"tab.id===activeId\"}],key:tab.id,ref:tab.id,refInFor:true,staticClass:\"sidebar-content-container\",attrs:{\"contextCardEntry\":tab.contextCard,\"envVars\":_vm.envVars},on:{\"search-changed\":function($event){return _vm.searchChanged(tab.id, $event)}}})]})],2)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-card',{staticClass:\"content-card\",attrs:{\"body-style\":_vm.bodyStyle}},[_c('div',{staticClass:\"header\",attrs:{\"slot\":\"header\"},slot:\"header\"},[(_vm.contextCardEntry)?_c('context-card',{attrs:{\"entry\":_vm.contextCardEntry}}):_vm._e(),_c('el-input',{staticClass:\"search-input\",attrs:{\"placeholder\":\"Search\",\"clearable\":\"\"},on:{\"clear\":_vm.clearSearchClicked},nativeOn:{\"keyup\":function($event){return _vm.searchEvent($event)}},model:{value:(_vm.searchInput),callback:function ($$v) {_vm.searchInput=$$v},expression:\"searchInput\"}}),_c('el-button',{staticClass:\"button\",on:{\"click\":_vm.searchEvent}},[_vm._v(\"Search\")])],1),_c('SearchFilters',{ref:\"filtersRef\",staticClass:\"filters\",attrs:{\"entry\":_vm.filterEntry,\"envVars\":_vm.envVars},on:{\"filterResults\":_vm.filterUpdate,\"numberPerPage\":_vm.numberPerPageUpdate,\"loading\":_vm.filtersLoading}}),_c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loadingCards),expression:\"loadingCards\"}],ref:\"content\",staticClass:\"content scrollbar\"},[(_vm.results.length === 0 && !_vm.loadingCards && !_vm.sciCrunchError)?_c('div',{staticClass:\"error-feedback\"},[_vm._v(\"No results found - Please change your search / filter criteria.\")]):_vm._e(),(_vm.sciCrunchError)?_c('div',{staticClass:\"error-feedback\"},[_vm._v(_vm._s(_vm.sciCrunchError))]):_vm._e(),_vm._l((_vm.results),function(o){return _c('div',{key:o.id,staticClass:\"step-item\"},[_c('DatasetCard',{attrs:{\"entry\":o,\"envVars\":_vm.envVars}})],1)}),_c('el-pagination',{staticClass:\"pagination\",attrs:{\"current-page\":_vm.page,\"hide-on-single-page\":\"\",\"large\":\"\",\"layout\":\"prev, pager, next\",\"page-size\":_vm.numberPerPage,\"total\":_vm.numberOfHits},on:{\"update:currentPage\":function($event){_vm.page=$event},\"update:current-page\":function($event){_vm.page=$event},\"current-change\":_vm.pageChange}})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"filters\"},[_c('SvgSpriteColor'),_c('transition',{attrs:{\"name\":\"el-zoom-in-top\"}},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showFilters),expression:\"showFilters\"}],staticClass:\"search-filters transition-box\"},[_c('custom-cascader',{ref:\"cascader\",staticClass:\"cascader\",attrs:{\"placeholder\":\"\",\"collapse-tags\":true,\"options\":_vm.options,\"props\":_vm.props,\"show-all-levels\":false,\"append-to-body\":false},on:{\"change\":function($event){return _vm.cascadeEvent($event)},\"expand-change\":_vm.cascadeExpandChange,\"tags-changed\":_vm.tagsChangedCallback},model:{value:(_vm.cascadeSelected),callback:function ($$v) {_vm.cascadeSelected=$$v},expression:\"cascadeSelected\"}}),(_vm.showFiltersText)?_c('div',{staticClass:\"filter-default-value\"},[_c('svg-icon',{staticClass:\"filter-icon-inside\",attrs:{\"icon\":\"noun-filter\"}}),_vm._v(\"Apply Filters \")],1):_vm._e()],1)]),_c('el-select',{staticClass:\"number-shown-select\",attrs:{\"placeholder\":\"10\"},on:{\"change\":function($event){return _vm.numberShownChanged($event)}},model:{value:(_vm.numberShown),callback:function ($$v) {_vm.numberShown=$$v},expression:\"numberShown\"}},_vm._l((_vm.numberDatasetsShown),function(item){return _c('el-option',{key:item,attrs:{\"label\":item,\"value\":item}})}),1),_c('span',{staticClass:\"dataset-results-feedback\"},[_vm._v(_vm._s(this.numberOfResultsText))])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || nonIterableRest();\n}","var render, staticRenderFns\nimport script from \"./Cascader.vue?vue&type=script&lang=js&\"\nexport * from \"./Cascader.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","<script>\r\n/* eslint-disable no-alert, no-console */\r\nimport { Cascader } from \"element-ui\";\r\n\r\nexport default {\r\n name: 'CustomCascader',\r\n extends: Cascader,\r\n methods:{\r\n //Modify this internal function to disable Show all tags\r\n computePresentTags() {\r\n const { isDisabled, leafOnly, showAllLevels, separator, collapseTags } = this;\r\n const checkedNodes = this.getCheckedNodes(leafOnly);\r\n const tags = [];\r\n const genTag = node => ({\r\n node,\r\n key: node.uid,\r\n text: node.getText(showAllLevels, separator),\r\n hitState: false,\r\n closable: !isDisabled && !node.isDisabled\r\n });\r\n let customNodes = checkedNodes.filter(node =>\r\n {\r\n return !(node.getText(showAllLevels, separator).includes(\"Show all\"));\r\n }\r\n );\r\n if (customNodes.length) {\r\n const [first, ...rest] = customNodes;\r\n const restCount = rest.length;\r\n tags.push(genTag(first));\r\n if (restCount) {\r\n if (collapseTags) {\r\n tags.push({\r\n key: -1,\r\n text: `+ ${restCount}`,\r\n closable: false\r\n });\r\n } else {\r\n rest.forEach(node => tags.push(genTag(node)));\r\n }\r\n }\r\n }\r\n this.checkedNodes = checkedNodes;\r\n this.presentTags = tags;\r\n this.$emit(\"tags-changed\", this.presentTags);\r\n }\r\n }\r\n}\r\n\r\n</script>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Cascader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Cascader.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","export default {\r\n 'homo sapiens': 'Human',\r\n 'rattus norvegicus': 'Rat',\r\n 'mus musculus': 'Mouse',\r\n 'sus scrofa domesticus': 'Pig',\r\n 'sus scrofa': 'Boar',\r\n 'felis catus': 'Cat'\r\n}\r\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","/* eslint-disable no-alert, no-console */\r\nimport algoliasearch from 'algoliasearch'\r\n\r\n// export `createAlgoliaClient` to use it in page components\r\nexport class AlgoliaClient {\r\n constructor(algoliaId, algoliaKey, PENNSIEVE_API_LOCATION='https://api.pennsieve.io') {\r\n this.client = algoliasearch(\r\n algoliaId,\r\n algoliaKey\r\n )\r\n this.PENNSIEVE_API_LOCATION = PENNSIEVE_API_LOCATION\r\n }\r\n initIndex(ALGOLIA_INDEX) {\r\n this.index = this.client.initIndex(ALGOLIA_INDEX);\r\n }\r\n\r\n getAlgoliaFacets (propPathMapping) {\r\n const map = new Map(Object.entries(propPathMapping));\r\n const facetPropPaths = Array.from(map.keys() );\r\n let facetData = []\r\n let facetId = 0\r\n return this.index\r\n .search('', {\r\n sortFacetValuesBy: 'alpha',\r\n facets: facetPropPaths\r\n })\r\n .then(response => {\r\n facetPropPaths.map((facetPropPath) => {\r\n var children = []\r\n const responseFacets = response.facets\r\n if (responseFacets === undefined) {return}\r\n const responseFacetChildren =\r\n responseFacets[facetPropPath] == undefined\r\n ? {}\r\n : responseFacets[facetPropPath]\r\n Object.keys(responseFacetChildren).map(facet => {\r\n children.push({\r\n label: facet,\r\n id: facetId++,\r\n facetPropPath: facetPropPath\r\n })\r\n })\r\n if (children.length > 0) {\r\n facetData.push({\r\n label: map.get(facetPropPath),\r\n id: facetId++,\r\n children: children,\r\n key: facetPropPath\r\n })\r\n }\r\n })\r\n return facetData\r\n })\r\n }\r\n \r\n // Returns all DOIs of all versions for a given discover dataset\r\n _discoverAllDois (discoverId, PENNSIEVE_API_LOCATION='https://api.pennsieve.io') {\r\n return new Promise(resolve => {\r\n fetch(`${PENNSIEVE_API_LOCATION}/discover/datasets/${discoverId}/versions`).then(r=>r.json()).then(dataset => {\r\n resolve(dataset.map(version => version.doi))\r\n })\r\n })\r\n }\r\n \r\n // Get all dois given a list of discoverIds\r\n _expandDois (discoverIds, PENNSIEVE_API_LOCATION='https://api.pennsieve.io') {\r\n return new Promise(resolve => {\r\n let promiseList = discoverIds.map(discoverId => this._discoverAllDois(discoverId, PENNSIEVE_API_LOCATION))\r\n Promise.all(promiseList).then((values) => {\r\n resolve(values.flat())\r\n });\r\n })\r\n }\r\n \r\n /**\r\n * Get Search results\r\n * This is using fetch from the Algolia API\r\n */\r\n search (filter, query='', hitsperPage=10, page=1) {\r\n return new Promise(resolve => {\r\n this.index\r\n .search(query, {\r\n facets:['*'],\r\n hitsPerPage: hitsperPage,\r\n page: page-1,\r\n filters: filter\r\n })\r\n .then(response => {\r\n let searchData = {\r\n items: response.hits,\r\n total: response.nbHits,\r\n discoverIds: response.hits.map(r=>r.pennsieve.identifier),\r\n dois: response.hits.map(r=>r.item.curie.split(':')[1])\r\n }\r\n resolve(searchData)\r\n })\r\n })\r\n }\r\n}\r\n","/* eslint-disable no-alert, no-console */\r\n\r\n// Mapping between display categories and their Algolia index property path\r\n// Used for populating the Dataset Search Results facet menu dynamically\r\nexport const facetPropPathMapping = {\r\n 'anatomy.organ.name' : 'Anatomical Structure',\r\n 'organisms.primary.species.name' : 'Species',\r\n 'item.modalities.keyword' : 'Experimental Approach',\r\n 'attributes.subject.sex.value' : 'Sex',\r\n 'attributes.subject.ageCategory.value' : 'Age Categories',\r\n}\r\n\r\n/* Returns filter for searching algolia. All facets of the same category are joined with OR,\r\n * and each of those results is then joined with an AND.\r\n * i.e. (color:blue OR color:red) AND (shape:circle OR shape:red) */\r\nexport function getFilters(selectedFacetArray=undefined) {\r\n \r\n // return all datasets if no filter\r\n if (selectedFacetArray === undefined) {\r\n return 'NOT item.published.status:embargo'\r\n }\r\n\r\n // Switch the 'term' attribute to 'label' if 'label' does not exist \r\n selectedFacetArray.forEach(f=>f.label=f.facet)\r\n \r\n\r\n let facets = removeShowAllFacets(selectedFacetArray)\r\n\r\n let filters = \"NOT item.published.status:embargo\";\r\n filters = `(${filters}) AND `;\r\n\r\n const facetPropPaths = Object.keys(facetPropPathMapping);\r\n facetPropPaths.map((facetPropPath) => {\r\n const facetsToOr = facets.filter(\r\n (facet) => facet.facetPropPath == facetPropPath\r\n );\r\n var filter = \"\";\r\n facetsToOr.map((facet) => {\r\n filter += `\"${facetPropPath}\":\"${facet.label}\" OR `;\r\n });\r\n if (filter == \"\") {\r\n return;\r\n }\r\n filter = `(${filter.substring(0, filter.lastIndexOf(\" OR \"))})`;\r\n filters += `${filter} AND `;\r\n });\r\n return filters.substring(0, filters.lastIndexOf(\" AND \"));\r\n}\r\n\r\nfunction removeShowAllFacets(facetArray){\r\n return facetArray.filter( f => f.label !== 'Show all')\r\n}","<template>\r\n <div class=\"filters\">\r\n <SvgSpriteColor />\r\n <transition name=\"el-zoom-in-top\">\r\n <span v-show=\"showFilters\" class=\"search-filters transition-box\">\r\n <custom-cascader\r\n class=\"cascader\"\r\n ref=\"cascader\"\r\n v-model=\"cascadeSelected\"\r\n placeholder\r\n :collapse-tags=\"true\"\r\n :options=\"options\"\r\n :props=\"props\"\r\n @change=\"cascadeEvent($event)\"\r\n @expand-change=\"cascadeExpandChange\"\r\n :show-all-levels=\"false\"\r\n :append-to-body=\"false\"\r\n @tags-changed=\"tagsChangedCallback\"\r\n ></custom-cascader>\r\n <div v-if=\"showFiltersText\" class=\"filter-default-value\">\r\n <svg-icon icon=\"noun-filter\" class=\"filter-icon-inside\" />Apply\r\n Filters\r\n </div>\r\n </span>\r\n </transition>\r\n\r\n <el-select\r\n class=\"number-shown-select\"\r\n v-model=\"numberShown\"\r\n placeholder=\"10\"\r\n @change=\"numberShownChanged($event)\"\r\n >\r\n <el-option\r\n v-for=\"item in numberDatasetsShown\"\r\n :key=\"item\"\r\n :label=\"item\"\r\n :value=\"item\"\r\n ></el-option>\r\n </el-select>\r\n <span class=\"dataset-results-feedback\">{{ this.numberOfResultsText }}</span>\r\n </div>\r\n</template>\r\n\r\n\r\n<script>\r\n/* eslint-disable no-alert, no-console */\r\nimport Vue from \"vue\";\r\nimport { Option, Select } from \"element-ui\";\r\nimport CustomCascader from \"./Cascader\";\r\nimport lang from \"element-ui/lib/locale/lang/en\";\r\nimport locale from \"element-ui/lib/locale\";\r\nimport speciesMap from \"./species-map\";\r\nimport { SvgIcon, SvgSpriteColor } from \"@abi-software/svg-sprite\";\r\n\r\nimport {AlgoliaClient} from \"../algolia/algolia.js\";\r\nimport { facetPropPathMapping } from \"../algolia/utils.js\";\r\n\r\nVue.component(\"svg-icon\", SvgIcon);\r\n\r\nlocale.use(lang);\r\nVue.use(Option);\r\nVue.use(Select);\r\n\r\nconst capitalise = function (txt) {\r\n return txt.charAt(0).toUpperCase() + txt.slice(1);\r\n};\r\n\r\nconst convertReadableLabel = function (original) {\r\n const name = original.toLowerCase();\r\n if (speciesMap[name]) {\r\n return capitalise(speciesMap[name]);\r\n } else {\r\n return capitalise(name);\r\n }\r\n};\r\n\r\nexport default {\r\n name: \"SearchFilters\",\r\n components: {\r\n CustomCascader,\r\n SvgSpriteColor,\r\n },\r\n props: {\r\n /**\r\n * Object containing information for\r\n * the required viewing.\r\n */\r\n entry: Object,\r\n envVars: {\r\n type: Object,\r\n default: ()=>{}\r\n },\r\n },\r\n data: function () {\r\n return {\r\n cascaderIsReady: false,\r\n previousShowAllChecked: {\r\n species: false,\r\n gender: false,\r\n organ: false,\r\n datasets: false,\r\n },\r\n showFilters: true,\r\n showFiltersText: true,\r\n cascadeSelected: [],\r\n numberShown: 10,\r\n filters: [],\r\n facets: [\"Species\", \"Gender\", \"Organ\", \"Datasets\"],\r\n numberDatasetsShown: [\"10\", \"20\", \"50\"],\r\n props: { multiple: true },\r\n options: [\r\n {\r\n value: \"Species\",\r\n label: \"Species\",\r\n children: [{}],\r\n },\r\n ],\r\n };\r\n },\r\n computed: {\r\n numberOfResultsText: function () {\r\n return `${this.entry.numberOfHits} results | Showing`;\r\n },\r\n },\r\n methods: {\r\n createCascaderItemValue: function (term, facet) {\r\n if (facet) return term + \"/\" + facet;\r\n else return term;\r\n },\r\n populateCascader: function () {\r\n return new Promise((resolve) => {\r\n // Algolia facet serach\r\n this.algoliaClient.getAlgoliaFacets(facetPropPathMapping)\r\n .then((data) => {\r\n this.facets = data;\r\n this.options = data;\r\n\r\n // create top level of options in cascader\r\n this.options.forEach((facet, i) => {\r\n this.options[i].label = convertReadableLabel(facet.label);\r\n this.options[i].value = this.createCascaderItemValue(\r\n facet.key,\r\n undefined\r\n );\r\n\r\n // put \"Show all\" as first option\r\n this.options[i].children.unshift({\r\n value: this.createCascaderItemValue(\"Show all\"),\r\n label: \"Show all\",\r\n });\r\n\r\n // populate second level of options \r\n this.options[i].children.forEach((facetItem, j) => {\r\n this.options[i].children[j].label = convertReadableLabel(\r\n facetItem.label\r\n );\r\n this.options[i].children[j].value =\r\n this.createCascaderItemValue(facet.label, facetItem.label);\r\n });\r\n });\r\n })\r\n .finally(() => {\r\n resolve();\r\n });\r\n });\r\n },\r\n tagsChangedCallback: function (presentTags) {\r\n if (presentTags.length > 0) {\r\n this.showFiltersText = false;\r\n } else {\r\n this.showFiltersText = true;\r\n }\r\n },\r\n // cascadeEvent: initiate searches based off cascader changes\r\n cascadeEvent: function (event) {\r\n if (event) {\r\n // Check for show all in selected cascade options\r\n event = this.showAllEventModifier(event);\r\n\r\n // Move results from arrays to object\r\n let filters = event.filter( selection => selection !== undefined).map( fs => ({\r\n facetPropPath: fs[0], \r\n facet: fs[1].split(\"/\")[1],\r\n term: fs[1].split(\"/\")[0], \r\n }))\r\n\r\n this.$emit('loading', true) // let sidebarcontent wait for the requests\r\n\r\n this.$emit(\"filterResults\", filters); // emit filters for apps above sidebar\r\n this.setCascader(filters); //update our cascader v-model if we modified the event\r\n this.makeCascadeLabelsClickable();\r\n }\r\n },\r\n // showAllEventModifier: Modifies a cascade event to unlick all selections in category if \"show all\" is clicked. Also unchecks \"Show all\" if any secection is clicked\r\n // *NOTE* Does NOT remove 'Show all' selections from showing in 'cascadeSelected'\r\n showAllEventModifier: function (event) {\r\n // check if show all is in the cascader checked option list\r\n let hasShowAll = event\r\n .map((ev) => (ev ? ev[1].toLowerCase().includes(\"show all\") : false))\r\n .includes(true);\r\n // remove all selected options below the show all if checked\r\n if (hasShowAll) {\r\n let modifiedEvent = [];\r\n let facetMaps = {};\r\n //catagorised different facet items\r\n for (const i in event) {\r\n if (facetMaps[event[i][0]] === undefined) facetMaps[event[i][0]] = [];\r\n facetMaps[event[i][0]].push(event[i]);\r\n }\r\n // go through each facets\r\n for (const facet in facetMaps) {\r\n let showAll = undefined;\r\n // Find the show all item if any\r\n for (let i = facetMaps[facet].length - 1; i >= 0; i--) {\r\n if (facetMaps[facet][i][1].toLowerCase().includes(\"show all\")) {\r\n //seperate the showAll item and the rest\r\n showAll = facetMaps[facet].splice(i, 1)[0];\r\n break;\r\n }\r\n }\r\n if (showAll) {\r\n if (this.previousShowAllChecked[facet]) {\r\n //Unset the show all if it was present previously\r\n //and there are other items\r\n if (facetMaps[facet].length > 0)\r\n modifiedEvent.push(...facetMaps[facet]);\r\n else modifiedEvent.push(showAll);\r\n } else {\r\n //showAll is turned on\r\n modifiedEvent.push(showAll);\r\n }\r\n } else {\r\n modifiedEvent.push(...facetMaps[facet]);\r\n }\r\n }\r\n //Make sure the expanded item are sorted first.\r\n return modifiedEvent.sort((a, b) => {\r\n if (this.__expandItem__) {\r\n if (a[0] == this.__expandItem__) {\r\n if (b[0] == this.__expandItem__) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n } else if (b[0] == this.__expandItem__) {\r\n if (a[0] == this.__expandItem__) {\r\n return 0;\r\n } else {\r\n return 1;\r\n }\r\n } else {\r\n return 0;\r\n }\r\n } else return 0;\r\n });\r\n }\r\n return event;\r\n },\r\n cascadeExpandChange: function (event) {\r\n //work around as the expand item may change on modifying the cascade props\r\n this.__expandItem__ = event;\r\n this.makeCascadeLabelsClickable();\r\n },\r\n numberShownChanged: function (event) {\r\n this.$emit(\"numberPerPage\", parseInt(event));\r\n },\r\n updatePreviousShowAllChecked: function (options) {\r\n //Reset the states\r\n for (const facet in this.previousShowAllChecked) {\r\n this.previousShowAllChecked[facet] = false;\r\n }\r\n options.forEach((element) => {\r\n if (element[1].toLowerCase().includes(\"show all\"))\r\n this.previousShowAllChecked[element[0]] = true;\r\n });\r\n },\r\n // setCascader: Clears previous selections and takes in an array of facets to select: filterFacets\r\n // facets are in the form:\r\n // {\r\n // facetPropPath: 'anatomy.organ.name',\r\n // term: 'Sex',\r\n // facet: 'Male'\r\n // }\r\n setCascader: function (filterFacets) {\r\n //Do not set the value unless it is ready\r\n if (this.cascaderIsReady && filterFacets && filterFacets.length != 0) {\r\n this.cascadeSelected = filterFacets.map(e => {\r\n return [\r\n e.facetPropPath,\r\n this.createCascaderItemValue(capitalise(e.term), e.facet),\r\n ]\r\n });\r\n this.updatePreviousShowAllChecked(this.cascadeSelected);\r\n }\r\n },\r\n addFilter: function (filter) {\r\n //Do not set the value unless it is ready\r\n if (this.cascaderIsReady && filter) {\r\n this.cascadeSelected.filter(f=>f.term != filter.term)\r\n this.cascadeSelected.push([filter.facetPropPath, this.createCascaderItemValue(filter.term, filter.facet)])\r\n }\r\n },\r\n initiateSearch: function() {\r\n this.cascadeEvent(this.cascadeSelected)\r\n },\r\n // checkShowAllBoxes: Checks each 'Show all' cascade option by using the setCascader function\r\n checkShowAllBoxes: function(){\r\n this.setCascader(\r\n this.options.map(option => {\r\n return {\r\n facetPropPath: option.value,\r\n term: option.label,\r\n facet: 'Show all'\r\n }\r\n })\r\n )\r\n },\r\n makeCascadeLabelsClickable: function () {\r\n // Next tick allows the cascader menu to change\r\n this.$nextTick(() => {\r\n this.$refs.cascader.$el\r\n .querySelectorAll(\".el-cascader-node__label\")\r\n .forEach((el) => {\r\n // step through each cascade label\r\n el.onclick = function () {\r\n const checkbox = this.previousElementSibling;\r\n if (checkbox) {\r\n if (!checkbox.parentElement.attributes[\"aria-owns\"]) {\r\n // check if we are at the lowest level of cascader\r\n this.previousElementSibling.click(); // Click the checkbox\r\n }\r\n }\r\n };\r\n });\r\n });\r\n },\r\n },\r\n mounted: function () {\r\n this.algoliaClient = new AlgoliaClient(this.envVars.ALGOLIA_ID, this.envVars.ALGOLIA_KEY, this.envVars.PENNSIEVE_API_LOCATION);\r\n this.algoliaClient.initIndex(this.envVars.ALGOLIA_INDEX);\r\n this.populateCascader().then(() => {\r\n this.cascaderIsReady = true;\r\n this.checkShowAllBoxes()\r\n this.setCascader(this.entry.filterFacets);\r\n this.makeCascadeLabelsClickable();\r\n });\r\n },\r\n};\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style scoped>\r\n.filter-default-value {\r\n pointer-events: none;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n padding-top: 10px;\r\n padding-left: 16px;\r\n}\r\n\r\n.filter-icon-inside {\r\n width: 12px !important;\r\n height: 12px !important;\r\n color: #292b66;\r\n transform: scale(2) !important;\r\n margin-bottom: 0px !important;\r\n}\r\n\r\n.cascader {\r\n font-family: Asap;\r\n font-size: 14px;\r\n font-weight: 500;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #292b66;\r\n text-align: center;\r\n padding-bottom: 6px;\r\n}\r\n\r\n.cascader >>> .el-cascder-panel {\r\n max-height: 500px;\r\n}\r\n\r\n.cascader >>> .el-scrollbar__wrap {\r\n overflow-x: hidden;\r\n margin-bottom: 2px !important;\r\n}\r\n\r\n.cascader >>> li[aria-owns*=\"cascader\"] > .el-checkbox {\r\n display: none;\r\n}\r\n\r\n.dataset-results-feedback {\r\n float: right;\r\n text-align: right;\r\n color: rgb(48, 49, 51);\r\n font-family: Asap;\r\n font-size: 18px;\r\n font-weight: 500;\r\n padding-top: 8px;\r\n}\r\n\r\n.search-filters {\r\n position: relative;\r\n float: left;\r\n padding-right: 15px;\r\n padding-bottom: 12px;\r\n}\r\n\r\n.number-shown-select {\r\n float: right;\r\n}\r\n\r\n.number-shown-select >>> .el-input__inner {\r\n width: 68px;\r\n height: 40px;\r\n color: rgb(48, 49, 51);\r\n}\r\n\r\n.search-filters >>> .el-cascader-node.is-active {\r\n color: #8300bf;\r\n}\r\n\r\n.search-filters >>> .el-cascader-node.in-active-path {\r\n color: #8300bf;\r\n}\r\n\r\n.search-filters >>> .el-checkbox__input.is-checked > .el-checkbox__inner {\r\n background-color: #8300bf;\r\n border-color: #8300bf;\r\n}\r\n\r\n.cascader >>> .el-cascader-menu:nth-child(2) .el-cascader-node:first-child {\r\n border-bottom: 1px solid #e4e7ed;\r\n}\r\n\r\n.cascader >>> .el-cascader-node__label {\r\n text-align: left;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilters.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilters.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SearchFilters.vue?vue&type=template&id=e43dafae&scoped=true&\"\nimport script from \"./SearchFilters.vue?vue&type=script&lang=js&\"\nexport * from \"./SearchFilters.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SearchFilters.vue?vue&type=style&index=0&id=e43dafae&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 \"e43dafae\",\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',{ref:\"container\",staticClass:\"dataset-card-container\"},[_c('div',{ref:\"card\",class:_vm.expanded ? 'dataset-card-expanded' : 'dataset-card'},[(_vm.entry.id !== 0)?_c('div',{staticClass:\"seperator-path\"}):_vm._e(),_c('div',{staticClass:\"card\"},[_c('span',{staticClass:\"card-left\"},[_c('img',{staticClass:\"banner-img\",attrs:{\"svg-inline\":\"\",\"src\":_vm.thumbnail},on:{\"click\":_vm.openDataset}})]),_c('div',{staticClass:\"card-right\"},[_c('div',{staticClass:\"title\",on:{\"click\":_vm.cardClicked}},[_vm._v(_vm._s(_vm.entry.name))]),_c('div',{staticClass:\"details\"},[_vm._v(_vm._s(_vm.contributors)+\" \"+_vm._s(_vm.entry.publishDate ? (\"(\" + _vm.publishYear + \")\") : ''))]),_c('div',{staticClass:\"details\"},[_vm._v(_vm._s(_vm.samples))]),_c('div',{staticClass:\"details\"},[_vm._v(\"id: \"+_vm._s(_vm.discoverId))]),_c('div',[(!_vm.entry.simulation)?_c('el-button',{staticClass:\"button\",attrs:{\"size\":\"mini\",\"icon\":\"el-icon-coin\"},on:{\"click\":_vm.openDataset}},[_vm._v(\"View dataset\")]):_vm._e()],1),_c('div',[(_vm.entry.scaffolds)?_c('el-button',{staticClass:\"button\",attrs:{\"size\":\"mini\",\"icon\":\"el-icon-view\"},on:{\"click\":_vm.openScaffold}},[_vm._v(\"View scaffold\")]):_vm._e()],1),_c('div',[(_vm.hasCSVFile)?_c('el-button',{staticClass:\"button\",attrs:{\"size\":\"mini\",\"icon\":\"el-icon-view\"},on:{\"click\":_vm.openPlot}},[_vm._v(\"View plot\")]):_vm._e()],1),_c('div',[(_vm.entry.simulation)?_c('el-button',{staticClass:\"button\",attrs:{\"size\":\"mini\",\"icon\":\"el-icon-view\"},on:{\"click\":_vm.openRepository}},[_vm._v(\"View repository\")]):_vm._e()],1),_c('div',[(_vm.entry.simulation)?_c('el-button',{staticClass:\"button\",attrs:{\"size\":\"mini\",\"icon\":\"el-icon-view\"},on:{\"click\":_vm.openSimulation}},[_vm._v(\"View simulation\")]):_vm._e()],1)])]),((_vm.cardOverflow && !_vm.expanded))?_c('p',{staticClass:\"read-more\"},[_c('el-button',{staticClass:\"read-more-button\",on:{\"click\":_vm.expand}},[_vm._v(\"Read more...\")])],1):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nconst EventBus = new Vue();\r\nexport default EventBus;\r\n","export default {\r\n 77: {\r\n version: 2, meta_file: 'integrated_metadata.json', contextCard: {\r\n title: \"ICN fitted Scaffold\",\r\n description: \"Points are mapped to their positions on a 3d heart that is mapped to the data.\",\r\n bannerImage: 'https://raw.githubusercontent.com/Tehsurfer/map-sidebar/tabs/assets/temp-pics/icn.png',\r\n keys: [{\r\n image: \"https://raw.githubusercontent.com/Tehsurfer/map-sidebar/tabs/assets/temp-pics/orange.png\",\r\n text: \"ICN Subject 54-8\"\r\n }, {\r\n image: \"https://raw.githubusercontent.com/Tehsurfer/map-sidebar/tabs/assets/temp-pics/teal.png\",\r\n text: \"ICN Subject 54-5\"\r\n }\r\n ]\r\n },\r\n },\r\n 76: { version: 2, meta_file: 'mouseColon_metadata.json' },\r\n 32: {\r\n version: 3, meta_file: 'mouse-heart-071020_metadata.json', contextCard: {\r\n title: \"Neural paths mapped to a heart scaffold\",\r\n description: \"Points are mapped to their positions on a 3d heart that is mapped to the data.\",\r\n bannerImage: 'https://raw.githubusercontent.com/Tehsurfer/map-sidebar/tabs/assets/temp-pics/aNIksBFARaKwlKhpnDCKbA.png',\r\n keys: [{\r\n image: \"https://raw.githubusercontent.com/Tehsurfer/map-sidebar/tabs/assets/temp-pics/VqNcZ8fSQJu5TJEf9ahwvA.png\",\r\n text: \"Neural path\"\r\n }],\r\n }\r\n }\r\n }\r\n","<template>\r\n <div class=\"dataset-card-container\" ref=\"container\">\r\n <div v-bind:class=\" expanded ? 'dataset-card-expanded' : 'dataset-card'\" ref=\"card\">\r\n <div v-if=\"entry.id !== 0\" class=\"seperator-path\"></div>\r\n <div class=\"card\" >\r\n <span class=\"card-left\">\r\n <img svg-inline class=\"banner-img\" :src=\"thumbnail\" @click=\"openDataset\"/>\r\n </span>\r\n <div class=\"card-right\" >\r\n <div class=\"title\" @click=\"cardClicked\">{{entry.name}}</div>\r\n <div class=\"details\">{{contributors}} {{entry.publishDate ? `(${publishYear})` : ''}}</div>\r\n <div class=\"details\">{{samples}}</div>\r\n <div class=\"details\">id: {{discoverId}}</div>\r\n <div>\r\n <el-button v-if=\"!entry.simulation\" @click=\"openDataset\" size=\"mini\" class=\"button\" icon=\"el-icon-coin\">View dataset</el-button>\r\n </div>\r\n <div>\r\n <el-button v-if=\"entry.scaffolds\" @click=\"openScaffold\" size=\"mini\" class=\"button\" icon=\"el-icon-view\">View scaffold</el-button>\r\n </div>\r\n <div>\r\n <el-button v-if=\"hasCSVFile\" @click=\"openPlot\" size=\"mini\" class=\"button\" icon=\"el-icon-view\">View plot</el-button>\r\n </div>\r\n <div>\r\n <el-button v-if=\"entry.simulation\" @click=\"openRepository\" size=\"mini\" class=\"button\" icon=\"el-icon-view\">View repository</el-button>\r\n </div>\r\n <div>\r\n <el-button v-if=\"entry.simulation\" @click=\"openSimulation\" size=\"mini\" class=\"button\" icon=\"el-icon-view\">View simulation</el-button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <p v-if=\"(cardOverflow && !expanded)\" class=\"read-more\"><el-button @click=\"expand\" class=\"read-more-button\">Read more...</el-button></p>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n\r\n<script>\r\n/* eslint-disable no-alert, no-console */\r\nimport Vue from \"vue\";\r\nimport { Button, Icon } from \"element-ui\";\r\nimport lang from \"element-ui/lib/locale/lang/en\";\r\nimport locale from \"element-ui/lib/locale\";\r\nimport EventBus from \"./EventBus\"\r\nimport scaffoldMetaMap from './scaffold-meta-map';\r\nimport speciesMap from \"./species-map\";\r\n\r\nlocale.use(lang);\r\nVue.use(Button);\r\nVue.use(Icon);\r\n\r\nconst capitalise = function(string){\r\n return string.replace(/\\b\\w/g, v => v.toUpperCase());\r\n}\r\n\r\nexport default {\r\n name: \"DatasetCard\",\r\n props: {\r\n /**\r\n * Object containing information for\r\n * the required viewing.\r\n */\r\n entry: Object,\r\n envVars: {\r\n type: Object,\r\n default: () => {}\r\n },\r\n },\r\n data: function () {\r\n return {\r\n thumbnail: require('@/../assets/missing-image.svg'),\r\n dataLocation: this.entry.doi,\r\n discoverId: undefined,\r\n cardOverflow: false,\r\n expanded: false\r\n };\r\n },\r\n computed: {\r\n hasCSVFile: function(){\r\n return ( this.entry.csvFiles && this.entry.csvFiles.length !== 0 )\r\n },\r\n contributors: function() {\r\n let text = \"\";\r\n if (this.entry.contributors) {\r\n if (this.entry.contributors.length === 1) {\r\n text = this.lastName(this.entry.contributors[0].name);\r\n } else if (this.entry.contributors.length === 2) {\r\n text = this.lastName(this.entry.contributors[0].name) + \" & \" + this.lastName(this.entry.contributors[1].name);\r\n } else if (this.entry.contributors.length > 2) {\r\n text = this.lastName(this.entry.contributors[0].name) + \" et al.\";\r\n }\r\n }\r\n return text;\r\n },\r\n samples: function() {\r\n let text = \"\";\r\n if (this.entry.species) {\r\n if (speciesMap[this.entry.species[0].toLowerCase()]){\r\n text = `${speciesMap[this.entry.species[0].toLowerCase()]}`;\r\n } else {\r\n text = `${this.entry.species}`;\r\n }\r\n }\r\n if (this.entry.numberSamples > 0) {\r\n text += \" (\";\r\n if (this.entry.numberSamples === 1) {\r\n text += `${this.entry.numberSamples} sample`;\r\n } else if (this.entry.numberSamples > 1) {\r\n text += `${this.entry.numberSamples} samples`;\r\n }\r\n if (this.entry.numberSubjects === 1) {\r\n text += ` from ${this.entry.numberSubjects} subject`;\r\n } else if (this.entry.numberSamples > 1) {\r\n text += ` from ${this.entry.numberSubjects} subjects`;\r\n }\r\n text += \")\";\r\n }\r\n\r\n return text;\r\n },\r\n label: function(){\r\n return this.entry.organs ? this.entry.organs[0] : this.entry.name\r\n },\r\n publishYear: function() {\r\n return this.entry.publishDate.split('-')[0]\r\n }\r\n },\r\n methods: {\r\n cardClicked: function(){\r\n if(this.entry.scaffolds){\r\n this.openScaffold()\r\n }else{\r\n this.openDataset()\r\n }\r\n },\r\n openScaffold: function(){\r\n let action = {\r\n label: capitalise(this.label),\r\n resource: this.getScaffoldPath(this.discoverId, this.version, this.entry.scaffolds[0].dataset.path),\r\n title: \"View 3D scaffold\",\r\n type: \"Scaffold\",\r\n discoverId: this.discoverId,\r\n contextCard: scaffoldMetaMap[this.discoverId] ? scaffoldMetaMap[this.discoverId].contextCard : undefined\r\n }\r\n EventBus.$emit(\"PopoverActionClick\", action)\r\n },\r\n openPlot: function(){\r\n let action = {\r\n label: capitalise(this.label),\r\n resource: this.getFileFromPath(this.discoverId, this.version, this.entry.csvFiles[0].dataset.path),\r\n title: \"View plot\",\r\n type: \"Plot\",\r\n discoverId: this.discoverId,\r\n }\r\n EventBus.$emit(\"PopoverActionClick\", action)\r\n },\r\n openDataset: function(){\r\n window.open(this.dataLocation,'_blank');\r\n },\r\n openRepository: function() {\r\n let apiLocation = this.envVars.API_LOCATION;\r\n this.entry.additionalLinks.forEach(function(el) {\r\n if (el.description == \"Repository\") {\r\n let xmlhttp = new XMLHttpRequest();\r\n xmlhttp.open(\"POST\", apiLocation + \"/pmr_latest_exposure\", true);\r\n xmlhttp.setRequestHeader(\"Content-type\", \"application/json\");\r\n xmlhttp.onreadystatechange = () => {\r\n if (xmlhttp.readyState === 4) {\r\n let url = \"\";\r\n if (xmlhttp.status === 200) {\r\n url = JSON.parse(xmlhttp.responseText)[\"url\"];\r\n }\r\n if (url === \"\") {\r\n url = el.uri;\r\n }\r\n window.open(url,'_blank');\r\n }\r\n };\r\n xmlhttp.send(JSON.stringify({workspace_url: el.uri}));\r\n }\r\n });\r\n },\r\n openSimulation: function() {\r\n let isSedmlResource = false;\r\n let resource = undefined;\r\n this.entry.additionalLinks.forEach(function(el) {\r\n if (el.description == \"SED-ML file\") {\r\n isSedmlResource = true;\r\n resource = el.uri;\r\n } else if (!isSedmlResource && (el.description == \"CellML file\")) {\r\n resource = el.uri;\r\n }\r\n });\r\n let action = {\r\n label: undefined,\r\n resource: resource,\r\n dataset: this.dataLocation,\r\n datasetId: this.discoverId,\r\n title: \"View simulation\",\r\n name: this.entry.name,\r\n description: this.entry.description,\r\n type: \"Simulation\"\r\n }\r\n EventBus.$emit(\"PopoverActionClick\", action)\r\n },\r\n getScaffoldPath: function(discoverId, version, scaffoldPath){\r\n let id = discoverId\r\n let path = `${this.envVars.API_LOCATION}s3-resource/${id}/${version}/files/${scaffoldPath}`\r\n return path\r\n },\r\n getFileFromPath: function(discoverId, version, path){\r\n return `${this.envVars.API_LOCATION}s3-resource/${discoverId}/${version}/files/${path}`\r\n },\r\n isOverflown: function(el){\r\n return el.clientHeight < el.scrollHeight\r\n },\r\n expand: function() {\r\n this.expanded = true\r\n },\r\n splitDOI: function(doi){\r\n return [doi.split('/')[doi.split('/').length-2], doi.split('/')[doi.split('/').length-1]]\r\n },\r\n getBanner: function () {\r\n let doi = this.splitDOI(this.entry.doi)\r\n fetch(`https://api.pennsieve.io/discover/datasets/doi/${doi[0]}/${doi[1]}`)\r\n .then((response) =>{\r\n if (!response.ok){\r\n throw Error(response.statusText)\r\n } else {\r\n return response.json()\r\n }\r\n })\r\n .then((data) => {\r\n this.thumbnail = data.banner\r\n this.discoverId = data.id\r\n this.version = data.version\r\n this.dataLocation = `https://sparc.science/datasets/${data.id}?type=dataset`\r\n })\r\n .catch(() => {\r\n //set defaults if we hit an error\r\n this.thumbnail = require('@/../assets/missing-image.svg')\r\n this.discoverId = undefined\r\n });\r\n },\r\n lastName: function(fullName){\r\n return fullName.split(',')[0]\r\n },\r\n },\r\n mounted: function(){\r\n this.getBanner()\r\n this.cardOverflow = this.isOverflown(this.$refs.card)\r\n },\r\n updated: function () {\r\n },\r\n watch: {\r\n 'entry.description': function() { // watch it\r\n this.cardOverflow = false\r\n this.expanded = false\r\n this.cardOverflow = this.isOverflown(this.$refs.card)\r\n this.getBanner()\r\n }\r\n },\r\n};\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style scoped>\r\n.dataset-card {\r\n padding-left: 16px;\r\n position: relative;\r\n}\r\n.seperator-path {\r\n width: 486px;\r\n height: 0px;\r\n border: solid 1px #e4e7ed;\r\n background-color: #e4e7ed;\r\n}\r\n.title {\r\n padding-bottom: 5px;\r\n font-family: Asap;\r\n font-size: 14px;\r\n font-weight: bold;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: 1.5;\r\n letter-spacing: 1.05px;\r\n color: #484848;\r\n cursor: pointer;\r\n}\r\n.card {\r\n padding-top: 18px;\r\n position: relative;\r\n display: flex;\r\n}\r\n\r\n.card-left{\r\n flex: 1\r\n}\r\n\r\n.card-right {\r\n flex: 1.3;\r\n padding-left: 6px;\r\n}\r\n\r\n.dataset-card .read-more {\r\n position: absolute;\r\n z-index: 9;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 20px;\r\n margin: 0; padding: 20px 66px;\r\n /* \"transparent\" only works here because == rgba(0,0,0,0) */\r\n background-image: linear-gradient(to bottom, transparent, white);\r\n pointer-events: none;\r\n}\r\n\r\n.read-more-button{\r\n width: 85px;\r\n height: 20px;\r\n font-family: Asap;\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #8300bf;\r\n padding: 0px;\r\n pointer-events: all;\r\n cursor: pointer;\r\n}\r\n\r\n.button{\r\n z-index: 10;\r\n font-family: Asap;\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n background-color: #8300bf;\r\n border: #8300bf;\r\n color: white;\r\n cursor: pointer;\r\n margin-top: 8px;\r\n}\r\n\r\n.button:hover {\r\n background-color: #8300bf;\r\n color: white;\r\n}\r\n\r\n.banner-img {\r\n width: 128px;\r\n height: 128px;\r\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.25);\r\n background-color: #ffffff;\r\n cursor: pointer;\r\n}\r\n.details{\r\n font-family: Asap;\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: 1.5;\r\n letter-spacing: 1.05px;\r\n color: #484848;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatasetCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatasetCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DatasetCard.vue?vue&type=template&id=0e9538ce&scoped=true&\"\nimport script from \"./DatasetCard.vue?vue&type=script&lang=js&\"\nexport * from \"./DatasetCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DatasetCard.vue?vue&type=style&index=0&id=0e9538ce&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 \"0e9538ce\",\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',{ref:\"container\",staticClass:\"context-card-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showDetails),expression:\"showDetails\"}],staticClass:\"hide\",on:{\"click\":function($event){_vm.showDetails = !_vm.showDetails}}},[_vm._v(\"Hide information\"),_c('i',{staticClass:\"el-icon-arrow-up\"})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showDetails),expression:\"!showDetails\"}],staticClass:\"hide\",on:{\"click\":function($event){_vm.showDetails = !_vm.showDetails}}},[_vm._v(\"Show information\"),_c('i',{staticClass:\"el-icon-arrow-down\"})]),_c('el-card',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showDetails),expression:\"showDetails\"}],staticClass:\"context-card card\",attrs:{\"body-style\":{ padding: '0px', 'background-color': 'white', display: 'flex', width: '516px'}}},[_c('img',{staticClass:\"context-image card-left\",attrs:{\"src\":_vm.entry.bannerImage}}),_c('div',{staticClass:\"card-right\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.entry.title))]),_c('div',[_vm._v(_vm._s(_vm.entry.description))]),_vm._l((_vm.entry.keys),function(key){return [_c('br',{key:key.text}),_c('span',{key:key.text + 1},[_c('img',{staticStyle:{\"height\":\"20px\"},attrs:{\"src\":key.image}}),_vm._v(\" \"+_vm._s(key.text))])]})],2)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"context-card-container\" ref=\"container\">\r\n <div v-show=\"showDetails\" class=\"hide\" @click=\"showDetails = !showDetails\">Hide information<i class=\"el-icon-arrow-up\"></i></div>\r\n <div v-show=\"!showDetails\" class=\"hide\" @click=\"showDetails = !showDetails\">Show information<i class=\"el-icon-arrow-down\"></i></div>\r\n <el-card v-show=\"showDetails\" class=\"context-card card\" :body-style=\"{ padding: '0px', 'background-color': 'white', display: 'flex', width: '516px'}\">\r\n <img :src=\"entry.bannerImage\" class=\"context-image card-left\">\r\n <div class=\"card-right\">\r\n <div class=\"title\">{{entry.title}}</div>\r\n <div>{{entry.description}}</div>\r\n <template v-for=\"key in entry.keys\">\r\n <br v-bind:key=\"key.text\"/>\r\n <span v-bind:key=\"key.text + 1\"><img :src=\"key.image\" style=\"height: 20px;\"> {{key.text}}</span>\r\n </template>\r\n </div>\r\n </el-card>\r\n </div>\r\n</template>\r\n\r\n\r\n<script>\r\n/* eslint-disable no-alert, no-console */\r\nimport Vue from \"vue\";\r\nimport { Link, Icon, Card, Button, Select, Input } from \"element-ui\";\r\nimport lang from \"element-ui/lib/locale/lang/en\";\r\nimport locale from \"element-ui/lib/locale\";\r\n\r\nlocale.use(lang);\r\nVue.use(Link);\r\nVue.use(Icon);\r\nVue.use(Card);\r\nVue.use(Button);\r\nVue.use(Select);\r\nVue.use(Input);\r\n\r\n\r\n\r\nexport default {\r\n name: \"contextCard\",\r\n props: {\r\n /**\r\n * Object containing information for\r\n * the required viewing.\r\n */\r\n entry: Object,\r\n },\r\n data: function () {\r\n return {\r\n showDetails: true\r\n };\r\n },\r\n computed: {\r\n\r\n },\r\n methods: {\r\n },\r\n};\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style scoped>\r\n\r\n.hide{\r\n color: #e4e7ed;\r\n cursor: pointer;\r\n}\r\n\r\n.context-card{\r\n background-color: white;\r\n}\r\n\r\n.context-image{\r\n width: 250px\r\n}\r\n\r\n.card {\r\n padding-top: 18px;\r\n margin-bottom: 18px;\r\n position: relative;\r\n border: solid 1px #e4e7ed;\r\n display: flex;\r\n}\r\n\r\n.card-left{\r\n flex: 1\r\n}\r\n\r\n.card-right {\r\n flex: 1.3;\r\n padding-left: 6px;\r\n}\r\n\r\n.title{\r\n font-weight: bold;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ContextCard.vue?vue&type=template&id=262a6750&scoped=true&\"\nimport script from \"./ContextCard.vue?vue&type=script&lang=js&\"\nexport * from \"./ContextCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ContextCard.vue?vue&type=style&index=0&id=262a6750&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 \"262a6750\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <el-card :body-style=\"bodyStyle\" class=\"content-card\">\r\n <div slot=\"header\" class=\"header\">\r\n <context-card v-if=\"contextCardEntry\" :entry=\"contextCardEntry\" />\r\n <el-input\r\n class=\"search-input\"\r\n placeholder=\"Search\"\r\n v-model=\"searchInput\"\r\n @keyup.native=\"searchEvent\"\r\n clearable\r\n @clear=\"clearSearchClicked\"\r\n ></el-input>\r\n <el-button class=\"button\" @click=\"searchEvent\">Search</el-button>\r\n </div>\r\n <SearchFilters\r\n class=\"filters\"\r\n ref=\"filtersRef\"\r\n :entry=\"filterEntry\"\r\n :envVars=\"envVars\"\r\n @filterResults=\"filterUpdate\"\r\n @numberPerPage=\"numberPerPageUpdate\"\r\n @loading=\"filtersLoading\"\r\n ></SearchFilters>\r\n <div class=\"content scrollbar\" v-loading=\"loadingCards\" ref=\"content\">\r\n <div\r\n class=\"error-feedback\"\r\n v-if=\"results.length === 0 && !loadingCards && !sciCrunchError\"\r\n >No results found - Please change your search / filter criteria.</div>\r\n <div class=\"error-feedback\" v-if=\"sciCrunchError\">{{sciCrunchError}}</div>\r\n <div v-for=\"o in results\" :key=\"o.id\" class=\"step-item\">\r\n <DatasetCard :entry=\"o\" :envVars=\"envVars\"></DatasetCard>\r\n </div>\r\n <el-pagination\r\n class=\"pagination\"\r\n :current-page.sync=\"page\"\r\n hide-on-single-page\r\n large\r\n layout=\"prev, pager, next\"\r\n :page-size=\"numberPerPage\"\r\n :total=\"numberOfHits\"\r\n @current-change=\"pageChange\"\r\n ></el-pagination>\r\n </div>\r\n </el-card>\r\n</template>\r\n\r\n\r\n<script>\r\n/* eslint-disable no-alert, no-console */\r\nimport Vue from \"vue\";\r\nimport {\r\n Button,\r\n Card,\r\n Drawer,\r\n Icon,\r\n Input,\r\n Loading,\r\n Pagination\r\n} from \"element-ui\";\r\nimport lang from \"element-ui/lib/locale/lang/en\";\r\nimport locale from \"element-ui/lib/locale\";\r\nimport SearchFilters from \"./SearchFilters\";\r\nimport DatasetCard from \"./DatasetCard\";\r\nimport ContextCard from \"./ContextCard.vue\";\r\n\r\nimport {AlgoliaClient} from \"../algolia/algolia.js\";\r\nimport {getFilters} from \"../algolia/utils.js\"\r\n\r\nlocale.use(lang);\r\nVue.use(Button);\r\nVue.use(Card);\r\nVue.use(Drawer);\r\nVue.use(Icon);\r\nVue.use(Input);\r\nVue.use(Loading);\r\nVue.use(Pagination);\r\n\r\n// handleErrors: A custom fetch error handler to recieve messages from the server\r\n// even when an error is found\r\nvar handleErrors = async function(response) {\r\n if (!response.ok) {\r\n let parse = await response.json();\r\n if (parse) {\r\n throw new Error(parse.message);\r\n } else {\r\n throw new Error(response);\r\n }\r\n }\r\n return response;\r\n};\r\n\r\nvar initial_state = {\r\n searchInput: \"\",\r\n lastSearch: \"\",\r\n results: [],\r\n numberOfHits: 0,\r\n filter: [],\r\n loadingCards: false,\r\n numberPerPage: 10,\r\n page: 1,\r\n pageModel: 1,\r\n start: 0,\r\n hasSearched: false,\r\n sciCrunchError: false\r\n};\r\n\r\nexport default {\r\n components: { SearchFilters, DatasetCard, ContextCard },\r\n name: \"SideBarContent\",\r\n props: {\r\n visible: {\r\n type: Boolean,\r\n default: false\r\n },\r\n isDrawer: {\r\n type: Boolean,\r\n default: true\r\n },\r\n entry: {\r\n type: Object,\r\n default: () => initial_state\r\n },\r\n contextCardEntry: {\r\n type: Object,\r\n default: undefined\r\n },\r\n envVars: {\r\n type: Object,\r\n default: () => {}\r\n },\r\n firstSearch: {\r\n type: String,\r\n default: \"\"\r\n }\r\n },\r\n data: function() {\r\n return {\r\n ...this.entry,\r\n bodyStyle: {\r\n flex: \"1 1 auto\",\r\n \"flex-flow\": \"column\",\r\n display: \"flex\"\r\n }\r\n };\r\n },\r\n computed: {\r\n // This computed property populates filter data's entry object with $data from this sidebar\r\n filterEntry: function() {\r\n return {\r\n numberOfHits: this.numberOfHits,\r\n filterFacets: this.filter\r\n };\r\n }\r\n },\r\n methods: {\r\n openSearch: function(filter, search='') {\r\n this.searchInput = search;\r\n this.resetPageNavigation();\r\n this.searchAlgolia(filter, search);\r\n if (filter) {\r\n this.filter = [...filter];\r\n this.$refs.filtersRef.setCascader(this.filter);\r\n }\r\n },\r\n addFilter: function(filter) {\r\n this.resetPageNavigation();\r\n if (filter) {\r\n this.$refs.filtersRef.addFilter(filter);\r\n this.$refs.filtersRef.initiateSearch()\r\n }\r\n },\r\n clearSearchClicked: function() {\r\n this.searchInput = \"\";\r\n this.resetPageNavigation();\r\n this.searchAlgolia(this.filters, this.searchInput);\r\n },\r\n searchEvent: function(event = false) {\r\n if (event.keyCode === 13 || event instanceof MouseEvent) {\r\n this.resetPageNavigation();\r\n this.searchAlgolia(this.filters, this.searchInput);\r\n }\r\n },\r\n filterUpdate: function(filters) {\r\n this.filters = [...filters]\r\n this.resetPageNavigation()\r\n this.searchAlgolia(filters, this.searchInput)\r\n this.$emit(\"search-changed\", {\r\n value: this.filter,\r\n type: \"filter-update\"\r\n });\r\n },\r\n searchAlgolia(filters, query=''){\r\n // Algolia search\r\n this.algoliaClient.search(getFilters(filters), query, this.numberPerPage, this.page).then(searchData => {\r\n this.numberOfHits = searchData.total\r\n this.discoverIds = searchData.discoverIds\r\n this.searchSciCrunch({'dois':this.dois})\r\n })\r\n },\r\n filtersLoading: function (val) {\r\n this.loadingCards = val;\r\n },\r\n numberPerPageUpdate: function(val) {\r\n this.numberPerPage = val;\r\n this.pageChange(1);\r\n },\r\n pageChange: function(page) {\r\n this.start = (page - 1) * this.numberPerPage;\r\n this.page = page\r\n this.searchAlgolia(this.filters, this.searchInput, this.numberPerPage, this.page)\r\n },\r\n searchSciCrunch: function(params) {\r\n this.loadingCards = true;\r\n this.results = [];\r\n this.disableCards();\r\n this.$emit(\"search-changed\", { value: this.searchInput, type: \"query-update\" });\r\n this.callSciCrunch(this.envVars.API_LOCATION, params)\r\n .then(result => {\r\n //Only process if the search term is the same as the last search term.\r\n //This avoid old search being displayed.\r\n this.sciCrunchError = false;\r\n this.resultsProcessing(result);\r\n this.$refs.content.style[\"overflow-y\"] = \"scroll\";\r\n this.loadingCards = false;\r\n })\r\n .catch(result => {\r\n if (result.name !== 'AbortError') {\r\n this.loadingCards = false;\r\n this.sciCrunchError = result.message;\r\n }\r\n })\r\n },\r\n disableCards: function() {\r\n if (this.$refs.content) {\r\n this.$refs.content.scroll({ top: 0, behavior: \"smooth\" });\r\n this.$refs.content.style[\"overflow-y\"] = \"hidden\";\r\n }\r\n },\r\n resetPageNavigation: function() {\r\n this.start = 0;\r\n this.page = 1;\r\n },\r\n resultsProcessing: function(data) {\r\n this.lastSearch = this.searchInput;\r\n this.results = [];\r\n let id = 0;\r\n if (data.results.length === 0) {\r\n return;\r\n }\r\n data.results.forEach(element => {\r\n // this.results.push(element) below should be once backend is ready\r\n this.results.push({\r\n name: element.name,\r\n description: element.description,\r\n contributors: element.contributors,\r\n numberSamples: element.sampleSize\r\n ? parseInt(element.sampleSize)\r\n : 0,\r\n numberSubjects: element.subjectSize\r\n ? parseInt(element.subjectSize)\r\n : 0,\r\n updated: element.updated[0].timestamp.split(\"T\")[0],\r\n url: element.uri[0],\r\n datasetId: element.identifier,\r\n organs: (element.organs && element.organs.length > 0)\r\n ? [...new Set(element.organs.map(v => v.name))]\r\n : undefined,\r\n species: element.organisms \r\n ? element.organisms[0].species\r\n ? [...new Set(element.organisms.map((v) =>v.species ? v.species.name : null))]\r\n : undefined\r\n : undefined, // This processing only includes each gender once into 'sexes'\r\n csvFiles: element.csvFiles,\r\n id: id,\r\n doi: element.doi,\r\n publishDate: element.publishDate,\r\n scaffolds: element['abi-scaffold-metadata-file'] ? element['abi-scaffold-metadata-file'] : undefined,\r\n additionalLinks: element.additionalLinks,\r\n simulation: element.additionalLinks\r\n ? element.additionalLinks[0].description == 'Repository'\r\n : false,\r\n s3uri: element.s3uri\r\n });\r\n id++;\r\n });\r\n },\r\n createfilterParams: function(params) {\r\n let p = new URLSearchParams();\r\n //Check if field is array or value\r\n for (const key in params) {\r\n if (Array.isArray(params[key])) {\r\n params[key].forEach(e => {\r\n p.append(key, e);\r\n });\r\n } else {\r\n p.append(key, params[key]);\r\n }\r\n }\r\n return p.toString();\r\n },\r\n callSciCrunch: function(apiLocation, params = {}) {\r\n return new Promise((resolve, reject) => {\r\n // the following controller will abort current search\r\n // if a new one has been started\r\n if (this._controller) this._controller.abort();\r\n this._controller = new AbortController();\r\n let signal = this._controller.signal;\r\n // Add parameters if we are sent them\r\n let fullEndpoint = this.envVars.API_LOCATION + this.searchEndpoint + \"?\" + this.createfilterParams(params);\r\n fetch(fullEndpoint, { signal })\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(data => resolve(data))\r\n .catch(data => reject(data));\r\n });\r\n }\r\n },\r\n mounted: function() {\r\n // initialise algolia\r\n this.algoliaClient = new AlgoliaClient(this.envVars.ALGOLIA_ID, this.envVars.ALGOLIA_KEY, this.envVars.PENNSIEVE_API_LOCATION);\r\n this.algoliaClient.initIndex(this.envVars.ALGOLIA_INDEX);\r\n console.log('Algolia initialised in sidebar')\r\n\r\n // temporarily disable flatmap search since there are no datasets\r\n if (this.firstSearch === \"Flatmap\" || this.firstSearch === \"flatmap\") {\r\n this.openSearch(undefined, '')\r\n } else {\r\n this.openSearch(undefined, '');\r\n }\r\n },\r\n created: function() {\r\n //Create non-reactive local variables\r\n this.searchEndpoint = \"dataset_info/using_multiple_dois/\";\r\n }\r\n};\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style scoped>\r\n.content-card {\r\n height: 100%;\r\n flex-flow: column;\r\n display: flex;\r\n}\r\n\r\n.button {\r\n background-color: #8300bf;\r\n border: #8300bf;\r\n color: white;\r\n}\r\n\r\n.step-item {\r\n font-size: 14px;\r\n margin-bottom: 18px;\r\n text-align: left;\r\n}\r\n\r\n.search-input {\r\n width: 298px !important;\r\n height: 40px;\r\n padding-right: 14px;\r\n align-items: left;\r\n}\r\n\r\n.header {\r\n border: solid 1px #292b66;\r\n background-color: #292b66;\r\n text-align: left;\r\n}\r\n\r\n.pagination {\r\n padding-bottom: 16px;\r\n background-color: white;\r\n text-align: center;\r\n}\r\n\r\n.pagination >>> button {\r\n background-color: white !important;\r\n}\r\n.pagination >>> li {\r\n background-color: white !important;\r\n}\r\n.pagination >>> li.active {\r\n color: #8300bf;\r\n}\r\n\r\n.error-feedback {\r\n font-family: Asap;\r\n font-size: 14px;\r\n font-style: italic;\r\n padding-top: 15px;\r\n}\r\n\r\n.content-card >>> .el-card__header {\r\n background-color: #292b66;\r\n border: solid 1px #292b66;\r\n}\r\n\r\n.content-card >>> .el-card__body {\r\n background-color: #f7faff;\r\n overflow-y: hidden;\r\n}\r\n\r\n.content {\r\n width: 518px;\r\n flex: 1 1 auto;\r\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.06);\r\n border: solid 1px #e4e7ed;\r\n background-color: #ffffff;\r\n overflow-y: scroll;\r\n scrollbar-width: thin;\r\n}\r\n\r\n.scrollbar::-webkit-scrollbar-track {\r\n border-radius: 10px;\r\n background-color: #f5f5f5;\r\n}\r\n\r\n.scrollbar::-webkit-scrollbar {\r\n width: 12px;\r\n right: -12px;\r\n background-color: #f5f5f5;\r\n}\r\n\r\n.scrollbar::-webkit-scrollbar-thumb {\r\n border-radius: 4px;\r\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.06);\r\n background-color: #979797;\r\n}\r\n\r\n>>> .el-input__suffix {\r\n padding-right: 10px;\r\n}\r\n\r\n>>> .my-drawer {\r\n background: rgba(0, 0, 0, 0);\r\n box-shadow: none;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarContent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarContent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SidebarContent.vue?vue&type=template&id=930a8680&scoped=true&\"\nimport script from \"./SidebarContent.vue?vue&type=script&lang=js&\"\nexport * from \"./SidebarContent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SidebarContent.vue?vue&type=style&index=0&id=930a8680&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 \"930a8680\",\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:\"tab-container\"},_vm._l((_vm.tabTitles),function(title){return _c('div',{key:title.id,staticClass:\"title\"},[_c('div',{staticClass:\"title-text-table\",class:{ highlightText : (title.id==_vm.activeId) },on:{\"click\":function($event){return _vm.titleClicked(title.id)}}},[_c('div',{staticClass:\"title-text\"},[_vm._v(\" \"+_vm._s(title.title)+\" \")])])])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"tab-container\">\r\n <div class=\"title\" v-for=\"title in tabTitles\" :key=\"title.id\">\r\n <div class=\"title-text-table\" v-bind:class=\"{ highlightText : (title.id==activeId) }\" v-on:click=\"titleClicked(title.id)\">\r\n <div class=\"title-text\">\r\n {{title.title}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n/* eslint-disable no-alert, no-console */\r\n\r\nexport default {\r\n name: \"Tabs\",\r\n props: {\r\n tabTitles: {\r\n type: Array,\r\n default: () => []\r\n },\r\n activeId: {\r\n type: Number,\r\n default: 1\r\n }\r\n },\r\n methods: {\r\n titleClicked: function(id) {\r\n this.$emit(\"titleClicked\", id);\r\n },\r\n }\r\n\r\n};\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style scoped>\r\n\r\n.tab-container{\r\n height: 28px;\r\n}\r\n\r\n.title {\r\n width: 101px;\r\n height: 28px;\r\n border: solid 1px #dcdfe6;\r\n border-bottom: none;\r\n background-color: white;\r\n display:inline-block;\r\n}\r\n\r\n.title:hover {\r\n cursor: pointer;\r\n}\r\n\r\n.title-text {\r\n text-align:center;\r\n display: table-cell;\r\n vertical-align: middle;\r\n font-size: 14px;\r\n}\r\n\r\n.title-text-table {\r\n display:table;\r\n height: 100%;\r\n width: 100%;\r\n}\r\n\r\n.parent-dialog:hover .title-text {\r\n color:#8300bf;\r\n}\r\n\r\n.highlightText {\r\n color:#8300bf;\r\n}\r\n\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tabs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tabs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Tabs.vue?vue&type=template&id=d68260c4&scoped=true&\"\nimport script from \"./Tabs.vue?vue&type=script&lang=js&\"\nexport * from \"./Tabs.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Tabs.vue?vue&type=style&index=0&id=d68260c4&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 \"d68260c4\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div ref=\"container\">\r\n <div v-if=\"!drawerOpen\" @click=\"toggleDrawer\" class=\"open-tab\">\r\n <i class=\"el-icon-arrow-left\"></i>\r\n </div>\r\n <el-drawer\r\n custom-class=\"my-drawer\"\r\n class=\"side-bar\"\r\n :visible.sync=\"drawerOpen\"\r\n :appendToBody=\"false\"\r\n :modal-append-to-body=\"false\"\r\n size=550\r\n :with-header=\"false\"\r\n :wrapperClosable=\"false\"\r\n :modal=\"false\"\r\n >\r\n <div class=\"box-card\">\r\n <div v-if=\"drawerOpen\" @click=\"close\" class=\"close-tab\">\r\n <i class=\"el-icon-arrow-right\"></i>\r\n </div>\r\n <div class=\"sidebar-container\">\r\n <tabs v-if=\"tabs.length > 1\" :tabTitles=\"tabs\" :activeId=\"activeId\"\r\n @titleClicked=\"tabClicked\"/>\r\n <template v-for=\"tab in tabs\">\r\n <sidebar-content class=\"sidebar-content-container\"\r\n v-show=\"tab.id===activeId\" :contextCardEntry=\"tab.contextCard\"\r\n :envVars=\"envVars\"\r\n v-bind:key=\"tab.id\" :ref=\"tab.id\"\r\n @search-changed=\"searchChanged(tab.id, $event)\"/>\r\n </template>\r\n </div>\r\n </div>\r\n </el-drawer>\r\n </div>\r\n</template>\r\n\r\n\r\n<script>\r\n/* eslint-disable no-alert, no-console */\r\nimport Vue from \"vue\";\r\nimport {\r\n Drawer,\r\n Icon,\r\n} from \"element-ui\";\r\nimport lang from \"element-ui/lib/locale/lang/en\";\r\nimport locale from \"element-ui/lib/locale\";\r\nimport SidebarContent from './SidebarContent.vue';\r\nimport EventBus from './EventBus';\r\nimport Tabs from './Tabs'\r\n\r\nlocale.use(lang);\r\nVue.use(Drawer);\r\nVue.use(Icon);\r\n\r\nvar initial_state = {\r\n searchInput: \"\",\r\n lastSearch: \"\",\r\n results: [],\r\n drawerOpen: false,\r\n numberOfHits: 0,\r\n filter:{},\r\n filterFacet: undefined,\r\n loadingCards: false,\r\n numberPerPage: 10,\r\n page: 1,\r\n pageModel: 1,\r\n start: 0,\r\n hasSearched: false,\r\n sciCrunchError: false\r\n}\r\n\r\nexport default {\r\n components: {SidebarContent, Tabs },\r\n name: \"SideBar\",\r\n props: {\r\n visible: {\r\n type: Boolean,\r\n default: false\r\n },\r\n entry: {\r\n type: Object,\r\n default: () => (initial_state)\r\n },\r\n envVars: {\r\n type: Object,\r\n default: () => {}\r\n },\r\n tabs: {\r\n type: Array,\r\n default: () => [{title:'flatmap', id:1}]\r\n },\r\n activeId: {\r\n type: Number,\r\n default: 1\r\n },\r\n openAtStart: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n data: function () {\r\n return {\r\n ...this.entry,\r\n }\r\n },\r\n methods: {\r\n searchChanged: function (id, data) {\r\n this.$emit(\"search-changed\", {...data, id: id});\r\n },\r\n close: function () {\r\n this.drawerOpen = false;\r\n },\r\n toggleDrawer: function () {\r\n this.drawerOpen = !this.drawerOpen;\r\n },\r\n openSearch: function(facets, query){\r\n this.drawerOpen = true;\r\n // Because refs are in v-for, nextTick is needed here\r\n Vue.nextTick(()=>{this.$refs[this.activeId][0].openSearch(facets, query)})\r\n },\r\n addFilter: function(filter){\r\n this.drawerOpen = true;\r\n // Because refs are in v-for, nextTick is needed here\r\n Vue.nextTick(()=>{this.$refs[this.activeId][0].addFilter(filter)})\r\n },\r\n openNeuronSearch: function(neuron){\r\n this.drawerOpen = true;\r\n // Because refs are in v-for, nextTick is needed here\r\n Vue.nextTick(()=>{this.$refs[this.activeId][0].openSearch('', undefined, 'scicrunch-query-string/', {'field': '*organ.curie', 'curie':neuron})})\r\n },\r\n tabClicked: function(id) {\r\n this.$emit(\"tabClicked\", id);\r\n },\r\n },\r\n created:function() {\r\n this.drawerOpen = this.openAtStart;\r\n },\r\n mounted: function(){\r\n EventBus.$on(\"PopoverActionClick\", (payLoad) => {\r\n this.$emit(\"actionClick\", payLoad);\r\n })\r\n }\r\n};\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style scoped>\r\n\r\n.box-card {\r\n flex: 3;\r\n height: 100%;\r\n overflow: hidden;\r\n pointer-events: auto;\r\n}\r\n\r\n.side-bar{\r\n position: relative;\r\n height: 100%;\r\n pointer-events: none;\r\n}\r\n\r\n.side-bar >>> .el-drawer:focus{\r\n outline:none;\r\n}\r\n\r\n.sidebar-container {\r\n height: 100%;\r\n flex-flow: column;\r\n display: flex;\r\n}\r\n\r\n.open-tab{\r\n width: 20px;\r\n height: 40px;\r\n z-index: 8;\r\n position: absolute;\r\n top: calc(50vh - 80px);\r\n right: 0px;\r\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.06);\r\n border: solid 1px #e4e7ed;\r\n background-color: #F7FAFF;\r\n text-align: center;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n pointer-events: auto;\r\n}\r\n\r\n.el-icon-arrow-left{\r\n font-size: 20px;\r\n padding-top: 8px;\r\n color: #292b66;\r\n}\r\n\r\n.el-icon-arrow-right{\r\n font-size: 20px;\r\n padding-top: 8px;\r\n color: #292b66;\r\n cursor: pointer;\r\n pointer-events: auto;\r\n}\r\n\r\n.close-tab{\r\n float: left;\r\n flex: 1;\r\n width: 20px;\r\n height: 40px;\r\n z-index: 8;\r\n margin-top: calc(50vh - 80px);\r\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.06);\r\n border: solid 1px #e4e7ed;\r\n border-right: 0;\r\n background-color: #F7FAFF;\r\n text-align: center;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n pointer-events: auto;\r\n}\r\n\r\n.box-card {\r\n flex: 3;\r\n height: 100%;\r\n overflow: hidden;\r\n pointer-events: auto;\r\n}\r\n\r\n>>> .my-drawer {\r\n background: rgba(0,0,0,0);\r\n box-shadow: none;\r\n}\r\n\r\n>>> .my-drawer .el-drawer__body {\r\n height: 100%;\r\n}\r\n\r\n.sidebar-content-container {\r\n flex: 1 1 auto;\r\n}\r\n\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SideBar.vue?vue&type=template&id=3f7eb1a5&scoped=true&\"\nimport script from \"./SideBar.vue?vue&type=script&lang=js&\"\nexport * from \"./SideBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SideBar.vue?vue&type=style&index=0&id=3f7eb1a5&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 \"3f7eb1a5\",\n null\n \n)\n\nexport default component.exports","module.exports = require(\"core-js/modules/es.string.includes\");"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://map-side-bar/webpack/universalModuleDefinition","webpack://map-side-bar/webpack/bootstrap","webpack://map-side-bar/external \"element-ui/lib/pagination\"","webpack://map-side-bar/external \"core-js/modules/es.symbol.iterator\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/pagination.css\"","webpack://map-side-bar/external \"core-js/modules/es.parse-int\"","webpack://map-side-bar/external \"element-ui/lib/select\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/select.css\"","webpack://map-side-bar/external \"core-js/modules/es.array.for-each\"","webpack://map-side-bar/external \"core-js/modules/es.array.concat\"","webpack://map-side-bar/external \"core-js/modules/web.dom-collections.iterator\"","webpack://map-side-bar/external \"core-js/modules/es.object.keys\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/link.css\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/button.css\"","webpack://map-side-bar/external \"core-js/modules/web.url\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/loading.css\"","webpack://map-side-bar/external \"element-ui/lib/drawer\"","webpack://map-side-bar/external \"@abi-software/svg-sprite\"","webpack://map-side-bar/./src/components/Tabs.vue?88de","webpack://map-side-bar/external \"core-js/modules/es.object.get-own-property-descriptors\"","webpack://map-side-bar/external \"core-js/modules/es.string.split\"","webpack://map-side-bar/external \"core-js/modules/es.set\"","webpack://map-side-bar/external \"core-js/modules/es.array.filter\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/card.css\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/drawer.css\"","webpack://map-side-bar/external \"core-js/modules/es.symbol.description\"","webpack://map-side-bar/external \"core-js/modules/es.regexp.exec\"","webpack://map-side-bar/external \"element-ui/lib/button\"","webpack://map-side-bar/external \"core-js/modules/es.regexp.to-string\"","webpack://map-side-bar/external \"core-js/modules/es.symbol\"","webpack://map-side-bar/external \"core-js/modules/es.array.slice\"","webpack://map-side-bar/external \"core-js/modules/es.object.get-own-property-descriptor\"","webpack://map-side-bar/external \"element-ui/lib/cascader\"","webpack://map-side-bar/external \"element-ui/lib/locale/lang/en\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/cascader.css\"","webpack://map-side-bar/external \"core-js/modules/es.array.sort\"","webpack://map-side-bar/external \"core-js/modules/es.number.constructor\"","webpack://map-side-bar/external \"regenerator-runtime/runtime\"","webpack://map-side-bar/external \"core-js/modules/es.array.splice\"","webpack://map-side-bar/external \"element-ui/lib/link\"","webpack://map-side-bar/./src/components/ContextCard.vue?2ed7","webpack://map-side-bar/external \"element-ui/lib/locale\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/option.css\"","webpack://map-side-bar/external \"core-js/modules/es.promise\"","webpack://map-side-bar/external \"core-js/modules/es.object.to-string\"","webpack://map-side-bar/./src/components/SidebarContent.vue?e209","webpack://map-side-bar/external \"algoliasearch\"","webpack://map-side-bar/external \"vue\"","webpack://map-side-bar/external \"core-js/modules/es.array.iterator\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/icon.css\"","webpack://map-side-bar/external \"core-js/modules/es.string.iterator\"","webpack://map-side-bar/./src/components/SearchFilters.vue?1d6c","webpack://map-side-bar/external \"core-js/modules/es.map\"","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/base.css\"","webpack://map-side-bar/external \"core-js/modules/es.array.flat\"","webpack://map-side-bar/./assets/missing-image.svg","webpack://map-side-bar/./src/components/SideBar.vue?f7bf","webpack://map-side-bar/external \"element-ui/lib/theme-chalk/input.css\"","webpack://map-side-bar/external \"core-js/modules/es.array.includes\"","webpack://map-side-bar/external \"element-ui/lib/loading\"","webpack://map-side-bar/external \"element-ui/lib/card\"","webpack://map-side-bar/external \"element-ui/lib/icon\"","webpack://map-side-bar/external \"core-js/modules/es.function.name\"","webpack://map-side-bar/external \"core-js/modules/web.dom-collections.for-each\"","webpack://map-side-bar/external \"core-js/modules/es.string.search\"","webpack://map-side-bar/external \"core-js/modules/es.string.replace\"","webpack://map-side-bar/external \"element-ui/lib/option\"","webpack://map-side-bar/external \"core-js/modules/es.array.last-index-of\"","webpack://map-side-bar/external \"current-script-polyfill\"","webpack://map-side-bar/external \"core-js/modules/es.array.from\"","webpack://map-side-bar/external \"element-ui/lib/input\"","webpack://map-side-bar/./src/components/DatasetCard.vue?c612","webpack://map-side-bar/external \"core-js/modules/es.object.entries\"","webpack://map-side-bar/external \"core-js/modules/es.array.unscopables.flat\"","webpack://map-side-bar/external \"core-js/modules/es.array.map\"","webpack://map-side-bar/external \"core-js/modules/es.promise.finally\"","webpack://map-side-bar/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://map-side-bar/./src/components/SideBar.vue?237c","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://map-side-bar/./src/components/SidebarContent.vue?0ac2","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://map-side-bar/./src/components/SearchFilters.vue?3389","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/toArray.js","webpack://map-side-bar/./src/components/Cascader.vue","webpack://map-side-bar/src/components/Cascader.vue","webpack://map-side-bar/./src/components/Cascader.vue?9729","webpack://map-side-bar/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://map-side-bar/./src/components/species-map.js","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://map-side-bar/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://map-side-bar/./src/algolia/algolia.js","webpack://map-side-bar/./src/algolia/utils.js","webpack://map-side-bar/src/components/SearchFilters.vue","webpack://map-side-bar/./src/components/SearchFilters.vue?8079","webpack://map-side-bar/./src/components/SearchFilters.vue","webpack://map-side-bar/./src/components/DatasetCard.vue?b0f2","webpack://map-side-bar/./src/components/EventBus.js","webpack://map-side-bar/./src/components/scaffold-meta-map.js","webpack://map-side-bar/src/components/DatasetCard.vue","webpack://map-side-bar/./src/components/DatasetCard.vue?d021","webpack://map-side-bar/./src/components/DatasetCard.vue","webpack://map-side-bar/./src/components/ContextCard.vue?5b99","webpack://map-side-bar/src/components/ContextCard.vue","webpack://map-side-bar/./src/components/ContextCard.vue?667e","webpack://map-side-bar/./src/components/ContextCard.vue","webpack://map-side-bar/src/components/SidebarContent.vue","webpack://map-side-bar/./src/components/SidebarContent.vue?7e01","webpack://map-side-bar/./src/components/SidebarContent.vue","webpack://map-side-bar/./src/components/Tabs.vue?6261","webpack://map-side-bar/src/components/Tabs.vue","webpack://map-side-bar/./src/components/Tabs.vue?3d38","webpack://map-side-bar/./src/components/Tabs.vue","webpack://map-side-bar/src/components/SideBar.vue","webpack://map-side-bar/./src/components/SideBar.vue?b259","webpack://map-side-bar/./src/components/SideBar.vue","webpack://map-side-bar/external \"core-js/modules/es.string.includes\""],"names":["root","factory","exports","module","define","amd","self","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","require","window","document","currentScript","src","match","render","_vm","_h","$createElement","_c","_self","ref","drawerOpen","_e","staticClass","on","toggleDrawer","attrs","$event","close","tabs","length","activeId","tabClicked","_l","tab","directives","rawName","id","expression","refInFor","contextCard","envVars","searchChanged","staticRenderFns","_defineProperty","obj","configurable","writable","bodyStyle","slot","contextCardEntry","clearSearchClicked","nativeOn","searchEvent","model","callback","$$v","searchInput","_v","filterEntry","filterUpdate","numberPerPageUpdate","filtersLoading","results","loadingCards","sciCrunchError","_s","page","numberPerPage","numberOfHits","pageChange","_arrayWithoutHoles","arr","Array","isArray","arr2","_iterableToArray","iter","iterator","toString","from","_nonIterableSpread","TypeError","_toConsumableArray","arrayWithoutHoles","iterableToArray","nonIterableSpread","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","_asyncToGenerator","fn","args","arguments","apply","err","undefined","options","props","cascadeEvent","cascadeExpandChange","tagsChangedCallback","cascadeSelected","numberShownChanged","numberShown","item","numberOfResultsText","_arrayWithHoles","_nonIterableRest","_toArray","arrayWithHoles","nonIterableRest","extends","methods","computePresentTags","customNodes","tags","push","genTag","first","restCount","collapseTags","text","closable","rest","forEach","checkedNodes","presentTags","$emit","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","component","_classCallCheck","instance","Constructor","_defineProperties","target","descriptor","_createClass","protoProps","staticProps","AlgoliaClient","algoliaId","algoliaKey","PENNSIEVE_API_LOCATION","client","algoliasearch","ALGOLIA_INDEX","index","initIndex","propPathMapping","map","Map","entries","facetPropPaths","keys","facetData","facetId","search","sortFacetValuesBy","facets","response","facetPropPath","children","responseFacets","responseFacetChildren","facet","label","discoverId","fetch","json","dataset","version","doi","discoverIds","promiseList","_discoverAllDois","all","values","flat","filter","query","hitsperPage","hitsPerPage","filters","searchData","items","hits","total","nbHits","pennsieve","identifier","dois","curie","split","facetPropPathMapping","getFilters","selectedFacetArray","f","removeShowAllFacets","facetsToOr","substring","lastIndexOf","facetArray","txt","charAt","toUpperCase","slice","capitalise","components","CustomCascader","MapSvgIcon","MapSvgSpriteColor","entry","type","default","data","cascaderIsReady","previousShowAllChecked","species","gender","organ","datasets","showFilters","showFiltersText","numberDatasetsShown","computed","createCascaderItemValue","term","populateCascader","event","showAllEventModifier","setCascader","makeCascadeLabelsClickable","hasShowAll","facetMaps","showAll","splice","modifiedEvent","sort","a","b","__expandItem__","parseInt","updatePreviousShowAllChecked","element","toLowerCase","includes","filterFacets","addFilter","initiateSearch","checkShowAllBoxes","$nextTick","mounted","algoliaClient","class","expanded","thumbnail","openDataset","cardClicked","contributors","publishDate","publishYear","samples","simulation","openScaffold","openPlot","openRepository","openSimulation","cardOverflow","expand","EventBus","Vue","77","meta_file","title","description","bannerImage","image","76","32","string","replace","dataLocation","hasCSVFile","lastName","numberSamples","numberSubjects","organs","open","additionalLinks","el","xmlhttp","apiLocation","setRequestHeader","onreadystatechange","readyState","status","url","JSON","parse","responseText","uri","send","stringify","isSedmlResource","resource","getScaffoldPath","path","getFileFromPath","isOverflown","clientHeight","scrollHeight","splitDOI","getBanner","fullName","$refs","card","updated","watch","showDetails","padding","display","width","staticStyle","handleErrors","initial_state","lastSearch","pageModel","start","hasSearched","visible","Boolean","isDrawer","firstSearch","String","flex","openSearch","resetPageNavigation","searchAlgolia","filtersRef","keyCode","MouseEvent","val","searchSciCrunch","disableCards","callSciCrunch","API_LOCATION","params","content","scroll","style","resultsProcessing","sampleSize","subjectSize","timestamp","datasetId","organisms","csvFiles","scaffolds","s3uri","createfilterParams","append","e","fullEndpoint","console","log","created","searchEndpoint","highlightText","titleClicked","tabTitles","Number","openAtStart","openNeuronSearch"],"mappings":"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","file":"map-side-bar.umd.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"map-side-bar\"] = factory();\n\telse\n\t\troot[\"map-side-bar\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fae3\");\n","module.exports = require(\"element-ui/lib/pagination\");","module.exports = require(\"core-js/modules/es.symbol.iterator\");","module.exports = require(\"element-ui/lib/theme-chalk/pagination.css\");","module.exports = require(\"core-js/modules/es.parse-int\");","module.exports = require(\"element-ui/lib/select\");","module.exports = require(\"element-ui/lib/theme-chalk/select.css\");","module.exports = require(\"core-js/modules/es.array.for-each\");","module.exports = require(\"core-js/modules/es.array.concat\");","module.exports = require(\"core-js/modules/web.dom-collections.iterator\");","module.exports = require(\"core-js/modules/es.object.keys\");","module.exports = require(\"element-ui/lib/theme-chalk/link.css\");","module.exports = require(\"element-ui/lib/theme-chalk/button.css\");","module.exports = require(\"core-js/modules/web.url\");","module.exports = require(\"element-ui/lib/theme-chalk/loading.css\");","module.exports = require(\"element-ui/lib/drawer\");","module.exports = require(\"@abi-software/svg-sprite\");","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tabs.vue?vue&type=style&index=0&id=d68260c4&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tabs.vue?vue&type=style&index=0&id=d68260c4&scoped=true&lang=css&\"","module.exports = require(\"core-js/modules/es.object.get-own-property-descriptors\");","module.exports = require(\"core-js/modules/es.string.split\");","module.exports = require(\"core-js/modules/es.set\");","module.exports = require(\"core-js/modules/es.array.filter\");","module.exports = require(\"element-ui/lib/theme-chalk/card.css\");","module.exports = require(\"element-ui/lib/theme-chalk/drawer.css\");","module.exports = require(\"core-js/modules/es.symbol.description\");","module.exports = require(\"core-js/modules/es.regexp.exec\");","module.exports = require(\"element-ui/lib/button\");","module.exports = require(\"core-js/modules/es.regexp.to-string\");","module.exports = require(\"core-js/modules/es.symbol\");","module.exports = require(\"core-js/modules/es.array.slice\");","module.exports = require(\"core-js/modules/es.object.get-own-property-descriptor\");","module.exports = require(\"element-ui/lib/cascader\");","module.exports = require(\"element-ui/lib/locale/lang/en\");","module.exports = require(\"element-ui/lib/theme-chalk/cascader.css\");","module.exports = require(\"core-js/modules/es.array.sort\");","module.exports = require(\"core-js/modules/es.number.constructor\");","module.exports = require(\"regenerator-runtime/runtime\");","module.exports = require(\"core-js/modules/es.array.splice\");","module.exports = require(\"element-ui/lib/link\");","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextCard.vue?vue&type=style&index=0&id=262a6750&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextCard.vue?vue&type=style&index=0&id=262a6750&scoped=true&lang=css&\"","module.exports = require(\"element-ui/lib/locale\");","module.exports = require(\"element-ui/lib/theme-chalk/option.css\");","module.exports = require(\"core-js/modules/es.promise\");","module.exports = require(\"core-js/modules/es.object.to-string\");","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarContent.vue?vue&type=style&index=0&id=5f42cbc3&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarContent.vue?vue&type=style&index=0&id=5f42cbc3&scoped=true&lang=css&\"","module.exports = require(\"algoliasearch\");","module.exports = require(\"vue\");","module.exports = require(\"core-js/modules/es.array.iterator\");","module.exports = require(\"element-ui/lib/theme-chalk/icon.css\");","module.exports = require(\"core-js/modules/es.string.iterator\");","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilters.vue?vue&type=style&index=0&id=52e74ac9&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilters.vue?vue&type=style&index=0&id=52e74ac9&scoped=true&lang=css&\"","module.exports = require(\"core-js/modules/es.map\");","module.exports = require(\"element-ui/lib/theme-chalk/base.css\");","module.exports = require(\"core-js/modules/es.array.flat\");","module.exports = __webpack_public_path__ + \"img/missing-image.1878d8b8.svg\";","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=style&index=0&id=3f7eb1a5&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=style&index=0&id=3f7eb1a5&scoped=true&lang=css&\"","module.exports = require(\"element-ui/lib/theme-chalk/input.css\");","module.exports = require(\"core-js/modules/es.array.includes\");","module.exports = require(\"element-ui/lib/loading\");","module.exports = require(\"element-ui/lib/card\");","module.exports = require(\"element-ui/lib/icon\");","module.exports = require(\"core-js/modules/es.function.name\");","module.exports = require(\"core-js/modules/web.dom-collections.for-each\");","module.exports = require(\"core-js/modules/es.string.search\");","module.exports = require(\"core-js/modules/es.string.replace\");","module.exports = require(\"element-ui/lib/option\");","module.exports = require(\"core-js/modules/es.array.last-index-of\");","module.exports = require(\"current-script-polyfill\");","module.exports = require(\"core-js/modules/es.array.from\");","module.exports = require(\"element-ui/lib/input\");","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatasetCard.vue?vue&type=style&index=0&id=0e9538ce&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatasetCard.vue?vue&type=style&index=0&id=0e9538ce&scoped=true&lang=css&\"","module.exports = require(\"core-js/modules/es.object.entries\");","module.exports = require(\"core-js/modules/es.array.unscopables.flat\");","module.exports = require(\"core-js/modules/es.array.map\");","module.exports = require(\"core-js/modules/es.promise.finally\");","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n require('current-script-polyfill')\n }\n\n var i\n if ((i = window.document.currentScript) && (i = i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_public_path__ = i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"container\"},[(!_vm.drawerOpen)?_c('div',{staticClass:\"open-tab\",on:{\"click\":_vm.toggleDrawer}},[_c('i',{staticClass:\"el-icon-arrow-left\"})]):_vm._e(),_c('el-drawer',{staticClass:\"side-bar\",attrs:{\"custom-class\":\"my-drawer\",\"visible\":_vm.drawerOpen,\"appendToBody\":false,\"modal-append-to-body\":false,\"size\":\"550\",\"with-header\":false,\"wrapperClosable\":false,\"modal\":false},on:{\"update:visible\":function($event){_vm.drawerOpen=$event}}},[_c('div',{staticClass:\"box-card\"},[(_vm.drawerOpen)?_c('div',{staticClass:\"close-tab\",on:{\"click\":_vm.close}},[_c('i',{staticClass:\"el-icon-arrow-right\"})]):_vm._e(),_c('div',{staticClass:\"sidebar-container\"},[(_vm.tabs.length > 1)?_c('tabs',{attrs:{\"tabTitles\":_vm.tabs,\"activeId\":_vm.activeId},on:{\"titleClicked\":_vm.tabClicked}}):_vm._e(),_vm._l((_vm.tabs),function(tab){return [_c('sidebar-content',{directives:[{name:\"show\",rawName:\"v-show\",value:(tab.id===_vm.activeId),expression:\"tab.id===activeId\"}],key:tab.id,ref:tab.id,refInFor:true,staticClass:\"sidebar-content-container\",attrs:{\"contextCardEntry\":tab.contextCard,\"envVars\":_vm.envVars},on:{\"search-changed\":function($event){return _vm.searchChanged(tab.id, $event)}}})]})],2)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-card',{staticClass:\"content-card\",attrs:{\"body-style\":_vm.bodyStyle}},[_c('div',{staticClass:\"header\",attrs:{\"slot\":\"header\"},slot:\"header\"},[(_vm.contextCardEntry)?_c('context-card',{attrs:{\"entry\":_vm.contextCardEntry}}):_vm._e(),_c('el-input',{staticClass:\"search-input\",attrs:{\"placeholder\":\"Search\",\"clearable\":\"\"},on:{\"clear\":_vm.clearSearchClicked},nativeOn:{\"keyup\":function($event){return _vm.searchEvent($event)}},model:{value:(_vm.searchInput),callback:function ($$v) {_vm.searchInput=$$v},expression:\"searchInput\"}}),_c('el-button',{staticClass:\"button\",on:{\"click\":_vm.searchEvent}},[_vm._v(\"Search\")])],1),_c('SearchFilters',{ref:\"filtersRef\",staticClass:\"filters\",attrs:{\"entry\":_vm.filterEntry,\"envVars\":_vm.envVars},on:{\"filterResults\":_vm.filterUpdate,\"numberPerPage\":_vm.numberPerPageUpdate,\"loading\":_vm.filtersLoading}}),_c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loadingCards),expression:\"loadingCards\"}],ref:\"content\",staticClass:\"content scrollbar\"},[(_vm.results.length === 0 && !_vm.loadingCards && !_vm.sciCrunchError)?_c('div',{staticClass:\"error-feedback\"},[_vm._v(\"No results found - Please change your search / filter criteria.\")]):_vm._e(),(_vm.sciCrunchError)?_c('div',{staticClass:\"error-feedback\"},[_vm._v(_vm._s(_vm.sciCrunchError))]):_vm._e(),_vm._l((_vm.results),function(o){return _c('div',{key:o.id,staticClass:\"step-item\"},[_c('DatasetCard',{attrs:{\"entry\":o,\"envVars\":_vm.envVars}})],1)}),_c('el-pagination',{staticClass:\"pagination\",attrs:{\"current-page\":_vm.page,\"hide-on-single-page\":\"\",\"large\":\"\",\"layout\":\"prev, pager, next\",\"page-size\":_vm.numberPerPage,\"total\":_vm.numberOfHits},on:{\"update:currentPage\":function($event){_vm.page=$event},\"update:current-page\":function($event){_vm.page=$event},\"current-change\":_vm.pageChange}})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}","export default function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"filters\"},[_c('map-svg-sprite-color'),_c('transition',{attrs:{\"name\":\"el-zoom-in-top\"}},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showFilters),expression:\"showFilters\"}],staticClass:\"search-filters transition-box\"},[_c('custom-cascader',{ref:\"cascader\",staticClass:\"cascader\",attrs:{\"placeholder\":\"\",\"collapse-tags\":true,\"options\":_vm.options,\"props\":_vm.props,\"show-all-levels\":false,\"append-to-body\":false},on:{\"change\":function($event){return _vm.cascadeEvent($event)},\"expand-change\":_vm.cascadeExpandChange,\"tags-changed\":_vm.tagsChangedCallback},model:{value:(_vm.cascadeSelected),callback:function ($$v) {_vm.cascadeSelected=$$v},expression:\"cascadeSelected\"}}),(_vm.showFiltersText)?_c('div',{staticClass:\"filter-default-value\"},[_c('map-svg-icon',{staticClass:\"filter-icon-inside\",attrs:{\"icon\":\"noun-filter\"}}),_vm._v(\"Apply Filters \")],1):_vm._e()],1)]),_c('el-select',{staticClass:\"number-shown-select\",attrs:{\"placeholder\":\"10\"},on:{\"change\":function($event){return _vm.numberShownChanged($event)}},model:{value:(_vm.numberShown),callback:function ($$v) {_vm.numberShown=$$v},expression:\"numberShown\"}},_vm._l((_vm.numberDatasetsShown),function(item){return _c('el-option',{key:item,attrs:{\"label\":item,\"value\":item}})}),1),_c('span',{staticClass:\"dataset-results-feedback\"},[_vm._v(_vm._s(this.numberOfResultsText))])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || nonIterableRest();\n}","var render, staticRenderFns\nimport script from \"./Cascader.vue?vue&type=script&lang=js&\"\nexport * from \"./Cascader.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","<script>\r\n/* eslint-disable no-alert, no-console */\r\nimport { Cascader } from \"element-ui\";\r\n\r\nexport default {\r\n name: 'CustomCascader',\r\n extends: Cascader,\r\n methods:{\r\n //Modify this internal function to disable Show all tags\r\n computePresentTags() {\r\n const { isDisabled, leafOnly, showAllLevels, separator, collapseTags } = this;\r\n const checkedNodes = this.getCheckedNodes(leafOnly);\r\n const tags = [];\r\n const genTag = node => ({\r\n node,\r\n key: node.uid,\r\n text: node.getText(showAllLevels, separator),\r\n hitState: false,\r\n closable: !isDisabled && !node.isDisabled\r\n });\r\n let customNodes = checkedNodes.filter(node =>\r\n {\r\n return !(node.getText(showAllLevels, separator).includes(\"Show all\"));\r\n }\r\n );\r\n if (customNodes.length) {\r\n const [first, ...rest] = customNodes;\r\n const restCount = rest.length;\r\n tags.push(genTag(first));\r\n if (restCount) {\r\n if (collapseTags) {\r\n tags.push({\r\n key: -1,\r\n text: `+ ${restCount}`,\r\n closable: false\r\n });\r\n } else {\r\n rest.forEach(node => tags.push(genTag(node)));\r\n }\r\n }\r\n }\r\n this.checkedNodes = checkedNodes;\r\n this.presentTags = tags;\r\n this.$emit(\"tags-changed\", this.presentTags);\r\n }\r\n }\r\n}\r\n\r\n</script>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Cascader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Cascader.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","export default {\r\n 'homo sapiens': 'Human',\r\n 'rattus norvegicus': 'Rat',\r\n 'mus musculus': 'Mouse',\r\n 'sus scrofa domesticus': 'Pig',\r\n 'sus scrofa': 'Boar',\r\n 'felis catus': 'Cat'\r\n}\r\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","/* eslint-disable no-alert, no-console */\r\nimport algoliasearch from 'algoliasearch'\r\n\r\n// export `createAlgoliaClient` to use it in page components\r\nexport class AlgoliaClient {\r\n constructor(algoliaId, algoliaKey, PENNSIEVE_API_LOCATION='https://api.pennsieve.io') {\r\n this.client = algoliasearch(\r\n algoliaId,\r\n algoliaKey\r\n )\r\n this.PENNSIEVE_API_LOCATION = PENNSIEVE_API_LOCATION\r\n }\r\n initIndex(ALGOLIA_INDEX) {\r\n this.index = this.client.initIndex(ALGOLIA_INDEX);\r\n }\r\n\r\n getAlgoliaFacets (propPathMapping) {\r\n const map = new Map(Object.entries(propPathMapping));\r\n const facetPropPaths = Array.from(map.keys() );\r\n let facetData = []\r\n let facetId = 0\r\n return this.index\r\n .search('', {\r\n sortFacetValuesBy: 'alpha',\r\n facets: facetPropPaths\r\n })\r\n .then(response => {\r\n facetPropPaths.map((facetPropPath) => {\r\n var children = []\r\n const responseFacets = response.facets\r\n if (responseFacets === undefined) {return}\r\n const responseFacetChildren =\r\n responseFacets[facetPropPath] == undefined\r\n ? {}\r\n : responseFacets[facetPropPath]\r\n Object.keys(responseFacetChildren).map(facet => {\r\n children.push({\r\n label: facet,\r\n id: facetId++,\r\n facetPropPath: facetPropPath\r\n })\r\n })\r\n if (children.length > 0) {\r\n facetData.push({\r\n label: map.get(facetPropPath),\r\n id: facetId++,\r\n children: children,\r\n key: facetPropPath\r\n })\r\n }\r\n })\r\n return facetData\r\n })\r\n }\r\n \r\n // Returns all DOIs of all versions for a given discover dataset\r\n _discoverAllDois (discoverId, PENNSIEVE_API_LOCATION='https://api.pennsieve.io') {\r\n return new Promise(resolve => {\r\n fetch(`${PENNSIEVE_API_LOCATION}/discover/datasets/${discoverId}/versions`).then(r=>r.json()).then(dataset => {\r\n resolve(dataset.map(version => version.doi))\r\n })\r\n })\r\n }\r\n \r\n // Get all dois given a list of discoverIds\r\n _expandDois (discoverIds, PENNSIEVE_API_LOCATION='https://api.pennsieve.io') {\r\n return new Promise(resolve => {\r\n let promiseList = discoverIds.map(discoverId => this._discoverAllDois(discoverId, PENNSIEVE_API_LOCATION))\r\n Promise.all(promiseList).then((values) => {\r\n resolve(values.flat())\r\n });\r\n })\r\n }\r\n \r\n /**\r\n * Get Search results\r\n * This is using fetch from the Algolia API\r\n */\r\n search (filter, query='', hitsperPage=10, page=1) {\r\n return new Promise(resolve => {\r\n this.index\r\n .search(query, {\r\n facets:['*'],\r\n hitsPerPage: hitsperPage,\r\n page: page-1,\r\n filters: filter\r\n })\r\n .then(response => {\r\n let searchData = {\r\n items: response.hits,\r\n total: response.nbHits,\r\n discoverIds: response.hits.map(r=>r.pennsieve.identifier),\r\n dois: response.hits.map(r=>r.item.curie.split(':')[1])\r\n }\r\n resolve(searchData)\r\n })\r\n })\r\n }\r\n}\r\n","/* eslint-disable no-alert, no-console */\r\n\r\n// Mapping between display categories and their Algolia index property path\r\n// Used for populating the Dataset Search Results facet menu dynamically\r\nexport const facetPropPathMapping = {\r\n 'anatomy.organ.name' : 'Anatomical Structure',\r\n 'organisms.primary.species.name' : 'Species',\r\n 'item.modalities.keyword' : 'Experimental Approach',\r\n 'attributes.subject.sex.value' : 'Sex',\r\n 'attributes.subject.ageCategory.value' : 'Age Categories',\r\n}\r\n\r\n/* Returns filter for searching algolia. All facets of the same category are joined with OR,\r\n * and each of those results is then joined with an AND.\r\n * i.e. (color:blue OR color:red) AND (shape:circle OR shape:red) */\r\nexport function getFilters(selectedFacetArray=undefined) {\r\n \r\n // return all datasets if no filter\r\n if (selectedFacetArray === undefined) {\r\n return 'NOT item.published.status:embargo'\r\n }\r\n\r\n // Switch the 'term' attribute to 'label' if 'label' does not exist \r\n selectedFacetArray.forEach(f=>f.label=f.facet)\r\n \r\n\r\n let facets = removeShowAllFacets(selectedFacetArray)\r\n\r\n let filters = \"NOT item.published.status:embargo\";\r\n filters = `(${filters}) AND `;\r\n\r\n const facetPropPaths = Object.keys(facetPropPathMapping);\r\n facetPropPaths.map((facetPropPath) => {\r\n const facetsToOr = facets.filter(\r\n (facet) => facet.facetPropPath == facetPropPath\r\n );\r\n var filter = \"\";\r\n facetsToOr.map((facet) => {\r\n filter += `\"${facetPropPath}\":\"${facet.label}\" OR `;\r\n });\r\n if (filter == \"\") {\r\n return;\r\n }\r\n filter = `(${filter.substring(0, filter.lastIndexOf(\" OR \"))})`;\r\n filters += `${filter} AND `;\r\n });\r\n return filters.substring(0, filters.lastIndexOf(\" AND \"));\r\n}\r\n\r\nfunction removeShowAllFacets(facetArray){\r\n return facetArray.filter( f => f.label !== 'Show all')\r\n}","<template>\r\n <div class=\"filters\">\r\n <map-svg-sprite-color />\r\n <transition name=\"el-zoom-in-top\">\r\n <span v-show=\"showFilters\" class=\"search-filters transition-box\">\r\n <custom-cascader\r\n class=\"cascader\"\r\n ref=\"cascader\"\r\n v-model=\"cascadeSelected\"\r\n placeholder\r\n :collapse-tags=\"true\"\r\n :options=\"options\"\r\n :props=\"props\"\r\n @change=\"cascadeEvent($event)\"\r\n @expand-change=\"cascadeExpandChange\"\r\n :show-all-levels=\"false\"\r\n :append-to-body=\"false\"\r\n @tags-changed=\"tagsChangedCallback\"\r\n ></custom-cascader>\r\n <div v-if=\"showFiltersText\" class=\"filter-default-value\">\r\n <map-svg-icon icon=\"noun-filter\" class=\"filter-icon-inside\" />Apply\r\n Filters\r\n </div>\r\n </span>\r\n </transition>\r\n\r\n <el-select\r\n class=\"number-shown-select\"\r\n v-model=\"numberShown\"\r\n placeholder=\"10\"\r\n @change=\"numberShownChanged($event)\"\r\n >\r\n <el-option\r\n v-for=\"item in numberDatasetsShown\"\r\n :key=\"item\"\r\n :label=\"item\"\r\n :value=\"item\"\r\n ></el-option>\r\n </el-select>\r\n <span class=\"dataset-results-feedback\">{{ this.numberOfResultsText }}</span>\r\n </div>\r\n</template>\r\n\r\n\r\n<script>\r\n/* eslint-disable no-alert, no-console */\r\nimport Vue from \"vue\";\r\nimport { Option, Select } from \"element-ui\";\r\nimport CustomCascader from \"./Cascader\";\r\nimport lang from \"element-ui/lib/locale/lang/en\";\r\nimport locale from \"element-ui/lib/locale\";\r\nimport speciesMap from \"./species-map\";\r\nimport { MapSvgIcon, MapSvgSpriteColor } from \"@abi-software/svg-sprite\";\r\n\r\nimport {AlgoliaClient} from \"../algolia/algolia.js\";\r\nimport { facetPropPathMapping } from \"../algolia/utils.js\";\r\n\r\nlocale.use(lang);\r\nVue.use(Option);\r\nVue.use(Select);\r\n\r\nconst capitalise = function (txt) {\r\n return txt.charAt(0).toUpperCase() + txt.slice(1);\r\n};\r\n\r\nconst convertReadableLabel = function (original) {\r\n const name = original.toLowerCase();\r\n if (speciesMap[name]) {\r\n return capitalise(speciesMap[name]);\r\n } else {\r\n return capitalise(name);\r\n }\r\n};\r\n\r\nexport default {\r\n name: \"SearchFilters\",\r\n components: {\r\n CustomCascader,\r\n MapSvgIcon,\r\n MapSvgSpriteColor,\r\n },\r\n props: {\r\n /**\r\n * Object containing information for\r\n * the required viewing.\r\n */\r\n entry: Object,\r\n envVars: {\r\n type: Object,\r\n default: ()=>{}\r\n },\r\n },\r\n data: function () {\r\n return {\r\n cascaderIsReady: false,\r\n previousShowAllChecked: {\r\n species: false,\r\n gender: false,\r\n organ: false,\r\n datasets: false,\r\n },\r\n showFilters: true,\r\n showFiltersText: true,\r\n cascadeSelected: [],\r\n numberShown: 10,\r\n filters: [],\r\n facets: [\"Species\", \"Gender\", \"Organ\", \"Datasets\"],\r\n numberDatasetsShown: [\"10\", \"20\", \"50\"],\r\n props: { multiple: true },\r\n options: [\r\n {\r\n value: \"Species\",\r\n label: \"Species\",\r\n children: [{}],\r\n },\r\n ],\r\n };\r\n },\r\n computed: {\r\n numberOfResultsText: function () {\r\n return `${this.entry.numberOfHits} results | Showing`;\r\n },\r\n },\r\n methods: {\r\n createCascaderItemValue: function (term, facet) {\r\n if (facet) return term + \"/\" + facet;\r\n else return term;\r\n },\r\n populateCascader: function () {\r\n return new Promise((resolve) => {\r\n // Algolia facet serach\r\n this.algoliaClient.getAlgoliaFacets(facetPropPathMapping)\r\n .then((data) => {\r\n this.facets = data;\r\n this.options = data;\r\n\r\n // create top level of options in cascader\r\n this.options.forEach((facet, i) => {\r\n this.options[i].label = convertReadableLabel(facet.label);\r\n this.options[i].value = this.createCascaderItemValue(\r\n facet.key,\r\n undefined\r\n );\r\n\r\n // put \"Show all\" as first option\r\n this.options[i].children.unshift({\r\n value: this.createCascaderItemValue(\"Show all\"),\r\n label: \"Show all\",\r\n });\r\n\r\n // populate second level of options \r\n this.options[i].children.forEach((facetItem, j) => {\r\n this.options[i].children[j].label = convertReadableLabel(\r\n facetItem.label\r\n );\r\n this.options[i].children[j].value =\r\n this.createCascaderItemValue(facet.label, facetItem.label);\r\n });\r\n });\r\n })\r\n .finally(() => {\r\n resolve();\r\n });\r\n });\r\n },\r\n tagsChangedCallback: function (presentTags) {\r\n if (presentTags.length > 0) {\r\n this.showFiltersText = false;\r\n } else {\r\n this.showFiltersText = true;\r\n }\r\n },\r\n // cascadeEvent: initiate searches based off cascader changes\r\n cascadeEvent: function (event) {\r\n if (event) {\r\n // Check for show all in selected cascade options\r\n event = this.showAllEventModifier(event);\r\n\r\n // Move results from arrays to object\r\n let filters = event.filter( selection => selection !== undefined).map( fs => ({\r\n facetPropPath: fs[0], \r\n facet: fs[1].split(\"/\")[1],\r\n term: fs[1].split(\"/\")[0], \r\n }))\r\n\r\n this.$emit('loading', true) // let sidebarcontent wait for the requests\r\n\r\n this.$emit(\"filterResults\", filters); // emit filters for apps above sidebar\r\n this.setCascader(filters); //update our cascader v-model if we modified the event\r\n this.makeCascadeLabelsClickable();\r\n }\r\n },\r\n // showAllEventModifier: Modifies a cascade event to unlick all selections in category if \"show all\" is clicked. Also unchecks \"Show all\" if any secection is clicked\r\n // *NOTE* Does NOT remove 'Show all' selections from showing in 'cascadeSelected'\r\n showAllEventModifier: function (event) {\r\n // check if show all is in the cascader checked option list\r\n let hasShowAll = event\r\n .map((ev) => (ev ? ev[1].toLowerCase().includes(\"show all\") : false))\r\n .includes(true);\r\n // remove all selected options below the show all if checked\r\n if (hasShowAll) {\r\n let modifiedEvent = [];\r\n let facetMaps = {};\r\n //catagorised different facet items\r\n for (const i in event) {\r\n if (facetMaps[event[i][0]] === undefined) facetMaps[event[i][0]] = [];\r\n facetMaps[event[i][0]].push(event[i]);\r\n }\r\n // go through each facets\r\n for (const facet in facetMaps) {\r\n let showAll = undefined;\r\n // Find the show all item if any\r\n for (let i = facetMaps[facet].length - 1; i >= 0; i--) {\r\n if (facetMaps[facet][i][1].toLowerCase().includes(\"show all\")) {\r\n //seperate the showAll item and the rest\r\n showAll = facetMaps[facet].splice(i, 1)[0];\r\n break;\r\n }\r\n }\r\n if (showAll) {\r\n if (this.previousShowAllChecked[facet]) {\r\n //Unset the show all if it was present previously\r\n //and there are other items\r\n if (facetMaps[facet].length > 0)\r\n modifiedEvent.push(...facetMaps[facet]);\r\n else modifiedEvent.push(showAll);\r\n } else {\r\n //showAll is turned on\r\n modifiedEvent.push(showAll);\r\n }\r\n } else {\r\n modifiedEvent.push(...facetMaps[facet]);\r\n }\r\n }\r\n //Make sure the expanded item are sorted first.\r\n return modifiedEvent.sort((a, b) => {\r\n if (this.__expandItem__) {\r\n if (a[0] == this.__expandItem__) {\r\n if (b[0] == this.__expandItem__) {\r\n return 0;\r\n } else {\r\n return -1;\r\n }\r\n } else if (b[0] == this.__expandItem__) {\r\n if (a[0] == this.__expandItem__) {\r\n return 0;\r\n } else {\r\n return 1;\r\n }\r\n } else {\r\n return 0;\r\n }\r\n } else return 0;\r\n });\r\n }\r\n return event;\r\n },\r\n cascadeExpandChange: function (event) {\r\n //work around as the expand item may change on modifying the cascade props\r\n this.__expandItem__ = event;\r\n this.makeCascadeLabelsClickable();\r\n },\r\n numberShownChanged: function (event) {\r\n this.$emit(\"numberPerPage\", parseInt(event));\r\n },\r\n updatePreviousShowAllChecked: function (options) {\r\n //Reset the states\r\n for (const facet in this.previousShowAllChecked) {\r\n this.previousShowAllChecked[facet] = false;\r\n }\r\n options.forEach((element) => {\r\n if (element[1].toLowerCase().includes(\"show all\"))\r\n this.previousShowAllChecked[element[0]] = true;\r\n });\r\n },\r\n // setCascader: Clears previous selections and takes in an array of facets to select: filterFacets\r\n // facets are in the form:\r\n // {\r\n // facetPropPath: 'anatomy.organ.name',\r\n // term: 'Sex',\r\n // facet: 'Male'\r\n // }\r\n setCascader: function (filterFacets) {\r\n //Do not set the value unless it is ready\r\n if (this.cascaderIsReady && filterFacets && filterFacets.length != 0) {\r\n this.cascadeSelected = filterFacets.map(e => {\r\n return [\r\n e.facetPropPath,\r\n this.createCascaderItemValue(capitalise(e.term), e.facet),\r\n ]\r\n });\r\n this.updatePreviousShowAllChecked(this.cascadeSelected);\r\n }\r\n },\r\n addFilter: function (filter) {\r\n //Do not set the value unless it is ready\r\n if (this.cascaderIsReady && filter) {\r\n this.cascadeSelected.filter(f=>f.term != filter.term)\r\n this.cascadeSelected.push([filter.facetPropPath, this.createCascaderItemValue(filter.term, filter.facet)])\r\n }\r\n },\r\n initiateSearch: function() {\r\n this.cascadeEvent(this.cascadeSelected)\r\n },\r\n // checkShowAllBoxes: Checks each 'Show all' cascade option by using the setCascader function\r\n checkShowAllBoxes: function(){\r\n this.setCascader(\r\n this.options.map(option => {\r\n return {\r\n facetPropPath: option.value,\r\n term: option.label,\r\n facet: 'Show all'\r\n }\r\n })\r\n )\r\n },\r\n makeCascadeLabelsClickable: function () {\r\n // Next tick allows the cascader menu to change\r\n this.$nextTick(() => {\r\n this.$refs.cascader.$el\r\n .querySelectorAll(\".el-cascader-node__label\")\r\n .forEach((el) => {\r\n // step through each cascade label\r\n el.onclick = function () {\r\n const checkbox = this.previousElementSibling;\r\n if (checkbox) {\r\n if (!checkbox.parentElement.attributes[\"aria-owns\"]) {\r\n // check if we are at the lowest level of cascader\r\n this.previousElementSibling.click(); // Click the checkbox\r\n }\r\n }\r\n };\r\n });\r\n });\r\n },\r\n },\r\n mounted: function () {\r\n this.algoliaClient = new AlgoliaClient(this.envVars.ALGOLIA_ID, this.envVars.ALGOLIA_KEY, this.envVars.PENNSIEVE_API_LOCATION);\r\n this.algoliaClient.initIndex(this.envVars.ALGOLIA_INDEX);\r\n this.populateCascader().then(() => {\r\n this.cascaderIsReady = true;\r\n this.checkShowAllBoxes()\r\n this.setCascader(this.entry.filterFacets);\r\n this.makeCascadeLabelsClickable();\r\n });\r\n },\r\n};\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style scoped>\r\n.filter-default-value {\r\n pointer-events: none;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n padding-top: 10px;\r\n padding-left: 16px;\r\n}\r\n\r\n.filter-icon-inside {\r\n width: 12px !important;\r\n height: 12px !important;\r\n color: #292b66;\r\n transform: scale(2) !important;\r\n margin-bottom: 0px !important;\r\n}\r\n\r\n.cascader {\r\n font-family: Asap;\r\n font-size: 14px;\r\n font-weight: 500;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #292b66;\r\n text-align: center;\r\n padding-bottom: 6px;\r\n}\r\n\r\n.cascader >>> .el-cascder-panel {\r\n max-height: 500px;\r\n}\r\n\r\n.cascader >>> .el-scrollbar__wrap {\r\n overflow-x: hidden;\r\n margin-bottom: 2px !important;\r\n}\r\n\r\n.cascader >>> li[aria-owns*=\"cascader\"] > .el-checkbox {\r\n display: none;\r\n}\r\n\r\n.dataset-results-feedback {\r\n float: right;\r\n text-align: right;\r\n color: rgb(48, 49, 51);\r\n font-family: Asap;\r\n font-size: 18px;\r\n font-weight: 500;\r\n padding-top: 8px;\r\n}\r\n\r\n.search-filters {\r\n position: relative;\r\n float: left;\r\n padding-right: 15px;\r\n padding-bottom: 12px;\r\n}\r\n\r\n.number-shown-select {\r\n float: right;\r\n}\r\n\r\n.number-shown-select >>> .el-input__inner {\r\n width: 68px;\r\n height: 40px;\r\n color: rgb(48, 49, 51);\r\n}\r\n\r\n.search-filters >>> .el-cascader-node.is-active {\r\n color: #8300bf;\r\n}\r\n\r\n.search-filters >>> .el-cascader-node.in-active-path {\r\n color: #8300bf;\r\n}\r\n\r\n.search-filters >>> .el-checkbox__input.is-checked > .el-checkbox__inner {\r\n background-color: #8300bf;\r\n border-color: #8300bf;\r\n}\r\n\r\n.cascader >>> .el-cascader-menu:nth-child(2) .el-cascader-node:first-child {\r\n border-bottom: 1px solid #e4e7ed;\r\n}\r\n\r\n.cascader >>> .el-cascader-node__label {\r\n text-align: left;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilters.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchFilters.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SearchFilters.vue?vue&type=template&id=52e74ac9&scoped=true&\"\nimport script from \"./SearchFilters.vue?vue&type=script&lang=js&\"\nexport * from \"./SearchFilters.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SearchFilters.vue?vue&type=style&index=0&id=52e74ac9&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 \"52e74ac9\",\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',{ref:\"container\",staticClass:\"dataset-card-container\"},[_c('div',{ref:\"card\",class:_vm.expanded ? 'dataset-card-expanded' : 'dataset-card'},[(_vm.entry.id !== 0)?_c('div',{staticClass:\"seperator-path\"}):_vm._e(),_c('div',{staticClass:\"card\"},[_c('span',{staticClass:\"card-left\"},[_c('img',{staticClass:\"banner-img\",attrs:{\"svg-inline\":\"\",\"src\":_vm.thumbnail},on:{\"click\":_vm.openDataset}})]),_c('div',{staticClass:\"card-right\"},[_c('div',{staticClass:\"title\",on:{\"click\":_vm.cardClicked}},[_vm._v(_vm._s(_vm.entry.name))]),_c('div',{staticClass:\"details\"},[_vm._v(_vm._s(_vm.contributors)+\" \"+_vm._s(_vm.entry.publishDate ? (\"(\" + _vm.publishYear + \")\") : ''))]),_c('div',{staticClass:\"details\"},[_vm._v(_vm._s(_vm.samples))]),_c('div',{staticClass:\"details\"},[_vm._v(\"id: \"+_vm._s(_vm.discoverId))]),_c('div',[(!_vm.entry.simulation)?_c('el-button',{staticClass:\"button\",attrs:{\"size\":\"mini\",\"icon\":\"el-icon-coin\"},on:{\"click\":_vm.openDataset}},[_vm._v(\"View dataset\")]):_vm._e()],1),_c('div',[(_vm.entry.scaffolds)?_c('el-button',{staticClass:\"button\",attrs:{\"size\":\"mini\",\"icon\":\"el-icon-view\"},on:{\"click\":_vm.openScaffold}},[_vm._v(\"View scaffold\")]):_vm._e()],1),_c('div',[(_vm.hasCSVFile)?_c('el-button',{staticClass:\"button\",attrs:{\"size\":\"mini\",\"icon\":\"el-icon-view\"},on:{\"click\":_vm.openPlot}},[_vm._v(\"View plot\")]):_vm._e()],1),_c('div',[(_vm.entry.simulation)?_c('el-button',{staticClass:\"button\",attrs:{\"size\":\"mini\",\"icon\":\"el-icon-view\"},on:{\"click\":_vm.openRepository}},[_vm._v(\"View repository\")]):_vm._e()],1),_c('div',[(_vm.entry.simulation)?_c('el-button',{staticClass:\"button\",attrs:{\"size\":\"mini\",\"icon\":\"el-icon-view\"},on:{\"click\":_vm.openSimulation}},[_vm._v(\"View simulation\")]):_vm._e()],1)])]),((_vm.cardOverflow && !_vm.expanded))?_c('p',{staticClass:\"read-more\"},[_c('el-button',{staticClass:\"read-more-button\",on:{\"click\":_vm.expand}},[_vm._v(\"Read more...\")])],1):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\r\nconst EventBus = new Vue();\r\nexport default EventBus;\r\n","export default {\r\n 77: {\r\n version: 2, meta_file: 'integrated_metadata.json', contextCard: {\r\n title: \"ICN fitted Scaffold\",\r\n description: \"Points are mapped to their positions on a 3d heart that is mapped to the data.\",\r\n bannerImage: 'https://raw.githubusercontent.com/Tehsurfer/map-sidebar/tabs/assets/temp-pics/icn.png',\r\n keys: [{\r\n image: \"https://raw.githubusercontent.com/Tehsurfer/map-sidebar/tabs/assets/temp-pics/orange.png\",\r\n text: \"ICN Subject 54-8\"\r\n }, {\r\n image: \"https://raw.githubusercontent.com/Tehsurfer/map-sidebar/tabs/assets/temp-pics/teal.png\",\r\n text: \"ICN Subject 54-5\"\r\n }\r\n ]\r\n },\r\n },\r\n 76: { version: 2, meta_file: 'mouseColon_metadata.json' },\r\n 32: {\r\n version: 3, meta_file: 'mouse-heart-071020_metadata.json', contextCard: {\r\n title: \"Neural paths mapped to a heart scaffold\",\r\n description: \"Points are mapped to their positions on a 3d heart that is mapped to the data.\",\r\n bannerImage: 'https://raw.githubusercontent.com/Tehsurfer/map-sidebar/tabs/assets/temp-pics/aNIksBFARaKwlKhpnDCKbA.png',\r\n keys: [{\r\n image: \"https://raw.githubusercontent.com/Tehsurfer/map-sidebar/tabs/assets/temp-pics/VqNcZ8fSQJu5TJEf9ahwvA.png\",\r\n text: \"Neural path\"\r\n }],\r\n }\r\n }\r\n }\r\n","<template>\r\n <div class=\"dataset-card-container\" ref=\"container\">\r\n <div v-bind:class=\" expanded ? 'dataset-card-expanded' : 'dataset-card'\" ref=\"card\">\r\n <div v-if=\"entry.id !== 0\" class=\"seperator-path\"></div>\r\n <div class=\"card\" >\r\n <span class=\"card-left\">\r\n <img svg-inline class=\"banner-img\" :src=\"thumbnail\" @click=\"openDataset\"/>\r\n </span>\r\n <div class=\"card-right\" >\r\n <div class=\"title\" @click=\"cardClicked\">{{entry.name}}</div>\r\n <div class=\"details\">{{contributors}} {{entry.publishDate ? `(${publishYear})` : ''}}</div>\r\n <div class=\"details\">{{samples}}</div>\r\n <div class=\"details\">id: {{discoverId}}</div>\r\n <div>\r\n <el-button v-if=\"!entry.simulation\" @click=\"openDataset\" size=\"mini\" class=\"button\" icon=\"el-icon-coin\">View dataset</el-button>\r\n </div>\r\n <div>\r\n <el-button v-if=\"entry.scaffolds\" @click=\"openScaffold\" size=\"mini\" class=\"button\" icon=\"el-icon-view\">View scaffold</el-button>\r\n </div>\r\n <div>\r\n <el-button v-if=\"hasCSVFile\" @click=\"openPlot\" size=\"mini\" class=\"button\" icon=\"el-icon-view\">View plot</el-button>\r\n </div>\r\n <div>\r\n <el-button v-if=\"entry.simulation\" @click=\"openRepository\" size=\"mini\" class=\"button\" icon=\"el-icon-view\">View repository</el-button>\r\n </div>\r\n <div>\r\n <el-button v-if=\"entry.simulation\" @click=\"openSimulation\" size=\"mini\" class=\"button\" icon=\"el-icon-view\">View simulation</el-button>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <p v-if=\"(cardOverflow && !expanded)\" class=\"read-more\"><el-button @click=\"expand\" class=\"read-more-button\">Read more...</el-button></p>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n\r\n<script>\r\n/* eslint-disable no-alert, no-console */\r\nimport Vue from \"vue\";\r\nimport { Button, Icon } from \"element-ui\";\r\nimport lang from \"element-ui/lib/locale/lang/en\";\r\nimport locale from \"element-ui/lib/locale\";\r\nimport EventBus from \"./EventBus\"\r\nimport scaffoldMetaMap from './scaffold-meta-map';\r\nimport speciesMap from \"./species-map\";\r\n\r\nlocale.use(lang);\r\nVue.use(Button);\r\nVue.use(Icon);\r\n\r\nconst capitalise = function(string){\r\n return string.replace(/\\b\\w/g, v => v.toUpperCase());\r\n}\r\n\r\nexport default {\r\n name: \"DatasetCard\",\r\n props: {\r\n /**\r\n * Object containing information for\r\n * the required viewing.\r\n */\r\n entry: Object,\r\n envVars: {\r\n type: Object,\r\n default: () => {}\r\n },\r\n },\r\n data: function () {\r\n return {\r\n thumbnail: require('@/../assets/missing-image.svg'),\r\n dataLocation: this.entry.doi,\r\n discoverId: undefined,\r\n cardOverflow: false,\r\n expanded: false\r\n };\r\n },\r\n computed: {\r\n hasCSVFile: function(){\r\n return ( this.entry.csvFiles && this.entry.csvFiles.length !== 0 )\r\n },\r\n contributors: function() {\r\n let text = \"\";\r\n if (this.entry.contributors) {\r\n if (this.entry.contributors.length === 1) {\r\n text = this.lastName(this.entry.contributors[0].name);\r\n } else if (this.entry.contributors.length === 2) {\r\n text = this.lastName(this.entry.contributors[0].name) + \" & \" + this.lastName(this.entry.contributors[1].name);\r\n } else if (this.entry.contributors.length > 2) {\r\n text = this.lastName(this.entry.contributors[0].name) + \" et al.\";\r\n }\r\n }\r\n return text;\r\n },\r\n samples: function() {\r\n let text = \"\";\r\n if (this.entry.species) {\r\n if (speciesMap[this.entry.species[0].toLowerCase()]){\r\n text = `${speciesMap[this.entry.species[0].toLowerCase()]}`;\r\n } else {\r\n text = `${this.entry.species}`;\r\n }\r\n }\r\n if (this.entry.numberSamples > 0) {\r\n text += \" (\";\r\n if (this.entry.numberSamples === 1) {\r\n text += `${this.entry.numberSamples} sample`;\r\n } else if (this.entry.numberSamples > 1) {\r\n text += `${this.entry.numberSamples} samples`;\r\n }\r\n if (this.entry.numberSubjects === 1) {\r\n text += ` from ${this.entry.numberSubjects} subject`;\r\n } else if (this.entry.numberSamples > 1) {\r\n text += ` from ${this.entry.numberSubjects} subjects`;\r\n }\r\n text += \")\";\r\n }\r\n\r\n return text;\r\n },\r\n label: function(){\r\n return this.entry.organs ? this.entry.organs[0] : this.entry.name\r\n },\r\n publishYear: function() {\r\n return this.entry.publishDate.split('-')[0]\r\n }\r\n },\r\n methods: {\r\n cardClicked: function(){\r\n if(this.entry.scaffolds){\r\n this.openScaffold()\r\n }else{\r\n this.openDataset()\r\n }\r\n },\r\n openScaffold: function(){\r\n let action = {\r\n label: capitalise(this.label),\r\n resource: this.getScaffoldPath(this.discoverId, this.version, this.entry.scaffolds[0].dataset.path),\r\n title: \"View 3D scaffold\",\r\n type: \"Scaffold\",\r\n discoverId: this.discoverId,\r\n contextCard: scaffoldMetaMap[this.discoverId] ? scaffoldMetaMap[this.discoverId].contextCard : undefined\r\n }\r\n EventBus.$emit(\"PopoverActionClick\", action)\r\n },\r\n openPlot: function(){\r\n let action = {\r\n label: capitalise(this.label),\r\n resource: this.getFileFromPath(this.discoverId, this.version, this.entry.csvFiles[0].dataset.path),\r\n title: \"View plot\",\r\n type: \"Plot\",\r\n discoverId: this.discoverId,\r\n }\r\n EventBus.$emit(\"PopoverActionClick\", action)\r\n },\r\n openDataset: function(){\r\n window.open(this.dataLocation,'_blank');\r\n },\r\n openRepository: function() {\r\n let apiLocation = this.envVars.API_LOCATION;\r\n this.entry.additionalLinks.forEach(function(el) {\r\n if (el.description == \"Repository\") {\r\n let xmlhttp = new XMLHttpRequest();\r\n xmlhttp.open(\"POST\", apiLocation + \"/pmr_latest_exposure\", true);\r\n xmlhttp.setRequestHeader(\"Content-type\", \"application/json\");\r\n xmlhttp.onreadystatechange = () => {\r\n if (xmlhttp.readyState === 4) {\r\n let url = \"\";\r\n if (xmlhttp.status === 200) {\r\n url = JSON.parse(xmlhttp.responseText)[\"url\"];\r\n }\r\n if (url === \"\") {\r\n url = el.uri;\r\n }\r\n window.open(url,'_blank');\r\n }\r\n };\r\n xmlhttp.send(JSON.stringify({workspace_url: el.uri}));\r\n }\r\n });\r\n },\r\n openSimulation: function() {\r\n let isSedmlResource = false;\r\n let resource = undefined;\r\n this.entry.additionalLinks.forEach(function(el) {\r\n if (el.description == \"SED-ML file\") {\r\n isSedmlResource = true;\r\n resource = el.uri;\r\n } else if (!isSedmlResource && (el.description == \"CellML file\")) {\r\n resource = el.uri;\r\n }\r\n });\r\n let action = {\r\n label: undefined,\r\n resource: resource,\r\n dataset: this.dataLocation,\r\n datasetId: this.discoverId,\r\n title: \"View simulation\",\r\n name: this.entry.name,\r\n description: this.entry.description,\r\n type: \"Simulation\"\r\n }\r\n EventBus.$emit(\"PopoverActionClick\", action)\r\n },\r\n getScaffoldPath: function(discoverId, version, scaffoldPath){\r\n let id = discoverId\r\n let path = `${this.envVars.API_LOCATION}s3-resource/${id}/${version}/files/${scaffoldPath}`\r\n return path\r\n },\r\n getFileFromPath: function(discoverId, version, path){\r\n return `${this.envVars.API_LOCATION}s3-resource/${discoverId}/${version}/files/${path}`\r\n },\r\n isOverflown: function(el){\r\n return el.clientHeight < el.scrollHeight\r\n },\r\n expand: function() {\r\n this.expanded = true\r\n },\r\n splitDOI: function(doi){\r\n return [doi.split('/')[doi.split('/').length-2], doi.split('/')[doi.split('/').length-1]]\r\n },\r\n getBanner: function () {\r\n let doi = this.splitDOI(this.entry.doi)\r\n fetch(`https://api.pennsieve.io/discover/datasets/doi/${doi[0]}/${doi[1]}`)\r\n .then((response) =>{\r\n if (!response.ok){\r\n throw Error(response.statusText)\r\n } else {\r\n return response.json()\r\n }\r\n })\r\n .then((data) => {\r\n this.thumbnail = data.banner\r\n this.discoverId = data.id\r\n this.version = data.version\r\n this.dataLocation = `https://sparc.science/datasets/${data.id}?type=dataset`\r\n })\r\n .catch(() => {\r\n //set defaults if we hit an error\r\n this.thumbnail = require('@/../assets/missing-image.svg')\r\n this.discoverId = undefined\r\n });\r\n },\r\n lastName: function(fullName){\r\n return fullName.split(',')[0]\r\n },\r\n },\r\n mounted: function(){\r\n this.getBanner()\r\n this.cardOverflow = this.isOverflown(this.$refs.card)\r\n },\r\n updated: function () {\r\n },\r\n watch: {\r\n 'entry.description': function() { // watch it\r\n this.cardOverflow = false\r\n this.expanded = false\r\n this.cardOverflow = this.isOverflown(this.$refs.card)\r\n this.getBanner()\r\n }\r\n },\r\n};\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style scoped>\r\n.dataset-card {\r\n padding-left: 16px;\r\n position: relative;\r\n}\r\n.seperator-path {\r\n width: 486px;\r\n height: 0px;\r\n border: solid 1px #e4e7ed;\r\n background-color: #e4e7ed;\r\n}\r\n.title {\r\n padding-bottom: 5px;\r\n font-family: Asap;\r\n font-size: 14px;\r\n font-weight: bold;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: 1.5;\r\n letter-spacing: 1.05px;\r\n color: #484848;\r\n cursor: pointer;\r\n}\r\n.card {\r\n padding-top: 18px;\r\n position: relative;\r\n display: flex;\r\n}\r\n\r\n.card-left{\r\n flex: 1\r\n}\r\n\r\n.card-right {\r\n flex: 1.3;\r\n padding-left: 6px;\r\n}\r\n\r\n.dataset-card .read-more {\r\n position: absolute;\r\n z-index: 9;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 20px;\r\n margin: 0; padding: 20px 66px;\r\n /* \"transparent\" only works here because == rgba(0,0,0,0) */\r\n background-image: linear-gradient(to bottom, transparent, white);\r\n pointer-events: none;\r\n}\r\n\r\n.read-more-button{\r\n width: 85px;\r\n height: 20px;\r\n font-family: Asap;\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n color: #8300bf;\r\n padding: 0px;\r\n pointer-events: all;\r\n cursor: pointer;\r\n}\r\n\r\n.button{\r\n z-index: 10;\r\n font-family: Asap;\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: normal;\r\n letter-spacing: normal;\r\n background-color: #8300bf;\r\n border: #8300bf;\r\n color: white;\r\n cursor: pointer;\r\n margin-top: 8px;\r\n}\r\n\r\n.button:hover {\r\n background-color: #8300bf;\r\n color: white;\r\n}\r\n\r\n.banner-img {\r\n width: 128px;\r\n height: 128px;\r\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.25);\r\n background-color: #ffffff;\r\n cursor: pointer;\r\n}\r\n.details{\r\n font-family: Asap;\r\n font-size: 14px;\r\n font-weight: normal;\r\n font-stretch: normal;\r\n font-style: normal;\r\n line-height: 1.5;\r\n letter-spacing: 1.05px;\r\n color: #484848;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatasetCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatasetCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DatasetCard.vue?vue&type=template&id=0e9538ce&scoped=true&\"\nimport script from \"./DatasetCard.vue?vue&type=script&lang=js&\"\nexport * from \"./DatasetCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./DatasetCard.vue?vue&type=style&index=0&id=0e9538ce&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 \"0e9538ce\",\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',{ref:\"container\",staticClass:\"context-card-container\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showDetails),expression:\"showDetails\"}],staticClass:\"hide\",on:{\"click\":function($event){_vm.showDetails = !_vm.showDetails}}},[_vm._v(\"Hide information\"),_c('i',{staticClass:\"el-icon-arrow-up\"})]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.showDetails),expression:\"!showDetails\"}],staticClass:\"hide\",on:{\"click\":function($event){_vm.showDetails = !_vm.showDetails}}},[_vm._v(\"Show information\"),_c('i',{staticClass:\"el-icon-arrow-down\"})]),_c('el-card',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showDetails),expression:\"showDetails\"}],staticClass:\"context-card card\",attrs:{\"body-style\":{ padding: '0px', 'background-color': 'white', display: 'flex', width: '516px'}}},[_c('img',{staticClass:\"context-image card-left\",attrs:{\"src\":_vm.entry.bannerImage}}),_c('div',{staticClass:\"card-right\"},[_c('div',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.entry.title))]),_c('div',[_vm._v(_vm._s(_vm.entry.description))]),_vm._l((_vm.entry.keys),function(key){return [_c('br',{key:key.text}),_c('span',{key:key.text + 1},[_c('img',{staticStyle:{\"height\":\"20px\"},attrs:{\"src\":key.image}}),_vm._v(\" \"+_vm._s(key.text))])]})],2)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"context-card-container\" ref=\"container\">\r\n <div v-show=\"showDetails\" class=\"hide\" @click=\"showDetails = !showDetails\">Hide information<i class=\"el-icon-arrow-up\"></i></div>\r\n <div v-show=\"!showDetails\" class=\"hide\" @click=\"showDetails = !showDetails\">Show information<i class=\"el-icon-arrow-down\"></i></div>\r\n <el-card v-show=\"showDetails\" class=\"context-card card\" :body-style=\"{ padding: '0px', 'background-color': 'white', display: 'flex', width: '516px'}\">\r\n <img :src=\"entry.bannerImage\" class=\"context-image card-left\">\r\n <div class=\"card-right\">\r\n <div class=\"title\">{{entry.title}}</div>\r\n <div>{{entry.description}}</div>\r\n <template v-for=\"key in entry.keys\">\r\n <br v-bind:key=\"key.text\"/>\r\n <span v-bind:key=\"key.text + 1\"><img :src=\"key.image\" style=\"height: 20px;\"> {{key.text}}</span>\r\n </template>\r\n </div>\r\n </el-card>\r\n </div>\r\n</template>\r\n\r\n\r\n<script>\r\n/* eslint-disable no-alert, no-console */\r\nimport Vue from \"vue\";\r\nimport { Link, Icon, Card, Button, Select, Input } from \"element-ui\";\r\nimport lang from \"element-ui/lib/locale/lang/en\";\r\nimport locale from \"element-ui/lib/locale\";\r\n\r\nlocale.use(lang);\r\nVue.use(Link);\r\nVue.use(Icon);\r\nVue.use(Card);\r\nVue.use(Button);\r\nVue.use(Select);\r\nVue.use(Input);\r\n\r\n\r\n\r\nexport default {\r\n name: \"contextCard\",\r\n props: {\r\n /**\r\n * Object containing information for\r\n * the required viewing.\r\n */\r\n entry: Object,\r\n },\r\n data: function () {\r\n return {\r\n showDetails: true\r\n };\r\n },\r\n computed: {\r\n\r\n },\r\n methods: {\r\n },\r\n};\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style scoped>\r\n\r\n.hide{\r\n color: #e4e7ed;\r\n cursor: pointer;\r\n}\r\n\r\n.context-card{\r\n background-color: white;\r\n}\r\n\r\n.context-image{\r\n width: 250px\r\n}\r\n\r\n.card {\r\n padding-top: 18px;\r\n margin-bottom: 18px;\r\n position: relative;\r\n border: solid 1px #e4e7ed;\r\n display: flex;\r\n}\r\n\r\n.card-left{\r\n flex: 1\r\n}\r\n\r\n.card-right {\r\n flex: 1.3;\r\n padding-left: 6px;\r\n}\r\n\r\n.title{\r\n font-weight: bold;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ContextCard.vue?vue&type=template&id=262a6750&scoped=true&\"\nimport script from \"./ContextCard.vue?vue&type=script&lang=js&\"\nexport * from \"./ContextCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ContextCard.vue?vue&type=style&index=0&id=262a6750&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 \"262a6750\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <el-card :body-style=\"bodyStyle\" class=\"content-card\">\r\n <div slot=\"header\" class=\"header\">\r\n <context-card v-if=\"contextCardEntry\" :entry=\"contextCardEntry\" />\r\n <el-input\r\n class=\"search-input\"\r\n placeholder=\"Search\"\r\n v-model=\"searchInput\"\r\n @keyup.native=\"searchEvent\"\r\n clearable\r\n @clear=\"clearSearchClicked\"\r\n ></el-input>\r\n <el-button class=\"button\" @click=\"searchEvent\">Search</el-button>\r\n </div>\r\n <SearchFilters\r\n class=\"filters\"\r\n ref=\"filtersRef\"\r\n :entry=\"filterEntry\"\r\n :envVars=\"envVars\"\r\n @filterResults=\"filterUpdate\"\r\n @numberPerPage=\"numberPerPageUpdate\"\r\n @loading=\"filtersLoading\"\r\n ></SearchFilters>\r\n <div class=\"content scrollbar\" v-loading=\"loadingCards\" ref=\"content\">\r\n <div\r\n class=\"error-feedback\"\r\n v-if=\"results.length === 0 && !loadingCards && !sciCrunchError\"\r\n >No results found - Please change your search / filter criteria.</div>\r\n <div class=\"error-feedback\" v-if=\"sciCrunchError\">{{sciCrunchError}}</div>\r\n <div v-for=\"o in results\" :key=\"o.id\" class=\"step-item\">\r\n <DatasetCard :entry=\"o\" :envVars=\"envVars\"></DatasetCard>\r\n </div>\r\n <el-pagination\r\n class=\"pagination\"\r\n :current-page.sync=\"page\"\r\n hide-on-single-page\r\n large\r\n layout=\"prev, pager, next\"\r\n :page-size=\"numberPerPage\"\r\n :total=\"numberOfHits\"\r\n @current-change=\"pageChange\"\r\n ></el-pagination>\r\n </div>\r\n </el-card>\r\n</template>\r\n\r\n\r\n<script>\r\n/* eslint-disable no-alert, no-console */\r\nimport Vue from \"vue\";\r\nimport {\r\n Button,\r\n Card,\r\n Drawer,\r\n Icon,\r\n Input,\r\n Loading,\r\n Pagination\r\n} from \"element-ui\";\r\nimport lang from \"element-ui/lib/locale/lang/en\";\r\nimport locale from \"element-ui/lib/locale\";\r\nimport SearchFilters from \"./SearchFilters\";\r\nimport DatasetCard from \"./DatasetCard\";\r\nimport ContextCard from \"./ContextCard.vue\";\r\n\r\nimport {AlgoliaClient} from \"../algolia/algolia.js\";\r\nimport {getFilters} from \"../algolia/utils.js\"\r\n\r\nlocale.use(lang);\r\nVue.use(Button);\r\nVue.use(Card);\r\nVue.use(Drawer);\r\nVue.use(Icon);\r\nVue.use(Input);\r\nVue.use(Loading);\r\nVue.use(Pagination);\r\n\r\n// handleErrors: A custom fetch error handler to recieve messages from the server\r\n// even when an error is found\r\nvar handleErrors = async function(response) {\r\n if (!response.ok) {\r\n let parse = await response.json();\r\n if (parse) {\r\n throw new Error(parse.message);\r\n } else {\r\n throw new Error(response);\r\n }\r\n }\r\n return response;\r\n};\r\n\r\nvar initial_state = {\r\n searchInput: \"\",\r\n lastSearch: \"\",\r\n results: [],\r\n numberOfHits: 0,\r\n filter: [],\r\n loadingCards: false,\r\n numberPerPage: 10,\r\n page: 1,\r\n pageModel: 1,\r\n start: 0,\r\n hasSearched: false,\r\n sciCrunchError: false\r\n};\r\n\r\nexport default {\r\n components: { SearchFilters, DatasetCard, ContextCard },\r\n name: \"SideBarContent\",\r\n props: {\r\n visible: {\r\n type: Boolean,\r\n default: false\r\n },\r\n isDrawer: {\r\n type: Boolean,\r\n default: true\r\n },\r\n entry: {\r\n type: Object,\r\n default: () => initial_state\r\n },\r\n contextCardEntry: {\r\n type: Object,\r\n default: undefined\r\n },\r\n envVars: {\r\n type: Object,\r\n default: () => {}\r\n },\r\n firstSearch: {\r\n type: String,\r\n default: \"\"\r\n }\r\n },\r\n data: function() {\r\n return {\r\n ...this.entry,\r\n bodyStyle: {\r\n flex: \"1 1 auto\",\r\n \"flex-flow\": \"column\",\r\n display: \"flex\"\r\n }\r\n };\r\n },\r\n computed: {\r\n // This computed property populates filter data's entry object with $data from this sidebar\r\n filterEntry: function() {\r\n return {\r\n numberOfHits: this.numberOfHits,\r\n filterFacets: this.filter\r\n };\r\n }\r\n },\r\n methods: {\r\n openSearch: function(filter, search='') {\r\n this.searchInput = search;\r\n this.resetPageNavigation();\r\n this.searchAlgolia(filter, search);\r\n if (filter) {\r\n this.filter = [...filter];\r\n this.$refs.filtersRef.setCascader(this.filter);\r\n }\r\n },\r\n addFilter: function(filter) {\r\n this.resetPageNavigation();\r\n if (filter) {\r\n this.$refs.filtersRef.addFilter(filter);\r\n this.$refs.filtersRef.initiateSearch()\r\n }\r\n },\r\n clearSearchClicked: function() {\r\n this.searchInput = \"\";\r\n this.resetPageNavigation();\r\n this.searchAlgolia(this.filters, this.searchInput);\r\n },\r\n searchEvent: function(event = false) {\r\n if (event.keyCode === 13 || event instanceof MouseEvent) {\r\n this.resetPageNavigation();\r\n this.searchAlgolia(this.filters, this.searchInput);\r\n }\r\n },\r\n filterUpdate: function(filters) {\r\n this.filters = [...filters]\r\n this.resetPageNavigation()\r\n this.searchAlgolia(filters, this.searchInput)\r\n this.$emit(\"search-changed\", {\r\n value: filters,\r\n type: \"filter-update\"\r\n });\r\n },\r\n searchAlgolia(filters, query=''){\r\n // Algolia search\r\n this.algoliaClient.search(getFilters(filters), query, this.numberPerPage, this.page).then(searchData => {\r\n this.numberOfHits = searchData.total\r\n this.discoverIds = searchData.discoverIds\r\n this.dois = searchData.dois\r\n this.results = searchData.items\r\n this.searchSciCrunch({'dois': this.dois})\r\n })\r\n },\r\n filtersLoading: function (val) {\r\n this.loadingCards = val;\r\n },\r\n numberPerPageUpdate: function(val) {\r\n this.numberPerPage = val;\r\n this.pageChange(1);\r\n },\r\n pageChange: function(page) {\r\n this.start = (page - 1) * this.numberPerPage;\r\n this.page = page\r\n this.searchAlgolia(this.filters, this.searchInput, this.numberPerPage, this.page)\r\n },\r\n searchSciCrunch: function(params) {\r\n this.loadingCards = true;\r\n this.results = [];\r\n this.disableCards();\r\n this.$emit(\"search-changed\", { value: this.searchInput, type: \"query-update\" });\r\n this.callSciCrunch(this.envVars.API_LOCATION, params)\r\n .then(result => {\r\n //Only process if the search term is the same as the last search term.\r\n //This avoid old search being displayed.\r\n this.sciCrunchError = false;\r\n this.resultsProcessing(result);\r\n this.$refs.content.style[\"overflow-y\"] = \"scroll\";\r\n this.loadingCards = false;\r\n })\r\n .catch(result => {\r\n if (result.name !== 'AbortError') {\r\n this.loadingCards = false;\r\n this.sciCrunchError = result.message;\r\n }\r\n })\r\n },\r\n disableCards: function() {\r\n if (this.$refs.content) {\r\n this.$refs.content.scroll({ top: 0, behavior: \"smooth\" });\r\n this.$refs.content.style[\"overflow-y\"] = \"hidden\";\r\n }\r\n },\r\n resetPageNavigation: function() {\r\n this.start = 0;\r\n this.page = 1;\r\n },\r\n resultsProcessing: function(data) {\r\n this.lastSearch = this.searchInput;\r\n this.results = [];\r\n let id = 0;\r\n if (data.results.length === 0) {\r\n return;\r\n }\r\n data.results.forEach(element => {\r\n // this.results.push(element) below should be once backend is ready\r\n this.results.push({\r\n name: element.name,\r\n description: element.description,\r\n contributors: element.contributors,\r\n numberSamples: element.sampleSize\r\n ? parseInt(element.sampleSize)\r\n : 0,\r\n numberSubjects: element.subjectSize\r\n ? parseInt(element.subjectSize)\r\n : 0,\r\n updated: element.updated[0].timestamp.split(\"T\")[0],\r\n url: element.uri[0],\r\n datasetId: element.identifier,\r\n organs: (element.organs && element.organs.length > 0)\r\n ? [...new Set(element.organs.map(v => v.name))]\r\n : undefined,\r\n species: element.organisms \r\n ? element.organisms[0].species\r\n ? [...new Set(element.organisms.map((v) =>v.species ? v.species.name : null))]\r\n : undefined\r\n : undefined, // This processing only includes each gender once into 'sexes'\r\n csvFiles: element.csvFiles,\r\n id: id,\r\n doi: element.doi,\r\n publishDate: element.publishDate,\r\n scaffolds: element['abi-scaffold-metadata-file'] ? element['abi-scaffold-metadata-file'] : undefined,\r\n additionalLinks: element.additionalLinks,\r\n simulation: element.additionalLinks\r\n ? element.additionalLinks[0].description == 'Repository'\r\n : false,\r\n s3uri: element.s3uri\r\n });\r\n id++;\r\n });\r\n },\r\n createfilterParams: function(params) {\r\n let p = new URLSearchParams();\r\n //Check if field is array or value\r\n for (const key in params) {\r\n if (Array.isArray(params[key])) {\r\n params[key].forEach(e => {\r\n p.append(key, e);\r\n });\r\n } else {\r\n p.append(key, params[key]);\r\n }\r\n }\r\n return p.toString();\r\n },\r\n callSciCrunch: function(apiLocation, params = {}) {\r\n return new Promise((resolve, reject) => {\r\n // the following controller will abort current search\r\n // if a new one has been started\r\n if (this._controller) this._controller.abort();\r\n this._controller = new AbortController();\r\n let signal = this._controller.signal;\r\n // Add parameters if we are sent them\r\n let fullEndpoint = this.envVars.API_LOCATION + this.searchEndpoint + \"?\" + this.createfilterParams(params);\r\n fetch(fullEndpoint, { signal })\r\n .then(handleErrors)\r\n .then(response => response.json())\r\n .then(data => resolve(data))\r\n .catch(data => reject(data));\r\n });\r\n }\r\n },\r\n mounted: function() {\r\n // initialise algolia\r\n this.algoliaClient = new AlgoliaClient(this.envVars.ALGOLIA_ID, this.envVars.ALGOLIA_KEY, this.envVars.PENNSIEVE_API_LOCATION);\r\n this.algoliaClient.initIndex(this.envVars.ALGOLIA_INDEX);\r\n console.log('Algolia initialised in sidebar')\r\n\r\n // temporarily disable flatmap search since there are no datasets\r\n if (this.firstSearch === \"Flatmap\" || this.firstSearch === \"flatmap\") {\r\n this.openSearch(undefined, '')\r\n } else {\r\n this.openSearch(undefined, '');\r\n }\r\n },\r\n created: function() {\r\n //Create non-reactive local variables\r\n this.searchEndpoint = \"dataset_info/using_multiple_dois/\";\r\n }\r\n};\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style scoped>\r\n.content-card {\r\n height: 100%;\r\n flex-flow: column;\r\n display: flex;\r\n}\r\n\r\n.button {\r\n background-color: #8300bf;\r\n border: #8300bf;\r\n color: white;\r\n}\r\n\r\n.step-item {\r\n font-size: 14px;\r\n margin-bottom: 18px;\r\n text-align: left;\r\n}\r\n\r\n.search-input {\r\n width: 298px !important;\r\n height: 40px;\r\n padding-right: 14px;\r\n align-items: left;\r\n}\r\n\r\n.header {\r\n border: solid 1px #292b66;\r\n background-color: #292b66;\r\n text-align: left;\r\n}\r\n\r\n.pagination {\r\n padding-bottom: 16px;\r\n background-color: white;\r\n text-align: center;\r\n}\r\n\r\n.pagination >>> button {\r\n background-color: white !important;\r\n}\r\n.pagination >>> li {\r\n background-color: white !important;\r\n}\r\n.pagination >>> li.active {\r\n color: #8300bf;\r\n}\r\n\r\n.error-feedback {\r\n font-family: Asap;\r\n font-size: 14px;\r\n font-style: italic;\r\n padding-top: 15px;\r\n}\r\n\r\n.content-card >>> .el-card__header {\r\n background-color: #292b66;\r\n border: solid 1px #292b66;\r\n}\r\n\r\n.content-card >>> .el-card__body {\r\n background-color: #f7faff;\r\n overflow-y: hidden;\r\n}\r\n\r\n.content {\r\n width: 518px;\r\n flex: 1 1 auto;\r\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.06);\r\n border: solid 1px #e4e7ed;\r\n background-color: #ffffff;\r\n overflow-y: scroll;\r\n scrollbar-width: thin;\r\n}\r\n\r\n.scrollbar::-webkit-scrollbar-track {\r\n border-radius: 10px;\r\n background-color: #f5f5f5;\r\n}\r\n\r\n.scrollbar::-webkit-scrollbar {\r\n width: 12px;\r\n right: -12px;\r\n background-color: #f5f5f5;\r\n}\r\n\r\n.scrollbar::-webkit-scrollbar-thumb {\r\n border-radius: 4px;\r\n box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.06);\r\n background-color: #979797;\r\n}\r\n\r\n>>> .el-input__suffix {\r\n padding-right: 10px;\r\n}\r\n\r\n>>> .my-drawer {\r\n background: rgba(0, 0, 0, 0);\r\n box-shadow: none;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarContent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarContent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SidebarContent.vue?vue&type=template&id=5f42cbc3&scoped=true&\"\nimport script from \"./SidebarContent.vue?vue&type=script&lang=js&\"\nexport * from \"./SidebarContent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SidebarContent.vue?vue&type=style&index=0&id=5f42cbc3&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 \"5f42cbc3\",\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:\"tab-container\"},_vm._l((_vm.tabTitles),function(title){return _c('div',{key:title.id,staticClass:\"title\"},[_c('div',{staticClass:\"title-text-table\",class:{ highlightText : (title.id==_vm.activeId) },on:{\"click\":function($event){return _vm.titleClicked(title.id)}}},[_c('div',{staticClass:\"title-text\"},[_vm._v(\" \"+_vm._s(title.title)+\" \")])])])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"tab-container\">\r\n <div class=\"title\" v-for=\"title in tabTitles\" :key=\"title.id\">\r\n <div class=\"title-text-table\" v-bind:class=\"{ highlightText : (title.id==activeId) }\" v-on:click=\"titleClicked(title.id)\">\r\n <div class=\"title-text\">\r\n {{title.title}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n/* eslint-disable no-alert, no-console */\r\n\r\nexport default {\r\n name: \"Tabs\",\r\n props: {\r\n tabTitles: {\r\n type: Array,\r\n default: () => []\r\n },\r\n activeId: {\r\n type: Number,\r\n default: 1\r\n }\r\n },\r\n methods: {\r\n titleClicked: function(id) {\r\n this.$emit(\"titleClicked\", id);\r\n },\r\n }\r\n\r\n};\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style scoped>\r\n\r\n.tab-container{\r\n height: 28px;\r\n}\r\n\r\n.title {\r\n width: 101px;\r\n height: 28px;\r\n border: solid 1px #dcdfe6;\r\n border-bottom: none;\r\n background-color: white;\r\n display:inline-block;\r\n}\r\n\r\n.title:hover {\r\n cursor: pointer;\r\n}\r\n\r\n.title-text {\r\n text-align:center;\r\n display: table-cell;\r\n vertical-align: middle;\r\n font-size: 14px;\r\n}\r\n\r\n.title-text-table {\r\n display:table;\r\n height: 100%;\r\n width: 100%;\r\n}\r\n\r\n.parent-dialog:hover .title-text {\r\n color:#8300bf;\r\n}\r\n\r\n.highlightText {\r\n color:#8300bf;\r\n}\r\n\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tabs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tabs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Tabs.vue?vue&type=template&id=d68260c4&scoped=true&\"\nimport script from \"./Tabs.vue?vue&type=script&lang=js&\"\nexport * from \"./Tabs.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Tabs.vue?vue&type=style&index=0&id=d68260c4&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 \"d68260c4\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div ref=\"container\">\r\n <div v-if=\"!drawerOpen\" @click=\"toggleDrawer\" class=\"open-tab\">\r\n <i class=\"el-icon-arrow-left\"></i>\r\n </div>\r\n <el-drawer\r\n custom-class=\"my-drawer\"\r\n class=\"side-bar\"\r\n :visible.sync=\"drawerOpen\"\r\n :appendToBody=\"false\"\r\n :modal-append-to-body=\"false\"\r\n size=550\r\n :with-header=\"false\"\r\n :wrapperClosable=\"false\"\r\n :modal=\"false\"\r\n >\r\n <div class=\"box-card\">\r\n <div v-if=\"drawerOpen\" @click=\"close\" class=\"close-tab\">\r\n <i class=\"el-icon-arrow-right\"></i>\r\n </div>\r\n <div class=\"sidebar-container\">\r\n <tabs v-if=\"tabs.length > 1\" :tabTitles=\"tabs\" :activeId=\"activeId\"\r\n @titleClicked=\"tabClicked\"/>\r\n <template v-for=\"tab in tabs\">\r\n <sidebar-content class=\"sidebar-content-container\"\r\n v-show=\"tab.id===activeId\" :contextCardEntry=\"tab.contextCard\"\r\n :envVars=\"envVars\"\r\n v-bind:key=\"tab.id\" :ref=\"tab.id\"\r\n @search-changed=\"searchChanged(tab.id, $event)\"/>\r\n </template>\r\n </div>\r\n </div>\r\n </el-drawer>\r\n </div>\r\n</template>\r\n\r\n\r\n<script>\r\n/* eslint-disable no-alert, no-console */\r\nimport Vue from \"vue\";\r\nimport {\r\n Drawer,\r\n Icon,\r\n} from \"element-ui\";\r\nimport lang from \"element-ui/lib/locale/lang/en\";\r\nimport locale from \"element-ui/lib/locale\";\r\nimport SidebarContent from './SidebarContent.vue';\r\nimport EventBus from './EventBus';\r\nimport Tabs from './Tabs'\r\n\r\nlocale.use(lang);\r\nVue.use(Drawer);\r\nVue.use(Icon);\r\n\r\nvar initial_state = {\r\n searchInput: \"\",\r\n lastSearch: \"\",\r\n results: [],\r\n drawerOpen: false,\r\n numberOfHits: 0,\r\n filter:{},\r\n filterFacet: undefined,\r\n loadingCards: false,\r\n numberPerPage: 10,\r\n page: 1,\r\n pageModel: 1,\r\n start: 0,\r\n hasSearched: false,\r\n sciCrunchError: false\r\n}\r\n\r\nexport default {\r\n components: {SidebarContent, Tabs },\r\n name: \"SideBar\",\r\n props: {\r\n visible: {\r\n type: Boolean,\r\n default: false\r\n },\r\n entry: {\r\n type: Object,\r\n default: () => (initial_state)\r\n },\r\n envVars: {\r\n type: Object,\r\n default: () => {}\r\n },\r\n tabs: {\r\n type: Array,\r\n default: () => [{title:'flatmap', id:1}]\r\n },\r\n activeId: {\r\n type: Number,\r\n default: 1\r\n },\r\n openAtStart: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n data: function () {\r\n return {\r\n ...this.entry,\r\n }\r\n },\r\n methods: {\r\n searchChanged: function (id, data) {\r\n this.$emit(\"search-changed\", {...data, id: id});\r\n },\r\n close: function () {\r\n this.drawerOpen = false;\r\n },\r\n toggleDrawer: function () {\r\n this.drawerOpen = !this.drawerOpen;\r\n },\r\n openSearch: function(facets, query){\r\n this.drawerOpen = true;\r\n // Because refs are in v-for, nextTick is needed here\r\n Vue.nextTick(()=>{this.$refs[this.activeId][0].openSearch(facets, query)})\r\n },\r\n addFilter: function(filter){\r\n this.drawerOpen = true;\r\n // Because refs are in v-for, nextTick is needed here\r\n Vue.nextTick(()=>{this.$refs[this.activeId][0].addFilter(filter)})\r\n },\r\n openNeuronSearch: function(neuron){\r\n this.drawerOpen = true;\r\n // Because refs are in v-for, nextTick is needed here\r\n Vue.nextTick(()=>{this.$refs[this.activeId][0].openSearch('', undefined, 'scicrunch-query-string/', {'field': '*organ.curie', 'curie':neuron})})\r\n },\r\n tabClicked: function(id) {\r\n this.$emit(\"tabClicked\", id);\r\n },\r\n },\r\n created:function() {\r\n this.drawerOpen = this.openAtStart;\r\n },\r\n mounted: function(){\r\n EventBus.$on(\"PopoverActionClick\", (payLoad) => {\r\n this.$emit(\"actionClick\", payLoad);\r\n })\r\n }\r\n};\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style scoped>\r\n\r\n.box-card {\r\n flex: 3;\r\n height: 100%;\r\n overflow: hidden;\r\n pointer-events: auto;\r\n}\r\n\r\n.side-bar{\r\n position: relative;\r\n height: 100%;\r\n pointer-events: none;\r\n}\r\n\r\n.side-bar >>> .el-drawer:focus{\r\n outline:none;\r\n}\r\n\r\n.sidebar-container {\r\n height: 100%;\r\n flex-flow: column;\r\n display: flex;\r\n}\r\n\r\n.open-tab{\r\n width: 20px;\r\n height: 40px;\r\n z-index: 8;\r\n position: absolute;\r\n top: calc(50vh - 80px);\r\n right: 0px;\r\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.06);\r\n border: solid 1px #e4e7ed;\r\n background-color: #F7FAFF;\r\n text-align: center;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n pointer-events: auto;\r\n}\r\n\r\n.el-icon-arrow-left{\r\n font-size: 20px;\r\n padding-top: 8px;\r\n color: #292b66;\r\n}\r\n\r\n.el-icon-arrow-right{\r\n font-size: 20px;\r\n padding-top: 8px;\r\n color: #292b66;\r\n cursor: pointer;\r\n pointer-events: auto;\r\n}\r\n\r\n.close-tab{\r\n float: left;\r\n flex: 1;\r\n width: 20px;\r\n height: 40px;\r\n z-index: 8;\r\n margin-top: calc(50vh - 80px);\r\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.06);\r\n border: solid 1px #e4e7ed;\r\n border-right: 0;\r\n background-color: #F7FAFF;\r\n text-align: center;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n pointer-events: auto;\r\n}\r\n\r\n.box-card {\r\n flex: 3;\r\n height: 100%;\r\n overflow: hidden;\r\n pointer-events: auto;\r\n}\r\n\r\n>>> .my-drawer {\r\n background: rgba(0,0,0,0);\r\n box-shadow: none;\r\n}\r\n\r\n>>> .my-drawer .el-drawer__body {\r\n height: 100%;\r\n}\r\n\r\n.sidebar-content-container {\r\n flex: 1 1 auto;\r\n}\r\n\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SideBar.vue?vue&type=template&id=3f7eb1a5&scoped=true&\"\nimport script from \"./SideBar.vue?vue&type=script&lang=js&\"\nexport * from \"./SideBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SideBar.vue?vue&type=style&index=0&id=3f7eb1a5&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 \"3f7eb1a5\",\n null\n \n)\n\nexport default component.exports","module.exports = require(\"core-js/modules/es.string.includes\");"],"sourceRoot":""}