{"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\"> {{ 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":""}