{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/ModalTemplate/ModalTemplate.scss?f556","webpack:///./src/assets/icons/call.svg","webpack:///./src/components/Logo/Logo.css?d21a","webpack:///./src/assets/logos sync ^\\.\\/.*\\.jpg$","webpack:///./src/components/Loader/Loader.scss?1b05","webpack:///./src/services/participant.service.ts","webpack:///./src/assets/logos/lu.png","webpack:///./src/locale sync nonrecursive [A-Za-z0-9-_,\\s]+\\.json$/","webpack:///./src/utils/blobconverter.ts","webpack:///./src/locale/su lazy ^\\.\\/.*\\.json$ namespace object","webpack:///./src/services/user.service.ts","webpack:///./src/assets/logos/be.png","webpack:///./src/components/Contact/Contact.scss?2d95","webpack:///./src/assets/icons/mail.svg","webpack:///./src/assets/logos/vs.jpg","webpack:///./src/components/LanguagePicker/LanguagePicker.scss?c04a","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/components/EmptyRouterView/EmptyRouterView.vue?ba29","webpack:///./src/components/EmptyRouterView/EmptyRouterView.ts","webpack:///./src/components/EmptyRouterView/EmptyRouterView.ts?0add","webpack:///./src/components/EmptyRouterView/EmptyRouterView.vue","webpack:///./src/router.ts","webpack:///./src/components/Stepper/Stepper.scss?b174","webpack:///./src/assets/logos sync ^\\.\\/.*\\.png$","webpack:///./src/assets/icons/logout.svg","webpack:///./src/components/Contact/Contact.vue?3181","webpack:///./src/components/Contact/Contact.ts","webpack:///./src/components/Contact/Contact.ts?f880","webpack:///./src/components/Contact/Contact.vue","webpack:///./src/models/constants/McsisRole.ts","webpack:///./src/assets/logos/fr.svg","webpack:///./src/exceptions/api.error.ts","webpack:///./src/utils/api.handler.ts","webpack:///./src/services/api.service.ts","webpack:///./src/components/Step/Step.scss?13ae","webpack:///./src/models/constants/McsisPolicy.ts","webpack:///./src/services/auth.service.ts","webpack:///./src/plugins/auth.ts","webpack:///./src/assets/logos/ti.jpg","webpack:///./src/assets/icons/close.svg","webpack:///./src/components/ModalTemplate/ModalTemplate.vue?4f91","webpack:///./src/components/ModalTemplate/ModalTemplate.ts","webpack:///./src/components/ModalTemplate/ModalTemplate.ts?fd49","webpack:///./src/components/ModalTemplate/ModalTemplate.vue","webpack:///./src/store/store.ts","webpack:///./src/assets/icons/logo_cancer_colorectal.svg","webpack:///./src/config/app.config.ts","webpack:///./src/assets/logos/so.jpg","webpack:///./src/App/App.vue?d4d4","webpack:///./src/components/LanguagePicker/LanguagePicker.vue?771c","webpack:///./src/components/LanguagePicker/LanguagePicker.ts","webpack:///./src/components/LanguagePicker/LanguagePicker.ts?a5c2","webpack:///./src/components/LanguagePicker/LanguagePicker.vue","webpack:///./src/components/Loader/Loader.vue?dc97","webpack:///./src/components/Loader/Loader.ts","webpack:///./src/components/Loader/Loader.ts?3515","webpack:///./src/components/Loader/Loader.vue","webpack:///./src/components/MoreInfo/MoreInfo.vue?20c2","webpack:///./src/components/MoreInfo/MoreInfo.ts","webpack:///./src/components/MoreInfo/MoreInfo.ts?1b34","webpack:///./src/components/MoreInfo/MoreInfo.vue","webpack:///./src/components/Logo/Logo.vue?e984","webpack:///./src/components/Logo/Logo.ts","webpack:///./src/components/Logo/Logo.ts?330c","webpack:///./src/components/Logo/Logo.vue","webpack:///./src/components/MobileMenu/MobileMenu.vue?4bce","webpack:///./src/components/MobileMenu/MobileMenu.ts","webpack:///./src/components/MobileMenu/MobileMenu.ts?e69f","webpack:///./src/components/MobileMenu/MobileMenu.vue","webpack:///./src/components/Stepper/Stepper.vue?4ed2","webpack:///./src/components/Step/Step.vue?be46","webpack:///./src/components/Step/Step.ts","webpack:///./src/components/Step/Step.ts?1a2e","webpack:///./src/components/Step/Step.vue","webpack:///./src/components/Stepper/Stepper.ts","webpack:///./src/components/Stepper/Stepper.ts?27d6","webpack:///./src/components/Stepper/Stepper.vue","webpack:///./src/plugins/i18n.ts","webpack:///./src/App/App.ts","webpack:///./src/App/App.ts?71d8","webpack:///./src/App/App.vue","webpack:///./src/main.ts","webpack:///./src/App/App.scss?3f24","webpack:///./src/assets/logos/gr.png","webpack:///./src/assets/logos/bb.png","webpack:///./src/components/MobileMenu/MobileMenu.scss?a28e","webpack:///./src/models/VariousEnum.ts","webpack:///./src/services/token.service.ts","webpack:///./src/assets/logos/sg.png","webpack:///./src/store/local.store.ts","webpack:///./src/components/MoreInfo/MoreInfo.scss?8f2c","webpack:///./src/assets/logos sync ^\\.\\/.*\\.svg$"],"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","map","webpackContext","req","id","webpackContextResolve","keys","ParticipantService","_classCallCheck","_createClass","_login","_asyncToGenerator","regeneratorRuntime","mark","_callee","partId","dateOfBirth","suRoutePrefix","requestData","wrap","_context","prev","next","method","url","concat","PUBLIC_ROOT_API","ApiService","post","response","identficationData","abrupt","sent","stop","login","_x","_x2","_x3","arguments","_openDossier","_callee2","_context2","mutations","setIsDossierOpened","LocalStoreService","setItem","localItemKeys","dossierId","toString","openDossier","_x4","_x5","_logout","_callee3","_this","_context3","logoutFromFrontend","logout","TokenService","removeToken","removeHeader","X_XSRF_TOKEN","setIsIdentified","deleteItem","inclusionType","_fetchParticipant","_callee4","_context4","fetchParticipant","_x6","_fetchIdentificationData","_callee5","_context5","fetchIdentificationData","_x7","_updateAdministrativeInfo","_callee6","participant","_context6","updateAdministrativeInfo","_x8","_updateIdentificationInfos","_callee7","identification","_context7","updateIdentificationInfos","_x9","_x10","_saveMedicalData","_callee8","medicalData","_context8","saveMedicalData","_x11","_fetchMedicalDataContent","_callee9","_context9","fetchMedicalDataContent","_x12","_fetchPublicInclusionContent","_callee10","_context10","fetchPublicInclusionContent","_x13","_sendToQueue","_callee11","_context11","sendToQueue","_x14","_hasParticipantInclusionAdvice","_callee12","_context12","catch","hasParticipantInclusionAdvice","_x15","BlobConverter","b64Data","contentType","sliceSize","byteCharacters","atob","byteArrays","offset","byteNumbers","Array","charCodeAt","byteArray","Uint8Array","blob","Blob","res","reader","FileReader","followUpFilename","readAsDataURL","onloadend","base64data","replace","file","abort","readAsText","webpackAsyncContext","ids","UserService","username","password","proUsername","userName","screeningUnit","suId","setIsAuthenticated","setIsProFit","this","clearProData","_saveNewPassword","oldPassword","newPassword","put","saveNewPassword","_updateAcceptanceDate","newAcceptanceDate","updateAcceptanceDate","_getUserRoutePrefix","handlerSuccessEnabled","handlerErrorEnabled","getUserRoutePrefix","filename","getItem","render","_vm","_h","$createElement","_c","_self","attrs","on","setAuthenticated","setIdentified","openingDossier","staticRenderFns","EmptyRouterView","_Vue","_possibleConstructorReturn","_getPrototypeOf","_inherits","status","$emit","routeName","Vue","__decorate","Component","component","use","Router","router","base","process","routes","path","children","redirect","meta","public","onlyWhenLoggedOut","su","redirectTo","itemExists","getScreeningUnitNameFromID","scrollBehavior","to","from","savedPosition","scrollTo","top","left","behavior","beforeEach","isPublic","matched","some","record","loggedIn","tokenExists","store","state","isIdentified","isAuthenticated","suName","params","screening","isAppLoaded","appVersion","isLatest","a","moment","lastCheckDate","b","diff","location","reload","SUPPORTED_SU","includes","toLocaleLowerCase","checkAcceptingTerms","termsacceptancedate","app","$getAcceptanceDate","consentAccepted","valueOf","staticClass","domProps","_s","$t","_e","_v","Contact","McsisRole","ApiError","_Error","constructor","_wrapNativeSuper","ApiHandler","TOKEN_EXPIRED","NETWORK_ERROR","requestConfig","_this2","isHandlerSuccessEnabled","isHandlerErrorEnabled","tokenTimestamp","timestampNow","Math","ceil","Date","now","CancelToken","Axios","_objectSpread","cancelToken","cancel","setLoadingState","_errorHandler","errorMessage","showNotif","_JSON$parse","config","t0","setPopUpErrMessage","setShowErrInfoModal","responseType","fileReader","JSON","parse","notify","errorHandler","handlerEnabled","responseConfig","text","title","duration","$notify","baseURL","service","axios","defaults","withCredentials","interceptors","requestHandler","successHandler","content","headers","common","k","getToken","resource","patch","delete","_customRequest","customRequest","_create","instance","_getFileFromBackend","defaultName","paramsUrl","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","_step","innerValue","_args3","t1","done","isArray","iterator","t2","return","finish","contentDispositionHeader","split","trim","getFileFromBackend","McsisPolicy","AuthService","policies","POLICIES","stringify","AuthPlugin","options","getAcceptanceDate","$isAuthorized","isAuthorized","$isInRole","isInRole","directive","ShowByPolicy","ShowByRole","HideByRole","decodeToken","token","decodedToken","jwt_decode","TermsAcceptanceDateKey","termsAcceptanceDate","date","policy","fetchPolicies","requiredClaims","claimCode","role","isinRole","getPolicies","size","Map","forEach","val","mcsisPolicyCode","claims","mcsisClaims","claim","mcsisClaimCode","parentClaims","mcsisParentPolicy","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","indexOf","set","savePolicies","statusText","el","binding","style","display","remove","visible","mandatoryChoice","$event","_t","ModalTemplate","Prop","default","observable","dataLoading","isLanguagesLoaded","isDossierOpened","isProFit","hasCustomConsent","isColonoscopyMode","isDirectRefusal","showErrInfoModal","popUpErrMessage","maxVisitedStepNumber","setToken","errMsg","setTokenTimestamp","timestamp","setScreeningUnit","setIsLanguagesLoaded","setIsAppLoaded","setHasCustomConsent","setConsentAccepted","setIsColonoscopyMode","setIsDirectRefusal","setInclusionType","setAppVersion","setMaxVisitedStepNumber","SUPPORTED_LANGUAGES","APP_VERSION","ACCEPTING_TERMS","fr","vs","gr","bb","ti","sg","be","so","lu","toLowerCase","CORRESPONDENCE_LANGUAGES_MAPPING","getCorrespondenceLanguagesBySu","languages","correspondenceLang","element","CorrespondenceLanguages","toUpperCase","FALLBACK_LANGUAGE_MAPPING","getLanguageFallBackBySu","PHONE_NUMBER_COUNTRIES_MAPPING","getPhoneNumberCountriesBySu","countries","phoneNumberCountry","PhoneNumberCountries","DISPLAY_SEND_RESULTS_TO_PHARMACY","mustDisplaySendResultsToPharmacy","DOCTOR_FIT_ONLY","displayFitOnlyForDoctors","SCREENING_UNITS","1","3","4","10","11","13","14","15","101","103","104","110","111","113","114","115","301","303","304","310","311","313","314","315","Number","PRO_LOGIN_ACTIVATION","isProLoginActivatedFromSU","USE_SIMPLE_CONSENT","isSimpleConsentUsedFromSU","PHARMACIST_FIT_ORDER","isPharmacistFitOrderActivated","COLONOSCOPY_MODE_ACTIVATION","isColonoscopyModeActivatedFromSU","ADVICE_MODE_ACTIVATION","isAdviceModeActivatedFromSU","class","$route","mobileMenuOpen","isLoading","directives","rawName","expression","authenticated","identified","proLoginActivated","preventDefault","env","toggleMenu","scopedSlots","_u","fn","props","item","close","navigationSteps","currentStepNumber","onUpdateCurrentStepNumber","getFullYear","closeMobMenu","hideUpdateModal","slot","_l","msg","index","lang","isCurrentLanguage","changeLocale","LanguagePicker","fallBack","$i18n","locale","oldSuName","Watch","immediate","deep","Loader","shortContactInfo","MoreInfo","_ref","_ref2","headerLogoSrc","Logo","svg","jpg","png","require","nativeOn","MobileMenu","required","components","isSelected","isPassed","isJumpable","onUpdateSelectedStepNumber","selected","passed","jumpable","onStepClicked","stepNumber","label","Step","Stepper","step","selectedStepNumber","oldValue","loadLocaleInfo","locales","localeMessages","match","VueI18n","localeInfo","messages","silentTranslationWarn","i18n","loadedLanguages","loadLanguageAsync","_loadLanguageAsync","mergeLocaleMessage","App","languageChoices","showUpdateModal","checkAppVersion","addEventListener","setup","oldLocale","_this3","fetch","json","version","refreshTrys","_setup","isTokenValid","routePrefix","_routePrefix","_this4","setXsrfTokenInHeader","Participant","substring","lastIndexOf","InclusionTypes","$router","selectStep","_setAuthenticated","fit","colo","refusal","_this5","onbeforeunload","ev","warningText","returnValue","max","addPopupMessageBeforeUnload","removePopupMessageBeforeUnload","supportedLanguages","parseInt","appVersionTrys","JsonExcel","productionTip","Notifications","VueTelInput","h","$mount","init","ProInclusionTypes","TemplateTypes","ConsultationTypes","LongConsultationReasons","InclusionAdvice","cookieToken","getCookieByName","TOKEN_KEY","timestampExp","XSRF_TOKEN","setHeader","_generateXsrfToken","generateXsrfToken","_isTokenValid","axiosInstance","accessToken","cookie","REFRESH_TOKEN_KEY","CSRF_TOKEN","localStorage","getKey","removeItem","prefix"],"mappings":"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","file":"js/app.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/\" + ({\"alternativeQuestionnaire\":\"alternativeQuestionnaire\",\"questionnary\":\"questionnary\",\"inclusion\":\"inclusion\",\"medicalcontent\":\"medicalcontent\",\"consent\":\"consent\",\"initialChoice\":\"initialChoice\"}[chunkId]||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-4a6eb5b6\":1,\"chunk-5b23d311\":1,\"chunk-188713cf\":1,\"alternativeQuestionnaire\":1,\"questionnary\":1,\"chunk-958ef440\":1,\"chunk-72fa703a\":1,\"chunk-48ab667b\":1,\"chunk-f4183d50\":1,\"inclusion\":1,\"chunk-6d4a0535\":1,\"medicalcontent\":1,\"chunk-c4b296f4\":1,\"chunk-d301e590\":1,\"consent\":1,\"initialChoice\":1,\"chunk-71ba4fec\":1,\"chunk-8463c532\":1,\"chunk-a0fc27de\":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/\" + ({\"alternativeQuestionnaire\":\"alternativeQuestionnaire\",\"questionnary\":\"questionnary\",\"inclusion\":\"inclusion\",\"medicalcontent\":\"medicalcontent\",\"consent\":\"consent\",\"initialChoice\":\"initialChoice\"}[chunkId]||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","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./ModalTemplate.scss?vue&type=style&index=0&id=0e73dff2&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./ModalTemplate.scss?vue&type=style&index=0&id=0e73dff2&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/call.svg\";","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./Logo.css?vue&type=style&index=0&id=258cdb52&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./Logo.css?vue&type=style&index=0&id=258cdb52&scoped=true&lang=css&\"","var map = {\n\t\"./so.jpg\": \"c3aa\",\n\t\"./ti.jpg\": \"89a5\",\n\t\"./vs.jpg\": \"3f6e\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"06e5\";","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./Loader.scss?vue&type=style&index=0&id=59d3fac7&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./Loader.scss?vue&type=style&index=0&id=59d3fac7&scoped=true&lang=scss&\"","import ApiService from '@/services/api.service';\r\nimport TokenService from '@/services/token.service';\r\nimport { mutations } from '@/store/store';\r\nimport { ParticipantDTO } from '@/models/ParticipantDTO';\r\nimport { MedicalDataDTO } from '@/models/MedicalDataDTO';\r\nimport { RecapDTO } from '@/models/RecapDTO';\r\nimport { IdentificationDTO } from '@/models/IdentificationDTO';\r\nimport { PUBLIC_ROOT_API } from '@/config/app.config';\r\nimport LocalStoreService from '@/store/local.store';\r\nimport { AxiosResponse } from 'axios';\r\n\r\nexport default class ParticipantService {\r\n\r\n /**\r\n * Login the participant\r\n *\r\n * @returns {IdentificationDTO} A DTO object containing su route prefix\r\n */\r\n public static async login(partId: number, dateOfBirth: Date, suRoutePrefix: string) {\r\n const requestData = {\r\n method: 'post',\r\n url: `${PUBLIC_ROOT_API}/participants/identify`,\r\n data: {\r\n partId,\r\n dateOfBirth,\r\n suRoutePrefix,\r\n },\r\n };\r\n\r\n return await ApiService.post(requestData.url, requestData.data)\r\n .then((response: any) => {\r\n const identficationData = response.data as IdentificationDTO;\r\n return identficationData;\r\n });\r\n }\r\n\r\n /**\r\n * Open a participant dossier\r\n * @param partId The participant ID\r\n * @param dateOfBirth The participant date of birth\r\n */\r\n public static async openDossier(partId: number, dateOfBirth: Date): Promise {\r\n const requestData = {\r\n method: 'post',\r\n url: `${PUBLIC_ROOT_API}/participants/open`,\r\n data: {\r\n partId,\r\n dateOfBirth,\r\n },\r\n };\r\n\r\n return await ApiService.post(requestData.url, requestData.data)\r\n // tslint:disable-next-line: no-empty\r\n .then((response: any) => {\r\n mutations.setIsDossierOpened(true);\r\n LocalStoreService.setItem(LocalStoreService.localItemKeys.dossierId, partId.toString());\r\n return response.data as IdentificationDTO;\r\n });\r\n }\r\n\r\n /**\r\n * Logout the current participant by calling the API in order to expire the cookies.\r\n * It also removes the JWT token from storage and XSRF token from header.\r\n */\r\n public static async logout() {\r\n const requestData = {\r\n url: `${PUBLIC_ROOT_API}/Participants/logout`,\r\n };\r\n\r\n await ApiService.post(requestData.url, {})\r\n .then((response: any) => {\r\n // Remove the token and remove Authorization header from Api Service as well\r\n this.logoutFromFrontend();\r\n });\r\n }\r\n\r\n /**\r\n * Logout the current participant by removing the JWT token from storage and XSRF token from header.\r\n */\r\n public static logoutFromFrontend() {\r\n TokenService.removeToken();\r\n ApiService.removeHeader(TokenService.X_XSRF_TOKEN);\r\n mutations.setIsIdentified(false);\r\n LocalStoreService.deleteItem(LocalStoreService.localItemKeys.inclusionType);\r\n }\r\n\r\n /**\r\n * Fetch the administrative data from PublicInclusionContent if any.\r\n * Otherwise fetch the actual administrative data.\r\n *\r\n * @returns {ParticipantDTO} A DTO object representing the participant\r\n */\r\n public static async fetchParticipant(partId: number) {\r\n return await ApiService.get(`${PUBLIC_ROOT_API}/participants/${partId}/contents/adminData`)\r\n .then((response: any) => {\r\n return response.data as ParticipantDTO;\r\n });\r\n }\r\n\r\n /**\r\n * Fetch the contact data\r\n *\r\n * @returns {QueueParam} A DTO object representing the participant's contact\r\n */\r\n public static async fetchIdentificationData(partId: number) {\r\n return await ApiService.get(`${PUBLIC_ROOT_API}/participants/${partId}/contents/identification`)\r\n .then((response: any) => {\r\n return response.data as IdentificationDTO;\r\n });\r\n }\r\n\r\n /**\r\n * Update administrative data in PublicInclusionContent\r\n * @param {ParticipantDTO} participant The participant DTO object\r\n */\r\n public static async updateAdministrativeInfo(participant: ParticipantDTO) {\r\n await ApiService.post(`${PUBLIC_ROOT_API}/participants/${participant.partId}/administrative`,\r\n participant)\r\n // tslint:disable-next-line: no-empty\r\n .then((response: any) => { });\r\n }\r\n\r\n /**\r\n * Update identification data in PublicInclusionContent\r\n * @param {ParticipantDTO} participant The participant DTO object\r\n */\r\n public static async updateIdentificationInfos(partId: number, identification: IdentificationDTO) {\r\n await ApiService.post(`${PUBLIC_ROOT_API}/participants/${partId}/identification`,\r\n identification)\r\n // tslint:disable-next-line: no-empty\r\n .then((response: any) => { });\r\n }\r\n\r\n /**\r\n * Save the medical data (doctor, insurance, etc.)\r\n * @param medicalData The medial data to save.\r\n */\r\n public static async saveMedicalData(medicalData: MedicalDataDTO) {\r\n await ApiService.post(`${PUBLIC_ROOT_API}/participants/${medicalData.partId}/medical`,\r\n medicalData)\r\n // tslint:disable-next-line: no-empty\r\n .then((response: any) => { });\r\n }\r\n\r\n /**\r\n * Fetch the medical data from PublicInclusionContent if any\r\n * @param partId The participant ID\r\n * @returns {MedicalDataDTO} A DTO object representing the medical data\r\n */\r\n public static async fetchMedicalDataContent(partId: number): Promise {\r\n return await ApiService.get(`${PUBLIC_ROOT_API}/participants/${partId}/contents/medicalData`)\r\n .then((response: any) => {\r\n return response.data as MedicalDataDTO;\r\n });\r\n }\r\n\r\n /**\r\n * Fetch all data from PublicInclusionContent (participant data, medical data, questions)\r\n * @param partId The participant ID\r\n * @returns {RecapDTO} A DTO object representing the all data from PublicInclusionContent\r\n * (i.e. ParticipantDTO, MedicalDataDTO, QuestionDTO)\r\n */\r\n public static async fetchPublicInclusionContent(partId: number): Promise {\r\n return await ApiService.get(`${PUBLIC_ROOT_API}/participants/${partId}/contents`)\r\n .then((response: any) => {\r\n return response.data as RecapDTO;\r\n });\r\n }\r\n\r\n /**\r\n * Sends the questionnaire to the queue\r\n * @param partId The participant ID\r\n */\r\n public static async sendToQueue(partId: number) {\r\n await ApiService.post(\r\n `${PUBLIC_ROOT_API}/participants/${partId}/sendToQueue`, {})\r\n // tslint:disable-next-line: no-empty\r\n .then((response: any) => { });\r\n }\r\n\r\n /**\r\n * Sends the questionnaire to the queue\r\n * @param partId The participant ID\r\n */\r\n public static async hasParticipantInclusionAdvice(partId: number): Promise {\r\n return await ApiService.get(\r\n `${PUBLIC_ROOT_API}/participants/${partId}/advice`)\r\n .then((response: AxiosResponse) => {\r\n return response.data as boolean;\r\n })\r\n .catch(() => {\r\n return undefined;\r\n });\r\n\r\n }\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/lu.png\";","var map = {\n\t\"./de.json\": \"0950\",\n\t\"./fr.json\": \"7960\",\n\t\"./it.json\": \"1632\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"1ce5\";","import { FileDataInterface } from '@/store/interfaces/filedata.interface';\r\nimport LocalStoreService from '@/store/local.store';\r\n\r\nexport default class BlobConverter {\r\n\r\n public static b64toBlob(b64Data: string, contentType = '', sliceSize = 512): Blob {\r\n const byteCharacters = atob(b64Data);\r\n const byteArrays = [];\r\n\r\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n const slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n const byteNumbers = new Array(slice.length);\r\n for (let i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n\r\n const byteArray = new Uint8Array(byteNumbers);\r\n byteArrays.push(byteArray);\r\n }\r\n\r\n const blob = new Blob(byteArrays, { type: contentType });\r\n return blob;\r\n }\r\n\r\n public static saveBlobToLocalStorage(res: FileDataInterface) {\r\n const reader = new FileReader();\r\n LocalStoreService.setItem(LocalStoreService.localItemKeys.followUpFilename, res.name);\r\n reader.readAsDataURL(res.blob);\r\n reader.onloadend = () => {\r\n const base64data = (reader.result as string).replace(/^data:.+;base64,/, '');\r\n LocalStoreService.setItem(res.name, base64data as string);\r\n };\r\n }\r\n\r\n public static fileReader(file: Blob): Promise {\r\n const reader = new FileReader();\r\n\r\n return new Promise((resolve, reject) => {\r\n reader.onerror = () => {\r\n reader.abort();\r\n reject(new Error('Problem parsing file'));\r\n };\r\n\r\n reader.onload = () => {\r\n resolve(reader.result);\r\n };\r\n\r\n reader.readAsText(file);\r\n });\r\n }\r\n}\r\n","var map = {\n\t\"./bb/de.json\": [\n\t\t\"02b4\",\n\t\t\"chunk-2d0a3a8a\"\n\t],\n\t\"./bb/fr.json\": [\n\t\t\"ac68\",\n\t\t\"chunk-2d21335a\"\n\t],\n\t\"./bb/it.json\": [\n\t\t\"a2cc\",\n\t\t\"chunk-2d208107\"\n\t],\n\t\"./be/de.json\": [\n\t\t\"b22e\",\n\t\t\"chunk-2d20ef79\"\n\t],\n\t\"./be/fr.json\": [\n\t\t\"cb9a\",\n\t\t\"chunk-2d2218dd\"\n\t],\n\t\"./be/it.json\": [\n\t\t\"2426\",\n\t\t\"chunk-2d0b24fc\"\n\t],\n\t\"./fr/de.json\": [\n\t\t\"43c3\",\n\t\t\"chunk-2d0c0fe5\"\n\t],\n\t\"./fr/fr.json\": [\n\t\t\"1c7c\",\n\t\t\"chunk-2d0b61d4\"\n\t],\n\t\"./fr/it.json\": [\n\t\t\"2ad9\",\n\t\t\"chunk-2d0bd3fa\"\n\t],\n\t\"./gr/de.json\": [\n\t\t\"efa0\",\n\t\t\"chunk-2d231546\"\n\t],\n\t\"./gr/fr.json\": [\n\t\t\"4c73\",\n\t\t\"chunk-2d0cbec1\"\n\t],\n\t\"./gr/it.json\": [\n\t\t\"3655\",\n\t\t\"chunk-2d0ba139\"\n\t],\n\t\"./lu/de.json\": [\n\t\t\"025b\",\n\t\t\"chunk-2d0a3545\"\n\t],\n\t\"./lu/fr.json\": [\n\t\t\"440c9\",\n\t\t\"chunk-7475a7b0\"\n\t],\n\t\"./lu/it.json\": [\n\t\t\"0191\",\n\t\t\"chunk-2d0a31cf\"\n\t],\n\t\"./sg/de.json\": [\n\t\t\"2842\",\n\t\t\"chunk-2d0b343a\"\n\t],\n\t\"./sg/fr.json\": [\n\t\t\"7773\",\n\t\t\"chunk-2d0d76b2\"\n\t],\n\t\"./sg/it.json\": [\n\t\t\"f406\",\n\t\t\"chunk-2d22c80a\"\n\t],\n\t\"./so/de.json\": [\n\t\t\"30ba\",\n\t\t\"chunk-2d0b9052\"\n\t],\n\t\"./so/fr.json\": [\n\t\t\"0149\",\n\t\t\"chunk-2d0a313c\"\n\t],\n\t\"./so/it.json\": [\n\t\t\"99a3\",\n\t\t\"chunk-2d0e6c08\"\n\t],\n\t\"./ti/de.json\": [\n\t\t\"77c5\",\n\t\t\"chunk-2d0d7c08\"\n\t],\n\t\"./ti/fr.json\": [\n\t\t\"86ae\",\n\t\t\"chunk-2d0dec98\"\n\t],\n\t\"./ti/it.json\": [\n\t\t\"7293\",\n\t\t\"chunk-2d0d642b\"\n\t],\n\t\"./vs/de.json\": [\n\t\t\"a75e\",\n\t\t\"chunk-2d208e3c\"\n\t],\n\t\"./vs/fr.json\": [\n\t\t\"5981\",\n\t\t\"chunk-2d0c9593\"\n\t],\n\t\"./vs/it.json\": [\n\t\t\"b59f\",\n\t\t\"chunk-2d20fb96\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 3);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"20fc\";\nmodule.exports = webpackAsyncContext;","import ApiService from './api.service';\r\nimport TokenService from './token.service';\r\nimport { mutations, store } from '@/store/store';\r\nimport LocalStoreService from '@/store/local.store';\r\nimport { UserDTO } from '@/models/UserDTO';\r\nimport { PUBLIC_ROOT_API } from '@/config/app.config';\r\n\r\nexport default class UserService {\r\n\r\n /**\r\n * Login the user\r\n * @param username The username of a Pro user\r\n * @param password The password\r\n * @returns {UserDTO} A UserDTO object containing minimal user data.\r\n */\r\n public static async login(username: string, password: string) {\r\n const requestData = {\r\n url: `${PUBLIC_ROOT_API}/Users/authenticate`,\r\n data: {\r\n username,\r\n password,\r\n },\r\n };\r\n\r\n return await ApiService.post(requestData.url, requestData.data)\r\n .then((response: any) => {\r\n LocalStoreService.setItem(LocalStoreService.localItemKeys.proUsername, response.data.userName);\r\n LocalStoreService.setItem(LocalStoreService.localItemKeys.screeningUnit, response.data.suId);\r\n return response.data as UserDTO;\r\n });\r\n }\r\n\r\n /**\r\n * Logout the current user by calling the API in order to expire the cookies.\r\n * It also removes the token from storage and XSRF token from header.\r\n * @returns {Promise} A promise\r\n */\r\n public static async logout(): Promise {\r\n const requestData = {\r\n url: `${PUBLIC_ROOT_API}/Users/logout`,\r\n };\r\n\r\n await ApiService.post(requestData.url, {})\r\n .then((response: any) => {\r\n this.logoutFromFrontend();\r\n });\r\n }\r\n\r\n /**\r\n * Logout the current user by removing the token from storage and XSRF token from header.\r\n */\r\n public static logoutFromFrontend(): void {\r\n TokenService.removeToken();\r\n ApiService.removeHeader(TokenService.X_XSRF_TOKEN);\r\n mutations.setIsAuthenticated(false);\r\n mutations.setIsDossierOpened(false);\r\n mutations.setIsProFit(false);\r\n LocalStoreService.deleteItem(LocalStoreService.localItemKeys.screeningUnit);\r\n LocalStoreService.deleteItem(LocalStoreService.localItemKeys.proUsername);\r\n this.clearProData();\r\n }\r\n\r\n /**\r\n * Saves the newly created password to DB.\r\n * @param username The username of a Pro user\r\n * @param oldPassword The old password\r\n * @param newPassword The new password\r\n * @returns {Promise} A promise\r\n */\r\n public static async saveNewPassword(username: string, oldPassword: string, newPassword: string): Promise {\r\n const requestData = {\r\n url: `${PUBLIC_ROOT_API}/Users/SaveNewPassword`,\r\n data: {\r\n username,\r\n oldPassword,\r\n newPassword,\r\n },\r\n };\r\n\r\n await ApiService.put(requestData.url, requestData.data);\r\n }\r\n\r\n /**\r\n * Update terms acceptance date to the user\r\n * @param username The username of a Pro user\r\n * @param newAcceptanceDate The new acceptance date of the terms\r\n * @returns {Promise} A promise\r\n */\r\n public static async updateAcceptanceDate(username: string, newAcceptanceDate: Date): Promise {\r\n const requestData = {\r\n url: `${PUBLIC_ROOT_API}/Users/UpdateAcceptanceDate`,\r\n data: {\r\n username,\r\n newAcceptanceDate,\r\n },\r\n };\r\n\r\n await ApiService.put(requestData.url, requestData.data);\r\n }\r\n\r\n\r\n /**\r\n * Get route prefex corresponding to user SU\r\n * @returns {string} The route prefix\r\n */\r\n public static async getUserRoutePrefix() {\r\n return await ApiService.get(`${PUBLIC_ROOT_API}/users/route`, {\r\n handlerSuccessEnabled: false,\r\n handlerErrorEnabled: false,\r\n })\r\n .then((response: any) => {\r\n return response.data;\r\n })\r\n .catch(() => 'fr');\r\n }\r\n\r\n /**\r\n * Clear data from the pro user (before opening a new dossier).\r\n * It clears the inclusion type, and any data regarding the follow-up file, and sets the IsDossierOpened to false.\r\n */\r\n public static clearProData(): void {\r\n const filename = LocalStoreService.getItem(LocalStoreService.localItemKeys.followUpFilename);\r\n\r\n mutations.setIsDossierOpened(false);\r\n LocalStoreService.deleteItem(LocalStoreService.localItemKeys.inclusionType);\r\n\r\n if (filename) {\r\n LocalStoreService.deleteItem(filename);\r\n LocalStoreService.deleteItem(LocalStoreService.localItemKeys.followUpFilename);\r\n }\r\n }\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/be.png\";","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./Contact.scss?vue&type=style&index=0&id=1f6bbf88&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./Contact.scss?vue&type=style&index=0&id=1f6bbf88&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/mail.svg\";","module.exports = __webpack_public_path__ + \"img/vs.jpg\";","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./LanguagePicker.scss?vue&type=style&index=0&id=18ac4a75&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./LanguagePicker.scss?vue&type=style&index=0&id=18ac4a75&scoped=true&lang=scss&\"","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e95\",\n\t\"./sr-cyrl.js\": \"13e95\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('transition',{attrs:{\"name\":\"pagefade\",\"mode\":\"out-in\"}},[_c('router-view',{on:{\"authenticated\":_vm.setAuthenticated,\"identified\":_vm.setIdentified,\"logout\":_vm.logout,\"openingDossier\":_vm.openingDossier}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class EmptyRouterView extends Vue {\r\n protected setIdentified(status: boolean): void {\r\n this.$emit('identified', status);\r\n }\r\n\r\n protected setAuthenticated(status: boolean): void {\r\n this.$emit('authenticated', status);\r\n }\r\n\r\n protected openingDossier(): void {\r\n this.$emit('openingDossier');\r\n }\r\n\r\n protected logout(routeName: string): void {\r\n this.$emit('logout', routeName);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./EmptyRouterView.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./EmptyRouterView.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EmptyRouterView.vue?vue&type=template&id=be89db40&scoped=true&\"\nimport script from \"./EmptyRouterView.ts?vue&type=script&lang=ts&\"\nexport * from \"./EmptyRouterView.ts?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 \"be89db40\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport Router from 'vue-router';\r\nimport EmptyRouterView from '@/components/EmptyRouterView/EmptyRouterView.vue';\r\nimport TokenService from '@/services/token.service';\r\nimport { store } from '@/store/store';\r\nimport { SUPPORTED_SU, checkAcceptingTerms } from '@/config/app.config';\r\nimport UserService from './services/user.service';\r\nimport LocalStoreService from '@/store/local.store';\r\nimport { getScreeningUnitNameFromID } from '@/config/app.config';\r\nimport moment from 'moment';\r\n\r\n\r\nVue.use(Router);\r\n\r\nconst router = new Router({\r\n mode: 'history',\r\n base: process.env.BASE_URL,\r\n routes: [\r\n {\r\n path: '/:screening',\r\n component: EmptyRouterView, // must pass a component here\r\n children: [\r\n {\r\n path: '',\r\n name: 'home',\r\n redirect: 'login',\r\n meta: {\r\n public: true, // Allow access to even if not logged in\r\n onlyWhenLoggedOut: false,\r\n },\r\n },\r\n {\r\n path: 'login',\r\n name: 'login',\r\n component: () => import('./views/ParticipantIdentification/ParticipantIdentification.vue'),\r\n meta: {\r\n public: true, // Allow access to even if not logged in\r\n onlyWhenLoggedOut: true,\r\n },\r\n },\r\n {\r\n path: 'login/fit',\r\n name: 'login-fit',\r\n component: () => import('./views/ParticipantIdentification/ParticipantIdentification.vue'),\r\n meta: {\r\n public: true, // Allow access to even if not logged in\r\n onlyWhenLoggedOut: true,\r\n },\r\n },\r\n {\r\n path: 'login/colonoscopy',\r\n name: 'login-colo',\r\n component: () => import('./views/ParticipantIdentification/ParticipantIdentification.vue'),\r\n meta: {\r\n public: true, // Allow access to even if not logged in\r\n onlyWhenLoggedOut: true,\r\n },\r\n },\r\n {\r\n path: 'login/refusal',\r\n name: 'login-refusal',\r\n component: () => import('./views/ParticipantIdentification/ParticipantIdentification.vue'),\r\n meta: {\r\n public: true, // Allow access to even if not logged in\r\n onlyWhenLoggedOut: true,\r\n },\r\n },\r\n {\r\n path: 'passwordModification',\r\n name: 'password-modification',\r\n component: () => import('./views/PasswordModification/PasswordModification.vue'),\r\n },\r\n {\r\n path: 'pro/login',\r\n name: 'pro-login',\r\n component: () => import('./views/UserAuthentication/UserAuthentication.vue'),\r\n meta: {\r\n public: true, // Allow access to even if not logged in\r\n onlyWhenLoggedOut: true,\r\n },\r\n },\r\n {\r\n path: ':partId/initialChoice',\r\n name: 'initialChoice',\r\n component: () => import(/* webpackChunkName: \"initialChoice\" */ './views/InitialChoice/InitialChoice'),\r\n },\r\n {\r\n path: ':partId/inclusion',\r\n name: 'inclusion',\r\n // route level code-splitting\r\n // this generates a separate chunk (inclusion.[hash].js) for this route\r\n // which is lazy-loaded when the route is visited.\r\n component: () => import(/* webpackChunkName: \"inclusion\" */ './views/Inclusion/Inclusion.vue'),\r\n },\r\n {\r\n path: ':partId/alternativeQuestionnaire',\r\n name: 'alternativeQuestionnaire',\r\n component: () => import(\r\n /* webpackChunkName: \"alternativeQuestionnaire\" */\r\n './views/AlternativeQuestionnaire/AlternativeQuestionnaire'),\r\n },\r\n {\r\n path: ':partId/questionnary',\r\n name: 'questionnary',\r\n component: () => import(/* webpackChunkName: \"questionnary\" */ './views/Questionnary/Questionnary'),\r\n },\r\n {\r\n path: ':partId/medicalcontent',\r\n name: 'medicalcontent',\r\n component: () => import(/* webpackChunkName: \"medicalcontent\" */ './views/MedicalContent/MedicalContent'),\r\n },\r\n {\r\n path: ':partId/consent',\r\n name: 'consent',\r\n component: () => import(/* webpackChunkName: \"consent\" */ './views/Consent/Consent'),\r\n },\r\n {\r\n path: ':partId/recap',\r\n name: 'recap',\r\n component: () => import('./views/Recap/Recap'),\r\n },\r\n {\r\n path: 'confirmation',\r\n name: 'confirmation',\r\n component: () => import('./views/Confirmation/Confirmation.vue'),\r\n },\r\n {\r\n path: 'admin/translation',\r\n name: 'translation',\r\n component: () => import('./views/AdminTranslation/AdminTranslation.vue'),\r\n meta: {\r\n public: true, // Allow access to even if not logged in\r\n onlyWhenLoggedOut: true,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n // Default behaviour if no screening is set in the URL\r\n path: '/',\r\n name: 'default',\r\n redirect: () => {\r\n const su = LocalStoreService.localItemKeys.screeningUnit;\r\n const redirectTo = LocalStoreService.itemExists(su) ?\r\n getScreeningUnitNameFromID(LocalStoreService.getItem(su)) + '/login' :\r\n `${process.env.VUE_APP_DEFAULT_ROUTE_PREFIX}/login`;\r\n return redirectTo;\r\n },\r\n },\r\n ],\r\n scrollBehavior(to, from, savedPosition) {\r\n window.scrollTo({\r\n top: 0,\r\n left: 0,\r\n behavior: 'smooth',\r\n });\r\n },\r\n});\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n const isPublic = to.matched.some((record) => record.meta.public);\r\n const onlyWhenLoggedOut = to.matched.some((record) => record.meta.onlyWhenLoggedOut);\r\n const loggedIn = TokenService.tokenExists() && (store.state.isIdentified || store.state.isAuthenticated);\r\n const suName = to.params.screening;\r\n // Prevent the user to change pages without having the latest app version\r\n if (store.state.isAppLoaded) {\r\n if (!store.state.appVersion.isLatest) {\r\n window.location.reload();\r\n } else {\r\n // If it's the latest version, check also the last time we checked it\r\n const a = moment(store.state.appVersion.lastCheckDate);\r\n const b = moment();\r\n if (b.diff(a, 'days') > 0) {\r\n window.location.reload();\r\n }\r\n }\r\n }\r\n\r\n if (suName !== undefined) {\r\n // Redirect to homepage if it's not a supported SU\r\n if (!SUPPORTED_SU.includes(suName.toLocaleLowerCase())) {\r\n return next({\r\n name: 'default',\r\n });\r\n }\r\n }\r\n\r\n if (!isPublic && !loggedIn) {\r\n return next({\r\n path: '/',\r\n // query: { redirect: to.fullPath }, // Store the full path to redirect the user to after login\r\n });\r\n }\r\n\r\n // Do not allow user to visit login page or register page if they are logged in\r\n // Pro users should access to the login page in order to open the participant dossier\r\n if (loggedIn && onlyWhenLoggedOut && !store.state.isAuthenticated) {\r\n return next({\r\n name: 'home',\r\n });\r\n }\r\n\r\n // Check accepting terms of successfully logged in pro users\r\n if (loggedIn && store.state.isAuthenticated) {\r\n if (checkAcceptingTerms(from.params.screening)) {\r\n const termsacceptancedate = router.app.$getAcceptanceDate();\r\n if (!termsacceptancedate) {\r\n UserService.logout();\r\n return next({\r\n name: 'pro-login',\r\n });\r\n }\r\n }\r\n }\r\n\r\n // Do not allow to come back after confirmation\r\n // Go back to login page\r\n if (from.name === 'confirmation' && !!to.name) {\r\n if (['recap', 'questionnary', 'alternativeQuestionnaire'].includes(to.name)) {\r\n return next({\r\n name: 'home',\r\n });\r\n }\r\n }\r\n\r\n // Do not allow to access recap page if consent is not accepted\r\n if (from.name === 'consent' && to.name === 'recap' && !store.state.consentAccepted.valueOf()) {\r\n return next({ name: 'consent' });\r\n }\r\n next();\r\n});\r\n\r\nexport default router;\r\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./Stepper.scss?vue&type=style&index=0&id=11eef0d4&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./Stepper.scss?vue&type=style&index=0&id=11eef0d4&scoped=true&lang=scss&\"","var map = {\n\t\"./bb.png\": \"d984\",\n\t\"./be.png\": \"32b3\",\n\t\"./gr.png\": \"d3f8\",\n\t\"./lu.png\": \"1950\",\n\t\"./sg.png\": \"ecf2\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"69ae\";","module.exports = __webpack_public_path__ + \"img/logout.svg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"contact\"},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('contact.text'))}}),(!!_vm.$t('contact.text2'))?_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('contact.text2'))}}):_vm._e(),_c('div',{staticClass:\"phone\"},[_c('img',{attrs:{\"src\":require(\"@/assets/icons/call.svg\"),\"alt\":\"call\"}}),_c('div',[_c('p',[_c('strong',[_vm._v(_vm._s(_vm.$t('contact.phone.name')))])]),_c('p',[_vm._v(_vm._s(_vm.$t('contact.phone.number')))]),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('contact.phone.availability'))}})])]),_c('div',{staticClass:\"email\"},[_c('img',{attrs:{\"src\":require(\"@/assets/icons/mail.svg\"),\"alt\":\"email\"}}),_c('a',{attrs:{\"href\":(\"mailto:\" + (_vm.$t('contact.email')))}},[_vm._v(_vm._s(_vm.$t('contact.email')))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class Contact extends Vue {\r\n\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./Contact.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./Contact.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Contact.vue?vue&type=template&id=1f6bbf88&scoped=true&\"\nimport script from \"./Contact.ts?vue&type=script&lang=ts&\"\nexport * from \"./Contact.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./Contact.scss?vue&type=style&index=0&id=1f6bbf88&scoped=true&lang=scss&\"\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 \"1f6bbf88\",\n null\n \n)\n\nexport default component.exports","export enum McsisRole {\r\n Administrator,\r\n Doctor,\r\n Participant,\r\n Pharmacist,\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/fr.svg\";","export default class ApiError extends Error {\r\n\r\n public status: number;\r\n\r\n constructor(status: number, message: string) {\r\n super();\r\n this.name = this.constructor.name;\r\n this.message = message;\r\n this.status = status;\r\n }\r\n}\r\n","import Vue from 'vue';\r\nimport TokenService from '@/services/token.service';\r\nimport BlobConverter from '@/utils/blobconverter';\r\nimport { store, mutations } from '@/store/store';\r\nimport UserService from '@/services/user.service';\r\nimport ParticipantService from '@/services/participant.service';\r\nimport Axios from 'axios';\r\nimport router from '@/router';\r\n\r\ndeclare module 'axios' {\r\n interface AxiosRequestConfig {\r\n handlerErrorEnabled: boolean;\r\n handlerSuccessEnabled: boolean;\r\n }\r\n}\r\n\r\nexport default class ApiHandler extends Vue {\r\n\r\n private readonly TOKEN_EXPIRED = 'TOKEN_EXPIRED';\r\n private readonly NETWORK_ERROR = 'Network Error';\r\n\r\n public requestHandler(requestConfig: any) {\r\n if (this.isHandlerSuccessEnabled(requestConfig) || this.isHandlerErrorEnabled(requestConfig)) {\r\n // Check token expiration if the user is connected\r\n if ((store.state.isAuthenticated || store.state.isIdentified) && store.state.tokenTimestamp > 0) {\r\n const timestampNow = Math.ceil(Date.now() / 1000);\r\n if (store.state.tokenTimestamp <= timestampNow) {\r\n // token expired : redirect to login page\r\n if (store.state.isAuthenticated) {\r\n UserService.logoutFromFrontend();\r\n router.push({\r\n name: 'login',\r\n });\r\n } else if (store.state.isIdentified) {\r\n ParticipantService.logoutFromFrontend();\r\n router.push({\r\n name: 'login',\r\n });\r\n }\r\n\r\n const CancelToken = Axios.CancelToken;\r\n\r\n // Cancel the request\r\n return {\r\n ...requestConfig,\r\n cancelToken: new CancelToken((cancel) => cancel(this.TOKEN_EXPIRED)),\r\n };\r\n }\r\n }\r\n\r\n // set loading state to true\r\n // todo: maybe add navigation guards to prevent page changes before requests is done?\r\n // + apply these setLoading states to everywhere you need.\r\n this.setLoadingState(true);\r\n }\r\n return requestConfig;\r\n }\r\n\r\n public async errorHandler(error: any) {\r\n if (this.isHandlerErrorEnabled(error.config)) {\r\n // Handle errors\r\n\r\n // set loading state to false\r\n this.setLoadingState(false);\r\n\r\n let errorMessage;\r\n let showNotif = true;\r\n\r\n // Check any error (without response) first\r\n if (!error.response) {\r\n errorMessage = 'error';\r\n if (error.message === this.NETWORK_ERROR) {\r\n errorMessage = 'networkError';\r\n } else if (error.message === this.TOKEN_EXPIRED) {\r\n errorMessage = 'sessionExpiration';\r\n }\r\n } else {\r\n // Check error in response\r\n switch (error.response.status) {\r\n case (500):\r\n errorMessage = 'serverError';\r\n break;\r\n case (401):\r\n // In case someone was able to make a call to the API without a JWT\r\n mutations.setPopUpErrMessage(error.response.data.message);\r\n mutations.setShowErrInfoModal(true);\r\n if (!TokenService.tokenExists()) {\r\n errorMessage = 'sessionExpiration';\r\n if (store.state.isAuthenticated) {\r\n UserService.logoutFromFrontend();\r\n router.push({\r\n name: 'login',\r\n });\r\n } else if (store.state.isIdentified) {\r\n ParticipantService.logoutFromFrontend();\r\n router.push({\r\n name: 'login',\r\n });\r\n } else {\r\n errorMessage = error.response.data.message;\r\n }\r\n } else {\r\n // In case of a call to the API with a non valid JWT : get the error message received from the API\r\n errorMessage = error.response.data.message;\r\n }\r\n break;\r\n default:\r\n if (error.request.responseType === 'blob') {\r\n // In case the template is not found, don't show the notif error.\r\n if (error.response.status === 404) {\r\n showNotif = false;\r\n } else {\r\n const { data } = error.response;\r\n // Read file\r\n const file = await BlobConverter.fileReader(data);\r\n // Parse content and retrieve 'message'\r\n const { message } = JSON.parse(file as string);\r\n errorMessage = message;\r\n }\r\n } else {\r\n errorMessage = error.response.data.message;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (showNotif) {\r\n this.notify(errorMessage);\r\n }\r\n }\r\n return Promise.reject({ ...error });\r\n }\r\n\r\n public isHandlerErrorEnabled(config = { handlerEnabled: {} }) {\r\n return config.hasOwnProperty('handlerErrorEnabled') && !config.handlerEnabled ?\r\n false : true;\r\n }\r\n\r\n public isHandlerSuccessEnabled(config = { handlerEnabled: {} }) {\r\n return config.hasOwnProperty('handlerSuccessEnabled') && !config.handlerEnabled ?\r\n false : true;\r\n }\r\n\r\n public successHandler(responseConfig: any) {\r\n if (this.isHandlerSuccessEnabled(responseConfig.config)) {\r\n // Handle sucesses\r\n // set loading state to false\r\n this.setLoadingState(false);\r\n }\r\n return responseConfig;\r\n }\r\n\r\n protected setLoadingState(value: boolean): void {\r\n mutations.setLoadingState(value);\r\n }\r\n\r\n private notify(text: string = 'error', type: string = 'error', title: string = 'error', duration: number = 20000) {\r\n this.$notify({\r\n type,\r\n title: `errorMgs.${title}`,\r\n text: `errorMgs.${text}`,\r\n duration,\r\n });\r\n }\r\n}\r\n","import axios, { AxiosRequestConfig } from 'axios';\r\nimport TokenService from '@/services/token.service';\r\nimport { FileDataInterface } from '@/store/interfaces/filedata.interface';\r\nimport ApiHandler from '@/utils/api.handler';\r\n\r\nexport default class ApiService {\r\n\r\n /**\r\n * Initialize the base URL against axios.\r\n * @param baseURL The API base URL\r\n */\r\n public static init(baseURL: string) {\r\n const service = new ApiHandler();\r\n axios.defaults.baseURL = baseURL;\r\n axios.defaults.withCredentials = true; // enables passing of cookies\r\n axios.interceptors.request.use((requestConfig: AxiosRequestConfig) => service.requestHandler(requestConfig));\r\n axios.interceptors.response.use(\r\n (responseConfig) => service.successHandler(responseConfig),\r\n (error) => service.errorHandler(error),\r\n );\r\n }\r\n\r\n /**\r\n * Set the header with key and content if any, otherwise set Authorization header by default\r\n * @param {string} key The header key entry\r\n * @param {string} content The content for the key entry\r\n */\r\n public static setHeader(key?: string, content?: string): void {\r\n if (!!key && !!content) {\r\n axios.defaults.headers.common[key] = content;\r\n return;\r\n }\r\n const k = 'Authorization';\r\n axios.defaults.headers.common[k] = `Bearer ${TokenService.getToken()}`;\r\n }\r\n\r\n /**\r\n * Remove the header specified by the key if any, otherwise remove all headers\r\n * @param {string} key The header key entry\r\n */\r\n public static removeHeader(key?: string): void {\r\n if (!!key) {\r\n delete axios.defaults.headers.common[key];\r\n return;\r\n }\r\n axios.defaults.headers.common = {};\r\n }\r\n\r\n /**\r\n * Get the resource\r\n * @param resource The API resource to get\r\n */\r\n public static get(resource: string, config?: AxiosRequestConfig) {\r\n return axios.get(resource, config);\r\n }\r\n\r\n /**\r\n * Post to the API resource\r\n * @param resource The API resource where to post\r\n * @param data The payload as JSON object\r\n */\r\n public static post(resource: string, data: object) {\r\n return axios.post(resource, data);\r\n }\r\n\r\n /**\r\n * Replace a resource\r\n * @param resource The API resource to update\r\n * @param data The payload as JSON object\r\n */\r\n public static put(resource: string, data: object) {\r\n return axios.put(resource, data);\r\n }\r\n\r\n /**\r\n * Update/patch a resource\r\n * @param resource The API resource to update\r\n * @param data The payload as JSON object\r\n */\r\n public static patch(resource: string, data: object) {\r\n return axios.patch(resource, data);\r\n }\r\n\r\n /**\r\n * Delete a resource\r\n * @param resource The API resource to delete\r\n */\r\n public static delete(resource: string) {\r\n return axios.delete(resource);\r\n }\r\n\r\n /**\r\n * Perform a custom Axios request.\r\n *\r\n * data is an object containing the following properties:\r\n * - method\r\n * - url\r\n * - data ... request payload\r\n * - auth (optional)\r\n * - username\r\n * - password\r\n * @param data\r\n */\r\n public static async customRequest(data: AxiosRequestConfig) {\r\n return axios(data);\r\n }\r\n\r\n /**\r\n * Create a new instance of axios without interceptors. Use it for special cases only!\r\n */\r\n public static async create() {\r\n const instance = axios.create();\r\n instance.defaults.baseURL = process.env.VUE_APP_PUBLIC_ROOT_API;\r\n instance.defaults.withCredentials = true; // enables passing of cookies\r\n\r\n return instance;\r\n }\r\n\r\n /**\r\n * get a file from backend\r\n * @param url The url where is the file\r\n * @param params The params\r\n * @param defaultName The default name in case of the filename is not provided by the API\r\n */\r\n public static async getFileFromBackend(url: string\r\n , params?: { [key: string]: string | string[] }\r\n , defaultName?: string\r\n , handlerSuccessEnabled: boolean = true): Promise {\r\n let paramsUrl: string = '';\r\n if (params) {\r\n for (const key in params) {\r\n if (params.hasOwnProperty(key)) {\r\n if (paramsUrl === '') {\r\n paramsUrl += '?';\r\n } else {\r\n paramsUrl += '&';\r\n }\r\n const value = params[key];\r\n if (Array.isArray(value)) {\r\n for (const innerValue of value) {\r\n paramsUrl += `${key}=${innerValue}`;\r\n }\r\n } else {\r\n paramsUrl += `${key}=${value}`;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return axios.get(url + paramsUrl,\r\n { responseType: 'blob', handlerSuccessEnabled } as AxiosRequestConfig).then(\r\n (res: any) => {\r\n const contentDispositionHeader = res.headers['content-disposition'];\r\n let name = defaultName;\r\n if (contentDispositionHeader) {\r\n name = contentDispositionHeader.split(';')[1].trim().split('=')[1].replace(/\"/g, '');\r\n }\r\n res.name = name;\r\n\r\n return {\r\n blob: res.data,\r\n name: res.name,\r\n };\r\n },\r\n );\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./Step.scss?vue&type=style&index=0&id=09c6cb5d&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./Step.scss?vue&type=style&index=0&id=09c6cb5d&scoped=true&lang=scss&\"","export enum McsisPolicy {\r\n DoctorRead,\r\n InsuranceRead,\r\n LocalityRead,\r\n MedicalDataEdit,\r\n MedicalDataRead,\r\n QuestionRead,\r\n UserRead,\r\n}\r\n","import { McsisPolicy } from '@/models/constants/McsisPolicy';\r\nimport LocalStoreService from '@/store/local.store';\r\n\r\n\r\n/**\r\n * Manage how the policies are being stored and retrieved from storage.\r\n *\r\n * Current implementation stores to localStorage (LocalStoreService).\r\n */\r\nexport default class AuthService {\r\n public static readonly POLICIES = 'policies';\r\n\r\n /**\r\n * Get the policies\r\n * @returns {Map} The policies\r\n */\r\n public static getPolicies(): Map {\r\n const policies = LocalStoreService.getItem(this.POLICIES);\r\n return JSON.parse(policies as string);\r\n }\r\n\r\n /**\r\n * Save the given policies\r\n * @param policies The policies\r\n */\r\n public static savePolicies(policies: Map) {\r\n LocalStoreService.setItem(this.POLICIES, JSON.stringify(policies));\r\n }\r\n\r\n /**\r\n * Remove/delete the policies\r\n */\r\n public static removePolicies() {\r\n LocalStoreService.deleteItem(this.POLICIES);\r\n }\r\n\r\n}\r\n","import _Vue from 'vue';\r\nimport AuthService from '@/services/auth.service';\r\nimport { McsisPolicy } from '@/models/constants/McsisPolicy';\r\nimport TokenService from '@/services/token.service';\r\nimport ApiService from '@/services/api.service';\r\nimport { McsisClaimDTO } from '@/models/McsisClaimDTO';\r\nimport ApiError from '@/exceptions/api.error';\r\nimport { McsisPolicyDTO } from '@/models/McsisPolicyDTO';\r\nimport jwt_decode from 'jwt-decode';\r\nimport { McsisRole } from '@/models/constants/McsisRole';\r\n\r\nexport function AuthPlugin(Vue: typeof _Vue, options?: AuthPluginOptions): void {\r\n // do stuff with options\r\n Vue.prototype.$getAcceptanceDate = getAcceptanceDate;\r\n Vue.prototype.$isAuthorized = isAuthorized;\r\n Vue.prototype.$isInRole = isInRole;\r\n Vue.directive('ShowByPolicy', ShowByPolicy);\r\n Vue.directive('ShowByRole', ShowByRole);\r\n Vue.directive('HideByRole', HideByRole);\r\n}\r\n\r\nconst decodeToken = (): any => {\r\n const token = TokenService.getToken();\r\n let decodedToken = '';\r\n if (token) {\r\n decodedToken = jwt_decode(token) as any;\r\n }\r\n\r\n return decodedToken;\r\n};\r\n\r\nconst getAcceptanceDate = (): Date|undefined => {\r\n const decodedToken = decodeToken();\r\n if (decodedToken) {\r\n const TermsAcceptanceDateKey = 'TermsAcceptanceDate';\r\n const termsAcceptanceDate = decodedToken[TermsAcceptanceDateKey] as string;\r\n if (termsAcceptanceDate === undefined) {\r\n return undefined;\r\n } else {\r\n const date = new Date(termsAcceptanceDate);\r\n return date;\r\n }\r\n }\r\n return undefined;\r\n};\r\n\r\nconst isAuthorized = (policy: McsisPolicy): Promise => {\r\n return fetchPolicies().then((policies: any) => {\r\n const decodedToken = decodeToken();\r\n if (decodedToken) {\r\n const requiredClaims = policies.get(policy);\r\n if (requiredClaims === undefined) {\r\n throw new Error(\r\n 'No information received from the API about policy: ' +\r\n McsisPolicy[policy],\r\n );\r\n }\r\n for (const claimCode of requiredClaims) {\r\n if (decodedToken[claimCode] === undefined) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n return false;\r\n });\r\n};\r\n\r\nconst isInRole = (role: McsisRole): Promise => {\r\n const decodedToken = decodeToken();\r\n let isinRole = false;\r\n if (decodedToken) {\r\n if (Array.isArray(decodedToken.role)) {\r\n isinRole = decodedToken.role.some((r: string) => r === McsisRole[role]);\r\n } else {\r\n isinRole = decodedToken.role === McsisRole[role];\r\n }\r\n }\r\n\r\n return Promise.resolve(isinRole);\r\n};\r\n\r\nconst fetchPolicies = (): Promise> => {\r\n let policies = AuthService.getPolicies();\r\n if (policies && policies.size > 0) {\r\n return Promise.resolve(policies);\r\n }\r\n // data services cannot be used since they may depend on this service\r\n return ApiService.get(`${process.env.VUE_APP_PUBLIC_ROOT_API}/auth/policies`,\r\n { handlerSuccessEnabled: false, handlerErrorEnabled: false })\r\n .then((response: any) => {\r\n const res = response.data as McsisPolicyDTO[];\r\n\r\n policies = new Map();\r\n res.forEach((val: any) => {\r\n const policy: McsisPolicy =\r\n McsisPolicy[val.mcsisPolicyCode as keyof typeof McsisPolicy];\r\n if (policy === undefined) {\r\n throw new Error(\r\n `A policy returned by the API is unknown to the front-end code: ${val.mcsisPolicyCode}`,\r\n );\r\n }\r\n const claims: string[] = val.mcsisClaims.map(\r\n (claim: McsisClaimDTO) => claim.mcsisClaimCode,\r\n );\r\n const parentClaims: string[] = val.mcsisParentPolicy\r\n ? val.mcsisParentPolicy.mcsisClaims.map(\r\n (claim: McsisClaimDTO) => claim.mcsisClaimCode,\r\n )\r\n : [];\r\n for (const claimCode of parentClaims) {\r\n if (claims.indexOf(claimCode) === -1) {\r\n claims.push(claimCode);\r\n }\r\n }\r\n\r\n policies.set(policy, claims);\r\n });\r\n AuthService.savePolicies(policies);\r\n return policies;\r\n })\r\n .catch((error: any) => {\r\n throw new ApiError(error.response.status, error.response.statusText);\r\n });\r\n};\r\n\r\nconst ShowByPolicy = {\r\n bind(el: any, binding: any) {\r\n el.style.display = 'none';\r\n isAuthorized(McsisPolicy[binding.value as keyof typeof McsisPolicy]).then(\r\n (response: boolean) => {\r\n if (el && response) {\r\n el.style.display = 'inherit';\r\n } else {\r\n el.remove();\r\n }\r\n },\r\n );\r\n },\r\n};\r\n\r\nconst ShowByRole = {\r\n bind(el: any, binding: any) {\r\n el.style.display = 'none';\r\n isInRole(McsisRole[binding.value as keyof typeof McsisRole]).then(\r\n (visible: boolean) => {\r\n // Hide in case we don't have a token\r\n const decodedToken = decodeToken();\r\n if (!decodedToken) {\r\n el.remove();\r\n return;\r\n }\r\n\r\n if (el && visible) {\r\n el.style.display = 'inherit';\r\n } else {\r\n el.remove();\r\n }\r\n },\r\n );\r\n },\r\n};\r\n\r\nconst HideByRole = {\r\n bind(el: any, binding: any) {\r\n el.style.display = 'none';\r\n isInRole(McsisRole[binding.value as keyof typeof McsisRole]).then(\r\n (visible: boolean) => {\r\n // Hide in case we don't have a token\r\n const decodedToken = decodeToken();\r\n if (!decodedToken) {\r\n el.remove();\r\n return;\r\n }\r\n\r\n if (el && visible) {\r\n el.remove();\r\n } else {\r\n el.style.display = 'inherit';\r\n }\r\n },\r\n );\r\n },\r\n};\r\n\r\nexport { isInRole };\r\n\r\nexport class AuthPluginOptions { }\r\n","module.exports = __webpack_public_path__ + \"img/ti.jpg\";","module.exports = __webpack_public_path__ + \"img/close.svg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-mask\"},[_c('div',{staticClass:\"modal-wrapper\"},[_c('div',{staticClass:\"modal-container\"},[(!_vm.mandatoryChoice)?_c('button',{staticClass:\"modal-default-button\",on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('img',{attrs:{\"src\":require(\"@/assets/icons/close.svg\"),\"alt\":\"close\"}})]):_vm._e(),_c('div',{staticClass:\"modal-header\"},[_vm._t(\"header\")],2),_c('div',{staticClass:\"modal-body\"},[_vm._t(\"body\")],2),_c('div',{staticClass:\"modal-footer\"},[_vm._t(\"footer\")],2)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop } from 'vue-property-decorator';\r\nimport Vue from 'vue';\r\n\r\n@Component\r\nexport default class ModalTemplate extends Vue {\r\n @Prop({ default: false }) public mandatoryChoice?: boolean;\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./ModalTemplate.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./ModalTemplate.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalTemplate.vue?vue&type=template&id=0e73dff2&scoped=true&\"\nimport script from \"./ModalTemplate.ts?vue&type=script&lang=ts&\"\nexport * from \"./ModalTemplate.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./ModalTemplate.scss?vue&type=style&index=0&id=0e73dff2&scoped=true&lang=scss&\"\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 \"0e73dff2\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\n\r\n/**\r\n * This is a in-memory store. Data are lost on page reload.\r\n */\r\nexport const store = Vue.observable({\r\n state: {\r\n token: '',\r\n tokenTimestamp: 0,\r\n isAuthenticated: false,\r\n isIdentified: false,\r\n screeningUnit: 0,\r\n dataLoading: false,\r\n isLanguagesLoaded: false,\r\n isDossierOpened: false,\r\n isProFit: false,\r\n isAppLoaded: false,\r\n hasCustomConsent: false,\r\n consentAccepted: false,\r\n isColonoscopyMode: false,\r\n isDirectRefusal: false,\r\n inclusionType: '',\r\n showErrInfoModal: false,\r\n popUpErrMessage: '',\r\n appVersion: {\r\n isLatest: false,\r\n lastCheckDate: new Date(),\r\n },\r\n maxVisitedStepNumber: 0,\r\n },\r\n});\r\n\r\nexport const mutations = {\r\n setToken(token: string) {\r\n store.state.token = token;\r\n },\r\n\r\n setShowErrInfoModal(status: boolean) {\r\n store.state.showErrInfoModal = status;\r\n },\r\n\r\n setPopUpErrMessage(errMsg: string) {\r\n store.state.popUpErrMessage = errMsg;\r\n },\r\n\r\n setTokenTimestamp(timestamp: number) {\r\n store.state.tokenTimestamp = timestamp;\r\n },\r\n\r\n setIsAuthenticated(status: boolean) {\r\n store.state.isAuthenticated = status;\r\n },\r\n\r\n setIsIdentified(status: boolean) {\r\n store.state.isIdentified = status;\r\n },\r\n\r\n setScreeningUnit(suId: number) {\r\n store.state.screeningUnit = suId;\r\n },\r\n\r\n setLoadingState(status: boolean) {\r\n store.state.dataLoading = status;\r\n },\r\n\r\n setIsLanguagesLoaded(status: boolean) {\r\n store.state.isLanguagesLoaded = status;\r\n },\r\n\r\n setIsDossierOpened(status: boolean) {\r\n store.state.isDossierOpened = status;\r\n },\r\n\r\n setIsProFit(status: boolean) {\r\n store.state.isProFit = status;\r\n },\r\n\r\n setIsAppLoaded(value: boolean) {\r\n store.state.isAppLoaded = value;\r\n },\r\n\r\n setHasCustomConsent(value: boolean) {\r\n store.state.hasCustomConsent = value;\r\n },\r\n\r\n setConsentAccepted(value: boolean) {\r\n store.state.consentAccepted = value;\r\n },\r\n\r\n setIsColonoscopyMode(value: boolean) {\r\n store.state.isColonoscopyMode = value;\r\n },\r\n\r\n setIsDirectRefusal(value: boolean) {\r\n store.state.isDirectRefusal = value;\r\n },\r\n\r\n setInclusionType(value: string) {\r\n store.state.inclusionType = value;\r\n },\r\n\r\n setAppVersion(value: any) {\r\n store.state.appVersion = value;\r\n },\r\n\r\n setMaxVisitedStepNumber(value: number) {\r\n store.state.maxVisitedStepNumber = value;\r\n },\r\n};\r\n","module.exports = __webpack_public_path__ + \"img/logo_cancer_colorectal.svg\";","import { CorrespondenceLanguages, PhoneNumberCountries } from '@/models/VariousEnum';\r\n\r\n\r\n/**\r\n * Configuration extracted from .env file for an easy access.\r\n */\r\n// List of supported SU (e.g: vs, fr)\r\nexport const SUPPORTED_SU = process.env.VUE_APP_SUPPORTED_SU.split(',');\r\n\r\n// Configuration regarding app languages/locales\r\nexport const SUPPORTED_LANGUAGES = process.env.VUE_APP_SUPPORTED_LANGUAGES.split(',');\r\n\r\n// Base de toutes les route de l'API\r\nexport const PUBLIC_ROOT_API = process.env.VUE_APP_PUBLIC_ROOT_API;\r\n\r\n// App version used to force refresh the app when new update is available\r\nexport const APP_VERSION = process.env.VUE_APP_VERSION.trim();\r\n\r\nconst ACCEPTING_TERMS: any = {\r\n fr: true,\r\n vs: false,\r\n gr: false,\r\n bb: false,\r\n ti: false,\r\n sg: false,\r\n be: false,\r\n so: true,\r\n lu: false,\r\n};\r\n\r\nexport function checkAcceptingTerms(suName: string): boolean {\r\n const su: string = suName.toLowerCase();\r\n if (!ACCEPTING_TERMS.hasOwnProperty(su)) {\r\n return false; // default value for each SU\r\n }\r\n return ACCEPTING_TERMS[su];\r\n}\r\n\r\n/**\r\n * Laguage disponibles pour chaque su\r\n * @date 17.08.2023 - 11:21:17\r\n *\r\n * @type {*}\r\n */\r\nconst CORRESPONDENCE_LANGUAGES_MAPPING: any = {\r\n fr: ['fr', 'de'],\r\n vs: ['fr', 'de'],\r\n gr: ['de', 'it'],\r\n bb: ['de'],\r\n ti: ['it'],\r\n sg: ['de'],\r\n be: ['de', 'fr'],\r\n so: ['de'],\r\n lu: ['de'],\r\n};\r\n\r\n/**\r\n * Gestion du mappage de la langue pour chaque su\r\n * @date 17.08.2023 - 11:22:36\r\n *\r\n * @export\r\n * @param {string} suName - Le nom du su\r\n * @returns {*} - Un tableau qui contient la liste des langue du su qui a été passé en paramètre\r\n */\r\nexport function getCorrespondenceLanguagesBySu(suName: string): any {\r\n const su: string = suName;\r\n\r\n if (!CORRESPONDENCE_LANGUAGES_MAPPING.hasOwnProperty(su)) {\r\n return [];\r\n }\r\n\r\n const languages = CORRESPONDENCE_LANGUAGES_MAPPING[su];\r\n const correspondenceLang = [];\r\n\r\n languages.forEach((element: string) => {\r\n correspondenceLang.push(CorrespondenceLanguages[element.toUpperCase() as keyof typeof CorrespondenceLanguages]);\r\n });\r\n return languages;\r\n}\r\n\r\n\r\n/**\r\n * Langue par défaut pour les su qui emploient le site publique\r\n * @date 16.08.2023 - 13:06:24\r\n *\r\n * @type {*}\r\n */\r\nconst FALLBACK_LANGUAGE_MAPPING: any = {\r\n fr: 'fr',\r\n vs: 'fr',\r\n gr: 'de',\r\n bb: 'de',\r\n ti: 'it',\r\n sg: 'de',\r\n be: 'de',\r\n so: 'de',\r\n lu: 'de',\r\n}\r\n\r\n/**\r\n * Méthode qui va faire le lien entre le su et la langue par défaut\r\n * @date 16.08.2023 - 13:07:22\r\n *\r\n * @export\r\n * @param {string} su -- le su se trouvant dans l'url\r\n * @returns {string} -- la langue par défaut du su qui a été passé en paramètre\r\n */\r\nexport function getLanguageFallBackBySu(su: string): string {\r\n if (!FALLBACK_LANGUAGE_MAPPING.hasOwnProperty(su)) {\r\n return '';\r\n }\r\n return FALLBACK_LANGUAGE_MAPPING[su];\r\n}\r\n\r\n\r\n/**\r\n * Phone numbers configuration for each SU\r\n */\r\nconst PHONE_NUMBER_COUNTRIES_MAPPING: any = {\r\n fr: ['ch'],\r\n vs: ['ch', 'fr', 'it'],\r\n gr: ['ch'],\r\n bb: ['ch'],\r\n ti: ['ch'],\r\n sg: ['ch'],\r\n be: ['ch'],\r\n so: ['ch'],\r\n lu: ['ch'],\r\n};\r\n\r\nexport function getPhoneNumberCountriesBySu(suName: string): string[] {\r\n const su: string = suName.toLowerCase();\r\n if (!PHONE_NUMBER_COUNTRIES_MAPPING.hasOwnProperty(su)) {\r\n return [];\r\n }\r\n\r\n const countries = PHONE_NUMBER_COUNTRIES_MAPPING[su];\r\n const phoneNumberCountry = [];\r\n\r\n countries.forEach((element: string) => {\r\n phoneNumberCountry.push(PhoneNumberCountries[element.toUpperCase() as keyof typeof PhoneNumberCountries]);\r\n });\r\n\r\n return countries;\r\n}\r\n\r\n/**\r\n * Display checkbox to allow the results to be sent to the pharmacy for each SU\r\n */\r\nconst DISPLAY_SEND_RESULTS_TO_PHARMACY: any = {\r\n fr: false,\r\n vs: false,\r\n gr: false,\r\n bb: false,\r\n ti: false,\r\n sg: false,\r\n be: false,\r\n so: false,\r\n lu: false,\r\n};\r\n\r\nexport function mustDisplaySendResultsToPharmacy(suName: string) {\r\n const su: string = suName.toLowerCase();\r\n if (!DISPLAY_SEND_RESULTS_TO_PHARMACY.hasOwnProperty(su)) {\r\n return false;\r\n }\r\n\r\n return DISPLAY_SEND_RESULTS_TO_PHARMACY[su];\r\n}\r\n\r\n/**\r\n * Fit only configuration for doctors for each SU.\r\n * Be careful, if you set this config to true, add an entry for the SU in DB and set it to true also!\r\n */\r\nconst DOCTOR_FIT_ONLY: any = {\r\n fr: false,\r\n vs: true,\r\n gr: false,\r\n bb: false,\r\n ti: false,\r\n sg: false,\r\n be: false,\r\n so: false,\r\n lu: false,\r\n};\r\n\r\nexport function displayFitOnlyForDoctors(suName: string) {\r\n const su: string = suName.toLowerCase();\r\n if (!DOCTOR_FIT_ONLY.hasOwnProperty(su)) {\r\n return false;\r\n }\r\n\r\n return DOCTOR_FIT_ONLY[su];\r\n}\r\n\r\n/**\r\n * Screening units id and name\r\n */\r\nconst SCREENING_UNITS: any = {\r\n // PROD\r\n 1: 'fr',\r\n 3: 'vs',\r\n 4: 'sg',\r\n 10: 'ti',\r\n 11: 'bb',\r\n 13: 'gr',\r\n 14: 'be', // And so\r\n 15: 'lu',\r\n\r\n // TEST\r\n 101: 'fr',\r\n 103: 'vs',\r\n 104: 'sg',\r\n 110: 'ti',\r\n 111: 'bb',\r\n 113: 'gr',\r\n 114: 'be', // And so\r\n 115: 'lu',\r\n\r\n // DEV\r\n 301: 'fr',\r\n 303: 'vs',\r\n 304: 'sg',\r\n 310: 'ti',\r\n 311: 'bb',\r\n 313: 'gr',\r\n 314: 'be', // And so\r\n 315: 'lu',\r\n};\r\n\r\nexport function getScreeningUnitNameFromID(suId: string) {\r\n const su: number = Number(suId);\r\n if (!SCREENING_UNITS.hasOwnProperty(su)) {\r\n return '';\r\n }\r\n return SCREENING_UNITS[su];\r\n}\r\n\r\n/**\r\n * Pro login activation\r\n */\r\nconst PRO_LOGIN_ACTIVATION: any = {\r\n fr: true,\r\n vs: true,\r\n gr: false,\r\n bb: true,\r\n ti: false,\r\n sg: false,\r\n be: true,\r\n so: true,\r\n lu: true,\r\n};\r\n\r\nexport function isProLoginActivatedFromSU(suName: string) {\r\n const su: string = suName.toLowerCase();\r\n if (!PRO_LOGIN_ACTIVATION.hasOwnProperty(su)) {\r\n return false;\r\n }\r\n return PRO_LOGIN_ACTIVATION[su];\r\n}\r\n\r\n/**\r\n * Use simple consent\r\n */\r\nconst USE_SIMPLE_CONSENT: any = {\r\n fr: false,\r\n vs: false,\r\n gr: false,\r\n bb: true,\r\n ti: false,\r\n sg: false,\r\n be: true,\r\n so: true,\r\n lu: true,\r\n};\r\n\r\nexport function isSimpleConsentUsedFromSU(suName: string) {\r\n const su: string = suName.toLowerCase();\r\n if (!USE_SIMPLE_CONSENT.hasOwnProperty(su)) {\r\n return false;\r\n }\r\n return USE_SIMPLE_CONSENT[su];\r\n}\r\n\r\n/**\r\n * Pharmacists make FIT orders instead of giving test directly\r\n */\r\nconst PHARMACIST_FIT_ORDER: any = {\r\n fr: false,\r\n vs: false,\r\n bb: true,\r\n be: true,\r\n so: true,\r\n lu: false,\r\n};\r\n\r\nexport function isPharmacistFitOrderActivated(suName: string) {\r\n const su: string = suName.toLowerCase();\r\n if (!PHARMACIST_FIT_ORDER.hasOwnProperty(su)) {\r\n return false;\r\n }\r\n return PHARMACIST_FIT_ORDER[su];\r\n}\r\n\r\n/**\r\n * Coloscopy mode activation.\r\n * Allows access to public inclusion through xx/login/{fit|colonoscopy|refusal}.\r\n * - in case of xx/login/fit allows a partiicpant to do a fit inclusion (normal behaviour)\r\n * - in case of xx/login/colonoscopy allows a partiicpant to do a colo inclusion\r\n * - in case of xx/login/refusal allows a partiicpant to go directly to the the alternative questionnaire\r\n */\r\nconst COLONOSCOPY_MODE_ACTIVATION: any = {\r\n fr: false,\r\n vs: false,\r\n gr: false,\r\n bb: true,\r\n ti: false,\r\n sg: false,\r\n be: true,\r\n so: true,\r\n lu: false,\r\n};\r\n\r\nexport function isColonoscopyModeActivatedFromSU(suName: string) {\r\n const su: string = suName.toLowerCase();\r\n if (!COLONOSCOPY_MODE_ACTIVATION.hasOwnProperty(su)) {\r\n return false;\r\n }\r\n return COLONOSCOPY_MODE_ACTIVATION[su];\r\n}\r\n\r\nconst ADVICE_MODE_ACTIVATION: any = {\r\n fr: false,\r\n vs: false,\r\n gr: false,\r\n bb: true,\r\n ti: false,\r\n sg: false,\r\n be: false,\r\n so: false,\r\n lu: false,\r\n};\r\n\r\nexport function isAdviceModeActivatedFromSU(suName: string) {\r\n const su: string = suName.toLowerCase();\r\n if (!ADVICE_MODE_ACTIVATION.hasOwnProperty(su)) {\r\n return false;\r\n }\r\n return ADVICE_MODE_ACTIVATION[su];\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/so.jpg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:[(\"route-\" + (this.$route.name)), {'menu-open': this.mobileMenuOpen, 'data-is-loading': this.isLoading}],attrs:{\"id\":\"app\"}},[_c('header',[_c('div',{staticClass:\"inner-header\"},[_c('div',{staticClass:\"logos\"},[_c('Logo')],1),_c('div',{staticClass:\"actions\"},[_c('div',{staticClass:\"actions-top\"},[_c('LanguagePicker',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.languageChoices),expression:\"languageChoices\"}]}),_c('MoreInfo')],1),_c('div',{attrs:{\"id\":\"nav\"}},[(!(_vm.authenticated || _vm.identified))?_c('router-link',{attrs:{\"to\":{ name: 'login' }}},[_vm._v(\"Login\")]):_vm._e(),(_vm.proLoginActivated && !(_vm.authenticated || _vm.identified))?_c('router-link',{attrs:{\"to\":{ name: 'pro-login' }}},[_vm._v(\"Pro Login\")]):_vm._e(),(_vm.identified && !_vm.authenticated)?_c('a',{staticClass:\"button-logout\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.logout('login')}}},[_c('img',{attrs:{\"src\":require(\"@/assets/icons/logout.svg\"),\"alt\":\"logout\"}}),_vm._v(\"\\n \"+_vm._s(_vm.$t('buttons.logout'))+\"\\n \")]):_vm._e(),(_vm.authenticated)?_c('a',{staticClass:\"button-logout\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.logout('pro-login')}}},[_c('img',{attrs:{\"src\":require(\"@/assets/icons/logout.svg\"),\"alt\":\"logout\"}}),_vm._v(\"\\n \"+_vm._s(_vm.$t('buttons.logout'))+\" (\"+_vm._s(_vm.userName)+\")\\n \")]):_vm._e(),(_vm.authenticated)?_c('router-link',{attrs:{\"to\":{ name: 'password-modification' }}},[_vm._v(_vm._s(_vm.$t(\"menu.changePassword\")))]):_vm._e(),(_vm.env === 'development')?_c('router-link',{attrs:{\"to\":{ name: 'translation' }}},[_vm._v(_vm._s(_vm.$t(\"Translations\")))]):_vm._e()],1),_c('div',{attrs:{\"id\":\"mobile-trigger\"},on:{\"click\":_vm.toggleMenu,\"toggleMenu\":_vm.toggleMenu}},[_c('span',{staticClass:\"hamburger-top\"}),_c('span',{staticClass:\"hamburger-bot\"})])])])]),_c('notifications',{attrs:{\"position\":\"bottom right\"},scopedSlots:_vm._u([{key:\"body\",fn:function(props){return [_c('div',{class:'vue-notification ' + props.item.type,on:{\"click\":props.close}},[_c('div',[_vm._v(_vm._s(_vm.$t(props.item.text)))])])]}}])}),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.navigationSteps.includes(this.$route.name) && ((_vm.authenticated && _vm.isDossierOpened) || _vm.identified))?_c('Stepper',{attrs:{\"maxVisitedStepNumber\":_vm.maxVisitedStepNumber,\"selectedStepNumber\":_vm.currentStepNumber},on:{\"update-current-step-number\":_vm.onUpdateCurrentStepNumber}}):_vm._e()],1),_c('router-view',{staticClass:\"main-content\",on:{\"authenticated\":_vm.setAuthenticated,\"identified\":_vm.setIdentified,\"logout\":_vm.logout,\"openingDossier\":_vm.openingDossier}}),_c('Loader'),_c('footer',[_c('span',[_vm._v(\"\\n © \"+_vm._s(new Date().getFullYear())+\" Swiss Cancer Screening - Created by\\n \"),_c('a',{attrs:{\"href\":\"https://cdi.ch\",\"target\":\"_blank\"}},[_vm._v(\"CDI\")])])]),_c('MobileMenu',{attrs:{\"authenticated\":_vm.authenticated,\"identified\":_vm.identified,\"username\":_vm.authenticated ? _vm.userName : null,\"env\":_vm.env,\"proLoginActivated\":_vm.proLoginActivated},on:{\"close-mob-menu\":_vm.closeMobMenu,\"logout\":function($event){_vm.logout(); _vm.closeMobMenu();}}}),_c('transition',{attrs:{\"name\":\"modal\"}},[(_vm.showUpdateModal)?_c('ModalTemplate',{on:{\"close\":_vm.hideUpdateModal}},[_c('h2',{attrs:{\"slot\":\"header\"},slot:\"header\"},[_vm._v(_vm._s(_vm.$t('appUpdate.modal.title')))]),_c('div',{attrs:{\"slot\":\"body\"},slot:\"body\"},[_vm._l((_vm.$t('appUpdate.modal.bodyMessage')),function(msg,index){return _c('p',{key:index},[_vm._v(\"\\n \"+_vm._s(msg)+\"\\n \")])}),_c('Contact')],2),_c('div',{staticClass:\"modal-bottom-buttons\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('div',[_c('button',{on:{\"click\":function($event){return _vm.hideUpdateModal()}}},[_vm._v(_vm._s(_vm.$t('buttons.ok')))])])])]):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"languageSwitcher\"},_vm._l((_vm.languages),function(lang){return _c('li',{key:lang},[_c('a',{class:{ 'active': _vm.isCurrentLanguage(lang) },attrs:{\"href\":\"javascript:void(0);\"},on:{\"click\":function($event){return _vm.changeLocale(lang)}}},[_vm._v(_vm._s(lang))])])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport { getCorrespondenceLanguagesBySu, getLanguageFallBackBySu } from '@/config/app.config';\r\nimport { WatchOptions } from 'vue';\r\n\r\n@Component\r\nexport default class LanguagePicker extends Vue {\r\n private languages: string[] = [];\r\n private fallBack: string = '';\r\n private get suName() { return this.$route.params.screening; }\r\n \r\n /**\r\n * Au moment ou on sélectionne une autre langue, on la change également au\r\n * niveau de la variable locale du fichier i18n.ts qui gère les traductions\r\n * @date 17.08.2023 - 11:15:58\r\n *\r\n * @protected\r\n * @param {string} lang - La langue sélectionnée dans la gui\r\n */\r\n protected changeLocale(lang: string): void {\r\n this.$i18n.locale = lang;\r\n }\r\n\r\n /**\r\n * Cette méthode est lancé à chaque changement de l'url\r\n * Elle détermine quelle langue est sélectionné de manière visuelle mais aussi\r\n * au niveau de la variable locale du fichier i18n.ts pour la gestion des traductions \r\n * @date 17.08.2023 - 11:13:19\r\n *\r\n * @protected\r\n * @param {string} lang - Language selectionné dans l'interface\r\n * @returns {boolean} - Boolean qui va définir si une langue est sélectionnée ou non\r\n */\r\n protected isCurrentLanguage(lang: string): boolean {\r\n if (this.languages.includes(this.$i18n.locale)) {\r\n return this.$i18n.locale === lang;\r\n }\r\n return this.fallBack === lang;\r\n }\r\n\r\n /**\r\n * La route n'est pas forcément chargé en même temps que la page\r\n * c'est pour cela que l'on a besoin d'un watcher\r\n * @date 16.08.2023 - 15:03:56\r\n *\r\n * @protected\r\n * @param {string} suName - nom du screening\r\n * @param {string} oldSuName - nom de l'ancien su (l'url change)\r\n */\r\n @Watch('suName', { immediate: true, deep: true } as WatchOptions)\r\n protected onLocaleChanged(suName: string, oldSuName: string) {\r\n if (oldSuName !== suName && suName !== undefined) {\r\n this.$i18n.locale = getLanguageFallBackBySu(this.$route.params.screening);\r\n this.languages = getCorrespondenceLanguagesBySu(this.$route.params.screening);\r\n this.fallBack = getLanguageFallBackBySu(this.$route.params.screening);\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./LanguagePicker.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./LanguagePicker.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LanguagePicker.vue?vue&type=template&id=18ac4a75&scoped=true&\"\nimport script from \"./LanguagePicker.ts?vue&type=script&lang=ts&\"\nexport * from \"./LanguagePicker.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./LanguagePicker.scss?vue&type=style&index=0&id=18ac4a75&scoped=true&lang=scss&\"\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 \"18ac4a75\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"fade\"}},[(this.isLoading)?_c('div',{staticClass:\"loader-bg\"},[_c('div',{attrs:{\"id\":\"loader\"}})]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue } from 'vue-property-decorator';\r\nimport { store, mutations } from '@/store/store';\r\n\r\n@Component\r\nexport default class Loader extends Vue {\r\n // Get loading state from store\r\n protected get isLoading(): boolean { return store.state.dataLoading; }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./Loader.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./Loader.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Loader.vue?vue&type=template&id=59d3fac7&scoped=true&\"\nimport script from \"./Loader.ts?vue&type=script&lang=ts&\"\nexport * from \"./Loader.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./Loader.scss?vue&type=style&index=0&id=59d3fac7&scoped=true&lang=scss&\"\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 \"59d3fac7\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"learnmore\"},[_c('img',{attrs:{\"src\":require(\"@/assets/icons/logo_cancer_colorectal.svg\")}}),_c('a',{attrs:{\"href\":_vm.$t('moreInfo.faqUrl'),\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t('moreInfo.faqLinkText')))])]),_c('div',{staticClass:\"shortContactInfo\",domProps:{\"innerHTML\":_vm._s(_vm.shortContactInfo)}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport { WatchOptions } from 'vue';\r\nimport { LocaleMessage } from 'vue-i18n';\r\nimport { store } from '@/store/store';\r\n\r\n@Component\r\nexport default class MoreInfo extends Vue {\r\n protected shortContactInfo: LocaleMessage = '';\r\n get isLanguagesLoaded() { return store.state.isLanguagesLoaded; }\r\n\r\n @Watch('isLanguagesLoaded', { immediate: true, deep: true } as WatchOptions)\r\n protected onIsLanguagesLoadedChanged({ to, from }: { to: boolean; from: boolean; }) {\r\n if (this.isLanguagesLoaded === true) {\r\n this.shortContactInfo = this.$t('contact.shortContactInfo');\r\n }\r\n }\r\n\r\n @Watch('$i18n.locale', { immediate: true, deep: true } as WatchOptions)\r\n protected onLocaleChanged({ to, from }: { to: boolean; from: boolean; }) {\r\n if (this.isLanguagesLoaded === true) {\r\n this.shortContactInfo = this.$t('contact.shortContactInfo');\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./MoreInfo.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./MoreInfo.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MoreInfo.vue?vue&type=template&id=8ea316b6&scoped=true&\"\nimport script from \"./MoreInfo.ts?vue&type=script&lang=ts&\"\nexport * from \"./MoreInfo.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./MoreInfo.scss?vue&type=style&index=0&id=8ea316b6&scoped=true&lang=scss&\"\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 \"8ea316b6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('img',{staticClass:\"logo\",attrs:{\"src\":_vm.headerLogoSrc,\"alt\":\"\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class Logo extends Vue {\r\n\r\n protected get headerLogoSrc(): string {\r\n if (this.$route.params.screening === undefined) {\r\n // Load a default logo instead\r\n return '';\r\n }\r\n const suName = this.$route.params.screening.toLowerCase();\r\n\r\n // TODO: move these in a configuration file instead ?\r\n const svg = ['fr'];\r\n const jpg = ['vd', 'vs', 'ti', 'so'];\r\n const png = ['bb', 'gr', 'sg', 'be', 'lu'];\r\n\r\n if (jpg.includes(suName)) {\r\n return require(`@/assets/logos/${suName}.jpg`);\r\n } else if (svg.includes(suName)) {\r\n return require(`@/assets/logos/${suName}.svg`);\r\n } else if (png.includes(suName)) {\r\n return require(`@/assets/logos/${suName}.png`);\r\n } else {\r\n return '';\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./Logo.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./Logo.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Logo.vue?vue&type=template&id=258cdb52&scoped=true&\"\nimport script from \"./Logo.ts?vue&type=script&lang=ts&\"\nexport * from \"./Logo.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./Logo.css?vue&type=style&index=0&id=258cdb52&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 \"258cdb52\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"offcanvas\"},[_c('LanguagePicker'),_c('MoreInfo'),_c('div',{attrs:{\"id\":\"mobile-nav\"}},[(!(_vm.authenticated || _vm.identified))?_c('router-link',{attrs:{\"to\":{ name: 'login' }},nativeOn:{\"click\":function($event){return _vm.$emit('close-mob-menu')}}},[_vm._v(\"Login\\n \")]):_vm._e(),(_vm.proLoginActivated && !(_vm.authenticated || _vm.identified))?_c('router-link',{attrs:{\"to\":{ name: 'pro-login' }},nativeOn:{\"click\":function($event){return _vm.$emit('close-mob-menu')}}},[_vm._v(\"Pro Login\\n \")]):_vm._e(),(_vm.identified && !_vm.authenticated)?_c('router-link',{staticClass:\"button-logout\",attrs:{\"to\":{ name: 'login' },\"replace\":\"\"},nativeOn:{\"click\":function($event){return _vm.$emit('logout')}}},[_c('img',{attrs:{\"src\":require(\"@/assets/icons/logout.svg\"),\"alt\":\"logout\"}}),_vm._v(\"\\n \"+_vm._s(_vm.$t('buttons.logout'))+\"\\n \")]):_vm._e(),(_vm.authenticated)?_c('router-link',{staticClass:\"button-logout\",attrs:{\"to\":{ name: 'pro-login' },\"replace\":\"\"},nativeOn:{\"click\":function($event){return _vm.$emit('logout')}}},[_c('img',{attrs:{\"src\":require(\"@/assets/icons/logout.svg\"),\"alt\":\"logout\"}}),_vm._v(\"\\n \"+_vm._s(_vm.$t('buttons.logout'))+\" (\"+_vm._s(_vm.username)+\")\\n \")]):_vm._e(),(_vm.authenticated)?_c('router-link',{attrs:{\"to\":{ name: 'password-modification' }},nativeOn:{\"click\":function($event){return _vm.$emit('close-mob-menu')}}},[_vm._v(_vm._s(_vm.$t('menu.changePassword'))+\"\\n \")]):_vm._e(),(_vm.env === 'development')?_c('router-link',{attrs:{\"to\":{ name: 'translation' }},nativeOn:{\"click\":function($event){return _vm.$emit('close-mob-menu')}}},[_vm._v(_vm._s(_vm.$t('Translations'))+\"\\n \")]):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport MoreInfo from '@/components/MoreInfo/MoreInfo';\r\nimport LanguagePicker from '@/components/LanguagePicker/LanguagePicker';\r\n\r\n@Component({\r\n components: {\r\n MoreInfo,\r\n LanguagePicker,\r\n },\r\n})\r\nexport default class MobileMenu extends Vue {\r\n @Prop({ required: true, default: false })\r\n public authenticated!: boolean;\r\n @Prop({ required: true, default: false })\r\n public identified!: boolean;\r\n @Prop({ required: true, default: null })\r\n public username!: string|null;\r\n @Prop({ required: true, default: null })\r\n public env!: string|null;\r\n @Prop({ required: true, default: false})\r\n public proLoginActivated!: boolean;\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./MobileMenu.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./MobileMenu.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MobileMenu.vue?vue&type=template&id=3c5cb34c&scoped=true&\"\nimport script from \"./MobileMenu.ts?vue&type=script&lang=ts&\"\nexport * from \"./MobileMenu.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./MobileMenu.scss?vue&type=style&index=0&id=3c5cb34c&scoped=true&lang=scss&\"\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 \"3c5cb34c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"stepper-wrapper\"},[_c('div',{staticClass:\"background-line\",class:(\"size-\" + _vm.maxVisitedStepNumber)},[_c('div',{class:_vm.hasCustomConsent() ? 'withConsent' : 'withoutConsent'}),_c('div',{class:_vm.hasCustomConsent() ? 'withConsent' : 'withoutConsent'}),_c('div',{class:_vm.hasCustomConsent() ? 'withConsent' : 'withoutConsent'}),_c('div',{class:_vm.hasCustomConsent() ? 'withConsent' : 'withoutConsent'}),(_vm.hasCustomConsent())?_c('div',{staticClass:\"withConsent\"}):_vm._e()]),_c('Step',{attrs:{\"stepNumber\":\"1\",\"label\":\"inclusion.adminDataTitle\",\"selected\":_vm.isSelected(1),\"passed\":_vm.isPassed(1),\"jumpable\":_vm.isJumpable(1)},on:{\"update-selected-step-number\":_vm.onUpdateSelectedStepNumber}}),_c('Step',{attrs:{\"stepNumber\":\"2\",\"label\":\"pages.questionnary\",\"selected\":_vm.isSelected(2),\"passed\":_vm.isPassed(2),\"jumpable\":_vm.isJumpable(2)},on:{\"update-selected-step-number\":_vm.onUpdateSelectedStepNumber}}),_c('Step',{attrs:{\"stepNumber\":\"3\",\"label\":\"pages.medicalContent\",\"selected\":_vm.isSelected(3),\"passed\":_vm.isPassed(3),\"jumpable\":_vm.isJumpable(3)},on:{\"update-selected-step-number\":_vm.onUpdateSelectedStepNumber}}),(_vm.hasCustomConsent())?_c('Step',{attrs:{\"stepNumber\":\"4\",\"label\":\"pages.consent\",\"selected\":_vm.isSelected(4),\"passed\":_vm.isPassed(4),\"jumpable\":_vm.isJumpable(4)},on:{\"update-selected-step-number\":_vm.onUpdateSelectedStepNumber}}):_vm._e(),(_vm.hasCustomConsent())?_c('Step',{attrs:{\"stepNumber\":\"5\",\"label\":\"recap.pageTitle\",\"selected\":_vm.isSelected(5),\"passed\":_vm.isPassed(5),\"jumpable\":_vm.isJumpable(5)},on:{\"update-selected-step-number\":_vm.onUpdateSelectedStepNumber}}):_vm._e(),(!_vm.hasCustomConsent())?_c('Step',{attrs:{\"stepNumber\":\"4\",\"label\":\"recap.pageTitle\",\"selected\":_vm.isSelected(4),\"passed\":_vm.isPassed(4),\"jumpable\":_vm.isJumpable(4)},on:{\"update-selected-step-number\":_vm.onUpdateSelectedStepNumber}}):_vm._e(),(_vm.hasCustomConsent())?_c('Step',{attrs:{\"stepNumber\":\"6\",\"label\":\"pages.confirmation\",\"selected\":_vm.isSelected(6),\"passed\":_vm.isPassed(6),\"jumpable\":_vm.isJumpable(6)},on:{\"update-selected-step-number\":_vm.onUpdateSelectedStepNumber}}):_vm._e(),(!_vm.hasCustomConsent())?_c('Step',{attrs:{\"stepNumber\":\"5\",\"label\":\"pages.confirmation\",\"selected\":_vm.isSelected(5),\"passed\":_vm.isPassed(5),\"jumpable\":_vm.isJumpable(5)},on:{\"update-selected-step-number\":_vm.onUpdateSelectedStepNumber}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"single-step-wrapper\",class:{\n 'divStepActivated': this.selected,\n 'divStepPassed': this.passed,\n 'divStepJumpable': this.jumpable,\n },on:{\"click\":_vm.onStepClicked}},[_c('div',{staticClass:\"divStep\"},[_vm._v(\"\\n \"+_vm._s(_vm.stepNumber)+\"\\n \")]),_c('span',[_vm._v(_vm._s(_vm.$t(_vm.label)))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class Step extends Vue {\r\n @Prop()\r\n public label!: string;\r\n @Prop()\r\n public stepNumber!: number;\r\n @Prop()\r\n public selected!: boolean;\r\n @Prop()\r\n public passed!: boolean;\r\n @Prop()\r\n public jumpable!: boolean;\r\n\r\n public onStepClicked() {\r\n this.$emit('update-selected-step-number', Number(this.stepNumber));\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./Step.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./Step.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Step.vue?vue&type=template&id=09c6cb5d&scoped=true&\"\nimport script from \"./Step.ts?vue&type=script&lang=ts&\"\nexport * from \"./Step.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./Step.scss?vue&type=style&index=0&id=09c6cb5d&scoped=true&lang=scss&\"\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 \"09c6cb5d\",\n null\n \n)\n\nexport default component.exports","import { Component, Prop, Vue, Watch } from 'vue-property-decorator';\r\nimport Step from '@/components/Step/Step';\r\nimport { store, mutations } from '@/store/store';\r\n\r\n@Component({\r\n components: {\r\n Step,\r\n },\r\n})\r\nexport default class Stepper extends Vue {\r\n @Prop()\r\n public selectedStepNumber!: number;\r\n @Prop()\r\n public maxVisitedStepNumber!: number;\r\n\r\n public isSelected(step: number): boolean {\r\n return this.selectedStepNumber === step;\r\n }\r\n\r\n public isPassed(step: number): boolean {\r\n return this.selectedStepNumber > step;\r\n }\r\n\r\n public isJumpable(step: number): boolean {\r\n return this.maxVisitedStepNumber >= step;\r\n }\r\n\r\n public onUpdateSelectedStepNumber(step: number): void {\r\n this.$emit('update-current-step-number', step);\r\n }\r\n\r\n public hasCustomConsent(): boolean {\r\n return store.state.hasCustomConsent;\r\n }\r\n\r\n @Watch('maxVisitedStepNumber')\r\n protected onMaxVisitedStepNumber(value: number, oldValue: number) {\r\n if (oldValue !== value) {\r\n if (value !== undefined) {\r\n mutations.setMaxVisitedStepNumber(value);\r\n }\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./Stepper.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!./Stepper.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Stepper.vue?vue&type=template&id=11eef0d4&scoped=true&\"\nimport script from \"./Stepper.ts?vue&type=script&lang=ts&\"\nexport * from \"./Stepper.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./Stepper.scss?vue&type=style&index=0&id=11eef0d4&scoped=true&lang=scss&\"\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 \"11eef0d4\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport VueI18n from 'vue-i18n';\r\nimport { SUPPORTED_LANGUAGES } from '@/config/app.config';\r\n\r\nVue.use(VueI18n);\r\n\r\nfunction loadLocaleInfo() {\r\n const locales = require.context('../locale', false, /[A-Za-z0-9-_,\\s]+\\.json$/i);\r\n const localeMessages: VueI18n.LocaleMessages = {};\r\n\r\n locales.keys().forEach((key) => {\r\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i);\r\n if (matched && matched.length > 1) {\r\n const locale = matched[1];\r\n\r\n // ignore locale files not yet in the supported language list.\r\n if (SUPPORTED_LANGUAGES.includes(locale)) {\r\n localeMessages[locale] = locales(key);\r\n }\r\n }\r\n });\r\n\r\n return { id: locales.id, localeMessages };\r\n}\r\n\r\nconst localeInfo = loadLocaleInfo();\r\n\r\nconst options: VueI18n.I18nOptions = {\r\n messages: localeInfo.localeMessages, // set locale messages\r\n silentTranslationWarn: true, // hide console warnings of failed localization\r\n};\r\n\r\nconst i18n = new VueI18n(options);\r\n\r\nif (module.hot) {\r\n module.hot.accept(localeInfo.id, () => {\r\n const messages = loadLocaleInfo();\r\n Object.keys(messages).forEach((locale) => {\r\n i18n.setLocaleMessage(locale, messages.localeMessages[locale]);\r\n });\r\n // console.log('hot module replacemenet', arguments)\r\n });\r\n}\r\n\r\nconst loadedLanguages = [''];\r\n\r\nexport async function loadLanguageAsync(lang: string, suName: string) {\r\n // If the language hasn't been loaded yet\r\n const messages = await import(`@/locale/su/${suName}/${lang}.json`);\r\n\r\n i18n.mergeLocaleMessage(lang, messages.default);\r\n // If the language was already loaded\r\n if (loadedLanguages.includes(lang)) {\r\n return;\r\n }\r\n loadedLanguages.push(lang);\r\n return;\r\n}\r\n\r\nexport default i18n;\r\n","import { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport UserService from '@/services/user.service';\r\nimport ParticipantService from '@/services/participant.service';\r\nimport { store, mutations } from '@/store/store';\r\nimport LanguagePicker from '@/components/LanguagePicker/LanguagePicker';\r\nimport Loader from '@/components/Loader/Loader';\r\nimport MoreInfo from '@/components/MoreInfo/MoreInfo';\r\nimport Logo from '@/components/Logo/Logo';\r\nimport MobileMenu from '@/components/MobileMenu/MobileMenu';\r\nimport Stepper from '@/components/Stepper/Stepper';\r\nimport { WatchOptions } from 'vue';\r\nimport TokenService from '@/services/token.service';\r\nimport { McsisRole } from '@/models/constants/McsisRole';\r\nimport { APP_VERSION, getCorrespondenceLanguagesBySu } from '@/config/app.config';\r\nimport { loadLanguageAsync } from '@/plugins/i18n';\r\nimport LocalStoreService from '@/store/local.store';\r\nimport ModalTemplate from '@/components/ModalTemplate/ModalTemplate';\r\nimport Contact from '@/components/Contact/Contact';\r\nimport { isProLoginActivatedFromSU } from '@/config/app.config';\r\nimport { InclusionTypes } from '@/models/VariousEnum';\r\n\r\n@Component({\r\n components: {\r\n LanguagePicker,\r\n Loader,\r\n MoreInfo,\r\n Logo,\r\n MobileMenu,\r\n Stepper,\r\n ModalTemplate,\r\n Contact,\r\n },\r\n})\r\nexport default class App extends Vue {\r\n // Properties\r\n public mobileMenuOpen: boolean = false;\r\n public proLoginActivated: boolean = false;\r\n public currentStepNumber: number = 0;\r\n public maxVisitedStepNumber: number = 0;\r\n public env = process.env.NODE_ENV;\r\n public languageChoices: boolean = true;\r\n private get suName() { return this.$route.params.screening; }\r\n private showUpdateModal: boolean = false;\r\n \r\n\r\n public get navigationSteps(): string[] {\r\n if (store.state.hasCustomConsent) {\r\n return [\r\n 'inclusion',\r\n 'questionnary',\r\n 'medicalcontent',\r\n 'consent',\r\n 'recap',\r\n 'confirmation',\r\n ];\r\n } else {\r\n return [\r\n 'inclusion',\r\n 'questionnary',\r\n 'medicalcontent',\r\n 'recap',\r\n 'confirmation',\r\n ];\r\n }\r\n }\r\n\r\n public created() {\r\n this.checkAppVersion();\r\n }\r\n\r\n public mounted() {\r\n window.addEventListener('load', () => {\r\n // run after everything is in-place\r\n mutations.setIsAppLoaded(true);\r\n this.setup();\r\n\r\n // Check if Pro Login is activated for the current SU\r\n this.proLoginActivated = isProLoginActivatedFromSU(this.suName);\r\n\r\n // Remove the locale from $i18n in order to force a \"refresh\" of the texts\r\n // by setting the former locale.\r\n const oldLocale = this.$i18n.locale;\r\n this.$i18n.locale = '';\r\n this.$i18n.locale = oldLocale;\r\n });\r\n }\r\n\r\n get userName() {\r\n return this.authenticated ? LocalStoreService.getItem(LocalStoreService.localItemKeys.proUsername) : '';\r\n }\r\n get identified() { return store.state.isIdentified; }\r\n get authenticated() { return store.state.isAuthenticated; }\r\n get isDossierOpened() { return store.state.isDossierOpened; }\r\n\r\n get refreshTrys() {\r\n return parseInt(LocalStoreService.getItem(LocalStoreService.localItemKeys.appVersionTrys), 10) || 0;\r\n }\r\n set refreshTrys(value: number) {\r\n LocalStoreService.setItem(LocalStoreService.localItemKeys.appVersionTrys, value.toString());\r\n }\r\n\r\n /**\r\n * Check the app version when the App is first loaded\r\n * and force the refresh if the version is different\r\n * from the app-version.json file on the server.\r\n */\r\n public checkAppVersion(): void {\r\n fetch('/app-version.json')\r\n .then((res) => res.json())\r\n .then((data) => {\r\n mutations.setAppVersion({\r\n isLatest: data.version === APP_VERSION,\r\n lastCheckDate: new Date(),\r\n });\r\n if (!store.state.appVersion.isLatest) {\r\n if (this.refreshTrys > 1) {\r\n this.showUpdateModal = true;\r\n } else {\r\n this.refreshTrys++;\r\n window.location.reload();\r\n }\r\n } else {\r\n // Reset the values\r\n this.refreshTrys = 0;\r\n }\r\n })\r\n .catch((err) => {\r\n throw(err);\r\n });\r\n }\r\n\r\n public hideUpdateModal(): void {\r\n this.showUpdateModal = false;\r\n }\r\n\r\n /**\r\n * Setup the application on first loading\r\n */\r\n public async setup() {\r\n TokenService.setXsrfTokenInHeader();\r\n\r\n if (TokenService.tokenExists()) {\r\n const isTokenValid = await TokenService.isTokenValid()\r\n .then((res) => {\r\n return res;\r\n })\r\n .catch((err) => {\r\n return false;\r\n });\r\n if (isTokenValid) {\r\n let routePrefix = this.suName;\r\n if (!routePrefix) {\r\n // Get the route prefix from the connected participant/pro user\r\n routePrefix = await UserService.getUserRoutePrefix();\r\n }\r\n this.$isInRole(McsisRole.Participant)\r\n .then(async (isInRole: boolean) => {\r\n if (isInRole) {\r\n await ParticipantService.logout();\r\n // Force a redirect to the login page if it's not already the case\r\n // (by default the router will do it, but in case we change the behaviour\r\n // we fallback here)\r\n if (!!this.$route.name && this.$route.name !== 'login') {\r\n const inclusionType = this.$route.path.substring(this.$route.path.lastIndexOf('/') + 1);\r\n if (!(inclusionType in InclusionTypes)) {\r\n this.$router.push({\r\n name: 'login',\r\n params: {\r\n screening: routePrefix,\r\n },\r\n });\r\n }\r\n\r\n }\r\n } else {\r\n this.setAuthenticated(true).then(\r\n () => {\r\n // redirect to login participant in order to open the participant dossier\r\n if (!!this.$route.name && this.$route.name !== 'login') {\r\n this.$router.push({\r\n name: 'login',\r\n params: {\r\n screening: routePrefix,\r\n },\r\n });\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n // In case a token exists but is no longer valid we force a logout from the\r\n // frontend to be sure to clean all data\r\n const routePrefix = this.suName;\r\n this.$isInRole(McsisRole.Participant)\r\n .then(async (isInRole: boolean) => {\r\n if (isInRole) {\r\n ParticipantService.logoutFromFrontend();\r\n if (!!this.$route.name && this.$route.name !== 'login') {\r\n this.$router.push({\r\n name: 'login',\r\n params: {\r\n screening: routePrefix,\r\n },\r\n });\r\n }\r\n } else {\r\n UserService.logoutFromFrontend();\r\n if (!!this.$route.name && this.$route.name !== 'pro-login') {\r\n this.$router.push({\r\n name: 'pro-login',\r\n params: {\r\n screening: routePrefix,\r\n },\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n public openingDossier(): void {\r\n // set maVisitedStepNumber to 0 in order to avoid stepping unchecked step\r\n this.maxVisitedStepNumber = 0;\r\n }\r\n\r\n public selectStep(step: number): void {\r\n if (this.$route.params.partId !== undefined && step <= this.maxVisitedStepNumber) {\r\n this.$router.push({\r\n name: this.navigationSteps[step - 1], // step is 1-based\r\n params: {\r\n screening: this.$route.params.screening,\r\n partId: this.$route.params.partId,\r\n },\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Update the current step number (by the selected step number sent from the grand-child component)\r\n * only if it is smaller than the maximum visited step (prevent from seeing step not already seen).\r\n */\r\n public onUpdateCurrentStepNumber(step: number): void {\r\n if (step <= this.maxVisitedStepNumber) {\r\n this.currentStepNumber = step;\r\n this.selectStep(step);\r\n }\r\n }\r\n // triggered from hamburger\r\n protected toggleMenu(): void {\r\n this.mobileMenuOpen = !this.mobileMenuOpen;\r\n }\r\n // triggered from mobile menu links\r\n protected closeMobMenu(): void {\r\n this.mobileMenuOpen = false;\r\n }\r\n\r\n protected setIdentified(status: boolean): void {\r\n mutations.setIsIdentified(status);\r\n }\r\n\r\n protected async setAuthenticated(status: boolean): Promise {\r\n mutations.setIsAuthenticated(status);\r\n }\r\n\r\n protected get inclusionType(): string { return store.state.inclusionType; }\r\n // Get loading state from store\r\n protected get isLoading(): boolean { return store.state.dataLoading; }\r\n\r\n /**\r\n * Logs the participant or the user out of the app\r\n * @param routeName The route name where to be redirected after the logout\r\n */\r\n protected async logout(routeName: string|null): Promise {\r\n if (this.authenticated) {\r\n await UserService.logout();\r\n }\r\n if (this.identified) {\r\n await ParticipantService.logout();\r\n }\r\n\r\n if (this.inclusionType !== '') {\r\n if (this.inclusionType === InclusionTypes.fit) {\r\n this.$router.push({ name: 'login-fit' });\r\n } else if (this.inclusionType === InclusionTypes.colo) {\r\n this.$router.push({ name: 'login-colo'});\r\n } else if (this.inclusionType === InclusionTypes.refusal) {\r\n this.$router.push({ name: 'login-refusal'});\r\n }\r\n } else if (routeName) {\r\n this.$router.push({ name: routeName });\r\n }\r\n }\r\n\r\n protected addPopupMessageBeforeUnload(): void {\r\n if (window.onbeforeunload) {\r\n return;\r\n }\r\n\r\n window.onbeforeunload = (ev: any) => {\r\n const e = ev || window.event;\r\n const warningText = this.$i18n.t(`msgs.notSavedDataWarningMessage`).toString();\r\n\r\n // For IE and Firefox\r\n if (e) {\r\n e.returnValue = warningText;\r\n }\r\n\r\n // For Safari, Chrome\r\n return warningText;\r\n };\r\n }\r\n\r\n protected removePopupMessageBeforeUnload(): void {\r\n if (window.onbeforeunload) {\r\n window.onbeforeunload = null;\r\n }\r\n }\r\n\r\n @Watch('$route.name', { immediate: true, deep: true } as WatchOptions)\r\n protected onRouteNameChanged(to: string, from: string) {\r\n if (from !== to && to !== undefined && this.navigationSteps.indexOf(to) !== -1) {\r\n this.currentStepNumber = this.navigationSteps.indexOf(to) + 1; // currentStepNumber is 1-based\r\n if (this.$route.name === 'consent') {\r\n this.maxVisitedStepNumber = this.currentStepNumber;\r\n } else {\r\n this.maxVisitedStepNumber = Math.max(this.currentStepNumber, this.maxVisitedStepNumber);\r\n }\r\n }\r\n\r\n if (to !== undefined) {\r\n if ((this.navigationSteps.indexOf(to) !== -1 && to !== 'confirmation') || to === 'alternativeQuestionnaire') {\r\n this.addPopupMessageBeforeUnload();\r\n } else {\r\n this.removePopupMessageBeforeUnload();\r\n }\r\n }\r\n\r\n if (to === undefined) {\r\n this.removePopupMessageBeforeUnload();\r\n }\r\n }\r\n\r\n \r\n /**\r\n * Le su est récupéré depuis $route mais $route n'est pas forcément chargé avant \r\n * App.ts, c'est pour ça qu'il nous faut un watcher\r\n * @date 17.08.2023 - 11:26:21\r\n *\r\n * @protected\r\n * @param {string} suName - Nom du su récupéré via $route\r\n * @param {string} oldSuName - L'ancien su si il y a un changement d'url\r\n */\r\n @Watch('suName', { immediate: true, deep: true } as WatchOptions)\r\n protected onLocaleChanged(suName: string, oldSuName: string) {\r\n if (oldSuName !== suName && suName !== undefined) {\r\n mutations.setIsLanguagesLoaded(false);\r\n\r\n // On récupère le ou les langues disponible pour le su passé en paramètre\r\n const supportedLanguages = getCorrespondenceLanguagesBySu(this.$route.params.screening);\r\n \r\n // Gestion de l'affiche du LanguagePicker -> on ne l'affiche pas si le su a une seule langue\r\n if(supportedLanguages.length == 1){\r\n this.languageChoices = false;\r\n }\r\n\r\n // Load languages by SU\r\n supportedLanguages.forEach((lang: string) => {\r\n loadLanguageAsync(lang, suName).then(() => { mutations.setIsLanguagesLoaded(true); });\r\n });\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!./App.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!./App.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=ca6520ae&\"\nimport script from \"./App.ts?vue&type=script&lang=ts&\"\nexport * from \"./App.ts?vue&type=script&lang=ts&\"\nimport style0 from \"./App.scss?vue&type=style&index=0&lang=scss&\"\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 Vue from 'vue';\r\nimport App from './App/App.vue';\r\nimport router from './router';\r\nimport ApiService from './services/api.service';\r\nimport i18n from './plugins/i18n';\r\nimport { AuthPlugin } from './plugins/auth';\r\nimport Notifications from 'vue-notification';\r\nimport VueI18n from 'vue-i18n';\r\nimport VueTelInput from 'vue-tel-input';\r\n\r\n// tslint:disable-next-line: no-var-requires\r\nconst JsonExcel = require ('vue-json-excel').default;\r\n\r\nVue.component('downloadExcel', JsonExcel);\r\nVue.config.productionTip = false;\r\nVue.use(AuthPlugin);\r\nVue.use(Notifications);\r\nVue.use(VueI18n);\r\nVue.use(VueTelInput);\r\n\r\nnew Vue({\r\n router,\r\n i18n,\r\n render: (h) => h(App),\r\n}).$mount('#app');\r\n\r\n// Set the base URL of the API\r\nApiService.init(process.env.VUE_APP_PUBLIC_ROOT_API);\r\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./App.scss?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./App.scss?vue&type=style&index=0&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/gr.png\";","module.exports = __webpack_public_path__ + \"img/bb.png\";","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./MobileMenu.scss?vue&type=style&index=0&id=3c5cb34c&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./MobileMenu.scss?vue&type=style&index=0&id=3c5cb34c&scoped=true&lang=scss&\"","/**\r\n * Inclusion type use in case of Colonoscopy module activation\r\n */\r\nexport enum InclusionTypes {\r\n fit = 'fit',\r\n colo = 'colonoscopy',\r\n refusal = 'refusal',\r\n}\r\n\r\nexport enum ProInclusionTypes {\r\n fit = 'fit',\r\n colo = 'colo',\r\n advice = 'advice',\r\n}\r\n\r\n/**\r\n * The different template types used to download a document\r\n */\r\nexport enum TemplateTypes {\r\n /** Follow up PDF for a FIT (downloaded by a pharmacist) */\r\n FollowUpFIT = 'FollowUpFIT',\r\n /** Follow up PDF for a colo (downloaded by a doctor) */\r\n FollowUpColo = 'FollowUpColo',\r\n /** Confirmation PDF for a FIT (downloaded by a participant) */\r\n ConfirmationFIT = 'ConfirmationFIT',\r\n /** Confirmation PDF for a colo (downloaded by a participant) */\r\n ConfirmationColo = 'ConfirmationColo',\r\n /** Confirmation PDF for a non-participation (downloaded by a participant) */\r\n ConfirmationNonParticipation = 'ConfirmationNonParticipation',\r\n}\r\n\r\n/**\r\n * These are MC-SIS COD_NAME that will be sent to the queue\r\n */\r\n\r\nexport enum ConsultationTypes {\r\n short = 'INC_SHORT_CONSULTATION',\r\n long = 'INC_LONG_CONSULTATION',\r\n free = 'INC_FREE_CONSULTATION',\r\n}\r\n\r\nexport enum LongConsultationReasons {\r\n alloPhone = 'P_ALLOPHONE',\r\n underGuardianship = 'P_SOUS_TUTELLE',\r\n traumaticMedicalHistory = 'P_ANT_MED_TRAUMA',\r\n cognitiveDisorders = 'P_TROUBLES_COGNITIFS',\r\n mentalDisorders = 'P_TROUBLES_PHYSIQUE',\r\n otherReason = 'P_OTHER_REASON',\r\n}\r\n\r\nexport enum InclusionAdvice {\r\n wantColo = 'WANT_COLO',\r\n wantThink = 'WANT_THINK',\r\n}\r\n\r\n/**\r\n * List of all languages in MC-SIS\r\n */\r\nexport enum CorrespondenceLanguages {\r\n DE,\r\n EN,\r\n FR,\r\n IT,\r\n RM,\r\n CS,\r\n ES,\r\n HU,\r\n NL,\r\n NO,\r\n PL,\r\n PT,\r\n RU,\r\n SH,\r\n SI,\r\n SQ,\r\n SR,\r\n TA,\r\n TR,\r\n}\r\n\r\nexport enum PhoneNumberCountries {\r\n CH,\r\n FR,\r\n IT,\r\n DE,\r\n}\r\n","import { store, mutations } from '@/store/store';\r\nimport { PUBLIC_ROOT_API } from '@/config/app.config';\r\nimport ApiService from './api.service';\r\nimport jwt_decode from 'jwt-decode';\r\n\r\n/**\r\n * Manage how the Access Tokens are being stored and retrieved from storage.\r\n *\r\n * Current implementation stores to in memory store and cookie.\r\n */\r\nexport default class TokenService {\r\n public static readonly TOKEN_KEY = 'access_token';\r\n public static readonly REFRESH_TOKEN_KEY = 'refresh_token';\r\n public static readonly CSRF_TOKEN = 'csrf_token';\r\n public static readonly XSRF_TOKEN = 'xsrf_token';\r\n public static readonly X_XSRF_TOKEN = 'x-xsrf-token';\r\n\r\n /**\r\n * Get the JWT token from cookie or store\r\n * @returns {string} The token\r\n */\r\n public static getToken(): string {\r\n if (!store.state.token) {\r\n // Get Token from cookie\r\n const cookieToken = this.getCookieByName(this.TOKEN_KEY);\r\n if (!!cookieToken) {\r\n // Get expiration timestamp from token\r\n const decodedToken = jwt_decode(cookieToken) as any;\r\n const key = 'exp';\r\n const timestampExp = decodedToken[key] as number;\r\n\r\n mutations.setToken(cookieToken);\r\n mutations.setTokenTimestamp(timestampExp);\r\n } else {\r\n this.removeToken();\r\n }\r\n }\r\n return store.state.token;\r\n }\r\n\r\n /**\r\n * Refresh the JWT token from cookie\r\n * @returns {string} The token\r\n */\r\n public static refreshToken(): void {\r\n const cookieToken = this.getCookieByName(this.TOKEN_KEY);\r\n mutations.setToken(cookieToken);\r\n }\r\n\r\n\r\n /**\r\n * Get the XSRF token from cookie and set it as header for axios\r\n */\r\n public static setXsrfTokenInHeader(): void {\r\n const cookieToken = this.getCookieByName(this.XSRF_TOKEN);\r\n if (!!cookieToken) {\r\n ApiService.setHeader(this.X_XSRF_TOKEN, cookieToken);\r\n }\r\n }\r\n\r\n /**\r\n * Generate the XSRF token\r\n */\r\n public static async generateXsrfToken(): Promise {\r\n const requestData = {\r\n url: `${PUBLIC_ROOT_API}/Tokens/csrf`,\r\n };\r\n\r\n return await ApiService.get(requestData.url)\r\n .then((response: any) => {\r\n return true;\r\n });\r\n }\r\n\r\n /**\r\n * Check JWT token existence from the cookie\r\n * @returns {boolean} True if the JWT token exists in the cookie\r\n */\r\n public static tokenExists(): boolean {\r\n return !!this.getToken();\r\n }\r\n\r\n /**\r\n * Check JWT token validity\r\n * @returns {boolean} True if the JWT token is valid\r\n */\r\n public static async isTokenValid(): Promise {\r\n const requestData = {\r\n url: `${PUBLIC_ROOT_API}/Tokens/is-valid`,\r\n };\r\n\r\n // use another axios instance without interceptors in order to not show any error message\r\n const axiosInstance = ApiService.create();\r\n return (await axiosInstance).get(requestData.url)\r\n .then((response: any) => {\r\n return true;\r\n })\r\n .catch((error: any) => {\r\n return false;\r\n });\r\n }\r\n\r\n /**\r\n * Save the given JWT token\r\n * @param accessToken The token\r\n */\r\n public static saveToken(accessToken: string) {\r\n mutations.setToken(accessToken);\r\n }\r\n\r\n /**\r\n * Remove/delete the JWT token and reset its expiration timestamp\r\n */\r\n public static removeToken() {\r\n mutations.setToken('');\r\n mutations.setTokenTimestamp(0);\r\n }\r\n\r\n /**\r\n * Get a cookie by name (only non secure and non http cookie can be retrieved)\r\n * @param name The cookie name\r\n */\r\n private static getCookieByName(name: string): string {\r\n const value = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\r\n return value ? value[2] : '';\r\n }\r\n}\r\n","module.exports = __webpack_public_path__ + \"img/sg.png\";","/**\r\n * This is a wrapper around the localStorage API. Data are stored\r\n * in the browser and survive between page reload and browser session.\r\n * Use this class to store non-sensitive information in the frontend.\r\n */\r\nexport default class LocalStoreService {\r\n\r\n /**\r\n * @prop {object} localItemKeys Object with all the local storage keys used in this application\r\n */\r\n public static readonly localItemKeys = {\r\n /** @prop {string} proUsername The username of a Pro user */\r\n proUsername: 'username',\r\n /** @prop {string} screeningUnit The screening unit (e.g. fr, vs) of the logged in user */\r\n screeningUnit: 'su',\r\n /** @prop {string} dossierId The dossier/participant ID */\r\n dossierId: 'dossier',\r\n /** @prop {string} followUpFilename The follow-up file name */\r\n followUpFilename: 'filename',\r\n /** @prop {string} policies The list of policies */\r\n policies: 'POLICIES',\r\n /** @prop {string} inclusionType The type of inclusion */\r\n inclusionType: 'Inclusion',\r\n // followUpContent: '' // dynamic as it is the value of 'filename' item\r\n /** @prop {string} appVersionTrys The number of try to refresh the app */\r\n appVersionTrys: 'appVersionTrys',\r\n };\r\n\r\n /**\r\n * Get an item from local storage. If the item doesn't exists we return an empty string by default.\r\n * An empty string doesn't necessarily mean that the item doesn't exist : use the itemExists() for this purpose.\r\n * @param key The item key to get\r\n * @returns {string} The item at key in the local storage.\r\n */\r\n public static getItem(key: string): string {\r\n const val = localStorage.getItem(this.getKey(key));\r\n if (val === null) {\r\n return '';\r\n }\r\n return val;\r\n }\r\n\r\n /**\r\n * Set (add or update) an item in local storage\r\n * @param key The item key to set\r\n * @param value The item value to set\r\n */\r\n public static setItem(key: string, value: string): void {\r\n localStorage.setItem(this.getKey(key), value);\r\n }\r\n\r\n /**\r\n * Delete/remove an item from local storage\r\n * @param key The item key to delete/remove\r\n */\r\n public static deleteItem(key: string): void {\r\n localStorage.removeItem(this.getKey(key));\r\n }\r\n\r\n /**\r\n * Check if a key exists in the local storage\r\n * @param key The item key to check\r\n * @returns {boolean} True if an item exists in the local sotrage, false otherwise.\r\n */\r\n public static itemExists(key: string): boolean {\r\n const val = localStorage.getItem(this.getKey(key));\r\n if (val === null) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n\r\n /** The prefix used on every key the app stores in Local Storage */\r\n private static readonly prefix = 'mcsis:inclusion';\r\n\r\n /**\r\n * Get the key with prefix.\r\n * @param {string} key\r\n */\r\n private static getKey(key: string): string {\r\n return `${this.prefix}:${key}`;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./MoreInfo.scss?vue&type=style&index=0&id=8ea316b6&scoped=true&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./MoreInfo.scss?vue&type=style&index=0&id=8ea316b6&scoped=true&lang=scss&\"","var map = {\n\t\"./fr.svg\": \"7b3c\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"f99c\";"],"sourceRoot":""}