import 'font-awesome/css/font-awesome.min.css' import Vue from 'vue' // Components import './components' // Plugins import './plugins' // Material FontIcon import 'material-design-icons-iconfont/dist/material-design-icons.css' // Fortawesome import '@fortawesome/fontawesome-free/css/all.css' // Sync router with store import { sync } from 'vuex-router-sync' // Application imports import App from './App.vue' import i18n from '@/i18n' import router from '@/router' import store from '@/store' import VueLazyLoad from 'vue-lazyload'; Vue.use(VueLazyLoad) import { ApiService, TokenService } from '@/services' // Sync store with router sync(store, router) Vue.config.productionTip = false ApiService.setHeader(); // Set the base URL of the API ApiService.init(process.env.MIX_APP_ROOT_API) require('./services/global/errorHandler.service'); // If token exists set Authorizion header if (TokenService.getToken()) { ApiService.setAuthHeader(); // If info exists set info in Store if(TokenService.getInfo()) { let info = TokenService.getInfo(); store.commit('setInfo', info); } else { store.dispatch('info'); } } import hasRole from '@/services/mixin/hasRole' Vue.mixin(hasRole) /* eslint-disable no-new */ new Vue({ i18n, router, store, render: h => h(App), iconfont: 'fa4' }).$mount('#app');