import Vue from "vue" ; import VueRouter , { RouteConfig } from "vue-router" ; import { authGuard , authRedirectGuard , loginCallbackGuard } from "./auth" ; Vue . use ( VueRouter ) ; export const router = new VueRouter ( { mode : "history" , routes : [ { path : "/login" , beforeEnter : authRedirectGuard } , { path : "/login-callback" , beforeEnter : loginCallbackGuard } , { path : "/privacy-policy" , component : ( ) => import ( "./components/PrivacyPolicy.vue" ) , } , { path : "/docs" , component : ( ) => import ( "./components/docs/DocsLayout.vue" ) , children : [ { path : "" , redirect : "/docs/introduction" , } , { path : "introduction" , component : ( ) => import ( "./components/docs/Introduction.vue" ) , } , { path : "configuration/configuration-format" , component : ( ) => import ( "./components/docs/ConfigurationFormat.vue" ) , } , { path : "configuration/permissions" , component : ( ) => import ( "./components/docs/Permissions.vue" ) , } , { path : "configuration/plugin-configuration" , component : ( ) => import ( "./components/docs/PluginConfiguration.vue" ) , } , { path : "reference/argument-types" , component : ( ) => import ( "./components/docs/ArgumentTypes.vue" ) , } , { path : "setup-guides/logs" , component : ( ) => import ( "./components/docs/WorkInProgress.vue" ) , } , { path : "setup-guides/moderation" , component : ( ) => import ( "./components/docs/WorkInProgress.vue" ) , } , { path : "setup-guides/counters" , component : ( ) => import ( "./components/docs/Counters.vue" ) , } , { path : "plugins/:pluginName/:tab?" , component : ( ) => import ( "./components/docs/Plugin.vue" ) , } , ] , } , { path : "/dashboard" , component : ( ) => import ( "./components/dashboard/Layout.vue" ) , beforeEnter : authGuard , children : [ { path : "" , component : ( ) => import ( "./components/dashboard/GuildList.vue" ) , } , { path : "guilds/:guildId/info" , component : ( ) => import ( "./components/dashboard/GuildInfo.vue" ) , } , { path : "guilds/:guildId/config" , component : ( ) => import ( "./components/dashboard/GuildConfigEditor.vue" ) , } , { path : "guilds/:guildId/access" , component : ( ) => import ( "./components/dashboard/GuildAccess.vue" ) , } , { path : "guilds/:guildId/import-export" , component : ( ) => import ( "./components/dashboard/GuildImportExport.vue" ) , } , ] , } , ] , scrollBehavior ( to , from , savedPosition ) { if ( to . hash ) { return { selector : to . hash , } ; } else if ( savedPosition ) { return savedPosition ; } else { return { x : 0 , y : 0 } ; } } , } ) ;