import Vue from 'vue'; import App from './App.vue'; import router from './router'; import store from './store'; import { AlertPlugin, BadgePlugin, ButtonPlugin, BVConfigPlugin, CollapsePlugin, DropdownPlugin, FormPlugin, FormCheckboxPlugin, FormDatepickerPlugin, FormFilePlugin, FormGroupPlugin, FormInputPlugin, FormRadioPlugin, FormSelectPlugin, FormTagsPlugin, InputGroupPlugin, LayoutPlugin, LinkPlugin, ListGroupPlugin, ModalPlugin, NavbarPlugin, NavPlugin, PaginationPlugin, ProgressPlugin, TablePlugin, ToastPlugin, TooltipPlugin } from 'bootstrap-vue'; import Vuelidate from 'vuelidate'; import i18n from './i18n'; // Filters Vue.filter('formatDate', function(value) { if (value instanceof Date) { return value.toISOString().substring(0, 10); } }); Vue.filter('formatTime', function(value) { const timeOptions = { hour: 'numeric', minute: 'numeric', second: 'numeric', timeZoneName: 'short' }; if (value instanceof Date) { return value.toLocaleTimeString('default', timeOptions); } }); // Plugins Vue.use(AlertPlugin); Vue.use(BadgePlugin); Vue.use(ButtonPlugin); Vue.use(BVConfigPlugin, { BFormText: { textVariant: 'secondary' }, BTable: { headVariant: 'light', footVariant: 'light' }, BFormTags: { tagVariant: 'primary', addButtonVariant: 'link-primary' }, BBadge: { variant: 'primary' } }); Vue.use(CollapsePlugin); Vue.use(DropdownPlugin); Vue.use(FormPlugin); Vue.use(FormCheckboxPlugin); Vue.use(FormDatepickerPlugin); Vue.use(FormFilePlugin); Vue.use(FormGroupPlugin); Vue.use(FormInputPlugin); Vue.use(FormRadioPlugin); Vue.use(FormSelectPlugin); Vue.use(FormTagsPlugin); Vue.use(InputGroupPlugin); Vue.use(LayoutPlugin); Vue.use(LayoutPlugin); Vue.use(LinkPlugin); Vue.use(ListGroupPlugin); Vue.use(ModalPlugin); Vue.use(NavbarPlugin); Vue.use(NavPlugin); Vue.use(PaginationPlugin); Vue.use(ProgressPlugin); Vue.use(TablePlugin); Vue.use(ToastPlugin); Vue.use(TooltipPlugin); Vue.use(Vuelidate); new Vue({ router, store, i18n, render: h => h(App) }).$mount('#app');