{"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/assets/logos/beso.png","webpack:///./src/store-vuex/types/root-action-types.ts","webpack:///./src/store-vuex/types/root-getter-types.ts","webpack:///./src/store-vuex/types/root-mutation-types.ts","webpack:///./src/store-vuex/types/index.ts","webpack:///./src/services/participant.service.ts","webpack:///./src/components/Contact/Contact.scss?5437","webpack:///./src/assets/icons/csm_picto_sein.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:///./node_modules/moment-timezone/node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/assets/icons/mail.svg","webpack:///./src/components/LanguagePicker/LanguagePicker.scss?c04a","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/assets/logos/vd.png","webpack:///./src/components/EmptyRouterView/EmptyRouterView.vue?ad2e","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/assets/logos sync ^\\.\\/.*\\.png$","webpack:///./src/assets/icons/logout.svg","webpack:///./src/store-vuex/index.ts","webpack:///./src/components/Contact/Contact.vue?6108","webpack:///./src/components/Contact/Contact.ts","webpack:///./src/components/Contact/Contact.ts?f880","webpack:///./src/components/Contact/Contact.vue","webpack:///./src/assets/logos/default.png","webpack:///./src/models/constants/McsisRole.ts","webpack:///./src/exceptions/api.error.ts","webpack:///./src/components/Stepper/Stepper.scss?de1f","webpack:///./src/utils/api.handler.ts","webpack:///./src/services/api.service.ts","webpack:///./src/components/Step/Step.scss?13ae","webpack:///./src/models/constants/McsisConstants.ts","webpack:///./src/assets/icons/close.svg","webpack:///./src/components/ModalTemplate/ModalTemplate.vue?4018","webpack:///./src/components/ModalTemplate/ModalTemplate.ts","webpack:///./src/components/ModalTemplate/ModalTemplate.ts?fd49","webpack:///./src/components/ModalTemplate/ModalTemplate.vue","webpack:///./src/assets/logos/tg.jpg","webpack:///./src/store/store.ts","webpack:///./src/models/VariousEnum.ts","webpack:///./src/config/app.config.ts","webpack:///./src/components/MobileMenu/MobileMenu.scss?afeb","webpack:///./src/App/App.vue?a0df","webpack:///./src/components/LanguagePicker/LanguagePicker.vue?68cc","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?4c5a","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?9250","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?950d","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?d3dc","webpack:///./src/components/MobileMenu/MobileMenu.ts","webpack:///./src/components/MobileMenu/MobileMenu.ts?e69f","webpack:///./src/components/MobileMenu/MobileMenu.vue","webpack:///./src/plugins/i18n.ts","webpack:///./src/components/Stepper/Stepper.vue?3ad1","webpack:///./src/components/Step/Step.vue?8b27","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/App/App.ts","webpack:///./src/models/constants/McsisPolicy.ts","webpack:///./src/App/App.ts?71d8","webpack:///./src/App/App.vue","webpack:///./src/services/auth.service.ts","webpack:///./src/plugins/auth.ts","webpack:///./src/main.ts","webpack:///./src/App/App.scss?3f24","webpack:///./src/components/MoreInfo/MoreInfo.scss?7065","webpack:///./src/assets/logos/bb.png","webpack:///./src/services/token.service.ts","webpack:///./src/assets/logos/sg.png","webpack:///./src/store/local.store.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","map","webpackContext","req","id","webpackContextResolve","keys","ActionTypes","setToken","setTokenTimestamp","setIsIdentified","setScreeningUnit","setDataLoading","setIsLanguagesLoaded","setIsAppLoaded","setShowErrInfoModal","setPopUpErrMessage","setMaxVisitedStepNumber","setAppVersion","setParticipant","setUseLongAppointment","setUseTRMGenderChoice","setAllowFirstAppointment","setAppointment","setIsFirstAppointment","setIsRdvLong","setReasonLongAppointment","setTrmSex","setInit","setCenterWithAvailabilities","setCenterSelected","setHasEventSelected","setIsBtnBackVisible","setAppID","setIsRdvModified","setAppMobile","setAppEmail","GetterTypes","token","tokenTimestamp","isIdentified","screeningUnit","dataLoading","isLanguagesLoaded","isAppLoaded","showErrInfoModal","popUpErrMessage","maxVisitedStepNumber","appVersion","participant","participantId","useLongAppointment","useTRMGenderChoice","allowFirstAppointment","appointment","isFirstAppointment","isRdvLong","reasonLongAppointment","centerWithAvailabilities","centerSelected","hasEventSelected","isBtnBackVisible","trmSex","appID","currentApt","hasRdv","isAuthenticated","isDossierOpened","isRdvModified","MutationTypes","SetIsBtnBackVisible","ParticipantService","partId","dateOfBirth","suRoutePrefix","requestData","method","url","post","response","identficationData","logoutFromFrontend","removeToken","removeHeader","X_XSRF_TOKEN","appointDetails","BlobConverter","fileContent","fileType","b64Data","contentType","sliceSize","byteCharacters","atob","byteArrays","offset","byteNumbers","Array","charCodeAt","byteArray","Uint8Array","blob","Blob","res","reader","FileReader","setItem","localItemKeys","followUpFilename","readAsDataURL","onloadend","base64data","replace","file","abort","readAsText","webpackAsyncContext","ids","UserService","username","password","suId","deleteItem","this","clearProData","oldPassword","newPassword","put","newAcceptanceDate","handlerSuccessEnabled","handlerErrorEnabled","catch","filename","getItem","render","_vm","_h","$createElement","_c","_self","attrs","on","setIdentified","logout","openingDossier","staticRenderFns","status","$emit","routeName","component","use","router","base","routes","path","children","redirect","meta","public","onlyWhenLoggedOut","su","redirectTo","itemExists","scrollBehavior","to","from","savedPosition","scrollTo","top","left","behavior","beforeEach","next","a","isPublic","matched","some","record","loggedIn","tokenExists","getters","suName","params","screening","isLatest","lastCheckDate","b","diff","location","reload","includes","toLocaleLowerCase","initialState","format","DefaultDateFormat","language","parameters","store","Store","state","appointmentDetails","longAppointmentReasonsId","appId","isLongAppointment","mutations","timestamp","assign","appMobile","appEmail","actions","context","commit","staticClass","domProps","_s","$t","_e","_v","McsisRole","ApiError","constructor","TOKEN_EXPIRED","NETWORK_ERROR","incrementLoader","requestConfig","isHandlerSuccessEnabled","isHandlerErrorEnabled","app","$store","timestampNow","Math","ceil","Date","now","CancelToken","cancelToken","cancel","setLoadingState","config","showNotif","errorMessage","dispatch","responseType","fileReader","JSON","parse","notify","handlerEnabled","responseConfig","text","title","duration","$notify","baseURL","service","defaults","withCredentials","interceptors","requestHandler","successHandler","errorHandler","content","headers","common","k","getToken","resource","patch","delete","instance","defaultName","paramsUrl","isArray","innerValue","contentDispositionHeader","split","trim","McsisConstants","mandatoryChoice","$event","_t","default","observable","isDirectRefusal","radF","radM","errMsg","setIsDirectRefusal","setChoiceRadM","setChoiceRadF","TemplateTypes","ConsultationTypes","LongConsultationReasons","CorrespondenceLanguages","PhoneNumberCountries","SUPPORTED_SU","CommaSeparator","SUPPORTED_LANGUAGES","PUBLIC_ROOT_API","APP_VERSION","CORRESPONDENCE_LANGUAGES_MAPPING","vd","LanguageFrCode","sg","LanguageDeCode","tg","beso","bb","getCorrespondenceLanguagesBySu","toLowerCase","languages","correspondenceLang","forEach","element","toUpperCase","FALLBACK_LANGUAGE_MAPPING","getLanguageFallBackBySu","EmptyString","PHONE_NUMBER_COUNTRIES_MAPPING","SwissCountryCode","getPhoneNumberCountriesBySu","countries","phoneNumberCountry","FIRST_APT_ALLOWED","isFirstAptAllowed","SCREENING_UNITS","2","4","5","8","11","getScreeningUnitNameFromID","Number","RADIOLOGUE_CHOICE","isRadiologueChoiceActivatedFromSU","SU_USE_RDV_LONG","ge","isRdvLongUsedFromSU","SU_EDIT_DELETE_ALLOWED","isEditDeleteAllowed","CHANGE_RDV_IN_CLOSED_PERIOD","isEditDeleteAllowedDuringClosedPeriod","SU_FORBID_EDIT_DELETE_X_DAY_BEFORE_RDV","getPeriodTimeBeforeApt","SU_USE_EQUEST_HOME","useEquestHome","class","$route","mobileMenuOpen","isLoading","directives","rawName","expression","preventDefault","env","toggleMenu","scopedSlots","_u","fn","props","item","close","navigationSteps","identified","isEdition","currentStepNumber","onUpdateCurrentStepNumber","fullYear","closeMobMenu","hideUpdateModal","slot","_l","msg","index","lang","isCurrentLanguage","changeLocale","fallBack","$i18n","locale","oldSuName","immediate","deep","shortContactInfo","headerLogoSrc","jpg","png","nativeOn","required","components","MoreInfo","LanguagePicker","loadLocaleInfo","locales","localeMessages","match","localeInfo","options","messages","silentTranslationWarn","i18n","loadedLanguages","loadLanguageAsync","mergeLocaleMessage","isSelected","isPassed","isJumpable","onUpdateSelectedStepNumber","showFirstStep","selected","passed","jumpable","onStepClicked","stepNumber","label","step","selectedStepNumber","oldValue","isParticipantFirstAppointment","showFirstAppointmentNotAllowed","Step","DefaultYearFormat","languageChoices","showUpdateModal","tz","setDefault","DefaultTimeZone","checkAppVersion","addEventListener","setup","oldLocale","fetch","json","version","refreshTrys","setXsrfTokenInHeader","isTokenValid","routePrefix","getUserRoutePrefix","$isInRole","Participant","isInRole","$router","selectStep","onbeforeunload","ev","warningText","toString","returnValue","indexOf","max","removePopupMessageBeforeUnload","supportedLanguages","parseInt","appVersionTrys","Loader","Logo","MobileMenu","ModalTemplate","Contact","Stepper","McsisPolicy","policies","POLICIES","stringify","AuthPlugin","Vue","$getAcceptanceDate","$isAuthorized","directive","ShowByPolicy","ShowByRole","HideByRole","decodedToken","TermsAcceptanceDateKey","termsAcceptanceDate","date","SwissDateFormat","policy","requiredClaims","claimCode","role","isinRole","getPolicies","size","Map","val","mcsisPolicyCode","claims","mcsisClaims","claim","mcsisClaimCode","parentClaims","mcsisParentPolicy","set","savePolicies","statusText","el","binding","style","display","remove","visible","JsonExcel","productionTip","h","$mount","init","TokenService","cookieToken","getCookieByName","TOKEN_KEY","timestampExp","XSRF_TOKEN","setHeader","axiosInstance","accessToken","cookie","REFRESH_TOKEN_KEY","CSRF_TOKEN","LocalStoreService","localStorage","getKey","removeItem","prefix","dossierId"],"mappings":"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Q,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,gBAAiB,OACjB,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,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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/\" + ({}[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-05e83c92\":1,\"chunk-32a8bc2c\":1,\"chunk-4a4301ea\":1,\"chunk-79b6e0dd\":1,\"chunk-1636b76e\":1,\"chunk-513c48a8\":1,\"chunk-5a7e4516\":1,\"chunk-573d97c2\":1,\"chunk-6f689302\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".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\"./tg.jpg\": \"ac32\"\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&\"","module.exports = __webpack_public_path__ + \"img/beso.png\";","import { RootActionType } from '../interfaces';\r\n\r\nexport const ActionTypes: RootActionType = {\r\n setToken: 'setToken',\r\n setTokenTimestamp: 'setTokenTimestamp',\r\n setIsIdentified: 'setIsIdentified',\r\n setScreeningUnit: 'setScreeningUnit',\r\n setDataLoading: 'setDataLoading',\r\n setIsLanguagesLoaded: 'setIsLanguagesLoaded',\r\n setIsAppLoaded: 'setIsAppLoaded',\r\n setShowErrInfoModal: 'setShowErrInfoModal',\r\n setPopUpErrMessage: 'setPopUpErrMessage',\r\n setMaxVisitedStepNumber: 'setMaxVisitedStepNumber',\r\n setAppVersion: 'setAppVersion',\r\n // Participant\r\n setParticipant: 'setParticipant',\r\n // Parameters\r\n setUseLongAppointment: 'setUseLongAppointment',\r\n setUseTRMGenderChoice: 'setUseTRMGenderChoice',\r\n setAllowFirstAppointment: 'setAllowFirstAppointment',\r\n // Appointment\r\n setAppointment: 'setAppointment',\r\n setIsFirstAppointment: 'setIsFirstAppointment',\r\n setIsRdvLong: 'setIsRdvLong',\r\n setReasonLongAppointment: 'setReasonLongAppointment',\r\n setTrmSex: 'setTrmSex',\r\n setInit: 'setInit',\r\n setCenterWithAvailabilities: 'setCenterWithAvailabilities',\r\n setCenterSelected: 'setCenterSelected',\r\n setHasEventSelected: 'setHasEventSelected',\r\n setIsBtnBackVisible: 'setIsBtnBackVisible',\r\n setAppID: 'setAppID',\r\n setIsRdvModified: 'setIsRdvModified',\r\n setAppMobile: 'setAppMobile',\r\n setAppEmail: 'setAppEmail',\r\n};\r\n","import { RootGetterType } from '../interfaces';\r\n\r\nexport const GetterTypes: RootGetterType = {\r\n token: 'token',\r\n tokenTimestamp: 'tokenTimestamp',\r\n isIdentified: 'isIdentified',\r\n screeningUnit: 'screeningUnit',\r\n dataLoading: 'dataLoading',\r\n isLanguagesLoaded: 'isLanguagesLoaded',\r\n isAppLoaded: 'isAppLoaded',\r\n showErrInfoModal: 'showErrInfoModal',\r\n popUpErrMessage: 'popUpErrMessage',\r\n maxVisitedStepNumber: 'maxVisitedStepNumber',\r\n appVersion: 'appVersion',\r\n // Participant\r\n participant: 'participant',\r\n participantId: 'participantId',\r\n // Parameters\r\n useLongAppointment: 'useLongAppointment',\r\n useTRMGenderChoice: 'useTRMGenderChoice',\r\n allowFirstAppointment: 'allowFirstAppointment',\r\n // Appointment\r\n appointment: 'appointment',\r\n isFirstAppointment: 'isFirstAppointment',\r\n isRdvLong: 'isRdvLong',\r\n reasonLongAppointment: 'reasonLongAppointment',\r\n centerWithAvailabilities: 'centerWithAvailabilities',\r\n centerSelected: 'centerSelected',\r\n hasEventSelected: 'hasEventSelected',\r\n isBtnBackVisible: 'isBtnBackVisible',\r\n trmSex: 'trmSex',\r\n appID: 'appID',\r\n currentApt: 'currentApt',\r\n hasRdv: 'hasRdv',\r\n isAuthenticated: 'isAuthenticated',\r\n isDossierOpened: 'isDossierOpened',\r\n isRdvModified: 'isRdvModified',\r\n};\r\n","import { RootMutationType } from '../interfaces';\r\n\r\nexport const MutationTypes: RootMutationType = {\r\n setToken: 'setToken',\r\n setTokenTimestamp: 'setTokenTimestamp',\r\n setIsIdentified: 'setIsIdentified',\r\n setScreeningUnit: 'setScreeningUnit',\r\n setDataLoading: 'setDataLoading',\r\n setIsLanguagesLoaded: 'setIsLanguagesLoaded',\r\n setIsAppLoaded: 'setIsAppLoaded',\r\n setShowErrInfoModal: 'setShowErrInfoModal',\r\n setPopUpErrMessage: 'setPopUpErrMessage',\r\n setMaxVisitedStepNumber: 'setMaxVisitedStepNumber',\r\n setAppVersion: 'setAppVersion',\r\n // Participant\r\n setParticipant: 'setParticipant',\r\n // Parameters\r\n setUseLongAppointment: 'setUseLongAppointment',\r\n setUseTRMGenderChoice: 'setUseTRMGenderChoice',\r\n setAllowFirstAppointment: 'setAllowFirstAppointment',\r\n // Appointment\r\n setAppointment: 'setAppointment',\r\n setIsFirstAppointment: 'setIsFirstAppointment',\r\n setIsRdvLong: 'setIsRdvLong',\r\n setReasonLongAppointment: 'setReasonLongAppointment',\r\n setInit: 'setInit',\r\n setCenterWithAvailabilities: 'setCenterWithAvailabilities',\r\n setCenterSelected: 'setCenterSelected',\r\n setHasEventSelected: 'setHasEventSelected',\r\n SetIsBtnBackVisible: 'SetIsBtnBackVisible',\r\n setTrmSex: 'setTrmSex',\r\n setAppID: 'setAppID',\r\n setIsRdvModified: 'setIsRdvModified',\r\n setAppMobile: 'setAppMobile',\r\n setAppEmail: 'setAppEmail',\r\n };\r\n","export * from './root-action-types';\r\nexport * from './root-getter-types';\r\nexport * from './root-mutation-types';\r\n","import ApiService from '@/services/api.service';\r\nimport TokenService from './token.service';\r\nimport { ParticipantDTO } from '@/models/ParticipantDTO';\r\nimport { IdentificationDTO } from '@/models/IdentificationDTO';\r\nimport { PUBLIC_ROOT_API } from '@/config/app.config';\r\nimport { ActionTypes, GetterTypes, MutationTypes } from '@/store-vuex/types';\r\nimport router from '@/router';\r\nimport LocalStoreService from '@/store/local.store';\r\nimport { AppointmentDetailsDTO } from '@/models/AppointmentDetailsDTO';\r\nimport { AxiosResponse } from 'axios';\r\nimport { mutations } from '@/store/store';\r\n\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: string, suRoutePrefix: string) {\r\n const requestData = {\r\n method: 'post',\r\n url: `${PUBLIC_ROOT_API}/rdv/participants/identify`,\r\n data: {\r\n partId,\r\n dateOfBirth,\r\n suRoutePrefix,\r\n },\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 /**\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}/rdv/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 * clear the store\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 }\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}/rdv/Participants/${partId}`)\r\n .then((response: any) => {\r\n return response.data as ParticipantDTO;\r\n });\r\n }\r\n\r\n /**\r\n * Check if it's the first rdv\r\n * @returns {boolean} true if it's the first rdv\r\n */\r\n public static async isFirstApt(partId: number) {\r\n return await ApiService.get(`${PUBLIC_ROOT_API}/rdv/Appointment/appointment/${partId}/first-appointment`)\r\n .then((response: AxiosResponse) => {\r\n return response.data as boolean;\r\n });\r\n }\r\n\r\n\r\n public static async postAppointDetails(appointDetails: AppointmentDetailsDTO) {\r\n await ApiService.post(`${PUBLIC_ROOT_API}/rdv/Participants/AddappointDetails`,\r\n appointDetails)\r\n // tslint:disable-next-line: no-empty\r\n .then((response: any) => { });\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!./Contact.scss?vue&type=style&index=0&id=615535e4&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=615535e4&scoped=true&lang=scss&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFJ0lEQVRIx5WWWWxUZRTH/+e72+ztlFraUkpLKyAFi0gxhK0sBqIoxrhgNBpFQtRIDMiLGsMD8CAYDShgXHkQfXCJD0aiQgSxbJHVkYal0tJtus20s9/t+DDTKW2niOe+3Hy53/md8z/nO98ljGHMDACqEYzUBPeeqDdDiTpOmQVsM5EgJofSRYRTpMlHZb/zEidNo2zL/Tl90ciFwMI9UIo8WjwQXFKxe/XTvqXVi3sPnCsZONIkkyCAGaDsNhOC2kkWh4RD/lQp9Z2w47pV9tbysSHna3ZC8jkmpJr63jB6Ys/4H57uq9r/JOyYjuC+E9DbBkBiaEsmWxARIKiLFGmP5NV2WdFUqHLX6ux30uDLn6VbQZo8LfVP6GOzL/4E2+xINfVBLfHBt6QKkldD4lIX2LDSTjPOidLZMbMbFi9g0y6X/a4/Xpu7JvZ+wwEAgACAc9N2QKssmGh0RD60+hPLmJkIBFs30P7Ob4g0NMM1ewLyV0wFySKbwZAeaRgzy6xbT5mh+LvCqfhb3jyYzqTxgc/gmlmiRY5d326F4o8zMyijIoFg9seRutKDvKXVcM8qgZ0yoV8PgZmzGQ2xCMxMsLiGDSvpnFp4dEPtY5CebZsBoyu6yuyObWHLVml0LyDVEoZ+ox95y6rhursYnLSgt4TB9pggAcY0O6ofs+NGm7T5kfWeRCC43Y7pM3IBBteSjd0wumPw1VfBVVsCEgS9OQw27FGgTEd5wWw67iw8KK215803u6Mb2bJduSCDIAYjcaEDqeYQfAsq4Z49AZJHQ+p6CHbSHAbKZAMAfjbsn6V12uK1Vji5IlO+sc5mGsSMRCCIRCAI971lcM8pg1Lshd4chhXVc0gHN4Bz0jppwSZOmlNuBRgl3bUeRI+3wHlXEbz3lUMp8iDxdxds3RzW3gBkoUrtgg2rhMH/CRgOIsTOtqLpxW8QDwThqBoHudCVngYjzDasMkGy5LltwgiQ3hKCEYyAZAGSBHLFyoblEGxa0f8LyZpIO2dGziwAgBQpKUiROm6nHrlMLnRBKfbCjuuwovrNg3MoDkVqFcKtngWB/09dMmrDO28StMoC6K39sMKJYeOWmQFCihmnheTVDpMq9d3aIY94bKjFeRj/0jyQIhA70wY7ZeXQilqFUzkpXDNLTgunevxWkjGG2hcAtIpxKN+5Ct76yUhc7ET8bDtA2bbNzjWSxS9qqfeyHP7xUlQp9n5ix/V6Wzc9I2EMhjbJj+IN88GGDeFR4Vs0Gc6a8dCbw+j7PpA+iGJEkII6hFP5Inm115J99VVQy/IO9n3315fcG1t/8xQexGiVBbjjhTrI+c7sarKpFz37z0BvHxhVCyKySBH7HFPGnUo1hyF9cOUHPB+rs9SJ+eetgWQtp6xKxnCQ0RlF9GQLog3NMIIRuGdPQPxCJyINzblkskmTvpb9ri1mKJEo37YyfWnNatyM5JWeG0qR5xXJ5zhERJluS8PspIH+Xy+j86NjGDh8FWzzMOeZmxFEZJIqfSX7XZvshBEq37YyrdxgtHO63gYpotE5veg5pcizV6jyADLTFwAIAgSR8yyACCSJLnLIW2W/81UrkgpO2vHgUHlu/rY28DpIFm2+5dUbtfL8NVKB81vhULpJCDu7wamCBIF1Cww2SRItpEqfSx71Ua3Cv5U0KVTx3kPDYpBHBlXz+8sAkLo4d/dPzpnFR5LX+u4xe2MLYdp1ejDikdwqAFikSJ1CU84It3JUzk//d5VuXJTzCPwL+ptbslle0rsAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAEnRFWHRFWElGOk9yaWVudGF0aW9uADGEWOzvAAAAAElFTkSuQmCC\"","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 public static base64ToBlob(fileContent: any, fileType: any) {\r\n throw new Error('Method not implemented.');\r\n }\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\"./beso/de.json\": [\n\t\t\"90da\",\n\t\t\"chunk-2d0e4aca\"\n\t],\n\t\"./beso/fr.json\": [\n\t\t\"90a1\",\n\t\t\"chunk-2d0e4a3d\"\n\t],\n\t\"./beso/it.json\": [\n\t\t\"d0ba\",\n\t\t\"chunk-2d21d681\"\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\"./tg/de.json\": [\n\t\t\"ac18\",\n\t\t\"chunk-2d2132bf\"\n\t],\n\t\"./tg/fr.json\": [\n\t\t\"445c\",\n\t\t\"chunk-2d0c0e44\"\n\t],\n\t\"./tg/it.json\": [\n\t\t\"af0f\",\n\t\t\"chunk-2d213e11\"\n\t],\n\t\"./vd/de.json\": [\n\t\t\"2e83\",\n\t\t\"chunk-2d0bdda4\"\n\t],\n\t\"./vd/fr.json\": [\n\t\t\"6ae7\",\n\t\t\"chunk-2d0da593\"\n\t],\n\t\"./vd/it.json\": [\n\t\t\"694a\",\n\t\t\"chunk-2d0d09a6\"\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 { UserDTO } from '@/models/UserDTO';\r\nimport { PUBLIC_ROOT_API } from '@/config/app.config';\r\nimport LocalStoreService from '@/store/local.store';\r\nimport router from '@/router';\r\nimport { ActionTypes } from '@/store-vuex/types';\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.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 LocalStoreService.deleteItem(LocalStoreService.localItemKeys.screeningUnit);\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: string): 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 public static clearProData(): void {\r\n const filename = LocalStoreService.getItem(LocalStoreService.localItemKeys.followUpFilename);\r\n\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","var map = {\n\t\"./af\": \"e0ea\",\n\t\"./af.js\": \"e0ea\",\n\t\"./ar\": \"31db\",\n\t\"./ar-dz\": \"4648\",\n\t\"./ar-dz.js\": \"4648\",\n\t\"./ar-kw\": \"1760\",\n\t\"./ar-kw.js\": \"1760\",\n\t\"./ar-ly\": \"7121\",\n\t\"./ar-ly.js\": \"7121\",\n\t\"./ar-ma\": \"be99\",\n\t\"./ar-ma.js\": \"be99\",\n\t\"./ar-sa\": \"510c\",\n\t\"./ar-sa.js\": \"510c\",\n\t\"./ar-tn\": \"c9f0\",\n\t\"./ar-tn.js\": \"c9f0\",\n\t\"./ar.js\": \"31db\",\n\t\"./az\": \"2e49\",\n\t\"./az.js\": \"2e49\",\n\t\"./be\": \"1644\",\n\t\"./be.js\": \"1644\",\n\t\"./bg\": \"f593\",\n\t\"./bg.js\": \"f593\",\n\t\"./bm\": \"e3cd\",\n\t\"./bm.js\": \"e3cd\",\n\t\"./bn\": \"14f3\",\n\t\"./bn-bd\": \"39d7\",\n\t\"./bn-bd.js\": \"39d7\",\n\t\"./bn.js\": \"14f3\",\n\t\"./bo\": \"00b4\",\n\t\"./bo.js\": \"00b4\",\n\t\"./br\": \"8965\",\n\t\"./br.js\": \"8965\",\n\t\"./bs\": \"d6b8\",\n\t\"./bs.js\": \"d6b8\",\n\t\"./ca\": \"f87b\",\n\t\"./ca.js\": \"f87b\",\n\t\"./cs\": \"1be6\",\n\t\"./cs.js\": \"1be6\",\n\t\"./cv\": \"13a5\",\n\t\"./cv.js\": \"13a5\",\n\t\"./cy\": \"a3fd\",\n\t\"./cy.js\": \"a3fd\",\n\t\"./da\": \"45a0\",\n\t\"./da.js\": \"45a0\",\n\t\"./de\": \"8b74\",\n\t\"./de-at\": \"ab78\",\n\t\"./de-at.js\": \"ab78\",\n\t\"./de-ch\": \"a74d\",\n\t\"./de-ch.js\": \"a74d\",\n\t\"./de.js\": \"8b74\",\n\t\"./dv\": \"0184\",\n\t\"./dv.js\": \"0184\",\n\t\"./el\": \"4eb7\",\n\t\"./el.js\": \"4eb7\",\n\t\"./en-au\": \"2e91\",\n\t\"./en-au.js\": \"2e91\",\n\t\"./en-ca\": \"cfbe\",\n\t\"./en-ca.js\": \"cfbe\",\n\t\"./en-gb\": \"ace8\",\n\t\"./en-gb.js\": \"ace8\",\n\t\"./en-ie\": \"dc23\",\n\t\"./en-ie.js\": \"dc23\",\n\t\"./en-il\": \"4de1\",\n\t\"./en-il.js\": \"4de1\",\n\t\"./en-in\": \"e5be\",\n\t\"./en-in.js\": \"e5be\",\n\t\"./en-nz\": \"e989\",\n\t\"./en-nz.js\": \"e989\",\n\t\"./en-sg\": \"12b4\",\n\t\"./en-sg.js\": \"12b4\",\n\t\"./eo\": \"01f4\",\n\t\"./eo.js\": \"01f4\",\n\t\"./es\": \"f257\",\n\t\"./es-do\": \"cf7c\",\n\t\"./es-do.js\": \"cf7c\",\n\t\"./es-mx\": \"1732\",\n\t\"./es-mx.js\": \"1732\",\n\t\"./es-us\": \"fd0e\",\n\t\"./es-us.js\": \"fd0e\",\n\t\"./es.js\": \"f257\",\n\t\"./et\": \"2f03\",\n\t\"./et.js\": \"2f03\",\n\t\"./eu\": \"6ca9\",\n\t\"./eu.js\": \"6ca9\",\n\t\"./fa\": \"6c8d\",\n\t\"./fa.js\": \"6c8d\",\n\t\"./fi\": \"895a\",\n\t\"./fi.js\": \"895a\",\n\t\"./fil\": \"33bc\",\n\t\"./fil.js\": \"33bc\",\n\t\"./fo\": \"3447\",\n\t\"./fo.js\": \"3447\",\n\t\"./fr\": \"7e69\",\n\t\"./fr-ca\": \"1d05\",\n\t\"./fr-ca.js\": \"1d05\",\n\t\"./fr-ch\": \"293b\",\n\t\"./fr-ch.js\": \"293b\",\n\t\"./fr.js\": \"7e69\",\n\t\"./fy\": \"0fba\",\n\t\"./fy.js\": \"0fba\",\n\t\"./ga\": \"5608\",\n\t\"./ga.js\": \"5608\",\n\t\"./gd\": \"0ba7\",\n\t\"./gd.js\": \"0ba7\",\n\t\"./gl\": \"f486\",\n\t\"./gl.js\": \"f486\",\n\t\"./gom-deva\": \"669e\",\n\t\"./gom-deva.js\": \"669e\",\n\t\"./gom-latn\": \"1890\",\n\t\"./gom-latn.js\": \"1890\",\n\t\"./gu\": \"8e55\",\n\t\"./gu.js\": \"8e55\",\n\t\"./he\": \"90a9\",\n\t\"./he.js\": \"90a9\",\n\t\"./hi\": \"fd5f\",\n\t\"./hi.js\": \"fd5f\",\n\t\"./hr\": \"7335\",\n\t\"./hr.js\": \"7335\",\n\t\"./hu\": \"db32\",\n\t\"./hu.js\": \"db32\",\n\t\"./hy-am\": \"7c45\",\n\t\"./hy-am.js\": \"7c45\",\n\t\"./id\": \"55a0\",\n\t\"./id.js\": \"55a0\",\n\t\"./is\": \"c9c0\",\n\t\"./is.js\": \"c9c0\",\n\t\"./it\": \"347e\",\n\t\"./it-ch\": \"7e47\",\n\t\"./it-ch.js\": \"7e47\",\n\t\"./it.js\": \"347e\",\n\t\"./ja\": \"5caf\",\n\t\"./ja.js\": \"5caf\",\n\t\"./jv\": \"0831\",\n\t\"./jv.js\": \"0831\",\n\t\"./ka\": \"f30e\",\n\t\"./ka.js\": \"f30e\",\n\t\"./kk\": \"1390\",\n\t\"./kk.js\": \"1390\",\n\t\"./km\": \"d0af\",\n\t\"./km.js\": \"d0af\",\n\t\"./kn\": \"9f67\",\n\t\"./kn.js\": \"9f67\",\n\t\"./ko\": \"d662\",\n\t\"./ko.js\": \"d662\",\n\t\"./ku\": \"5fd7\",\n\t\"./ku.js\": \"5fd7\",\n\t\"./ky\": \"1d53\",\n\t\"./ky.js\": \"1d53\",\n\t\"./lb\": \"c3ea\",\n\t\"./lb.js\": \"c3ea\",\n\t\"./lo\": \"3751\",\n\t\"./lo.js\": \"3751\",\n\t\"./lt\": \"9d38\",\n\t\"./lt.js\": \"9d38\",\n\t\"./lv\": \"81a6\",\n\t\"./lv.js\": \"81a6\",\n\t\"./me\": \"d0b3\",\n\t\"./me.js\": \"d0b3\",\n\t\"./mi\": \"7349\",\n\t\"./mi.js\": \"7349\",\n\t\"./mk\": \"83e0\",\n\t\"./mk.js\": \"83e0\",\n\t\"./ml\": \"1738\",\n\t\"./ml.js\": \"1738\",\n\t\"./mn\": \"b933\",\n\t\"./mn.js\": \"b933\",\n\t\"./mr\": \"f00a\",\n\t\"./mr.js\": \"f00a\",\n\t\"./ms\": \"f119\",\n\t\"./ms-my\": \"1db1\",\n\t\"./ms-my.js\": \"1db1\",\n\t\"./ms.js\": \"f119\",\n\t\"./mt\": \"e6b6\",\n\t\"./mt.js\": \"e6b6\",\n\t\"./my\": \"22cf\",\n\t\"./my.js\": \"22cf\",\n\t\"./nb\": \"ebf0\",\n\t\"./nb.js\": \"ebf0\",\n\t\"./ne\": \"46dd\",\n\t\"./ne.js\": \"46dd\",\n\t\"./nl\": \"01bc\",\n\t\"./nl-be\": \"4630e\",\n\t\"./nl-be.js\": \"4630e\",\n\t\"./nl.js\": \"01bc\",\n\t\"./nn\": \"ff3f\",\n\t\"./nn.js\": \"ff3f\",\n\t\"./oc-lnc\": \"746a\",\n\t\"./oc-lnc.js\": \"746a\",\n\t\"./pa-in\": \"1107\",\n\t\"./pa-in.js\": \"1107\",\n\t\"./pl\": \"7bba\",\n\t\"./pl.js\": \"7bba\",\n\t\"./pt\": \"650c\",\n\t\"./pt-br\": \"4b54\",\n\t\"./pt-br.js\": \"4b54\",\n\t\"./pt.js\": \"650c\",\n\t\"./ro\": \"6ef9\",\n\t\"./ro.js\": \"6ef9\",\n\t\"./ru\": \"1abc\",\n\t\"./ru.js\": \"1abc\",\n\t\"./sd\": \"0351\",\n\t\"./sd.js\": \"0351\",\n\t\"./se\": \"e7ce\",\n\t\"./se.js\": \"e7ce\",\n\t\"./si\": \"bb82\",\n\t\"./si.js\": \"bb82\",\n\t\"./sk\": \"d631\",\n\t\"./sk.js\": \"d631\",\n\t\"./sl\": \"8bc9\",\n\t\"./sl.js\": \"8bc9\",\n\t\"./sq\": \"08cf\",\n\t\"./sq.js\": \"08cf\",\n\t\"./sr\": \"c2c0\",\n\t\"./sr-cyrl\": \"135d\",\n\t\"./sr-cyrl.js\": \"135d\",\n\t\"./sr.js\": \"c2c0\",\n\t\"./ss\": \"cac6\",\n\t\"./ss.js\": \"cac6\",\n\t\"./sv\": \"1d05e\",\n\t\"./sv.js\": \"1d05e\",\n\t\"./sw\": \"224a\",\n\t\"./sw.js\": \"224a\",\n\t\"./ta\": \"0e6e\",\n\t\"./ta.js\": \"0e6e\",\n\t\"./te\": \"b175\",\n\t\"./te.js\": \"b175\",\n\t\"./tet\": \"2085\",\n\t\"./tet.js\": \"2085\",\n\t\"./tg\": \"0cc6\",\n\t\"./tg.js\": \"0cc6\",\n\t\"./th\": \"1dd3\",\n\t\"./th.js\": \"1dd3\",\n\t\"./tk\": \"665c\",\n\t\"./tk.js\": \"665c\",\n\t\"./tl-ph\": \"267e\",\n\t\"./tl-ph.js\": \"267e\",\n\t\"./tlh\": \"0867\",\n\t\"./tlh.js\": \"0867\",\n\t\"./tr\": \"fcb5\",\n\t\"./tr.js\": \"fcb5\",\n\t\"./tzl\": \"d7e6\",\n\t\"./tzl.js\": \"d7e6\",\n\t\"./tzm\": \"2c4e\",\n\t\"./tzm-latn\": \"6af6\",\n\t\"./tzm-latn.js\": \"6af6\",\n\t\"./tzm.js\": \"2c4e\",\n\t\"./ug-cn\": \"1303\",\n\t\"./ug-cn.js\": \"1303\",\n\t\"./uk\": \"efed\",\n\t\"./uk.js\": \"efed\",\n\t\"./ur\": \"e027\",\n\t\"./ur.js\": \"e027\",\n\t\"./uz\": \"8dfa\",\n\t\"./uz-latn\": \"6b2f\",\n\t\"./uz-latn.js\": \"6b2f\",\n\t\"./uz.js\": \"8dfa\",\n\t\"./vi\": \"519e\",\n\t\"./vi.js\": \"519e\",\n\t\"./x-pseudo\": \"370c\",\n\t\"./x-pseudo.js\": \"370c\",\n\t\"./yo\": \"51c8\",\n\t\"./yo.js\": \"51c8\",\n\t\"./zh-cn\": \"51ef\",\n\t\"./zh-cn.js\": \"51ef\",\n\t\"./zh-hk\": \"647c\",\n\t\"./zh-hk.js\": \"647c\",\n\t\"./zh-mo\": \"2b9d\",\n\t\"./zh-mo.js\": \"2b9d\",\n\t\"./zh-tw\": \"1ee0\",\n\t\"./zh-tw.js\": \"1ee0\"\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 = \"2174\";","module.exports = __webpack_public_path__ + \"img/mail.svg\";","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.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-SG\": \"cdab\",\n\t\"./en-SG.js\": \"cdab\",\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-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\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-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\"./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-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\"./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\"./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-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\";","module.exports = __webpack_public_path__ + \"img/vd.png\";","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:{\"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 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=76374a81&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 \"76374a81\",\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 { SUPPORTED_SU } from '@/config/app.config';\r\nimport { getScreeningUnitNameFromID } from '@/config/app.config';\r\nimport moment from 'moment';\r\nimport LocalStoreService from './store/local.store';\r\nimport { GetterTypes } from './store-vuex/types';\r\nimport store from '@/store-vuex';\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/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: ':partId/appointment-details',\r\n name: 'appointment-details',\r\n component: () => import('./views/Appointment-Details/AppointmentDetails.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/appointment-selection',\r\n name: 'appointment-selection',\r\n component: () => import('./views/AppointmentSelection/AppointmentSelection.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/recap',\r\n name: 'recap',\r\n component: () => import('./views/Recap/Recap.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: '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(async (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.getters[GetterTypes.isIdentified]);\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.getters[GetterTypes.isAppLoaded]) {\r\n if (!store.getters[GetterTypes.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.getters[GetterTypes.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) {\r\n return next({\r\n name: 'home',\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\r\n next();\r\n},\r\n\r\n);\r\n\r\nexport default router;\r\n","var map = {\n\t\"./bb.png\": \"d984\",\n\t\"./beso.png\": \"09cc\",\n\t\"./default.png\": \"744f\",\n\t\"./sg.png\": \"ecf2\",\n\t\"./vd.png\": \"4e50\"\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\";","import { AppointmentDTO } from '@/models/AppointmentDTO';\r\nimport { CenterAvailableDTO } from '@/models/CenterDTO';\r\nimport { Sex } from '@/models/constants/enums';\r\nimport { ParticipantDTO } from '@/models/ParticipantDTO';\r\nimport Vue from 'vue';\r\nimport Vuex from 'vuex';\r\nimport { ActionTypes, GetterTypes, MutationTypes } from './types';\r\nimport moment from 'moment';\r\nimport { McsisConstants } from '@/models/constants/McsisConstants';\r\n\r\nVue.use(Vuex);\r\n\r\nfunction initialState() {\r\n return {\r\n /* Authentication */\r\n token: '',\r\n tokenTimestamp: 0,\r\n isIdentified: false,\r\n isRdvModified: false,\r\n\r\n /* App */\r\n appVersion: {\r\n isLatest: false,\r\n lastCheckDate: moment().format(McsisConstants.DefaultDateFormat),\r\n },\r\n isAppLoaded: false,\r\n language: 1,\r\n dataLoading: false,\r\n\r\n /* Parameters */\r\n parameters: {\r\n useLongAppointment: null as boolean | null,\r\n useTRMGenderChoice: null as boolean | null,\r\n allowFirstAppointment: null as boolean | null,\r\n isFirstAppointment: null as boolean | null,\r\n },\r\n\r\n /* Participant */\r\n participant: {} as ParticipantDTO,\r\n isLanguagesLoaded: false,\r\n\r\n /* Appointment */\r\n appointment: {} as AppointmentDTO,\r\n\r\n /* Appointment selection */\r\n centerWithAvailabilities: [],\r\n centerSelected: {} as CenterAvailableDTO,\r\n hasEventSelected: false,\r\n\r\n /* Messages */\r\n showErrInfoModal: false,\r\n popUpErrMessage: '',\r\n maxVisitedStepNumber: 0,\r\n };\r\n}\r\n\r\nconst store = new Vuex.Store({\r\n state: initialState(),\r\n\r\n getters: {\r\n [GetterTypes.token]: (state) => state.token,\r\n [GetterTypes.tokenTimestamp]: (state) => state.tokenTimestamp,\r\n [GetterTypes.isIdentified]: (state) => state.isIdentified,\r\n [GetterTypes.appVersion]: (state) => state.appVersion,\r\n [GetterTypes.isAppLoaded]: (state) => state.isAppLoaded,\r\n\r\n [GetterTypes.dataLoading]: (state) => state.dataLoading,\r\n [GetterTypes.isLanguagesLoaded]: (state) => state.isLanguagesLoaded,\r\n [GetterTypes.showErrInfoModal]: (state) => state.showErrInfoModal,\r\n [GetterTypes.popUpErrMessage]: (state) => state.popUpErrMessage,\r\n [GetterTypes.maxVisitedStepNumber]: (state) => state.maxVisitedStepNumber,\r\n // Participant\r\n [GetterTypes.participant]: (state) => state.participant,\r\n [GetterTypes.participantId]: (state) => state.participant.partId,\r\n [GetterTypes.screeningUnit]: (state) => state.participant.suId,\r\n // Parameters\r\n [GetterTypes.useLongAppointment]: (state) => state.parameters.useLongAppointment,\r\n [GetterTypes.useTRMGenderChoice]: (state) => state.parameters.useTRMGenderChoice,\r\n [GetterTypes.allowFirstAppointment]: (state) => state.parameters.allowFirstAppointment,\r\n [GetterTypes.isFirstAppointment]: (state) => state.parameters.isFirstAppointment,\r\n // Appointment\r\n [GetterTypes.appointment]: (state) => state.appointment,\r\n\r\n // Appointment selection\r\n [GetterTypes.reasonLongAppointment]: (state) =>\r\n state.appointment.appointmentDetails ? state.appointment.appointmentDetails.longAppointmentReasonsId : [],\r\n [GetterTypes.centerWithAvailabilities]: (state) => state.centerWithAvailabilities,\r\n [GetterTypes.centerSelected]: (state) => state.centerSelected,\r\n [GetterTypes.hasEventSelected]: (state) => state.hasEventSelected,\r\n [GetterTypes.appID]: (state) => state.appointment.appId,\r\n [GetterTypes.isRdvLong]: (state) =>\r\n state.appointment.appointmentDetails ? state.appointment.appointmentDetails.isLongAppointment : false,\r\n [GetterTypes.isRdvModified]: (state) => state.isRdvModified,\r\n [GetterTypes.hasRdv]: (state) => state.appointment.appId != null,\r\n },\r\n mutations: {\r\n [MutationTypes.setToken](state, value: string) {\r\n state.token = value;\r\n },\r\n [MutationTypes.setTokenTimestamp](state, timestamp: number) {\r\n state.tokenTimestamp = timestamp;\r\n },\r\n\r\n [MutationTypes.setIsIdentified](state, value: boolean) {\r\n state.isIdentified = value;\r\n },\r\n [MutationTypes.setDataLoading](state, value: boolean) {\r\n state.dataLoading = value;\r\n },\r\n [MutationTypes.setIsLanguagesLoaded](state, value: boolean) {\r\n state.isLanguagesLoaded = value;\r\n },\r\n [MutationTypes.setIsAppLoaded](state, value: boolean) {\r\n state.isAppLoaded = value;\r\n },\r\n [MutationTypes.setShowErrInfoModal](state, value: boolean) {\r\n state.showErrInfoModal = value;\r\n },\r\n [MutationTypes.setPopUpErrMessage](state, value: string) {\r\n state.popUpErrMessage = value;\r\n },\r\n [MutationTypes.setMaxVisitedStepNumber](state, value: number) {\r\n state.maxVisitedStepNumber = value;\r\n },\r\n [MutationTypes.setAppVersion](state, value: any) {\r\n state.appVersion = value;\r\n },\r\n\r\n // Participant\r\n [MutationTypes.setParticipant](state, value: ParticipantDTO) {\r\n state.participant = value;\r\n },\r\n\r\n // Parameters\r\n [MutationTypes.setUseLongAppointment](state, value: boolean) {\r\n state.parameters.useLongAppointment = value;\r\n },\r\n [MutationTypes.setUseTRMGenderChoice](state, value: boolean) {\r\n state.parameters.useTRMGenderChoice = value;\r\n },\r\n [MutationTypes.setAllowFirstAppointment](state, value: boolean) {\r\n state.parameters.allowFirstAppointment = value;\r\n },\r\n [MutationTypes.setIsFirstAppointment](state, value: boolean) {\r\n state.parameters.isFirstAppointment = value;\r\n },\r\n\r\n // Appointment\r\n [MutationTypes.setAppointment](state, value: AppointmentDTO) {\r\n if (state.appointment.appId != null) {\r\n state.isRdvModified = true;\r\n }\r\n state.appointment = value;\r\n },\r\n [MutationTypes.setInit](state) {\r\n Object.assign(state, initialState());\r\n },\r\n [MutationTypes.setIsRdvModified](state, value: boolean) {\r\n state.isRdvModified = value;\r\n },\r\n\r\n // Appointment selection\r\n [MutationTypes.setCenterWithAvailabilities](state, value: any) {\r\n state.centerWithAvailabilities = value;\r\n },\r\n [MutationTypes.setCenterSelected](state, value: any) {\r\n state.centerSelected = value;\r\n },\r\n [MutationTypes.setHasEventSelected](state, value: any) {\r\n state.hasEventSelected = value;\r\n },\r\n [MutationTypes.setAppMobile](state, value: any) {\r\n state.appointment.appMobile = value;\r\n },\r\n [MutationTypes.setAppEmail](state, value: any) {\r\n state.appointment.appEmail = value;\r\n },\r\n },\r\n actions: {\r\n [ActionTypes.setToken](context, value) {\r\n context.commit(MutationTypes.setToken, value);\r\n },\r\n [ActionTypes.setTokenTimestamp](context, value) {\r\n context.commit(MutationTypes.setTokenTimestamp, value);\r\n },\r\n [ActionTypes.setIsIdentified](context, value) {\r\n context.commit(MutationTypes.setIsIdentified, value);\r\n },\r\n [ActionTypes.setScreeningUnit](context, value) {\r\n context.commit(MutationTypes.setScreeningUnit, value);\r\n },\r\n [ActionTypes.setIsLanguagesLoaded](context, value) {\r\n context.commit(MutationTypes.setIsLanguagesLoaded, value);\r\n },\r\n [ActionTypes.setIsAppLoaded](context, value) {\r\n context.commit(MutationTypes.setIsAppLoaded, value);\r\n },\r\n [ActionTypes.setShowErrInfoModal](context, value) {\r\n context.commit(MutationTypes.setShowErrInfoModal, value);\r\n },\r\n [ActionTypes.setPopUpErrMessage](context, value) {\r\n context.commit(MutationTypes.setPopUpErrMessage, value);\r\n },\r\n [ActionTypes.setDataLoading](context, value) {\r\n context.commit(MutationTypes.setDataLoading, value);\r\n },\r\n [ActionTypes.setMaxVisitedStepNumber](context, value) {\r\n context.commit(MutationTypes.setMaxVisitedStepNumber, value);\r\n },\r\n [ActionTypes.setTokenTimestamp](context, value) {\r\n context.commit(MutationTypes.setTokenTimestamp, value);\r\n },\r\n\r\n // Participant\r\n [ActionTypes.setParticipant](context, value) {\r\n context.commit(MutationTypes.setParticipant, value);\r\n },\r\n\r\n // Parameters\r\n [ActionTypes.setUseLongAppointment](context, value) {\r\n context.commit(MutationTypes.setUseLongAppointment, value);\r\n },\r\n [ActionTypes.setUseTRMGenderChoice](context, value) {\r\n context.commit(MutationTypes.setUseTRMGenderChoice, value);\r\n },\r\n [ActionTypes.setAllowFirstAppointment](context, value) {\r\n context.commit(MutationTypes.setAllowFirstAppointment, value);\r\n },\r\n\r\n // Appointment\r\n [ActionTypes.setAppointment](context, value) {\r\n context.commit(MutationTypes.setAppointment, value);\r\n },\r\n [ActionTypes.setIsFirstAppointment](context, value) {\r\n context.commit(MutationTypes.setIsFirstAppointment, value);\r\n },\r\n [ActionTypes.setReasonLongAppointment](context, value) {\r\n context.commit(MutationTypes.setReasonLongAppointment, value);\r\n },\r\n [ActionTypes.setInit](context) {\r\n context.commit(MutationTypes.setInit);\r\n },\r\n [ActionTypes.setIsRdvModified](context, value) {\r\n context.commit(MutationTypes.setIsRdvModified, value);\r\n },\r\n\r\n // Appointment Selection\r\n [ActionTypes.setCenterWithAvailabilities](context, value) {\r\n context.commit(MutationTypes.setCenterWithAvailabilities, value);\r\n },\r\n [ActionTypes.setCenterSelected](context, value) {\r\n context.commit(MutationTypes.setCenterSelected, value);\r\n },\r\n [ActionTypes.setHasEventSelected](context, value) {\r\n context.commit(MutationTypes.setHasEventSelected, value);\r\n },\r\n [ActionTypes.setIsBtnBackVisible](context, value) {\r\n context.commit(MutationTypes.SetIsBtnBackVisible, value);\r\n },\r\n [ActionTypes.setTrmSex](context, value) {\r\n context.commit(MutationTypes.setTrmSex, value);\r\n },\r\n [ActionTypes.setAppID](context, value) {\r\n context.commit(MutationTypes.setAppID, value);\r\n },\r\n [ActionTypes.setAppMobile](context, value) {\r\n context.commit(MutationTypes.setAppMobile, value);\r\n },\r\n [ActionTypes.setAppEmail](context, value) {\r\n context.commit(MutationTypes.setAppEmail, value);\r\n },\r\n },\r\n});\r\n\r\nexport default store;\r\n","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('comp.contact.text'))}}),(!!_vm.$t('comp.contact.text2'))?_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('comp.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('comp.contact.phone.name')))])]),_c('p',[_vm._v(_vm._s(_vm.$t('comp.contact.phone.number')))]),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('comp.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('comp.contact.email')))}},[_vm._v(_vm._s(_vm.$t('comp.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=615535e4&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=615535e4&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 \"615535e4\",\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,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\"","export enum McsisRole {\r\n Administrator,\r\n Doctor,\r\n Participant,\r\n Pharmacist,\r\n}\r\n","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 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=d1bbecd8&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=d1bbecd8&scoped=true&lang=scss&\"","import Vue from 'vue';\r\nimport TokenService from '@/services/token.service';\r\nimport BlobConverter from '@/utils/blobconverter';\r\nimport ParticipantService from '@/services/participant.service';\r\nimport Axios from 'axios';\r\nimport router from '@/router';\r\nimport UserService from '@/services/user.service';\r\nimport { ActionTypes, GetterTypes } from '@/store-vuex/types';\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 private incrementLoader: number = 0;\r\n\r\n public requestHandler(requestConfig: any) {\r\n\r\n if (this.isHandlerSuccessEnabled(requestConfig) || this.isHandlerErrorEnabled(requestConfig)) {\r\n // Check token expiration if the user is connected\r\n if (\r\n (router.app.$store.getters[GetterTypes.isIdentified]) &&\r\n router.app.$store.getters[GetterTypes.tokenTimestamp] > 0\r\n ) {\r\n const timestampNow = Math.ceil(Date.now() / 1000);\r\n if (router.app.$store.getters[GetterTypes.tokenTimestamp] <= timestampNow) {\r\n // token expired : redirect to login page\r\n if (router.app.$store.getters[GetterTypes.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 // 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 }\r\n this.incrementLoader++;\r\n if (this.incrementLoader > 0) {\r\n this.setLoadingState(true);\r\n }\r\n\r\n return requestConfig;\r\n }\r\n\r\n public async errorHandler(error: any) {\r\n\r\n\r\n if (this.isHandlerErrorEnabled(error.config)) {\r\n // Handle errors\r\n this.incrementLoader --;\r\n // set loading state to false\r\n if (this.incrementLoader <= 0) {\r\n this.setLoadingState(false);\r\n }\r\n\r\n\r\n // Handle errors\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 router.app.$store.dispatch(ActionTypes.setPopUpErrMessage, error.response.data.message);\r\n router.app.$store.dispatch(ActionTypes.setShowErrInfoModal, true);\r\n if (!TokenService.tokenExists()) {\r\n errorMessage = 'sessionExpiration';\r\n if (router.app.$store.getters[GetterTypes.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\r\n this.incrementLoader--;\r\n // set loading state to false\r\n if (this.incrementLoader <= 0) {\r\n this.setLoadingState(false);\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 // ??\r\n }\r\n this.incrementLoader--;\r\n // Handle sucesses\r\n // set loading state to false\r\n if (this. incrementLoader <= 0) {\r\n this.setLoadingState(false);\r\n }\r\n\r\n return responseConfig;\r\n }\r\n\r\n protected setLoadingState(value: boolean): void {\r\n router.app.$store.dispatch(ActionTypes.setDataLoading, 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 './token.service';\r\nimport ApiHandler from '@/utils/api.handler';\r\nimport { FileDataInterface } from '@/store/interfaces/filedata.interface';\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&\"","/**\r\n * Constants class for common parameters in the appointment application\r\n */\r\nexport enum McsisConstants {\r\n ParticipantDetailsUrl = '/Pages/Search/PageLoader.aspx?entity_type=1&entity_id=',\r\n SwissDateFormat = 'DD.MM.YYYY',\r\n DefaultDateFormat = 'YYYY-MM-DD',\r\n DefaultYearFormat = 'YYYY',\r\n DefaultTimeZone = 'Europe/Zurich',\r\n EmptyString = '',\r\n SwissCountryCode = 'ch',\r\n LanguageFrCode = 'fr',\r\n LanguageDeCode = 'de',\r\n CommaSeparator = ',',\r\n SlotTimeFormat = 'HH:mm',\r\n SubstractDaysParameter = 'days',\r\n InternationalPhoneNumberRegex = '(^[+]\\\\b41\\\\b)\\\\s([0-9]{2})\\\\s([0-9]{3})\\\\s([0-9]{2})\\\\s([0-9]{2}$)',\r\n PhoneNumberRegex = '^0[0-9]{2}\\\\s[0-9]{3}\\\\s[0-9]{2}\\\\s[0-9]{2}$',\r\n EmailRegex = '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,}$',\r\n}\r\n","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","module.exports = __webpack_public_path__ + \"img/tg.jpg\";","import { McsisConstants } from '@/models/constants/McsisConstants';\r\nimport moment from 'moment';\r\nimport 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 isIdentified: false,\r\n screeningUnit: 0,\r\n dataLoading: false,\r\n isLanguagesLoaded: false,\r\n isAppLoaded: false,\r\n isDirectRefusal: false,\r\n showErrInfoModal: false,\r\n popUpErrMessage: '',\r\n radF: true,\r\n radM: false,\r\n appVersion: {\r\n isLatest: false,\r\n lastCheckDate: moment().format(McsisConstants.DefaultDateFormat),\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 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 setIsAppLoaded(value: boolean) {\r\n store.state.isAppLoaded = value;\r\n },\r\n\r\n setIsDirectRefusal(value: boolean) {\r\n store.state.isDirectRefusal = 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 setChoiceRadM(value: boolean) {\r\n store.state.radM = value;\r\n },\r\n\r\n setChoiceRadF(value: boolean) {\r\n store.state.radF = value;\r\n },\r\n};\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 ConfirmationRdv = 'ConfirmationRdv',\r\n ConfirmationEditRdv = 'ConfirmationEditRdv',\r\n ConfirmationDeleteRdv = 'ConfirmationDeleteRdv',\r\n\r\n\r\n\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\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 {\r\n CorrespondenceLanguages,\r\n PhoneNumberCountries,\r\n} from '@/models/VariousEnum';\r\nimport { McsisConstants } from '@/models/constants/McsisConstants';\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(McsisConstants.CommaSeparator);\r\n\r\n// Configuration regarding app languages/locales\r\nexport const SUPPORTED_LANGUAGES = process.env.VUE_APP_SUPPORTED_LANGUAGES.split(McsisConstants.CommaSeparator);\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\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 vd: [McsisConstants.LanguageFrCode],\r\n sg: [McsisConstants.LanguageDeCode, McsisConstants.LanguageFrCode],\r\n tg: [McsisConstants.LanguageDeCode],\r\n beso: [McsisConstants.LanguageDeCode, McsisConstants.LanguageFrCode],\r\n bb: [McsisConstants.LanguageDeCode],\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.toLowerCase();\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(\r\n CorrespondenceLanguages[\r\n element.toUpperCase() as keyof typeof CorrespondenceLanguages\r\n ],\r\n );\r\n });\r\n\r\n return languages;\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 vd: McsisConstants.LanguageFrCode,\r\n sg: McsisConstants.LanguageDeCode,\r\n tg: McsisConstants.LanguageDeCode,\r\n beso: McsisConstants.LanguageDeCode,\r\n bb: McsisConstants.LanguageDeCode,\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 en question\r\n */\r\nexport function getLanguageFallBackBySu(su: string): string {\r\n if (!FALLBACK_LANGUAGE_MAPPING.hasOwnProperty(su)) {\r\n return McsisConstants.EmptyString;\r\n }\r\n\r\n return FALLBACK_LANGUAGE_MAPPING[su];\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 vd: [McsisConstants.SwissCountryCode],\r\n sg: [McsisConstants.SwissCountryCode],\r\n tg: [McsisConstants.SwissCountryCode],\r\n beso: [McsisConstants.SwissCountryCode],\r\n bb: [McsisConstants.SwissCountryCode],\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(\r\n PhoneNumberCountries[\r\n element.toUpperCase() as keyof typeof PhoneNumberCountries\r\n ],\r\n );\r\n });\r\n\r\n return countries;\r\n}\r\n\r\n/**\r\n * participant can use the platform ath the first rdv\r\n */\r\nconst FIRST_APT_ALLOWED: any = {\r\n vd: false,\r\n sg: true,\r\n tg: true,\r\n beso: true,\r\n bb: true,\r\n};\r\n\r\nexport function isFirstAptAllowed(suName: string) {\r\n const su: string = suName.toLowerCase();\r\n if (!FIRST_APT_ALLOWED.hasOwnProperty(su)) {\r\n return true;\r\n }\r\n return FIRST_APT_ALLOWED[su];\r\n}\r\n\r\n/**\r\n * Screening units id and name\r\n */\r\nconst SCREENING_UNITS: any = {\r\n 2: 'vd',\r\n 4: 'sg',\r\n 5: 'tg',\r\n 8: 'beso',\r\n 11: 'bb',\r\n};\r\n\r\nexport function getScreeningUnitNameFromID(suId: string) {\r\n const su: number = Number(suId) % 100;\r\n if (!SCREENING_UNITS.hasOwnProperty(su)) {\r\n return McsisConstants.EmptyString;\r\n }\r\n return SCREENING_UNITS[su];\r\n}\r\n\r\n/**\r\n * Radiologue choice\r\n */\r\nconst RADIOLOGUE_CHOICE: any = {\r\n vd: true,\r\n};\r\n\r\nexport function isRadiologueChoiceActivatedFromSU(suName: string) {\r\n const su: string = suName.toLowerCase();\r\n if (!RADIOLOGUE_CHOICE.hasOwnProperty(su)) {\r\n return false;\r\n }\r\n return RADIOLOGUE_CHOICE[su];\r\n}\r\n\r\n/**\r\n * use RDV long canton\r\n */\r\nconst SU_USE_RDV_LONG: any = {\r\n beso: true,\r\n bb: true,\r\n ge: true,\r\n sg: true,\r\n vd: true,\r\n tg: true,\r\n};\r\n\r\nexport function isRdvLongUsedFromSU(suName: string) {\r\n const su: string = suName.toLowerCase();\r\n if (!SU_USE_RDV_LONG.hasOwnProperty(su)) {\r\n return false;\r\n }\r\n return SU_USE_RDV_LONG[su];\r\n}\r\n\r\n/**\r\n * use RDV long center\r\n */\r\nconst EXAM_CENTER_USE_RDV_LONG: any = {};\r\n\r\nexport function isRdvLongUsedFromCenter(suName: string) {\r\n const su: string = suName.toLowerCase();\r\n if (!EXAM_CENTER_USE_RDV_LONG.hasOwnProperty(su)) {\r\n return false;\r\n }\r\n return EXAM_CENTER_USE_RDV_LONG[su];\r\n}\r\n\r\nconst SU_EDIT_DELETE_ALLOWED: any = {\r\n beso: true,\r\n bb: true,\r\n sg: true,\r\n vd: true,\r\n tg: true,\r\n};\r\n\r\nexport function isEditDeleteAllowed(suName: string) {\r\n const su: string = suName.toLowerCase();\r\n if (!SU_EDIT_DELETE_ALLOWED.hasOwnProperty(su)) {\r\n return false;\r\n }\r\n return SU_EDIT_DELETE_ALLOWED[su];\r\n}\r\n\r\nconst CHANGE_RDV_IN_CLOSED_PERIOD: any = {\r\n vd: true,\r\n};\r\n\r\nexport function isEditDeleteAllowedDuringClosedPeriod(suName: string) {\r\n const su: string = suName.toLowerCase();\r\n if (!CHANGE_RDV_IN_CLOSED_PERIOD.hasOwnProperty(su)) {\r\n return false;\r\n }\r\n return CHANGE_RDV_IN_CLOSED_PERIOD[su];\r\n}\r\n\r\nconst CHANGE_RDV_CLOSED_PERIOD_IN_DAYS: any = {\r\n vd: 13,\r\n};\r\n\r\nexport function getPeriodTimeAfterAptDuringClosedPeriod(suName: string) {\r\n const su: string = suName.toLowerCase();\r\n if (!CHANGE_RDV_CLOSED_PERIOD_IN_DAYS.hasOwnProperty(su)) {\r\n return 14;\r\n }\r\n return CHANGE_RDV_CLOSED_PERIOD_IN_DAYS[su];\r\n}\r\n\r\nconst SU_FORBID_EDIT_DELETE_X_DAY_BEFORE_RDV: any = {\r\n beso: 1,\r\n bb: 3,\r\n sg: 1,\r\n vd: 3,\r\n tg: 3,\r\n};\r\n\r\nexport function getPeriodTimeBeforeApt(suName: string) {\r\n const su: string = suName.toLowerCase();\r\n if (!SU_FORBID_EDIT_DELETE_X_DAY_BEFORE_RDV.hasOwnProperty(su)) {\r\n return 0;\r\n }\r\n return SU_FORBID_EDIT_DELETE_X_DAY_BEFORE_RDV[su];\r\n}\r\n\r\nconst SU_USE_EQUEST_HOME: any = {\r\n beso: false,\r\n bb: false,\r\n sg: false,\r\n vd: false,\r\n tg: true,\r\n};\r\n\r\nexport function useEquestHome(suName: string) {\r\n const su: string = suName.toLowerCase();\r\n if (!SU_USE_EQUEST_HOME.hasOwnProperty(su)) {\r\n return false;\r\n }\r\n return SU_USE_EQUEST_HOME[su];\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!./MobileMenu.scss?vue&type=style&index=0&id=a92f2318&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=a92f2318&scoped=true&lang=scss&\"","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.identified))?_c('router-link',{attrs:{\"to\":{ name: 'login' }}},[_vm._v(\"Login\")]):_vm._e(),(_vm.identified)?_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.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.identified && !_vm.isEdition)?_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:{\"identified\":_vm.setIdentified,\"logout\":_vm.logout,\"openingDossier\":_vm.openingDossier}}),_c('Loader'),_c('footer',[_c('span',[_vm._v(\"\\n © \"+_vm._s(_vm.fullYear)+\" Swiss Cancer Screening - Created by\\n \"),_c('a',{attrs:{\"href\":\"https://cdi.ch\",\"target\":\"_blank\"}},[_vm._v(\"CDI\")])])]),_c('MobileMenu',{attrs:{\"identified\":_vm.identified,\"env\":_vm.env},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 { getCorrespondenceLanguagesBySu, getLanguageFallBackBySu } from '@/config/app.config';\r\nimport { WatchOptions } from 'vue';\r\nimport { Component, Vue, Watch } from 'vue-property-decorator';\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 { GetterTypes } from '@/store-vuex/types';\r\nimport { Component, Vue } from 'vue-property-decorator';\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 this.$store.getters[GetterTypes.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/csm_picto_sein.png\")}}),_c('a',{attrs:{\"href\":_vm.$t('comp.moreInfo.faqUrl'),\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t('comp.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 { GetterTypes } from '@/store-vuex/types';\r\n\r\n@Component\r\nexport default class MoreInfo extends Vue {\r\n protected shortContactInfo: LocaleMessage = '';\r\n get isLanguagesLoaded() { return this.$store.getters[GetterTypes.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('comp.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('comp.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=622f56be&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=622f56be&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 \"622f56be\",\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 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 const svg = [];\r\n const jpg = ['tg'];\r\n const png = ['beso', 'bb', 'sg', 'vd'];\r\n\r\n /**\r\n * On emploie le format png transparent\r\n */\r\n if (png.includes(suName)) {\r\n return require(`@/assets/logos/${suName}.png`);\r\n // Si l'image n'a aucun format alors on prend celle par d�faut\r\n } else if (jpg.includes(suName)) {\r\n return require(`@/assets/logos/${suName}.jpg`);\r\n } else {\r\n // Load a default logo (same for all SU)\r\n // eslint-disable-next-line quotes\r\n return require(`@/assets/logos/default.png`);\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.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.identified)?_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.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 identified!: boolean;\r\n @Prop({ required: true, default: null })\r\n public env!: string|null;\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=a92f2318&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=a92f2318&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 \"a92f2318\",\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 });\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\n\r\nexport default i18n;\r\n","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)}),(_vm.showFirstStep)?_c('Step',{attrs:{\"stepNumber\":\"1\",\"label\":_vm.$t('appointmentDetails.pageTitle'),\"selected\":_vm.isSelected(1),\"passed\":_vm.isPassed(1),\"jumpable\":_vm.isJumpable(1)},on:{\"update-selected-step-number\":_vm.onUpdateSelectedStepNumber}}):_vm._e(),_c('Step',{attrs:{\"stepNumber\":_vm.showFirstStep ? '2' : '1',\"label\":_vm.$t('page.appointmentSelection.pageTitle'),\"selected\":_vm.showFirstStep ? _vm.isSelected(2): _vm.isSelected(1),\"passed\":_vm.showFirstStep ? _vm.isPassed(2) : _vm.isPassed(1),\"jumpable\":_vm.showFirstStep ? _vm.isJumpable(2) : _vm.isJumpable(1)},on:{\"update-selected-step-number\":_vm.onUpdateSelectedStepNumber}}),_c('Step',{attrs:{\"stepNumber\":_vm.showFirstStep ? '3' : '2',\"label\":_vm.$t('page.recap.pageTitle'),\"selected\":_vm.showFirstStep ? _vm.isSelected(3) : _vm.isSelected(2),\"passed\":_vm.showFirstStep ? _vm.isPassed(3) : _vm.isPassed(2),\"jumpable\":_vm.showFirstStep ? _vm.isJumpable(3) : _vm.isJumpable(2)},on:{\"update-selected-step-number\":_vm.onUpdateSelectedStepNumber}})],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 { ActionTypes, GetterTypes } from '@/store-vuex/types';\r\nimport { isFirstAptAllowed, isRadiologueChoiceActivatedFromSU, isRdvLongUsedFromSU } from '@/config/app.config';\r\nimport ParticipantService from '@/services/participant.service';\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 get useTRMGenderChoice(): boolean {\r\n return this.$store.getters[GetterTypes.useTRMGenderChoice];\r\n }\r\n\r\n public get useLongAppointment(): boolean {\r\n return this.$store.getters[GetterTypes.useLongAppointment];\r\n }\r\n\r\n public get allowFirstAppointment(): boolean {\r\n return this.$store.getters[GetterTypes.allowFirstAppointment];\r\n }\r\n\r\n public get isParticipantFirstAppointment(): boolean {\r\n return this.$store.getters[GetterTypes.isFirstAppointment];\r\n }\r\n\r\n public get showFirstAppointmentNotAllowed(): boolean {\r\n return !this.allowFirstAppointment && this.isParticipantFirstAppointment;\r\n }\r\n\r\n public get showFirstStep(): boolean {\r\n return this.useTRMGenderChoice || this.useLongAppointment || this.showFirstAppointmentNotAllowed;\r\n }\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 @Watch('maxVisitedStepNumber')\r\n protected onMaxVisitedStepNumber(value: number, oldValue: number) {\r\n if (oldValue !== value) {\r\n if (value !== undefined) {\r\n this.$store.dispatch(ActionTypes.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=d1bbecd8&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=d1bbecd8&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 \"d1bbecd8\",\n null\n \n)\n\nexport default component.exports","import { Component, Vue, Watch } from 'vue-property-decorator';\r\nimport UserService from '@/services/user.service';\r\nimport ParticipantService from '@/services/participant.service';\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 { WatchOptions } from 'vue';\r\nimport TokenService from '@/services/token.service';\r\nimport { McsisRole } from '@/models/constants/McsisRole';\r\nimport { SUPPORTED_LANGUAGES, APP_VERSION, getCorrespondenceLanguagesBySu } from '@/config/app.config';\r\nimport { loadLanguageAsync } from '@/plugins/i18n';\r\nimport ModalTemplate from '@/components/ModalTemplate/ModalTemplate';\r\nimport Contact from '@/components/Contact/Contact';\r\nimport Stepper from '@/components/Stepper/Stepper';\r\nimport LocalStoreService from '@/store/local.store';\r\nimport { ActionTypes, GetterTypes, MutationTypes } from '@/store-vuex/types';\r\nimport moment from 'moment-timezone';\r\nimport { McsisConstants } from '@/models/constants/McsisConstants';\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 ModalTemplate,\r\n Contact,\r\n Stepper,\r\n },\r\n})\r\nexport default class App extends Vue {\r\n // Properties\r\n public fullYear = moment().format(McsisConstants.DefaultYearFormat);\r\n public mobileMenuOpen: 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 public get navigationSteps(): string[] {\r\n // NOM de pages PROVISOIRES\r\n return [\r\n 'appointment-details',\r\n 'appointment-selection',\r\n 'recap',\r\n ];\r\n }\r\n\r\n /**\r\n * Function called when the component is initialized\r\n */\r\n public created() {\r\n // Init the application default timezone for the entire appointment web site\r\n moment.tz.setDefault(McsisConstants.DefaultTimeZone);\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 this.$store.commit(MutationTypes.setIsAppLoaded, true);\r\n this.setup();\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 isEdition(): boolean {\r\n return this.$store.getters[GetterTypes.hasRdv];\r\n }\r\n\r\n get identified(): boolean { return this.$store.getters[GetterTypes.isIdentified]; }\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 this.$store.commit(MutationTypes.setAppVersion, {\r\n isLatest: data.version === APP_VERSION,\r\n lastCheckDate: moment().format(McsisConstants.DefaultDateFormat),\r\n });\r\n if (!this.$store.getters[GetterTypes.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 }\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 }\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\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 this.$store.dispatch(ActionTypes.setIsIdentified, status);\r\n }\r\n // Get loading state from store\r\n protected get isLoading(): boolean { return this.$store.getters[GetterTypes.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 * $router.go(0): reload page to reset store states\r\n */\r\n protected async logout(routeName: string|null): Promise {\r\n if (this.identified) {\r\n await ParticipantService.logout().then( () => {\r\n this.$store.dispatch(ActionTypes.setInit);\r\n this.checkAppVersion();\r\n } );\r\n }\r\n\r\n 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\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 this.maxVisitedStepNumber = Math.max(this.currentStepNumber, this.maxVisitedStepNumber);\r\n }\r\n\r\n if (to !== undefined) {\r\n this.removePopupMessageBeforeUnload();\r\n }\r\n\r\n if (to === undefined) {\r\n this.removePopupMessageBeforeUnload();\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 this.$store.dispatch(ActionTypes.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(() => { this.$store.dispatch(ActionTypes.setIsLanguagesLoaded, true); });\r\n });\r\n }\r\n }\r\n}\r\n","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 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=a2695e58&\"\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 { 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 { McsisConstants } from '@/models/constants/McsisConstants';\r\nimport _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\nimport moment from 'moment';\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 = (): string|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 = moment(termsAcceptanceDate).format(McsisConstants.SwissDateFormat);\r\n\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","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\nimport store from './store-vuex';\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 store,\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&\"","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=622f56be&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=622f56be&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/bb.png\";","import { PUBLIC_ROOT_API } from '@/config/app.config';\r\nimport ApiService from './api.service';\r\nimport jwt_decode from 'jwt-decode';\r\nimport router from '@/router';\r\nimport { GetterTypes, MutationTypes } from '@/store-vuex/types';\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 (!router.app.$store.getters[GetterTypes.token]) {\r\n // Get Token from cookie\r\n\r\n const cookieToken = this.getCookieByName(this.TOKEN_KEY);\r\n if (!!cookieToken) {\r\n // Get expiration timestamp from token\r\n\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 router.app.$store.commit(MutationTypes.setToken, cookieToken);\r\n router.app.$store.commit(MutationTypes.setTokenTimestamp, timestampExp);\r\n } else {\r\n this.removeToken();\r\n }\r\n }\r\n return router.app.$store.getters[GetterTypes.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 router.app.$store.commit(MutationTypes.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 router.app.$store.commit(MutationTypes.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 router.app.$store.commit(MutationTypes.setToken, '');\r\n router.app.$store.commit(MutationTypes.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} 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 // 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:rdv';\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"],"sourceRoot":""}