mirror of https://github.com/lissy93/dashy
51 lines
2.0 KiB
JavaScript
51 lines
2.0 KiB
JavaScript
/* eslint-disable no-multi-spaces */
|
|
// Import core framework and essential utils
|
|
import Vue from 'vue';
|
|
import VueI18n from 'vue-i18n'; // i18n for localization
|
|
|
|
// Import component Vue plugins, used throughout the app
|
|
import VTooltip from 'v-tooltip'; // A Vue directive for Popper.js, tooltip component
|
|
import VModal from 'vue-js-modal'; // Modal component
|
|
import VSelect from 'vue-select'; // Select dropdown component
|
|
import VTabs from 'vue-material-tabs'; // Tab view component, used on the config page
|
|
import Toasted from 'vue-toasted'; // Toast component, used to show confirmation notifications
|
|
|
|
// Import base Dashy components and utils
|
|
import Dashy from '@/App.vue'; // Main Dashy Vue app
|
|
import router from '@/router'; // Router, for navigation
|
|
import serviceWorker from '@/utils/InitServiceWorker'; // Service worker initialization
|
|
import clickOutside from '@/utils/ClickOutside'; // Directive for closing popups, modals, etc
|
|
import { messages } from '@/utils/languages'; // Language texts
|
|
import ErrorReporting from '@/utils/ErrorReporting'; // Error reporting initializer (off)
|
|
import { toastedOptions, language as defaultLanguage } from '@/utils/defaults'; // Defaults
|
|
|
|
// Initialize global Vue components
|
|
Vue.use(VueI18n);
|
|
Vue.use(VTooltip);
|
|
Vue.use(VModal);
|
|
Vue.use(VTabs);
|
|
Vue.use(Toasted, toastedOptions);
|
|
Vue.component('v-select', VSelect);
|
|
Vue.directive('clickOutside', clickOutside);
|
|
|
|
Vue.config.productionTip = false; // Disable annoying console message
|
|
|
|
// Setup i18n translations
|
|
const i18n = new VueI18n({
|
|
locale: defaultLanguage,
|
|
fallbackLocale: defaultLanguage,
|
|
messages,
|
|
});
|
|
|
|
// Checks if service worker not disable, and if so will registers it
|
|
serviceWorker();
|
|
|
|
// Checks if user enabled error reporting, and if so will initialize it
|
|
ErrorReporting(Vue, router);
|
|
|
|
// Render function
|
|
const render = (awesome) => awesome(Dashy);
|
|
|
|
// All done, now just initialize main Vue app!
|
|
new Vue({ router, render, i18n }).$mount('#app');
|