@abi-software/flatmapvuer 0.2.5-alpha.0 → 0.2.5-upstream-downstream
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.
- package/dist/flatmapvuer.common.js +486 -154
- package/dist/flatmapvuer.common.js.map +1 -1
- package/dist/flatmapvuer.css +1 -1
- package/dist/flatmapvuer.umd.js +486 -154
- package/dist/flatmapvuer.umd.js.map +1 -1
- package/dist/flatmapvuer.umd.min.js +1 -1
- package/dist/flatmapvuer.umd.min.js.map +1 -1
- package/package-lock.json +6 -6
- package/package.json +2 -2
- package/src/App.vue +4 -2
- package/src/components/EventBus.js +3 -0
- package/src/components/FlatmapVuer.vue +25 -10
- package/src/components/MultiFlatmapVuer.vue +4 -0
- package/src/components/PubmedViewer.vue +42 -21
- package/src/components/Tooltip.vue +189 -22
- package/src/components/flatmapQueries.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://flatmapvuer/webpack/universalModuleDefinition","webpack://flatmapvuer/webpack/bootstrap","webpack://flatmapvuer/external \"element-ui/lib/checkbox-group\"","webpack://flatmapvuer/external \"core-js/modules/es.string.split.js\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/checkbox-group.css\"","webpack://flatmapvuer/external \"element-ui/lib/select\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/select.css\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/radio-group.css\"","webpack://flatmapvuer/external \"core-js/modules/web.dom-collections.for-each.js\"","webpack://flatmapvuer/external \"core-js/modules/web.dom-collections.iterator.js\"","webpack://flatmapvuer/external \"element-ui/lib/container\"","webpack://flatmapvuer/external \"core-js/modules/es.string.search.js\"","webpack://flatmapvuer/external \"element-ui/lib/main\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/link.css\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/button.css\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/radio.css\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/loading.css\"","webpack://flatmapvuer/external \"element-ui/lib/header\"","webpack://flatmapvuer/external \"core-js/modules/es.symbol.iterator.js\"","webpack://flatmapvuer/external \"core-js/modules/es.regexp.to-string.js\"","webpack://flatmapvuer/./src/components/PubmedViewer.vue?d298","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/carousel.css\"","webpack://flatmapvuer/external \"@abi-software/svg-sprite\"","webpack://flatmapvuer/external \"core-js/modules/es.array.from.js\"","webpack://flatmapvuer/external \"core-js/modules/es.array.map.js\"","webpack://flatmapvuer/external \"core-js/modules/es.symbol.description.js\"","webpack://flatmapvuer/external \"@abi-software/flatmap-viewer\"","webpack://flatmapvuer/external \"core-js/modules/es.array.iterator.js\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/header.css\"","webpack://flatmapvuer/external \"element-ui/lib/radio\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/checkbox.css\"","webpack://flatmapvuer/external \"element-ui/lib/button\"","webpack://flatmapvuer/external \"core-js/modules/es.string.replace.js\"","webpack://flatmapvuer/external \"element-ui/lib/locale/lang/en\"","webpack://flatmapvuer/external \"element-ui/lib/row\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/col.css\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/main.css\"","webpack://flatmapvuer/external \"element-ui/lib/link\"","webpack://flatmapvuer/external \"element-ui/lib/locale\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/option.css\"","webpack://flatmapvuer/external \"core-js/modules/es.set.js\"","webpack://flatmapvuer/external \"core-js/modules/es.array.includes.js\"","webpack://flatmapvuer/external \"vue\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/icon.css\"","webpack://flatmapvuer/external \"element-ui/lib/popover\"","webpack://flatmapvuer/external \"core-js/modules/es.object.to-string.js\"","webpack://flatmapvuer/./src/components/MultiFlatmapVuer.vue?c957","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/base.css\"","webpack://flatmapvuer/external \"core-js/modules/es.symbol.js\"","webpack://flatmapvuer/external \"@soda/get-current-script\"","webpack://flatmapvuer/external \"core-js/modules/es.string.iterator.js\"","webpack://flatmapvuer/external \"element-ui/lib/carousel\"","webpack://flatmapvuer/external \"element-ui/lib/col\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/popover.css\"","webpack://flatmapvuer/external \"element-ui/lib/loading\"","webpack://flatmapvuer/external \"css-element-queries/src/ResizeSensor\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/container.css\"","webpack://flatmapvuer/external \"element-ui/lib/icon\"","webpack://flatmapvuer/external \"element-ui/lib/checkbox\"","webpack://flatmapvuer/external \"core-js/modules/web.url.js\"","webpack://flatmapvuer/./src/components/FlatmapVuer.vue?11bf","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/carousel-item.css\"","webpack://flatmapvuer/external \"element-ui/lib/option\"","webpack://flatmapvuer/external \"element-ui/lib/carousel-item\"","webpack://flatmapvuer/./src/components/Tooltip.vue?d570","webpack://flatmapvuer/external \"core-js/modules/es.regexp.exec.js\"","webpack://flatmapvuer/external \"core-js/modules/es.function.name.js\"","webpack://flatmapvuer/external \"core-js/modules/es.array.slice.js\"","webpack://flatmapvuer/external \"core-js/modules/es.object.keys.js\"","webpack://flatmapvuer/external \"core-js/modules/es.promise.js\"","webpack://flatmapvuer/external \"core-js/modules/es.number.constructor.js\"","webpack://flatmapvuer/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://flatmapvuer/./src/components/FlatmapVuer.vue?cc3c","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack://flatmapvuer/./src/components/Tooltip.vue?4c79","webpack://flatmapvuer/./src/components/PubmedViewer.vue?7a72","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://flatmapvuer/src/components/PubmedViewer.vue","webpack://flatmapvuer/./src/components/PubmedViewer.vue?8f41","webpack://flatmapvuer/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://flatmapvuer/./src/components/PubmedViewer.vue","webpack://flatmapvuer/src/components/Tooltip.vue","webpack://flatmapvuer/./src/components/Tooltip.vue?0f87","webpack://flatmapvuer/./src/components/Tooltip.vue","webpack://flatmapvuer/./src/icons/flatmap-marker.js","webpack://flatmapvuer/src/components/FlatmapVuer.vue","webpack://flatmapvuer/./src/components/FlatmapVuer.vue?f442","webpack://flatmapvuer/./src/components/FlatmapVuer.vue","webpack://flatmapvuer/./src/components/MultiFlatmapVuer.vue?41f1","webpack://flatmapvuer/src/components/MultiFlatmapVuer.vue","webpack://flatmapvuer/./src/components/MultiFlatmapVuer.vue?6257","webpack://flatmapvuer/./src/components/MultiFlatmapVuer.vue","webpack://flatmapvuer/external \"core-js/modules/es.string.includes.js\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/row.css\"","webpack://flatmapvuer/external \"element-ui/lib/radio-group\""],"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","currentScript","document","getCurrentScript","src","match","render","_vm","_h","$createElement","_c","_self","directives","rawName","expression","staticClass","attrs","staticStyle","ref","warningMessage","model","hoverVisibilities","callback","$$v","$set","_e","arg","on","$event","showToolitip","hideToolitip","_v","nativeOn","zoomIn","slot","zoomOut","resetView","class","open","drawerOpen","close","pathways","length","pathControls","domProps","_s","flatmapMarker","isIndeterminate","handleCheckAllChange","checkAll","handleCheckedItemsChange","checkedItems","_l","item","type","visibilityToggle","label","toggleDrawer","setColour","colourRadio","setOutlines","outlinesRadio","currentBackground","backgroundChangeCallback","tooltipContent","flatmapAPI","resourceSelected","staticRenderFns","_arrayLikeToArray","arr","len","arr2","Array","_unsupportedIterableToArray","minLen","arrayLikeToArray","toString","slice","constructor","from","test","_createForOfIteratorHelper","allowArrayLike","it","iterator","isArray","unsupportedIterableToArray","F","done","e","f","TypeError","err","normalCompletion","didErr","step","next","_e2","content","titleCase","title","featureId","pubmedSearchUrlUpdate","components","start","distribution","action","openUrl","pubmedSearchUrl","loading","pub","html","url","_arrayWithHoles","_iterableToArrayLimit","_i","_arr","_n","_d","push","_nonIterableRest","_slicedToArray","arrayWithHoles","iterableToArrayLimit","nonIterableRest","props","String","default","watch","console","log","val","flatmapQuery","computed","data","pubmeds","pubmedIds","mounted","methods","stripPMIDPrefix","pubmedId","split","titleFromPubmed","Promise","fetch","resolve","apa","format","error","splitLink","response","endpoint","method","headers","body","JSON","stringify","values","forEach","params","append","ids","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","component","str","replace","visible","Boolean","undefined","activeSpecies","appendToBody","$emit","onClose","map","resize","MapSvgIcon","MapSvgSpriteColor","Tooltip","mapManager","mapImp","colour","setBackgroundColour","flag","outlineRadio","resetMap","pathTypes","showPaths","checkedCount","enablePanZoomEvents","eventCallback","eventType","dataset","taxonomy","resource","feature","userData","args","checkAndCreatePopups","showPopup","popUpCssHack","ftooltip","style","display","querySelector","$refs","tooltip","$el","onclick","createTooltipFromNeuronCuration","actions","tooltipVisible","includes","foundAnnotations","uberon","nervePath","myOptions","className","node","showMarkerPopup","setHelpMode","helpMode","inHelp","openFlatmapHelpPopup","closeFlatmapHelpPopup","tooltipWait","setTimeout","tooltipNumber","clearTimeout","heartId","elm","anchor","getLabels","Set","labels","getState","entry","viewport","state","setState","createFlatmap","_viewportToBeSet","displayMinimap","minimap","promise1","then","showMinimap","showPathwaysDrawer","searchAndShowResult","term","clearSearchResults","searchResults","__featureIds","featureInfo","minZoom","Number","searchable","tooltips","renderAtMounted","displayWarning","availableBackground","handler","immediate","deep","flatmap","MapManager","flatmapChanged","iconClass","refInFor","showLayer","taxo","FlatmapSelected","FlatmapReady","panZoomCallback","FlatmapVuer","initialise","keys","describes","getCoordinatesOfLastClick","getCurrentFlatmap","payload","species","initial","availableSpecies","speciesList"],"mappings":"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","file":"flatmapvuer.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[\"flatmapvuer\"] = factory();\n\telse\n\t\troot[\"flatmapvuer\"] = 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/checkbox-group\");","module.exports = require(\"core-js/modules/es.string.split.js\");","module.exports = require(\"element-ui/lib/theme-chalk/checkbox-group.css\");","module.exports = require(\"element-ui/lib/select\");","module.exports = require(\"element-ui/lib/theme-chalk/select.css\");","module.exports = require(\"element-ui/lib/theme-chalk/radio-group.css\");","module.exports = require(\"core-js/modules/web.dom-collections.for-each.js\");","module.exports = require(\"core-js/modules/web.dom-collections.iterator.js\");","module.exports = require(\"element-ui/lib/container\");","module.exports = require(\"core-js/modules/es.string.search.js\");","module.exports = require(\"element-ui/lib/main\");","module.exports = require(\"element-ui/lib/theme-chalk/link.css\");","module.exports = require(\"element-ui/lib/theme-chalk/button.css\");","module.exports = require(\"element-ui/lib/theme-chalk/radio.css\");","module.exports = require(\"element-ui/lib/theme-chalk/loading.css\");","module.exports = require(\"element-ui/lib/header\");","module.exports = require(\"core-js/modules/es.symbol.iterator.js\");","module.exports = require(\"core-js/modules/es.regexp.to-string.js\");","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PubmedViewer.vue?vue&type=style&index=0&id=06d0e387&scoped=true&lang=scss&\"","module.exports = require(\"element-ui/lib/theme-chalk/carousel.css\");","module.exports = require(\"@abi-software/svg-sprite\");","module.exports = require(\"core-js/modules/es.array.from.js\");","module.exports = require(\"core-js/modules/es.array.map.js\");","module.exports = require(\"core-js/modules/es.symbol.description.js\");","module.exports = require(\"@abi-software/flatmap-viewer\");","module.exports = require(\"core-js/modules/es.array.iterator.js\");","module.exports = require(\"element-ui/lib/theme-chalk/header.css\");","module.exports = require(\"element-ui/lib/radio\");","module.exports = require(\"element-ui/lib/theme-chalk/checkbox.css\");","module.exports = require(\"element-ui/lib/button\");","module.exports = require(\"core-js/modules/es.string.replace.js\");","module.exports = require(\"element-ui/lib/locale/lang/en\");","module.exports = require(\"element-ui/lib/row\");","module.exports = require(\"element-ui/lib/theme-chalk/col.css\");","module.exports = require(\"element-ui/lib/theme-chalk/main.css\");","module.exports = require(\"element-ui/lib/link\");","module.exports = require(\"element-ui/lib/locale\");","module.exports = require(\"element-ui/lib/theme-chalk/option.css\");","module.exports = require(\"core-js/modules/es.set.js\");","module.exports = require(\"core-js/modules/es.array.includes.js\");","module.exports = require(\"vue\");","module.exports = require(\"element-ui/lib/theme-chalk/icon.css\");","module.exports = require(\"element-ui/lib/popover\");","module.exports = require(\"core-js/modules/es.object.to-string.js\");","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultiFlatmapVuer.vue?vue&type=style&index=0&id=01b30450&scoped=true&lang=scss&\"","module.exports = require(\"element-ui/lib/theme-chalk/base.css\");","module.exports = require(\"core-js/modules/es.symbol.js\");","module.exports = require(\"@soda/get-current-script\");","module.exports = require(\"core-js/modules/es.string.iterator.js\");","module.exports = require(\"element-ui/lib/carousel\");","module.exports = require(\"element-ui/lib/col\");","module.exports = require(\"element-ui/lib/theme-chalk/popover.css\");","module.exports = require(\"element-ui/lib/loading\");","module.exports = require(\"css-element-queries/src/ResizeSensor\");","module.exports = require(\"element-ui/lib/theme-chalk/container.css\");","module.exports = require(\"element-ui/lib/icon\");","module.exports = require(\"element-ui/lib/checkbox\");","module.exports = require(\"core-js/modules/web.url.js\");","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlatmapVuer.vue?vue&type=style&index=0&id=5fb00c0b&scoped=true&lang=scss&\"","module.exports = require(\"element-ui/lib/theme-chalk/carousel-item.css\");","module.exports = require(\"element-ui/lib/option\");","module.exports = require(\"element-ui/lib/carousel-item\");","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tooltip.vue?vue&type=style&index=0&id=4802b201&scoped=true&lang=scss&\"","module.exports = require(\"core-js/modules/es.regexp.exec.js\");","module.exports = require(\"core-js/modules/es.function.name.js\");","module.exports = require(\"core-js/modules/es.array.slice.js\");","module.exports = require(\"core-js/modules/es.object.keys.js\");","module.exports = require(\"core-js/modules/es.promise.js\");","module.exports = require(\"core-js/modules/es.number.constructor.js\");","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[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',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"flatmap-container\",attrs:{\"element-loading-text\":\"Loading...\",\"element-loading-spinner\":\"el-icon-loading\",\"element-loading-background\":\"rgba(0, 0, 0, 0.3)\"}},[_c('map-svg-sprite-color'),_c('div',{staticStyle:{\"height\":\"100%\",\"width\":\"100%\",\"position\":\"relative\",\"overflow-y\":\"none\"}},[_c('div',{ref:\"display\",staticStyle:{\"height\":\"100%\",\"width\":\"100%\"}}),(_vm.displayWarning)?_c('el-popover',{ref:\"warningPopover\",attrs:{\"content\":_vm.warningMessage,\"placement\":\"right\",\"appendToBody\":false,\"trigger\":\"manual\",\"popper-class\":\"warning-popper flatmap-popper right-popper\"},model:{value:(_vm.hoverVisibilities[6].value),callback:function ($$v) {_vm.$set(_vm.hoverVisibilities[6], \"value\", $$v)},expression:\"hoverVisibilities[6].value\"}}):_vm._e(),(_vm.displayWarning)?_c('i',{directives:[{name:\"popover\",rawName:\"v-popover:warningPopover\",arg:\"warningPopover\"}],staticClass:\"el-icon-warning warning-icon\",on:{\"mouseover\":function($event){return _vm.showToolitip(6)},\"mouseout\":function($event){return _vm.hideToolitip(6)}}},[_c('span',{staticClass:\"warning-text\"},[_vm._v(\"Beta\")])]):_vm._e(),_c('div',{staticClass:\"bottom-right-control\"},[_c('el-popover',{attrs:{\"content\":\"Zoom in\",\"placement\":\"left\",\"appendToBody\":false,\"trigger\":\"manual\",\"popper-class\":\"flatmap-popper left-popper\"},model:{value:(_vm.hoverVisibilities[0].value),callback:function ($$v) {_vm.$set(_vm.hoverVisibilities[0], \"value\", $$v)},expression:\"hoverVisibilities[0].value\"}},[_c('map-svg-icon',{staticClass:\"icon-button zoomIn\",attrs:{\"slot\":\"reference\",\"icon\":\"zoomIn\"},nativeOn:{\"click\":function($event){return _vm.zoomIn()},\"mouseover\":function($event){return _vm.showToolitip(0)},\"mouseout\":function($event){return _vm.hideToolitip(0)}},slot:\"reference\"})],1),_c('el-popover',{attrs:{\"content\":\"Zoom out\",\"placement\":\"top-end\",\"appendToBody\":false,\"trigger\":\"manual\",\"popper-class\":\"flatmap-popper popper-zoomout\"},model:{value:(_vm.hoverVisibilities[1].value),callback:function ($$v) {_vm.$set(_vm.hoverVisibilities[1], \"value\", $$v)},expression:\"hoverVisibilities[1].value\"}},[_c('map-svg-icon',{staticClass:\"icon-button zoomOut\",attrs:{\"slot\":\"reference\",\"icon\":\"zoomOut\"},nativeOn:{\"click\":function($event){return _vm.zoomOut()},\"mouseover\":function($event){return _vm.showToolitip(1)},\"mouseout\":function($event){return _vm.hideToolitip(1)}},slot:\"reference\"})],1),_c('el-popover',{attrs:{\"content\":\"Reset\",\"placement\":\"top\",\"appendToBody\":false,\"trigger\":\"manual\",\"popper-class\":\"flatmap-popper\"},model:{value:(_vm.hoverVisibilities[2].value),callback:function ($$v) {_vm.$set(_vm.hoverVisibilities[2], \"value\", $$v)},expression:\"hoverVisibilities[2].value\"}},[_c('div',[_vm._v(\" Fit to \"),_c('br'),_vm._v(\" window \")]),_c('map-svg-icon',{staticClass:\"icon-button fitWindow\",attrs:{\"slot\":\"reference\",\"icon\":\"fitWindow\"},nativeOn:{\"click\":function($event){return _vm.resetView()},\"mouseover\":function($event){return _vm.showToolitip(2)},\"mouseout\":function($event){return _vm.hideToolitip(2)}},slot:\"reference\"})],1)],1),_c('el-popover',{ref:\"checkBoxPopover\",attrs:{\"content\":\"Change pathway visibility\",\"placement\":\"right\",\"appendToBody\":false,\"trigger\":\"manual\",\"popper-class\":\"flatmap-popper right-popper\"},model:{value:(_vm.hoverVisibilities[4].value),callback:function ($$v) {_vm.$set(_vm.hoverVisibilities[4], \"value\", $$v)},expression:\"hoverVisibilities[4].value\"}}),_c('div',{staticClass:\"pathway-location\",class:{ open: _vm.drawerOpen, close: !_vm.drawerOpen }},[(_vm.pathways.length > 0 && _vm.pathControls)?_c('div',{directives:[{name:\"popover\",rawName:\"v-popover:checkBoxPopover\",arg:\"checkBoxPopover\"}],staticClass:\"pathway-container\"},[_c('el-popover',{ref:\"markerPopover\",attrs:{\"content\":\"Find these markers for data\",\"placement\":\"right\",\"appendToBody\":false,\"trigger\":\"manual\",\"popper-class\":\"flatmap-popper popper-bump-right right-popper\"},model:{value:(_vm.hoverVisibilities[5].value),callback:function ($$v) {_vm.$set(_vm.hoverVisibilities[5], \"value\", $$v)},expression:\"hoverVisibilities[5].value\"}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hoverVisibilities[5].value),expression:\"hoverVisibilities[5].value\"},{name:\"popover\",rawName:\"v-popover:markerPopover\",arg:\"markerPopover\"}],staticClass:\"flatmap-marker-help\",domProps:{\"innerHTML\":_vm._s(_vm.flatmapMarker)}}),_c('el-row',[_c('el-col',{attrs:{\"span\":12}},[_c('div',{staticClass:\"pathways-display-text\"},[_vm._v(\"Pathways\")])]),_c('el-col',{attrs:{\"span\":12}},[_c('el-checkbox',{staticClass:\"all-checkbox\",attrs:{\"indeterminate\":_vm.isIndeterminate},on:{\"change\":_vm.handleCheckAllChange},model:{value:(_vm.checkAll),callback:function ($$v) {_vm.checkAll=$$v},expression:\"checkAll\"}},[_vm._v(\"Display all\")])],1)],1),_c('el-checkbox-group',{staticClass:\"checkbox-group\",attrs:{\"size\":\"small\"},on:{\"change\":_vm.handleCheckedItemsChange},model:{value:(_vm.checkedItems),callback:function ($$v) {_vm.checkedItems=$$v},expression:\"checkedItems\"}},[_c('div',{staticClass:\"checkbox-group-inner\"},_vm._l((_vm.pathways),function(item){return _c('el-row',{key:item.type,attrs:{\"label\":item.type}},[_c('div',{staticClass:\"checkbox-container\"},[_c('el-checkbox',{staticClass:\"my-checkbox\",attrs:{\"label\":item.type,\"checked\":true},on:{\"change\":function($event){return _vm.visibilityToggle()}}},[_c('div',{staticClass:\"path-visual\",class:item.type}),_vm._v(\" \"+_vm._s(item.label)+\" \")])],1)])}),1)])],1):_vm._e(),_c('div',{staticClass:\"drawer-button\",class:{ open: _vm.drawerOpen, close: !_vm.drawerOpen },on:{\"click\":_vm.toggleDrawer}},[_c('i',{staticClass:\"el-icon-arrow-left\"})])]),_c('el-popover',{ref:\"backgroundPopover\",attrs:{\"placement\":\"top-start\",\"width\":\"175\",\"appendToBody\":false,\"trigger\":\"click\",\"popper-class\":\"background-popper\"}},[_c('el-row',{staticClass:\"backgroundText\"},[_vm._v(\"Organs display\")]),_c('el-row',{staticClass:\"backgroundControl\"},[_c('el-radio-group',{staticClass:\"flatmap-radio\",on:{\"change\":_vm.setColour},model:{value:(_vm.colourRadio),callback:function ($$v) {_vm.colourRadio=$$v},expression:\"colourRadio\"}},[_c('el-radio',{attrs:{\"label\":true}},[_vm._v(\"Colour\")]),_c('el-radio',{attrs:{\"label\":false}},[_vm._v(\"Greyscale\")])],1)],1),_c('el-row',{staticClass:\"backgroundSpacer\"}),_c('el-row',{staticClass:\"backgroundText\"},[_vm._v(\"Outlines display\")]),_c('el-row',{staticClass:\"backgroundControl\"},[_c('el-radio-group',{staticClass:\"flatmap-radio\",on:{\"change\":_vm.setOutlines},model:{value:(_vm.outlinesRadio),callback:function ($$v) {_vm.outlinesRadio=$$v},expression:\"outlinesRadio\"}},[_c('el-radio',{attrs:{\"label\":true}},[_vm._v(\"Show\")]),_c('el-radio',{attrs:{\"label\":false}},[_vm._v(\"Hide\")])],1)],1),_c('el-row',{staticClass:\"backgroundSpacer\"}),_c('el-row',{staticClass:\"backgroundText\"},[_vm._v(\"Change background\")]),_c('el-row',{staticClass:\"backgroundControl\"},_vm._l((_vm.availableBackground),function(item){return _c('div',{key:item,class:['backgroundChoice', item, item == _vm.currentBackground ? 'active' :''],on:{\"click\":function($event){return _vm.backgroundChangeCallback(item)}}})}),0)],1),_c('el-popover',{attrs:{\"content\":\"Change background color\",\"placement\":\"right\",\"appendToBody\":false,\"trigger\":\"manual\",\"popper-class\":\"flatmap-popper right-popper\"},model:{value:(_vm.hoverVisibilities[3].value),callback:function ($$v) {_vm.$set(_vm.hoverVisibilities[3], \"value\", $$v)},expression:\"hoverVisibilities[3].value\"}},[_c('map-svg-icon',{directives:[{name:\"popover\",rawName:\"v-popover:backgroundPopover\",arg:\"backgroundPopover\"}],staticClass:\"icon-button background-colour\",class:{ open: _vm.drawerOpen, close: !_vm.drawerOpen },attrs:{\"slot\":\"reference\",\"icon\":\"changeBckgd\"},nativeOn:{\"mouseover\":function($event){return _vm.showToolitip(3)},\"mouseout\":function($event){return _vm.hideToolitip(3)}},slot:\"reference\"})],1),_c('Tooltip',{ref:\"tooltip\",staticClass:\"tooltip\",attrs:{\"content\":_vm.tooltipContent,\"flatmapAPI\":_vm.flatmapAPI},on:{\"resource-selected\":_vm.resourceSelected}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tooltip-container\"},[(_vm.content)?_c('el-main',{staticClass:\"main\"},[(_vm.content.title)?_c('div',{staticClass:\"block\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.titleCase(_vm.content.title)))])]):_c('div',{staticClass:\"block\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.content.featureId))])]),(_vm.content.featureId)?_c('pubmed-viewer',{staticClass:\"block\",attrs:{\"flatmapAPI\":_vm.flatmapAPI,\"featureId\":_vm.content.featureId},on:{\"pubmedSearchUrl\":_vm.pubmedSearchUrlUpdate}}):_vm._e(),(_vm.content.components)?_c('div',{staticClass:\"block\"},[_c('div',{staticClass:\"attribute-title\"},[_vm._v(\"Components\")]),_c('span',{staticClass:\"attribute-content\"},[_vm._v(_vm._s(_vm.content.components))])]):_vm._e(),(_vm.content.start)?_c('div',{staticClass:\"block\"},[_c('div',{staticClass:\"attribute-title\"},[_vm._v(\"Origin\")]),_c('span',{staticClass:\"attribute-content\"},[_vm._v(_vm._s(_vm.content.start))])]):_vm._e(),(_vm.content.distribution)?_c('div',{staticClass:\"block\"},[_c('div',{staticClass:\"attribute-title\"},[_vm._v(\"Distribution\")]),_c('span',{staticClass:\"attribute-content\"},[_vm._v(_vm._s(_vm.content.distribution))])]):_vm._e(),_vm._l((_vm.content.actions),function(action){return _c('el-button',{key:action.title,staticClass:\"button\",attrs:{\"round\":\"\"},on:{\"click\":function($event){return _vm.resourceSelected(action)}}},[(action.title === 'Search for dataset' || action.title === 'View Dataset' )?_c('i',{staticClass:\"el-icon-coin\"}):_vm._e(),_vm._v(\" \"+_vm._s(action.title)+\" \")])}),(_vm.pubmedSearchUrl)?_c('el-button',{staticClass:\"button\",attrs:{\"icon\":\"el-icon-notebook-2\"},on:{\"click\":function($event){return _vm.openUrl(_vm.pubmedSearchUrl)}}},[_vm._v(\" Open publications in pubmed \")]):_vm._e()],2):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pubmed-container\"},[_c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading.response),expression:\"loading.response\"}],staticClass:\"block\"},[_c('div',{staticClass:\"attribute-title\"},[_vm._v(\"Pubmed Resources\")]),_c('br'),_c('el-carousel',{attrs:{\"autoplay\":false,\"indicator-position\":\"outside\",\"height\":\"250px\",\"width\":\"200px\"}},_vm._l((_vm.pubmeds),function(pub,i){return _c('el-carousel-item',{key:i},[_c('div',{staticClass:\"attribute-content\"},[_c('div',{domProps:{\"innerHTML\":_vm._s(pub.html)}}),_c('el-link',{staticClass:\"el-link\",attrs:{\"href\":pub.url,\"underline\":false,\"target\":\"_blank\"}},[_vm._v(_vm._s(pub.url))])],1)])}),1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","<template>\r\n <div class=\"pubmed-container\">\r\n <div v-loading=\"loading.response\" class=\"block\">\r\n <div class=\"attribute-title\">Pubmed Resources</div>\r\n <br/>\r\n <el-carousel \r\n :autoplay=\"false\" \r\n indicator-position=\"outside\"\r\n height=\"250px\" width=\"200px\"\r\n >\r\n <el-carousel-item v-for=\"(pub, i) in pubmeds\" :key=\"i\">\r\n <div class=\"attribute-content\">\r\n <div v-html=\"pub.html\"/>\r\n <el-link :href=\"pub.url\" :underline=\"false\" class=\"el-link\" target=\"_blank\">{{pub.url}}</el-link>\r\n </div>\r\n </el-carousel-item>\r\n </el-carousel>\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 {\r\n Link,\r\n Carousel,\r\n CarouselItem\r\n} from \"element-ui\";\r\nimport lang from \"element-ui/lib/locale/lang/en\";\r\nimport locale from \"element-ui/lib/locale\";\r\nlocale.use(lang);\r\nVue.use(Link);\r\nVue.use(Carousel);\r\nVue.use(CarouselItem);\r\n\r\n\r\nexport default {\r\n name: \"Tooltip\",\r\n props: { \r\n featureId: {\r\n type: String,\r\n default: ''\r\n },\r\n /**\r\n * Specify the endpoint of the flatmap server.\r\n */\r\n flatmapAPI: {\r\n type: String,\r\n default: \"https://mapcore-demo.org/flatmaps/\"\r\n }\r\n },\r\n watch: {\r\n 'featureId': function (val){\r\n console.log('feature id watch triggered', val)\r\n this.flatmapQuery(val)\r\n }\r\n },\r\n computed: {\r\n },\r\n data: function() {\r\n return {\r\n pubmeds: [],\r\n pubmedIds: [],\r\n loading: {response: true, publications: true}\r\n };\r\n },\r\n mounted: function() {\r\n this.flatmapQuery(this.featureId)\r\n },\r\n methods: {\r\n stripPMIDPrefix: function (pubmedId){\r\n return pubmedId.split(':')[1]\r\n },\r\n titleFromPubmed: function (pubmedId){\r\n return new Promise((resolve) => {\r\n fetch(`https://api.ncbi.nlm.nih.gov/lit/ctxp/v1/pubmed/?format=citation&contenttype=json&id=${pubmedId}`)\r\n .then(response => response.json())\r\n .then(data => {\r\n resolve(data.apa.format)\r\n })\r\n .catch((error) => {\r\n console.error('Error:', error);\r\n });\r\n })\r\n },\r\n splitLink(bibliographyString){\r\n let split = bibliographyString.split('https')\r\n return [split[0], 'https' + split[1]]\r\n },\r\n flatmapQuery: function(identifier){\r\n this.pubmeds = []\r\n this.loading.response = true\r\n let endpoint = this.flatmapAPI + 'knowledge/query/';\r\n const data = { sql: 'select publication from publications where entity=?', \"params\": [identifier]};\r\n fetch(endpoint, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(data),\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n this.responseData = data\r\n this.loading.response = false\r\n data.values.forEach(identifier => {\r\n let ids = this.stripPMIDPrefix(identifier[0])\r\n this.titleFromPubmed(ids).then( bib=>{\r\n let [html, link] = this.splitLink(bib)\r\n this.pubmeds.push({identifier: identifier[0] , html: html, url: link})\r\n \r\n })\r\n });\r\n this.$emit('pubmedSearchUrl', this.pubmedSearchUrl(data.values.map(id=>this.stripPMIDPrefix(id[0]))))\r\n })\r\n .catch((error) => {\r\n console.error('Error:', error);\r\n });\r\n },\r\n pubmedSearchUrl: function(ids) {\r\n let url = 'https://pubmed.ncbi.nlm.nih.gov/?'\r\n let params = new URLSearchParams()\r\n params.append('term', ids)\r\n return url + params.toString()\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n@import \"~element-ui/packages/theme-chalk/src/link\";\r\n@import \"~element-ui/packages/theme-chalk/src/carousel\";\r\n@import \"~element-ui/packages/theme-chalk/src/carousel-item\";\r\n\r\n.attribute-title{\r\n font-size: 16px;\r\n font-weight: 600;\r\n /* font-weight: bold; */\r\n text-transform: uppercase;\r\n}\r\n\r\n.attribute-content{\r\n font-size: 14px;\r\n font-weight: 400;\r\n}\r\n\r\n.el-link {\r\n color: $app-primary-color;\r\n text-decoration: none;\r\n word-wrap: break-word;\r\n &:hover, &:focus{\r\n color: $app-primary-color;\r\n text-decoration: underline;\r\n }\r\n}\r\n\r\n::v-deep .el-carousel__button {\r\n background-color: $app-primary-color; \r\n}\r\n\r\n.button {\r\n margin-left: 0px !important;\r\n margin-top: 0px !important;\r\n font-size: 14px !important;\r\n background-color: $app-primary-color;\r\n color: #fff;\r\n &:hover{\r\n color: #fff !important;\r\n background: #ac76c5 !important;\r\n border: 1px solid #ac76c5 !important;\r\n }\r\n &+.button {\r\n margin-top: 10px !important;\r\n background-color: $app-primary-color;\r\n color: #fff; \r\n }\r\n}\r\n\r\n</style>","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!./PubmedViewer.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!./PubmedViewer.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 () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\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 functional 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","import { render, staticRenderFns } from \"./PubmedViewer.vue?vue&type=template&id=06d0e387&scoped=true&\"\nimport script from \"./PubmedViewer.vue?vue&type=script&lang=js&\"\nexport * from \"./PubmedViewer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PubmedViewer.vue?vue&type=style&index=0&id=06d0e387&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"06d0e387\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div class=\"tooltip-container\">\r\n <el-main v-if=\"content\" class=\"main\">\r\n <div class=\"block\" v-if=\"content.title\">\r\n <span class=\"title\">{{titleCase(content.title)}}</span>\r\n </div>\r\n <div class=\"block\" v-else>\r\n <span class=\"title\">{{content.featureId}}</span>\r\n </div>\r\n \r\n\r\n <pubmed-viewer v-if=\"content.featureId\" class=\"block\" :flatmapAPI=flatmapAPI :featureId=\"content.featureId\" @pubmedSearchUrl=\"pubmedSearchUrlUpdate\"/>\r\n <div v-if=\"content.components\" class=\"block\">\r\n <div class=\"attribute-title\">Components</div>\r\n <span class=\"attribute-content\">{{content.components}}</span>\r\n </div>\r\n <div v-if=\"content.start\" class=\"block\">\r\n <div class=\"attribute-title\">Origin</div>\r\n <span class=\"attribute-content\">{{content.start}}</span>\r\n </div>\r\n <div v-if=\"content.distribution\" class=\"block\">\r\n <div class=\"attribute-title\">Distribution</div>\r\n <span class=\"attribute-content\">{{content.distribution}}</span>\r\n </div>\r\n <el-button v-for=\"action in content.actions\" round :key=\"action.title\"\r\n class=\"button\" @click=\"resourceSelected(action)\">\r\n <i v-if=\"action.title === 'Search for dataset' || action.title === 'View Dataset' \" class=\"el-icon-coin\"></i>\r\n {{action.title}}\r\n </el-button>\r\n <el-button v-if=\"pubmedSearchUrl\" class=\"button\" icon=\"el-icon-notebook-2\" @click=\"openUrl(pubmedSearchUrl)\">\r\n Open publications in pubmed\r\n </el-button>\r\n </el-main>\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 Button,\r\n Container,\r\n Header,\r\n Icon,\r\n Main\r\n} from \"element-ui\";\r\nimport lang from \"element-ui/lib/locale/lang/en\";\r\nimport locale from \"element-ui/lib/locale\";\r\nlocale.use(lang);\r\nVue.use(Button);\r\nVue.use(Container);\r\nVue.use(Header);\r\nVue.use(Icon);\r\nVue.use(Main);\r\n\r\nimport PubmedViewer from './PubmedViewer.vue'\r\n\r\nconst titleCase = (str) => {\r\n return str.replace(/\\w\\S*/g, (t) => { return t.charAt(0).toUpperCase() + t.substr(1).toLowerCase() });\r\n}\r\n\r\nexport default {\r\n components: { PubmedViewer },\r\n name: \"Tooltip\",\r\n props: { \r\n visible: {\r\n type: Boolean,\r\n default: false\r\n },\r\n content: {\r\n type: Object,\r\n default: undefined\r\n },\r\n /**\r\n * Specify the endpoint of the flatmap server.\r\n */\r\n flatmapAPI: {\r\n type: String,\r\n default: \"https://mapcore-demo.org/flatmaps/\"\r\n }\r\n },\r\n data: function() {\r\n return {\r\n activeSpecies: undefined,\r\n appendToBody: false,\r\n pubmedSearchUrl: ''\r\n };\r\n },\r\n methods: {\r\n resourceSelected: function(action) {\r\n this.$emit(\"resource-selected\", action); \r\n },\r\n titleCase: function(title){\r\n return titleCase(title)\r\n },\r\n onClose: function() {\r\n this.$emit(\"onClose\");\r\n },\r\n openUrl: function(url){\r\n window.open(url, '_blank')\r\n },\r\n pubmedSearchUrlUpdate: function (val){\r\n this.pubmedSearchUrl = val\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n@import \"~element-ui/packages/theme-chalk/src/button\";\r\n@import \"~element-ui/packages/theme-chalk/src/container\";\r\n@import \"~element-ui/packages/theme-chalk/src/header\";\r\n@import \"~element-ui/packages/theme-chalk/src/main\";\r\n\r\n.tooltip-container {\r\n text-align:justify;\r\n border-radius: 4px;\r\n box-shadow: 0 1px 2px rgba(0,0,0,.1);\r\n pointer-events: auto;\r\n background: #fff;\r\n border: 1px solid $app-primary-color;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.display {\r\n width: 44px;\r\n word-break: normal;\r\n}\r\n\r\n.title {\r\n text-align: left;\r\n width: 16em;\r\n line-height: 1.5em !important;\r\n font-size: 1em;\r\n font-family: Helvetica;\r\n font-weight: 500;\r\n /* font-weight: bold; */\r\n padding-bottom: 8px;\r\n}\r\n\r\n.block {\r\n margin-bottom: 1.5em;\r\n}\r\n\r\n.pub {\r\n width: 16rem;\r\n}\r\n\r\n.icon {\r\n right: 0px;\r\n position: absolute;\r\n top: 10px;\r\n}\r\n\r\n.icon:hover {\r\n cursor: pointer;\r\n}\r\n\r\n.main {\r\n font-size: 14px;\r\n text-align: left;\r\n line-height: 1.5em;\r\n font-family: Helvetica;\r\n font-weight: 400;\r\n /* outline: thin red solid; */\r\n padding: 1em !important;\r\n overflow: hidden;\r\n min-width: 16rem;\r\n}\r\n\r\n.attribute-title{\r\n font-size: 16px;\r\n font-weight: 600;\r\n /* font-weight: bold; */\r\n text-transform: uppercase;\r\n}\r\n\r\n.attribute-content{\r\n font-size: 14px;\r\n font-weight: 400;\r\n}\r\n\r\n.popover-container {\r\n height: 100%;\r\n width: 100%;\r\n}\r\n\r\n.main {\r\n .el-button.is-round{\r\n border-radius: 4px;\r\n padding: 9px 20px 10px 20px;\r\n display: flex;\r\n height: 36px;\r\n }\r\n}\r\n\r\n.button {\r\n margin-left: 0px !important;\r\n margin-top: 0px !important;\r\n font-size: 14px !important;\r\n background-color: $app-primary-color;\r\n color: #fff;\r\n &+.button {\r\n margin-top: 10px !important;\r\n }\r\n &:hover {\r\n color: #fff !important;\r\n background: #ac76c5 !important;\r\n border: 1px solid #ac76c5 !important;\r\n }\r\n}\r\n\r\n.tooltip-container{\r\n &::after, &::before {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n width: 0;\r\n height: 0;\r\n border-style: solid;\r\n flex-shrink: 0;\r\n }\r\n}\r\n\r\n.mapboxgl-popup-anchor-bottom {\r\n .tooltip-container {\r\n &::after, &::before {\r\n top: 100%;\r\n border-width: 12px;\r\n }\r\n &::after {\r\n margin-top:-1px;\r\n border-color: rgb(255, 255, 255) transparent transparent transparent ;\r\n }\r\n &::before {\r\n margin: 0 auto;\r\n border-color: $app-primary-color transparent transparent transparent ;\r\n }\r\n }\r\n}\r\n\r\n.mapboxgl-popup-anchor-top {\r\n .tooltip-container {\r\n &::after, &::before {\r\n top: -24px;\r\n border-width: 12px;\r\n }\r\n &::after {\r\n margin-top: 1px;\r\n border-color: transparent transparent rgb(255, 255, 255) transparent ;\r\n }\r\n &::before {\r\n margin: 0 auto;\r\n border-color: transparent transparent $app-primary-color transparent ;\r\n }\r\n }\r\n}\r\n\r\n\r\n/* Fix for chrome bug where under triangle pops up above one on top of it */\r\n.selector:not(*:root), .tooltip-container::after{\r\n top: 99.4%;\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!./Tooltip.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!./Tooltip.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Tooltip.vue?vue&type=template&id=4802b201&scoped=true&\"\nimport script from \"./Tooltip.vue?vue&type=script&lang=js&\"\nexport * from \"./Tooltip.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Tooltip.vue?vue&type=style&index=0&id=4802b201&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4802b201\",\n null\n \n)\n\nexport default component.exports","export default '<div class=\"flatmap-marker\"><svg display=\"block\" height=\"41px\" width=\"27px\" viewBox=\"0 0 27 41\"><g fill-rule=\"nonzero\"><g transform=\"translate(3.0, 29.0)\" fill=\"#000000\"><ellipse opacity=\"0.04\" cx=\"10.5\" cy=\"5.80029008\" rx=\"10.5\" ry=\"5.25002273\"></ellipse><ellipse opacity=\"0.04\" cx=\"10.5\" cy=\"5.80029008\" rx=\"10.5\" ry=\"5.25002273\"></ellipse><ellipse opacity=\"0.04\" cx=\"10.5\" cy=\"5.80029008\" rx=\"9.5\" ry=\"4.77275007\"></ellipse><ellipse opacity=\"0.04\" cx=\"10.5\" cy=\"5.80029008\" rx=\"8.5\" ry=\"4.29549936\"></ellipse><ellipse opacity=\"0.04\" cx=\"10.5\" cy=\"5.80029008\" rx=\"7.5\" ry=\"3.81822308\"></ellipse><ellipse opacity=\"0.04\" cx=\"10.5\" cy=\"5.80029008\" rx=\"6.5\" ry=\"3.34094679\"></ellipse><ellipse opacity=\"0.04\" cx=\"10.5\" cy=\"5.80029008\" rx=\"5.5\" ry=\"2.86367051\"></ellipse><ellipse opacity=\"0.04\" cx=\"10.5\" cy=\"5.80029008\" rx=\"4.5\" ry=\"2.38636864\"></ellipse></g><g fill=\"#005974\"><path d=\"M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z\"></path></g><g opacity=\"0.25\" fill=\"#000000\"><path d=\"M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z\"></path></g><g transform=\"translate(6.0, 7.0)\" fill=\"#FFFFFF\"></g><g transform=\"translate(8.0, 8.0)\"><circle fill=\"#000000\" opacity=\"0.25\" cx=\"5.5\" cy=\"5.5\" r=\"5.4999962\"></circle><circle fill=\"#FFFFFF\" cx=\"5.5\" cy=\"5.5\" r=\"5.4999962\"></circle></g></g></svg></div>'","<template>\r\n <div\r\n class=\"flatmap-container\"\r\n v-loading=\"loading\"\r\n element-loading-text=\"Loading...\"\r\n element-loading-spinner=\"el-icon-loading\"\r\n element-loading-background=\"rgba(0, 0, 0, 0.3)\"\r\n >\r\n <map-svg-sprite-color />\r\n <div style=\"height:100%;width:100%;position:relative;overflow-y:none\">\r\n <div style=\"height:100%;width:100%;\" ref=\"display\"></div>\r\n <el-popover\r\n :content=\"warningMessage\"\r\n placement=\"right\"\r\n v-if=\"displayWarning\"\r\n :appendToBody=\"false\"\r\n trigger=\"manual\"\r\n popper-class=\"warning-popper flatmap-popper right-popper\"\r\n v-model=\"hoverVisibilities[6].value\"\r\n ref=\"warningPopover\"\r\n ></el-popover>\r\n <i\r\n class=\"el-icon-warning warning-icon\"\r\n v-if=\"displayWarning\"\r\n @mouseover=\"showToolitip(6)\"\r\n @mouseout=\"hideToolitip(6)\"\r\n v-popover:warningPopover\r\n >\r\n <span class=\"warning-text\">Beta</span>\r\n </i>\r\n <div class=\"bottom-right-control\">\r\n <el-popover\r\n content=\"Zoom in\"\r\n placement=\"left\"\r\n :appendToBody=\"false\"\r\n trigger=\"manual\"\r\n popper-class=\"flatmap-popper left-popper\"\r\n v-model=\"hoverVisibilities[0].value\"\r\n >\r\n <map-svg-icon\r\n icon=\"zoomIn\"\r\n class=\"icon-button zoomIn\"\r\n slot=\"reference\"\r\n @click.native=\"zoomIn()\"\r\n @mouseover.native=\"showToolitip(0)\"\r\n @mouseout.native=\"hideToolitip(0)\"\r\n />\r\n </el-popover>\r\n <el-popover\r\n content=\"Zoom out\"\r\n placement=\"top-end\"\r\n :appendToBody=\"false\"\r\n trigger=\"manual\"\r\n popper-class=\"flatmap-popper popper-zoomout\"\r\n v-model=\"hoverVisibilities[1].value\"\r\n >\r\n <map-svg-icon\r\n icon=\"zoomOut\"\r\n class=\"icon-button zoomOut\"\r\n slot=\"reference\"\r\n @click.native=\"zoomOut()\"\r\n @mouseover.native=\"showToolitip(1)\"\r\n @mouseout.native=\"hideToolitip(1)\"\r\n />\r\n </el-popover>\r\n <el-popover\r\n content=\"Reset\"\r\n placement=\"top\"\r\n :appendToBody=\"false\"\r\n trigger=\"manual\"\r\n popper-class=\"flatmap-popper\"\r\n v-model=\"hoverVisibilities[2].value\"\r\n >\r\n <div>\r\n Fit to\r\n <br>\r\n window\r\n </div>\r\n <map-svg-icon\r\n slot=\"reference\"\r\n icon=\"fitWindow\"\r\n class=\"icon-button fitWindow\"\r\n @click.native=\"resetView()\"\r\n @mouseover.native=\"showToolitip(2)\"\r\n @mouseout.native=\"hideToolitip(2)\"\r\n />\r\n </el-popover>\r\n </div>\r\n <el-popover\r\n content=\"Change pathway visibility\"\r\n placement=\"right\"\r\n :appendToBody=\"false\"\r\n trigger=\"manual\"\r\n popper-class=\"flatmap-popper right-popper\"\r\n v-model=\"hoverVisibilities[4].value\"\r\n ref=\"checkBoxPopover\"\r\n />\r\n <div class=\"pathway-location\" :class=\"{ open: drawerOpen, close: !drawerOpen }\">\r\n <div\r\n class=\"pathway-container\"\r\n v-if=\"pathways.length > 0 && pathControls\"\r\n v-popover:checkBoxPopover\r\n >\r\n <el-popover\r\n content=\"Find these markers for data\"\r\n placement=\"right\"\r\n :appendToBody=\"false\"\r\n trigger=\"manual\"\r\n popper-class=\"flatmap-popper popper-bump-right right-popper\"\r\n v-model=\"hoverVisibilities[5].value\"\r\n ref=\"markerPopover\"\r\n ></el-popover>\r\n <div\r\n v-show=\"hoverVisibilities[5].value\"\r\n class=\"flatmap-marker-help\"\r\n v-html=\"flatmapMarker\"\r\n v-popover:markerPopover\r\n ></div>\r\n <el-row>\r\n <el-col :span=\"12\">\r\n <div class=\"pathways-display-text\">Pathways</div>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-checkbox\r\n class=\"all-checkbox\"\r\n :indeterminate=\"isIndeterminate\"\r\n v-model=\"checkAll\"\r\n @change=\"handleCheckAllChange\"\r\n >Display all</el-checkbox>\r\n </el-col>\r\n </el-row>\r\n <el-checkbox-group\r\n v-model=\"checkedItems\"\r\n size=\"small\"\r\n class=\"checkbox-group\"\r\n @change=\"handleCheckedItemsChange\"\r\n >\r\n <div class=\"checkbox-group-inner\">\r\n <el-row v-for=\"item in pathways\" :key=\"item.type\" :label=\"item.type\">\r\n <div class=\"checkbox-container\">\r\n <el-checkbox\r\n class=\"my-checkbox\"\r\n :label=\"item.type\"\r\n @change=\"visibilityToggle()\"\r\n :checked=\"true\"\r\n >\r\n <div class=\"path-visual\" :class=\"item.type\"></div>\r\n {{item.label}}\r\n </el-checkbox>\r\n </div>\r\n </el-row>\r\n </div>\r\n </el-checkbox-group>\r\n </div>\r\n <div\r\n @click=\"toggleDrawer\"\r\n class=\"drawer-button\"\r\n :class=\"{ open: drawerOpen, close: !drawerOpen }\"\r\n >\r\n <i class=\"el-icon-arrow-left\"></i>\r\n </div>\r\n </div>\r\n <el-popover\r\n ref=\"backgroundPopover\"\r\n placement=\"top-start\"\r\n width=\"175\"\r\n :appendToBody=\"false\"\r\n trigger=\"click\"\r\n popper-class=\"background-popper\"\r\n >\r\n <el-row class=\"backgroundText\">Organs display</el-row>\r\n <el-row class=\"backgroundControl\">\r\n <el-radio-group v-model=\"colourRadio\" class=\"flatmap-radio\" @change=\"setColour\">\r\n <el-radio :label=\"true\">Colour</el-radio>\r\n <el-radio :label=\"false\">Greyscale</el-radio>\r\n </el-radio-group>\r\n </el-row>\r\n <el-row class=\"backgroundSpacer\"></el-row>\r\n <el-row class=\"backgroundText\">Outlines display</el-row>\r\n <el-row class=\"backgroundControl\">\r\n <el-radio-group v-model=\"outlinesRadio\" class=\"flatmap-radio\" @change=\"setOutlines\">\r\n <el-radio :label=\"true\">Show</el-radio>\r\n <el-radio :label=\"false\">Hide</el-radio>\r\n </el-radio-group>\r\n </el-row>\r\n <el-row class=\"backgroundSpacer\"></el-row>\r\n <el-row class=\"backgroundText\">Change background</el-row>\r\n <el-row class=\"backgroundControl\">\r\n <div\r\n v-for=\"item in availableBackground\"\r\n :key=\"item\"\r\n :class=\"['backgroundChoice', item, item == currentBackground ? 'active' :'']\"\r\n @click=\"backgroundChangeCallback(item)\"\r\n />\r\n </el-row>\r\n </el-popover>\r\n <el-popover\r\n content=\"Change background color\"\r\n placement=\"right\"\r\n v-model=\"hoverVisibilities[3].value\"\r\n :appendToBody=\"false\"\r\n trigger=\"manual\"\r\n popper-class=\"flatmap-popper right-popper\"\r\n >\r\n <map-svg-icon\r\n v-popover:backgroundPopover\r\n icon=\"changeBckgd\"\r\n class=\"icon-button background-colour\"\r\n :class=\"{ open: drawerOpen, close: !drawerOpen }\"\r\n slot=\"reference\"\r\n @mouseover.native=\"showToolitip(3)\"\r\n @mouseout.native=\"hideToolitip(3)\"\r\n />\r\n </el-popover>\r\n <Tooltip\r\n ref=\"tooltip\"\r\n class=\"tooltip\"\r\n :content=\"tooltipContent\"\r\n :flatmapAPI=\"flatmapAPI\"\r\n @resource-selected=\"resourceSelected\"\r\n />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n/* eslint-disable no-alert, no-console */\r\nimport Vue from \"vue\";\r\nimport Tooltip from \"./Tooltip\";\r\nimport { MapSvgIcon, MapSvgSpriteColor } from \"@abi-software/svg-sprite\";\r\nimport {\r\n Checkbox,\r\n CheckboxGroup,\r\n Col,\r\n Loading,\r\n Radio,\r\n RadioGroup,\r\n Row\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 flatmapMarker from \"../icons/flatmap-marker\";\r\nlocale.use(lang);\r\nVue.use(Checkbox);\r\nVue.use(CheckboxGroup);\r\nVue.use(Col);\r\nVue.use(Loading.directive);\r\nVue.use(Radio);\r\nVue.use(RadioGroup);\r\nVue.use(Row);\r\nconst ResizeSensor = require(\"css-element-queries/src/ResizeSensor\");\r\n\r\nconst mapResize = map => {\r\n return () => {\r\n if (map) map.resize();\r\n };\r\n};\r\n\r\nexport default {\r\n name: \"FlatmapVuer\",\r\n components: {\r\n MapSvgIcon,\r\n MapSvgSpriteColor,\r\n Tooltip\r\n },\r\n beforeCreate: function() {\r\n this.mapManager = undefined;\r\n this.mapImp = undefined;\r\n },\r\n methods: {\r\n backgroundChangeCallback: function(colour) {\r\n this.currentBackground = colour;\r\n if (this.mapImp) {\r\n this.mapImp.setBackgroundColour(this.currentBackground, 1);\r\n }\r\n },\r\n toggleDrawer: function() {\r\n this.drawerOpen = !this.drawerOpen;\r\n },\r\n /**\r\n * Function to toggle colour/greyscale of organs.\r\n */\r\n setColour: function(flag) {\r\n this.colourRadio = flag;\r\n if (this.mapImp) {\r\n this.mapImp.setColour({ colour: flag, outline: this.outlinesRadio });\r\n }\r\n },\r\n /**\r\n * Function to toggle outlines f organs.\r\n */\r\n setOutlines: function(flag) {\r\n this.outlineRadio = flag;\r\n if (this.mapImp) {\r\n this.mapImp.setColour({ colour: this.colourRadio, outline: flag });\r\n }\r\n },\r\n /**\r\n * Function to toggle paths to default.\r\n * Also called when the associated button is pressed.\r\n */\r\n resetView: function() {\r\n if (this.mapImp) {\r\n this.mapImp.resetMap();\r\n this.checkedItems = this.mapImp.pathTypes().map(item => item.type);\r\n this.isIndeterminate = false;\r\n this.checkAll = true;\r\n }\r\n },\r\n /**\r\n * Function to zoom in.\r\n * Also called when the associated button is pressed.\r\n */\r\n zoomIn: function() {\r\n if (this.mapImp) {\r\n this.mapImp.zoomIn();\r\n }\r\n },\r\n /**\r\n * Function to zoom out.\r\n * Also called when the associated button is pressed.\r\n */\r\n zoomOut: function() {\r\n if (this.mapImp) {\r\n this.mapImp.zoomOut();\r\n }\r\n },\r\n visibilityToggle: function() {\r\n if (this.mapImp) {\r\n this.mapImp.showPaths(this.checkedItems);\r\n }\r\n },\r\n handleCheckedItemsChange: function(value) {\r\n let checkedCount = value.length;\r\n this.checkAll = checkedCount === this.pathways.length;\r\n this.isIndeterminate =\r\n checkedCount > 0 && checkedCount < this.pathways.length;\r\n },\r\n handleCheckAllChange(val) {\r\n this.checkedItems = val ? this.pathways.map(a => a.type) : [];\r\n this.isIndeterminate = false;\r\n if (this.mapImp) {\r\n this.mapImp.showPaths(this.checkedItems);\r\n }\r\n },\r\n enablePanZoomEvents: function(flag) {\r\n this.mapImp.enablePanZoomEvents(flag);\r\n },\r\n eventCallback: function() {\r\n return (eventType, data, ...args) => {\r\n if (eventType !== \"pan-zoom\") {\r\n const label = data.label;\r\n const resource = [data.models];\r\n const taxonomy = this.entry;\r\n const payload = {\r\n dataset: data.dataset,\r\n taxonomy: taxonomy,\r\n resource: resource,\r\n label: label,\r\n feature: data,\r\n userData: args,\r\n eventType: eventType\r\n };\r\n // Disable the nueron pop up for now.\r\n if (data && data.type !== \"marker\")\r\n this.checkAndCreatePopups(data);\r\n this.$emit(\"resource-selected\", payload);\r\n } else {\r\n this.$emit(\"pan-zoom-callback\", data);\r\n }\r\n };\r\n },\r\n // checkNeuronClicked shows a neuron path pop up if a path was recently clicked\r\n checkAndCreatePopups: function(data) {\r\n if (\r\n data.eventType == \"click\" &&\r\n this.createTooltipFromNeuronCuration(data)\r\n ) {\r\n this.mapImp.showPopup(\r\n this.mapImp.modelFeatureIds(data.resource[0])[0],\r\n this.$refs.tooltip.$el,\r\n { className: \"flatmap-tooltip-dialog\" }\r\n );\r\n this.popUpCssHack();\r\n }\r\n },\r\n popUpCssHack: function() {\r\n // Below is a hack to remove flatmap tooltips while popup is open\r\n let ftooltip = document.querySelector(\".flatmap-tooltip-popup\");\r\n if (ftooltip) ftooltip.style.display = \"none\";\r\n document.querySelector(\".mapboxgl-popup-close-button\").style.display =\r\n \"block\";\r\n this.$refs.tooltip.$el.style.display = \"flex\";\r\n document.querySelector(\".mapboxgl-popup-close-button\").onclick = () => {\r\n document.querySelector(\".flatmap-tooltip-popup\").style.display =\r\n \"block\";\r\n };\r\n },\r\n resourceSelected: function(action) {\r\n this.$emit(\"resource-selected\", action);\r\n },\r\n createTooltipFromNeuronCuration: function(data) {\r\n const feature = data.resource[0];\r\n let content = {\r\n title: undefined,\r\n components: undefined,\r\n start: undefined,\r\n distribution: undefined,\r\n actions: []\r\n };\r\n\r\n let foundAnnotations = false;\r\n this.tooltipVisible = false;\r\n\r\n // neural data check\r\n if (feature) {\r\n if (feature.includes(\"ilxtr:neuron\")) {\r\n foundAnnotations = true;\r\n this.tooltipVisible = true;\r\n this.tooltipContent = content;\r\n this.tooltipContent.uberon = feature;\r\n this.tooltipContent.title = data.label;\r\n this.tooltipContent.featureId = feature;\r\n this.tooltipContent.actions.push({\r\n title: \"Search for dataset\",\r\n label: \"Neuron Datasets\",\r\n resource: feature.split(\":\")[1],\r\n type: \"Neuron Search\",\r\n nervePath: true\r\n });\r\n }\r\n }\r\n // annotated with datset check\r\n if (data.dataset) {\r\n foundAnnotations = true;\r\n this.tooltipVisible = true;\r\n this.tooltipContent = content;\r\n this.tooltipContent.uberon = feature;\r\n this.tooltipContent.title = data.label;\r\n this.tooltipContent.actions.push({\r\n title: \"View dataset\",\r\n resource: data.dataset,\r\n type: \"URL\",\r\n nervePath: false\r\n });\r\n }\r\n\r\n if (foundAnnotations) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n // Keeping this as an API\r\n showPopup: function(featureId, node, options) {\r\n let myOptions = options;\r\n if (this.mapImp) {\r\n if (myOptions) {\r\n if (!myOptions.className) myOptions.className = \"flatmapvuer-popover\";\r\n } else {\r\n myOptions = { className: \"flatmapvuer-popover\" };\r\n }\r\n this.mapImp.showPopup(featureId, node, myOptions);\r\n }\r\n },\r\n showMarkerPopup: function(featureId, node, options) {\r\n if (this.mapImp) {\r\n this.mapImp.showMarkerPopup(featureId, node, options);\r\n }\r\n },\r\n setHelpMode: function(helpMode) {\r\n if (helpMode) {\r\n this.inHelp = true;\r\n this.hoverVisibilities.forEach(item => {\r\n item.value = true;\r\n });\r\n this.openFlatmapHelpPopup();\r\n } else {\r\n this.inHelp = false;\r\n this.hoverVisibilities.forEach(item => {\r\n item.value = false;\r\n });\r\n this.closeFlatmapHelpPopup();\r\n }\r\n },\r\n showToolitip: function(tooltipNumber) {\r\n if (!this.inHelp) {\r\n this.tooltipWait = setTimeout(() => {\r\n this.hoverVisibilities[tooltipNumber].value = true;\r\n }, 500);\r\n }\r\n },\r\n hideToolitip: function(tooltipNumber) {\r\n if (!this.inHelp) {\r\n this.hoverVisibilities[tooltipNumber].value = false;\r\n clearTimeout(this.tooltipWait);\r\n }\r\n },\r\n openFlatmapHelpPopup: function() {\r\n if (this.mapImp) {\r\n let heartId = this.mapImp.featureIdsForModel(\"UBERON:0000948\")[0];\r\n const elm = \"Click for more information\";\r\n this.mapImp.showPopup(heartId, elm, {\r\n anchor: \"top\",\r\n className: \"flatmap-popup-popper\"\r\n });\r\n }\r\n },\r\n closeFlatmapHelpPopup: function() {\r\n this.$el\r\n .querySelectorAll(\".mapboxgl-popup-close-button\")\r\n .forEach(item => {\r\n item.click();\r\n });\r\n },\r\n getLabels: function() {\r\n let labels = [];\r\n if (this.mapImp) {\r\n let annotations = this.mapImp.annotations;\r\n for (let value of annotations.values()) {\r\n if (value.label) labels.push(value.label);\r\n }\r\n return Array.from(new Set(labels));\r\n }\r\n },\r\n getState: function() {\r\n if (this.mapImp) {\r\n let state = {\r\n entry: this.entry,\r\n viewport: this.mapImp.getState()\r\n };\r\n return state;\r\n }\r\n return undefined;\r\n },\r\n setState: function(state) {\r\n if (state) {\r\n if (this.mapImp && state.entry) {\r\n if (this.entry == state.entry)\r\n if (state.viewport) {\r\n this.mapImp.setState(state.viewport);\r\n }\r\n } else {\r\n this.createFlatmap(state);\r\n }\r\n }\r\n },\r\n createFlatmap: function(state) {\r\n if (!this.mapImp && !this.loading) {\r\n this.loading = true;\r\n let minimap = false;\r\n if (this.displayMinimap) {\r\n minimap = { position: \"top-right\" };\r\n }\r\n let entry = this.entry;\r\n if (state && state.entry) entry = state.entry;\r\n let promise1 = this.mapManager.loadMap(\r\n entry,\r\n this.$refs.display,\r\n this.eventCallback(),\r\n {\r\n //fullscreenControl: false,\r\n //annotatable: false,\r\n //debug: true,\r\n featureInfo: this.featureInfo,\r\n \"min-zoom\": this.minZoom,\r\n pathControls: false,\r\n searchable: this.searchable,\r\n tooltips: this.tooltips,\r\n minimap: minimap\r\n }\r\n );\r\n promise1.then(returnedObject => {\r\n this.mapImp = returnedObject;\r\n this.sensor = new ResizeSensor(\r\n this.$refs.display,\r\n mapResize(this.mapImp)\r\n );\r\n this.mapImp.setBackgroundOpacity(1);\r\n this.backgroundChangeCallback(this.currentBackground);\r\n this.pathways = this.mapImp.pathTypes();\r\n this.$emit(\"ready\", this);\r\n this.loading = false;\r\n if (this._viewportToBeSet)\r\n this.mapImp.setState(this._viewportToBeSet);\r\n else if (state && state.viewport)\r\n this.mapImp.setState(state.viewport);\r\n });\r\n } else if (state) {\r\n if (this.entry == state.entry) this._viewportToBeSet = state.viewport;\r\n }\r\n },\r\n showMinimap: function(flag) {\r\n if (this.mapImp)\r\n this.mapImp.showMinimap(flag);\r\n },\r\n showPathwaysDrawer: function(flag) {\r\n this.drawerOpen = flag;\r\n },\r\n /**\r\n * Function to display features with annotation matching the provided term.\r\n */\r\n searchAndShowResult: function(term) {\r\n if (this.mapImp) {\r\n if (term === undefined || term === \"\") {\r\n this.mapImp.clearSearchResults();\r\n } else {\r\n let searchResults = this.mapImp.search(term);\r\n if (searchResults && searchResults.__featureIds.length > 0)\r\n this.mapImp.showSearchResults(searchResults);\r\n else this.mapImp.clearSearchResults();\r\n }\r\n }\r\n }\r\n },\r\n props: {\r\n entry: String,\r\n featureInfo: {\r\n type: Boolean,\r\n default: false\r\n },\r\n minZoom: {\r\n type: Number,\r\n default: 4\r\n },\r\n pathControls: {\r\n type: Boolean,\r\n default: true\r\n },\r\n searchable: {\r\n type: Boolean,\r\n default: false\r\n },\r\n tooltips: {\r\n type: Boolean,\r\n default: true\r\n },\r\n helpMode: {\r\n type: Boolean,\r\n default: false\r\n },\r\n renderAtMounted: {\r\n type: Boolean,\r\n default: true\r\n },\r\n displayWarning: {\r\n type: Boolean,\r\n default: true\r\n },\r\n displayMinimap: {\r\n type: Boolean,\r\n default: false\r\n },\r\n warningMessage: {\r\n type: String,\r\n default: \"Beta feature - This map is based on the connectivity of a rat. New connectivity and species specificity will be added as the SPARC program progress.\"\r\n },\r\n /**\r\n * State containing state of the flatmap.\r\n */\r\n state: {\r\n type: Object,\r\n default: undefined\r\n },\r\n /**\r\n * Specify the endpoint of the flatmap server.\r\n */\r\n flatmapAPI: {\r\n type: String,\r\n default: \"https://mapcore-demo.org/flatmaps/\"\r\n }\r\n },\r\n data: function() {\r\n return {\r\n checkedItems: [],\r\n pathways: [],\r\n isIndeterminate: false,\r\n checkAll: true,\r\n hoverVisibilities: [\r\n { value: false },\r\n { value: false },\r\n { value: false },\r\n { value: false },\r\n { value: false },\r\n { value: false },\r\n { value: false }\r\n ],\r\n inHelp: false,\r\n currentBackground: \"white\",\r\n availableBackground: [\"white\", \"lightskyblue\", \"black\"],\r\n loading: false,\r\n flatmapMarker: flatmapMarker,\r\n drawerOpen: true,\r\n tooltipContent: {},\r\n colourRadio: true,\r\n outlinesRadio: true\r\n };\r\n },\r\n watch: {\r\n entry: function() {\r\n if (!this.state) this.createFlatmap();\r\n },\r\n helpMode: function(val) {\r\n this.setHelpMode(val);\r\n },\r\n state: {\r\n handler: function(state) {\r\n this.setState(state);\r\n },\r\n immediate: true,\r\n deep: true\r\n }\r\n },\r\n mounted: function() {\r\n const flatmap = require(\"@abi-software/flatmap-viewer\");\r\n this.mapManager = new flatmap.MapManager(this.flatmapAPI);\r\n if (this.renderAtMounted) this.createFlatmap();\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 lang=\"scss\">\r\n@import \"~element-ui/packages/theme-chalk/src/button\";\r\n@import \"~element-ui/packages/theme-chalk/src/checkbox\";\r\n@import \"~element-ui/packages/theme-chalk/src/checkbox-group\";\r\n@import \"~element-ui/packages/theme-chalk/src/loading\";\r\n@import \"~element-ui/packages/theme-chalk/src/row\";\r\n\r\n.warning-icon {\r\n position: absolute;\r\n top: 90px;\r\n left: 37px;\r\n text-align: left;\r\n font-size: 25px;\r\n color: $warning;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n}\r\n\r\n.warning-text {\r\n font-size: 15px;\r\n vertical-align: 5px;\r\n}\r\n\r\n.path-visual {\r\n margin: 3px 0;\r\n height: 3px;\r\n width: 25px;\r\n margin-right: 5px;\r\n display: inline-block;\r\n &.cns {\r\n background: #9b1fc1;\r\n }\r\n &.lcn {\r\n background: #f19e38;\r\n }\r\n &.para-pre {\r\n background: #3f8f4a;\r\n }\r\n &.para-post {\r\n background: repeating-linear-gradient(\r\n 90deg,\r\n #3f8f4a,\r\n #3f8f4a 6px,\r\n transparent 0,\r\n transparent 9px\r\n );\r\n }\r\n &.sensory {\r\n background: #2a62f6;\r\n }\r\n &.somatic {\r\n background: #98561d;\r\n }\r\n &.symp-pre {\r\n background: #ea3423;\r\n }\r\n &.symp-post {\r\n background: repeating-linear-gradient(\r\n 90deg,\r\n #ea3423,\r\n #ea3423 6px,\r\n transparent 0,\r\n transparent 9px\r\n );\r\n }\r\n}\r\n\r\n.flatmap-container {\r\n height: 100%;\r\n width: 100%;\r\n}\r\n\r\n.pathway-location {\r\n position: absolute;\r\n bottom: 0px;\r\n transition: all 1s ease;\r\n &.open {\r\n left: 0px;\r\n }\r\n &.close {\r\n left: -298px;\r\n }\r\n}\r\n\r\n.pathway-container {\r\n float: left;\r\n padding-left: 16px;\r\n padding-right: 18px;\r\n max-height: calc(100% - 184px);\r\n text-align: left;\r\n overflow: auto;\r\n border: 1px solid rgb(220, 223, 230);\r\n padding-top: 7px;\r\n padding-bottom: 16px;\r\n background: #ffffff;\r\n}\r\n\r\n.pathways-display-text {\r\n width: 59px;\r\n height: 20px;\r\n color: rgb(48, 49, 51);\r\n font-size: 14px;\r\n font-weight: normal;\r\n line-height: 20px;\r\n margin-left: 8px;\r\n}\r\n\r\n.all-checkbox {\r\n float: right;\r\n}\r\n\r\n.checkbox-container {\r\n display: flex;\r\n cursor: pointer;\r\n}\r\n\r\n.checkbox-group {\r\n width: 260px;\r\n border: 1px solid rgb(144, 147, 153);\r\n border-radius: 4px;\r\n background: #ffffff;\r\n}\r\n\r\n.my-checkbox {\r\n background-color: #fff;\r\n width: 100%;\r\n}\r\n\r\n.checkbox-group-inner {\r\n padding: 18px;\r\n}\r\n\r\n.flatmap-marker-help {\r\n display: inline-block;\r\n}\r\n\r\n::v-deep .popper-bump-right {\r\n left: 30px;\r\n}\r\n\r\n::v-deep .el-checkbox__label {\r\n padding-left: 5px;\r\n color: $app-primary-color;\r\n font-size: 12px;\r\n font-weight: 500;\r\n letter-spacing: 0px;\r\n line-height: 14px;\r\n}\r\n\r\n::v-deep .el-checkbox__input {\r\n &.is-indeterminate,\r\n &.is-checked {\r\n .el-checkbox__inner {\r\n background-color: $app-primary-color;\r\n border-color: $app-primary-color;\r\n }\r\n }\r\n}\r\n\r\n::v-deep .el-checkbox__label {\r\n color: $app-primary-color !important;\r\n}\r\n\r\n.el-dropdown-link {\r\n cursor: pointer;\r\n color: #409eff;\r\n}\r\n.el-icon-arrow-down {\r\n font-size: 12px;\r\n}\r\n.demonstration {\r\n display: block;\r\n color: #8492a6;\r\n font-size: 14px;\r\n margin-bottom: 20px;\r\n}\r\n\r\n.tooltip {\r\n display: none;\r\n}\r\n\r\n::v-deep .mapboxgl-popup {\r\n max-width: 300px !important;\r\n}\r\n\r\n::v-deep .flatmap-tooltip-popup {\r\n &.mapboxgl-popup-anchor-bottom {\r\n .mapboxgl-popup-content {\r\n margin-bottom: 12px;\r\n &::after,\r\n &::before {\r\n top: 100%;\r\n border-width: 12px;\r\n }\r\n /* this border color controlls the color of the triangle (what looks like the fill of the triangle) */\r\n &::after {\r\n margin-top: -1px;\r\n border-color: rgb(255, 255, 255) transparent transparent transparent;\r\n }\r\n /* this border color controlls the outside, thin border */\r\n &::before {\r\n margin: 0 auto;\r\n border-color: $app-primary-color transparent transparent transparent;\r\n }\r\n }\r\n }\r\n &.mapboxgl-popup-anchor-top {\r\n .mapboxgl-popup-content {\r\n margin-top: 18px;\r\n &::after,\r\n &::before {\r\n top: calc(-100% + 6px);\r\n border-width: 12px;\r\n }\r\n /* this border color controlls the color of the triangle (what looks like the fill of the triangle) */\r\n &::after {\r\n margin-top: 1px;\r\n border-color: transparent transparent rgb(255, 255, 255) transparent;\r\n }\r\n &::before {\r\n margin: 0 auto;\r\n border-color: transparent transparent $app-primary-color transparent;\r\n }\r\n }\r\n }\r\n .mapboxgl-popup-content {\r\n border-radius: 4px;\r\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\r\n pointer-events: none;\r\n display: none;\r\n background: #fff;\r\n border: 1px solid $app-primary-color;\r\n padding-left: 6px;\r\n padding-right: 6px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n &::after,\r\n &::before {\r\n content: \"\";\r\n display: block;\r\n position: absolute;\r\n width: 0;\r\n height: 0;\r\n border-style: solid;\r\n flex-shrink: 0;\r\n }\r\n }\r\n .mapboxgl-popup-tip {\r\n display: none;\r\n }\r\n}\r\n\r\n::v-deep .mapboxgl-popup {\r\n &.flatmap-marker-popup {\r\n box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);\r\n pointer-events: auto;\r\n background: #fff;\r\n }\r\n}\r\n\r\n/* Fix for chrome bug where under triangle pops up above one on top of it */\r\n.selector:not(*:root),\r\n::v-deep.flatmap-tooltip-popup {\r\n .mapboxgl-popup-content::after {\r\n top: 99.9%;\r\n }\r\n}\r\n\r\n::v-deep .flatmap-tooltip-dialog {\r\n .mapboxgl-popup-tip {\r\n display: none;\r\n }\r\n}\r\n\r\n::v-deep .flatmap-marker-popup {\r\n .mapboxgl-popup-content {\r\n padding: 0px;\r\n }\r\n}\r\n\r\n::v-deep .flatmapvuer-popover {\r\n .mapboxgl-popup-close-button {\r\n position: absolute;\r\n right: 0.5em;\r\n top: 0;\r\n border: 0;\r\n border-radius: 0 3px 0 0;\r\n cursor: pointer;\r\n background-color: transparent;\r\n font-size: 2.5em;\r\n color: grey;\r\n top: 0.95em;\r\n }\r\n}\r\n\r\n.zoomOut {\r\n padding-left: 8px;\r\n}\r\n\r\n.fitWindow {\r\n padding-left: 8px;\r\n}\r\n\r\n.background-colour {\r\n bottom: 16px;\r\n position: absolute;\r\n transition: all 1s ease;\r\n}\r\n.background-colour.open {\r\n left: 322px;\r\n}\r\n.background-colour.close {\r\n left: 24px;\r\n}\r\n\r\n::v-deep .background-popper {\r\n padding: 5px 12px;\r\n background-color: #ffffff;\r\n border: 1px solid $app-primary-color;\r\n box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.06);\r\n height: 200px;\r\n width: 175px;\r\n min-width: 175px;\r\n &.el-popper[x-placement^=\"top\"] {\r\n .popper__arrow {\r\n border-top-color: $app-primary-color !important;\r\n &::after {\r\n border-top-color: #fff !important;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.backgroundText {\r\n color: rgb(48, 49, 51);\r\n font-size: 14px;\r\n font-weight: normal;\r\n line-height: 20px;\r\n}\r\n\r\n.backgroundControl {\r\n display: flex;\r\n margin-top: 16px;\r\n}\r\n\r\n.backgroundChoice {\r\n width: 20px;\r\n height: 20px;\r\n border: 1px solid rgb(144, 147, 153);\r\n margin-left: 20px;\r\n &.active {\r\n border: 2px solid $app-primary-color;\r\n }\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n &.white {\r\n background-color: white;\r\n margin-left: 10px;\r\n }\r\n &.black {\r\n background-color: black;\r\n }\r\n &.lightskyblue {\r\n background-color: white;\r\n }\r\n}\r\n\r\n.togglePaths {\r\n top: 201px;\r\n right: 20px;\r\n position: absolute;\r\n}\r\n\r\n.icon-button {\r\n height: 24px !important;\r\n width: 24px !important;\r\n color: $app-primary-color;\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n}\r\n\r\n::v-deep .flatmap-popper {\r\n padding: 6px 4px;\r\n font-size: 12px;\r\n color: rgb(48, 49, 51);\r\n background-color: #f3ecf6;\r\n border: 1px solid $app-primary-color;\r\n white-space: nowrap;\r\n min-width: unset;\r\n &.warning-popper {\r\n min-width: 150px;\r\n max-width: 400px;\r\n word-break: keep-all;\r\n white-space: unset;\r\n }\r\n &.left-popper {\r\n .popper__arrow {\r\n border-left-color: $app-primary-color !important;\r\n &::after {\r\n border-left-color: #f3ecf6 !important;\r\n }\r\n }\r\n }\r\n &.right-popper {\r\n .popper__arrow {\r\n border-right-color: $app-primary-color !important;\r\n &:after {\r\n border-right-color: #f3ecf6 !important;\r\n }\r\n }\r\n }\r\n &.el-popper[x-placement^=\"top\"] {\r\n .popper__arrow {\r\n border-top-color: $app-primary-color !important;\r\n &:after {\r\n border-top-color: #f3ecf6 !important;\r\n }\r\n }\r\n }\r\n}\r\n\r\n::v-deep .el-loading-spinner {\r\n i,\r\n .el-loading-text {\r\n color: $app-primary-color;\r\n }\r\n}\r\n\r\n::v-deep .flatmap-popup-popper {\r\n .mapboxgl-popup-tip {\r\n border-bottom-color: $app-primary-color;\r\n }\r\n .mapboxgl-popup-content {\r\n padding: 6px 4px;\r\n font-size: 12px;\r\n color: rgb(48, 49, 51);\r\n background-color: #f3ecf6;\r\n border: 1px solid $app-primary-color;\r\n white-space: nowrap;\r\n min-width: unset;\r\n .mapboxgl-popup-close-button {\r\n display: none;\r\n }\r\n }\r\n}\r\n\r\n::v-deep .flatmap-popper {\r\n \r\n}\r\n\r\n::v-deep .popper-zoomout {\r\n padding-right: 13px !important;\r\n left: -21px !important;\r\n}\r\n\r\n::v-deep .popper-zoomout {\r\n .popper__arrow {\r\n left: 53px !important;\r\n }\r\n}\r\n\r\n::v-deep .mapboxgl-popup-content {\r\n padding: 0px;\r\n}\r\n\r\n.bottom-right-control {\r\n position: absolute;\r\n right: 16px;\r\n bottom: 16px;\r\n}\r\n\r\n::v-deep .my-drawer {\r\n background: rgba(0, 0, 0, 0);\r\n box-shadow: none;\r\n}\r\n\r\n.drawer {\r\n ::v-deep .el-drawer:focus {\r\n outline: none;\r\n }\r\n}\r\n\r\n.open-drawer,\r\n.drawer-button {\r\n z-index: 8;\r\n width: 20px;\r\n height: 40px;\r\n border: solid 1px #e4e7ed;\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.open-drawer {\r\n position: absolute;\r\n left: 0px;\r\n background-color: #f7faff;\r\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.06);\r\n}\r\n\r\n.drawer-button {\r\n float: left;\r\n margin-top: calc(50% - 36px);\r\n border-left: 0;\r\n background-color: #ffffff;\r\n i {\r\n margin-top: 12px;\r\n color: $app-primary-color;\r\n transition-delay: 0.9s;\r\n }\r\n &.open {\r\n i {\r\n transform: rotate(0deg) scaleY(2.5);\r\n }\r\n }\r\n &.close {\r\n i {\r\n transform: rotate(180deg) scaleY(2.5);\r\n }\r\n }\r\n}\r\n\r\n::v-deep .mapboxgl-canvas-container {\r\n canvas {\r\n outline: none;\r\n }\r\n}\r\n\r\n.backgroundSpacer {\r\n border-bottom: 1px solid #e4e7ed;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.flatmap-radio {\r\n ::v-deep label {\r\n margin-right: 20px;\r\n &:last-child {\r\n margin-right: 0px;\r\n }\r\n }\r\n .el-radio__input {\r\n &.is-checked {\r\n & + .el-radio__label {\r\n color: $app-primary-color;\r\n }\r\n .el-radio__inner {\r\n border-color: $app-primary-color;\r\n background: $app-primary-color;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n\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!./FlatmapVuer.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!./FlatmapVuer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FlatmapVuer.vue?vue&type=template&id=5fb00c0b&scoped=true&\"\nimport script from \"./FlatmapVuer.vue?vue&type=script&lang=js&\"\nexport * from \"./FlatmapVuer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FlatmapVuer.vue?vue&type=style&index=0&id=5fb00c0b&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5fb00c0b\",\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:\"multi-container\"},[_c('div',{staticStyle:{\"position\":\"absolute\",\"z-index\":\"10\"}},[_c('div',{staticClass:\"species-display-text\"},[_vm._v(\" Species \")]),_c('el-popover',{ref:\"selectPopover\",attrs:{\"content\":\"Select a species\",\"placement\":\"right\",\"appendToBody\":false,\"trigger\":\"manual\",\"popper-class\":\"flatmap-popper right-popper\"},model:{value:(_vm.helpMode),callback:function ($$v) {_vm.helpMode=$$v},expression:\"helpMode\"}}),_c('el-select',{directives:[{name:\"popover\",rawName:\"v-popover:selectPopover\",arg:\"selectPopover\"}],staticClass:\"select-box\",attrs:{\"id\":\"flatmap-select\",\"popper-append-to-body\":_vm.appendToBody,\"placeholder\":\"Select\",\"popper-class\":\"flatmap_dropdown\"},on:{\"change\":_vm.flatmapChanged},model:{value:(_vm.activeSpecies),callback:function ($$v) {_vm.activeSpecies=$$v},expression:\"activeSpecies\"}},_vm._l((_vm.speciesList),function(item,key){return _c('el-option',{key:key,attrs:{\"label\":key,\"value\":key}},[_c('el-row',[_c('el-col',{attrs:{\"span\":8}},[_c('i',{class:item.iconClass})]),_c('el-col',{attrs:{\"span\":12}},[_vm._v(_vm._s(key))])],1)],1)}),1)],1),_vm._l((_vm.speciesList),function(item,key){return _c('FlatmapVuer',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.activeSpecies==key),expression:\"activeSpecies==key\"}],key:key,ref:key,refInFor:true,staticStyle:{\"height\":\"100%\"},attrs:{\"showLayer\":_vm.showLayer,\"entry\":item.taxo,\"displayWarning\":item.displayWarning,\"warningMessage\":_vm.warningMessage,\"featureInfo\":_vm.featureInfo,\"minZoom\":_vm.minZoom,\"pathControls\":_vm.pathControls,\"searchable\":_vm.searchable,\"helpMode\":_vm.helpMode,\"renderAtMounted\":_vm.renderAtMounted,\"displayMinimap\":_vm.displayMinimap,\"flatmapAPI\":_vm.flatmapAPI},on:{\"resource-selected\":_vm.FlatmapSelected,\"ready\":_vm.FlatmapReady,\"pan-zoom-callback\":_vm.panZoomCallback}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"multi-container\">\r\n <div style=\"position:absolute;z-index:10;\">\r\n <div class=\"species-display-text\">\r\n Species\r\n </div>\r\n <el-popover content=\"Select a species\" placement=\"right\" \r\n :appendToBody=false trigger=\"manual\" popper-class=\"flatmap-popper right-popper\" v-model=\"helpMode\" ref=\"selectPopover\">\r\n </el-popover>\r\n <el-select\r\n id=\"flatmap-select\"\r\n :popper-append-to-body=\"appendToBody\"\r\n v-model=\"activeSpecies\"\r\n placeholder=\"Select\"\r\n class=\"select-box\"\r\n popper-class=\"flatmap_dropdown\"\r\n @change=\"flatmapChanged\"\r\n v-popover:selectPopover\r\n >\r\n <el-option v-for=\"(item, key) in speciesList\" :key=\"key\" :label=\"key\" :value=\"key\">\r\n <el-row>\r\n <el-col :span=\"8\"><i :class=\"item.iconClass\"></i></el-col>\r\n <el-col :span=\"12\">{{ key }}</el-col>\r\n </el-row>\r\n </el-option>\r\n </el-select>\r\n </div>\r\n <FlatmapVuer\r\n v-for=\"(item, key) in speciesList\"\r\n :key=\"key\"\r\n :showLayer=\"showLayer\"\r\n v-show=\"activeSpecies==key\"\r\n :entry=\"item.taxo\"\r\n :displayWarning=\"item.displayWarning\"\r\n :warningMessage=\"warningMessage\"\r\n :ref=\"key\"\r\n @resource-selected=\"FlatmapSelected\"\r\n @ready=\"FlatmapReady\"\r\n @pan-zoom-callback=\"panZoomCallback\"\r\n :featureInfo=\"featureInfo\"\r\n :minZoom=\"minZoom\"\r\n :pathControls=\"pathControls\"\r\n :searchable=\"searchable\"\r\n :helpMode=\"helpMode\"\r\n :renderAtMounted=\"renderAtMounted\"\r\n :displayMinimap=\"displayMinimap\"\r\n style=\"height:100%\"\r\n :flatmapAPI=\"flatmapAPI\"\r\n />\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 FlatmapVuer from \"./FlatmapVuer.vue\";\r\nimport { Col, Option, Select, Row, Popover } from \"element-ui\"; \r\nimport lang from \"element-ui/lib/locale/lang/en\";\r\nimport locale from \"element-ui/lib/locale\";\r\nlocale.use(lang);\r\nVue.use(Col);\r\nVue.use(Row);\r\nVue.use(Option);\r\nVue.use(Select);\r\nVue.use(Popover)\r\n\r\n\r\nexport default {\r\n name: \"MultiFlatmapVuer\",\r\n components: {\r\n FlatmapVuer\r\n },\r\n mounted: function() {\r\n this.initialise();\r\n },\r\n methods: {\r\n initialise: function() {\r\n return new Promise(resolve => {\r\n fetch(this.flatmapAPI)\r\n .then(response => response.json())\r\n .then(data => {\r\n this.speciesLis= {};\r\n Object.keys(this.availableSpecies).forEach(key => {\r\n for (let i = 0; i < data.length; i++) {\r\n if (data[i].describes == this.availableSpecies[key].taxo) {\r\n this.speciesList[key] = this.availableSpecies[key];\r\n break;\r\n }\r\n }\r\n });\r\n if (!this.state) {\r\n if (this.initial && this.speciesList[this.initial] !== undefined) {\r\n this.activeSpecies = this.initial;\r\n } else {\r\n this.activeSpecies = Object.keys(this.speciesList)[0];\r\n }\r\n Vue.nextTick(() => {\r\n if (this.$refs[this.activeSpecies])\r\n this.$refs[this.activeSpecies][0].createFlatmap();\r\n });\r\n }\r\n resolve();\r\n });\r\n })\r\n },\r\n FlatmapSelected: function(resource) {\r\n this.$emit(\"resource-selected\", resource);\r\n },\r\n FlatmapReady: function(component) {\r\n this.$emit(\"ready\", component);\r\n },\r\n getCoordinatesOfLastClick: function() {\r\n const flatmap = this.$refs[this.activeSpecies];\r\n if (flatmap && flatmap[0]) {\r\n return flatmap[0].getCoordinatesOfLastClick();\r\n }\r\n return undefined;\r\n },\r\n getCurrentFlatmap: function() {\r\n return this.$refs[this.activeSpecies][0];\r\n },\r\n panZoomCallback: function(payload) {\r\n this.$emit(\"pan-zoom-callback\", payload);\r\n },\r\n showPopup: function(featureId, node, options) {\r\n let map = this.getCurrentFlatmap();\r\n map.showPopup(featureId, node, options);\r\n },\r\n showMarkerPopup: function(featureId, node, options) {\r\n let map = this.getCurrentFlatmap();\r\n map.showMarkerPopup(featureId, node, options);\r\n },\r\n flatmapChanged: function(species){\r\n if (this.activeSpecies != species) \r\n this.activeSpecies = species;\r\n this.$refs[this.activeSpecies][0].createFlatmap();\r\n this.$emit('flatmapChanged', this.activeSpecies);\r\n },\r\n /**\r\n * Function used for getting the current states of the scene. This exported states \r\n * can be imported using the importStates method.\r\n * \r\n * @public\r\n */\r\n getState: function() {\r\n let state = {\r\n species: this.activeSpecies,\r\n state: undefined,\r\n };\r\n let map = this.getCurrentFlatmap();\r\n state.state = map.getState();\r\n return state;\r\n },\r\n /**\r\n * Function used for importing the states of the scene. This exported states \r\n * can be imported using the read states method.\r\n * \r\n * @public\r\n */\r\n setState: function(state) {\r\n if (state) {\r\n this.initialise().then(() => {\r\n if (state.species && state.species !== this.activeSpecies) {\r\n this.activeSpecies = state.species;\r\n if (state.state) {\r\n //Wait for next tick when the refs are ready for rendering\r\n this.$nextTick(() => {\r\n this.$refs[this.activeSpecies][0].createFlatmap(state.state);\r\n this.$emit('flatmapChanged', this.activeSpecies);\r\n })\r\n }\r\n } else if (state.state) {\r\n let map = this.getCurrentFlatmap();\r\n map.setState(state.state);\r\n }\r\n })\r\n }\r\n },\r\n resourceSelected: function(action) {\r\n this.$emit(\"resource-selected\", action);\r\n },\r\n },\r\n props: {\r\n showLayer: {\r\n type: Boolean,\r\n default: false\r\n },\r\n featureInfo: {\r\n type: Boolean,\r\n default: false\r\n },\r\n pathControls: {\r\n type: Boolean,\r\n default: true\r\n },\r\n searchable: {\r\n type: Boolean,\r\n default: false\r\n },\r\n /**\r\n * Initial species for the flatmap.\r\n * This value will be ignored if a valid state object is provided.\r\n */\r\n initial: {\r\n type: String,\r\n default: \"\"\r\n },\r\n minZoom: {\r\n type: Number,\r\n default: 4\r\n },\r\n renderAtMounted: {\r\n type: Boolean,\r\n default: false\r\n },\r\n helpMode: {\r\n type: Boolean,\r\n default: false\r\n },\r\n displayMinimap: {\r\n type: Boolean,\r\n default: false\r\n },\r\n warningMessage: {\r\n type: String,\r\n default: \"Beta feature - This map is based on the connectivity of a rat. New connectivity and species specificity will be added as the SPARC program progress.\"\r\n },\r\n availableSpecies: {},\r\n /**\r\n * State containing state of the flatmap.\r\n */\r\n state: {\r\n type: Object,\r\n default: undefined,\r\n },\r\n /**\r\n * Specify the endpoint of the flatmap server.\r\n */\r\n flatmapAPI: {\r\n type: String,\r\n default: \"https://mapcore-demo.org/flatmaps/\"\r\n },\r\n },\r\n data: function() {\r\n return {\r\n activeSpecies: undefined,\r\n appendToBody: false,\r\n speciesList: {}\r\n };\r\n },\r\n watch: {\r\n state: {\r\n handler: function(state) {\r\n this.setState(state);\r\n },\r\n immediate: true,\r\n deep: true,\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n@import \"~element-ui/packages/theme-chalk/src/select\";\r\n@import \"~element-ui/packages/theme-chalk/src/option\";\r\n\r\n.multi-container {\r\n height: 100%;\r\n width: 100%;\r\n}\r\n\r\n.species-display-text {\r\n width: 47px;\r\n height: 20px;\r\n color: rgb(48, 49, 51);\r\n font-size: 14px;\r\n font-weight: normal;\r\n line-height: 20px;\r\n left:24px;\r\n top:16px;\r\n position: absolute;\r\n}\r\n\r\n.select-box {\r\n width: 120px;\r\n border-radius: 4px;\r\n border: 1px solid rgb(144, 147, 153);\r\n background-color: var(--white);\r\n font-weight: 500;\r\n color:rgb(48, 49, 51);;\r\n left: 16px;\r\n top: 44px;\r\n position: absolute;\r\n ::v-deep .el-input__inner {\r\n color: rgb(48, 49, 51);\r\n padding-top: 0.25em;\r\n .is-focus {\r\n border: 1px solid $app-primary-color;\r\n }\r\n }\r\n}\r\n\r\n.flatmap_dropdown {\r\n .el-select-dropdown__item {\r\n white-space: nowrap;\r\n text-align: left;\r\n &.selected {\r\n color: $app-primary-color;\r\n font-weight: normal;\r\n }\r\n }\r\n}\r\n\r\n::v-deep .flatmap-popper {\r\n padding: 6px 4px;\r\n font-size:12px;\r\n color: rgb(48, 49, 51);\r\n background-color: #f3ecf6;\r\n border: 1px solid $app-primary-color;\r\n white-space: nowrap;\r\n min-width: unset;\r\n &.right-popper {\r\n .popper__arrow {\r\n border-right-color: $app-primary-color !important;\r\n &:after {\r\n border-right-color: #f3ecf6 !important;\r\n }\r\n }\r\n }\r\n}\r\n\r\n::v-deep .flatmap-marker-popup{\r\n background-color: #f0f0f000 !important;\r\n box-shadow: none !important;\r\n}\r\n\r\n</style>\r\n\r\n\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!./MultiFlatmapVuer.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!./MultiFlatmapVuer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MultiFlatmapVuer.vue?vue&type=template&id=01b30450&scoped=true&\"\nimport script from \"./MultiFlatmapVuer.vue?vue&type=script&lang=js&\"\nexport * from \"./MultiFlatmapVuer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MultiFlatmapVuer.vue?vue&type=style&index=0&id=01b30450&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"01b30450\",\n null\n \n)\n\nexport default component.exports","module.exports = require(\"core-js/modules/es.string.includes.js\");","module.exports = require(\"element-ui/lib/theme-chalk/row.css\");","module.exports = require(\"element-ui/lib/radio-group\");"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack://flatmapvuer/webpack/universalModuleDefinition","webpack://flatmapvuer/webpack/bootstrap","webpack://flatmapvuer/external \"element-ui/lib/checkbox-group\"","webpack://flatmapvuer/external \"core-js/modules/es.string.split.js\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/checkbox-group.css\"","webpack://flatmapvuer/external \"element-ui/lib/select\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/select.css\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/radio-group.css\"","webpack://flatmapvuer/external \"core-js/modules/web.dom-collections.for-each.js\"","webpack://flatmapvuer/external \"core-js/modules/web.dom-collections.iterator.js\"","webpack://flatmapvuer/external \"core-js/modules/es.array.filter.js\"","webpack://flatmapvuer/external \"element-ui/lib/container\"","webpack://flatmapvuer/external \"core-js/modules/es.string.search.js\"","webpack://flatmapvuer/external \"element-ui/lib/main\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/link.css\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/button.css\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/radio.css\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/loading.css\"","webpack://flatmapvuer/external \"element-ui/lib/header\"","webpack://flatmapvuer/external \"core-js/modules/es.symbol.iterator.js\"","webpack://flatmapvuer/external \"core-js/modules/es.regexp.to-string.js\"","webpack://flatmapvuer/./src/components/FlatmapVuer.vue?fdca","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/carousel.css\"","webpack://flatmapvuer/external \"@abi-software/svg-sprite\"","webpack://flatmapvuer/external \"core-js/modules/es.array.from.js\"","webpack://flatmapvuer/external \"core-js/modules/es.array.map.js\"","webpack://flatmapvuer/external \"core-js/modules/es.symbol.description.js\"","webpack://flatmapvuer/external \"@abi-software/flatmap-viewer\"","webpack://flatmapvuer/external \"core-js/modules/es.array.iterator.js\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/header.css\"","webpack://flatmapvuer/external \"element-ui/lib/radio\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/checkbox.css\"","webpack://flatmapvuer/external \"element-ui/lib/button\"","webpack://flatmapvuer/external \"core-js/modules/es.string.replace.js\"","webpack://flatmapvuer/external \"element-ui/lib/locale/lang/en\"","webpack://flatmapvuer/external \"element-ui/lib/row\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/col.css\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/main.css\"","webpack://flatmapvuer/external \"element-ui/lib/link\"","webpack://flatmapvuer/external \"element-ui/lib/locale\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/option.css\"","webpack://flatmapvuer/./src/components/MultiFlatmapVuer.vue?ddcb","webpack://flatmapvuer/external \"core-js/modules/es.set.js\"","webpack://flatmapvuer/external \"core-js/modules/es.array.includes.js\"","webpack://flatmapvuer/external \"vue\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/icon.css\"","webpack://flatmapvuer/./src/components/Tooltip.vue?c97f","webpack://flatmapvuer/external \"element-ui/lib/popover\"","webpack://flatmapvuer/external \"core-js/modules/es.object.to-string.js\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/base.css\"","webpack://flatmapvuer/external \"core-js/modules/es.symbol.js\"","webpack://flatmapvuer/external \"@soda/get-current-script\"","webpack://flatmapvuer/external \"core-js/modules/es.string.iterator.js\"","webpack://flatmapvuer/external \"element-ui/lib/carousel\"","webpack://flatmapvuer/external \"element-ui/lib/col\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/popover.css\"","webpack://flatmapvuer/external \"element-ui/lib/loading\"","webpack://flatmapvuer/external \"css-element-queries/src/ResizeSensor\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/container.css\"","webpack://flatmapvuer/external \"element-ui/lib/icon\"","webpack://flatmapvuer/./src/components/PubmedViewer.vue?eea0","webpack://flatmapvuer/external \"element-ui/lib/checkbox\"","webpack://flatmapvuer/external \"core-js/modules/web.url.js\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/carousel-item.css\"","webpack://flatmapvuer/external \"element-ui/lib/option\"","webpack://flatmapvuer/external \"element-ui/lib/carousel-item\"","webpack://flatmapvuer/external \"core-js/modules/es.regexp.exec.js\"","webpack://flatmapvuer/external \"core-js/modules/es.array.concat.js\"","webpack://flatmapvuer/external \"core-js/modules/es.array.flat.js\"","webpack://flatmapvuer/external \"core-js/modules/es.function.name.js\"","webpack://flatmapvuer/external \"core-js/modules/es.array.slice.js\"","webpack://flatmapvuer/external \"core-js/modules/es.object.keys.js\"","webpack://flatmapvuer/external \"core-js/modules/es.promise.js\"","webpack://flatmapvuer/external \"core-js/modules/es.number.constructor.js\"","webpack://flatmapvuer/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://flatmapvuer/./src/components/FlatmapVuer.vue?5fae","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://flatmapvuer/./src/components/Tooltip.vue?cf42","webpack://flatmapvuer/./src/components/PubmedViewer.vue?fecc","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://flatmapvuer/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://flatmapvuer/src/components/PubmedViewer.vue","webpack://flatmapvuer/./src/components/PubmedViewer.vue?8f41","webpack://flatmapvuer/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://flatmapvuer/./src/components/PubmedViewer.vue","webpack://flatmapvuer/./src/components/EventBus.js","webpack://flatmapvuer/src/components/Tooltip.vue","webpack://flatmapvuer/./src/components/Tooltip.vue?0f87","webpack://flatmapvuer/./src/components/Tooltip.vue","webpack://flatmapvuer/./src/icons/flatmap-marker.js","webpack://flatmapvuer/src/components/FlatmapVuer.vue","webpack://flatmapvuer/./src/components/FlatmapVuer.vue?f442","webpack://flatmapvuer/./src/components/FlatmapVuer.vue","webpack://flatmapvuer/./src/components/MultiFlatmapVuer.vue?da30","webpack://flatmapvuer/src/components/MultiFlatmapVuer.vue","webpack://flatmapvuer/./src/components/MultiFlatmapVuer.vue?6257","webpack://flatmapvuer/./src/components/MultiFlatmapVuer.vue","webpack://flatmapvuer/external \"core-js/modules/es.string.includes.js\"","webpack://flatmapvuer/external \"element-ui/lib/theme-chalk/row.css\"","webpack://flatmapvuer/external \"element-ui/lib/radio-group\""],"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","currentScript","document","getCurrentScript","src","match","render","_vm","_h","$createElement","_c","_self","directives","rawName","expression","staticClass","attrs","staticStyle","ref","warningMessage","model","hoverVisibilities","callback","$$v","$set","_e","arg","on","$event","showToolitip","hideToolitip","_v","nativeOn","zoomIn","slot","zoomOut","resetView","class","open","drawerOpen","close","pathways","length","pathControls","domProps","_s","flatmapMarker","isIndeterminate","handleCheckAllChange","checkAll","handleCheckedItemsChange","checkedItems","_l","item","type","visibilityToggle","label","toggleDrawer","setColour","colourRadio","setOutlines","outlinesRadio","currentBackground","backgroundChangeCallback","tooltipContent","flatmapAPI","resourceSelected","staticRenderFns","_arrayLikeToArray","arr","len","arr2","Array","_unsupportedIterableToArray","minLen","arrayLikeToArray","toString","slice","constructor","from","test","_createForOfIteratorHelper","allowArrayLike","it","iterator","isArray","unsupportedIterableToArray","F","done","e","f","TypeError","err","normalCompletion","didErr","step","next","_e2","_arrayWithoutHoles","_iterableToArray","iter","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","nonIterableSpread","content","capitalise","title","featureId","pubmedSearchUrlUpdate","paths","component","dendrite","dendritesWithDatasets","openDendrites","axon","axonsWithDatasets","openAxons","uberon","action","openUrl","pubmedSearchUrl","loading","pub","html","url","_arrayWithHoles","_iterableToArrayLimit","_i","_arr","_n","_d","push","_nonIterableRest","_slicedToArray","arrayWithHoles","iterableToArrayLimit","nonIterableRest","props","String","default","entry","watch","flatmapQuery","val","then","handler","ids","data","pubmeds","pubmedIds","mounted","featureIds","methods","stripPMIDPrefix","pubmedId","split","titleFromPubmed","Promise","fetch","resolve","apa","format","console","error","splitLink","buildPubmedSqlStatement","keastIds","sql","response","log","method","headers","body","JSON","stringify","values","forEach","params","append","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","EventBus","Vue","str","replace","charAt","toUpperCase","components","visible","Boolean","undefined","activeSpecies","appendToBody","axons","dendrites","uberons","pathwayQuery","getOrganCuries","$emit","titleCase","onClose","findComponents","nodes","foundUnique","buildConnectivitySqlStatement","buildLabelSqlStatement","createLabelLookup","map","resize","MapSvgIcon","MapSvgSpriteColor","Tooltip","mapManager","mapImp","colour","setBackgroundColour","flag","outlineRadio","resetMap","pathTypes","showPaths","checkedCount","enablePanZoomEvents","eventCallback","eventType","dataset","taxonomy","resource","feature","userData","args","checkAndCreatePopups","showPopup","popUpCssHack","ftooltip","style","display","querySelector","$refs","tooltip","$el","onclick","createTooltipFromNeuronCuration","start","distribution","actions","tooltipVisible","nodeId","size","foundAnnotations","includes","nervePath","myOptions","className","node","showMarkerPopup","setHelpMode","helpMode","inHelp","openFlatmapHelpPopup","closeFlatmapHelpPopup","tooltipWait","setTimeout","tooltipNumber","clearTimeout","heartId","elm","anchor","getLabels","Set","labels","getState","viewport","state","setState","createFlatmap","_viewportToBeSet","displayMinimap","minimap","promise1","showMinimap","showPathwaysDrawer","searchAndShowResult","term","clearSearchResults","searchResults","__featureIds","featureInfo","minZoom","Number","searchable","tooltips","renderAtMounted","displayWarning","availableBackground","immediate","deep","flatmap","MapManager","flatmapChanged","iconClass","refInFor","showLayer","taxo","FlatmapSelected","FlatmapReady","panZoomCallback","FlatmapVuer","initialise","keys","describes","getCoordinatesOfLastClick","getCurrentFlatmap","payload","species","initial","availableSpecies","speciesList"],"mappings":"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","file":"flatmapvuer.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[\"flatmapvuer\"] = factory();\n\telse\n\t\troot[\"flatmapvuer\"] = 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/checkbox-group\");","module.exports = require(\"core-js/modules/es.string.split.js\");","module.exports = require(\"element-ui/lib/theme-chalk/checkbox-group.css\");","module.exports = require(\"element-ui/lib/select\");","module.exports = require(\"element-ui/lib/theme-chalk/select.css\");","module.exports = require(\"element-ui/lib/theme-chalk/radio-group.css\");","module.exports = require(\"core-js/modules/web.dom-collections.for-each.js\");","module.exports = require(\"core-js/modules/web.dom-collections.iterator.js\");","module.exports = require(\"core-js/modules/es.array.filter.js\");","module.exports = require(\"element-ui/lib/container\");","module.exports = require(\"core-js/modules/es.string.search.js\");","module.exports = require(\"element-ui/lib/main\");","module.exports = require(\"element-ui/lib/theme-chalk/link.css\");","module.exports = require(\"element-ui/lib/theme-chalk/button.css\");","module.exports = require(\"element-ui/lib/theme-chalk/radio.css\");","module.exports = require(\"element-ui/lib/theme-chalk/loading.css\");","module.exports = require(\"element-ui/lib/header\");","module.exports = require(\"core-js/modules/es.symbol.iterator.js\");","module.exports = require(\"core-js/modules/es.regexp.to-string.js\");","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlatmapVuer.vue?vue&type=style&index=0&id=3d2da278&scoped=true&lang=scss&\"","module.exports = require(\"element-ui/lib/theme-chalk/carousel.css\");","module.exports = require(\"@abi-software/svg-sprite\");","module.exports = require(\"core-js/modules/es.array.from.js\");","module.exports = require(\"core-js/modules/es.array.map.js\");","module.exports = require(\"core-js/modules/es.symbol.description.js\");","module.exports = require(\"@abi-software/flatmap-viewer\");","module.exports = require(\"core-js/modules/es.array.iterator.js\");","module.exports = require(\"element-ui/lib/theme-chalk/header.css\");","module.exports = require(\"element-ui/lib/radio\");","module.exports = require(\"element-ui/lib/theme-chalk/checkbox.css\");","module.exports = require(\"element-ui/lib/button\");","module.exports = require(\"core-js/modules/es.string.replace.js\");","module.exports = require(\"element-ui/lib/locale/lang/en\");","module.exports = require(\"element-ui/lib/row\");","module.exports = require(\"element-ui/lib/theme-chalk/col.css\");","module.exports = require(\"element-ui/lib/theme-chalk/main.css\");","module.exports = require(\"element-ui/lib/link\");","module.exports = require(\"element-ui/lib/locale\");","module.exports = require(\"element-ui/lib/theme-chalk/option.css\");","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultiFlatmapVuer.vue?vue&type=style&index=0&id=54147954&scoped=true&lang=scss&\"","module.exports = require(\"core-js/modules/es.set.js\");","module.exports = require(\"core-js/modules/es.array.includes.js\");","module.exports = require(\"vue\");","module.exports = require(\"element-ui/lib/theme-chalk/icon.css\");","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tooltip.vue?vue&type=style&index=0&id=0e7b9568&scoped=true&lang=scss&\"","module.exports = require(\"element-ui/lib/popover\");","module.exports = require(\"core-js/modules/es.object.to-string.js\");","module.exports = require(\"element-ui/lib/theme-chalk/base.css\");","module.exports = require(\"core-js/modules/es.symbol.js\");","module.exports = require(\"@soda/get-current-script\");","module.exports = require(\"core-js/modules/es.string.iterator.js\");","module.exports = require(\"element-ui/lib/carousel\");","module.exports = require(\"element-ui/lib/col\");","module.exports = require(\"element-ui/lib/theme-chalk/popover.css\");","module.exports = require(\"element-ui/lib/loading\");","module.exports = require(\"css-element-queries/src/ResizeSensor\");","module.exports = require(\"element-ui/lib/theme-chalk/container.css\");","module.exports = require(\"element-ui/lib/icon\");","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PubmedViewer.vue?vue&type=style&index=0&id=6fa856d7&scoped=true&lang=scss&\"","module.exports = require(\"element-ui/lib/checkbox\");","module.exports = require(\"core-js/modules/web.url.js\");","module.exports = require(\"element-ui/lib/theme-chalk/carousel-item.css\");","module.exports = require(\"element-ui/lib/option\");","module.exports = require(\"element-ui/lib/carousel-item\");","module.exports = require(\"core-js/modules/es.regexp.exec.js\");","module.exports = require(\"core-js/modules/es.array.concat.js\");","module.exports = require(\"core-js/modules/es.array.flat.js\");","module.exports = require(\"core-js/modules/es.function.name.js\");","module.exports = require(\"core-js/modules/es.array.slice.js\");","module.exports = require(\"core-js/modules/es.object.keys.js\");","module.exports = require(\"core-js/modules/es.promise.js\");","module.exports = require(\"core-js/modules/es.number.constructor.js\");","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[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',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"flatmap-container\",attrs:{\"element-loading-text\":\"Loading...\",\"element-loading-spinner\":\"el-icon-loading\",\"element-loading-background\":\"rgba(0, 0, 0, 0.3)\"}},[_c('map-svg-sprite-color'),_c('div',{staticStyle:{\"height\":\"100%\",\"width\":\"100%\",\"position\":\"relative\",\"overflow-y\":\"none\"}},[_c('div',{ref:\"display\",staticStyle:{\"height\":\"100%\",\"width\":\"100%\"}}),(_vm.displayWarning)?_c('el-popover',{ref:\"warningPopover\",attrs:{\"content\":_vm.warningMessage,\"placement\":\"right\",\"appendToBody\":false,\"trigger\":\"manual\",\"popper-class\":\"warning-popper flatmap-popper right-popper\"},model:{value:(_vm.hoverVisibilities[6].value),callback:function ($$v) {_vm.$set(_vm.hoverVisibilities[6], \"value\", $$v)},expression:\"hoverVisibilities[6].value\"}}):_vm._e(),(_vm.displayWarning)?_c('i',{directives:[{name:\"popover\",rawName:\"v-popover:warningPopover\",arg:\"warningPopover\"}],staticClass:\"el-icon-warning warning-icon\",on:{\"mouseover\":function($event){return _vm.showToolitip(6)},\"mouseout\":function($event){return _vm.hideToolitip(6)}}},[_c('span',{staticClass:\"warning-text\"},[_vm._v(\"Beta\")])]):_vm._e(),_c('div',{staticClass:\"bottom-right-control\"},[_c('el-popover',{attrs:{\"content\":\"Zoom in\",\"placement\":\"left\",\"appendToBody\":false,\"trigger\":\"manual\",\"popper-class\":\"flatmap-popper left-popper\"},model:{value:(_vm.hoverVisibilities[0].value),callback:function ($$v) {_vm.$set(_vm.hoverVisibilities[0], \"value\", $$v)},expression:\"hoverVisibilities[0].value\"}},[_c('map-svg-icon',{staticClass:\"icon-button zoomIn\",attrs:{\"slot\":\"reference\",\"icon\":\"zoomIn\"},nativeOn:{\"click\":function($event){return _vm.zoomIn()},\"mouseover\":function($event){return _vm.showToolitip(0)},\"mouseout\":function($event){return _vm.hideToolitip(0)}},slot:\"reference\"})],1),_c('el-popover',{attrs:{\"content\":\"Zoom out\",\"placement\":\"top-end\",\"appendToBody\":false,\"trigger\":\"manual\",\"popper-class\":\"flatmap-popper popper-zoomout\"},model:{value:(_vm.hoverVisibilities[1].value),callback:function ($$v) {_vm.$set(_vm.hoverVisibilities[1], \"value\", $$v)},expression:\"hoverVisibilities[1].value\"}},[_c('map-svg-icon',{staticClass:\"icon-button zoomOut\",attrs:{\"slot\":\"reference\",\"icon\":\"zoomOut\"},nativeOn:{\"click\":function($event){return _vm.zoomOut()},\"mouseover\":function($event){return _vm.showToolitip(1)},\"mouseout\":function($event){return _vm.hideToolitip(1)}},slot:\"reference\"})],1),_c('el-popover',{attrs:{\"content\":\"Reset\",\"placement\":\"top\",\"appendToBody\":false,\"trigger\":\"manual\",\"popper-class\":\"flatmap-popper\"},model:{value:(_vm.hoverVisibilities[2].value),callback:function ($$v) {_vm.$set(_vm.hoverVisibilities[2], \"value\", $$v)},expression:\"hoverVisibilities[2].value\"}},[_c('div',[_vm._v(\" Fit to \"),_c('br'),_vm._v(\" window \")]),_c('map-svg-icon',{staticClass:\"icon-button fitWindow\",attrs:{\"slot\":\"reference\",\"icon\":\"fitWindow\"},nativeOn:{\"click\":function($event){return _vm.resetView()},\"mouseover\":function($event){return _vm.showToolitip(2)},\"mouseout\":function($event){return _vm.hideToolitip(2)}},slot:\"reference\"})],1)],1),_c('el-popover',{ref:\"checkBoxPopover\",attrs:{\"content\":\"Change pathway visibility\",\"placement\":\"right\",\"appendToBody\":false,\"trigger\":\"manual\",\"popper-class\":\"flatmap-popper right-popper\"},model:{value:(_vm.hoverVisibilities[4].value),callback:function ($$v) {_vm.$set(_vm.hoverVisibilities[4], \"value\", $$v)},expression:\"hoverVisibilities[4].value\"}}),_c('div',{staticClass:\"pathway-location\",class:{ open: _vm.drawerOpen, close: !_vm.drawerOpen }},[(_vm.pathways.length > 0 && _vm.pathControls)?_c('div',{directives:[{name:\"popover\",rawName:\"v-popover:checkBoxPopover\",arg:\"checkBoxPopover\"}],staticClass:\"pathway-container\"},[_c('el-popover',{ref:\"markerPopover\",attrs:{\"content\":\"Find these markers for data\",\"placement\":\"right\",\"appendToBody\":false,\"trigger\":\"manual\",\"popper-class\":\"flatmap-popper popper-bump-right right-popper\"},model:{value:(_vm.hoverVisibilities[5].value),callback:function ($$v) {_vm.$set(_vm.hoverVisibilities[5], \"value\", $$v)},expression:\"hoverVisibilities[5].value\"}}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hoverVisibilities[5].value),expression:\"hoverVisibilities[5].value\"},{name:\"popover\",rawName:\"v-popover:markerPopover\",arg:\"markerPopover\"}],staticClass:\"flatmap-marker-help\",domProps:{\"innerHTML\":_vm._s(_vm.flatmapMarker)}}),_c('el-row',[_c('el-col',{attrs:{\"span\":12}},[_c('div',{staticClass:\"pathways-display-text\"},[_vm._v(\"Pathways\")])]),_c('el-col',{attrs:{\"span\":12}},[_c('el-checkbox',{staticClass:\"all-checkbox\",attrs:{\"indeterminate\":_vm.isIndeterminate},on:{\"change\":_vm.handleCheckAllChange},model:{value:(_vm.checkAll),callback:function ($$v) {_vm.checkAll=$$v},expression:\"checkAll\"}},[_vm._v(\"Display all\")])],1)],1),_c('el-checkbox-group',{staticClass:\"checkbox-group\",attrs:{\"size\":\"small\"},on:{\"change\":_vm.handleCheckedItemsChange},model:{value:(_vm.checkedItems),callback:function ($$v) {_vm.checkedItems=$$v},expression:\"checkedItems\"}},[_c('div',{staticClass:\"checkbox-group-inner\"},_vm._l((_vm.pathways),function(item){return _c('el-row',{key:item.type,attrs:{\"label\":item.type}},[_c('div',{staticClass:\"checkbox-container\"},[_c('el-checkbox',{staticClass:\"my-checkbox\",attrs:{\"label\":item.type,\"checked\":true},on:{\"change\":function($event){return _vm.visibilityToggle()}}},[_c('div',{staticClass:\"path-visual\",class:item.type}),_vm._v(\" \"+_vm._s(item.label)+\" \")])],1)])}),1)])],1):_vm._e(),_c('div',{staticClass:\"drawer-button\",class:{ open: _vm.drawerOpen, close: !_vm.drawerOpen },on:{\"click\":_vm.toggleDrawer}},[_c('i',{staticClass:\"el-icon-arrow-left\"})])]),_c('el-popover',{ref:\"backgroundPopover\",attrs:{\"placement\":\"top-start\",\"width\":\"175\",\"appendToBody\":false,\"trigger\":\"click\",\"popper-class\":\"background-popper\"}},[_c('el-row',{staticClass:\"backgroundText\"},[_vm._v(\"Organs display\")]),_c('el-row',{staticClass:\"backgroundControl\"},[_c('el-radio-group',{staticClass:\"flatmap-radio\",on:{\"change\":_vm.setColour},model:{value:(_vm.colourRadio),callback:function ($$v) {_vm.colourRadio=$$v},expression:\"colourRadio\"}},[_c('el-radio',{attrs:{\"label\":true}},[_vm._v(\"Colour\")]),_c('el-radio',{attrs:{\"label\":false}},[_vm._v(\"Greyscale\")])],1)],1),_c('el-row',{staticClass:\"backgroundSpacer\"}),_c('el-row',{staticClass:\"backgroundText\"},[_vm._v(\"Outlines display\")]),_c('el-row',{staticClass:\"backgroundControl\"},[_c('el-radio-group',{staticClass:\"flatmap-radio\",on:{\"change\":_vm.setOutlines},model:{value:(_vm.outlinesRadio),callback:function ($$v) {_vm.outlinesRadio=$$v},expression:\"outlinesRadio\"}},[_c('el-radio',{attrs:{\"label\":true}},[_vm._v(\"Show\")]),_c('el-radio',{attrs:{\"label\":false}},[_vm._v(\"Hide\")])],1)],1),_c('el-row',{staticClass:\"backgroundSpacer\"}),_c('el-row',{staticClass:\"backgroundText\"},[_vm._v(\"Change background\")]),_c('el-row',{staticClass:\"backgroundControl\"},_vm._l((_vm.availableBackground),function(item){return _c('div',{key:item,class:['backgroundChoice', item, item == _vm.currentBackground ? 'active' :''],on:{\"click\":function($event){return _vm.backgroundChangeCallback(item)}}})}),0)],1),_c('el-popover',{attrs:{\"content\":\"Change background color\",\"placement\":\"right\",\"appendToBody\":false,\"trigger\":\"manual\",\"popper-class\":\"flatmap-popper right-popper\"},model:{value:(_vm.hoverVisibilities[3].value),callback:function ($$v) {_vm.$set(_vm.hoverVisibilities[3], \"value\", $$v)},expression:\"hoverVisibilities[3].value\"}},[_c('map-svg-icon',{directives:[{name:\"popover\",rawName:\"v-popover:backgroundPopover\",arg:\"backgroundPopover\"}],staticClass:\"icon-button background-colour\",class:{ open: _vm.drawerOpen, close: !_vm.drawerOpen },attrs:{\"slot\":\"reference\",\"icon\":\"changeBckgd\"},nativeOn:{\"mouseover\":function($event){return _vm.showToolitip(3)},\"mouseout\":function($event){return _vm.hideToolitip(3)}},slot:\"reference\"})],1),_c('Tooltip',{ref:\"tooltip\",staticClass:\"tooltip\",attrs:{\"content\":_vm.tooltipContent,\"flatmapAPI\":_vm.flatmapAPI},on:{\"resource-selected\":_vm.resourceSelected}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tooltip-container\"},[(_vm.content)?_c('el-main',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"main\"},[(_vm.content.title)?_c('div',{staticClass:\"block\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.capitalise(_vm.content.title)))])]):_c('div',{staticClass:\"block\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.content.featureId))])]),(_vm.content.featureIds)?_c('pubmed-viewer',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],staticClass:\"block\",attrs:{\"flatmapAPI\":_vm.flatmapAPI,\"entry\":_vm.content},on:{\"pubmedSearchUrl\":_vm.pubmedSearchUrlUpdate}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.content.paths)+\" \"),(this.components)?_c('div',{staticClass:\"block\"},[_c('div',{staticClass:\"attribute-title\"},[_vm._v(\"Components\")]),_vm._l((_vm.components),function(component){return _c('div',{key:component,staticClass:\"attribute-content\"},[_vm._v(\" \"+_vm._s(_vm.capitalise(component))+\" \")])})],2):_vm._e(),(this.dendrites)?_c('div',{staticClass:\"block\"},[_c('div',{staticClass:\"attribute-title\"},[_vm._v(\"Dendrites\")]),_vm._l((_vm.dendrites),function(dendrite){return _c('div',{key:dendrite,staticClass:\"attribute-content\"},[_vm._v(\" \"+_vm._s(_vm.capitalise(dendrite))+\" \")])}),_c('el-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.dendritesWithDatasets.length > 0),expression:\"dendritesWithDatasets.length > 0\"}],staticClass:\"button\",on:{\"click\":_vm.openDendrites}},[_vm._v(\" Explore dendrite data \")])],2):_vm._e(),(this.axons)?_c('div',{staticClass:\"block\"},[_c('div',{staticClass:\"attribute-title\"},[_vm._v(\"Axons\")]),_vm._l((_vm.axons),function(axon){return _c('div',{key:axon,staticClass:\"attribute-content\"},[_vm._v(\" \"+_vm._s(_vm.capitalise(axon))+\" \")])}),_c('el-button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.axonsWithDatasets.length > 0),expression:\"axonsWithDatasets.length > 0\"}],staticClass:\"button\",on:{\"click\":_vm.openAxons}},[_vm._v(\" Explore axon data \")])],2):_vm._e(),(_vm.content.uberon)?_c('div',{staticClass:\"block\"},[_c('div',{staticClass:\"attribute-title\"},[_vm._v(\"Feature Id\")]),_c('span',{staticClass:\"attribute-content\"},[_vm._v(_vm._s(_vm.content.uberon))])]):_vm._e(),_vm._l((_vm.content.actions),function(action){return _c('el-button',{key:action.title,staticClass:\"button\",attrs:{\"round\":\"\"},on:{\"click\":function($event){return _vm.resourceSelected(action)}}},[(action.title === 'Search for dataset' || action.title === 'View Dataset' )?_c('i',{staticClass:\"el-icon-coin\"}):_vm._e(),_vm._v(\" \"+_vm._s(action.title)+\" \")])}),(_vm.pubmedSearchUrl)?_c('el-button',{staticClass:\"button\",attrs:{\"icon\":\"el-icon-notebook-2\"},on:{\"click\":function($event){return _vm.openUrl(_vm.pubmedSearchUrl)}}},[_vm._v(\" Open publications in pubmed \")]):_vm._e()],2):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pubmed-container\"},[_c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading.response),expression:\"loading.response\"}],staticClass:\"block\"},[_c('div',{staticClass:\"attribute-title\"},[_vm._v(\"Pubmed Resources\")]),_c('br'),_c('el-carousel',{attrs:{\"autoplay\":false,\"indicator-position\":\"outside\",\"height\":\"250px\",\"width\":\"200px\"}},_vm._l((_vm.pubmeds),function(pub,i){return _c('el-carousel-item',{key:i},[_c('div',{staticClass:\"attribute-content\"},[_c('div',{domProps:{\"innerHTML\":_vm._s(pub.html)}}),_c('el-link',{staticClass:\"el-link\",attrs:{\"href\":pub.url,\"underline\":false,\"target\":\"_blank\"}},[_vm._v(_vm._s(pub.url))])],1)])}),1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","<template>\r\n <div class=\"pubmed-container\">\r\n <div v-loading=\"loading.response\" class=\"block\">\r\n <div class=\"attribute-title\">Pubmed Resources</div>\r\n <br/>\r\n <el-carousel \r\n :autoplay=\"false\" \r\n indicator-position=\"outside\"\r\n height=\"250px\" width=\"200px\"\r\n >\r\n <el-carousel-item v-for=\"(pub, i) in pubmeds\" :key=\"i\">\r\n <div class=\"attribute-content\">\r\n <div v-html=\"pub.html\"/>\r\n <el-link :href=\"pub.url\" :underline=\"false\" class=\"el-link\" target=\"_blank\">{{pub.url}}</el-link>\r\n </div>\r\n </el-carousel-item>\r\n </el-carousel>\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 {\r\n Link,\r\n Carousel,\r\n CarouselItem,\r\n Button\r\n} from \"element-ui\";\r\nimport lang from \"element-ui/lib/locale/lang/en\";\r\nimport locale from \"element-ui/lib/locale\";\r\nlocale.use(lang);\r\nVue.use(Link);\r\nVue.use(Carousel);\r\nVue.use(CarouselItem);\r\nVue.use(Button);\r\n\r\n\r\nexport default {\r\n name: \"Tooltip\",\r\n props: {\r\n /**\r\n * Specify the endpoint of the flatmap server.\r\n */\r\n flatmapAPI: {\r\n type: String,\r\n default: 'https://mapcore-demo.org/current/flatmap/v2/'\r\n },\r\n entry: {\r\n type: Object,\r\n default: () => {}\r\n },\r\n },\r\n watch: {\r\n 'entry.featureId': function (val){\r\n this.flatmapQuery(val).then(pb => this.pubmeds = pb)\r\n },\r\n 'entry.featureIds': {\r\n handler: function(ids) {\r\n this.flatmapQuery(ids)\r\n }\r\n }\r\n },\r\n data: function() {\r\n return {\r\n data: {},\r\n pubmeds: [],\r\n pubmedIds: [],\r\n loading: {response: true, publications: true}\r\n };\r\n },\r\n mounted: function() {\r\n if (this.entry.featureIds)\r\n this.flatmapQuery(this.entry.featureIds)\r\n },\r\n methods: {\r\n stripPMIDPrefix: function (pubmedId){\r\n return pubmedId.split(':')[1]\r\n },\r\n titleFromPubmed: function (pubmedId){\r\n return new Promise((resolve) => {\r\n fetch(`https://api.ncbi.nlm.nih.gov/lit/ctxp/v1/pubmed/?format=citation&contenttype=json&id=${pubmedId}`)\r\n .then(response => response.json())\r\n .then(data => {\r\n resolve(data.apa.format)\r\n })\r\n .catch((error) => {\r\n console.error('Error:', error);\r\n });\r\n })\r\n },\r\n splitLink(bibliographyString){\r\n let split = bibliographyString.split('https')\r\n return [split[0], 'https' + split[1]]\r\n },\r\n buildPubmedSqlStatement: function(keastIds) {\r\n let sql = 'select distinct publication from publications where entity in ('\r\n if (keastIds.length === 1) {\r\n sql += `'${keastIds[0]}')`\r\n } else if (keastIds.length > 1) {\r\n for (let i in keastIds) {\r\n sql += `'${keastIds[i]}'${i >= keastIds.length - 1 ? ')' : ','} `\r\n }\r\n }\r\n return sql\r\n },\r\n flatmapQuery: function(keastIds){\r\n if(!keastIds || keastIds.length === 0) return\r\n this.pubmeds = []\r\n this.loading.response = true\r\n\r\n // fetch pubmed publications for the given ids\r\n const data = { sql: this.buildPubmedSqlStatement(keastIds)};\r\n console.log(data)\r\n fetch(`${this.flatmapAPI}knowledge/query/`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(data),\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n this.responseData = data\r\n this.loading.response = false\r\n\r\n // create links for each pubmedId\r\n data.values.forEach(identifier => {\r\n let ids = this.stripPMIDPrefix(identifier[0])\r\n this.titleFromPubmed(ids).then( bib=>{\r\n let [html, link] = this.splitLink(bib)\r\n this.pubmeds.push({identifier: identifier[0] , html: html, url: link})\r\n })\r\n });\r\n this.$emit('pubmedSearchUrl', this.pubmedSearchUrl(data.values.map(id=>this.stripPMIDPrefix(id[0]))))\r\n })\r\n .catch((error) => {\r\n console.error('Error:', error);\r\n })\r\n },\r\n pubmedSearchUrl: function(ids) {\r\n let url = 'https://pubmed.ncbi.nlm.nih.gov/?'\r\n let params = new URLSearchParams()\r\n params.append('term', ids)\r\n return url + params.toString()\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n@import \"~element-ui/packages/theme-chalk/src/link\";\r\n@import \"~element-ui/packages/theme-chalk/src/carousel\";\r\n@import \"~element-ui/packages/theme-chalk/src/carousel-item\";\r\n\r\n.attribute-title{\r\n font-size: 16px;\r\n font-weight: 600;\r\n /* font-weight: bold; */\r\n text-transform: uppercase;\r\n}\r\n\r\n.attribute-content{\r\n font-size: 14px;\r\n font-weight: 400;\r\n}\r\n\r\n.el-link {\r\n color: $app-primary-color;\r\n text-decoration: none;\r\n word-wrap: break-word;\r\n &:hover, &:focus{\r\n color: $app-primary-color;\r\n text-decoration: underline;\r\n }\r\n}\r\n\r\n::v-deep .el-carousel__button {\r\n background-color: $app-primary-color; \r\n}\r\n\r\n.button {\r\n margin-left: 0px !important;\r\n margin-top: 0px !important;\r\n font-size: 14px !important;\r\n background-color: $app-primary-color;\r\n color: #fff;\r\n &:hover{\r\n color: #fff !important;\r\n background: #ac76c5 !important;\r\n border: 1px solid #ac76c5 !important;\r\n }\r\n &+.button {\r\n margin-top: 10px !important;\r\n background-color: $app-primary-color;\r\n color: #fff; \r\n }\r\n}\r\n\r\n</style>","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!./PubmedViewer.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!./PubmedViewer.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 () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\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 functional 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","import { render, staticRenderFns } from \"./PubmedViewer.vue?vue&type=template&id=6fa856d7&scoped=true&\"\nimport script from \"./PubmedViewer.vue?vue&type=script&lang=js&\"\nexport * from \"./PubmedViewer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PubmedViewer.vue?vue&type=style&index=0&id=6fa856d7&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6fa856d7\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nconst EventBus = new Vue();\r\nexport default EventBus;","<template>\r\n <div class=\"tooltip-container\">\r\n <el-main v-if=\"content\" class=\"main\" v-loading=\"loading\">\r\n <div class=\"block\" v-if=\"content.title\">\r\n <span class=\"title\">{{capitalise(content.title)}}</span>\r\n </div>\r\n <div class=\"block\" v-else>\r\n <span class=\"title\">{{content.featureId}}</span>\r\n </div>\r\n <!-- Currently we don't show the pubmed viewer, will remove once we are certain it won't be used -->\r\n <pubmed-viewer v-if=\"content.featureIds\" v-show=\"false\" class=\"block\" :flatmapAPI=\"flatmapAPI\" :entry=\"content\" @pubmedSearchUrl=\"pubmedSearchUrlUpdate\"/>\r\n {{content.paths}}\r\n <div v-if=\"this.components\" class=\"block\">\r\n <div class=\"attribute-title\">Components</div>\r\n <div v-for=\"component in components\" class=\"attribute-content\" :key=\"component\">\r\n {{ capitalise(component) }}\r\n </div>\r\n </div>\r\n <div v-if=\"this.dendrites\" class=\"block\">\r\n <div class=\"attribute-title\">Dendrites</div>\r\n <div v-for=\"dendrite in dendrites\" class=\"attribute-content\" :key=\"dendrite\">\r\n {{ capitalise(dendrite) }}\r\n </div>\r\n <el-button v-show=\"dendritesWithDatasets.length > 0\" class=\"button\" @click=\"openDendrites\">\r\n Explore dendrite data\r\n </el-button>\r\n </div>\r\n <div v-if=\"this.axons\" class=\"block\">\r\n <div class=\"attribute-title\">Axons</div>\r\n <div v-for=\"axon in axons\" class=\"attribute-content\" :key=\"axon\">\r\n {{ capitalise(axon) }}\r\n </div>\r\n <el-button v-show=\"axonsWithDatasets.length > 0\" class=\"button\" @click=\"openAxons\">\r\n Explore axon data\r\n </el-button>\r\n </div>\r\n <div v-if=\"content.uberon\" class=\"block\">\r\n <div class=\"attribute-title\">Feature Id</div>\r\n <span class=\"attribute-content\">{{content.uberon}}</span>\r\n </div>\r\n <el-button v-for=\"action in content.actions\" round :key=\"action.title\"\r\n class=\"button\" @click=\"resourceSelected(action)\">\r\n <i v-if=\"action.title === 'Search for dataset' || action.title === 'View Dataset' \" class=\"el-icon-coin\"></i>\r\n {{action.title}}\r\n </el-button>\r\n <el-button v-if=\"pubmedSearchUrl\" class=\"button\" icon=\"el-icon-notebook-2\" @click=\"openUrl(pubmedSearchUrl)\">\r\n Open publications in pubmed\r\n </el-button>\r\n </el-main>\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 Button,\r\n Container,\r\n Header,\r\n Icon,\r\n Main\r\n} from \"element-ui\";\r\nimport lang from \"element-ui/lib/locale/lang/en\";\r\nimport locale from \"element-ui/lib/locale\";\r\nlocale.use(lang);\r\nVue.use(Button);\r\nVue.use(Container);\r\nVue.use(Header);\r\nVue.use(Icon);\r\nVue.use(Main);\r\n\r\n// pubmedviewer is currently not in use, but still under review so not ready to delete yet\r\nimport PubmedViewer from './PubmedViewer.vue'\r\nimport EventBus from './EventBus'\r\n\r\nconst titleCase = (str) => {\r\n return str.replace(/\\w\\S*/g, (t) => { return t.charAt(0).toUpperCase() + t.substr(1).toLowerCase() });\r\n}\r\n\r\nconst capitalise = function(str){\r\n return str.charAt(0).toUpperCase() + str.slice(1)\r\n}\r\n\r\nexport default {\r\n components: { PubmedViewer },\r\n name: \"Tooltip\",\r\n props: { \r\n flatmapAPI: {\r\n type: String,\r\n default: 'https://mapcore-demo.org/current/flatmap/v2/'\r\n },\r\n visible: {\r\n type: Boolean,\r\n default: false\r\n },\r\n content: {\r\n type: Object,\r\n default: undefined\r\n },\r\n },\r\n data: function() {\r\n return {\r\n activeSpecies: undefined,\r\n appendToBody: false,\r\n pubmedSearchUrl: '',\r\n loading: false,\r\n axons: [],\r\n dendrites: [],\r\n components: [],\r\n axonsWithDatasets: [],\r\n dendritesWithDatasets: [],\r\n uberons: [{id: undefined, name: undefined}]\r\n };\r\n },\r\n watch: {\r\n 'content.featureIds': {\r\n handler: function(){\r\n this.pathwayQuery(this.content.featureIds)\r\n }\r\n }\r\n },\r\n mounted: function(){\r\n this.getOrganCuries()\r\n },\r\n methods: {\r\n resourceSelected: function(action) {\r\n this.$emit(\"resource-selected\", action); \r\n },\r\n titleCase: function(title){\r\n return titleCase(title)\r\n },\r\n capitalise: function(text){\r\n return capitalise(text)\r\n },\r\n onClose: function() {\r\n this.$emit(\"onClose\");\r\n },\r\n openUrl: function(url){\r\n window.open(url, '_blank')\r\n },\r\n openAxons: function(){\r\n EventBus.$emit('onActionClick', {type:'Facets', labels: this.axonsWithDatasets.map(a=>a.name)})\r\n },\r\n openDendrites: function(){\r\n EventBus.$emit('onActionClick', {type:'Facets', labels: this.dendritesWithDatasets.map(a=>a.name)})\r\n },\r\n pubmedSearchUrlUpdate: function (val){\r\n this.pubmedSearchUrl = val\r\n },\r\n findComponents: function(connectivity){\r\n let dnodes = connectivity.connectivity.flat() // get nodes from edgelist\r\n let nodes = [...new Set(dnodes)]; // remove duplicates\r\n\r\n let found = []\r\n let terminal = false\r\n nodes.forEach(node=>{\r\n let n = node.flat() // Find all terms on the node\r\n terminal = false\r\n\r\n // Check if the node is an axon or dendrite\r\n n.forEach(s=>{\r\n if(connectivity.axons.includes(s)){\r\n terminal = true\r\n }\r\n if(connectivity.dendrites.includes(s)){\r\n terminal = true\r\n }\r\n })\r\n if (!terminal){\r\n found.push(node)\r\n }\r\n })\r\n\r\n // remove duplicates\r\n let foundUnique = [...new Set(found.map(n=>n[0]))]\r\n return foundUnique\r\n },\r\n getOrganCuries: function(){\r\n fetch('https://api.sparc.science/get-organ-curies/')\r\n .then(response=>response.json())\r\n .then(data=>{\r\n this.uberons = data.uberon.array\r\n })\r\n },\r\n buildConnectivitySqlStatement: function(keastIds) {\r\n let sql = 'select knowledge from knowledge where entity in ('\r\n if (keastIds.length === 1) {\r\n sql += `'${keastIds[0]}')`\r\n } else if (keastIds.length > 1) {\r\n for (let i in keastIds) {\r\n sql += `'${keastIds[i]}'${i >= keastIds.length - 1 ? ')' : ','} `\r\n }\r\n }\r\n return sql\r\n },\r\n buildLabelSqlStatement: function(uberons) {\r\n let sql = 'select label from labels where entity in ('\r\n if (uberons.length === 1) {\r\n sql += `'${uberons[0]}')`\r\n } else if (uberons.length > 1) {\r\n for (let i in uberons) {\r\n sql += `'${uberons[i]}'${i >= uberons.length - 1 ? ')' : ','} `\r\n }\r\n }\r\n return sql\r\n },\r\n createLabelLookup: function(uberons) {\r\n return new Promise(resolve=> {\r\n let uberonMap = {}\r\n const data = { sql: this.buildLabelSqlStatement(uberons)}\r\n fetch(`${this.flatmapAPI}knowledge/query/`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(data),\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n uberons.forEach((el,i)=>{\r\n uberonMap[el] = data.values[i][0]\r\n })\r\n resolve(uberonMap)\r\n })\r\n })\r\n },\r\n pathwayQuery: function(keastIds){\r\n this.axons = []\r\n this.dendrites = []\r\n this.components = []\r\n this.loading = true\r\n if (!keastIds || keastIds.length == 0) return\r\n const data = { sql: this.buildConnectivitySqlStatement(keastIds)};\r\n fetch(`${this.flatmapAPI}knowledge/query/`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(data),\r\n })\r\n .then(response => response.json())\r\n .then(data => {\r\n let connectivity = JSON.parse(data.values[0][0])\r\n let components = this.findComponents(connectivity)\r\n\r\n // Create list of ids to get labels for\r\n let conIds = connectivity.axons.concat(connectivity.dendrites.concat(components))\r\n this.createLabelLookup(conIds).then(lookUp=>{\r\n this.axons = connectivity.axons.map(a=>lookUp[a])\r\n this.dendrites = connectivity.dendrites.map(d=>lookUp[d])\r\n this.components = components.map(c=>lookUp[c])\r\n })\r\n\r\n // Filter for the anatomy which is annotated on datasets\r\n this.axonsWithDatasets = this.uberons.filter(ub => connectivity.axons.indexOf(ub.id) !== -1)\r\n this.dendritesWithDatasets = this.uberons.filter(ub => connectivity.dendrites.indexOf(ub.id) !== -1)\r\n this.loading = false\r\n })\r\n .catch((error) => {\r\n console.error('Error:', error);\r\n })\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n@import \"~element-ui/packages/theme-chalk/src/button\";\r\n@import \"~element-ui/packages/theme-chalk/src/container\";\r\n@import \"~element-ui/packages/theme-chalk/src/header\";\r\n@import \"~element-ui/packages/theme-chalk/src/main\";\r\n\r\n.tooltip-container {\r\n text-align:justify;\r\n border-radius: 4px;\r\n box-shadow: 0 1px 2px rgba(0,0,0,.1);\r\n pointer-events: auto;\r\n background: #fff;\r\n border: 1px solid $app-primary-color;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.display {\r\n width: 44px;\r\n word-break: normal;\r\n}\r\n\r\n.title {\r\n text-align: left;\r\n width: 16em;\r\n line-height: 1.5em !important;\r\n font-size: 1em;\r\n font-family: Helvetica;\r\n font-weight: 500;\r\n /* font-weight: bold; */\r\n padding-bottom: 8px;\r\n}\r\n\r\n.block {\r\n margin-bottom: 1.5em;\r\n}\r\n\r\n.pub {\r\n width: 16rem;\r\n}\r\n\r\n.icon {\r\n right: 0px;\r\n position: absolute;\r\n top: 10px;\r\n}\r\n\r\n.icon:hover {\r\n cursor: pointer;\r\n}\r\n\r\n.main {\r\n font-size: 14px;\r\n text-align: left;\r\n line-height: 1.5em;\r\n font-family: Helvetica;\r\n font-weight: 400;\r\n /* outline: thin red solid; */\r\n padding: 1em !important;\r\n overflow: hidden;\r\n min-width: 16rem;\r\n}\r\n\r\n.title{\r\n font-size: 18px;\r\n font-weight: 500;\r\n font-weight: bold;\r\n padding-bottom: 8px;\r\n color: rgb(131, 0, 191);\r\n\r\n}\r\n\r\n.attribute-title{\r\n font-size: 16px;\r\n font-weight: 600;\r\n /* font-weight: bold; */\r\n text-transform: uppercase;\r\n}\r\n\r\n.attribute-content{\r\n font-size: 14px;\r\n font-weight: 500;\r\n}\r\n\r\n.popover-container {\r\n height: 100%;\r\n width: 100%;\r\n}\r\n\r\n.main {\r\n .el-button.is-round{\r\n border-radius: 4px;\r\n padding: 9px 20px 10px 20px;\r\n display: flex;\r\n height: 36px;\r\n }\r\n}\r\n\r\n.button {\r\n margin-left: 0px !important;\r\n margin-top: 0px !important;\r\n font-size: 14px !important;\r\n background-color: $app-primary-color;\r\n color: #fff;\r\n &+.button {\r\n margin-top: 10px !important;\r\n }\r\n &:hover {\r\n color: #fff !important;\r\n background: #ac76c5 !important;\r\n border: 1px solid #ac76c5 !important;\r\n }\r\n}\r\n\r\n.tooltip-container{\r\n &::after, &::before {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n width: 0;\r\n height: 0;\r\n border-style: solid;\r\n flex-shrink: 0;\r\n }\r\n}\r\n\r\n.mapboxgl-popup-anchor-bottom {\r\n .tooltip-container {\r\n &::after, &::before {\r\n top: 100%;\r\n border-width: 12px;\r\n }\r\n &::after {\r\n margin-top:-1px;\r\n border-color: rgb(255, 255, 255) transparent transparent transparent ;\r\n }\r\n &::before {\r\n margin: 0 auto;\r\n border-color: $app-primary-color transparent transparent transparent ;\r\n }\r\n }\r\n}\r\n\r\n.mapboxgl-popup-anchor-top {\r\n .tooltip-container {\r\n &::after, &::before {\r\n top: -24px;\r\n border-width: 12px;\r\n }\r\n &::after {\r\n margin-top: 1px;\r\n border-color: transparent transparent rgb(255, 255, 255) transparent ;\r\n }\r\n &::before {\r\n margin: 0 auto;\r\n border-color: transparent transparent $app-primary-color transparent ;\r\n }\r\n }\r\n}\r\n\r\n\r\n/* Fix for chrome bug where under triangle pops up above one on top of it */\r\n.selector:not(*:root), .tooltip-container::after{\r\n top: 99.4%;\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!./Tooltip.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!./Tooltip.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Tooltip.vue?vue&type=template&id=0e7b9568&scoped=true&\"\nimport script from \"./Tooltip.vue?vue&type=script&lang=js&\"\nexport * from \"./Tooltip.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Tooltip.vue?vue&type=style&index=0&id=0e7b9568&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0e7b9568\",\n null\n \n)\n\nexport default component.exports","export default '<div class=\"flatmap-marker\"><svg display=\"block\" height=\"41px\" width=\"27px\" viewBox=\"0 0 27 41\"><g fill-rule=\"nonzero\"><g transform=\"translate(3.0, 29.0)\" fill=\"#000000\"><ellipse opacity=\"0.04\" cx=\"10.5\" cy=\"5.80029008\" rx=\"10.5\" ry=\"5.25002273\"></ellipse><ellipse opacity=\"0.04\" cx=\"10.5\" cy=\"5.80029008\" rx=\"10.5\" ry=\"5.25002273\"></ellipse><ellipse opacity=\"0.04\" cx=\"10.5\" cy=\"5.80029008\" rx=\"9.5\" ry=\"4.77275007\"></ellipse><ellipse opacity=\"0.04\" cx=\"10.5\" cy=\"5.80029008\" rx=\"8.5\" ry=\"4.29549936\"></ellipse><ellipse opacity=\"0.04\" cx=\"10.5\" cy=\"5.80029008\" rx=\"7.5\" ry=\"3.81822308\"></ellipse><ellipse opacity=\"0.04\" cx=\"10.5\" cy=\"5.80029008\" rx=\"6.5\" ry=\"3.34094679\"></ellipse><ellipse opacity=\"0.04\" cx=\"10.5\" cy=\"5.80029008\" rx=\"5.5\" ry=\"2.86367051\"></ellipse><ellipse opacity=\"0.04\" cx=\"10.5\" cy=\"5.80029008\" rx=\"4.5\" ry=\"2.38636864\"></ellipse></g><g fill=\"#005974\"><path d=\"M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z\"></path></g><g opacity=\"0.25\" fill=\"#000000\"><path d=\"M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z\"></path></g><g transform=\"translate(6.0, 7.0)\" fill=\"#FFFFFF\"></g><g transform=\"translate(8.0, 8.0)\"><circle fill=\"#000000\" opacity=\"0.25\" cx=\"5.5\" cy=\"5.5\" r=\"5.4999962\"></circle><circle fill=\"#FFFFFF\" cx=\"5.5\" cy=\"5.5\" r=\"5.4999962\"></circle></g></g></svg></div>'","<template>\r\n <div\r\n class=\"flatmap-container\"\r\n v-loading=\"loading\"\r\n element-loading-text=\"Loading...\"\r\n element-loading-spinner=\"el-icon-loading\"\r\n element-loading-background=\"rgba(0, 0, 0, 0.3)\"\r\n >\r\n <map-svg-sprite-color />\r\n <div style=\"height:100%;width:100%;position:relative;overflow-y:none\">\r\n <div style=\"height:100%;width:100%;\" ref=\"display\"></div>\r\n <el-popover\r\n :content=\"warningMessage\"\r\n placement=\"right\"\r\n v-if=\"displayWarning\"\r\n :appendToBody=\"false\"\r\n trigger=\"manual\"\r\n popper-class=\"warning-popper flatmap-popper right-popper\"\r\n v-model=\"hoverVisibilities[6].value\"\r\n ref=\"warningPopover\"\r\n ></el-popover>\r\n <i\r\n class=\"el-icon-warning warning-icon\"\r\n v-if=\"displayWarning\"\r\n @mouseover=\"showToolitip(6)\"\r\n @mouseout=\"hideToolitip(6)\"\r\n v-popover:warningPopover\r\n >\r\n <span class=\"warning-text\">Beta</span>\r\n </i>\r\n <div class=\"bottom-right-control\">\r\n <el-popover\r\n content=\"Zoom in\"\r\n placement=\"left\"\r\n :appendToBody=\"false\"\r\n trigger=\"manual\"\r\n popper-class=\"flatmap-popper left-popper\"\r\n v-model=\"hoverVisibilities[0].value\"\r\n >\r\n <map-svg-icon\r\n icon=\"zoomIn\"\r\n class=\"icon-button zoomIn\"\r\n slot=\"reference\"\r\n @click.native=\"zoomIn()\"\r\n @mouseover.native=\"showToolitip(0)\"\r\n @mouseout.native=\"hideToolitip(0)\"\r\n />\r\n </el-popover>\r\n <el-popover\r\n content=\"Zoom out\"\r\n placement=\"top-end\"\r\n :appendToBody=\"false\"\r\n trigger=\"manual\"\r\n popper-class=\"flatmap-popper popper-zoomout\"\r\n v-model=\"hoverVisibilities[1].value\"\r\n >\r\n <map-svg-icon\r\n icon=\"zoomOut\"\r\n class=\"icon-button zoomOut\"\r\n slot=\"reference\"\r\n @click.native=\"zoomOut()\"\r\n @mouseover.native=\"showToolitip(1)\"\r\n @mouseout.native=\"hideToolitip(1)\"\r\n />\r\n </el-popover>\r\n <el-popover\r\n content=\"Reset\"\r\n placement=\"top\"\r\n :appendToBody=\"false\"\r\n trigger=\"manual\"\r\n popper-class=\"flatmap-popper\"\r\n v-model=\"hoverVisibilities[2].value\"\r\n >\r\n <div>\r\n Fit to\r\n <br>\r\n window\r\n </div>\r\n <map-svg-icon\r\n slot=\"reference\"\r\n icon=\"fitWindow\"\r\n class=\"icon-button fitWindow\"\r\n @click.native=\"resetView()\"\r\n @mouseover.native=\"showToolitip(2)\"\r\n @mouseout.native=\"hideToolitip(2)\"\r\n />\r\n </el-popover>\r\n </div>\r\n <el-popover\r\n content=\"Change pathway visibility\"\r\n placement=\"right\"\r\n :appendToBody=\"false\"\r\n trigger=\"manual\"\r\n popper-class=\"flatmap-popper right-popper\"\r\n v-model=\"hoverVisibilities[4].value\"\r\n ref=\"checkBoxPopover\"\r\n />\r\n <div class=\"pathway-location\" :class=\"{ open: drawerOpen, close: !drawerOpen }\">\r\n <div\r\n class=\"pathway-container\"\r\n v-if=\"pathways.length > 0 && pathControls\"\r\n v-popover:checkBoxPopover\r\n >\r\n <el-popover\r\n content=\"Find these markers for data\"\r\n placement=\"right\"\r\n :appendToBody=\"false\"\r\n trigger=\"manual\"\r\n popper-class=\"flatmap-popper popper-bump-right right-popper\"\r\n v-model=\"hoverVisibilities[5].value\"\r\n ref=\"markerPopover\"\r\n ></el-popover>\r\n <div\r\n v-show=\"hoverVisibilities[5].value\"\r\n class=\"flatmap-marker-help\"\r\n v-html=\"flatmapMarker\"\r\n v-popover:markerPopover\r\n ></div>\r\n <el-row>\r\n <el-col :span=\"12\">\r\n <div class=\"pathways-display-text\">Pathways</div>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-checkbox\r\n class=\"all-checkbox\"\r\n :indeterminate=\"isIndeterminate\"\r\n v-model=\"checkAll\"\r\n @change=\"handleCheckAllChange\"\r\n >Display all</el-checkbox>\r\n </el-col>\r\n </el-row>\r\n <el-checkbox-group\r\n v-model=\"checkedItems\"\r\n size=\"small\"\r\n class=\"checkbox-group\"\r\n @change=\"handleCheckedItemsChange\"\r\n >\r\n <div class=\"checkbox-group-inner\">\r\n <el-row v-for=\"item in pathways\" :key=\"item.type\" :label=\"item.type\">\r\n <div class=\"checkbox-container\">\r\n <el-checkbox\r\n class=\"my-checkbox\"\r\n :label=\"item.type\"\r\n @change=\"visibilityToggle()\"\r\n :checked=\"true\"\r\n >\r\n <div class=\"path-visual\" :class=\"item.type\"></div>\r\n {{item.label}}\r\n </el-checkbox>\r\n </div>\r\n </el-row>\r\n </div>\r\n </el-checkbox-group>\r\n </div>\r\n <div\r\n @click=\"toggleDrawer\"\r\n class=\"drawer-button\"\r\n :class=\"{ open: drawerOpen, close: !drawerOpen }\"\r\n >\r\n <i class=\"el-icon-arrow-left\"></i>\r\n </div>\r\n </div>\r\n <el-popover\r\n ref=\"backgroundPopover\"\r\n placement=\"top-start\"\r\n width=\"175\"\r\n :appendToBody=\"false\"\r\n trigger=\"click\"\r\n popper-class=\"background-popper\"\r\n >\r\n <el-row class=\"backgroundText\">Organs display</el-row>\r\n <el-row class=\"backgroundControl\">\r\n <el-radio-group v-model=\"colourRadio\" class=\"flatmap-radio\" @change=\"setColour\">\r\n <el-radio :label=\"true\">Colour</el-radio>\r\n <el-radio :label=\"false\">Greyscale</el-radio>\r\n </el-radio-group>\r\n </el-row>\r\n <el-row class=\"backgroundSpacer\"></el-row>\r\n <el-row class=\"backgroundText\">Outlines display</el-row>\r\n <el-row class=\"backgroundControl\">\r\n <el-radio-group v-model=\"outlinesRadio\" class=\"flatmap-radio\" @change=\"setOutlines\">\r\n <el-radio :label=\"true\">Show</el-radio>\r\n <el-radio :label=\"false\">Hide</el-radio>\r\n </el-radio-group>\r\n </el-row>\r\n <el-row class=\"backgroundSpacer\"></el-row>\r\n <el-row class=\"backgroundText\">Change background</el-row>\r\n <el-row class=\"backgroundControl\">\r\n <div\r\n v-for=\"item in availableBackground\"\r\n :key=\"item\"\r\n :class=\"['backgroundChoice', item, item == currentBackground ? 'active' :'']\"\r\n @click=\"backgroundChangeCallback(item)\"\r\n />\r\n </el-row>\r\n </el-popover>\r\n <el-popover\r\n content=\"Change background color\"\r\n placement=\"right\"\r\n v-model=\"hoverVisibilities[3].value\"\r\n :appendToBody=\"false\"\r\n trigger=\"manual\"\r\n popper-class=\"flatmap-popper right-popper\"\r\n >\r\n <map-svg-icon\r\n v-popover:backgroundPopover\r\n icon=\"changeBckgd\"\r\n class=\"icon-button background-colour\"\r\n :class=\"{ open: drawerOpen, close: !drawerOpen }\"\r\n slot=\"reference\"\r\n @mouseover.native=\"showToolitip(3)\"\r\n @mouseout.native=\"hideToolitip(3)\"\r\n />\r\n </el-popover>\r\n <Tooltip\r\n ref=\"tooltip\"\r\n class=\"tooltip\"\r\n :content=\"tooltipContent\"\r\n :flatmapAPI=\"flatmapAPI\"\r\n @resource-selected=\"resourceSelected\"\r\n />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n/* eslint-disable no-alert, no-console */\r\nimport Vue from \"vue\";\r\nimport Tooltip from \"./Tooltip\";\r\nimport { MapSvgIcon, MapSvgSpriteColor } from \"@abi-software/svg-sprite\";\r\nimport {\r\n Checkbox,\r\n CheckboxGroup,\r\n Col,\r\n Loading,\r\n Radio,\r\n RadioGroup,\r\n Row\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 flatmapMarker from \"../icons/flatmap-marker\";\r\n\r\nlocale.use(lang);\r\nVue.use(Checkbox);\r\nVue.use(CheckboxGroup);\r\nVue.use(Col);\r\nVue.use(Loading.directive);\r\nVue.use(Radio);\r\nVue.use(RadioGroup);\r\nVue.use(Row);\r\nconst ResizeSensor = require(\"css-element-queries/src/ResizeSensor\");\r\n\r\nconst mapResize = map => {\r\n return () => {\r\n if (map) map.resize();\r\n };\r\n};\r\n\r\nexport default {\r\n name: \"FlatmapVuer\",\r\n components: {\r\n MapSvgIcon,\r\n MapSvgSpriteColor,\r\n Tooltip\r\n },\r\n beforeCreate: function() {\r\n this.mapManager = undefined;\r\n this.mapImp = undefined;\r\n },\r\n methods: {\r\n backgroundChangeCallback: function(colour) {\r\n this.currentBackground = colour;\r\n if (this.mapImp) {\r\n this.mapImp.setBackgroundColour(this.currentBackground, 1);\r\n }\r\n },\r\n toggleDrawer: function() {\r\n this.drawerOpen = !this.drawerOpen;\r\n },\r\n /**\r\n * Function to toggle colour/greyscale of organs.\r\n */\r\n setColour: function(flag) {\r\n this.colourRadio = flag;\r\n if (this.mapImp) {\r\n this.mapImp.setColour({ colour: flag, outline: this.outlinesRadio });\r\n }\r\n },\r\n /**\r\n * Function to toggle outlines f organs.\r\n */\r\n setOutlines: function(flag) {\r\n this.outlineRadio = flag;\r\n if (this.mapImp) {\r\n this.mapImp.setColour({ colour: this.colourRadio, outline: flag });\r\n }\r\n },\r\n /**\r\n * Function to toggle paths to default.\r\n * Also called when the associated button is pressed.\r\n */\r\n resetView: function() {\r\n if (this.mapImp) {\r\n this.mapImp.resetMap();\r\n this.checkedItems = this.mapImp.pathTypes().map(item => item.type);\r\n this.isIndeterminate = false;\r\n this.checkAll = true;\r\n }\r\n },\r\n /**\r\n * Function to zoom in.\r\n * Also called when the associated button is pressed.\r\n */\r\n zoomIn: function() {\r\n if (this.mapImp) {\r\n this.mapImp.zoomIn();\r\n }\r\n },\r\n /**\r\n * Function to zoom out.\r\n * Also called when the associated button is pressed.\r\n */\r\n zoomOut: function() {\r\n if (this.mapImp) {\r\n this.mapImp.zoomOut();\r\n }\r\n },\r\n visibilityToggle: function() {\r\n if (this.mapImp) {\r\n this.mapImp.showPaths(this.checkedItems);\r\n }\r\n },\r\n handleCheckedItemsChange: function(value) {\r\n let checkedCount = value.length;\r\n this.checkAll = checkedCount === this.pathways.length;\r\n this.isIndeterminate =\r\n checkedCount > 0 && checkedCount < this.pathways.length;\r\n },\r\n handleCheckAllChange(val) {\r\n this.checkedItems = val ? this.pathways.map(a => a.type) : [];\r\n this.isIndeterminate = false;\r\n if (this.mapImp) {\r\n this.mapImp.showPaths(this.checkedItems);\r\n }\r\n },\r\n enablePanZoomEvents: function(flag) {\r\n this.mapImp.enablePanZoomEvents(flag);\r\n },\r\n eventCallback: function() {\r\n return (eventType, data, ...args) => {\r\n if (eventType !== \"pan-zoom\") {\r\n const label = data.label;\r\n const resource = [data.models];\r\n const taxonomy = this.entry;\r\n const payload = {\r\n dataset: data.dataset,\r\n taxonomy: taxonomy,\r\n resource: resource,\r\n label: label,\r\n feature: data,\r\n userData: args,\r\n eventType: eventType\r\n };\r\n // Disable the nueron pop up for now.\r\n if (data && data.type !== \"marker\")\r\n this.checkAndCreatePopups(payload);\r\n this.$emit(\"resource-selected\", payload);\r\n } else {\r\n this.$emit(\"pan-zoom-callback\", data);\r\n }\r\n };\r\n },\r\n // checkNeuronClicked shows a neuron path pop up if a path was recently clicked\r\n checkAndCreatePopups: function(data) {\r\n if (\r\n data.eventType == \"click\" &&\r\n this.createTooltipFromNeuronCuration(data)\r\n ) {\r\n this.mapImp.showPopup(\r\n this.mapImp.modelFeatureIds(data.resource[0])[0],\r\n this.$refs.tooltip.$el,\r\n { className: \"flatmap-tooltip-dialog\" }\r\n );\r\n this.popUpCssHack();\r\n }\r\n },\r\n popUpCssHack: function() {\r\n // Below is a hack to remove flatmap tooltips while popup is open\r\n let ftooltip = document.querySelector(\".flatmap-tooltip-popup\");\r\n if (ftooltip) ftooltip.style.display = \"none\";\r\n document.querySelector(\".mapboxgl-popup-close-button\").style.display =\r\n \"block\";\r\n this.$refs.tooltip.$el.style.display = \"flex\";\r\n document.querySelector(\".mapboxgl-popup-close-button\").onclick = () => {\r\n document.querySelector(\".flatmap-tooltip-popup\").style.display =\r\n \"block\";\r\n };\r\n },\r\n resourceSelected: function(action) {\r\n this.$emit(\"resource-selected\", action);\r\n },\r\n createTooltipFromNeuronCuration: function(data) {\r\n const feature = data.resource[0];\r\n let content = {\r\n title: undefined,\r\n components: undefined,\r\n start: undefined,\r\n distribution: undefined,\r\n actions: []\r\n };\r\n\r\n let foundAnnotations = false;\r\n this.tooltipVisible = false;\r\n\r\n // nerve cuff check\r\n if (data.feature.nodeId) {\r\n let paths = this.mapImp.nodePathModels(data.feature.nodeId)\r\n if (paths.size > 0){\r\n foundAnnotations = true\r\n this.tooltipVisible = true\r\n this.tooltipContent = content\r\n this.tooltipContent.uberon = feature\r\n this.tooltipContent.title = data.label\r\n this.tooltipContent.featureIds = [...paths]\r\n }\r\n return true\r\n }\r\n\r\n // neural data check\r\n if (feature){\r\n if (feature.includes('ilxtr:neuron')){\r\n foundAnnotations = true\r\n this.tooltipVisible = true\r\n this.tooltipContent = content\r\n this.tooltipContent.uberon = feature\r\n this.tooltipContent.title = data.label\r\n this.tooltipContent.featureIds = [feature]\r\n this.tooltipContent.actions.push({\r\n title: \"Search for dataset\",\r\n label: \"Neuron Datasets\",\r\n resource: feature.split(\":\")[1],\r\n type: \"Neuron Search\",\r\n nervePath: true\r\n });\r\n }\r\n }\r\n // annotated with datset check\r\n if (data.dataset) {\r\n foundAnnotations = true;\r\n this.tooltipVisible = true;\r\n this.tooltipContent = content;\r\n this.tooltipContent.uberon = feature;\r\n this.tooltipContent.title = data.label;\r\n this.tooltipContent.actions.push({\r\n title: \"View dataset\",\r\n resource: data.dataset,\r\n type: \"URL\",\r\n nervePath: false\r\n });\r\n }\r\n\r\n if (foundAnnotations) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n // Keeping this as an API\r\n showPopup: function(featureId, node, options) {\r\n let myOptions = options;\r\n if (this.mapImp) {\r\n if (myOptions) {\r\n if (!myOptions.className) myOptions.className = \"flatmapvuer-popover\";\r\n } else {\r\n myOptions = { className: \"flatmapvuer-popover\" };\r\n }\r\n this.mapImp.showPopup(featureId, node, myOptions);\r\n }\r\n },\r\n showMarkerPopup: function(featureId, node, options) {\r\n if (this.mapImp) {\r\n this.mapImp.showMarkerPopup(featureId, node, options);\r\n }\r\n },\r\n setHelpMode: function(helpMode) {\r\n if (helpMode) {\r\n this.inHelp = true;\r\n this.hoverVisibilities.forEach(item => {\r\n item.value = true;\r\n });\r\n this.openFlatmapHelpPopup();\r\n } else {\r\n this.inHelp = false;\r\n this.hoverVisibilities.forEach(item => {\r\n item.value = false;\r\n });\r\n this.closeFlatmapHelpPopup();\r\n }\r\n },\r\n showToolitip: function(tooltipNumber) {\r\n if (!this.inHelp) {\r\n this.tooltipWait = setTimeout(() => {\r\n this.hoverVisibilities[tooltipNumber].value = true;\r\n }, 500);\r\n }\r\n },\r\n hideToolitip: function(tooltipNumber) {\r\n if (!this.inHelp) {\r\n this.hoverVisibilities[tooltipNumber].value = false;\r\n clearTimeout(this.tooltipWait);\r\n }\r\n },\r\n openFlatmapHelpPopup: function() {\r\n if (this.mapImp) {\r\n let heartId = this.mapImp.featureIdsForModel(\"UBERON:0000948\")[0];\r\n const elm = \"Click for more information\";\r\n this.mapImp.showPopup(heartId, elm, {\r\n anchor: \"top\",\r\n className: \"flatmap-popup-popper\"\r\n });\r\n }\r\n },\r\n closeFlatmapHelpPopup: function() {\r\n this.$el\r\n .querySelectorAll(\".mapboxgl-popup-close-button\")\r\n .forEach(item => {\r\n item.click();\r\n });\r\n },\r\n getLabels: function() {\r\n let labels = [];\r\n if (this.mapImp) {\r\n let annotations = this.mapImp.annotations;\r\n for (let value of annotations.values()) {\r\n if (value.label) labels.push(value.label);\r\n }\r\n return Array.from(new Set(labels));\r\n }\r\n },\r\n getState: function() {\r\n if (this.mapImp) {\r\n let state = {\r\n entry: this.entry,\r\n viewport: this.mapImp.getState()\r\n };\r\n return state;\r\n }\r\n return undefined;\r\n },\r\n setState: function(state) {\r\n if (state) {\r\n if (this.mapImp && state.entry) {\r\n if (this.entry == state.entry)\r\n if (state.viewport) {\r\n this.mapImp.setState(state.viewport);\r\n }\r\n } else {\r\n this.createFlatmap(state);\r\n }\r\n }\r\n },\r\n createFlatmap: function(state) {\r\n if (!this.mapImp && !this.loading) {\r\n this.loading = true;\r\n let minimap = false;\r\n if (this.displayMinimap) {\r\n minimap = { position: \"top-right\" };\r\n }\r\n let entry = this.entry;\r\n if (state && state.entry) entry = state.entry;\r\n let promise1 = this.mapManager.loadMap(\r\n entry,\r\n this.$refs.display,\r\n this.eventCallback(),\r\n {\r\n //fullscreenControl: false,\r\n //annotatable: false,\r\n //debug: true,\r\n featureInfo: this.featureInfo,\r\n \"min-zoom\": this.minZoom,\r\n pathControls: false,\r\n searchable: this.searchable,\r\n tooltips: this.tooltips,\r\n minimap: minimap\r\n }\r\n );\r\n promise1.then(returnedObject => {\r\n this.mapImp = returnedObject;\r\n this.sensor = new ResizeSensor(\r\n this.$refs.display,\r\n mapResize(this.mapImp)\r\n );\r\n this.mapImp.setBackgroundOpacity(1);\r\n this.backgroundChangeCallback(this.currentBackground);\r\n this.pathways = this.mapImp.pathTypes();\r\n this.$emit(\"ready\", this);\r\n this.loading = false;\r\n if (this._viewportToBeSet)\r\n this.mapImp.setState(this._viewportToBeSet);\r\n else if (state && state.viewport)\r\n this.mapImp.setState(state.viewport);\r\n });\r\n } else if (state) {\r\n if (this.entry == state.entry) this._viewportToBeSet = state.viewport;\r\n }\r\n },\r\n showMinimap: function(flag) {\r\n if (this.mapImp)\r\n this.mapImp.showMinimap(flag);\r\n },\r\n showPathwaysDrawer: function(flag) {\r\n this.drawerOpen = flag;\r\n },\r\n /**\r\n * Function to display features with annotation matching the provided term.\r\n */\r\n searchAndShowResult: function(term) {\r\n if (this.mapImp) {\r\n if (term === undefined || term === \"\") {\r\n this.mapImp.clearSearchResults();\r\n } else {\r\n let searchResults = this.mapImp.search(term);\r\n if (searchResults && searchResults.__featureIds.length > 0)\r\n this.mapImp.showSearchResults(searchResults);\r\n else this.mapImp.clearSearchResults();\r\n }\r\n }\r\n }\r\n },\r\n props: {\r\n entry: String,\r\n featureInfo: {\r\n type: Boolean,\r\n default: false\r\n },\r\n minZoom: {\r\n type: Number,\r\n default: 4\r\n },\r\n pathControls: {\r\n type: Boolean,\r\n default: true\r\n },\r\n searchable: {\r\n type: Boolean,\r\n default: false\r\n },\r\n tooltips: {\r\n type: Boolean,\r\n default: true\r\n },\r\n helpMode: {\r\n type: Boolean,\r\n default: false\r\n },\r\n renderAtMounted: {\r\n type: Boolean,\r\n default: true\r\n },\r\n displayWarning: {\r\n type: Boolean,\r\n default: true\r\n },\r\n displayMinimap: {\r\n type: Boolean,\r\n default: false\r\n },\r\n warningMessage: {\r\n type: String,\r\n default: \"Beta feature - This map is based on the connectivity of a rat. New connectivity and species specificity will be added as the SPARC program progress.\"\r\n },\r\n /**\r\n * State containing state of the flatmap.\r\n */\r\n state: {\r\n type: Object,\r\n default: undefined\r\n },\r\n /**\r\n * Specify the endpoint of the flatmap server.\r\n */\r\n flatmapAPI: {\r\n type: String,\r\n default: \"https://mapcore-demo.org/flatmaps/\"\r\n }\r\n },\r\n data: function() {\r\n return {\r\n checkedItems: [],\r\n pathways: [],\r\n isIndeterminate: false,\r\n checkAll: true,\r\n hoverVisibilities: [\r\n { value: false },\r\n { value: false },\r\n { value: false },\r\n { value: false },\r\n { value: false },\r\n { value: false },\r\n { value: false }\r\n ],\r\n inHelp: false,\r\n currentBackground: \"white\",\r\n availableBackground: [\"white\", \"lightskyblue\", \"black\"],\r\n loading: false,\r\n flatmapMarker: flatmapMarker,\r\n drawerOpen: true,\r\n tooltipContent: { featureIds: []},\r\n colourRadio: true,\r\n outlinesRadio: true\r\n };\r\n },\r\n watch: {\r\n entry: function() {\r\n if (!this.state) this.createFlatmap();\r\n },\r\n helpMode: function(val) {\r\n this.setHelpMode(val);\r\n },\r\n state: {\r\n handler: function(state) {\r\n this.setState(state);\r\n },\r\n immediate: true,\r\n deep: true\r\n }\r\n },\r\n mounted: function() {\r\n const flatmap = require(\"@abi-software/flatmap-viewer\");\r\n this.mapManager = new flatmap.MapManager(this.flatmapAPI);\r\n if (this.renderAtMounted) this.createFlatmap();\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 lang=\"scss\">\r\n@import \"~element-ui/packages/theme-chalk/src/button\";\r\n@import \"~element-ui/packages/theme-chalk/src/checkbox\";\r\n@import \"~element-ui/packages/theme-chalk/src/checkbox-group\";\r\n@import \"~element-ui/packages/theme-chalk/src/loading\";\r\n@import \"~element-ui/packages/theme-chalk/src/row\";\r\n\r\n.warning-icon {\r\n position: absolute;\r\n top: 90px;\r\n left: 37px;\r\n text-align: left;\r\n font-size: 25px;\r\n color: $warning;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n}\r\n\r\n.warning-text {\r\n font-size: 15px;\r\n vertical-align: 5px;\r\n}\r\n\r\n.path-visual {\r\n margin: 3px 0;\r\n height: 3px;\r\n width: 25px;\r\n margin-right: 5px;\r\n display: inline-block;\r\n &.cns {\r\n background: #9b1fc1;\r\n }\r\n &.lcn {\r\n background: #f19e38;\r\n }\r\n &.para-pre {\r\n background: #3f8f4a;\r\n }\r\n &.para-post {\r\n background: repeating-linear-gradient(\r\n 90deg,\r\n #3f8f4a,\r\n #3f8f4a 6px,\r\n transparent 0,\r\n transparent 9px\r\n );\r\n }\r\n &.sensory {\r\n background: #2a62f6;\r\n }\r\n &.somatic {\r\n background: #98561d;\r\n }\r\n &.symp-pre {\r\n background: #ea3423;\r\n }\r\n &.symp-post {\r\n background: repeating-linear-gradient(\r\n 90deg,\r\n #ea3423,\r\n #ea3423 6px,\r\n transparent 0,\r\n transparent 9px\r\n );\r\n }\r\n}\r\n\r\n.flatmap-container {\r\n height: 100%;\r\n width: 100%;\r\n}\r\n\r\n.pathway-location {\r\n position: absolute;\r\n bottom: 0px;\r\n transition: all 1s ease;\r\n &.open {\r\n left: 0px;\r\n }\r\n &.close {\r\n left: -298px;\r\n }\r\n}\r\n\r\n.pathway-container {\r\n float: left;\r\n padding-left: 16px;\r\n padding-right: 18px;\r\n max-height: calc(100% - 184px);\r\n text-align: left;\r\n overflow: auto;\r\n border: 1px solid rgb(220, 223, 230);\r\n padding-top: 7px;\r\n padding-bottom: 16px;\r\n background: #ffffff;\r\n}\r\n\r\n.pathways-display-text {\r\n width: 59px;\r\n height: 20px;\r\n color: rgb(48, 49, 51);\r\n font-size: 14px;\r\n font-weight: normal;\r\n line-height: 20px;\r\n margin-left: 8px;\r\n}\r\n\r\n.all-checkbox {\r\n float: right;\r\n}\r\n\r\n.checkbox-container {\r\n display: flex;\r\n cursor: pointer;\r\n}\r\n\r\n.checkbox-group {\r\n width: 260px;\r\n border: 1px solid rgb(144, 147, 153);\r\n border-radius: 4px;\r\n background: #ffffff;\r\n}\r\n\r\n.my-checkbox {\r\n background-color: #fff;\r\n width: 100%;\r\n}\r\n\r\n.checkbox-group-inner {\r\n padding: 18px;\r\n}\r\n\r\n.flatmap-marker-help {\r\n display: inline-block;\r\n}\r\n\r\n::v-deep .popper-bump-right {\r\n left: 30px;\r\n}\r\n\r\n::v-deep .el-checkbox__label {\r\n padding-left: 5px;\r\n color: $app-primary-color;\r\n font-size: 12px;\r\n font-weight: 500;\r\n letter-spacing: 0px;\r\n line-height: 14px;\r\n}\r\n\r\n::v-deep .el-checkbox__input {\r\n &.is-indeterminate,\r\n &.is-checked {\r\n .el-checkbox__inner {\r\n background-color: $app-primary-color;\r\n border-color: $app-primary-color;\r\n }\r\n }\r\n}\r\n\r\n::v-deep .el-checkbox__label {\r\n color: $app-primary-color !important;\r\n}\r\n\r\n.el-dropdown-link {\r\n cursor: pointer;\r\n color: #409eff;\r\n}\r\n.el-icon-arrow-down {\r\n font-size: 12px;\r\n}\r\n.demonstration {\r\n display: block;\r\n color: #8492a6;\r\n font-size: 14px;\r\n margin-bottom: 20px;\r\n}\r\n\r\n.tooltip {\r\n display: none;\r\n}\r\n\r\n::v-deep .mapboxgl-popup {\r\n max-width: 300px !important;\r\n}\r\n\r\n::v-deep .flatmap-tooltip-popup {\r\n &.mapboxgl-popup-anchor-bottom {\r\n .mapboxgl-popup-content {\r\n margin-bottom: 12px;\r\n &::after,\r\n &::before {\r\n top: 100%;\r\n border-width: 12px;\r\n }\r\n /* this border color controlls the color of the triangle (what looks like the fill of the triangle) */\r\n &::after {\r\n margin-top: -1px;\r\n border-color: rgb(255, 255, 255) transparent transparent transparent;\r\n }\r\n /* this border color controlls the outside, thin border */\r\n &::before {\r\n margin: 0 auto;\r\n border-color: $app-primary-color transparent transparent transparent;\r\n }\r\n }\r\n }\r\n &.mapboxgl-popup-anchor-top {\r\n .mapboxgl-popup-content {\r\n margin-top: 18px;\r\n &::after,\r\n &::before {\r\n top: calc(-100% + 6px);\r\n border-width: 12px;\r\n }\r\n /* this border color controlls the color of the triangle (what looks like the fill of the triangle) */\r\n &::after {\r\n margin-top: 1px;\r\n border-color: transparent transparent rgb(255, 255, 255) transparent;\r\n }\r\n &::before {\r\n margin: 0 auto;\r\n border-color: transparent transparent $app-primary-color transparent;\r\n }\r\n }\r\n }\r\n .mapboxgl-popup-content {\r\n border-radius: 4px;\r\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\r\n pointer-events: none;\r\n display: none;\r\n background: #fff;\r\n border: 1px solid $app-primary-color;\r\n padding-left: 6px;\r\n padding-right: 6px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n &::after,\r\n &::before {\r\n content: \"\";\r\n display: block;\r\n position: absolute;\r\n width: 0;\r\n height: 0;\r\n border-style: solid;\r\n flex-shrink: 0;\r\n }\r\n }\r\n .mapboxgl-popup-tip {\r\n display: none;\r\n }\r\n}\r\n\r\n::v-deep .mapboxgl-popup {\r\n &.flatmap-marker-popup {\r\n box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);\r\n pointer-events: auto;\r\n background: #fff;\r\n }\r\n}\r\n\r\n/* Fix for chrome bug where under triangle pops up above one on top of it */\r\n.selector:not(*:root),\r\n::v-deep.flatmap-tooltip-popup {\r\n .mapboxgl-popup-content::after {\r\n top: 99.9%;\r\n }\r\n}\r\n\r\n::v-deep .flatmap-tooltip-dialog {\r\n .mapboxgl-popup-tip {\r\n display: none;\r\n }\r\n}\r\n\r\n::v-deep .flatmap-marker-popup {\r\n .mapboxgl-popup-content {\r\n padding: 0px;\r\n }\r\n}\r\n\r\n::v-deep .flatmapvuer-popover {\r\n .mapboxgl-popup-close-button {\r\n position: absolute;\r\n right: 0.5em;\r\n top: 0;\r\n border: 0;\r\n border-radius: 0 3px 0 0;\r\n cursor: pointer;\r\n background-color: transparent;\r\n font-size: 2.5em;\r\n color: grey;\r\n top: 0.95em;\r\n }\r\n}\r\n\r\n.zoomOut {\r\n padding-left: 8px;\r\n}\r\n\r\n.fitWindow {\r\n padding-left: 8px;\r\n}\r\n\r\n.background-colour {\r\n bottom: 16px;\r\n position: absolute;\r\n transition: all 1s ease;\r\n}\r\n.background-colour.open {\r\n left: 322px;\r\n}\r\n.background-colour.close {\r\n left: 24px;\r\n}\r\n\r\n::v-deep .background-popper {\r\n padding: 5px 12px;\r\n background-color: #ffffff;\r\n border: 1px solid $app-primary-color;\r\n box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.06);\r\n height: 200px;\r\n width: 175px;\r\n min-width: 175px;\r\n &.el-popper[x-placement^=\"top\"] {\r\n .popper__arrow {\r\n border-top-color: $app-primary-color !important;\r\n &::after {\r\n border-top-color: #fff !important;\r\n }\r\n }\r\n }\r\n}\r\n\r\n.backgroundText {\r\n color: rgb(48, 49, 51);\r\n font-size: 14px;\r\n font-weight: normal;\r\n line-height: 20px;\r\n}\r\n\r\n.backgroundControl {\r\n display: flex;\r\n margin-top: 16px;\r\n}\r\n\r\n.backgroundChoice {\r\n width: 20px;\r\n height: 20px;\r\n border: 1px solid rgb(144, 147, 153);\r\n margin-left: 20px;\r\n &.active {\r\n border: 2px solid $app-primary-color;\r\n }\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n &.white {\r\n background-color: white;\r\n margin-left: 10px;\r\n }\r\n &.black {\r\n background-color: black;\r\n }\r\n &.lightskyblue {\r\n background-color: white;\r\n }\r\n}\r\n\r\n.togglePaths {\r\n top: 201px;\r\n right: 20px;\r\n position: absolute;\r\n}\r\n\r\n.icon-button {\r\n height: 24px !important;\r\n width: 24px !important;\r\n color: $app-primary-color;\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n}\r\n\r\n::v-deep .flatmap-popper {\r\n padding: 6px 4px;\r\n font-size: 12px;\r\n color: rgb(48, 49, 51);\r\n background-color: #f3ecf6;\r\n border: 1px solid $app-primary-color;\r\n white-space: nowrap;\r\n min-width: unset;\r\n &.warning-popper {\r\n min-width: 150px;\r\n max-width: 400px;\r\n word-break: keep-all;\r\n white-space: unset;\r\n }\r\n &.left-popper {\r\n .popper__arrow {\r\n border-left-color: $app-primary-color !important;\r\n &::after {\r\n border-left-color: #f3ecf6 !important;\r\n }\r\n }\r\n }\r\n &.right-popper {\r\n .popper__arrow {\r\n border-right-color: $app-primary-color !important;\r\n &:after {\r\n border-right-color: #f3ecf6 !important;\r\n }\r\n }\r\n }\r\n &.el-popper[x-placement^=\"top\"] {\r\n .popper__arrow {\r\n border-top-color: $app-primary-color !important;\r\n &:after {\r\n border-top-color: #f3ecf6 !important;\r\n }\r\n }\r\n }\r\n}\r\n\r\n::v-deep .el-loading-spinner {\r\n i,\r\n .el-loading-text {\r\n color: $app-primary-color;\r\n }\r\n}\r\n\r\n::v-deep .flatmap-popup-popper {\r\n .mapboxgl-popup-tip {\r\n border-bottom-color: $app-primary-color;\r\n }\r\n .mapboxgl-popup-content {\r\n padding: 6px 4px;\r\n font-size: 12px;\r\n color: rgb(48, 49, 51);\r\n background-color: #f3ecf6;\r\n border: 1px solid $app-primary-color;\r\n white-space: nowrap;\r\n min-width: unset;\r\n .mapboxgl-popup-close-button {\r\n display: none;\r\n }\r\n }\r\n}\r\n\r\n::v-deep .flatmap-popper {\r\n \r\n}\r\n\r\n::v-deep .popper-zoomout {\r\n padding-right: 13px !important;\r\n left: -21px !important;\r\n}\r\n\r\n::v-deep .popper-zoomout {\r\n .popper__arrow {\r\n left: 53px !important;\r\n }\r\n}\r\n\r\n::v-deep .mapboxgl-popup-content {\r\n padding: 0px;\r\n}\r\n\r\n.bottom-right-control {\r\n position: absolute;\r\n right: 16px;\r\n bottom: 16px;\r\n}\r\n\r\n::v-deep .my-drawer {\r\n background: rgba(0, 0, 0, 0);\r\n box-shadow: none;\r\n}\r\n\r\n.drawer {\r\n ::v-deep .el-drawer:focus {\r\n outline: none;\r\n }\r\n}\r\n\r\n.open-drawer,\r\n.drawer-button {\r\n z-index: 8;\r\n width: 20px;\r\n height: 40px;\r\n border: solid 1px #e4e7ed;\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.open-drawer {\r\n position: absolute;\r\n left: 0px;\r\n background-color: #f7faff;\r\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.06);\r\n}\r\n\r\n.drawer-button {\r\n float: left;\r\n margin-top: calc(50% - 36px);\r\n border-left: 0;\r\n background-color: #ffffff;\r\n i {\r\n margin-top: 12px;\r\n color: $app-primary-color;\r\n transition-delay: 0.9s;\r\n }\r\n &.open {\r\n i {\r\n transform: rotate(0deg) scaleY(2.5);\r\n }\r\n }\r\n &.close {\r\n i {\r\n transform: rotate(180deg) scaleY(2.5);\r\n }\r\n }\r\n}\r\n\r\n::v-deep .mapboxgl-canvas-container {\r\n canvas {\r\n outline: none;\r\n }\r\n}\r\n\r\n.backgroundSpacer {\r\n border-bottom: 1px solid #e4e7ed;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.flatmap-radio {\r\n ::v-deep label {\r\n margin-right: 20px;\r\n &:last-child {\r\n margin-right: 0px;\r\n }\r\n }\r\n .el-radio__input {\r\n &.is-checked {\r\n & + .el-radio__label {\r\n color: $app-primary-color;\r\n }\r\n .el-radio__inner {\r\n border-color: $app-primary-color;\r\n background: $app-primary-color;\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n\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!./FlatmapVuer.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!./FlatmapVuer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FlatmapVuer.vue?vue&type=template&id=3d2da278&scoped=true&\"\nimport script from \"./FlatmapVuer.vue?vue&type=script&lang=js&\"\nexport * from \"./FlatmapVuer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FlatmapVuer.vue?vue&type=style&index=0&id=3d2da278&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d2da278\",\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:\"multi-container\"},[_c('div',{staticStyle:{\"position\":\"absolute\",\"z-index\":\"10\"}},[_c('div',{staticClass:\"species-display-text\"},[_vm._v(\" Species \")]),_c('el-popover',{ref:\"selectPopover\",attrs:{\"content\":\"Select a species\",\"placement\":\"right\",\"appendToBody\":false,\"trigger\":\"manual\",\"popper-class\":\"flatmap-popper right-popper\"},model:{value:(_vm.helpMode),callback:function ($$v) {_vm.helpMode=$$v},expression:\"helpMode\"}}),_c('el-select',{directives:[{name:\"popover\",rawName:\"v-popover:selectPopover\",arg:\"selectPopover\"}],staticClass:\"select-box\",attrs:{\"id\":\"flatmap-select\",\"popper-append-to-body\":_vm.appendToBody,\"placeholder\":\"Select\",\"popper-class\":\"flatmap_dropdown\"},on:{\"change\":_vm.flatmapChanged},model:{value:(_vm.activeSpecies),callback:function ($$v) {_vm.activeSpecies=$$v},expression:\"activeSpecies\"}},_vm._l((_vm.speciesList),function(item,key){return _c('el-option',{key:key,attrs:{\"label\":key,\"value\":key}},[_c('el-row',[_c('el-col',{attrs:{\"span\":8}},[_c('i',{class:item.iconClass})]),_c('el-col',{attrs:{\"span\":12}},[_vm._v(_vm._s(key))])],1)],1)}),1)],1),_vm._l((_vm.speciesList),function(item,key){return _c('FlatmapVuer',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.activeSpecies==key),expression:\"activeSpecies==key\"}],key:key,ref:key,refInFor:true,staticStyle:{\"height\":\"100%\"},attrs:{\"showLayer\":_vm.showLayer,\"entry\":item.taxo,\"displayWarning\":item.displayWarning,\"warningMessage\":_vm.warningMessage,\"featureInfo\":_vm.featureInfo,\"minZoom\":_vm.minZoom,\"pathControls\":_vm.pathControls,\"searchable\":_vm.searchable,\"helpMode\":_vm.helpMode,\"renderAtMounted\":_vm.renderAtMounted,\"displayMinimap\":_vm.displayMinimap,\"flatmapAPI\":_vm.flatmapAPI},on:{\"resource-selected\":_vm.FlatmapSelected,\"ready\":_vm.FlatmapReady,\"pan-zoom-callback\":_vm.panZoomCallback}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"multi-container\">\r\n <div style=\"position:absolute;z-index:10;\">\r\n <div class=\"species-display-text\">\r\n Species\r\n </div>\r\n <el-popover content=\"Select a species\" placement=\"right\" \r\n :appendToBody=false trigger=\"manual\" popper-class=\"flatmap-popper right-popper\" v-model=\"helpMode\" ref=\"selectPopover\">\r\n </el-popover>\r\n <el-select\r\n id=\"flatmap-select\"\r\n :popper-append-to-body=\"appendToBody\"\r\n v-model=\"activeSpecies\"\r\n placeholder=\"Select\"\r\n class=\"select-box\"\r\n popper-class=\"flatmap_dropdown\"\r\n @change=\"flatmapChanged\"\r\n v-popover:selectPopover\r\n >\r\n <el-option v-for=\"(item, key) in speciesList\" :key=\"key\" :label=\"key\" :value=\"key\">\r\n <el-row>\r\n <el-col :span=\"8\"><i :class=\"item.iconClass\"></i></el-col>\r\n <el-col :span=\"12\">{{ key }}</el-col>\r\n </el-row>\r\n </el-option>\r\n </el-select>\r\n </div>\r\n <FlatmapVuer\r\n v-for=\"(item, key) in speciesList\"\r\n :key=\"key\"\r\n :showLayer=\"showLayer\"\r\n v-show=\"activeSpecies==key\"\r\n :entry=\"item.taxo\"\r\n :displayWarning=\"item.displayWarning\"\r\n :warningMessage=\"warningMessage\"\r\n :ref=\"key\"\r\n @resource-selected=\"FlatmapSelected\"\r\n @ready=\"FlatmapReady\"\r\n @pan-zoom-callback=\"panZoomCallback\"\r\n :featureInfo=\"featureInfo\"\r\n :minZoom=\"minZoom\"\r\n :pathControls=\"pathControls\"\r\n :searchable=\"searchable\"\r\n :helpMode=\"helpMode\"\r\n :renderAtMounted=\"renderAtMounted\"\r\n :displayMinimap=\"displayMinimap\"\r\n style=\"height:100%\"\r\n :flatmapAPI=\"flatmapAPI\"\r\n />\r\n </div>\r\n</template>\r\n\r\n\r\n<script>\r\n/* eslint-disable no-alert, no-console */\r\nimport EventBus from './EventBus'\r\nimport Vue from \"vue\";\r\nimport FlatmapVuer from \"./FlatmapVuer.vue\";\r\nimport { Col, Option, Select, Row, Popover } from \"element-ui\"; \r\nimport lang from \"element-ui/lib/locale/lang/en\";\r\nimport locale from \"element-ui/lib/locale\";\r\nlocale.use(lang);\r\nVue.use(Col);\r\nVue.use(Row);\r\nVue.use(Option);\r\nVue.use(Select);\r\nVue.use(Popover)\r\n\r\n\r\nexport default {\r\n name: \"MultiFlatmapVuer\",\r\n components: {\r\n FlatmapVuer\r\n },\r\n mounted: function() {\r\n this.initialise();\r\n EventBus.$on('onActionClick', (action) =>{\r\n this.FlatmapSelected(action)\r\n })\r\n },\r\n methods: {\r\n initialise: function() {\r\n return new Promise(resolve => {\r\n fetch(this.flatmapAPI)\r\n .then(response => response.json())\r\n .then(data => {\r\n this.speciesLis= {};\r\n Object.keys(this.availableSpecies).forEach(key => {\r\n for (let i = 0; i < data.length; i++) {\r\n if (data[i].describes == this.availableSpecies[key].taxo) {\r\n this.speciesList[key] = this.availableSpecies[key];\r\n break;\r\n }\r\n }\r\n });\r\n if (!this.state) {\r\n if (this.initial && this.speciesList[this.initial] !== undefined) {\r\n this.activeSpecies = this.initial;\r\n } else {\r\n this.activeSpecies = Object.keys(this.speciesList)[0];\r\n }\r\n Vue.nextTick(() => {\r\n if (this.$refs[this.activeSpecies])\r\n this.$refs[this.activeSpecies][0].createFlatmap();\r\n });\r\n }\r\n resolve();\r\n });\r\n })\r\n },\r\n FlatmapSelected: function(resource) {\r\n this.$emit(\"resource-selected\", resource);\r\n },\r\n FlatmapReady: function(component) {\r\n this.$emit(\"ready\", component);\r\n },\r\n getCoordinatesOfLastClick: function() {\r\n const flatmap = this.$refs[this.activeSpecies];\r\n if (flatmap && flatmap[0]) {\r\n return flatmap[0].getCoordinatesOfLastClick();\r\n }\r\n return undefined;\r\n },\r\n getCurrentFlatmap: function() {\r\n return this.$refs[this.activeSpecies][0];\r\n },\r\n panZoomCallback: function(payload) {\r\n this.$emit(\"pan-zoom-callback\", payload);\r\n },\r\n showPopup: function(featureId, node, options) {\r\n let map = this.getCurrentFlatmap();\r\n map.showPopup(featureId, node, options);\r\n },\r\n showMarkerPopup: function(featureId, node, options) {\r\n let map = this.getCurrentFlatmap();\r\n map.showMarkerPopup(featureId, node, options);\r\n },\r\n flatmapChanged: function(species){\r\n if (this.activeSpecies != species) \r\n this.activeSpecies = species;\r\n this.$refs[this.activeSpecies][0].createFlatmap();\r\n this.$emit('flatmapChanged', this.activeSpecies);\r\n },\r\n /**\r\n * Function used for getting the current states of the scene. This exported states \r\n * can be imported using the importStates method.\r\n * \r\n * @public\r\n */\r\n getState: function() {\r\n let state = {\r\n species: this.activeSpecies,\r\n state: undefined,\r\n };\r\n let map = this.getCurrentFlatmap();\r\n state.state = map.getState();\r\n return state;\r\n },\r\n /**\r\n * Function used for importing the states of the scene. This exported states \r\n * can be imported using the read states method.\r\n * \r\n * @public\r\n */\r\n setState: function(state) {\r\n if (state) {\r\n this.initialise().then(() => {\r\n if (state.species && state.species !== this.activeSpecies) {\r\n this.activeSpecies = state.species;\r\n if (state.state) {\r\n //Wait for next tick when the refs are ready for rendering\r\n this.$nextTick(() => {\r\n this.$refs[this.activeSpecies][0].createFlatmap(state.state);\r\n this.$emit('flatmapChanged', this.activeSpecies);\r\n })\r\n }\r\n } else if (state.state) {\r\n let map = this.getCurrentFlatmap();\r\n map.setState(state.state);\r\n }\r\n })\r\n }\r\n },\r\n resourceSelected: function(action) {\r\n this.$emit(\"resource-selected\", action);\r\n },\r\n },\r\n props: {\r\n showLayer: {\r\n type: Boolean,\r\n default: false\r\n },\r\n featureInfo: {\r\n type: Boolean,\r\n default: false\r\n },\r\n pathControls: {\r\n type: Boolean,\r\n default: true\r\n },\r\n searchable: {\r\n type: Boolean,\r\n default: false\r\n },\r\n /**\r\n * Initial species for the flatmap.\r\n * This value will be ignored if a valid state object is provided.\r\n */\r\n initial: {\r\n type: String,\r\n default: \"\"\r\n },\r\n minZoom: {\r\n type: Number,\r\n default: 4\r\n },\r\n renderAtMounted: {\r\n type: Boolean,\r\n default: false\r\n },\r\n helpMode: {\r\n type: Boolean,\r\n default: false\r\n },\r\n displayMinimap: {\r\n type: Boolean,\r\n default: false\r\n },\r\n warningMessage: {\r\n type: String,\r\n default: \"Beta feature - This map is based on the connectivity of a rat. New connectivity and species specificity will be added as the SPARC program progress.\"\r\n },\r\n availableSpecies: {},\r\n /**\r\n * State containing state of the flatmap.\r\n */\r\n state: {\r\n type: Object,\r\n default: undefined,\r\n },\r\n /**\r\n * Specify the endpoint of the flatmap server.\r\n */\r\n flatmapAPI: {\r\n type: String,\r\n default: \"https://mapcore-demo.org/flatmaps/\"\r\n },\r\n },\r\n data: function() {\r\n return {\r\n activeSpecies: undefined,\r\n appendToBody: false,\r\n speciesList: {}\r\n };\r\n },\r\n watch: {\r\n state: {\r\n handler: function(state) {\r\n this.setState(state);\r\n },\r\n immediate: true,\r\n deep: true,\r\n }\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n@import \"~element-ui/packages/theme-chalk/src/select\";\r\n@import \"~element-ui/packages/theme-chalk/src/option\";\r\n\r\n.multi-container {\r\n height: 100%;\r\n width: 100%;\r\n}\r\n\r\n.species-display-text {\r\n width: 47px;\r\n height: 20px;\r\n color: rgb(48, 49, 51);\r\n font-size: 14px;\r\n font-weight: normal;\r\n line-height: 20px;\r\n left:24px;\r\n top:16px;\r\n position: absolute;\r\n}\r\n\r\n.select-box {\r\n width: 120px;\r\n border-radius: 4px;\r\n border: 1px solid rgb(144, 147, 153);\r\n background-color: var(--white);\r\n font-weight: 500;\r\n color:rgb(48, 49, 51);;\r\n left: 16px;\r\n top: 44px;\r\n position: absolute;\r\n ::v-deep .el-input__inner {\r\n color: rgb(48, 49, 51);\r\n padding-top: 0.25em;\r\n .is-focus {\r\n border: 1px solid $app-primary-color;\r\n }\r\n }\r\n}\r\n\r\n.flatmap_dropdown {\r\n .el-select-dropdown__item {\r\n white-space: nowrap;\r\n text-align: left;\r\n &.selected {\r\n color: $app-primary-color;\r\n font-weight: normal;\r\n }\r\n }\r\n}\r\n\r\n::v-deep .flatmap-popper {\r\n padding: 6px 4px;\r\n font-size:12px;\r\n color: rgb(48, 49, 51);\r\n background-color: #f3ecf6;\r\n border: 1px solid $app-primary-color;\r\n white-space: nowrap;\r\n min-width: unset;\r\n &.right-popper {\r\n .popper__arrow {\r\n border-right-color: $app-primary-color !important;\r\n &:after {\r\n border-right-color: #f3ecf6 !important;\r\n }\r\n }\r\n }\r\n}\r\n\r\n::v-deep .flatmap-marker-popup{\r\n background-color: #f0f0f000 !important;\r\n box-shadow: none !important;\r\n}\r\n\r\n</style>\r\n\r\n\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!./MultiFlatmapVuer.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!./MultiFlatmapVuer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MultiFlatmapVuer.vue?vue&type=template&id=54147954&scoped=true&\"\nimport script from \"./MultiFlatmapVuer.vue?vue&type=script&lang=js&\"\nexport * from \"./MultiFlatmapVuer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MultiFlatmapVuer.vue?vue&type=style&index=0&id=54147954&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"54147954\",\n null\n \n)\n\nexport default component.exports","module.exports = require(\"core-js/modules/es.string.includes.js\");","module.exports = require(\"element-ui/lib/theme-chalk/row.css\");","module.exports = require(\"element-ui/lib/radio-group\");"],"sourceRoot":""}
|