{"version":3,"mappings":"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","names":["AppProvideKey","setupPage","container","useContainer","logger","ILoggerId","cartApi","ICartApiId","travelCardsApi","ITravelCardsApiId","paymentApi","IPaymentApiId","ticketApi","ITicketApiId","isMobile","useDisplay","cart","ref","lineItem","isLoadingCart","isSaving","isInitialized","cartIsValid","computed","isTravelMoney","cartDataInGAFormat","_a","loadCart","e","saveCart","ProductType","t","useI18n","router","useRouter","isLoadingProduct","isLoadingTravelMoney","addProduct","i18nRoute","routeNames","addTravelMoney","createRouter","createWebHistory","RouterView","LandingPage","__vitePreload","route","routeMiddleware","commonQueryParamMiddleware","useRoute","mainStore","useMainStore","userStore","useUserStore","menuItems","language","config","lastKnownError","storeToRefs","siteHeaderHeight","useSiteHeader","userLoaded","tpAppStyles","currentTime","gmapsApiKey","provide","watch","value","oldValue","instance","getCurrentInstance","refresh","registerError","onMounted","_b","_d","_c","createGtm","pinia","createPinia","app","createApp","App","createContainer","VueCookies","i18n","createVuetify","v1","createVueI18nAdapter","VueReCaptcha"],"ignoreList":[],"sources":["../../ClientApp/src/injectionKeys.ts","../../ClientApp/src/pages/setupPage.ts","../../ClientApp/src/pages/LandingPage.vue","../../ClientApp/src/router/index.ts","../../ClientApp/src/App.vue","../../ClientApp/src/store/index.ts","../../ClientApp/src/main.ts"],"sourcesContent":["import { InjectionKey, Ref } from 'vue';\n\ninterface AppProvide {\n currentTime: Ref;\n // ORDER_TRAVELCARD_URL: Ref;\n gmapsApiKey: Ref;\n}\n\nexport const AppProvideKey: InjectionKey = Symbol.for('webshop:app');\n","import { useContainer } from '@/plugins/inversify';\nimport { ICartApi, ICartApiId } from '@/services/ICartApi';\nimport { ILogger, ILoggerId } from '@/services/ILogger';\nimport { IPaymentApi, IPaymentApiId } from '@/services/IPaymentApi';\nimport { ITicketApi, ITicketApiId } from '@/services/ITicketApi';\nimport { ITravelCardsApi, ITravelCardsApiId } from '@/services/ITravelCardsApi';\nimport { LineItemDto, ProductType, ShoppingCartDto } from '@/types/webapi';\nimport { computed, ref } from 'vue';\nimport { useDisplay } from 'vuetify';\n\nexport function setupPage() {\n const container = useContainer();\n const logger = container.get(ILoggerId);\n const cartApi = container.get(ICartApiId);\n const travelCardsApi = container.get(ITravelCardsApiId);\n const paymentApi = container.get(IPaymentApiId);\n const ticketApi = container.get(ITicketApiId);\n\n const { mobile: isMobile } = useDisplay();\n\n const cart = ref();\n const lineItem = ref>();\n const isLoadingCart = ref(false);\n const isSaving = ref(false);\n const isInitialized = ref(false);\n const cartIsValid = computed(\n () =>\n lineItem.value &&\n lineItem.value.travelCard &&\n lineItem.value.productId &&\n ((isTravelMoney.value && lineItem.value.price) || (lineItem.value.configurationId && lineItem.value.categoryId))\n );\n\n const cartDataInGAFormat = computed(() =>\n cart.value?.lineItems.map(lineItem => ({\n id: lineItem.productId,\n name: lineItem.name,\n price: lineItem.price.toFixed(2).toString(),\n quantity: lineItem.quantity\n }))\n );\n\n async function loadCart() {\n try {\n isLoadingCart.value = true;\n cart.value = await cartApi.getCart();\n lineItem.value = cart.value.lineItems[0];\n } catch (e) {\n logger.error(e);\n throw e;\n } finally {\n isLoadingCart.value = false;\n }\n }\n\n async function saveCart() {\n try {\n isSaving.value = true;\n cart.value = await cartApi.setLineItem(lineItem.value as LineItemDto);\n lineItem.value = cart.value.lineItems[0];\n isSaving.value = false;\n } catch (e) {\n isSaving.value = false;\n logger.error(e);\n throw e;\n }\n }\n\n const isTravelMoney = computed(() => lineItem.value?.productType === ProductType.TravelMoney);\n\n return {\n isMobile,\n logger,\n cart,\n cartIsValid,\n lineItem,\n isLoadingCart,\n isSaving,\n isInitialized,\n cartDataInGAFormat,\n isTravelMoney,\n cartApi,\n travelCardsApi,\n paymentApi,\n ticketApi,\n loadCart,\n saveCart\n };\n}\n","\r\n\r\n\r\n","import { RouterView, createRouter, createWebHistory } from 'vue-router';\nimport { routeMiddleware } from '@/i18n';\nimport { commonQueryParamMiddleware } from '@/features/common/stores';\nimport { LandingPage } from '@/pages';\n\nexport const routeNames = {\n home: 'home',\n notFound: 'not-found',\n tickets: 'tickets',\n cards: 'cards',\n addTravelMoney: 'add-travelmoney',\n checkout: 'checkout',\n orders: 'orders',\n orderDetails: 'order-details',\n checkoutPaymentVerification: 'checkout-payment-verification',\n travelcardPaymentVerification: 'travelcard-payment-verification',\n checkoutSuccess: 'checkout-success',\n checkoutSuccessTravelcard: 'checkout-success-travelcard',\n checkoutFailure: 'checkout-failure',\n orderTravelCard: 'order-travelcard'\n};\n\nconst router = createRouter({\n history: createWebHistory(),\n routes: [\n {\n path: '/:locale?',\n component: RouterView,\n children: [\n {\n name: routeNames.home,\n path: '',\n component: LandingPage\n },\n {\n name: routeNames.tickets,\n path: 'tickets',\n component: () => import('@/pages/TicketSelectionPage.vue')\n },\n {\n name: routeNames.cards,\n path: 'cards',\n component: () => import('@/pages/CardSelectionPage.vue')\n },\n {\n name: routeNames.addTravelMoney,\n path: 'add-travelmoney',\n component: () => import('@/pages/AddTravelMoneyPage.vue')\n },\n {\n name: routeNames.checkout,\n path: 'checkout',\n component: () => import('@/pages/checkout/CheckoutPage.vue')\n },\n {\n name: routeNames.checkoutPaymentVerification,\n path: 'checkout/paymentverification',\n component: () => import('@/pages/checkout/CheckoutPaymentVerification.vue'),\n props: route => ({\n transactionId: route.query.transactionId,\n responseCode: route.query.responseCode,\n isTravelCardOrder: false\n })\n },\n {\n name: routeNames.travelcardPaymentVerification,\n path: 'checkout/travelcardpaymentverification',\n component: () => import('@/pages/checkout/CheckoutPaymentVerification.vue'),\n props: route => ({\n transactionId: route.query.transactionId,\n responseCode: route.query.responseCode,\n isTravelCardOrder: true\n })\n },\n {\n name: routeNames.checkoutSuccess,\n path: 'checkout/success',\n component: () => import('@/pages/checkout/CheckoutSuccess.vue'),\n props: route => ({\n orderId: route.query.orderId\n })\n },\n {\n name: routeNames.checkoutSuccessTravelcard,\n path: 'checkout/success-travelcard',\n component: () => import('@/pages/checkout/CheckoutSuccessTravelCard.vue'),\n props: route => ({\n orderId: route.query.orderId,\n transactionId: route.query.transactionId\n })\n },\n {\n name: routeNames.checkoutFailure,\n path: 'checkout/failure',\n component: () => import('@/pages/checkout/CheckoutFailure.vue'),\n props: route => ({\n errorMessage: route.params.errorMessage,\n orderNumber: route.query.orderNumber,\n isTravelCardOrder: String(route.params.isTravelCardOrder).toLowerCase() === 'true'\n })\n },\n {\n name: routeNames.orders,\n path: 'orders',\n component: () => import('@/pages/OrdersPage.vue'),\n },\n {\n name: routeNames.orderDetails,\n path: 'orders/:orderId',\n component: () => import('@/pages/OrderDetailsPage.vue'),\n props: true\n },\n {\n name: routeNames.orderTravelCard,\n path: 'order-travelcard',\n component: () => import('@/pages/OrderTravelCardPage.vue')\n }\n ]\n },\n {\n path: '/:pathMatch(.*)*',\n redirect: { name: routeNames.home }\n }\n ]\n});\n\nrouter.beforeEach(routeMiddleware);\nrouter.beforeEach(commonQueryParamMiddleware);\n\nexport default router;\n","\n\n\n\n\n","import { createPinia } from 'pinia';\n\nconst pinia = createPinia();\n\nexport default pinia;\n","import '@mdi/font/css/materialdesignicons.css';\nimport '@geta/kolumbus-assets';\nimport '@geta/kolumbus-frontend/styles';\nimport 'vuetify/styles';\nimport '@/styles/main.scss';\nimport 'reflect-metadata';\nimport { createApp } from 'vue';\nimport { createVuetify } from 'vuetify';\nimport { createVueI18nAdapter } from 'vuetify/locale/adapters/vue-i18n';\nimport App from './App.vue';\nimport pinia from './store';\nimport router from './router';\nimport i18n from './i18n';\nimport v1 from '@geta/kolumbus-frontend/blueprints/v1';\nimport { createContainer } from '@/plugins/inversify';\nimport { useI18n } from 'vue-i18n';\nimport VueCookies from 'vue3-cookies';\nimport { VueReCaptcha } from 'vue-recaptcha-v3-esm';\nimport { useMainStore } from './features/common/stores';\n\nconst app = createApp(App)\n .use(createContainer())\n .use(VueCookies)\n .use(router)\n .use(pinia)\n .use(i18n)\n .use(\n createVuetify({\n blueprint: v1,\n locale: {\n adapter: createVueI18nAdapter({ i18n, useI18n })\n }\n })\n );\n\nconst mainStore = useMainStore();\nmainStore.loadConfig().then(() => {\n if (mainStore.config.googleRecaptcha?.siteKey) {\n app.use(VueReCaptcha, {\n siteKey: mainStore.config.googleRecaptcha.siteKey,\n loaderOptions: { autoHideBadge: true }\n });\n }\n\n app.mount('#app');\n});\n"],"file":"assets/index-DP69r2Lx.js"}