require('./bootstrap.js'); import './styles/theme.css'; require('./helper/autocloseMenu.js'); //window.VueRouter = require('vue-router').default; //import VueRouter from 'vue-router'; import Util, { methods as utilMethods } from './util.js'; import routes from './routesIndex.js'; import OtpInput from "@bachdgvn/vue-otp-input"; Vue.component("v-otp-input", OtpInput); Vue.use(VueRouter); Vue.mixin(Util); Vue.use(OtpInput); const router = new VueRouter({ mode: 'history', linkActiveClass: 'active', routes }); var publicVoterRouteNames = { 'Voter Login': true, 'Voter Verify': true, 'Physical Gate Display': true, 'Roulette Wheel Demo': true, 'penyata': true }; router.beforeEach(function (to, from, next) { if (to.name === 'Voter Login' && utilMethods.isAdminPortalSession()) { var dest = utilMethods.getAdminEntryRoute(); return next(Object.assign({}, dest, { replace: true })); } var isAdminRoute = to.path.indexOf('/admin') === 0; var isPublicVoterRoute = !!publicVoterRouteNames[to.name] || to.path.indexOf('/display/') === 0 || to.path.indexOf('/demo/') === 0; if (!isAdminRoute && !isPublicVoterRoute && !utilMethods.isLogin()) { return next({ name: 'Voter Login', replace: true }); } if (!isAdminRoute || to.name === 'Admin Login') { return next(); } if (!utilMethods.isLogin()) { return next({ name: 'Admin Login', replace: true }); } var role = localStorage.getItem('admin_role'); if (role === '3' && to.name !== 'Kehadiran Calon') { return next({ name: 'Kehadiran Calon', replace: true }); } next(); }); axios.interceptors.response.use(function (response) { return response; }, function (error) { if (error.response && error.response.status === 401) { utilMethods.handleUnauthorized(router); } return Promise.reject(error); }); const app = new Vue({ router }).$mount('#app');