text: // all routes here.
  // eslint-disable-next-line vue/script-indent
  import {
    About,
    ACMRank,
    Announcements,
    ApplyResetPassword,
    FAQ,
    Home,
    Logout,
    NotFound,
    OIRank,
    Problem,
    ProblemList,
    ResetPassword,
    SubmissionDetails,
    SubmissionList,
    UserHome
  } from '../views';
  
  import * as Contest from '@oj/views/contest';
  import * as Setting from '@oj/views/setting';
  
  export default [
    {
      name: 'home',
      path: '/',
      meta: {title: 'Home'},
      component: Home
    },
    {
      name: 'logout',
      path: '/logout',
      meta: {title: 'Logout'},
      component: Logout
    },
    {
      name: 'apply-reset-password',
      path: '/apply-reset-password',
      meta: {title: 'Apply Reset Password'},
      component: ApplyResetPassword
    },
    {
      name: 'reset-password',
      path: '/reset-password/:token',
      meta: {title: 'Reset Password'},
      component: ResetPassword
    },
    {
      name: 'problem-list',
      path: '/problem',
      meta: {title: 'Problem List'},
      component: ProblemList
    },
    {
      name: 'problem-details',
      path: '/problem/:problemID',
      meta: {title: 'Problem Details'},
      component: Problem
    },
    {
      name: 'submission-list',
      path: '/status',
      meta: {title: 'Submission List'},
      component: SubmissionList
    },
    {
      name: 'submission-details',
      path: '/status/:id/',
      meta: {title: 'Submission Details'},
      component: SubmissionDetails
    },
    {
      name: 'contest-list',
      path: '/contest',
      meta: {title: 'Contest List'},
      component: Contest.ContestList
    },
    {
      name: 'contest-details',
      path: '/contest/:contestID/',
      component: Contest.ContestDetails,
      meta: {title: 'Contest Details'},
      children: [
        {
          name: 'contest-submission-list',
          path: 'submissions',
          component: SubmissionList
        },
        {
          name: 'contest-problem-list',
          path: 'problems',
          component: Contest.ContestProblemList
        },
        {
          name: 'contest-problem-details',
          path: 'problem/:problemID/',
          component: Problem
        },
        {
          name: 'contest-announcement-list',
          path: 'announcements',
          component: Announcements
        },
        {
          name: 'contest-rank',
          path: 'rank',
          component: Contest.ContestRank
        },
        {
          name: 'acm-helper',
          path: 'helper',
          component: Contest.ACMContestHelper
        }
      ]
    },
    {
      name: 'acm-rank',
      path: '/acm-rank',
      meta: {title: 'ACM Rankings'},
      component: ACMRank
    },
    {
      name: 'oi-rank',
      path: '/oi-rank',
      meta: {title: 'OI Rankings'},
      component: OIRank
    },
    {
      name: 'user-home',
      path: '/user-home',
      component: UserHome,
      meta: {requiresAuth: true, title: 'User Home'}
    },
    {
      path: '/setting',
      component: Setting.Settings,
      children: [
        {
          name: 'default-setting',
          path: '',
          meta: {requiresAuth: true, title: 'Default Settings'},
          component: Setting.ProfileSetting
        },
        {
          name: 'profile-setting',
          path: 'profile',
          meta: {requiresAuth: true, title: 'Profile Settings'},
          component: Setting.ProfileSetting
        },
        {
          name: 'account-setting',
          path: 'account',
          meta: {requiresAuth: true, title: 'Account Settings'},
          component: Setting.AccountSetting
        },
        {
          name: 'security-setting',
          path: 'security',
          meta: {requiresAuth: true, title: 'Security Settings'},
          component: Setting.SecuritySetting
        }
      ]
    },
    {
      path: '/about',
      name: 'about',
      meta: {title: 'About'},
      component: About
    },
    {
      path: '/faq',
      name: 'faq',
      meta: {title: 'FAQ'},
      component: FAQ
    },
    {
      path: '*',
      meta: {title: '404'},
      component: NotFound
    }
  ];
  