import { createApp } from 'vue'; import 'bootstrap/dist/js/bootstrap'; import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'; import { useMainStore } from '@/store'; import baseMixin from '@/mixins/base-mixin'; import { createPinia } from 'pinia'; import { vMaska } from 'maska'; import LoadScript from 'vue-plugin-load-script'; import analyticsMixin from '@/mixins/analytics-mixin'; import experimentMixin from '@/mixins/experiment-mixin'; import defineGlobalRules from '@/helpers/global-rule-definer'; import { FocusTrap } from 'focus-trap-vue'; import router from './router'; import App from './App.vue'; // Vue App Setup const vueApp = createApp(App); vueApp.config.compilerOptions.isCustomElement = (tag) => (tag === 'siteSubHeader' || tag === 'ServicePackages' || tag === 'servicePackageQuestion'); // Pinia const pinia = createPinia(); vueApp.use(pinia); pinia.use(piniaPluginPersistedstate); useMainStore().populateInitialState(); // Additional Vue items to setup vueApp.use(router); vueApp.use(LoadScript); vueApp.directive('maska', vMaska); vueApp.mixin(baseMixin); vueApp.mixin(analyticsMixin); vueApp.mixin(experimentMixin); vueApp.component('FocusTrap', FocusTrap); vueApp.mount('#app'); // define global rules defineGlobalRules();