{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/store/modules/auth/authState.ts","webpack:///./src/store/actions.ts","webpack:///./src/store/modules/auth/state.ts","webpack:///./src/store/modules/auth/actions.ts","webpack:///./src/store/modules/auth/mutations.ts","webpack:///./src/store/modules/auth/getters.ts","webpack:///./src/store/modules/auth/auth.ts","webpack:///./src/store/modules/common/state.ts","webpack:///./src/store/modules/common/actions.ts","webpack:///./src/store/modules/common/mutations.ts","webpack:///./src/store/modules/common/getters.ts","webpack:///./src/store/modules/common/common.ts","webpack:///./src/store/modules/medias/actions.ts","webpack:///./src/store/modules/medias/getters.ts","webpack:///./src/store/modules/medias/mutations.ts","webpack:///./src/store/modules/medias/state.ts","webpack:///./src/store/modules/medias/medias.ts","webpack:///./src/store/modules/merchant-config/actions.ts","webpack:///./src/store/modules/merchant-config/getters.ts","webpack:///./src/store/modules/merchant-config/mutations.ts","webpack:///./src/store/modules/merchant-config/state.ts","webpack:///./src/store/modules/merchant-config/merchantConfig.ts","webpack:///./src/services/migration/migration.service.ts","webpack:///./src/store/modules/merchant-migration/actions.ts","webpack:///./src/store/modules/merchant-migration/getters.ts","webpack:///./src/store/modules/merchant-migration/mutations.ts","webpack:///./src/store/modules/merchant-migration/state.ts","webpack:///./src/store/modules/merchant-migration/merchantMigration.ts","webpack:///./src/store/modules/web-payments/actions.ts","webpack:///./src/store/modules/web-payments/getters.ts","webpack:///./src/store/modules/web-payments/mutations.ts","webpack:///./src/store/modules/web-payments/state.ts","webpack:///./src/store/modules/web-payments/webPayments.ts","webpack:///./src/store/getters.ts","webpack:///./src/store/mutations.ts","webpack:///./src/store/state.ts","webpack:///./src/store/index.ts","webpack:///./src/services/medias/media.service.ts","webpack:///./src/services/web-payments/webpayment.service.ts","webpack:///./src/store/modules/medias/enums.ts","webpack:///./src/plugin/MsalPlugin.ts","webpack:///./src/store/modules/web-payments/enums.ts","webpack:///./src/router/routes.ts","webpack:///./src/store/modules/merchant-migration/enums.ts","webpack:///./src/store/consts.ts","webpack:///./src/i18n.ts","webpack:///./src/models/web-payments/nexiPayload.ts","webpack:///./src/models/common/constants.ts","webpack:///./src/services/base/base.service.ts","webpack:///./src/components/common/Spinner.vue?f3a6","webpack:///./src/store/enums.ts","webpack:///./src/store/modules/common/enums.ts","webpack:///./src/store/modules/merchant-config/enums.ts","webpack:///./src/models/config/merchantConfig.ts","webpack:///./src/router/modules/main.routes.ts","webpack:///./src/router/middleware/authMiddlewareRouter.ts","webpack:///./src/router/index.ts","webpack:///./src/components/toaster/Toaster.vue?14ef","webpack:///./src/App.vue?5c4c","webpack:///./src/components/common/Spinner.vue?e188","webpack:///./src/components/common/Spinner.vue","webpack:///./src/components/common/Spinner.vue?3e4b","webpack:///./src/components/common/Spinner.vue?2b9e","webpack:///./src/components/toaster/Toaster.vue?9292","webpack:///./src/components/toaster/Toaster.vue","webpack:///./src/components/toaster/Toaster.vue?64b4","webpack:///./src/components/toaster/Toaster.vue?6e91","webpack:///./src/App.vue","webpack:///./src/App.vue?0ab4","webpack:///./src/App.vue?bff9","webpack:///./src/interceptors/axios-interceptor-app-errors.ts","webpack:///./src/interceptors/axios-interceptor-app-insight-errors.ts","webpack:///./src/services/common/currencies.service.ts","webpack:///./src/plugin/CurrenciesPlugin.ts","webpack:///./src/services/spa-conf/configuration.service.ts","webpack:///./src/services/common/spinner.service.ts","webpack:///./src/plugin/SpinnerPlugin.ts","webpack:///./src/services/common/toaster.service.ts","webpack:///./src/plugin/ToasterPlugin.ts","webpack:///./src/interceptors/axios-interceptor-header-token.ts","webpack:///./src/interceptors/axios-interceptor-renew-token.ts","webpack:///./src/main.ts","webpack:///./src/store/modules/auth/enums.ts","webpack:///./src/services/customers/customer.service.ts","webpack:///./src/services/config/config.service.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","AuthStatus","actions","showToaster","store","payload","toaster","id","Date","now","Math","floor","random","commit","ShowToaster","RemoveToaster","showEternalToaster","removeToasters","RemoveToasters","removeToaster","toasterId","showSpinner","ShowSpinner","removeSpinner","RemoveSpinner","enableVendonSpinner","EnableVendonSpinner","disableVendonSpinner","DisableVendonSpinner","state","status","Unknown","awaitingB2CResponse","login","AuthRequest","loadProfile","Success","assign","customerInfo","logout","Logout","QRLogin","qrCode","getByMediaHash","catch","MobileAppRegistration","hash","getByMobileHash","setAwaitingB2CResponse","AwaitingB2CResponse","mutations","authRequest","authState","InProgress","authSuccess","authData","Succeeded","$emit","authError","authLogout","authAwaitingB2CResponse","awaiting","getters","isAuthenticated","isUserAuthenticated","authStatus","authToken","token","acquireToken","getCustomerInfo","namespaced","analyticsConsent","language","setAnalyticsConsent","SetAnalyticsConsent","setLanguage","i18n","locale","SetLanguage","getMedias","init","response","SetMedias","SetMerchantId","merchantId","SetSelectedMediaId","errors","setMerchantId","setMediaStatusToAssociate","mediaStatus","SetMediaStatusToAssociate","setSelectedMediaId","mediaId","updateAlias","medias","filter","serial","mediaSerial","forEach","alias","clear","Clear","mediasState","getMerchantId","getMediaStatusToAssociate","mediaStatusToAssociate","getSelectedMediaId","selectedMediaId","mediasSetMedias","mediasSetMerchantId","mediasSetMediaStatusToAssociate","mediasSetSelectedMediaId","getMerchantConfig","SetMerchantConfig","setMerchantConfig","merchantConfig","merchantConfigState","merchantConfigSetMerchantConfig","a","migrationService","getMigratedMerchants","SetMigratedMerchants","merchantMigrationState","migratedMerchants","merchantMigrationSetMigratedMerchants","getServices","SetServices","getConfigs","SetConfigs","setChargeAmount","chargeAmount","SetChargeAmount","setSelectedServiceType","serviceType","SetSelectedServiceType","setNexiPayload","SetNexiPayload","incrementNexiTries","IncrementNexiTries","resetNexiTries","ResetNexiTries","webPaymentsState","services","configs","getChargeAmount","getSelectedServiceType","selectedServiceType","getNexiPayload","nexiPayload","getNexiTries","nexiTries","webPaymentsSetServices","webPaymentsSetConfigs","webPaymentsSetChargeAmount","webPaymentsSetSelectedServiceType","webPaymentsSetNexiPayload","webPaymentsIncrementNexiTries","webPaymentsResetNexiTries","toasters","rootState","spinners","vendonSpinner","toasterIndex","findIndex","vuexLocal","storage","localStorage","use","auth","common","merchantMigration","webPayments","plugins","plugin","Store","MediaService","cogesKeyEnabledOnly","params","newName","put","post","delete","mediaService","WebPaymentApiService","webPaymentOrder","serviceUrl","config","headers","parsedData","JSON","parse","stringify","formData","FormData","element","append","urlpost","webPaymentService","MediasMutations","MediasActions","MediasGetters","msalInstance","msalPluginInstance","MsalPlugin","isLoading","pluginOptions","clientId","loginAuthority","changePasswordAuthority","knownAuthority","apiReadScope","scopes","vue","options","this","initialize","$msal","observable","email","dispatch","SetAwaitingB2CResponse","loginRequest","redirectUri","location","origin","loginHint","extraQueryParameters","ui_locales","Language","loginRedirect","logoutRedirect","account","getAllAccounts","acquireTokenSilent","accessToken","acquireTokenPopup","popupError","changePasswordRequest","authority","accounts","msalConfig","knownAuthorities","cache","cacheLocation","handleRedirectPromise","Login","PreCustomer","finally","WebPaymentsMutations","WebPaymentsActions","WebPaymentsGetters","Routes","MerchantMigrationMutations","MerchantMigrationActions","MerchantMigrationGetters","eventHub","Locales","messages","de","en","es","fr","it","cs","EN","ES","DE","IT","FR","CS","availableLanguages","keys","navigatorLanguage","navigator","navigatorCode","split","fallbackLocale","indexOf","NexiPayload","ApiBaseUrl","QRQueryParams","Id","Action","MediaType","MediaSerial","DeviceId","MobileAppRegistrationParams","Hash","NexiRedirectParams","Checkout","CheckoutMsg","VendonTopUpParams","WebOrderId","MerchantId","AuthorisationUuid","QRActions","QrCheck","Recharge","HttpErrors","BadRequest","Unauthorized","Forbidden","NotFound","SupportedLocales","BaseService","spaConfig","sessionStorage","getItem","clientsApiUrl","RootMutations","RootActions","RootGetters","DashboardActions","CommonMutations","CommonActions","CommonGetters","MerchantConfigMutations","MerchantConfigActions","MerchantConfigGetters","MerchantConfig","companyName","timeZone","currency","legalCompanyName","legalAddress","legalEmail","legalVatCode","logoUrl","color","ingredientsUrl","websiteUrl","contacts","mediaHasCustomer","path","Home","component","Privacy","Cookies","BlogPost","QRCheck","meta","requiresAuth","Customer","VendonTopUp","router","beforeEach","to","from","next","matched","some","record","isAuth","routes","scrollBehavior","scrollTo","_vm","_h","$createElement","_c","_self","staticRenderFns","staticClass","class","_e","$store","Spinners","VendonSpinner","attrs","_l","getStyles","on","$event","remove","_v","_s","toasterData","styles","join","Toasters","$toaster","storedLanguage","components","app","errorHandler","vm","info","$appInsights","trackException","interceptors","AnalyticsConsent","currencyCode","getNormalizedValue","getBaseValue","cu","thousandsSeparator","decimalDigits","formatted","numberOfDigits","digits","getNumberOfDecimalsOfSelectedMerchant","pow","inBaseCurrency","round","Number","EPSILON","currenciesPlugin","install","$currency","configurationService","spinnerPlugin","$spinner","translate","toString","ShowEternalToaster","toasterPlugin","url","Authorization","msalOptions","productionTip","instrumentationKeyAppInsight","render","h","$mount","hasConfig","getConfig","setItem","AuthMutations","AuthActions","AuthGetters","CustomerService","page","size","userInfo","privacyInfo","customerService","ConfigService","lang","configService"],"mappings":"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","file":"js/app.24b58b61.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-06e98176\":\"f7f70e98\",\"chunk-77bdcab7\":\"9d64d80a\",\"chunk-9f0c7478\":\"fa190983\",\"chunk-35ec4ecd\":\"7b7d1881\",\"chunk-3e78ae9c\":\"e3e85b87\",\"chunk-0c0077a0\":\"ded78e8c\",\"chunk-2eb43a4d\":\"830b7001\",\"chunk-4bf12976\":\"650a2a09\",\"chunk-2fb9a823\":\"17a66705\",\"chunk-1dcc4f69\":\"c52c4af7\",\"chunk-2d20e786\":\"e3297c5e\",\"chunk-76026800\":\"7980b956\",\"chunk-77e4f2e5\":\"5e0f15fa\",\"chunk-df24e470\":\"beba901c\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-77bdcab7\":1,\"chunk-9f0c7478\":1,\"chunk-35ec4ecd\":1,\"chunk-3e78ae9c\":1,\"chunk-0c0077a0\":1,\"chunk-2eb43a4d\":1,\"chunk-4bf12976\":1,\"chunk-2fb9a823\":1,\"chunk-77e4f2e5\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-06e98176\":\"31d6cfe0\",\"chunk-77bdcab7\":\"de0387ca\",\"chunk-9f0c7478\":\"ba082a33\",\"chunk-35ec4ecd\":\"c8f0664f\",\"chunk-3e78ae9c\":\"291c555d\",\"chunk-0c0077a0\":\"9b9f0950\",\"chunk-2eb43a4d\":\"d6e47d14\",\"chunk-4bf12976\":\"d6e47d14\",\"chunk-2fb9a823\":\"d2269e0a\",\"chunk-1dcc4f69\":\"31d6cfe0\",\"chunk-2d20e786\":\"31d6cfe0\",\"chunk-76026800\":\"31d6cfe0\",\"chunk-77e4f2e5\":\"67cf4a53\",\"chunk-df24e470\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\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\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export default interface CustomerInfo {\n email: string;\n name: string;\n surname: string;\n language: string;\n gender: string;\n dateOfBirth: Date;\n country: string;\n state: string;\n streetAddress: string;\n city: string;\n postalCode: string;\n}\n\nexport default interface AuthState {\n status: AuthStatus;\n awaitingB2CResponse: boolean;\n customerInfo?: CustomerInfo;\n}\n\nexport enum AuthStatus {\n Unknown,\n InProgress,\n Succeeded,\n Error,\n Refreshed,\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport ToasterData from '@/components/toaster/ToasterData.model';\nimport { ActionContext, ActionTree } from 'vuex';\nimport { RootMutations } from './enums';\nimport RootState from './rootState';\n\nconst actions: ActionTree = {\n showToaster: (\n store: ActionContext,\n payload: { toaster: ToasterData },\n ) => {\n payload.toaster.id = Date.now() + Math.floor(Math.random() * 10);\n store.commit(RootMutations.ShowToaster, payload.toaster);\n\n window.setTimeout(() => {\n store.commit(RootMutations.RemoveToaster, payload.toaster.id);\n }, 5000);\n },\n showEternalToaster: (\n store: ActionContext,\n payload: { toaster: ToasterData },\n ) => {\n payload.toaster.id = Date.now() + Math.floor(Math.random() * 10);\n store.commit(RootMutations.ShowToaster, payload.toaster);\n },\n removeToasters: (store: ActionContext) => {\n store.commit(RootMutations.RemoveToasters);\n },\n removeToaster: (\n store: ActionContext,\n payload: { toasterId: number },\n ) => {\n store.commit(RootMutations.RemoveToaster, payload.toasterId);\n },\n showSpinner: (store: ActionContext) => {\n store.commit(RootMutations.ShowSpinner);\n },\n removeSpinner: (store: ActionContext) => {\n store.commit(RootMutations.RemoveSpinner);\n },\n enableVendonSpinner: (store: ActionContext) => {\n store.commit(RootMutations.EnableVendonSpinner);\n },\n disableVendonSpinner: (store: ActionContext) => {\n store.commit(RootMutations.DisableVendonSpinner);\n },\n};\n\nexport default actions;\n","import AuthState, { AuthStatus } from '@/store/modules/auth/authState';\n\nconst state: Partial = {\n status: AuthStatus.Unknown,\n awaitingB2CResponse: false,\n};\n\nexport default state;\n","import { configService } from '@/services/config/config.service';\nimport { customerService } from '@/services/customers/customer.service';\nimport AuthState from '@/store/modules/auth/authState';\nimport { AuthMutations } from '@/store/modules/auth/enums';\nimport RootState from '@/store/rootState';\nimport { ActionContext, ActionTree } from 'vuex';\n\nconst actions: ActionTree = {\n login: async (store: ActionContext) => {\n return new Promise((resolve, reject) => {\n store.commit(AuthMutations.AuthRequest);\n customerService.loadProfile().then((result: any) => {\n store.commit(\n AuthMutations.Success,\n Object.assign({}, { customerInfo: result.data }),\n );\n });\n // resolve(result);\n // })\n // .catch((errors: any) => {\n // store.commit(AuthMutations.Error, errors);\n // reject(errors);\n // });\n });\n },\n\n logout: async (store: ActionContext) => {\n store.commit(AuthMutations.Logout);\n },\n\n QRLogin: async (\n store: ActionContext,\n qrCode: string,\n ) => {\n return new Promise((resolve, reject) => {\n configService\n .getByMediaHash(qrCode)\n .then(async (result: any) => resolve(result))\n .catch((error: any) => {\n store.commit(AuthMutations.Error, error);\n reject(error);\n });\n });\n },\n\n MobileAppRegistration: async (\n store: ActionContext,\n hash: string,\n ) => {\n return new Promise((resolve, reject) => {\n configService\n .getByMobileHash(hash)\n .then(async (result: any) => resolve(result))\n .catch((error: any) => {\n store.commit(AuthMutations.Error, error);\n reject(error);\n });\n });\n },\n\n setAwaitingB2CResponse: (\n store: ActionContext,\n payload: boolean,\n ) => {\n return new Promise((resolve) => {\n store.commit(AuthMutations.AwaitingB2CResponse, payload);\n resolve();\n });\n },\n};\n\nexport default actions;\n","import {\n AuthStatus,\n default as AuthState,\n default as CustomerInfo,\n} from '@/store/modules/auth/authState';\nimport { eventHub } from '@/store/consts';\n\nimport { MutationTree } from 'vuex';\n\nconst mutations: MutationTree = {\n authRequest: (authState: AuthState) => {\n authState.status = AuthStatus.InProgress;\n },\n\n authSuccess: (\n authState: AuthState,\n authData: {\n customerInfo: CustomerInfo;\n },\n ) => {\n authState.status = AuthStatus.Succeeded;\n authState.customerInfo = authData.customerInfo;\n eventHub.$emit('gotcustomer', true);\n },\n\n authError: (authState: AuthState) => {\n authState.status = AuthStatus.Error;\n },\n\n authLogout: (authState: AuthState) => {\n authState.status = AuthStatus.Unknown;\n authState.customerInfo = undefined;\n },\n\n authAwaitingB2CResponse: (authState: AuthState, awaiting: boolean) => {\n authState.awaitingB2CResponse = awaiting;\n },\n};\n\nexport default mutations;\n","import { msalPluginInstance } from '@/plugin/MsalPlugin';\nimport {\n default as AuthState,\n default as CustomerInfo,\n} from '@/store/modules/auth/authState';\nimport RootState from '@/store/rootState';\nimport { GetterTree } from 'vuex';\n\nconst getters: GetterTree = {\n isAuthenticated: () => {\n return msalPluginInstance.isUserAuthenticated();\n },\n authStatus: (authState: AuthState) => authState.status,\n authToken: () => {\n const token = msalPluginInstance.acquireToken().then((t) => {\n return t;\n });\n return token;\n },\n getCustomerInfo: (authState: AuthState): CustomerInfo | undefined =>\n authState.customerInfo,\n awaitingB2CResponse: (authState: AuthState) => authState.awaitingB2CResponse,\n};\n\nexport default getters;\n","import state from '@/store/modules/auth/state';\nimport actions from '@/store/modules/auth/actions';\nimport mutations from '@/store/modules/auth/mutations';\nimport getters from '@/store/modules/auth/getters';\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import CommonState from './commonState';\n\nconst state: CommonState = {\n analyticsConsent: false,\n language: 'en',\n};\n\nexport default state;\n","import i18n from '@/i18n';\nimport CommonState from '@/store/modules/common/commonState';\nimport RootState from '@/store/rootState';\nimport { ActionContext, ActionTree } from 'vuex';\nimport { CommonMutations } from './enums';\n\nconst actions: ActionTree = {\n setAnalyticsConsent: (\n store: ActionContext,\n analyticsConsent: boolean,\n ) => {\n store.commit(CommonMutations.SetAnalyticsConsent, analyticsConsent);\n },\n setLanguage: (\n store: ActionContext,\n language: string,\n ) => {\n i18n.locale = language;\n store.commit(CommonMutations.SetLanguage, language);\n },\n};\n\nexport default actions;\n","import { MutationTree } from 'vuex';\nimport CommonState from './commonState';\nconst mutations: MutationTree = {\n setAnalyticsConsent(state: CommonState, analyticsConsent: boolean) {\n state.analyticsConsent = analyticsConsent;\n },\n setLanguage(state: CommonState, language: string) {\n state.language = language;\n },\n};\n\nexport default mutations;\n","import CommonState from '@/store/modules/common/commonState';\nimport RootState from '@/store/rootState';\nimport { GetterTree } from 'vuex';\n\nconst getters: GetterTree = {\n analyticsConsent: (state: CommonState) => {\n return state.analyticsConsent;\n },\n language: (state: CommonState) => {\n return state.language;\n },\n};\n\nexport default getters;\n","import state from '@/store/modules/common/state';\nimport actions from '@/store/modules/common/actions';\nimport mutations from '@/store/modules/common/mutations';\nimport getters from '@/store/modules/common/getters';\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import { ActionContext, ActionTree } from 'vuex';\nimport { mediaService } from '@/services/medias/media.service';\nimport { MediasMutations } from './enums';\nimport MediasState from './mediasState';\nimport RootState from '@/store/rootState';\nimport { MediaStatus } from '@/models/medias/mediaStatus';\n\nconst actions: ActionTree = {\n getMedias: (store: ActionContext, init: boolean) => {\n return new Promise((resolve, reject) => {\n mediaService\n .getMedias()\n .then((response) => {\n store.commit(MediasMutations.SetMedias, response);\n if (init) {\n if (response.length > 0) {\n store.commit(\n MediasMutations.SetMerchantId,\n response[0].merchantId,\n );\n } else {\n store.commit(MediasMutations.SetMerchantId, '');\n store.commit(MediasMutations.SetSelectedMediaId, '');\n }\n }\n resolve(response);\n })\n .catch((errors) => {\n reject(errors);\n });\n });\n },\n setMerchantId: (\n store: ActionContext,\n merchantId: string,\n ) => {\n return new Promise((resolve) => {\n store.commit(MediasMutations.SetMerchantId, merchantId);\n resolve();\n });\n },\n setMediaStatusToAssociate: (\n store: ActionContext,\n mediaStatus: MediaStatus,\n ) => {\n return new Promise((resolve) => {\n store.commit(MediasMutations.SetMediaStatusToAssociate, mediaStatus);\n resolve();\n });\n },\n setSelectedMediaId: (\n store: ActionContext,\n mediaId: string,\n ) => {\n return new Promise((resolve) => {\n store.commit(MediasMutations.SetSelectedMediaId, mediaId);\n resolve();\n });\n },\n updateAlias: (\n store: ActionContext,\n payload: { alias: string; mediaSerial: string },\n ) => {\n store.state.medias\n .filter((m) => {\n return m.serial === payload.mediaSerial;\n })\n .forEach((m) => {\n m.alias = payload.alias;\n });\n },\n clear: (store: ActionContext) => {\n store.commit(MediasMutations.Clear);\n },\n};\n\nexport default actions;\n","import { GetterTree } from 'vuex';\nimport MediasState from './mediasState';\nimport RootState from '@/store/rootState';\n\nconst getters: GetterTree = {\n getMedias: (mediasState: MediasState) => mediasState.medias,\n getMerchantId: (mediasState: MediasState) => mediasState.merchantId,\n getMediaStatusToAssociate: (mediasState: MediasState) =>\n mediasState.mediaStatusToAssociate,\n getSelectedMediaId: (mediasState: MediasState) => mediasState.selectedMediaId,\n};\n\nexport default getters;\n","import MediasState from './mediasState';\nimport { Media } from '@/models/medias/media';\nimport { MutationTree } from 'vuex';\nimport { MediaStatus } from '@/models/medias/mediaStatus';\n\nconst mutations: MutationTree = {\n mediasSetMedias: (mediasState: MediasState, medias: Media[]) => {\n mediasState.medias = medias;\n },\n mediasSetMerchantId: (mediasState: MediasState, merchantId: string) => {\n mediasState.merchantId = merchantId;\n },\n mediasSetMediaStatusToAssociate: (\n mediasState: MediasState,\n mediaStatus: MediaStatus,\n ) => {\n mediasState.mediaStatusToAssociate = mediaStatus;\n },\n mediasSetSelectedMediaId: (mediasState: MediasState, mediaId: string) => {\n mediasState.selectedMediaId = mediaId;\n },\n clear: (mediasState: MediasState) => {\n mediasState.medias = [] as Media[];\n mediasState.merchantId = '';\n mediasState.mediaStatusToAssociate = null;\n mediasState.selectedMediaId = '';\n },\n};\n\nexport default mutations;\n","import MediasState from './mediasState';\n\nconst state: MediasState = {\n medias: [],\n merchantId: '',\n mediaStatusToAssociate: null,\n selectedMediaId: '',\n};\n\nexport default state;\n","import actions from '@/store/modules/medias/actions';\nimport getters from '@/store/modules/medias/getters';\nimport mutations from '@/store/modules/medias/mutations';\nimport state from '@/store/modules/medias/state';\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import { MerchantConfig } from '@/models/config/merchantConfig';\nimport { configService } from '@/services/config/config.service';\nimport { MerchantConfigMutations } from '@/store/modules/merchant-config/enums';\nimport RootState from '@/store/rootState';\nimport { ActionContext, ActionTree } from 'vuex';\nimport MerchantConfigState from './merchantConfigState';\n\nconst actions: ActionTree = {\n getMerchantConfig: (\n store: ActionContext,\n merchantId: string,\n ) => {\n return new Promise((resolve, reject) => {\n configService\n .getMerchantConfig(merchantId)\n .then((response) => {\n store.commit(MerchantConfigMutations.SetMerchantConfig, response);\n resolve(response);\n })\n .catch((errors: any) => {\n store.commit(\n MerchantConfigMutations.SetMerchantConfig,\n new MerchantConfig(),\n );\n reject(errors);\n });\n });\n },\n setMerchantConfig: (\n store: ActionContext,\n merchantConfig: MerchantConfig,\n ) => {\n return new Promise((resolve) => {\n store.commit(MerchantConfigMutations.SetMerchantConfig, merchantConfig);\n resolve();\n });\n },\n clear: (store: ActionContext) => {\n store.commit(MerchantConfigMutations.Clear);\n },\n};\n\nexport default actions;\n","import { GetterTree } from 'vuex';\nimport RootState from '@/store/rootState';\nimport MerchantConfigState from './merchantConfigState';\n\nconst getters: GetterTree = {\n getMerchantConfig: (merchantConfigState: MerchantConfigState) =>\n merchantConfigState.merchantConfig,\n};\n\nexport default getters;\n","import { MerchantConfig } from '@/models/config/merchantConfig';\nimport { MutationTree } from 'vuex';\nimport MerchantConfigState from './merchantConfigState';\n\nconst mutations: MutationTree = {\n merchantConfigSetMerchantConfig: (\n merchantConfigState: MerchantConfigState,\n merchantConfig: MerchantConfig,\n ) => {\n merchantConfigState.merchantConfig = merchantConfig;\n },\n clear: (merchantConfigState: MerchantConfigState) => {\n merchantConfigState.merchantConfig = {} as MerchantConfig;\n },\n};\n\nexport default mutations;\n","import { MerchantConfig } from '@/models/config/merchantConfig';\nimport MerchantConfigState from './merchantConfigState';\n\nconst state: MerchantConfigState = {\n merchantConfig: new MerchantConfig(),\n};\n\nexport default state;\n","import actions from '@/store/modules/merchant-config/actions';\nimport getters from '@/store/modules/merchant-config/getters';\nimport mutations from '@/store/modules/merchant-config/mutations';\nimport state from '@/store/modules/merchant-config/state';\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import BaseService from '@/services/base/base.service';\nimport axios from 'axios';\n\nclass MigrationService extends BaseService {\n public async getMigratedMerchants(merchantId: string): Promise {\n const response = await axios.get(\n `${super.clientsApiBaseUrl()}/migration/${merchantId}`,\n );\n return response.data;\n }\n}\n\nexport const migrationService = new MigrationService();\n","import { ActionContext, ActionTree } from 'vuex';\nimport { MerchantMigrationMutations } from './enums';\nimport MerchantMigrationState from './merchantMigrationState';\nimport RootState from '@/store/rootState';\nimport { migrationService } from '@/services/migration/migration.service';\n\nconst actions: ActionTree = {\n getMigratedMerchants: (\n store: ActionContext,\n merchantId: string,\n ) => {\n return new Promise((resolve, reject) => {\n migrationService\n .getMigratedMerchants(merchantId)\n .then((response) => {\n store.commit(\n MerchantMigrationMutations.SetMigratedMerchants,\n response,\n );\n resolve(response);\n })\n .catch((errors) => {\n reject(errors);\n });\n });\n },\n clear: (store: ActionContext) => {\n store.commit(MerchantMigrationMutations.Clear);\n },\n};\n\nexport default actions;\n","import { GetterTree } from 'vuex';\nimport MerchantMigrationState from './merchantMigrationState';\nimport RootState from '@/store/rootState';\n\nconst getters: GetterTree = {\n getMigratedMerchants: (merchantMigrationState: MerchantMigrationState) =>\n merchantMigrationState.migratedMerchants,\n};\n\nexport default getters;\n","import { MutationTree } from 'vuex';\nimport MerchantMigrationState from './merchantMigrationState';\n\nconst mutations: MutationTree = {\n merchantMigrationSetMigratedMerchants: (\n merchantMigrationState: MerchantMigrationState,\n migratedMerchants: string[],\n ) => {\n merchantMigrationState.migratedMerchants = migratedMerchants;\n },\n clear: (merchantMigrationState: MerchantMigrationState) => {\n merchantMigrationState.migratedMerchants = [];\n },\n};\n\nexport default mutations;\n","import MerchantMigrationState from './merchantMigrationState';\n\nconst state: MerchantMigrationState = {\n migratedMerchants: [],\n};\n\nexport default state;\n","import actions from '@/store/modules/merchant-migration/actions';\nimport getters from '@/store/modules/merchant-migration/getters';\nimport mutations from '@/store/modules/merchant-migration/mutations';\nimport state from '@/store/modules/merchant-migration/state';\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import { ActionContext, ActionTree } from 'vuex';\nimport { webPaymentService } from '@/services/web-payments/webpayment.service';\nimport { WebPaymentsMutations } from './enums';\nimport WebPaymentsState from './webPaymentsState';\nimport RootState from '@/store/rootState';\nimport { NexiPayload } from '@/models/web-payments/nexiPayload';\nimport { WebPaymentServiceType } from '@/models/web-payments/webPaymentServiceType';\n\nconst actions: ActionTree = {\n getServices: (store: ActionContext) => {\n return new Promise((resolve, reject) => {\n webPaymentService\n .getServices()\n .then((response) => {\n if (response.length > 0) {\n store.commit(WebPaymentsMutations.SetServices, response);\n }\n resolve(response);\n })\n .catch((errors) => {\n reject(errors);\n });\n });\n },\n getConfigs: (\n store: ActionContext,\n merchantId: string,\n ) => {\n return new Promise((resolve, reject) => {\n webPaymentService\n .getConfigs(merchantId)\n .then((response) => {\n if (response.length > 0) {\n store.commit(WebPaymentsMutations.SetConfigs, response);\n }\n resolve(response);\n })\n .catch((errors) => {\n reject(errors);\n });\n });\n },\n setChargeAmount: (\n store: ActionContext,\n chargeAmount: number,\n ) => {\n store.commit(WebPaymentsMutations.SetChargeAmount, chargeAmount);\n },\n setSelectedServiceType: (\n store: ActionContext,\n serviceType: WebPaymentServiceType,\n ) => {\n store.commit(WebPaymentsMutations.SetSelectedServiceType, serviceType);\n },\n setNexiPayload: (\n store: ActionContext,\n payload: NexiPayload,\n ) => {\n store.commit(WebPaymentsMutations.SetNexiPayload, payload);\n },\n incrementNexiTries: (store: ActionContext) => {\n store.commit(WebPaymentsMutations.IncrementNexiTries);\n },\n resetNexiTries: (store: ActionContext) => {\n store.commit(WebPaymentsMutations.ResetNexiTries);\n },\n clear: (store: ActionContext) => {\n store.commit(WebPaymentsMutations.Clear);\n },\n};\n\nexport default actions;\n","import { GetterTree } from 'vuex';\nimport WebPaymentsState from './webPaymentsState';\nimport RootState from '@/store/rootState';\n\nconst getters: GetterTree = {\n getServices: (webPaymentsState: WebPaymentsState) =>\n webPaymentsState.services,\n getConfigs: (webPaymentsState: WebPaymentsState) => webPaymentsState.configs,\n getChargeAmount: (webPaymentsState: WebPaymentsState) =>\n webPaymentsState.chargeAmount,\n getSelectedServiceType: (webPaymentsState: WebPaymentsState) =>\n webPaymentsState.selectedServiceType,\n getNexiPayload: (webPaymentsState: WebPaymentsState) =>\n webPaymentsState.nexiPayload,\n getNexiTries: (webPaymentsState: WebPaymentsState) =>\n webPaymentsState.nexiTries,\n};\n\nexport default getters;\n","import { WebPaymentService } from '@/models/web-payments/webPaymentService';\nimport { WebPaymentConfig } from '@/models/web-payments/webPaymentConfig';\nimport WebPaymentsState from './webPaymentsState';\nimport { MutationTree } from 'vuex';\nimport { NexiPayload } from '@/models/web-payments/nexiPayload';\nimport { WebPaymentServiceType } from '@/models/web-payments/webPaymentServiceType';\n\nconst mutations: MutationTree = {\n webPaymentsSetServices: (\n webPaymentsState: WebPaymentsState,\n services: WebPaymentService[],\n ) => {\n webPaymentsState.services = services;\n },\n webPaymentsSetConfigs: (\n webPaymentsState: WebPaymentsState,\n configs: WebPaymentConfig[],\n ) => {\n webPaymentsState.configs = configs;\n },\n webPaymentsSetChargeAmount: (\n webPaymentsState: WebPaymentsState,\n chargeAmount: number,\n ) => {\n webPaymentsState.chargeAmount = chargeAmount;\n },\n webPaymentsSetSelectedServiceType: (\n webPaymentsState: WebPaymentsState,\n serviceType: WebPaymentServiceType,\n ) => {\n webPaymentsState.selectedServiceType = serviceType;\n },\n webPaymentsSetNexiPayload: (\n webPaymentsState: WebPaymentsState,\n payload: NexiPayload,\n ) => {\n webPaymentsState.nexiPayload = payload;\n },\n webPaymentsIncrementNexiTries: (webPaymentsState: WebPaymentsState) => {\n webPaymentsState.nexiTries = webPaymentsState.nexiTries + 1;\n },\n webPaymentsResetNexiTries: (webPaymentsState: WebPaymentsState) => {\n webPaymentsState.nexiTries = 0;\n },\n clear: (webPaymentsState: WebPaymentsState) => {\n webPaymentsState.services = [] as WebPaymentService[];\n webPaymentsState.configs = [] as WebPaymentConfig[];\n webPaymentsState.chargeAmount = 0;\n webPaymentsState.selectedServiceType = {} as WebPaymentServiceType;\n webPaymentsState.nexiPayload = {} as NexiPayload;\n webPaymentsState.nexiTries = 0;\n },\n};\n\nexport default mutations;\n","import { NexiPayload } from '@/models/web-payments/nexiPayload';\nimport { WebPaymentServiceType } from '@/models/web-payments/webPaymentServiceType';\nimport WebPaymentsState from './webPaymentsState';\n\nconst state: WebPaymentsState = {\n services: [],\n configs: [],\n chargeAmount: 0,\n selectedServiceType: {} as WebPaymentServiceType,\n nexiPayload: new NexiPayload(),\n nexiTries: 0,\n};\n\nexport default state;\n","import actions from '@/store/modules/web-payments/actions';\nimport getters from '@/store/modules/web-payments/getters';\nimport mutations from '@/store/modules/web-payments/mutations';\nimport state from '@/store/modules/web-payments/state';\n\nexport default {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import { GetterTree } from 'vuex';\nimport RootState from './rootState';\n\nconst getters: GetterTree = {\n toasters: (rootState: RootState) => rootState.toasters,\n spinners: (rootState: RootState) => rootState.spinners,\n vendonSpinner: (rootState: RootState) => rootState.vendonSpinner,\n};\n\nexport default getters;\n","import { MutationTree } from 'vuex';\nimport RootState from './rootState';\nimport ToasterData from '@/components/toaster/ToasterData.model';\n\nconst mutations: MutationTree = {\n showToaster(state: RootState, toaster: ToasterData) {\n state.toasters.push(toaster);\n },\n showEternalToaster(state: RootState, toaster: ToasterData) {\n state.toasters.push(toaster);\n },\n removeToaster(state: RootState, id: number) {\n const toasterIndex = state.toasters.findIndex((t) => t.id === id);\n if (toasterIndex !== -1) {\n state.toasters.splice(toasterIndex, 1);\n }\n },\n removeToasters(state: RootState) {\n state.toasters = [];\n },\n showSpinner(state: RootState) {\n state.spinners++;\n },\n removeSpinner(state: RootState) {\n if (state.spinners > 0) {\n state.spinners--;\n }\n },\n enableVendonSpinner(state: RootState) {\n state.vendonSpinner = true;\n },\n disableVendonSpinner(state: RootState) {\n state.vendonSpinner = false;\n },\n};\n\nexport default mutations;\n","import RootState from './rootState';\nimport ToasterData from '@/components/toaster/ToasterData.model';\n\nconst state: RootState = {\n toasters: [] as ToasterData[],\n spinners: 0,\n vendonSpinner: false,\n};\n\nexport default state;\n","import Vue from 'vue';\nimport Vuex, { StoreOptions } from 'vuex';\n\nimport actions from '@/store/actions';\nimport auth from '@/store/modules/auth/auth';\nimport common from '@/store/modules/common/common';\nimport medias from '@/store/modules/medias/medias';\nimport merchantConfig from '@/store/modules/merchant-config/merchantConfig';\nimport merchantMigration from '@/store/modules/merchant-migration/merchantMigration';\nimport webPayments from '@/store/modules/web-payments/webPayments';\nimport getters from '@/store/getters';\nimport mutations from '@/store/mutations';\nimport state from '@/store/state';\nimport RootState from '@/store/rootState';\nimport VuexPersistence from 'vuex-persist';\n\nconst vuexLocal = new VuexPersistence({\n storage: window.localStorage,\n modules: [\n 'auth',\n 'medias',\n 'merchantConfig',\n 'merchantMigration',\n 'common',\n 'webPayments',\n ],\n});\n\nVue.use(Vuex);\n\nconst store: StoreOptions = {\n state,\n actions,\n mutations,\n getters,\n modules: {\n auth,\n common,\n medias,\n merchantConfig,\n merchantMigration,\n webPayments,\n },\n plugins: [vuexLocal.plugin],\n};\n\nexport default new Vuex.Store(store);\n","import { Media } from '@/models/medias/media';\nimport { MediaStatus } from '@/models/medias/mediaStatus';\nimport BaseService from '@/services/base/base.service';\nimport axios from 'axios';\n\nclass MediaService extends BaseService {\n public async getByHash(hash: string): Promise {\n const response = await axios.get(\n `${super.clientsApiBaseUrl()}/medias/hash/${hash}`,\n );\n return response.data;\n }\n\n public async getMedias(): Promise {\n const request: MediasRequest = {\n cogesKeyEnabledOnly: true,\n };\n const response = await axios.get(\n `${super.clientsApiBaseUrl()}/medias`,\n { params: request },\n );\n return response.data;\n }\n\n public async updateMedia(\n mediaId: string,\n merchantId: string,\n newName: string,\n ): Promise {\n const response = await axios.put(\n `${super.clientsApiBaseUrl()}/medias/${mediaId}`,\n { merchantId: merchantId, alias: newName },\n );\n return response;\n }\n\n public async associateMediaCustomer(hash: string): Promise {\n await axios.post(`${super.clientsApiBaseUrl()}/medias/${hash}/association`);\n }\n\n public async deleteMediaCustomer(mediaId: string): Promise {\n await axios.delete(\n `${super.clientsApiBaseUrl()}/medias/${mediaId}/association`,\n );\n }\n}\n\nexport const mediaService = new MediaService();\n\nexport interface MediasRequest {\n cogesKeyEnabledOnly: boolean;\n}\n","import { WebPaymentConfig } from '@/models/web-payments/webPaymentConfig';\nimport { WebPaymentService } from '@/models/web-payments/webPaymentService';\nimport { WebPaymentOrder } from '@/models/web-payments/webPaymentOrder';\nimport BaseService from '@/services/base/base.service';\nimport axios from 'axios';\nimport { NexiPayload } from '@/models/web-payments/nexiPayload';\n\nclass WebPaymentApiService extends BaseService {\n public async getServices(): Promise {\n const response = await axios.get(\n `${super.clientsApiBaseUrl()}/webpaymentservices`,\n );\n return response.data;\n }\n\n public async getConfigs(merchantId: string): Promise {\n const response = await axios.get(\n `${super.clientsApiBaseUrl()}/webpaymentconfigs/${merchantId}`,\n );\n return response.data;\n }\n\n public async createOrder(webPaymentOrder: WebPaymentOrder): Promise {\n const response = await axios.post(\n `${super.clientsApiBaseUrl()}/webpaymentorder`,\n webPaymentOrder,\n );\n return response.data;\n }\n\n public async callNexi(serviceUrl: string, payload: NexiPayload) {\n const config = {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n };\n const parsedData = JSON.parse(JSON.stringify(payload));\n const formData = new FormData();\n for (const key in parsedData) {\n if (Object.prototype.hasOwnProperty.call(parsedData, key)) {\n const element = parsedData[key];\n formData.append(key, element);\n }\n }\n await axios.post(serviceUrl, formData, config);\n }\n\n public getIpnClientsApiEndpoint(urlpost: string): string {\n // return `https://dev2-client.nebular.online/api/v1/${urlpost}`; // TODO use this to test in local\n return `${super.clientsApiBaseUrl()}/${urlpost}`;\n }\n}\n\nexport const webPaymentService = new WebPaymentApiService();\n","export enum MediasMutations {\n SetMedias = 'mediasSetMedias',\n SetMerchantId = 'mediasSetMerchantId',\n SetMediaStatusToAssociate = 'mediasSetMediaStatusToAssociate',\n SetSelectedMediaId = 'mediasSetSelectedMediaId',\n Clear = 'clear',\n}\n\nexport enum MediasActions {\n GetMedias = 'medias/getMedias',\n SetMerchantId = 'medias/setMerchantId',\n SetMediaStatusToAssociate = 'medias/setMediaStatusToAssociate',\n SetSelectedMediaId = 'medias/setSelectedMediaId',\n UpdateAlias = 'medias/updateAlias',\n Clear = 'medias/clear',\n}\n\nexport enum MediasGetters {\n GetMedias = 'medias/getMedias',\n GetMerchantId = 'medias/getMerchantId',\n GetMediaStatusToAssociate = 'medias/getMediaStatusToAssociate',\n GetSelectedMediaId = 'medias/getSelectedMediaId',\n}\n","import router from '@/router';\nimport { Routes } from '@/router/routes';\nimport store from '@/store';\nimport { eventHub } from '@/store/consts';\nimport { AuthActions } from '@/store/modules/auth/enums';\nimport { CommonGetters } from '@/store/modules/common/enums';\nimport { MediasActions } from '@/store/modules/medias/enums';\nimport { MerchantConfigActions } from '@/store/modules/merchant-config/enums';\nimport { RootActions } from '@/store/enums';\nimport * as msal from '@azure/msal-browser';\nimport Vue, { PluginObject, VueConstructor } from 'vue';\n\ndeclare module 'vue/types/vue' {\n interface Vue {\n $msal: MsalPlugin;\n }\n}\n\nexport interface MsalPluginOptions {\n clientId: string;\n loginAuthority: string;\n changePasswordAuthority: string;\n knownAuthority: string;\n apiReadScope: string;\n}\n\nlet msalInstance: msal.PublicClientApplication;\n\nexport let msalPluginInstance: MsalPlugin;\n\nexport class MsalPlugin implements PluginObject {\n public isLoading = true;\n\n private pluginOptions: MsalPluginOptions = {\n clientId: '',\n loginAuthority: '',\n changePasswordAuthority: '',\n knownAuthority: '',\n apiReadScope: '',\n };\n\n private scopes: string[] = [];\n\n public install(vue: VueConstructor, options?: MsalPluginOptions): void {\n if (!options) {\n throw new Error('MsalPluginOptions must be specified');\n }\n\n this.pluginOptions = options;\n this.initialize(options);\n msalPluginInstance = this;\n vue.prototype.$msal = Vue.observable(msalPluginInstance);\n }\n\n public async signIn(email: string, qrCode: string): Promise {\n store.dispatch(AuthActions.SetAwaitingB2CResponse, true);\n\n const loginRequest: msal.RedirectRequest = {\n redirectUri: window.location.origin,\n loginHint: email as string,\n scopes: this.scopes,\n state: qrCode,\n extraQueryParameters: {\n ui_locales: store.getters[CommonGetters.Language],\n },\n };\n\n await msalInstance.loginRedirect(loginRequest);\n }\n\n public async signOut(): Promise {\n store.dispatch(AuthActions.SetAwaitingB2CResponse, true);\n await msalInstance.logoutRedirect();\n }\n\n public async acquireToken(): Promise<\n string | false | void | msal.AuthenticationResult\n > {\n const request = {\n redirectUri: window.location.origin,\n account: msalInstance.getAllAccounts()[0],\n scopes: this.scopes,\n };\n\n try {\n const response = await msalInstance.acquireTokenSilent(request);\n return response.accessToken;\n } catch (error) {\n //console.log('AcquireTokenSilent error:');\n //console.log(error);\n if (error instanceof msal.InteractionRequiredAuthError) {\n const response = await msalInstance\n .acquireTokenPopup(request)\n .catch((popupError) => {\n console.error('acquireTokenPopup error: ');\n console.error(popupError);\n });\n if (response) {\n return response.accessToken;\n } else {\n this.logout();\n }\n } else {\n this.logout();\n }\n return false;\n }\n }\n\n public async changePassword(): Promise {\n store.dispatch(AuthActions.SetAwaitingB2CResponse, true);\n\n const changePasswordRequest: msal.RedirectRequest = {\n redirectUri: window.location.origin,\n authority: this.pluginOptions.changePasswordAuthority,\n scopes: this.scopes,\n };\n\n await msalInstance.loginRedirect(changePasswordRequest);\n }\n\n public isUserAuthenticated(): boolean {\n const accounts: msal.AccountInfo[] = msalInstance.getAllAccounts();\n return accounts && accounts.length > 0;\n }\n\n private initialize(options: MsalPluginOptions) {\n // MSAL will supply openid, profile and offline_access by default during login requests.\n this.scopes = [options.apiReadScope];\n\n const msalConfig: msal.Configuration = {\n auth: {\n clientId: options.clientId,\n authority: options.loginAuthority,\n knownAuthorities: [options.knownAuthority],\n },\n cache: {\n cacheLocation: 'localStorage',\n },\n };\n msalInstance = new msal.PublicClientApplication(msalConfig);\n msalInstance\n .handleRedirectPromise()\n .then((response) => {\n //console.log('RedirectPromise response: ');\n //console.log(response);\n this.isLoading = true;\n if (response != null) {\n store.dispatch(AuthActions.Login).then(() => {\n // console.log('response authenticated');\n router.push({ name: Routes.PreCustomer });\n });\n }\n })\n .catch((error) => {\n //console.log('RedirectPromise error: ');\n //console.log(error);\n })\n .finally(() => {\n if (this.isUserAuthenticated()) eventHub.$emit('authenticated');\n this.isLoading = false;\n store.dispatch(AuthActions.SetAwaitingB2CResponse, false);\n });\n }\n\n private logout() {\n store.dispatch(RootActions.ShowSpinner);\n store.dispatch(AuthActions.Logout).then(() => {\n store.dispatch(MerchantConfigActions.Clear);\n store.dispatch(MediasActions.Clear);\n store.dispatch(RootActions.RemoveSpinner);\n });\n }\n}\n","export enum WebPaymentsMutations {\n SetServices = 'webPaymentsSetServices',\n SetConfigs = 'webPaymentsSetConfigs',\n SetChargeAmount = 'webPaymentsSetChargeAmount',\n SetSelectedServiceType = 'webPaymentsSetSelectedServiceType',\n SetNexiPayload = 'webPaymentsSetNexiPayload',\n IncrementNexiTries = 'webPaymentsIncrementNexiTries',\n ResetNexiTries = 'webPaymentsResetNexiTries',\n Clear = 'clear',\n}\n\nexport enum WebPaymentsActions {\n GetServices = 'webPayments/getServices',\n GetConfigs = 'webPayments/getConfigs',\n SetChargeAmount = 'webPayments/setChargeAmount',\n SetSelectedServiceType = 'webPayments/setSelectedServiceType',\n SetNexiPayload = 'webPayments/setNexiPayload',\n IncrementNexiTries = 'webPayments/incrementNexiTries',\n ResetNexiTries = 'webPayments/resetNexiTries',\n Clear = 'webPayments/clear',\n}\n\nexport enum WebPaymentsGetters {\n GetServices = 'webPayments/getServices',\n GetConfigs = 'webPayments/getConfigs',\n GetChargeAmount = 'webPayments/getChargeAmount',\n GetSelectedServiceType = 'webPayments/getSelectedServiceType',\n GetNexiPayload = 'webPayments/getNexiPayload',\n GetNexiTries = 'webPayments/getNexiTries',\n}\n","export enum Routes {\n Home = 'home',\n Privacy = 'privacy',\n Cookies = 'cookies',\n BlogPost = 'blog-post',\n Customer = 'customer',\n PreCustomer = 'pre-customer',\n QRCheck = 'qr-check',\n MobileAppRegistration = 'mobileapp-registration',\n VendonTopUp = 'vendon-topup',\n}\n","export enum MerchantMigrationMutations {\n SetMigratedMerchants = 'merchantMigrationSetMigratedMerchants',\n Clear = 'clear',\n}\n\nexport enum MerchantMigrationActions {\n GetMigratedMerchants = 'merchantMigration/getMigratedMerchants',\n Clear = 'merchantMigration/clear',\n}\n\nexport enum MerchantMigrationGetters {\n GetMigratedMerchants = 'merchantMigration/getMigratedMerchants',\n}\n","import { Vue } from 'vue-property-decorator';\n\nexport const QR_QUERY_PARAMETER = 'id';\n\nexport const eventHub = new Vue();\n","import Vue from 'vue';\nimport VueI18n from 'vue-i18n';\nVue.use(VueI18n);\n\nexport const messages = {\n de: require('./locale/de.json'),\n en: require('./locale/en.json'),\n es: require('./locale/es.json'),\n fr: require('./locale/fr.json'),\n it: require('./locale/it.json'),\n cs: require('./locale/cs.json'),\n};\n\nexport enum Locales {\n EN = 'en',\n FR = 'fr',\n IT = 'it',\n DE = 'de',\n ES = 'es',\n CS = 'cs',\n}\n\nexport const LOCALES = [\n { value: Locales.EN, caption: 'English' },\n { value: Locales.ES, caption: 'Español' },\n { value: Locales.DE, caption: 'Deutsch' },\n { value: Locales.IT, caption: 'Italiano' },\n { value: Locales.FR, caption: 'Français' },\n { value: Locales.CS, caption: 'Český' },\n];\n\nconst availableLanguages = Object.keys(messages);\nconst navigatorLanguage = window.navigator.language || 'en';\nconst navigatorCode = navigatorLanguage.split('-')[0];\nconst fallbackLocale = process.env.VUE_APP_I18N_FALLBACK_LOCALE || 'en';\nconst locale =\n availableLanguages.indexOf(navigatorCode) >= 0\n ? navigatorCode\n : process.env.VUE_APP_I18N_LOCALE || 'en';\n\nexport default new VueI18n({\n locale,\n fallbackLocale,\n messages,\n});\n","export class NexiPayload {\n public alias!: string;\n public importo!: number;\n public divisa!: string;\n public codTrans!: string;\n public mac!: string;\n public urlpost!: string;\n public mail!: string;\n public nome!: string;\n public cognome!: string;\n public url!: string;\n public url_back!: string;\n public media_id!: string;\n public numContratto!: string;\n}\n","export const ApiBaseUrl = process.env.VUE_APP_API_URL;\n\nexport const QRQueryParams = {\n Id: 'id',\n Action: 'action',\n MediaType: 'type',\n MediaSerial: 'serial',\n DeviceId: 'deviceId',\n};\n\nexport const MobileAppRegistrationParams = {\n Hash: 'ma',\n};\n\nexport const NexiRedirectParams = {\n Checkout: 'checkout',\n CheckoutMsg: 'messaggio',\n};\n\nexport const VendonTopUpParams = {\n WebOrderId: 'webOrderId',\n MerchantId: 'merchantId',\n AuthorisationUuid: 'authorisation_uuid',\n};\n\nexport const QRActions = {\n QrCheck: 'QrCheck',\n Recharge: 'recharge',\n Unknown: 'Unknown',\n};\n\nexport const TrackEvents = {\n SessionError: 'SessionError',\n SessionRestoredSuccessfully: 'SessionRestoredSuccessfully',\n SessionRestoredError: 'SessionRestoredError',\n};\n\nexport const HttpErrors = {\n BadRequest: 400,\n Unauthorized: 401,\n Forbidden: 403,\n NotFound: 404,\n};\n\nexport const SupportedLocales = ['cs', 'de', 'en', 'es', 'fr', 'it'];\n","import { ConfigurationSpa } from '@/models/common/configurationSpa';\n\nexport default class BaseService {\n protected clientsApiBaseUrl(): string {\n const spaConfig: ConfigurationSpa = JSON.parse(\n sessionStorage.getItem('spa.config') || '',\n );\n return spaConfig.clientsApiUrl;\n }\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Spinner.vue?vue&type=style&index=0&id=45883750&lang=scss&scoped=true&\"","export enum RootMutations {\n ShowToaster = 'showToaster',\n ShowEternalToaster = 'showEternalToaster',\n RemoveToaster = 'removeToaster',\n RemoveToasters = 'removeToasters',\n ShowSpinner = 'showSpinner',\n RemoveSpinner = 'removeSpinner',\n EnableVendonSpinner = 'enableVendonSpinner',\n DisableVendonSpinner = 'disableVendonSpinner',\n}\n\nexport enum RootActions {\n ShowToaster = 'showToaster',\n ShowEternalToaster = 'showEternalToaster',\n ShowSpinner = 'showSpinner',\n RemoveSpinner = 'removeSpinner',\n RemoveToaster = 'removeToaster',\n RemoveToasters = 'removeToasters',\n EnableVendonSpinner = 'enableVendonSpinner',\n DisableVendonSpinner = 'disableVendonSpinner',\n}\n\nexport enum RootGetters {\n Toasters = 'toasters',\n Spinners = 'spinners',\n VendonSpinner = 'vendonSpinner',\n}\n\nexport enum DashboardActions {\n DashboardView = 0,\n DeleteAccount = 1,\n EditAccount = 2,\n PurchaseHistory = 3,\n Feedback = 4,\n OnlineRecharge = 5,\n}\n","export enum CommonMutations {\n SetAnalyticsConsent = 'setAnalyticsConsent',\n SetLanguage = 'setLanguage',\n}\n\nexport enum CommonActions {\n SetAnalyticsConsent = 'common/setAnalyticsConsent',\n SetLanguage = 'common/setLanguage',\n}\n\nexport enum CommonGetters {\n AnalyticsConsent = 'common/analyticsConsent',\n Language = 'common/language',\n}\n","export enum MerchantConfigMutations {\n SetMerchantConfig = 'merchantConfigSetMerchantConfig',\n Clear = 'clear',\n}\n\nexport enum MerchantConfigActions {\n GetMerchantConfig = 'merchantConfig/getMerchantConfig',\n SetMerchantConfig = 'merchantConfig/setMerchantConfig',\n Clear = 'merchantConfig/clear',\n}\n\nexport enum MerchantConfigGetters {\n GetMerchantConfig = 'merchantConfig/getMerchantConfig',\n}\n","import { MerchantContact } from '@/models/config/merchantContact';\n\nexport class MerchantConfig {\n public merchantId: string | undefined = undefined;\n public companyName: string | undefined = undefined;\n public timeZone: string | undefined = undefined;\n public currency: string | undefined = undefined;\n public legalCompanyName: string | undefined = undefined;\n public legalAddress: string | undefined = undefined;\n public legalEmail: string | undefined = undefined;\n public legalVatCode: string | undefined = undefined;\n public services: string[] | undefined = [];\n public logoUrl: string | undefined = undefined;\n public color: string | undefined = undefined;\n public ingredientsUrl: string | undefined = undefined;\n public websiteUrl: string | undefined = undefined;\n public contacts: MerchantContact[] | undefined = [];\n public mediaHasCustomer = false;\n}\n","import { Routes } from '@/router/routes';\n\nexport default [\n {\n path: '/',\n name: Routes.Home,\n component: (): unknown => import(`@/views/Home.vue`),\n },\n {\n path: '/privacy',\n name: Routes.Privacy,\n component: (): unknown => import(`@/views/privacy/Privacy.vue`),\n },\n {\n path: '/cookies',\n name: Routes.Cookies,\n component: (): unknown => import(`@/views/cookies/Cookies.vue`),\n },\n {\n path: '/post/:id',\n name: Routes.BlogPost,\n component: (): unknown => import(`@/views/blog/BlogPost.vue`),\n },\n {\n path: '/qr-check/:id',\n name: Routes.QRCheck,\n component: (): unknown =>\n import(`@/views/qrcode-registration/QRLayout.vue`),\n },\n {\n path: '/mobileapp-registration/:ma',\n name: Routes.MobileAppRegistration,\n component: (): unknown =>\n import(`@/views/mobileapp-registration/MobileAppRegistration.vue`),\n },\n {\n path: '/pre-customer/:id?',\n name: Routes.PreCustomer,\n component: (): unknown =>\n import(`@/views/customer/PreCustomerDashboard.vue`),\n meta: {\n requiresAuth: true,\n },\n },\n {\n path: '/customer/:id?',\n name: Routes.Customer,\n component: (): unknown => import(`@/views/customer/Customer.vue`),\n meta: {\n requiresAuth: true,\n },\n },\n {\n path: '/vendon/payment/result',\n name: Routes.VendonTopUp,\n component: (): unknown => import(`@/views/vendon/VendonTopUp.vue`),\n meta: {\n requiresAuth: false,\n },\n },\n];\n","import { msalPluginInstance } from '@/plugin/MsalPlugin';\nimport { Routes } from '@/router/routes';\nimport VueRouter from 'vue-router';\n\nexport const authMiddlewareRouter = (router: VueRouter) => {\n router.beforeEach((to: any, from: any, next: any) => {\n if (to.matched.some((record: any) => record.meta.requiresAuth)) {\n const isAuth = msalPluginInstance.isUserAuthenticated();\n if (!isAuth) {\n next({ name: Routes.Home });\n }\n }\n next();\n });\n};\n","import Vue from 'vue';\nimport VueRouter, { RouteConfig } from 'vue-router';\nimport mainRoutes from './modules/main.routes';\nimport { authMiddlewareRouter } from '@/router/middleware/authMiddlewareRouter';\n\nVue.use(VueRouter);\n\nconst routes: Array = [...mainRoutes];\n\nconst router = new VueRouter({\n mode: 'history',\n routes,\n scrollBehavior() {\n window.scrollTo(0, 0);\n },\n});\n\nauthMiddlewareRouter(router);\n\nexport default router;\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toaster.vue?vue&type=style&index=0&id=8074db22&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('main',[_c('router-view'),_c('ck-spinner'),_c('ck-toaster')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showSpinner)?_c('div',{staticClass:\"sk-folding-container\"},[_c('div',{staticClass:\"sk-folding-cube\"},[_c('div',{staticClass:\"sk-cube1 sk-cube\",class:{ 'sk-cube-vendon': _vm.vendonSpinner }}),_c('div',{staticClass:\"sk-cube2 sk-cube\",class:{ 'sk-cube-vendon': _vm.vendonSpinner }}),_c('div',{staticClass:\"sk-cube4 sk-cube\",class:{ 'sk-cube-vendon': _vm.vendonSpinner }}),_c('div',{staticClass:\"sk-cube3 sk-cube\",class:{ 'sk-cube-vendon': _vm.vendonSpinner }})])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\nimport { RootGetters } from '@/store/enums';\n\n@Component\nexport default class Spinner extends Vue {\n get showSpinner(): boolean {\n return (this.$store.getters[RootGetters.Spinners] as number) > 0;\n }\n\n get vendonSpinner(): boolean {\n return this.$store.getters[RootGetters.VendonSpinner];\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Spinner.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Spinner.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Spinner.vue?vue&type=template&id=45883750&scoped=true&\"\nimport script from \"./Spinner.vue?vue&type=script&lang=ts&\"\nexport * from \"./Spinner.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Spinner.vue?vue&type=style&index=0&id=45883750&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"45883750\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"toaster-container\",class:{ 'toaster-container--active': _vm.toasters }},[_c('transition-group',{attrs:{\"name\":\"toasters\",\"tag\":\"div\"}},_vm._l((_vm.toasters),function(toaster){return _c('div',{key:toaster.id,staticClass:\"toaster toaster--error\",class:_vm.getStyles(toaster.type),on:{\"click\":function($event){return _vm.remove(toaster.id)}}},[_c('p',{staticClass:\"toaster__message\"},[_vm._v(_vm._s(toaster.message))])])}),0)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\nimport ToasterData, { ToasterTypes } from './ToasterData.model';\nimport { RootGetters } from '@/store/enums';\n\n@Component\nexport default class Toaster extends Vue {\n public toasterData: ToasterData = {} as ToasterData;\n\n public getStyles(type: ToasterTypes): string {\n const styles: string[] = [`toaster__icon--${type}`];\n\n if (type === 'warning') {\n styles.push('toaster--warning');\n } else if (type === 'error') {\n styles.push('toaster--error');\n } else {\n styles.push('toaster--success');\n }\n\n return styles.join(' ');\n }\n\n get toasters(): ToasterData[] {\n const toasters = this.$store.getters[RootGetters.Toasters] as ToasterData[];\n return toasters;\n }\n\n public remove(id: number): void {\n this.$toaster.removeToaster(id);\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toaster.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toaster.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Toaster.vue?vue&type=template&id=8074db22&scoped=true&\"\nimport script from \"./Toaster.vue?vue&type=script&lang=ts&\"\nexport * from \"./Toaster.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Toaster.vue?vue&type=style&index=0&id=8074db22&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8074db22\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\nimport i18n from './i18n';\nimport { Component, Vue } from 'vue-property-decorator';\nimport { CommonGetters } from './store/modules/common/enums';\nimport Spinner from '@/components/common/Spinner.vue';\nimport Toaster from '@/components/toaster/Toaster.vue';\nimport './style/app.scss';\n\n@Component({\n components: {\n 'ck-toaster': Toaster,\n 'ck-spinner': Spinner,\n },\n})\nexport default class App extends Vue {\n public mounted(): void {\n this.setLanguage();\n }\n\n private setLanguage() {\n const storedLanguage = this.$store.getters[CommonGetters.Language];\n if (storedLanguage) {\n i18n.locale = storedLanguage;\n } else {\n const navigatorLanguage = window.navigator.language || 'en';\n const navigatorCode = navigatorLanguage.split('-');\n i18n.locale = navigatorCode[0];\n }\n }\n}\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=1620ceec&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { CombinedVueInstance } from 'vue/types/vue';\nimport Vue from 'vue';\n\nexport const appApplicationErrorsInterceptor = (\n app: CombinedVueInstance>,\n) => {\n Vue.config.errorHandler = (err, vm, info) => {\n // err: error trace\n // vm: component in which error occured\n // info: Vue specific error information such as lifecycle hooks, events etc.\n app.$appInsights.trackException(err, vm, info);\n };\n};\n","import axios from 'axios';\nimport store from '@/store';\nimport { CombinedVueInstance } from 'vue/types/vue';\nimport { CommonGetters } from '@/store/modules/common/enums';\nimport { Promise } from 'es6-promise';\n\nexport const appInsightRequestErrorsInterceptor = (\n app: CombinedVueInstance>,\n) => {\n axios.interceptors.response.use(\n (response) => {\n return response;\n },\n (error) => {\n if (store.getters[CommonGetters.AnalyticsConsent] as boolean)\n app.$appInsights.trackException(error);\n return new Promise((resolve, reject) => {\n reject(error);\n });\n },\n );\n};\n","import * as cc from 'currency-codes';\nimport * as ccf from 'currency-formatter/index';\nimport { Store } from 'vuex';\nimport RootState from '@/store/rootState';\n\nexport class CurrenciesPluginService {\n constructor(private store: Store) {}\n public parse(value: number, currencyCode: string): number {\n return this.getNormalizedValue(value, currencyCode);\n }\n\n public parseToBase(value: number, currencyCode: string): number {\n return this.getBaseValue(value, currencyCode);\n }\n\n public parseWithCode(value: number, currencyCode: string): string {\n const cu = ccf.findCurrency(currencyCode);\n switch (currencyCode) {\n case 'EUR':\n case 'COP':\n case 'RSD':\n case 'RON':\n cu!.thousandsSeparator = '.';\n break;\n case 'ZAR':\n cu!.thousandsSeparator = ' ';\n break;\n case 'CZK':\n cu!.thousandsSeparator = '.';\n cu!.decimalDigits = 0;\n break;\n case 'CLP':\n case 'UYU':\n case 'PYG':\n cu!.decimalDigits = 0;\n break;\n case 'MXN':\n cu!.thousandsSeparator = ',';\n cu!.decimalDigits = 2;\n break;\n default:\n break;\n }\n\n const formatted = ccf.format(\n this.getNormalizedValue(value, currencyCode),\n cu,\n );\n return formatted;\n }\n\n public getNumberOfDecimalsOfSelectedMerchant(currencyCode: string): number {\n let numberOfDigits = cc.code(currencyCode)?.digits;\n if (\n currencyCode === 'CZK' ||\n currencyCode === 'CLP' ||\n currencyCode === 'UYU' ||\n currencyCode === 'PYG'\n ) {\n numberOfDigits = 0;\n }\n return numberOfDigits || 0;\n }\n\n private getNormalizedValue(value: number, currencyCode: string): number {\n const numberOfDigits =\n this.getNumberOfDecimalsOfSelectedMerchant(currencyCode);\n return value / Math.pow(10, numberOfDigits);\n }\n\n private getBaseValue(value: number, currencyCode: string): number {\n const numberOfDigits =\n this.getNumberOfDecimalsOfSelectedMerchant(currencyCode);\n const inBaseCurrency = value * Math.pow(10, numberOfDigits);\n const result = Math.round((inBaseCurrency + Number.EPSILON) * 100) / 100;\n return result;\n }\n}\n","import Store from '@/store';\nimport { CurrenciesPluginService } from '@/services/common/currencies.service';\n\nexport const currenciesPlugin = {\n install(vue: any) {\n vue.prototype.$currency = new CurrenciesPluginService(Store);\n },\n};\n","import { ConfigurationSpa } from '@/models/common/configurationSpa';\nimport { ApiBaseUrl } from '@/models/common/constants';\nimport axios from 'axios';\n\nclass ConfigurationService {\n public async getConfig(): Promise {\n const response = await axios.get(\n `${ApiBaseUrl}/spa-configuration`,\n );\n return response.data;\n }\n}\n\nexport const configurationService = new ConfigurationService();\n","import { RootActions } from '@/store/enums';\nimport { Store } from 'vuex';\nimport RootState from '@/store/rootState';\n\nexport class SpinnerPluginService {\n constructor(private store: Store) {}\n\n public showSpinner(): void {\n this.store.dispatch(RootActions.ShowSpinner);\n }\n\n public removeSpinner(): void {\n this.store.dispatch(RootActions.RemoveSpinner);\n }\n}\n","import Store from '@/store';\nimport { SpinnerPluginService } from '@/services/common/spinner.service';\n\nexport const spinnerPlugin = {\n install(vue: any) {\n vue.prototype.$spinner = new SpinnerPluginService(Store);\n },\n};\n","import { RootActions } from '@/store/enums';\nimport { Store } from 'vuex';\nimport RootState from '@/store/rootState';\nimport ToasterData from '@/components/toaster/ToasterData.model';\nimport VueI18n from 'vue-i18n';\n\nexport class ToasterService {\n constructor(private store: Store, private i18n: VueI18n) {}\n\n public showError(message: string, translate?: boolean): void {\n message = translate ? this.i18n.t(message).toString() : message;\n this.showToaster({ type: 'error', message } as ToasterData);\n }\n\n public showSuccess(message: string, translate?: boolean): void {\n message = translate ? this.i18n.t(message).toString() : message;\n this.showToaster({ type: 'success', message } as ToasterData);\n }\n\n public showWarning(message: string, translate?: boolean): void {\n message = translate ? this.i18n.t(message).toString() : message;\n this.showToaster({ type: 'warning', message } as ToasterData);\n }\n\n public showEternalError(message: string, translate?: boolean): void {\n message = translate ? this.i18n.t(message).toString() : message;\n this.showEternalToaster({ type: 'error', message } as ToasterData);\n }\n\n public showEternalSuccess(message: string, translate?: boolean): void {\n message = translate ? this.i18n.t(message).toString() : message;\n this.showEternalToaster({ type: 'success', message } as ToasterData);\n }\n\n public showEternalWarning(message: string, translate?: boolean): void {\n message = translate ? this.i18n.t(message).toString() : message;\n this.showEternalToaster({ type: 'warning', message } as ToasterData);\n }\n\n public removeToaster(toasterId: number): void {\n this.store.dispatch(RootActions.RemoveToaster, { toasterId });\n }\n\n public removeToasters(): void {\n this.store.dispatch(RootActions.RemoveToasters);\n }\n\n private showToaster(toaster: ToasterData) {\n this.store.dispatch(RootActions.ShowToaster, { toaster });\n }\n\n private showEternalToaster(toaster: ToasterData) {\n this.store.dispatch(RootActions.ShowEternalToaster, { toaster });\n }\n}\n","import Store from '@/store';\nimport { ToasterService } from '@/services/common/toaster.service';\n\nexport const toasterPlugin = {\n install(vue: any, options: any) {\n vue.prototype.$toaster = new ToasterService(Store, options.i18n);\n },\n};\n","import { msalPluginInstance } from '@/plugin/MsalPlugin';\nimport { eventHub } from '@/store/consts';\nimport axios from 'axios';\nimport { Promise } from 'es6-promise';\n\nexport const headerBearerTokenInterceptor = () => {\n axios.interceptors.request.use(\n async (config: any) => {\n eventHub.$emit('before-request', config.url);\n\n config = await msalPluginInstance.acquireToken().then((authToken) => {\n if (authToken) {\n config.headers.Authorization = `Bearer ${authToken}`;\n }\n return config;\n });\n\n // const authToken = store.getters[AuthGetters.AuthToken];\n // config.headers['Content-Type'] = 'application/json';\n\n // if (authToken) {\n // config.headers.Authorization = `Bearer ${authToken}`;\n // }\n return config;\n },\n (err: any) => {\n eventHub.$emit('request-error', err);\n\n return Promise.reject(err);\n },\n );\n};\n","import { HttpErrors } from '@/models/common/constants';\nimport { eventHub } from '@/store/consts';\nimport axios from 'axios';\nimport { Promise } from 'es6-promise';\n\nexport const refreshTokenInterceptor = () => {\n axios.interceptors.response.use(\n (response) => {\n eventHub.$emit('after-response', response.config.url);\n // Return a successful response back to the calling service\n return response;\n },\n (error) => {\n eventHub.$emit('response-error', error);\n // Return any error which is not due to authentication back to the calling service\n if (error.response?.status !== HttpErrors.Unauthorized) {\n return new Promise((resolve, reject) => {\n reject(error);\n });\n }\n },\n );\n};\n","import App from '@/App.vue';\nimport i18n from '@/i18n';\nimport { appApplicationErrorsInterceptor } from '@/interceptors/axios-interceptor-app-errors';\nimport { appInsightRequestErrorsInterceptor } from '@/interceptors/axios-interceptor-app-insight-errors';\nimport { ConfigurationSpa } from '@/models/common/configurationSpa';\nimport { MsalPlugin, MsalPluginOptions } from '@/plugin/MsalPlugin';\nimport { currenciesPlugin } from '@/plugin/CurrenciesPlugin';\nimport router from '@/router';\nimport { configurationService } from '@/services/spa-conf/configuration.service';\nimport store from '@/store';\nimport { BootstrapVue } from 'bootstrap-vue';\nimport { spinnerPlugin } from '@/plugin/SpinnerPlugin';\nimport { toasterPlugin } from '@/plugin/ToasterPlugin';\nimport Vue from 'vue';\nimport VueAnalytics from 'vue-analytics';\nimport VueAppInsights from 'vue-application-insights';\nimport VModal from 'vue-js-modal';\nimport Loading from 'vue-loading-overlay';\nimport OTPInput8 from '@8bu/vue-otp-input';\nimport 'vue-loading-overlay/dist/vue-loading.css';\nimport Toasted from 'vue-toasted';\nimport { headerBearerTokenInterceptor } from './interceptors/axios-interceptor-header-token';\nimport { refreshTokenInterceptor } from './interceptors/axios-interceptor-renew-token';\n\nconst initApp = () => {\n const spaConfig: ConfigurationSpa = JSON.parse(\n sessionStorage.getItem('spa.config') || '',\n );\n\n const msalOptions: MsalPluginOptions = {\n clientId: spaConfig.msalConfig.clientId,\n loginAuthority: spaConfig.msalConfig.loginAuthority,\n changePasswordAuthority: spaConfig.msalConfig.changePasswordAuthority,\n knownAuthority: spaConfig.msalConfig.knownAuthority,\n apiReadScope: spaConfig.msalConfig.apiReadScope,\n };\n\n Vue.use(new MsalPlugin(), msalOptions);\n Vue.use(currenciesPlugin);\n\n Vue.config.productionTip = false;\n Vue.use(BootstrapVue);\n Vue.use(Loading);\n Vue.use(OTPInput8);\n Vue.use(Toasted);\n Vue.use(spinnerPlugin);\n Vue.use(toasterPlugin, { i18n });\n Vue.use(VueAnalytics, {\n id: process.env.VUE_APP_GA_CODE,\n router,\n });\n Vue.use(VueAppInsights, {\n id: spaConfig.instrumentationKeyAppInsight,\n router,\n });\n Vue.use(VModal);\n\n const app = new Vue({\n router,\n i18n,\n store,\n render: (h) => h(App),\n }).$mount('#app');\n\n headerBearerTokenInterceptor();\n refreshTokenInterceptor();\n appInsightRequestErrorsInterceptor(app);\n appApplicationErrorsInterceptor(app);\n};\n\nconst hasConfig = sessionStorage.getItem('spa.config');\n\nif (!hasConfig) {\n configurationService.getConfig().then((response: ConfigurationSpa) => {\n sessionStorage.setItem('spa.config', JSON.stringify(response));\n initApp();\n });\n} else {\n initApp();\n}\n","export enum AuthMutations {\n AuthRequest = 'authRequest',\n Success = 'authSuccess',\n Error = 'authError',\n Logout = 'authLogout',\n AwaitingB2CResponse = 'authAwaitingB2CResponse',\n}\n\nexport enum AuthActions {\n Login = 'auth/login',\n Logout = 'auth/logout',\n CheckQR = 'auth/QRLogin',\n CheckMobileHash = 'auth/MobileAppRegistration',\n SetAwaitingB2CResponse = 'auth/setAwaitingB2CResponse',\n}\n\nexport enum AuthGetters {\n IsAuthenticated = 'auth/isAuthenticated',\n AuthStatus = 'auth/authStatus',\n GetCustomerInfo = 'auth/getCustomerInfo',\n AwaitingB2CResponse = 'auth/awaitingB2CResponse',\n}\n","import { PrivacyConsents } from '@/models/customers/privacyConsents';\nimport BaseService from '@/services/base/base.service';\nimport CustomerInfo from '@/store/modules/auth/authState';\nimport axios from 'axios';\n\nclass CustomerService extends BaseService {\n public async loadProfile() {\n return await axios.get(`${super.clientsApiBaseUrl()}/customers/me`);\n }\n\n // TODO: review this page, size, also merchantid should be passed to the body of the request, not from query\n public loadUserPurchases(\n mediaId: string,\n merchantId: string,\n page = 1,\n size = 10,\n ) {\n const response = axios.get(\n `${super.clientsApiBaseUrl()}/medias/${mediaId}/transactions` +\n `?merchantId=${merchantId}&page=${page}&size=${size}`,\n );\n\n return response;\n }\n\n public async updateProfile(customerInfo: CustomerInfo) {\n return await axios.put(\n `${super.clientsApiBaseUrl()}/customers/me`,\n customerInfo,\n );\n }\n\n public async createProfile(userInfo: any) {\n return await axios.post(\n `${super.clientsApiBaseUrl()}/customers/register`,\n userInfo,\n );\n }\n\n public async deleteProfile() {\n return await axios.delete(`${super.clientsApiBaseUrl()}/customers/me`);\n }\n\n public async updatePrivacyConsents(\n merchantId: string,\n privacyInfo: Partial,\n ) {\n return await axios.put(\n `${super.clientsApiBaseUrl()}/customers/${merchantId}/privacy`,\n privacyInfo,\n );\n }\n\n public async getPrivacyConsents(\n merchantId: string,\n ): Promise {\n const response = await axios.get(\n `${super.clientsApiBaseUrl()}/customers/${merchantId}/privacy`,\n );\n\n return response.data;\n }\n}\n\nexport const customerService = new CustomerService();\n","import { MerchantConfig } from '@/models/config/merchantConfig';\nimport { MerchantPrivacy } from '@/models/config/merchantPrivacy';\nimport BaseService from '@/services/base/base.service';\nimport axios from 'axios';\n\nclass ConfigService extends BaseService {\n public async getMerchantConfig(merchantId: string): Promise {\n const response = await axios.get(\n `${super.clientsApiBaseUrl()}/config/${merchantId}`,\n );\n return response.data;\n }\n\n public async getMerchantPrivacy(\n merchantId: string,\n lang: string,\n ): Promise {\n const response = await axios.get(\n `${super.clientsApiBaseUrl()}/config/${merchantId}/privacy?lang=${lang}`,\n );\n return response.data;\n }\n\n public async getByMediaHash(hash: string): Promise {\n const response = await axios.get(\n `${super.clientsApiBaseUrl()}/config/media/${hash}`,\n );\n return response.data;\n }\n\n public async getByMobileHash(hash: string): Promise {\n const response = await axios.get(\n `${super.clientsApiBaseUrl()}/config/mobile/${hash}`,\n );\n return response.data;\n }\n}\n\nexport const configService = new ConfigService();\n"],"sourceRoot":""}