import { createApp } from 'vue'
import App from './App.vue'
import router, {initMainRouter} from './router'
import './style/index.scss'
import 'virtual:svg-icons-register'    // 【svg-icons相关】
import initComponent from '@/plugins/initComponent'
import initProperties from '@/plugins/initProperties'
import repeatFileValid from '@/plugins/repeatFileValid'
import initDirect from '@/plugins/initDirect'
import 'default-passive-events'
import './browerPatch'
import { createPinia } from 'pinia'
import ElementPlus, {ElNotification} from 'element-plus'
import 'element-plus/dist/index.css'


// repeatFileValid()
await initMainRouter()  //  路由挂载前初始化路由表
const app = createApp(App)
app.config.errorHandler = (err, instance, info) => {
  console.error(err)
  const path = instance?.$options.__file
  ElNotification({
    duration: 0,
    title: `系统异常(${path?.match(/smart-search-web(.*)/)?.[1] || path})`,
    message: err.stack,
    type: 'error',
  })
};
app.use(createPinia())
await initProperties(app)
initComponent(app)
app.use(initDirect)
app.use(router)
app.use(ElementPlus as any)
app.mount('#app')
// 设置为 true 以在浏览器开发工具的 performance/timeline 面板中启用对组件初始化、编译、渲染和更新的性能追踪。
app.config.performance = true