73 lines
2.4 KiB
JavaScript
73 lines
2.4 KiB
JavaScript
import '../css/app.css'
|
|
import './bootstrap.js'
|
|
import { createApp, h } from 'vue'
|
|
import { createInertiaApp } from '@inertiajs/vue3'
|
|
import { InertiaProgress } from '@inertiajs/progress'
|
|
import Vue3Toastify, { toast } from 'vue3-toastify'
|
|
import 'vue3-toastify/dist/index.css'
|
|
|
|
import { library } from '@fortawesome/fontawesome-svg-core'
|
|
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
|
|
import {
|
|
faUser, faTrash, faCheck, faGear, faHouse,
|
|
faMoneyBillWave, faFolder, faEnvelope, faArrowUpRightFromSquare,
|
|
faStar, faClock, faCircleQuestion, faSliders,
|
|
faBell, faMagnifyingGlass,
|
|
faGraduationCap, faFileInvoice, faHeart, faCertificate,
|
|
faChevronRight, faChevronLeft, faArrowRightFromBracket, faCube,
|
|
faTriangleExclamation, faPlus, faFilePdf, faDownload,
|
|
} from '@fortawesome/free-solid-svg-icons'
|
|
|
|
library.add(
|
|
faUser, faTrash, faCheck, faGear, faHouse,
|
|
faMoneyBillWave, faFolder, faEnvelope, faArrowUpRightFromSquare,
|
|
faStar, faClock, faCircleQuestion, faSliders,
|
|
faBell, faMagnifyingGlass,
|
|
faGraduationCap, faFileInvoice, faHeart, faCertificate,
|
|
faChevronRight, faChevronLeft, faArrowRightFromBracket, faCube,
|
|
faTriangleExclamation, faPlus, faFilePdf, faDownload,
|
|
)
|
|
|
|
InertiaProgress.init()
|
|
|
|
createInertiaApp({
|
|
resolve: name => {
|
|
const pages = import.meta.glob('@domains/**/*.vue')
|
|
|
|
const key = Object.keys(pages).find(k =>
|
|
k.endsWith(`/${name}.vue`) || k.endsWith(`/${name}/index.vue`)
|
|
)
|
|
|
|
if (!key) throw new Error(`Page not found: ${name}`)
|
|
|
|
return pages[key]()
|
|
},
|
|
|
|
setup({ el, App, props, plugin }) {
|
|
const vueApp = createApp({ render: () => h(App, props) })
|
|
|
|
vueApp.use(plugin)
|
|
vueApp.component('font-awesome-icon', FontAwesomeIcon)
|
|
|
|
vueApp.use(Vue3Toastify, {
|
|
autoClose: 10000,
|
|
position: 'bottom-right',
|
|
pauseOnHover: true,
|
|
hideProgressBar: false,
|
|
toastDefaults: {
|
|
success: {
|
|
style: { background: '#4caf50', color: '#fff' },
|
|
progressStyle: { background: '#2e7d32', height: '4px' },
|
|
},
|
|
error: {
|
|
style: { background: '#f44336', color: '#fff' },
|
|
progressStyle: { background: '#c62828', height: '4px' },
|
|
},
|
|
},
|
|
})
|
|
|
|
vueApp.config.globalProperties.$toast = toast
|
|
vueApp.mount(el)
|
|
},
|
|
})
|