{"version":3,"file":"js/app.fd7d5f83.js","mappings":"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","sources":["webpack://vyhub-central-web/./src/api/openapi.ts","webpack://vyhub-central-web/./src/config.ts","webpack://vyhub-central-web/./src/App.vue?b4f1","webpack://vyhub-central-web/./src/components/TheFooter.vue?d4c8","webpack://vyhub-central-web/src/components/TheFooter.vue","webpack://vyhub-central-web/./src/components/TheFooter.vue?3721","webpack://vyhub-central-web/./src/components/TheFooter.vue","webpack://vyhub-central-web/./src/components/Notification.vue?c06a","webpack://vyhub-central-web/src/components/Notification.vue","webpack://vyhub-central-web/./src/components/Notification.vue?9246","webpack://vyhub-central-web/./src/components/Notification.vue","webpack://vyhub-central-web/./src/components/TheHeader.vue?195c","webpack://vyhub-central-web/./src/components/HeaderComponents/ProfileMenu.vue?e4ff","webpack://vyhub-central-web/src/components/HeaderComponents/ProfileMenu.vue","webpack://vyhub-central-web/./src/components/HeaderComponents/ProfileMenu.vue?f6ca","webpack://vyhub-central-web/./src/components/HeaderComponents/ProfileMenu.vue","webpack://vyhub-central-web/./src/components/HeaderComponents/BurgerMenu.vue?d214","webpack://vyhub-central-web/./src/components/HeaderComponents/ShoppingCart.vue?2797","webpack://vyhub-central-web/src/components/HeaderComponents/ShoppingCart.vue","webpack://vyhub-central-web/./src/components/HeaderComponents/ShoppingCart.vue?b341","webpack://vyhub-central-web/./src/components/HeaderComponents/ShoppingCart.vue","webpack://vyhub-central-web/./src/components/HeaderComponents/Credits.vue?078d","webpack://vyhub-central-web/src/components/HeaderComponents/Credits.vue","webpack://vyhub-central-web/./src/components/HeaderComponents/Credits.vue?5ea0","webpack://vyhub-central-web/./src/components/HeaderComponents/Credits.vue","webpack://vyhub-central-web/src/components/HeaderComponents/BurgerMenu.vue","webpack://vyhub-central-web/./src/components/HeaderComponents/BurgerMenu.vue?44b5","webpack://vyhub-central-web/./src/components/HeaderComponents/BurgerMenu.vue","webpack://vyhub-central-web/./src/components/HeaderComponents/NavigationLink.vue?032f","webpack://vyhub-central-web/src/components/HeaderComponents/NavigationLink.vue","webpack://vyhub-central-web/./src/components/HeaderComponents/NavigationLink.vue?af0d","webpack://vyhub-central-web/./src/components/HeaderComponents/NavigationLink.vue","webpack://vyhub-central-web/src/components/TheHeader.vue","webpack://vyhub-central-web/./src/components/TheHeader.vue?2fbb","webpack://vyhub-central-web/./src/components/TheHeader.vue","webpack://vyhub-central-web/./src/components/TheLandingPageHeader.vue?ecf5","webpack://vyhub-central-web/src/components/TheLandingPageHeader.vue","webpack://vyhub-central-web/./src/components/TheLandingPageHeader.vue?c9ef","webpack://vyhub-central-web/./src/components/TheLandingPageHeader.vue","webpack://vyhub-central-web/src/App.vue","webpack://vyhub-central-web/./src/App.vue?facb","webpack://vyhub-central-web/./src/App.vue","webpack://vyhub-central-web/./src/components/Icons/VyHub.vue?3579","webpack://vyhub-central-web/src/components/Icons/VyHub.vue","webpack://vyhub-central-web/./src/components/Icons/VyHub.vue?fc4d","webpack://vyhub-central-web/./src/components/Icons/VyHub.vue","webpack://vyhub-central-web/./src/components/Icons/Discord.vue?a5d9","webpack://vyhub-central-web/src/components/Icons/Discord.vue","webpack://vyhub-central-web/./src/components/Icons/Discord.vue?3119","webpack://vyhub-central-web/./src/components/Icons/Discord.vue","webpack://vyhub-central-web/./src/plugins/vuetify.ts","webpack://vyhub-central-web/./src/main.ts","webpack://vyhub-central-web/./src/plugins/i18n.ts","webpack://vyhub-central-web/./src/router/index.ts","webpack://vyhub-central-web/./src/services/AccessControlService.ts","webpack://vyhub-central-web/./src/api/api.ts","webpack://vyhub-central-web/./src/services/AuthService.ts","webpack://vyhub-central-web/./src/services/ShopService.ts","webpack://vyhub-central-web/./src/services/UtilService.ts","webpack://vyhub-central-web/./src/store/index.ts","webpack://vyhub-central-web/./src/assets/img/flags/ sync ^\\.\\/.*\\.png$","webpack://vyhub-central-web/./src/lang/ sync [A-Za-z0-9-_,\\s]+\\.json$/","webpack://vyhub-central-web/webpack/bootstrap","webpack://vyhub-central-web/webpack/runtime/chunk loaded","webpack://vyhub-central-web/webpack/runtime/compat get default export","webpack://vyhub-central-web/webpack/runtime/define property getters","webpack://vyhub-central-web/webpack/runtime/ensure chunk","webpack://vyhub-central-web/webpack/runtime/get javascript chunk filename","webpack://vyhub-central-web/webpack/runtime/get mini-css chunk filename","webpack://vyhub-central-web/webpack/runtime/global","webpack://vyhub-central-web/webpack/runtime/harmony module decorator","webpack://vyhub-central-web/webpack/runtime/hasOwnProperty shorthand","webpack://vyhub-central-web/webpack/runtime/load script","webpack://vyhub-central-web/webpack/runtime/make namespace object","webpack://vyhub-central-web/webpack/runtime/node module decorator","webpack://vyhub-central-web/webpack/runtime/publicPath","webpack://vyhub-central-web/webpack/runtime/css loading","webpack://vyhub-central-web/webpack/runtime/jsonp chunk loading","webpack://vyhub-central-web/webpack/startup"],"sourcesContent":["import OpenAPIClientAxios from 'openapi-client-axios';\nimport { Client } from '@/api/openapi.d';\nimport store from '@/store';\nimport config from '@/config';\n\nlet headers = {};\n\nif (store.getters.accessToken) {\n  headers = { common: { Authorization: `Bearer ${store.getters.accessToken}` } };\n}\n\nexport default new OpenAPIClientAxios({\n  definition: `${config.backend_url}/openapi.json`,\n  withServer: 'main',\n  axiosConfigDefaults: {\n    baseURL: config.backend_url,\n    headers,\n  },\n}).getClient<Client>();\n","declare global {\n  interface VyHubConfig {\n    backend_url: string;\n    default_title: string;\n    oauth_client_id: string;\n    ggl_recaptcha_v2_token: string;\n    ggl_recaptcha_v3_token: string;\n    ggl_analytics_token: string;\n    sentry_dsn: string;\n    instance_packet_category_id: string;\n    instance_extra_packet_category_id: string;\n    charge_up_packet_id: string;\n    autocharge_packet_id: string;\n  }\n\n  interface Window {\n    vyhubConfig: VyHubConfig;\n  }\n}\n\nexport default window.vyhubConfig;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('Notification'),_c('v-main',{staticStyle:{\"background-color\":\"#eceff1\"}},[(_vm.$route.meta.cleanPage)?_c('router-view'):(_vm.$route.meta.landingPage)?_c('div',[_c('TheLandingPageHeader'),_c('v-container',[_c('router-view')],1)],1):_c('div',[_c('TheHeader'),_c('v-container',[_c('router-view')],1)],1)],1),(!_vm.$route.meta.hideFooter)?_c('TheFooter'):_vm._e(),_c('script',{attrs:{\"type\":\"application/ld+json\"}},[_vm._v(\" { \\\"@context\\\": \\\"https://schema.org\\\", \\\"@type\\\": \\\"Organization\\\", \\\"url\\\": \\\"https://www.vyhub.net\\\", \\\"logo\\\": \\\"https://www.vyhub.net/favicon.svg\\\" } \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-footer',{attrs:{\"padless\":\"\",\"color\":\"dark\"}},[_c('v-container',[_c('v-row',{staticClass:\"mt-3\",attrs:{\"justify\":\"center\"}},[_c('v-btn',{staticClass:\"ml-1\",attrs:{\"icon\":\"\",\"href\":\"https://www.youtube.com/channel/UCjCxWjHbqoSZmp2l05LWAFg\"}},[_c('v-icon',{attrs:{\"color\":\"white\",\"large\":\"\"}},[_vm._v(\"mdi-youtube\")])],1),_c('v-btn',{staticClass:\"ml-1\",attrs:{\"icon\":\"\",\"href\":\"https://www.instagram.com/vyhub_net/\"}},[_c('v-icon',{attrs:{\"color\":\"white\"}},[_vm._v(\"mdi-instagram\")])],1),_c('v-btn',{staticClass:\"ml-1\",attrs:{\"icon\":\"\",\"href\":\"https://discord.gg/QycQpd2AQP\"}},[_c('v-icon',{attrs:{\"color\":\"white\"}},[_vm._v(\"$discord\")])],1)],1),_c('v-row',{staticClass:\"white--text\",attrs:{\"justify\":\"center\",\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pa-5 text-center white--text\",attrs:{\"cols\":\"12\"}},[_vm._v(\" \"+_vm._s(new Date().getFullYear())+\" — \"),_c('a',{staticClass:\"font-weight-bold white--text text-decoration-none\",attrs:{\"href\":\"https://matbyte.com\"}},[_vm._v(\" Matbyte\")])]),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-row',{attrs:{\"justify\":\"center\",\"dense\":\"\",\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"10\",\"lg\":\"8\",\"xl\":\"4\"}},[_c('v-divider',{staticStyle:{\"border-color\":\"lightgrey\"}})],1)],1)],1),_c('v-col',{staticClass:\"mt-5 mb-10 text-center\",attrs:{\"cols\":\"12\"}},[_c('v-row',{attrs:{\"justify\":\"center\",\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"4\",\"sm\":\"3\",\"lg\":\"2\",\"xl\":\"1\"}},[_c('span',[_vm._v(_vm._s(_vm.$t('_footer.about')))]),_c('div',{staticClass:\"d-flex flex-column\"},[_c('a',{staticClass:\"link\",attrs:{\"href\":\"https://vyhub.net/features\"}},[_vm._v(\" \"+_vm._s(_vm.$t('_footer._about.features'))+\" \")]),_c('a',{staticClass:\"link\",attrs:{\"href\":\"https://vyhub.net/games\"}},[_vm._v(\" \"+_vm._s(_vm.$t('_footer._about.supportedGames'))+\" \")]),_c('a',{staticClass:\"link\",attrs:{\"href\":\"https://vyhub.net/pricing\"}},[_vm._v(\" \"+_vm._s(_vm.$t('_footer._about.pricing'))+\" \")]),_c('a',{staticClass:\"link\",attrs:{\"href\":\"https://vyhub.net/blog\"}},[_vm._v(\" \"+_vm._s(_vm.$t('_footer._about.blog'))+\" \")]),_c('a',{staticClass:\"link\",attrs:{\"href\":\"https://demo.vyhub.net\"}},[_vm._v(\" \"+_vm._s(_vm.$t('_footer._about.demo'))+\" \")])])]),_c('v-col',{attrs:{\"cols\":\"4\",\"sm\":\"3\",\"lg\":\"2\",\"xl\":\"1\"}},[_c('span',[_vm._v(_vm._s(_vm.$t('_footer.help')))]),_c('div',{staticClass:\"d-flex flex-column\"},[_c('router-link',{staticClass:\"link\",attrs:{\"to\":\"/support\"}},[_vm._v(\" \"+_vm._s(_vm.$t('_footer._help.support'))+\" \")]),_c('a',{staticClass:\"link\",attrs:{\"href\":\"https://docs.vyhub.net\"}},[_vm._v(\" \"+_vm._s(_vm.$t('_footer._help.docs'))+\" \")]),_c('a',{staticClass:\"link\",attrs:{\"href\":\"https://status.vyhub.net\"}},[_vm._v(\" \"+_vm._s(_vm.$t('_footer._help.status'))+\" \")])],1)]),_c('v-col',{attrs:{\"cols\":\"4\",\"sm\":\"3\",\"lg\":\"2\",\"xl\":\"1\"}},[_c('span',[_vm._v(_vm._s(_vm.$t('_footer.company')))]),_c('div',{staticClass:\"d-flex flex-column\"},[_c('a',{staticClass:\"link\",attrs:{\"href\":\"https://vyhub.net/partners\"}},[_vm._v(\" \"+_vm._s(_vm.$t('_footer._company.partners'))+\" \")]),_c('a',{staticClass:\"link\",attrs:{\"href\":\"https://vyhub.net/partners\"}},[_vm._v(\" \"+_vm._s(_vm.$t('_footer._company.affiliateProgram'))+\" \")])])]),_c('v-col',{attrs:{\"cols\":\"4\",\"sm\":\"3\",\"lg\":\"2\",\"xl\":\"1\"}},[_c('span',[_vm._v(_vm._s(_vm.$t('_footer.legal')))]),_c('div',{staticClass:\"d-flex flex-column\"},[_c('a',{staticClass:\"link\",attrs:{\"href\":\"https://vyhub.net/legal\"}},[_vm._v(_vm._s(_vm.$t('_footer._legal.about')))]),_c('a',{staticClass:\"link\",attrs:{\"href\":\"https://vyhub.net/legal\"}},[_vm._v(\" \"+_vm._s(_vm.$t('_footer._legal.termsOfService'))+\" \")]),_c('a',{staticClass:\"link\",attrs:{\"href\":\"https://vyhub.net/legal\"}},[_vm._v(\" \"+_vm._s(_vm.$t('_footer._legal.privacyPolicy'))+\" \")])])])],1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-footer padless color=\"dark\">\n    <v-container>\n      <v-row justify=\"center\" class=\"mt-3\">\n        <v-btn icon class=\"ml-1\" href=\"https://www.youtube.com/channel/UCjCxWjHbqoSZmp2l05LWAFg\"><v-icon color=\"white\" large>mdi-youtube</v-icon></v-btn>\n        <v-btn icon class=\"ml-1\" href=\"https://www.instagram.com/vyhub_net/\"><v-icon color=\"white\">mdi-instagram</v-icon></v-btn>\n        <v-btn icon class=\"ml-1\" href=\"https://discord.gg/QycQpd2AQP\"><v-icon color=\"white\">$discord</v-icon></v-btn>\n      </v-row>\n      <v-row justify=\"center\" no-gutters class=\"white--text\">\n        <v-col class=\"pa-5 text-center white--text\" cols=\"12\">\n          {{ new Date().getFullYear() }} —\n          <a href=\"https://matbyte.com\" class=\"font-weight-bold white--text text-decoration-none\">\n            Matbyte</a>\n        </v-col>\n        <v-col cols=\"12\">\n          <v-row justify=\"center\" dense no-gutters>\n            <v-col cols=\"12\" sm=\"10\" lg=\"8\" xl=\"4\">\n              <v-divider style=\"border-color: lightgrey\"/>\n            </v-col>\n          </v-row>\n        </v-col>\n        <!-- Divider -->\n        <v-col cols=\"12\" class=\"mt-5 mb-10 text-center\">\n          <v-row justify=\"center\" no-gutters>\n            <v-col cols=\"4\" sm=\"3\" lg=\"2\" xl=\"1\">\n              <span>{{ $t('_footer.about') }}</span>\n              <div class=\"d-flex flex-column\">\n                <a class=\"link\" href=\"https://vyhub.net/features\">\n                  {{ $t('_footer._about.features') }}\n                </a>\n                <a class=\"link\" href=\"https://vyhub.net/games\">\n                  {{ $t('_footer._about.supportedGames') }}\n                </a>\n                <a class=\"link\" href=\"https://vyhub.net/pricing\">\n                  {{ $t('_footer._about.pricing') }}\n                </a>\n                <a class=\"link\" href=\"https://vyhub.net/blog\">\n                  {{ $t('_footer._about.blog') }}\n                </a>\n                <a class=\"link\" href=\"https://demo.vyhub.net\">\n                  {{ $t('_footer._about.demo') }}\n                </a>\n              </div>\n            </v-col>\n            <v-col cols=\"4\" sm=\"3\" lg=\"2\" xl=\"1\">\n              <span>{{ $t('_footer.help') }}</span>\n              <div class=\"d-flex flex-column\">\n                <router-link class=\"link\" to=\"/support\">\n                  {{ $t('_footer._help.support') }}\n                </router-link>\n                <a class=\"link\" href=\"https://docs.vyhub.net\">\n                  {{ $t('_footer._help.docs') }}\n                </a>\n                <a class=\"link\" href=\"https://status.vyhub.net\">\n                  {{ $t('_footer._help.status') }}\n                </a>\n              </div>\n            </v-col>\n            <v-col cols=\"4\" sm=\"3\" lg=\"2\" xl=\"1\">\n              <span>{{ $t('_footer.company') }}</span>\n              <div class=\"d-flex flex-column\">\n                <a class=\"link\" href=\"https://vyhub.net/partners\">\n                  {{ $t('_footer._company.partners') }}\n                </a>\n                <a class=\"link\" href=\"https://vyhub.net/partners\">\n                  {{ $t('_footer._company.affiliateProgram') }}\n                </a>\n              </div>\n            </v-col>\n            <v-col cols=\"4\" sm=\"3\" lg=\"2\" xl=\"1\">\n              <span>{{ $t('_footer.legal') }}</span>\n              <div class=\"d-flex flex-column\">\n                <a class=\"link\" href=\"https://vyhub.net/legal\">{{ $t('_footer._legal.about') }}</a>\n                <a class=\"link\" href=\"https://vyhub.net/legal\">\n                  {{ $t('_footer._legal.termsOfService') }}\n                </a>\n                <a class=\"link\" href=\"https://vyhub.net/legal\">\n                  {{ $t('_footer._legal.privacyPolicy') }}\n                </a>\n              </div>\n            </v-col>\n          </v-row>\n        </v-col>\n      </v-row>\n    </v-container>\n  </v-footer>\n</template>\n\n<script>\nexport default {\n  name: 'Footer',\n};\n</script>\n\n<style scoped lang=\"sass\">\n.link\n  color: white\n  text-decoration: none\n  font-size: smaller\n  filter: brightness(85%)\n</style>\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!./TheFooter.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!./TheFooter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TheFooter.vue?vue&type=template&id=402716cc&scoped=true&\"\nimport script from \"./TheFooter.vue?vue&type=script&lang=js&\"\nexport * from \"./TheFooter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TheFooter.vue?vue&type=style&index=0&id=402716cc&scoped=true&lang=sass&\"\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  \"402716cc\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VFooter } from 'vuetify/lib/components/VFooter';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VBtn,VCol,VContainer,VDivider,VFooter,VIcon,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('notifications',{attrs:{\"position\":\"bottom left\",\"duration\":8000,\"width\":400,\"classes\":\"vue-notification vuetify-notification\"},scopedSlots:_vm._u([{key:\"body\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{class:'vue-notification vuetify-notification ' + item.type},[_c('div',{staticClass:\"body-2\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"1\",\"align-self\":\"center\"}},[(item.data && item.data.icon)?_c('v-icon',{staticClass:\"white--text\"},[_vm._v(\" \"+_vm._s(item.data.icon)+\" \")]):_c('div',[(item.type === 'error')?_c('v-icon',{staticClass:\"white--text\"},[_vm._v(\" mdi-alert-circle \")]):(item.type === 'warn')?_c('v-icon',{staticClass:\"white--text\"},[_vm._v(\" mdi-alert \")]):(item.type === 'success')?_c('v-icon',{staticClass:\"white--text\"},[_vm._v(\" mdi-check \")]):_c('v-icon',{staticClass:\"white--text\"},[_vm._v(\" mdi-information \")])],1)],1),_c('v-col',[_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(item.title)+\" \")]),_vm._v(\" \"+_vm._s(item.text)+\" \")])],1)],1)])]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <notifications position=\"bottom left\" :duration=\"8000\" :width=\"400\"\n                 classes=\"vue-notification vuetify-notification\">\n    <template slot=\"body\" slot-scope=\"{ item }\">\n      <div :class=\"'vue-notification vuetify-notification ' + item.type\">\n        <div class=\"body-2\">\n          <v-row>\n            <v-col cols=\"1\" align-self=\"center\">\n              <v-icon v-if=\"item.data && item.data.icon\" class=\"white--text\">\n                {{ item.data.icon }}\n              </v-icon>\n              <div v-else>\n                <v-icon v-if=\"item.type === 'error'\" class=\"white--text\">\n                  mdi-alert-circle\n                </v-icon>\n                <v-icon v-else-if=\"item.type === 'warn'\" class=\"white--text\">\n                  mdi-alert\n                </v-icon>\n                <v-icon v-else-if=\"item.type === 'success'\" class=\"white--text\">\n                  mdi-check\n                </v-icon>\n                <v-icon v-else class=\"white--text\">\n                  mdi-information\n                </v-icon>\n              </div>\n            </v-col>\n            <v-col>\n              <div class=\"font-weight-bold\">\n                {{ item.title }}\n              </div>\n              {{ item.text }}\n            </v-col>\n          </v-row>\n        </div>\n      </div>\n    </template>\n  </notifications>\n</template>\n\n<script>\nexport default {\n  name: 'Notification',\n};\n</script>\n\n<style scoped>\n\n</style>\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!./Notification.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!./Notification.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Notification.vue?vue&type=template&id=4f79811f&scoped=true&\"\nimport script from \"./Notification.vue?vue&type=script&lang=js&\"\nexport * from \"./Notification.vue?vue&type=script&lang=js&\"\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  \"4f79811f\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCol,VIcon,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app-bar',{attrs:{\"app\":\"\",\"color\":\"white\"}},[_c('div',{staticClass:\"d-flex align-center grow\",class:{ 'container' : _vm.$vuetify.breakpoint.mdAndUp},staticStyle:{\"width\":\"100%\"}},[(_vm.$vuetify.breakpoint.mdAndDown)?_c('div',[_c('BurgerMenu',{attrs:{\"nav-links\":_vm.allowedLinks,\"menu-links\":_vm.linksRight},on:{\"logout\":_vm.logout}})],1):_vm._e(),_c('a',{staticClass:\"d-flex align-center pr-5\",on:{\"click\":function($event){return _vm.$router.push('/')}}},[_c('v-img',{staticClass:\"shrink mr-2\",attrs:{\"alt\":\"VyHub Logo\",\"contain\":\"\",\"src\":require('@/assets/img/vyhub_logo_red_grey.png'),\"transition\":\"scale-transition\",\"width\":\"130\"}})],1),_c('div',{staticClass:\"d-flex align-center overflow-x-auto\"},_vm._l((_vm.allowedLinks),function(link,index){return _c('NavigationLink',{key:index,staticClass:\"hidden-sm-and-down ml-1\",attrs:{\"link\":link}})}),1),_c('v-spacer'),_c('div',{staticClass:\"hidden-sm-and-down\"},[(_vm.$store.getters.isLoggedIn)?_c('div',{staticClass:\"d-flex align-center\"},[_c('Credits',{}),_c('ShoppingCart'),_c('ProfileMenu',{attrs:{\"menu-links\":_vm.linksRight},on:{\"logout\":_vm.logout}})],1):_c('div',[_c('v-btn',{staticClass:\"mr-1 lighten-1 white--text\",attrs:{\"outlined\":\"\",\"to\":{ name: 'Login' }}},[_vm._v(\" \"+_vm._s(_vm.$t(\"login\"))+\" \")])],1)]),_c('div',[_c('v-menu',{attrs:{\"offset-y\":\"\",\"open-on-hover\":\"\",\"eager\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('v-img',{attrs:{\"src\":_vm.flagToDisplay,\"contain\":\"\",\"height\":\"24\",\"width\":\"24\"}})],1)]}}])},[_c('v-list',{attrs:{\"dense\":\"\"}},_vm._l((_vm.$i18n.availableLocales),function(locale){return _c('v-list-item',{key:locale,on:{\"click\":function($event){return _vm.changeLanguage(locale)}}},[_c('span',[_vm._v(_vm._s(_vm.getLocaleName(locale)))])])}),1)],1)],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-menu',{attrs:{\"open-on-hover\":\"\",\"offset-y\":\"\",\"eager\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({attrs:{\"depressed\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$store.getters.user.username)+\" \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-account-circle\")])],1)]}}])},[_c('v-list',[_vm._l((_vm.menuLinks),function(link,index){return _c('v-list-item',{key:index,attrs:{\"href\":(link.external ? link.link : null),\"to\":(!link.external ? link.link : null)}},[_c('v-list-item-title',[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(link.icon))]),_c('span',[_vm._v(_vm._s(link.title))])],1)],1)}),_c('v-list-item',{on:{\"click\":_vm.logout}},[_c('v-list-item-title',[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-logout-variant\")]),_c('span',[_vm._v(_vm._s(_vm.$t('logout')))])],1)],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <v-menu open-on-hover offset-y eager>\n    <template v-slot:activator=\"{ on, attrs }\">\n      <v-btn depressed v-bind=\"attrs\" v-on=\"on\">\n        {{ $store.getters.user.username }}\n        <v-icon right>mdi-account-circle</v-icon>\n      </v-btn>\n    </template>\n    <v-list>\n      <v-list-item\n        v-for=\"(link, index) in menuLinks\"\n        :key=\"index\"\n        :href=\"(link.external ? link.link : null)\"\n        :to=\"(!link.external ? link.link : null)\">\n        <v-list-item-title>\n          <v-icon left>{{ link.icon }}</v-icon>\n          <span>{{ link.title }}</span>\n        </v-list-item-title>\n      </v-list-item>\n      <v-list-item @click=\"logout\">\n        <v-list-item-title>\n          <v-icon left>mdi-logout-variant</v-icon>\n          <span>{{ $t('logout') }}</span>\n        </v-list-item-title>\n      </v-list-item>\n    </v-list>\n  </v-menu>\n</template>\n\n<script>\nimport AuthService from '../../services/AuthService';\n\nexport default {\n  name: 'ProfileMenu.vue',\n  props: {\n    menuLinks: Array,\n  },\n  data() {\n    return {\n    };\n  },\n  methods: {\n    logout() {\n      AuthService.logout();\n\n      if (this.$route.name === 'newInstance') {\n        this.$router.push({ name: 'newInstance' });\n      } else if (this.$route.name === 'OAuth Authorize') {\n        // pass\n      } else {\n        this.$router.push('/');\n      }\n    },\n    emitLogout() {\n      this.$emit('logout');\n    },\n  },\n  computed: {\n  },\n};\n\n</script>\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!./ProfileMenu.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!./ProfileMenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProfileMenu.vue?vue&type=template&id=e306a504&\"\nimport script from \"./ProfileMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfileMenu.vue?vue&type=script&lang=js&\"\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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VIcon,VList,VListItem,VListItemTitle,VMenu})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-app-bar-nav-icon',_vm._g(_vm._b({},'v-app-bar-nav-icon',attrs,false),on))]}}])},[_c('v-list',{attrs:{\"dense\":\"\"}},[_vm._l((_vm.navLinks),function(navLink,index){return _c('div',{key:index},[((navLink.tabs || []).length > 0)?_c('v-list-group',{on:{\"click\":function($event){$event.stopPropagation();}},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(navLink.icon))]),_c('v-list-item-title',[_vm._v(_vm._s(navLink.title))])]},proxy:true}],null,true)},_vm._l((navLink.tabs),function(tab,index){return _c('v-list-item',{key:index,attrs:{\"to\":tab.link,\"link\":\"\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(tab.icon))]),_c('v-list-item-title',[_vm._v(_vm._s(tab.title))])],1)}),1):_vm._e(),((navLink.tabs || []).length == 0)?_c('v-list-item',{attrs:{\"href\":(navLink.external ? navLink.link : null),\"to\":(navLink.external ? null : navLink.link)}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(navLink.icon))]),_c('v-list-item-title',[_vm._v(_vm._s(navLink.title))])],1):_vm._e()],1)}),_c('v-divider'),(_vm.$store.getters.isLoggedIn)?_c('div',[_c('ShoppingCart',{attrs:{\"list-item\":true}}),_c('Credits',{attrs:{\"list-item\":true}})],1):_vm._e(),_c('v-divider'),(_vm.$store.getters.isLoggedIn)?_c('div',[_vm._l((_vm.menuLinks),function(menuLink,index){return _c('v-list-item',{key:index,attrs:{\"href\":(menuLink.external ? menuLink.link : null),\"to\":(menuLink.external ? null : menuLink.link)}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(menuLink.icon))]),_c('v-list-item-title',[_vm._v(_vm._s(menuLink.title))])],1)}),_c('v-list-item',{on:{\"click\":_vm.emitLogout}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-logout-variant\")]),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('logout')))])],1)],2):_c('div',[_c('v-list-item',{attrs:{\"to\":{ name: 'Login' }}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-login-variant\")]),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('login')))])],1)],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.listItem)?_c('v-btn',{attrs:{\"text\":\"\",\"icon\":\"\",\"to\":{ name: 'ShopCart' }}},[(_vm.$store.getters.cartPacketCount > 0)?_c('v-badge',{attrs:{\"bottom\":\"\",\"overlap\":\"\",\"color\":\"error\",\"content\":_vm.$store.getters.cartPacketCount}},[_c('v-icon',[_vm._v(\"mdi-cart-variant\")])],1):_c('v-icon',[_vm._v(\"mdi-cart-variant\")])],1):_c('v-list-item',{attrs:{\"to\":{ name: 'ShopCart' }}},[(_vm.$store.getters.cartPacketCount > 0 && !_vm.listItem)?_c('v-badge',{attrs:{\"bottom\":\"\",\"overlap\":\"\",\"color\":\"error\",\"content\":_vm.$store.getters.cartPacketCount}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-cart-variant\")])],1):_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-cart-variant\")]),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('_shop.labels.cart'))+\" \"),(_vm.listItem && _vm.$store.getters.cartPacketCount > 0)?_c('span',[_vm._v(\" (\"+_vm._s(_vm.$store.getters.cartPacketCount)+\") \")]):_vm._e()])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <v-btn text\n           icon\n           :to=\"{ name: 'ShopCart' }\"\n           v-if=\"!listItem\">\n      <v-badge\n        bottom\n        overlap\n        color=\"error\"\n        :content=\"$store.getters.cartPacketCount\"\n        v-if=\"$store.getters.cartPacketCount > 0\"\n      >\n        <v-icon>mdi-cart-variant</v-icon>\n      </v-badge>\n      <v-icon v-else>mdi-cart-variant</v-icon>\n    </v-btn>\n    <v-list-item v-else :to=\"{ name: 'ShopCart' }\">\n      <v-badge\n        bottom\n        overlap\n        color=\"error\"\n        :content=\"$store.getters.cartPacketCount\"\n        v-if=\"$store.getters.cartPacketCount > 0 && !listItem\"\n      >\n        <v-icon left>mdi-cart-variant</v-icon>\n      </v-badge>\n      <v-icon left v-else>mdi-cart-variant</v-icon>\n      <v-list-item-title>\n        {{ $t('_shop.labels.cart') }}\n        <span v-if=\"listItem && $store.getters.cartPacketCount > 0\">\n          ({{ $store.getters.cartPacketCount }})\n        </span>\n      </v-list-item-title>\n    </v-list-item>\n  </div>\n</template>\n\n<script>\nimport ShopService from '@/services/ShopService';\n\nexport default {\n  name: 'ShoppingCart',\n  props: {\n    listItem: {\n      type: Boolean,\n      default: false,\n    },\n  },\n  mounted() {\n    this.fetchData();\n  },\n  methods: {\n    fetchData() {\n      ShopService.refreshCartPacketCount();\n    },\n  },\n};\n</script>\n\n<style scoped>\n\n</style>\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!./ShoppingCart.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!./ShoppingCart.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ShoppingCart.vue?vue&type=template&id=1df89366&scoped=true&\"\nimport script from \"./ShoppingCart.vue?vue&type=script&lang=js&\"\nexport * from \"./ShoppingCart.vue?vue&type=script&lang=js&\"\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  \"1df89366\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBadge } from 'vuetify/lib/components/VBadge';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBadge,VBtn,VIcon,VListItem,VListItemTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.creditAccount)?_c('div',[_c('router-link',{staticStyle:{\"text-decoration\":\"none\",\"color\":\"inherit\"},attrs:{\"to\":{name: 'UserAccount', params: {accountId: _vm.creditAccount.id}}}},[(!_vm.listItem)?_c('v-btn',{attrs:{\"small\":\"\",\"outlined\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.utils.formatDecimal(_vm.creditAccount.balance))+\" \"),(_vm.creditAccount.currency != null)?_c('span',[_vm._v(\" \"+_vm._s(_vm.creditAccount.currency.symbol))]):_vm._e(),(_vm.creditAccount.currency == null)?_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"mdi-circle-multiple\")]):_vm._e()],1):_c('v-list-item',[(_vm.creditAccount.currency == null)?_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" mdi-circle-multiple \")]):_vm._e(),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.utils.formatDecimal(_vm.creditAccount.balance))+\" \"),(_vm.creditAccount.currency != null)?_c('span',[_vm._v(_vm._s(_vm.creditAccount.currency.symbol))]):_vm._e()])],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div v-if=\"creditAccount\">\n    <router-link :to=\"{name: 'UserAccount', params: {accountId: creditAccount.id}}\"\n                 style=\"text-decoration: none; color: inherit;\">\n      <v-btn small outlined v-if=\"!listItem\">\n        {{ utils.formatDecimal(creditAccount.balance) }}\n        <span v-if=\"creditAccount.currency != null\">&nbsp;{{ creditAccount.currency.symbol }}</span>\n        <v-icon right v-if=\"creditAccount.currency == null\">mdi-circle-multiple</v-icon>\n      </v-btn>\n      <v-list-item v-else>\n        <v-icon left v-if=\"creditAccount.currency == null\">\n          mdi-circle-multiple\n        </v-icon>\n        <v-list-item-title>\n          {{ utils.formatDecimal(creditAccount.balance) }}\n          <span v-if=\"creditAccount.currency != null\">{{ creditAccount.currency.symbol }}</span>\n        </v-list-item-title>\n      </v-list-item>\n    </router-link>\n  </div>\n</template>\n\n<script>\nimport ShopService from '@/services/ShopService';\n\nexport default {\n  name: 'Credits',\n  props: {\n    listItem: {\n      type: Boolean,\n      default: false,\n    },\n  },\n  computed: {\n    creditAccount() {\n      return this.$store.getters.creditAccount;\n    },\n  },\n  mounted() {\n    this.fetchData();\n  },\n  methods: {\n    fetchData() {\n      ShopService.refreshCreditAccount();\n    },\n  },\n};\n</script>\n\n<style scoped>\n\n</style>\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!./Credits.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!./Credits.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Credits.vue?vue&type=template&id=d6a0c0bc&scoped=true&\"\nimport script from \"./Credits.vue?vue&type=script&lang=js&\"\nexport * from \"./Credits.vue?vue&type=script&lang=js&\"\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  \"d6a0c0bc\",\n  null\n  \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\ninstallComponents(component, {VBtn,VIcon,VListItem,VListItemTitle})\n","<template>\n  <v-menu offset-y>\n    <template v-slot:activator=\"{ on, attrs }\">\n      <v-app-bar-nav-icon v-on=\"on\" v-bind=\"attrs\" class=\"\"/>\n    </template>\n    <v-list dense>\n      <!-- render navlinks -->\n      <div v-for=\"(navLink, index) in navLinks\" :key=\"index\">\n        <!-- if tabs are existent -->\n        <v-list-group\n          v-if=\"(navLink.tabs || []).length > 0\" v-on:click.stop=\"\">\n          <template v-slot:activator>\n              <v-icon left>{{ navLink.icon }}</v-icon>\n              <v-list-item-title>{{ navLink.title }}</v-list-item-title>\n          </template>\n          <v-list-item\n            v-for=\"(tab, index) in navLink.tabs\" :key=\"index\"\n            :to=\"tab.link\"\n            link>\n            <v-icon left>{{ tab.icon }}</v-icon>\n            <v-list-item-title>{{ tab.title }}</v-list-item-title>\n          </v-list-item>\n        </v-list-group>\n        <!-- if no tabs are existent -->\n        <v-list-item v-if=\"(navLink.tabs || []).length == 0\"\n                     :href=\"(navLink.external ? navLink.link : null)\"\n                     :to=\"(navLink.external ? null : navLink.link)\">\n          <v-icon left>{{ navLink.icon }}</v-icon>\n          <v-list-item-title>{{ navLink.title }}</v-list-item-title>\n        </v-list-item>\n      </div>\n      <v-divider />\n      <div v-if=\"$store.getters.isLoggedIn\">\n        <ShoppingCart :list-item=\"true\"/>\n        <Credits :list-item=\"true\" />\n      </div>\n      <v-divider />\n      <!-- render menuTabs + Logout-->\n      <div v-if=\"$store.getters.isLoggedIn\">\n        <v-list-item v-for=\"(menuLink, index) in menuLinks\"\n                     :key=\"index\"\n                     :href=\"(menuLink.external ? menuLink.link : null)\"\n                     :to=\"(menuLink.external ? null : menuLink.link)\"\n                      >\n          <v-icon left>{{ menuLink.icon }}</v-icon>\n          <v-list-item-title>{{ menuLink.title }}</v-list-item-title>\n        </v-list-item>\n        <v-list-item @click=\"emitLogout\">\n          <v-icon left>mdi-logout-variant</v-icon>\n          <v-list-item-title>{{ $t('logout') }}</v-list-item-title>\n        </v-list-item>\n      </div>\n      <div v-else>\n        <v-list-item :to=\"{ name: 'Login' }\">\n          <v-icon left>mdi-login-variant</v-icon>\n          <v-list-item-title>{{ $t('login') }}</v-list-item-title>\n        </v-list-item>\n      </div>\n    </v-list>\n  </v-menu>\n</template>\n\n<script>\nimport ShoppingCart from '@/components/HeaderComponents/ShoppingCart.vue';\nimport Credits from '@/components/HeaderComponents/Credits.vue';\n\nexport default {\n  name: 'BurgerMenu.vue',\n  components: { Credits, ShoppingCart },\n  props: {\n    navLinks: Array,\n    menuLinks: Array,\n  },\n  data() {\n    return {\n    };\n  },\n  methods: {\n    emitLogout() {\n      this.$emit('logout');\n    },\n  },\n};\n</script>\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!./BurgerMenu.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!./BurgerMenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BurgerMenu.vue?vue&type=template&id=7e7de27e&\"\nimport script from \"./BurgerMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./BurgerMenu.vue?vue&type=script&lang=js&\"\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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAppBarNavIcon } from 'vuetify/lib/components/VAppBar';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListGroup } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VAppBarNavIcon,VDivider,VIcon,VList,VListGroup,VListItem,VListItemTitle,VMenu})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[((_vm.allowedTabs || []).length > 0)?_c('v-menu',{attrs:{\"open-on-hover\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-btn',_vm._g(_vm._b({class:{ 'active-btn-light' : _vm.listActive },attrs:{\"text\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(_vm.link.icon))]),_c('span',[_vm._v(_vm._s(_vm.link.title))]),_c('v-icon',[_vm._v(\"mdi-menu-down\")])],1)]}}],null,false,2515150495)},[_c('v-list',{staticClass:\"text-uppercase\",attrs:{\"dense\":\"\"}},_vm._l((_vm.allowedTabs || []),function(tab,index){return _c('v-list-item',{key:index,attrs:{\"to\":tab.link}},[_c('v-list-item-title',[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(tab.icon))]),_c('span',[_vm._v(_vm._s(tab.title))])],1)],1)}),1)],1):_vm._e(),((_vm.link.tabs || []).length === 0)?_c('v-btn',{class:{ 'active-btn-light' : _vm.active },attrs:{\"text\":\"\",\"target\":(_vm.link.external ? '_blank' : ''),\"href\":(_vm.link.external ? _vm.link.link : null),\"to\":(_vm.link.external ? null : _vm.link.link)}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(_vm.link.icon))]),_c('span',[_vm._v(_vm._s(_vm.link.title))])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <!-- Menu when Tabs are existent -->\n    <v-menu\n      v-if=\"(allowedTabs || []).length > 0\"\n      open-on-hover\n      offset-y>\n      <template v-slot:activator=\"{ on, attrs }\">\n        <v-btn text v-bind=\"attrs\" v-on=\"on\"\n               :class=\"{ 'active-btn-light' : listActive }\">\n          <v-icon left>{{ link.icon }}</v-icon>\n          <span>{{ link.title }}</span>\n          <v-icon>mdi-menu-down</v-icon>\n        </v-btn>\n      </template>\n      <v-list dense class=\"text-uppercase\">\n        <v-list-item v-for=\"(tab, index) in allowedTabs || []\"\n                     :key=\"index\"\n                     :to=\"tab.link\">\n          <v-list-item-title>\n            <v-icon left>{{ tab.icon}}</v-icon>\n            <span>{{ tab.title }}</span>\n          </v-list-item-title>\n        </v-list-item>\n      </v-list>\n    </v-menu>\n    <!-- simple button when no tabs are existent -->\n    <v-btn\n      text :class=\"{ 'active-btn-light' : active }\"\n      v-if=\"(link.tabs || []).length === 0\"\n      :target=\"(link.external ? '_blank' : '')\"\n      :href=\"(link.external ? link.link : null)\"\n      :to=\"(link.external ? null : link.link)\">\n      <v-icon left>{{ link.icon }}</v-icon>\n      <span>{{ link.title }}</span>\n    </v-btn>\n  </div>\n</template>\n\n<script>\nexport default {\n  name: 'NavigationLinks.vue',\n  props: {\n    link: Object,\n  },\n  computed: {\n    allowedTabs() {\n      return this.link.tabs.filter((t) => !t.reqProp || this.$checkProp(t.reqProp) === true);\n    },\n    listActive() {\n      if (this.allowedTabs.length === 0) {\n        return false;\n      }\n      const { path } = this.$route;\n      return this.allowedTabs.some((t) => path.includes(t.link));\n    },\n    active() {\n      const { path } = this.$route;\n      if (this.link.link === '/') {\n        return false;\n      }\n      return path.includes(this.link.link);\n    },\n  },\n  methods: {\n  },\n};\n</script>\n\n<style>\n.active-btn-light {\n  background-color: var(--v-primary-lighten1);\n}\n\n.active-btn-light::before {\n  opacity: 0 !important;\n}\n\n.active-btn-light span {\n  color: #FFFFFF !important;\n}\n</style>\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!./NavigationLink.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!./NavigationLink.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NavigationLink.vue?vue&type=template&id=2f71a848&\"\nimport script from \"./NavigationLink.vue?vue&type=script&lang=js&\"\nexport * from \"./NavigationLink.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NavigationLink.vue?vue&type=style&index=0&lang=css&\"\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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\ninstallComponents(component, {VBtn,VIcon,VList,VListItem,VListItemTitle,VMenu})\n","<template>\n  <v-app-bar app color=\"white\">\n    <div class=\"d-flex align-center grow\"\n         :class=\"{ 'container' : $vuetify.breakpoint.mdAndUp}\" style=\"width: 100%\">\n      <!-- burger menu on the left-->\n      <div v-if=\"$vuetify.breakpoint.mdAndDown\">\n        <BurgerMenu\n          :nav-links=\"allowedLinks\"\n          :menu-links=\"linksRight\"\n          @logout=\"logout\"/>\n      </div>\n\n      <!-- Logo -->\n      <a class=\"d-flex align-center pr-5\" @click=\"$router.push('/')\">\n        <v-img alt=\"VyHub Logo\" class=\"shrink mr-2\" contain\n               :src=\"require('@/assets/img/vyhub_logo_red_grey.png')\"\n               transition=\"scale-transition\" width=\"130\"/>\n      </a>\n\n      <!-- navigation links-->\n      <div class=\"d-flex align-center overflow-x-auto\">\n        <NavigationLink\n          class=\"hidden-sm-and-down ml-1\"\n          :link=\"link\"\n          v-for=\"(link, index) in allowedLinks\"\n          :key=\"index\">\n        </NavigationLink>\n      </div>\n\n      <v-spacer />\n      <!-- profile icon with dropdown or login-->\n      <div class=\"hidden-sm-and-down\">\n        <div v-if=\"$store.getters.isLoggedIn\" class=\"d-flex align-center\">\n          <Credits class=\"\" />\n          <ShoppingCart />\n          <ProfileMenu\n            :menu-links=\"linksRight\"\n            @logout=\"logout\"/>\n        </div>\n        <div v-else>\n          <v-btn outlined class=\"mr-1 lighten-1 white--text\"\n                 :to=\"{ name: 'Login' }\">\n            {{ $t(\"login\") }}\n          </v-btn>\n        </div>\n      </div>\n      <!-- change language -->\n      <div>\n        <v-menu offset-y open-on-hover eager>\n          <template v-slot:activator=\"{ on, attrs }\">\n            <v-btn icon v-on=\"on\" v-bind=\"attrs\">\n              <v-img :src=\"flagToDisplay\"\n                     contain height=\"24\" width=\"24\"/>\n            </v-btn>\n          </template>\n          <v-list dense>\n            <v-list-item @click=\"changeLanguage(locale)\"\n                         v-for=\"locale in $i18n.availableLocales\" :key=\"locale\">\n              <span>{{ getLocaleName(locale) }}</span>\n            </v-list-item>\n          </v-list>\n        </v-menu>\n      </div>\n    </div>\n  </v-app-bar>\n</template>\n\n<script>\nimport ProfileMenu from '@/components/HeaderComponents/ProfileMenu.vue';\nimport BurgerMenu from '@/components/HeaderComponents/BurgerMenu.vue';\nimport NavigationLink from '@/components/HeaderComponents/NavigationLink.vue';\nimport AuthService from '@/services/AuthService';\nimport ShoppingCart from '@/components/HeaderComponents/ShoppingCart.vue';\nimport Credits from '@/components/HeaderComponents/Credits.vue';\nimport ISO6391 from 'iso-639-1-plus';\n\nexport default {\n  components: {\n    Credits,\n    ShoppingCart,\n    ProfileMenu,\n    BurgerMenu,\n    NavigationLink,\n  },\n  data() {\n    return {\n      linksRight: [\n        {\n          title: this.$t('_header.profile'), icon: 'mdi-account-box', link: '/user', external: false,\n        },\n        {\n          title: this.$t('_header.purchases'), icon: 'mdi-credit-card-clock', link: '/shop/purchases', external: false,\n        },\n      ],\n      links: [\n        // {\n        //  title: this.$t('_header.start'), icon: 'mdi-home', link: '/', tabs: [], external: false,\n        // },\n        {\n          title: this.$t('_header.dashboard'), icon: 'mdi-view-dashboard', link: '/dashboard', tabs: [], external: false,\n        },\n        {\n          title: this.$t('_header.balance'), icon: 'mdi-wallet', link: '/account', tabs: [], external: false,\n        },\n        {\n          title: this.$t('_header.affiliate'), icon: 'mdi-hand-coin', link: '/affiliate', tabs: [], external: false,\n        },\n        {\n          title: this.$t('_header.support'), icon: 'mdi-help-circle', link: '/support', tabs: [], external: false,\n        },\n        {\n          title: this.$t('_header.admin'),\n          icon: 'mdi-shield',\n          link: '#',\n          reqProp: 'admin_menu',\n          tabs: [\n            {\n              title: 'Users',\n              icon: 'mdi-account-group',\n              link: '/admin/users',\n              reqProp: 'user_show',\n            },\n            {\n              title: 'Instances',\n              icon: 'mdi-server',\n              link: '/admin/instances',\n              reqProp: 'instance_show',\n            },\n            {\n              title: 'Statistics',\n              icon: 'mdi-chart-bar',\n              link: '/admin/statistics',\n              reqProp: 'statistic_show',\n            },\n            {\n              title: 'Shop',\n              icon: 'mdi-sack',\n              link: '/admin/shop',\n              reqProp: 'purchase_show',\n            },\n            {\n              title: 'Versions',\n              icon: 'mdi-source-branch',\n              link: '/admin/versions',\n              reqProp: 'version_show',\n            },\n            {\n              title: 'Log',\n              icon: 'mdi-format-list-bulleted',\n              link: '/admin/log',\n              reqProp: 'log_show',\n            },\n            {\n              title: 'Payouts',\n              icon: 'mdi-cash-fast',\n              link: '/admin/payouts',\n              reqProp: 'payout_show',\n            },\n          ],\n        },\n      ],\n    };\n  },\n  methods: {\n    logout() {\n      AuthService.logout();\n      this.$router.push('/');\n    },\n    getLocaleName(locale) {\n      return ISO6391.getNativeName(locale.replace('_', '-')).replace(/^./, ISO6391.getNativeName(locale.replace('_', '-'))[0].toUpperCase());\n    },\n    changeLanguage(locale) {\n      this.$i18n.locale = locale;\n      localStorage.setItem('locale', locale);\n    },\n  },\n  computed: {\n    allowedLinks() {\n      return this.links\n        .filter((l) => (!l.reqProp || this.$checkProp(l.reqProp) === true));\n    },\n    flagToDisplay() {\n      const locale = this.$i18n.locale.slice(0, 2);\n      if (['de', 'en', 'fr', 'nl', 'pt', 'uk'].includes(locale.toLowerCase())) {\n        // eslint-disable-next-line global-require,import/no-dynamic-require\n        return require(`@/assets/img/flags/${locale.toLowerCase()}.png`);\n      }\n      // eslint-disable-next-line global-require\n      return require('@/assets/img/flags/en.png');\n    },\n  },\n};\n</script>\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!./TheHeader.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!./TheHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TheHeader.vue?vue&type=template&id=4f334066&\"\nimport script from \"./TheHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./TheHeader.vue?vue&type=script&lang=js&\"\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\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAppBar,VBtn,VImg,VList,VListItem,VMenu,VSpacer})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-app-bar',{staticClass:\"primary darken-3\",attrs:{\"app\":\"\",\"dark\":\"\",\"fixed\":\"\",\"flat\":\"\",\"extension-height\":\"48\"},scopedSlots:_vm._u([(_vm.$slots['default'] || _vm.$scopedSlots['default'])?{key:\"extension\",fn:function(){return [_vm._t(\"default\")]},proxy:true}:null],null,true)},[(_vm.$vuetify.breakpoint.smAndDown)?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c('v-app-bar-nav-icon',_vm._g(_vm._b({},'v-app-bar-nav-icon',attrs,false),on))]}}],null,false,1620504925)},[_c('v-list',{attrs:{\"dense\":\"\"}},[_vm._l((_vm.links),function(link,index){return _c('div',{key:index},[_c('v-list-item',{attrs:{\"to\":!link.external ? link.link : null,\"href\":link.external ? link.link : null}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(link.icon))]),_c('v-list-item-title',[_vm._v(_vm._s(link.title))])],1)],1)}),_c('v-divider'),(_vm.$store.getters.isLoggedIn)?_c('div',[_c('v-list-item',{attrs:{\"to\":\"/dashboard\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-view-dashboard\")]),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('_header.dashboard')))])],1)],1):_c('div',[_c('v-list-item',{attrs:{\"to\":{ name: 'Login' }}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mdi-login-variant\")]),_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('login')))])],1)],1)],2)],1):_vm._e(),_c('div',{staticClass:\"d-flex align-center pr-5\",on:{\"click\":function($event){return _vm.$router.push('/')}}},[_c('v-img',{staticClass:\"shrink mr-2\",attrs:{\"alt\":\"VyHub Logo\",\"contain\":\"\",\"src\":require('@/assets/img/vyhub_logo_v2_white.svg'),\"transition\":\"scale-transition\",\"width\":\"130\"}})],1),(_vm.$vuetify.breakpoint.mdAndUp)?_c('div',_vm._l((_vm.links),function(link){return _c('v-btn',{key:link.title,staticClass:\"primary darken-3\",attrs:{\"depressed\":\"\",\"dark\":\"\",\"to\":!link.external ? link.link : null,\"href\":link.external ? link.link : null}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(link.icon))]),_c('span',[_vm._v(_vm._s(link.title))])],1)}),1):_vm._e(),_c('v-spacer'),_c('div',[(_vm.$store.getters.isLoggedIn)?_c('div',[_c('v-btn',{staticClass:\"mr-1 lighten-1 white--text\",attrs:{\"outlined\":\"\",\"to\":\"/dashboard\",\"small\":_vm.$vuetify.breakpoint.smAndDown}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('_header.dashboard'))+\" \")]),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\" mdi-arrow-right \")])],1)],1):_c('div',[_c('v-btn',{staticClass:\"mr-1 lighten-1 white--text\",attrs:{\"outlined\":\"\",\"to\":{ name: 'Login' }}},[_vm._v(\" \"+_vm._s(_vm.$t('login'))+\" \")])],1)])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <!-- Home Header -->\n    <v-app-bar app class=\"primary darken-3\" dark fixed flat extension-height=\"48\">\n      <!-- Burger Menu Left Side -->\n      <v-menu offset-y v-if=\"$vuetify.breakpoint.smAndDown\">\n        <template v-slot:activator=\"{ on, attrs }\">\n          <v-app-bar-nav-icon v-on=\"on\" v-bind=\"attrs\"></v-app-bar-nav-icon>\n        </template>\n        <v-list dense>\n          <!-- render navlinks -->\n          <div v-for=\"(link, index) in links\" :key=\"index\">\n            <!-- if no tabs are existent -->\n            <v-list-item :to=\"!link.external ? link.link : null\"\n                         :href=\"link.external ? link.link : null\">\n              <v-icon left>{{ link.icon }}</v-icon>\n              <v-list-item-title>{{ link.title }}</v-list-item-title>\n            </v-list-item>\n          </div>\n          <!-- render menuTabs -->\n          <v-divider/>\n          <div v-if=\"$store.getters.isLoggedIn\">\n            <v-list-item to=\"/dashboard\">\n              <v-icon left>mdi-view-dashboard</v-icon>\n              <v-list-item-title>{{ $t('_header.dashboard') }}</v-list-item-title>\n            </v-list-item>\n          </div>\n          <div v-else>\n            <v-list-item :to=\"{ name: 'Login' }\">\n              <v-icon left>mdi-login-variant</v-icon>\n              <v-list-item-title>{{ $t('login') }}</v-list-item-title>\n            </v-list-item>\n          </div>\n        </v-list>\n      </v-menu>\n      <!-- Logo -->\n      <div class=\"d-flex align-center pr-5\" @click=\"$router.push('/')\">\n        <v-img alt=\"VyHub Logo\" class=\"shrink mr-2\" contain\n               :src=\"require('@/assets/img/vyhub_logo_v2_white.svg')\"\n               transition=\"scale-transition\" width=\"130\"/>\n      </div>\n      <div v-if=\"$vuetify.breakpoint.mdAndUp\">\n        <v-btn class=\"primary darken-3\" depressed dark v-for=\"link in links\"\n               :key=\"link.title\"\n               :to=\"!link.external ? link.link : null\" :href=\"link.external ? link.link : null\">\n          <v-icon left>{{ link.icon }}</v-icon>\n          <span>{{ link.title }}</span>\n        </v-btn>\n      </div>\n      <v-spacer/>\n      <!-- profile icon with dropdown or login-->\n      <div>\n        <div v-if=\"$store.getters.isLoggedIn\">\n          <v-btn outlined class=\"mr-1 lighten-1 white--text\" to=\"/dashboard\"\n                 :small=\"$vuetify.breakpoint.smAndDown\">\n              <span>\n                {{ $t('_header.dashboard') }}\n              </span>\n            <v-icon right>\n              mdi-arrow-right\n            </v-icon>\n          </v-btn>\n        </div>\n        <div v-else>\n          <v-btn outlined class=\"mr-1 lighten-1 white--text\"\n                 :to=\"{ name: 'Login' }\">\n            {{ $t('login') }}\n          </v-btn>\n        </div>\n      </div>\n      <template v-slot:extension v-if=\"$slots['default'] || $scopedSlots['default']\">\n        <slot></slot>\n      </template>\n    </v-app-bar>\n  </div>\n</template>\n\n<script>\nimport i18n from '@/plugins/i18n';\n\nexport default {\n  name: 'TheLandingPageHeader',\n  methods: {\n    i18n() {\n      return i18n;\n    },\n    changeLanguage(link) {\n      document.documentElement.setAttribute('lang', link.langIndex);\n    },\n  },\n  computed: {\n    links() {\n      return [\n        {\n          title: this.$t('_header.start'),\n          link: '/',\n          icon: 'mdi-home',\n          external: false,\n        },\n        {\n          title: this.$t('_header.features'),\n          link: '/features',\n          icon: 'mdi-star',\n          external: false,\n        },\n        {\n          title: this.$t('_header.games'),\n          link: '/games',\n          icon: 'mdi-controller-classic',\n          external: false,\n        },\n        {\n          title: this.$t('_header.pricing'),\n          link: '/pricing',\n          icon: 'mdi-currency-usd',\n          external: false,\n        },\n        {\n          title: this.$t('_header.partners'),\n          link: '/partners',\n          icon: 'mdi-hand-coin',\n          external: false,\n        },\n        {\n          title: this.$t('_header.blog'),\n          link: '/blog',\n          icon: 'mdi-newspaper-variant',\n          external: false,\n        },\n        {\n          title: this.$t('_header.demo'),\n          link: 'https://demo.vyhub.net',\n          icon: 'mdi-play-box-multiple',\n          external: true,\n        },\n      ];\n    },\n  },\n};\n</script>\n\n<style lang=\"sass\">\n$Color1: #b71c1c\n\ndiv.v-toolbar__extension\n  background-color: $Color1\n  filter: brightness(80%)\n</style>\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!./TheLandingPageHeader.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!./TheLandingPageHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TheLandingPageHeader.vue?vue&type=template&id=74b81751&\"\nimport script from \"./TheLandingPageHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./TheLandingPageHeader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TheLandingPageHeader.vue?vue&type=style&index=0&lang=sass&\"\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\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VAppBarNavIcon } from 'vuetify/lib/components/VAppBar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDivider } from 'vuetify/lib/components/VDivider';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VList } from 'vuetify/lib/components/VList';\nimport { VListItem } from 'vuetify/lib/components/VList';\nimport { VListItemTitle } from 'vuetify/lib/components/VList';\nimport { VMenu } from 'vuetify/lib/components/VMenu';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAppBar,VAppBarNavIcon,VBtn,VDivider,VIcon,VImg,VList,VListItem,VListItemTitle,VMenu,VSpacer})\n","<template>\n  <v-app>\n    <Notification/>\n\n    <v-main style=\"background-color: #eceff1\">\n      <router-view v-if=\"$route.meta.cleanPage\"></router-view>\n      <div v-else-if=\"$route.meta.landingPage\">\n        <TheLandingPageHeader/>\n        <v-container>\n          <router-view></router-view>\n        </v-container>\n      </div>\n      <div v-else>\n        <TheHeader/>\n        <v-container>\n          <router-view></router-view>\n        </v-container>\n      </div>\n    </v-main>\n    <!-- Cookie Banner -->\n    <!-- <CookieBanner/> -->\n    <!-- End Cookie Banner -->\n    <TheFooter v-if=\"!$route.meta.hideFooter\"/>\n    <script type=\"application/ld+json\">\n      {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Organization\",\n        \"url\": \"https://www.vyhub.net\",\n        \"logo\": \"https://www.vyhub.net/favicon.svg\"\n      }\n    </script>\n\n  </v-app>\n</template>\n\n<script>\nimport Vue from 'vue';\nimport VueMeta from 'vue-meta';\nimport VueGTag from 'vue-gtag';\nimport Notifications from 'vue-notification';\nimport { VueReCaptcha } from 'vue-recaptcha-v3';\nimport AuthService from '@/services/AuthService';\nimport TheFooter from '@/components/TheFooter.vue';\nimport router from '@/router/index';\nimport 'animate.css';\nimport '@/assets/css/cookieBar.css';\nimport AccessControlService from '@/services/AccessControlService';\nimport Notification from '@/components/Notification.vue';\nimport UtilService from '@/services/UtilService';\nimport TheHeader from '@/components/TheHeader.vue';\nimport openapi from '@/api/openapi';\nimport TheLandingPageHeader from '@/components/TheLandingPageHeader.vue';\nimport config from './config';\n\nconst siteKey = config.ggl_recaptcha_token;\nconst analyticsKey = config.ggl_analytics_token;\n\nVue.mixin(AccessControlService);\nVue.mixin(UtilService);\n\n// Vue.use(VueTypedJS);\nVue.use(VueReCaptcha, {\n  siteKey,\n  loaderOptions: {\n    autoHideBadge: true,\n  },\n});\nVue.use(VueMeta);\nVue.use(VueGTag, {\n  config: { id: analyticsKey },\n  enabled: false,\n}, router);\nVue.use(Notifications);\n\nexport default Vue.extend({\n  name: 'App',\n  data: () => ({}),\n  components: {\n    TheLandingPageHeader,\n    Notification,\n    TheFooter,\n    TheHeader,\n  },\n  beforeMount() {\n    AuthService.setAuthTokens();\n    AuthService.refreshUser(true);\n  },\n  created() {\n    this.setApiInterceptor();\n  },\n  methods: {\n    async setApiInterceptor() {\n      const last_errors = {};\n      const client = await openapi;\n      client.interceptors.response.use((response) => response,\n        (err) => {\n          // Do not display error when same error was displayed within the last 3 seconds\n          if (err.response.status in last_errors\n            && Date.now() - last_errors[err.response.status] < 3000) {\n            last_errors[err.response.status] = Date.now();\n            return Promise.reject(err);\n          }\n          last_errors[err.response.status] = Date.now();\n\n          const notificationObject = this.utils.formatErrorMessage(err);\n          this.$notify({\n            title: notificationObject.title,\n            text: notificationObject.text,\n            type: notificationObject.type,\n          });\n          return Promise.reject(err);\n        });\n    },\n  },\n});\n</script>\n\n<style>\n@import '../node_modules/quill/dist/quill.snow.css';\n\nhtml, body {\n  overflow-x: hidden;\n}\n\n/* Hide scrollbar for Chrome, Safari and Opera */\n.hide-scroll-x::-webkit-scrollbar {\n  display: none;\n}\n\n/* Hide scrollbar for IE, Edge and Firefox */\n.hide-scroll-x {\n  -ms-overflow-style: none; /* IE and Edge */\n  scrollbar-width: none; /* Firefox */\n}\n\n/* Responsive Images for Quill Editor */\n.img-fluid {\n  max-width: 100%;\n  height: auto;\n}\n\n</style>\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=207729a6&\"\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=css&\"\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\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VMain } from 'vuetify/lib/components/VMain';\ninstallComponents(component, {VApp,VContainer,VMain})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 708.661 708.661\"}},[_c('g',{staticClass:\"custom-icon vyhub\",attrs:{\"id\":\"Icon_White\",\"data-name\":\"Icon White\"}},[_c('polygon',{attrs:{\"points\":\"642.345 578.908 642.345 129.101 479.085 578.908 642.345 578.908\"}}),_c('polygon',{attrs:{\"points\":\"409.009 661.266 572.727 211.459 489.134 211.459 325.419 661.266 409.009\\n              661.266\"}}),_c('polygon',{attrs:{\"points\":\"469.462 497.202 633.178 47.395 549.587 47.395 385.869 497.202 469.462\\n              497.202\"}}),_c('polygon',{attrs:{\"points\":\"315.368 578.908 479.085 129.101 395.492 129.101 231.777 578.908 315.368\\n              578.908\"}}),_c('polygon',{attrs:{\"points\":\"230.032 578.908 66.317 129.101 149.907 129.101 313.625 578.908 230.032\\n              578.908\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 708.661 708.661\">\n    <g id=\"Icon_White\" data-name=\"Icon White\" class=\"custom-icon vyhub\">\n      <polygon\n        points=\"642.345 578.908 642.345 129.101 479.085 578.908 642.345 578.908\"/>\n      <polygon\n        points=\"409.009 661.266 572.727 211.459 489.134 211.459 325.419 661.266 409.009\n                661.266\"/>\n      <polygon\n        points=\"469.462 497.202 633.178 47.395 549.587 47.395 385.869 497.202 469.462\n                497.202\"/>\n      <polygon\n        points=\"315.368 578.908 479.085 129.101 395.492 129.101 231.777 578.908 315.368\n                578.908\"/>\n      <polygon\n        points=\"230.032 578.908 66.317 129.101 149.907 129.101 313.625 578.908 230.032\n                578.908\"/>\n    </g>\n  </svg>\n</template>\n\n<script>\nexport default {\n  name: 'VyHub',\n};\n</script>\n\n<style  lang=\"sass\">\n.vyhub\n  fill: currentColor\n</style>\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!./VyHub.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!./VyHub.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./VyHub.vue?vue&type=template&id=0472c417&\"\nimport script from \"./VyHub.vue?vue&type=script&lang=js&\"\nexport * from \"./VyHub.vue?vue&type=script&lang=js&\"\nimport style0 from \"./VyHub.vue?vue&type=style&index=0&lang=sass&\"\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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{staticClass:\"discord\",attrs:{\"role\":\"img\",\"viewBox\":\"0 -28.5 256 256\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"preserveAspectRatio\":\"xMidYMid\"}},[_c('g',[_c('path',{attrs:{\"d\":\"M216.856339,16.5966031 C200.285002,8.84328665 182.566144,3.2084988 164.041564,0 C161.766523,4.11318106 159.108624,9.64549908 157.276099,14.0464379 C137.583995,11.0849896 118.072967,11.0849896 98.7430163,14.0464379 C96.9108417,9.64549908 94.1925838,4.11318106 91.8971895,0 C73.3526068,3.2084988 55.6133949,8.86399117 39.0420583,16.6376612 C5.61752293,67.146514 -3.4433191,116.400813 1.08711069,164.955721 C23.2560196,181.510915 44.7403634,191.567697 65.8621325,198.148576 C71.0772151,190.971126 75.7283628,183.341335 79.7352139,175.300261 C72.104019,172.400575 64.7949724,168.822202 57.8887866,164.667963 C59.7209612,163.310589 61.5131304,161.891452 63.2445898,160.431257 C105.36741,180.133187 151.134928,180.133187 192.754523,160.431257 C194.506336,161.891452 196.298154,163.310589 198.110326,164.667963 C191.183787,168.842556 183.854737,172.420929 176.223542,175.320965 C180.230393,183.341335 184.861538,190.991831 190.096624,198.16893 C211.238746,191.588051 232.743023,181.531619 254.911949,164.955721 C260.227747,108.668201 245.831087,59.8662432 216.856339,16.5966031 Z M85.4738752,135.09489 C72.8290281,135.09489 62.4592217,123.290155 62.4592217,108.914901 C62.4592217,94.5396472 72.607595,82.7145587 85.4738752,82.7145587 C98.3405064,82.7145587 108.709962,94.5189427 108.488529,108.914901 C108.508531,123.290155 98.3405064,135.09489 85.4738752,135.09489 Z M170.525237,135.09489 C157.88039,135.09489 147.510584,123.290155 147.510584,108.914901 C147.510584,94.5396472 157.658606,82.7145587 170.525237,82.7145587 C183.391518,82.7145587 193.761324,94.5189427 193.539891,108.914901 C193.539891,123.290155 183.391518,135.09489 170.525237,135.09489 Z\",\"fill-rule\":\"nonzero\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <svg class=\"discord\" role=\"img\" viewBox=\"0 -28.5 256 256\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" preserveAspectRatio=\"xMidYMid\"><g><path d=\"M216.856339,16.5966031 C200.285002,8.84328665 182.566144,3.2084988 164.041564,0 C161.766523,4.11318106 159.108624,9.64549908 157.276099,14.0464379 C137.583995,11.0849896 118.072967,11.0849896 98.7430163,14.0464379 C96.9108417,9.64549908 94.1925838,4.11318106 91.8971895,0 C73.3526068,3.2084988 55.6133949,8.86399117 39.0420583,16.6376612 C5.61752293,67.146514 -3.4433191,116.400813 1.08711069,164.955721 C23.2560196,181.510915 44.7403634,191.567697 65.8621325,198.148576 C71.0772151,190.971126 75.7283628,183.341335 79.7352139,175.300261 C72.104019,172.400575 64.7949724,168.822202 57.8887866,164.667963 C59.7209612,163.310589 61.5131304,161.891452 63.2445898,160.431257 C105.36741,180.133187 151.134928,180.133187 192.754523,160.431257 C194.506336,161.891452 196.298154,163.310589 198.110326,164.667963 C191.183787,168.842556 183.854737,172.420929 176.223542,175.320965 C180.230393,183.341335 184.861538,190.991831 190.096624,198.16893 C211.238746,191.588051 232.743023,181.531619 254.911949,164.955721 C260.227747,108.668201 245.831087,59.8662432 216.856339,16.5966031 Z M85.4738752,135.09489 C72.8290281,135.09489 62.4592217,123.290155 62.4592217,108.914901 C62.4592217,94.5396472 72.607595,82.7145587 85.4738752,82.7145587 C98.3405064,82.7145587 108.709962,94.5189427 108.488529,108.914901 C108.508531,123.290155 98.3405064,135.09489 85.4738752,135.09489 Z M170.525237,135.09489 C157.88039,135.09489 147.510584,123.290155 147.510584,108.914901 C147.510584,94.5396472 157.658606,82.7145587 170.525237,82.7145587 C183.391518,82.7145587 193.761324,94.5189427 193.539891,108.914901 C193.539891,123.290155 183.391518,135.09489 170.525237,135.09489 Z\" fill-rule=\"nonzero\"></path></g></svg>\n</template>\n\n<script>\nexport default {\n  name: 'Discord.vue',\n};\n</script>\n\n<style scoped lang=\"sass\">\n.discord\n  fill: currentColor\n\n</style>\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!./Discord.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!./Discord.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Discord.vue?vue&type=template&id=6f4db13c&scoped=true&\"\nimport script from \"./Discord.vue?vue&type=script&lang=js&\"\nexport * from \"./Discord.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Discord.vue?vue&type=style&index=0&id=6f4db13c&scoped=true&lang=sass&\"\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  \"6f4db13c\",\n  null\n  \n)\n\nexport default component.exports","import Vue from 'vue';\nimport Vuetify from 'vuetify';\nimport {\n  VTooltip,\n  VIcon,\n  VListItem,\n  VAvatar,\n  VFlex,\n  VLayout,\n  VSelect,\n  VTextarea,\n  VCheckbox,\n  VSwitch, VColorPickerCanvas, VColorPicker, VSlider, VDatePicker, VTimePicker, VTabs, VStepper,\n} from 'vuetify/lib';\nimport minifyTheme from 'minify-css-string';\nimport '@mdi/font/css/materialdesignicons.css';\nimport VyHubIcon from '@/components/Icons/VyHub.vue';\nimport DiscordIcon from '@/components/Icons/Discord.vue';\n\nVue.use(Vuetify);\n\nVue.component('v-tooltip', VTooltip);\nVue.component('v-icon', VIcon);\nVue.component('v-list-item', VListItem);\nVue.component('v-avatar', VAvatar);\nVue.component('v-flex', VFlex);\nVue.component('v-layout', VLayout);\nVue.component('v-select', VSelect);\nVue.component('v-textarea', VTextarea);\nVue.component('v-checkbox', VCheckbox);\nVue.component('v-color-picker-canvas', VColorPickerCanvas);\nVue.component('v-color-picker', VColorPicker);\nVue.component('v-switch', VSwitch);\nVue.component('v-slider', VSlider);\nVue.component('v-date-picker', VDatePicker);\nVue.component('v-time-picker', VTimePicker);\nVue.component('v-tabs', VTabs);\nVue.component('v-stepper', VStepper);\n\nexport default new Vuetify({\n  icons: {\n    iconfont: 'mdi',\n    values: {\n      vyhub: {\n        component: VyHubIcon,\n      },\n      discord: {\n        component: DiscordIcon,\n      },\n    },\n  },\n  theme: {\n    options: {\n      customProperties: true,\n      minifyTheme,\n    },\n    themes: {\n      light: {\n        primary: '#b71c1c',\n        dark: '#0f1422',\n        secondary: '#00d8ff',\n        accent: '#3cd1c2',\n        background: '#FAFAFA',\n      },\n    },\n  },\n});\n","import Vue from 'vue';\nimport Axios from 'axios';\nimport * as Sentry from '@sentry/vue';\nimport VueApexCharts from 'vue-apexcharts';\nimport i18n from './plugins/i18n';\nimport App from './App.vue';\nimport router from './router';\nimport store from './store';\nimport vuetify from './plugins/vuetify';\nimport config from './config';\nimport '@/assets/css/main.scss';\n\nVue.use(VueApexCharts);\n\nVue.config.productionTip = false;\n\nAxios.defaults.baseURL = config.backend_url;\nAxios.defaults.headers.common['Content-Type'] = 'application/json';\nAxios.defaults.headers.common.Accept = 'application/json';\n\nVue.component('apexchart', VueApexCharts);\n\nnew Vue({\n  router,\n  i18n,\n  store,\n  vuetify,\n  render: (h) => h(App),\n}).$mount('#app');\n\nif (config.sentry_dsn != null && config.sentry_dsn.length > 5) {\n  Sentry.init({\n    Vue,\n    dsn: config.sentry_dsn,\n  });\n}\n","import Vue from 'vue';\nimport VueI18n from 'vue-i18n';\n\nconst dateTimeFormats: any = {\n  en: {\n    short: {\n      year: 'numeric', month: 'short', day: 'numeric',\n    },\n    long: {\n      year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric',\n    },\n  },\n  de: {\n    short: {\n      day: 'numeric', month: 'short', year: 'numeric',\n    },\n    long: {\n      year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric',\n    },\n  },\n};\n\nfunction loadLocaleMessages() {\n  const locales = require.context(\n    '@/lang',\n    true,\n    /[A-Za-z0-9-_,\\s]+\\.json$/i,\n  );\n\n  const messages: any = {};\n  locales.keys().forEach((key) => {\n    const matched = key.match(/([A-Za-z0-9-_]+)\\./i);\n    if (matched) {\n      if (matched.length > 1) {\n        const locale: string = matched[1];\n        messages[locale] = locales(key);\n      }\n    }\n  });\n  return messages;\n}\n\nVue.use(VueI18n);\n\nlet locale = 'en';\nif (localStorage.getItem('locale') != null) {\n  locale = localStorage.getItem('locale') as string;\n} else {\n  locale = navigator.language;\n}\n\n// eslint-disable-next-line import/prefer-default-export\nexport default new VueI18n({\n  dateTimeFormats,\n  locale,\n  fallbackLocale: 'en',\n  messages: loadLocaleMessages(),\n});\n","import Vue from 'vue';\nimport VueRouter, {\n  RouteConfig, RawLocation, Route, NavigationGuardNext,\n} from 'vue-router';\nimport store from '@/store/index';\nimport config from '@/config';\nimport AccessControlService from '@/services/AccessControlService';\nimport i18n from '@/plugins/i18n';\n\nVue.use(VueRouter);\n\nconst routes: Array<RouteConfig> = [\n  /* {\n    path: '/legal',\n    name: 'Legal',\n    component: () => import('../views/Legal.vue'),\n    meta: { title: 'Legal', landingPage: true },\n  }, */\n  {\n    path: '/login',\n    name: 'Login',\n    component: () => import('../views/Login.vue'),\n    meta: { title: 'Login', cleanPage: true, hideFooter: true },\n  },\n  {\n    path: '/dashboard',\n    name: 'Dashboard',\n    component: () => import('../views/Dashboard.vue'),\n    meta: { title: 'Admin Dashboard', requiresAuth: true },\n  },\n  {\n    path: '/support',\n    name: 'Support',\n    component: () => import('../views/Support.vue'),\n    meta: { title: 'Support', requiresAuth: true },\n  },\n  {\n    path: '/instance/:id',\n    name: 'Instance',\n    component: () => import('../views/Instance.vue'),\n    meta: { title: 'Instance', requiresAuth: true },\n  },\n  {\n    path: '/new-instance',\n    name: 'newInstance',\n    component: () => import('../views/NewInstance.vue'),\n    meta: { title: 'New Instance', requiresAuth: true },\n  },\n  {\n    path: '/admin/log',\n    name: 'Logs',\n    component: () => import('../views/Admin/Log.vue'),\n    meta: { title: 'Admin - Log', requiresAuth: true, requiresProp: 'log_edit' },\n  },\n  {\n    path: '/admin/instances',\n    name: 'AdminInstances',\n    component: () => import('../views/Admin/Instances.vue'),\n    meta: { title: 'Admin - Instances', requiresAuth: true, requiresProp: 'instance_show' },\n  },\n  {\n    path: '/admin/users',\n    name: 'AdminUsers',\n    component: () => import('../views/Admin/Users.vue'),\n    meta: { title: 'Admin - Users', requiresAuth: true, requiresProp: 'user_show' },\n  },\n  {\n    path: '/admin/statistics',\n    name: 'AdminStatistics',\n    component: () => import('../views/Admin/Statistics.vue'),\n    meta: { title: 'Admin - Statistics', requiresAuth: true, requiresProp: 'statistic_show' },\n  },\n  {\n    path: '/admin/versions',\n    name: 'AdminVersions',\n    component: () => import('../views/Admin/Versions.vue'),\n    meta: { title: 'Admin - Instance Versions', requiresAuth: true, requiresProp: 'instance_edit' },\n  },\n  {\n    path: '/admin/payouts',\n    name: 'AdminPayouts',\n    component: () => import('../views/Admin/Payouts.vue'),\n    meta: { title: 'Admin - Payouts', requiresAuth: true, requiresProp: 'payout_edit' },\n  },\n  {\n    path: '/admin/shop/:component?',\n    name: 'ShopAdmin',\n    component: () => import('@/views/Admin/Shop.vue'),\n    meta: {\n      requiresAuth: true,\n      title: i18n.t('shopAdministration'),\n      requiresProp: 'purchase_show',\n    },\n  },\n  {\n    path: '/user/:id?',\n    name: 'UserDashboard',\n    component: () => import('../views/UserDashboard.vue'),\n    meta: { title: 'User', requiresAuth: true },\n  },\n  {\n    path: '/',\n    name: 'Home',\n    redirect: () => ({ name: 'Login' }),\n    // component: () => import('../views/Home.vue'),\n    meta: { title: 'VyHub - Simplify, Manage and Monetize your Gameserver', landingPage: true, cleanPage: true },\n  },\n  /* {\n    path: '/games',\n    name: 'Games',\n    component: () => import('../views/Games.vue'),\n    meta: { title: 'Supported Games', landingPage: true },\n  },\n  {\n    path: '/blog',\n    name: 'Blog',\n    component: () => import('../views/Blog.vue'),\n    meta: { title: 'Blog', landingPage: true, cleanPage: true },\n  },\n  {\n    path: '/blog/:id',\n    name: 'BlogEntry',\n    component: () => import('../views/BlogEntry.vue'),\n    meta: { title: 'Blog', landingPage: true },\n  },\n  {\n    path: '/pricing',\n    name: 'Pricing',\n    component: () => import('../views/Pricing.vue'),\n    meta: { title: 'Pricing', landingPage: true },\n  },\n  {\n    path: '/features',\n    name: 'Features',\n    component: () => import('../views/Features.vue'),\n    meta: { title: 'Features', landingPage: true, cleanPage: true },\n  },\n  {\n    path: '/features/shop',\n    name: 'FeaturesShop',\n    component: () => import('../views/FeaturesShop.vue'),\n    meta: { title: 'Features - Shop', landingPage: true, cleanPage: true },\n  }, */\n  {\n    path: '/auth/authorize',\n    name: 'OAuth Authorize',\n    component: () => import('../views/Authorize.vue'),\n    meta: { title: 'Authorize' },\n  },\n  {\n    path: '/auth/forgot',\n    name: 'Password Reset',\n    component: () => import('../views/PasswordReset.vue'),\n    meta: { title: 'Password Reset' },\n  },\n  {\n    path: '/auth/set',\n    name: 'Set Password',\n    component: () => import('../views/PasswordSet.vue'),\n    meta: { title: 'Set Password' },\n  },\n  {\n    path: '/account',\n    name: 'Account',\n    redirect: () => ({ name: 'UserAccount', params: { accountId: store.getters.user.credit_account_id } }),\n    meta: { requiresAuth: true, title: i18n.t('account') },\n  },\n  {\n    path: '/account/:accountId',\n    name: 'UserAccount',\n    component: () => import('@/views/Account.vue'),\n    meta: { requiresAuth: true, title: i18n.t('account') },\n  },\n  {\n    path: '/shop/packet/:packetId',\n    name: 'ShopPacket',\n    component: () => import('@/views/Shop/Packet.vue'),\n    meta: { title: i18n.t('packet') },\n  },\n  {\n    path: '/shop/cart',\n    name: 'ShopCart',\n    meta: { title: i18n.t('cart'), requiresAuth: true },\n    component: () => import('../views/Shop/Cart.vue'),\n  },\n  {\n    path: '/shop/purchases',\n    name: 'ShopPurchases',\n    meta: { title: i18n.t('purchases'), requiresAuth: true },\n    component: () => import('../views/Shop/Purchases.vue'),\n  },\n  {\n    path: '/shop/checkout/:debitId/:action',\n    name: 'ShopCheckout',\n    meta: { title: i18n.t('checkout'), requiresAuth: true },\n    component: () => import('../views/Shop/Checkout.vue'),\n  },\n  /* {\n    path: '/partners',\n    name: '/Partners',\n    meta: { title: i18n.t('partners'), landingPage: true },\n    component: () => import('../views/Partners.vue'),\n  }, */\n  {\n    path: '/affiliate',\n    name: 'AffiliateDashboard',\n    redirect: () => ({ name: 'UserAffiliateDashboard', params: { userId: store.getters.user.id } }),\n    meta: { requiresAuth: true, title: i18n.t('_affiliate.affiliateDashboard') },\n  },\n  {\n    path: '/affiliate/:userId',\n    name: 'UserAffiliateDashboard',\n    meta: { title: i18n.t('_affiliate.affiliateDashboard'), requiresAuth: true },\n    component: () => import('../views/AffiliateDashboard.vue'),\n  },\n  {\n    path: '*',\n    name: '404 Path not found',\n    redirect() {\n      return '/';\n    },\n    meta: { title: 'VyHub - Not Found' },\n  },\n];\n\n/*\nconst originalPush = VueRouter.prototype.push;\nVueRouter.prototype.push = function push(location: RawLocation): Promise<Route> {\n  return new Promise((resolve, reject) => {\n    originalPush.call(this, location, () => {\n      // on complete\n\n      resolve(this.currentRoute);\n    }, (error) => {\n      // on abort\n\n      // only ignore NavigationDuplicated error\n      if (error.name === 'NavigationDuplicated') {\n        resolve(this.currentRoute);\n      } else {\n        reject(error);\n      }\n    });\n  });\n};\n*/\n\nconst router = new VueRouter({\n  mode: 'history',\n  base: process.env.BASE_URL,\n  scrollBehavior(to: any, from: any, savedPosition: any) {\n    if (savedPosition) {\n      return savedPosition;\n    }\n    return { x: 0, y: 0 };\n  },\n  routes,\n});\n\nrouter.beforeEach((to: Route, from: Route, next: NavigationGuardNext) => {\n  if ((to.query.login !== 'true') && (to.matched.some((record: any) => record.meta.requiresAuth))) {\n    // this route requires auth\n    if (!store.getters.isLoggedIn) {\n      next({\n        path: ('/login'),\n        query: { login: 'true', returnUrl: to.path },\n      });\n    } else if (to.meta != null && to.meta.requiresProp != null) {\n      if (AccessControlService.methods.$checkProp(to.meta.requiresProp)) {\n        next();\n      } else {\n        console.log(`Property ${to.meta.requiresProp} missing.`);\n        next({\n          path: ('/login'),\n        });\n      }\n    } else {\n      next();\n    }\n  } else {\n    next();\n  }\n});\n\nconst DEFAULT_TITLE = config.default_title;\nrouter.afterEach((to: any) => {\n  Vue.nextTick(() => {\n    if (to != null && to.meta != null && to.meta.title != null) {\n      document.title = `${to.meta.title} - VyHub`;\n    } else {\n      document.title = DEFAULT_TITLE;\n    }\n  });\n});\n\nrouter.beforeEach((to: Route, from: Route, next: NavigationGuardNext) => {\n  if (to.query.ref !== null && to.query.ref !== undefined) {\n    // set cookie for referrer. Expires in 3 days\n    document.cookie = `ref=${to.query.ref}; path=/; max-age=${60 * 60 * 24 * 3};`;\n    console.log('Referral cookie set');\n    next();\n  } else {\n    next();\n  }\n});\n\nexport default router;\n","/**\n * This is a mixin which checks if a user possesses a given property\n * This mixin is registered in the App.vue\n * It can be used out of any component by calling $checkProp(prop: string)\n * When the optional Parameter Bundle is given the Property has to exist in the given bundle\n */\nimport store from '@/store/index';\n\nexport default {\n  methods: {\n    $checkProp(prop: string): boolean {\n      // return True if user is admin\n      if (store.getters.isLoggedIn) {\n        if (store.getters.user.admin === true) {\n          return true;\n        }\n      }\n\n      if (prop === null) {\n        return true;\n      }\n\n      const { properties } = store.getters;\n\n      if (properties == null) {\n        return false;\n      }\n\n      return properties.some((el: string) => el === prop);\n    },\n  },\n};\n","import axios from 'axios';\nimport { throttleAdapterEnhancer } from 'axios-extensions';\nimport qs from 'qs';\nimport config from '@/config';\nimport { authGetTokenResponse } from './api.d';\n\nif (axios.defaults.adapter === undefined) {\n  throw new ReferenceError();\n}\n\nconst http = axios.create({\n  baseURL: config.backend_url,\n  headers: { 'Cache-Control': 'no-cache' },\n  adapter: throttleAdapterEnhancer(axios.defaults.adapter, { threshold: 2 * 1000 }),\n});\n\n// Adapter with 5 Minute Cache\nconst throttledHttp = axios.create({\n  baseURL: config.backend_url,\n  headers: { 'Cache-Control': 'no-cache' },\n  adapter: throttleAdapterEnhancer(axios.defaults.adapter, { threshold: 300 * 1000 }),\n});\n\nexport default {\n  auth: {\n    getToken(query: object) {\n      return http.post<authGetTokenResponse>('/auth/token', qs.stringify(query));\n    },\n    revokeToken(token: string, token_type: string, client_id: string) {\n      return http.post('/auth/revoke', qs.stringify({ token, token_type, client_id }));\n    },\n    token(username: string, password: string, client_id: string,\n      captcha_version: string, captcha_token: string, grant_type: string,\n      scope: string) {\n      return http.post('/auth/token', qs.stringify({\n        username,\n        password,\n        client_id,\n        grant_type,\n        scope,\n        captcha_token,\n        captcha_version,\n      }));\n    },\n    authorize(client_id: string, scope: string, redirect_uri: string, response_type: string,\n      state: string) {\n      return http.post('/auth/authorize', qs.stringify({\n        confirm: true,\n      }), {\n        maxRedirects: 0,\n        params: {\n          client_id,\n          scope,\n          redirect_uri,\n          response_type,\n          state,\n        },\n      });\n    },\n  },\n  newContact(mail: string, token: string) {\n    return http.post('/newsletter/contact', { mail, token });\n  },\n  newContactForm(data: object) {\n    return http.post('/mail/contact-form', data);\n  },\n  http,\n  throttledHttp,\n};\n","import axios from 'axios';\nimport store from '@/store';\nimport api from '@/api/api';\nimport openapi from '@/api/openapi';\nimport config from '@/config';\nimport router from '@/router';\n\nconst vh_client_id = config.oauth_client_id;\n\nconst requestedScopes = [\n  'self:info:read',\n  'instance:read',\n  'instance:write',\n  'log:read',\n  'shop:read',\n  'shop:write',\n  'authorize',\n  'user:read',\n  'user:write',\n  'blog:write',\n  'statistic:read',\n  'affiliate:read',\n  'affiliate:write',\n];\n\nexport default {\n  async loginRefreshToken(_refreshToken: string) {\n    const query = {\n      refresh_token: _refreshToken,\n      grant_type: 'refresh_token',\n      client_id: vh_client_id,\n      scope: requestedScopes.join(' '),\n    };\n    const { access_token, refresh_token, expires_in } = (await api.auth.getToken(query)).data;\n\n    return this.login(access_token, refresh_token, expires_in);\n  },\n  async loginCredentials(username: string, password: string) {\n    const query = {\n      username,\n      password,\n      client_id: vh_client_id,\n      grant_type: 'password',\n      scope: requestedScopes.join(' '),\n    };\n    const { access_token, refresh_token, expires_in } = (await api.auth.getToken(query)).data;\n\n    return this.login(access_token, refresh_token, expires_in);\n  },\n  async login(access_token: string, refresh_token: string, expires_in: number) {\n    let refreshAfter = null;\n\n    if (expires_in != null) {\n      refreshAfter = new Date();\n      refreshAfter.setSeconds(refreshAfter.getSeconds() + expires_in / 2);\n    }\n\n    await store.dispatch('login', {\n      accessToken: access_token,\n      refreshToken: refresh_token,\n      refreshAfter,\n    });\n\n    await this.setAuthTokens();\n    await this.refreshUser();\n    await this.setProperties();\n  },\n  async register(userModel: any, captcha: any, callback: Function, errorCallback: Function) {\n    const model = userModel;\n    // check for referral cookie\n    if (document.cookie.indexOf('ref=') !== -1) {\n      const ref = document.cookie.split('ref=')[1].split(';')[0];\n      model.ref_code = ref;\n      // delete cookie\n      document.cookie = 'ref=; path=/; max-age=0;';\n    }\n    model.captcha_version = captcha.version;\n    model.captcha_token = captcha.token;\n    // eslint-disable-next-line no-underscore-dangle\n    (await openapi).user_register(null, model).then(() => {\n      callback();\n    }).catch((err: any) => {\n      errorCallback(err);\n    });\n  },\n  async sendConfirmationCode(email: string, captcha: any,\n    callback: Function, errorCallback: Function) {\n    // eslint-disable-next-line no-underscore-dangle\n    (await openapi).user_sendMailConfirmationCode(null, {\n      email,\n      captcha_version: captcha.version,\n      captcha_token: captcha.token,\n    }).then(() => {\n      callback();\n    }).catch((err: any) => {\n      errorCallback(err);\n    });\n  },\n  async fetchUserData() {\n    if (store.getters.accessToken) {\n      const oapi = await openapi;\n      const rsp = await oapi.user_getCurrentUser();\n\n      return rsp.data;\n    }\n    console.log('User is not logged in!');\n    return {};\n  },\n  authorize(client_id: string, scope: string, redirect_uri: string, response_type: string,\n    state: string) {\n    api.auth.authorize(client_id, scope, redirect_uri, response_type,\n      state).then((rsp) => {\n      const redirectUri = rsp.data.redirect_uri;\n\n      if (redirectUri != null) {\n        window.location.href = redirectUri;\n      } else {\n        console.log('Unknown response', rsp.data);\n      }\n    }).catch((err) => {\n      console.log(err);\n    });\n  },\n  async logout() {\n    api.auth.revokeToken(store.getters.accessToken, 'access_token', vh_client_id).then();\n\n    await store.dispatch('logout');\n\n    delete api.http.defaults.headers.common.Authorization;\n    delete (await openapi).defaults.headers.common.Authorization;\n    delete api.throttledHttp.defaults.headers.common.Authorization;\n    delete axios.defaults.headers.common.Authorization;\n\n    router.push('/');\n  },\n  async setAuthTokens() {\n    if (store.getters.accessToken) {\n      const header = `Bearer ${store.getters.accessToken}`;\n      axios.defaults.headers.common.Authorization = header;\n      (await openapi).defaults.headers.common.Authorization = header;\n      api.http.defaults.headers.common.Authorization = header;\n      api.throttledHttp.defaults.headers.common.Authorization = header;\n    }\n  },\n  async setProperties() {\n    const { user } = store.getters;\n\n    if (user.properties) {\n      const { properties } = user;\n      await store.dispatch('setProperties', { properties });\n    }\n  },\n  async refreshUser(tryRefresh = false) {\n    try {\n      const user: any = await this.fetchUserData();\n\n      await store.dispatch('setUserData', { user });\n      await this.setProperties();\n\n      if (tryRefresh && store.getters.refreshAfter != null\n        && new Date() > new Date(store.getters.refreshAfter)) {\n        console.log('Trying to use refresh token to renew session in time.');\n        await this.loginRefreshToken(store.getters.refreshToken);\n        await this.refreshUser();\n      }\n    } catch (err) {\n      console.log(`Error in phase user_data: ${err}`);\n\n      if (err.response.status === 401) {\n        if (tryRefresh && store.getters.refreshToken != null) {\n          console.log('Trying to use refresh token to recover session.');\n\n          try {\n            await this.loginRefreshToken(store.getters.refreshToken);\n          } catch (e) {\n            await this.logout();\n          }\n        } else {\n          await this.logout();\n        }\n      }\n\n      throw err;\n    }\n  },\n};\n","import { loadStripe } from '@stripe/stripe-js/pure';\nimport store from '@/store';\nimport openapi from '@/api/openapi';\nimport UtilService from '@/services/UtilService';\nimport router from '@/router';\n\nexport default {\n  selectAddress(address: object) {\n    store.dispatch('setAddress', { address });\n  },\n  async refreshCartPacketCount() {\n    (await openapi).shop_getCartPackets().then((rsp: any) => {\n      store.dispatch('setCartPacketCount', {\n        cartPacketCount: rsp.data.length,\n      });\n    }).catch((err: any) => {\n      UtilService.data().utils.notifyUnexpectedError(err.response.data);\n      console.log(err);\n    });\n  },\n  async refreshCreditAccount() {\n    const api = await openapi;\n\n    if (store.getters.user.credit_account_id == null) {\n      return;\n    }\n\n    api.finance_getAccount({ uuid: store.getters.user.credit_account_id })\n      .then((rsp) => {\n        store.dispatch('setCreditAccount', {\n          creditAccount: rsp.data,\n        });\n      }).catch((err) => {\n        console.log(err);\n        UtilService.data().utils.notifyUnexpectedError(err.response.data);\n      });\n  },\n  /* eslint-disable @typescript-eslint/no-explicit-any */\n  async executeAction(debit: any, action: any) {\n    console.log('executeAction', debit, action);\n\n    if (action == null) {\n      //\n    } else if (action.type === 'redirect') {\n      window.location.href = action.data.redirect_url;\n      return true;\n    } else if (action.type === 'finish') {\n      router.push({ name: 'ShopCheckout', params: { action: 'finish', debitId: debit.id } });\n      return true;\n    } else if (action.type === 'stripe_redirect_to_checkout') {\n      const stripe = await loadStripe(action.data.public_key);\n\n      if (stripe == null) {\n        throw new Error('Stripe object is null.');\n      }\n\n      const result = await stripe.redirectToCheckout({\n        sessionId: action.data.session_id,\n      });\n\n      if (result.error) {\n        throw new Error(result.error.message);\n      }\n\n      return true;\n    }\n\n    throw new Error('Payment action failed.');\n  },\n};\n","import { HumanizeDurationLanguage, HumanizeDuration } from 'humanize-duration-ts';\nimport Vue from 'vue';\nimport i18n from '@/plugins/i18n';\n\nconst langService: HumanizeDurationLanguage = new HumanizeDurationLanguage();\nconst humanizeDuration: HumanizeDuration = new HumanizeDuration(langService);\n\nconst unitMeasures = {\n  y: 31536000000,\n  mo: 2592000000,\n  w: 604800000,\n  d: 86400000,\n  h: 3600000,\n  m: 60000,\n  s: 1000,\n};\n\nexport default {\n  data() {\n    return {\n      utils: {\n        formatLength(seconds: number) {\n          return (seconds == null ? '∞' : humanizeDuration.humanize(seconds * 1000, {\n            language: 'en', // TODO: Set actual locale\n            unitMeasures,\n            units: ['y', 'mo', 'd', 'h', 'm'],\n          }));\n        },\n        formatElapsedTime(mseconds: number) {\n          return (mseconds == null ? '∞' : humanizeDuration.humanize(mseconds, {\n            language: 'en', // TODO: Set actual locale\n            unitMeasures,\n            units: ['y', 'mo', 'd', 'h', 'm', 's'],\n            round: true,\n            largest: 1,\n          }));\n        },\n        notifyUnexpectedError(detail: object) {\n          return;\n\n          Vue.notify({\n            title: i18n.t('unexpectedErrorOccurred').toString(),\n            text: JSON.stringify(detail),\n            type: 'error',\n          });\n        },\n        showFile(blob: string, name: string, mediaType = 'application/pdf') {\n          // It is necessary to create a new blob object with mime-type explicitly set\n          // otherwise only Chrome works like it should\n          const newBlob = new Blob([blob], { type: mediaType });\n\n          // IE doesn't allow using a blob object directly as link href\n          // instead it is necessary to use msSaveOrOpenBlob\n          if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n            window.navigator.msSaveOrOpenBlob(newBlob);\n            return;\n          }\n\n          // For other browsers:\n          // Create a link pointing to the ObjectURL containing the blob.\n          const data = window.URL.createObjectURL(newBlob);\n          const link = document.createElement('a');\n          link.href = data;\n          link.download = name;\n          link.click();\n          setTimeout(() => {\n            // For Firefox it is necessary to delay revoking the ObjectURL\n            window.URL.revokeObjectURL(data);\n          }, 100);\n        },\n        formatDecimal(decimal: number) {\n          return decimal.toLocaleString(undefined, { minimumFractionDigits: 2 });\n        },\n        getFullUrl(path: string) {\n          return window.location.origin + path;\n        },\n        formatDate(datetime: string) {\n          if (datetime == null) {\n            return '-';\n          }\n\n          return (new Date(datetime)).toLocaleString();\n        },\n        isSingularTimeunit(seconds: number) {\n          if (seconds === 2592000) return i18n.t('everyMonth');\n          if (seconds === 31536000) return i18n.t('everyYear');\n          if (seconds === 86400) return i18n.t('everyDay');\n          return false;\n        },\n        random_string(length: number) {\n          let result = '';\n          const characters = 'abcdefghijklmnopqrstuvwxyz';\n          const charactersLength = characters.length;\n          for (let i = 0; i < length; i += 1) {\n            result += characters.charAt(Math.floor(Math.random()\n              * charactersLength));\n          }\n          return result;\n        },\n        daysUntilDate(date: Date) {\n          const oneDay = 1000 * 60 * 60 * 24;\n          return Math.ceil((date.getTime() - new Date().getTime()) / oneDay);\n        },\n        setIntervalX(callback: CallableFunction, delay: number, repetitions: number) {\n          let x = 0;\n          const intervalID = window.setInterval(() => {\n            callback();\n\n            x += 1;\n\n            if (x === repetitions) {\n              window.clearInterval(intervalID);\n            }\n          }, delay);\n\n          return intervalID;\n        },\n        formatErrorMessage(err: any) {\n          let errDet = null;\n\n          const returnObject: { title: string, text: string, type: string } = { title: '', text: '', type: '' };\n\n          if (err.response && err.response.data && err.response.data.detail) {\n            errDet = err.response.data.detail;\n          }\n\n          if (err.response.status === 401) {\n            errDet = {\n              code: 'unauthorized',\n              msg: '',\n              detail: { },\n            };\n          }\n\n          if (errDet != null && i18n.te(`_errors.${errDet.code}`)) {\n            returnObject.title = String(i18n.t('error'));\n            returnObject.text = String(i18n.t(`_errors.${errDet.code}`, { ...errDet.detail, msg: errDet.msg }));\n            returnObject.type = 'error';\n          } else if (err.response) {\n            let msg = '';\n\n            if (err.response.data && err.response.data.detail) {\n              if (err.response.data.detail.code) {\n                msg = `${err.response.data.detail.code} - ${err.response.data.detail.msg}`;\n              } else {\n                msg = err.response.data.detail;\n              }\n            } else {\n              msg = err.response.data;\n            }\n            returnObject.title = `${i18n.t('unexpectedError')} ${err.response.status}`;\n            returnObject.text = msg;\n            returnObject.type = 'error';\n          } else {\n            returnObject.title = `${i18n.t('unexpectedError')}`;\n            returnObject.text = '-';\n            returnObject.type = 'error';\n          }\n          return returnObject;\n        },\n      },\n    };\n  },\n};\n","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport createPersistedState from 'vuex-persistedstate';\n\nVue.use(Vuex);\n\nconst getDefaultState = () => ({\n  accessToken: null,\n  refreshToken: null,\n  refreshAfter: null,\n  properties: null,\n  user: null,\n  address: null,\n  cartPacketCount: 0,\n  creditAccount: null,\n});\n\nexport default new Vuex.Store({\n  strict: true,\n  plugins: [createPersistedState()],\n  state: getDefaultState(),\n  getters: {\n    isLoggedIn: (state) => state.accessToken != null && state.user != null,\n    user: (state) => state.user,\n    address: (state) => state.address,\n    accessToken: (state) => state.accessToken,\n    refreshToken: (state) => state.refreshToken,\n    refreshAfter: (state) => state.refreshAfter,\n    properties: (state) => state.properties,\n    cartPacketCount: (state) => state.cartPacketCount,\n    creditAccount: (state) => state.creditAccount,\n\n  },\n  mutations: {\n    SET_TOKEN: (state, { accessToken, refreshToken, refreshAfter }) => {\n      state.accessToken = accessToken;\n      state.refreshToken = refreshToken;\n      state.refreshAfter = refreshAfter;\n    },\n    SET_CART_PACKET_COUNT: (state, cartPacketCount) => {\n      state.cartPacketCount = cartPacketCount;\n    },\n    SET_USER: (state, user) => {\n      state.user = user;\n    },\n    RESET: (state) => {\n      Object.assign(state, getDefaultState());\n    },\n    SET_PROPERTIES: (state, properties) => {\n      state.properties = properties;\n    },\n    SET_ADDRESS: (state, address) => {\n      state.address = address;\n    },\n    SET_CREDIT_ACCOUNT: (state, credits) => {\n      state.creditAccount = credits;\n    },\n  },\n  actions: {\n    login: ({ commit }, { accessToken, refreshToken, refreshAfter }) => {\n      commit('SET_TOKEN', { accessToken, refreshToken, refreshAfter });\n    },\n    logout: ({ commit }) => {\n      commit('RESET', '');\n    },\n    setUserData: ({ commit }, { user }) => {\n      commit('SET_USER', user);\n    },\n    setProperties: ({ commit }, { properties }) => {\n      commit('SET_PROPERTIES', properties);\n    },\n    setCartPacketCount: ({ commit }, { cartPacketCount }) => {\n      commit('SET_CART_PACKET_COUNT', cartPacketCount);\n    },\n    setAddress: ({ commit }, { address }) => {\n      commit('SET_ADDRESS', address);\n    },\n    setCreditAccount: ({ commit }, { creditAccount }) => {\n      commit('SET_CREDIT_ACCOUNT', creditAccount);\n    },\n  },\n  modules: {\n  },\n});\n","var map = {\n\t\"./de.png\": 68165,\n\t\"./en.png\": 53024,\n\t\"./fr.png\": 28823,\n\t\"./nl.png\": 28358,\n\t\"./pt.png\": 56488,\n\t\"./uk.png\": 51374\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 83546;","var map = {\n\t\"./de.json\": 78471,\n\t\"./en.json\": 82007,\n\t\"./fr.json\": 46863,\n\t\"./nl.json\": 58391,\n\t\"./pt_BR.json\": 65784,\n\t\"./uk.json\": 84994\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 60391;","// 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/\" + chunkId + \".\" + {\"3\":\"e4d8b273\",\"47\":\"ee4a632d\",\"98\":\"a36dc72f\",\"122\":\"7cee9e30\",\"136\":\"464c42a4\",\"175\":\"9fa7d85c\",\"178\":\"081e3c29\",\"214\":\"6c034f7d\",\"243\":\"ecd8fbfd\",\"253\":\"59972421\",\"280\":\"ece5d725\",\"296\":\"858b176d\",\"334\":\"6142a36d\",\"362\":\"772104fd\",\"367\":\"f82fd89e\",\"369\":\"13ee852c\",\"392\":\"691ad3cf\",\"407\":\"74d86dba\",\"440\":\"147f68dd\",\"442\":\"5e089b24\",\"475\":\"5a50880a\",\"530\":\"ccd1a06c\",\"538\":\"a595eb3c\",\"567\":\"97e07591\",\"591\":\"b15b3f88\",\"628\":\"c7dc850f\",\"660\":\"fb2e776f\",\"685\":\"73d96f35\",\"733\":\"8916443c\",\"762\":\"0ad3d19a\",\"770\":\"3e7fdb8d\",\"807\":\"a5103c12\",\"815\":\"ce8a4796\",\"833\":\"7309b20e\",\"837\":\"9c486545\",\"853\":\"6b1d4c96\",\"887\":\"9fcb6f69\",\"963\":\"fac1abf0\",\"967\":\"3fff6c95\",\"989\":\"43c9d755\"}[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/\" + chunkId + \".\" + {\"3\":\"d7d90324\",\"47\":\"3b2e11c1\",\"98\":\"6e58ccde\",\"178\":\"0de2f367\",\"243\":\"d375a07c\",\"253\":\"d265a674\",\"296\":\"7ed776f8\",\"334\":\"0de2f367\",\"362\":\"051ed5b6\",\"367\":\"7ed776f8\",\"440\":\"0de2f367\",\"442\":\"1ae91ed9\",\"475\":\"9d5c4ba5\",\"530\":\"63dbc672\",\"538\":\"9d5c4ba5\",\"628\":\"54fd68f0\",\"660\":\"1ae91ed9\",\"685\":\"1245decc\",\"733\":\"e9ebf6e5\",\"762\":\"9d5c4ba5\",\"815\":\"44f5d4a3\",\"837\":\"0de8c849\",\"853\":\"d265a674\",\"887\":\"b919cf36\",\"963\":\"88fca54b\",\"967\":\"7ed776f8\",\"989\":\"4b372069\"}[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__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"vyhub-central-web:\";\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\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"3\":1,\"47\":1,\"98\":1,\"178\":1,\"243\":1,\"253\":1,\"296\":1,\"334\":1,\"362\":1,\"367\":1,\"440\":1,\"442\":1,\"475\":1,\"530\":1,\"538\":1,\"628\":1,\"660\":1,\"685\":1,\"733\":1,\"762\":1,\"815\":1,\"837\":1,\"853\":1,\"887\":1,\"963\":1,\"967\":1,\"989\":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\t143: 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(!/^(243|253|530|685)$/.test(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[\"webpackChunkvyhub_central_web\"] = self[\"webpackChunkvyhub_central_web\"] || [];\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, [998], function() { return __webpack_require__(29037); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["headers","store","common","Authorization","OpenAPIClientAxios","definition","config","withServer","axiosConfigDefaults","baseURL","getClient","window","render","_vm","this","_h","$createElement","_c","_self","staticStyle","$route","meta","hideFooter","_e","attrs","_v","staticRenderFns","staticClass","_s","Date","getFullYear","$t","name","component","VBtn","scopedSlots","_u","key","fn","ref","item","class","type","data","icon","title","text","VCol","$vuetify","breakpoint","mdAndUp","allowedLinks","linksRight","on","logout","$event","$router","push","_l","link","index","$store","getters","_g","_b","flagToDisplay","$i18n","locale","changeLanguage","getLocaleName","user","username","external","props","menuLinks","methods","AuthService","emitLogout","computed","navLink","tabs","length","stopPropagation","proxy","tab","menuLink","listItem","cartPacketCount","default","mounted","fetchData","ShopService","VBadge","params","accountId","creditAccount","id","currency","utils","formatDecimal","balance","symbol","components","Credits","ShoppingCart","navLinks","VAppBarNavIcon","allowedTabs","listActive","active","path","ProfileMenu","BurgerMenu","NavigationLink","links","reqProp","localStorage","filter","VAppBar","$slots","$scopedSlots","_t","smAndDown","i18n","document","siteKey","analyticsKey","Vue","loaderOptions","autoHideBadge","enabled","router","TheLandingPageHeader","Notification","TheFooter","TheHeader","beforeMount","created","client","err","last_errors","VApp","Vuetify","VTooltip","VIcon","VListItem","VAvatar","VFlex","VLayout","VSelect","VTextarea","VCheckbox","VColorPickerCanvas","VColorPicker","VSwitch","VSlider","VDatePicker","VTimePicker","VTabs","VStepper","icons","iconfont","values","vyhub","VyHubIcon","discord","DiscordIcon","theme","options","customProperties","minifyTheme","themes","light","primary","dark","secondary","accent","background","VueApexCharts","Axios","vuetify","h","App","$mount","Sentry","dsn","dateTimeFormats","en","short","year","month","day","long","hour","minute","de","loadLocaleMessages","locales","require","messages","keys","forEach","matched","match","VueI18n","getItem","navigator","language","fallbackLocale","VueRouter","routes","cleanPage","requiresAuth","requiresProp","redirect","landingPage","userId","mode","base","process","scrollBehavior","to","from","savedPosition","x","y","beforeEach","next","query","login","some","record","AccessControlService","console","log","returnUrl","DEFAULT_TITLE","afterEach","undefined","cookie","$checkProp","prop","properties","el","axios","ReferenceError","http","adapter","throttleAdapterEnhancer","threshold","throttledHttp","auth","getToken","post","qs","revokeToken","token","token_type","client_id","password","captcha_version","captcha_token","grant_type","scope","authorize","redirect_uri","response_type","state","confirm","maxRedirects","newContact","mail","newContactForm","vh_client_id","requestedScopes","async","_refreshToken","refresh_token","join","access_token","expires_in","api","refreshAfter","setSeconds","getSeconds","accessToken","refreshToken","setAuthTokens","refreshUser","setProperties","userModel","captcha","callback","errorCallback","model","indexOf","split","ref_code","version","openapi","user_register","then","catch","email","user_sendMailConfirmationCode","oapi","rsp","user_getCurrentUser","redirectUri","location","href","defaults","header","tryRefresh","fetchUserData","loginRefreshToken","response","status","e","selectAddress","address","shop_getCartPackets","UtilService","notifyUnexpectedError","finance_getAccount","uuid","debit","action","redirect_url","debitId","stripe","loadStripe","public_key","Error","result","redirectToCheckout","sessionId","session_id","error","message","langService","HumanizeDurationLanguage","humanizeDuration","HumanizeDuration","unitMeasures","mo","w","d","m","s","formatLength","seconds","humanize","units","formatElapsedTime","mseconds","round","largest","detail","showFile","blob","mediaType","newBlob","Blob","msSaveOrOpenBlob","URL","createObjectURL","createElement","download","click","setTimeout","revokeObjectURL","decimal","toLocaleString","minimumFractionDigits","getFullUrl","origin","formatDate","datetime","isSingularTimeunit","random_string","characters","charactersLength","i","charAt","Math","floor","random","daysUntilDate","date","oneDay","ceil","getTime","setIntervalX","delay","repetitions","intervalID","setInterval","clearInterval","formatErrorMessage","errDet","returnObject","code","msg","String","Vuex","getDefaultState","strict","plugins","createPersistedState","isLoggedIn","mutations","SET_TOKEN","SET_CART_PACKET_COUNT","SET_USER","RESET","Object","assign","SET_PROPERTIES","SET_ADDRESS","SET_CREDIT_ACCOUNT","credits","actions","commit","setUserData","setCartPacketCount","setAddress","setCreditAccount","modules","map","webpackContext","req","webpackContextResolve","__webpack_require__","o","resolve","module","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","call","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","splice","r","n","getter","__esModule","a","defineProperty","enumerable","get","f","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","hmd","create","children","set","obj","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","l","url","done","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","bind","target","head","appendChild","Symbol","toStringTag","value","nmd","paths","p","createStylesheet","fullhref","reject","linkTag","rel","onLinkComplete","errorType","realHref","request","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","test","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}