{"version":3,"sources":["webpack:///./node_modules/.cache/nuxt/matomo/utils.js","webpack:///./node_modules/.cache/nuxt/matomo/plugin.js","webpack:///./node_modules/.cache/nuxt/http.js","webpack:///./node_modules/.cache/nuxt/nuxt-i18n/options.js","webpack:///./node_modules/.cache/nuxt/nuxt-i18n/utils-common.js","webpack:///./node_modules/.cache/nuxt/nuxt-i18n/plugin.utils.js","webpack:///./node_modules/.cache/nuxt/nuxt-i18n/middleware.js","webpack:///./node_modules/.cache/nuxt/nuxt-i18n/plugin.routing.js","webpack:///./node_modules/.cache/nuxt/nuxt-i18n/head-meta.js","webpack:///./node_modules/.cache/nuxt/nuxt-i18n/plugin.main.js","webpack:///./node_modules/.cache/nuxt/pwa/meta.utils.js","webpack:///./node_modules/.cache/nuxt/pwa/meta.plugin.js","webpack:///./node_modules/.cache/nuxt/pwa/icon.plugin.js","webpack:///./node_modules/.cache/nuxt/lib.plugin.307a5233.js","webpack:///./node_modules/.cache/nuxt/index.js","webpack:///./node_modules/.cache/nuxt/middleware.js","webpack:///./node_modules/.cache/nuxt/mixins/fetch.client.js"],"names":["isFn","fn","componentOption","component","key","thisArg","options","undefined","option","_len2","arguments","length","args","Array","_key2","call","apply","concat","context","inject","tracker","_context$app","app","router","store","window","Piwik","createTracker","_tracker","_windowPiwik","delayedCalls","proxyTrackerCall","fnName","_len","_key","_tracker2","push","Proxy","get","target","forEach","_len3","_key3","Object","defineProperty","configurable","enumerable","set","newVal","$matomo","baseUrl","location","protocol","slice","host","base","replace","afterEach","to","from","matchedComponent","matched","components","default","routeOption","_ref","setDocumentTitle","path","setCustomUrl","fullPath","settings","assign","route","meta","matomo","_tracker$fn","setting","shift","_toConsumableArray","trackPageView","trackRoute","getTracker","setConsent","val","setConsentGiven","forgetConsentGiven","_delayedCalls$shift","_delayedCalls$shift2","_toArray","HTTP","_createClass","defaults","ky","KY","_classCallCheck","this","_defaults","_objectSpread","hooks","_ky","value","prefixUrl","baseURL","name","headers","token","type","setHeader","_hook","_this$_defaults","retry","timeout","createHttpInstance","defu","_loop","method","_arr","_i","hasBody","includes","prototype","_asyncToGenerator","regeneratorRuntime","mark","_callee","url","arg1","arg2","_options","response","text","json","_iterator","_step","res","wrap","_context","prev","next","constructor","isArray","body","test","startsWith","substr","sent","abrupt","t0","statusCode","status","Promise","resolve","destr","data","t1","onError","_createForOfIteratorHelper","s","n","done","t2","e","f","finish","stop","_x","_x2","_x3","then","ctx","$config","http","browserBaseURL","$http","Constants","COMPONENT_OPTIONS_KEY","STRATEGIES","REDIRECT_ON_OPTIONS","nuxtOptions","vueI18n","vueI18nLoader","locales","defaultLocale","defaultDirection","routesNameSeparator","defaultLocaleRouteNameSuffix","sortRoutes","strategy","lazy","langDir","rootRedirect","detectBrowserLanguage","differentDomains","vuex","parsePages","pages","skipSettingLocaleOnNavigate","onBeforeLanguageSwitch","onLanguageSwitched","normalizedLocales","localeCodes","additionalMessages","formatMessage","matchBrowserLocale","appLocales","browserLocales","matchedLocales","normalizedAppLocales","appLocale","code","iso","err","_step2","_iterator2","entries","_step2$value","_slicedToArray","index","browserCode","matchedLocale","find","toLowerCase","score","_step3","_iterator3","_loop2","_step3$value","languageCode","split","sort","localeA","localeB","getLocaleDomain","req","matchingLocale","l","domain","getLocalesRegex","RegExp","join","createLocaleFromRouteGetter","localesPattern","defaultSuffixPattern","regexpName","regexpPath","matches","match","getLocaleCookie","_ref2","localeCode","useCookie","cookieKey","JsCookie","setLocaleCookie","locale","_ref3","cookieDomain","cookieSecure","cookieCrossOrigin","date","Date","cookieOptions","expires","setDate","getDate","sameSite","secure","loadLanguageAsync","_loadLanguageAsync","i18n","localeObject","loadedLanguages","file","console","warn","resolveBaseUrl","getDomainFromLocale","lang","hasProtocol","registerStore","storeModule","namespaced","state","syncRouteParams","routeParams","actions","setRouteParams","params","commit","mutations","getters","localeRouteParams","_ref4","registerModule","moduleName","preserveState","mergeAdditionalMessages","onlyLocales","additionalEntry","existingMessages","getLocaleMessage","mergeLocaleMessage","i18nMiddleware","_yield$app$i18n$__onN","_yield$app$i18n$__onN2","redirectPath","preserveQuery","query","isHMR","__onNavigate","redirect","nuxtMiddleware","nuxti18n","localePath","localizedRoute","resolveRoute","redirectedFrom","localeRoute","resolved","localeLocation","resolvedRoute","resolvedRouteName","getRouteBaseName","getLocaleRouteName","hash","PREFIX_EXCEPT_DEFAULT","PREFIX_AND_DEFAULT","NO_PREFIX","withTrailingSlash","withoutTrailingSlash","pathMatch","switchLocalePath","routeCopy","_objectWithoutProperties","_excluded","langSwitchParams","baseRoute","getDomainOptions","givenRoute","routeName","VueInstanceProxy","targetFunction","proxy","$i18n","$route","$router","$store","NuxtContextProxy","plugin","install","Vue","mixin","methods","use","nuxtI18nHead","_ref$addDirAttribute","addDirAttribute","_ref$addSeoAttributes","addSeoAttributes","metaObject","htmlAttrs","link","currentLocale","localeProperties","currentLocaleIso","currentLocaleDir","dir","VueMeta","hasMetaInfo","_hasMetaInfo","addHreflangLinks","bind","__baseUrl","addCanonicalLinks","addCurrentOgLocale","addAlternateOgLocales","localeMap","Map","localeIso","_localeIso$split","_localeIso$split2","language","region","isCatchallLocale","has","mapLocale","hid","rel","href","toAbsoluteUrl","hreflang","seoAttributesOptions","currentRoute","canonicalQueries","currentRouteQueryParams","URLSearchParams","queryParamName","queryParamValue","v","append","queryString","toString","property","content","hypenToUnderscore","localesWithoutCurrent","filter","alternateLocales","map","str","urlOrPath","VueI18n","_callee5","devalue","_options$detectBrowse","alwaysRedirect","fallbackLocale","redirectOn","getLocaleFromRoute","loadAndSetLocale","onNavigate","finalizePendingLocaleChange","waitForPendingLocaleChange","getBrowserLocale","doDetectBrowserLanguage","extendVueI18nInstance","vueI18nOptions","_step$value","optionsLocale","resolveBaseUrlOptions","finalLocale","domainLocale","routeLocale","_yield$onNavigate","_yield$onNavigate2","redirectTo","_context5","skipNuxtState","beforeNuxtRender","nuxtState","langs","_app$i18n","messages","_getMessages","_unused","__i18n","newLocale","_ref4$initialSetup","initialSetup","oldLocale","localeOverride","i18nFallbackLocale","localesToLoadPromises","newLocaleProperties","_Object$keys","_i2","_Object$entries","_Object$entries$_i","routePath","_args","fbLocale","_typeof","all","keys","klona","process","__redirect","_ref5","_callee2","storedRedirect","_context2","__pendingLocale","__pendingLocalePromise","__resolvePendingLocalePromise","setLocale","_ref6","_callee3","_context3","_ref7","_callee4","_context4","navigator","languages","tag","ROOT","observable","componentInstanceCreatedListener","localeDomains","$nuxtI18nHead","joinURL","hasMeta","arr","obj","item","attr","mergeMeta","head","icons","size","_","slugify","ClientOnly","NoSsr","render","h","_warned","NuxtChild","Nuxt","globalNuxt","$root","$options","$nuxt","Meta","defaultTransition","Vuex","Store","createApp","_createApp","ssrContext","config","_args2","Error","installKey","hasOwnProperty","createRouter","createStore","nuxt","transitions","setTransitions","transition","dateErr","error","_errored","Boolean","normalizeError","now","App","getLocation","mode","setContext","payload","beforeRenderFns","__NUXT__","replaceState","enablePreview","previewData","nuxt_plugin_plugin_32d93d8f","nuxt_plugin_plugin_2bef43aa","nuxt_plugin_vsanitize_14d96733","nuxt_plugin_cookieuniversalnuxt_68d0bccd","nuxt_plugin_http_5c46128b","nuxt_plugin_dayjsplugin_3c0a6e18","nuxt_plugin_pluginrouting_07eced81","nuxt_plugin_pluginmain_7aec54e4","nuxt_plugin_toast_3b2f5858","nuxt_plugin_workbox_2bb971fe","nuxt_plugin_metaplugin_6789fd14","nuxt_plugin_iconplugin_6c31a288","nuxt_plugin_axios_16380725","nuxt_plugin_libplugin307a5233_fe726576","nuxt_plugin_amplify_900d1ace","nuxt_plugin_graphcms_3ef315a6","nuxt_plugin_helpers_1c816d70","nuxt_plugin_vueshortkey_7ae76292","nuxt_plugin_forumApi_7bc36ce8","nuxt_plugin_index_e21eb744","nuxt_plugin_fbApi_0c3792ef","nuxt_plugin_auth_28a8ad2a","nuxt_plugin_auth_7f7561ce","reject","_isRouter","unregister","getRouteData","middleware","require","beforeMount","_hydrated","$fetch","created","vm","$vnode","elm","dataset","fetchKey","_fetchKey","fetch","_error","$fetchState","$data","_this","_fetchPromise","$_fetch","_$_fetch","startTime","delayLeft","_this2","nbFetching","pending","_fetchDelay","setTimeout","timestamp","$nextTick","beforeCreate","hasFetch","fetchDelay","util","defineReactive","addLifecycleHook"],"mappings":"ibASO,SAASA,EAAMC,GACpB,MAAqB,mBAAPA,EAyBT,SAASC,EAAiBC,UAAWC,EAAKC,GAC/C,IAAKF,YAAcA,UAAUG,cAAsCC,IAA3BJ,UAAUG,QAAQF,GACxD,OAAO,KAG4B,IAArC,IAAMI,OAASL,UAAUG,QAAQF,GAAIK,EAAAC,UAAAC,OALsBC,EAAI,IAAAC,MAAAJ,EAAA,EAAAA,EAAA,KAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAJF,EAAIE,EAAA,GAAAJ,UAAAI,GAM/D,OAAOd,EAAKQ,QAAUA,OAAOO,KAAIC,MAAXR,OAAM,CAAMH,GAAOY,OAAKL,IAAQJ,OCvCzC,eAACU,EAASC,GACvB,IAEIC,EAFJC,EAAmCH,EAA3BI,IAAOC,EAAMF,EAANE,OAAQC,EAAKH,EAALG,MAGvB,GAAIC,OAAOC,MACTN,EAAUO,QACL,CAGL,IAAIC,EA4LAC,EA3LAC,EAAe,GACbC,EAAmB,SAACC,GAAoB,QAAAC,EAAAvB,UAAAC,OAATC,EAAI,IAAAC,MAAAoB,EAAA,EAAAA,EAAA,KAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJtB,EAAIsB,EAAA,GAAAxB,UAAAwB,GACzB,IAAAC,EAAd,GAAIP,EACF,OAAOO,EAAAP,GAASI,GAAOhB,MAAAmB,EAAIvB,GAG7BkB,EAAaM,KAAK,CAACJ,GAAMf,OAAKL,KAGX,mBAAVyB,MAETjB,EAAU,IAAIiB,MAAM,GAAI,CACtBC,IAAG,SAAEC,EAAQnC,GACX,OAAO,mBAAAK,EAAAC,UAAAC,OAAIC,EAAI,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAJF,EAAIE,GAAAJ,UAAAI,GAAA,OAAKiB,EAAgBf,WAAC,EAAD,CAACZ,GAAGa,OAAKL,SAIjDQ,EAAU,GACV,CACE,UACA,WACA,aACA,6BACA,gCACA,iCACA,qCACA,yCACA,+DACA,sBACA,uBACA,kCACA,qCACA,8CACA,4BACA,yCACA,wBACA,uCACA,aACA,sBACA,8BACA,gCACA,iCACA,+BACA,qCACA,sBACA,gCACA,0BACA,iCACA,0BACA,kBACA,uBACA,mCACA,aACA,eACA,iBACA,qBACA,6BACA,gCACA,kCACA,4BACA,gBACA,gBACA,eACA,cACA,aACA,YACA,YACA,cACA,YACA,eACA,YACA,gBACA,gBACA,6BACA,sBACA,aACA,YACA,qBACA,qBACA,wBACA,oBACA,oBACA,uBACA,wBACA,+BACA,uBACA,uBACA,wBACA,wBACA,2BACA,aACA,2BACA,4BACA,8BACA,+BACA,oCACA,mBACA,mBACA,wBACA,sBACA,iBACA,eACA,gBACA,mBACA,YACA,qBACA,iBACA,qBACA,wBACA,iBACA,sBACA,kBACA,kBACA,aACA,mBACA,YACA,gBACA,gBACA,0BACA,0BACA,0BACA,2BACA,wCACA,kBACA,oBACA,iBACA,oBACA,wBACA,uBACA,6BACA,2BACA,6BACA,gBACA,gBACA,sBACA,6BACA,cACA,qBACA,wBACA,6BACA,uBACA,wBACA,YACA,eACA,sBACA,YACA,YACA,yBACA,gBACA,6BACA,iCACA,yBACA,oCACA,0BACA,8BACA,4BACA,aACA,kBACA,mBACA,oBACA,mBACA,sBACA,qBACA,sBACA,2BACA,eACA,OACA,sBACA,0BACA,eACA,oBACA,uBACA,uBACA,iBACA,kBACA,uBACA,qBACA,iBACA,aACA,oBACAoB,SAAQ,SAACR,GAETZ,EAAQY,GAAU,mBAAAS,EAAA/B,UAAAC,OAAIC,EAAI,IAAAC,MAAA4B,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAJ9B,EAAI8B,GAAAhC,UAAAgC,GAAA,OAAKX,EAAgBf,WAAC,EAAD,CAACgB,GAAMf,OAAKL,SAM/D+B,OAAOC,eAAenB,OAAQ,QAAS,CACrCoB,cAAc,EACdC,YAAY,EACZR,IAAG,WACD,OAAOT,GAETkB,IAAG,SAAEC,GACHnB,EAAemB,EACfpB,EAAWD,EAAcG,GACzBA,OAAevB,KAMrBW,EAAQ+B,QAAU7B,EAClBD,EAAO,SAAUC,GAGjB,IAAM8B,EAAUzB,OAAO0B,SAASC,UACU,MAAvC3B,OAAO0B,SAASC,SAASC,OAAO,GAAa,GAAK,KACnD,KACA5B,OAAO0B,SAASG,KAChB/B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","file":"cb9178e.js","sourcesContent":["\nexport function debug (msg) {\n console.debug(`[nuxt-matomo] ${msg}`)\n}\n\nexport function warn (msg) {\n console.warn(`[nuxt-matomo] ${msg}`)\n}\n\nexport function isFn (fn) {\n return typeof fn === 'function'\n}\n\nexport function waitFor (time) {\n return new Promise(resolve => setTimeout(resolve, time || 0))\n}\n\nexport async function waitUntil (condition, timeout = 10000, interval = 10) {\n let duration = 0\n while (!(isFn(condition) ? condition() : condition)) {\n await waitFor(interval)\n duration += interval\n\n if (duration >= timeout) {\n break\n }\n }\n}\n\nexport function routeOption (key, thisArg, from, to, ...args) {\n const matched = to.matched[0]\n const matchedComponent = matched.components.default\n return componentOption(matchedComponent, key, thisArg, from, to, ...args)\n}\n\nexport function componentOption (component, key, thisArg, ...args) {\n if (!component || !component.options || component.options[key] === undefined) {\n return null\n }\n\n const option = component.options[key]\n return isFn(option) ? option.call(thisArg, ...args) : option\n}\n","import { debug, warn, isFn, waitUntil, routeOption } from './utils'\n\nexport default (context, inject) => {\n const { app: { router, store } } = context\n\n let tracker\n if (window.Piwik) {\n tracker = createTracker()\n } else {\n // if window.Piwik is not (yet) available, add a Proxy which delays calls\n // to the tracker and execute them once the Piwik tracker becomes available\n let _tracker // The real Piwik tracker\n let delayedCalls = []\n const proxyTrackerCall = (fnName, ...args) => {\n if (_tracker) {\n return _tracker[fnName](...args)\n }\n\n delayedCalls.push([fnName, ...args])\n }\n\n if (typeof Proxy === 'function') {\n // Create a Proxy for any tracker property (IE11+)\n tracker = new Proxy({}, {\n get (target, key) {\n return (...args) => proxyTrackerCall(key, ...args)\n }\n })\n } else {\n tracker = {};\n [\n 'getHook',\n 'getQuery',\n 'getContent',\n 'isUsingAlwaysUseSendBeacon',\n 'buildContentImpressionRequest',\n 'buildContentInteractionRequest',\n 'buildContentInteractionRequestNode',\n 'getContentImpressionsRequestsFromNodes',\n 'getCurrentlyVisibleContentImpressionsRequestsIfNotTrackedYet',\n 'trackCallbackOnLoad',\n 'trackCallbackOnReady',\n 'buildContentImpressionsRequests',\n 'wasContentImpressionAlreadyTracked',\n 'appendContentInteractionToRequestIfPossible',\n 'setupInteractionsTracking',\n 'trackContentImpressionClickInteraction',\n 'internalIsNodeVisible',\n 'isNodeAuthorizedToTriggerInteraction',\n 'getDomains',\n 'getConfigIdPageView',\n 'getConfigDownloadExtensions',\n 'enableTrackOnlyVisibleContent',\n 'clearTrackedContentImpressions',\n 'getTrackedContentImpressions',\n 'clearEnableTrackOnlyVisibleContent',\n 'disableLinkTracking',\n 'getConfigVisitorCookieTimeout',\n 'getConfigCookieSameSite',\n 'removeAllAsyncTrackersButFirst',\n 'getConsentRequestsQueue',\n 'getRequestQueue',\n 'unsetPageIsUnloading',\n 'getRemainingVisitorCookieTimeout',\n 'hasConsent',\n 'getVisitorId',\n 'getVisitorInfo',\n 'getAttributionInfo',\n 'getAttributionCampaignName',\n 'getAttributionCampaignKeyword',\n 'getAttributionReferrerTimestamp',\n 'getAttributionReferrerUrl',\n 'setTrackerUrl',\n 'getTrackerUrl',\n 'getMatomoUrl',\n 'getPiwikUrl',\n 'addTracker',\n 'getSiteId',\n 'setSiteId',\n 'resetUserId',\n 'setUserId',\n 'setVisitorId',\n 'getUserId',\n 'setCustomData',\n 'getCustomData',\n 'setCustomRequestProcessing',\n 'appendToTrackingUrl',\n 'getRequest',\n 'addPlugin',\n 'setCustomDimension',\n 'getCustomDimension',\n 'deleteCustomDimension',\n 'setCustomVariable',\n 'getCustomVariable',\n 'deleteCustomVariable',\n 'deleteCustomVariables',\n 'storeCustomVariablesInCookie',\n 'setLinkTrackingTimer',\n 'getLinkTrackingTimer',\n 'setDownloadExtensions',\n 'addDownloadExtensions',\n 'removeDownloadExtensions',\n 'setDomains',\n 'enableCrossDomainLinking',\n 'disableCrossDomainLinking',\n 'isCrossDomainLinkingEnabled',\n 'setCrossDomainLinkingTimeout',\n 'getCrossDomainLinkingUrlParameter',\n 'setIgnoreClasses',\n 'setRequestMethod',\n 'setRequestContentType',\n 'setGenerationTimeMs',\n 'setReferrerUrl',\n 'setCustomUrl',\n 'getCurrentUrl',\n 'setDocumentTitle',\n 'setAPIUrl',\n 'setDownloadClasses',\n 'setLinkClasses',\n 'setCampaignNameKey',\n 'setCampaignKeywordKey',\n 'discardHashTag',\n 'setCookieNamePrefix',\n 'setCookieDomain',\n 'getCookieDomain',\n 'hasCookies',\n 'setSessionCookie',\n 'getCookie',\n 'setCookiePath',\n 'getCookiePath',\n 'setVisitorCookieTimeout',\n 'setSessionCookieTimeout',\n 'getSessionCookieTimeout',\n 'setReferralCookieTimeout',\n 'setConversionAttributionFirstReferrer',\n 'setSecureCookie',\n 'setCookieSameSite',\n 'disableCookies',\n 'areCookiesEnabled',\n 'setCookieConsentGiven',\n 'requireCookieConsent',\n 'getRememberedCookieConsent',\n 'forgetCookieConsentGiven',\n 'rememberCookieConsentGiven',\n 'deleteCookies',\n 'setDoNotTrack',\n 'alwaysUseSendBeacon',\n 'disableAlwaysUseSendBeacon',\n 'addListener',\n 'enableLinkTracking',\n 'enableJSErrorTracking',\n 'disablePerformanceTracking',\n 'enableHeartBeatTimer',\n 'disableHeartBeatTimer',\n 'killFrame',\n 'redirectFile',\n 'setCountPreRendered',\n 'trackGoal',\n 'trackLink',\n 'getNumTrackedPageViews',\n 'trackPageView',\n 'trackAllContentImpressions',\n 'trackVisibleContentImpressions',\n 'trackContentImpression',\n 'trackContentImpressionsWithinNode',\n 'trackContentInteraction',\n 'trackContentInteractionNode',\n 'logAllContentBlocksOnPage',\n 'trackEvent',\n 'trackSiteSearch',\n 'setEcommerceView',\n 'getEcommerceItems',\n 'addEcommerceItem',\n 'removeEcommerceItem',\n 'clearEcommerceCart',\n 'trackEcommerceOrder',\n 'trackEcommerceCartUpdate',\n 'trackRequest',\n 'ping',\n 'disableQueueRequest',\n 'setRequestQueueInterval',\n 'queueRequest',\n 'isConsentRequired',\n 'getRememberedConsent',\n 'hasRememberedConsent',\n 'requireConsent',\n 'setConsentGiven',\n 'rememberConsentGiven',\n 'forgetConsentGiven',\n 'isUserOptedOut',\n 'optUserOut',\n 'forgetUserOptOut'\n ].forEach((fnName) => {\n // IE9/10 dont support Proxies, create a proxy map for known api methods\n tracker[fnName] = (...args) => proxyTrackerCall(fnName, ...args)\n })\n }\n\n // Use a getter/setter to know when window.Piwik becomes available\n let _windowPiwik\n Object.defineProperty(window, 'Piwik', {\n configurable: true,\n enumerable: true,\n get () {\n return _windowPiwik\n },\n set (newVal) {\n _windowPiwik = newVal\n _tracker = createTracker(delayedCalls)\n delayedCalls = undefined\n }\n })\n }\n\n // inject tracker into app & context\n context.$matomo = tracker\n inject('matomo', tracker)\n\n // define base url\n const baseUrl = window.location.protocol +\n (window.location.protocol.slice(-1) === ':' ? '' : ':') +\n '//' +\n window.location.host +\n router.options.base.replace(/\\/+$/, '')\n\n const trackRoute = ({ to, componentOption }) => {\n // we might not know the to's page title in vue-router.afterEach, DOM is updated _after_ afterEach\n tracker.setDocumentTitle(to.path)\n\n tracker.setCustomUrl(baseUrl + to.fullPath)\n\n // allow override page settings\n const settings = Object.assign(\n {},\n context.route.meta && context.route.meta.matomo,\n componentOption\n )\n\n for (const key in settings) {\n const setting = settings[key]\n const fn = setting.shift()\n if (isFn(tracker[fn])) {\n tracker[fn].call(null, ...setting)\n }\n }\n\n // tell Matomo to add a page view (doesnt do anything if tracker is disabled)\n tracker.trackPageView()\n }\n\n // every time the route changes (fired on initialization too)\n router.afterEach((to, from) => {\n const componentOption = routeOption('matomo', tracker, from, to, store)\n if (componentOption === false) {\n return\n }\n\n trackRoute({ to, componentOption })\n })\n}\n\nfunction createTracker (delayedCalls = []) {\n if (!window.Piwik) {\n return\n }\n\n const tracker = window.Piwik.getTracker('https://analytics.explore-life.com/matomo.php', '7')\n\n // extend tracker\n tracker.setConsent = (val) => {\n if (val || val === undefined) {\n tracker.setConsentGiven()\n } else {\n tracker.forgetConsentGiven()\n }\n }\n\n while (delayedCalls.length) {\n const [fnName, ...args] = delayedCalls.shift()\n if (isFn(tracker[fnName])) {\n tracker[fnName](...args)\n }\n }\n\n return tracker\n}\n","import defu from 'defu'\nimport destr from 'destr'\nimport KY from 'ky'\n\nclass HTTP {\n constructor(defaults, ky = KY) {\n this._defaults = {\n hooks: {},\n ...defaults\n }\n\n this._ky = ky\n }\n\n getBaseURL () {\n return this._defaults.prefixUrl\n }\n\n setBaseURL (baseURL) {\n this._defaults.prefixUrl = baseURL\n }\n\n setHeader(name, value) {\n if (!value) {\n delete this._defaults.headers[name];\n } else {\n this._defaults.headers[name] = value\n }\n }\n\n setToken(token, type) {\n const value = !token ? null : (type ? type + ' ' : '') + token\n this.setHeader('Authorization', value)\n }\n\n _hook(name, fn) {\n if (!this._defaults.hooks[name]) {\n this._defaults.hooks[name] = []\n }\n this._defaults.hooks[name].push(fn)\n }\n\n onRequest(fn) {\n this._hook('beforeRequest', fn)\n }\n\n onRetry(fn) {\n this._hook('beforeRetry', fn)\n }\n\n onResponse(fn) {\n this._hook('afterResponse', fn)\n }\n\n onError(fn) {\n this._hook('onError', fn)\n }\n\n create(options) {\n const { retry, timeout, prefixUrl, headers } = this._defaults\n\n return createHttpInstance(defu(options, { retry, timeout, prefixUrl, headers }))\n }\n}\n\nfor (let method of ['get', 'head', 'delete', 'post', 'put', 'patch']) {\n const hasBody = ['post', 'put', 'patch'].includes(method)\n\n HTTP.prototype[method] = async function (url, arg1, arg2) {\n let options\n\n if (!hasBody) {\n options = arg1\n } else {\n options = arg2 || {}\n if (arg1 !== undefined) {\n if (arg1.constructor === Object || Array.isArray(arg1)) {\n options.json = arg1\n } else {\n options.body = arg1\n }\n }\n }\n\n const _options = { ...this._defaults, ...options }\n\n if (/^https?/.test(url)) {\n delete _options.prefixUrl\n } else if (_options.prefixUrl && typeof url === 'string' && url.startsWith('/')) {\n // Prevents `ky` from throwing \"`input` must not begin with a slash when using `prefixUrl`\"\n url = url.substr(1)\n }\n\n try {\n const response = await this._ky[method](url, _options)\n return response\n } catch (error) {\n // Try to fill error with useful data\n if (error.response) {\n error.statusCode = error.response.status\n try {\n const text = await error.response.text()\n error.response.text = () => Promise.resolve(text)\n const json = destr(text)\n error.response.json = () => Promise.resolve(json)\n error.response.data = json\n } catch (_) { }\n }\n\n // Call onError hook\n if (_options.hooks.onError) {\n for (const fn of _options.hooks.onError) {\n const res = fn(error)\n if (res !== undefined) {\n return res\n }\n }\n }\n\n // Throw error\n throw error\n }\n }\n\n HTTP.prototype['$' + method] = function (url, arg1, arg2) {\n return this[method](url, arg1, arg2)\n .then(response => (response && response.text) ? response.text() : response)\n .then(body => destr(body))\n }\n}\n\nconst createHttpInstance = options => {\n // Create new HTTP instance\n const http = new HTTP(options)\n\n // Setup interceptors\n\n return http\n}\n\nexport default (ctx, inject) => {\n // runtimeConfig\n const runtimeConfig = ctx.$config && ctx.$config.http || {}\n\n // prefixUrl\n const prefixUrl = process.browser\n ? (runtimeConfig.browserBaseURL || 'http://localhost:3000/')\n : (runtimeConfig.baseURL || process.env._HTTP_BASE_URL_ || 'http://localhost:3000/')\n\n const headers = {}\n\n // Defaults\n const defaults = {\n retry: 0,\n timeout: process.server ? false : false,\n prefixUrl,\n headers\n }\n\n // Proxy SSR request headers headers\n if (process.server && ctx.req && ctx.req.headers) {\n const reqHeaders = { ...ctx.req.headers }\n for (let h of [\"accept\",\"host\",\"cf-ray\",\"cf-connecting-ip\",\"content-length\",\"content-md5\",\"content-type\"]) {\n delete reqHeaders[h]\n }\n defaults.headers = { ...reqHeaders, ...defaults.headers }\n }\n\n if (process.server) {\n // Don't accept brotli encoding because Node can't parse it\n defaults.headers['accept-encoding'] = 'gzip, deflate'\n }\n\n const http = createHttpInstance(defaults)\n\n // Inject http to the context as $http\n ctx.$http = http\n inject('http', http)\n}\n","\n\nexport const Constants = {\n COMPONENT_OPTIONS_KEY: \"nuxtI18n\",\n STRATEGIES: {\"PREFIX\":\"prefix\",\"PREFIX_EXCEPT_DEFAULT\":\"prefix_except_default\",\"PREFIX_AND_DEFAULT\":\"prefix_and_default\",\"NO_PREFIX\":\"no_prefix\"},\n REDIRECT_ON_OPTIONS: {\"ALL\":\"all\",\"ROOT\":\"root\",\"NO_PREFIX\":\"no prefix\"},\n}\nexport const nuxtOptions = {\n isUniversalMode: false,\n trailingSlash: undefined,\n}\nexport const options = {\n vueI18n: {},\n vueI18nLoader: false,\n locales: [{\"code\":\"it_it\",\"iso\":\"it-it\",\"languageCode\":\"it\"},{\"code\":\"pl\",\"iso\":\"pl\",\"languageCode\":\"pl\"},{\"code\":\"pt_br\",\"iso\":\"pt-br\",\"languageCode\":\"pt\"},{\"code\":\"es_es\",\"iso\":\"es-es\",\"languageCode\":\"es\"},{\"code\":\"cs\",\"iso\":\"cs\",\"languageCode\":\"cs\"},{\"code\":\"sk\",\"iso\":\"sk\",\"languageCode\":\"sk\"},{\"code\":\"sl\",\"iso\":\"sl\",\"languageCode\":\"sl\"},{\"code\":\"en\",\"iso\":\"en\",\"languageCode\":\"en\"},{\"code\":\"de\",\"iso\":\"de\",\"languageCode\":\"de\"},{\"code\":\"en_gb\",\"iso\":\"en-gb\",\"languageCode\":\"en\"},{\"code\":\"en_in\",\"iso\":\"en-in\",\"languageCode\":\"en\"},{\"code\":\"da\",\"iso\":\"da\",\"languageCode\":\"da\"},{\"code\":\"sv\",\"iso\":\"sv\",\"languageCode\":\"sv\"},{\"code\":\"en_au\",\"iso\":\"en-au\",\"languageCode\":\"en\"},{\"code\":\"nl\",\"iso\":\"nl\",\"languageCode\":\"nl\"},{\"code\":\"no\",\"iso\":\"no\",\"languageCode\":\"no\"},{\"code\":\"ar\",\"iso\":\"ar\",\"languageCode\":\"ar\"},{\"code\":\"el_gr\",\"iso\":\"el-gr\",\"languageCode\":\"el\"},{\"code\":\"fr\",\"iso\":\"fr\",\"languageCode\":\"fr\"},{\"code\":\"id\",\"iso\":\"id\",\"languageCode\":\"id\"}],\n defaultLocale: \"en\",\n defaultDirection: \"ltr\",\n routesNameSeparator: \"___\",\n defaultLocaleRouteNameSuffix: \"default\",\n sortRoutes: true,\n strategy: \"prefix\",\n lazy: false,\n langDir: null,\n rootRedirect: null,\n detectBrowserLanguage: {\"alwaysRedirect\":false,\"cookieCrossOrigin\":false,\"cookieDomain\":null,\"cookieKey\":\"i18n_redirected\",\"cookieSecure\":false,\"fallbackLocale\":\"\",\"redirectOn\":\"root\",\"useCookie\":true},\n differentDomains: false,\n baseUrl: \"https://hearpeers.medel.com\",\n vuex: {\"moduleName\":\"i18n\",\"syncRouteParams\":true},\n parsePages: true,\n pages: {},\n skipSettingLocaleOnNavigate: false,\n onBeforeLanguageSwitch: () => {},\n onLanguageSwitched: () => null,\n normalizedLocales: [{\"code\":\"it_it\",\"iso\":\"it-it\",\"languageCode\":\"it\"},{\"code\":\"pl\",\"iso\":\"pl\",\"languageCode\":\"pl\"},{\"code\":\"pt_br\",\"iso\":\"pt-br\",\"languageCode\":\"pt\"},{\"code\":\"es_es\",\"iso\":\"es-es\",\"languageCode\":\"es\"},{\"code\":\"cs\",\"iso\":\"cs\",\"languageCode\":\"cs\"},{\"code\":\"sk\",\"iso\":\"sk\",\"languageCode\":\"sk\"},{\"code\":\"sl\",\"iso\":\"sl\",\"languageCode\":\"sl\"},{\"code\":\"en\",\"iso\":\"en\",\"languageCode\":\"en\"},{\"code\":\"de\",\"iso\":\"de\",\"languageCode\":\"de\"},{\"code\":\"en_gb\",\"iso\":\"en-gb\",\"languageCode\":\"en\"},{\"code\":\"en_in\",\"iso\":\"en-in\",\"languageCode\":\"en\"},{\"code\":\"da\",\"iso\":\"da\",\"languageCode\":\"da\"},{\"code\":\"sv\",\"iso\":\"sv\",\"languageCode\":\"sv\"},{\"code\":\"en_au\",\"iso\":\"en-au\",\"languageCode\":\"en\"},{\"code\":\"nl\",\"iso\":\"nl\",\"languageCode\":\"nl\"},{\"code\":\"no\",\"iso\":\"no\",\"languageCode\":\"no\"},{\"code\":\"ar\",\"iso\":\"ar\",\"languageCode\":\"ar\"},{\"code\":\"el_gr\",\"iso\":\"el-gr\",\"languageCode\":\"el\"},{\"code\":\"fr\",\"iso\":\"fr\",\"languageCode\":\"fr\"},{\"code\":\"id\",\"iso\":\"id\",\"languageCode\":\"id\"}],\n localeCodes: [\"it_it\",\"pl\",\"pt_br\",\"es_es\",\"cs\",\"sk\",\"sl\",\"en\",\"de\",\"en_gb\",\"en_in\",\"da\",\"sv\",\"en_au\",\"nl\",\"no\",\"ar\",\"el_gr\",\"fr\",\"id\"],\n additionalMessages: [],\n}\n\nexport const localeMessages = {}\n","import { parse as cookieParse, serialize as cookieSerialize } from 'cookie'\nimport JsCookie from 'js-cookie'\n\n/** @typedef {import('../../types/internal').ResolvedOptions} ResolvedOptions */\n\n/**\n * Formats a log message, prefixing module's name to it.\n *\n * @param {string} text\n * @return {string}\n */\nexport function formatMessage (text) {\n return `[@nuxtjs/i18n] ${text}`\n}\n\n/**\n * Parses locales provided from browser through `accept-language` header.\n *\n * @param {string} input\n * @return {string[]} An array of locale codes. Priority determined by order in array.\n */\nexport function parseAcceptLanguage (input) {\n // Example input: en-US,en;q=0.9,nb;q=0.8,no;q=0.7\n // Contains tags separated by comma.\n // Each tag consists of locale code (2-3 letter language code) and optionally country code\n // after dash. Tag can also contain score after semicolon, that is assumed to match order\n // so it's not explicitly used.\n return input.split(',').map(tag => tag.split(';')[0])\n}\n\n/**\n * Find locale code that best matches provided list of browser locales.\n *\n * @param {ResolvedOptions['normalizedLocales']} appLocales The user-configured locales that are to be matched.\n * @param {readonly string[]} browserLocales The locales to match against configured.\n * @return {string | undefined}\n */\nexport function matchBrowserLocale (appLocales, browserLocales) {\n /** @type {{ code: string, score: number }[]} */\n const matchedLocales = []\n\n // Normalise appLocales input\n /** @type {{ code: string, iso: string }[]} */\n const normalizedAppLocales = []\n for (const appLocale of appLocales) {\n const { code } = appLocale\n const iso = appLocale.iso || code\n normalizedAppLocales.push({ code, iso })\n }\n\n // First pass: match exact locale.\n for (const [index, browserCode] of browserLocales.entries()) {\n const matchedLocale = normalizedAppLocales.find(appLocale => appLocale.iso.toLowerCase() === browserCode.toLowerCase())\n if (matchedLocale) {\n matchedLocales.push({ code: matchedLocale.code, score: 1 - index / browserLocales.length })\n break\n }\n }\n\n // Second pass: match only locale code part of the browser locale (not including country).\n for (const [index, browserCode] of browserLocales.entries()) {\n const languageCode = browserCode.split('-')[0].toLowerCase()\n const matchedLocale = normalizedAppLocales.find(appLocale => appLocale.iso.split('-')[0].toLowerCase() === languageCode)\n if (matchedLocale) {\n // Deduct a thousandth for being non-exact match.\n matchedLocales.push({ code: matchedLocale.code, score: 0.999 - index / browserLocales.length })\n break\n }\n }\n\n // Sort the list by score (0 - lowest, 1 - highest).\n if (matchedLocales.length > 1) {\n matchedLocales.sort((localeA, localeB) => {\n if (localeA.score === localeB.score) {\n // If scores are equal then pick more specific (longer) code.\n return localeB.code.length - localeA.code.length\n }\n\n return localeB.score - localeA.score\n })\n }\n\n return matchedLocales.length ? matchedLocales[0].code : undefined\n}\n\n/**\n * Get locale code that corresponds to current hostname\n *\n * @param {ResolvedOptions['normalizedLocales']} locales\n * @param {import('http').IncomingMessage | undefined} req\n * @return {string} Locale code found if any\n */\nexport function getLocaleDomain (locales, req) {\n /** @type {string | undefined} */\n let host\n\n if (process.client) {\n host = window.location.host\n } else if (req) {\n const detectedHost = req.headers['x-forwarded-host'] || req.headers.host\n host = Array.isArray(detectedHost) ? detectedHost[0] : detectedHost\n }\n\n if (host) {\n const matchingLocale = locales.find(l => l.domain === host)\n if (matchingLocale) {\n return matchingLocale.code\n }\n }\n\n return ''\n}\n\n/**\n * Creates a RegExp for route paths\n *\n * @param {readonly string[]} localeCodes\n * @return {RegExp}\n */\nexport function getLocalesRegex (localeCodes) {\n return new RegExp(`^/(${localeCodes.join('|')})(?:/|$)`)\n}\n\n/**\n * Creates getter for getLocaleFromRoute\n *\n * @param {readonly string[]} localeCodes\n * @param {Pick<ResolvedOptions, 'routesNameSeparator' | 'defaultLocaleRouteNameSuffix'>} options\n */\nexport function createLocaleFromRouteGetter (localeCodes, { routesNameSeparator, defaultLocaleRouteNameSuffix }) {\n const localesPattern = `(${localeCodes.join('|')})`\n const defaultSuffixPattern = `(?:${routesNameSeparator}${defaultLocaleRouteNameSuffix})?`\n const regexpName = new RegExp(`${routesNameSeparator}${localesPattern}${defaultSuffixPattern}$`)\n const regexpPath = getLocalesRegex(localeCodes)\n /**\n * Extract locale code from given route:\n * - If route has a name, try to extract locale from it\n * - Otherwise, fall back to using the routes'path\n * @param {import('vue-router').Route} route\n * @return {string} Locale code found if any\n */\n const getLocaleFromRoute = route => {\n // Extract from route name\n if (route.name) {\n const matches = route.name.match(regexpName)\n if (matches && matches.length > 1) {\n return matches[1]\n }\n } else if (route.path) {\n // Extract from path\n const matches = route.path.match(regexpPath)\n if (matches && matches.length > 1) {\n return matches[1]\n }\n }\n\n return ''\n }\n\n return getLocaleFromRoute\n}\n\n/**\n * @param {import('http').IncomingMessage | undefined} req\n * @param {{ useCookie: boolean, cookieKey: string, localeCodes: readonly string[] }} options\n * @return {string | undefined}\n */\nexport function getLocaleCookie (req, { useCookie, cookieKey, localeCodes }) {\n if (useCookie) {\n let localeCode\n\n if (process.client) {\n localeCode = JsCookie.get(cookieKey)\n } else if (req && typeof req.headers.cookie !== 'undefined') {\n const cookies = req.headers && req.headers.cookie ? cookieParse(req.headers.cookie) : {}\n localeCode = cookies[cookieKey]\n }\n\n if (localeCode && localeCodes.includes(localeCode)) {\n return localeCode\n }\n }\n}\n\n/**\n * @param {string} locale\n * @param {import('http').ServerResponse | undefined} res\n * @param {{ useCookie: boolean, cookieDomain: string | null, cookieKey: string, cookieSecure: boolean, cookieCrossOrigin: boolean}} options\n */\nexport function setLocaleCookie (locale, res, { useCookie, cookieDomain, cookieKey, cookieSecure, cookieCrossOrigin }) {\n if (!useCookie) {\n return\n }\n const date = new Date()\n /** @type {import('cookie').CookieSerializeOptions} */\n const cookieOptions = {\n expires: new Date(date.setDate(date.getDate() + 365)),\n path: '/',\n sameSite: cookieCrossOrigin ? 'none' : 'lax',\n secure: cookieCrossOrigin || cookieSecure\n }\n\n if (cookieDomain) {\n cookieOptions.domain = cookieDomain\n }\n\n if (process.client) {\n // @ts-ignore\n JsCookie.set(cookieKey, locale, cookieOptions)\n } else if (res) {\n let headers = res.getHeader('Set-Cookie') || []\n if (!Array.isArray(headers)) {\n headers = [String(headers)]\n }\n\n const redirectCookie = cookieSerialize(cookieKey, locale, cookieOptions)\n headers = headers.filter(header => {\n const cookie = cookieParse(header)\n return !(cookieKey in cookie)\n })\n headers.push(redirectCookie)\n\n res.setHeader('Set-Cookie', headers)\n }\n}\n","import isHTTPS from 'is-https'\nimport { localeMessages, options } from './options'\nimport { formatMessage } from './utils-common'\n// @ts-ignore\nimport { hasProtocol } from '~i18n-ufo'\n\n/** @typedef {import('../../types/internal').ResolvedOptions} ResolvedOptions */\n\n/**\n * Asynchronously load messages from translation files\n *\n * @param {import('@nuxt/types').Context} context\n * @param {string} locale Language code to load\n * @return {Promise<void>}\n */\nexport async function loadLanguageAsync (context, locale) {\n const { app } = context\n const { i18n } = app\n\n if (!i18n.loadedLanguages) {\n i18n.loadedLanguages = []\n }\n\n if (!i18n.loadedLanguages.includes(locale)) {\n const localeObject = options.normalizedLocales.find(l => l.code === locale)\n if (localeObject) {\n const { file } = localeObject\n if (file) {\n /* */\n } else {\n console.warn(formatMessage(`Could not find lang file for locale ${locale}`))\n }\n } else {\n console.warn(formatMessage(`Attempted to load messages for non-existant locale code \"${locale}\"`))\n }\n }\n}\n\n/**\n * Resolves base URL value if provided as function. Otherwise just returns verbatim.\n *\n * @param {string | ((context: import('@nuxt/types').Context) => string)} baseUrl\n * @param {import('@nuxt/types').Context} context\n * @param {import('../../types').Locale} localeCode\n * @param {Pick<ResolvedOptions, 'differentDomains' | 'normalizedLocales'>} options\n * @return {string}\n */\nexport function resolveBaseUrl (baseUrl, context, localeCode, { differentDomains, normalizedLocales }) {\n if (typeof baseUrl === 'function') {\n return baseUrl(context)\n }\n\n if (differentDomains && localeCode) {\n // Lookup the `differentDomain` origin associated with given locale.\n const domain = getDomainFromLocale(localeCode, context.req, { normalizedLocales })\n if (domain) {\n return domain\n }\n }\n\n return baseUrl\n}\n\n/**\n * Gets the `differentDomain` domain from locale.\n *\n * @param {string} localeCode\n * @param {import('http').IncomingMessage | undefined} req\n * @param {Pick<ResolvedOptions, 'normalizedLocales'>} options\n * @return {string | undefined}\n */\nexport function getDomainFromLocale (localeCode, req, { normalizedLocales }) {\n// Lookup the `differentDomain` origin associated with given locale.\n const lang = normalizedLocales.find(locale => locale.code === localeCode)\n if (lang && lang.domain) {\n if (hasProtocol(lang.domain)) {\n return lang.domain\n }\n let protocol\n if (process.server) {\n protocol = (req && isHTTPS(req)) ? 'https' : 'http'\n } else {\n protocol = window.location.protocol.split(':')[0]\n }\n return `${protocol}://${lang.domain}`\n }\n\n // eslint-disable-next-line no-console\n console.warn(formatMessage(`Could not find domain name for locale ${localeCode}`))\n}\n\n/**\n * @param {import('vuex').Store<Record<string, boolean>>} store\n * @param {Required<import('../../types').VuexOptions>} vuex\n * @param {readonly string[]} localeCodes\n */\nexport function registerStore (store, vuex, localeCodes) {\n /** @typedef {{\n * locale?: string\n * messages?: Record<string, string>\n * routeParams?: Record<string, Record<string, string>>\n * }} ModuleStore\n *\n * @type {import('vuex').Module<ModuleStore, {}>}\n */\n const storeModule = {\n namespaced: true,\n state: () => ({\n ...(vuex.syncRouteParams ? { routeParams: {} } : {})\n }),\n actions: {\n ...(vuex.syncRouteParams\n ? {\n setRouteParams ({ commit }, params) {\n if (process.env.NODE_ENV === 'development') {\n validateRouteParams(params, localeCodes)\n }\n commit('setRouteParams', params)\n }\n }\n : {})\n },\n mutations: {\n ...(vuex.syncRouteParams\n ? {\n setRouteParams (state, params) {\n state.routeParams = params\n }\n }\n : {})\n },\n getters: {\n ...(vuex.syncRouteParams\n ? {\n localeRouteParams: ({ routeParams }) => {\n /** @type {(locale: string) => Record<string, string>} */\n const paramsGetter = locale => (routeParams && routeParams[locale]) || {}\n return paramsGetter\n }\n }\n : {})\n }\n }\n store.registerModule(vuex.moduleName, storeModule, { preserveState: !!store.state[vuex.moduleName] })\n}\n\n/**\n * Validate setRouteParams action's payload\n *\n * @param {object} routeParams The action's payload\n * @param {readonly string[]} localeCodes\n */\nexport function validateRouteParams (routeParams, localeCodes) {\n if (!isObject(routeParams)) {\n // eslint-disable-next-line no-console\n console.warn(formatMessage('Route params should be an object'))\n return\n }\n\n for (const [key, value] of Object.entries(routeParams)) {\n if (!localeCodes.includes(key)) {\n // eslint-disable-next-line no-console\n console.warn(formatMessage(`Trying to set route params for key ${key} which is not a valid locale`))\n } else if (!isObject(value)) {\n // eslint-disable-next-line no-console\n console.warn(formatMessage(`Trying to set route params for locale ${key} with a non-object value`))\n }\n }\n}\n\n/**\n * Merge external additional messages\n *\n * @param {import('../../types').NuxtI18nInstance} i18n\n * @param {ResolvedOptions['additionalMessages']} additionalMessages\n * @param {ResolvedOptions['localeCodes']} localeCodes\n * @param {string[] | null} [onlyLocales=null]\n * @return {void}\n */\nexport function mergeAdditionalMessages (i18n, additionalMessages, localeCodes, onlyLocales) {\n const locales = onlyLocales || localeCodes\n for (const additionalEntry of additionalMessages) {\n for (const locale of locales) {\n const existingMessages = i18n.getLocaleMessage(locale)\n i18n.mergeLocaleMessage(locale, additionalEntry[locale])\n i18n.mergeLocaleMessage(locale, existingMessages)\n }\n }\n}\n\n/**\n * @param {any} value\n * @return {boolean}\n */\nfunction isObject (value) {\n return value && !Array.isArray(value) && typeof value === 'object'\n}\n","// @ts-ignore\nimport nuxtMiddleware from '../middleware'\n\n/** @type {import('@nuxt/types').Middleware} */\nconst i18nMiddleware = async (context) => {\n const { app, isHMR } = context\n\n if (isHMR) {\n return\n }\n\n const [status, redirectPath, preserveQuery] = await app.i18n.__onNavigate(context.route)\n if (status && redirectPath) {\n const query = preserveQuery ? context.route.query : undefined\n context.redirect(status, redirectPath, query)\n }\n}\n\nnuxtMiddleware.nuxti18n = i18nMiddleware\n","import './middleware'\nimport Vue from 'vue'\nimport { Constants, nuxtOptions, options } from './options'\nimport { getDomainFromLocale } from './plugin.utils'\n// @ts-ignore\nimport { withoutTrailingSlash, withTrailingSlash } from '~i18n-ufo'\n\n/**\n * @this {import('../../types/internal').PluginProxy}\n * @type {Vue['localePath']}\n */\nfunction localePath (route, locale) {\n const localizedRoute = resolveRoute.call(this, route, locale)\n return localizedRoute ? localizedRoute.route.redirectedFrom || localizedRoute.route.fullPath : ''\n}\n\n/**\n * @this {import('../../types/internal').PluginProxy}\n * @type {Vue['localeRoute']}\n */\nfunction localeRoute (route, locale) {\n const resolved = resolveRoute.call(this, route, locale)\n return resolved ? resolved.route : undefined\n}\n\n/**\n * @this {import('../../types/internal').PluginProxy}\n * @type {Vue['localeLocation']}\n */\nfunction localeLocation (route, locale) {\n const resolved = resolveRoute.call(this, route, locale)\n return resolved ? resolved.location : undefined\n}\n\n/**\n * @this {import('../../types/internal').PluginProxy}\n * @param {import('vue-router').RawLocation} route\n * @param {string} [locale]\n * @return {ReturnType<import('vue-router').default['resolve']> | undefined}\n */\nfunction resolveRoute (route, locale) {\n // Abort if no route or no locale\n if (!route) {\n return\n }\n\n const { i18n } = this\n\n locale = locale || i18n.locale\n\n if (!locale) {\n return\n }\n\n // If route parameter is a string, check if it's a path or name of route.\n if (typeof route === 'string') {\n if (route[0] === '/') {\n // If route parameter is a path, create route object with path.\n route = { path: route }\n } else {\n // Else use it as route name.\n route = { name: route }\n }\n }\n\n let localizedRoute = Object.assign({}, route)\n\n if (localizedRoute.path && !localizedRoute.name) {\n const resolvedRoute = this.router.resolve(localizedRoute).route\n const resolvedRouteName = this.getRouteBaseName(resolvedRoute)\n if (resolvedRouteName) {\n localizedRoute = {\n name: getLocaleRouteName(resolvedRouteName, locale),\n params: resolvedRoute.params,\n query: resolvedRoute.query,\n hash: resolvedRoute.hash\n }\n } else {\n const isDefaultLocale = locale === options.defaultLocale\n // if route has a path defined but no name, resolve full route using the path\n const isPrefixed =\n // don't prefix default locale\n !(isDefaultLocale && [Constants.STRATEGIES.PREFIX_EXCEPT_DEFAULT, Constants.STRATEGIES.PREFIX_AND_DEFAULT].includes(options.strategy)) &&\n // no prefix for any language\n !(options.strategy === Constants.STRATEGIES.NO_PREFIX) &&\n // no prefix for different domains\n !i18n.differentDomains\n if (isPrefixed) {\n localizedRoute.path = `/${locale}${localizedRoute.path}`\n }\n localizedRoute.path = nuxtOptions.trailingSlash ? withTrailingSlash(localizedRoute.path, true) : withoutTrailingSlash(localizedRoute.path, true)\n }\n } else {\n if (!localizedRoute.name && !localizedRoute.path) {\n localizedRoute.name = this.getRouteBaseName()\n }\n\n localizedRoute.name = getLocaleRouteName(localizedRoute.name, locale)\n\n const { params } = localizedRoute\n if (params && params['0'] === undefined && params.pathMatch) {\n params['0'] = params.pathMatch\n }\n }\n\n const resolvedRoute = this.router.resolve(localizedRoute)\n if (resolvedRoute.route.name) {\n return resolvedRoute\n }\n // If didn't resolve to an existing route then just return resolved route based on original input.\n return this.router.resolve(route)\n}\n\n/**\n * @this {import('../../types/internal').PluginProxy}\n * @type {Vue['switchLocalePath']}\n */\nfunction switchLocalePath (locale) {\n const name = this.getRouteBaseName()\n if (!name) {\n return ''\n }\n\n const { i18n, route, store } = this\n const { params, ...routeCopy } = route\n let langSwitchParams = {}\n if (options.vuex && options.vuex.syncRouteParams && store) {\n langSwitchParams = store.getters[`${options.vuex.moduleName}/localeRouteParams`](locale)\n }\n const baseRoute = Object.assign({}, routeCopy, {\n name,\n params: {\n ...params,\n ...langSwitchParams,\n 0: params.pathMatch\n }\n })\n let path = this.localePath(baseRoute, locale)\n\n // Handle different domains\n if (i18n.differentDomains) {\n const getDomainOptions = {\n differentDomains: i18n.differentDomains,\n normalizedLocales: options.normalizedLocales\n }\n const domain = getDomainFromLocale(locale, this.req, getDomainOptions)\n if (domain) {\n path = domain + path\n }\n }\n\n return path\n}\n\n/**\n * @this {import('../../types/internal').PluginProxy}\n * @type {Vue['getRouteBaseName']}\n */\nfunction getRouteBaseName (givenRoute) {\n const route = givenRoute !== undefined ? givenRoute : this.route\n if (!route || !route.name) {\n return\n }\n return route.name.split(options.routesNameSeparator)[0]\n}\n\n/**\n * @param {string | undefined} routeName\n * @param {string} locale\n */\nfunction getLocaleRouteName (routeName, locale) {\n let name = routeName + (options.strategy === Constants.STRATEGIES.NO_PREFIX ? '' : options.routesNameSeparator + locale)\n\n if (locale === options.defaultLocale && options.strategy === Constants.STRATEGIES.PREFIX_AND_DEFAULT) {\n name += options.routesNameSeparator + options.defaultLocaleRouteNameSuffix\n }\n\n return name\n}\n\n/**\n * @template {(...args: any[]) => any} T\n * @param {T} targetFunction\n * @return {(this: Vue, ...args: Parameters<T>) => ReturnType<T>}\n */\nconst VueInstanceProxy = function (targetFunction) {\n return function () {\n const proxy = {\n getRouteBaseName: this.getRouteBaseName,\n i18n: this.$i18n,\n localePath: this.localePath,\n localeRoute: this.localeRoute,\n localeLocation: this.localeLocation,\n // @ts-ignore\n req: process.server ? this.$root.context?.req || this.$ssrContext?.req : null,\n route: this.$route,\n router: this.$router,\n store: this.$store\n }\n\n return targetFunction.call(proxy, ...arguments)\n }\n}\n\n/**\n * @template {(...args: any[]) => any} T\n * @param {import('@nuxt/types').Context} context\n * @param {T} targetFunction\n * @return {(...args: Parameters<T>) => ReturnType<T>}\n */\nconst NuxtContextProxy = function (context, targetFunction) {\n return function () {\n const { app, req, route, store } = context\n\n const proxy = {\n getRouteBaseName: app.getRouteBaseName,\n i18n: app.i18n,\n localePath: app.localePath,\n localeLocation: app.localeLocation,\n localeRoute: app.localeRoute,\n req: process.server ? req : null,\n route,\n router: app.router,\n store\n }\n\n return targetFunction.call(proxy, ...arguments)\n }\n}\n\n/** @type {import('vue').PluginObject<void>} */\nconst plugin = {\n install (Vue) {\n Vue.mixin({\n methods: {\n localePath: VueInstanceProxy(localePath),\n localeRoute: VueInstanceProxy(localeRoute),\n localeLocation: VueInstanceProxy(localeLocation),\n switchLocalePath: VueInstanceProxy(switchLocalePath),\n getRouteBaseName: VueInstanceProxy(getRouteBaseName)\n }\n })\n }\n}\n\n/** @type {import('@nuxt/types').Plugin} */\nexport default (context) => {\n Vue.use(plugin)\n const { app, store } = context\n\n app.localePath = context.localePath = NuxtContextProxy(context, localePath)\n app.localeRoute = context.localeRoute = NuxtContextProxy(context, localeRoute)\n app.localeLocation = context.localeLocation = NuxtContextProxy(context, localeLocation)\n app.switchLocalePath = context.switchLocalePath = NuxtContextProxy(context, switchLocalePath)\n app.getRouteBaseName = context.getRouteBaseName = NuxtContextProxy(context, getRouteBaseName)\n\n if (store) {\n store.localePath = app.localePath\n store.localeRoute = app.localeRoute\n store.localeLocation = app.localeLocation\n store.switchLocalePath = app.switchLocalePath\n store.getRouteBaseName = app.getRouteBaseName\n }\n}\n","import VueMeta from 'vue-meta'\nimport { Constants, options } from './options'\nimport { formatMessage } from './utils-common'\n\n/**\n * @this {import('vue/types/vue').Vue}\n * @param {import('../../types/vue').NuxtI18nHeadOptions} options\n * @return {import('vue-meta').MetaInfo}\n */\nexport function nuxtI18nHead ({ addDirAttribute = false, addSeoAttributes = false } = {}) {\n // Can happen when using from a global mixin.\n if (!this.$i18n) {\n return {}\n }\n\n /** @type {import('../../types/vue').NuxtI18nMeta} */\n const metaObject = {\n htmlAttrs: {},\n link: [],\n meta: []\n }\n\n const currentLocale = this.$i18n.localeProperties\n const currentLocaleIso = currentLocale.iso\n const currentLocaleDir = currentLocale.dir || options.defaultDirection\n\n /**\n * Adding Direction Attribute:\n */\n if (addDirAttribute) {\n metaObject.htmlAttrs.dir = currentLocaleDir\n }\n\n /**\n * Adding SEO Meta:\n */\n if (\n addSeoAttributes &&\n // @ts-ignore\n (VueMeta.hasMetaInfo ? VueMeta.hasMetaInfo(this) : this._hasMetaInfo) &&\n this.$i18n.locale &&\n this.$i18n.locales\n ) {\n if (currentLocaleIso) {\n metaObject.htmlAttrs.lang = currentLocaleIso // TODO: simple lang or \"specific\" lang with territory?\n }\n\n const locales = /** @type {import('../../types').LocaleObject[]} */(this.$i18n.locales)\n\n addHreflangLinks.bind(this)(locales, this.$i18n.__baseUrl, metaObject.link)\n addCanonicalLinks.bind(this)(this.$i18n.__baseUrl, metaObject.link, addSeoAttributes)\n addCurrentOgLocale.bind(this)(currentLocale, currentLocaleIso, metaObject.meta)\n addAlternateOgLocales.bind(this)(locales, currentLocaleIso, metaObject.meta)\n }\n\n /**\n * Internals:\n */\n\n /**\n * @this {import('vue/types/vue').Vue}\n *\n * @param {import('../../types').LocaleObject[]} locales\n * @param {string} baseUrl\n * @param {import('../../types/vue').NuxtI18nMeta['link']} link\n */\n function addHreflangLinks (locales, baseUrl, link) {\n if (options.strategy === Constants.STRATEGIES.NO_PREFIX) {\n return\n }\n /** @type {Map<string, import('../../types').LocaleObject>} */\n const localeMap = new Map()\n for (const locale of locales) {\n const localeIso = locale.iso\n\n if (!localeIso) {\n // eslint-disable-next-line no-console\n console.warn(formatMessage('Locale ISO code is required to generate alternate link'))\n continue\n }\n\n const [language, region] = localeIso.split('-')\n\n if (language && region && (locale.isCatchallLocale || !localeMap.has(language))) {\n localeMap.set(language, locale)\n }\n\n localeMap.set(localeIso, locale)\n }\n\n for (const [iso, mapLocale] of localeMap.entries()) {\n const localePath = this.switchLocalePath(mapLocale.code)\n if (localePath) {\n link.push({\n hid: `i18n-alt-${iso}`,\n rel: 'alternate',\n href: toAbsoluteUrl(localePath, baseUrl),\n hreflang: iso\n })\n }\n }\n\n if (options.defaultLocale) {\n const localePath = this.switchLocalePath(options.defaultLocale)\n if (localePath) {\n link.push({\n hid: 'i18n-xd',\n rel: 'alternate',\n href: toAbsoluteUrl(localePath, baseUrl),\n hreflang: 'x-default'\n })\n }\n }\n }\n\n /**\n * @this {import('vue/types/vue').Vue}\n *\n * @param {string} baseUrl\n * @param {import('../../types/vue').NuxtI18nMeta['link']} link\n * @param {NonNullable<import('../../types/vue').NuxtI18nHeadOptions['addSeoAttributes']>} seoAttributesOptions\n */\n function addCanonicalLinks (baseUrl, link, seoAttributesOptions) {\n const currentRoute = this.localeRoute({\n ...this.$route,\n name: this.getRouteBaseName()\n })\n\n if (currentRoute) {\n let href = toAbsoluteUrl(currentRoute.path, baseUrl)\n\n const canonicalQueries = (typeof (seoAttributesOptions) !== 'boolean' && seoAttributesOptions.canonicalQueries) || []\n\n if (canonicalQueries.length) {\n const currentRouteQueryParams = currentRoute.query\n const params = new URLSearchParams()\n for (const queryParamName of canonicalQueries) {\n if (queryParamName in currentRouteQueryParams) {\n const queryParamValue = currentRouteQueryParams[queryParamName]\n\n if (Array.isArray(queryParamValue)) {\n queryParamValue.forEach(v => params.append(queryParamName, v || ''))\n } else {\n params.append(queryParamName, queryParamValue || '')\n }\n }\n }\n\n const queryString = params.toString()\n\n if (queryString) {\n href = `${href}?${queryString}`\n }\n }\n\n link.push({\n hid: 'i18n-can',\n rel: 'canonical',\n href\n })\n }\n }\n\n /**\n * @this {import('vue/types/vue').Vue}\n *\n * @param {import('../../types').LocaleObject} currentLocale\n * @param {string | undefined} currentLocaleIso\n * @param {import('../../types/vue').NuxtI18nMeta['meta']} meta\n */\n function addCurrentOgLocale (currentLocale, currentLocaleIso, meta) {\n const hasCurrentLocaleAndIso = currentLocale && currentLocaleIso\n\n if (!hasCurrentLocaleAndIso) {\n return\n }\n\n meta.push({\n hid: 'i18n-og',\n property: 'og:locale',\n // Replace dash with underscore as defined in spec: language_TERRITORY\n content: hypenToUnderscore(currentLocaleIso)\n })\n }\n\n /**\n * @this {import('vue/types/vue').Vue}\n *\n * @param {import('../../types').LocaleObject[]} locales\n * @param {string | undefined} currentLocaleIso\n * @param {import('../../types/vue').NuxtI18nMeta['meta']} meta\n */\n function addAlternateOgLocales (locales, currentLocaleIso, meta) {\n const localesWithoutCurrent = locales.filter(locale => {\n const localeIso = locale.iso\n return localeIso && localeIso !== currentLocaleIso\n })\n\n if (localesWithoutCurrent.length) {\n const alternateLocales = localesWithoutCurrent.map(locale => ({\n hid: `i18n-og-alt-${locale.iso}`,\n property: 'og:locale:alternate',\n content: hypenToUnderscore(locale.iso)\n }))\n\n meta.push(...alternateLocales)\n }\n }\n\n /**\n * @param {string | undefined} str\n * @return {string}\n */\n function hypenToUnderscore (str) {\n return (str || '').replace(/-/g, '_')\n }\n\n /**\n * @param {string} urlOrPath\n * @param {string} baseUrl\n */\n function toAbsoluteUrl (urlOrPath, baseUrl) {\n if (urlOrPath.match(/^https?:\\/\\//)) {\n return urlOrPath\n }\n return baseUrl + urlOrPath\n }\n\n return metaObject\n}\n","import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\nimport { nuxtI18nHead } from './head-meta'\nimport { Constants, nuxtOptions, options } from './options'\nimport {\n createLocaleFromRouteGetter,\n getLocaleCookie,\n getLocaleDomain,\n getLocalesRegex,\n matchBrowserLocale,\n parseAcceptLanguage,\n setLocaleCookie\n} from './utils-common'\nimport {\n loadLanguageAsync,\n resolveBaseUrl,\n registerStore,\n mergeAdditionalMessages\n} from './plugin.utils'\n// @ts-ignore\nimport { joinURL } from '~i18n-ufo'\n// @ts-ignore\nimport { klona } from '~i18n-klona'\n\nVue.use(VueI18n)\n\n/** @type {import('@nuxt/types').Plugin} */\nexport default async (context) => {\n const { app, route, store, req, res, redirect } = context\n\n if (options.vuex && store) {\n registerStore(store, options.vuex, options.localeCodes)\n }\n\n const { lazy } = options\n const injectInNuxtState = lazy && (lazy === true || lazy.skipNuxtState !== true)\n\n if (process.server && injectInNuxtState) {\n const devalue = (await import('devalue')).default\n context.beforeNuxtRender(({ nuxtState }) => {\n /** @type {Record<string, import('vue-i18n').LocaleMessageObject>} */\n const langs = {}\n const { fallbackLocale, locale } = app.i18n\n if (locale && locale !== fallbackLocale) {\n // @ts-ignore Using internal API to avoid unnecessary cloning.\n const messages = app.i18n._getMessages()[locale]\n if (messages) {\n try {\n devalue(messages)\n langs[locale] = messages\n } catch {\n // Ignore - client-side will load the chunk asynchronously.\n }\n }\n }\n nuxtState.__i18n = { langs }\n })\n }\n\n const {\n alwaysRedirect,\n fallbackLocale,\n redirectOn,\n useCookie,\n cookieKey,\n cookieDomain,\n cookieSecure,\n cookieCrossOrigin\n } = /** @type {Required<import('../../types').DetectBrowserLanguageOptions>} */(options.detectBrowserLanguage)\n\n const getLocaleFromRoute = createLocaleFromRouteGetter(options.localeCodes, {\n routesNameSeparator: options.routesNameSeparator,\n defaultLocaleRouteNameSuffix: options.defaultLocaleRouteNameSuffix\n })\n\n /**\n * @param {string | undefined} newLocale\n * @param {{ initialSetup?: boolean }} [options=false]\n */\n const loadAndSetLocale = async (newLocale, { initialSetup = false } = {}) => {\n if (!newLocale) {\n return\n }\n\n // Abort if different domains option enabled\n if (!initialSetup && app.i18n.differentDomains) {\n return\n }\n\n const oldLocale = app.i18n.locale\n\n if (newLocale === oldLocale) {\n return\n }\n\n const localeOverride = app.i18n.onBeforeLanguageSwitch(oldLocale, newLocale, initialSetup, context)\n if (localeOverride && app.i18n.localeCodes.includes(localeOverride)) {\n if (localeOverride === oldLocale) {\n return\n }\n newLocale = localeOverride\n }\n\n if (useCookie) {\n app.i18n.setLocaleCookie(newLocale)\n }\n\n if (options.langDir) {\n const i18nFallbackLocale = app.i18n.fallbackLocale\n\n if (options.lazy) {\n // Load fallback locale(s).\n if (i18nFallbackLocale) {\n /** @type {Promise<void>[]} */\n let localesToLoadPromises = []\n if (Array.isArray(i18nFallbackLocale)) {\n localesToLoadPromises = i18nFallbackLocale.map(fbLocale => loadLanguageAsync(context, fbLocale))\n } else if (typeof i18nFallbackLocale === 'object') {\n if (i18nFallbackLocale[newLocale]) {\n localesToLoadPromises = localesToLoadPromises.concat(i18nFallbackLocale[newLocale].map(fbLocale => loadLanguageAsync(context, fbLocale)))\n }\n if (i18nFallbackLocale.default) {\n localesToLoadPromises = localesToLoadPromises.concat(i18nFallbackLocale.default.map(fbLocale => loadLanguageAsync(context, fbLocale)))\n }\n } else if (newLocale !== i18nFallbackLocale) {\n localesToLoadPromises.push(loadLanguageAsync(context, i18nFallbackLocale))\n }\n await Promise.all(localesToLoadPromises)\n }\n await loadLanguageAsync(context, newLocale)\n } else {\n // Load all locales.\n await Promise.all(options.localeCodes.map(locale => loadLanguageAsync(context, locale)))\n }\n } else {\n mergeAdditionalMessages(app.i18n, options.additionalMessages, options.localeCodes)\n }\n\n app.i18n.locale = newLocale\n /** @type {import('../../types').LocaleObject} */\n const newLocaleProperties = options.normalizedLocales.find(l => l.code === newLocale) || { code: newLocale }\n // In case certain locale has more properties than another, reset all the properties.\n for (const key of Object.keys(app.i18n.localeProperties)) {\n app.i18n.localeProperties[key] = undefined\n }\n // Copy properties of the new locale\n for (const [key, value] of Object.entries(newLocaleProperties)) {\n Vue.set(app.i18n.localeProperties, key, klona(value))\n }\n\n // Must retrieve from context as it might have changed since plugin initialization.\n const { route } = context\n let redirectPath = ''\n\n const isStaticGenerate = process.static && process.server\n // Decide whether we should redirect to a different route.\n if (\n !isStaticGenerate &&\n !app.i18n.differentDomains &&\n options.strategy !== Constants.STRATEGIES.NO_PREFIX &&\n // Skip if already on the new locale unless the strategy is \"prefix_and_default\" and this is the default\n // locale, in which case we might still redirect as we prefer unprefixed route in this case.\n (getLocaleFromRoute(route) !== newLocale || (options.strategy === Constants.STRATEGIES.PREFIX_AND_DEFAULT && newLocale === options.defaultLocale))\n ) {\n // The current route could be 404 in which case attempt to find matching route using the full path since\n // \"switchLocalePath\" can only find routes if the current route exists.\n const routePath = app.switchLocalePath(newLocale) || app.localePath(route.fullPath, newLocale)\n if (routePath && routePath !== route.fullPath && !routePath.startsWith('//')) {\n redirectPath = routePath\n }\n }\n\n if (initialSetup) {\n // Redirect will be delayed until middleware runs as redirecting from plugin does not\n // work in SPA (https://github.com/nuxt/nuxt.js/issues/4491).\n app.i18n.__redirect = redirectPath\n } else {\n app.i18n.onLanguageSwitched(oldLocale, newLocale)\n\n if (redirectPath) {\n redirect(redirectPath)\n }\n }\n }\n\n /**\n * Called by middleware on navigation (also on the initial one).\n *\n * @type {import('../../types/internal').onNavigateInternal}\n */\n const onNavigate = async route => {\n // Handle root path redirect\n if (route.path === '/' && options.rootRedirect) {\n let statusCode = 302\n let path = options.rootRedirect\n\n if (typeof options.rootRedirect !== 'string') {\n statusCode = options.rootRedirect.statusCode\n path = options.rootRedirect.path\n }\n\n return [statusCode, `/${path}`, /* preserve query */true]\n }\n\n const storedRedirect = app.i18n.__redirect\n if (storedRedirect) {\n app.i18n.__redirect = null\n return [302, storedRedirect]\n }\n\n const resolveBaseUrlOptions = {\n differentDomains: options.differentDomains,\n normalizedLocales: options.normalizedLocales\n }\n app.i18n.__baseUrl = resolveBaseUrl(options.baseUrl, context, app.i18n.locale, resolveBaseUrlOptions)\n\n const finalLocale =\n (options.detectBrowserLanguage && doDetectBrowserLanguage(route)) ||\n (!options.differentDomains && options.strategy !== Constants.STRATEGIES.NO_PREFIX && getLocaleFromRoute(route)) ||\n app.i18n.locale || app.i18n.defaultLocale || ''\n\n if (options.skipSettingLocaleOnNavigate) {\n app.i18n.__pendingLocale = finalLocale\n app.i18n.__pendingLocalePromise = new Promise(resolve => {\n app.i18n.__resolvePendingLocalePromise = resolve\n })\n } else {\n await app.i18n.setLocale(finalLocale)\n }\n\n return [null, null]\n }\n\n const finalizePendingLocaleChange = async () => {\n if (!app.i18n.__pendingLocale) {\n return\n }\n await app.i18n.setLocale(app.i18n.__pendingLocale)\n app.i18n.__resolvePendingLocalePromise('')\n app.i18n.__pendingLocale = null\n }\n\n const waitForPendingLocaleChange = async () => {\n if (app.i18n.__pendingLocale) {\n await app.i18n.__pendingLocalePromise\n }\n }\n\n const getBrowserLocale = () => {\n if (process.client && typeof navigator !== 'undefined' && navigator.languages) {\n // Get browser language either from navigator if running on client side, or from the headers\n return matchBrowserLocale(options.normalizedLocales, navigator.languages)\n } else if (req && typeof req.headers['accept-language'] !== 'undefined') {\n return matchBrowserLocale(options.normalizedLocales, parseAcceptLanguage(req.headers['accept-language']))\n } else {\n return undefined\n }\n }\n\n /**\n * @param {import('vue-router').Route} route\n * @return {string} Returns the browser locale that was detected or an empty string otherwise.\n */\n const doDetectBrowserLanguage = route => {\n // Browser detection is ignored if it is a nuxt generate.\n if (process.static && process.server) {\n return ''\n }\n\n if (options.strategy !== Constants.STRATEGIES.NO_PREFIX) {\n if (redirectOn === Constants.REDIRECT_ON_OPTIONS.ROOT) {\n if (route.path !== '/') {\n return ''\n }\n } else if (redirectOn === Constants.REDIRECT_ON_OPTIONS.NO_PREFIX) {\n if (!alwaysRedirect && route.path.match(getLocalesRegex(options.localeCodes))) {\n return ''\n }\n }\n }\n\n let matchedLocale\n\n if (useCookie && (matchedLocale = app.i18n.getLocaleCookie())) {\n // Get preferred language from cookie if present and enabled\n } else {\n // Try to get locale from either navigator or header detection\n matchedLocale = getBrowserLocale()\n }\n\n const finalLocale = matchedLocale || fallbackLocale\n\n // Handle cookie option to prevent multiple redirections\n if (finalLocale && (!useCookie || alwaysRedirect || !app.i18n.getLocaleCookie())) {\n if (finalLocale !== app.i18n.locale) {\n return finalLocale\n }\n }\n\n return ''\n }\n\n /**\n * Extends the newly created vue-i18n instance with @nuxtjs/i18n properties.\n *\n * @param {import('vue-i18n').IVueI18n} i18n\n */\n const extendVueI18nInstance = i18n => {\n i18n.locales = klona(options.locales)\n i18n.localeCodes = klona(options.localeCodes)\n i18n.localeProperties = Vue.observable(klona(options.normalizedLocales.find(l => l.code === i18n.locale) || { code: i18n.locale }))\n i18n.defaultLocale = options.defaultLocale\n i18n.differentDomains = options.differentDomains\n i18n.onBeforeLanguageSwitch = options.onBeforeLanguageSwitch\n i18n.onLanguageSwitched = options.onLanguageSwitched\n i18n.setLocaleCookie = locale => setLocaleCookie(locale, res, { useCookie, cookieDomain, cookieKey, cookieSecure, cookieCrossOrigin })\n i18n.getLocaleCookie = () => getLocaleCookie(req, { useCookie, cookieKey, localeCodes: options.localeCodes })\n i18n.setLocale = (locale) => loadAndSetLocale(locale)\n i18n.getBrowserLocale = () => getBrowserLocale()\n i18n.finalizePendingLocaleChange = finalizePendingLocaleChange\n i18n.waitForPendingLocaleChange = waitForPendingLocaleChange\n i18n.__baseUrl = app.i18n.__baseUrl\n i18n.__pendingLocale = app.i18n.__pendingLocale\n i18n.__pendingLocalePromise = app.i18n.__pendingLocalePromise\n i18n.__resolvePendingLocalePromise = app.i18n.__resolvePendingLocalePromise\n }\n\n // Set instance options\n const vueI18nOptions = typeof options.vueI18n === 'function' ? await options.vueI18n(context) : klona(options.vueI18n)\n vueI18nOptions.componentInstanceCreatedListener = extendVueI18nInstance\n // @ts-ignore\n app.i18n = context.i18n = new VueI18n(vueI18nOptions)\n // Initialize locale and fallbackLocale as vue-i18n defaults those to 'en-US' if falsey\n app.i18n.locale = ''\n app.i18n.fallbackLocale = vueI18nOptions.fallbackLocale || ''\n\n if (store) {\n // Inject in store.\n store.$i18n = app.i18n\n\n if (store.state.localeDomains) {\n for (const [index, locale] of options.normalizedLocales.entries()) {\n const domain = store.state.localeDomains[locale.code]\n if (domain) {\n locale.domain = domain\n const optionsLocale = options.locales[index]\n if (typeof (optionsLocale) !== 'string') {\n optionsLocale.domain = domain\n }\n }\n }\n }\n }\n\n extendVueI18nInstance(app.i18n)\n const resolveBaseUrlOptions = {\n differentDomains: options.differentDomains,\n normalizedLocales: options.normalizedLocales\n }\n app.i18n.__baseUrl = resolveBaseUrl(options.baseUrl, context, '', resolveBaseUrlOptions)\n app.i18n.__onNavigate = onNavigate\n\n Vue.prototype.$nuxtI18nHead = nuxtI18nHead\n\n /** @type {string | undefined} */\n let finalLocale = options.detectBrowserLanguage ? doDetectBrowserLanguage(route) : ''\n\n if (!finalLocale) {\n if (app.i18n.differentDomains) {\n const domainLocale = getLocaleDomain(options.normalizedLocales, req)\n finalLocale = domainLocale\n } else if (options.strategy !== Constants.STRATEGIES.NO_PREFIX) {\n const routeLocale = getLocaleFromRoute(route)\n finalLocale = routeLocale\n }\n }\n\n if (!finalLocale && useCookie) {\n finalLocale = app.i18n.getLocaleCookie()\n }\n\n if (!finalLocale) {\n finalLocale = app.i18n.defaultLocale || ''\n }\n\n await loadAndSetLocale(finalLocale, { initialSetup: true })\n\n if (process.client && process.static && nuxtOptions.isUniversalMode) {\n const [_, redirectTo] = await onNavigate(context.route)\n if (redirectTo) {\n location.assign(joinURL(context.base, redirectTo))\n }\n }\n}\n","export function mergeMeta (to, from) {\n if (typeof to === 'function') {\n // eslint-disable-next-line no-console\n console.warn('Cannot merge meta. Avoid using head as a function!')\n return\n }\n\n for (const key in from) {\n const value = from[key]\n if (Array.isArray(value)) {\n to[key] = to[key] || []\n for (const item of value) {\n // Avoid duplicates\n if (\n (item.hid && hasMeta(to[key], 'hid', item.hid)) ||\n (item.name && hasMeta(to[key], 'name', item.name))\n ) {\n continue\n }\n // Add meta\n to[key].push(item)\n }\n } else if (typeof value === 'object') {\n to[key] = to[key] || {}\n for (const attr in value) {\n to[key][attr] = value[attr]\n }\n } else if (to[key] === undefined) {\n to[key] = value\n }\n }\n}\n\nfunction hasMeta (arr, key, val) {\n return arr.find(obj => val ? obj[key] === val : obj[key])\n}\n","import { mergeMeta } from './meta.utils'\nimport meta from './meta.json'\n\nexport default function ({ app }) {\n mergeMeta(app.head, meta)\n}\n","export default async function (ctx, inject) {\n const icons = {\"64x64\":\"/_nuxt/icons/icon_64x64.6f5b79.png\",\"120x120\":\"/_nuxt/icons/icon_120x120.6f5b79.png\",\"144x144\":\"/_nuxt/icons/icon_144x144.6f5b79.png\",\"152x152\":\"/_nuxt/icons/icon_152x152.6f5b79.png\",\"192x192\":\"/_nuxt/icons/icon_192x192.6f5b79.png\",\"384x384\":\"/_nuxt/icons/icon_384x384.6f5b79.png\",\"512x512\":\"/_nuxt/icons/icon_512x512.6f5b79.png\",\"ipad_1536x2048\":\"/_nuxt/icons/splash_ipad_1536x2048.6f5b79.png\",\"ipadpro9_1536x2048\":\"/_nuxt/icons/splash_ipadpro9_1536x2048.6f5b79.png\",\"ipadpro10_1668x2224\":\"/_nuxt/icons/splash_ipadpro10_1668x2224.6f5b79.png\",\"ipadpro12_2048x2732\":\"/_nuxt/icons/splash_ipadpro12_2048x2732.6f5b79.png\",\"iphonese_640x1136\":\"/_nuxt/icons/splash_iphonese_640x1136.6f5b79.png\",\"iphone6_50x1334\":\"/_nuxt/icons/splash_iphone6_50x1334.6f5b79.png\",\"iphoneplus_1080x1920\":\"/_nuxt/icons/splash_iphoneplus_1080x1920.6f5b79.png\",\"iphonex_1125x2436\":\"/_nuxt/icons/splash_iphonex_1125x2436.6f5b79.png\",\"iphonexr_828x1792\":\"/_nuxt/icons/splash_iphonexr_828x1792.6f5b79.png\",\"iphonexsmax_1242x2688\":\"/_nuxt/icons/splash_iphonexsmax_1242x2688.6f5b79.png\"}\n const getIcon = size => icons[size + 'x' + size] || ''\n inject('icon', getIcon)\n}\n","import slugify from 'slugify'\n\nexport default (_, inject) => {\n\tinject('slugify', slugify)\n}\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport Meta from 'vue-meta'\nimport ClientOnly from 'vue-client-only'\nimport NoSsr from 'vue-no-ssr'\nimport { createRouter } from './router.js'\nimport NuxtChild from './components/nuxt-child.js'\nimport NuxtError from '../../../layouts/error.vue'\nimport Nuxt from './components/nuxt.js'\nimport App from './App.js'\nimport { setContext, getLocation, getRouteData, normalizeError } from './utils'\nimport { createStore } from './store.js'\n\n/* Plugins */\n\nimport nuxt_plugin_plugin_32d93d8f from 'nuxt_plugin_plugin_32d93d8f' // Source: ./components/plugin.js (mode: 'all')\nimport nuxt_plugin_plugin_2bef43aa from 'nuxt_plugin_plugin_2bef43aa' // Source: ./matomo/plugin.js (mode: 'client')\nimport nuxt_plugin_vsanitize_14d96733 from 'nuxt_plugin_vsanitize_14d96733' // Source: ./v-sanitize.js (mode: 'all')\nimport nuxt_plugin_cookieuniversalnuxt_68d0bccd from 'nuxt_plugin_cookieuniversalnuxt_68d0bccd' // Source: ./cookie-universal-nuxt.js (mode: 'all')\nimport nuxt_plugin_httpserver_e9bae75c from 'nuxt_plugin_httpserver_e9bae75c' // Source: ./http.server.js (mode: 'server')\nimport nuxt_plugin_http_5c46128b from 'nuxt_plugin_http_5c46128b' // Source: ./http.js (mode: 'all')\nimport nuxt_plugin_dayjsplugin_3c0a6e18 from 'nuxt_plugin_dayjsplugin_3c0a6e18' // Source: ./dayjs-plugin.js (mode: 'all')\nimport nuxt_plugin_pluginutils_8a5a1494 from 'nuxt_plugin_pluginutils_8a5a1494' // Source: ./nuxt-i18n/plugin.utils.js (mode: 'all')\nimport nuxt_plugin_pluginrouting_07eced81 from 'nuxt_plugin_pluginrouting_07eced81' // Source: ./nuxt-i18n/plugin.routing.js (mode: 'all')\nimport nuxt_plugin_pluginmain_7aec54e4 from 'nuxt_plugin_pluginmain_7aec54e4' // Source: ./nuxt-i18n/plugin.main.js (mode: 'all')\nimport nuxt_plugin_toast_3b2f5858 from 'nuxt_plugin_toast_3b2f5858' // Source: ./toast.js (mode: 'client')\nimport nuxt_plugin_workbox_2bb971fe from 'nuxt_plugin_workbox_2bb971fe' // Source: ./workbox.js (mode: 'client')\nimport nuxt_plugin_metaplugin_6789fd14 from 'nuxt_plugin_metaplugin_6789fd14' // Source: ./pwa/meta.plugin.js (mode: 'all')\nimport nuxt_plugin_iconplugin_6c31a288 from 'nuxt_plugin_iconplugin_6c31a288' // Source: ./pwa/icon.plugin.js (mode: 'all')\nimport nuxt_plugin_axios_16380725 from 'nuxt_plugin_axios_16380725' // Source: ./axios.js (mode: 'all')\nimport nuxt_plugin_libplugin307a5233_fe726576 from 'nuxt_plugin_libplugin307a5233_fe726576' // Source: ./lib.plugin.307a5233.js (mode: 'all')\nimport nuxt_plugin_amplify_900d1ace from 'nuxt_plugin_amplify_900d1ace' // Source: ../../../plugins/amplify.js (mode: 'all')\nimport nuxt_plugin_graphcms_3ef315a6 from 'nuxt_plugin_graphcms_3ef315a6' // Source: ../../../plugins/graphcms.js (mode: 'all')\nimport nuxt_plugin_helpers_1c816d70 from 'nuxt_plugin_helpers_1c816d70' // Source: ../../../plugins/helpers.js (mode: 'all')\nimport nuxt_plugin_vueshortkey_7ae76292 from 'nuxt_plugin_vueshortkey_7ae76292' // Source: ../../../plugins/vue-shortkey.js (mode: 'client')\nimport nuxt_plugin_forumApi_7bc36ce8 from 'nuxt_plugin_forumApi_7bc36ce8' // Source: ../../../plugins/forumApi.js (mode: 'all')\nimport nuxt_plugin_index_e21eb744 from 'nuxt_plugin_index_e21eb744' // Source: ../../../plugins/localeResolver/index.js (mode: 'all')\nimport nuxt_plugin_fbApi_0c3792ef from 'nuxt_plugin_fbApi_0c3792ef' // Source: ../../../plugins/fbApi.js (mode: 'all')\nimport nuxt_plugin_auth_28a8ad2a from 'nuxt_plugin_auth_28a8ad2a' // Source: ./auth.js (mode: 'all')\nimport nuxt_plugin_auth_7f7561ce from 'nuxt_plugin_auth_7f7561ce' // Source: ../../../plugins/auth.js (mode: 'all')\n\n// Component: <ClientOnly>\nVue.component(ClientOnly.name, ClientOnly)\n\n// TODO: Remove in Nuxt 3: <NoSsr>\nVue.component(NoSsr.name, {\n ...NoSsr,\n render (h, ctx) {\n if (process.client && !NoSsr._warned) {\n NoSsr._warned = true\n\n console.warn('<no-ssr> has been deprecated and will be removed in Nuxt 3, please use <client-only> instead')\n }\n return NoSsr.render(h, ctx)\n }\n})\n\n// Component: <NuxtChild>\nVue.component(NuxtChild.name, NuxtChild)\nVue.component('NChild', NuxtChild)\n\n// Component NuxtLink is imported in server.js or client.js\n\n// Component: <Nuxt>\nVue.component(Nuxt.name, Nuxt)\n\nObject.defineProperty(Vue.prototype, '$nuxt', {\n get() {\n const globalNuxt = this.$root.$options.$nuxt\n if (process.client && !globalNuxt && typeof window !== 'undefined') {\n return window.$nuxt\n }\n return globalNuxt\n },\n configurable: true\n})\n\nVue.use(Meta, {\"keyName\":\"head\",\"attribute\":\"data-n-head\",\"ssrAttribute\":\"data-n-head-ssr\",\"tagIDKeyName\":\"hid\"})\n\nconst defaultTransition = {\"name\":\"page\",\"mode\":\"out-in\",\"appear\":true,\"appearClass\":\"appear\",\"appearActiveClass\":\"appear-active\",\"appearToClass\":\"appear-to\"}\n\nconst originalRegisterModule = Vuex.Store.prototype.registerModule\n\nfunction registerModule (path, rawModule, options = {}) {\n const preserveState = process.client && (\n Array.isArray(path)\n ? !!path.reduce((namespacedState, path) => namespacedState && namespacedState[path], this.state)\n : path in this.state\n )\n return originalRegisterModule.call(this, path, rawModule, { preserveState, ...options })\n}\n\nasync function createApp(ssrContext, config = {}) {\n const router = await createRouter(ssrContext, config)\n\n const store = createStore(ssrContext)\n // Add this.$router into store actions/mutations\n store.$router = router\n\n // Create Root instance\n\n // here we inject the router and store to all child components,\n // making them available everywhere as `this.$router` and `this.$store`.\n const app = {\n head: {\"meta\":[{\"hid\":\"charset\",\"charset\":\"utf-8\"},{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"},{\"name\":\"format-detection\",\"content\":\"telephone=no\"},{\"name\":\"author\",\"content\":\"MED-EL\"},{\"hid\":\"og:image\",\"property\":\"og:image\",\"content\":\"https:\\u002F\\u002Fhearpeers.medel.com\\u002Fopen-graph-preview.png\"},{\"hid\":\"description\",\"name\":\"description\",\"content\":\"Become part of our international hearpeers community and find out everything you need to know about cochlear implants and other hearing solutions.\"},{\"hid\":\"og:description\",\"name\":\"og:description\",\"property\":\"og:description\",\"content\":\"Become part of our international hearpeers community and find out everything you need to know about cochlear implants and other hearing solutions.\"}],\"link\":[{\"rel\":\"icon\",\"type\":\"image\\u002Fx-icon\",\"href\":\"\\u002Ffavicon.ico\"},{\"rel\":\"preconnect\",\"href\":\"https:\\u002F\\u002Fapi-eu-central-1.graphcms.com\"},{\"rel\":\"preconnect\",\"href\":\"https:\\u002F\\u002Fauth.login.medel.com\\u002F\"}],\"style\":[],\"script\":[{\"src\":\"https:\\u002F\\u002Fanalytics.explore-life.com\\u002Fmatomo.js\",\"body\":true,\"defer\":true,\"async\":true}]},\n\n store,\n router,\n nuxt: {\n defaultTransition,\n transitions: [defaultTransition],\n setTransitions (transitions) {\n if (!Array.isArray(transitions)) {\n transitions = [transitions]\n }\n transitions = transitions.map((transition) => {\n if (!transition) {\n transition = defaultTransition\n } else if (typeof transition === 'string') {\n transition = Object.assign({}, defaultTransition, { name: transition })\n } else {\n transition = Object.assign({}, defaultTransition, transition)\n }\n return transition\n })\n this.$options.nuxt.transitions = transitions\n return transitions\n },\n\n err: null,\n dateErr: null,\n error (err) {\n err = err || null\n app.context._errored = Boolean(err)\n err = err ? normalizeError(err) : null\n let nuxt = app.nuxt // to work with @vue/composition-api, see https://github.com/nuxt/nuxt.js/issues/6517#issuecomment-573280207\n if (this) {\n nuxt = this.nuxt || this.$options.nuxt\n }\n nuxt.dateErr = Date.now()\n nuxt.err = err\n // Used in src/server.js\n if (ssrContext) {\n ssrContext.nuxt.error = err\n }\n return err\n }\n },\n ...App\n }\n\n // Make app available into store via this.app\n store.app = app\n\n const next = ssrContext ? ssrContext.next : location => app.router.push(location)\n // Resolve route\n let route\n if (ssrContext) {\n route = router.resolve(ssrContext.url).route\n } else {\n const path = getLocation(router.options.base, router.options.mode)\n route = router.resolve(path).route\n }\n\n // Set context to app.context\n await setContext(app, {\n store,\n route,\n next,\n error: app.nuxt.error.bind(app),\n payload: ssrContext ? ssrContext.payload : undefined,\n req: ssrContext ? ssrContext.req : undefined,\n res: ssrContext ? ssrContext.res : undefined,\n beforeRenderFns: ssrContext ? ssrContext.beforeRenderFns : undefined,\n ssrContext\n })\n\n function inject(key, value) {\n if (!key) {\n throw new Error('inject(key, value) has no key provided')\n }\n if (value === undefined) {\n throw new Error(`inject('${key}', value) has no value provided`)\n }\n\n key = '$' + key\n // Add into app\n app[key] = value\n // Add into context\n if (!app.context[key]) {\n app.context[key] = value\n }\n\n // Add into store\n store[key] = app[key]\n\n // Check if plugin not already installed\n const installKey = '__nuxt_' + key + '_installed__'\n if (Vue[installKey]) {\n return\n }\n Vue[installKey] = true\n // Call Vue.use() to install the plugin into vm\n Vue.use(() => {\n if (!Object.prototype.hasOwnProperty.call(Vue.prototype, key)) {\n Object.defineProperty(Vue.prototype, key, {\n get () {\n return this.$root.$options[key]\n }\n })\n }\n })\n }\n\n // Inject runtime config as $config\n inject('config', config)\n\n if (process.client) {\n // Replace store state before plugins execution\n if (window.__NUXT__ && window.__NUXT__.state) {\n store.replaceState(window.__NUXT__.state)\n }\n }\n\n // Add enablePreview(previewData = {}) in context for plugins\n if (process.static && process.client) {\n app.context.enablePreview = function (previewData = {}) {\n app.previewData = Object.assign({}, previewData)\n inject('preview', previewData)\n }\n }\n // Plugin execution\n\n if (typeof nuxt_plugin_plugin_32d93d8f === 'function') {\n await nuxt_plugin_plugin_32d93d8f(app.context, inject)\n }\n\n if (process.client && typeof nuxt_plugin_plugin_2bef43aa === 'function') {\n await nuxt_plugin_plugin_2bef43aa(app.context, inject)\n }\n\n if (typeof nuxt_plugin_vsanitize_14d96733 === 'function') {\n await nuxt_plugin_vsanitize_14d96733(app.context, inject)\n }\n\n if (typeof nuxt_plugin_cookieuniversalnuxt_68d0bccd === 'function') {\n await nuxt_plugin_cookieuniversalnuxt_68d0bccd(app.context, inject)\n }\n\n if (process.server && typeof nuxt_plugin_httpserver_e9bae75c === 'function') {\n await nuxt_plugin_httpserver_e9bae75c(app.context, inject)\n }\n\n if (typeof nuxt_plugin_http_5c46128b === 'function') {\n await nuxt_plugin_http_5c46128b(app.context, inject)\n }\n\n if (typeof nuxt_plugin_dayjsplugin_3c0a6e18 === 'function') {\n await nuxt_plugin_dayjsplugin_3c0a6e18(app.context, inject)\n }\n\n if (typeof nuxt_plugin_pluginutils_8a5a1494 === 'function') {\n await nuxt_plugin_pluginutils_8a5a1494(app.context, inject)\n }\n\n if (typeof nuxt_plugin_pluginrouting_07eced81 === 'function') {\n await nuxt_plugin_pluginrouting_07eced81(app.context, inject)\n }\n\n if (typeof nuxt_plugin_pluginmain_7aec54e4 === 'function') {\n await nuxt_plugin_pluginmain_7aec54e4(app.context, inject)\n }\n\n if (process.client && typeof nuxt_plugin_toast_3b2f5858 === 'function') {\n await nuxt_plugin_toast_3b2f5858(app.context, inject)\n }\n\n if (process.client && typeof nuxt_plugin_workbox_2bb971fe === 'function') {\n await nuxt_plugin_workbox_2bb971fe(app.context, inject)\n }\n\n if (typeof nuxt_plugin_metaplugin_6789fd14 === 'function') {\n await nuxt_plugin_metaplugin_6789fd14(app.context, inject)\n }\n\n if (typeof nuxt_plugin_iconplugin_6c31a288 === 'function') {\n await nuxt_plugin_iconplugin_6c31a288(app.context, inject)\n }\n\n if (typeof nuxt_plugin_axios_16380725 === 'function') {\n await nuxt_plugin_axios_16380725(app.context, inject)\n }\n\n if (typeof nuxt_plugin_libplugin307a5233_fe726576 === 'function') {\n await nuxt_plugin_libplugin307a5233_fe726576(app.context, inject)\n }\n\n if (typeof nuxt_plugin_amplify_900d1ace === 'function') {\n await nuxt_plugin_amplify_900d1ace(app.context, inject)\n }\n\n if (typeof nuxt_plugin_graphcms_3ef315a6 === 'function') {\n await nuxt_plugin_graphcms_3ef315a6(app.context, inject)\n }\n\n if (typeof nuxt_plugin_helpers_1c816d70 === 'function') {\n await nuxt_plugin_helpers_1c816d70(app.context, inject)\n }\n\n if (process.client && typeof nuxt_plugin_vueshortkey_7ae76292 === 'function') {\n await nuxt_plugin_vueshortkey_7ae76292(app.context, inject)\n }\n\n if (typeof nuxt_plugin_forumApi_7bc36ce8 === 'function') {\n await nuxt_plugin_forumApi_7bc36ce8(app.context, inject)\n }\n\n if (typeof nuxt_plugin_index_e21eb744 === 'function') {\n await nuxt_plugin_index_e21eb744(app.context, inject)\n }\n\n if (typeof nuxt_plugin_fbApi_0c3792ef === 'function') {\n await nuxt_plugin_fbApi_0c3792ef(app.context, inject)\n }\n\n if (typeof nuxt_plugin_auth_28a8ad2a === 'function') {\n await nuxt_plugin_auth_28a8ad2a(app.context, inject)\n }\n\n if (typeof nuxt_plugin_auth_7f7561ce === 'function') {\n await nuxt_plugin_auth_7f7561ce(app.context, inject)\n }\n\n // Lock enablePreview in context\n if (process.static && process.client) {\n app.context.enablePreview = function () {\n console.warn('You cannot call enablePreview() outside a plugin.')\n }\n }\n\n // Wait for async component to be resolved first\n await new Promise((resolve, reject) => {\n // Ignore 404s rather than blindly replacing URL in browser\n if (process.client) {\n const { route } = router.resolve(app.context.route.fullPath)\n if (!route.matched.length) {\n return resolve()\n }\n }\n router.replace(app.context.route.fullPath, resolve, (err) => {\n // https://github.com/vuejs/vue-router/blob/v3.4.3/src/util/errors.js\n if (!err._isRouter) return reject(err)\n if (err.type !== 2 /* NavigationFailureType.redirected */) return resolve()\n\n // navigated to a different route in router guard\n const unregister = router.afterEach(async (to, from) => {\n if (process.server && ssrContext && ssrContext.url) {\n ssrContext.url = to.fullPath\n }\n app.context.route = await getRouteData(to)\n app.context.params = to.params || {}\n app.context.query = to.query || {}\n unregister()\n resolve()\n })\n })\n })\n\n return {\n store,\n app,\n router\n }\n}\n\nexport { createApp, NuxtError }\n","const middleware = {}\n\nmiddleware['track-page-view'] = require('../../../middleware/track-page-view.js')\nmiddleware['track-page-view'] = middleware['track-page-view'].default || middleware['track-page-view']\n\nexport default middleware\n","import Vue from 'vue'\nimport { hasFetch, normalizeError, addLifecycleHook, createGetCounter } from '../utils'\n\nconst isSsrHydration = (vm) => vm.$vnode && vm.$vnode.elm && vm.$vnode.elm.dataset && vm.$vnode.elm.dataset.fetchKey\nconst nuxtState = window.__NUXT__\n\nexport default {\n beforeCreate () {\n if (!hasFetch(this)) {\n return\n }\n\n this._fetchDelay = typeof this.$options.fetchDelay === 'number' ? this.$options.fetchDelay : 200\n\n Vue.util.defineReactive(this, '$fetchState', {\n pending: false,\n error: null,\n timestamp: Date.now()\n })\n\n this.$fetch = $fetch.bind(this)\n addLifecycleHook(this, 'created', created)\n addLifecycleHook(this, 'beforeMount', beforeMount)\n }\n}\n\nfunction beforeMount() {\n if (!this._hydrated) {\n return this.$fetch()\n }\n}\n\nfunction created() {\n if (!isSsrHydration(this)) {\n return\n }\n\n // Hydrate component\n this._hydrated = true\n this._fetchKey = this.$vnode.elm.dataset.fetchKey\n const data = nuxtState.fetch[this._fetchKey]\n\n // If fetch error\n if (data && data._error) {\n this.$fetchState.error = data._error\n return\n }\n\n // Merge data\n for (const key in data) {\n Vue.set(this.$data, key, data[key])\n }\n}\n\nfunction $fetch() {\n if (!this._fetchPromise) {\n this._fetchPromise = $_fetch.call(this)\n .then(() => { delete this._fetchPromise })\n }\n return this._fetchPromise\n}\n\nasync function $_fetch() {\n this.$nuxt.nbFetching++\n this.$fetchState.pending = true\n this.$fetchState.error = null\n this._hydrated = false\n let error = null\n const startTime = Date.now()\n\n try {\n await this.$options.fetch.call(this)\n } catch (err) {\n if (process.dev) {\n console.error('Error in fetch():', err)\n }\n error = normalizeError(err)\n }\n\n const delayLeft = this._fetchDelay - (Date.now() - startTime)\n if (delayLeft > 0) {\n await new Promise(resolve => setTimeout(resolve, delayLeft))\n }\n\n this.$fetchState.error = error\n this.$fetchState.pending = false\n this.$fetchState.timestamp = Date.now()\n\n this.$nextTick(() => this.$nuxt.nbFetching--)\n}\n"],"sourceRoot":""}