{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/views/CompleteRegistration.vue?1aa2","webpack:///./src/assets/verji/verji.svg","webpack:///./src/assets/verji/logo-main.svg","webpack:///./src/views/TenantOnboardingRegistration.vue?24a8","webpack:///./src/views/LandingPage.vue?5a4d","webpack:///./src/views/VerifyRegistration.vue?4734","webpack:///./src/components/global/Card.vue","webpack:///./src/components/global/Card.vue?a2cc","webpack:///./src/enums/vuex.ts","webpack:///./src/components/OnboardingCodeRedirecter.vue?739d","webpack:///./src/App.vue","webpack:///./src/components/global/NavBar.vue","webpack:///./src/components/global/NavBar.vue?a567","webpack:///./src/components/global/NavBar.vue?e2d9","webpack:///./src/components/global/NavBar.vue?74d3","webpack:///./src/App.vue?9844","webpack:///./src/App.vue?5890","webpack:///./src/App.vue?3746","webpack:///./src/store/context/states.ts","webpack:///./src/store/states.ts","webpack:///./src/store/context/mutations.ts","webpack:///./src/store/mutations.ts","webpack:///./src/constants/apiUrls.ts","webpack:///./src/config/oidc.ts","webpack:///./src/store/context/actions.ts","webpack:///./src/api/client.ts","webpack:///./src/store/actions.ts","webpack:///./src/store/getters.ts","webpack:///./src/store/index.ts","webpack:///./src/views/Home.vue","webpack:///./src/components/OnboardingCodeRedirecter.vue","webpack:///./src/components/OnboardingCodeRedirecter.vue?33e2","webpack:///./src/components/OnboardingCodeRedirecter.vue?c1fa","webpack:///./src/components/OnboardingCodeRedirecter.vue?90b4","webpack:///./src/views/Home.vue?ee04","webpack:///./src/views/Home.vue?6e7f","webpack:///./src/views/Home.vue?86b4","webpack:///./src/views/LandingPage.vue","webpack:///./src/views/LandingPage.vue?8742","webpack:///./src/router/middleware/routeguard/src/conditionEngine.ts","webpack:///./src/views/LandingPage.vue?c609","webpack:///./src/views/LandingPage.vue?f705","webpack:///./src/views/CompleteRegistration.vue","webpack:///./src/views/CompleteRegistration.vue?a0a1","webpack:///./src/views/CompleteRegistration.vue?58aa","webpack:///./src/views/CompleteRegistration.vue?1a49","webpack:///./src/views/VerifyRegistration.vue","webpack:///./src/views/VerifyRegistration.vue?b06f","webpack:///./src/views/VerifyRegistration.vue?4b4e","webpack:///./src/views/VerifyRegistration.vue?41a4","webpack:///./src/views/OidcCallbackError.vue","webpack:///./src/views/OidcCallbackError.vue?0750","webpack:///./src/router/middleware/routeguard/ensureRegistration.ts","webpack:///./src/router/middleware/routeguard/refreshRegistration.ts","webpack:///./src/router/middleware/routeguard/src/routeHooks.ts","webpack:///./src/router/middleware/routeguard/navigation.ts","webpack:///./src/enums/fn.ts","webpack:///./src/router/middleware/routeguard/validOnboarding.ts","webpack:///./src/router/middleware/routeguard/verifyLink.ts","webpack:///./src/router/middleware/oidcBankId.ts","webpack:///./src/router/middleware/oidcVipps.ts","webpack:///./src/router/middleware/routeguard/existingUser.ts","webpack:///./src/router/middleware/index.ts","webpack:///./src/views/OnboardingRegistration.vue","webpack:///./src/views/OnboardingRegistration.vue?a80f","webpack:///./src/views/OnboardingRegistration.vue?6ced","webpack:///./src/views/OnboardingRegistration.vue?f054","webpack:///./src/views/TenantOnboardingRegistration.vue","webpack:///./src/views/TenantOnboardingRegistration.vue?0eac","webpack:///./src/views/TenantOnboardingRegistration.vue?1de1","webpack:///./src/views/TenantOnboardingRegistration.vue?aacd","webpack:///./src/router/index.ts","webpack:///./src/plugins/fontawesome.ts","webpack:///./src/plugins/vuetify.ts","webpack:///./src/enums/common.ts","webpack:///./src/config/growthbook.ts","webpack:///./src/load.ts","webpack:///./src/main.ts","webpack:///./src/scripts/freshworks.ts","webpack:///./src/views/OnboardingRegistration.vue?3d54","webpack:///./src/components/global/NavBar.vue?18ba","webpack:///./src/views/Home.vue?0096"],"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","attrs","staticRenderFns","render","component","ActionTypes","MutationTypes","_setup","_vm","staticClass","_c","logo","scopedSlots","on","Vue","extend","methods","this","$vuetify","breakpoint","xsOnly","require","logoWidth","supportRedirect","toggleWidget","components","NavBar","mounted","attachFreshworksWidget","querySelector","scriptExt","async","defer","state","config","vmxAccountUrl","verjiLinkOnboardingUrl","bankIdSettings","vippsSettings","featureFlagConnectionString","clientRedirectUrl","context","Context","guards","begin","bankId","vipps","supplement","complete","routeInvitationLink","id","open","checked","response","registration","jobId","customerId","linkOnboardingId","loginId","supplements","organization","businessRegistryId","email","phone","verify","verified","token","registrationContactInfo","activeRegistration","linkRegistrationId","existingVippsAccount","hasExistingVerjiAccount","emailVerified","errorState","onboarding","verificationCodes","validatedSteps","verificationForm","personalInfoForm","companyInfoForm","createPasswordForm","onboardingSupplements","firstName","lastName","companyName","emailVerificationCode","smsVerificationCode","password","isTenantOnboarding","validationCodeErrors","growthbook","mutations","SET_CONFIG","ContextMutations","SET_ROUTE_INVITATION_LINK","SET_BEGIN_REGISTRATION","beginRegistrationResponse","SET_SUPPLEMENTS","SET_VERIFY","SET_LINK_REGISTRATION_ID","SET_ACTIVE_REGISTRATION","SET_EXISTING_VIPPS_ACCOUNT","accountInfo","SET_EXISTING_VERJI_ACCOUNT","isExisting","SET_EMAIL_VERIFIED","SET_BEGIN_ONBOARDING","verifiedOnboardingCodeResponse","SET_IS_TENANT_ONBOARDING","SET_VERIFICATION_CODES","SET_VALIDATED_STEPS","SET_ONBOARDING_SUPPLEMENT_INFO","SET_VALIDATION_CODE_ERRORS","SET_BEGIN_ROUTE_ENABLE","enable","SET_BANKID_ROUTE_ENABLE","SET_VIPPS_ROUTE_ENABLE","SET_SUPPLEMENT_ROUTE_ENABLE","SET_COMPLETE_ROUTE_ENABLE","SET_GROWTHBOOK","SET_ERROR_STATE","linkOnboarding","getInvitedUserInfo","verifyOnboardingCode","requestNewCodes","validateVerificationCodes","completeOnboardingRegistration","tenantOnboarding","verifyTenantOnboardingCode","completeTenantOnboardingRegistration","activeLinkOnboarding","createLinkRegistration","putVippsInfo","setRegistrationContactInfo","verifyRegistration","lookupLinkRegistration","getLinkRegistrationById","existingEmail","linkOnboardingApi","account","accountApi","getSettingsBankId","store","getters","getConfig","bankidConfig","authority","client_id","redirect_uri","response_type","acr_values","scope","getSettingsVipps","vippsConfig","userStore","WebStorageStateStore","prefix","sessionStorage","getOidcStoreBankId","vuexOidcCreateStoreModule","namespaced","publicRoutePaths","noBankIdRequired","getOidcStoreVipps","noVippsRequired","actions","setConfig","commit","warn","JSON","stringify","HttpMethods","ErrorCodes","defaultRetry","ApiClient","constructor","_defineProperty","verjiAccountUrl","setupInterceptors","_axiosInstance","interceptors","use","res","_res$response","_res$config","TooManyRequests","status","info","url","_res$response$headers","_res$response2","headers","RetryAfter","_res$config2","method","GET","POST","post","PUT","put","DELETE","delete","catch","_error","endpoint","accessToken","axiosInstance","axios","defaults","raxConfig","retry","noResponseRetries","instance","httpMethodsToRetry","statusCodesToRetry","backoffType","onRetryAttempt","retryAttempt","rax","currentRetryAttempt","log","common","defaultTimeout","withCredentials","invitationLinkId","replace","linkInfo","_registration$custome","_registration$linkOnb","_registration$jobId","phoneNumber","clientOrganizationName","clientOrganizationId","ContextActions","checkInvitationLink","dispatch","apiClient","getActiveLink","validLink","invalidLink","resetRouteGuard","resetInvitationLink","emptyRoute","beginRegistration","_linkInfo$response$cu","_linkInfo$response","_linkInfo$response$jo","_linkInfo$response2","baseURL","Authorization","getContext","body","invalidRegistration","resetBeginRegistration","emptyRegistration","emailExists","linkOnboardingRegistrationId","setEmailVerified","payload","_payload$email","subId","sub","params","registerVippsBankIdModules","registerModule","putVippsToken","flowName","title","description","flowRouteName","setErrorState","router","path","setSupplementInfo","validSupplements","invalidSupplements","linkcode","startsWith","invalidOnboarding","invitingPersonCompanyName","invitingPersonDisplayName","invitingPersonId","onboardingId","registrationCompleted","tenantId","tenantOnboardingId","validateStatus","responseData","setOnboardingSupplementInfo","setValidationCodeErrors","resetValidationCodeErrors","setVerificationCodes","resetVerificationCodes","setValidatedSteps","resetValidatedSteps","setExistingVippsAccount","clearExistingVippsAccount","setGrowthbook","setActiveRegistration","setExistingVerjiAccount","resetSupplementInfo","setBeginRouteActive","active","setBankIdRouteActive","setVippsRouteActive","setSupplementRouteActive","setCompleteRouteActive","checkVerifyCode","errorVerify","Vuex","Store","plugins","createPersistedState","_self","_setupProxy","_v","preventDefault","$event","model","callback","$$v","isFormValid","goToUrl","uppercase","search","loading","rules","v","test","computed","getUrl","location","isDisabled","toUpperCase","$router","Card","OnboardingCodeRedirecter","InvitationLinkInfo","ErrorMessages","$store","customerName","personName","registrationManualApproval","_e","_m","to","from","next","link","linkObject","lookUpRequest","registrationItem","lookupRegistrationResult","count","registrationResponse","results","storedRegistration","_to$query","_to$query2","query","toString","ConditionEngine","initialized","updateVuexSnapshot","setInitialized","consoleWarn","isInitialized","routedTo","routeError","initError","_this$routeInvitation","_this$routeInvitation2","checkBeginConditions","bankIdError","checkBankIdConditions","checkVippsConditions","checkSupplementConditions","attachAfterHook","afterEach","setRouteGuard","routeGuards","FeatureNames","conditionEngine","init","checkCompleteConditions","_to$params","invitationLink","isOnboardingAllowed","isOn","onboardingRegistration","_res$tenantId","hasAccess","routeguard","validOnboarding","oidcBankId","ensureRegistration","navigation","oidcVipps","existingUser","refreshRegistration","verifyLink","beginOnboarding","nextFactory","middleware","index","subsequentMiddleware","Array","isArray","nextMiddleware","_s","getInviterName","getInviterCompanyName","isRegistrationComplete","RegistrationStepper","_this$$store$getters$","_this$$store$getters$2","_this$$store$getters$3","getCompanyName","_this$$store$getters$4","VueRouter","routes","Home","meta","isPublic","VerifyRegistration","middlewareName","OidcCallbackError","LandingPage","OnboardingRegistration","TenantOnboardingRegistration","CompleteRegistration","beforeEach","_to$meta","bypass","FontAwesomeIcon","FontAwesomeLayers","FontAwesomeLayersText","faDotCircle","faCheckCircle","faCircle","faCog","faEye","faEyeSlash","faSquare","faRetweet","faFile","faList","faFileSignature","faSignOut","faUser","faHome","faLockOpen","faExclamation","faExclamationTriangle","faUserClock","faUserTimes","faShieldAlt","faShield","faUserShield","faUserCheck","faUserFriends","faUserEdit","faUsers","faUsersCog","faChevronDown","faChevronUp","faExchangeAlt","faPen","faCaretLeft","faCaretRight","faCaretDown","faCaretUp","faSortUp","faSortDown","faCopy","faChevronLeft","faChevronRight","faCheckSquare","faCircleNotch","faPaperclip","faSearch","faBars","faPlus","faCloudDownloadAlt","faCloudUploadAlt","faShare","faEnvelope","faCheck","faCamera","faTimes","faTimesCircle","faHandPointLeft","faQuestionCircle","faSync","faInfoCircle","library","add","FontAwesomeIcons","iconfont","Vuetify","vuetifyOptions","theme","themes","light","lighttouch","primary","secondary","accent","highlight","success","warning","dark","customProperties","icons","Common","VerjiGrowthBook","GrowthBook","apiHost","clientKey","super","includes","localSignup","localUrl","localServe","staging","fetch","ok","json","growthbookConfig","loadFeatures","autoRefresh","$growthbook","$config","loadVue","_response$status","vuetify","h","App","$mount","productionTip","load","iframe","getElementById","FreshworksWidget","fwSettings","anonFunc","q","arguments"],"mappings":"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","file":"js/app.a4714670.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/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"e79859c8\",\"chunk-018967fb\":\"eabe3354\",\"chunk-9bc14a70\":\"bf325b1b\",\"chunk-2d0c061a\":\"223a114a\",\"chunk-2d21368e\":\"8584cc64\",\"chunk-3b4871b4\":\"f5fea147\",\"chunk-5c2f2666\":\"c7ca604b\",\"chunk-7a025610\":\"e2141308\",\"chunk-7b467aa8\":\"daad5c08\",\"chunk-fafb8e56\":\"6125c830\",\"chunk-18885147\":\"39d5a243\",\"chunk-c408f804\":\"e94d7e72\",\"chunk-2ba23d75\":\"27d249f1\",\"chunk-47120dea\":\"01a4e8b9\",\"chunk-73039b06\":\"173eff44\",\"chunk-f7fae0f0\":\"16badd0f\"}[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-018967fb\":1,\"chunk-9bc14a70\":1,\"chunk-3b4871b4\":1,\"chunk-5c2f2666\":1,\"chunk-7a025610\":1,\"chunk-7b467aa8\":1,\"chunk-fafb8e56\":1,\"chunk-18885147\":1,\"chunk-c408f804\":1,\"chunk-2ba23d75\":1,\"chunk-47120dea\":1,\"chunk-73039b06\":1,\"chunk-f7fae0f0\":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/\" + ({\"about\":\"about\"}[chunkId]||chunkId) + \".\" + {\"about\":\"31d6cfe0\",\"chunk-018967fb\":\"d6db717c\",\"chunk-9bc14a70\":\"f6a63dea\",\"chunk-2d0c061a\":\"31d6cfe0\",\"chunk-2d21368e\":\"31d6cfe0\",\"chunk-3b4871b4\":\"1512f1cd\",\"chunk-5c2f2666\":\"c58819b5\",\"chunk-7a025610\":\"d35a8ac2\",\"chunk-7b467aa8\":\"b2add3d5\",\"chunk-fafb8e56\":\"6147ba90\",\"chunk-18885147\":\"6a080c49\",\"chunk-c408f804\":\"5b406bfe\",\"chunk-2ba23d75\":\"d82c7b41\",\"chunk-47120dea\":\"221ad0ae\",\"chunk-73039b06\":\"6490c6d4\",\"chunk-f7fae0f0\":\"4c78e7ed\"}[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 * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompleteRegistration.vue?vue&type=style&index=0&id=309cbfa7&prod&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"img/verji.170a6bac.svg\";","module.exports = __webpack_public_path__ + \"img/logo-main.1487833b.svg\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TenantOnboardingRegistration.vue?vue&type=style&index=0&id=30baf2c5&prod&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LandingPage.vue?vue&type=style&index=0&id=56fb1559&prod&scoped=true&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VerifyRegistration.vue?vue&type=style&index=0&id=36674904&prod&scoped=true&lang=css&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',{staticClass:\"mx-6 my-6\",attrs:{\"outlined\":\"\",\"elevation\":\"2\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_vm._t(\"default\")],2)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Card.vue?vue&type=template&id=7a8baa42&\"\nvar script = {}\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","export enum ActionTypes {\n // Context\n setConfig = \"setConfig\",\n\n // Store\n checkInvitationLink = \"checkInvitationLink\",\n resetInvitationLink = \"resetInvitationLink\",\n beginRegistration = \"beginRegistration\",\n resetBeginRegistration = \"resetBeginRegistration\",\n setSupplementInfo = \"setSupplementInfo\",\n // setCustomEmail = \"setCustomEmail\",\n resetSupplementInfo = \"resetSupplementInfo\",\n checkVerifyCode = \"checkVerifyCode\",\n\n // Onboarding\n verifyOnboardingCode = \"verifyOnboardingCode\",\n setVerificationCodes = \"setVerificationCodes\",\n setOnboardingSupplementInfo = \"setOnboardingSupplementInfo\",\n setValidationCodeErrors = \"setValidationCodeErrors\",\n resetValidationCodeErrors = \"resetValidationCodeErrors\",\n resetVerificationCodes = \"resetVerificationCodes\",\n setValidatedSteps = \"setValidatedSteps\",\n resetValidatedSteps = \"resetValidatedSteps\",\n requestNewCodes = \"requestNewCodes\",\n validateVerificationCodes = \"validateVerificationCodes\",\n completeOnboardingRegistration = \"completeOnboardingRegistration\",\n // BankId Vipps\n putVippsToken = \"putVippsToken\",\n lookupLinkRegistration = \"lookupLinkRegistration\",\n registerVippsBankIdModules = \"registerVippsBankIdModules\",\n existingVippsAccount = \"existingVippsAccount\",\n existingEmail = \"existingEmail\",\n emailVerified = \"emailVerified\",\n\n // Route guard\n setBeginRouteActive = \"setBeginRouteActive\",\n setBankIdRouteActive = \"setBankIdRouteActive\",\n setVippsRouteActive = \"setVippsRouteActive\",\n setSupplementRouteActive = \"setSupplementRouteActive\",\n setCompleteRouteActive = \"setCompleteRouteActive\",\n\n resetRouteGuard = \"resetRouteGuard\",\n setActiveRegistration = \"setActiveRegistration\",\n getLinkRegistrationById = \"getLinkRegistrationById\",\n setExistingVippsAccount = \"setExistingVippsAccount\",\n clearExistingVippsAccount = \"clearExistingVippsAccount\",\n setExistingVerjiAccount = \"setExistingVerjiAccount\",\n setEmailVerified = \"setEmailVerified\",\n\n //Growthbook\n setGrowthbook = \"setGrowthbook\",\n\n // Error\n setErrorState = \"setErrorState\",\n \n}\n\n\n\n\nexport enum MutationTypes {\n // Context\n SET_CONFIG = \"SET_CONFIG\",\n\n // Store\n SET_BEGIN_REGISTRATION = \"SET_BEGIN_REGISTRATION\",\n SET_ROUTE_INVITATION_LINK = \"SET_ROUTE_INVITATION_LINK\",\n SET_SUPPLEMENTS = \"SET_SUPPLEMENTS\",\n SET_VERIFY = \"SET_VERIFY\",\n\n SET_LINK_REGISTRATION_ID = \"SET_LINK_REGISTRATION_ID\",\n SET_ACTIVE_REGISTRATION = \"SET_ACTIVE_REGISTRATION\",\n SET_EXISTING_VIPPS_ACCOUNT = \"SET_EXISTING_VIPPS_ACCOUNT\",\n SET_EXISTING_VERJI_ACCOUNT = \"SET_EXISTING_VERJI_ACCOUNT\",\n SET_EMAIL_VERIFIED = \"SET_EMAIL_VERIFIED\",\n\n // Onboarding\n SET_BEGIN_ONBOARDING = \"SET_BEGIN_ONBOARDING\",\n SET_IS_TENANT_ONBOARDING = \"SET_IS_TENANT_ONBOARDING\",\n SET_VERIFICATION_CODES = \"SET_VERIFICATION_CODES\",\n SET_VALIDATED_STEPS = \"SET_VALIDATED_STEPS\",\n SET_ONBOARDING_SUPPLEMENT_INFO = \"SET_ONBOARDING_SUPLEMENT_INFO\",\n SET_VALIDATION_CODE_ERRORS = \"SET_VALIDATION_CODE_ERRORS\",\n // Route guard\n SET_BEGIN_ROUTE_ENABLE = \"SET_BEGIN_ROUTE_ENABLE\",\n SET_BANKID_ROUTE_ENABLE = \"SET_BANKID_ROUTE_ENABLE\",\n SET_VIPPS_ROUTE_ENABLE = \"SET_VIPPS_ROUTE_ENABLE\",\n SET_SUPPLEMENT_ROUTE_ENABLE = \"SET_SUPPLEMENT_ROUTE_ENABLE\",\n SET_COMPLETE_ROUTE_ENABLE = \"SET_COMPLETE_ROUTE_ENABLE\",\n // Growthbook\n SET_GROWTHBOOK = \"SET_GROWTHBOOK\",\n // Error\n SET_ERROR_STATE = \"SET_ERROR_STATE\",\n}","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnboardingCodeRedirecter.vue?vue&type=style&index=0&id=42458e68&prod&scoped=true&lang=css&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app',[_c('nav-bar'),_c('v-main',{staticClass:\"d-flex\"},[_c('router-view')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app-bar',{attrs:{\"app\":\"\",\"color\":\"#5b961c\",\"elevation\":\"4\",\"clipped-left\":\"\"}},[_c('v-row',{staticClass:\"justify-flex-end\"},[_c('div',{staticClass:\"align-self-center\"},[_c('span',[_c('v-img',{staticClass:\"shrink ml-2\",attrs:{\"alt\":\"Verji Logo\",\"contain\":\"\",\"src\":_vm.logo(),\"transition\":\"scale-transition\",\"width\":_vm.logoWidth()}})],1)]),_c('div',{staticClass:\"mr-auto\"}),_c('v-tooltip',{staticClass:\"align-self-center\",attrs:{\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs } ){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"d-flex align-self-center\",attrs:{\"small\":\"\",\"icon\":\"\",\"color\":\"dark\"},on:{\"click\":_vm.supportRedirect}},'v-btn',attrs,false),on),[_c('fa',_vm._g(_vm._b({staticClass:\"info--primary mr-4\",staticStyle:{\"color\":\"#FFF\"},attrs:{\"icon\":\"question-circle\",\"size\":\"3x\"}},'fa',attrs,false),on))],1)]}}])},[_c('span',[_vm._v(\"Support\")])])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport Vue from \"vue\"\nimport { toggleWidget } from \"@/scripts/freshworks\"\nexport default Vue.extend({\n\tname: \"NavBar\",\n\tmethods: {\n\t\tlogo(): void {\n\t\t\tif (!this.$vuetify.breakpoint.xsOnly) {\n\t\t\t\treturn require(\"@/assets/verji/logo-main.svg\")\n\t\t\t} else {\n\t\t\t\treturn require(\"@/assets/verji/verji.svg\")\n\t\t\t}\n\t\t},\n\t\tlogoWidth(): number {\n\t\t\treturn !this.$vuetify.breakpoint.xsOnly ? 100 : 70\n\t\t},\n supportRedirect(): void {\n\t\t\ttoggleWidget();\n\t\t}\n\t},\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--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBar.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--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavBar.vue?vue&type=template&id=2707b374&scoped=true&\"\nimport script from \"./NavBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NavBar.vue?vue&type=style&index=0&id=2707b374&prod&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 \"2707b374\",\n null\n \n)\n\nexport default component.exports","\nimport Vue from 'vue'\nimport NavBar from './components/global/NavBar.vue'\n\nexport default Vue.extend({\n components: { NavBar },\n name: 'App',\n mounted(){\n this.attachFreshworksWidget();\n },\n\tmethods: {\n\t\tattachFreshworksWidget(): void {\n\t\t\tconst head = document.querySelector(\"head\") as HTMLInputElement;\n\t\t\tconst scriptExt = document.createElement(\"script\");\n\t\t\tscriptExt.setAttribute(\"src\", \"https://euc-widget.freshworks.com/widgets/80000008192.js\");\n\t\t\tscriptExt.async = true;\n\t\t\tscriptExt.defer = true;\n\t\t\tif(head !== null) {\n\t\t\t\thead.appendChild(scriptExt);\n\t\t\t}\n\t\t}\n\t} \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--1-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--1-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=1f337e8d&\"\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 { StateNamespace, Config } from \"@/types/common\"\n\n\nexport type State = {\n config: Config\n}\n\nexport const state: State = {\n\tconfig: {\n vmxAccountUrl: \"\",\n verjiLinkOnboardingUrl: \"\",\n bankIdSettings: null,\n vippsSettings: null,\n featureFlagConnectionString: \"\",\n clientRedirectUrl: \"\"\n },\n}\n\nexport type ContextState = StateNamespace","import { StateNamespace, Config } from \"@/types/common\"\nimport { state as Context} from \"@/store/context/states\"\nimport { BeginRegistrationResponse, ErrorState, LoginInfoResultModel, LinkRegistrationItem, RegistrationContactInfoResponse, RouteGuards, RouteInvitationLink, Supplements, Verify, VerifyOnboardingCodeResponse, VerificationCodes, ValidatedSteps, OnboardingSupplements, ValidateVerificationCodesResponse, VerifyTenantOnboardingCodeResponse } from \"@/types/data\"\nimport { VerjiGrowthBook } from \"@/config/growthbook\"\n\n\nexport type State = {\n\tcontext: typeof Context\n\tguards: RouteGuards\n\trouteInvitationLink: RouteInvitationLink\n\tregistration: BeginRegistrationResponse\n\tregistrationContactInfo: RegistrationContactInfoResponse\n\tsupplements: Supplements\n\tverify: Verify\n linkRegistrationId: any\n activeRegistration: LinkRegistrationItem\n existingVippsAccount: LoginInfoResultModel | null\n hasExistingVerjiAccount: boolean | null\n emailVerified: boolean | null\n errorState: ErrorState | null\n // onboarding\n onboarding: VerifyOnboardingCodeResponse | VerifyTenantOnboardingCodeResponse | null\n isTenantOnboarding: boolean\n verificationCodes: VerificationCodes | null\n validatedSteps: ValidatedSteps\n onboardingSupplements: OnboardingSupplements\n validationCodeErrors: ValidateVerificationCodesResponse | null\n growthbook: VerjiGrowthBook | null\n}\n\nexport const state: State = {\n\tcontext: {...Context},\n\tguards: {\n\t\tbegin: true,\n\t\tbankId: false,\n\t\tvipps: false,\n\t\tsupplement: false,\n\t\tcomplete: false\n\t},\n\trouteInvitationLink: { \n\t\tid: null, \n\t\topen: false,\n\t\tchecked: false,\n\t\tresponse: null\n\t},\n\tregistration: {\n\t\tjobId: null,\n\t\tcustomerId: null,\n\t\tlinkOnboardingId: null,\n\t\tloginId: null\n\t},\n\tsupplements: {\n\t\torganization: null,\n businessRegistryId: null,\n\t\temail: null,\n\t\tphone: null,\n\t\tresponse: null\n\t},\n\tverify: {\n\t\tverified: false,\n\t\tid: \"\",\n\t\ttoken: \"\"\n\t},\n\tregistrationContactInfo: {\n\t\tjobId: null,\n\t\tcustomerId: null,\n\t\tlinkOnboardingId: null,\n\t\tloginId: null\n\t},\n activeRegistration: {\n\n },\n linkRegistrationId: null,\n existingVippsAccount: null,\n hasExistingVerjiAccount: null,\n emailVerified: null,\n errorState: null,\n\t// Onboarding\n onboarding: null,\n verificationCodes: null,\n validatedSteps: {\n verificationForm: false,\n personalInfoForm: false,\n companyInfoForm: false,\n createPasswordForm: false\n },\n onboardingSupplements: {\n firstName: \"\",\n lastName: \"\",\n companyName: \"\",\n businessRegistryId: \"\",\n emailVerificationCode: \"\",\n smsVerificationCode: \"\",\n password: \"\"\n },\n isTenantOnboarding: false,\n validationCodeErrors: null,\n growthbook: null\n}\n\nexport type ContextState = StateNamespace","import { MutationTree } from \"vuex\"\nimport { State } from '@/store/states'\nimport { Config, Namespace } from \"@/types/common\"\nimport { MutationTypes } from \"@/enums/vuex\"\nimport { IContextMutations } from \"./interfaces\"\n\n\nexport const mutations: MutationTree & IContextMutations = {\n\t[MutationTypes.SET_CONFIG](state: State, config: Config,) {\n\t\tstate.context.config = config\n\t}\n}\n\nexport type ContextMutations = Namespace","import { MutationTree } from \"vuex\"\nimport { State } from './states'\nimport { Namespace } from \"@/types/common\"\nimport { MutationTypes } from \"@/enums/vuex\"\nimport { IMutations } from \"./interfaces\"\n\nimport { mutations as ContextMutations } from \"@/store/context/mutations\"\n\nimport { Base, RouteInvitationLink, BeginRegistrationResponse, Supplements, LinkRegistrationItem, Verify, LoginInfoResultModel, ErrorState, VerifyOnboardingCodeResponse, VerificationCodes, ValidatedSteps, OnboardingSupplements, ValidateVerificationCodesResponse } from \"@/types/data\"\nimport { VerjiGrowthBook } from \"@/config/growthbook\"\n\n\nexport const mutations: MutationTree & IMutations = {\n\t... ContextMutations,\n\t[MutationTypes.SET_ROUTE_INVITATION_LINK](state: State, routeInvitationLink: RouteInvitationLink,) {\n\t\tstate.routeInvitationLink = routeInvitationLink\n\t},\n\t[MutationTypes.SET_BEGIN_REGISTRATION](state: State, beginRegistrationResponse: BeginRegistrationResponse) {\n\t\tstate.registration = beginRegistrationResponse\n\t},\n\t[MutationTypes.SET_SUPPLEMENTS](state: State, supplements: Supplements,) {\n\t\tstate.supplements = supplements\n\t},\n\t[MutationTypes.SET_VERIFY](state: State, verify: Verify) {\n\t\tstate.verify = verify\n\t},\n [MutationTypes.SET_LINK_REGISTRATION_ID](state: State, linkRegistrationId: string,) {\n\t\tstate.linkRegistrationId = linkRegistrationId\n\t},\n [MutationTypes.SET_ACTIVE_REGISTRATION](state: State, registration: LinkRegistrationItem) {\n\t\tstate.activeRegistration = registration\n\t},\n [MutationTypes.SET_EXISTING_VIPPS_ACCOUNT](state: State, accountInfo: LoginInfoResultModel) {\n\t\tstate.existingVippsAccount = accountInfo\n\t},\n [MutationTypes.SET_EXISTING_VERJI_ACCOUNT](state: State, isExisting: boolean) {\n\t\tstate.hasExistingVerjiAccount = isExisting\n\t},\n [MutationTypes.SET_EMAIL_VERIFIED](state: State, emailVerified: boolean) {\n\t\tstate.emailVerified = emailVerified\n\t},\n // ONBOARDING \n [MutationTypes.SET_BEGIN_ONBOARDING](state: State, verifiedOnboardingCodeResponse: VerifyOnboardingCodeResponse) {\n\t\tstate.onboarding = verifiedOnboardingCodeResponse\n\t},\n [MutationTypes.SET_IS_TENANT_ONBOARDING](state: State, isTenantOnboarding: boolean) {\n\t\tstate.isTenantOnboarding = isTenantOnboarding\n\t},\n [MutationTypes.SET_VERIFICATION_CODES](state: State, verificationCodes: VerificationCodes | null) {\n\t\tstate.verificationCodes = verificationCodes\n\t},\n [MutationTypes.SET_VALIDATED_STEPS](state: State, validatedSteps: ValidatedSteps) {\n\t\tstate.validatedSteps = validatedSteps\n\t},\n [MutationTypes.SET_ONBOARDING_SUPPLEMENT_INFO](state: State, onboardingSupplements: OnboardingSupplements) {\n\t\tstate.onboardingSupplements = onboardingSupplements\n\t},\n [MutationTypes.SET_VALIDATION_CODE_ERRORS](state: State, validationCodeErrors: ValidateVerificationCodesResponse) {\n\t\tstate.validationCodeErrors = validationCodeErrors\n\t},\n\n // ROUTES\n\t[MutationTypes.SET_BEGIN_ROUTE_ENABLE](state: State, enable: boolean,) {\n\t\tstate.guards.begin = enable\n\t},\n\t[MutationTypes.SET_BANKID_ROUTE_ENABLE](state: State, enable: boolean,) {\n\t\tstate.guards.bankId = enable\n\t},\n\t[MutationTypes.SET_VIPPS_ROUTE_ENABLE](state: State, enable: boolean,) {\n\t\tstate.guards.vipps = enable\n\t},\n\t[MutationTypes.SET_SUPPLEMENT_ROUTE_ENABLE](state: State, enable: boolean,) {\n\t\tstate.guards.supplement = enable\n\t},\n\t[MutationTypes.SET_COMPLETE_ROUTE_ENABLE](state: State, enable: boolean,) {\n\t\tstate.guards.complete = enable\n\t},\n //GROWTHBOOK\n [MutationTypes.SET_GROWTHBOOK](state: State, growthbook: VerjiGrowthBook) {\n\t\tstate.growthbook = growthbook\n\t},\n\n // ERROR\n [MutationTypes.SET_ERROR_STATE](state: State, error: ErrorState) {\n\t\tstate.errorState = error\n\t},\n}\n\nexport type ContextMutations = Namespace","//////////////////////////////////////\n// Verji Link Onboarding //\n// https://itopslob.{env}.verji.app //\n//////////////////////////////////////\nconst linkOnboarding = {\n\n}\n\nconst onboarding = {\n getInvitedUserInfo: \"/api/v1.1/tenant/{tenantid}/onboarding/{onboardingid}/user\",\n verifyOnboardingCode: \"/api/v1.1/registration/{prefixedlinkcode}\",\n requestNewCodes: \"/api/v1.1/tenant/{tenantid}/onboarding/{onboardingid}/codes\",\n validateVerificationCodes: \"/api/v1.1/tenant/{tenantid}/onboarding/{onboardingid}/validate\",\n completeOnboardingRegistration: \"/api/v1.1/tenant/{tenantid}/onboarding/{onboardingid}/complete\"\n \n}\n\nconst tenantOnboarding = {\n verifyTenantOnboardingCode: \"/api/v1.1/tenant/registration/{prefixedlinkcode}\",\n validateVerificationCodes: \"/api/v1.1/tenant/{tenantid}/tenantonboarding/{tenantonboardingid}/validate\",\n requestNewCodes: \"/api/v1.1/tenant/{tenantid}/tenantonboarding/{tenantonboardingid}/codes\",\n completeTenantOnboardingRegistration: \"/api/v1.1/tenant/{tenantid}/tenantonboarding/{tenantonboardingid}/complete\"\n}\n\nconst registration = {\n activeLinkOnboarding: \"/api/v1.1/linkonboarding/{linkcode}\",\n createLinkRegistration: \"/api/v1.1/registration/customer/{customerid}/linkonboarding/{linkonboardingid}/registration\",\n putVippsInfo: \"/api/v1.1/registration/{linkonboardingregistrationid}/vipps\",\n setRegistrationContactInfo: \"/api/v1.1/registration/customer/{customerid}/linkonboarding/{linkonboardingid}/registration/{linkonboardingregistrationid}/complete\",\n verifyRegistration: \"/api/v1.1/registration/{linkonboardingregistrationid}/verify/{token}\",\n lookupLinkRegistration: \"/api/v1.1/registration/linkonboarding/{linkonboardingid}/lookup\",\n getLinkRegistrationById: \"/api/v1.1/registration/{linkonboardingregistrationid}?retry={retry}\",\n existingEmail: \"/api/v1.1/registration/lookup/{email}\",\n emailVerified: \"/api/v1.1/registration/{linkonboardingregistrationid}/emailverified/{email}\"\n\n}\n\nexport const linkOnboardingApi = {\n linkOnboarding: linkOnboarding,\n onboarding: onboarding,\n tenantOnboarding: tenantOnboarding,\n registration: registration\n}\n\n///////////////////////////////////////\n// Verji Account Api //\n// https://itopsacct.{env}.verji.app //\n///////////////////////////////////////\n\nconst account = {\n existingVippsAccount: \"/api/v1.1/account/vipps\",\n}\nexport const accountApi = {\n account: account\n}","import { Common } from '@/enums/common';\nimport { WebStorageStateStore } from 'oidc-client';\nimport Vue from 'vue';\nimport { Module } from 'vuex';\nimport store from '@/store';\nimport { VuexOidcClientSettings } from 'vuex-oidc';\nimport { vuexOidcCreateStoreModule, VuexOidcState } from 'vuex-oidc'\nimport { noBankIdRequired, noVippsRequired } from '../router/index'\n\nfunction getSettingsBankId(): any { \n const config = store.getters.getConfig;\n const bankidConfig = config.bankIdSettings;\n return {\n authority: bankidConfig.authority,\n client_id: bankidConfig.client_id,\n redirect_uri: bankidConfig.redirect_uri, // Hybrid test localhost against staging redirect_uri: 'http://localhost:8081/bankid-oidc-callback,'\n response_type: bankidConfig.response_type,\n acr_values: bankidConfig.acr_values,\n scope: bankidConfig.scope \n };\n}\n \nfunction getSettingsVipps(): any {\n const config = store.getters.getConfig;\n const vippsConfig = config.vippsSettings;\n return {\n authority: vippsConfig.authority,\n client_id: vippsConfig.client_id,\n redirect_uri: vippsConfig.redirect_uri, // Hybrid test redirect_uri: 'http://localhost:8081/vipps-oidc-callback',\n response_type: vippsConfig.response_type,\n acr_values: vippsConfig.acr_values,\n scope: vippsConfig.scope,\n userStore: new WebStorageStateStore({prefix: \"oidc.vipps\", store: sessionStorage})\n };\n}\n\nexport function getOidcStoreBankId(): Module {\n return vuexOidcCreateStoreModule(getSettingsBankId(), { namespaced: true, publicRoutePaths: noBankIdRequired });\n}\n\nexport function getOidcStoreVipps(): Module {\n return vuexOidcCreateStoreModule(getSettingsVipps(), { namespaced: true, publicRoutePaths: noVippsRequired });\n}\n","import { ActionTree } from \"vuex\"\nimport { Namespace, Config } from \"@/types/common\"\nimport { ActionTypes, MutationTypes } from \"@/enums/vuex\"\nimport { IContextActions } from \"./interfaces\"\nimport { State } from '@/store/states'\n\n\n\nexport const actions: ActionTree & IContextActions = {\n async [ActionTypes.setConfig]({ commit }, config: Config) {\n try {\t\t\n commit(MutationTypes.SET_CONFIG, config)\n } catch (e) {\n console.warn(\"Could not set config. Error: \" + JSON.stringify(e))\n }\n }\n}\n\nexport type ContextActions = Namespace","import Vue from 'vue'\nimport store from \"@/store\"\nimport axios, { AxiosInstance } from \"axios\"\nimport * as rax from \"retry-axios\"\n\nimport { ActiveLinkResponse, RegistrationContactInfoResponse, BeginRegistrationResponse, Supplements, TokenResponse, LinkRegistrationItem } from \"@/types/data\"\nimport { linkOnboardingApi } from \"@/constants/apiUrls\"\nimport { Store } from \"vuex\"\n\nenum HttpMethods {\n GET = \"GET\",\n POST = \"POST\",\n PUT = \"PUT\",\n\tDELETE = \"DELETE\"\n}\n\nenum ErrorCodes {\n\tTooManyRequests = \"ERR_NETWORK\"\n}\n\nexport const defaultRetry = 2000;\n\nexport class ApiClient {\n\tprivate baseUrl: string\n private verjiAccountUrl: string\n private verjiLinkOnboardingUrl: string\n\n\tconstructor() {\n\t\tthis.verjiAccountUrl = store.getters.getConfig.vmxAccountUrl as string\n this.verjiLinkOnboardingUrl = store.getters.getConfig.verjiLinkOnboardingUrl as string\n\t}\n\n\tprivate setupInterceptors(_axiosInstance: AxiosInstance){\n\t\t_axiosInstance.interceptors.response.use(async function (res) {\n\t\t\treturn res;\n\t\t }, \n\t\t async (res) => {\n\t\t\tif(res?.code != ErrorCodes.TooManyRequests && res?.code != 429 && res?.response?.status != 429){\n\t\t\t\treturn Promise.reject(res);\n\t\t\t}\n\n\t\t\tconsole.info(\"Failed: \" + res?.config?.url)\n\t\t\tawait new Promise(r => setTimeout(r, res?.response?.headers?.RetryAfter ?? defaultRetry))\n\t\t\t\t.then(() => {\n\t\t\t\t\tconsole.info(\"Attempting retry: \" + res.config.url)\n\t\t\t\t\tswitch(res?.config?.method){\n\t\t\t\t\t\tcase HttpMethods.GET:\n\t\t\t\t\t\t\treturn this.get(res.config.url, res.config.data)\n\t\t\t\t\t\tcase HttpMethods.POST:\n\t\t\t\t\t\t\treturn this.post(res.config.url, res.config.data)\n\t\t\t\t\t\tcase HttpMethods.PUT:\n\t\t\t\t\t\t\treturn this.put(res.config.url, res.config.data)\n\t\t\t\t\t\tcase HttpMethods.DELETE:\n\t\t\t\t\t\t\treturn this.delete(res.config.url, res.config.data)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch((_error) => {\n\t\t\t\t\tconsole.warn(_error)\n\t\t\t\t\treturn Promise.reject(_error);\n\t\t\t\t});\n\t\t\t\n\t\t });\n\t}\n\t\n\tprivate async post(endpoint: string, accessToken?: string, data?: unknown): Promise {\n\t\t// cannot use resolve, reject here because of the retry-axios interceptor\n\t\tconst axiosInstance = axios.create({\n\t\t\ttimeout: 300000,\n\t\t})\n\t\t//axiosInstance.defaults.baseURL = this.baseUrl as string\n\t\taxiosInstance.defaults.raxConfig = {\n\t\t\tretry: 0,\n\t\t\tnoResponseRetries: 0,\n\t\t\tinstance: axiosInstance,\n\t\t\thttpMethodsToRetry: [\"POST\"],\n\t\t\tstatusCodesToRetry: [\n\t\t\t\t[100, 199],\n\t\t\t\t[401, 405, 429],\n\t\t\t\t[500, 599],\n\t\t\t],\n\t\t\tbackoffType: \"linear\",\n\t\t\tonRetryAttempt: (err) => {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\tconst retryAttempt = rax.getConfig(err)!.currentRetryAttempt!\n\t\t\t\t\tconsole.log(`POST attempt #${retryAttempt}. Endpoint:$ \"${endpoint}\". Error: ${err.code}: ${err.message}`)\n\t\t\t\t\ttry {\n\t\t\t\t\t\tresolve(\"testing\")\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t(store as Store).dispatch(\"oidcStore/authenticateOidcSilent\").then((user) => {\n\t\t\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\t\t\tconsole.log(`Silently renewed token for user: \"${(user as any).profile.sub}\". Retrying POST..`)\n\t\t\t\t\t\t\tresolve(`TRIED refreshing user!: ${JSON.stringify(user)}`)\n\t\t\t\t\t\t})\n\t\t\t\t\t\t*/\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treject()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t},\n\t\t}\n if(accessToken !== undefined){\n axiosInstance.defaults.headers.common['Authorization'] = \"Bearer \" + accessToken\n }\n\t\tconst interceptorId = rax.attach(axiosInstance)\n\t\tthis.setupInterceptors(axiosInstance)\n\t\tconst res = await axiosInstance.post(endpoint, data)\n\t\treturn res.data\n\t}\n\n\tprivate async put(endpoint: string, accessToken?: string, data?: unknown): Promise {\n\t\tconst axiosInstance = axios.create({\n\t\t\ttimeout: 300000,\n\t\t})\n\t\t// axiosInstance.defaults.baseURL = this.baseUrl as string\n\t\taxiosInstance.defaults.raxConfig = {\n\t\t\tretry: 0,\n\t\t\tnoResponseRetries: 0,\n\t\t\tinstance: axiosInstance,\n\t\t\thttpMethodsToRetry: [\"PUT\"],\n\t\t\tstatusCodesToRetry: [\n\t\t\t\t[100, 199],\n\t\t\t\t[401, 405, 429],\n\t\t\t\t[500, 599],\n\t\t\t],\n\t\t\tbackoffType: \"linear\",\n\t\t\tonRetryAttempt: (err) => {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\tconst retryAttempt = rax.getConfig(err)!.currentRetryAttempt!\n\t\t\t\t\tconsole.log(`PUT attempt #${retryAttempt}. Endpoint:$ \"${endpoint}\". Error: ${err.code}: ${err.message}`)\n\t\t\t\t\ttry {\n\t\t\t\t\t\tresolve(\"testing\")\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t(store as Store).dispatch(\"oidcStore/authenticateOidcSilent\").then((user) => {\n\t\t\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\t\t\tconsole.log(`Silently renewed token for user: \"${(user as any).profile.sub}\". Retrying POST..`)\n\t\t\t\t\t\t\tresolve(`TRIED refreshing user!: ${JSON.stringify(user)}`)\n\t\t\t\t\t\t})\n\t\t\t\t\t\t*/\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treject()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t},\n }\n if(accessToken !== undefined){\n axiosInstance.defaults.headers.common['Authorization'] = \"Bearer \" + accessToken\n }\n if(accessToken !== undefined){\n axiosInstance.defaults.headers.common['Authorization'] = \"Bearer \" + accessToken\n }\n\t\tconst interceptorId = rax.attach(axiosInstance)\n\t\tthis.setupInterceptors(axiosInstance)\n\t\tconst res = await axiosInstance.put(endpoint, data)\n\t\treturn res.data\n\t}\n\n\tprivate async delete(endpoint: string, accessToken?: string, data?: unknown): Promise {\n\t\tconst axiosInstance = axios.create({\n\t\t\ttimeout: 300000,\n\t\t})\n\t\t// axiosInstance.defaults.baseURL = this.baseUrl as string\n\t\taxiosInstance.defaults.raxConfig = {\n\t\t\tretry: 0,\n\t\t\tnoResponseRetries: 0,\n\t\t\tinstance: axiosInstance,\n\t\t\thttpMethodsToRetry: [\"DELETE\"],\n\t\t\tstatusCodesToRetry: [\n\t\t\t\t[100, 199],\n\t\t\t\t[401, 405, 429],\n\t\t\t\t[500, 599],\n\t\t\t],\n\t\t\tbackoffType: \"linear\",\n\t\t\tonRetryAttempt: (err) => {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\tconst retryAttempt = rax.getConfig(err)!.currentRetryAttempt!\n\t\t\t\t\tconsole.log(`DELETE attempt #${retryAttempt}. Endpoint:$ \"${endpoint}\". Error: ${err.code}: ${err.message}`)\n\t\t\t\t\ttry {\n\t\t\t\t\t\tresolve(\"testing\")\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t(store as Store).dispatch(\"oidcStore/authenticateOidcSilent\").then((user) => {\n\t\t\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\t\t\tconsole.log(`Silently renewed token for user: \"${(user as any).profile.sub}\". Retrying POST..`)\n\t\t\t\t\t\t\tresolve(`TRIED refreshing user!: ${JSON.stringify(user)}`)\n\t\t\t\t\t\t})\n\t\t\t\t\t\t*/\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treject()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t},\n\t\t}\n if(accessToken !== undefined){\n axiosInstance.defaults.headers.common['Authorization'] = \"Bearer \" + accessToken\n }\n\t\tconst interceptorId = rax.attach(axiosInstance)\n\t\tthis.setupInterceptors(axiosInstance)\n\t\tconst res = await axiosInstance.delete(endpoint)\n\t\treturn res.data\n\t}\n\n\tprivate async get(endpoint: string, timeout?: number, accessToken?: string,): Promise {\n\t\t// cannot use resolve, reject here because of the retry-axios interceptor\n\t\tlet defaultTimeout = 300000\n\n\t\tif (typeof timeout !== 'undefined') {\n\t\t\tdefaultTimeout = timeout\n\t\t}\n\t\tconst axiosInstance = axios.create({\n\t\t\ttimeout: defaultTimeout,\n\t\t\twithCredentials: true\n\t\t})\n\t\t//console.log(\"BASEURL: \" + this.baseUrl)\n\t\t//axiosInstance.defaults.baseURL = this.baseUrl as string\n\t\taxiosInstance.defaults.raxConfig = {\n\t\t\tretry: 0,\n\t\t\tnoResponseRetries: 0,\n\t\t\tinstance: axiosInstance,\n\t\t\thttpMethodsToRetry: [\"GET\"],\n\t\t\tstatusCodesToRetry: [\n\t\t\t\t[100, 199],\n\t\t\t\t[401, 402], [404, 429],\n\t\t\t\t[500, 599],\n\t\t\t],\n\t\t\tbackoffType: \"linear\",\n\t\t\tonRetryAttempt: (err) => {\n\t\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\tconst retryAttempt = rax.getConfig(err)!.currentRetryAttempt!\n\t\t\t\t\tconsole.log(`GET attempt #${retryAttempt}. Endpoint: \"${endpoint}\". Error: ${err.code}: ${err.message}`)\n\t\t\t\t\ttry {\n\t\t\t\t\t\tresolve(\"testing\")\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t(store as Store).dispatch(\"oidcStore/authenticateOidcSilent\").then((user) => {\n\t\t\t\t\t\t\t// eslint-disable-next-line\n\t\t\t\t\t\t\tconsole.log(`Silently renewed token for user: \"${(user as any).profile.sub}\". Retrying GET..`)\n\t\t\t\t\t\t\tresolve(`TRIED refreshing user!: ${JSON.stringify(user)}`)\n\t\t\t\t\t\t})\n\t\t\t\t\t\t*/\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treject()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t},\n\t\t}\n if(accessToken !== undefined){\n axiosInstance.defaults.headers.common['Authorization'] = \"Bearer \" + accessToken\n }\n\t\tconst interceptorId = rax.attach(axiosInstance)\n\t\tthis.setupInterceptors(axiosInstance)\n\t\tconst res = await axiosInstance.get(endpoint)\n\t\tconsole.log(res)\n\t\treturn res.data\n\t}\n\n\tpublic async getActiveLink(invitationLinkId: string): Promise {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tif (!invitationLinkId)\n\t\t\t\t\treturn reject()\n let url = this.verjiLinkOnboardingUrl + linkOnboardingApi.registration.activeLinkOnboarding\n\t\t\t\turl = url.replace(\"{linkcode}\", invitationLinkId)\n\t\t\t\tconst response = this.get(url)\n\t\t\t\tresolve(response)\n\t\t\t} catch (e) {\n\t\t\t\treject()\n\t\t\t}\n\t\t})\n\t}\n\n\tpublic async setRegistrationContactInfo(registration: LinkRegistrationItem, supplements: Supplements, linkInfo: ActiveLinkResponse): Promise {\n\t\t// eslint-disable-next-line\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\ttry{\n if (!supplements)\n return reject()\n \n let url = this.verjiLinkOnboardingUrl + linkOnboardingApi.registration.setRegistrationContactInfo\n url = url.replace(\"{customerid}\", registration?.customerId ?? \"\")\n url = url.replace(\"{linkonboardingid}\", registration.linkOnboardingId ?? \"\")\n url = url.replace(\"{linkonboardingregistrationid}\", registration.jobId ?? \"\")\n const response = this.put(url, undefined, {\n email: supplements.email,\n phoneNumber: supplements.phone,\n clientOrganizationName: supplements.organization,\n clientOrganizationId: \"\",\n businessRegistryId: supplements.businessRegistryId\n })\n resolve(response)\n\t\t\t}\n\t\t\tcatch(e) {\n reject()\n\t\t\t} \n\t\t})\n\t}\n// Commenting all setCustomEmail out, due to the call is being consumed by the /complete call\n/* \tpublic async setCustomEmail(registration: LinkRegistrationItem, supplements: Supplements, linkInfo: ActiveLinkResponse, accessToken: string): Promise {\n\t\t// eslint-disable-next-line\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\ttry {\n\n\t\t\t\tif (!supplements)\n\t\t\t\t\treturn reject()\n \n\t\t\t\tlet url = accountApi.invitationLink.setCustomEmail\n\t\t\t\turl = url.replace(\"{customerid}\", registration?.customerId ?? \"\")\n\t\t\t\turl = url.replace(\"{linkonboardingid}\", registration.linkOnboardingId ?? \"\")\n\t\t\t\turl = url.replace(\"{linkonboardingregistrationid}\", registration.jobId ?? \"\")\n\t\t\t\turl = url.replace(\"{customEmail}\", supplements.email ?? \"\")\n\t\t\t\tconst response = await this.put(url, accessToken)\n\t\t\t\n\t\t\t\tresolve(response)\n\t\t\t\t\n\t\t\t} catch(e) {\n reject()\n\t\t\t} \n\t\t})\n\t} */\n\n\tpublic async verifyRegistration(id: string, token: string): Promise {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tif (!id || !token)\n\t\t\t\t\treturn reject()\n\t\t\t\tconsole.log(\"VERIFYING REGISTRATION ...\")\n let url = this.verjiLinkOnboardingUrl + linkOnboardingApi.registration.verifyRegistration\n\t\t\t\turl = url.replace(\"{token}\", token ?? \"\")\n\t\t\t\turl = url.replace(\"{linkonboardingregistrationid}\", id ?? \"\")\n\t\t\t\tconst response = this.put(url)\n\t\t\t\tresolve(response)\n\t\t\t} catch (e) {\n\t\t\t\treject()\n\t\t\t}\n\t\t})\n\t}\n}","import { ActionTree } from \"vuex\"\nimport { Namespace } from \"@/types/common\"\nimport { ActionTypes, MutationTypes } from \"@/enums/vuex\"\nimport { IActions } from \"./interfaces\"\nimport { State } from './states'\nimport store from \"@/store\"\nimport { accountApi, linkOnboardingApi } from \"@/constants/apiUrls\"\nimport { getOidcStoreBankId, getOidcStoreVipps } from '../config/oidc'\n\nimport { actions as ContextActions } from \"@/store/context/actions\"\nimport { ApiClient } from \"@/api/client\"\n\nimport { RouteInvitationLink, ActiveLinkResponse, BeginRegistrationResponse, RegistrationContactInfoResponse, Supplements, LookupLinkRegistrationResponse, LinkRegistrationItem, Verify, LoginInfoResultModel, ErrorState, VerifyOnboardingCodeResponse, VerificationCodes, ValidatedSteps, OnboardingSupplements, ValidateVerificationCodesResponse } from \"@/types/data\"\nimport axios, { AxiosResponse } from \"axios\"\nimport router from \"@/router\"\nimport { VerjiGrowthBook } from \"@/config/growthbook\"\n\nexport const actions: ActionTree & IActions = {\n ... ContextActions,\n\tasync [ActionTypes.checkInvitationLink]({ dispatch, commit, }, invitationLinkId: string) {\n\t\ttry {\n\t\t\tconst apiClient = new ApiClient()\n\t\t\tconst response: ActiveLinkResponse = await apiClient.getActiveLink(invitationLinkId)\n const validLink: RouteInvitationLink = { \n id: invitationLinkId, \n open: true, \n checked: true,\n response : response\n }\n console.log(validLink)\n commit(MutationTypes.SET_ROUTE_INVITATION_LINK, validLink)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Route invitation link is invalid. Error: \" + JSON.stringify(e))\n const invalidLink: RouteInvitationLink = { \n id: invitationLinkId, \n open: false, \n checked: true,\n response: null\n }\n\t\t\tcommit(MutationTypes.SET_ROUTE_INVITATION_LINK, invalidLink)\n dispatch(ActionTypes.resetRouteGuard)\n\t\t}\n },\n async [ActionTypes.resetInvitationLink]({ commit }) {\n\t\ttry {\n const emptyRoute: RouteInvitationLink = { \n id: null, \n open: false, \n checked: false,\n response: null\n }\t\t\t\n commit(MutationTypes.SET_ROUTE_INVITATION_LINK, emptyRoute)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not reset route invitation link. Error: \" + JSON.stringify(e))\n\t\t}\n },\n\n async [ActionTypes.beginRegistration]({ dispatch, commit, getters }){\n\n const accessToken = getters[\"oidcStoreBankId/oidcAccessToken\"]\n const axiosInstance = axios.create({\n timeout: 300000,\n })\n\n axiosInstance.defaults.baseURL = getters.getConfig.verjiLinkOnboardingUrl\n \n const config = {\n headers: { Authorization: `Bearer ${accessToken}` }\n };\n\n let url = getters.getConfig.verjiLinkOnboardingUrl + linkOnboardingApi.registration.createLinkRegistration // /api/v1.1/customer/{customerId}/linkonboarding/{clientInvitation}/registration\n \n const linkInfo = await getters.getContext.routeInvitationLink as RouteInvitationLink\n url = url.replace(\"{customerid}\", linkInfo.response?.customerId ?? \"\")\n url = url.replace(\"{linkonboardingid}\", linkInfo.response?.jobId ?? \"\")\n\n const body = null\n try {\n // const apiClient = new ApiClient()\n const response: BeginRegistrationResponse = await axiosInstance.post(url, body, config )\n console.log(response)\n commit(MutationTypes.SET_BEGIN_REGISTRATION, response)\n } \n catch (e) {\n console.warn(\"Could not begin registration. Error: \" + JSON.stringify(e))\n const invalidRegistration: BeginRegistrationResponse = { \n jobId: null,\n customerId: null,\n linkOnboardingId: null,\n loginId: null\n }\n commit(MutationTypes.SET_BEGIN_REGISTRATION, invalidRegistration)\n \n throw(e);\n }\n console.log(\"Begin Registration complete\")\n },\n\n\n async [ActionTypes.resetBeginRegistration]({ dispatch, commit }) {\n\t\ttry {\n\t\t\tconst emptyRegistration: BeginRegistrationResponse = { \n jobId: null,\n customerId: null,\n linkOnboardingId: null,\n loginId: null\n }\n\t\t\tcommit(MutationTypes.SET_BEGIN_REGISTRATION, emptyRegistration)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not reset registration. Error: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.existingVippsAccount]({ commit, getters }, accessToken: string): Promise{\n const axiosInstance = axios.create({\n\t\t\ttimeout: 300000,\n\t\t})\n \n const url = getters.getConfig.vmxAccountUrl + accountApi.account.existingVippsAccount // \"/api/v1.1/account/vipps\"\n\n const config = {\n headers: { Authorization: `Bearer ${accessToken}` },\n };\n try {\n\t\t\tconst response = await axiosInstance.get(url, config)\n\n console.log(\"existing Vipps user response: \", response)\n\n if(response.status != 200){\n return null\n }\n\n const registration: LoginInfoResultModel | null = response.data \n return registration\n\n\t\t} catch (e) {\n\t\t\tconsole.warn(`Could not get account information, Error = ${JSON.stringify(e)}`)\n return null\n\t\t}\n },\n async [ActionTypes.existingEmail]({ commit, getters }, email: string): Promise{\n\n const accessToken = getters[\"oidcStoreVipps/oidcAccessToken\"]\n const axiosInstance = axios.create({\n\t\t\ttimeout: 300000,\n\t\t})\n \n let url = getters.getConfig.verjiLinkOnboardingUrl + linkOnboardingApi.registration.existingEmail // \"/api/v1.1/registration/lookup/{email}\"\n url = url.replace(\"{email}\", email)\n \n const config = {\n headers: { Authorization: `Bearer ${accessToken}` },\n }; \n\n try {\n\t\t\tconst response = await axiosInstance.get(url, config)\n\n console.log(\"existing email response: \", response)\n\n if(response.status != 200){\n return null\n }\n\n const emailExists: boolean | null = response.data \n return emailExists\n\n\t\t} catch (e) {\n\t\t\tconsole.warn(`Unable to check if email exists, Error = ${JSON.stringify(e)}`)\n return null\n\t\t}\n },\n async [ActionTypes.emailVerified]({ commit, getters }, email: string): Promise{\n\n const accessToken = getters[\"oidcStoreVipps/oidcAccessToken\"]\n const axiosInstance = axios.create({\n\t\t\ttimeout: 300000,\n\t\t})\n \n const linkOnboardingRegistrationId: string = await getters.getContext.activeRegistration.jobId\n\n let url = getters.getConfig.verjiLinkOnboardingUrl + linkOnboardingApi.registration.emailVerified // /api/v1.1/registration/{linkonboardingregistrationid}/emailverified/{email}\n url = url.replace(\"{linkonboardingregistrationid}\", linkOnboardingRegistrationId)\n url = url.replace(\"{email}\", email)\n \n const config = {\n headers: { Authorization: `Bearer ${accessToken}` },\n }; \n\n try {\n\t\t\tconst response = await axiosInstance.get(url, config)\n\n console.log(\"email requires verification response: \", response)\n\n if(response.status != 200){\n return null\n }\n\n const emailVerified: boolean | null = response.data \n await store.dispatch(ActionTypes.setEmailVerified, emailVerified) \n return emailVerified\n\n\t\t} catch (e) {\n\t\t\tconsole.warn(`Unable to check if email exists, Error = ${JSON.stringify(e)}`)\n return null\n\t\t}\n },\n \n async [ActionTypes.lookupLinkRegistration]({ commit, getters }, payload: any): Promise{\n\n const axiosInstance = axios.create({\n\t\t\ttimeout: 300000,\n\t\t})\n \n let url = getters.getConfig.verjiLinkOnboardingUrl + linkOnboardingApi.registration.lookupLinkRegistration // \"api/v.1.1/customer/{customerId}/linkonboarding/{linkonboardingId}/lookup\"\n url = url.replace(\"{customerid}\", payload.customerId)\n url = url.replace(\"{linkonboardingid}\", payload.linkOnboardingId)\n\n // let subId = String(payload.sub)\n // subId = subId.replace(\"{\",\"\").replace(\"}\",\"\")\n\n const subId = payload.sub;\n\n const params = { \n sub: subId ?? \"\",\n email: payload.email ?? \"\"\n }\n const config = {\n headers: { Authorization: `Bearer ${payload.accessToken}` },\n params: params\n };\n try {\n\t\t\tconst response = await axiosInstance.get(url, config)\n\n \n console.log(\"Lookup registration complete\")\n console.log(\"Lookup registration response: \", response)\n\n if(response.status != 200){\n return null\n }\n // Lookup returns a list where bankId/Vipps sub exist ordered by last modified\n\n const registration: LookupLinkRegistrationResponse | null = response.data \n return registration\n\n\t\t} catch (e) {\n\t\t\tconsole.warn(`Could not lookup registration with params ${params}, Error = ${JSON.stringify(e)}`)\n return null\n\t\t}\n \n //\"api/v.1.1/customer/{customerId}/linkonboarding/{linkonboardingId}/lookup\"\n },\n\n async [ActionTypes.registerVippsBankIdModules]() {\n try {\n store.registerModule(\"oidcStoreBankId\", getOidcStoreBankId());\n store.registerModule(\"oidcStoreVipps\", getOidcStoreVipps());\n } catch (e) {\n console.warn(\"Could not register modules. Error: \" + JSON.stringify(e))\n }\n },\n\n async [ActionTypes.getLinkRegistrationById]({ commit, getters }, jobId: string): Promise{\n\n const axiosInstance = axios.create({\n\t\t\ttimeout: 300000,\n\t\t})\n \n let url = getters.getConfig.verjiLinkOnboardingUrl + linkOnboardingApi.registration.getLinkRegistrationById// getLinkRegistrationById: \"/api/v1.1/registration/{linkonboardingregistrationid}?retry={retry}\"\n url = url.replace(\"{linkonboardingregistrationid}\", jobId)\n url = url.replace(\"{retry}\", \"true\")\n\n console.log(\"getLinkRegistration URL: \", url)\n const accessToken = getters[\"oidcStoreBankId/oidcAccessToken\"] // {}\n\n const config = {\n headers: { Authorization: `Bearer ${accessToken}` },\n };\n try {\n\t\t\tconst response = await axiosInstance.get(url, config)\n \n if(response.status != 200){\n console.error(\"Get Registration failed: \", response)\n return null\n }\n\n const registration: LinkRegistrationItem | null = response.data \n console.log(\"Get registration returned: \", registration)\n return registration\n\n\t\t} catch (e) {\n\t\t\tconsole.warn(`Could not get registration with id = ${jobId} - Error = ${JSON.stringify(e)}`)\n return null\n\t\t} \n },\n async [ActionTypes.putVippsToken]({ dispatch, commit, getters }, flowName: string) {\n\n console.log(\"Putting Vipps token.\")\n const axiosInstance = axios.create({\n\t\t\ttimeout: 300000,\n\t\t})\n const accessToken = await getters[\"oidcStoreVipps/oidcAccessToken\"]\n\n const activeRegistration: LinkRegistrationItem = await getters.getContext.activeRegistration\n\n const config = {\n headers: { Authorization: `Bearer ${accessToken}` }\n };\n\n let url = getters.getConfig.verjiLinkOnboardingUrl + linkOnboardingApi.registration.putVippsInfo // /api/v1.1/registration/{linkonboardingregistrationid}/vipps\n\n url = url.replace(\"{linkonboardingregistrationid}\", activeRegistration.jobId)\n \n const body = null\n\t\ttry {\n // const apiClient = new ApiClient()\n\t\t\tconst response: AxiosResponse = await axiosInstance.put(url, body, config )\n console.log(\"Vipps token was updated\")\n\n if( response.status !== 200){\n\n console.warn(\"Could not post Access Token.\" )\n \n const error: ErrorState = {\n title: \"Fikk feil under innsending av vipps-informasjon\",\n description:`Prøvde å sende vipps-informasjon, men server responderte med feilkode: ${response.status}`,\n flowRouteName: flowName\n }\n //Set the error state\n await store.dispatch(ActionTypes.setErrorState, error)\n \n router.push({ path: \"/error\" })\n }\n\n\t\t} catch (e) {\n console.log(\"RESPONSE STATUS: \", e)\n\t\t\tconsole.warn(\"Could not post Access Token. Error: \" + JSON.stringify(e))\n \n const error: ErrorState = {\n title: \"Fikk feil under innsending av vipps-informasjon\",\n description: \"Prøvde å sende vipps-informasjon, men kallet feilet\",\n flowRouteName: flowName\n }\n //Set the error state\n await store.dispatch(ActionTypes.setErrorState, error)\n\n router.push({ path: \"/error\" })\n\t\t}\n },\n async [ActionTypes.setSupplementInfo]({ dispatch, commit, getters }, supplements: Supplements) {\n\n console.log(\"Putting supplement info.\")\n const axiosInstance = axios.create({\n\t\t\ttimeout: 300000,\n\t\t})\n const accessToken = await getters[\"oidcStoreVipps/oidcAccessToken\"]\n \n\t\taxiosInstance.defaults.baseURL = getters.getConfig.verjiLinkOnboardingUrl\n\n const activeRegistration: LinkRegistrationItem = await getters.getContext.activeRegistration\n const body = {\n email: supplements.email,\n phoneNumber: supplements.phone,\n clientOrganizationName: supplements.organization,\n businessRegistryId: supplements.businessRegistryId\n }\n const config = {\n headers: { Authorization: `Bearer ${accessToken}` }\n }; \n let url = getters.getConfig.verjiLinkOnboardingUrl + linkOnboardingApi.registration.setRegistrationContactInfo // /api/v1.1/customer/{customerId}/linkonboarding/{linkOnboardingId}/registration/{linkonboardingregistrationid}/complete\n console.log(\"PRINTING ACTIVE REGISTRATION PRE URL REPLACE: \", activeRegistration)\n url = url.replace(\"{customerid}\", activeRegistration.customerId)\n url = url.replace(\"{linkonboardingid}\", activeRegistration.linkOnboardingId)\n url = url.replace(\"{linkonboardingregistrationid}\", activeRegistration.jobId)\n\n\n try {\n // const apiClient = new ApiClient()\n\t\t\tconst response: RegistrationContactInfoResponse = await axiosInstance.put(url, body, config )\n console.log(\"Completed registration: \", JSON.stringify(response))\n\n const validSupplements: Supplements = supplements\n validSupplements.response = response\n\n console.log(\"INFO SET\")\n console.log(supplements)\n commit(MutationTypes.SET_SUPPLEMENTS, validSupplements)\n\t\t} catch (e) {\n\t\t\tconsole.error(\"Could not update supplement information. Error: \" + JSON.stringify(e))\n\n router.push({ path: \"/error\" })\n\n const invalidSupplements: Supplements = { \n organization: null, \n businessRegistryId: null,\n email: null, \n phone: null,\n response: null\n }\n\t\t\tcommit(MutationTypes.SET_SUPPLEMENTS, invalidSupplements)\n\n const flowName = \"Supplement\"\n const error: ErrorState = {\n title: \"Klarte ikke å sende inn tilleggsinformasjonen.\",\n description: \"Prøvde å sende inn tilleggsinformasjon, men vi klarte ikke å oppdatere informasjonen\",\n flowRouteName: flowName\n }\n //Set the error state\n await store.dispatch(ActionTypes.setErrorState, error)\n\t\t}\n\n },\n/* async [ActionTypes.setCustomEmail]({ dispatch, commit, getters }, supplements: Supplements) {\n try {\n const apiClient = new ApiClient()\n const beginRegistration = await getters.getContext.activeRegistration as LinkRegistrationItem\n const linkInfo = await getters.getContext.routeInvitationLink as ActiveLinkResponse\n\n const accessToken = await getters[\"oidcStoreVipps/oidcAccessToken\"]\n\n const response: unknown = await apiClient.setCustomEmail(beginRegistration, supplements, linkInfo, accessToken)\n \n console.log(\"CUSTOM EMAIL SENT\")\n } catch (e) {\n console.warn(\"Could not set custom email.\")\n }\n }, */\n // ONBOARDING\n async [ActionTypes.verifyOnboardingCode]({ commit, getters }, linkcode: string): Promise{\n console.log(\"[Actions.verifyOnboardingCode] Verifying onboarding code...\")\n const axiosInstance = axios.create({\n timeout: 300000,\n })\n\n axiosInstance.defaults.baseURL = getters.getConfig.verjiLinkOnboardingUrl\n let url = getters.getConfig.verjiLinkOnboardingUrl + linkOnboardingApi.onboarding.verifyOnboardingCode // /api/v1.1/registration/{linkcode}\n\n // if the linkcode starts with B - this is a prefix for \"TenantOnboarding\"\n if(linkcode.startsWith(\"B\")){\n console.log(\"[Actions.verifyOnboardingCode] Linkcode identified as TenantOnboarding. Setting isTenantOnboarding: true...\")\n url = getters.getConfig.verjiLinkOnboardingUrl + linkOnboardingApi.tenantOnboarding.verifyTenantOnboardingCode\n commit(MutationTypes.SET_IS_TENANT_ONBOARDING, true)\n }else{\n commit(MutationTypes.SET_IS_TENANT_ONBOARDING, false)\n }\n \n url = url.replace(\"{prefixedlinkcode}\", linkcode)\n\n const body = null\n try {\n // const apiClient = new ApiClient()\n const response = await axiosInstance.post(url, body)\n\n const onboarding: VerifyOnboardingCodeResponse = response.data\n console.log(\"[Actions.verifyOnboardingCode] Verify onboarding code: \")\n console.log(onboarding)\n const validLink: RouteInvitationLink = { \n id: linkcode, \n open: true, \n checked: true,\n response : null\n }\n console.log(validLink)\n commit(MutationTypes.SET_ROUTE_INVITATION_LINK, validLink)\n commit(MutationTypes.SET_BEGIN_ONBOARDING, response.data)\n\n } \n catch (e) {\n console.warn(\"Could not begin onboarding. Error: \" + JSON.stringify(e))\n const invalidOnboarding: VerifyOnboardingCodeResponse = { \n email: null,\n invitingPersonCompanyName: null,\n invitingPersonDisplayName: null,\n invitingPersonId: null,\n onboardingId: null,\n phoneNumber: null,\n registrationCompleted: null,\n tenantId: null,\n }\n const validLink: RouteInvitationLink = { \n id: linkcode, \n open: false, \n checked: false,\n response : null\n }\n commit(MutationTypes.SET_ROUTE_INVITATION_LINK, validLink)\n commit(MutationTypes.SET_BEGIN_ONBOARDING, invalidOnboarding)\n }\n },\n async [ActionTypes.requestNewCodes]({ getters }): Promise{\n const axiosInstance = axios.create({\n timeout: 300000,\n })\n const onboarding = await getters.getContext.onboarding\n const isTenantOnboarding = await getters.getContext.isTenantOnboarding\n\n let url = getters.getConfig.verjiLinkOnboardingUrl\n\n if(isTenantOnboarding){\n url = getters.getConfig.verjiLinkOnboardingUrl + linkOnboardingApi.tenantOnboarding.requestNewCodes \n url = url.replace(\"{tenantid}\", onboarding.tenantId)\n url = url.replace(\"{tenantonboardingid}\", onboarding.tenantOnboardingId)\n }else{\n url = url + linkOnboardingApi.onboarding.requestNewCodes\n url = url.replace(\"{tenantid}\", onboarding.tenantId)\n url = url.replace(\"{onboardingid}\", onboarding.onboardingId)\n }\n try {\n\t\t\tconst response = await axiosInstance.put(url)\n\n return response.status\n\n\n\t\t} catch (e) {\n\t\t\tconsole.warn(`Unable to request a new sms-verification code, Error = ${JSON.stringify(e)}`)\n return null\n\t\t}\n \n },\n async [ActionTypes.validateVerificationCodes]({commit, getters }): Promise{\n const axiosInstance = axios.create({\n timeout: 300000,\n validateStatus: (status) => {return status < 500 } // Configure Axios to not throw when status is less than 500\n })\n const onboarding = await getters.getContext.onboarding\n const isTenantOnboarding = await getters.getContext.isTenantOnboarding\n\n let url = getters.getConfig.verjiLinkOnboardingUrl\n\n if(isTenantOnboarding){\n url = getters.getConfig.verjiLinkOnboardingUrl + linkOnboardingApi.tenantOnboarding.validateVerificationCodes\n url = url.replace(\"{tenantid}\", onboarding.tenantId)\n url = url.replace(\"{tenantonboardingid}\", onboarding.tenantOnboardingId)\n }else {\n url = url + linkOnboardingApi.onboarding.validateVerificationCodes \n url = url.replace(\"{tenantid}\", onboarding.tenantId)\n url = url.replace(\"{onboardingid}\", onboarding.onboardingId)\n }\n\n const body: VerificationCodes = await getters.getContext.verificationCodes\n\n try {\n\t\t\tconst response = await axiosInstance.post(url, body)\n \n const responseData: ValidateVerificationCodesResponse = response.data\n\n commit(MutationTypes.SET_VALIDATION_CODE_ERRORS, responseData)\n\n return responseData\n\n\n\t\t} catch (e) {\n\t\t\tconsole.warn(`Unable to request a new email-verification code, Error = ${JSON.stringify(e)}`)\n return null\n\t\t}\n \n },\n async [ActionTypes.completeOnboardingRegistration]({ commit, getters }): Promise{\n const axiosInstance = axios.create({\n timeout: 300000,\n validateStatus: (status) => {return status < 500 } // Configure Axios to not throw when status is less than 500\n })\n const onboarding = await getters.getContext.onboarding\n const isTenantOnboarding = getters.getContext.isTenantOnboarding\n let url: string = getters.getConfig.verjiLinkOnboardingUrl\n if(isTenantOnboarding){\n url = url + linkOnboardingApi.tenantOnboarding.completeTenantOnboardingRegistration\n url = url.replace(\"{tenantid}\", onboarding.tenantId)\n url = url.replace(\"{tenantonboardingid}\", onboarding.tenantOnboardingId)\n }else{\n url = url + linkOnboardingApi.onboarding.completeOnboardingRegistration\n url = url.replace(\"{tenantid}\", onboarding.tenantId)\n url = url.replace(\"{onboardingid}\", onboarding.onboardingId)\n }\n const body: OnboardingSupplements = await getters.getContext.onboardingSupplements\n\n try {\n\t\t\tconst response = await axiosInstance.post(url, body)\n console.log(\" [Actions.completeOnboardingRegistration] Registration Complete. Response from server: \", response)\n onboarding.registrationCompleted = true\n commit(MutationTypes.SET_BEGIN_ONBOARDING, onboarding)\n return response\n\n\n\t\t} catch (e) {\n\t\t\tconsole.warn(`Unable to complete onboarding registration, Error = ${JSON.stringify(e)}`)\n\t\t}\n \n },\n // MUTATIONS\n async [ActionTypes.setOnboardingSupplementInfo]({ commit }, onboardingSupplements: OnboardingSupplements) {\n\t\ttry {\n\t\t\tcommit(MutationTypes.SET_ONBOARDING_SUPPLEMENT_INFO, onboardingSupplements)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set onboarding supplement info. Error: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.setValidationCodeErrors]({ commit }, validationCodeErrors: ValidateVerificationCodesResponse | null) {\n\t\ttry {\n\t\t\tcommit(MutationTypes.SET_VALIDATION_CODE_ERRORS, validationCodeErrors)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set validation errors. Error: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.resetValidationCodeErrors]({ commit }) {\n\t\ttry {\n\t\t\tcommit(MutationTypes.SET_VALIDATION_CODE_ERRORS, null)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set validation errors. Error: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.setVerificationCodes]({ commit }, verificationCodes: VerificationCodes) {\n\t\ttry {\n\t\t\tcommit(MutationTypes.SET_VERIFICATION_CODES, verificationCodes)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set verification codes. Error: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.resetVerificationCodes]({ commit }) {\n\t\ttry {\n\t\t\tcommit(MutationTypes.SET_VERIFICATION_CODES, null)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set verification codes. Error: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.setValidatedSteps]({ commit }, validatedSteps: ValidatedSteps) {\n\t\ttry {\n\t\t\tcommit(MutationTypes.SET_VALIDATED_STEPS, validatedSteps)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set validated steps. Error: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.resetValidatedSteps]({ commit }) {\n\t\ttry {\n const validatedSteps: ValidatedSteps = {\n verificationForm: false,\n personalInfoForm: false,\n companyInfoForm: false,\n createPasswordForm: false\n }\n\t\t\tcommit(MutationTypes.SET_VALIDATED_STEPS, validatedSteps)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set verification codes. Error: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.setExistingVippsAccount]({ commit }, accountInfo: LoginInfoResultModel) {\n\t\ttry {\n\t\t\tcommit(MutationTypes.SET_EXISTING_VIPPS_ACCOUNT, accountInfo)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set existing account. Error: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.clearExistingVippsAccount]({ commit }) {\n\t\ttry {\n\t\t\tcommit(MutationTypes.SET_EXISTING_VIPPS_ACCOUNT, null)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not clear existing account info. Error: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.setEmailVerified]({ commit }, emailVerified: boolean) {\n\t\ttry {\n\t\t\tcommit(MutationTypes.SET_EMAIL_VERIFIED, emailVerified)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set emailVerified.\" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.setGrowthbook]({ commit }, growthbook: VerjiGrowthBook){\n try {\n\t\t\tcommit(MutationTypes.SET_GROWTHBOOK, growthbook)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set growthbook.\" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.setErrorState]({ commit }, error: ErrorState) {\n\t\ttry {\n\t\t\tcommit(MutationTypes.SET_ERROR_STATE, error)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set errorstate.\" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.setActiveRegistration]({ commit }, registration: LinkRegistrationItem) {\n\t\ttry {\n\n\t\t\tcommit(MutationTypes.SET_ACTIVE_REGISTRATION, registration)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set active registration. Error: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.setExistingVerjiAccount]({ commit }, isExisting: boolean) {\n\t\ttry {\n\n\t\t\tcommit(MutationTypes.SET_EXISTING_VERJI_ACCOUNT, isExisting)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set existing Verji account. Error: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.resetSupplementInfo]({ commit }) {\n\t\ttry {\n const invalidSupplements: Supplements = { \n organization: null,\n businessRegistryId: null,\n email: null, \n phone: null,\n response: null\n }\n\t\t\tcommit(MutationTypes.SET_SUPPLEMENTS, invalidSupplements)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not reset supplement info. Error: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.setBeginRouteActive]({ commit }, active: boolean) {\n\t\ttry {\n commit(MutationTypes.SET_BEGIN_ROUTE_ENABLE, active)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set routeguard: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.setBankIdRouteActive]({ commit }, active: boolean) {\n\t\ttry {\n commit(MutationTypes.SET_BANKID_ROUTE_ENABLE, active)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set routeguard: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.setVippsRouteActive]({ commit }, active: boolean) {\n\t\ttry {\n commit(MutationTypes.SET_VIPPS_ROUTE_ENABLE, active)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set routeguard: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.setSupplementRouteActive]({ commit }, active: boolean) {\n\t\ttry {\n commit(MutationTypes.SET_SUPPLEMENT_ROUTE_ENABLE, active)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set routeguard: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.setCompleteRouteActive]({ commit }, active: boolean) {\n\t\ttry {\n commit(MutationTypes.SET_COMPLETE_ROUTE_ENABLE, active)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set routeguard: \" + JSON.stringify(e))\n\t\t}\n },\n async [ActionTypes.checkVerifyCode]({ commit }, verify: Verify) {\n try {\n const apiClient = new ApiClient()\n const response: unknown = await apiClient.verifyRegistration(verify.id, verify.token)\n console.log(\"VERIFIED WITH: \")\n console.log(response)\n commit(MutationTypes.SET_VERIFY, {\n verified: true,\n id: verify.id,\n token: verify.token\n })\n } catch (e) {\n console.warn(\"Could not set verify object: \" + JSON.stringify(e))\n const errorVerify: Verify = {\n verified: false,\n id: verify.id,\n token: verify.token\n }\n commit(MutationTypes.SET_VERIFY, errorVerify)\n }\n },\n \n async [ActionTypes.resetRouteGuard]({ commit }) {\n\t\ttry {\n commit(MutationTypes.SET_BEGIN_ROUTE_ENABLE, true)\n commit(MutationTypes.SET_BANKID_ROUTE_ENABLE, false)\n commit(MutationTypes.SET_VIPPS_ROUTE_ENABLE, false)\n commit(MutationTypes.SET_SUPPLEMENT_ROUTE_ENABLE, false)\n commit(MutationTypes.SET_COMPLETE_ROUTE_ENABLE, false)\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"Could not set routeguard: \" + JSON.stringify(e))\n\t\t}\n },\n }\n\nexport type ContextActions = Namespace","import { GetterTree } from \"vuex\"\nimport { State as ContextState} from './context/states'\nimport { State } from './states'\nimport { Config, Namespace } from \"@/types/common\"\n\nexport type Getters = {\n\tgetContext(state: State): State\n\tgetConfig(state: State): Config\n}\nexport const getters: GetterTree & Getters = {\n\tgetContext: (state) => {\n\t\treturn state\n\t},\n\tgetConfig: (state) => {\n\t\treturn state.context.config\n\t}\n}\n\nexport type ContextGetters = Namespace","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport { state, State } from './states'\nimport { mutations } from './mutations'\nimport { actions } from './actions'\nimport { getters } from './getters'\n\nimport createPersistedState from 'vuex-persistedstate'\n\nVue.use(Vuex)\n\nconst store = new Vuex.Store({\n state: { ...state},\n mutations: { ...mutations},\n actions: { ...actions},\n getters: { ...getters},\n plugins: [createPersistedState()],\n})\n\nexport default store;","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('Card',{staticClass:\"card pa-4\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('h1',[_vm._v(\"Verji-registrering\")]),_c('div',{staticClass:\"my-8 mx-2\"},[_c('p',{staticClass:\"ml-2\",attrs:{\"align\":\"left\"}},[_vm._v(\"For å registrere en ny Verji-bruker eller en ny tilknytning, er du avhengig av en invitasjon. Skriv inn registreringskoden du har mottatt i feltet nedenfor, og trykk på knappen «Gå til» for å starte registreringsprosessen. Registreringskoden består av tall og bokstaver, og skal være 10 eller 16 tegn. \")]),_c('OnboardingCodeRedirecter')],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-form',{attrs:{\"align\":\"center\",\"justify\":\"center\"},on:{\"v-on:keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.preventDefault();},\"submit\":function($event){$event.preventDefault();}},model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-row',{attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-text-field',{staticClass:\"ma-4\",attrs:{\"rules\":_vm.rules,\"label\":\"Registreringskode\",\"single-line\":\"\",\"outlined\":\"\",\"hint\":_vm.getUrl,\"persistent-hint\":\"\",\"clearable\":\"\",\"counter\":0,\"loading\":this.loading,\"disabled\":this.loading},on:{\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.goToUrl.apply(null, arguments)},this.uppercase]},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}),_c('v-btn',{staticClass:\"mr-4 mb-8\",attrs:{\"color\":\"primary darken-1\",\"large\":\"\",\"disabled\":!_vm.isFormValid || _vm.isDisabled},on:{\"click\":_vm.goToUrl}},[_vm._v(\" Gå til \")])],1)],1),_c('div',{staticClass:\"my-8\"},[_c('v-sheet',{staticClass:\"pa-5 mb-4 darkened\",attrs:{\"rounded\":\"\",\"align\":\"left\",\"color\":\"\",\"elevation\":\"3\"}},[_c('h3',{staticClass:\"ml-4 mb-2 pa-2\"},[_vm._v(\"Eksempel:\")]),_c('div',{staticClass:\"ml-8\"},[_c('p',[_vm._v(\"Gyldig registreringskode merket i grønn.\")]),_c('p',{staticClass:\"link-example\"},[_vm._v(\"https://registration.prod.verji.app/\"),_c('span',{staticClass:\"link-code\"},[_vm._v(\"0HWJF07JKJB4G9GF\")])])])])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport Vue from \"vue\"\nexport default Vue.extend({\n name: 'OnboardingCodeRedirecter',\n data(): {\n\t\tloading: boolean\n search: string\n rules: any\n isFormValid: boolean\n\n\t} {\n\t\treturn {\n\t\t\tloading: false,\n search: \"\",\n isFormValid: false,\n rules: [\n (v: string|any[]) => ( (v.length === 16) || (v.length === 11) ) || 'Registreringskoden må være nøyaktig 11 eller 16 tegn.',\n (v:string) => (/^[a-zA-Z0-9]*$/.test(v)) || 'Registreringkoden skal bare inneholde tall og bokstaver.'],\n\t\t}\n\t},\n computed: {\n\n getUrl(): string{\n console.log(window.location.href)\n if(this.search === null || this.search === \"\"){\n return `${window.location.href}registreringskode`\n }\n return `${window.location.href}${this.search}`\n },\n isDisabled(): boolean {\n if(this.search === null || this.search.length === 16 || this.search.length === 11){\n return false\n }\n return true\n }\n },\n methods: {\n uppercase(): void {\n this.search = this.search.toUpperCase()\n },\n goToUrl():void {\n this.loading = true\n if(this.isFormValid && !this.isDisabled){\n this.$router.push({path: this.search, params:{id: this.search}})\n }\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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnboardingCodeRedirecter.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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnboardingCodeRedirecter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OnboardingCodeRedirecter.vue?vue&type=template&id=42458e68&scoped=true&\"\nimport script from \"./OnboardingCodeRedirecter.vue?vue&type=script&lang=ts&\"\nexport * from \"./OnboardingCodeRedirecter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OnboardingCodeRedirecter.vue?vue&type=style&index=0&id=42458e68&prod&scoped=true&lang=css&\"\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 \"42458e68\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue } from 'vue-property-decorator'\nimport Card from '@/components/global/Card.vue'\nimport OnboardingCodeRedirecter from '@/components/OnboardingCodeRedirecter.vue';\nexport default Vue.extend({\n components: { \n Card,\n OnboardingCodeRedirecter\n },\n name: 'Home',\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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=9c756d02&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=ts&\"\nexport * from \"./Home.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=9c756d02&prod&scoped=true&lang=css&\"\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 \"9c756d02\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('invitation-link-info',{staticClass:\"heightAlign\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nconst InvitationLinkInfo = () => import(\"@/components/InvitationLinkInfo.vue\");\n\nimport Vue from \"vue\";\nimport { RouteInvitationLink } from \"@/types/data\";\nexport default Vue.extend({\n name: \"LandingPage\",\n components: {\n InvitationLinkInfo,\n }\n});\n","import { RouteGuards, RouteInvitationLink } from \"@/types/data\";\nimport store from \"@/store\"\n\nenum ErrorMessages {\n initError = \"Error: ConditionEngine has not been properly initialized.\",\n routeError = \"Error: The route has not been activated.\",\n\n beginError = \"Error: Begin conditions has not been met.\",\n bankIdError = \"Error: BankId conditions has not been met.\",\n vippsError = \"Error: Vipps conditions has not been met.\",\n supplementError = \"Error: Supplement conditions has not been met.\",\n completeError = \"Error: Complete conditions has not been met.\",\n}\n\nexport class ConditionEngine {\n \n private initialized\n\n // eslint-disable-next-line\n private guards: RouteGuards = {\n begin: false,\n bankId: false,\n vipps: false,\n supplement: false,\n complete: false\n }\n private routeInvitationLink: RouteInvitationLink = {\n id: null,\n open: false,\n checked: false,\n response: null\n }\n\n\tconstructor() {\n this.initialized = false\n\t}\n\n public async init(){\n await this.updateVuexSnapshot()\n }\n\n // Private\n private setInitialized(status: boolean){\n this.initialized = status\n }\n\n /*\n Update the condition engine with a snapshot of the current state.\n - The condition engine must be initialized on instantiation before checking for conditions.\n */\n private async updateVuexSnapshot() {\n this.guards = await store.getters.getContext.guards as RouteGuards\n this.routeInvitationLink = await store.getters.getContext.routeInvitationLink as RouteInvitationLink\n\n this.setInitialized(true)\n }\n\n private consoleWarn(message: string): boolean {\n console.warn(message)\n return false\n }\n\n // Public\n public isInitialized(): boolean {\n return this.initialized\n }\n\n public async checkBeginConditions(routedTo: boolean): Promise {\n await this.updateVuexSnapshot()\n if(!this.isInitialized()) return this.consoleWarn(ErrorMessages.initError)\n if(routedTo){\n if(!this.guards.begin) return this.consoleWarn(ErrorMessages.routeError)\n }\n\n //Implementation\n return true\n\n // return this.consoleWarn(ErrorMessages.beginError)\n }\n\n public async checkBankIdConditions(routedTo: boolean): Promise {\n if(await this.checkBeginConditions(false) == false) return false\n if(routedTo){\n if(!this.guards.bankId) return this.consoleWarn(ErrorMessages.routeError)\n }\n\n // Implementation\n if (\n this.routeInvitationLink.checked && \n this.routeInvitationLink.open && \n this.routeInvitationLink.response != null &&\n (this.routeInvitationLink.id?.length ?? 0) > 0) \n { return true }\n \n return this.consoleWarn(ErrorMessages.bankIdError)\n }\n\n public async checkVippsConditions(routedTo: boolean): Promise {\n if(await this.checkBankIdConditions(false) == false) return false\n if(routedTo){\n if(!this.guards.vipps) return this.consoleWarn(ErrorMessages.routeError)\n }\n\n //Implementation\n return true // TBD\n\n return this.consoleWarn(ErrorMessages.vippsError)\n }\n\n public async checkSupplementConditions(routedTo: boolean): Promise {\n if(await this.checkVippsConditions(false) == false) return false\n console.log(this.guards)\n if(routedTo){\n if(!this.guards.supplement) return this.consoleWarn(ErrorMessages.routeError)\n }\n\n //Implementation\n return true; // TBD\n\n return this.consoleWarn(ErrorMessages.supplementError)\n }\n \n public async checkCompleteConditions(routedTo: boolean): Promise {\n if(await this.checkSupplementConditions(false) == false) return false\n console.log(\"asd\")\n console.log(this.guards)\n if(routedTo){\n console.log(this.guards)\n if(!this.guards.complete) return this.consoleWarn(ErrorMessages.routeError)\n }\n \n //Implementation\n return true; // TBD\n\n return this.consoleWarn(ErrorMessages.completeError)\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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LandingPage.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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LandingPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LandingPage.vue?vue&type=template&id=56fb1559&scoped=true&\"\nimport script from \"./LandingPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./LandingPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LandingPage.vue?vue&type=style&index=0&id=56fb1559&prod&scoped=true&lang=css&\"\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 \"56fb1559\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"heightAlign\"},[(_vm.loading)?_c('div',[_c('card',{staticClass:\"card centeredText\"},[_c('v-progress-circular',{attrs:{\"size\":70,\"width\":7,\"color\":\"green\",\"indeterminate\":\"\"}})],1)],1):_c('div',[(!_vm.emailVerified)?_c('card',{staticClass:\"card centeredText\"},[_c('h1',[_vm._v(\"Bekreft e-postadresse\")]),_c('p',{staticClass:\"bread\"},[_vm._v(\"Du vil få tilsendt en e-post med instrukser for å bekrefte din e-postadresse.\")]),(_vm.hasExistingVerjiAccount)?_c('p',{staticClass:\"left\"},[_vm._v(\"Du har valgt å benytte en eksisterende konto for denne registreringen. Det betyr at det ikke er opprettet noen ny konto med Vipps innlogging. Dersom du eventuelt ønsker Vipps innlogging på din eksisterende konto finner du hvordan \"),_c('a',{attrs:{\"href\":\"https://verji.no/videoinstruksjoner\"}},[_vm._v(\"her.\")])]):_vm._e()]):(_vm.emailVerified && !_vm.registration.registrationManualApproval)?_c('card',{staticClass:\"card centeredText\"},[_c('h1',[_vm._v(\"Registrering fullført\")]),_c('p',{staticClass:\"bread\"},[_vm._v(\"Du vil få tilsendt en e-post med instrukser for å logge inn i Verji.\")]),(_vm.hasExistingVerjiAccount)?_c('p',{staticClass:\"left\"},[_vm._v(\"Du har valgt å benytte en eksisterende konto for denne registreringen. Det betyr at det ikke er opprettet noen ny konto med Vipps innlogging. Dersom du eventuelt ønsker Vipps innlogging på din eksisterende konto finner du hvordan \"),_c('a',{attrs:{\"href\":\"https://verji.no/videoinstruksjoner\"}},[_vm._v(\"her.\")])]):_vm._e()]):((_vm.emailVerified && _vm.registration.registrationManualApproval))?_c('card',{staticClass:\"card centeredText\"},[_c('h1',[_vm._v(\"Venter på godkjenning\")]),_c('p',{staticClass:\"bread\"},[_vm._v(\"Du vil få tilsendt en e-post med instrukser for å logge inn når din registrering har blitt godkjent.\")]),(_vm.hasExistingVerjiAccount)?_c('p',{staticClass:\"left\"},[_vm._v(\"Du har valgt å benytte en eksisterende konto for denne registreringen. Det betyr at det ikke er opprettet noen ny konto med Vipps innlogging. Dersom du eventuelt ønsker Vipps innlogging på din eksisterende konto finner du hvordan \"),_c('a',{attrs:{\"href\":\"https://verji.no/videoinstruksjoner\"}},[_vm._v(\"her.\")])]):_vm._e()]):_c('span',[_vm._v(\" \"+_vm._s(this.sendToErrorPage())+\" \")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\nimport Vue from \"vue\";\nimport { RouteInvitationLink, LinkRegistrationItem, ErrorState } from \"@/types/data\";\nimport Card from '@/components/global/Card.vue'\nimport { ActionTypes } from \"@/enums/vuex\";\n\nexport default Vue.extend({\n components: { \n Card\n }, \n data (): {\n loading: boolean\n\n } { \n return {\n loading: false\n }\n },\n async mounted() {\n //Check if email requires verification\n this.loading = true\n await this.$store.dispatch(ActionTypes.emailVerified, this.email)\n this.loading = false\n \n },\n name: \"CompleteRegistration\",\n computed: {\n registration(): LinkRegistrationItem {\n return this.$store.state.activeRegistration\n },\n customerName(): RouteInvitationLink {\n return this.$store.state.routeInvitationLink.response.customerName\n },\n name(): RouteInvitationLink {\n return this.$store.state.routeInvitationLink.response.personName\n },\n hasExistingVerjiAccount(): boolean {\n return this.$store.state.hasExistingVerjiAccount\n },\n emailVerified(): boolean {\n return this.$store.state.emailVerified\n },\n email(): string {\n return this.$store.state.supplements.email\n }\n\t},\n methods: {\n // Triggered by the v-else. Meaning none of the expected states did occure.\n async sendToErrorPage(): Promise {\n\n console.error(\"CompleteRegistration failed. Or is in an unknown/unexpected state.\")\n\n // Create new #ERROR event\n const flowName = \"Complete\"\n const error: ErrorState = {\n title: \"Noe gikk galt under ferdistilling av registreringen\",\n description: \"Innsending eller ferdigstilling av registreringen feilet.\",\n flowRouteName: flowName\n }\n //Set the error state\n await this.$store.dispatch(ActionTypes.setErrorState, error)\n\n this.$router.push({ path: \"/error\" })\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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompleteRegistration.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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompleteRegistration.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CompleteRegistration.vue?vue&type=template&id=309cbfa7&scoped=true&\"\nimport script from \"./CompleteRegistration.vue?vue&type=script&lang=ts&\"\nexport * from \"./CompleteRegistration.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CompleteRegistration.vue?vue&type=style&index=0&id=309cbfa7&prod&scoped=true&lang=css&\"\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 \"309cbfa7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"heightAlign\"},[(!_vm.registration.registrationManualApproval)?_c('card',{staticClass:\"card centeredText\"},[_c('h1',[_vm._v(\"Bekreftet e-postadresse\")]),_c('p',{staticClass:\"bread\"},[_vm._v(\"Du vil få tilsendt en e-post med instrukser for å logge inn.\")]),_c('div',[_c('div',{staticClass:\"left\"}),_c('div',{staticClass:\"right\"})])]):(_vm.registration.registrationManualApproval)?_c('card',{staticClass:\"card centeredText\"},[_c('h1',[_vm._v(\"Bekreftet e-postadresse\")]),_c('p',{staticClass:\"bread\"},[_vm._v(\"Du vil få tilsendt en e-post med instrukser for å logge inn når din registrering har blitt godkjent.\")])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\nimport Vue from \"vue\";\nimport { LinkRegistrationItem } from \"@/types/data\";\nimport Card from '@/components/global/Card.vue'\n\nexport default Vue.extend({\n components: { \n Card\n },\n computed: {\n registration(): LinkRegistrationItem {\n return this.$store.state.activeRegistration\n }\n\t},\n name: \"VerifyRegistration\",\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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VerifyRegistration.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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VerifyRegistration.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VerifyRegistration.vue?vue&type=template&id=36674904&scoped=true&\"\nimport script from \"./VerifyRegistration.vue?vue&type=script&lang=ts&\"\nexport * from \"./VerifyRegistration.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./VerifyRegistration.vue?vue&type=style&index=0&id=36674904&prod&scoped=true&lang=css&\"\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 \"36674904\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _vm._m(0)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',[_c('h1',[_vm._v(\"OIDC Callback Error\")])])\n}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./OidcCallbackError.vue?vue&type=template&id=d60af3fa&\"\nvar script = {}\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 { ActiveLinkResponse, BeginRegistrationResponse, ErrorState, LinkRegistrationItem, LookupLinkRegistrationResponse, RegistrationContactInfoResponse, RouteInvitationLink } from \"@/types/data\"\nimport { ActionTypes, MutationTypes } from \"@/enums/vuex\"\nimport { middlewareContext } from \"../types\"\nimport { kdf } from \"crypto-js\"\nimport { getters } from \"@/store/getters\"\n\n// START NEW OR RESTORE EXISTING REGISTRATION\n\nexport default async ({ to, from, next, store, router, flowName }: middlewareContext): Promise => {\n\tconsole.log(\"MW: ensureRegistration flow name: \", flowName)\n\t// after bankid implementation OR new endpoint from tommy\n\n const link: RouteInvitationLink = store.state.routeInvitationLink\n const linkObject: ActiveLinkResponse | null = link.response\n const accessToken : string = store.getters[\"oidcStoreBankId/oidcAccessToken\"]\n const sub: string = store.getters[\"oidcStoreBankId/oidcUser\"].sub\n\n\tconst lookUpRequest = {\n accessToken: accessToken,\n customerId: linkObject?.customerId, \n linkOnboardingId: linkObject?.jobId,\n sub: sub,\n }\n\n let registrationItem: LinkRegistrationItem | null = null\n\n const lookupRegistrationResult: LookupLinkRegistrationResponse = await store.dispatch(ActionTypes.lookupLinkRegistration, lookUpRequest)\n //const lookupRegistrationResult = null\n console.log(\"MW: Lookup Registration Result: \", lookupRegistrationResult )\n\n if ( lookupRegistrationResult === null){\n // Create new #ERROR event\n console.error(\"Unable to lookup registration, aborting.\")\n\n //const url = router.currentRoute.path\n const error: ErrorState = {\n title: \"Klarte ikke slå opp registreringen\",\n description: \"Prøvde å slå opp registreringen, men fikk ugyldig respons fra server.\",\n flowRouteName: flowName\n }\n //Set the error state\n await store.dispatch(ActionTypes.setErrorState, error)\n\n await router.push({ path: \"/error\" })\n }\n\n if (lookupRegistrationResult.count === 0 ){\n\n try{\n console.log(\"MW: Create a new registration\")\n\n await store.dispatch(\"beginRegistration\", link.id)\n\n const registrationResponse = await store.getters.getContext.registration\n console.log(\"MW: Result registration info: \", registrationResponse)\n\n const registration: BeginRegistrationResponse = registrationResponse.data \n\n console.log(\"MW: Result registration info: \", registration)\n\n if(!registrationResponse){\n console.error(\"Unable to find registration response after beginRegistration.\")\n\n // Create new #ERROR event\n const error: ErrorState = {\n title: \"Klarte ikke hente den opprettede registreringen\",\n description: \"Prøvde å hente en ny opprettet registrering, men fikk tomt svar fra server.\",\n flowRouteName: flowName\n }\n //Set the error state\n await store.dispatch(ActionTypes.setErrorState, error) \n await router.push({ path: \"/error\" })\n }\n \n console.log(\"registrationResponse: \", registrationResponse)\n\n const lookupRegistrationResult: LinkRegistrationItem = await store.dispatch(ActionTypes.getLinkRegistrationById, registration.jobId)\n \n // No existing registration\n if (!lookupRegistrationResult){\n console.error(\"Unable to lookup the link registration object\")\n\n // Create new #ERROR event\n const error: ErrorState = {\n title: \"Klarte ikke finne registreringen\",\n description: \"Prøvde å hente registreringen, men fikk tomt svar fra server.\",\n flowRouteName: flowName\n }\n //Set the error state\n await store.dispatch(ActionTypes.setErrorState, error) \n\n await router.push({ path: \"/error\" })\n\n }else {\n console.log(\"registration: \", lookupRegistrationResult)\n registrationItem = lookupRegistrationResult\n \n } \n \n } catch(e){\n console.error(\"Begin registration failed\", JSON.stringify(e))\n }\n } \n else {\n\n // SET STATE TO EXISTING REGISTRATION\n console.log(\"MW: Found existing registration.\")\n registrationItem = lookupRegistrationResult.results[0]\n\n \n }\n\n if ( registrationItem === null) {\n\n console.warn(\"Warning: Registration link object is null. aborting\")\n // Create new #ERROR event\n //const url = router.currentRoute.path\n const error: ErrorState = {\n title: \"Klarte ikke finne registreringen\",\n description: \"Prøvde å hente registreringen, men fikk tomt svar fra server.\",\n flowRouteName: flowName\n }\n //Set the error state\n await store.dispatch(ActionTypes.setErrorState, error) \n await router.push({ path: \"/error\" })\n\n }\n else {\n\n await store.dispatch(ActionTypes.setActiveRegistration, registrationItem)\n\n // Handle complete registrations\n console.log(`Registration status exists, and status is: ${registrationItem.status}`)\n // TODO: is it true, that these are the only statuses which should result in \"already registered\" page. Or are there more statuses e.g AwaitingManuelApproval etc\n if (registrationItem.status === \"Completed\" || registrationItem.status === \"EmailSent\"){\n console.log(`MW: [ensureReigstration] User has already completed registration, registration status:${registrationItem.status}`)\n await store.dispatch(ActionTypes.setCompleteRouteActive, true)\n \n await router.push({name: \"AlreadyRegistered\", path: \"/already-registered\"})\n }\n \n }\n\n\tnext()\n}\n","import { ActionTypes } from \"@/enums/vuex\"\nimport { ErrorState, LinkRegistrationItem, LookupLinkRegistrationResponse, RouteInvitationLink, Verify } from \"@/types/data\"\nimport { middlewareContext } from \"../types\"\n\nexport default async ({ to, from, next, store, router, flowName }: middlewareContext): Promise => {\n\tconsole.log(\"Refreshing registration...\")\n let id = \"\"\n const storedRegistration = await store.getters.getContext.activeRegistration as LinkRegistrationItem\n\n // Set ID to be the same as activeRegistration\n id = storedRegistration.jobId\n\n // Set ID to be the same as supplied in query if there was no activeRegistration to be found\n if(!id || id == \"\"){\n if(to.query && to.query?.id){\n id = to.query?.id.toString()\n } else {\n // No ID could be found in either activeRegistration or query params\n console.warn(\"Lookup registration failed. No valid ID could be found.\")\n }\n }\n \n try{\n const registration: LinkRegistrationItem = await store.dispatch(ActionTypes.getLinkRegistrationById, id)\n if (!registration){\n console.log(\"Unable to lookup link registration object\")\n console.log(\"Using: \" + id)\n\n // Create new #ERROR event\n //const url = router.currentRoute.path // BankId legg til routename \n const error: ErrorState = {\n title: \"Klarte ikke finne registreringen\",\n description: \"Prøvde å hente registreringen, men fikk tomt svar fra server.\",\n flowRouteName: flowName\n }\n //Set the error state\n await store.dispatch(ActionTypes.setErrorState, error) \n\n router.push({ path: \"/error\" })\n\n } else {\n \n await store.dispatch(ActionTypes.setActiveRegistration, registration)\n\n next()\n }\n } catch (e){\n console.log(\"Lookup registration failed.\")\n console.log(storedRegistration)\n\n // Create new #ERROR event\n const error: ErrorState = {\n title: \"Klarte ikke finne registreringen\",\n description: \"Prøvde å hente registreringen, men fikk tomt svar fra server.\",\n flowRouteName: flowName\n }\n //Set the error state\n await store.dispatch(ActionTypes.setErrorState, error) \n\n await router.push({ path: \"/error\" })\n }\n}\n","import VueRouter from 'vue-router'\nimport { ConditionEngine } from './conditionEngine';\nimport store from \"@/store\"\nimport { RouteGuards, RouteInvitationLink } from \"@/types/data\";\nimport { ActionTypes, MutationTypes } from \"@/enums/vuex\"\n\n\nexport function attachAfterHook (router: VueRouter){\n router.afterEach(async (to, from) => {\n if(to.name == 'Begin') {\n await setRouteGuard({\n begin: true,\n bankId: false,\n vipps: false,\n supplement: false,\n complete: false\n })\n }\n else if (to.name == 'BankId'){\n await setRouteGuard({\n begin: true,\n bankId: true,\n vipps: false,\n supplement: false,\n complete: false\n })\n }\n else if (to.name == 'Vipps'){\n await setRouteGuard({\n begin: true,\n bankId: false,\n vipps: true,\n supplement: false,\n complete: false\n })\n }\n else if (to.name == 'Supplement'){\n await setRouteGuard({\n begin: true,\n bankId: false,\n vipps: false,\n supplement: true,\n complete: false\n })\n }\n else if (to.name == 'Complete'){\n await setRouteGuard({\n begin: true,\n bankId: false,\n vipps: false,\n supplement: false,\n complete: true\n })\n }\n else { }\n })\n}\n\nexport async function setRouteGuard(routeGuards: RouteGuards){\n await store.dispatch(ActionTypes.setBeginRouteActive, routeGuards.begin)\n await store.dispatch(ActionTypes.setBankIdRouteActive, routeGuards.bankId)\n await store.dispatch(ActionTypes.setVippsRouteActive, routeGuards.vipps)\n await store.dispatch(ActionTypes.setSupplementRouteActive, routeGuards.supplement)\n await store.dispatch(ActionTypes.setCompleteRouteActive, routeGuards.complete)\n}","import VueRouter from 'vue-router'\nimport store from \"@/store\"\nimport { middlewareContext, middleware } from \"../types\"\nimport { ConditionEngine } from './src/conditionEngine';\nimport { attachAfterHook } from './src/routeHooks';\n\nexport default async ({ to, from, next, store, router }: middlewareContext): Promise => {\n const conditionEngine = new ConditionEngine();\n conditionEngine.init();\n \n console.log(\"Navigation\")\n if(to.name == 'Begin'){\n if(await conditionEngine.checkBeginConditions(true)) {\n next()\n }\n else { \n router.push({ path: \"/home\"})\n }\n }\n else if (to.name == 'BankId'){\n if(await conditionEngine.checkBankIdConditions(true)) {\n next()\n }\n else {\n router.push({ path: \"/\" + to.params.id})\n }\n }\n else if (to.name == 'Vipps'){\n if(await conditionEngine.checkVippsConditions(true)) {\n next()\n }\n else {\n router.push({ path: \"/\" + to.params.id})\n }\n }\n else if (to.name == 'Supplement'){\n if(await conditionEngine.checkSupplementConditions(true)) {\n next()\n }\n else {\n router.push({ path: \"/\" + to.params.id})\n }\n }\n else if (to.name == 'Complete'){\n if(await conditionEngine.checkCompleteConditions(true)) {\n next()\n }\n else {\n router.push({ path: \"/\" + to.params.id})\n }\n }\n else { \n console.log(to)\n }\n\n attachAfterHook(router)\n}","export enum FeatureNames {\n\t// feature flag names\n onboardingRegistration = \"onboarding-registration\",\n}\n","import { middlewareContext} from \"../types\"\nimport { ErrorState, RouteInvitationLink, VerifyOnboardingCodeResponse, VerifyTenantOnboardingCodeResponse } from \"@/types/data\";\nimport { ActionTypes } from \"@/enums/vuex\"\nimport { VerjiGrowthBook } from \"@/config/growthbook\";\nimport { FeatureNames } from \"@/enums/fn\";\n\nexport default async ({ to, from, next, store, router, flowName }: middlewareContext): Promise => {\n\tconsole.log(\"MW: [validOnboarding] - Running\")\n\n\tconst id = to.params?.id.toUpperCase()\n let invitationLink = await store.getters.getContext.routeInvitationLink as RouteInvitationLink\n const growthbook = await store.getters.getContext.growthbook as VerjiGrowthBook\n const isOnboardingAllowed = growthbook.isOn(FeatureNames.onboardingRegistration)\n console.log(\"MW: [validOnboarding] - FeatureFlag.onboardingReagistration: \", isOnboardingAllowed)\n\n // Onboarding logic, featureFlag allowOnboarding - if linkcode is length 11 (it is an onboarding and not a link onboarding)\n if(id !== null && id.length === 11 && isOnboardingAllowed){\n console.log(\"MW: [validOnboarding] - FeatureFlag for onboarding is enabled, allow bypass\")\n await store.dispatch(ActionTypes.verifyOnboardingCode, id)\n\n const res: VerifyOnboardingCodeResponse | VerifyTenantOnboardingCodeResponse = await store.getters.getContext.onboarding\n\n console.log(\"MW: [validOnboarding] - Onboarding Response: \", res)\n if(res?.tenantId ?? false){\n console.log(\"MW: [validOnboarding] - The onboarding link code is valid, proceeding to registration.\")\n next()\n return\n }else {\n if(invitationLink.id === id){\n // If tenantId is undefined, something has gone wrong, we set invitationLink.open to false so that we will be redirected to /error\n invitationLink.open = false\n }\n }\n }\n\n // Standard flow for LinkOnboarding\n if(\n\t\tinvitationLink.checked == true && \n\t\tinvitationLink.open == true &&\n\t\tinvitationLink.id != id\n\t){\n\t\tawait store.dispatch(ActionTypes.resetRouteGuard)\n\t\tawait store.dispatch(ActionTypes.checkInvitationLink, id)\n\t\trouter.push({ path: \"/\" + id}).catch( (e) => console.warn(`An error occured when trying to push path: /${id} - Error Message: ${e}`))\n\t\treturn;\n\t}\n\n\tawait store.dispatch(ActionTypes.checkInvitationLink, id)\n\tinvitationLink = await store.getters.getContext.routeInvitationLink as RouteInvitationLink\n\t\n\tif (\n\t\tinvitationLink.checked == true && \n\t\tinvitationLink.open == true &&\n\t\tinvitationLink.id == id\n\t\t){\n\t\tnext()\n\t} else {\n\t\tawait store.dispatch(ActionTypes.resetRouteGuard)\n //If we reset the invitation link here, we will lose the access to the id in the Error component\n\t\t//await store.dispatch(ActionTypes.resetInvitationLink)\n \n // Special case if the users enters the error via rootpage \"/\", to ensure the user will return to home if they \"try again\" on ErrorPage.vue\n if(from.name === \"Home\"){\n flowName = from.name\n }\n\n // Create new #ERROR event\n console.error(\"MW: [validOnboarding]: Failed to verify the onboarding ID.\")\n const error: ErrorState = {\n title: \"Lenken er ugyldig\",\n description: \"Lenken eksisterer ikke lenger, eller er ugyldig.\",\n flowRouteName: flowName\n }\n console.log(\"New Error State: \", error)\n //Set the error state\n await store.dispatch(ActionTypes.setErrorState, error) \n\n router.push({ path: \"/error\" }).catch( () => { console.log(\"Catching redundant navigation error.\")})\n\t}\n\n\treturn;\n}\n","import { ErrorState, RouteInvitationLink, Verify } from \"@/types/data\"\nimport { middlewareContext } from \"../types\"\nimport { ActionTypes, MutationTypes } from \"@/enums/vuex\"\n\nexport default async ({ to, from, next, store, router, flowName }: middlewareContext): Promise => {\n\tconsole.log(\"VerifyLink\")\n\tconst id = to.query?.id\n const token = to.query?.token\n \n try{\n if(\n !id ||\n !token ||\n id.length == 0 || \n token.length == 0\n ){\n // Create new #ERROR event\n console.error(\"verifyLink: Missing property in required parameters.\")\n\n const error: ErrorState = {\n title: \"Ugyldig verifisering\",\n description: \"Noe gikk galt under verifisering av e-post.\",\n flowRouteName: flowName\n }\n //Set the error state\n await store.dispatch(ActionTypes.setErrorState, error)\n\n router.push({ path: \"/error\" })\n }\n \n console.log(\"ID and TOKEN\")\n console.log(id)\n console.log(token)\n } catch (e){\n //todo: fail resistant to faulty id if it exists in store\n }\n\n // Todo: implement better handling of routeinvitationlink\n const invitationLink = await store.getters.getContext.routeInvitationLink as RouteInvitationLink\n const verify: Verify = {\n verified: false,\n id: id.toString(),\n token: token.toString()\n }\n await store.dispatch(ActionTypes.checkVerifyCode, {id, token})\n \n const status = await store.getters.getContext.verify as Verify\n \n console.log(\"ATTEMPTED VERIFY\")\n console.log(status)\n\n if(status.verified){\n next()\n } else {\n // Create new #ERROR event\n console.error(\"verifyLink: Verification failed\")\n\n const error: ErrorState = {\n title: \"Ugyldig verifisering\",\n description: \"Noe gikk galt under verifisering av e-post.\",\n flowRouteName: flowName\n }\n //Set the error state\n await store.dispatch(ActionTypes.setErrorState, error)\n\n router.push({ path: \"/error\" })\n }\n}\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nexport default async ({ to, next, store } :{to:any, next:any, store:any} ) => {\n console.log(\"MIDDLEWARE: OIDC BankId\")\n \n const hasAccess = await store.dispatch('oidcStoreBankId/oidcCheckAccess', to)\n \n if (hasAccess)\n next()\n }","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nexport default async ({ to, next, store } :{to:any, next:any, store:any}) => {\n console.log(\"Middleware: OIDC Vipps\")\n \n const hasAccess = await store.dispatch('oidcStoreVipps/oidcCheckAccess', to)\n \n if (hasAccess){\n console.log(\"Middleware: Vipps login successful\")\n \n next()\n }\n\n }","import { LoginInfoResultModel } from \"@/types/data\"\nimport { ActionTypes, MutationTypes } from \"@/enums/vuex\"\nimport { middlewareContext } from \"../types\"\n// Checks for existing Vipps Users, persists data in case of user existing\n\nexport default async ({ to, from, next, store, router, flowName }: middlewareContext): Promise => {\n\n console.log(\"MW: [existingUser]\")\n\n const accessToken : string = store.getters[\"oidcStoreVipps/oidcAccessToken\"]\n \n // Check if user already has an existing Vipps-Login-Account in Verji\n const accountInfo: LoginInfoResultModel | null = await store.dispatch(ActionTypes.existingVippsAccount, accessToken)\n\n if (accountInfo !== null){\n console.log(\"MW: [existingUser] Account exist\")\n await store.dispatch(ActionTypes.setExistingVippsAccount, accountInfo)\n\n\n }else{\n console.log(\"MW: [existingUser] Account does not exist.\")\n\n // TODO: reset existing account info\n await store.dispatch(ActionTypes.clearExistingVippsAccount)\n }\n\n\tnext()\n}\n","import { middlewareContext, middleware } from \"./types\"\nimport ensureRegistration from \"./routeguard/ensureRegistration\"\nimport refreshRegistration from \"./routeguard/refreshRegistration\"\nimport navigation from \"./routeguard/navigation\"\nimport validOnboarding from \"./routeguard/validOnboarding\"\nimport verifyLink from \"./routeguard/verifyLink\"\nimport oidcBankId from \"./oidcBankId\"\nimport oidcVipps from \"./oidcVipps\"\nimport existingUser from \"./routeguard/existingUser\"\n\n\nexport const routeguard = {\n // Link Onboarding\n bankId: [validOnboarding, oidcBankId, ensureRegistration],\n\tbegin: [validOnboarding, navigation],\n supplement: [validOnboarding, oidcBankId, ensureRegistration, oidcVipps, existingUser],\n\tcomplete: [validOnboarding, refreshRegistration],\n verify: [oidcBankId, refreshRegistration, verifyLink],\n // Onboarding\n beginOnboarding: [validOnboarding]\n}\n\n// eslint-disable-next-line\nexport function nextFactory(\n\tcontext: middlewareContext,\n\tmiddleware: middleware,\n\tindex: number\n) {\n\tconst subsequentMiddleware = Array.isArray(middleware)\n\t\t? middleware[index]\n\t\t: null\n\tif (!subsequentMiddleware) return context.next\n\n\treturn () => {\n\t\t// Run the default Vue Router `next()` callback first. NO - WHY? - this will triple up with starting renders. Can be seen if adding a beforeRouteEnter in the components..\n\t\t// context.next()\n\t\t// Then run the subsequent Middleware with a new `nextMiddleware()` callback.\n\t\tconst nextMiddleware = nextFactory(\n\t\t\tcontext,\n\t\t\tmiddleware,\n\t\t\tindex + 1\n\t\t)\n\t\tsubsequentMiddleware({ ...context, next: nextMiddleware })\n\t}\n\t\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"heightAlign text-wrapper d-flex flex-column justify-start mt-4\"},[_c('p',[_c('b',{staticClass:\"text-highlight\"},[_vm._v(_vm._s(_vm.getInviterName))]),_vm._v(\" fra \"),_c('b',{staticClass:\"text-highlight\"},[_vm._v(_vm._s(_vm.getInviterCompanyName))]),_vm._v(\" har invitert deg til å starte en samtale i den sikre kommunikasjonskanalen Verji.\")]),(!_vm.isRegistrationComplete)?_c('p',[_vm._v(\"Vennligst fyll ut skjemaet nedenfor, for å komme i gang med Verji.\")]):_vm._e()]),_c('RegistrationStepper')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n const RegistrationStepper = () => import(\"@/components/RegistrationStepper.vue\")\n \nimport { VerifyOnboardingCodeResponse, VerifyTenantOnboardingCodeResponse } from \"@/types/data\";\n import Vue from \"vue\";\n export default Vue.extend({\n name: \"OnboardingRegistration\",\n components: {\n RegistrationStepper\n },\n computed: {\n getInviterName(): string {\n return this.$store.getters.getContext.onboarding.invitingPersonDisplayName ?? \"\"\n },\n getInviterCompanyName(): string {\n return this.$store.getters.getContext.onboarding.invitingPersonCompanyName ?? \"\"\n },\n isRegistrationComplete(): boolean {\n return this.$store.getters.getContext.onboarding.registrationCompleted ?? false\n }\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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnboardingRegistration.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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnboardingRegistration.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OnboardingRegistration.vue?vue&type=template&id=f65450b2&scoped=true&\"\nimport script from \"./OnboardingRegistration.vue?vue&type=script&lang=ts&\"\nexport * from \"./OnboardingRegistration.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OnboardingRegistration.vue?vue&type=style&index=0&id=f65450b2&prod&scoped=true&lang=css&\"\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 \"f65450b2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"heightAlign text-wrapper d-flex flex-column justify-start mt-4\"},[_c('p',[_vm._v(\"Du har blitt invitert til den sikre kommunikasjonskanalen Verji. \"),_c('b',{staticClass:\"text-highlight\"},[_vm._v(_vm._s(_vm.getInviterName))]),_vm._v(\" ønsker å sette deg som primærkontakt for organisasjonsen \"),_c('b',{staticClass:\"text-highlight\"},[_vm._v(_vm._s(_vm.getCompanyName))]),_vm._v(\".\")]),(!_vm.isRegistrationComplete)?_c('p',[_vm._v(\"Vennligst fyll ut skjemaet nedenfor, for å komme i gang med Verji.\")]):_vm._e()]),_c('RegistrationStepper')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n const RegistrationStepper = () => import(\"@/components/RegistrationStepper.vue\")\n \n import Vue from \"vue\";\n export default Vue.extend({\n name: \"TenantOnboardingRegistration\",\n components: {\n RegistrationStepper\n },\n computed: {\n getInviterName(): string {\n return this.$store.getters.getContext.onboarding.invitingPersonDisplayName ?? \"\"\n },\n getInviterCompanyName(): string {\n return this.$store.getters.getContext.onboarding.invitingPersonCompanyName ?? \"\"\n },\n getCompanyName(): string {\n return this.$store.getters.getContext.onboarding.companyName ?? \"\"\n },\n isRegistrationComplete(): boolean {\n return this.$store.getters.getContext.onboarding.registrationCompleted ?? false\n }\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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TenantOnboardingRegistration.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--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TenantOnboardingRegistration.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TenantOnboardingRegistration.vue?vue&type=template&id=30baf2c5&scoped=true&\"\nimport script from \"./TenantOnboardingRegistration.vue?vue&type=script&lang=ts&\"\nexport * from \"./TenantOnboardingRegistration.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TenantOnboardingRegistration.vue?vue&type=style&index=0&id=30baf2c5&prod&scoped=true&lang=css&\"\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 \"30baf2c5\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport store from '@/store'\nimport VueRouter, { RouteConfig } from 'vue-router'\nimport Home from '../views/Home.vue'\nimport LandingPage from '../views/LandingPage.vue'\nimport CompleteRegistration from '../views/CompleteRegistration.vue'\nimport VerifyRegistration from '../views/VerifyRegistration.vue'\nimport OidcCallbackError from '@/views/OidcCallbackError.vue'\n\n// Oidc - Middleware\nimport { nextFactory, routeguard } from \"./middleware\"\nimport { middlewareContext, middleware } from \"@/router/middleware/types\"\n\n// Onboarding Flow \nimport OnboardingRegistration from '@/views/OnboardingRegistration.vue'\nimport TenantOnboardingRegistration from '@/views/TenantOnboardingRegistration.vue'\n\nVue.use(VueRouter)\n\nexport const noBankIdRequired = ['/', '/:id', '/oidc-callback-error']\nexport const noVippsRequired = ['/', '/:id', '/oidc-callback-error', '/:id/bankId' ]\n\nconst routes: Array = [\n {\n path: '/',\n name: 'Home',\n component: Home,\n meta: {\n isPublic: true\n }\n },\n {\n path: '/about',\n name: 'About',\n component: () => import(/* webpackChunkName: \"about\" */ '../views/About.vue')\n },\n {\n path: '/error',\n name: 'ErrorPage',\n component: () => import( '../views/ErrorPage.vue')\n },\n {\n path: '/already-registered',\n name: 'AlreadyRegistered',\n component: () => import( '../views/AlreadyRegistered.vue')\n },\n { \n path: '/verify',\n name: 'Verify',\n component: VerifyRegistration,\n meta: {\n\t\t\tmiddleware: routeguard.verify,\n middlewareName: \"VERIFY\"\n\t\t}\n },\n {\n path: '/bankid-oidc-callback',\n name: 'BankIdCallBack',\n component: () => import( '../views/BankIdCallback.vue'),\n meta: {\n isPublic: false\n }\n },\n {\n path: '/vipps-oidc-callback',\n name: 'VippsCallback',\n component: () => import( '../views/VippsCallback.vue'),\n meta: {\n isPublic: false\n }\n },\n {\n path: '/oidc-callback-error',\n name: 'OidcCallbackError',\n component: OidcCallbackError,\n meta: {\n isPublic: true\n }\n },\n {\n path: '/:id/bankId',\n name: 'BankId',\n component: () => import('../views/BankId.vue'),\n meta: {\n middleware: routeguard.bankId,\n middlewareName: \"BANKID\"\n }\n },\n { \n // Link Onboarding should initiate if id is more than 10 characters\n path: '/:id(.[A-Za-z0-9]{12,})', // Reinforced regex so it does not accidentaly pick up any other paths\n name: 'Begin',\n component: LandingPage,\n meta: {\n\t middleware: routeguard.begin,\n middlewareName: \"BEGIN\",\n isPublic: true\n\t}\n },\n {\n // Onboarding flow handles for onboarding (A or a prefix)\n path: '/:id([Aa].{0,11})',\n name: 'OnboardingRegistration',\n component: OnboardingRegistration,\n meta: {\n isPublic: true,\n middleware: routeguard.beginOnboarding,\n middlewareName: \"BEGINONBOARDING\"\n }\n },\n {\n // Onboarding flow for TenantOnboarding (B or b prefix )\n path: '/:id([Bb].{0,11})',\n name: 'TenantOnboardingRegistration',\n component: TenantOnboardingRegistration,\n meta: {\n isPublic: true,\n middleware: routeguard.beginOnboarding,\n middlewareName: \"BEGINONBOARDING\"\n }\n }, \n { \n path: '/:id/supplement',\n name: 'Supplement',\n component: () => import('../views/SupplementInformation.vue'),\n meta: {\n\t\t\tmiddleware: routeguard.supplement,\n middlewareName: \"SUPPLEMENT\"\n\t\t}\n },\n { \n path: '/:id/complete',\n name: 'Complete',\n component: CompleteRegistration,\n meta: {\n\t\t\tmiddleware: routeguard.complete,\n middlewareName: \"COMPLETE\"\n\t\t}\n }\n]\n\nconst router = new VueRouter({\n routes,\n mode: 'history'\n})\n\nrouter.beforeEach(async (to, from, next) => {\n if (to.meta?.bypass){\n return next()\n }\n\n\tif (to.meta && to.meta.middleware) {\n\t\tconst middleware = Array.isArray(to.meta.middleware) ? to.meta.middleware : [to.meta.middleware]\n\t\tconst context: middlewareContext = {\n\t\t\tto,\n\t\t\tfrom,\n\t\t\tnext,\n\t\t\tstore: store,\n\t\t\trouter,\n flowName: to.name\n\t\t}\n\t\tconst nextMiddleware = nextFactory(context, ((middleware as unknown) as middleware\n\t\t), 1)\n\t\treturn middleware[0]({ ...context, next: nextMiddleware })\n\t}\n\n\treturn next()\n})\n\nexport default router\n","/* Font Awesome with tree-shaking\n *\n * 1. Import needed Icon (Regular/outlined, Solid, Brand etc..)\n * 2. Add imported Icon to library\n */\n\nimport Vue from \"vue\"\nimport { library } from \"@fortawesome/fontawesome-svg-core\"\nimport { IconsOptions } from \"vuetify/types/services/icons\"\nimport { FontAwesomeIcon, FontAwesomeLayers, FontAwesomeLayersText } from \"@fortawesome/vue-fontawesome\"\n\nVue.component(\"fa\", FontAwesomeIcon)\nVue.component(\"font-awesome-icon\", FontAwesomeIcon)\nVue.component(\"fa-layers\", FontAwesomeLayers)\nVue.component(\"fa-layers-text\", FontAwesomeLayersText)\n\n/*********\n *** 1 ***\n ********/\n\n// Solid icons\nimport { faDotCircle, faCheckCircle, faCircle, faCog, faEye, faEyeSlash } from \"@fortawesome/pro-solid-svg-icons\"\n\n// Override Vuetify's hardcoded prefix for radio buttons\nfaDotCircle.prefix = \"far\"\nfaCheckCircle.prefix = \"far\"\nfaCircle.prefix = \"far\"\nfaCog.prefix = \"fas\"\nfaEye.prefix = \"fas\"\nfaEyeSlash.prefix = \"fas\"\n\n// PRO light icons overrided as FAR\nimport {\n\tfaSquare,\n} from \"@fortawesome/pro-light-svg-icons\"\n// Override Vuetify's hardcoded prefix\nfaSquare.prefix = \"far\"\n\n// PRO light icons\nimport {\n\tfaRetweet,\n\tfaFile,\n\tfaList,\n\tfaFileSignature,\n\tfaSignOut,\n\tfaUser,\n\tfaUserClock,\n\tfaUserTimes,\n\tfaShield,\n\tfaShieldAlt,\n\tfaUserShield,\n\tfaUserCheck,\n\tfaUserFriends,\n\tfaUserEdit,\n\tfaUsers,\n\tfaUsersCog,\n\tfaChevronDown,\n\tfaChevronUp,\n\tfaExchangeAlt,\n\tfaPen,\n\tfaHome,\n\tfaLockOpen,\n\tfaExclamation,\n\tfaExclamationTriangle,\n\tfaCaretLeft,\n\tfaCaretRight,\n\tfaCaretDown,\n\tfaCaretUp,\n\tfaSortUp,\n\tfaSortDown,\n\tfaCopy,\n\tfaChevronLeft,\n\tfaChevronRight,\n\tfaCheckSquare,\n\tfaCircleNotch,\n\tfaPaperclip,\n\tfaSearch,\n\tfaBars,\n\tfaPlus,\n\tfaCloudDownloadAlt,\n\tfaCloudUploadAlt,\n\tfaShare,\n\tfaEnvelope,\n\tfaCheck,\n\tfaCamera,\n\tfaTimes,\n\tfaTimesCircle,\n\tfaHandPointLeft,\n\tfaQuestionCircle,\n\tfaSync,\n\tfaInfoCircle\n} from \"@fortawesome/pro-light-svg-icons\"\n\n// Vuetify always expect \"fas\" (Free Font Solid Awesome), but use Pro fonts \"fal\" as \"fas\"\nfaRetweet.prefix = \"fas\"\nfaFile.prefix = \"fas\"\nfaList.prefix = \"fas\"\nfaFileSignature.prefix = \"fas\"\nfaSignOut.prefix = \"fas\"\nfaUser.prefix = \"fas\"\nfaHome.prefix = \"fas\"\nfaLockOpen.prefix = \"fas\"\nfaExclamation.prefix = \"fas\"\nfaExclamationTriangle.prefix = \"fas\"\nfaUserClock.prefix = \"fas\"\nfaUserTimes.prefix =\"fas\"\nfaShieldAlt.prefix = \"fas\"\nfaShield.prefix = \"fas\"\nfaUserShield.prefix = \"fas\"\nfaUserCheck.prefix = \"fas\"\nfaUserFriends.prefix = \"fas\"\nfaUserEdit.prefix = \"fas\"\nfaUsers.prefix = \"fas\"\nfaUsersCog.prefix = \"fas\"\nfaChevronDown.prefix =\"fas\"\nfaChevronUp.prefix = \"fas\"\nfaExchangeAlt.prefix = \"fas\"\nfaPen.prefix = \"fas\"\nfaCaretLeft.prefix = \"fas\"\nfaCaretRight.prefix = \"fas\"\nfaCaretDown.prefix = \"fas\"\nfaCaretUp.prefix = \"fas\"\nfaSortUp.prefix = \"fas\"\nfaSortDown.prefix = \"fas\"\nfaCopy.prefix = \"fas\"\nfaChevronLeft.prefix = \"fas\"\nfaChevronRight.prefix = \"fas\"\nfaCheckSquare.prefix = \"fas\"\nfaCircleNotch.prefix = \"fas\"\nfaCheckCircle.prefix = \"fas\"\nfaPaperclip.prefix = \"fas\"\nfaSearch.prefix = \"fas\"\nfaBars.prefix = \"fas\"\nfaPlus.prefix = \"fas\"\nfaCloudDownloadAlt.prefix = \"fas\"\nfaCloudUploadAlt.prefix = \"fas\"\nfaShare.prefix = \"fas\"\nfaEnvelope.prefix = \"fas\"\nfaCheck.prefix = \"fas\"\nfaCamera.prefix = \"fas\"\nfaTimes.prefix = \"fas\"\nfaTimesCircle.prefix = \"fas\"\nfaHandPointLeft.prefix = \"fas\"\nfaQuestionCircle.prefix = \"fas\"\nfaSync.prefix = \"fas\"\nfaUserShield.prefix = \"fas\"\nfaInfoCircle.prefix = \"fas\"\n\n/*********\n *** 2 ***\n ********/\nlibrary.add(\n\t// Solid icons\n\tfaDotCircle,\n\tfaCheckCircle,\n\tfaCircle,\n\tfaCog,\n\n\t// PRO override vuetify FAR\n\tfaSquare,\n\tfaShieldAlt,\n\n\t// PRO light/outlined icons\n\tfaRetweet,\n\tfaFile,\n\tfaList,\n\tfaFileSignature,\n\tfaSignOut,\n\tfaUser,\n\tfaUserClock,\n\tfaUserTimes,\n\tfaShield,\n\tfaUserShield,\n\tfaUserCheck,\n\tfaUserFriends,\n\tfaUserEdit,\n\tfaUsers,\n\tfaUsersCog,\n\tfaChevronDown,\n\tfaChevronUp,\n\tfaExchangeAlt,\n\tfaPen,\n\tfaHome,\n\tfaLockOpen,\n\tfaExclamation,\n\tfaExclamationTriangle,\n\tfaCaretLeft,\n\tfaCaretRight,\n\tfaCaretDown,\n\tfaCaretUp,\n\tfaSortUp,\n\tfaSortDown,\n\tfaCopy,\n\tfaEye,\n\tfaEyeSlash,\n\tfaChevronLeft,\n\tfaChevronRight,\n\tfaCheckSquare,\n\tfaCircleNotch,\n\tfaPaperclip,\n\tfaSearch,\n\tfaBars,\n\tfaPlus,\n\tfaCloudDownloadAlt,\n\tfaCloudUploadAlt,\n\tfaShare,\n\tfaEnvelope,\n\tfaCheck,\n\tfaCamera,\n\tfaTimes,\n\tfaTimesCircle,\n\tfaHandPointLeft,\n\tfaQuestionCircle,\n\tfaSync,\n\tfaInfoCircle\n)\n\n/* For Append-Icons etc - replace custom icons */\n/*\nconst CUSTOM_ICONS = {\n test: {\n component: FontAwesomeIcon,\n props: {\n icon: ['fas', 'eye']\n }\n },\n};\n*/\n\nconst FontAwesomeIcons: IconsOptions = {\n\ticonfont: \"faSvg\",\n}\n\nexport { FontAwesomeIcons }\n","import Vue from 'vue'\nimport Vuetify from 'vuetify/lib/framework'\nimport { UserVuetifyPreset } from \"vuetify/types\"\nimport { FontAwesomeIcons } from \"./fontawesome\"\n\nVue.use(Vuetify)\n\nconst vuetifyOptions: UserVuetifyPreset = {\n /*\n\tlang: {\n locales: { no },\n current: 'no',\n },\n\t*/\n theme: {\n themes: {\n light: {\n\t\t\t\tlighttouch: \"#f5f5f5\",\n primary: \"#5b961c\",\n secondary: \"#dedede\",\n accent: \"#dedede\",\n error: \"#FF5252\",\n info: \"#2196F3\",\n highlight: \"#6698c8\",\n success: \"#5b961c\",\n warning: \"#FFC107\",\n\t\t\t\tdark: \"#231f20\"\n }\n }\n },\n customProperties: true,\n icons: FontAwesomeIcons\n};\n\nexport default new Vuetify(vuetifyOptions);","export enum Common {\n\t// Url\n localSignup = \"signup.localhost\",\n localUrl = \"http://signup.localhost:9899/\",\n localServe = \"http://localhost:8081/\",\n staging = \"https://registration.staging.verji.app/\"\n}\n","import { Context, GrowthBook } from \"@growthbook/growthbook\";\n\n /**\n * VerjiGrowthBook is a wrapper class which extends the default growthbook with a custom constructor with required params apihost and clientKey \n */\n export class VerjiGrowthBook extends GrowthBook {\n\n /**\n * Constructs a VerjiGrowthBook \n * @param apiHost The growthbook apiHost as a string\n * @param clientKey The growthbook clientKey as a string\n */\n constructor(apiHost: string, clientKey: string){\n const context: Context = {apiHost, clientKey}\n super(context)\n }\n\n }","import Vue from 'vue'\nimport App from './App.vue'\nimport * as load from '@/load'\nimport router from './router'\nimport vuetify from './plugins/vuetify'\nimport { ActionTypes, MutationTypes } from \"@/enums/vuex\"\n\nimport store from \"@/store\"\nimport { Config } from \"@/types/common\"\nimport { Common } from \"@/enums/common\"\nimport { VerjiGrowthBook } from './config/growthbook'\nimport { GrowthBook } from '@growthbook/growthbook'\nimport { FeatureNames } from './enums/fn'\n\nexport async function init (): Promise {\n let url = ''\n if(window.location.href.includes(Common.localSignup)) url = Common.localUrl;\n else if (window.location.href.includes(Common.localServe)) url = Common.localServe;\n else if(window.location.href.includes(Common.staging)) url = Common.staging\n\n const response: Response = await fetch(url + \"config.json\")\n \n \n if(response?.ok ){\n const config = await response.json()\n\n //console.log(\"Response: \", config)\n if(config == undefined) {\n console.error(\"Error: Could not load config.\")\n }\n \n if (config.vmxAccountUrl == \"\" || config.vmxAccountUrl == null){\n console.error(\"Error: Base URL missing from config.\")\n }\n\n if(config.growthbookConfig.apiHost == \"\" || config.growthbookConfig.clientKey == \"\"){\n console.error(\"Error: Growthbook config failed to load.\")\n return // exit load vue\n }\n\n const growthbook = new VerjiGrowthBook(config.growthbookConfig.apiHost, config.growthbookConfig.clientKey)\n await growthbook.loadFeatures({autoRefresh: true})\n Vue.prototype.$growthbook = growthbook\n // Set Growthbook in store\n await store.dispatch(ActionTypes.setGrowthbook, growthbook)\n\n console.log(\"[load] VerjiGrowthbook Allow onboarding \", growthbook.isOn(FeatureNames.onboardingRegistration))\n\n Vue.prototype.$config = config;\n await store.dispatch(ActionTypes.setConfig, config);\n await store.dispatch(ActionTypes.registerVippsBankIdModules);\n \n loadVue()\n }else{\n console.error(\"Error: Failed to fetch config.json\")\n console.error(\"fetch status\", response?.status ?? \"Null\")\n }\n}\n\nfunction loadVue () {\n new Vue({\n router,\n store,\n vuetify,\n render: h => h(App)\n }).$mount('#app')\n}","import Vue from 'vue'\nimport * as load from '@/load'\n\nVue.config.productionTip = false\n\nload.init()","// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const toggleWidget = () => {\n const iframe = document.getElementById('widget-frame');\n if (iframe) {\n window.FreshworksWidget('close');\n } else {\n window.FreshworksWidget('open');\n }\n}\n\nconst init = () => {\n window.fwSettings={\n 'widget_id': 80000008192,\n 'locale': 'nb-NO'\n };\n \n\tconst anonFunc = () => {\n\t\tif(typeof window.FreshworksWidget !== \"function\" ) {\n\t\t\t// eslint-disable-next-line\n const n = function() { (n as any).q.push(arguments)};\n\t\t\t// eslint-disable-next-line\n\t\t\t(n as any).q=[],window.FreshworksWidget=n\n }\n\t}\n\n if (anonFunc)\n\t\tanonFunc()\n\n window.FreshworksWidget('hide', 'launcher');\n}\n\ninit();","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnboardingRegistration.vue?vue&type=style&index=0&id=f65450b2&prod&scoped=true&lang=css&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBar.vue?vue&type=style&index=0&id=2707b374&prod&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=9c756d02&prod&scoped=true&lang=css&\""],"sourceRoot":""}