{"version":3,"file":"js/app.d03acdff.js","mappings":"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","sources":["webpack://germinate/./src/App.vue?fc14","webpack://germinate/./src/plugins/browser-detect.js","webpack://germinate/src/App.vue","webpack://germinate/./src/App.vue?facb","webpack://germinate/./src/App.vue","webpack://germinate/./src/main.js","webpack://germinate/./src/mixins/api/auth.js","webpack://germinate/./src/mixins/api/base.js","webpack://germinate/./src/mixins/api/misc.js","webpack://germinate/./src/mixins/api/stats.js","webpack://germinate/./src/mixins/pages.js","webpack://germinate/./src/mixins/util.js","webpack://germinate/./src/plugins/i18n.js","webpack://germinate/./src/auth.js","webpack://germinate/./src/router/index.js","webpack://germinate/./src/store/index.js","webpack://germinate/webpack/bootstrap","webpack://germinate/webpack/runtime/chunk loaded","webpack://germinate/webpack/runtime/compat get default export","webpack://germinate/webpack/runtime/define property getters","webpack://germinate/webpack/runtime/ensure chunk","webpack://germinate/webpack/runtime/get javascript chunk filename","webpack://germinate/webpack/runtime/get mini-css chunk filename","webpack://germinate/webpack/runtime/global","webpack://germinate/webpack/runtime/hasOwnProperty shorthand","webpack://germinate/webpack/runtime/load script","webpack://germinate/webpack/runtime/make namespace object","webpack://germinate/webpack/runtime/node module decorator","webpack://germinate/webpack/runtime/publicPath","webpack://germinate/webpack/runtime/css loading","webpack://germinate/webpack/runtime/jsonp chunk loading","webpack://germinate/webpack/startup"],"sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[(_vm.i18nLoaded)?_c('router-view',{class:_vm.printContent ? 'd-print-none' : ''}):_vm._e(),(_vm.printContent)?_c('div',{ref:\"printer-view\",staticClass:\"d-none d-print-block\",domProps:{\"innerHTML\":_vm._s(_vm.printContent)}}):_vm._e(),_c('b-modal',{ref:\"loadingModal\",attrs:{\"title\":_vm.$t('modalTitleLoading'),\"hide-footer\":\"\",\"no-close-on-backdrop\":\"\",\"no-close-on-esc\":\"\",\"hide-header-close\":\"\"}},[_c('div',{staticClass:\"text-center\"},[_c('b-spinner',{staticStyle:{\"width\":\"3rem\",\"height\":\"3rem\"},attrs:{\"variant\":\"primary\",\"type\":\"grow\"}}),(_vm.$t('modalTextLoading'))?_c('p',{staticClass:\"text-muted mt-3\"},[_vm._v(_vm._s(_vm.$t('modalTextLoading')))]):_vm._e()],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* eslint-disable */\nconst Detector = class Detector {\n detect() {\n const unknown = '-'\n\n // browser\n let nVer = navigator.appVersion\n let nAgt = navigator.userAgent\n let browser = navigator.appName\n let version = '' + parseFloat(navigator.appVersion)\n let majorVersion = parseInt(navigator.appVersion, 10)\n let language = navigator.language\n let nameOffset, verOffset, ix\n\n if (language) {\n language = language.replace('-', '_')\n }\n\n // Opera\n if ((verOffset = nAgt.indexOf('Opera')) != -1) {\n browser = 'Opera'\n version = nAgt.substring(verOffset + 6)\n if ((verOffset = nAgt.indexOf('Version')) != -1) {\n version = nAgt.substring(verOffset + 8)\n }\n }\n // Opera Next\n if ((verOffset = nAgt.indexOf('OPR')) != -1) {\n browser = 'Opera'\n version = nAgt.substring(verOffset + 4)\n }\n // Legacy Edge\n else if ((verOffset = nAgt.indexOf('Edge')) != -1) {\n browser = 'Microsoft Legacy Edge'\n version = nAgt.substring(verOffset + 5)\n }\n // Edge (Chromium)\n else if ((verOffset = nAgt.indexOf('Edg')) != -1) {\n browser = 'Microsoft Edge'\n version = nAgt.substring(verOffset + 4)\n }\n // MSIE\n else if ((verOffset = nAgt.indexOf('MSIE')) != -1) {\n browser = 'Microsoft Internet Explorer'\n version = nAgt.substring(verOffset + 5)\n }\n // Chrome\n else if ((verOffset = nAgt.indexOf('Chrome')) != -1) {\n browser = 'Chrome'\n version = nAgt.substring(verOffset + 7)\n }\n // Safari\n else if ((verOffset = nAgt.indexOf('Safari')) != -1) {\n browser = 'Safari'\n version = nAgt.substring(verOffset + 7)\n if ((verOffset = nAgt.indexOf('Version')) != -1) {\n version = nAgt.substring(verOffset + 8)\n }\n }\n // Firefox\n else if ((verOffset = nAgt.indexOf('Firefox')) != -1) {\n browser = 'Firefox'\n version = nAgt.substring(verOffset + 8)\n }\n // MSIE 11+\n else if (nAgt.indexOf('Trident/') != -1) {\n browser = 'Microsoft Internet Explorer'\n version = nAgt.substring(nAgt.indexOf('rv:') + 3)\n }\n // Other browsers\n else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) {\n browser = nAgt.substring(nameOffset, verOffset)\n version = nAgt.substring(verOffset + 1)\n if (browser.toLowerCase() == browser.toUpperCase()) {\n browser = navigator.appName\n }\n }\n // trim the version string\n if ((ix = version.indexOf('')) != -1) version = version.substring(0, ix)\n if ((ix = version.indexOf(' ')) != -1) version = version.substring(0, ix)\n if ((ix = version.indexOf(')')) != -1) version = version.substring(0, ix)\n\n majorVersion = parseInt('' + version, 10)\n if (isNaN(majorVersion)) {\n version = '' + parseFloat(navigator.appVersion)\n majorVersion = parseInt(navigator.appVersion, 10)\n }\n\n // system\n let os = unknown\n const clientStrings = [\n { s: 'Windows 10', r: /(Windows 10.0|Windows NT 10.0)/ },\n { s: 'Windows 8.1', r: /(Windows 8.1|Windows NT 6.3)/ },\n { s: 'Windows 8', r: /(Windows 8|Windows NT 6.2)/ },\n { s: 'Windows 7', r: /(Windows 7|Windows NT 6.1)/ },\n { s: 'Windows Vista', r: /Windows NT 6.0/ },\n { s: 'Windows Server 2003', r: /Windows NT 5.2/ },\n { s: 'Windows XP', r: /(Windows NT 5.1|Windows XP)/ },\n { s: 'Windows 2000', r: /(Windows NT 5.0|Windows 2000)/ },\n { s: 'Windows ME', r: /(Win 9x 4.90|Windows ME)/ },\n { s: 'Windows 98', r: /(Windows 98|Win98)/ },\n { s: 'Windows 95', r: /(Windows 95|Win95|Windows_95)/ },\n { s: 'Windows NT 4.0', r: /(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/ },\n { s: 'Windows CE', r: /Windows CE/ },\n { s: 'Windows 3.11', r: /Win16/ },\n { s: 'Android', r: /Android/ },\n { s: 'Open BSD', r: /OpenBSD/ },\n { s: 'Sun OS', r: /SunOS/ },\n { s: 'Chrome OS', r: /CrOS/ },\n { s: 'Linux', r: /(Linux|X11(?!.*CrOS))/ },\n { s: 'iOS', r: /(iPhone|iPad|iPod)/ },\n { s: 'Mac OS X', r: /Mac OS X/ },\n { s: 'Mac OS', r: /(Mac OS|MacPPC|MacIntel|Mac_PowerPC|Macintosh)/ },\n { s: 'QNX', r: /QNX/ },\n { s: 'UNIX', r: /UNIX/ },\n { s: 'BeOS', r: /BeOS/ },\n { s: 'OS/2', r: /OS\\/2/ },\n { s: 'Search Bot', r: /(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\\/Teoma|ia_archiver)/ }\n ]\n for (let id in clientStrings) {\n let cs = clientStrings[id]\n if (cs.r.test(nAgt)) {\n os = cs.s\n break\n }\n }\n\n let osVersion = unknown\n\n if (/Windows/.test(os)) {\n osVersion = /Windows (.*)/.exec(os)[1]\n os = 'Windows'\n }\n\n switch (os) {\n case 'Mac OS':\n case 'Mac OS X':\n case 'Android':\n osVersion = /(?:Android|Mac OS|Mac OS X|MacPPC|MacIntel|Mac_PowerPC|Macintosh) ([\\.\\_\\d]+)/.exec(nAgt)[1]\n break\n\n case 'iOS':\n osVersion = /OS (\\d+)_(\\d+)_?(\\d+)?/.exec(nVer)\n osVersion = osVersion[1] + '.' + osVersion[2] + '.' + (osVersion[3] | 0)\n break\n }\n\n return {\n browser: browser,\n browserVersion: version,\n browserMajorVersion: majorVersion,\n os: os,\n osVersion: osVersion,\n locale: language\n }\n }\n}\n\nexport {\n Detector\n}\n","\n\n\n\n\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40[0].rules[0].use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=4a3a08d2&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { BadgePlugin, ButtonGroupPlugin, FormFilePlugin, ButtonPlugin, CardPlugin, CarouselPlugin, FormCheckboxPlugin, FormDatepickerPlugin, FormGroupPlugin, FormInputPlugin, FormPlugin, FormRadioPlugin, FormSelectPlugin, FormTagsPlugin, FormTextareaPlugin, ImagePlugin, InputGroupPlugin, LayoutPlugin, ListGroupPlugin, ModalPlugin, NavbarPlugin, PaginationPlugin, PopoverPlugin, ProgressPlugin, SidebarPlugin, SpinnerPlugin, TablePlugin, TabsPlugin, TooltipPlugin, VBScrollspyPlugin, ToastPlugin, CalendarPlugin } from 'bootstrap-vue'\n\nimport Vue from 'vue'\nimport App from '@/App.vue'\nimport router from '@/router'\nimport store from '@/store'\nimport { i18n } from '@/plugins/i18n.js'\n\nimport VueGtag from 'vue-gtag'\n\nVue.config.productionTip = false\n\nVue.use(BadgePlugin)\nVue.use(ButtonGroupPlugin)\nVue.use(ButtonPlugin)\nVue.use(CardPlugin)\nVue.use(CarouselPlugin)\nVue.use(CalendarPlugin)\nVue.use(FormCheckboxPlugin)\nVue.use(FormDatepickerPlugin)\nVue.use(FormFilePlugin)\nVue.use(FormGroupPlugin)\nVue.use(FormPlugin)\nVue.use(FormInputPlugin)\nVue.use(FormRadioPlugin)\nVue.use(FormSelectPlugin)\nVue.use(FormTagsPlugin)\nVue.use(FormTextareaPlugin)\nVue.use(ImagePlugin)\nVue.use(InputGroupPlugin)\nVue.use(LayoutPlugin, { breakpoints: ['xs', 'sm', 'md', 'lg', 'xl', 'xxl', 'xxxl'] })\nVue.use(ListGroupPlugin)\nVue.use(ModalPlugin)\nVue.use(NavbarPlugin)\nVue.use(PaginationPlugin)\nVue.use(PopoverPlugin)\nVue.use(ProgressPlugin)\nVue.use(SidebarPlugin)\nVue.use(SpinnerPlugin)\nVue.use(TablePlugin)\nVue.use(TabsPlugin)\nVue.use(TooltipPlugin)\nVue.use(ToastPlugin)\nVue.use(VBScrollspyPlugin)\n\nVue.use(VueGtag, {\n bootstrap: false,\n enabled: false\n}, router)\n\nconst axiosDefaults = require('axios/lib/defaults')\n// Set base URL\nlet baseUrl = './api/'\nif (process.env.VUE_APP_BASE_URL) {\n baseUrl = process.env.VUE_APP_BASE_URL\n}\naxiosDefaults.baseURL = baseUrl\n\nstore.commit('ON_APP_STATE_CHANGED_MUTATION', process.env.NODE_ENV)\nstore.commit('ON_BASE_URL_CHANGED_MUTATION', baseUrl)\n\nnew Vue({\n router,\n store,\n i18n,\n render: h => h(App)\n}).$mount('#app')\n","import { authAxios } from '@/mixins/api/base'\n\n/**\n * Checks whether the given user type is at least the given minimum user type\n * @param {String} userType The user type to check\n * @param {String} atLeast The user type to check against\n */\nconst userIsAtLeast = (userType, atLeast) => {\n switch (atLeast) {\n case 'Administrator':\n return userType === 'Administrator'\n case 'Data Curator':\n return userType === 'Administrator' || userType === 'Data Curator'\n case 'Regular User':\n return userType === 'Administrator' || userType === 'Data Curator' || userType === 'Regular User'\n }\n\n return false\n}\n\n/**\n * Deletes the current json token\n *\n * @param {Object} user The user object containing the username and the token as the password\n * @param {function=} onSuccess Called on success\n * @param {function=} onError Called on failure\n * @returns A Promise\n */\nconst apiDeleteToken = (user, onSuccess, onError) => authAxios({ url: 'token', method: 'DELETE', data: user, success: onSuccess, error: onError })\n\n/**\n * Requests a token given the user details\n *\n * @param {Object} user The user object containing the username and password\n * @param {function=} onSuccess Called on success\n * @param {function=} onError Called on failure\n * @returns A Promise\n */\nconst apiPostToken = (user, onSuccess, onError) => authAxios({ url: 'token', method: 'POST', data: user, success: onSuccess, error: onError })\n\nconst apiSetupCheckGatekeeper = (gkConfig, onSuccess, onError) => authAxios({ url: 'setup/check/gatekeeper', method: 'POST', data: gkConfig, success: onSuccess, error: onError })\n\nconst apiSetupCheckDatabase = (dbConfig, onSuccess, onError) => authAxios({ url: 'setup/check/database', method: 'POST', data: dbConfig, success: onSuccess, error: onError })\n\nconst apiSetupStore = (data, onSuccess, onError) => authAxios({ url: 'setup/store', method: 'POST', data: data, success: onSuccess, error: onError })\n\nexport {\n userIsAtLeast,\n apiDeleteToken,\n apiPostToken,\n apiSetupCheckGatekeeper,\n apiSetupCheckDatabase,\n apiSetupStore\n}\n","import axios from 'axios'\nimport store from '@/store'\nimport router from '@/router'\nimport { i18n } from '@/plugins/i18n.js'\nimport { exception } from 'vue-gtag'\nimport { Pages } from '@/mixins/pages'\n\nconst emitter = require('tiny-emitter/instance')\n\nconst MAX_JAVA_INTEGER = 2147483647\n\nconst gatekeeperErrors = {\n BAD_REQUEST_MISSING_FIELDS: 'gatekeeperErrorBadRequestMissingField',\n CONFLICT_USER_ALREADY_HAS_ACCESS: 'gatekeeperErrorConflictUserAlreadyHasAccess',\n CONFLICT_USER_ALREADY_REQUESTED_ACCESS: 'gatekeeperErrorConflictUserAlreadyRequestedAccess',\n CONFLICT_USERNAME_EMAIL_ALREADY_IN_USE: 'gatekeeperErrorConflictUsernameEmailAlreadyInUse',\n FORBIDDEN_ACCESS_TO_OTHER_USER: 'gatekeeperErrorForbiddenAccessToOtherUser',\n FORBIDDEN_INSUFFICIENT_PERMISSIONS: 'gatekeeperErrorForbiddenInsufficientPermissions',\n FORBIDDEN_INVALID_CREDENTIALS: 'gatekeeperErrorForbiddenInvalidCredentials',\n NOT_FOUND_ACTIVATION_KEY: 'gatekeeperErrorNotFoundActivationKey',\n NOT_FOUND_ACTIVATION_REQUEST: 'gatekeeperErrorNotFoundActivationRequest',\n NOT_FOUND_ID: 'gatekeeperErrorNotFoundId',\n NOT_FOUND_ID_OR_PAYLOAD: 'gatekeeperErrorNotFoundIdOrPayload',\n NOT_FOUND_INSTITUTION: 'gatekeeperErrorNotFoundInstitution',\n NOT_FOUND_PAYLOAD: 'gatekeeperErrorNotFoundPayload',\n NOT_FOUND_TOKEN: 'gatekeeperErrorNotFoundToken',\n NOT_FOUND_USER: 'gatekeeperErrorNotFoundUser',\n UNAVAILABLE_EMAIL: 'gatekeeperErrorUnavailableEmail'\n}\n\n/**\n * Returns the current authentication token\n */\nconst getToken = () => {\n let t = store.getters.storeToken\n\n // Check if the token is still valid\n if (t && ((new Date().getTime() - new Date(t.createdOn).getTime()) > t.lifetime)) {\n t = null\n store.dispatch('setToken', t)\n }\n\n return t ? t.token : null\n}\n\nconst handleError = (error) => {\n emitter.emit('show-loading', false)\n const variant = 'danger'\n const title = i18n.t('genericError')\n let message = error.statusText\n\n if (error.data && error.data.reasonPhrase && gatekeeperErrors[error.data.reasonPhrase]) {\n message = i18n.t(gatekeeperErrors[error.data.reasonPhrase])\n } else {\n const authMode = store.getters.storeServerSettings.authMode\n switch (error.status) {\n case 400:\n message = i18n.t('httpErrorFourOO')\n break\n case 401:\n message = i18n.t('httpErrorFourOOne')\n store.dispatch('setToken', null)\n if (authMode === 'FULL' || authMode === 'SELECTIVE') {\n router.push({ name: Pages.login })\n }\n return\n case 403: {\n message = i18n.t('httpErrorFourOThree')\n store.dispatch('setToken', null)\n if (authMode === 'FULL' || authMode === 'SELECTIVE') {\n router.push({ name: Pages.login })\n }\n return\n }\n case 404:\n message = i18n.t('httpErrorFourOFour')\n break\n case 405:\n message = i18n.t('httpErrorFourOFour')\n break\n case 408:\n message = i18n.t('httpErrorFourOEight')\n break\n case 409:\n message = i18n.t('httpErrorFourONine')\n break\n case 410:\n message = i18n.t('httpErrorFourTen')\n break\n case 500:\n message = i18n.t('httpErrorFiveOO')\n break\n case 501:\n message = i18n.t('httpErrorFiveOOne')\n break\n case 503:\n message = i18n.t('httpErrorFiveOThree')\n break\n }\n }\n\n exception(error.status + ' ' + message)\n\n emitter.emit('toast', {\n message: message,\n title: title,\n variant: variant,\n autoHideDelay: 5000,\n appendToast: true\n })\n}\n\n/**\n * Sends a FORM to the given URL using authentication\n * @param {Object} param0 `{ url: String, formData: Object, success: Callback, error: { codes: [], callback: Callback } }`\n */\nconst authForm = ({ url = null, formData, success = null, error = { codes: [], callback: handleError } }) => {\n const promise = axios.post(url, formData, {\n crossDomain: true,\n withCredentials: true,\n headers: {\n 'Content-Type': 'multipart/form-data',\n Authorization: `Bearer ${getToken()}`\n }\n })\n\n promise.then(result => {\n const t = store.getters.storeToken\n\n // Check if the token is still valid. Renew it if so.\n if (t && ((new Date().getTime() - new Date(t.createdOn).getTime()) <= t.lifetime)) {\n t.createdOn = new Date().getTime()\n store.dispatch('setToken', t)\n }\n\n if (success) {\n success(result.data)\n }\n })\n\n promise.catch(err => {\n if (err.response) {\n // The request was made and the server responded with a status code that falls out of the range of 2xx\n // Log the user out if the result is forbidden and no error method has been provided\n // Otherwise, we assume that the calling method takes care of the error\n if (!error) {\n if (err.response.status === 403) {\n store.dispatch('setToken', null)\n const authMode = store.getters.storeServerSettings.authMode\n if (authMode === 'FULL' || authMode === 'SELECTIVE') {\n router.push({ name: Pages.login })\n }\n } else if (process.env.NODE_ENV === 'development') {\n console.error(err)\n }\n } else if (error && error.callback) {\n if (error.codes.length === 0 || error.codes.includes(err.response.status)) {\n error.callback(err.response)\n } else {\n handleError(err.response)\n }\n } else if (process.env.NODE_ENV === 'development') {\n console.error(err)\n }\n } else if (err.request) {\n // The request was made but no response was received `err.request` is an instance of XMLHttpRequest in the browser\n if (err.request.textStatus === 'timeout') {\n emitter.emit('toast', {\n message: 'Request to the server timed out.',\n title: 'Error',\n variant: 'danger',\n autoHideDelay: 5000,\n appendToast: true\n })\n }\n } else {\n // Something happened in setting up the request that triggered an Error\n if (process.env.NODE_ENV === 'development') {\n console.error(err)\n }\n }\n })\n\n return promise\n}\n\n/**\n * Sends an Axios request to the server using authentication\n * @param {Object} param0 `{ url: String, method: String, data: Object, formData: Object, dataType: String, contentType: String, success: Callback, error: { codes: [], callback: Callback } }`\n */\nconst authAxios = ({ url = null, method = 'GET', data = null, formData = null, dataType = 'json', contentType = 'application/json; charset=utf-8', success = null, error = { codes: [], callback: handleError } }) => {\n let requestData = null\n let requestParams = null\n\n // Stringify the data object for non-GET requests\n if (data !== null || data !== undefined) {\n if (method === 'GET') {\n requestParams = data\n } else {\n requestData = data\n }\n }\n\n const promise = axios({\n url: url,\n method: method,\n data: requestData,\n formData: formData,\n params: requestParams,\n crossDomain: true,\n responseType: dataType,\n withCredentials: true,\n headers: {\n 'Content-Type': contentType,\n Authorization: `Bearer ${getToken()}`\n }\n })\n\n promise.then(result => {\n const t = store.getters.storeToken\n\n // Check if the token is still valid. Renew it if so.\n if (t && ((new Date().getTime() - new Date(t.createdOn).getTime()) <= t.lifetime)) {\n t.createdOn = new Date().getTime()\n store.dispatch('setToken', t)\n }\n\n if (success) {\n if (dataType === 'blob' && result.headers && result.headers['content-disposition']) {\n const filename = result.headers['content-disposition']\n .split(';')\n .map(p => p.trim())\n .filter(p => p.indexOf('filename') === 0)\n .map(p => p.replace('filename=', ''))\n\n if (filename && filename.length > 0) {\n result.data.filename = filename[0]\n }\n }\n\n success(result.data)\n }\n })\n\n promise.catch(err => {\n if (err.response) {\n // The request was made and the server responded with a status code that falls out of the range of 2xx\n // Log the user out if the result is forbidden and no error method has been provided\n // Otherwise, we assume that the calling method takes care of the error\n if (!error) {\n if (err.response.status === 403) {\n store.dispatch('setToken', null)\n const authMode = store.getters.storeServerSettings.authMode\n if (authMode === 'FULL' || authMode === 'SELECTIVE') {\n router.push({ name: Pages.login })\n }\n } else if (process.env.NODE_ENV === 'development') {\n console.error(err)\n }\n } else if (error && error.callback) {\n if (error.codes.length === 0 || error.codes.includes(err.response.status)) {\n return error.callback(err.response)\n } else {\n return handleError(err.response)\n }\n } else if (process.env.NODE_ENV === 'development') {\n console.error(err)\n }\n } else if (err.request) {\n // The request was made but no response was received `err.request` is an instance of XMLHttpRequest in the browser\n if (err.request.textStatus === 'timeout') {\n emitter.emit('toast', {\n message: 'Request to the server timed out.',\n title: 'Error',\n variant: 'danger',\n autoHideDelay: 5000,\n appendToast: true\n })\n }\n } else {\n // Something happened in setting up the request that triggered an Error\n if (process.env.NODE_ENV === 'development') {\n console.error(err)\n }\n }\n\n throw err\n })\n\n return promise\n}\n\nexport {\n MAX_JAVA_INTEGER,\n gatekeeperErrors,\n getToken,\n handleError,\n authAxios,\n authForm\n}\n","import { authForm, authAxios } from '@/mixins/api/base'\nimport { uuidv4 } from '@/mixins/util'\n\nconst apiGetSettings = (onSuccess, onError) => authAxios({ url: 'settings', success: onSuccess, error: onError })\n\nconst apiGetAdminSettings = (onSuccess, onError) => authAxios({ url: 'settings/admin', success: onSuccess, error: onError })\n\nconst apiPostAdminSettings = (queryData, onSuccess, onError) => authAxios({ url: 'settings/admin', method: 'POST', data: queryData, success: onSuccess, error: onError })\n\nconst apiGetSettingsFile = (queryData, onSuccess, onError) => authAxios({ url: 'settings/file', data: queryData, success: onSuccess, error: onError })\n\nconst apiPostGatekeeperExisting = (queryData, onSuccess, onError) => authAxios({ url: 'gatekeeper/user/existing', method: 'POST', data: queryData, success: onSuccess, error: onError })\n\nconst apiPostGatekeeperNew = (queryData, onSuccess, onError) => authAxios({ url: 'gatekeeper/user/new', method: 'POST', data: queryData, success: onSuccess, error: onError })\n\nconst apiGetLocales = (onSuccess, onError) => authAxios({ url: `clientlocale?random=${uuidv4()}`, success: onSuccess, error: onError })\n\nconst apiPostTableExport = (queryData, tableType, onSuccess, onError) => authAxios({ url: `${tableType}/table/export`, method: 'POST', dataType: 'blob', data: queryData, success: onSuccess, error: onError })\n\nconst apiPostInstitutionTable = (queryData, onSuccess, onError) => {\n queryData.page -= 1\n return authAxios({ url: 'institution/table', method: 'POST', data: queryData, success: onSuccess, error: onError })\n}\n\nconst apiPostGermplasmInstitutionTable = (germplasmId, queryData, onSuccess, onError) => {\n queryData.page -= 1\n return authAxios({ url: `germplasm/${germplasmId}/institution/table`, method: 'POST', data: queryData, success: onSuccess, error: onError })\n}\n\nconst apiGetGatekeeperInstitutions = (queryData, onSuccess, onError) => {\n queryData.page -= 1\n return authAxios({ url: 'gatekeeper/institution', method: 'GET', data: queryData, success: onSuccess, error: onError })\n}\n\nconst apiPostFeedbackUpload = (formData, uuid, onSuccess, onError) => authForm({ url: `feedback/${uuid}`, formData: formData, success: onSuccess, error: onError })\n\nconst apiPostDataUpload = (formData, templateType, isUpdate, datasetId, datasetStateId, onSuccess, onError) => {\n return authForm({ url: `import/template/file?type=${templateType}&update=${isUpdate}&datasetStateId=${datasetStateId}&datasetId=${datasetId || ''}`, formData: formData, success: onSuccess, error: onError })\n}\n\nconst apiPostImages = (queryData, onSuccess, onError) => {\n queryData.page -= 1\n return authAxios({ url: 'image/table', method: 'POST', data: queryData, success: onSuccess, error: onError })\n}\n\nconst apiPostImagesExport = (queryData, onSuccess, onError) => authAxios({ url: 'image/table/export', method: 'POST', data: queryData, success: onSuccess, error: onError })\n\nconst apiGetImageTags = (onSuccess, onError) => authAxios({ url: 'imagetag', success: onSuccess, error: onError })\n\nconst apiGetImageTagsForId = (referenceTable, foreignId, onSuccess, onError) => authAxios({ url: `imagetag/${referenceTable}/${foreignId}`, success: onSuccess, error: onError })\n\nconst apiPutImageTags = (imageId, data, onSuccess, onError) => authAxios({ url: `image/${imageId}/tag`, method: 'PUT', data: data, success: onSuccess, error: onError })\n\nconst apiDeleteImage = (imageId, onSuccess, onError) => authAxios({ url: `image/${imageId}`, method: 'DELETE', success: onSuccess, error: onError })\n\nconst apiPatchImage = (image, onSuccess, onError) => authAxios({ url: `image/${image.imageId}`, method: 'PATCH', data: image, success: onSuccess, error: onError })\n\nconst apiPostNewsTable = (queryData, onSuccess, onError) => {\n queryData.page -= 1\n return authAxios({ url: 'news/table', method: 'POST', data: queryData, success: onSuccess, error: onError })\n}\n\nconst apiPostMapOverlayTable = (queryData, onSuccess, onError) => {\n queryData.page -= 1\n return authAxios({ url: 'mapoverlay/table', method: 'POST', data: queryData, success: onSuccess, error: onError })\n}\n\nconst apiPostNews = (newsItem, onSuccess, onError) => authAxios({ url: 'news', method: 'POST', data: newsItem, success: onSuccess, error: onError })\n\nconst apiDeleteNews = (newsId, onSuccess, onError) => authAxios({ url: `news/${newsId}`, method: 'DELETE', success: onSuccess, error: onError })\n\nconst apiPostCommentsTable = (queryData, onSuccess, onError) => {\n queryData.page -= 1\n return authAxios({ url: 'comment/table', method: 'POST', data: queryData, success: onSuccess, error: onError })\n}\n\nconst apiPutComment = (comment, onSuccess, onError) => authAxios({ url: 'comment', data: comment, method: 'PUT', success: onSuccess, error: onError })\n\nconst apiDeleteComment = (commentId, onSuccess, onError) => authAxios({ url: `comment/${commentId}`, method: 'DELETE', success: onSuccess, error: onError })\n\nconst apiPostLinks = (queryData, onSuccess, onError) => authAxios({ url: 'link/table', method: 'POST', data: queryData, success: onSuccess, error: onError })\n\nconst apiPostDataImportStats = (queryData, onSuccess, onError) => {\n queryData.page -= 1\n return authAxios({ url: 'import/stats', method: 'POST', data: queryData, success: onSuccess, error: onError })\n}\n\nconst apiPostDataAsyncImport = (uuids, onSuccess, onError) => {\n const queryData = {\n uuids: uuids\n }\n return authAxios({ url: 'import/template', method: 'POST', data: queryData, success: onSuccess, error: onError })\n}\n\nconst apiDeleteDataAsyncImport = (uuid, onSuccess, onError) => authAxios({ url: `import/template/${uuid}`, method: 'DELETE', success: onSuccess, error: onError })\n\nconst apiGetDataAsyncImportStart = (uuid, onSuccess, onError) => authAxios({ url: `import/template/${uuid}/import`, success: onSuccess, error: onError })\n\nconst apiGetDataAsyncImportLog = (uuid, onSuccess, onError) => authAxios({ url: `import/template/${uuid}/log`, dataType: 'blob', success: onSuccess, error: onError })\n\nconst apiPostPublicationsTable = (queryData, onSuccess, onError) => {\n queryData.page -= 1\n return authAxios({ url: 'publication/table', method: 'POST', data: queryData, success: onSuccess, error: onError })\n}\n\nconst apiGetPublications = (type, id, onSuccess, onError) => authAxios({ url: `publicationtype/${type}/${id || ''}`, method: 'GET', success: onSuccess, error: onError })\n\nconst apiPutPublication = (data, onSuccess, onError) => authAxios({ url: 'publication', method: 'PUT', data: data, success: onSuccess, error: onError })\n\nconst apiPutPublicationReference = (publicationId, data, onSuccess, onError) => authAxios({ url: `publication/${publicationId}/reference`, method: 'PUT', data: data, success: onSuccess, error: onError })\n\nconst apiDeletePublicationReference = (publicationId, referenceType, referenceId, onSuccess, onError) => authAxios({ url: `publication/${publicationId}/reference/${referenceType}/${referenceId || ''}`, method: 'DELETE', success: onSuccess, error: onError })\n\nconst apiPostUserFeedbackTable = (queryData, onSuccess, onError) => {\n queryData.page -= 1\n return authAxios({ url: 'feedback/table', method: 'POST', data: queryData, success: onSuccess, error: onError })\n}\n\nconst apiGetUserFeedbackMarkAsRead = (id, onSuccess, onError) => authAxios({ url: `feedback/${id}/mark`, success: onSuccess, error: onError })\n\nconst apiDeleteUserFeedback = (id, onSuccess, onError) => authAxios({ url: `feedback/${id}`, method: 'DELETE', success: onSuccess, error: onError })\n\nexport {\n apiGetSettings,\n apiGetSettingsFile,\n apiGetAdminSettings,\n apiPostAdminSettings,\n apiPostGatekeeperExisting,\n apiPostGatekeeperNew,\n apiGetLocales,\n apiPostTableExport,\n apiPostInstitutionTable,\n apiPostGermplasmInstitutionTable,\n apiGetGatekeeperInstitutions,\n apiPostDataUpload,\n apiPostImages,\n apiPostImagesExport,\n apiGetImageTags,\n apiGetImageTagsForId,\n apiPutImageTags,\n apiDeleteImage,\n apiPatchImage,\n apiPostNewsTable,\n apiPostNews,\n apiDeleteNews,\n apiPostCommentsTable,\n apiPutComment,\n apiDeleteComment,\n apiPostLinks,\n apiPostDataAsyncImport,\n apiDeleteDataAsyncImport,\n apiGetDataAsyncImportStart,\n apiGetDataAsyncImportLog,\n apiPostPublicationsTable,\n apiGetPublications,\n apiPutPublication,\n apiPutPublicationReference,\n apiDeletePublicationReference,\n apiPostMapOverlayTable,\n apiPostUserFeedbackTable,\n apiPostFeedbackUpload,\n apiGetUserFeedbackMarkAsRead,\n apiPostDataImportStats,\n apiDeleteUserFeedback\n}\n","import { authAxios } from '@/mixins/api/base'\n\nconst apiGetOverviewStats = (onSuccess, onError) => authAxios({ url: 'stats/overview', success: onSuccess, error: onError })\n\nconst apiGetEntityTypeStats = (onSuccess, onError) => authAxios({ url: 'stats/entitytype', success: onSuccess, error: onError })\n\nconst apiGetStatsFile = (type, onSuccess, onError) => authAxios({ url: `stats/${type}`, dataType: 'blob', success: onSuccess, error: onError })\n\nexport {\n apiGetOverviewStats,\n apiGetEntityTypeStats,\n apiGetStatsFile\n}\n","const Pages = Object.freeze({\n home: 'home',\n login: 'login',\n setup: 'setup',\n cookies: 'cookies',\n userPermissions: 'user-permissions',\n germinateSettings: 'germinate-settings',\n germplasm: 'germplasm',\n germplasmUnifier: 'germplasm-unifier',\n passport: 'passport',\n climates: 'climates',\n climateDetails: 'climate-details',\n traits: 'traits',\n traitDetails: 'trait-details',\n markers: 'markers',\n markerDetails: 'marker-details',\n maps: 'maps',\n mapDetails: 'map-details',\n export: 'export',\n exportCrossComparison: 'export-cross-comparison',\n exportGenotypes: 'export-genotypes',\n exportClimates: 'export-climates',\n exportTraits: 'export-trials',\n exportAlleleFrequency: 'export-allelefrequency',\n locations: 'locations',\n geographicSearch: 'geographic-search',\n datasets: 'datasets',\n experiments: 'experiments',\n experimentDetails: 'experiment-details',\n dataResources: 'data-resources',\n statistics: 'statistics',\n images: 'images',\n markedItems: 'marked-items',\n markedItemsType: 'marked-items-type',\n importUpload: 'import-upload',\n importUploadType: 'import-upload-type',\n search: 'search',\n searchQuery: 'search-query',\n publications: 'publications',\n publicationDetails: 'publication-details',\n groups: 'groups',\n groupDetails: 'group-details',\n groupUpload: 'group-upload',\n aboutGerminate: 'about-germinate',\n aboutProject: 'about-project',\n aboutExportFormats: 'about-export-formats',\n aboutExportFormatsType: 'about-export-formats-type',\n userFeedback: 'user-feedback',\n fourZeroThree: '403',\n fourZeroFour: '404',\n fallback: 'fallback'\n})\n\nexport {\n Pages\n}\n","import store from '@/store'\nimport { event } from 'vue-gtag'\n\nconst germinateVersion = '4.5.0'\n\n/**\n * Generates a v4 UUID\n */\nconst uuidv4 = () => {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n const r = Math.random() * 16 | 0\n const v = c === 'x' ? r : (r & 0x3 | 0x8)\n return v.toString(16)\n })\n}\n\nconst mcpdDateToJsDate = (input) => {\n if (!input) {\n return null\n }\n\n if (input.length === 4) {\n return new Date(input)\n } else if (input.length === 6) {\n return new Date(`${input.substring(0, 4)}-${input.substring(4, 6).replace('--', '01').replace('00', '01')}`)\n } else if (input.length === 8) {\n return new Date(`${input.substring(0, 4)}-${input.substring(4, 6).replace('--', '01').replace('00', '01')}-${input.substring(6, 8).replace('--', '01').replace('00', '01')}`)\n } else if (input.length === 10) {\n return new Date(`${input.substring(0, 4)}-${input.substring(5, 7).replace('--', '01').replace('00', '01')}-${input.substring(8, 10).replace('--', '01').replace('00', '01')}`)\n } else {\n return null\n }\n}\n\n/**\n * Gets the table column style. Will either return an empty style or `d-none` depending on whether the column has been hidden or noe.\n * @param {String} tableName The name of the table\n * @param {String} columnKey The name of the column\n * @returns The style that should be applied to this column\n */\nconst getTableColumnStyle = (tableName, columnKey) => {\n if (store.getters.storeHiddenColumns[tableName]) {\n return (store.getters.storeHiddenColumns[tableName].indexOf(columnKey) !== -1) ? 'd-none' : ''\n } else {\n return ''\n }\n}\n\n/**\n * Checks if the page with the given name is available in this configuration.\n * @param {String} name The name of the page to check (refer to router for names)\n */\nconst isPageAvailable = (name) => {\n if (store.getters.storeServerSettings != null && store.getters.storeServerSettings.hiddenPages != null) {\n return store.getters.storeServerSettings.hiddenPages.indexOf(name) === -1\n } else {\n return true\n }\n}\n\nconst objectsAreSame = (x, y) => {\n let objectsAreSame = true\n for (const propertyName in x) {\n if (x[propertyName] !== y[propertyName]) {\n objectsAreSame = false\n break\n }\n }\n return objectsAreSame\n}\n\nconst objectArraysAreSame = (x, y) => {\n if ((x === null && y !== null) || (x !== null && y === null)) {\n return false\n } else if (x.length !== y.length) {\n return false\n } else {\n for (let one = 0; one < x.length; one++) {\n let hasMatch = false\n for (let two = 0; two < y.length; two++) {\n if (objectsAreSame(x[one], y[two])) {\n hasMatch = true\n break\n }\n }\n\n if (!hasMatch) {\n return false\n }\n }\n return true\n }\n}\n\n/**\n * Downloads the data file given in the parameter using the blow, filename and extension.\n * @param {Object} object Object of type `{ filename: '', blob: '', extension: '' }`\n */\nconst downloadBlob = (object) => {\n if (!object || !object.blob) {\n return\n }\n\n const filename = object.filename\n const extension = object.extension\n\n const url = window.URL.createObjectURL(object.blob)\n\n const downloadLink = document.createElement('a')\n downloadLink.href = url\n downloadLink.target = '_blank'\n downloadLink.rel = 'noopener noreferrer'\n if (filename) {\n downloadLink.download = filename\n\n if (extension) {\n downloadLink.download += '.' + extension\n }\n }\n document.body.appendChild(downloadLink)\n downloadLink.click()\n document.body.removeChild(downloadLink)\n\n event('download', 'data', filename + '.' + extension)\n}\n\n/**\n * Downloads all SVGs contained in the given DOM element into a single SVG file\n * @param {Element} container The DOM element\n * @param {Boolean} isPlotly Is this a plotly.js chart?\n * @param {String} filename The file name to use for the downloaded file\n */\nconst downloadSvgsFromContainer = (container, isPlotly, filename) => {\n // get svg source.\n const serializer = new XMLSerializer()\n const svgs = isPlotly ? container.querySelectorAll('svg:not(.icon):not(:last-child)') : container.querySelectorAll('svg')\n let source = '\\r\\n'\n\n svgs.forEach(s => {\n // serializer.serializeToString(s)\n const children = s.children\n for (let i = 0; i < children.length; i++) {\n source += serializer.serializeToString(children[i]) + '\\r\\n'\n }\n })\n\n source += ''\n\n // convert svg source to URI data scheme.\n const url = 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(source)\n\n const downloadLink = document.createElement('a')\n downloadLink.href = url\n downloadLink.download = filename + '.svg'\n document.body.appendChild(downloadLink)\n downloadLink.click()\n document.body.removeChild(downloadLink)\n\n event('download', 'svg', filename + '.svg')\n}\n\nconst dataURLtoFile = (dataurl, filename) => {\n const arr = dataurl.split(',')\n const mime = arr[0].match(/:(.*?);/)[1]\n const bstr = atob(arr[1])\n let n = bstr.length\n const u8arr = new Uint8Array(n)\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n)\n }\n return new File([u8arr], filename, { type: mime })\n}\n\nexport {\n germinateVersion,\n uuidv4,\n getTableColumnStyle,\n isPageAvailable,\n objectArraysAreSame,\n objectsAreSame,\n downloadBlob,\n downloadSvgsFromContainer,\n dataURLtoFile,\n mcpdDateToJsDate\n}\n","import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\nimport axios from 'axios'\n\nimport deDE from '@/plugins/i18n/de_DE.json'\nimport enGB from '@/plugins/i18n/en_GB.json'\n\nconst protectedProperties = ['pageAboutGerminateTitle', 'pageAboutGerminateSubtitle', 'pageAboutGerminateText', 'pageAboutGerminateCardHomepageText', 'pageAboutGerminateCardGithubText', 'pageAboutGerminateCardPublicationText', 'pageAboutGerminateCardDocumentationText', 'pageAboutGerminateTeamTitle', 'pageAboutGerminateTeamSubtitle', 'pageAboutGerminateTeamOthersTitle', 'pageAboutGerminateTeamOthersSubtitle', 'pageAboutGerminateTeamOthersText', 'pageAboutGerminateLocationTitle', 'pageAboutGerminateLocationSubtitle', 'pageAboutGerminateFundersTitle', 'pageAboutGerminateFundersSubtitle', 'pageAboutGerminateFundersText', 'pageAboutGerminateTeamSebastian', 'pageAboutGerminateTeamJobSebastian', 'pageAboutGerminateTeamIain', 'pageAboutGerminateTeamJobIain', 'pageAboutGerminateTeamPaul', 'pageAboutGerminateTeamJobPaul']\n\nVue.use(VueI18n)\n\nconst messages = {\n en_GB: enGB\n}\n\nexport const i18n = new VueI18n({\n locale: null,\n fallbackLocale: 'en_GB',\n messages: messages\n})\n\nconst loadedLanguages = []\n\nfunction setI18nLanguage (lang) {\n i18n.locale = lang\n axios.defaults.headers.common['Accept-Language'] = lang\n let htmlTag = lang\n const underscoreIndex = lang.indexOf('_')\n if (underscoreIndex !== -1) {\n htmlTag = lang.substring(0, underscoreIndex)\n }\n document.querySelector('html').setAttribute('lang', htmlTag)\n return lang\n}\n\nexport function loadLanguageAsync (lang) {\n // If the same language\n if (i18n.locale === lang) {\n return Promise.resolve(setI18nLanguage(lang))\n }\n\n // If the language was already loaded\n if (loadedLanguages.includes(lang)) {\n return Promise.resolve(setI18nLanguage(lang))\n }\n\n // If the language hasn't been loaded yet\n return axios.get(/* webpackChunkName: \"lang-[request]\" */ `clientlocale/${lang}`).then(m => {\n // If we get a response from the server, use it\n if (m.data) {\n // Delete the content of the about Germinate page, we don't want people to change it.\n protectedProperties.forEach(p => delete m.data[p])\n }\n\n if (lang === 'de_DE') {\n // We do have some default text for de_DE, so load this here\n messages[lang] = deDE\n }\n if (!messages[lang]) {\n messages[lang] = {}\n }\n\n Object.assign(messages[lang], m.data)\n i18n.setLocaleMessage(lang, messages[lang])\n loadedLanguages.push(lang)\n return setI18nLanguage(lang)\n }).catch(() => {\n // If we can't get it from the server, use the fallback we've got locally\n i18n.setLocaleMessage(lang, messages[lang])\n loadedLanguages.push(lang)\n return setI18nLanguage(lang)\n })\n}\n","import store from './store'\n\nexport default {\n loggedIn () {\n const token = store.getters.storeToken\n return token !== null && this.tokenStillValid()\n },\n tokenStillValid () {\n const token = store.getters.storeToken\n if (token) {\n return new Date().getTime() - token.createdOn <= token.lifetime\n } else {\n return false\n }\n }\n}\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport auth from '@/auth'\nimport store from '@/store'\nimport { loadLanguageAsync } from '@/plugins/i18n'\nimport { userIsAtLeast } from '@/mixins/api/auth'\nimport { Pages } from '@/mixins/pages'\n\nconst emitter = require('tiny-emitter/instance')\n\nVue.use(VueRouter)\n\nconst originalReplace = VueRouter.prototype.replace\nVueRouter.prototype.replace = function replace (location, onResolve, onReject) {\n if (onResolve || onReject) return originalReplace.call(this, location, onResolve, onReject)\n return originalReplace.call(this, location).catch(err => {\n if (err && err.name !== 'NavigationDuplicated') {\n throw err\n }\n })\n}\n\nfunction requireAuth (to, from, next) {\n const authMode = store.getters.storeServerSettings ? store.getters.storeServerSettings.authMode : 'NONE'\n const token = store.getters.storeToken\n\n emitter.emit('show-loading', false)\n\n // If we're in full auth mode, check credentials for each call\n if (authMode === 'FULL') {\n if (!auth.loggedIn()) {\n // Remember the original target\n if (!store.getters.storeOriginalTarget) {\n store.dispatch('setOriginalTarget', to.path)\n }\n next({ name: 'login' })\n return\n } else if (to.meta && to.meta.minUserType && (!token || !userIsAtLeast(token.userType, to.meta.minUserType))) {\n next({ name: '403' })\n return\n }\n } else if (authMode === 'SELECTIVE' && to.meta && to.meta.minUserType && (!token || !userIsAtLeast(token.userType, to.meta.minUserType))) {\n next({ name: '403' })\n }\n\n next()\n}\n\nconst routes = [\n {\n path: '/login',\n name: Pages.login,\n component: () => import(/* webpackChunkName: \"login\" */ '@/views/Login.vue')\n },\n {\n path: '/setup',\n name: Pages.setup,\n component: () => import(/* webpackChunkName: \"login\" */ '@/views/Setup.vue')\n },\n {\n path: '/',\n name: '',\n redirect: '/home',\n component: () => import(/* webpackChunkName: \"dashboard\" */ '@/views/DashboardContainer'),\n children: [\n {\n path: '/home',\n name: Pages.home,\n component: () => import(/* webpackChunkName: \"home\" */ '@/views/HomeView'),\n beforeEnter: requireAuth\n },\n {\n path: 'cookies',\n name: Pages.cookies,\n component: () => import(/* webpackChunkName: \"cookies\" */ '@/views/Cookies'),\n beforeEnter: requireAuth\n },\n {\n path: 'admin',\n redirect: '/admin/settings',\n name: '',\n component: {\n render (c) { return c('router-view') }\n },\n children: [\n {\n path: 'user-permissions',\n name: Pages.userPermissions,\n meta: { minUserType: 'Administrator' },\n component: () => import(/* webpackChunkName: \"user-permissions\" */ '@/views/admin/UserPermissions.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'germinate-settings',\n name: Pages.germinateSettings,\n meta: { minUserType: 'Administrator' },\n component: () => import(/* webpackChunkName: \"germinate-settings\" */ '@/views/admin/GerminateSettings.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'user-feedback',\n name: Pages.userFeedback,\n meta: { minUserType: 'Administrator' },\n component: () => import(/* webpackChunkName: \"germinate-settings\" */ '@/views/admin/UserFeedback.vue'),\n beforeEnter: requireAuth\n }\n ]\n },\n {\n path: 'data',\n redirect: '/data/germplasm',\n name: '',\n component: {\n render (c) { return c('router-view') }\n },\n children: [\n {\n path: 'germplasm',\n name: Pages.germplasm,\n component: () => import(/* webpackChunkName: \"germplasm\" */ '@/views/data/germplasm/Germplasm.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'germplasm-unifier',\n name: Pages.germplasmUnifier,\n meta: { minUserType: 'Data Curator' },\n component: () => import(/* webpackChunkName: \"germplasm-unifier\" */ '@/views/data/germplasm/GermplasmUnifier.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'germplasm/:germplasmId',\n name: Pages.passport,\n component: () => import(/* webpackChunkName: \"passport\" */ '@/views/data/germplasm/Passport.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'climate',\n redirect: '/data/climate/climates',\n name: '',\n component: {\n render (c) { return c('router-view') }\n },\n children: [\n {\n path: 'climates',\n name: Pages.climates,\n component: () => import(/* webpackChunkName: \"climates\" */ '@/views/data/climate/Climates.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'climates/:climateId',\n name: Pages.climateDetails,\n component: () => import(/* webpackChunkName: \"climate-details\" */ '@/views/data/climate/ClimateDetails.vue'),\n beforeEnter: requireAuth\n }\n ]\n },\n {\n path: 'trials',\n redirect: '/data/trials/traits',\n name: '',\n component: {\n render (c) { return c('router-view') }\n },\n children: [\n {\n path: 'traits',\n name: Pages.traits,\n component: () => import(/* webpackChunkName: \"traits\" */ '@/views/data/trials/Traits.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'traits/:traitId',\n name: Pages.traitDetails,\n component: () => import(/* webpackChunkName: \"trait-details\" */ '@/views/data/trials/TraitDetails.vue'),\n beforeEnter: requireAuth\n }\n ]\n },\n {\n path: 'genotypes',\n redirect: '/data/genotypes/maps',\n name: '',\n component: {\n render (c) { return c('router-view') }\n },\n children: [\n {\n path: 'markers',\n name: Pages.markers,\n component: () => import(/* webpackChunkName: \"markers\" */ '@/views/data/genotype/Markers.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'marker/:markerId',\n name: Pages.markerDetails,\n component: () => import(/* webpackChunkName: \"marker-details\" */ '@/views/data/genotype/Marker.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'maps',\n name: Pages.maps,\n component: () => import(/* webpackChunkName: \"maps\" */ '@/views/data/genotype/Maps.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'maps/:mapId',\n name: Pages.mapDetails,\n component: () => import(/* webpackChunkName: \"map-details\" */ '@/views/data/genotype/Maps.vue'),\n beforeEnter: requireAuth\n }\n ]\n },\n {\n path: 'export/cross',\n name: Pages.exportCrossComparison,\n component: () => import(/* webpackChunkName: \"export-cross-data\" */'@/views/data/export/CrossDataTypeComparison.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'export/:datasetType',\n name: Pages.export,\n component: () => import(/* webpackChunkName: \"dataset-selector\" */ '@/views/DatasetSelector.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'export/genotype/:datasetIds',\n name: Pages.exportGenotypes,\n component: () => import(/* webpackChunkName: \"genotype-export\" */ '@/views/data/export/GenotypeExport.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'export/climate/:datasetIds',\n name: Pages.exportClimates,\n component: () => import(/* webpackChunkName: \"climate-export\" */'@/views/data/export/ClimateExport.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'export/trials/:datasetIds',\n name: Pages.exportTraits,\n component: () => import(/* webpackChunkName: \"trials-export\" */'@/views/data/export/TrialsExport.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'export/allelefreq/:datasetIds',\n name: Pages.exportAlleleFrequency,\n component: () => import(/* webpackChunkName: \"allelefreq-export\" */ '@/views/data/export/AlleleFrequencyExport.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'geography',\n redirect: '/data/geography/locations',\n name: '',\n component: {\n render (c) { return c('router-view') }\n },\n children: [\n {\n path: 'locations',\n name: Pages.locations,\n component: () => import(/* webpackChunkName: \"locations\" */ '@/views/data/geography/Locations.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'geographic-search',\n name: Pages.geographicSearch,\n component: () => import(/* webpackChunkName: \"geographic-search\" */'@/views/data/geography/GeographicSearch.vue'),\n beforeEnter: requireAuth\n }\n ]\n },\n {\n path: 'datasets',\n name: Pages.datasets,\n component: () => import(/* webpackChunkName: \"datasets\" */ '@/views/data/Datasets.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'experiments',\n name: Pages.experiments,\n component: () => import(/* webpackChunkName: \"experiments\" */ '@/views/data/Experiments.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'experiments/:experimentId',\n name: Pages.experimentDetails,\n component: () => import(/* webpackChunkName: \"experiment-details\" */ '@/views/data/ExperimentDetails.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'data-resources',\n name: Pages.dataResources,\n component: () => import(/* webpackChunkName: \"data-resources\" */ '@/views/data/DataResources.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'statistics',\n name: Pages.statistics,\n component: () => import(/* webpackChunkName: \"data-statistics\" */ '@/views/data/DataStatistics.vue'),\n beforeEnter: requireAuth\n }\n ]\n },\n {\n path: 'images',\n name: Pages.images,\n component: () => import(/* webpackChunkName: \"images\" */ '@/views/Images.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'marked-items',\n name: Pages.markedItems,\n component: () => import(/* webpackChunkName: \"marked-items\" */ '@/views/MarkedItemsView.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'marked-items/:itemType',\n name: Pages.markedItemsType,\n component: () => import(/* webpackChunkName: \"marked-items-type\" */ '@/views/MarkedItemsView.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'import',\n redirect: '/import/data-upload',\n name: '',\n component: {\n render (c) { return c('router-view') }\n },\n children: [\n {\n path: 'data-upload',\n name: Pages.importUpload,\n meta: { minUserType: 'Data Curator' },\n component: () => import(/* webpackChunkName: \"data-uploader\" */ '@/views/data/DataUploader.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'data-upload/:templateType',\n name: Pages.importUploadType,\n meta: { minUserType: 'Data Curator' },\n component: () => import(/* webpackChunkName: \"data-uploader-type\" */ '@/views/data/DataUploader.vue'),\n beforeEnter: requireAuth\n }\n ]\n },\n {\n path: 'search',\n name: Pages.search,\n component: () => import(/* webpackChunkName: \"search\" */ '@/views/Search.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'search/:searchTerm',\n name: Pages.searchQuery,\n component: () => import(/* webpackChunkName: \"search-term\" */ '@/views/Search.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'publications',\n name: Pages.publications,\n component: () => import(/* webpackChunkName: \"publications\" */ '@/views/Publications.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'publications/:publicationId',\n name: Pages.publicationDetails,\n component: () => import(/* webpackChunkName: \"publication-details\" */ '@/views/Publications.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'groups',\n name: Pages.groups,\n component: () => import(/* webpackChunkName: \"groups\" */ '@/views/Groups.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'groups/upload/:file',\n name: Pages.groupUpload,\n component: () => import(/* webpackChunkName: \"group-upload\" */ '@/views/GroupUpload.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'groups/:groupId',\n name: Pages.groupDetails,\n component: () => import(/* webpackChunkName: \"group-details\" */ '@/views/Groups.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'about',\n redirect: '/about/germinate',\n name: '',\n component: {\n render (c) { return c('router-view') }\n },\n children: [\n {\n path: 'germinate',\n name: Pages.aboutGerminate,\n meta: { canBeHidden: false },\n component: () => import(/* webpackChunkName: \"about-germinate\" */ '@/views/about/AboutGerminate.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'project',\n name: Pages.aboutProject,\n component: () => import(/* webpackChunkName: \"about-project\" */ '@/views/about/AboutProject.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'export-formats',\n name: Pages.aboutExportFormats,\n component: () => import(/* webpackChunkName: \"about-export-formats\" */ '@/views/about/ExportFormats.vue'),\n beforeEnter: requireAuth\n },\n {\n path: 'export-formats/:format',\n name: Pages.aboutExportFormatsType,\n component: () => import(/* webpackChunkName: \"about-export-formats-detail\" */ '@/views/about/ExportFormats.vue'),\n beforeEnter: requireAuth\n }\n ]\n },\n {\n path: '403',\n name: Pages.fourZeroThree,\n component: () => import(/* webpackChunkName: \"error-403\" */ '@/views/error/Page403.vue')\n },\n {\n path: '404',\n name: Pages.fourZeroFour,\n component: () => import(/* webpackChunkName: \"error-403\" */ '@/views/error/Page404.vue')\n },\n {\n path: '*',\n name: Pages.fallback,\n redirect: '/home'\n }\n ]\n }\n]\n\nconst router = new VueRouter({\n routes,\n scrollBehavior (to, from, savedPosition) {\n if (savedPosition || (from && to && from.path === to.path)) {\n return savedPosition\n } else {\n return { x: 0, y: 0 }\n }\n }\n})\n\nrouter.beforeEach((to, from, next) => {\n const serverSettings = store.getters.storeServerSettings\n\n // Check if this page can be hidden\n const canBeHidden = !to.meta || to.meta.canBeHidden !== false\n // If the requested page isn't available because it has been hidden, redirect to 404\n if (serverSettings && serverSettings.hiddenPages && canBeHidden) {\n if (serverSettings.hiddenPages.indexOf(to.name) !== -1) {\n next({ name: '404' })\n return\n }\n }\n\n store.dispatch('setHelpKey', null)\n loadLanguageAsync(store.getters.storeLocale).then(() => next())\n})\n\nexport default router\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport createPersistedState from 'vuex-persistedstate'\n\nimport { setOptions, bootstrap } from 'vue-gtag'\n\nVue.use(Vuex)\n\nconst localStorage = window.localStorage\n\nlet name = process.env.VUE_APP_INSTANCE_NAME\n\nif (!name) {\n name = 'germinate-' + window.location.pathname\n}\n\nconst essentialKeys = ['token', 'locale', 'baseUrl', 'serverSettings', 'asyncJobUuids', 'asyncJobCount', 'markedIds', 'cookiesAccepted']\nconst userState = {\n appState: 'production',\n uniqueClientId: null,\n locale: 'en_GB',\n tablePerPage: 10,\n originalTarget: null,\n helpKey: null,\n entityTypeStats: [{\n Accession: {\n count: 0\n },\n 'Plant/Plot': {\n count: 0\n },\n Sample: {\n count: 0\n }\n }],\n sidebarState: 'sidebar-lg-show',\n asyncSidebarTabIndex: 0,\n mapLayer: 'osm',\n markedIds: {\n germplasm: [],\n markers: [],\n locations: []\n },\n recentIds: {\n germplasm: [],\n markers: []\n },\n hiddenColumns: {\n germplasm: [],\n germplasmAttributes: [],\n images: [],\n climates: [],\n climateData: [],\n comments: [],\n fileresources: [],\n maps: [],\n markers: [],\n mapDefinitions: [],\n datasets: [],\n datasetAttributes: [],\n experiments: [],\n entities: [],\n groups: [],\n institutions: [],\n locations: [],\n pedigrees: [],\n pedigreedefinitions: [],\n traits: [],\n traitAttributes: [],\n trialsData: [],\n collaborators: [],\n publications: []\n },\n asyncJobUuids: [],\n asyncJobCount: 0,\n cookiesAccepted: null,\n customChartColors: null,\n darkMode: false,\n changelogVersionNumber: null\n}\n\nconst storeState = {\n state: {\n token: null,\n serverSettings: null,\n baseUrl: null,\n userStates: {\n null: JSON.parse(JSON.stringify(userState))\n }\n },\n getters: {\n storeUserId: (state) => state.token ? state.token.id : null,\n storeCookiesAccepted: (state, getters) => state.userStates[getters.storeUserId].cookiesAccepted,\n storeDarkMode: (state, getters) => state.userStates[getters.storeUserId].darkMode,\n storeMarkedIds: (state, getters) => state.userStates[getters.storeUserId].markedIds,\n storeMarkedGermplasm: (state, getters) => state.userStates[getters.storeUserId].markedIds.germplasm,\n storeMarkedMarkers: (state, getters) => state.userStates[getters.storeUserId].markedIds.markers,\n storeMarkedLocations: (state, getters) => state.userStates[getters.storeUserId].markedIds.locations,\n storeToken: (state) => state.token,\n storeBaseUrl: (state) => state.baseUrl,\n storeHelpKey: (state, getters) => state.userStates[getters.storeUserId].helpKey,\n storeServerSettings: (state) => state.serverSettings,\n storeLocale: (state, getters) => state.userStates[getters.storeUserId].locale,\n storeRecentIds: (state, getters) => state.userStates[getters.storeUserId].recentIds,\n storeEntityTypeStats: (state, getters) => state.userStates[getters.storeUserId].entityTypeStats,\n storeHiddenColumns: (state, getters) => state.userStates[getters.storeUserId].hiddenColumns,\n storeTablePerPage: (state, getters) => state.userStates[getters.storeUserId].tablePerPage,\n storeCustomChartColors: (state, getters) => state.userStates[getters.storeUserId].customChartColors,\n storeAsyncJobUuids: (state, getters) => state.userStates[getters.storeUserId].asyncJobUuids,\n storeAsyncJobCount: (state, getters) => state.userStates[getters.storeUserId].asyncJobCount,\n storeOriginalTarget: (state, getters) => state.userStates[getters.storeUserId].originalTarget,\n storeAsyncSidebarTabIndex: (state, getters) => state.userStates[getters.storeUserId].asyncSidebarTabIndex,\n storeMapLayer: (state, getters) => state.userStates[getters.storeUserId].mapLayer,\n storeAppState: (state, getters) => state.appState,\n storeChangelogVersionNumber: (state, getters) => state.userStates[getters.storeUserId].changelogVersionNumber\n },\n mutations: {\n ON_APP_STATE_CHANGED_MUTATION: function (state, newAppState) {\n state.appState = newAppState\n },\n ON_TOKEN_CHANGED_MUTATION: function (state, newToken) {\n if (newToken && !state.userStates[newToken.id]) {\n // Add the new user to the state, remember to use Vue.set to make it reactive\n Vue.set(state.userStates, newToken.id, JSON.parse(JSON.stringify(userState)))\n }\n\n if (newToken === null) {\n document.cookie = 'token=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'\n }\n\n state.token = newToken\n },\n ON_UNIQUE_CLIENT_ID_CHANGED_MUTATION: function (state, newUniqueClientId) {\n state.uniqueClientId = newUniqueClientId\n },\n ON_BASE_URL_CHANGED_MUTATION: function (state, newBaseUrl) {\n state.baseUrl = newBaseUrl\n },\n ON_SETTINGS_CHANGED_MUTATION: function (state, newServerSettings) {\n state.serverSettings = newServerSettings\n\n if (newServerSettings && newServerSettings.googleAnalyticsKey) {\n if (state.userStates[state.token ? state.token.id : null].cookiesAccepted === true) {\n setOptions({\n config: { id: newServerSettings.googleAnalyticsKey },\n enabled: true\n })\n } else {\n setOptions({\n config: { id: newServerSettings.googleAnalyticsKey },\n enabled: false\n })\n }\n\n bootstrap()\n }\n },\n ON_LOCALE_CHANGED_MUTATION: function (state, newLocale) {\n state.userStates[state.token ? state.token.id : null].locale = newLocale\n },\n ON_TABLE_PER_PAGE_CHANGED_MUTATION: function (state, newTablePerPage) {\n state.userStates[state.token ? state.token.id : null].tablePerPage = newTablePerPage\n },\n ON_MARKED_IDS_ADD_MUTATION: function (state, { type, ids }) {\n ids.forEach(id => {\n if (state.userStates[state.token ? state.token.id : null].markedIds[type].indexOf(id) === -1) {\n state.userStates[state.token ? state.token.id : null].markedIds[type].push(id)\n }\n })\n },\n ON_MARKED_IDS_REMOVE_MUTATION: function (state, { type, ids }) {\n ids.forEach(id => {\n const index = state.userStates[state.token ? state.token.id : null].markedIds[type].indexOf(id)\n if (index !== -1) {\n state.userStates[state.token ? state.token.id : null].markedIds[type].splice(index, 1)\n }\n })\n },\n ON_MARKED_IDS_CLEAR_MUTATION: function (state, type) {\n state.userStates[state.token ? state.token.id : null].markedIds[type] = []\n },\n ON_RECENT_IDS_PUSH_MUTATION: function (state, { type, id }) {\n // If it's not on the list yet, add it.\n if (state.userStates[state.token ? state.token.id : null].recentIds[type].indexOf(id) === -1) {\n state.userStates[state.token ? state.token.id : null].recentIds[type].push(id)\n }\n\n // If there are more than we want to store\n if (state.userStates[state.token ? state.token.id : null].recentIds[type].length > 10) {\n // Remove the oldest element (first)\n state.userStates[state.token ? state.token.id : null].recentIds[type].shift()\n }\n },\n ON_RECENT_IDS_CLEAR_MUTATION: function (state, type) {\n state.userStates[state.token ? state.token.id : null].recentIds[type] = []\n },\n ON_HIDDEN_COLUMNS_SET_MUTATION: function (state, { type, columns }) {\n // Only overwrite with the settings received from the server if the array either doesn't exist or is empty\n if (!state.userStates[state.token ? state.token.id : null].hiddenColumns[type] || state.userStates[state.token ? state.token.id : null].hiddenColumns[type].length < 1) {\n Vue.set(state.userStates[state.token ? state.token.id : null].hiddenColumns, type, columns)\n }\n },\n ON_HIDDEN_COLUMNS_ADD_MUTATION: function (state, { type, columns }) {\n columns.forEach(id => {\n if (state.userStates[state.token ? state.token.id : null].hiddenColumns[type].indexOf(id) === -1) {\n state.userStates[state.token ? state.token.id : null].hiddenColumns[type].push(id)\n }\n })\n },\n ON_HIDDEN_COLUMNS_REMOVE_MUTATION: function (state, { type, columns }) {\n columns.forEach(id => {\n const index = state.userStates[state.token ? state.token.id : null].hiddenColumns[type].indexOf(id)\n if (index !== -1) {\n state.userStates[state.token ? state.token.id : null].hiddenColumns[type].splice(index, 1)\n }\n })\n },\n ON_ORIGINAL_TARGET_CHANGED_MUTATION: function (state, newOriginalTarget) {\n state.userStates[state.token ? state.token.id : null].originalTarget = newOriginalTarget\n },\n ON_HELP_KEY_CHANGED_MUTATION: function (state, newHelpKey) {\n state.userStates[state.token ? state.token.id : null].helpKey = newHelpKey\n },\n ON_ENTITY_TYPE_STATS_CHANGED_MUTATION: function (state, newEntityTypeStats) {\n state.userStates[state.token ? state.token.id : null].entityTypeStats = newEntityTypeStats\n },\n ON_ASYNC_JOB_COUNT_CHANGED_MUTATION: function (state, newAsyncJobCount) {\n state.userStates[state.token ? state.token.id : null].asyncJobCount = newAsyncJobCount\n },\n ON_SIDEBAR_STATE_CHANGED_MUTATION: function (state, newSidebarState) {\n state.userStates[state.token ? state.token.id : null].sidebarState = newSidebarState\n },\n ON_ASYNC_SIDEBAR_TAB_INDEX_CHANGED_MUTATION: function (state, newAsyncSidebarTabIndex) {\n state.userStates[state.token ? state.token.id : null].asyncSidebarTabIndex = newAsyncSidebarTabIndex\n },\n ON_CHANGELOG_VERSION_NUMBER_CHANGED_MUTATION: function (state, newChangelogVersionNumber) {\n if (state.userStates[state.token ? state.token.id : null].changelogVersionNumber === undefined) {\n Vue.set(state.userStates[state.token ? state.token.id : null], 'changelogVersionNumber', newChangelogVersionNumber)\n } else {\n state.userStates[state.token ? state.token.id : null].changelogVersionNumber = newChangelogVersionNumber\n }\n },\n ON_ASYNC_JOB_UUID_MUTATION: function (state, newAsyncJobUuids) {\n if (!state.token) {\n state.userStates[state.token ? state.token.id : null].asyncJobUuids = newAsyncJobUuids\n }\n },\n ON_ASYNC_JOB_UUID_ADD_MUTATION: function (state, uuid) {\n if (!state.token) {\n if (state.userStates[state.token ? state.token.id : null].asyncJobUuids.indexOf(uuid) === -1) {\n state.userStates[state.token ? state.token.id : null].asyncJobUuids.push(uuid)\n }\n }\n },\n ON_ASYNC_JOB_UUID_REMOVE_MUTATION: function (state, uuid) {\n if (!state.token) {\n const index = state.userStates[state.token ? state.token.id : null].asyncJobUuids.indexOf(uuid)\n\n if (index !== -1) {\n state.userStates[state.token ? state.token.id : null].asyncJobUuids.splice(index, 1)\n }\n }\n },\n ON_COOKIES_ACCEPTED_MUTATION: function (state, newCookiesAccepted) {\n state.userStates[state.token ? state.token.id : null].cookiesAccepted = newCookiesAccepted\n\n if (state.serverSettings && state.serverSettings.googleAnalyticsKey) {\n if (newCookiesAccepted === true) {\n setOptions({\n enabled: true\n })\n } else {\n setOptions({\n enabled: false\n })\n }\n\n bootstrap()\n }\n },\n ON_CUSTOM_CHART_COLORS_CHANGED_MUTATION: function (state, newCustomChartColors) {\n state.userStates[state.token ? state.token.id : null].customChartColors = newCustomChartColors\n },\n ON_DARK_MODE_CHANGED_MUTATION: function (state, newDarkMode) {\n state.userStates[state.token ? state.token.id : null].darkMode = newDarkMode\n },\n ON_MAP_LAYER_CHANGED_MUTATION: function (state, newMapLayer) {\n state.userStates[state.token ? state.token.id : null].mapLayer = newMapLayer\n }\n },\n actions: {\n setAppState: function ({ commit }, appState) {\n commit('ON_APP_STATE_CHANGED_MUTATION', appState)\n },\n setToken: function ({ commit }, token) {\n commit('ON_TOKEN_CHANGED_MUTATION', token)\n },\n setLocale: function ({ commit }, locale) {\n commit('ON_LOCALE_CHANGED_MUTATION', locale)\n },\n setUniqueClientId: function ({ commit }, uniqueClientId) {\n commit('ON_UNIQUE_CLIENT_ID_CHANGED_MUTATION', uniqueClientId)\n },\n setBaseUrl: function ({ commit }, baseUrl) {\n commit('ON_BASE_URL_CHANGED_MUTATION', baseUrl)\n },\n setTablePerPage: function ({ commit }, tablePerPage) {\n commit('ON_TABLE_PER_PAGE_CHANGED_MUTATION', tablePerPage)\n },\n addMarkedIds: function ({ commit }, payload) {\n commit('ON_MARKED_IDS_ADD_MUTATION', payload)\n },\n removeMarkedIds: function ({ commit }, payload) {\n commit('ON_MARKED_IDS_REMOVE_MUTATION', payload)\n },\n clearMarkedIds: function ({ commit }, type) {\n commit('ON_MARKED_IDS_CLEAR_MUTATION', type)\n },\n pushRecentIds: function ({ commit }, payload) {\n commit('ON_RECENT_IDS_PUSH_MUTATION', payload)\n },\n clearRecentIds: function ({ commit }, type) {\n commit('ON_RECENT_IDS_CLEAR_MUTATION', type)\n },\n setHiddenColumns: function ({ commit }, payload) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', payload)\n },\n addHiddenColumns: function ({ commit }, payload) {\n commit('ON_HIDDEN_COLUMNS_ADD_MUTATION', payload)\n },\n removeHiddenColumns: function ({ commit }, payload) {\n commit('ON_HIDDEN_COLUMNS_REMOVE_MUTATION', payload)\n },\n setOriginalTarget: function ({ commit }, originalTarget) {\n commit('ON_ORIGINAL_TARGET_CHANGED_MUTATION', originalTarget)\n },\n setServerSettings: function ({ commit }, serverSettings) {\n commit('ON_SETTINGS_CHANGED_MUTATION', serverSettings)\n\n if (serverSettings && serverSettings.hiddenColumns) {\n // Overwrite current hidden columns with server defaults. This will only take place the first time Germinate loads,\n // because afterwards we can't tell whether the current hidden columns are user-specified or server-specified\n if (serverSettings.hiddenColumns.germplasm) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'germplasm', columns: serverSettings.hiddenColumns.germplasm })\n }\n if (serverSettings.hiddenColumns.germplasmAttributes) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'germplasmAttributes', columns: serverSettings.hiddenColumns.germplasmAttributes })\n }\n if (serverSettings.hiddenColumns.images) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'images', columns: serverSettings.hiddenColumns.images })\n }\n if (serverSettings.hiddenColumns.climates) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'climates', columns: serverSettings.hiddenColumns.climates })\n }\n if (serverSettings.hiddenColumns.climateData) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'climateData', columns: serverSettings.hiddenColumns.climateData })\n }\n if (serverSettings.hiddenColumns.comments) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'comments', columns: serverSettings.hiddenColumns.comments })\n }\n if (serverSettings.hiddenColumns.fileresources) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'fileresources', columns: serverSettings.hiddenColumns.fileresources })\n }\n if (serverSettings.hiddenColumns.maps) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'maps', columns: serverSettings.hiddenColumns.maps })\n }\n if (serverSettings.hiddenColumns.markers) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'markers', columns: serverSettings.hiddenColumns.markers })\n }\n if (serverSettings.hiddenColumns.mapDefinitions) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'mapDefinitions', columns: serverSettings.hiddenColumns.mapDefinitions })\n }\n if (serverSettings.hiddenColumns.datasets) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'datasets', columns: serverSettings.hiddenColumns.datasets })\n }\n if (serverSettings.hiddenColumns.datasetAttributes) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'datasetAttributes', columns: serverSettings.hiddenColumns.datasetAttributes })\n }\n if (serverSettings.hiddenColumns.experiments) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'experiments', columns: serverSettings.hiddenColumns.experiments })\n }\n if (serverSettings.hiddenColumns.entities) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'entities', columns: serverSettings.hiddenColumns.entities })\n }\n if (serverSettings.hiddenColumns.groups) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'groups', columns: serverSettings.hiddenColumns.groups })\n }\n if (serverSettings.hiddenColumns.institutions) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'institutions', columns: serverSettings.hiddenColumns.institutions })\n }\n if (serverSettings.hiddenColumns.locations) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'locations', columns: serverSettings.hiddenColumns.locations })\n }\n if (serverSettings.hiddenColumns.pedigrees) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'pedigrees', columns: serverSettings.hiddenColumns.pedigrees })\n }\n if (serverSettings.hiddenColumns.pedigreedefinitions) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'pedigreedefinitions', columns: serverSettings.hiddenColumns.pedigreedefinitions })\n }\n if (serverSettings.hiddenColumns.traitAttributes) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'traitAttributes', columns: serverSettings.hiddenColumns.traitAttributes })\n }\n if (serverSettings.hiddenColumns.traits) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'traits', columns: serverSettings.hiddenColumns.traits })\n }\n if (serverSettings.hiddenColumns.trialsData) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'trialsData', columns: serverSettings.hiddenColumns.trialsData })\n }\n if (serverSettings.hiddenColumns.collaborators) {\n commit('ON_HIDDEN_COLUMNS_SET_MUTATION', { type: 'collaborators', columns: serverSettings.hiddenColumns.collaborators })\n }\n }\n },\n setHelpKey: function ({ commit }, helpKey) {\n commit('ON_HELP_KEY_CHANGED_MUTATION', helpKey)\n },\n setEntityTypeStats: function ({ commit }, entityTypeStats) {\n commit('ON_ENTITY_TYPE_STATS_CHANGED_MUTATION', entityTypeStats)\n },\n setSidebarState: function ({ commit }, sidebarState) {\n commit('ON_SIDEBAR_STATE_CHANGED_MUTATION', sidebarState)\n },\n setAsyncJobCount: function ({ commit }, asyncJobCount) {\n commit('ON_ASYNC_JOB_COUNT_CHANGED_MUTATION', asyncJobCount)\n },\n setAsyncJobUuid: function ({ commit }, asyncJobUuids) {\n commit('ON_ASYNC_JOB_UUID_MUTATION', asyncJobUuids)\n },\n addAsyncUuid: function ({ commit }, uuid) {\n commit('ON_ASYNC_JOB_UUID_ADD_MUTATION', uuid)\n },\n removeAsyncUuid: function ({ commit }, uuid) {\n commit('ON_ASYNC_JOB_UUID_REMOVE_MUTATION', uuid)\n },\n setCookiesAccepted: function ({ commit }, cookiesAccepted) {\n commit('ON_COOKIES_ACCEPTED_MUTATION', cookiesAccepted)\n },\n setCustomChartColors: function ({ commit }, customChartColors) {\n commit('ON_CUSTOM_CHART_COLORS_CHANGED_MUTATION', customChartColors)\n },\n setDarkMode: function ({ commit }, darkMode) {\n commit('ON_DARK_MODE_CHANGED_MUTATION', darkMode)\n },\n setMapLayer: function ({ commit }, mapLayer) {\n commit('ON_MAP_LAYER_CHANGED_MUTATION', mapLayer)\n },\n setAsyncSidebarTabIndex: function ({ commit }, asyncSidebarTabIndex) {\n commit('ON_ASYNC_SIDEBAR_TAB_INDEX_CHANGED_MUTATION', asyncSidebarTabIndex)\n },\n setChangelogVersionNumber: function ({ commit }, changelogVersionNumber) {\n commit('ON_CHANGELOG_VERSION_NUMBER_CHANGED_MUTATION', changelogVersionNumber)\n }\n },\n plugins: [\n createPersistedState({\n key: name,\n storage: {\n getItem: key => {\n // Get the value and parse it\n const result = JSON.parse(localStorage.getItem(key))\n\n // If it exists and there is user state data\n if (result && result.userStates) {\n // Then for each user state, set the defaults for those fields that aren't stored (because of declined cookies (GDPR))\n Object.keys(result.userStates).forEach(us => {\n result.userStates[us] = Object.assign(JSON.parse(JSON.stringify(userState)), result.userStates[us])\n\n Object.keys(userState.hiddenColumns).forEach(hd => {\n if (!result.userStates[us].hiddenColumns[hd]) {\n result.userStates[us].hiddenColumns[hd] = userState.hiddenColumns[hd]\n }\n })\n })\n }\n\n return JSON.stringify(result)\n },\n setItem: (key, value) => localStorage.setItem(key, value),\n removeItem: key => localStorage.removeItem(key)\n },\n reducer: (state) => {\n let result = {}\n try {\n result = JSON.parse(JSON.stringify(state))\n } catch (err) {\n console.error(err)\n }\n\n // Check if GDPR settings are active\n if (result.userStates && result.serverSettings && result.serverSettings.showGdprNotification) {\n // If so, for each user\n Object.keys(result.userStates).forEach(u => {\n const currentUserState = result.userStates[u]\n\n // If they haven't accepted cookies, remove the keys that aren't flagged as \"essential cookies\"\n if (currentUserState.cookiesAccepted !== true) {\n Object.keys(currentUserState).forEach(k => {\n if (essentialKeys.indexOf(k) === -1) {\n delete currentUserState[k]\n }\n })\n }\n })\n }\n\n return result\n }\n })\n ]\n}\n\nconst store = new Vuex.Store(storeState)\n\nexport default store\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + ({\"358\":\"germplasm\",\"636\":\"images\",\"653\":\"dataset-selector\",\"1267\":\"germplasm-unifier\",\"1455\":\"markers\",\"1485\":\"publications\",\"1529\":\"about-project\",\"1645\":\"data-resources\",\"2334\":\"user-permissions\",\"3291\":\"groups\",\"3747\":\"about-germinate\",\"4067\":\"experiment-details\",\"4306\":\"marked-items\",\"4379\":\"error-403\",\"4530\":\"traits\",\"4535\":\"login\",\"5177\":\"home\",\"5357\":\"germinate-settings\",\"5438\":\"climate-details\",\"5454\":\"geographic-search\",\"5510\":\"climates\",\"5686\":\"locations\",\"5785\":\"trials-export\",\"6143\":\"climate-export\",\"6150\":\"passport\",\"6464\":\"search\",\"6725\":\"data-uploader\",\"6766\":\"export-cross-data\",\"7358\":\"marker-details\",\"7429\":\"genotype-export\",\"8111\":\"experiments\",\"8175\":\"group-upload\",\"8278\":\"cookies\",\"8318\":\"about-export-formats\",\"8399\":\"maps\",\"8591\":\"trait-details\",\"9365\":\"data-statistics\",\"9451\":\"datasets\",\"9762\":\"allelefreq-export\",\"9966\":\"dashboard\"}[chunkId] || chunkId) + \".\" + {\"301\":\"87d8eef4\",\"358\":\"a8844bb2\",\"636\":\"c6611301\",\"653\":\"2816f1d2\",\"1051\":\"4f1ed196\",\"1267\":\"9a3a3667\",\"1455\":\"7a770552\",\"1485\":\"2061740b\",\"1493\":\"072e7717\",\"1529\":\"552a8f74\",\"1645\":\"ae4dc6bd\",\"2013\":\"0cfa136f\",\"2271\":\"3cb88e26\",\"2334\":\"52ab484d\",\"2440\":\"783ecfa5\",\"2656\":\"28d2a422\",\"2679\":\"0344236e\",\"2956\":\"7a6a8714\",\"3291\":\"6e7814c1\",\"3747\":\"13a9d2fa\",\"4067\":\"856cb52e\",\"4306\":\"155377db\",\"4379\":\"369ebd12\",\"4530\":\"650a7285\",\"4535\":\"e96a424b\",\"4575\":\"874f3dba\",\"5177\":\"f7ccd454\",\"5357\":\"922d4c8a\",\"5438\":\"605d0018\",\"5454\":\"42fdb6a7\",\"5510\":\"05225c77\",\"5686\":\"13fc8aa1\",\"5785\":\"d98a2bd6\",\"6143\":\"8e5c5f30\",\"6150\":\"40862b5b\",\"6245\":\"f4bf9542\",\"6378\":\"3f36bbdb\",\"6464\":\"9d1e676a\",\"6490\":\"3072894e\",\"6725\":\"7d5dab87\",\"6766\":\"366cd5ee\",\"6785\":\"ee5958f5\",\"6839\":\"ca5a4aff\",\"7001\":\"7e8ed4a5\",\"7298\":\"f5e2a8b1\",\"7358\":\"05d851d8\",\"7429\":\"ce91e6be\",\"7529\":\"be42c52d\",\"7622\":\"45b068a0\",\"8111\":\"4c72c090\",\"8175\":\"d3853795\",\"8278\":\"91c46271\",\"8318\":\"0d52af18\",\"8399\":\"978a972c\",\"8591\":\"d2c12c8c\",\"9365\":\"f5b69f8e\",\"9451\":\"93748793\",\"9762\":\"75a807d3\",\"9966\":\"e86a27a4\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + ({\"358\":\"germplasm\",\"636\":\"images\",\"653\":\"dataset-selector\",\"1267\":\"germplasm-unifier\",\"1455\":\"markers\",\"1485\":\"publications\",\"1645\":\"data-resources\",\"2334\":\"user-permissions\",\"3291\":\"groups\",\"3747\":\"about-germinate\",\"4067\":\"experiment-details\",\"4306\":\"marked-items\",\"4379\":\"error-403\",\"4530\":\"traits\",\"4535\":\"login\",\"5177\":\"home\",\"5357\":\"germinate-settings\",\"5438\":\"climate-details\",\"5454\":\"geographic-search\",\"5510\":\"climates\",\"5686\":\"locations\",\"5785\":\"trials-export\",\"6143\":\"climate-export\",\"6150\":\"passport\",\"6464\":\"search\",\"6725\":\"data-uploader\",\"7358\":\"marker-details\",\"7429\":\"genotype-export\",\"8111\":\"experiments\",\"8175\":\"group-upload\",\"8318\":\"about-export-formats\",\"8399\":\"maps\",\"8591\":\"trait-details\",\"9365\":\"data-statistics\",\"9451\":\"datasets\",\"9762\":\"allelefreq-export\",\"9966\":\"dashboard\"}[chunkId] || chunkId) + \".\" + {\"358\":\"3e0dfcb4\",\"636\":\"31c6639c\",\"653\":\"2fac3e76\",\"1267\":\"086d0dee\",\"1455\":\"98811e23\",\"1485\":\"98811e23\",\"1645\":\"2fac3e76\",\"2334\":\"06fa8267\",\"2956\":\"bd00f608\",\"3291\":\"98811e23\",\"3747\":\"36ccc81a\",\"4067\":\"2fac3e76\",\"4306\":\"98811e23\",\"4379\":\"5c5a51b1\",\"4530\":\"983fd3d9\",\"4535\":\"c12351fd\",\"5177\":\"e3f098ec\",\"5357\":\"c51899b4\",\"5438\":\"eb73d33d\",\"5454\":\"62b6c0c7\",\"5510\":\"98811e23\",\"5686\":\"98811e23\",\"5785\":\"8c9ff8cd\",\"6143\":\"8b8ee2a8\",\"6150\":\"00cfc5b8\",\"6464\":\"ba3e5df0\",\"6725\":\"9fb7daf0\",\"6785\":\"a36c7d32\",\"7358\":\"217fa061\",\"7429\":\"29cb267b\",\"7529\":\"e95eee09\",\"8111\":\"f7eff8a0\",\"8175\":\"98811e23\",\"8318\":\"838f3989\",\"8399\":\"7d78b35e\",\"8591\":\"c61af5be\",\"9365\":\"e791ee10\",\"9451\":\"2fac3e76\",\"9762\":\"17b8f2cc\",\"9966\":\"abd4c5e4\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"germinate:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"358\":1,\"636\":1,\"653\":1,\"1267\":1,\"1455\":1,\"1485\":1,\"1645\":1,\"2334\":1,\"2956\":1,\"3291\":1,\"3747\":1,\"4067\":1,\"4306\":1,\"4379\":1,\"4530\":1,\"4535\":1,\"5177\":1,\"5357\":1,\"5438\":1,\"5454\":1,\"5510\":1,\"5686\":1,\"5785\":1,\"6143\":1,\"6150\":1,\"6464\":1,\"6725\":1,\"6785\":1,\"7358\":1,\"7429\":1,\"7529\":1,\"8111\":1,\"8175\":1,\"8318\":1,\"8399\":1,\"8591\":1,\"9365\":1,\"9451\":1,\"9762\":1,\"9966\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(6150 != chunkId) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkgerminate\"] = self[\"webpackChunkgerminate\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4998], function() { return __webpack_require__(26326); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","class","printContent","_e","ref","staticClass","domProps","_s","$t","staticStyle","_v","staticRenderFns","Detector","nameOffset","verOffset","ix","unknown","nVer","navigator","appVersion","nAgt","userAgent","browser","appName","version","parseFloat","majorVersion","parseInt","language","replace","indexOf","substring","lastIndexOf","toLowerCase","toUpperCase","isNaN","os","clientStrings","s","r","id","cs","test","osVersion","exec","browserVersion","browserMajorVersion","locale","data","i18nLoaded","computed","methods","isLocalhost","window","location","hostname","attachStyleSheet","$nextTick","document","head","removeChild","appendChild","print","body","classList","add","newContent","remove","toggleLoading","show","$refs","loadingModal","hide","updateI18nAppState","$i18n","silentTranslationWarn","storeAppState","toast","$bvToast","config","message","created","watch","mounted","emitter","on","$store","dispatch","undefined","application","storeLocale","beforeDestroy","off","component","Vue","BadgePlugin","ButtonGroupPlugin","ButtonPlugin","CardPlugin","CarouselPlugin","CalendarPlugin","FormCheckboxPlugin","FormDatepickerPlugin","FormFilePlugin","FormGroupPlugin","FormPlugin","FormInputPlugin","FormRadioPlugin","FormSelectPlugin","FormTagsPlugin","FormTextareaPlugin","ImagePlugin","InputGroupPlugin","LayoutPlugin","breakpoints","ListGroupPlugin","ModalPlugin","NavbarPlugin","PaginationPlugin","PopoverPlugin","ProgressPlugin","SidebarPlugin","SpinnerPlugin","TablePlugin","TabsPlugin","TooltipPlugin","ToastPlugin","VBScrollspyPlugin","VueGtag","bootstrap","enabled","router","axiosDefaults","require","baseUrl","process","baseURL","store","i18n","h","App","$mount","userIsAtLeast","userType","atLeast","apiDeleteToken","user","onSuccess","onError","authAxios","url","method","success","error","apiPostToken","apiSetupCheckGatekeeper","gkConfig","apiSetupCheckDatabase","dbConfig","apiSetupStore","MAX_JAVA_INTEGER","gatekeeperErrors","BAD_REQUEST_MISSING_FIELDS","CONFLICT_USER_ALREADY_HAS_ACCESS","CONFLICT_USER_ALREADY_REQUESTED_ACCESS","CONFLICT_USERNAME_EMAIL_ALREADY_IN_USE","FORBIDDEN_ACCESS_TO_OTHER_USER","FORBIDDEN_INSUFFICIENT_PERMISSIONS","FORBIDDEN_INVALID_CREDENTIALS","NOT_FOUND_ACTIVATION_KEY","NOT_FOUND_ACTIVATION_REQUEST","NOT_FOUND_ID","NOT_FOUND_ID_OR_PAYLOAD","NOT_FOUND_INSTITUTION","NOT_FOUND_PAYLOAD","NOT_FOUND_TOKEN","NOT_FOUND_USER","UNAVAILABLE_EMAIL","getToken","t","Date","getTime","createdOn","lifetime","token","handleError","emit","variant","title","statusText","reasonPhrase","authMode","status","name","Pages","exception","autoHideDelay","appendToast","authForm","formData","codes","callback","promise","axios","crossDomain","withCredentials","headers","Authorization","then","result","catch","err","response","length","includes","request","textStatus","dataType","contentType","requestData","requestParams","params","responseType","filename","split","map","p","trim","filter","apiGetSettings","apiGetAdminSettings","apiPostAdminSettings","queryData","apiGetSettingsFile","apiPostGatekeeperExisting","apiPostGatekeeperNew","apiGetLocales","uuidv4","apiPostTableExport","tableType","apiPostGermplasmInstitutionTable","germplasmId","page","apiGetGatekeeperInstitutions","apiPostFeedbackUpload","uuid","apiPostDataUpload","templateType","isUpdate","datasetId","datasetStateId","apiPostImages","apiPostImagesExport","apiGetImageTags","apiGetImageTagsForId","referenceTable","foreignId","apiPutImageTags","imageId","apiDeleteImage","apiPatchImage","image","apiPostNewsTable","apiPostMapOverlayTable","apiPostNews","newsItem","apiDeleteNews","newsId","apiPostCommentsTable","apiPutComment","comment","apiDeleteComment","commentId","apiPostLinks","apiPostDataImportStats","apiPostDataAsyncImport","uuids","apiDeleteDataAsyncImport","apiGetDataAsyncImportStart","apiGetDataAsyncImportLog","apiPostPublicationsTable","apiGetPublications","type","apiPutPublication","apiPutPublicationReference","publicationId","apiDeletePublicationReference","referenceType","referenceId","apiPostUserFeedbackTable","apiGetUserFeedbackMarkAsRead","apiDeleteUserFeedback","apiGetOverviewStats","apiGetEntityTypeStats","apiGetStatsFile","Object","freeze","home","login","setup","cookies","userPermissions","germinateSettings","germplasm","germplasmUnifier","passport","climates","climateDetails","traits","traitDetails","markers","markerDetails","maps","mapDetails","export","exportCrossComparison","exportGenotypes","exportClimates","exportTraits","exportAlleleFrequency","locations","geographicSearch","datasets","experiments","experimentDetails","dataResources","statistics","images","markedItems","markedItemsType","importUpload","importUploadType","search","searchQuery","publications","publicationDetails","groups","groupDetails","groupUpload","aboutGerminate","aboutProject","aboutExportFormats","aboutExportFormatsType","userFeedback","fourZeroThree","fourZeroFour","fallback","germinateVersion","c","Math","random","v","toString","mcpdDateToJsDate","input","getTableColumnStyle","tableName","columnKey","isPageAvailable","objectsAreSame","x","y","propertyName","objectArraysAreSame","one","hasMatch","two","downloadBlob","object","blob","extension","URL","createObjectURL","downloadLink","createElement","href","target","rel","download","click","event","downloadSvgsFromContainer","container","isPlotly","serializer","XMLSerializer","svgs","querySelectorAll","source","forEach","children","i","serializeToString","encodeURIComponent","dataURLtoFile","dataurl","arr","mime","match","bstr","atob","n","u8arr","Uint8Array","charCodeAt","File","protectedProperties","VueI18n","messages","en_GB","enGB","fallbackLocale","loadedLanguages","setI18nLanguage","lang","htmlTag","underscoreIndex","querySelector","setAttribute","loadLanguageAsync","Promise","resolve","m","deDE","assign","setLocaleMessage","push","loggedIn","tokenStillValid","VueRouter","originalReplace","requireAuth","to","from","next","auth","path","meta","minUserType","onResolve","onReject","call","routes","redirect","beforeEnter","canBeHidden","scrollBehavior","savedPosition","beforeEach","serverSettings","hiddenPages","Vuex","localStorage","VUE_APP_INSTANCE_NAME","pathname","essentialKeys","userState","appState","uniqueClientId","tablePerPage","originalTarget","helpKey","entityTypeStats","Accession","count","Sample","sidebarState","asyncSidebarTabIndex","mapLayer","markedIds","recentIds","hiddenColumns","germplasmAttributes","climateData","comments","fileresources","mapDefinitions","datasetAttributes","entities","institutions","pedigrees","pedigreedefinitions","traitAttributes","trialsData","collaborators","asyncJobUuids","asyncJobCount","cookiesAccepted","customChartColors","darkMode","changelogVersionNumber","storeState","state","userStates","null","JSON","parse","stringify","getters","storeUserId","storeCookiesAccepted","storeDarkMode","storeMarkedIds","storeMarkedGermplasm","storeMarkedMarkers","storeMarkedLocations","storeToken","storeBaseUrl","storeHelpKey","storeServerSettings","storeRecentIds","storeEntityTypeStats","storeHiddenColumns","storeTablePerPage","storeCustomChartColors","storeAsyncJobUuids","storeAsyncJobCount","storeOriginalTarget","storeAsyncSidebarTabIndex","storeMapLayer","storeChangelogVersionNumber","mutations","ON_APP_STATE_CHANGED_MUTATION","newAppState","ON_TOKEN_CHANGED_MUTATION","newToken","cookie","ON_UNIQUE_CLIENT_ID_CHANGED_MUTATION","newUniqueClientId","ON_BASE_URL_CHANGED_MUTATION","newBaseUrl","ON_SETTINGS_CHANGED_MUTATION","newServerSettings","googleAnalyticsKey","setOptions","ON_LOCALE_CHANGED_MUTATION","newLocale","ON_TABLE_PER_PAGE_CHANGED_MUTATION","newTablePerPage","ON_MARKED_IDS_ADD_MUTATION","ids","ON_MARKED_IDS_REMOVE_MUTATION","index","splice","ON_MARKED_IDS_CLEAR_MUTATION","ON_RECENT_IDS_PUSH_MUTATION","shift","ON_RECENT_IDS_CLEAR_MUTATION","ON_HIDDEN_COLUMNS_SET_MUTATION","columns","ON_HIDDEN_COLUMNS_ADD_MUTATION","ON_HIDDEN_COLUMNS_REMOVE_MUTATION","ON_ORIGINAL_TARGET_CHANGED_MUTATION","newOriginalTarget","ON_HELP_KEY_CHANGED_MUTATION","newHelpKey","ON_ENTITY_TYPE_STATS_CHANGED_MUTATION","newEntityTypeStats","ON_ASYNC_JOB_COUNT_CHANGED_MUTATION","newAsyncJobCount","ON_SIDEBAR_STATE_CHANGED_MUTATION","newSidebarState","ON_ASYNC_SIDEBAR_TAB_INDEX_CHANGED_MUTATION","newAsyncSidebarTabIndex","ON_CHANGELOG_VERSION_NUMBER_CHANGED_MUTATION","newChangelogVersionNumber","ON_ASYNC_JOB_UUID_MUTATION","newAsyncJobUuids","ON_ASYNC_JOB_UUID_ADD_MUTATION","ON_ASYNC_JOB_UUID_REMOVE_MUTATION","ON_COOKIES_ACCEPTED_MUTATION","newCookiesAccepted","ON_CUSTOM_CHART_COLORS_CHANGED_MUTATION","newCustomChartColors","ON_DARK_MODE_CHANGED_MUTATION","newDarkMode","ON_MAP_LAYER_CHANGED_MUTATION","newMapLayer","actions","setAppState","commit","setToken","setLocale","setUniqueClientId","setBaseUrl","setTablePerPage","addMarkedIds","payload","removeMarkedIds","clearMarkedIds","pushRecentIds","clearRecentIds","setHiddenColumns","addHiddenColumns","removeHiddenColumns","setOriginalTarget","setServerSettings","setHelpKey","setEntityTypeStats","setSidebarState","setAsyncJobCount","setAsyncJobUuid","addAsyncUuid","removeAsyncUuid","setCookiesAccepted","setCustomChartColors","setDarkMode","setMapLayer","setAsyncSidebarTabIndex","setChangelogVersionNumber","plugins","createPersistedState","key","storage","getItem","keys","us","hd","setItem","value","removeItem","reducer","console","showGdprNotification","u","currentUserState","k","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","f","e","chunkId","all","reduce","promises","miniCssF","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","done","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","nc","src","onScriptComplete","prev","onerror","onload","clearTimeout","doneFns","parentNode","setTimeout","bind","Symbol","toStringTag","nmd","paths","createStylesheet","fullhref","reject","linkTag","onLinkComplete","errorType","realHref","Error","code","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}