{"version":3,"file":"js/app.384b8c8f.js","mappings":"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","sources":["webpack://winpos-weborder/./node_modules/@stencil/core/internal/client/ lazy ^\\.\\/.*\\.entry\\.js.*$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","webpack://winpos-weborder/./src/breakpoints/index.ts","webpack://winpos-weborder/./src/composables/useEmitter.ts","webpack://winpos-weborder/./src/enums/index.ts","webpack://winpos-weborder/./src/functions/index.ts","webpack://winpos-weborder/./src/keys/index.ts","webpack://winpos-weborder/./src/components/OrderItem.vue?9293","webpack://winpos-weborder/./src/components/OrderItem.vue","webpack://winpos-weborder/./src/components/OrderComponent.vue?49f0","webpack://winpos-weborder/./src/components/OrderComponent.vue","webpack://winpos-weborder/./src/components/LanguageSelector.vue?e70a","webpack://winpos-weborder/./src/components/LanguageSelector.vue","webpack://winpos-weborder/./src/components/PaidOrderIcon.vue?fc10","webpack://winpos-weborder/./src/components/PaidOrderIcon.vue","webpack://winpos-weborder/./src/components/CouponsIcon.vue?bdcf","webpack://winpos-weborder/./src/components/CouponsIcon.vue","webpack://winpos-weborder/./src/components/MembershipCard.vue?a256","webpack://winpos-weborder/./src/components/MembershipCard.vue","webpack://winpos-weborder/./src/components/ProfileMenu.vue?7103","webpack://winpos-weborder/./src/components/ProfileMenu.vue","webpack://winpos-weborder/./src/components/NavigationComponent.vue?d818","webpack://winpos-weborder/./src/components/NavigationComponent.vue","webpack://winpos-weborder/./src/components/LanguageSelectorPopup.vue?4886","webpack://winpos-weborder/./src/components/LanguageSelectorPopup.vue","webpack://winpos-weborder/./src/components/ErrorMessage.vue?c228","webpack://winpos-weborder/./src/components/ErrorMessage.vue","webpack://winpos-weborder/./src/components/UpdateComponent.vue?5d33","webpack://winpos-weborder/./src/components/UpdateComponent.vue","webpack://winpos-weborder/./src/App.vue?2a5e","webpack://winpos-weborder/./src/App.vue","webpack://winpos-weborder/./src/i18n/index.ts","webpack://winpos-weborder/./src/i18n/customers/index.ts","webpack://winpos-weborder/./src/registerServiceWorker.ts","webpack://winpos-weborder/./src/main.ts","webpack://winpos-weborder/./src/views/Offline.vue?02fe","webpack://winpos-weborder/./src/views/Offline.vue","webpack://winpos-weborder/./src/functions/position-distance.ts","webpack://winpos-weborder/./src/components/ShopSelector.vue?bbf0","webpack://winpos-weborder/./src/components/ShopSelector.vue","webpack://winpos-weborder/./src/views/HomePage.vue?a457","webpack://winpos-weborder/./src/views/HomePage.vue","webpack://winpos-weborder/./src/router/index.ts","webpack://winpos-weborder/./src/stores/app.ts","webpack://winpos-weborder/./src/stores/auth.ts","webpack://winpos-weborder/./src/stores/cart.ts","webpack://winpos-weborder/./src/stores/coupon.ts","webpack://winpos-weborder/./src/stores/errorMessage.ts","webpack://winpos-weborder/./src/stores/menu.ts","webpack://winpos-weborder/./src/stores/navigation.ts","webpack://winpos-weborder/./src/stores/order.ts","webpack://winpos-weborder/./src/stores/shop.ts","webpack://winpos-weborder/./src/types/index.ts","webpack://winpos-weborder/./src/components/ArticleImage.vue?e84c","webpack://winpos-weborder/./src/components/ArticleImage.vue","webpack://winpos-weborder/./src/components/ConfirmPopup.vue?bc9d","webpack://winpos-weborder/./src/components/ConfirmPopup.vue","webpack://winpos-weborder/./src/components/DropdownComponent.vue?c07a","webpack://winpos-weborder/./src/components/DropdownComponent.vue","webpack://winpos-weborder/./src/components/FavoriteButton.vue?82d9","webpack://winpos-weborder/./src/components/FavoriteButton.vue","webpack://winpos-weborder/./src/components/LoaderComponent.vue?911f","webpack://winpos-weborder/./src/components/LoaderComponent.vue","webpack://winpos-weborder/./src/components/OrderShopInfo.vue?2b43","webpack://winpos-weborder/./src/components/OrderShopInfo.vue","webpack://winpos-weborder/webpack/bootstrap","webpack://winpos-weborder/webpack/runtime/chunk loaded","webpack://winpos-weborder/webpack/runtime/compat get default export","webpack://winpos-weborder/webpack/runtime/define property getters","webpack://winpos-weborder/webpack/runtime/ensure chunk","webpack://winpos-weborder/webpack/runtime/get javascript chunk filename","webpack://winpos-weborder/webpack/runtime/get mini-css chunk filename","webpack://winpos-weborder/webpack/runtime/global","webpack://winpos-weborder/webpack/runtime/hasOwnProperty shorthand","webpack://winpos-weborder/webpack/runtime/load script","webpack://winpos-weborder/webpack/runtime/make namespace object","webpack://winpos-weborder/webpack/runtime/publicPath","webpack://winpos-weborder/webpack/runtime/css loading","webpack://winpos-weborder/webpack/runtime/jsonp chunk loading","webpack://winpos-weborder/webpack/startup"],"sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(() => {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = () => ([]);\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 41993;\nmodule.exports = webpackEmptyAsyncContext;","\nexport const BREAKPOINTS = {\n tabletPortrait: 600,\n tabletLandscape: 900,\n desktop: 1200,\n desktopBig: 1800,\n lowHeight: 600\n}","import { getCurrentInstance } from 'vue';\nexport const useEmitter = () => {\n const internalInstance = getCurrentInstance();\n const emitter = internalInstance?.appContext.config.globalProperties.emitter;\n return emitter;\n};\n","\nexport enum CartItemType {\n Article,\n Suggested\n}\n\nexport enum OrderType {\n TakeAway = \"takeAway\",\n DineInPlace = \"dineInPlace\"\n}\n\n\nexport enum ScreenType {\n Large = 'large',\n Small = 'small'\n}\n\nexport enum OrderStatusState {\n CalculatedPrice = 'CalculatedPrice',\n Added = 'Added',\n Started = 'Started',\n Finnished = 'Finnished',\n Done = 'Done',\n Delivered = 'Delivered',\n Rollbacked = 'Rollbacked',\n}","import {ResponseError, Shop, Translation, Translations} from '@/types';\n\n//returns id of format 'aaaaaaaa'-'aaaa'-'aaaa'-'aaaa'-'aaaaaaaaaaaa'\nexport const guid = () => {\n const s4 = () => {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n \n return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n}\n\n//Ex: statusCode: 500, prefix: \"error.\" => \"error.server\"; \nexport const errorToi18nKey = (statusCode: number, prefix = \"error.\") : string => {\n\n let message = 'unknown';\n\n if (statusCode >= 500) {\n message = 'server';\n } else if(statusCode === 404) {\n message = 'notFound';\n } else if (statusCode >= 400) {\n message = 'badRequest';\n }\n else if (statusCode >= 300) {\n message = 'moved';\n }\n\n return `${prefix}${message}`;\n}\n\nexport const toKebabCase = (str: string) =>\n str\n .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)\n ?.map((x) => x.toLowerCase())\n .join(\"-\");\n\n\nexport function isResponseError (obj: any): obj is ResponseError {\n return 'type' in obj && 'title' in obj && 'status' in obj;\n}\n\nexport function isOpen(shop:Shop):boolean {\n if(shop.externalAppUri)\n return true;\n \n return shop.openForBusiness;\n //\n // const weekday = [\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];\n // const now = new Date();\n //\n // const todayOpeningHours = shop.openingHours.find(o=>o.dayOfWeek == weekday[now.getDay()].toLowerCase());\n //\n // if(shop.status === 'offline' || shop.status === 'paused' || todayOpeningHours && todayOpeningHours.closed || !todayOpeningHours)\n // return false;\n //\n // if(!todayOpeningHours.opens || !todayOpeningHours.closes)\n // return false;\n //\n // const opens =new Date(todayOpeningHours.opens);\n // opens.setFullYear(now.getFullYear(),now.getMonth(),now.getDate())\n //\n // const closes =new Date(todayOpeningHours.closes);\n // closes.setFullYear(now.getFullYear(),now.getMonth(),now.getDate())\n //\n // return now > opens && now < closes;\n // const weekDayOpeningHours = shop.openingHours.find(x=>x.dayOfWeek == date.toLocaleString('en-us', { weekday: 'long' }));\n // if(!weekDayOpeningHours || weekDayOpeningHours.closed || shop.status == \"offline\"){\n // return false;\n // }\n //\n // const opens = new Date(Date.parse(weekDayOpeningHours.opens));\n // const closes = new Date(Date.parse(weekDayOpeningHours.closes));\n //\n // return date > opens && date < closes;\n}\n\nexport function i18nTranslate(i18n:Translations, property:string, locale:string, defaultValue?:string):string {\n if(!i18n)\n return defaultValue || \"\";\n const translations = i18n[property] as Translation[];\n if(!translations)\n return defaultValue || \"\";\n const text = translations.find(t => t.language === locale)?.text;\n\n return text || defaultValue || \"\";\n}\n\nexport function getI18nImageId(i18n:Translations, locale:string):string|null {\n if(!i18n)\n return null;\n const translations = i18n[\"imageId\"] as Translation[];\n if(!translations)\n return null;\n return translations.find(t => t.language === locale)?.text ?? null;\n}\n\nexport function isReachable(url:string):Promise{\n return fetch(url, { method: 'HEAD', mode: 'no-cors' })\n .then(function(resp) {\n return resp && (resp.ok || resp.type === 'opaque');\n })\n .catch(function(err) {\n console.warn('[conn test failure]:', err);\n });\n}","//export const cartInjectionKey = \"cart-inject\"; // Symbol();//.for('cart-inject').toString();\n\nexport const suggestedArticlesStorage = \"suggestedArticlesStorage\";\n\nexport const menuStoreKey = \"menuStorage\"; // Symbol.for('menu').toString();\n\nexport const cartStorageKey = \"cartStorage\"; // Symbol().toString();//.for('store').toString();\nexport const authStorageKey = 'authStorage';\n\nexport const shopStorageKey = \"shopStorage\";\n\nexport const navigationStoreKey = \"navigation\";\n\nexport const appStoreKey = \"app-store\";\n\nexport const addItemEventKey = \"add-item-event\";\n\nexport const articleInfoStoreKey = \"articleInfoStore\"\n\nexport const orderStoreKey = \"orderStorage\";\n\nexport const errorStoreKey = \"errorStoreKey\";\nexport const couponStoreKey = \"coupon-store\";","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createBlock as _createBlock, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, unref as _unref, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode, withKeys as _withKeys, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = [\"disabled\", \"data-id\"]\nconst _hoisted_2 = { class: \"order-item__image\" }\nconst _hoisted_3 = { class: \"order-item__articles\" }\nconst _hoisted_4 = { class: \"order-item__info\" }\nconst _hoisted_5 = { class: \"order-item__name\" }\nconst _hoisted_6 = { class: \"order-item__price\" }\nconst _hoisted_7 = { class: \"order-item__name\" }\nconst _hoisted_8 = {\n key: 0,\n class: \"order-item__price\"\n}\nconst _hoisted_9 = {\n key: 0,\n class: \"order-item__edit\"\n}\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"span\", { \"aria-label\": \"-\" }, null, -1)\nconst _hoisted_11 = [\n _hoisted_10\n]\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"span\", { \"aria-label\": \"+\" }, null, -1)\nconst _hoisted_13 = [\n _hoisted_12\n]\nconst _hoisted_14 = { class: \"sr-only\" }\nconst _hoisted_15 = { class: \"sr-only\" }\n\nimport { CartItem } from '@/types';\n import { CartItemType } from '@/enums';\n import ArticleImage from '@/components/ArticleImage.vue';\n import { CartStore } from '@/stores/cart';\n import { reactive, onMounted } from 'vue';\n import router from '@/router';\n import { useEmitter } from '@/composables/useEmitter';\n import {i18nTranslate} from \"../functions\";\n import { useI18n} from \"vue-i18n\";\n\n interface Props {\n item: CartItem;\n disabled: boolean,\n editable: boolean,\n curency: string\n }\n\n interface State {\n showEditActions: boolean;\n }\n\n /* Props */\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'OrderItem',\n props: {\n item: null,\n disabled: { type: Boolean },\n editable: { type: Boolean },\n curency: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n item: CartItem;\n disabled: boolean,\n editable: boolean,\n curency: string\n };\n\n /* imports */\n const cart = CartStore();\n const emitter = useEmitter();\n const { locale } = useI18n();\n \n /* interface */\n \n\n /* reactive */\n const state = reactive({\n showEditActions: false,\n });\n\n /* Functions */\n const quantity = (quantity: number) => {\n return quantity > 1 ? `${quantity}x` : '';\n };\n\n const toggleEdit = () => {\n\n if (props.disabled || !props.editable) {\n state.showEditActions = false;\n } else {\n state.showEditActions = !state.showEditActions;\n }\n\n if (state.showEditActions) {\n emitter.emit('showEditActions', { id: props.item.id })\n }\n };\n\n const hideEdit = () => {\n state.showEditActions = false;\n }\n\n const increaseItem = (item: CartItem) => {\n if (item) {\n cart.increase(item);\n }\n };\n\n const dataId = (id: string) : string => {\n return `a-${id}`;\n }\n\n const decreaseItem = (item: CartItem) => {\n if (item && item.quantity > 1) {\n cart.decrease(item);\n }\n }\n\n const removeCartItem = (item: CartItem) => {\n if (item) {\n cart.remove(item);\n }\n };\n\n const changeCartItem = (item: CartItem) => {\n if (item) {\n hideEdit();\n router.push({\n name: 'editOrder',\n params: {\n categoryName: item.categoryName, articleId: item.article.code, orderId: item.id\n }\n });\n }\n }\n\n onMounted(() => {\n emitter.on('onNavigate', hideEdit);\n emitter.on('showEditActions', (data: any) => {\n if (data.id !== props.item.id) {\n hideEdit();\n }\n })\n });\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"order-item\", {editable: __props.editable}]),\n style: {\"overflow\":\"hidden\"},\n disabled: __props.disabled,\n \"data-id\": dataId(__props.item.id),\n onClick: _cache[5] || (_cache[5] = _withModifiers(($event: any) => (toggleEdit()), [\"prevent\"])),\n onKeyup: _cache[6] || (_cache[6] = _withKeys(($event: any) => (toggleEdit()), [\"enter\"])),\n tabindex: \"0\"\n }, [\n _createElementVNode(\"span\", _hoisted_2, [\n (_openBlock(), _createBlock(ArticleImage, {\n url: __props.item.article.imageUrl,\n key: __props.item.article.imageUrl\n }, null, 8, [\"url\"]))\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(quantity(__props.item.quantity)) + \" \" + _toDisplayString(_unref(i18nTranslate)(__props.item.article.i18n, \"description\", _unref(locale))), 1),\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString((__props.item.article.price * __props.item.quantity)) + _toDisplayString(__props.curency), 1)\n ]),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.item.flatChoices, (choice) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"order-item__info order-item__info--small\",\n key: choice.id\n }, [\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(quantity(__props.item.quantity)) + \" \" + _toDisplayString(_unref(i18nTranslate)(choice.article.i18n, \"description\", _unref(locale))), 1),\n (choice.article.price > 0)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_8, _toDisplayString((choice.article.price * __props.item.quantity)) + _toDisplayString(__props.curency), 1))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ]),\n _createVNode(_Transition, { name: \"from-right\" }, {\n default: _withCtx(() => [\n (state.showEditActions)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"button\", {\n class: \"btn--link btn-decrease\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (decreaseItem(__props.item)), [\"stop\"]))\n }, _hoisted_11),\n _createElementVNode(\"span\", null, _toDisplayString(__props.item.quantity), 1),\n _createElementVNode(\"button\", {\n class: \"btn--link btn-increase\",\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (increaseItem(__props.item)), [\"stop\"]))\n }, _hoisted_13)\n ]),\n (__props.item.type == _unref(CartItemType).Article)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"btn--link btn-edit\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (changeCartItem(__props.item)), [\"stop\"]))\n }, [\n _createElementVNode(\"span\", _hoisted_14, \"Ändra \" + _toDisplayString(_unref(i18nTranslate)(__props.item.article.i18n, \"description\", _unref(locale))), 1)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"btn--link btn-remove\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (removeCartItem(__props.item)), [\"stop\"]))\n }, [\n _createElementVNode(\"span\", _hoisted_15, \"Ta bort \" + _toDisplayString(_unref(i18nTranslate)(__props.item.article.i18n, \"description\", _unref(locale))), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n (state.showEditActions)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"click-outside\",\n onKeyup: _cache[4] || (_cache[4] = _withKeys(($event: any) => (toggleEdit()), [\"enter\"]))\n }, null, 32))\n : _createCommentVNode(\"\", true)\n ], 42, _hoisted_1))\n}\n}\n\n})","import script from \"./OrderItem.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./OrderItem.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, withModifiers as _withModifiers, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, TransitionGroup as _TransitionGroup, withCtx as _withCtx, Transition as _Transition } from \"vue\"\n\nconst _hoisted_1 = { class: \"order\" }\nconst _hoisted_2 = { class: \"order-header\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = {\n key: 0,\n class: \"order__buttons\"\n}\nconst _hoisted_5 = {\n key: 0,\n class: \"suggested-content\"\n}\nconst _hoisted_6 = { key: 1 }\nconst _hoisted_7 = [\"onClick\"]\nconst _hoisted_8 = { class: \"order__info__name\" }\nconst _hoisted_9 = [\"onClick\"]\nconst _hoisted_10 = {\n key: 0,\n class: \"order__modal__header\"\n}\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"icon-cancel\" }, null, -1)\nconst _hoisted_12 = [\n _hoisted_11\n]\nconst _hoisted_13 = { class: \"order__modal__inner\" }\nconst _hoisted_14 = { class: \"order__content\" }\nconst _hoisted_15 = [\"data-index\"]\nconst _hoisted_16 = [\"data-orders\", \"disabled\"]\nconst _hoisted_17 = {\n key: 1,\n class: \"order__content__text\",\n \"data-orders\": \"0\"\n}\nconst _hoisted_18 = { class: \"order__pay\" }\nconst _hoisted_19 = {\n key: 0,\n class: \"order-item total-order\"\n}\nconst _hoisted_20 = [\"updating\"]\nconst _hoisted_21 = [\"onClick\", \"disabled\"]\n\nimport { reactive, onMounted, computed } from 'vue';\n import { watch } from 'vue';\n import router from '../router';\n import gsap from 'gsap'\n import { CartStore } from '@/stores/cart';\n import { MenuStore } from '@/stores/menu';\n import { AppStore } from '@/stores/app';\n import { useI18n } from 'vue-i18n'\n import OrderItem from '@/components/OrderItem.vue';\n import OrderShopInfo from '@/components/OrderShopInfo.vue';\n import ConfirmPopup from '@/components/ConfirmPopup.vue';\n import { useEmitter } from '@/composables/useEmitter';\n\n\n interface State {\n showOrderInfo: boolean,\n showCancelModal: boolean,\n isCounting: boolean,\n currency: string,\n }\n interface Props {\n disabled?: boolean\n }\n\n /* Props */\n //const props =\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'OrderComponent',\n props: {\n disabled: { type: Boolean }\n },\n setup(__props: any) {\n\n\n /* imports */\n const { t } = useI18n();\n\n const cartStore = CartStore();\n const menuStore = MenuStore();\n const appStore = AppStore();\n const emitter = useEmitter();\n\n\n /* interface */\n \n\n /* Reactive */\n const tweened = reactive({\n number: 0\n })\n\n const state = reactive({\n showOrderInfo: false,\n showCancelModal: false,\n isCounting: false,\n currency: menuStore.getCurrency().symbol\n });\n\n /* ref */\n\n /* computed */\n const transitionName = computed(() => {\n return appStore.state.isSmallScreen ? \"from-bottom\" : \"fade-in-out\";\n });\n\n const disabled = computed(() => {\n return cartStore.state.disabled;\n });\n\n const addBtnText = (): string => {\n return !cartStore.state.editMode ? t(\"button.add\") : t(\"button.done\");\n }\n\n const suggestedBtnText = computed(() => cartStore.state.hasSelectedSuggestions ? t(\"button.done\") : t(\"button.noThanks\"));\n\n const totalPrice = computed(() => {\n return cartStore.totalPrice;\n });\n\n /* Refs */\n\n /* Functions */\n\n //Animations for orderItems.\n const onBeforeEnter = (el: HTMLElement) => {\n el.style.opacity = '0';\n el.style.height = '0';\n }\n const onEnter = (el: HTMLElement, done: any) => {\n gsap.to(el, {\n opacity: 1,\n height: 'auto',\n delay: Number(el.dataset.index) * 0.15,\n onComplete: done\n })\n }\n\n const onLeave = (el: HTMLElement, done: any) => {\n gsap.to(el, {\n opacity: 0,\n height: 0,\n delay: Number(el.dataset.index) * 0.15,\n onComplete: done\n })\n }\n\n // Will trigger event in components and views\n const addToOrder = () => emitter.emit('add-order');\n\n const toggleShowOrder = (): void => {\n cartStore.state.showOrderInfo = !cartStore.state.showOrderInfo;\n }\n\n const onCancel = () => cartStore.state.items.length ? toggleCancelModal() : cancelOrder(true);\n\n const toggleCancelModal = () => {\n state.showCancelModal = !state.showCancelModal;\n }\n\n const cancelOrder = (value: boolean) => {\n\n state.showCancelModal = false; // Hide cancel order question (popup)\n\n if (value) {\n cartStore.clear(true); // Clear store\n router.push({ name: 'home' }); // Send user to to homepage\n }\n }\n\n const pay = () => {\n router.push({ \n name: 'checkoutPage',\n params: {\n shopId: cartStore.state.shopId \n } \n }); // Send user to Checkout page\n }\n\n /* Watch */\n\n //Add animation when total price changes\n watch(\n totalPrice,\n (n) => {\n gsap.to(tweened, {\n duration: 1, number: Number(n) || 0,\n onStart: () => {\n state.isCounting = true;\n },\n onComplete: () => {\n state.isCounting = false;\n }\n })\n }\n )\n\n /* Lifecycle Hooks */\n onMounted(() => {\n if (cartStore.state.items?.length) {\n tweened.number = cartStore.totalPrice;\n }\n });\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_Transition, { name: _unref(transitionName) }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(appStore).state.isLargeScreen)\n ? (_openBlock(), _createElementBlock(\"h2\", _hoisted_3, _toDisplayString(_unref(t)(\"order.header\")), 1))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(appStore).state.isSmallScreen)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n (_unref(cartStore).state.showAddItemButton)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"btn order__add\",\n onClick: addToOrder\n }, [\n (_unref(appStore).state.currentPage === 'suggestedArticlesPage')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(suggestedBtnText)), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_6, _toDisplayString(addBtnText()), 1))\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: _normalizeClass([\"btn order__info\", {'btn--secondary': _unref(cartStore).state.showAddItemButton}]),\n onClick: _withModifiers(toggleShowOrder, [\"prevent\",\"stop\"])\n }, [\n _createElementVNode(\"div\", _hoisted_8, _toDisplayString(_unref(t)(\"order.header\")), 1),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"order__info__price\", {'price--update': state.isCounting}])\n }, _toDisplayString(tweened.number.toFixed(0)) + _toDisplayString(state.currency), 3)\n ], 10, _hoisted_7)\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_Transition, { name: _unref(transitionName) }, {\n default: _withCtx(() => [\n ((_unref(cartStore).state.showOrderInfo || _unref(appStore).state.isLargeScreen))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"order__modal\",\n onClick: _withModifiers(toggleShowOrder, [\"self\"])\n }, [\n (_unref(appStore).state.isSmallScreen)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createElementVNode(\"button\", {\n class: \"btn--close\",\n onClick: toggleShowOrder\n }, _hoisted_12),\n _createElementVNode(\"h2\", null, _toDisplayString(_unref(t)(\"order.header\")), 1)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(OrderShopInfo),\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(_TransitionGroup, {\n tag: \"ol\",\n css: false,\n onBeforeEnter: onBeforeEnter,\n onEnter: onEnter,\n onLeave: onLeave\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(cartStore).state.items, (item, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: item.id,\n \"data-index\": index\n }, [\n _createVNode(OrderItem, {\n item: item,\n editable: true,\n curency: state.currency,\n disabled: _unref(disabled)\n }, null, 8, [\"item\", \"curency\", \"disabled\"])\n ], 8, _hoisted_15))\n }), 128))\n ]),\n _: 1\n })\n ]),\n (_unref(cartStore).state.items.length)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"order__content__text\",\n \"data-orders\": _unref(cartStore).state.items.length,\n disabled: _unref(disabled)\n }, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(t)(\"order.infoText\")), 1),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(t)(\"order.infoText2\")), 1)\n ], 8, _hoisted_16))\n : _createCommentVNode(\"\", true),\n (!_unref(cartStore).state.items.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(t)(\"order.emptyInfoText\")), 1)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_18, [\n (_unref(cartStore).state.items.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(t)(\"label.total\")), 1),\n _createElementVNode(\"span\", {\n class: \"order-item__price\",\n updating: state.isCounting\n }, _toDisplayString(tweened.number.toFixed(0)) + _toDisplayString(state.currency), 9, _hoisted_20)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(cartStore).state.items.length)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n class: \"btn btn--pay\",\n onClick: _withModifiers(pay, [\"prevent\"]),\n disabled: _unref(disabled)\n }, _toDisplayString(_unref(t)(\"button.pay\")), 9, _hoisted_21))\n : _createCommentVNode(\"\", true),\n (_unref(cartStore).state.items.length)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 2,\n class: \"btn btn--secondary cancel-order\",\n onClick: onCancel\n }, _toDisplayString(_unref(t)(\"button.cancelOrder\")), 1))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ], 8, _hoisted_9))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"name\"])\n ])\n ]),\n _: 1\n }, 8, [\"name\"]),\n _createVNode(ConfirmPopup, {\n heading: \"cancel.order.header\",\n text: \"cancel.order.description\",\n okButton: \"cancel.order.confirm\",\n cancelButton: \"cancel.order.cancel\",\n show: state.showCancelModal,\n onOnAnswer: cancelOrder\n }, null, 8, [\"show\"])\n ], 64))\n}\n}\n\n})","import script from \"./OrderComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./OrderComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"language-selector-container\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = {\n key: 1,\n class: \"langauge-selector\"\n}\nconst _hoisted_5 = [\"active\", \"disabled\", \"onClick\"]\nconst _hoisted_6 = {\n key: 2,\n class: \"error error--message\"\n}\n\nimport { onBeforeMount, onBeforeUnmount, onErrorCaptured, reactive } from 'vue';\n import { AppStore } from '@/stores/app';\n import { MenuStore } from '@/stores/menu';\n import { ShopStore } from '@/stores/shop';\n import { ApiStatus, Languages } from '@/types';\n import { useI18n } from 'vue-i18n';\n import axios from \"axios\";\n\n interface State {\n langauges: string[],\n status: ApiStatus,\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'LanguageSelector',\n setup(__props) {\n\n /* imports */\n const appStore = AppStore();\n const menuStore = MenuStore();\n const shopStore = ShopStore();\n const { t, locale } = useI18n();\n\n /* interface */\n const languages: Languages = {\n sv: 'Svenska',\n fi: 'Suomi',\n en: 'English',\n ru: 'Русский',\n no: 'Norsk'\n }\n\n /* Props */\n\n /* Ref */\n\n /* Reactive */\n const state = reactive({\n langauges: [],\n status: {\n done: false,\n failed: false,\n loading: false\n }\n });\n\n\n /* Computed */\n\n /* Emits */\n\n /* AbortController */\n const abortController = new AbortController();\n\n /* Functions */\n\n const toggleLanguagePopup = () => {\n appStore.state.showLangSelector = true;\n };\n\n const setLang = (lang: string): void => {\n\n if (locale.value === lang) {\n return;\n }\n changeculture(lang)\n .then(() => {\n // Set locale value for i18n\n\n if (shopStore.id) {\n menuStore.load(shopStore.id);\n }\n locale.value = lang;\n appStore.state.showLangSelector = false;\n document.documentElement.setAttribute(\"lang\", locale.value);\n }).catch((err: Error) => {\n console.error('changeculture.catch', err.message);\n appStore.state.showLangSelector = false;\n });\n }\n\n const changeculture = async (lang: string) => {\n\n return new Promise((resolve: any, reject: any) => {\n \n axios.post(`/api/cultures/changeculture?cultureCode=${lang}`)\n .then(response => response.data)\n .then(() => {\n resolve(true);\n }).catch((err: Error) => {\n reject(err);\n });\n });\n }\n\n const loadLanguages = async () => {\n state.status.loading = true;\n axios.get(`/api/cultures/languages`)\n .then(response => response.data)\n .then((data: string[]) => {\n state.langauges = data;\n state.status.done = true;\n }).catch((err: Error) => {\n state.status.failed = true;\n state.status.text = err.message;\n }).finally(() => {\n state.status.loading = false;\n });\n }\n\n /* Lifecycle Hooks */\n onErrorCaptured(() => {\n appStore.state.showLangSelector = false;\n });\n\n onBeforeMount(() => loadLanguages());\n onBeforeUnmount(() => abortController.abort());\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (state.status.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2))\n : _createCommentVNode(\"\", true),\n (state.status.done && !state.status.loading && state.langauges.length > 1)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_unref(appStore).state.isSmallScreen)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"btn-link btn-lang\",\n onClick: toggleLanguagePopup\n }))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(state.langauges, (lang) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n key: lang,\n class: \"btn-link btn-link--lang\",\n active: (_unref(locale) === lang),\n disabled: (_unref(locale) === lang),\n onClick: ($event: any) => (setLang(lang))\n }, _toDisplayString(languages[lang]), 9, _hoisted_5))\n }), 128))\n ]))\n ]))\n : _createCommentVNode(\"\", true),\n (state.status.failed)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"h3\", null, _toDisplayString(_unref(t)('error.heading')), 1),\n _createElementVNode(\"p\", null, _toDisplayString(state.status.text), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./LanguageSelector.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LanguageSelector.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Transition as _Transition, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = [\"data-value\"]\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"ongoing-order-inner\" }, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nimport { reactive, watch, computed, onMounted } from 'vue';\n import { OrderStore } from '@/stores/order';\n import { AppStore } from '@/stores/app';\n import router from '@/router';\n import {PaidOrder} from \"@/types\";\n\n interface State {\n visible: boolean,\n count: number\n }\n\n /* Reactive */\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PaidOrderIcon',\n setup(__props) {\n\n\n /* imports */\n const orderStore = OrderStore();\n const appStore = AppStore();\n\n /* interface */\n const state = reactive({\n visible: false,\n count: 0\n });\n\n /* Watch */\n watch(() => orderStore.state, () => {\n setState();\n }, { deep: true });\n\n /* Ref */\n\n /* Computed */\n const visible = computed(() => {\n return state.visible && !(appStore.state.currentPage === 'orderPage' || appStore.state.currentPage === 'ordersPage');\n });\n\n /* Refs */\n\n /* Functions */\n const onClick = () => {\n //If there are several orders, forward the user to ordersPage, but if there is only one order, forward them to orderPage.\n\n const orders = orderStore.ordersCount;\n\n if (state.count === 1 && orderStore.state.paidOrders.length == 1) {\n const order: PaidOrder = orderStore.state.paidOrders[0];\n\n router.push({\n name: 'orderPage',\n params: { orderId: order.id }\n });\n\n } else if (state.count === 1 && orderStore.state.deliveredOrders.length == 1) {\n const order: PaidOrder = orderStore.state.deliveredOrders[0];\n router.push({\n name: 'orderPage',\n params: { orderId: order.id }\n });\n }\n else\n if (state.count !== 0) {\n router.push({\n name: 'ordersPage'\n });\n } \n }\n\n const setState = () => { \n\n state.count = orderStore.ordersCount;\n state.visible = (state.count > 0); \n }\n\n /* Lifecycle Hooks */\n onMounted(() => setState())\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_Transition, { name: \"fade\" }, {\n default: _withCtx(() => [\n (_unref(visible))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"ongoing-order\",\n \"data-value\": state.count,\n onClick: onClick\n }, _hoisted_3, 8, _hoisted_1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n}\n}\n\n})","import script from \"./PaidOrderIcon.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PaidOrderIcon.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Transition as _Transition, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = [\"data-value\"]\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"sr-only\" }, \"Kuponger\", -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\n\nimport {computed, onMounted, reactive, watch} from 'vue';\nimport {CouponStore} from \"@/stores/coupon\";\nimport router from '@/router';\nimport {CouponState} from \"@/types\";\n\ninterface State {\n visible: boolean,\n count: number\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CouponsIcon',\n setup(__props) {\n\nconst couponStore = CouponStore();\nconst state = reactive({\n visible: false,\n count: 0\n});\n\n/* Watch */\nwatch(() => couponStore.coupons, () => {\n setState();\n}, { deep: true });\n\n/* Computed */\nconst visible = computed(() => {\n return state.visible;\n});\n\n/* Functions */\nconst onClick = () => {\n if (state.count !== 0) {\n router.push({\n name: 'coupons'\n });\n }\n}\nconst setState = () => {\n state.count = 0;\n couponStore.coupons.forEach((c)=>{\n if(c.state == CouponState.Active || c.state == CouponState.Unused){\n state.count++;\n }\n });\n \n //state.visible = (state.count > 0);\n state.visible = (state.count > 0) && document.documentElement.classList.contains('plt-pwa');\n}\n\n/* Lifecycle Hooks */\nonMounted(() => setState())\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_Transition, { name: \"fade\" }, {\n default: _withCtx(() => [\n (_unref(visible))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"coupons-btn\",\n \"data-value\": state.count,\n onClick: onClick\n }, _hoisted_3, 8, _hoisted_1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n}\n}\n\n})","import script from \"./CouponsIcon.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CouponsIcon.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"membercard-container\" }\nconst _hoisted_2 = [\"src\"]\n\nimport {onMounted, reactive, ref} from \"vue\";\nimport axios from \"axios\";\nimport { useI18n } from \"vue-i18n\";\ninterface State {\n url: string,\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MembershipCard',\n setup(__props) {\n\nconst image = ref();\n\nconst {t,locale} = useI18n();\n\nconst state = reactive({\n url: '',\n});\n\nconst loadImage = ()=>{\n axios.get('/api/user/membership-card', {\n responseType: 'blob'\n }).then(r=>{\n const url = window.URL.createObjectURL(new Blob([r.data]));\n image.value!.src = url;\n }).catch(()=>{\n console.log('error');\n }); \n}\n\nonMounted(()=>{\n loadImage();\n});\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(t)('memberCard.header')), 1),\n _createElementVNode(\"img\", {\n class: \"member-card\",\n src: state.url,\n ref_key: \"image\",\n ref: image,\n alt: \"\"\n }, null, 8, _hoisted_2),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(t)('memberCard.text')), 1)\n ]))\n}\n}\n\n})","import script from \"./MembershipCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./MembershipCard.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"profile-menu-button-container\"\n}\nconst _hoisted_2 = { class: \"username\" }\nconst _hoisted_3 = { class: \"user-greeting\" }\nconst _hoisted_4 = { class: \"first-name\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"sr-only\" }, \"Profile\", -1)\nconst _hoisted_6 = { class: \"profile-menu-header\" }\nconst _hoisted_7 = { class: \"username\" }\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"sr-only\" }, \"Close\", -1)\nconst _hoisted_9 = [\n _hoisted_8\n]\nconst _hoisted_10 = { class: \"profile-menu\" }\nconst _hoisted_11 = {\n class: \"offers\",\n href: \"/campaigns\"\n}\nconst _hoisted_12 = {\n class: \"favorites\",\n href: \"/favorites\"\n}\nconst _hoisted_13 = {\n class: \"order-history\",\n href: \"/order-history\"\n}\nconst _hoisted_14 = {\n class: \"my-account\",\n href: \"/profile\"\n}\n\nimport MembershipCard from \"@/components/MembershipCard.vue\";\nimport {computed, reactive} from \"vue\";\nimport {AuthStore} from \"@/stores/auth\";\nimport { useI18n } from \"vue-i18n\";\nimport router from \"@/router\";\n\ninterface State {\n showProfileMenu: boolean\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ProfileMenu',\n setup(__props) {\n\nconst {t} = useI18n();\nconst authStore = AuthStore();\n\nconst state = reactive({\n showProfileMenu: false\n});\n\nconst showProfileMenu = (e:any) => {\n e.preventDefault();\n state.showProfileMenu = !state.showProfileMenu;\n};\n\nconst logout = ()=>{\n authStore.logout().then(()=>{\n //reload the current page;\n router.go(0);\n });\n};\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(authStore).state.isAuthenticated)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"button\", {\n class: \"btn btn-login\",\n onClick: showProfileMenu\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(_unref(t)('profile.menu.userGreeting')), 1),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_unref(authStore).state.user?.name), 1)\n ]),\n _hoisted_5\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"profile-menu-container\", [state.showProfileMenu ? 'open' : 'closed']])\n }, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_unref(authStore).state.user?.name) + \" \" + _toDisplayString(_unref(authStore).state.user?.lastName), 1),\n _createElementVNode(\"button\", {\n class: \"btn btn-close\",\n onClick: showProfileMenu\n }, _hoisted_9)\n ]),\n _createElementVNode(\"ul\", _hoisted_10, [\n _createElementVNode(\"li\", null, [\n _createElementVNode(\"a\", _hoisted_11, _toDisplayString(_unref(t)('profile.menu.offers')), 1)\n ]),\n _createElementVNode(\"li\", null, [\n _createElementVNode(\"a\", _hoisted_12, _toDisplayString(_unref(t)('profile.menu.favorites')), 1)\n ]),\n _createElementVNode(\"li\", null, [\n _createElementVNode(\"a\", _hoisted_13, _toDisplayString(_unref(t)('profile.menu.orderHistory')), 1)\n ]),\n _createElementVNode(\"li\", null, [\n _createElementVNode(\"a\", _hoisted_14, _toDisplayString(_unref(t)('profile.menu.account')), 1)\n ]),\n _createElementVNode(\"li\", null, [\n (_unref(authStore).state.isAuthenticated)\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n class: \"logout\",\n href: \"#\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(()=> logout(), [\"prevent\"]))\n }, _toDisplayString(_unref(t)('profile.menu.logout')), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createVNode(MembershipCard)\n ], 2),\n (state.showProfileMenu)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"click-outside\",\n onClick: showProfileMenu\n }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./ProfileMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ProfileMenu.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createVNode as _createVNode, Transition as _Transition, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"navbar\"\n}\nconst _hoisted_2 = { class: \"navbar__content\" }\nconst _hoisted_3 = { class: \"nav-left\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = {\n key: 0,\n class: \"customer-logo\"\n}\nconst _hoisted_6 = { class: \"nav-right\" }\nconst _hoisted_7 = [\"href\"]\n\nimport {computed, reactive, watch} from 'vue';\n import { NavigationStore } from '@/stores/navigation'; \n import { useI18n } from 'vue-i18n';\n import router from '@/router';\n import ConfirmPopup from '@/components/ConfirmPopup.vue';\n import LanguageSelector from '@/components/LanguageSelector.vue';\n import PaidOrderIcon from '@/components/PaidOrderIcon.vue';\n import { AppStore } from '@/stores/app';\n import { CartStore } from '@/stores/cart';\n import { ShopStore } from '@/stores/shop';\n import { AuthStore } from '@/stores/auth';\n import CouponsIcon from \"@/components/CouponsIcon.vue\";\n import ProfileMenu from \"@/components/ProfileMenu.vue\";\n import {useRoute} from \"vue-router\";\n\n interface State {\n showConfirmPopup: boolean,\n showCancelOrderPopup: boolean\n showProfileMenu: boolean\n }\n\n /* Reactive */\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'NavigationComponent',\n setup(__props) {\n\n /* imports */\n const { t } = useI18n();\n const navigationStore = NavigationStore();\n\n const appStore = AppStore();\n const cartStore = CartStore();\n const shopStore = ShopStore();\n const authStore = AuthStore();\n const route = useRoute();\n /* Interface */\n const state = reactive({\n showConfirmPopup: false,\n showCancelOrderPopup: false,\n showProfileMenu: false,\n });\n\n /* Computed */\n const shouldHandleClearOrder = computed(() => {\n const name = navigationStore.state.link?.name;\n if (!name)\n return false;\n\n const route = router.getRoutes().find(r=>r.name === name);\n if(route && route.meta?.confirmCartReset === true){\n //if the route has confirmCartReset set to true, and we have items in the cart, we should show the confirm popup\n return cartStore.state.items.length > 0 \n }\n \n return false;\n\n });\n const loginUri = computed(() => {\n return `/login?redirectUri=${encodeURIComponent(router.currentRoute.value.path)}`;\n });\n \n watch(()=>route.name,(to)=>{\n \n console.log('NavigationComponent detected route as ', to);\n });\n \n\n const shouldHandleCancelOrder = computed(() => {\n const name = appStore.state.currentPage;\n\n if (!name)\n return false;\n\n return cartStore.state.currentOrderChanged && (name === 'articlePage' || name === 'editOrder' || name === 'suggestedArticlesPage');\n\n });\n\n /* Functions */\n const navigate = (): void => {\n if (shouldHandleClearOrder.value) {\n state.showConfirmPopup = true;\n } else if (shouldHandleCancelOrder.value) {\n state.showCancelOrderPopup = true;\n }\n else {\n if (navigationStore.state.link) {\n router.push(navigationStore.state.link);\n } else {\n router.go(-1); \n }\n }\n }\n\n const clearOrder = (value: boolean): void => {\n state.showConfirmPopup = false;\n\n if (value) {\n shopStore.clear();\n cartStore.clear(true);\n if (navigationStore.state.link) {\n router.push(navigationStore.state.link);\n }\n }\n };\n\n const cancelAddToOrder = (value: boolean): void => {\n\n state.showCancelOrderPopup = false;\n\n if (value) {\n \n if (navigationStore.state.link) {\n router.push(navigationStore.state. link);\n }\n }\n }\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_Transition, { name: \"from-top\" }, {\n default: _withCtx(() => [\n (_unref(navigationStore).state.visible)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"button\", {\n class: \"navbar__link\",\n onClick: navigate\n }, [\n (_unref(appStore).state.isLargeScreen)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, [\n (_unref(navigationStore).state.link)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createTextVNode(_toDisplayString(_unref(navigationStore).state.link.text), 1)\n ], 64))\n : _createCommentVNode(\"\", true),\n (!_unref(navigationStore).state.link)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(_unref(t)('button.back')), 1)\n ], 64))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n (_unref(navigationStore).state.link)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(LanguageSelector),\n _createVNode(CouponsIcon),\n _createVNode(PaidOrderIcon),\n (_unref(cartStore).state.settings.enableCustomerLogin)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (!_unref(authStore).state.isAuthenticated)\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n class: \"btn-login\",\n href: _unref(loginUri)\n }, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(t)('navBar.login')), 1)\n ], 8, _hoisted_7))\n : _createCommentVNode(\"\", true),\n _createVNode(ProfileMenu)\n ], 64))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _createVNode(ConfirmPopup, {\n heading: \"cancel.order.header\",\n text: \"cancel.order.description\",\n okButton: \"cancel.order.confirm\",\n cancelButton: \"cancel.order.cancel\",\n show: state.showConfirmPopup,\n onOnAnswer: clearOrder\n }, null, 8, [\"show\"]),\n _createVNode(ConfirmPopup, {\n show: state.showCancelOrderPopup,\n onOnAnswer: cancelAddToOrder\n }, null, 8, [\"show\"])\n ], 64))\n}\n}\n\n})","import script from \"./NavigationComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NavigationComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, withModifiers as _withModifiers, Transition as _Transition, withCtx as _withCtx, Teleport as _Teleport, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = [\"onClick\"]\nconst _hoisted_2 = [\"onClick\"]\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = {\n key: 1,\n class: \"languages\"\n}\nconst _hoisted_5 = [\"onClick\", \"disabled\", \"data-active\"]\nconst _hoisted_6 = {\n key: 2,\n class: \"error error--message\"\n}\n\nimport { onBeforeMount, onBeforeUnmount, onErrorCaptured, reactive } from 'vue';\n import LoaderComponent from '@/components/LoaderComponent.vue';\n import { AppStore } from '@/stores/app';\n import { MenuStore } from '@/stores/menu';\n import { ShopStore } from '@/stores/shop';\n import { Languages, ApiStatus } from '@/types';\n import { useI18n } from 'vue-i18n';\n import axios from \"axios\";\n\n interface State {\n langauges: string[],\n status: ApiStatus,\n }\n\n /* Props */\n\n /* Ref */\n\n /* Reactive */\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'LanguageSelectorPopup',\n setup(__props) {\n\n /* imports */\n const appStore = AppStore();\n const menuStore = MenuStore();\n const shopStore = ShopStore();\n const { locale } = useI18n();\n\n /* interface */\n const state = reactive({\n langauges: [],\n status: {\n done: false,\n failed: false,\n loading: false\n }\n })\n\n /* Const */\n const languages: Languages = {\n sv: 'Svenska',\n fi: 'Suomi',\n en: 'English',\n ru: 'Russian',\n no: 'Norsk'\n }\n\n /* Emits */\n\n /* AbortController */\n const abortController = new AbortController();\n\n /* Functions */\n const hide = () => {\n appStore.state.showLangSelector = false;\n }\n\n const doNothing = () => {\n return false;\n }\n\n const setLang = (lang: string): void => {\n\n if (locale.value === lang) {\n return;\n }\n\n changeculture(lang)\n .then(() => {\n\n if (shopStore.id) {\n menuStore.load(shopStore.id);\n }\n // Set locale value for i18n\n locale.value = lang;\n appStore.state.showLangSelector = false;\n document.documentElement.setAttribute(\"lang\", locale.value);\n }).catch((err: Error) => {\n console.error('changeculture.catch', err.message);\n appStore.state.showLangSelector = false;\n });\n }\n\n const changeculture = async (lang: string) => {\n\n return new Promise((resolve: any, reject: any) => {\n \n axios.post(`/api/cultures/changeculture?cultureCode=${lang}`)\n .then(response => response.data)\n .then(() => {\n resolve(true);\n }).catch((err: Error) => {\n reject(err);\n });\n });\n }\n\n const loadLanguages = async () => {\n\n state.status.loading = true;\n axios.get(`/api/cultures/languages`)\n .then(response => response.data)\n .then((data: string[]) => {\n state.langauges = data;\n state.status.done = true;\n\n }).catch((err: Error) => {\n state.status.failed = true;\n state.status.text = err.message;\n }).finally(() => {\n state.status.loading = false;\n });\n\n }\n\n\n\n /* Lifecycle Hooks */\n onErrorCaptured(() => {\n appStore.state.showLangSelector = false;\n });\n\n onBeforeMount(() => loadLanguages());\n\n onBeforeUnmount(() => abortController.abort());\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_Teleport, { to: \"body\" }, [\n _createVNode(_Transition, {\n name: \"popup\",\n duration: 860\n }, {\n default: _withCtx(() => [\n (_unref(appStore).state.showLangSelector)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"popup popup--languages\",\n onClick: _withModifiers(hide, [\"stop\",\"prevent\"])\n }, [\n _createElementVNode(\"div\", {\n class: \"popup__content\",\n onClick: _withModifiers(doNothing, [\"stop\",\"prevent\"])\n }, [\n (state.status.loading)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createVNode(LoaderComponent, { text: \"loader.languages\" })\n ]))\n : _createCommentVNode(\"\", true),\n (state.status.done && !state.status.loading)\n ? (_openBlock(), _createElementBlock(\"ol\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(state.langauges, (lang) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: lang }, [\n _createElementVNode(\"a\", {\n onClick: ($event: any) => (setLang(lang)),\n class: _normalizeClass({'btn--active': (_unref(locale) === lang) }),\n disabled: (_unref(locale) === lang),\n \"data-active\": (_unref(locale) === lang)\n }, _toDisplayString(languages[lang]), 11, _hoisted_5)\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true),\n (state.status.failed)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"h3\", null, _toDisplayString(_ctx.t('error.heading')), 1),\n _createElementVNode(\"p\", null, _toDisplayString(state.status.text), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_2)\n ], 8, _hoisted_1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./LanguageSelectorPopup.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LanguageSelectorPopup.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Transition as _Transition, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"popup popup--error\"\n}\nconst _hoisted_2 = { class: \"popup__content\" }\nconst _hoisted_3 = { class: \"popup__header\" }\nconst _hoisted_4 = [\"innerHTML\"]\n\nimport { } from 'vue';\n import { useI18n } from 'vue-i18n';\n import { ErrorMessageStore } from '@/stores/errorMessage';\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'ErrorMessage',\n setup(__props) {\n\n /* imports */\n const { t } = useI18n();\n\n const errorMessageStore = ErrorMessageStore();\n\n\n const close = () => {\n errorMessageStore.close();\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_Transition, { name: \"popup\" }, {\n default: _withCtx(() => [\n (_unref(errorMessageStore).state.visible)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"h2\", _hoisted_3, _toDisplayString(_unref(t)('error.heading')), 1),\n _createElementVNode(\"p\", {\n class: \"popup__text\",\n innerHTML: _unref(errorMessageStore).state.message\n }, null, 8, _hoisted_4),\n _createElementVNode(\"div\", { class: \"popup__buttons\" }, [\n _createElementVNode(\"button\", {\n class: \"btn\",\n onClick: close\n }, \"Stäng\")\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n}\n}\n\n})","import script from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"update-app text-center\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"p\", null, \" En ny version av applikationen är tillgänglig. Klicka på knappen nedan för att uppdatera. \", -1)\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'UpdateComponent',\n setup(__props) {\n\n \nconst updateApp = () => {\n navigator.serviceWorker.getRegistrations().then((registrations) =>{\n registrations[0].waiting?.postMessage({ type: 'SKIP_WAITING' });\n window.location.reload();\n }); \n}\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"button\", {\n class: \"btn\",\n onClick: updateApp\n }, \" Update \")\n ]))\n}\n}\n\n})","import script from \"./UpdateComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UpdateComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createBlock as _createBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"app\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"page-order\"\n}\nconst _hoisted_3 = {\n key: 2,\n class: \"app-version\"\n}\n\nimport {useI18n} from 'vue-i18n';\nimport {IonApp, IonRouterOutlet} from '@ionic/vue';\nimport {computed, onBeforeMount, ref} from 'vue';\nimport OrderComponent from '@/components/OrderComponent.vue';\nimport NavigationComponent from '@/components/NavigationComponent.vue';\nimport LanguageSelectorPopup from '@/components/LanguageSelectorPopup.vue';\nimport {toKebabCase} from \"@/functions\";\nimport axios from 'axios';\nimport router from '@/router';\nimport ErrorMessage from '@/components/ErrorMessage.vue';\nimport {CartStore} from './stores/cart';\nimport {AppStore} from './stores/app';\nimport {OrderStore} from './stores/order';\nimport {AuthStore} from \"@/stores/auth\";\nimport UpdateComponent from \"@/components/UpdateComponent.vue\";\nimport LoaderComponent from \"@/components/LoaderComponent.vue\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'App',\n setup(__props) {\n\nconst {locale} = useI18n();\n\nconst cartStore = CartStore();\nconst appStore = AppStore();\nconst orderStore = OrderStore();\nconst authStore = AuthStore();\n\n\naxios.defaults.headers.common['Content-Type'] = 'application/json';\n\nconst showOrder = computed(() => {\n const showCart = router.currentRoute.value.meta.showCart as boolean;\n if(!showCart) {\n return false;\n }\n\n return cartStore.state.visible && (cartStore.state.items.length > 0\n || appStore.state.isLargeScreen\n || (appStore.state.currentPage != null\n && typeof appStore.state.currentPage == \"string\" && ['editOrder', 'articlePage'].includes(appStore.state.currentPage)));\n});\n\nonBeforeMount(() => {\n document.documentElement.setAttribute(\"lang\", locale.value);\n\n orderStore.removeExpiredOrders()\n //If there are unpaid orders that are not ready yet\n if (orderStore.state.paidOrders.length) {\n orderStore.pullOrderStatus();\n }\n})\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_unref(IonApp), {\n class: _normalizeClass(_unref(toKebabCase)(_unref(router).currentRoute.value.name?.toString() ??''))\n }, {\n default: _withCtx(() => [\n _createVNode(NavigationComponent),\n _createVNode(ErrorMessage),\n _createVNode(UpdateComponent),\n _createElementVNode(\"div\", _hoisted_1, [\n (_unref(showOrder))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(OrderComponent)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(LanguageSelectorPopup),\n (!_unref(authStore).state.loading)\n ? (_openBlock(), _createBlock(_unref(IonRouterOutlet), { key: 0 }))\n : _createCommentVNode(\"\", true),\n (!_unref(authStore).state.loading)\n ? (_openBlock(), _createBlock(LoaderComponent, { key: 1 }))\n : _createCommentVNode(\"\", true),\n (_unref(cartStore).state.settings)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, \"Version: \" + _toDisplayString(_unref(cartStore).state.settings.version), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"class\"]))\n}\n}\n\n})","import script from \"./App.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import {createI18n} from 'vue-i18n';\nimport axios from \"axios\";\n\nconst messages = {\n en: {\n home: {\n header: 'Welcome!',\n subHeader: 'Choose your restaurant',\n },\n list: {\n menu: 'Menu'\n },\n shopchanged: {\n header: 'Warning!',\n text: 'You have a pending order linked to a different restaurant than the current one.'\n },\n checkout: {\n header: 'Checkout',\n pickup: 'Pickup time',\n orderHeader: 'My order',\n },\n payment: {\n header: 'Pay order'\n },\n termsAndConditions: {\n header: 'Terms and Conditions'\n },\n suggestedArticles: {\n header: 'May we offer something else?',\n },\n selectedShop: {\n header: 'Choose where to eat',\n extraInfo: ''\n },\n search: {\n label: 'Search restaurant',\n placeholder: 'Find restaurant',\n noMatch: 'No matching restaurants'\n },\n shopSelector: {\n singleShop: {\n start: \"Start ordering\",\n closed: \"Closed for today\",\n paused: \"Closed for ordering\",\n openingHoursHeader: \"Opening hours\",\n }\n },\n 'show-password': {\n show: 'Show password',\n hide: 'Hide password'\n },\n button: {\n showMore: 'Show more',\n showMoreRestaurants: 'Show more restaurants',\n open: 'Open',\n closed: 'Closed',\n paused: 'Weborders closed',\n dineInPlace: 'At the restaurant',\n takeAway: 'Take away',\n pay: 'Pay',\n order: 'Order',\n change: 'Change',\n noThanks: 'No thanks',\n done: 'Done',\n cancel: 'Cancel',\n changeRestaurant: 'Change restaurant',\n changeLanguage: 'Change language',\n cancelOrder: 'Cancel order',\n yes: 'Yes',\n no: 'No',\n add: 'Add',\n backToCategory: 'Back to {category}',\n backToCategories: 'Back to categories',\n backToHome: 'Back to {category}',\n backToArticle: 'Back to {article}',\n backToShopPage: 'Back',\n back: 'Back',\n receipt: 'Receipt'\n\n },\n item: {\n notAvalible: 'item out of stock',\n favoriteHeader: 'My favorites'\n },\n label: {\n total: 'Total',\n subtotal: 'Subtotal',\n tax: 'Tax ({percent}%)',\n articleChoiceLabel1: 'Change/add ingredients',\n articleChoiceLabel2: 'Change',\n articleChoiceLabel3: 'Choose extra accessories',\n articleChoiceLabel4: 'Change',\n articleChoiceLabel5: 'Choose flavor',\n dineInPlace: 'Eat here',\n takeAway: 'Take away',\n now: 'Now'\n },\n order: {\n header: 'My order',\n pageHeader: 'Your order',\n thankYouText: 'Thanks for your order',\n infoText: '(Tap on product to change)',\n infoText2: '(Discounts are deducted in the next step)',\n emptyInfoText: 'No items in the basket yet',\n selectedRestaurant: 'Selected restaurant',\n missing: 'Order is missing',\n pickUpLabel: 'Estimated pick up time',\n statusLabel: 'current status',\n numberLabel: 'Your order number',\n note: \"Delivery to:\",\n status: {\n calculatedprice: {\n label: \"Verifying order...\",\n description: \"\"\n },\n added: {\n label: 'Your order is received',\n description: \"Your order is received and is being processed.\"\n },\n started: {\n label: 'Your order is being prepared!',\n description: \"Your order is being prepared.\"\n },\n finnished: {\n label: 'Ready for pickup!',\n description: \"Your order is ready for pickup.\"\n },\n delivered: {\n label: \"Delivered!\",\n description: \"We hope you enjoy your meal.\"\n },\n rollbacked: {\n label: \"Order cancelled, the reservation on your card has been removed, if you have payed with Swish, please contact the restaurant for a refund.\",\n description: ''\n }\n },\n campaignLabel: 'Campaign'\n },\n loader: {\n text: 'Loading...',\n languages: 'Looking for language options',\n categories: 'Looking for categories',\n image: '',\n calculatesDistances: 'Calculates distances',\n checkoutSummary: 'Contacting the restaurant',\n },\n cancel: {\n header: 'Cancel',\n text: 'Do you want to cancel?',\n order: {\n header: 'Cancel order',\n description: 'Do you want to cancel your order?',\n confirm: 'Yes, cancel',\n cancel: 'No, continue',\n }\n },\n error: {\n heading: 'Error message',\n server: 'There were a server error, please try again.',\n badRequest: 'Your browser sent a request that this server could not understand',\n unknown: 'Unknown error, please try again.',\n \"One or more validation errors occurred.\": \"One or more validation errors occurred.\",\n PasswordRequiresNonAlphanumeric: \"Password must have at least one non alphanumeric character.\",\n PasswordRequiresDigit: \"Password must have at least one digit ('0'-'9').\",\n PasswordRequiresLower: \"Password must have at least one lowercase ('a'-'z').\",\n PasswordRequiresUpper: \"Password must have at least one uppercase ('A'-'Z').\",\n PasswordTooShort: \"The password needs to be atleast 6 characters\",\n PasswordMismatch: \"Passwords do not match.\",\n DuplicateUserName: \"An account with this email already exists.\",\n DuplicateEmail: \"Try to login or forgot password insted.\",\n order: {\n \"unavailable-products\": \"One or more of the products in your order is no longer available for sale.\",\n \"shop-closed\": \"The shop you are ordering from are no longer open, try again later.\",\n \"shop-closed-at-pickuptime\": \"The shop is closed at your specified pickup time\",\n \"shop-paused\": \"The shop you are ordering from are sadly not accepting any online orders right now, try again later.\",\n \"create-order-failed\": \"For some reason we could not create your order, please try again later.\",\n },\n payment: {\n failed: 'An unknown error occured at payment (code:01)',\n aborted: 'An unknown error occured at payment (code:02)',\n notPaid: 'An unknown error occured at payment (code:03)',\n invalid: 'An unknown error occured at payment (code:04)',\n accesstokenMissing: 'An unknown error occured at payment (code:05)',\n IdentifierMissing: 'An unknown error occured at payment (code:06)',\n NotFound: 'An unknown error occured at payment (code:07)',\n merchantNotFound: 'An unknown error occured at payment (code:08)',\n orderNotFound: 'An unknown error occured at payment (code:09)',\n returnUrl: 'An unknown error occured at payment (code:10)',\n requestParametersMissing: 'An unknown error occured at payment (code:11)',\n orderFailed: 'An unknown error occured at payment (code:12)',\n captureFailed: 'An unknown error occured at payment (code:13)',\n createError: 'An unknown error occured at payment (code: 14)',\n loadScriptError: 'An unknown error occured at payment (kod: 15)',\n },\n user: {\n \"invalid-password\": \"The password provided does not meet the minimum requirements.\",\n \"register-user-failure\": \"Failed to create account\",\n }\n },\n privacyPolicy: {\n header: 'Privacy policy'\n },\n receipt: {\n heading: \"Receipt\",\n total: \"Total\",\n vat: \"VAT\",\n net: \"Net\",\n orderNumber: \"OrderNr\",\n paymentId: \"Payment id\",\n note: \"Delivery to\",\n email: \"Email:\",\n emailPlaceHolder: \"Enter your email address\",\n sendEmail: \"Send receipt\",\n emailSent: \"Email sent\",\n deliveryDate: \"Delivery time\",\n },\n article: {\n allergens: 'Information about allergens go here with a link to somewhere'\n },\n offline: {\n header: 'Offline',\n text: 'You are offline, please check your internet connection and try again.',\n button: 'Try again'\n },\n login: {\n header: 'Sign in',\n email: 'E-mail',\n password: 'Password',\n registerText: 'Don´t have an account yet?',\n registerLink: 'Create new account',\n confirm: 'log in',\n forgotPassword: 'Forgot password',\n separatorText: 'Or',\n failed: 'Failed to login, please try again',\n googleSignIn: 'Sign in with Google',\n facebookSignIn: 'Sign in with Facebook'\n },\n forgotPassword: {\n header: 'Forgot password',\n text: 'Have you forgotten your password? Enter your email to receive a recovery email.',\n email: {\n label: 'E-mail',\n placeholder: 'E-mail'\n },\n send: {\n text: 'Send'\n },\n sent: {\n header: 'E-mail sent',\n message: 'A recovery email has been sent to the specified e-mail, if you have not received an e-mail within a few minutes, there is no account linked to the specified e-mail.',\n newAccountText: 'Create an account'\n },\n },\n resetPassword: {\n header: 'Reset password',\n password: { \n label: 'New password',\n placeholder: 'Enter new password'\n },\n confirmPassword: {\n label: 'Confirm new password',\n placeholder: 'Enter the new password again'\n },\n send: {\n text: 'Reset password'\n },\n reset: {\n header: 'Password reset',\n message: 'Your password has been reset, you can now log in with your new password.'\n }\n },\n campaign: {\n bannerText: 'Campaign'\n },\n memberCard: {\n header: 'My digital club-card',\n text: 'Scan me on the kiosk or at the pos'\n\n },\n favorites: {\n header: 'My favorites',\n empty: 'You have no favorites yet'\n },\n orderHistory: {\n header: 'Order history',\n empty: 'Your order history is empty'\n },\n register: {\n header: 'Create account',\n success: {\n header: 'Account created',\n text: 'An email has been sent to the specified email address, please check your inbox and follow the instructions to confirm your email address. After that is completed you can sign in.',\n loginLink: 'Sign in'\n },\n firstname: {\n label: 'Firstnamn',\n placeholder: 'Enter your firstname'\n },\n lastname: {\n label: 'Lastname',\n placeholder: 'Enter your lastname'\n },\n email: {\n label: 'Email',\n placeholder: 'Enter email'\n },\n password: {\n label: 'Password',\n placeholder: 'Enter password'\n },\n confirmPassword: {\n label: 'Repeat password',\n placeholder: 'Repeat the password'\n },\n acceptTerms: {\n label: 'I accept the ',\n linkText: 'terms and conditions'\n },\n registerButton: 'Create account'\n },\n confirmEmail: {\n header: \"Confirm email\",\n text: \"Your account has been verified, you can now log in\", \n },\n navBar: {\n login: 'Sign in'\n },\n campaigns: {\n header: 'Offers',\n description: 'Below you see all the offers that are active right now, if you are logged in there may be more offers',\n descriptionAuthenticated: 'Below you see all the offers that are active right now.',\n membersOnly: {\n text: 'Membership offer'\n },\n localOffer: {\n text: 'Local offer'\n },\n offer: {\n text: 'Offer'\n },\n toArticle: {\n text: 'To the offer'\n },\n expandButton: {\n text: \"Show more\"\n },\n },\n profile: {\n edit: {\n header: \"Edit Profile\",\n submit: {\n text: \"Save\",\n title: \"Save the profile\"\n },\n userInformation: {\n header: \"User information\",\n name: {\n label: \"Name\",\n placeholder: \"Enter your name\",\n description: \"Your name will be displayed in the app\"\n },\n lastName: {\n label: \"Surname\",\n placeholder: \"Enter your surname\",\n description: \"Your name will be displayed in the app\"\n },\n email: {\n label: \"Email\",\n placeholder: \"Enter your Email\",\n description: \"Your email will be used to sign in to the app\"\n },\n },\n changePassword: {\n header: \"Change password\",\n password: {\n label: \"Current password\",\n placeholder: \"Enter your current password\",\n description: \"The password you currently use to sign in to the application\"\n },\n newPassword: {\n label: \"New password\",\n placeholder: \"Enter your new password\",\n description: \"The password you whant to chage to\"\n },\n confirmNewPassword: {\n label: \"Confirm the new password\",\n placeholder: \"Enter your new password again\",\n description: \"Confirm the password you whant to chage to\"\n },\n },\n emailConfirmationSent: \"An email has been sent to the specified email address, please check your inbox and follow the instructions to confirm your email address.\",\n deleteAccount: {\n text: \"Delete account\",\n title: \"Delete your account\",\n confirm: {\n header: \"Delete account?\",\n description: \"Are you really sure that you want to delete your account?\",\n ok: \"Yes, delete\",\n cancel: \"Cancel\"\n }\n }\n },\n menu: {\n userGreeting: 'Hi!', \n offers: 'Offers',\n favorites: 'My favorites',\n orderHistory: 'Order History',\n account: 'My accont',\n logout: 'Sign out'\n },\n \n \"confirm-email\": {\n header: \"Confirm email\",\n text: \"Your account has been verified, you can now log in\",\n }\n },\n },\n sv: {\n home: {\n header: 'Välkommen!',\n subHeader: 'Välj din restaurang'\n },\n list: {\n menu: 'Meny'\n },\n shopchanged: {\n header: 'Varning!',\n text: 'Du har en pågående beställning kopplad till en annan restaurang än den nuvarande.'\n },\n checkout: {\n header: 'Kassa',\n pickup: 'När ska maten vara klar?',\n orderHeader: 'Min beställning',\n },\n payment: {\n header: 'Betala'\n },\n termsAndConditions: {\n header: 'Allmänna villkor'\n },\n suggestedArticles: {\n header: 'Får vi erbjuda något annat?',\n },\n selectedShop: {\n header: 'Välj var du vill äta',\n extraInfo: ''\n },\n search: {\n label: 'Sök restaurang',\n placeholder: 'Hitta restaurang',\n noMatch: 'Ingen matchande restaurang'\n },\n shopSelector: {\n singleShop: {\n start: \"Beställ här\",\n closed: \"Stängt för idag\",\n paused: \"Stängt för beställning\",\n openingHoursHeader: \"Dagens öppettider på webben\",\n }\n },\n button: {\n showMore: 'Visa mer',\n showMoreRestaurants: 'Visa fler restauranger',\n open: 'Öppet',\n closed: 'Stängt',\n paused: 'Stängt på webben',\n dineInPlace: 'På restaurangen',\n takeAway: 'Ta med',\n pay: 'Betala',\n order: 'Beställ',\n change: 'Ändra',\n noThanks: 'Nej tack',\n done: 'Klar',\n cancel: 'Avbryt',\n changeRestaurant: 'Byt restaurang',\n changeLanguage: 'Byt språk',\n cancelOrder: 'Avbryt beställningen',\n yes: 'Ja',\n no: 'Nej',\n add: 'Lägg till',\n back: 'Tillbaka',\n backToCategories: 'Tillbaka till menyn',\n backToCategory: 'Tillbaka till {category}',\n backToArticle: 'Tillbaka till {article}',\n backToHome: 'Avbryt beställning',\n backToShopPage: 'Avbryt beställning',\n receipt: 'Kvitto'\n },\n item: {\n notAvalible: 'Tillfälligt slut',\n favoriteHeader: 'Mina favoriter'\n },\n label: {\n total: 'Totalt',\n subtotal: 'Netto',\n tax: 'Varav moms ({percent}%)',\n dineInPlace: 'Äta på restaurangen',\n takeAway: 'Ta med',\n articleChoiceLabel1: 'Anpassa',\n articleChoiceLabel2: 'Byt tillbehör',\n articleChoiceLabel3: 'Lägg till extra tillbehör',\n articleChoiceLabel4: 'Ändra dryck',\n articleChoiceLabel5: 'Välj smak',\n now: 'Så snart som möjligt',\n },\n order: {\n header: 'Min beställning',\n pageHeader: 'Din beställning',\n thankYouText: 'Tack för din beställning',\n infoText: '(Tryck på produkt för att ändra)',\n infoText2: '(ev. rabatter dras i nästa steg)',\n emptyInfoText: 'Inga varor i korgen ännu',\n selectedRestaurant: 'Vald restaurang',\n missing: 'Beställningen saknas',\n pickUpLabel: 'Beräknad hämtningstid',\n statusLabel: 'Nuvarande status',\n numberLabel: 'Ditt beställningsnummer',\n note: \"Levereras till:\",\n status: {\n calculatedprice: {\n label: \"Kontrollerar beställning...\",\n description: \"\"\n },\n added: {\n label: 'Mottagen',\n description: \"Din beställning är mottagen\"\n },\n started: {\n label: 'Tillagas!',\n description: \"Din beställning tillagas.\"\n },\n finnished: {\n label: 'Klart',\n description: \"Din beställning är redo att hämtas\"\n },\n delivered: {\n label: \"Upphämtad\",\n description: \"Hoppas maten smakar\"\n },\n rollbacked: {\n label: \"Avbruten\",\n description: \"Din beställning är avbryten. Reservationen på kortet är borttagen, har du betalat med Swish bör du kontakta restaurangen för återbetalning.\"\n }\n },\n campaignLabel: 'Erbjudande'\n },\n loader: {\n text: 'Laddar...',\n languages: 'Letar efter språkval',\n categories: 'Letar efter kategorier',\n image: '',\n calculatesDistances: 'Beräknar avstånd',\n checkoutSummary: 'Kontaktar restaurangen',\n },\n cancel: {\n header: 'Avbryt',\n text: 'Vill du verkligen avbryta?',\n order: {\n header: 'Avbryt beställning',\n description: 'Vill du avbryta din beställning?',\n confirm: 'Ja',\n cancel: 'Nej, fortsätt',\n }\n },\n error: {\n heading: 'Felmeddelande',\n server: 'Det uppstod ett serverfel, försök igen.',\n badRequest: 'Din webbläsare skickade en begäran som den här servern inte kunde förstå.',\n notFound: 'Sidan kunde inte hittas. Detta kan bero på att artikeln eller sidan inte finns tillgänlig för denna restaurang.',\n unknown: 'Okänt fel, försök igen. ',\n \"One or more validation errors occurred.\": \"One or more validation errors occurred.\",\n PasswordRequiresNonAlphanumeric: \"Lösenordet måste innehålla minst ett specialtecken.\",\n PasswordRequiresDigit: \"Lösenordet måste innehålla minst en siffra ('0'-'9').\",\n PasswordRequiresLower: \"Lösenordet måste innehålla minst en liten bokstav ('a'-'z').\",\n PasswordRequiresUpper: \"Lösenordet måste innehålla minst en stor bokstav ('A'-'Z').\",\n PasswordTooShort: \"Lösenordet måste innehålla minst 6 tecken\",\n PasswordMismatch: \"Lösenorden matchar inte.\",\n DuplicateUserName: \"Ett konto med denna e-postadress finns redan.\",\n DuplicateEmail: \"Testa logga in eller glömt lösenord istället.\",\n order: {\n \"unavailable-products\": \"Någon av produkterna i din varukorg är inte längre tillgängliga för beställning\",\n \"shop-closed\": \"Butiken du försöker beställa till är stängd, försök igen senare.\",\n \"shop-closed-at-pickuptime\": \"Butiken du försöker beställa till är stängd vid den angivna upphämtningstiden\",\n \"shop-paused\": \"Butiken du försöker beställa till tar tyvärr inte emot beställningar via webben just nu, försök igen senare.\",\n \"create-order-failed\": \"Tyvärr gick det för närvarande inte att skapa din beställing, var god försök igen senare.\",\n },\n payment: {\n failed: 'Det uppstod tyvärr ett fel vid betalningen (kod:01)',\n aborted: 'Det uppstod tyvärr ett fel vid betalningen (kod:02)',\n notPaid: 'Det uppstod tyvärr ett fel vid betalningen (kod:03)',\n invalid: 'Det uppstod tyvärr ett fel vid betalningen (kod:04)',\n accesstokenMissing: 'Det uppstod tyvärr ett fel vid betalningen (kod:05)',\n IdentifierMissing: 'Det uppstod tyvärr ett fel vid betalningen (kod:06)',\n NotFound: 'Det uppstod tyvärr ett fel vid betalningen (kod:07)',\n merchantNotFound: 'Det uppstod tyvärr ett fel vid betalningen (kod:08)',\n orderNotFound: 'Det uppstod tyvärr ett fel vid betalningen (kod:09)',\n returnUrl: 'Det uppstod tyvärr ett fel vid betalningen (kod:10)',\n requestParametersMissing: 'Det uppstod tyvärr ett fel vid betalningen (kod:11)',\n orderFailed: 'Det uppstod tyvärr ett fel vid betalningen (kod:12)',\n captureFailed: 'Det uppstod tyvärr ett fel vid betalningen (kod:13)',\n createError: 'Det uppstod tyvärr ett fel vid betalningen (kod: 14)',\n loadScriptError: 'Det uppstod tyvärr ett fel vid betalningen (kod: 15)',\n },\n user: {\n \"invalid-password\": \"Lösenordet uppfyller inte de minimikrav som ställs.\",\n \"register-user-failure\": \"Misslyckades att skapa konto\",\n }\n },\n privacyPolicy: {\n header: 'Sekretess policy',\n policy: \"

Vi på Winpos respekterar din integritet och har åtagit oss att skydda din personliga information. Denna integritetspolicy beskriver den information vi samlar in, hur vi använder den och hur vi skyddar den i samband med din användning av vår weborder/app.

\\n\" +\n \"

Information vi samlar in

\\n\" +\n \"

Vi kan samla in personuppgifter som du tillhandahåller när du använder vår weborder/app, till exempel din IP-adress. Vi kan också samla in icke-personlig information, till exempel din enhetstyp och användningsdata.

\\n\" +\n \"

Hur vi använder din information

\\n\" +\n \"

Vi använder den personliga information vi samlar in för att uppfylla din beställning, tillhandahålla kundsupport och kommunicera med dig om vår weborder/app. Vi kan också använda din information för att skicka dig marknadsföringskommunikation om våra andra produkter och tjänster.

\\n\" +\n \"

Vi kan dela din information med tredje parts tjänsteleverantörer som hjälper oss att uppfylla din beställning och tillhandahålla kundsupport. Vi kan också dela din information med våra dotterbolag och partners för marknadsföringsändamål.

\\n\" +\n \"

Rättslig grund för behandling

\\n\" +\n \"

Enligt GDPR behandlar vi dina personuppgifter på den rättsliga grunden för ditt samtycke eller för att uppfylla ett avtal med dig. Vi har också ett berättigat intresse av att behandla din information för kundsupport och marknadsföringsändamål.

\\n\" +\n \"

Hur vi skyddar din information

\\n\" +\n \"

Vi vidtar rimliga åtgärder för att skydda din personliga information från obehörig åtkomst, avslöjande, ändring och förstörelse. Vi använder säkerhetsåtgärder av branschstandard, såsom kryptering och säkra servrar, för att skydda din information.

\\n\" +\n \"

Dina rättigheter

\\n\" +\n \"

Enligt GDPR har du rätt att få tillgång till, korrigera, radera och begränsa behandlingen av dina personuppgifter. Du har också rätt att invända mot behandlingen av dina personuppgifter för marknadsföringsändamål.

\\n\" +\n \"

Om du vill utöva någon av dessa rättigheter, vänligen kontakta oss på info@winpos.se. Vi kommer att svara på din förfrågan inom 30 dagar.

\\n\" +\n \"

Uppdateringar av denna sekretesspolicy

\\n\" +\n \"

Vi kan uppdatera denna sekretesspolicy från tid till annan för att återspegla förändringar i vår praxis eller tillämplig lag. Vi kommer att meddela dig om eventuella väsentliga ändringar genom att publicera den uppdaterade sekretesspolicyn på vår webbplats eller via vår weborder/app.

\\n\" +\n \"

Kontakta oss

\\n\" +\n \"

Om du har några frågor eller funderingar om denna sekretesspolicy eller vår GDPR-efterlevnad, vänligen kontakta oss på info@winpos.se.

\\n\" +\n \"

Ikraftträdandedatum: 2023-05-01

\"\n },\n receipt: {\n heading: \"Kvitto\",\n total: \"Totalt\",\n vat: \"Moms\",\n net: \"Netto\",\n orderNumber: \"Beställnings nr\",\n paymentId: \"Betalnings id\",\n note: \"Levereras till\",\n email: \"E-post:\",\n emailPlaceHolder: \"Skriv in din e-postadress\",\n sendEmail: \"Skicka kvitto\",\n emailSent: \"Kvitto skickat\",\n deliveryDate: \"Leveranstid\",\n },\n article: {\n allergens: 'Information om allergener bör skrivas ut här, med en länk till någonstans.'\n },\n offline: {\n header: 'Det går inte ansluta till internet',\n text: 'Kontrollera din internetanslutning och försök igen.',\n button: 'Försök igen'\n },\n login: {\n header: 'Logga in',\n email: 'E-post',\n password: 'Lösenord',\n registerText: 'Saknar du konto?',\n registerLink: 'Skapa konto',\n confirm: 'Logga in',\n forgotPassword: 'Glömt lösenord',\n separatorText: 'Eller',\n failed: 'Misslyckades att logga in, försök igen',\n googleSignIn: 'Logga in med Google',\n facebookSignIn: 'Logga in med Facebook'\n },\n forgotPassword: {\n header: 'Glömt lösenord',\n text: 'Har ni glömt ert lösenord? Fyll i din e-post för att få ett återställningsmejl.',\n email: {\n label: 'Ange e-post',\n placeholder: 'E-post'\n },\n send: {\n text: 'Skicka'\n },\n sent: {\n header: 'Skickat',\n message: 'Ett återställningsmail har skickats till angivna epost, har ni inte fått något mail inom några minuter finns det inget konto kopplat till angiven e-post.',\n newAccountText: 'Skapa ett konto'\n },\n },\n resetPassword: {\n header: 'Återställ lösenordet',\n password: {\n label: 'Nytt lösenord',\n placeholder: 'Ange ett nytt lösenord'\n },\n confirmPassword: {\n label: 'Bekräfta det nya lösenordet',\n placeholder: 'Ange det nya lösenordet igen'\n },\n send: {\n text: 'Återställ'\n },\n reset: {\n header: 'Lösenordet återställt',\n message: 'Ditt lösenord har återställts, du kan nu logga in med ditt nya lösenord.'\n }\n },\n campaign: {\n bannerText: 'Erbjudande'\n },\n memberCard: {\n header: 'Mitt digitala klubb-kort',\n text: 'Skanna mig i kassan eller i självbetjänten'\n },\n orderHistory: {\n header: 'Beställningshistorik',\n empty: 'Du har ingen beställningshistorik ännu'\n },\n favorites: {\n header: 'Mina favoriter',\n empty: 'Du har inga favoriter ännu'\n },\n register: {\n header: 'Skapa konto',\n success: {\n header: 'Konto skapat',\n text: 'Ett mail har skickats till angiven e-post, vänligen kolla din inkorg och följ instruktionerna för att bekräfta din e-postadress. Efter det kan du logga in.',\n loginLink: 'Logga in'\n },\n firstname: {\n label: 'Förnamn',\n placeholder: 'Ange förnamn'\n },\n lastname: {\n label: 'Efternamn',\n placeholder: 'Ange efternamn'\n },\n email: {\n label: 'E-post',\n placeholder: 'Ange e-post'\n },\n password: {\n label: 'Lösenord',\n placeholder: 'Ange lösenord'\n },\n confirmPassword: {\n label: 'Upprepa lösenordet',\n placeholder: 'Upprepa lösenordet'\n },\n acceptTerms: {\n label: 'Jag godkänner ',\n linkText: 'villkoren'\n },\n passwordMismatch: {\n text:'Lösenorden matchar inte'\n },\n registerButton: 'Skapa konto'\n\n },\n confirmEmail: {\n header: \"E-post bekräftad\",\n text: \"Ditt konto har bekräftats, du kan nu logga in.\",\n },\n navBar: {\n login: 'Logga in'\n },\n campaigns: {\n header: 'Erbjudanden just nu',\n description: 'Nedan ser du alla erbjudanden som är aktiva just nu, är du inloggad så kan det finnas fler erbjudanden.',\n descriptionAuthenticated: 'Nedan ser du alla erbjudanden som är aktiva just nu.',\n membersOnly: {\n text: 'Medlemserbjudande'\n },\n localOffer: {\n text: 'Lokalt erbjudande'\n },\n offer: {\n text: 'Erbjudande'\n },\n toArticle: {\n text: 'Till erbjudandet'\n },\n expandButton: {\n text: \"Visa mer\"\n },\n },\n profile: {\n edit: {\n header: \"Mitt konto\",\n submit: {\n text: \"Spara\",\n title: \"Spara kontouppgifter\"\n },\n userInformation: {\n header: \"Användarinformation\",\n name: {\n label: \"Namn\",\n placeholder: \"Skriv in ditt namn\",\n description: \"Ditt namn kommer visas på ditt konto\"\n },\n lastName: {\n label: \"Efternamn\",\n placeholder: \"Skriv in ditt efternamn\",\n description: \"Ditt efternamn kommer visas på ditt konto\"\n },\n email: {\n label: \"E-post\",\n placeholder: \"Skriv in din e-post\",\n description: \"Din e-post använder du när du loggar in\"\n },\n },\n changePassword: {\n header: \"Byt lösenord\",\n password: {\n label: \"Nuvarande lösenord\",\n placeholder: \"Skriv in ditt nuvarande lösenord\",\n description: \"Skriv in det lösenord du använder idag för att logga in\"\n },\n newPassword: {\n label: \"Nytt lösenord\",\n placeholder: \"Skriv in ditt nya lösenord\",\n description: \"Det lösenord som du vill byta till\"\n },\n confirmNewPassword: {\n label: \"Bekräfta det nya lösenordet\",\n placeholder: \"Skriv in det nya lösenordet igen\",\n description: \"Det lösenord som du vill byta till, igen\"\n },\n },\n emailConfirmationSent: \"Ett mail har skickats till angiven e-post, vänligen kolla din inkorg och följ instruktionerna för att bekräfta din e-postadress.\",\n deleteAccount: {\n text: \"Ta bort konto\",\n title: \"Ta bort ditt konto från tjänsten\",\n confirm: {\n header: \"Ta bort konto??\",\n description: \"Är du verkligen helt säker på att du vill ta bort kontot?\",\n ok: \"Ja, ta bort\",\n cancel: \"Avbryt\"\n }\n }\n },\n menu: {\n userGreeting: 'Hej!', \n offers: 'Erbjudanden',\n favorites: 'Mina favoriter ',\n orderHistory: 'Beställningshistorik',\n account: 'Mitt konto',\n logout: 'Logga ut'\n },\n }\n },\n fi: {\n home: {\n header: 'Tervetuloa!',\n subHeader: 'Valitse ravintola',\n },\n list: {\n menu: 'Menu'\n },\n shopchanged: {\n header: 'Varoitus!',\n text: 'Sinulla on odottava tilaus toisessa ravintolassa kuin nyt valitussa ravintolassa.'\n },\n checkout: {\n header: 'Kassa',\n pickup: 'Noutoaika',\n orderHeader: 'Tilaukseni',\n },\n payment: {\n header: 'Maksa tilaus'\n },\n termsAndConditions: {\n header: 'Käyttöehdot'\n },\n suggestedArticles: {\n header: 'Voimmeko tarjota jotain muuta?',\n },\n selectedShop: {\n header: 'Valitse missä haluat syödä',\n },\n search: {\n label: 'Etsi ravintola',\n placeholder: 'Löydä ravintola',\n noMatch: 'Vastaavia ravintoloita ei löytynyt'\n },\n shopSelector: {\n singleShop: {\n start: \"Aloita tilaus\",\n closed: \"Suljettu tältä päivältä\",\n paused: \"Suljettu tilauksilta\",\n openingHoursHeader: \"Aukioloajat\",\n }\n },\n button: {\n showMore: 'Näytä enemmän',\n showMoreRestaurants: 'Näytä enemmän ravintoloita',\n open: 'Auki',\n closed: 'Suljettu',\n paused: 'Suljettu tilauksilta',\n dineInPlace: 'Syön ravintolassa',\n takeAway: 'Otan mukaan',\n pay: 'Maksa',\n order: 'Tilaa',\n change: 'Muokkaa',\n noThanks: 'Ei kiitos',\n done: 'Valmis',\n cancel: 'Peruuta',\n changeRestaurant: 'Vaihda ravintola',\n changeLanguage: 'Vaihda kieli',\n cancelOrder: 'Peru tilaus',\n yes: 'Kyllä',\n no: 'Ei',\n add: 'Lisää',\n back: 'Takaisin',\n receipt: 'Kuitti'\n\n },\n item: {\n notAvalible: 'tuote loppu',\n },\n label: {\n total: 'Yhteensä',\n subtotal: 'Välisumma',\n tax: 'Alv ({percent}%)',\n articleChoiceLabel1: 'Muokkaa/lisää',\n articleChoiceLabel2: 'Muokkaa',\n articleChoiceLabel3: 'Valitse lisukkeet',\n articleChoiceLabel4: 'Muokkaa',\n articleChoiceLabel5: 'Valitse maku',\n dineInPlace: 'Syön ravintolassa',\n takeAway: 'Otan mukaan',\n now: 'Nyt'\n },\n order: {\n header: 'Tilaukseni',\n pageHeader: 'Tilauksesi',\n thankYouText: 'Kiitos tilauksestasi',\n infoText: '(Napauta tuotetta tehdäksesi muutoksia)',\n emptyInfoText: 'Ei vielä tuotteita ostoskorissa',\n selectedRestaurant: 'Valittu ravintola',\n missing: 'Tilaus puuttuu',\n pickUpLabel: 'Arvioitu noutoaika',\n statusLabel: 'nykyinen tila',\n numberLabel: 'Tilausnumerosi',\n note: \"Toimitus osoitteeseen:\",\n status: {\n processing: \"Vahvistetaan tilausta...\",\n received: 'Tilauksesi on vastaanotettu',\n started: 'Tilaustasi valmistellaan!',\n readyforpickup: 'Valmis noudettavaksi!',\n delivered: \"Toimitettu!\",\n rollbacked: \"Tilaus peruttu, korttisi varaus on poistettu. Jos olet maksanut Swishillä, ota yhteyttä ravintolaan rahan palautusta varten.\"\n }\n },\n loader: {\n text: 'Ladataan...',\n languages: 'Etsitään kielivaihtoehtoja',\n categories: 'Etsitään kategorioita',\n image: '',\n calculatesDistances: 'Lasketaan etäisyydet',\n },\n cancel: {\n header: 'Peruutus',\n text: 'Haluatko perua tilauksen?',\n order: {\n header: 'Peru tilaus',\n description: 'Haluatko perua tilauksesi?',\n confirm: 'Kyllä, perun tilauksen',\n cancel: 'Ei, jatka',\n }\n },\n error: {\n heading: 'Virheviesti',\n server: 'Palvelinvirhe, yritä uudelleen.',\n badRequest: 'Selaimesi lähetti pyynnön, jota tämä palvelin ei ymmärtänyt.',\n unknown: 'Tuntematon virhe, yritä uudelleen.',\n order: {\n \"unavailable-products\": \"Yksi tai useampi tilauksesi tuotteista ei ole enää saatavilla.\",\n \"shop-closed\": \"Ravintola ei ole enää auki, yritä myöhemmin uudelleen.\",\n \"shop-closed-at-pickuptime\": \"Ravintola on suljettu valitsemanasi noutoaikana.\",\n \"shop-paused\": \"Ravintola ei valitettavasti ota vastaan verkkotilauksia juuri nyt, yritä myöhemmin uudelleen.\",\n \"create-order-failed\": \"Jostain syystä emme voineet luoda tilaustasi, yritä myöhemmin uudelleen.\",\n },\n payment: {\n failed: 'Maksun yhteydessä tapahtui tuntematon virhe (code:01)',\n aborted: 'Maksun yhteydessä tapahtui tuntematon virhe (code:02)',\n notPaid: 'Maksun yhteydessä tapahtui tuntematon virhe (code:03)',\n invalid: 'Maksun yhteydessä tapahtui tuntematon virhe (code:04)',\n accesstokenMissing: 'Maksun yhteydessä tapahtui tuntematon virhe (code:05)',\n IdentifierMissing: 'Maksun yhteydessä tapahtui tuntematon virhe (code:06)',\n NotFound: 'Maksun yhteydessä tapahtui tuntematon virhe (code:07)',\n merchantNotFound: 'Maksun yhteydessä tapahtui tuntematon virhe (code:08)',\n orderNotFound: 'Maksun yhteydessä tapahtui tuntematon virhe (code:09)',\n returnUrl: 'Maksun yhteydessä tapahtui tuntematon virhe (code:10)',\n requestParametersMissing: 'Maksun yhteydessä tapahtui tuntematon virhe (code:11)',\n orderFailed: 'Maksun yhteydessä tapahtui tuntematon virhe (code:12)',\n captureFailed: 'Maksun yhteydessä tapahtui tuntematon virhe (code:13)',\n createError: 'Maksun yhteydessä tapahtui tuntematon virhe (code: 14)',\n loadScriptError: 'Maksun yhteydessä tapahtui tuntematon virhe (kod: 15)',\n }\n },\n privacyPolicy: {\n header: 'Tietosuojakäytäntö'\n },\n receipt: {\n heading: \"Kuitti\",\n total: \"Yhteensä\",\n vat: \"Alv\",\n net: \"Netto\",\n orderNumber: \"TilausNro\",\n paymentId: \"Maksutunnus\",\n note: \"Toimitus osoitteeseen\",\n email: \"Sähköpostiosoite:\",\n emailPlaceHolder: \"Syötä sähköpostiosoitteesi\",\n sendEmail: \"Lähetä kuitti\",\n emailSent: \"Sähköposti lähetetty\",\n deliveryDate: \"Toimitusajankohta\",\n },\n article: {\n allergens: 'Tietoa allergeeneista somewhere'\n }\n },\n ru: {\n home: {\n header: 'Добро пожаловать! Выберите свой ресторан',\n },\n checkout: {\n header: 'Kassan',\n text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.'\n },\n suggestedArticles: {\n header: 'Får vi erbjuda något annat?',\n },\n selectedShop: {\n header: 'Выберите, где поесть'\n },\n search: {\n label: 'Поиск ресторана',\n placeholder: 'Найти ресторан',\n noMatch: 'Нет подходящего ресторана'\n },\n button: {\n showMore: 'Visa mer',\n showMoreRestaurants: 'Показать больше ресторанов',\n open: 'открыть',\n closed: 'Закрыто',\n paused: 'Stängt på webben',\n dineInPlace: 'Есть здесь',\n takeAway: 'Приносить',\n pay: 'Betala',\n order: 'Beställ',\n change: 'Ändra',\n noThanks: 'Nej tack',\n done: 'Klar',\n cancel: 'Avbryt',\n changeRestaurant: 'Изменить ресторан',\n changeLanguage: 'переключить язык',\n cancelOrder: 'Avbryt order',\n yes: 'Да',\n no: 'Нет'\n },\n label: {\n total: 'Totalt',\n dineInPlace: 'Äta här',\n takeAway: 'Ta med',\n articleChoiceLabel1: 'Ändra/lägg till ingredienser',\n articleChoiceLabel2: 'Ändra',\n articleChoiceLabel3: 'Lägg till extra tillbehör',\n articleChoiceLabel4: 'Ändra',\n articleChoiceLabel5: 'Välj smak',\n },\n order: {\n header: 'Min beställning',\n infoText: '(Tryck på produkt för att ändra)',\n emptyInfoText: 'Inga varor i korgen ännu'\n },\n loader: {\n text: 'Letar efter hamburgare',\n languages: 'Letar efter språkval',\n categories: 'Letar efter kategorier',\n image: ''\n },\n cancel: {\n header: 'Avbryt',\n text: 'Vill du verkligen avbryta?',\n order: {\n header: 'Avbryt beställning',\n description: 'Vill du avbryta din beställning?',\n confirm: 'Ja, avbryt',\n cancel: 'Nej, fortsätt',\n }\n }\n }\n}\n\nconst defaultLanguage = () => {\n return new Promise((resolve: any) => {\n axios.post(`/api/cultures/setdefaultculture`)\n .then(response => response.data)\n .finally(() => resolve());\n });\n};\n\nconst getLocaleFromCookie = ()=>{\n const cookie = document.cookie.split(';').find(c=>c.includes('.AspNetCore.Culture'))\n let culture = 'sv';\n if(cookie){\n const cookieValue = decodeURIComponent(cookie.split('=')[1]);\n const cultureValues = cookieValue.split('|');\n if(cultureValues.length > 1){\n culture = cultureValues[1].split('=')[1]; //uic value of aspnet core culture cookie\n }\n }\n console.log('culture', culture);\n return culture;\n}\n\n\nexport default createI18n({\n locale: getLocaleFromCookie(),\n fallbackLocale: 'en',\n legacy: false,\n messages\n})","export const messages = {\n en: {},\n sv:{},\n fi:{},\n no:{},\n ru:{}\n}","/* eslint-disable no-console */\n\nimport {register} from 'register-service-worker'\n\nif (process.env.NODE_ENV === 'production') {\nregister(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n console.log(\n 'App is being served from cache by a service worker.\\n' +\n 'For more details, visit https://goo.gl/AFskqB'\n )\n },\n registered(registration) {\n console.log('Service worker has been registered.')\n },\n cached() {\n console.log('Content has been cached for offline use.')\n },\n updatefound() {\n console.log('New content is downloading.')\n },\n updated() {\n console.log('New content is available; please refresh.')\n document.body.classList.add('update-available');\n // if(confirm(\"New version available. Load New Version?\")){\n // window.location.reload();\n // }\n },\n offline() {\n console.log('No internet connection found. App is running in offline mode.')\n alert('offline');\n },\n error(error) {\n console.error('Error during service worker registration:', error)\n }\n})\n}","import {IonicVue} from '@ionic/vue';\nimport mitt from 'mitt';\nimport {createPinia} from 'pinia';\nimport {createApp} from 'vue';\nimport App from './App.vue';\nimport i18n from \"./i18n\";\nimport router from './router';\nimport {messages} from 'i18n-customer-overrides';\n\n/* Core CSS required for Ionic components to work properly */\nimport '@ionic/vue/css/core.css';\n\n/* Basic CSS for apps built with Ionic */\nimport '@ionic/vue/css/normalize.css';\nimport '@ionic/vue/css/structure.css';\n/* Theme variables */\nimport {AppStore} from '@/stores/app';\nimport {CartStore} from '@/stores/cart';\nimport {NavigationStore} from '@/stores/navigation';\nimport {ShopStore} from '@/stores/shop';\nimport {CouponStore} from \"@/stores/coupon\";\nimport './theme/style.scss';\nimport {OrderType} from \"@/enums\";\nimport {isOpen, isReachable} from \"@/functions\";\n\n// import {registerWorker} from \"@/functions/register-worker\"; //needed for the future when we want to use push notifications\n// registerWorker();\nimport './registerServiceWorker';\nimport {AuthStore} from \"@/stores/auth\";\nimport {LocationQueryValue} from \"vue-router\";\n\nconst handler = (e:Event)=>{\n const delay = 5000;\n if(navigator.onLine){\n setTimeout(()=>{\n isReachable(window.location.origin).then((online)=>{\n if(!online) {\n console.log('offline');\n handler(e);\n } else {\n //if we are on the offline page, go to home, otherwise do nothing\n router.currentRoute.value.name==='offline' && router.push({name:'home'});\n }\n });\n },delay);\n } else {\n //regardless of where we are, if we go offline, we go to the offline page\n router.push({name:'offline'});\n }\n console.log(e);\n console.log(navigator.onLine);\n};\n\nwindow.addEventListener(\"online\", handler);\nwindow.addEventListener(\"offline\", handler);\n\nconst emitter = mitt();\nconst pinia = createPinia();\n\n//Add customer specific overrides of i18n texts\ni18n.global.mergeLocaleMessage('en', messages.en);\ni18n.global.mergeLocaleMessage('sv', messages.sv);\ni18n.global.mergeLocaleMessage('fi', messages.fi);\ni18n.global.mergeLocaleMessage('ru', messages.ru);\ni18n.global.mergeLocaleMessage('no', messages.no);\n\n\nconst app = createApp(App)\n .use(IonicVue)\n .use(router)\n .use(pinia)\n .use(i18n);\n\nrouter.isReady().then(() => {\n app.config.globalProperties.emitter = emitter;\n\n app.mount('#app');\n\n app.config.errorHandler = (err, instance, info) => {\n console.error('Global Error', err, instance, info);\n }\n});\n\nconst authStore = AuthStore();\nconst navStore = NavigationStore();\nconst shopStore = ShopStore();\nconst cartStore = CartStore();\nconst appStore = AppStore();\nconst couponStore = CouponStore();\ncouponStore.load();\n\nif(authStore.state.isAuthenticated){\n document.body.classList.add('authenticated');\n}\n\nrouter.beforeEach(async (to, from) => {\n console.log('------------------------------------------')\n //we await the loading state so that it is available for each route\n if(authStore.state.loading){\n console.log('authStore.state.loading is true, waiting for it to finish')\n await authStore.waitForLoading()\n console.log('authStore.state.loading is false, continuing')\n }\n \n console.log('routing from', from.name,\"to\", to.name, \"with parameters\", to.params, \"and query\", to.query);\n if(to.meta.requiresAuth && !authStore.state.isAuthenticated){\n if(authStore.state.loading) {\n console.log('auth is loading, should wait for it to finish');\n }\n return { name:'login', query:{ redirectUri: to.fullPath }};\n }\n\n if(to.query.orderType != undefined || to.query.note != undefined) {\n console.log('route has orderType or note in query, setting them in cart')\n const q = { ...to.query };\n if(to.query.orderType) {\n cartStore.setOrderType(to.query.orderType as OrderType);\n delete q.orderType;\n }\n \n if(to.query.note){\n cartStore.setNote(to.query.note as string);\n delete q.note;\n }\n \n //this shortcircuits the meta stuff which is not ideal\n \n to = { ...to, query: q};\n }\n \n\n if(to.params.shopId && shopStore.id != Number(to.params.shopId))\n {\n console.log(`route ${to.name?.toString()} has shopId ${to.params.shopId}, loading shop`);\n //The link contains a shopId, load the shop if it´s not already selected\n await shopStore.load(Number(to.params.shopId));\n if(!shopStore.id) {\n console.log('shop was not set, redirecting to home');\n return { name:'home' };\n }\n }\n \n if(to.meta.requiresShop && shopStore.id && !shopStore.shop?.openForBusiness) {\n console.log('shop is closed, redirecting to home');\n return { name:'home' };\n }\n \n\n if(to.meta.requiresShop && !shopStore.id){\n console.log(`${to.name?.toString()} requires shop, but none was set, redirecting to home with redirectUri set to ${to.fullPath}`);\n return { name:'home', query: {redirectUri: to.fullPath} };\n }\n \n appStore.state.currentPage = to?.name;\n appStore.state.lastPage = from?.name;\n appStore.state.currentPageFullPath = to?.fullPath;\n appStore.state.lastPageFullPath = from?.fullPath;\n \n cartStore.state.visible = to.meta?.showCart === true;\n console.log(`setting cart.visibility to ${cartStore.state.visible} for route ${to.name?.toString()}`);\n \n // if (to?.name === 'categoriesPage') {\n // //Support deep linking via QR codes to a specific shop, with a note and a on orderType\n // const params = new URLSearchParams(window.location.search);\n // const note = params.get('note');\n // if (to.params.shopId) {\n // if (note) {\n // const shopId = Number(to.params.shopId);\n // await shopStore.load(shopId);\n // if (shopStore.shop && !isOpen(shopStore.shop)) {\n // return {name: 'home'}\n // }\n //\n // cartStore.setNote(note);\n // params.delete('note')\n //\n // const orderType = params.get('orderType');\n // if (orderType) {\n // cartStore.setOrderType(orderType as OrderType);\n // params.delete('orderType')\n // }\n // }\n // }\n // }\n \n // Hide nav on Home\n if (to.name === 'home' || to?.name==='offline') {\n const classes= [...document.body.classList]\n classes.filter(c=>c.startsWith('shop-')).forEach(c=>document.body.classList.remove(c));\n console.log('removing shop-classes from body', classes);\n } else {\n if (cartStore.state.shopId) {\n document.body.classList.add(`shop-${cartStore.state.shopId ?? 'none'}`);\n console.log('setting shop-class on body to', cartStore.state.shopId);\n }\n }\n\n if (to.name !== 'home') {\n //If restaurant changed and user has items in cart then clear cart.\n if (cartStore.state.items.length > 0 && shopStore.id && !cartStore.compareShop(shopStore.id)) {\n cartStore.clear(true);\n console.log('clearing cart because shop changed')\n }\n }\n \n if(to.meta.editMode === true){\n cartStore.state.editMode = true;//to.meta.editMode === true;\n console.log('setting editMode to', cartStore.state.editMode, 'for route', to.name?.toString());\n } else {\n cartStore.state.editMode = false;\n }\n \n if(to.meta.showAddItemButton === true) {\n cartStore.state.showAddItemButton = to.meta.showAddItemButton === true;\n console.log('setting showAddItemButton to', cartStore.state.showAddItemButton, 'for route', to.name?.toString());\n } else {\n cartStore.state.showAddItemButton = false;\n }\n \n\n if(to.meta.disableCart) {\n cartStore.state.disabled = true;\n console.log(`route ${to.name?.toString()} has disabled cart`);\n if (appStore.state.isSmallScreen) {\n cartStore.state.showOrderInfo = false;\n console.log(`route ${to.name?.toString()} hiding order info because of small screen`);\n }\n } else {\n cartStore.state.disabled = false;\n }\n\n emitter.emit('onNavigate');\n})\n\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, withCtx as _withCtx, createVNode as _createVNode, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"page page--offline\" }\nconst _hoisted_2 = { class: \"page__content\" }\nconst _hoisted_3 = { key: 0 }\n\nimport {IonContent, IonPage, onIonViewDidEnter} from \"@ionic/vue\";\nimport {useI18n} from 'vue-i18n'\nimport {isReachable} from \"@/functions\";\nimport {ApiStatus} from \"@/types\";\nimport {reactive} from \"vue\";\nimport router from '@/router';\n\ninterface State {\n status: ApiStatus\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Offline',\n setup(__props) {\n\nconst {t} = useI18n();\n\nconst state = reactive({\n status: {\n done: false,\n failed: false,\n loading: false\n }\n});\n\n\nconst retry = () => {\n state.status.loading = true;\n isReachable(window.location.origin)\n .then((online) => {\n if(online){\n router.push({ name:'home'});\n }\n }).finally(() => {\n state.status.loading = false;\n });\n};\n\nonIonViewDidEnter(()=>{\n if(navigator.onLine){\n router.push({ name:'home'});\n }\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_unref(IonPage), null, {\n default: _withCtx(() => [\n _createVNode(_unref(IonContent), null, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"h1\", null, _toDisplayString(_unref(t)('offline.header')), 1),\n _createElementVNode(\"p\", null, _toDisplayString(_unref(t)('offline.text')), 1),\n _createElementVNode(\"button\", {\n class: \"btn\",\n onClick: retry\n }, _toDisplayString(_unref(t)('offline.button')), 1),\n (state.status.loading)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_3, \"Loading\"))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n}\n}\n\n})","import script from \"./Offline.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Offline.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","export const calculateDistance = (\n lat1: number,\n lon1: number,\n lat2: number,\n lon2: number,\n unit: string\n) => {\n if (lat1 === lat2 && lon1 === lon2) {\n return 0;\n } else {\n const radlat1 = (Math.PI * lat1) / 180;\n const radlat2 = (Math.PI * lat2) / 180;\n const theta = lon1 - lon2;\n const radtheta = (Math.PI * theta) / 180;\n\n let dist =\n Math.sin(radlat1) * Math.sin(radlat2) +\n Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);\n\n if (dist > 1) {\n dist = 1;\n }\n\n dist = Math.acos(dist);\n dist = (dist * 180) / Math.PI;\n dist = dist * 60 * 1.1515;\n\n if (unit === 'K') {\n dist = dist * 1.609344;\n }\n if (unit === 'N') {\n dist = dist * 0.8684;\n }\n return dist;\n }\n};\n\nexport const formatDistance = (distance: number) => {\n if (distance < 1) {\n const meters = distance * 1000;\n return `${meters.toFixed()} m`;\n } else {\n return `${distance.toFixed(1)} km`;\n }\n};\n","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, withModifiers as _withModifiers, vModelText as _vModelText, withDirectives as _withDirectives, renderList as _renderList, Fragment as _Fragment, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = {\n key: 1,\n class: \"single-shop\"\n}\nconst _hoisted_2 = { class: \"opening-hours\" }\nconst _hoisted_3 = [\"disabled\"]\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = { key: 1 }\nconst _hoisted_6 = { key: 2 }\nconst _hoisted_7 = {\n key: 2,\n class: \"multi-shop\"\n}\nconst _hoisted_8 = { class: \"form-group-search\" }\nconst _hoisted_9 = {\n class: \"sr-only\",\n for: \"shop-search\"\n}\nconst _hoisted_10 = [\"placeholder\"]\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"span\", {\n class: \"search-icon\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_12 = {\n key: 0,\n class: \"shop-list-container\"\n}\nconst _hoisted_13 = { class: \"shop-list\" }\nconst _hoisted_14 = [\"onClick\"]\nconst _hoisted_15 = { class: \"shop-list-name\" }\nconst _hoisted_16 = {\n key: 0,\n class: \"contact-information\"\n}\nconst _hoisted_17 = { class: \"zip-city\" }\nconst _hoisted_18 = { class: \"shop-list-info\" }\nconst _hoisted_19 = {\n key: 1,\n class: \"shop-list-info__distance\"\n}\nconst _hoisted_20 = { key: 0 }\nconst _hoisted_21 = { key: 1 }\nconst _hoisted_22 = { key: 2 }\nconst _hoisted_23 = { key: 3 }\nconst _hoisted_24 = {\n key: 4,\n class: \"badge badge--warning\"\n}\nconst _hoisted_25 = {\n key: 0,\n class: \"show-more\"\n}\nconst _hoisted_26 = { key: 0 }\n\nimport {ApiStatus, Shop, OpeningHour, Article} from '@/types';\nimport {computed, onBeforeMount, onBeforeUnmount, reactive, watch} from 'vue';\nimport LoaderComponent from '@/components/LoaderComponent.vue';\nimport {\n formatDistance,\n calculateDistance,\n} from '@/functions/position-distance';\nimport {useI18n} from 'vue-i18n';\nimport {ErrorMessageStore} from '@/stores/errorMessage';\nimport {isOpen} from \"@/functions\";\nimport FavoriteButton from \"@/components/FavoriteButton.vue\";\nimport {AuthStore} from \"@/stores/auth\";\nimport axios from \"axios\";\nimport {DateTime} from \"luxon\";\n\ninterface State {\n status: ApiStatus;\n shops: Shop[];\n filterString: string;\n visibleShops: number;\n dayOfWeek: string;\n loadingText: string;\n}\n\n/* Const */\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ShopSelector',\n emits: ['selectShop'],\n setup(__props, { emit }) {\n\n/* imports */\nconst authStore = AuthStore();\n\nconst errorMessageStore = ErrorMessageStore();\n\nconst {t, locale} = useI18n();\n\n/* interface */\nconst pageSize = 6;\n\n/* Reactive */\nconst state = reactive({\n status: {\n done: false,\n failed: false,\n loading: false,\n },\n shops: [],\n filterString: '',\n visibleShops: pageSize,\n dayOfWeek: '',\n loadingText: 'loader.text',\n});\n\nconst cmp = (a:number, b:number) =>{\n if (a > b) return +1;\n if (a < b) return -1;\n return 0;\n}\n\n/* Computed */\nconst filteredShops = computed(() =>\n state.shops.filter(shop =>\n shop.name.toLowerCase().includes(state.filterString.trim().toLowerCase()) ||\n shop.description.toLowerCase().includes(state.filterString.trim().toLowerCase()) ||\n shop.contactInformation.address1.toLowerCase().includes(state.filterString.trim().toLowerCase()) ||\n shop.contactInformation.city.toLowerCase().includes(state.filterString.trim().toLowerCase())\n ).sort((a, b) => {\n return cmp(isFavorite(a) ? 0 : 1,isFavorite(b) ? 0 : 1) || cmp(a.distance, b.distance)\n })\n);\n\nconst visibleShops = computed(() =>\n filteredShops.value.slice(0, state.visibleShops)\n);\n\nconst emptyList = computed(() => filteredShops.value.length === 0);\n\n/* Emits */\n\n\n/* AbortController */\nconst abortController = new AbortController();\n\n/* Functions */\nconst isFavorite = (shop: Shop) : boolean => {\n if (shop && authStore.state.isAuthenticated) {\n return authStore.state.user?.favorites?.filter(fav => fav.code == shop.id?.toString())?.length ?? 0 > 0;\n }\n return false;\n};\n\nconst openingHours = (data: OpeningHour[]): string => {\n const today = data.find(x => x.dayOfWeek.toLowerCase() === state.dayOfWeek.toLowerCase());\n\n if (today) {\n const openDate = DateTime.fromISO(today.opens);\n const closeDate = DateTime.fromISO(today.closes);\n\n return `${openDate.toLocaleString(DateTime.TIME_24_SIMPLE)} - ${closeDate.toLocaleString(DateTime.TIME_24_SIMPLE)}`\n }\n\n return '';\n};\n\nconst selectShop = (e:MouseEvent, shop: Shop) => {\n if (shop.externalAppUri) {\n //window.location.href = shop.externalAppUri;\n //window.open(shop.externalAppUri, '_blank')\n return;\n }\n\n const target = e.target as HTMLElement\n if(target.className.indexOf('btn-favorite') != -1){\n return;\n }\n\n emit('selectShop', shop);\n};\n\nconst load = () => {\n state.status.loading = true;\n axios.get('/api/shops', {\n signal: abortController.signal,\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': 'Bearer ' + authStore.state.token?.accessToken,\n }\n })\n .then(response => response.data as Shop[])\n .then((shops: Shop[]) => {\n state.shops = shops;\n calculateShopDistances();\n state.status.done = true;\n })\n .catch(err => {\n state.status.failed = true;\n state.status.text = err.message;\n })\n .finally(async () => {\n if (singleShop.value) {\n state.status.loading = false;\n //No geo-location for single-shops scenarios, exit early\n return;\n }\n\n if ('permissions' in navigator) {\n const geolocation = await navigator.permissions.query({\n name: 'geolocation',\n });\n\n if (geolocation.state !== 'granted') {\n state.status.loading = false;\n }\n } else {\n state.status.loading = false;\n }\n });\n};\n\nconst calculateShopDistances = () => {\n if(singleShop.value) {\n return;\n }\n \n navigator.geolocation.getCurrentPosition(pos => {\n state.loadingText = 'loader.calculatesDistances';\n state.status.loading = true;\n state.shops.forEach((shop: Shop) => {\n const dist = calculateDistance(\n pos.coords.latitude,\n pos.coords.longitude,\n shop.location.latitude,\n shop.location.longitude,\n 'K'\n );\n\n shop.distance = dist;\n });\n\n setTimeout(() => state.status.loading = false, 500);\n });\n};\n\nconst singleShop = computed(() => {\n return state.shops.length === 1;\n});\n\n\n\nconst showMore = () => (state.visibleShops += pageSize);\n\n/* Watch */\nwatch(state.status, () => {\n if (state.status.failed && state.status.text) {\n errorMessageStore.show(state.status.text);\n }\n});\n\n/* Lifecycle Hooks */\nonBeforeMount(() => {\n //defaultLanguage().then(() => {\n load();\n //});\n\n const date = new Date();\n state.dayOfWeek = date.toLocaleDateString('en', {weekday: 'long'});\n});\n\nonBeforeUnmount(() => abortController.abort());\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (state.status.loading)\n ? (_openBlock(), _createBlock(LoaderComponent, {\n key: 0,\n text: state.loadingText\n }, null, 8, [\"text\"]))\n : _createCommentVNode(\"\", true),\n (state.status.done && state.shops && !state.status.loading && _unref(singleShop))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"h3\", null, _toDisplayString(_unref(t)('shopSelector.singleShop.openingHoursHeader')), 1),\n _createElementVNode(\"span\", null, _toDisplayString(openingHours(state.shops[0].openingHours)), 1)\n ]),\n _createElementVNode(\"button\", {\n class: \"btn btn-primary\",\n disabled: !_unref(isOpen)(state.shops[0]),\n onClick: _cache[0] || (_cache[0] = _withModifiers((e)=>selectShop(e,state.shops[0]), [\"prevent\"]))\n }, [\n (!_unref(isOpen)(state.shops[0]) && state.shops[0].status === 'paused')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, _toDisplayString(_unref(t)('shopSelector.singleShop.paused')), 1))\n : _createCommentVNode(\"\", true),\n (!_unref(isOpen)(state.shops[0]) && state.shops[0].status !== 'paused')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, _toDisplayString(_unref(t)('shopSelector.singleShop.closed')), 1))\n : _createCommentVNode(\"\", true),\n (_unref(isOpen)(state.shops[0]))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_6, _toDisplayString(_unref(t)('shopSelector.singleShop.start')), 1))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_3)\n ]))\n : _createCommentVNode(\"\", true),\n (state.status.done && state.shops && !state.status.loading && !_unref(singleShop))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createElementVNode(\"h2\", null, _toDisplayString(_unref(t)(\"home.subHeader\")), 1),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"label\", _hoisted_9, _toDisplayString(_unref(t)('search.label')), 1),\n _withDirectives(_createElementVNode(\"input\", {\n type: \"search\",\n placeholder: _unref(t)('search.placeholder'),\n class: \"search\",\n id: \"shop-search\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((state.filterString) = $event))\n }, null, 8, _hoisted_10), [\n [_vModelText, state.filterString]\n ]),\n _hoisted_11\n ]),\n (!_unref(emptyList))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_12, [\n _createElementVNode(\"ul\", _hoisted_13, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(visibleShops), (shop) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: shop.id\n }, [\n _createElementVNode(\"div\", {\n onClick: _withModifiers((e)=>selectShop(e,shop), [\"prevent\"]),\n class: _normalizeClass({'shop-list-item': true, disabled: !_unref(isOpen)(shop) || shop.externalAppUri != null})\n }, [\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"h2\", null, _toDisplayString(shop.description), 1),\n (shop.contactInformation)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n _createElementVNode(\"div\", null, _toDisplayString(shop.contactInformation.address1), 1),\n _createElementVNode(\"div\", null, _toDisplayString(shop.contactInformation.address2), 1),\n _createElementVNode(\"div\", _hoisted_17, _toDisplayString(shop.contactInformation.zipCode) + \" \" + _toDisplayString(shop.contactInformation.city), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_18, [\n (_unref(authStore).state.isAuthenticated)\n ? (_openBlock(), _createBlock(FavoriteButton, {\n key: 0,\n code: shop.id?.toString() ?? '',\n type: \"shop\",\n favorite: isFavorite(shop)\n }, null, 8, [\"code\", \"favorite\"]))\n : _createCommentVNode(\"\", true),\n (shop.distance)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_19, _toDisplayString(_unref(formatDistance)(shop.distance)), 1))\n : _createCommentVNode(\"\", true),\n (!shop.externalAppUri)\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 2,\n class: _normalizeClass([\"badge\", [_unref(isOpen)(shop) ? 'badge--success' : 'badge--danger',]])\n }, [\n (_unref(isOpen)(shop))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_20, _toDisplayString(_unref(t)('button.open')), 1))\n : _createCommentVNode(\"\", true),\n (!_unref(isOpen)(shop) && shop.status === 'paused')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_21, _toDisplayString(_unref(t)('button.paused')), 1))\n : _createCommentVNode(\"\", true),\n (!_unref(isOpen)(shop) && shop.status !== 'paused')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_22, _toDisplayString(_unref(t)('button.closed')), 1))\n : _createCommentVNode(\"\", true)\n ], 2))\n : _createCommentVNode(\"\", true),\n (!shop.externalAppUri)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_23, _toDisplayString(openingHours(shop.openingHours)), 1))\n : _createCommentVNode(\"\", true),\n (shop.externalAppUri)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_24, \" Kommer snart \"))\n : _createCommentVNode(\"\", true)\n ])\n ], 10, _hoisted_14)\n ]))\n }), 128))\n ]),\n (state.visibleShops < _unref(filteredShops).length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_25, [\n _createElementVNode(\"button\", {\n class: \"btn btn-primary\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (showMore()))\n }, _toDisplayString(_unref(t)('button.showMoreRestaurants')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", null, [\n (_unref(emptyList))\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_26, _toDisplayString(_unref(t)('search.noMatch')), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./ShopSelector.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ShopSelector.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withCtx as _withCtx, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"page page--home page--shop-selector text-center\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"customer-logo\" }, null, -1)\nconst _hoisted_3 = { class: \"shop-selector\" }\n\nimport {IonContent, IonPage, onIonViewWillEnter} from '@ionic/vue';\nimport ShopSelector from '@/components/ShopSelector.vue';\nimport {ApplicationSettings, Shop} from '@/types';\nimport router from '@/router';\nimport {onBeforeMount} from 'vue';\nimport {ShopStore} from '@/stores/shop';\nimport {CartStore} from '@/stores/cart';\nimport {useI18n} from 'vue-i18n'\nimport {OrderType} from \"@/enums\";\nimport {car} from \"ionicons/icons\";\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'HomePage',\n setup(__props) {\n\n/* imports */\nconst shopStore = ShopStore();\n const cartStore = CartStore();\n\n const { t } = useI18n();\n\n /* Reactive */\n\n /* Ref */\n\n /* Computed */\n/*\n const randomNotification = () => {\n if(Notification.permission !== \"granted\"){\n Promise.resolve(Notification.requestPermission()).then(function(permission) {\n if(permission !== \"granted\")\n return;\n \n randomNotification();\n });\n } else {\n new Notification(\"Order ready\", {\n body: \"Your order is ready for pickup\",\n icon: \"http://localhost:8100/assets/icon/sibylla/android-chrome-192x192.png\"\n });\n setTimeout(randomNotification, 30000);\n }\n }\n\n let installprompt = null; \n window.addEventListener('beforeinstallprompt', (e) => {\n // Prevent Chrome 67 and earlier from automatically showing the prompt\n e.preventDefault();\n const installButton = document.querySelector(\"#install\");\n installButton?.removeAttribute(\"hidden\");\n installprompt = e;\n // Stash the event so it can be triggered later.\n // @ts-ignore\n //window.deferredPrompt = e;\n // Update UI notify the user they can add to home screen\n //btnAdd.style.display = 'block';\n });\n\n const onInstall = async ()=>{\n if(!installprompt){\n return;\n }\n await installprompt.prompt();\n }; \n */\n\n /* Functions */\n const onSelectShop = (item: Shop) => {\n if (item) {\n if (cartStore.state.items.length > 0 && cartStore.state.shopId) {\n //If restaurant changed then clear cartStore\n if (!cartStore.compareShop(item.id)) {\n cartStore.clear(true); \n }\n }\n }\n\n shopStore.set(item);\n cartStore.setShop(item.id, item.name);\n \n console.log(router.currentRoute.value.query);\n \n const query = {\n redirectToArticle: router.currentRoute.value.query.redirectToArticle\n };\n \n if(cartStore.state.settings.orderTypes.length == 1 && cartStore.getOrderType()){\n router.push({\n name: 'categoriesPage',\n params: { shopId: item.id },\n query: query\n });\n return;\n }\n\n router.push({\n name: 'shopPage',\n params: { \n shopId: item.id \n },\n query: query\n });\n };\n\n onIonViewWillEnter(() => {\n // clear previous restaurant choices\n shopStore.clear();\n })\n\n onBeforeMount(() => {\n // clear previous restaurant choices\n shopStore.clear();\n });\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_unref(IonPage), null, {\n default: _withCtx(() => [\n _createVNode(_unref(IonContent), { fullscreen: \"\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"h1\", null, _toDisplayString(_unref(t)(\"home.header\")), 1),\n (_unref(cartStore).state.initiated)\n ? (_openBlock(), _createBlock(ShopSelector, {\n key: 0,\n onSelectShop: onSelectShop\n }))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n}\n}\n\n})","import script from \"./HomePage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./HomePage.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import {createRouter, createWebHistory,} from '@ionic/vue-router';\nimport {RouteRecordRaw} from 'vue-router';\nimport Offline from \"@/views/Offline.vue\";\nimport HomePage from \"@/views/HomePage.vue\";\n\nconst routes: Array = [\n {\n name: 'home',\n path: '',\n component: HomePage, //this cannot be an import statement for some reason, fails to load in production build\n meta: {\n confirmCartReset: true\n }\n },\n {\n name: 'offline',\n path: '/offline',\n component: Offline,\n },\n {\n name: 'login',\n 'path': '/login',\n component: () => import('@/views/LoginPage.vue'),\n meta: {\n skipIfLoggedIn: true\n }\n },\n {\n name: 'register',\n 'path': '/register',\n component: () => import('@/views/RegisterPage.vue')\n },\n {\n name: 'favorites',\n 'path': '/favorites',\n component: () => import('@/views/Favorites.vue'),\n meta: {\n requiresAuth: false,\n showCart: true\n }\n },\n {\n name: 'orderHistory',\n 'path': '/order-history',\n component: () => import('@/views/OrderHistory.vue'),\n meta: {\n requiresAuth: true,\n showCart: true\n }\n },\n {\n name: 'profile',\n 'path': '/profile',\n component: () => import('@/views/ProfilePage.vue'),\n meta: {\n requiresAuth: true\n }\n },\n {\n name: 'forgotPassword',\n 'path': '/forgot-password',\n component: () => import('@/views/ForgotPasswordPage.vue')\n },\n {\n name: 'resetPassword',\n 'path': '/reset-password',\n component: () => import('@/views/ResetPasswordPage.vue')\n },\n {\n name: 'confirmEmail',\n 'path': '/confirm-email',\n component: () => import('@/views/ConfirmEmailPage.vue')\n },\n {\n name: 'campaigns',\n path: '/campaigns',\n component: () => import('@/views/CampaignsPage.vue'),\n meta: {\n showCart: true\n }\n },\n {\n name: 'coupons',\n path: '/coupons',\n component: () => import('@/views/Coupons.vue'),\n },\n {\n name: 'shopPage',\n path: '/shop/:shopId/order-type',\n props: true,\n component: () => import('@/views/ShopPage.vue'),\n meta: {\n confirmCartReset: true,\n requiresShop: true\n }\n },\n {\n name: 'categoriesPage',\n path: '/shop/:shopId',\n props: true,\n component: () => import('@/views/CategoriesPage.vue'),\n meta: {\n requiresShop: true,\n showCart: true\n }\n },\n {\n name: 'categoryArticlesPage',\n path: '/shop/:shopId/:categoryName',\n props: true,\n component: () => import('@/views/CategoryArticlesPage.vue'),\n meta: {\n requiresShop: true,\n showCart: true\n }\n },\n {\n name: 'articlePage',\n path: '/shop/:shopId/:categoryName/:articleId/',\n props: true,\n component: () => import('@/views/ArticlePage.vue'),\n meta: {\n requiresShop: true,\n showCart: true,\n disableCart: true,\n showAddItemButton: true\n }\n },\n {\n name: 'articleRedirect',\n path: '/shop/:shopId/redirect/:articleId',\n redirect: (to) => {\n return {\n name: 'articlePage',\n params: {\n shopId: to.params.shopId,\n articleId: to.params.articleId,\n categoryName: to.params.categoryName\n }\n };\n }\n },\n {\n name: 'editOrder',\n path: '/shop/:shopId/:categoryName/:articleId/:orderId',\n props: true,\n component: () => import('@/views/ArticlePage.vue'),\n meta: {\n requiresShop: true,\n showCart: true,\n disableCart: true,\n editMode: true,\n showAddItemButton: true\n }\n },\n {\n name: 'suggestedArticlesPage',\n path: '/shop/:shopId/:categoryName/:articleId/suggested',\n props: true,\n component: () => import('@/views/SuggestedArticlesPage.vue'),\n meta: {\n showCart: true,\n requiresShop: true,\n disableCart: true,\n editMode: true,\n showAddItemButton: true\n }\n },\n {\n name: 'checkoutPage',\n path: '/shop/:shopId/checkout',\n component: () => import('@/views/CheckoutPage.vue'),\n meta: {\n requiresShop: true,\n }\n },\n {\n name: 'paymentPage',\n path: '/shop/:shopId/checkout/payment/:orderId',\n props: true,\n component: () => import('@/views/PaymentPage.vue'),\n meta: {\n requiresShop: true,\n }\n },\n {\n name: 'orderPage',\n path: '/order/:orderId',\n props: true,\n component: () => import('@/views/OrderPage.vue'),\n meta: {\n requiresShop: true,\n }\n },\n {\n name: 'ordersPage',\n path: '/orders',\n component: () => import('@/views/OrdersPage.vue'),\n meta: {\n requiresShop: true,\n }\n },\n {\n name: \"termsAndConditions\",\n path: '/terms-and-conditions',\n component: () => import('@/views/TermsAndConditions.vue')\n },\n {\n name: \"privacyPolicy\",\n path: '/privacy-policy',\n component: () => import('@/views/PrivacyPolicy.vue')\n },\n {\n name: \"generateQR\",\n path: '/generate-qr',\n component: () => import('@/views/GenerateQRCode.vue')\n }\n\n]\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes,\n\n})\n\nexport default router\n","import { appStoreKey} from '@/keys';\n/*import { AppStoreState } from '@/types';*/\nimport { ScreenType } from '@/enums';\nimport { BREAKPOINTS } from '@/breakpoints'\nimport { defineStore } from 'pinia';\nimport { ref } from 'vue';\nimport { RouteRecordName} from \"vue-router\";\n\n\nexport const AppStore = defineStore(appStoreKey, () => {\n\n /* interface */\n interface AppStoreState {\n height: number,\n width: number\n screenType: ScreenType,\n isSmallScreen: boolean,\n isLargeScreen: boolean,\n language: string,\n showLangSelector: boolean,\n currentPage: RouteRecordName | null | undefined;\n lastPage: RouteRecordName | null | undefined;\n currentPageFullPath: string| null | undefined;\n lastPageFullPath: string | null | undefined;\n }\n\n /* State */\n const state = ref({\n height: 0,\n width: 0,\n screenType: ScreenType.Large,\n isLargeScreen: true,\n isSmallScreen: false,\n language: 'sv',\n showLangSelector: false,\n currentPage: null,\n lastPage: null,\n currentPageFullPath: null,\n lastPageFullPath: null\n });\n\n /* Getters */\n\n\n const onResize = (): void => {\n \n state.value.width = window.innerWidth;\n state.value.height = window.innerHeight;\n state.value.screenType = BREAKPOINTS.tabletLandscape > state.value.width ? ScreenType.Small : ScreenType.Large;\n state.value.isSmallScreen = state.value.screenType === ScreenType.Small;\n state.value.isLargeScreen = !state.value.isSmallScreen;\n }\n\n window.addEventListener('resize', onResize);\n onResize();\n\n return {\n state\n }\n})","import {defineStore} from \"pinia\";\nimport {authStorageKey, cartStorageKey} from \"../keys\";\nimport {ref} from \"vue\";\nimport {Article, AuthResponse, Favorite, OrderHistory, OrderStatus, PaginatedResult, ProfileResponse, Shop, UpdateProfileRequest} from \"@/types\";\nimport axios from \"axios\";\n\nexport interface AuthState {\n isAuthenticated: boolean;\n token: AuthResponse | null;\n user: ProfileResponse | null\n loading: boolean;\n}\n\nexport const AuthStore = defineStore(authStorageKey, () => {\n const state = ref({\n token: null,\n user: null,\n isAuthenticated: false,\n loading: true\n });\n\n const loadFromStorage = (e: StorageEvent | undefined | null) => {\n if (e && e.key !== authStorageKey) {\n return;\n }\n\n getProfile().then(profile => {\n state.value.user = profile;\n state.value.isAuthenticated = profile?.isAuthenticated ?? false;\n state.value.loading = false;\n }).catch(e => {\n if (e.response.status == 401) {\n //not authenticated\n state.value.user = null;\n state.value.isAuthenticated = false;\n state.value.loading = false;\n }\n });\n };\n\n const login = async (email: string, password: string): Promise => {\n\n const response = await axios.post('/api/identity/login?useCookies=true&useSessionCookies=true', JSON.stringify({email, password}));\n if (response.status !== 200) {\n //failed\n }\n\n const profile = await getProfile()\n if (profile === null) {\n state.value.user = null;\n state.value.isAuthenticated = false;\n } else {\n state.value.user = profile;\n state.value.isAuthenticated = profile.isAuthenticated;\n }\n save();\n return state.value;\n }\n \n const waitForLoading = async () => {\n return new Promise((resolve, reject) => {\n const interval = setInterval(() => {\n if (state.value.loading === false) {\n clearInterval(interval);\n resolve(state.value.loading);\n }\n }, 100);\n });\n }\n\n const getProfile = async (): Promise => {\n state.value.loading = true;\n const profileResponse = await axios.get('/api/user/profile');\n if (profileResponse.status !== 200) {\n state.value.loading = false;\n return null;\n }\n const profile: ProfileResponse = profileResponse.data;\n state.value.user = profile\n state.value.isAuthenticated = profile.isAuthenticated\n state.value.loading = false;\n return profile;\n }\n\n const logout = () => {\n return axios.post('/api/user/logout').then(response => {\n state.value.token = null;\n state.value.user = null;\n state.value.isAuthenticated = false;\n save();\n });\n };\n\n const save = () => {\n const obj = {\n token: state.value.token,\n user: state.value.user,\n isAuthenticated: state.value.isAuthenticated\n } as AuthState;\n localStorage.setItem(authStorageKey, JSON.stringify(obj));\n }\n\n const addFavoriteArticle = async (code: string): Promise => {\n const response = await axios.post('/api/user/favorite', {code: code, type: 'article'});\n if (response.status !== 200) {\n //TODO do something\n return;\n }\n\n state.value.user?.favorites.push({code: code, type: 'article'});\n save();\n }\n\n const addFavoriteShop = async (shopId: string): Promise => {\n const response = await axios.post('/api/user/favorite', {code: shopId, type: 'shop'});\n if (response.status !== 200) {\n //TODO do something\n return;\n }\n\n state.value.user?.favorites.push({code: shopId, type: 'shop'});\n save();\n }\n\n const removeFavoriteArticle = async (code: string): Promise => {\n const response = await axios.delete('/api/user/favorite', {\n data: JSON.stringify({code: code, type: 'article'})\n });\n\n if (response.status !== 200) {\n //TODO do something\n return;\n }\n\n if (state.value.user) {\n state.value.user.favorites = response.data;\n }\n\n save();\n }\n const removeFavoriteShop = async (code: string): Promise => {\n const response = await axios.delete('/api/user/favorite', {\n data: JSON.stringify({code: code, type: 'shop'})\n });\n if (response.status !== 200) {\n //TODO do something\n return;\n }\n\n if (state.value.user) {\n state.value.user.favorites = response.data;\n }\n save();\n }\n\n const getOrderHistory = async (pageIndex:number, pageSize:number) => {\n if (state.value.isAuthenticated === false)\n return [];\n\n return axios.get>(`/api/user/order-history?pageIndex=${pageIndex}&pageSize=${pageSize}`)\n .then(response => response.data);\n }\n\n const setProfile = (profile: ProfileResponse) => {\n if (state.value.isAuthenticated === false)\n throw new Error('Not authenticated');\n\n state.value.user = profile;\n //state.value.loading = true;\n // return axios.put<{ emailConfirmationSent: boolean, profile: ProfileResponse }>('/api/user/profile', profile)\n // .then(response => {\n // state.value.user = response.data.profile;\n // state.value.isAuthenticated = response.data.profile.isAuthenticated;\n // state.value.loading = false;\n // save();\n // return response;\n // });\n }\n\n loadFromStorage(null);\n window.addEventListener('storage', loadFromStorage);\n\n return {\n state,\n login,\n logout,\n addFavoriteArticle,\n addFavoriteShop,\n removeFavoriteArticle,\n removeFavoriteShop,\n getOrderHistory,\n setProfile,\n waitForLoading\n //updateProfile\n }\n});","import { OrderType } from '@/enums';\nimport { cartStorageKey } from '@/keys';\nimport {Order, OrderItem, OrderChoice, Cart, CartItem, CartState, ApplicationSettings} from '@/types';\nimport { defineStore } from 'pinia';\nimport { computed, ref } from 'vue';\nimport axios from \"axios\";\n\nexport const CartStore = defineStore(cartStorageKey, () => {\n /* State */\n const state = ref({\n shopId: null,\n showOrderInfo: false,\n showAddItemButton: false,\n hasSelectedSuggestions: false,\n visible: false,\n disabled: false,\n orderType: OrderType.DineInPlace,\n items: [],\n editMode: false,\n currentOrderChanged: false,\n note: null,\n settings: { orderTypes : [], enableCustomerLogin:false, externalLoginProviders:[], version: \"0.0.0.0\" },\n initiated: false\n });\n\n const loadFromStorage = (e: StorageEvent | undefined | null) => {\n //If event was thrown by irrelevant storage\n if (e && e.key !== cartStorageKey) {\n return;\n }\n\n const cartJson: string | null = localStorage.getItem(cartStorageKey);\n axios.get('/api/settings')\n .then((response) => response.data)\n .then((data:ApplicationSettings) => {\n \n state.value.initiated = true;\n setSettings(data);\n save();\n });\n \n if (cartJson) {\n try {\n const cart = JSON.parse(cartJson) as Cart;\n state.value.items = cart.items;\n state.value.orderType = cart.orderType;\n state.value.shopId = cart.shopId;\n state.value.shopName = cart.shopName;\n state.value.note = cart.note ?? null;\n state.value.settings = cart.settings;\n }\n catch (ex) {\n console.log(ex);\n //If json is corrupt, remove data.\n localStorage.removeItem(cartStorageKey);\n }\n }else {\n console.log('no cart json')\n }\n }\n\n /* Getters - computed */\n const totalPrice = computed(() => {\n\n let total = 0;\n\n if (state.value.items?.length) {\n state.value.items.forEach(x => {\n\n if (x.article && x.article.price) {\n total += x.article.price * x.quantity;\n }\n\n if (x.flatChoices) {\n x.flatChoices.forEach(y => {\n if (y.article && y.article.price) {\n total += y.article.price * x.quantity;\n }\n });\n }\n });\n }\n\n return total;\n });\n\n\n\n /* Actions */\n\n /* --- Getters --- */\n const get = (id: string) => {\n return state.value.items.find(item => item.id === id);\n }\n\n const getItem = (id: string): CartItem | undefined => {\n return state.value.items.find(x => x.id === id);\n }\n\n\n const save = () => {\n const obj = {\n items: state.value.items ?? [],\n orderType: state.value.orderType,\n shopId: state.value.shopId,\n shopName: state.value.shopName,\n note: state.value.note,\n settings: state.value.settings\n } as Cart;\n\n localStorage.setItem(cartStorageKey, JSON.stringify(obj));\n }\n\n\n /* --- Setters --- */\n const add = (item: CartItem | null, autoSave = true) => {\n\n if (!item)\n return;\n\n if (item.quantity === 0) {\n remove(item);\n return;\n }\n\n //find item with same id, if so update \n let index = state.value.items.findIndex(x => x.id === item.id);\n\n if (index > -1) {\n state.value.items[index] = item;\n autoSave && save();\n return;\n }\n else if (!item.flatChoices.length) {\n //find item with same Article.code and no Choices, if so add to same order\n index = state.value.items.findIndex(x => x.article.code === item.article.code && x.flatChoices.length === 0);\n\n if (index > -1) {\n state.value.items[index].quantity += item.quantity;\n autoSave && save();\n return;\n }\n } else {\n //find item with same Article.code and same Choices, if so add to same order\n const index = state.value.items.findIndex(x => {\n return x.article.code === item.article.code && x.flatChoices.length === item.flatChoices.length && JSON.stringify(x.flatChoices) === JSON.stringify(item.flatChoices);\n });\n\n if (index > -1) {\n state.value.items[index].quantity += item.quantity;\n autoSave && save();\n return;\n }\n }\n\n // If no matching order exist then add as new cart item.\n state.value.items.push(item);\n autoSave && save();\n } \n\n const increase = (item: CartItem) => {\n const index = state.value.items.findIndex(x => x.id === item.id);\n\n if (index > -1) {\n state.value.items[index].quantity += 1;\n save();\n }\n }\n\n const decrease = (item: CartItem) => {\n if (item.quantity === 1) {\n remove(item);\n }\n\n const index = state.value.items.findIndex(x => x.id === item.id);\n\n if (index > -1) {\n state.value.items[index].quantity -= 1;\n save();\n }\n }\n\n const remove = (item: CartItem) => {\n const index = state.value.items.indexOf(item);\n\n if (index > -1) {\n state.value.items.splice(index, 1);\n save();\n }\n }\n\n const clear = (clearStore: boolean | undefined) => {\n state.value.items = [];\n\n if (clearStore) {\n state.value.shopId = null;\n }\n state.value.note = null;\n\n localStorage.removeItem(cartStorageKey);\n save();\n }\n\n const setShop = (shopId: number | null, shopName: string) => {\n state.value.shopId = shopId;\n state.value.shopName = shopName;\n save();\n }\n\n const setOrderType = (orderType: OrderType) => {\n state.value.orderType = orderType;\n save();\n }\n const getOrderType = (): OrderType => {\n return state.value.orderType;\n }\n \n const setSettings = (settings:ApplicationSettings)=>{\n state.value.settings = settings;\n save();\n }\n \n const setNote = (note:string|null)=>{\n state.value.note = note;\n save();\n }\n\n const compareShop = (shopId: number | null): boolean => {\n\n if (state.value.shopId !== null) {\n return shopId !== undefined && shopId === state.value.shopId;\n }\n\n return true;\n }\n\n const convertToOrderRequest = (customerCode: string | null | undefined): Order => {\n const items: OrderItem[] = state.value.items.map(item => {\n const allItemChoices = [];\n for (const prop in item.choices) {\n const choices = item.choices[prop];\n const levelChoices: OrderChoice[] = choices.map(c => {\n return {\n level: Number(prop),\n articleCode: c.article.code,\n choiceCode: c.code.trim()\n };\n })\n allItemChoices.push(...levelChoices);\n }\n\n return {\n code: item.article.code,\n quantity: item.quantity,\n choices: allItemChoices \n }\n });\n\n return {\n //sessionId: state.sessionId,\n shopId: state.value.shopId,\n orderType: state.value.orderType,\n pickupTime: new Date(),\n items: items,\n customerCode: customerCode,\n note: state.value.note\n } as Order;\n };\n\n\n loadFromStorage(null);\n window.addEventListener('storage', loadFromStorage);\n\n return {\n clear,\n add,\n get,\n increase,\n decrease,\n remove,\n getItem,\n convertToOrderRequest,\n totalPrice,\n compareShop,\n setOrderType,\n getOrderType,\n //setSettings,\n //loadFromStorage,\n setShop,\n setNote,\n state,\n save\n }\n})","import {defineStore} from \"pinia\";\nimport {couponStoreKey} from \"../keys\";\nimport {ref} from \"vue\";\nimport {Coupon, ICoupon} from \"../types\";\nimport {DateTime} from \"luxon\";\nimport axios from \"axios\";\n\nexport const CouponStore = defineStore(couponStoreKey, () => {\n const coupons = ref([]);\n\n const loadFromStorage = (e: StorageEvent | undefined | null) => {\n //If event was thrown by irrelevant storage\n if (e && e.key !== couponStoreKey) {\n return;\n }\n const json: string | null = localStorage.getItem(couponStoreKey);\n if (json) {\n try {\n const data = JSON.parse(json) as ICoupon[]\n coupons.value = data.map(x=>new Coupon(x))\n } catch (ex) {\n //If json is corrupt, remove data.\n clear();\n }\n }\n }\n function disabled():boolean{\n return coupons.value.length === 0;\n }\n\n function set(item: Coupon[]) {\n const oldCoupons = coupons.value;\n if(oldCoupons.length > 0){\n item.forEach(newCoupon => {\n const oldCoupon = oldCoupons.find(x=>x.id === newCoupon.id);\n if(oldCoupon) {\n newCoupon.usedDate = oldCoupon.usedDate;\n }\n })\n }\n \n coupons.value = item;\n \n console.log(coupons.value);\n //Store items in local storage.\n localStorage.setItem(couponStoreKey, JSON.stringify(coupons.value));\n }\n \n function useCoupon (couponId:number){\n const couponFromStore = coupons.value.find(x=>x.id === couponId);\n if(!couponFromStore)\n throw new Error(\"Coupon not found from store\");\n \n couponFromStore.usedDate = new Date();\n set(coupons.value);\n }\n \n function expire(couponId:number){\n const couponFromStore = coupons.value.find(x=>x.id === couponId);\n if(!couponFromStore)\n throw new Error(\"Coupon not found from store\");\n\n couponFromStore.usedDate = DateTime.now().minus({minutes:10}).toJSDate();\n set(coupons.value);\n }\n\n const load = () => {\n return new Promise((resolve: any, reject: any) => {\n axios.get(`/api/coupons`)\n .then((response) => response.data)\n .then((data:ICoupon[]) => {\n set(data.map(x=>new Coupon(x)));\n resolve(data);\n }).catch(err => {\n //reject(err);\n });\n });\n }\n\n function clear() {\n coupons.value = [];\n localStorage.removeItem(couponStoreKey);\n }\n\n loadFromStorage(null);\n window.addEventListener('storage', loadFromStorage);\n\n return {\n coupons,\n load,\n loadFromStorage,\n clear,\n useCoupon,\n expire,\n disabled\n }\n});","import { errorStoreKey} from '@/keys';\nimport { defineStore } from 'pinia';\nimport { ref } from 'vue';\nimport { errorToi18nKey } from '@/functions';\n\n\n\nexport const ErrorMessageStore = defineStore(errorStoreKey, () => {\n\n /* interface */\n interface ErrorStoreState {\n visible: boolean,\n message: string\n }\n\n /* State */\n const state = ref({\n visible: false,\n message: ''\n });\n\n\n /* Setters */\n const close = () => {\n state.value.message = '';\n state.value.visible = false;\n }\n\n const show = (error: string | number) => {\n state.value.message = typeof error === 'number' ? errorToi18nKey(error) : error;\n state.value.visible = true;\n }\n\n\n /* Getters */\n\n return {\n state,\n show,\n close\n }\n})","import { menuStoreKey } from '@/keys';\nimport { ChoiceLevel, Currency, Menu } from '@/types';\nimport { defineStore } from 'pinia';\nimport { ref } from 'vue';\nimport axios from \"axios\";\n\nexport const MenuStore = defineStore(menuStoreKey, () => {\n const menu = ref();\n \n const loadFromStorage = (e: StorageEvent | undefined | null) => {\n\n //If event was thrown by irrelevant storage\n if (e && e.key !== menuStoreKey) {\n return;\n }\n\n const json: string | null = localStorage.getItem(menuStoreKey);\n\n if (json) {\n\n try {\n menu.value = JSON.parse(json) as Menu;\n }\n catch (ex) {\n //If json is corrupt, remove data.\n clear();\n }\n } \n }\n\n\n function set(item: Menu) {\n menu.value = item;\n //Store items in local storage.\n localStorage.setItem(menuStoreKey, JSON.stringify(menu.value));\n }\n\n const load = (shopId: number | null | undefined) => {\n return new Promise((resolve: any, reject: any) => {\n if (shopId) {\n axios.get(`/api/shops/${shopId}/categories`)\n .then((response) => response.data)\n .then((data) => {\n //debugger;\n set(data);\n resolve(data);\n }).catch(err => {\n reject(err);\n });\n\n } else {\n reject(new Error(\"shopId is null or undefined\"));\n }\n });\n }\n\n function clear() {\n localStorage.removeItem(menuStoreKey);\n }\n\n const getChoiceLevelName = (level: number) => {\n if (menu.value) {\n const choiceLvl = menu.value.choiceLevels.find((choiceLevel: ChoiceLevel) => choiceLevel.level === level);\n\n return choiceLvl ? choiceLvl.name : level.toString();\n }\n\n return level.toString();\n }\n\n const getCurrency = (): Currency => {\n if (menu.value) {\n return menu.value.currency;\n }\n\n return { name: '', symbol: ':-' } as Currency;\n };\n\n\n loadFromStorage(null);\n window.addEventListener('storage', loadFromStorage);\n\n\n return {\n menu,\n set,\n clear,\n load,\n getChoiceLevelName,\n getCurrency\n }\n})","import { navigationStoreKey } from '@/keys';\nimport { NavigationStoreState } from '@/types';\nimport { defineStore } from 'pinia';\nimport { ref } from 'vue';\n\n\nexport const NavigationStore = defineStore(navigationStoreKey, () => {\n /* State */\n const state = ref({\n visible: true,\n text: '',\n link: {\n name: 'home', params: {}\n },\n url: '' \n });\n\n return {\n state\n }\n})","import { orderStoreKey } from '@/keys';\nimport { OrderDetails, OrderStatus, OrderStoreState, ResponseError, PaidOrder } from '@/types';\nimport { defineStore } from 'pinia';\nimport { computed, ref } from 'vue';\nimport { OrderStatusState } from '@/enums';\nimport { isResponseError } from '../functions';\nimport axios from \"axios\";\n\n\nexport const OrderStore = defineStore(orderStoreKey, () => {\n\n /* State */\n const state = ref({\n details: null,\n paidOrders: [],\n deliveredOrders: []\n });\n\n const pullInterval = 600000; // 1 minute;\n let pullIntervalKey: number | undefined;\n\n const loadFromStorage = (e: StorageEvent | undefined | null) => {\n\n //If event was thrown by irrelevant storage\n if (e && e.key !== orderStoreKey) {\n return;\n }\n\n const orderJson: string | null = localStorage.getItem(orderStoreKey);\n\n if (orderJson) {\n try {\n state.value = JSON.parse(orderJson) as OrderStoreState;\n\n state.value.paidOrders.forEach(x => {\n //If expires is a string, convert it to Date\n if (typeof x.expires === 'string') {\n x.expires = new Date(x.expires);\n }\n })\n\n state.value.deliveredOrders.forEach(x => {\n //If expires is a string, convert it to Date\n if (typeof x.expires === 'string') {\n x.expires = new Date(x.expires);\n }\n })\n\n }\n catch (ex) {\n //If json is corrupt, remove data.\n localStorage.removeItem(orderStoreKey);\n }\n }\n }\n\n const id = computed(() => {\n if (state.value?.details) {\n return state.value.details.orderId\n }\n return null;\n });\n\n const ordersCount = computed(() => {\n return state.value.deliveredOrders.length + state.value.paidOrders.length;\n });\n\n const save = () => {\n localStorage.setItem(orderStoreKey, JSON.stringify(state.value));\n }\n\n const set = (item: OrderDetails) => {\n state.value.details = item;\n state.value.details.userAgent = window.navigator.userAgent;\n //Store items in local storage.\n localStorage.setItem(orderStoreKey, JSON.stringify(state.value));\n }\n\n const addPaymentID = (id: string | null) => {\n if (state.value.details && id) {\n state.value.details.paymentID = id;\n }\n }\n\n const clear = (clearStore: boolean | undefined) => {\n\n if (clearStore) {\n state.value.details = null;\n state.value.paidOrders = [];\n state.value.deliveredOrders = [];\n }\n\n clearInterval(pullIntervalKey);\n pullIntervalKey = undefined;\n localStorage.removeItem(orderStoreKey);\n }\n\n\n const cancelPullOrderStatus = () => {\n clearInterval(pullIntervalKey);\n }\n\n const pullOrderStatus = () => {\n if (!pullIntervalKey) {\n getOrderStatus();\n pullIntervalKey = setInterval(getOrderStatus, pullInterval);\n }\n };\n\n\n //Remove all done paid orders after they expire\n const removeExpiredOrders = () => {\n\n const now = Date.now();\n\n if (state.value.paidOrders.length) {\n state.value.paidOrders = state.value.paidOrders.filter(x => x.expires.getTime() > now);\n }\n\n if (state.value.deliveredOrders.length) {\n state.value.deliveredOrders = state.value.deliveredOrders.filter(x => x.expires.getTime() > now);\n }\n\n save()\n }\n\n const validateOrders = () => {\n if (state.value.paidOrders.length) {\n state.value.paidOrders = state.value.paidOrders.filter(x => x.customerCode !== null);\n }\n\n if (state.value.deliveredOrders.length) {\n state.value.deliveredOrders = state.value.deliveredOrders.filter(x => x.customerCode !== null);\n }\n\n save()\n }\n\n const addToPaidOrders = () => {\n if (state.value.details?.orderId && state.value.details.pickupTime) {\n if (!state.value.paidOrders.find(x => x.id === state.value.details?.orderId)) {\n\n //If pickupTime is a string, convert it to Date\n if (typeof state.value.details.pickupTime === 'string') {\n state.value.details.pickupTime = new Date(state.value.details.pickupTime);\n }\n\n const expires = state.value.details.pickupTime;\n\n expires.setMinutes(expires.getMinutes() + 60) // Set expires 60 minutes in the future\n\n state.value.paidOrders.push({\n id: state.value.details.orderId,\n expires: expires,\n customerCode: state.value.details.customerCode\n });\n save();\n }\n }\n }\n\n const removeOrderFromPending = () => {\n if (state.value.details?.orderId) {\n const index = state.value.paidOrders.findIndex(x => x.id === state.value.details?.orderId);\n if (index !== -1) {\n state.value.paidOrders.splice(index, 1);\n save();\n }\n }\n }\n\n /* AbortController */\n const abortController = new AbortController();\n const getOrderStatus = () => {\n\n validateOrders();\n removeExpiredOrders();\n\n\n if (state.value.paidOrders.length) {\n\n const order = state.value.paidOrders[0];\n\n if (order.customerCode) {\n\n axios.get(`/api/order/${order.id}`, {\n headers: {\n 'X-CustomerCode': order.customerCode\n },\n signal: abortController.signal\n })\n .then(response => response.data)\n .then((data: OrderStatus | ResponseError) => {\n\n if (isResponseError(data)) {\n console.error('Error -> getOrderStatus', data);\n }\n else {\n\n if (data.status && typeof data.status === 'string') {\n\n // state.value.status = data.status;\n\n switch (data.status) {\n case OrderStatusState.CalculatedPrice:\n // Do someting\n break;\n case OrderStatusState.Added:\n // Do someting\n break;\n case OrderStatusState.Started:\n // Do someting\n break;\n case OrderStatusState.Done:\n onDone(order);\n break;\n case OrderStatusState.Delivered:\n onDelivered(order);\n break;\n }\n }\n }\n\n }).catch((error) => {\n console.error('error', error);\n });\n } else {\n state.value.paidOrders.shift();//Remove order id customerCode is null\n }\n }\n else {\n cancelPullOrderStatus();\n }\n }\n\n const onDelivered = (order: PaidOrder) => {\n // Remove order from array.\n\n if (order) {\n const index = state.value.paidOrders.findIndex(x => x.id === order.id);\n state.value.paidOrders.splice(index, 1);\n\n const expires = new Date();\n expires.setMinutes(expires.getMinutes() + 30) // Set expires 30 minutes in the future\n order.expires = expires;\n state.value.deliveredOrders.push(order);\n }\n\n if (!state.value.paidOrders.length) // If no order left then end status pulling\n {\n clearInterval(pullIntervalKey);\n pullIntervalKey = undefined;\n }\n }\n\n const onDone = (order: PaidOrder) => {\n if (order) {\n const index = state.value.paidOrders.findIndex(x => x.id === order.id);\n state.value.paidOrders.splice(index, 1);\n\n const expires = new Date();\n expires.setMinutes(expires.getMinutes() + 30) // Set expires 30 minutes in the future\n order.expires = expires;\n state.value.deliveredOrders.push(order);\n }\n\n if (!state.value.paidOrders.length) // If no order left then end status pulling\n {\n clearInterval(pullIntervalKey);\n pullIntervalKey = undefined;\n }\n }\n\n loadFromStorage(null);\n window.addEventListener('storage', loadFromStorage);\n\n return {\n save,\n clear,\n set,\n id,\n ordersCount,\n addPaymentID,\n state,\n getOrderStatus,\n pullOrderStatus,\n cancelPullOrderStatus,\n addToPaidOrders,\n removeOrderFromPending,\n removeExpiredOrders\n }\n\n})","import { shopStorageKey } from '@/keys';\nimport { Shop } from '@/types';\nimport { defineStore } from 'pinia';\nimport { computed, ref } from 'vue';\nimport axios from \"axios\";\n\nexport const ShopStore = defineStore(shopStorageKey, () => {\n const shop = ref();\n const loading = ref(false);\n \n const loadFromStorage = (e: StorageEvent | undefined | null) => {\n\n //If event was thrown by irrelevant storage\n if (e && e.key !== shopStorageKey) {\n return;\n }\n const json: string | null = localStorage.getItem(shopStorageKey);\n if (json) {\n\n try {\n shop.value = JSON.parse(json) as Shop;\n }\n catch (ex) {\n //If json is corrupt, remove data.\n clear();\n }\n }\n }\n\n\n\n const id = computed(() => {\n if (shop.value) {\n return shop.value.id\n }\n return null;\n });\n\n function set(item: Shop) {\n shop.value = item;\n //Store items in local storage.\n localStorage.setItem(shopStorageKey, JSON.stringify(shop.value));\n }\n\n const load = (shopId: number) => {\n loading.value = true;\n return new Promise((resolve: any, reject: any) => {\n axios.get(`/api/shops/${shopId}`)\n .then((response) => response.data)\n .then((data) => {\n set(data);\n loading.value = false;\n resolve(data);\n }).catch(err => {\n reject(err);\n });\n });\n }\n\n function clear() {\n shop.value = undefined;\n localStorage.removeItem(shopStorageKey);\n } \n\n loadFromStorage(null);\n window.addEventListener('storage', loadFromStorage);\n\n return {\n set,\n clear,\n shop,\n load,\n id\n }\n})","import {CartItemType, OrderStatusState, OrderType} from \"@/enums\";\nimport {RouteParamsRaw} from \"vue-router\";\nimport {DateTime, Duration} from \"luxon\";\n\n\n//Maps to OrderSumary server-side\nexport interface Order {\n shopId: number,\n orderId:string,\n shopName: string,\n orderType: OrderType,\n pickupTime?: Date | null,\n totalSum?: number,\n partialSum?: number,\n taxSum?: number,\n taxPercentage?: number,\n customerCode: string | null,\n items: OrderItem[],\n note:string|null,\n created?: Date | null\n}\n\nexport interface OrderItem {\n code: string,\n quantity: number,\n price?: number,\n choices: OrderChoice[],\n name?: string,\n imageUrl?: string,\n isChoice?: boolean | null\n}\n\nexport interface OrderChoice {\n level: number,\n articleCode: string,\n choiceCode: string,\n price?: number,\n name?: string,\n imageUrl?: string\n}\n\nexport interface ApplicationSettings {\n enableCustomerLogin: boolean,\n orderTypes: OrderType[],\n externalLoginProviders: string[],\n version:string\n}\nexport interface OrderResponse {\n shopId: number,\n shopName: string,\n orderType: OrderType,\n pickupTime: Date | null,\n totalSum: number,\n partialSum: number,\n taxSum: number,\n taxPercentage: number,\n items: OrderItem[]\n}\n\n\nexport interface Shop {\n id: number | null;\n name: string;\n location: Location;\n distance: number;\n description: string;\n status: StatusType;\n contactInformation: ContactInformation;\n openingHours: OpeningHour[],\n externalAppUri:null,\n organizationId:string|null\n openForBusiness: boolean;\n}\n\nexport interface Location {\n longitude: number;\n latitude: number;\n}\n\nexport interface OpeningHour {\n id: number,\n opens: string,\n closes: string,\n dayOfWeek: string,\n validFrom?: boolean,\n validThrough?: boolean,\n closed: boolean\n}\n\nexport type StatusType = \"online\" | \"offline\" | \"paused\";\n\nexport interface ContactInformation {\n address1: string;\n address2: string;\n city: string;\n zipCode: string;\n phone: string|null;\n}\n\nexport interface Cart {\n items: CartItem[]\n shopId: number,\n shopName: string,\n orderType: OrderType,\n pickupTime?: Date,\n note?:string|null,\n settings: ApplicationSettings\n}\n\nexport interface CartItem {\n type: CartItemType,\n article: Article;\n choices: SelectedChoices;\n flatChoices: Choice[];\n categoryName?: string,\n quantity: number;\n id: string\n}\n\nexport interface CartState {\n visible: boolean,\n showOrderInfo: boolean,\n showAddItemButton: boolean,\n hasSelectedSuggestions: boolean,\n disabled: boolean,\n orderType: OrderType,\n shopId: number | null,\n shopName?: string,\n items: CartItem[],\n editMode: boolean,\n currentOrderChanged: boolean,\n note: string|null,\n settings: ApplicationSettings,\n initiated: boolean\n}\n\nexport interface SuggestedArticleCategory {\n description: string,\n order: number,\n articleIds: string[]\n}\n\nexport interface Article {\n code: string;\n choices: ChoiceLevel[];\n description: string;\n description2: string;\n imageUrl: string;\n price: number;\n salesUnit: string;\n suggestedArticleIds: string[];\n taxCode: number;\n taxCodeSecondary: number;\n additionalInformation: string;\n availableForSale: boolean;\n suggestedArticles: SuggestedArticleCategory[]\n stickers: Sticker[];\n campaigns: Campaign[];\n i18n: Translations\n}\nexport interface Sticker {\n name:string;\n description:string;\n imageId:string;\n i18n: Translations\n}\n\nexport interface Campaign {\n name:string;\n description:string;\n enabled:boolean;\n imageId:string;\n code:string;\n i18n: Translations,\n membersOnly?:boolean,\n shopIds?:number[]\n stickers: Sticker[],\n articleCodeLink?:string|null\n}\n\nexport class Translations {\n [property:string]:any;\n tr = (property:string, culture:string): string => {\n const translations = this[property] as Translation[];\n const text = translations.find(t => t.language === culture)?.text;\n \n return text || \"\";\n };\n}\n\nexport interface Translation{\n language: string,\n text: string\n}\n\nexport interface ArticleInfo {\n imageUrl: string;\n name: string;\n code: string;\n}\n\nexport interface Category {\n articles: string[],\n imageUlr: string,\n maxPrice: number,\n minPrice: number,\n name: string,\n i18n: Translations\n}\n\nexport interface Menu {\n choiceLevels: ChoiceLevel[];\n currency: Currency,\n name: string,\n categories: Category[]\n}\n\nexport interface Choice {\n order: number;\n article: Article;\n quantity: number;\n unit: string;\n code: string;\n id: number;\n level: number\n}\n\nexport interface ChoiceLevel {\n level: number;\n name: string;\n isMultipleChoice: boolean;\n choices: Choice[];\n minChoices: number;\n maxChoices: number;\n nameOverride:string|null;\n callToActionOverride:string|null;\n i18n: Translations\n}\n\nexport interface Currency {\n name: string,\n symbol: string\n}\n\nexport interface SelectedChoices {\n [key: number]: Choice[];\n}\n\nexport interface Category {\n name: string;\n imageUrl: string;\n maxPrice: number;\n minPrice: number;\n articles: string[];\n}\n\nexport interface MinMax {\n min: number,\n max: number\n}\n\nexport interface ApiStatus {\n done: boolean,\n failed: boolean,\n loading: boolean,\n text?: string\n error?: ResponseError\n}\n\n\nexport interface CartInject {\n cart: CartItem[] | null,\n addToCart(item: CartItem): any,\n removeFromCart(item: CartItem): any\n}\n\n\nexport interface SuggestedArticlesInject {\n suggestedArticleIds: string[] | null,\n setSuggestedArticleIds(articleIds: string[]): any\n}\n\nexport interface NavigationStoreState {\n text: string,\n visible: boolean,\n url: string,\n category?: string,\n link?: NavigationStoreLink | undefined,\n\n\n}//RouteLocationRaw\n\nexport interface NavigationStoreLink {\n name: string,\n path?: string,\n params: RouteParamsRaw | undefined,\n text?: string\n}\n\nexport interface Languages { [key: string]: string }\n\nexport interface DropdownItem {\n label: string;\n value: string;\n}\n\nexport interface OrderStoreState {\n details: OrderDetails | null\n //status: string | null,\n //orderStatus: OrderStatus | null,\n paidOrders: PaidOrder[],\n deliveredOrders: PaidOrder[]\n}\n\nexport interface PaidOrder {\n id: string,\n customerCode: string | null\n expires: Date;\n}\n\nexport interface OrderDetails {\n orderId: string | null;\n shopId: number | null;\n accessToken: string | null;\n pickupTime: Date | null;\n totalAmount: number | null;\n customerCode: string | null\n paymentID: string | null;\n userAgent: string | null;\n}\n\nexport interface OrderHistory {\n webOrders: OrderStatus[]\n others: OrderStatus[]\n}\n\nexport type PaginatedResult = {\n pageIndex: number;\n pageSize: number;\n totalCount: number;\n totalPages: number;\n items: T[];\n}\n\nexport interface OrderStatus {\n orderId: string\n orderNr: string\n totalAmount: number\n created: string\n shop: Shop\n items: OrderStatusItem[]\n orderType: string\n status: OrderStatusState,\n pickupTime: string\n paymentTransactionId: any\n note:string|any,\n currency: Currency|null,\n isWebOrder?: boolean\n}\n\nexport interface OrderStatusItem {\n amount: number\n price: number\n description: string\n articleCode: string\n normalPrice: number\n purchasePrice: number\n quantity: number\n campaign: Campaign | null\n choices: any[],\n isChoice: boolean,\n isVat?: boolean,\n}\n\nexport interface ResponseError {\n type: string\n title: string\n status: number,\n detail: string,\n errors?: any\n}\n\nexport interface ICoupon {\n id: number,\n created: Date,\n validUntil: Date,\n name: string,\n description: string,\n imageUrl: string,\n usedDate: Date | null\n}\n\nexport class Coupon implements ICoupon{\n constructor(data:ICoupon) {\n this.id = data.id;\n this.created= new Date(data.created);\n this.validUntil = new Date(data.validUntil);\n this.name = data.name;\n this.description = data.description;\n this.imageUrl = data.imageUrl;\n this.usedDate = data.usedDate ? new Date(data.usedDate) : null;\n }\n\n id: number;\n created: Date;\n validUntil: Date;\n name: string;\n description: string;\n imageUrl: string;\n usedDate: Date | null;\n \n public get state() : CouponState {\n if(!this.usedDate){\n return CouponState.Unused;\n }\n\n const expires = new Date(this.usedDate);\n expires.setMinutes(this.usedDate.getMinutes()+10);\n\n if(expires < new Date()){\n return CouponState.Expired\n }\n\n return CouponState.Active;\n }\n \n getStateClass() : string {\n switch (this.state) {\n case CouponState.Unused:\n return 'coupon-unused';\n case CouponState.Active:\n return 'coupon-active';\n case CouponState.Expired:\n return 'coupon-expired';\n } \n }\n\n getTimeLeftForCoupon():Duration {\n \n const expires = DateTime.fromJSDate(this.usedDate?? new Date()).plus({minutes:10});\n const duration =expires.diff(DateTime.local(), ['minutes', 'seconds']);\n return duration;\n //console.log(eh.toFormat('mm:ss',{ floor: true }));\n \n \n // const used = DateTime.fromJSDate(this.usedDate);\n //\n // return DateTime.local().diff(used, ['minutes', 'seconds']);\n \n //\n // const diff = Math.abs(new Date().setMinutes(new Date().getMinutes()) - this.usedDate.getTime());\n // const diff2 = (1000*60*10)-diff;\n //\n // const d = new Date(Date.UTC(0, 0, 0, 0, 0, 0, diff2)),\n // // Pull out parts of interest\n // parts = [\n // d.getUTCHours(),\n // d.getUTCMinutes(),\n // d.getUTCSeconds()\n // ],\n // // Zero-pad\n // formatted = parts.map(s => String(s).padStart(2, '0')).join(':');\n //\n // return d;\n }\n \n}\nexport enum CouponState {\n Unused = 0,\n Active = 1,\n Expired = 2\n}\n\nexport interface AuthResponse {\n tokenType: string,\n accessToken: string,\n expiresIn: number,\n expires: Date,\n refreshToken: string,\n}\nexport interface ProfileResponse {\n name:string,\n lastName:string,\n email:string,\n isAuthenticated:boolean,\n favorites: Favorite[]\n}\n\nexport interface UpdateProfileRequest {\n name:string,\n lastName:string,\n email:string, \n password:string|null\n newPassword:string|null\n confirmNewPassword:string|null,\n redirectUri?: string|null\n}\n\nexport interface Favorite {\n id?: number|null,\n code: string,\n type:string\n article?: Article|null,\n shop?: Shop|null\n}\n\nexport interface Terms {\n i18n: Translations\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"src\", \"data-to\"]\n\nimport { ref, reactive, onMounted } from 'vue';\n\n /* interface */\n interface Props {\n url: string,\n to?: string\n\n }\n interface State {\n url: string,\n fallbackImage: boolean\n }\n\n /* Ref */\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'ArticleImage',\n props: {\n url: null,\n to: null\n },\n setup(__props: any, { expose }) {\n\nconst props = __props as {\n url: string,\n to?: string\n\n };\n\n /* imports */\n const image = ref();\n\n /* Reactive */\n const state = reactive({\n url: '',\n fallbackImage: false\n });\n\n /* Const */\n const fallbackImageUrl = '/assets/img/444x250_Default.png';\n\n /* Props */\n \n\n /* Fuinctions */\n const setFallbackImg = () => {\n state.url = fallbackImageUrl;\n \n };\n\n const addToOrder = () => {\n\n return new Promise((resolve: any, reject: any) => {\n \n if (image.value) {\n\n const order = document.querySelector('.order__content');\n\n if (!order) {\n reject(\"element order_content is missing!\")\n }\n\n const el: Element | null | undefined = props.to ? order?.querySelector(`[data-id=a-${props.to}]`) || order : order?.querySelector('li:last-child') || order;\n\n if (el) {\n\n const rectOrder: DOMRect = el.getBoundingClientRect();\n\n const rectImage: DOMRect = image.value.getBoundingClientRect();\n\n const img = new Image(rectImage.width, rectImage.height);\n\n const sizeRatio = 100 / rectImage.width;\n\n img.addEventListener('transitionend', () => {\n img.remove();\n setTimeout(() => {\n if (image.value) {\n image.value.style.removeProperty('opacity');\n }\n }, 250);\n resolve(true);\n });\n\n img.className = 'clone';\n\n const styleStart = {\n top: `${rectImage.top}px`,\n left: `${rectImage.left}px`\n }\n\n const styleEnd = {\n top: `${rectOrder.top}px`,\n left: `${rectOrder.left}px`,\n transform: `scale(${sizeRatio})`\n }\n\n img.onerror = (err) => {\n reject(err);\n };\n\n img.src = image.value.src;\n Object.assign(img.style, styleStart);\n\n if (image.value) {\n image.value.style.opacity = '0.1';\n }\n\n document.body.appendChild(img);\n setTimeout(() => {\n Object.assign(img.style, styleEnd);\n img.classList.add('clone--animate')\n }, 10);\n\n } else {\n reject(\"element is missing!\")\n }\n }\n });\n };\n\n expose({\n addToOrder\n });\n\n /* Lifecycle Hooks */\n onMounted(() => {\n\n if (props.url.length) {\n state.url = `/api/images/${props.url}`;\n } else {\n state.fallbackImage = true;\n state.url = fallbackImageUrl;\n }\n });\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"img\", {\n src: state.url,\n ref_key: \"image\",\n ref: image,\n \"data-to\": props.to,\n onErrorOnce: setFallbackImg,\n class: _normalizeClass({ 'fallback-image': state.fallbackImage, 'custom-image': !state.fallbackImage }),\n alt: \"\"\n }, null, 42, _hoisted_1))\n}\n}\n\n})","import script from \"./ArticleImage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ArticleImage.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode, Teleport as _Teleport, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = [\"onClick\"]\nconst _hoisted_2 = { class: \"popup__header\" }\nconst _hoisted_3 = { class: \"popup__text\" }\nconst _hoisted_4 = { class: \"popup__buttons\" }\n\nimport { onErrorCaptured } from 'vue';\n // import { AppStore } from '@/stores/app';\n import { useI18n } from 'vue-i18n'\n\n // const appStore = AppStore();\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'ConfirmPopup',\n props: {\n show: {\n type: Boolean,\n default: false,\n },\n text: {\n type: String,\n default: 'cancel.text',\n },\n heading: {\n type: String,\n default: 'cancel.header',\n },\n okButton: {\n type: String,\n default: 'button.yes',\n },\n cancelButton: {\n type: String,\n default: 'button.no',\n }\n },\n emits: ['onAnswer'],\n setup(__props, { emit }) {\n\n /* imports */\n const { t } = useI18n();\n\n /* interface */\n\n\n /* Props */\n \n\n\n /* reactive */\n\n\n /* Emits */\n \n\n /* computed */\n\n /* functions */\n const doNothing = () => {\n return false;\n }\n const answer = (value: boolean) => {\n emit('onAnswer', value);\n }\n\n /* Lifecycle Hooks */\n onErrorCaptured(() => {\n emit('onAnswer', true);\n })\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_Teleport, { to: \"body\" }, [\n _createVNode(_Transition, {\n name: \"popup\",\n duration: 860\n }, {\n default: _withCtx(() => [\n (__props.show)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"popup popup--confirm\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (answer(false)), [\"stop\"]))\n }, [\n _createElementVNode(\"div\", {\n class: \"popup__content\",\n onClick: _withModifiers(doNothing, [\"stop\",\"prevent\"])\n }, [\n _createElementVNode(\"h2\", _hoisted_2, _toDisplayString(_unref(t)(__props.heading)), 1),\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString(_unref(t)(__props.text)), 1),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n class: \"btn btn--secondary\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (answer(false)), [\"stop\"]))\n }, _toDisplayString(_unref(t)(__props.cancelButton)), 1),\n _createElementVNode(\"button\", {\n class: \"btn\",\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (answer(true)), [\"stop\"]))\n }, _toDisplayString(_unref(t)(__props.okButton)), 1)\n ])\n ], 8, _hoisted_1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./ConfirmPopup.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ConfirmPopup.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, withModifiers as _withModifiers, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"dropdown\" }\nconst _hoisted_2 = [\"aria-expanded\"]\nconst _hoisted_3 = [\"onClick\"]\n\nimport { DropdownItem } from '@/types';\nimport { onBeforeMount, onBeforeUnmount, reactive, ref } from 'vue';\nimport { useI18n } from 'vue-i18n';\n\ninterface Props {\n label: string;\n items: DropdownItem[];\n}\n\ninterface State {\n open: boolean;\n}\n\n/* Props */\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'DropdownComponent',\n props: {\n label: null,\n items: null\n },\n emits: ['onChanged'],\n setup(__props: any, { emit }) {\n\nconst { t } = useI18n();\n\n/* Interface */\n\n\n/* Reactive */\nconst state = reactive({\n open: false,\n});\n\n/* Refs */\nconst dropdownMenu = ref();\nconst toggle = ref();\n\n/* Emits */\n\n\n/* Functions */\nconst toggleVisibility = () => (state.open = !state.open);\n\nconst onSelect = (value: string) => {\n toggleVisibility();\n emit('onChanged', value);\n};\n\nconst autoClose = (event: any) => {\n if (\n !dropdownMenu.value?.contains(event.target) &&\n !toggle.value?.contains(event.target) &&\n state.open\n ) {\n toggleVisibility();\n }\n};\n\n/* Lifecycle hooks*/\nonBeforeMount(() => document.addEventListener('click', autoClose));\nonBeforeUnmount(() => document.removeEventListener('click', autoClose));\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"button\", {\n class: \"dropdown__toggle\",\n onClick: toggleVisibility,\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": state.open,\n ref_key: \"toggle\",\n ref: toggle\n }, [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$props.label), 1)\n ], 8, _hoisted_2),\n (state.open)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"dropdown__menu\",\n ref_key: \"dropdownMenu\",\n ref: dropdownMenu\n }, [\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.items, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: item.value\n }, [\n _createElementVNode(\"a\", {\n class: \"dropdown__item\",\n href: \"#\",\n onClick: _withModifiers(($event: any) => (onSelect(item.value)), [\"prevent\",\"stop\"])\n }, _toDisplayString(_unref(t)(item.label)), 9, _hoisted_3)\n ]))\n }), 128))\n ])\n ], 512))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./DropdownComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DropdownComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"sr-only\" }\n\nimport {AuthStore} from \"@/stores/auth\";\n import { useI18n } from 'vue-i18n';\n import {reactive} from \"vue\";\n interface State {\n favorite:boolean\n }\n interface Props {\n code:string,\n type:string,\n favorite:boolean\n }\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'FavoriteButton',\n props: {\n code: null,\n type: null,\n favorite: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n code:string,\n type:string,\n favorite:boolean\n };\n\n const authStore = AuthStore();\n\n const { t, locale } = useI18n();\n \n const state = reactive({\n favorite:props.favorite\n });\n \n const toggle = (e:Event)=>{\n e.preventDefault();\n if(props.type ==='article') {\n if(state.favorite) {\n authStore.removeFavoriteArticle(props.code);\n } else {\n authStore.addFavoriteArticle(props.code);\n }\n } else if(props.type ==='shop') {\n if(state.favorite) {\n authStore.removeFavoriteShop(props.code);\n } else {\n authStore.addFavoriteShop(props.code);\n }\n }\n \n state.favorite = !state.favorite; \n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"button\", {\n class: _normalizeClass([\"btn-favorite\", {'selected' :state.favorite}]),\n type: \"button\",\n onClick: toggle\n }, [\n _createElementVNode(\"span\", _hoisted_1, _toDisplayString(_unref(t)('button.favorite')), 1)\n ], 2))\n}\n}\n\n})","import script from \"./FavoriteButton.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FavoriteButton.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"loader\" }\n\nimport { IonSpinner } from '@ionic/vue';\n import { useI18n } from 'vue-i18n'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'LoaderComponent',\n props: {\n text: {\n type: String,\n default: 'loader.text',\n }\n },\n setup(__props) {\n \n\n /* imports */\n const { t } = useI18n();\n\n /* interface */\n\n /* Reactive */\n\n /* Props */\n \n\n /* Lifecycle Hooks */\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n _createVNode(_unref(IonSpinner), { name: \"circular\" }),\n _createTextVNode(),\n _createElementVNode(\"span\", null, _toDisplayString(_unref(t)(__props.text)), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./LoaderComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LoaderComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"order__content__shop\"\n}\nconst _hoisted_2 = { class: \"selected-restaurant\" }\nconst _hoisted_3 = { class: \"label\" }\nconst _hoisted_4 = { class: \"shop-name\" }\nconst _hoisted_5 = { class: \"dining-type\" }\nconst _hoisted_6 = {\n key: 1,\n class: \"dropdown\"\n}\nconst _hoisted_7 = {\n key: 0,\n class: \"order-note\"\n}\nconst _hoisted_8 = { class: \"order-note__note\" }\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"i\", { class: \"icon icon-cancel\" }, null, -1)\nconst _hoisted_10 = [\n _hoisted_9\n]\n\nimport {CartStore} from '@/stores/cart';\nimport {ShopStore} from '@/stores/shop';\nimport {DropdownItem} from '@/types';\nimport {OrderType} from '@/enums';\nimport {useI18n} from 'vue-i18n';\nimport DropdownComponent from '@/components/DropdownComponent.vue';\n\ninterface Props {\n onOrderTypeChanged?: (orderType: OrderType) => void | null |undefined;\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'OrderShopInfo',\n props: {\n onOrderTypeChanged: { type: Function }\n },\n setup(__props: any) {\n\nconst props = __props as {\n onOrderTypeChanged?: (orderType: OrderType) => void | null |undefined;\n};\n\n\n/* imports */\n\n\nconst {t} = useI18n();\nconst cartStore = CartStore();\nconst shopStore = ShopStore();\n\nconst diningTypes: DropdownItem[] = [];\ncartStore.state.settings.orderTypes.forEach((orderType: OrderType) => {\n const key = orderType.charAt(0).toLowerCase() + orderType.slice(1);\n diningTypes.push({\n label: t('label.' + key),\n value: orderType,\n });\n});\n\nconst updateDiningType = (diningType: OrderType) => {\n cartStore.setOrderType(diningType);\n\n if (diningType === OrderType.TakeAway) {\n cartStore.setNote(null);\n }\n \n if(props.onOrderTypeChanged){\n props.onOrderTypeChanged(diningType);\n }\n\n};\n\nconst clearNote = () => {\n cartStore.setNote(null);\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(shopStore).shop)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_unref(t)('order.selectedRestaurant')), 1),\n _createElementVNode(\"div\", _hoisted_4, _toDisplayString(_unref(shopStore).shop.description), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n (diningTypes.length > 1)\n ? (_openBlock(), _createBlock(DropdownComponent, {\n key: 0,\n label: _unref(t)('label.'+_unref(cartStore).state.orderType),\n items: diningTypes,\n onOnChanged: updateDiningType\n }, null, 8, [\"label\"]))\n : _createCommentVNode(\"\", true),\n (diningTypes.length == 1)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"span\", null, _toDisplayString(diningTypes[0].label), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(cartStore).state.note)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", null, _toDisplayString(_unref(t)('order.note')), 1),\n _createElementVNode(\"div\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_unref(cartStore).state.note) + \" \", 1),\n _createElementVNode(\"button\", { onClick: clearNote }, _hoisted_10)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./OrderShopInfo.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./OrderShopInfo.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"js/\" + chunkId + \".\" + {\"576\":\"2e2ab51f\",\"630\":\"2ece96b4\",\"979\":\"a0d72de5\",\"1562\":\"20a7905a\",\"1633\":\"ab58169b\",\"1820\":\"2bde7db2\",\"1977\":\"a7c1bedc\",\"2042\":\"729f133e\",\"2111\":\"e25a48f4\",\"2312\":\"a335b48d\",\"2501\":\"b03df201\",\"2513\":\"98d57800\",\"2638\":\"5d11ac8f\",\"3456\":\"870742b7\",\"3541\":\"ed52d89b\",\"3663\":\"aed722f1\",\"3705\":\"46b82f22\",\"3997\":\"5fe63a3e\",\"4184\":\"bb872503\",\"4261\":\"cf51601e\",\"4275\":\"ac84c720\",\"4298\":\"c0b51114\",\"4495\":\"50f77b85\",\"4753\":\"af4db766\",\"4766\":\"d09f3a56\",\"4881\":\"bfbed458\",\"4886\":\"0321cd9f\",\"4905\":\"bcbdad03\",\"5126\":\"3e0c63c4\",\"5289\":\"65de903e\",\"5380\":\"e53e5043\",\"5577\":\"da1e925e\",\"5614\":\"ec550d8d\",\"5644\":\"feffd184\",\"5980\":\"cbe12944\",\"5990\":\"f97e2625\",\"6078\":\"70023105\",\"6222\":\"aa609c2e\",\"6253\":\"483f607e\",\"6338\":\"342d099b\",\"6519\":\"d537250f\",\"6823\":\"6e542671\",\"6921\":\"f98667c8\",\"7125\":\"ebf0488a\",\"7250\":\"c270e3c5\",\"7251\":\"fe733429\",\"7391\":\"1d2e865f\",\"7392\":\"e4c95cf0\",\"7517\":\"012da9ec\",\"7542\":\"218e5fb6\",\"7630\":\"12529313\",\"8030\":\"a5229d5a\",\"8327\":\"561783ff\",\"8537\":\"f637accb\",\"8544\":\"890581e9\",\"8775\":\"7f959431\",\"9280\":\"fda63a6b\",\"9304\":\"fe3156d5\",\"9316\":\"d5016d38\",\"9487\":\"0760d963\",\"9765\":\"fab25c01\",\"9875\":\"09204b9c\",\"9880\":\"8a2cd599\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"css/\" + chunkId + \".\" + {\"1820\":\"e5073c60\",\"3663\":\"ea37adf7\",\"5614\":\"0aafa91b\",\"6921\":\"e53397af\",\"8327\":\"599680f1\",\"9765\":\"599680f1\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"winpos-weborder:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"1820\":1,\"3663\":1,\"5614\":1,\"6921\":1,\"8327\":1,\"9765\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkwinpos_weborder\"] = self[\"webpackChunkwinpos_weborder\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4998], () => (__webpack_require__(58920)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","id","module","exports","BREAKPOINTS","tabletPortrait","tabletLandscape","desktop","desktopBig","lowHeight","useEmitter","internalInstance","getCurrentInstance","emitter","appContext","config","globalProperties","CartItemType","OrderType","ScreenType","OrderStatusState","guid","s4","Math","floor","random","toString","substring","errorToi18nKey","statusCode","prefix","message","toKebabCase","str","match","map","x","toLowerCase","join","isResponseError","obj","isOpen","shop","externalAppUri","openForBusiness","i18nTranslate","i18n","property","locale","defaultValue","translations","text","find","t","language","getI18nImageId","isReachable","url","fetch","method","mode","resp","ok","type","catch","err","console","warn","suggestedArticlesStorage","menuStoreKey","cartStorageKey","authStorageKey","shopStorageKey","navigationStoreKey","appStoreKey","orderStoreKey","errorStoreKey","couponStoreKey","_hoisted_1","_hoisted_2","class","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","key","_hoisted_9","_hoisted_10","_createElementVNode","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_defineComponent","__name","props","item","disabled","Boolean","editable","curency","setup","__props","cart","CartStore","useI18n","state","reactive","showEditActions","quantity","toggleEdit","emit","hideEdit","increaseItem","increase","dataId","decreaseItem","decrease","removeCartItem","remove","changeCartItem","router","name","params","categoryName","articleId","article","orderId","onMounted","on","data","_ctx","_cache","_openBlock","_createElementBlock","_normalizeClass","style","onClick","_withModifiers","$event","onKeyup","_withKeys","tabindex","_createBlock","ArticleImage","imageUrl","_toDisplayString","_unref","price","_Fragment","_renderList","flatChoices","choice","_createCommentVNode","_createVNode","_Transition","default","_withCtx","Article","_","__exports__","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","cartStore","menuStore","MenuStore","appStore","AppStore","tweened","number","showOrderInfo","showCancelModal","isCounting","currency","getCurrency","symbol","transitionName","computed","isSmallScreen","addBtnText","editMode","suggestedBtnText","hasSelectedSuggestions","totalPrice","onBeforeEnter","el","opacity","height","onEnter","done","gsap","delay","Number","dataset","index","onComplete","onLeave","addToOrder","toggleShowOrder","onCancel","items","length","toggleCancelModal","cancelOrder","value","clear","pay","shopId","watch","n","duration","onStart","isLargeScreen","showAddItemButton","currentPage","toFixed","OrderShopInfo","_TransitionGroup","tag","css","OrderItem","updating","ConfirmPopup","heading","okButton","cancelButton","show","onOnAnswer","shopStore","ShopStore","languages","sv","fi","en","ru","no","langauges","status","failed","loading","abortController","AbortController","toggleLanguagePopup","showLangSelector","setLang","lang","changeculture","load","document","documentElement","setAttribute","error","async","reject","axios","response","loadLanguages","finally","onErrorCaptured","onBeforeMount","onBeforeUnmount","abort","active","orderStore","OrderStore","visible","count","setState","deep","ordersCount","paidOrders","order","deliveredOrders","couponStore","CouponStore","coupons","forEach","c","CouponState","classList","contains","image","ref","loadImage","responseType","r","window","URL","createObjectURL","Blob","src","log","ref_key","alt","href","authStore","AuthStore","showProfileMenu","preventDefault","logout","isAuthenticated","user","lastName","MembershipCard","navigationStore","NavigationStore","route","useRoute","showConfirmPopup","showCancelOrderPopup","shouldHandleClearOrder","link","meta","confirmCartReset","loginUri","encodeURIComponent","to","shouldHandleCancelOrder","currentOrderChanged","navigate","clearOrder","cancelAddToOrder","_createTextVNode","LanguageSelector","CouponsIcon","PaidOrderIcon","settings","enableCustomerLogin","ProfileMenu","hide","doNothing","_Teleport","LoaderComponent","errorMessageStore","ErrorMessageStore","close","innerHTML","updateApp","navigator","serviceWorker","getRegistrations","registrations","waiting","postMessage","location","reload","showOrder","showCart","includes","removeExpiredOrders","pullOrderStatus","IonApp","currentRoute","NavigationComponent","ErrorMessage","UpdateComponent","OrderComponent","LanguageSelectorPopup","IonRouterOutlet","version","messages","home","header","subHeader","list","menu","shopchanged","checkout","pickup","orderHeader","payment","termsAndConditions","suggestedArticles","selectedShop","extraInfo","search","label","placeholder","noMatch","shopSelector","singleShop","start","closed","paused","openingHoursHeader","button","showMore","showMoreRestaurants","open","dineInPlace","takeAway","change","noThanks","cancel","changeRestaurant","changeLanguage","yes","add","backToCategory","backToCategories","backToHome","backToArticle","backToShopPage","back","receipt","notAvalible","favoriteHeader","total","subtotal","tax","articleChoiceLabel1","articleChoiceLabel2","articleChoiceLabel3","articleChoiceLabel4","articleChoiceLabel5","now","pageHeader","thankYouText","infoText","infoText2","emptyInfoText","selectedRestaurant","missing","pickUpLabel","statusLabel","numberLabel","note","calculatedprice","description","added","started","finnished","delivered","rollbacked","campaignLabel","loader","categories","calculatesDistances","checkoutSummary","confirm","server","badRequest","unknown","PasswordRequiresNonAlphanumeric","PasswordRequiresDigit","PasswordRequiresLower","PasswordRequiresUpper","PasswordTooShort","PasswordMismatch","DuplicateUserName","DuplicateEmail","aborted","notPaid","invalid","accesstokenMissing","IdentifierMissing","NotFound","merchantNotFound","orderNotFound","returnUrl","requestParametersMissing","orderFailed","captureFailed","createError","loadScriptError","privacyPolicy","vat","net","orderNumber","paymentId","email","emailPlaceHolder","sendEmail","emailSent","deliveryDate","allergens","offline","login","password","registerText","registerLink","forgotPassword","separatorText","googleSignIn","facebookSignIn","send","sent","newAccountText","resetPassword","confirmPassword","reset","campaign","bannerText","memberCard","favorites","empty","orderHistory","register","success","loginLink","firstname","lastname","acceptTerms","linkText","registerButton","confirmEmail","navBar","campaigns","descriptionAuthenticated","membersOnly","localOffer","offer","toArticle","expandButton","profile","edit","submit","title","userInformation","changePassword","newPassword","confirmNewPassword","emailConfirmationSent","deleteAccount","userGreeting","offers","account","notFound","policy","passwordMismatch","processing","received","readyforpickup","getLocaleFromCookie","cookie","split","culture","cookieValue","decodeURIComponent","cultureValues","createI18n","fallbackLocale","legacy","ready","registered","registration","cached","updatefound","updated","body","alert","handler","onLine","setTimeout","origin","online","addEventListener","mitt","pinia","createPinia","global","mergeLocaleMessage","app","createApp","App","use","IonicVue","mount","errorHandler","instance","info","from","waitForLoading","query","requiresAuth","redirectUri","fullPath","undefined","orderType","q","setOrderType","setNote","requiresShop","lastPage","currentPageFullPath","lastPageFullPath","classes","filter","startsWith","compareShop","disableCart","retry","onIonViewDidEnter","IonPage","IonContent","calculateDistance","lat1","lon1","lat2","lon2","unit","radlat1","PI","radlat2","theta","radtheta","dist","sin","cos","acos","formatDistance","distance","meters","for","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","emits","pageSize","shops","filterString","visibleShops","dayOfWeek","loadingText","cmp","a","b","filteredShops","trim","contactInformation","address1","city","sort","isFavorite","slice","emptyList","fav","openingHours","today","openDate","DateTime","opens","closeDate","closes","toLocaleString","selectShop","target","className","indexOf","signal","headers","token","accessToken","calculateShopDistances","geolocation","permissions","getCurrentPosition","pos","coords","latitude","longitude","date","Date","toLocaleDateString","weekday","_withDirectives","_vModelText","address2","zipCode","FavoriteButton","favorite","onSelectShop","set","setShop","redirectToArticle","orderTypes","getOrderType","onIonViewWillEnter","fullscreen","initiated","ShopSelector","routes","path","component","HomePage","Offline","skipIfLoggedIn","redirect","createRouter","history","createWebHistory","process","defineStore","width","screenType","onResize","innerWidth","innerHeight","loadFromStorage","getProfile","JSON","stringify","save","interval","setInterval","clearInterval","profileResponse","localStorage","setItem","addFavoriteArticle","push","addFavoriteShop","removeFavoriteArticle","removeFavoriteShop","getOrderHistory","pageIndex","setProfile","externalLoginProviders","cartJson","getItem","setSettings","parse","shopName","ex","removeItem","y","get","autoSave","findIndex","splice","clearStore","convertToOrderRequest","customerCode","allItemChoices","prop","choices","levelChoices","level","articleCode","choiceCode","pickupTime","json","Coupon","oldCoupons","newCoupon","oldCoupon","usedDate","useCoupon","couponId","couponFromStore","expire","minus","minutes","toJSDate","getChoiceLevelName","choiceLvl","choiceLevels","choiceLevel","details","pullInterval","pullIntervalKey","orderJson","expires","userAgent","addPaymentID","paymentID","cancelPullOrderStatus","getOrderStatus","getTime","validateOrders","addToPaidOrders","setMinutes","getMinutes","removeOrderFromPending","onDone","onDelivered","shift","constructor","this","created","validUntil","Unused","Expired","Active","getStateClass","getTimeLeftForCoupon","plus","diff","expose","fallbackImage","fallbackImageUrl","setFallbackImg","querySelector","rectOrder","getBoundingClientRect","rectImage","img","Image","sizeRatio","removeProperty","styleStart","top","left","styleEnd","transform","onerror","Object","assign","appendChild","onErrorOnce","String","answer","dropdownMenu","toggle","toggleVisibility","onSelect","autoClose","event","removeEventListener","$props","IonSpinner","onOrderTypeChanged","Function","diningTypes","charAt","updateDiningType","diningType","clearNote","DropdownComponent","onOnChanged","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","getter","__esModule","d","definition","o","defineProperty","enumerable","f","chunkId","all","reduce","promises","u","miniCssF","g","globalThis","prototype","hasOwnProperty","call","inProgress","dataWebpackPrefix","l","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","onScriptComplete","prev","onload","clearTimeout","doneFns","parentNode","removeChild","bind","head","Symbol","toStringTag","p","createStylesheet","fullhref","oldTag","linkTag","rel","onLinkComplete","errorType","realHref","request","insertBefore","nextSibling","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}