2023-09-23 15:11:28 +00:00
|
|
|
/* eslint-disable sort-imports */
|
|
|
|
/* global version */
|
2023-09-30 17:40:11 +00:00
|
|
|
|
2019-05-10 21:12:00 +00:00
|
|
|
import Vue from 'vue'
|
|
|
|
import VueI18n from 'vue-i18n'
|
2023-09-30 17:40:11 +00:00
|
|
|
import VueRouter from 'vue-router'
|
2019-05-10 21:12:00 +00:00
|
|
|
|
2021-09-16 17:24:36 +00:00
|
|
|
import './style.scss'
|
2019-05-10 21:12:00 +00:00
|
|
|
|
|
|
|
import app from './app.vue'
|
|
|
|
import messages from './langs/langs.js'
|
2023-09-30 17:40:11 +00:00
|
|
|
import router from './router'
|
2019-05-10 21:12:00 +00:00
|
|
|
|
|
|
|
Vue.use(VueI18n)
|
2023-09-30 17:40:11 +00:00
|
|
|
Vue.use(VueRouter)
|
2019-05-10 21:12:00 +00:00
|
|
|
|
2021-09-26 12:49:18 +00:00
|
|
|
const cookieSet = Object.fromEntries(document.cookie.split('; ')
|
|
|
|
.map(el => el.split('=')
|
|
|
|
.map(el => decodeURIComponent(el))))
|
|
|
|
|
2019-05-10 21:12:00 +00:00
|
|
|
const i18n = new VueI18n({
|
|
|
|
fallbackLocale: 'en',
|
2023-09-23 15:11:28 +00:00
|
|
|
locale: cookieSet.lang || navigator?.language || 'en',
|
2019-05-10 21:12:00 +00:00
|
|
|
messages,
|
|
|
|
})
|
|
|
|
|
|
|
|
new Vue({
|
|
|
|
components: { app },
|
2023-09-30 17:40:11 +00:00
|
|
|
|
|
|
|
data: {
|
|
|
|
customize: {},
|
|
|
|
darkTheme: false,
|
|
|
|
version,
|
|
|
|
},
|
|
|
|
|
2023-09-23 15:11:28 +00:00
|
|
|
el: '#app',
|
2019-05-10 21:12:00 +00:00
|
|
|
i18n,
|
2023-09-30 17:40:11 +00:00
|
|
|
|
|
|
|
methods: {
|
|
|
|
navigate(to) {
|
|
|
|
this.$router.replace(to)
|
|
|
|
.catch(err => {
|
|
|
|
if (VueRouter.isNavigationFailure(err, VueRouter.NavigationFailureType.duplicated)) {
|
|
|
|
// Hide duplicate nav errors
|
|
|
|
return
|
|
|
|
}
|
|
|
|
throw err
|
|
|
|
})
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
mounted() {
|
|
|
|
this.customize = window.OTSCustomize
|
|
|
|
this.darkTheme = window.getTheme() === 'dark'
|
|
|
|
},
|
|
|
|
|
|
|
|
name: 'OTS',
|
2019-05-10 21:12:00 +00:00
|
|
|
render: createElement => createElement('app'),
|
2023-09-30 17:40:11 +00:00
|
|
|
router,
|
|
|
|
|
|
|
|
watch: {
|
|
|
|
darkTheme(to) {
|
|
|
|
window.setTheme(to ? 'dark' : 'light')
|
|
|
|
},
|
|
|
|
},
|
2019-05-10 21:12:00 +00:00
|
|
|
})
|