felicity-lims/webapp/main.ts
Aurthur Musendame ebd039c507 added lj charts
2024-11-23 18:30:27 +02:00

74 lines
No EOL
3.3 KiB
TypeScript

import { createApp, markRaw } from 'vue';
import urql from '@urql/vue';
import { MotionPlugin } from '@vueuse/motion';
import VueSweetalert2 from 'vue-sweetalert2';
import Notifications from '@kyvg/vue3-notification'
import FloatingVue from 'floating-vue';
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
import { library } from '@fortawesome/fontawesome-svg-core';
import {
faBell, faCog, faUser, faChevronDown, faBars, faMeteor, faTachometerAlt, faBullseye,
faUserInjured, faClinicMedical, faVial, faGripVertical, faDatabase, faTruck, faBoxesStacked,
faFlag, faFileMedical, faUsers, faCaravan, faLaptopMedical, faFill, faMicroscope, faGripHorizontal,
faCopy, faCodeBranch, faMoneyBill, faEdit, faLeftRight, faSort, faTimes, faEllipsis, faBarcode,
faCheckCircle, faTimesCircle, faThumbsDown, faThumbsUp, faQuestion, faDownload, faBan,
faCartShopping, faInfo, faInfoCircle, faAnchor, faThList, faTh, faTrash, faAsterisk, faArrowUpWideShort,
faArrowDown, faLevelDownAlt, faArrowDownWideShort, faPen, faDeleteLeft, faEllipsisH
} from '@fortawesome/free-solid-svg-icons';
import { CkeditorPlugin } from '@ckeditor/ckeditor5-vue';
import VueDatePicker from '@vuepic/vue-datepicker';
import LayoutDashboard from '@/views/layouts/LayoutDashboard.vue';
import LayoutEmpty from '@/views/layouts/LayoutEmpty.vue';
import LayoutMobile from '@/views/layouts/LayoutMobile.vue';
import 'vue-multiselect/dist/vue-multiselect.css';
import 'floating-vue/dist/style.css';
import 'sweetalert2/dist/sweetalert2.min.css';
import 'notyf/notyf.min.css';
import '@vuepic/vue-datepicker/dist/main.css'
import '@/index.css';
import '@/assets/css/style.css';
import '@/assets/css/ckeditor.css';
import App from './App.vue';
import router from './router';
import { createPinia } from 'pinia';
import { urqlClient } from './urql';
const icons = [
faBell, faCog, faUser, faChevronDown, faBars, faMeteor, faTachometerAlt, faBullseye,
faUserInjured, faClinicMedical, faVial, faGripVertical, faDatabase, faTruck, faBoxesStacked,
faFlag, faFileMedical, faUsers, faCaravan, faLaptopMedical, faFill, faMicroscope, faGripHorizontal,
faCopy, faCodeBranch, faMoneyBill, faEdit, faLeftRight, faSort, faTimes, faEllipsis, faBarcode,
faCheckCircle, faTimesCircle, faThumbsDown, faThumbsUp, faQuestion, faDownload, faBan, faCartShopping,
faInfoCircle, faAnchor, faThList, faTh, faInfo, faTrash, faAsterisk, faArrowUpWideShort, faArrowDownWideShort,
faArrowDown, faLevelDownAlt, faPen, faDeleteLeft, faEllipsisH
]
library.add(...icons);
const pinia = createPinia();
pinia.use(({ store }) => {
store.router = markRaw(router);
});
const app = createApp(App);
app.component('font-awesome-icon', FontAwesomeIcon);
app.component('VueDatePicker', VueDatePicker);
app.component('default-layout', LayoutDashboard);
app.component('empty-layout', LayoutEmpty);
app.component('mobile-layout', LayoutMobile);
app.use(VueSweetalert2);
app.use(Notifications)
app.use(CkeditorPlugin);
app.use(FloatingVue);
app.use(MotionPlugin);
app.use(pinia);
app.use(router);
app.use(urql, urqlClient);
app.mount('#felicityApp');
// https://enterprisevue.dev/blog/error-handling-in-vue-3/
// https://medium.com/@dillonchanis/handling-errors-in-vue-with-error-boundaries-91f6ead0093b