{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/Lunds_university_white.svg","webpack:///./src/enums/LinkType.ts","webpack:///./src/store/getters.ts","webpack:///./src/store/mutations.ts","webpack:///./src/store/state.ts","webpack:///./src/store/index.ts","webpack:///./src/locales/en.json","webpack:///./src/locales/sv.json","webpack:///./src/utilities/i18n.ts","webpack:///./src/components/Lu/LuFooter.vue?e4bf","webpack:///./src/components/Tooltip.vue","webpack:///./src/components/Tooltip.vue?9c22","webpack:///./src/assets/Lunds_universitet_white.svg","webpack:///./src/components/Lu/LuMain.vue?9061","webpack:///./src/components/Lu/LuTopMenuItem.vue?f22c","webpack:///./src/components/Tooltip.vue?2a09","webpack:///./src/components/Backdrop.vue?3503","webpack:///./src/services/authentication-service.ts","webpack:///./src/helpers/json-helper.ts","webpack:///./src/assets/Lunds_universitet.svg","webpack:///./src/components/Lu/LuLeftMenu.vue?60f6","webpack:///./src/components/Lu/LuLeftMenu.vue","webpack:///./src/components/Lu/LuLeftMenu.vue?20e7","webpack:///./src/components/Backdrop.vue?4915","webpack:///./src/components/Backdrop.vue?8bbb","webpack:///./src/components/Backdrop.vue?abbf","webpack:///./src/assets sync ^\\.\\/Lunds_.*\\.svg$","webpack:///./src/components/Modal.vue?d974","webpack:///./src/components/Modal.vue","webpack:///./src/components/Modal.vue?d946","webpack:///./src/components/Form/Search.vue?8f21","webpack:///./src/components/Form/Search.vue","webpack:///./src/components/Form/Search.vue?f990","webpack:///./src/App.vue?cc4e","webpack:///./src/components/Lu/LuHeaderAuthButtons.vue?df73","webpack:///./src/components/Badge.vue?50be","webpack:///./src/components/Badge.vue","webpack:///./src/components/Badge.vue?9889","webpack:///./src/components/Lu/LuSpinner.vue?9bc3","webpack:///./src/components/Lu/LuLeftMenuItem.vue?57c4","webpack:///./src/components/Lu/LuLeftMenuItem.vue","webpack:///./src/components/Lu/LuLeftMenuItem.vue?df80","webpack:///./src/router/index.ts","webpack:///./src/components/Lu/LuSpinner.vue?2c70","webpack:///./src/components/Lu/LuSpinner.vue?7ea9","webpack:///./src/components/Lu/LuHeader.vue?ff8a","webpack:///./src/components/Lu/LuNavMobileItem.vue?2154","webpack:///./src/constants/constants.ts","webpack:///./src/services/sessionstorage-service.ts","webpack:///./src/App.vue?a58b","webpack:///./src/components/Lu/LuHeader.vue?e9b2","webpack:///./src/components/Lu/LuHeaderAuthButtons.vue?4adf","webpack:///./src/components/Lu/LuHeaderAuthButtons.vue?ee0e","webpack:///./src/components/Lu/LuNavbar.vue?8e4e","webpack:///./src/components/Lu/LuNavbarItem.vue?6031","webpack:///./src/components/Lu/LuDropdownItem.vue?c417","webpack:///./src/components/Lu/LuDropdownItem.vue","webpack:///./src/components/Lu/LuDropdownItem.vue?1ec4","webpack:///./src/components/Lu/LuNavbarItem.vue","webpack:///./src/components/Lu/LuNavbarItem.vue?1d9d","webpack:///./src/components/Lu/LuNavbar.vue","webpack:///./src/components/Lu/LuNavbar.vue?08c9","webpack:///./src/components/Lu/LuTopMenu.vue?6e4f","webpack:///./src/components/Lu/LuTopMenuItem.vue?b48c","webpack:///./src/components/Lu/LuTopMenuItem.vue?4399","webpack:///./src/components/Lu/LuTopMenuItem.vue?84b4","webpack:///./src/components/Lu/LuTopMenu.vue","webpack:///./src/components/Lu/LuTopMenu.vue?a18a","webpack:///./src/components/Lu/LuNavMobile.vue?5502","webpack:///./src/components/Lu/LuNavMobileItem.vue?3ad4","webpack:///./src/components/Lu/LuNavMobileItem.vue?b1be","webpack:///./src/components/Lu/LuNavMobileItem.vue?3054","webpack:///./src/components/Lu/LuNavMobileItemChangeLanguage.vue?d867","webpack:///./src/components/Lu/LuNavMobileItemChangeLanguage.vue?ccbb","webpack:///./src/components/Lu/LuNavMobileItemChangeLanguage.vue?30d9","webpack:///./src/components/Lu/LuNavMobile.vue","webpack:///./src/components/Lu/LuNavMobile.vue?a69a","webpack:///./src/components/Lu/LuHeader.vue?6a82","webpack:///./src/components/Lu/LuHeader.vue?4807","webpack:///./src/components/BreadCrumbs.vue","webpack:///./src/components/BreadCrumbs.vue?22f2","webpack:///./src/components/Lu/LuMain.vue?5614","webpack:///./src/components/Lu/LuMain.vue?4680","webpack:///./src/components/Lu/LuMain.vue?d413","webpack:///./src/components/Lu/LuFooter.vue?4632","webpack:///./src/components/Lu/LuFooter.vue?9b5a","webpack:///./src/components/Lu/LuFooter.vue?e8b2","webpack:///./src/App.vue","webpack:///./src/App.vue?8ecf","webpack:///./src/utilities/fontawesome.ts","webpack:///./src/main.ts","webpack:///./src/assets/Lunds_university.svg","webpack:///./src/components/Lu/LuNavMobileItemChangeLanguage.vue?9377","webpack:///./src/services/localstorage-service.ts"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","LinkType","getCurrentUser","state","currentUser","getMenu","isLoggedIn","menu","id","label","checkEntitlement","children","getTuitionFeesFooterContent","luWebsite","columnNumber","title","links","linkType","External","linkLabel","url","Email","leadingText","getStudentPortalFooterContent","getStudentPortalSocialSecurityNumberFooterContent","setBadge","payload","menuBadges","badge","setCurrentUser","user","showSpinner","show","isSubmitted","mutations","getters","ctx","normalize","_normalize","interpolate","_interpolate","named","_named","messages","en","sv","legacy","globalInjection","locale","navigator","language","split","VUE_APP_I18N_LOCALE","fallbackLocale","VUE_APP_I18N_FALLBACK_LOCALE","class","style","bgColor","color","text","props","String","required","default","__exports__","render","AuthenticationService","baseApiUrl","localStorageJWTKey","token","decode","entitlements","Entitlement","firstName","FirstName","lastName","LastName","personalId","PersonalId","email","luEduPersonPrimaryId","LuEduPersonPrimaryId","this","hasEntitlements","popupParams","popup","open","tokenCallback","close","removeEventListener","setItem","populateStore","addEventListener","exp","Date","now","getItem","verifyTokenExpiry","getJWTToken","commit","getUserFromToken","validateEntitlements","userEntitlements","includes","entitlement1Valid","entitlement2Valid","deleteItem","EntryUrl","IsMirroringUser","MirroredUser","MirrorUserSearchTerm","location","JsonHelper","parsed","JSON","parse","_hoisted_1","_hoisted_2","_ctx","_cache","$props","$setup","$data","$options","_component_LuLeftMenuItem","item","components","LuLeftMenuItem","Array","role","onClick","ref","$slots","methods","$refs","backdrop","$emit","map","webpackContext","req","webpackContextResolve","keys","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_component_font_awesome_icon","_component_Backdrop","onClickBackdrop","shown","$t","icon","_","Backdrop","allowCloseOutside","Boolean","onSubmit","$event","onInput","placeholder","ariaLabel","setFocus","searchInput","focus","searchPhrase","elementType","level","c_level","rounded","backgroundColor","computed","_component_router_link","path","to","expanded","toggleExpanded","subItem","onLinkSelected","setExpanded","watch","$route","global","routes","component","meta","titleKey","breadcrumbs","footerContent","beforeEnter","from","allowAnonymous","route","offerId","Number","parseInt","params","toString","alias","router","history","beforeEach","next","authenticate","query","redirect","entitlementGuard","size","setup","__props","PageContentIds","EmployeeStart","StudentStart","Claims","Constants","DateFormat","DateTimeFormat","NoteTakingFunctionId","Language","SearchSubmissionDelayMilliseconds","CourseTitleTruncationLength","StudentHomePageTypeId","EmployeeHomePageTypeId","NoteSupportFilesRelativeUrl","NoteSupportTermsAndConditionsPdfSv","NoteSupportTermsAndConditionsPdfEn","NotAvailable","MinDateValue","FilteredNoteTakerIds","FilteredStudentIds","SortedCourseOccurrenceIds","NoteTakerTableUserPagingData","StudentTableUserPagingData","CourseOccurrenceTableUserPagingData","NoteTakerSupportCourseTableUserPagingData","StudentSupportCourseTableUserPagingData","SessionStorageKeys","PaymentResponse","Coordinators","SessionStorageService","sessionStorage","stringify","storageData","isValidJSON","removeItem","_component_LuSpinner","_component_LuHeader","_component_BreadCrumbs","_component_router_view","_component_LuMain","_component_LuFooter","navbarmenu","topmenu","mobilemenu","$root","$i18n","showMobileMenu","showLogin","compact","showFooter","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_component_LuNavbar","_component_LuHeaderAuthButtons","_component_Search","_component_Badge","_component_LuTopMenu","_component_LuNavMobile","logoUrl","logoTitle","logoSrc","alt","hasSearch","toggleSearch","showNavMobile","searchValue","search","searchPlaceholder","switchLocale","hasListen","listen","environment","searchCollapsed","store","isAdmin","login","logout","$store","_component_LuNavbarItem","_component_fa_icon","_component_LuDropdownItem","active","LuDropdownItem","LuNavbarItem","_component_LuTopMenuItem","menuItem","index","tabindex","lastItem","subMenuItem","ref_for","Badge","noteTakerStatusCount","childActive","child","LuTopMenuItem","_component_LuNavMobileItem","_component_LuNavMobileItemChangeLanguage","_component_Modal","header","childSelected","lang","Modal","LuNavMobileItem","LuNavMobileItemChangeLanguage","LuHeaderAuthButtons","modal","LuNavbar","LuTopMenu","LuNavMobile","Search","emptySearch","currentLanguage","mounted","baScript","async","setLanguage","newLang","newLocale","navMobile","$nextTick","mobileSearchInput","trim","aria-label","aria-current","breadcrumb","currentPage","isEmployeeOrTuitionAdmin","generateBreadcrumbs","metaData","forEach","_component_LuLeftMenu","leftmenu","pageManagerMail","lastUpdated","pageManagerNotice","onfocus","scrollToTop","toTopText","LuLeftMenu","Tooltip","handleScroll","toTopButton","getElementById","distanceFromTop","documentElement","scrollTop","body","display","logoAlt","column","translate","link","innerHTML","trailingText","i18n","localeKey","test","LuHeader","LuMain","LuFooter","BreadCrumbs","LuSpinner","headerTitle","isAdminPath","isMaintenancePath","setPageTitle","activeElement","blur","appName","pageTitle","fullPath","startsWith","keyExists","add","use","mount","LocalStorageService","localStorage"],"mappings":"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","file":"assets/js/index.ebd5bf10.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\"index\": 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\"index\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"assets/js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-008cd4fd\":\"09007174\",\"chunk-2d0be6da\":\"8725a134\",\"chunk-494985e4\":\"d90c5972\",\"chunk-0473dc8a\":\"e2f50491\",\"chunk-1fa2084f\":\"6c21aad3\",\"chunk-32e67a42\":\"754ea114\",\"chunk-41001619\":\"3c5fe08e\",\"chunk-4dc56584\":\"486c04d4\",\"chunk-41a5ca73\":\"594e6ab4\",\"chunk-1002ec47\":\"48307c16\",\"chunk-16bf8a7c\":\"b01c1e7f\",\"chunk-31436b70\":\"40c3a7a2\",\"chunk-1ed77747\":\"8491bc33\",\"chunk-57f2c62c\":\"a512bd59\",\"chunk-16fec704\":\"15e8480e\",\"chunk-2f21e672\":\"0b4c8aed\",\"chunk-531d7557\":\"d2458626\",\"chunk-cacb5baa\":\"8a3808b1\",\"chunk-488d0b9f\":\"26112f56\",\"chunk-a0532434\":\"33f9d8dc\",\"chunk-342f82b6\":\"425f02f3\",\"chunk-671f7733\":\"a03e33ee\",\"chunk-c2359c3c\":\"e73e3fc0\",\"chunk-71605c10\":\"518d6a40\",\"chunk-7cbb86bf\":\"314ceccc\",\"chunk-ddf136e4\":\"86cb72d7\",\"chunk-58823350\":\"9b7be856\",\"chunk-66ffce92\":\"84d633f9\",\"chunk-84808c80\":\"5482b245\"}[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-008cd4fd\":1,\"chunk-0473dc8a\":1,\"chunk-1fa2084f\":1,\"chunk-32e67a42\":1,\"chunk-41001619\":1,\"chunk-4dc56584\":1,\"chunk-41a5ca73\":1,\"chunk-1002ec47\":1,\"chunk-16bf8a7c\":1,\"chunk-31436b70\":1,\"chunk-1ed77747\":1,\"chunk-57f2c62c\":1,\"chunk-16fec704\":1,\"chunk-2f21e672\":1,\"chunk-531d7557\":1,\"chunk-cacb5baa\":1,\"chunk-488d0b9f\":1,\"chunk-a0532434\":1,\"chunk-342f82b6\":1,\"chunk-671f7733\":1,\"chunk-c2359c3c\":1,\"chunk-71605c10\":1,\"chunk-7cbb86bf\":1,\"chunk-ddf136e4\":1,\"chunk-58823350\":1,\"chunk-66ffce92\":1,\"chunk-84808c80\":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 = \"assets/css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-008cd4fd\":\"5dbbc437\",\"chunk-2d0be6da\":\"31d6cfe0\",\"chunk-494985e4\":\"31d6cfe0\",\"chunk-0473dc8a\":\"ac2f0501\",\"chunk-1fa2084f\":\"29ea205f\",\"chunk-32e67a42\":\"ac2f0501\",\"chunk-41001619\":\"dd150b6c\",\"chunk-4dc56584\":\"f19822b0\",\"chunk-41a5ca73\":\"040d619b\",\"chunk-1002ec47\":\"af75bda8\",\"chunk-16bf8a7c\":\"906b43ad\",\"chunk-31436b70\":\"e8fc30bf\",\"chunk-1ed77747\":\"0b8daa64\",\"chunk-57f2c62c\":\"dfc071ff\",\"chunk-16fec704\":\"b9e513ef\",\"chunk-2f21e672\":\"ff092c90\",\"chunk-531d7557\":\"64a77cdf\",\"chunk-cacb5baa\":\"b44c6993\",\"chunk-488d0b9f\":\"0d5375a2\",\"chunk-a0532434\":\"3a93a226\",\"chunk-342f82b6\":\"942fd9bc\",\"chunk-671f7733\":\"9d4f2855\",\"chunk-c2359c3c\":\"3a93a226\",\"chunk-71605c10\":\"a0f9cf68\",\"chunk-7cbb86bf\":\"deb3ea8f\",\"chunk-ddf136e4\":\"b6eba442\",\"chunk-58823350\":\"4d0d8144\",\"chunk-66ffce92\":\"2bfc081a\",\"chunk-84808c80\":\"46d13314\"}[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","module.exports = __webpack_public_path__ + \"assets/img/Lunds_university_white.c5e69121.svg\";","export enum LinkType {\r\n External = \"external\",\r\n Internal = \"internal\",\r\n Email = \"email\",\r\n}\r\n","import type { IMenuItem } from \"@/interfaces/IMenuItem\";\r\nimport type { IState } from \"@/interfaces/IState\";\r\nimport type { IFooterColumn } from \"@/interfaces/IFooterColumn\";\r\nimport { LinkType } from \"@/enums/LinkType\";\r\nimport { IUser } from \"@/interfaces/IUser\";\r\n\r\nexport default {\r\n getCurrentUser(state: IState): IUser | undefined {\r\n return state.currentUser;\r\n },\r\n\r\n getMenu(state: IState): IMenuItem[] {\r\n const isLoggedIn = !!state.currentUser;\r\n const menu: IMenuItem[] = [\r\n {\r\n id: \"mentor-support\",\r\n label: \"shared.routes.mentorship\",\r\n },\r\n {\r\n id: \"note-support\",\r\n label: \"shared.routes.notetaking-support\",\r\n ...((!isLoggedIn || state.currentUser?.checkEntitlement(\"Student\")) && {\r\n name: \"NoteTakingRequest\",\r\n }),\r\n // ...(state.currentUser?.checkEntitlement([\r\n // [\"Anteckningsstödsadministratör\", \"or\", \"Anteckningsadministratör\"],\r\n // \"or\",\r\n // \"Samordnare\",\r\n // ]) && {\r\n // badge: state.menuBadges[\"note-support\"],\r\n // }),\r\n ...(state.currentUser?.checkEntitlement([\r\n [\"Anteckningsstödsadministratör\", \"or\", \"Anteckningsadministratör\"],\r\n \"or\",\r\n [\"Samordnare\", \"or\", \"Läsbehörighet Anteckningsstöd\"],\r\n ]) && {\r\n children: [\r\n ...(state.currentUser?.checkEntitlement([\r\n [\r\n \"Anteckningsstödsadministratör\",\r\n \"or\",\r\n \"Anteckningsadministratör\",\r\n ],\r\n \"or\",\r\n \"Samordnare\",\r\n ])\r\n ? [\r\n {\r\n id: \"note-taker-list\",\r\n label: \"shared.routes.note-taker-overview\",\r\n name: \"NoteTakerList\",\r\n },\r\n {\r\n id: \"student-list\",\r\n label: \"shared.routes.student-overview\",\r\n name: \"StudentList\",\r\n },\r\n ]\r\n : []),\r\n ...(state.currentUser?.checkEntitlement([\r\n [\r\n \"Anteckningsstödsadministratör\",\r\n \"or\",\r\n \"Anteckningsadministratör\",\r\n ],\r\n \"or\",\r\n [\"Samordnare\", \"or\", \"Läsbehörighet Anteckningsstöd\"],\r\n ])\r\n ? [\r\n {\r\n id: \"course-occurrence-overview\",\r\n label: \"shared.routes.course-occurrence-overview\",\r\n name: \"CourseOccurrenceList\",\r\n },\r\n ]\r\n : []),\r\n ],\r\n }),\r\n },\r\n {\r\n id: \"tuition-fee\",\r\n label: \"shared.routes.tuition-fees\",\r\n // ...(state.currentUser?.checkEntitlement([\r\n // [\"Studieavgiftsadministratör\",\r\n // ]) &&\r\n // {\r\n ...(state.currentUser?.checkEntitlement(\r\n \"Tuition fees administratör\"\r\n ) && {\r\n children: [\r\n {\r\n id: \"mirror-user\",\r\n label: \"tuition-fees.mirror-user\",\r\n name: \"MirrorUser\",\r\n },\r\n ],\r\n // }),\r\n }),\r\n },\r\n {\r\n id: \"personal-identity-number-change\",\r\n label: \"shared.routes.update-personal-identity-number\",\r\n ...(state.currentUser?.checkEntitlement([\r\n \"Pnradministratör\",\r\n \"or\",\r\n \"Student\",\r\n ]) && {\r\n children: [\r\n {\r\n id: \"personal-identity-number\",\r\n label: \"shared.routes.update-personal-identity-number\",\r\n name: \"SocialSecurityNumber\",\r\n },\r\n ],\r\n }),\r\n },\r\n\r\n {\r\n id: \"suspension\",\r\n label: \"shared.routes.suspension\",\r\n },\r\n {\r\n id: \"application-for-deferment\",\r\n label: \"shared.routes.postponement\",\r\n },\r\n ];\r\n\r\n return menu;\r\n },\r\n\r\n getTuitionFeesFooterContent(): IFooterColumn[] {\r\n const luWebsite = \"https://www.lunduniversity.lu.se\";\r\n\r\n return [\r\n {\r\n columnNumber: 1,\r\n title: \"tuition-fees-footer.column-1.title\",\r\n links: [\r\n {\r\n linkType: LinkType.External,\r\n linkLabel: \"tuition-fees-footer.column-1.linkLabel-1\",\r\n url: `${luWebsite}/admissions/bachelors-and-masters-studies/applying-studies-when-apply/tuition-fees`,\r\n },\r\n {\r\n linkType: LinkType.External,\r\n linkLabel: \"tuition-fees-footer.column-1.linkLabel-2\",\r\n url: `${luWebsite}/current-students/financial-matters/tuition-payments-during-studies`,\r\n },\r\n {\r\n linkType: LinkType.External,\r\n linkLabel: \"tuition-fees-footer.column-1.linkLabel-3\",\r\n url: `${luWebsite}/admissions/bachelors-and-masters-studies/applying-studies-when-apply/tuition-fees/tuition-fee-refund-policy`,\r\n },\r\n ],\r\n },\r\n {\r\n columnNumber: 2,\r\n title: \"tuition-fees-footer.column-2.title\",\r\n links: [\r\n {\r\n linkType: LinkType.Email,\r\n linkLabel: \"tuitionfees@eken.lu.se\",\r\n url: \"tuitionfees@eken.lu.se\",\r\n leadingText: \"tuition-fees-footer.column-2.leadingText-1\",\r\n },\r\n {\r\n linkType: LinkType.External,\r\n linkLabel: \"tuition-fees-footer.column-2.linkLabel-2\",\r\n url: `${luWebsite}/about-university/contact-us`,\r\n },\r\n ],\r\n },\r\n {\r\n columnNumber: 3,\r\n title: \"tuition-fees-footer.column-3.title\",\r\n links: [\r\n {\r\n linkType: LinkType.External,\r\n linkLabel: \"tuition-fees-footer.column-3.linkLabel-1\",\r\n url: `${luWebsite}/accessibilitystatement`,\r\n },\r\n ],\r\n },\r\n ];\r\n },\r\n\r\n getStudentPortalFooterContent(): IFooterColumn[] {\r\n return [\r\n {\r\n columnNumber: 1,\r\n title: \"student-portal-footer.column-1.title\",\r\n links: [\r\n {\r\n linkType: LinkType.Email,\r\n linkLabel: \"servicedesk@lu.se\",\r\n url: \"servicedesk@lu.se\",\r\n leadingText: \"LU Servicedesk\",\r\n },\r\n ],\r\n },\r\n ];\r\n },\r\n\r\n getStudentPortalSocialSecurityNumberFooterContent(): IFooterColumn[] {\r\n return [\r\n {\r\n columnNumber: 1,\r\n title: \"student-portal-footer.column-1.title\",\r\n links: [\r\n {\r\n linkType: LinkType.Email,\r\n linkLabel: \"Ladok@stu.lu.se\",\r\n url: \"Ladok@stu.lu.se\",\r\n leadingText:\r\n \"personal-identity-number-footer.column-1.leading-text\",\r\n },\r\n ],\r\n },\r\n ];\r\n },\r\n};\r\n","import type { IState } from \"@/interfaces/IState\";\r\nimport type { IUser } from \"@/interfaces/IUser\";\r\n\r\nexport default {\r\n setBadge(state: IState, payload: { id: string; badge: string }): void {\r\n state.menuBadges[payload.id] = payload.badge;\r\n },\r\n setCurrentUser(state: IState, user: IUser): void {\r\n state.currentUser = user;\r\n },\r\n showSpinner(state: IState, show: boolean): void {\r\n state.showSpinner = show;\r\n },\r\n};\r\n","import type { IState } from \"@/interfaces/IState\";\r\n\r\nconst state: IState = {\r\n menuBadges: {},\r\n currentUser: undefined,\r\n showSpinner: false,\r\n isSubmitted: false,\r\n};\r\n\r\nexport default state;\r\n","import { createStore } from \"vuex\";\r\nimport getters from \"./getters\";\r\nimport mutations from \"./mutations\";\r\nimport state from \"./state\";\r\n\r\nexport default createStore({\r\n state,\r\n mutations,\r\n getters,\r\n modules: {},\r\n});\r\n","export default {\n \"shared\": {\n \"lunds-university\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lunds University\"])},\n \"date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date\"])},\n \"courses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Courses\"])},\n \"courseCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course code\"])},\n \"term\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Term\"])},\n \"started\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Started\"])},\n \"ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ended\"])},\n \"go-back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Go back\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Now\"])},\n \"yes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])},\n \"no\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save\"])},\n \"update\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete\"])},\n \"edit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"editCoordinator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit coordinator\"])},\n \"editSupportDate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit support date\"])},\n \"choose\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Choose\"])},\n \"confirm-delete-thing\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Are you sure you want to delete \", _interpolate(_named(\"item\")), \"?\"])},\n \"confirm-removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm removal\"])},\n \"confirm-remove-thing\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Are you sure you want to remove \", _interpolate(_named(\"item\")), \"?\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm\"])},\n \"remove_thing\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Remove \", _interpolate(_named(\"thing\"))])},\n \"enable_thing\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Enable \", _interpolate(_named(\"thing\"))])},\n \"disable_thing\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Disable \", _interpolate(_named(\"thing\"))])},\n \"no-things\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"No \", _interpolate(_named(\"things\"))])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search\"])},\n \"interest\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interest\"])},\n \"status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status\"])},\n \"back-to-overview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to overview\"])},\n \"back-previous-page\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to previous page\"])},\n \"go-home-page\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Go to home page\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accept\"])},\n \"decline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Decline\"])},\n \"accept-policy-full\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"I accept the terms and conditions\"])},\n \"scroll-to-top\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scroll to top\"])},\n \"saveSuccessful\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit successfully saved\"])},\n \"saveUnsuccessful\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unfortunately something went wrong and the changes were not saved\"])},\n \"search-and-filter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search and Filter\"])},\n \"invalid-date-range\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The selected date range is invalid. Please ensure that the start date is before or the same as the end date.\"])},\n \"send\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Send\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Year\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Month\"])},\n \"day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Day\"])},\n \"update-input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New social security ID\"])},\n \"four-digits\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Four digits\"])},\n \"download-excel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export as excel\"])},\n \"download-excel-error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error downloading excel\"])},\n \"routes\": {\n \"note-taker-overview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note-taker overview\"])},\n \"note-taker-details\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note-taker details\"])},\n \"student-details\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Student details\"])},\n \"note-taking-request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register interest as note-taker / Share notes\"])},\n \"mentorship\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mentorship\"])},\n \"notetaking-support\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note-taking Support\"])},\n \"tuition-fees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tuition fees\"])},\n \"update-personal-identity-number\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Personal Identity Number\"])},\n \"suspension\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Suspension\"])},\n \"postponement\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Postponement\"])},\n \"add-student\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add Student\"])},\n \"student-home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home page\"])},\n \"employee-home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home page employee\"])},\n \"course-occurrence-overview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course instance overview\"])},\n \"course-occurrence-details\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course instance details\"])},\n \"student-overview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Student overview\"])},\n \"offer-response\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note-taking Support Response\"])},\n \"share-notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Share notes\"])},\n \"mirror-user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mirror user\"])},\n \"personal-identity-number\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Personal identity number\"])}\n },\n \"form\": {\n \"date-picker\": {\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Now\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Week\"])},\n \"increment-seconds\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Increase second\"])},\n \"increment-minutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Increase minute\"])},\n \"increment-hours\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Increase hour\"])},\n \"decrement-seconds\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Decrease second\"])},\n \"decrement-minutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Decrease minute\"])},\n \"decrement-hours\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Decrease hour\"])},\n \"next-month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next month\"])},\n \"prev-month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous month\"])}\n }\n },\n \"app-name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Student Portal\"])},\n \"coordinator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Coordinator\"])},\n \"proposedNoteTakersCount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interested\"])},\n \"offer\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Offer\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"popup-error\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Oops \", _interpolate(_named(\"name\")), \"!\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unfortunately something went wrong, please try again later.\"])}\n }\n },\n \"header\": {\n \"show-hide-search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show/Hide search\"])},\n \"show-menu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show menu\"])},\n \"menu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Menu\"])},\n \"listen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Listen\"])},\n \"select-locale\": {\n \"change-language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ändra språk till svenska\"])},\n \"language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Svenska\"])}\n }\n },\n \"main\": {\n \"page-manager\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page manager\"])}\n },\n \"footer\": {\n \"contact-us\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact us\"])},\n \"shortcuts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shortcuts\"])}\n },\n \"auth\": {\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log out\"])}\n },\n \"unauthorized\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unauthorized\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"It appears that you don't have permission to access this page. Please make sure you're authorized to view this content. If you think you should be able to view this page, please contact us.\"])}\n },\n \"not-found\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Not found\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The page you are looking for could not be found. If you think you should be able to view this page, please contact us.\"])}\n },\n \"modal\": {\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close modal\"])}\n },\n \"person\": {\n \"id\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"personalId\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Personal Id\"])},\n \"firstName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First Name\"])},\n \"lastName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last Name\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Name\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mail\"])},\n \"status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status\"])},\n \"address\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Address\"])},\n \"postcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Postcode\"])},\n \"city\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"City\"])},\n \"telephoneNumber\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Telephone Number\"])},\n \"students\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Students\"])},\n \"coordinator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Coordinator\"])},\n \"grantedSupportDate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Granted support until\"])},\n \"displayName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display name\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])},\n \"affiliation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"eduPersonAffiliation\"])},\n \"primaryAffiliation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"eduPersonPrimaryAffiliation\"])},\n \"lu-account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"LU Account\"])},\n \"email-address\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email Address\"])}\n },\n \"note-taker-details\": {\n \"back-to-overview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to overview\"])},\n \"checklist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Checklist\"])},\n \"administration-notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notes\"])},\n \"enter-new-note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a new note here\"])},\n \"note-taker-abbreviation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NT\"])}\n },\n \"student-details\": {\n \"saveSuccessful\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit successfully saved\"])},\n \"saveUnsuccessful\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unfortunately something went wrong and the changes were not saved\"])},\n \"no-coordinator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No coordinators\"])},\n \"edit-btn-tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit coordinator and/or granted support date\"])},\n \"activeNoteTaker\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"It is no longer possible to update this student
\", _interpolate(_named(\"full_name\")), \" now has at least one active assignment or an active registration of interest as a note-taker\"])}\n },\n \"note-taker-list\": {\n \"show-students\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show students\"])},\n \"export-fee-basis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fee Basis\"])},\n \"export-fee-accounting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fee Accounting\"])},\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export\"])},\n \"choose-date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Choose Date\"])},\n \"choose-date-explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If you specify a date, only data from this date forward and everything new (not previously exported) will be exported, otherwise only everything new\"])}\n },\n \"student-list\": {\n \"expired\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Support expired\"])}\n },\n \"note-taking-request\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register interest as note-taker / Share notes\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"

On this page, you can register interest in becoming a note-taker for the courses in which you are registered, as well as sharing notes for the courses you have been assigned to as a note-taker.

To register interest as a note-taker, click on the checkbox beside the courses you are interested in and then click the Save button. The button is called Update if you have previously registered your interest.

To share notes, click the Share notes button to the right of the courses to which you have been assigned as a note-taker.

\"])},\n \"info-about-you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Information about you\"])},\n \"application\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"choose-campus-label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Which campus are you studying at?\"])},\n \"choose-campus-error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pick a campus\"])},\n \"choose-faculty-label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Which faculty do you belong to?\"])},\n \"choose-faculty-error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pick a faculty\"])},\n \"choose-courses-label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Choose the courses you wish to provide note-taking support for\"])},\n \"edit-information-ladok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Is your information incorrect? Edit it in\"])},\n \"add-student\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add student\"])},\n \"why-add-student\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a student if there is someone special you want to support.\"])},\n \"send-application\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Send application\"])},\n \"alert-message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You must choose at least one course\"])},\n \"campuses\": {\n \"helsingborg\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Campus Helsingborg\"])},\n \"lund-malmo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Campus Lund or Malmö\"])}\n },\n \"popup-success\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Thank you \", _interpolate(_named(\"name\")), \"!\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Thank you for your registration. A confirmation has been sent to your email (\", _interpolate(_named(\"email\")), \").\"])},\n \"updateMessage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your changes have been saved.\"])}\n },\n \"cannot-deregister\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Because you have an active assignment as note-taking support for this course, you cannot deregister from it\"])},\n \"cannot-reregister\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Since your previous assignment as note-taking support for this course ended prematurely, you cannot register again\"])},\n \"completed-course\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"This course ended '\", _interpolate(_named(\"date\")), \"'\"])},\n \"spring\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Spring\"])},\n \"autumn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autumn\"])},\n \"popup-not-possible\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Sorry \", _interpolate(_named(\"name\"))])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You cannot be note-taking support \"])},\n \"student-message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"while being registered to receive notes.\"])},\n \"interim-message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"if you have a temporary social security number.\"])}\n }\n },\n \"offerresponse\": {\n \"popup-accepted\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Thank you \", _interpolate(_named(\"name\")), \"!\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Thank you for accepting the assignment as note support.\"])}\n },\n \"popup-declined\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Assignment declined\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The assignment as note support has been declined\"])}\n }\n },\n \"pagination\": {\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous\"])},\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next\"])},\n \"goto-previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Go to previous page\"])},\n \"goto-next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Go to next page\"])},\n \"goto\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Go to page \", _interpolate(_named(\"page\"))])},\n \"current\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current page\"])}\n },\n \"form\": {\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search\"])},\n \"search-placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Type to search\"])},\n \"filter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"filter-reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset filter\"])},\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Apply\"])}\n },\n \"note-taker-status\": {\n \"status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status\"])},\n \"Incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Incoming\"])},\n \"Active\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"Inactive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inactive\"])},\n \"Completed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Completed\"])}\n },\n \"table\": {\n \"showingRowsOf\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Showing \", _interpolate(_named(\"start\")), \"-\", _interpolate(_named(\"end\")), \" of \", _interpolate(_named(\"total\"))])},\n \"noData\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No data\"])}\n },\n \"add-student\": {\n \"personalIdFormat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"12 numbers, or with hyphen\"])},\n \"studentExists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The specified social security number is already in the system\"])},\n \"studentDoesNotExist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The specified social security number doesn't exist in Ladok\"])},\n \"saveSuccessful\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"full_name\")), \" is added to the list of students\"])},\n \"saveUnsuccessful\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unfortunately something went wrong and the student was not saved\"])},\n \"grantedSupportUntil\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Granted support until\"])},\n \"activeNoteTaker\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"The person is already registered!
\", _interpolate(_named(\"full_name\")), \" has at least one active assignment or an active registration of interest as a note-taker\"])},\n \"later-start-date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The courses below which are highlighted have a start date which is later than the granted support until date that you have entered.\"])}\n },\n \"mandatoryField\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This field is mandatory\"])}\n },\n \"course-occurrence\": {\n \"occurrence\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course Instance\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course Name\"])},\n \"courseStartDate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course start\"])},\n \"courseEndDate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course end\"])},\n \"studentCount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Students\"])},\n \"noteTakerCount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note-takers\"])},\n \"students\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Students\"])},\n \"noteTakers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note-takers\"])},\n \"proposedNoteTakers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note-takers with interest\"])},\n \"status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status\"])},\n \"abbreviation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CI\"])},\n \"coordinatorName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Coordinator CI\"])},\n \"support\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Support\"])},\n \"proposedNoteTakerDate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Offer\"])},\n \"faculty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Faculty\"])},\n \"institution\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Institution\"])},\n \"edit-btn-title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit coordinator\"])},\n \"statusText\": {\n \"Green\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note-taker is assigned for this course instance\"])},\n \"Yellow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interested note-taker is available for this course instance\"])},\n \"Orange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More note-takers are needed for this course instance\"])},\n \"Red\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note-taker is needed for this course instance\"])},\n \"Grey\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neither need nor interested note-taker is available for this course instance\"])}\n },\n \"remove-student\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove student\"])},\n \"confirm-removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm end of assignment\"])},\n \"confirm-remove-note-taker\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Are you sure you want to end the assignment for \", _interpolate(_named(\"name\")), \"?\"])},\n \"assignment\": {\n \"assignment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Assignment\"])},\n \"assignment-start\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Assignment start\"])},\n \"assignment-end\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Assignment end\"])},\n \"endAssignment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"End assignment\"])}\n },\n \"offer\": {\n \"offer\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Offer\"])},\n \"canceledOffer\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Canceled offer\"])},\n \"sendOffer\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Send offer\"])},\n \"confirmSendOffer\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Are you sure you want to send an offer to \", _interpolate(_named(\"name\"))])},\n \"cancelOffer\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"End offer\"])},\n \"confirmCancelOffer\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Are you sure you want to cancel the offer for \", _interpolate(_named(\"name\"))])},\n \"offerSent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Offer sent\"])},\n \"offerCanceled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Offer canceled\"])},\n \"offer-response-title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Offer of assignment as note-taking support\"])},\n \"offer-response-description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You have received an offer to become a note-taking support for the course instance below.\"])},\n \"offer-information-title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Information about the assignment\"])},\n \"policy-required-description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You need to accept or decline the offer.\"])},\n \"policy-required-description-second-row-before-bold\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"To be able to click the \"])},\n \"policy-required-description-second-row-bold\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accept\"])},\n \"policy-required-description-second-row-after-bold\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"button, you must first click on this link \"])},\n \"policy-required-description-after-link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"to be able to read the terms and conditions and then check the box below to accept the terms and conditions.\"])},\n \"terms-and-conditions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"terms and conditions\"])}\n },\n \"unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unavailable\"])},\n \"unavailable-reason\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"It seems that the course instance '\", _interpolate(_named(\"occurrence\")), \"' has been removed from Ladok.\"])},\n \"uploads\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uploads\"])},\n \"note-taker\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note-taker\"])},\n \"number-of-files\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Number of files\"])},\n \"latest-upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Latest upload\"])}\n }\n },\n \"share-notes\": {\n \"page-title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Share notes for course instance\"])},\n \"note-taking-date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note-taking instance date\"])},\n \"note-taking-time\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note-taking instance time\"])},\n \"select-file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Select note file\"])},\n \"file-size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"file size\"])},\n \"share-notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Share notes\"])},\n \"popup-success\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Thank you \", _interpolate(_named(\"name\")), \"!\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Thank you for uploading your notes.\"])}\n }\n },\n \"file-upload\": {\n \"choose-file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Choose File\"])},\n \"change-file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Change File\"])},\n \"no-file-chosen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file chosen\"])},\n \"max-file-size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max file size\"])},\n \"permitted-file-types\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Permitted file types\"])},\n \"file-size-error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File size must be less than\"])},\n \"file-type-error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File must be of the following type(s)\"])}\n },\n \"tuition-fees\": {\n \"bank-transfer\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bank transfer\"])},\n \"card-payment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Card payment\"])},\n \"mirror-user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mirror user\"])},\n \"search-user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search user\"])},\n \"search-term\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search term\"])},\n \"search-on\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"personal ID (12 digits), LU account or name\"])},\n \"search-results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search results\"])},\n \"minimum-char\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"at least 2 characters\"])},\n \"no-search-results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your search returned no results\"])},\n \"mirror\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mirror\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"mirroring\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You are currently mirroring\"])},\n \"stop-mirroring\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stop mirroring\"])},\n \"response\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Payment Response\"])},\n \"unknown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"unkown\"])}\n },\n \"student-portal-footer\": {\n \"column-1\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact information\"])}\n }\n },\n \"tuition-fees-footer\": {\n \"column-1\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Information about tuition fees\"])},\n \"linkLabel-1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"For newly admitted students at Lund University international website\"])},\n \"linkLabel-2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"For current students at Lund University international website\"])},\n \"linkLabel-3\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lund University refund policy\"])}\n },\n \"column-2\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact us\"])},\n \"leadingText-1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The Tuition Fee Office at \"])},\n \"linkLabel-2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Other contacts\"])}\n },\n \"column-3\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shortcuts\"])},\n \"linkLabel-1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accessibility Statement\"])}\n }\n },\n \"personal-identity-number-footer\": {\n \"column-1\": {\n \"leading-text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Study Administration Systems
Ladok (Student Register)\"])}\n }\n },\n \"maintenance\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"System Upgrade\"])},\n \"heading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"System upgrade in progress\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A system upgrade of the Student Portal is currently in progress.
We apologize for any inconvenience this may cause. Please try again later.\"])}\n },\n \"date\": {\n \"from\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"From\"])},\n \"to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"To\"])}\n }\n}","export default {\n \"shared\": {\n \"lunds-university\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lunds Universitet\"])},\n \"date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datum\"])},\n \"courses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kurser\"])},\n \"courseCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kurskod\"])},\n \"term\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Termin\"])},\n \"started\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startad\"])},\n \"ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avslutad\"])},\n \"go-back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gå tillbaka\"])},\n \"yes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ja\"])},\n \"no\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nej\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Spara\"])},\n \"update\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uppdatera\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avbryt\"])},\n \"edit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redigera\"])},\n \"editCoordinator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redigera samordnare\"])},\n \"editSupportDate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redigera beviljat stöd\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radera\"])},\n \"choose\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Välj\"])},\n \"confirm-delete-thing\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Är du säker att du vill radera \", _interpolate(_named(\"item\")), \"?\"])},\n \"confirm-removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bekräfta borttagning\"])},\n \"confirm-remove-thing\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Är du säker att du vill ta bort \", _interpolate(_named(\"item\")), \"?\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bekräfta\"])},\n \"remove_thing\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Ta bort \", _interpolate(_named(\"thing\"))])},\n \"enable_thing\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Aktivera \", _interpolate(_named(\"thing\"))])},\n \"disable_thing\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Inaktivera \", _interpolate(_named(\"thing\"))])},\n \"no-things\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Inga \", _interpolate(_named(\"things\"))])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sök\"])},\n \"interest\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Intresse\"])},\n \"status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status\"])},\n \"back-to-overview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tillbaka till översikt\"])},\n \"back-previous-page\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tillbaka till föregående sida\"])},\n \"go-home-page\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gå till startsida\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Acceptera\"])},\n \"decline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avböj\"])},\n \"accept-policy-full\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jag accepterar villkoren\"])},\n \"scroll-to-top\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hela vägen upp\"])},\n \"saveSuccessful\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redigering sparad!\"])},\n \"saveUnsuccessful\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tyvärr gick något fel och ändringarna sparades inte\"])},\n \"search-and-filter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sök och filtrera\"])},\n \"send\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skicka\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"År\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Månad\"])},\n \"day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dag\"])},\n \"update-input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nytt personnummer\"])},\n \"four-digits\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fyra siffror\"])},\n \"download-excel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Exportera till excel\"])},\n \"download-excel-error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fel vid nedladdning av excel\"])},\n \"invalid-date-range\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Det valda datumintervallet är ogiltigt. Vänligen kontrollera att startdatumet är före eller samma som slutdatumet.\"])},\n \"routes\": {\n \"note-taker-overview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anteckningsstöd översikt\"])},\n \"note-taker-details\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anteckningsstöd detaljerad\"])},\n \"student-details\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Student detaljerad\"])},\n \"note-taking-request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Intresseanmälan anteckningsstöd / Dela anteckningar\"])},\n \"mentorship\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mentorskap\"])},\n \"notetaking-support\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anteckningsstöd\"])},\n \"tuition-fees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Studieavgifter\"])},\n \"update-personal-identity-number\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Personnummersbyte\"])},\n \"suspension\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uppskov\"])},\n \"postponement\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ansökan om anstånd\"])},\n \"add-student\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lägg till Student\"])},\n \"student-home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startsida\"])},\n \"employee-home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startsida anställd\"])},\n \"course-occurrence-overview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kurstillfälle översikt\"])},\n \"course-occurrence-details\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kurstillfälle detaljerad\"])},\n \"student-overview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Student översikt\"])},\n \"offer-response\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anteckninsstöd svarssida\"])},\n \"share-notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dela anteckningar\"])},\n \"personal-identity-number\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Personnummer\"])}\n },\n \"form\": {\n \"date-picker\": {\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nu\"])},\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vecka\"])},\n \"increment-seconds\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Öka sekund\"])},\n \"increment-minutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Öka minut\"])},\n \"increment-housr\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Öka timme\"])},\n \"decrement-seconds\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Minska sekund\"])},\n \"decrement-minutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Minska minut\"])},\n \"decrement-hours\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Minska timme\"])},\n \"next-month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nästa månad\"])},\n \"prev-month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Föregående månad\"])}\n }\n },\n \"app-name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Studentportalen\"])},\n \"coordinator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Samordnare\"])},\n \"proposedNoteTakersCount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Intresseanmälda\"])},\n \"offer\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erbjudande\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nollställ\"])},\n \"popup-error\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Ojdå \", _interpolate(_named(\"name\")), \"!\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Någonting gick tyvärr fel, var vänlig och testa senare.\"])}\n }\n },\n \"header\": {\n \"show-hide-search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Visa/Dölj sök\"])},\n \"show-menu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Visa meny\"])},\n \"menu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Meny\"])},\n \"listen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lyssna\"])},\n \"select-locale\": {\n \"change-language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Change language to english\"])},\n \"language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"English\"])}\n }\n },\n \"main\": {\n \"page-manager\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sidansvarig\"])}\n },\n \"modal\": {\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stäng modal\"])}\n },\n \"footer\": {\n \"contact-us\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakta oss\"])},\n \"shortcuts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Genvägar\"])}\n },\n \"auth\": {\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logga in\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logga ut\"])}\n },\n \"unauthorized\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Obehörig\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Det verkar som att du inte har behörighet att komma åt den här sidan. Se till att du är behörig att se detta innehåll. Om du tycker att du borde kunna se den här sidan, vänligen kontakta oss.\"])}\n },\n \"not-found\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hittades inte\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sidan du letar efter kunde inte hittas. Om du tycker att du borde kunna se den här sidan, vänligen kontakta oss.\"])}\n },\n \"person\": {\n \"id\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"personalId\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Personnummer\"])},\n \"firstName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Förnamn\"])},\n \"lastName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Efternamn\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Namn\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mail\"])},\n \"status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status\"])},\n \"address\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adress\"])},\n \"postcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Postnummer\"])},\n \"city\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Postort\"])},\n \"telephoneNumber\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Telefonnummer\"])},\n \"students\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Student\"])},\n \"coordinator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Samordnare\"])},\n \"grantedSupportDate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beviljat stöd tom\"])},\n \"displayName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Displaynamn\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Användarnamn\"])},\n \"affiliation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"eduPersonAffiliation\"])},\n \"primaryAffiliation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"eduPersonPrimaryAffiliation\"])},\n \"lu-account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"LU-Konto\"])},\n \"email-address\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-postadress\"])}\n },\n \"note-taker-details\": {\n \"back-to-overview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tillbaka till översikt\"])},\n \"checklist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Checklista\"])},\n \"administration-notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anteckningar\"])},\n \"enter-new-note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ange en ny anteckning här\"])},\n \"note-taker-abbreviation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"AT\"])}\n },\n \"student-details\": {\n \"saveSuccessful\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redigering sparad!\"])},\n \"saveUnsuccessful\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tyvärr gick något fel och studenten sparades inte\"])},\n \"no-coordinator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inga samordnaren\"])},\n \"edit-btn-tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redigera samordnare och/eller datum för beviljat stöd\"])},\n \"activeNoteTaker\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Det är inte längre möjligt att uppdatera denna student
\", _interpolate(_named(\"full_name\")), \" har nu minst ett aktivt uppdrag eller en aktiv intresseanmälan som anteckningsstöd\"])}\n },\n \"note-taker-list\": {\n \"show-students\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Visa student\"])},\n \"export-fee-basis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Arvode Underlag\"])},\n \"export-fee-accounting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Arvode Konteringsunderlag\"])},\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Exportera\"])},\n \"choose-date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Välj Datum\"])},\n \"choose-date-explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Om du anger ett datum exporteras endast data från och med detta datum och allt nytt (ej tidigare exporterade) , annars bara allt nytt\"])}\n },\n \"student-list\": {\n \"expired\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utgånget stöd\"])}\n },\n \"note-taking-request\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Intresseanmälan anteckningsstöd / Dela anteckningar\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"

På denna sida kan du anmäla intresse som anteckningsstöd för de kurser du är registrerad på, samt dela anteckningar för de kurser du fått uppdrag som anteckningsstöd på.

För att anmäla intresse som anteckningsstöd, bocka i de kurser du är intresserad av och klicka sedan på knappen Spara. Knappen heter Uppdatera om du anmält intresse tidigare.

För att dela anteckningar klicka på knappen Dela anteckningar som finns till höger om kurserna du fått uppdrag som anteckningsstöd på.

\"])},\n \"info-about-you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Information om dig\"])},\n \"application\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ansökan\"])},\n \"choose-campus-label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vilket campus studerar du vid?\"])},\n \"choose-campus-error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Välj ett campus\"])},\n \"choose-faculty-label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vilken fakultet tillhör du?\"])},\n \"choose-faculty-error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Välj en fakultet\"])},\n \"choose-courses-label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Välj de kurser du önskar att ge anteckningsstöd på\"])},\n \"edit-information-ladok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stämmer inte din information? Redigera den i\"])},\n \"add-student\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lägg till student\"])},\n \"why-add-student\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lägg till en student om det är någon särskild du vill ge stöd till.\"])},\n \"send-application\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skicka ansökan\"])},\n \"alert-message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Man måste välja minst en kurs\"])},\n \"campuses\": {\n \"helsingborg\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Campus Helsingborg\"])},\n \"lund-malmo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Campus Lund eller Malmö\"])}\n },\n \"popup-success\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Tack \", _interpolate(_named(\"name\")), \"!\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Tack för din anmälan. En bekräftelse har skickats till din e-post (\", _interpolate(_named(\"email\")), \").\"])},\n \"updateMessage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dina ändringar har sparats.\"])}\n },\n \"cannot-deregister\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eftersom du har ett aktivt uppdrag som anteckningsstöd för denna kurs kan du inte avanmäla dig från den\"])},\n \"cannot-reregister\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eftersom ditt uppdrag som anteckningsstöd för denna kurs avslutades i förtid kan du inte anmäla nytt intresse för denna kurs\"])},\n \"completed-course\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Denna kurs avslutades '\", _interpolate(_named(\"date\")), \"'\"])},\n \"spring\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vår\"])},\n \"autumn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höst\"])},\n \"popup-not-possible\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Förlåt \", _interpolate(_named(\"name\"))])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du kan inte vara anteckningsstöd \"])},\n \"student-message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"samtidigt som du är registrerad att ta emot anteckningar.\"])},\n \"interim-message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"om du har ett tillfälligt personnummer.\"])}\n }\n },\n \"offerresponse\": {\n \"popup-accepted\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Tack \", _interpolate(_named(\"name\")), \"!\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tack för du antog uppdraget som anteckningsstöd.\"])}\n },\n \"popup-declined\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uppdrag nekat\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uppdraget som anteckningsstöd har nekats\"])}\n }\n },\n \"pagination\": {\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Föregående\"])},\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nästa\"])},\n \"goto-previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gå till föregående sida\"])},\n \"goto-next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gå till nästa sida\"])},\n \"goto\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Gå till sida \", _interpolate(_named(\"page\"))])},\n \"current\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nuvarande sida\"])}\n },\n \"form\": {\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sök\"])},\n \"search-placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skriv för att söka\"])},\n \"filter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrera\"])},\n \"filter-reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nollställ filter\"])},\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tillämpa\"])}\n },\n \"note-taker-status\": {\n \"status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status\"])},\n \"Incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inkommen\"])},\n \"Active\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiv\"])},\n \"Inactive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inaktiv\"])},\n \"Completed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avslutad\"])}\n },\n \"table\": {\n \"showingRowsOf\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Visar \", _interpolate(_named(\"start\")), \"-\", _interpolate(_named(\"end\")), \" av \", _interpolate(_named(\"total\"))])},\n \"noData\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingen data\"])}\n },\n \"add-student\": {\n \"personalIdFormat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"12 siffror, eller med bindestreck\"])},\n \"studentExists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Angivet personnummer finns redan i systemet\"])},\n \"studentDoesNotExist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Angivet personnummer finns inte i Ladok\"])},\n \"saveSuccessful\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"full_name\")), \" är tillagd i listan med studenter\"])},\n \"saveUnsuccessful\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tyvärr gick något fel och studenten sparades inte\"])},\n \"grantedSupportUntil\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Beviljat stöd till och med\"])},\n \"activeNoteTaker\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Personen finns redan registrerad!
\", _interpolate(_named(\"full_name\")), \" har minst ett aktivt uppdrag eller en aktiv intresseanmälan som anteckningsstöd\"])},\n \"later-start-date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kurserna nedan som är markerade har ett startdatum som är senare än det beviljade stöd till och med datum som du har angett.\"])}\n },\n \"mandatoryField\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Detta fält är obligatoriskt\"])}\n },\n \"course-occurrence\": {\n \"occurrence\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kurstillfälle\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kursnamn\"])},\n \"courseStartDate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kursstart\"])},\n \"courseEndDate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kursslut\"])},\n \"studentCount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Student\"])},\n \"noteTakerCount\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anteckningsstöd\"])},\n \"students\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Studenter\"])},\n \"noteTakers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anteckningsstöd\"])},\n \"proposedNoteTakers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anteckningsstöd med intresse\"])},\n \"status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status\"])},\n \"abbreviation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KT\"])},\n \"coordinatorName\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Samordnare KT\"])},\n \"support\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stöd\"])},\n \"proposedNoteTakerDate\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erbjudande\"])},\n \"faculty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fakultet\"])},\n \"institution\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Institution\"])},\n \"edit-btn-title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redigera samordnare\"])},\n \"statusText\": {\n \"Green\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anteckningsstöd finns för detta kurstillfälle\"])},\n \"Yellow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Intresseanmälda finns för detta kurstillfälle\"])},\n \"Orange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fler anteckningstöd behövs till detta kurstillfälle.\"])},\n \"Red\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anteckningsstöd behövs för detta kurstillfälle\"])},\n \"Grey\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Varken behov eller intresseanmäld finns för detta kurstillfälle\"])}\n },\n \"remove-student\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ta bort student\"])},\n \"confirm-removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bekräfta uppdragets slut\"])},\n \"confirm-remove-note-taker\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Är du säker på att du vill avsluta uppdraget för \", _interpolate(_named(\"name\")), \"?\"])},\n \"assignment\": {\n \"assignment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uppdrag\"])},\n \"assignment-start\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uppdrag start\"])},\n \"assignment-end\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uppdrag slut\"])},\n \"endAssignment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avsluta uppdrag\"])}\n },\n \"offer\": {\n \"offer\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erbjudande\"])},\n \"canceledOffer\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avbrutet erbjudande\"])},\n \"sendOffer\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skicka erbjudande\"])},\n \"confirmSendOffer\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Är du säker på att du vill skicka erbjudande till \", _interpolate(_named(\"name\"))])},\n \"cancelOffer\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avbryt erbjudande\"])},\n \"confirmCancelOffer\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Är du säker på avbryta erbjudande för \", _interpolate(_named(\"name\"))])},\n \"offerSent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erbjudande skickat\"])},\n \"offerCanceled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erbjudande avbrutet\"])},\n \"offer-response-title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erbjudande av uppdrag som anteckningsstöd\"])},\n \"offer-response-description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du har fått ett erbjudande som anteckningsstöd på ett kurstillfälle.\"])},\n \"offer-information-title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Information om uppdraget\"])},\n \"policy-required-description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du behöver acceptera eller avböja erbjudandet.\"])},\n \"policy-required-description-second-row-before-bold\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"För att kunna klicka på knappen \"])},\n \"policy-required-description-second-row-bold\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Acceptera\"])},\n \"policy-required-description-second-row-after-bold\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"måste du först klicka på denna länk \"])},\n \"policy-required-description-after-link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"för att kunna läsa villkoren och därefter bocka i rutan nedan för att acceptera villkoren.\"])},\n \"terms-and-conditions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"villkoren\"])}\n },\n \"unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Otillgänglig\"])},\n \"unavailable-reason\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Det verkar som att kurstillfället '\", _interpolate(_named(\"occurrence\")), \"' har tagits bort från Ladok.\"])},\n \"uploads\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Uppladdningar\"])},\n \"note-taker\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anteckningsstöd\"])},\n \"number-of-files\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Antal filer\"])},\n \"latest-upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Senast uppladdning\"])}\n }\n },\n \"share-notes\": {\n \"page-title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dela anteckningar för kurstillfälle\"])},\n \"note-taking-date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anteckningstillfälle datum\"])},\n \"note-taking-time\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anteckningstillfälle klockan\"])},\n \"select-file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Välj anteckningsfil\"])},\n \"file-size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"filstorlek\"])},\n \"share-notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dela anteckningar\"])},\n \"popup-success\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Tack \", _interpolate(_named(\"name\")), \"!\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tack för att du laddade upp dina anteckningar.\"])}\n }\n },\n \"file-upload\": {\n \"choose-file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Välj Fil\"])},\n \"change-file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Byt fil\"])},\n \"no-file-chosen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ingen fil vald\"])},\n \"max-file-size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max filstorlek\"])},\n \"permitted-file-types\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tillåtna filtyper\"])},\n \"file-size-error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filstorleken måste vara mindre än\"])},\n \"file-type-error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filen måste vara av följande typ(er)\"])}\n },\n \"tuition-fees\": {\n \"bank-transfer\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Banköverföring\"])},\n \"card-payment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kortbetalning\"])},\n \"mirror-user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Spegla användare\"])},\n \"search-user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sök användare\"])},\n \"search-term\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sökterm\"])},\n \"search-on\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"personnummer (12 tkn), LU-konto eller namn\"])},\n \"search-results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sökresultat\"])},\n \"minimum-char\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"minst 2 tecken\"])},\n \"no-search-results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Din sökning gav inga resultat\"])},\n \"mirror\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Spegla\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tillbaka\"])},\n \"mirroring\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du speglar för närvarande\"])},\n \"stop-mirroring\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sluta spegla\"])},\n \"response\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Betalningsrespons\"])},\n \"unknown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"okänt\"])}\n },\n \"student-portal-footer\": {\n \"column-1\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontaktinformation\"])}\n }\n },\n \"tuition-fees-footer\": {\n \"column-1\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Information about tuition fees\"])},\n \"linkLabel-1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"For newly admitted students at Lund University international website\"])},\n \"linkLabel-2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"For current students at Lund University international website\"])},\n \"linkLabel-3\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lund University refund policy\"])}\n },\n \"column-2\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact us\"])},\n \"leadingText-1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The Tuition Fee Office at \"])},\n \"linkLabel-2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Other contacts\"])}\n },\n \"column-3\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shortcuts\"])},\n \"linkLabel-1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accessibility Statement\"])}\n }\n },\n \"personal-identity-number-footer\": {\n \"column-1\": {\n \"leading-text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Studieadministrativa system
Ladok (studentregistret)\"])}\n }\n },\n \"maintenance\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Systemunderhåll\"])},\n \"heading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Systemuppgradering pågår.\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"En systemuppgradering av Studentportalen pågår för närvarande.
Vi ber om ursäkt för eventuella olägenheter. Vänligen försök igen senare.\"])}\n },\n \"date\": {\n \"from\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Från\"])},\n \"to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Till\"])}\n }\n}","import { createI18n, LocaleMessages, VueMessageType } from \"vue-i18n\";\r\nimport enLocale from \"../locales/en.json\";\r\nimport svLocale from \"../locales/sv.json\";\r\n\r\nconst loadLocaleMessages = (): LocaleMessages => {\r\n const messages: LocaleMessages = {\r\n en: enLocale,\r\n sv: svLocale,\r\n };\r\n return messages;\r\n};\r\n\r\nexport default createI18n({\r\n legacy: false,\r\n globalInjection: true,\r\n locale:\r\n navigator.language.split(\"-\")[0] || process.env.VUE_APP_I18N_LOCALE || \"en\",\r\n fallbackLocale: process.env.VUE_APP_I18N_FALLBACK_LOCALE || \"en\",\r\n messages: loadLocaleMessages(),\r\n});\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LuFooter.vue?vue&type=style&index=0&id=f69ef0a8&scoped=true&lang=css\"","\r\n\r\n\r\n\r\n\r\n","import { render } from \"./Tooltip.vue?vue&type=template&id=deaa989a&scoped=true\"\nimport script from \"./Tooltip.vue?vue&type=script&lang=js\"\nexport * from \"./Tooltip.vue?vue&type=script&lang=js\"\n\nimport \"./Tooltip.vue?vue&type=style&index=0&id=deaa989a&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-deaa989a\"]])\n\nexport default __exports__","module.exports = __webpack_public_path__ + \"assets/img/Lunds_universitet_white.d5f61736.svg\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LuMain.vue?vue&type=style&index=0&id=0756f9c7&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LuTopMenuItem.vue?vue&type=style&index=0&id=e1d9ba4c&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Tooltip.vue?vue&type=style&index=0&id=deaa989a&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./Backdrop.vue?vue&type=style&index=0&id=a06b7582&scoped=true&lang=css\"","import jwt from \"jsonwebtoken\";\r\nimport LocalstorageService from \"@/services/localstorage-service\";\r\nimport store from \"@/store\";\r\nimport { Claims, Constants, SessionStorageKeys } from \"@/constants/constants\";\r\nimport type { IUser } from \"@/interfaces/IUser\";\r\nimport type { IEntitlement } from \"@/interfaces/IEntitlement\";\r\nimport SessionStorageService from \"@/services/sessionstorage-service\";\r\n\r\nexport type IEntitlementsGuard =\r\n | IEntitlement\r\n | [IEntitlementsGuard, \"and\" | \"or\", IEntitlementsGuard];\r\n\r\nexport interface JwtPayload extends jwt.JwtPayload {\r\n [Claims.Entitlement]: IEntitlement | IEntitlement[];\r\n [Claims.FirstName]: string;\r\n [Claims.LastName]: string;\r\n [Claims.LastName]: string;\r\n [Claims.LuEduPersonPrimaryId]: string;\r\n [Claims.PersonalId]: string;\r\n}\r\n\r\nclass AuthenticationService {\r\n protected readonly baseApiUrl = process.env.VUE_APP_BASE_API_URL;\r\n protected readonly localStorageJWTKey = \"jwtToken\";\r\n\r\n private getUserFromToken(token: string): IUser {\r\n const payload = jwt.decode(token) as JwtPayload;\r\n const entitlements = payload[Claims.Entitlement];\r\n const user: IUser = {\r\n firstName: payload[Claims.FirstName],\r\n lastName: payload[Claims.LastName],\r\n personalId: payload[Claims.PersonalId],\r\n email: payload[Claims.Email],\r\n entitlements:\r\n typeof entitlements === \"string\" ? [entitlements] : entitlements,\r\n luEduPersonPrimaryId: payload[Claims.LuEduPersonPrimaryId],\r\n checkEntitlement: this.hasEntitlements.bind(this),\r\n };\r\n return user;\r\n }\r\n\r\n /**\r\n * Authenticate user against IDP and return jwt token\r\n *\r\n * @returns {Promise} A promise with a jwt token\r\n */\r\n public authenticate(): Promise {\r\n const url = `${this.baseApiUrl}authorize`;\r\n return new Promise((resolve, reject) => {\r\n const popupParams =\r\n \"scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no\";\r\n const popup = window.open(url, \"Login\", popupParams);\r\n if (!popup) {\r\n return reject();\r\n }\r\n const tokenCallback = (event: MessageEvent) => {\r\n const token = event.data;\r\n if (typeof token !== \"string\") {\r\n return;\r\n }\r\n popup.close();\r\n window.removeEventListener(\"message\", tokenCallback);\r\n LocalstorageService.setItem(this.localStorageJWTKey, token);\r\n this.populateStore();\r\n resolve(token);\r\n };\r\n window.addEventListener(\"message\", tokenCallback);\r\n });\r\n }\r\n\r\n /**\r\n * Verifies that the token has not expired\r\n *\r\n * @returns {boolean} A boolean representing if the token has not expired\r\n */\r\n private verifyTokenExpiry(token: string): boolean {\r\n const { exp } = jwt.decode(token) as JwtPayload;\r\n if (!exp || Date.now() >= exp * 1000) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Fetches user authentication data\r\n *\r\n * @returns {Promise} A promise with jwt token\r\n */\r\n public getJWTToken(): string | undefined {\r\n const token = LocalstorageService.getItem(this.localStorageJWTKey);\r\n if (!token || !this.verifyTokenExpiry(token)) {\r\n return undefined;\r\n }\r\n return token;\r\n }\r\n\r\n public populateStore() {\r\n const token = this.getJWTToken();\r\n if (token) {\r\n store.commit(\"setCurrentUser\", this.getUserFromToken(token));\r\n }\r\n }\r\n\r\n public isLoggedIn(): boolean {\r\n return !!this.getJWTToken();\r\n }\r\n\r\n public hasEntitlements(entitlements: IEntitlementsGuard): boolean {\r\n const token = this.getJWTToken();\r\n if (!token) {\r\n return false;\r\n }\r\n const user = this.getUserFromToken(token);\r\n return this.validateEntitlements(user.entitlements, entitlements);\r\n }\r\n\r\n private validateEntitlements(\r\n userEntitlements: IEntitlement[] | undefined,\r\n entitlements: IEntitlementsGuard\r\n ): boolean {\r\n if (!userEntitlements) {\r\n return false;\r\n }\r\n if (userEntitlements.includes(\"SuperAdmin\")) {\r\n return true;\r\n }\r\n if (typeof entitlements === \"string\") {\r\n return userEntitlements.includes(entitlements);\r\n }\r\n const entitlement1Valid = this.validateEntitlements(\r\n userEntitlements,\r\n entitlements[0]\r\n );\r\n const entitlement2Valid = this.validateEntitlements(\r\n userEntitlements,\r\n entitlements[2]\r\n );\r\n if (entitlements[1] === \"or\") {\r\n return entitlement1Valid || entitlement2Valid;\r\n }\r\n return entitlement1Valid && entitlement2Valid;\r\n }\r\n\r\n public logout(): void {\r\n LocalstorageService.deleteItem(this.localStorageJWTKey);\r\n SessionStorageService.deleteItem(Constants.EntryUrl);\r\n SessionStorageService.deleteItem(SessionStorageKeys.IsMirroringUser);\r\n SessionStorageService.deleteItem(SessionStorageKeys.MirroredUser);\r\n SessionStorageService.deleteItem(SessionStorageKeys.MirrorUserSearchTerm);\r\n store.commit(\"setCurrentUser\", undefined);\r\n const url = `${this.baseApiUrl}Shibboleth.sso/Logout`;\r\n window.location.href = url;\r\n }\r\n}\r\n\r\nexport default new AuthenticationService();\r\n","class JsonHelper {\r\n isValidJSON(data: string): boolean {\r\n try {\r\n const parsed = JSON.parse(data);\r\n if (parsed && typeof parsed === \"object\") {\r\n return true;\r\n }\r\n } catch {\r\n return false;\r\n }\r\n return false;\r\n }\r\n}\r\n\r\nexport default new JsonHelper();\r\n","module.exports = __webpack_public_path__ + \"assets/img/Lunds_universitet.4f05485e.svg\";","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createBlock as _createBlock, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"d-none d-xl-block col-xl-3 collapse\" }\nconst _hoisted_2 = { class: \"nav-accordion nav-collapse nav-undecorated\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_LuLeftMenuItem = _resolveComponent(\"LuLeftMenuItem\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.menu, (item) => {\n return (_openBlock(), _createBlock(_component_LuLeftMenuItem, {\n key: item.id,\n item: item\n }, null, 8, [\"item\"]))\n }), 128))\n ])\n ]))\n}","\r\nimport LuLeftMenuItem from \"@/components/Lu/LuLeftMenuItem.vue\";\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport { Options, Vue } from \"vue-class-component\";\r\n\r\ninterface Item {\r\n id: string;\r\n label?: string;\r\n text?: string;\r\n path?: string;\r\n children: Item[];\r\n}\r\n\r\n@Options({\r\n components: {\r\n LuLeftMenuItem,\r\n },\r\n props: {\r\n /**\r\n * Array of items to show\r\n */\r\n menu: { type: Array as PropType, required: true },\r\n },\r\n})\r\nexport default class LuMain extends Vue {}\r\n","import { render } from \"./LuLeftMenu.vue?vue&type=template&id=c86c37fc&ts=true\"\nimport script from \"./LuLeftMenu.vue?vue&type=script&lang=ts\"\nexport * from \"./LuLeftMenu.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"modal\",\n role: \"dialog\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.onClick && _ctx.onClick(...args))),\n ref: \"backdrop\"\n }, [\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true)\n ], 512))\n}","\r\nimport { Options, Vue } from \"vue-class-component\";\r\n\r\n@Options({\r\n methods: {\r\n /**\r\n * Gets called when person clicks the backdrop.\r\n */\r\n onClick(event: Event): void {\r\n // Make sure the click was on the backdrop\r\n if (event.target === this.$refs.backdrop) {\r\n this.$emit(\"clickBackdrop\");\r\n }\r\n },\r\n },\r\n})\r\nexport default class Backdrop extends Vue {}\r\n","import { render } from \"./Backdrop.vue?vue&type=template&id=a06b7582&scoped=true&ts=true\"\nimport script from \"./Backdrop.vue?vue&type=script&lang=ts\"\nexport * from \"./Backdrop.vue?vue&type=script&lang=ts\"\n\nimport \"./Backdrop.vue?vue&type=style&index=0&id=a06b7582&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a06b7582\"]])\n\nexport default __exports__","var map = {\n\t\"./Lunds_universitet.svg\": \"3d35\",\n\t\"./Lunds_universitet_white.svg\": \"2a4f\",\n\t\"./Lunds_university.svg\": \"d420\",\n\t\"./Lunds_university_white.svg\": \"04ed\"\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 = \"69e0\";","import { renderSlot as _renderSlot, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, vShow as _vShow, withCtx as _withCtx, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"modal-dialog my-0 mx-auto\",\n role: \"document\"\n}\nconst _hoisted_2 = { class: \"modal-content border-0 rounded-0\" }\nconst _hoisted_3 = { class: \"nav border-bottom p-3 flex-row justify-content-between align-items-center sticky-top bg-white\" }\nconst _hoisted_4 = {\n id: \"modal-header\",\n class: \"h3 m-0\"\n}\nconst _hoisted_5 = [\"aria-expanded\", \"aria-label\"]\nconst _hoisted_6 = { \"aria-hidden\": \"true\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n const _component_Backdrop = _resolveComponent(\"Backdrop\")!\n\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _withDirectives(_createVNode(_component_Backdrop, { onClickBackdrop: _ctx.onClick }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"nav\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _renderSlot(_ctx.$slots, \"header\")\n ]),\n _createElementVNode(\"button\", {\n type: \"button\",\n class: \"border-0 bg-transparent cursor-pointer lh-0 p-2 nm-2\",\n \"data-dismiss\": \"modal\",\n \"aria-expanded\": _ctx.shown,\n \"aria-label\": _ctx.$t('modal.close'),\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.close && _ctx.close(...args)))\n }, [\n _createElementVNode(\"span\", _hoisted_6, [\n _createVNode(_component_font_awesome_icon, {\n class: \"fa-lg\",\n icon: 'times'\n })\n ])\n ], 8, _hoisted_5)\n ]),\n _renderSlot(_ctx.$slots, \"default\")\n ])\n ])\n ]),\n _: 3\n }, 8, [\"onClickBackdrop\"]), [\n [_vShow, _ctx.shown]\n ])\n ]))\n}","\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport Backdrop from \"@/components/Backdrop.vue\";\r\n\r\n@Options({\r\n components: {\r\n Backdrop,\r\n },\r\n props: {\r\n allowCloseOutside: { type: Boolean as PropType, default: false },\r\n },\r\n data: () => ({\r\n /**\r\n * If the modal is shown\r\n */\r\n shown: false,\r\n }),\r\n methods: {\r\n /**\r\n * Open the modal\r\n */\r\n open(): void {\r\n this.shown = true;\r\n this.$emit(\"open\");\r\n },\r\n /**\r\n * Close the modal\r\n */\r\n close(): void {\r\n this.shown = false;\r\n this.$emit(\"close\");\r\n },\r\n /**\r\n * Gets called when student clicks the modal/backdrop.\r\n * Close the modal if clicked outside modal\r\n */\r\n onClick(): void {\r\n // Make sure the student didn´t click the modal\r\n if (this.allowCloseOutside) {\r\n this.close();\r\n }\r\n },\r\n },\r\n})\r\nexport default class Modal extends Vue {}\r\n","import { render } from \"./Modal.vue?vue&type=template&id=1690c3be&ts=true\"\nimport script from \"./Modal.vue?vue&type=script&lang=ts\"\nexport * from \"./Modal.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, createVNode as _createVNode, withModifiers as _withModifiers, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"input-group input-group-round input-group-sm w-100 flex\" }\nconst _hoisted_2 = [\"value\", \"placeholder\", \"aria-label\"]\nconst _hoisted_3 = { class: \"input-group-append\" }\nconst _hoisted_4 = {\n class: \"btn btn-primary px-2\",\n type: \"submit\"\n}\nconst _hoisted_5 = { class: \"mr-2\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n\n return (_openBlock(), _createElementBlock(\"form\", {\n class: \"form-inline pr-xl-3\",\n onSubmit: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$emit('submit', _ctx.value)), [\"prevent\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n ref: \"searchInput\",\n onInput: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onInput($event.target.value))),\n value: _ctx.value,\n type: \"search\",\n class: \"form-control form-control-sm border-right-0\",\n placeholder: _ctx.placeholder,\n \"aria-label\": _ctx.ariaLabel ? _ctx.ariaLabel : _ctx.$t('shared.search')\n }, null, 40, _hoisted_2),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"button\", _hoisted_4, [\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.$t(\"form.search\")), 1),\n _createVNode(_component_font_awesome_icon, { icon: 'search' })\n ])\n ])\n ])\n ], 32))\n}","\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport { Options, Vue } from \"vue-class-component\";\r\n\r\n@Options({\r\n props: {\r\n /**\r\n * The search value\r\n */\r\n value: {\r\n type: String as PropType,\r\n required: false,\r\n default: \"\",\r\n },\r\n /**\r\n * If placeholder for the search input\r\n */\r\n placeholder: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n /**\r\n * Aria label for the search input\r\n */\r\n ariaLabel: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n },\r\n methods: {\r\n setFocus(): void {\r\n this.$refs.searchInput.focus();\r\n },\r\n onInput(searchPhrase: string): void {\r\n this.$emit(\"searchChanged\", searchPhrase);\r\n },\r\n },\r\n})\r\nexport default class Search extends Vue {}\r\n","import { render } from \"./Search.vue?vue&type=template&id=1edfed1d&ts=true\"\nimport script from \"./Search.vue?vue&type=script&lang=ts\"\nexport * from \"./Search.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./App.vue?vue&type=style&index=0&id=31e7c78a&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LuHeaderAuthButtons.vue?vue&type=style&index=0&id=2f4759b6&lang=css\"","import { renderSlot as _renderSlot, resolveDynamicComponent as _resolveDynamicComponent, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.elementType), {\n href: _ctx.href ? _ctx.href : null,\n class: _normalizeClass([\"badge\", [_ctx.level ? _ctx.c_level : '', _ctx.rounded ? 'badge-pill' : '']]),\n style: _normalizeStyle({\r\n color: _ctx.color ? _ctx.color : null,\r\n 'background-color': _ctx.backgroundColor ? _ctx.backgroundColor : null,\r\n })\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"href\", \"class\", \"style\"]))\n}","\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport { Options, Vue } from \"vue-class-component\";\r\n\r\n@Options({\r\n props: {\r\n /**\r\n * Href attribute for the badge\r\n */\r\n href: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n /**\r\n * Color of the badge\r\n */\r\n color: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n /**\r\n * Backgroundcolor of the badge\r\n */\r\n backgroundColor: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n /**\r\n * The level of the badge\r\n * @values primary, secondary, success, danger, warning, info, light, dark\r\n */\r\n level: {\r\n type: String as PropType<\r\n | \"primary\"\r\n | \"secondary\"\r\n | \"success\"\r\n | \"danger\"\r\n | \"warning\"\r\n | \"info\"\r\n | \"light\"\r\n | \"dark\"\r\n >,\r\n required: false,\r\n default: \"primary\",\r\n },\r\n /**\r\n * If the badge is rounded\r\n */\r\n rounded: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: false,\r\n },\r\n },\r\n computed: {\r\n c_level(): string {\r\n return `badge-${this.level}`;\r\n },\r\n elementType(): string {\r\n return this.href ? \"a\" : \"span\";\r\n },\r\n },\r\n})\r\nexport default class Badge extends Vue {}\r\n","import { render } from \"./Badge.vue?vue&type=template&id=5aa37952&ts=true\"\nimport script from \"./Badge.vue?vue&type=script&lang=ts\"\nexport * from \"./Badge.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LuSpinner.vue?vue&type=style&index=0&id=38903d22&scoped=true&lang=css\"","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { class: \"float-right ml-2\" }\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = { key: 2 }\nconst _hoisted_5 = [\"href\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_LuLeftMenuItem = _resolveComponent(\"LuLeftMenuItem\", true)!\n\n return (_ctx.item.children && (_ctx.item.path || _ctx.item.name))\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_1, [\n _createVNode(_component_router_link, {\n to: {\r\n ...(_ctx.item.path ? { path: _ctx.item.path } : {}),\r\n ...(_ctx.item.name ? { name: _ctx.item.name } : {}),\r\n },\n class: _normalizeClass([\"nav-link collapse\", [_ctx.expanded ? 'show' : 'collapsed']]),\n onClick: _ctx.toggleExpanded\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_font_awesome_icon, {\n icon: _ctx.expanded ? 'chevron-down' : 'chevron-right'\n }, null, 8, [\"icon\"])\n ]),\n _createTextVNode(\" \" + _toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text), 1)\n ]),\n _: 1\n }, 8, [\"to\", \"class\", \"onClick\"]),\n _createElementVNode(\"ul\", {\n class: _normalizeClass([\"nav-accordion collapse\", [_ctx.expanded ? 'show' : '']])\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.item.children, (subItem) => {\n return (_openBlock(), _createBlock(_component_LuLeftMenuItem, {\n key: subItem.id,\n item: subItem,\n onLinkSelected: _cache[0] || (_cache[0] = ($event: any) => (_ctx.setExpanded()))\n }, null, 8, [\"item\"]))\n }), 128))\n ], 2)\n ]))\n : (_ctx.item.path || _ctx.item.name)\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_3, [\n _createVNode(_component_router_link, {\n to: {\r\n ...(_ctx.item.path ? { path: _ctx.item.path } : {}),\r\n ...(_ctx.item.name ? { name: _ctx.item.name } : {}),\r\n },\n class: \"nav-link\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text), 1)\n ]),\n _: 1\n }, 8, [\"to\"])\n ]))\n : (_openBlock(), _createElementBlock(\"li\", _hoisted_4, [\n _createElementVNode(\"a\", {\n href: _ctx.item.url,\n class: \"nav-link\"\n }, _toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text), 9, _hoisted_5)\n ]))\n}","\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport { Options, Vue } from \"vue-class-component\";\r\n\r\ninterface Item {\r\n id: string;\r\n label?: string;\r\n text?: string;\r\n path?: string;\r\n children: Item[];\r\n}\r\n\r\n@Options({\r\n props: {\r\n /**\r\n * The item to show\r\n */\r\n item: { type: Object as PropType, required: true },\r\n },\r\n data() {\r\n return {\r\n expanded: false,\r\n };\r\n },\r\n watch: {\r\n $route(to) {\r\n // If link is selected emit link-selected to parent\r\n if (to.path === this.item.path) {\r\n this.$emit(\"link-selected\");\r\n }\r\n },\r\n },\r\n methods: {\r\n /**\r\n * Toggle dropdown expanded\r\n */\r\n toggleExpanded() {\r\n this.expanded = !this.expanded;\r\n },\r\n /**\r\n * Expand dropdown\r\n */\r\n setExpanded() {\r\n this.expanded = true;\r\n },\r\n },\r\n})\r\nexport default class LuLeftMenuItem extends Vue {}\r\n","import { render } from \"./LuLeftMenuItem.vue?vue&type=template&id=27868302&ts=true\"\nimport script from \"./LuLeftMenuItem.vue?vue&type=script&lang=ts\"\nexport * from \"./LuLeftMenuItem.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","/* istanbul ignore file */\r\nimport { computed } from \"vue\";\r\nimport {\r\n createRouter,\r\n createWebHistory,\r\n NavigationGuardNext,\r\n RouteLocationNormalized,\r\n RouteRecordRaw,\r\n} from \"vue-router\";\r\nimport i18n from \"@/utilities/i18n\";\r\nimport AuthenticationService from \"@/services/authentication-service\";\r\nimport store from \"@/store\";\r\n\r\nconst {\r\n global: { t },\r\n} = i18n;\r\n\r\nconst routes: Array = [\r\n {\r\n path: \"/tuitionfees\",\r\n name: \"TuitionFeeHome\",\r\n component: () => import(\"../views/TuitionFees/TuitionFeeHome.vue\"),\r\n meta: {\r\n title: computed(() => t(\"shared.routes.tuition-fees\")).value,\r\n entitlements: [\"Student\", \"or\", \"Tuition fees administratör\"],\r\n titleKey: \"shared.routes.tuition-fees\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.student-home\",\r\n path: \"/\",\r\n },\r\n ],\r\n footerContent: store.getters.getTuitionFeesFooterContent,\r\n },\r\n beforeEnter: (to, from) => {\r\n if (\r\n (from.name === \"MirrorUser\" ||\r\n from.name === \"CardPayment\" ||\r\n from.name === \"BankTransfer\" ||\r\n from.name === \"PaymentResponse\") &&\r\n AuthenticationService.hasEntitlements(\"Tuition fees administratör\") &&\r\n to.meta\r\n ) {\r\n to.meta.breadcrumbs = [\r\n {\r\n title: \"shared.routes.employee-home\",\r\n path: \"/administrator\",\r\n },\r\n {\r\n title: \"tuition-fees.mirror-user\",\r\n path: \"/administrator/tuitionfees/mirroruser\",\r\n },\r\n ];\r\n }\r\n },\r\n },\r\n {\r\n path: \"/\",\r\n name: \"StudentHome\",\r\n component: () => import(\"@/views/StudentHome.vue\"),\r\n meta: {\r\n title: computed(() => t(\"shared.routes.student-home\")).value,\r\n allowAnonymous: true,\r\n titleKey: \"shared.routes.student-home\",\r\n breadcrumbs: [],\r\n footerContent: store.getters.getStudentPortalFooterContent,\r\n },\r\n },\r\n {\r\n path: \"/note-taking-request\",\r\n name: \"NoteTakingRequest\",\r\n component: () => import(\"../views/NoteTakingRequest.vue\"),\r\n meta: {\r\n title: computed(() => t(\"shared.routes.note-taking-request\")).value,\r\n entitlements: [\"Student\", \"or\", \"SuperAdmin\"],\r\n titleKey: \"shared.routes.note-taking-request\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.student-home\",\r\n path: \"/\",\r\n },\r\n ],\r\n footerContent: store.getters.getStudentPortalFooterContent,\r\n },\r\n },\r\n {\r\n path: \"/administrator\",\r\n name: \"EmployeeHome\",\r\n component: () => import(\"../views/administrator/EmployeeHome.vue\"),\r\n meta: {\r\n title: computed(() => t(\"shared.routes.employee-home\")).value,\r\n entitlements: [\"Employee\", \"or\", \"Tuition fees administratör\"],\r\n titleKey: \"shared.routes.employee-home\",\r\n breadcrumbs: [],\r\n },\r\n },\r\n {\r\n path: \"/administrator/notetakerlist\",\r\n name: \"NoteTakerList\",\r\n component: () => import(\"../views/administrator/NoteTakerList.vue\"),\r\n meta: {\r\n title: computed(() => t(\"shared.routes.note-taker-overview\")).value,\r\n entitlements: [\r\n [\"Anteckningsstödsadministratör\", \"or\", \"Anteckningsadministratör\"],\r\n \"or\",\r\n \"Samordnare\",\r\n ],\r\n titleKey: \"shared.routes.note-taker-overview\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.employee-home\",\r\n path: \"/administrator\",\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n path: \"/administrator/studentlist\",\r\n name: \"StudentList\",\r\n component: () => import(\"../views/administrator/StudentList.vue\"),\r\n meta: {\r\n title: computed(() => t(\"shared.routes.student-overview\")).value,\r\n entitlements: [\r\n [\"Anteckningsstödsadministratör\", \"or\", \"Anteckningsadministratör\"],\r\n \"or\",\r\n \"Samordnare\",\r\n ],\r\n titleKey: \"shared.routes.student-overview\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.employee-home\",\r\n path: \"/administrator\",\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n path: \"/administrator/notetakerdetails/:id\",\r\n name: \"NoteTakerDetails\",\r\n component: () => import(\"../views/administrator/NoteTakerDetails.vue\"),\r\n meta: {\r\n title: computed(() => t(\"shared.routes.note-taker-details\")).value,\r\n entitlements: [\r\n [\"Anteckningsstödsadministratör\", \"or\", \"Anteckningsadministratör\"],\r\n \"or\",\r\n \"Samordnare\",\r\n ],\r\n titleKey: \"shared.routes.note-taker-details\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.employee-home\",\r\n path: \"/administrator\",\r\n },\r\n {\r\n title: \"shared.routes.note-taker-overview\",\r\n path: \"/administrator/notetakerlist\",\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n path: \"/administrator/addstudent\",\r\n name: \"AddStudent\",\r\n component: () => import(\"../views/administrator/AddStudent.vue\"),\r\n meta: {\r\n title: computed(() => t(\"shared.routes.add-student\")).value,\r\n entitlements: [\r\n [\"Anteckningsstödsadministratör\", \"or\", \"Anteckningsadministratör\"],\r\n \"or\",\r\n \"Samordnare\",\r\n ],\r\n titleKey: \"shared.routes.add-student\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.employee-home\",\r\n path: \"/administrator\",\r\n },\r\n {\r\n title: \"shared.routes.student-overview\",\r\n path: \"/administrator/studentlist\",\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n path: \"/administrator/studentdetails/:id\",\r\n name: \"StudentDetails\",\r\n component: () => import(\"../views/administrator/StudentDetails.vue\"),\r\n meta: {\r\n title: computed(() => t(\"shared.routes.student-details\")).value,\r\n entitlements: [\r\n [\"Anteckningsstödsadministratör\", \"or\", \"Anteckningsadministratör\"],\r\n \"or\",\r\n \"Samordnare\",\r\n ],\r\n titleKey: \"shared.routes.student-details\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.employee-home\",\r\n path: \"/administrator\",\r\n },\r\n {\r\n title: \"shared.routes.student-overview\",\r\n path: \"/administrator/studentlist\",\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n path: \"/administrator/courseoccurrencelist\",\r\n name: \"CourseOccurrenceList\",\r\n component: () => import(\"../views/administrator/CourseOccurrenceList.vue\"),\r\n meta: {\r\n title: computed(() => t(\"shared.routes.course-occurrence-overview\"))\r\n .value,\r\n entitlements: [\r\n [\"Anteckningsstödsadministratör\", \"or\", \"Anteckningsadministratör\"],\r\n \"or\",\r\n [\"Samordnare\", \"or\", \"Läsbehörighet Anteckningsstöd\"],\r\n ],\r\n titleKey: \"shared.routes.course-occurrence-overview\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.employee-home\",\r\n path: \"/administrator\",\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n path: \"/administrator/courseoccurrencedetails/:id\",\r\n name: \"CourseOccurrenceDetails\",\r\n component: () =>\r\n import(\"../views/administrator/CourseOccurrenceDetails.vue\"),\r\n meta: {\r\n title: computed(() => t(\"shared.routes.course-occurrence-details\")).value,\r\n entitlements: [\r\n [\"Anteckningsstödsadministratör\", \"or\", \"Anteckningsadministratör\"],\r\n \"or\",\r\n \"Samordnare\",\r\n ],\r\n titleKey: \"shared.routes.course-occurrence-details\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.employee-home\",\r\n path: \"/administrator\",\r\n },\r\n {\r\n title: \"shared.routes.course-occurrence-overview\",\r\n path: \"/administrator/courseoccurrencelist\",\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n path: \"/offerresponse/:id\",\r\n name: \"OfferResponse\",\r\n component: () => import(\"../views/OfferResponse.vue\"),\r\n props: (route) => {\r\n const offerId = Number.parseInt(route.params.id.toString());\r\n return { offerId };\r\n },\r\n meta: {\r\n title: computed(() => t(\"shared.routes.offer-response\")).value,\r\n entitlements: \"Student\",\r\n titleKey: \"shared.routes.offer-response\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.student-home\",\r\n path: \"/\",\r\n },\r\n ],\r\n footerContent: store.getters.getStudentPortalFooterContent,\r\n },\r\n },\r\n {\r\n path: \"/sharenotes/:id\",\r\n name: \"ShareNotes\",\r\n component: () => import(\"../views/ShareNotes.vue\"),\r\n meta: {\r\n title: computed(() => t(\"shared.routes.share-notes\")).value,\r\n entitlements: \"Student\",\r\n titleKey: \"shared.routes.share-notes\",\r\n breadcrumbs: [{ title: \"shared.routes.student-home\", path: \"/\" }],\r\n footerContent: store.getters.getStudentPortalFooterContent,\r\n },\r\n },\r\n {\r\n path: \"/unauthorized\",\r\n name: \"Unauthorized\",\r\n component: () => import(\"../views/Unauthorized.vue\"),\r\n meta: {\r\n title: computed(() => t(\"unauthorized.title\")).value,\r\n titleKey: \"unauthorized.title\",\r\n breadcrumbs: [],\r\n footerContent: store.getters.getStudentPortalFooterContent,\r\n allowAnonymous: true,\r\n },\r\n },\r\n {\r\n path: \"/not-found\",\r\n alias: [\"/:pathMatch(.*)\"],\r\n name: \"NotFound\",\r\n component: () => import(\"../views/NotFound.vue\"),\r\n meta: {\r\n title: computed(() => t(\"not-found.title\")).value,\r\n allowAnonymous: true,\r\n titleKey: \"not-found.title\",\r\n breadcrumbs: [],\r\n footerContent: store.getters.getStudentPortalFooterContent,\r\n },\r\n },\r\n {\r\n path: \"/administrator/tuitionfees/mirroruser\",\r\n name: \"MirrorUser\",\r\n component: () =>\r\n import(\"../views/TuitionFees/administrator/MirrorUser.vue\"),\r\n meta: {\r\n title: computed(() => t(\"tuition-fees.mirror-user\")).value,\r\n entitlements: \"Tuition fees administratör\",\r\n titleKey: \"tuition-fees.mirror-user\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.employee-home\",\r\n path: \"/administrator\",\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n path: \"/tuitionfees/cardpayment/:invoiceNo\",\r\n name: \"CardPayment\",\r\n component: () => import(\"../views/TuitionFees/CardPayment.vue\"),\r\n meta: {\r\n title: computed(() => t(\"tuition-fees.card-payment\")).value,\r\n entitlements: [\"Student\", \"or\", \"Tuition fees administratör\"],\r\n titleKey: \"tuition-fees.card-payment\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.student-home\",\r\n path: \"/\",\r\n },\r\n {\r\n title: \"shared.routes.tuition-fees\",\r\n path: \"/tuitionfees\",\r\n },\r\n ],\r\n footerContent: store.getters.getTuitionFeesFooterContent,\r\n },\r\n beforeEnter: (to, from) => {\r\n if (\r\n from.name === \"TuitionFeeHome\" &&\r\n AuthenticationService.hasEntitlements(\"Tuition fees administratör\") &&\r\n to.meta\r\n ) {\r\n to.meta.breadcrumbs = [\r\n {\r\n title: \"shared.routes.employee-home\",\r\n path: \"/administrator\",\r\n },\r\n {\r\n title: \"tuition-fees.mirror-user\",\r\n path: \"/administrator/tuitionfees/mirroruser\",\r\n },\r\n {\r\n title: \"shared.routes.tuition-fees\",\r\n path: from.path,\r\n },\r\n ];\r\n }\r\n },\r\n },\r\n {\r\n path: \"/tuitionfees/banktransfer/:invoiceNo\",\r\n name: \"BankTransfer\",\r\n component: () => import(\"../views/TuitionFees/BankTransfer.vue\"),\r\n meta: {\r\n title: computed(() => t(\"tuition-fees.bank-transfer\")).value,\r\n entitlements: [\"Student\", \"or\", \"Tuition fees administratör\"],\r\n titleKey: \"tuition-fees.bank-transfer\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.student-home\",\r\n path: \"/\",\r\n },\r\n {\r\n title: \"shared.routes.tuition-fees\",\r\n path: \"/tuitionfees\",\r\n },\r\n ],\r\n footerContent: store.getters.getTuitionFeesFooterContent,\r\n },\r\n beforeEnter: (to, from) => {\r\n if (\r\n from.name === \"TuitionFeeHome\" &&\r\n AuthenticationService.hasEntitlements(\"Tuition fees administratör\") &&\r\n to.meta\r\n ) {\r\n to.meta.breadcrumbs = [\r\n {\r\n title: \"shared.routes.employee-home\",\r\n path: \"/administrator\",\r\n },\r\n {\r\n title: \"tuition-fees.mirror-user\",\r\n path: \"/administrator/tuitionfees/mirroruser\",\r\n },\r\n {\r\n title: \"shared.routes.tuition-fees\",\r\n path: from.path,\r\n },\r\n ];\r\n }\r\n },\r\n },\r\n {\r\n path: \"/tuitionfees/paymentresponse\",\r\n name: \"PaymentResponse\",\r\n component: () => import(\"../views/TuitionFees/PaymentResponse.vue\"),\r\n meta: {\r\n title: computed(() => t(\"tuition-fees.response\")).value,\r\n allowAnonymous: true,\r\n titleKey: \"tuition-fees.response\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.student-home\",\r\n path: \"/\",\r\n },\r\n {\r\n title: \"shared.routes.tuition-fees\",\r\n path: \"/tuitionfees\",\r\n },\r\n ],\r\n footerContent: store.getters.getTuitionFeesFooterContent,\r\n },\r\n beforeEnter: (to, from) => {\r\n if (\r\n from.name === \"CardPayment\" &&\r\n AuthenticationService.hasEntitlements(\"Tuition fees administratör\") &&\r\n to.meta\r\n ) {\r\n to.meta.breadcrumbs = [\r\n {\r\n title: \"shared.routes.employee-home\",\r\n path: \"/administrator\",\r\n },\r\n {\r\n title: \"tuition-fees.mirror-user\",\r\n path: \"/administrator/tuitionfees/mirroruser\",\r\n },\r\n {\r\n title: \"shared.routes.tuition-fees\",\r\n path: \"/tuitionfees\",\r\n },\r\n ];\r\n }\r\n },\r\n },\r\n {\r\n path: \"/maintenance\",\r\n name: \"Maintenance\",\r\n component: () => import(\"../views/Maintenance.vue\"),\r\n meta: {\r\n title: computed(() => t(\"maintenance.title\")).value,\r\n allowAnonymous: true,\r\n titleKey: \"maintenance.title\",\r\n breadcrumbs: [],\r\n footerContent: store.getters.getStudentPortalFooterContent,\r\n },\r\n },\r\n {\r\n path: \"/personal-identity-number\",\r\n name: \"SocialSecurityNumber\",\r\n component: () =>\r\n import(\"../views/SocialSecurityNumber/SocialSecurityNumber.vue\"),\r\n meta: {\r\n title: computed(() => t(\"shared.routes.personal-identity-number\")).value,\r\n entitlements: [[\"Student\", \"or\", \"Pnradministratör\"], \"or\", \"SuperAdmin\"],\r\n titleKey: \"shared.routes.personal-identity-number\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.student-home\",\r\n path: \"/\",\r\n },\r\n ],\r\n footerContent:\r\n store.getters.getStudentPortalSocialSecurityNumberFooterContent,\r\n },\r\n },\r\n {\r\n path: \"/personal-identity-number/student\",\r\n name: \"SocialSecurityNumberStudent\",\r\n component: () => import(\"../views/SocialSecurityNumber/Student.vue\"),\r\n meta: {\r\n title: computed(() => t(\"shared.routes.personal-identity-number\")).value,\r\n entitlements: [[\"Student\", \"or\", \"Pnradministratör\"], \"or\", \"SuperAdmin\"],\r\n titleKey: \"shared.routes.personal-identity-number\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.student-home\",\r\n path: \"/\",\r\n },\r\n ],\r\n footerContent:\r\n store.getters.getStudentPortalSocialSecurityNumberFooterContent,\r\n },\r\n },\r\n {\r\n path: \"/personal-identity-number/admin\",\r\n name: \"SocialSecurityNumberAdmin\",\r\n component: () => import(\"../views/SocialSecurityNumber/Admin.vue\"),\r\n meta: {\r\n title: computed(() => t(\"shared.routes.personal-identity-number\")).value,\r\n entitlements: [[\"Student\", \"or\", \"Pnradministratör\"], \"or\", \"SuperAdmin\"],\r\n titleKey: \"shared.routes.personal-identity-number\",\r\n breadcrumbs: [\r\n {\r\n title: \"shared.routes.student-home\",\r\n path: \"/\",\r\n },\r\n ],\r\n footerContent:\r\n store.getters.getStudentPortalSocialSecurityNumberFooterContent,\r\n },\r\n },\r\n];\r\n\r\nconst router = createRouter({\r\n history: createWebHistory(process.env.BASE_URL),\r\n routes,\r\n});\r\n\r\n// Array använd case 1 / case 2 beroende på villkor. Hitta breadcrumbs genom meta\r\n// Genomgå if satsen\r\nrouter.beforeEach(\r\n async (\r\n to: RouteLocationNormalized,\r\n from: RouteLocationNormalized,\r\n next: NavigationGuardNext\r\n ) => {\r\n if (to.meta.allowAnonymous === true) {\r\n return next();\r\n }\r\n\r\n if (!AuthenticationService.isLoggedIn()) {\r\n try {\r\n await AuthenticationService.authenticate();\r\n } catch (error) {\r\n return next({ name: \"Unauthorized\", query: { redirect: from.path } });\r\n }\r\n }\r\n\r\n const entitlementGuard = to.meta.entitlements;\r\n if (entitlementGuard) {\r\n if (!AuthenticationService.hasEntitlements(entitlementGuard)) {\r\n return next({ name: \"Unauthorized\", query: { redirect: from.path } });\r\n }\r\n }\r\n\r\n return next();\r\n }\r\n);\r\n\r\nexport default router;\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-38903d22\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"spinner text-center\" }\nconst _hoisted_2 = { class: \"text-primary\" }\nconst _hoisted_3 = { class: \"font-weight-bold\" }\n\nimport { withDefaults } from \"vue\";\r\n\r\ninterface Props {\r\n text?: string;\r\n size?: 1 | 2 | 3 | 4 | 5;\r\n}\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n props: {\n text: { default: \"\" },\n size: { default: 2 }\n },\n setup(__props: any) {\n\r\n\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"p\", _hoisted_2, [\n _createVNode(_component_font_awesome_icon, {\n class: _normalizeClass([`fa-${__props.size}x`, \"fa-spin\"]),\n icon: \"circle-notch\"\n }, null, 8, [\"class\"])\n ]),\n _createElementVNode(\"p\", _hoisted_3, _toDisplayString(__props.text), 1)\n ]))\n}\n}\n\n})","import script from \"./LuSpinner.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LuSpinner.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./LuSpinner.vue?vue&type=style&index=0&id=38903d22&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-38903d22\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LuHeader.vue?vue&type=style&index=0&id=d7a483fa&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LuNavMobileItem.vue?vue&type=style&index=0&id=30bbf18f&scoped=true&lang=css\"","class PageContentIds {\r\n static readonly EmployeeStart = 1;\r\n static readonly StudentStart = 2;\r\n}\r\n\r\nexport class Claims {\r\n static readonly Entitlement =\r\n \"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\";\r\n static readonly FirstName =\r\n \"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname\";\r\n static readonly LastName =\r\n \"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname\";\r\n static readonly Email =\r\n \"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress\";\r\n static readonly LuEduPersonPrimaryId = \"luEduPersonPrimaryId\";\r\n static readonly PersonalId = \"personalId\";\r\n}\r\nexport class Constants {\r\n static readonly DateFormat = \"YYYY-MM-DD\";\r\n static readonly DateTimeFormat = \"YYYY-MM-DD HH:mm\";\r\n static readonly NoteTakingFunctionId = 1;\r\n static readonly Language = \"language\";\r\n static readonly PageContentIds = PageContentIds;\r\n static readonly Claims = Claims;\r\n static readonly SearchSubmissionDelayMilliseconds = 1000;\r\n static readonly CourseTitleTruncationLength = 40;\r\n static readonly StudentHomePageTypeId = 1;\r\n static readonly EmployeeHomePageTypeId = 2;\r\n static readonly NoteSupportFilesRelativeUrl = \"files/note-support/\";\r\n static readonly NoteSupportTermsAndConditionsPdfSv =\r\n \"Överenskommelse om uppdrag som anteckningsstöd.pdf\";\r\n static readonly NoteSupportTermsAndConditionsPdfEn =\r\n \"Agreement on assignment as note-taking support.pdf\";\r\n static readonly NotAvailable = \"unavailable\";\r\n static readonly MinDateValue = \"0001-01-01\";\r\n\r\n /************* localstorage keys *************/\r\n static readonly FilteredNoteTakerIds = \"filteredNoteTakerIds\";\r\n static readonly FilteredStudentIds = \"filteredStudentIds\";\r\n static readonly SortedCourseOccurrenceIds = \"sortedCourseOccurrenceIds\";\r\n static readonly NoteTakerTableUserPagingData = \"noteTakerTableUserPagingData\";\r\n static readonly StudentTableUserPagingData = \"studentTableUserPagingData\";\r\n static readonly CourseOccurrenceTableUserPagingData =\r\n \"courseOccurrenceTableUserPagingData\";\r\n static readonly NoteTakerSupportCourseTableUserPagingData =\r\n \"noteTakerSupportCourseTableUserPagingData\";\r\n static readonly StudentSupportCourseTableUserPagingData =\r\n \"studentSupportCourseTableUserPagingData\";\r\n static readonly EntryUrl = \"entryUrl\";\r\n}\r\n\r\nexport class SessionStorageKeys {\r\n static readonly PaymentResponse = \"paymentResponse\";\r\n static readonly MirroredUser = \"mirroredUser\";\r\n static readonly MirrorUserSearchTerm = \"mirrorUserSearchTerm\";\r\n static readonly IsMirroringUser = \"isMirroringUser\";\r\n static readonly Coordinators = \"coordinators\";\r\n}\r\n","import JsonHelper from \"@/helpers/json-helper\";\r\n\r\nclass SessionStorageService {\r\n /**\r\n * The function `setItem` stores data in sessionStorage, converting non-string data to JSON before saving.\r\n * @param {string} key - The `key` parameter is a string that represents the key under which the data will be stored in the sessionStorage\r\n * @param {unknown} data - The `data` parameter in the `setItem` function can be of type `string` or any other data type. If the `data`\r\n * is a string, it is directly stored in the sessionStorage under the specified `key`. If the `data` is not a string, it is first\r\n * converted\r\n * @returns The `setItem` function returns a boolean value. It returns `true` if the data was successfully stored in the sessionStorage,\r\n * and `false` if an error occurred during the process.\r\n */\r\n setItem(key: string, data: unknown): boolean {\r\n try {\r\n if (typeof data === \"string\") {\r\n sessionStorage.setItem(key, data);\r\n } else {\r\n sessionStorage.setItem(key, JSON.stringify(data));\r\n }\r\n return true;\r\n } catch (e) {\r\n console.error(\"sessionStorageService.setItem ~ error\", e);\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * The function `getItem` retrieves data from sessionStorage, parsing it as JSON if valid, and returning it as the specified type or\r\n * undefined.\r\n * @param {string} key - The `key` parameter is a string that represents the key used to retrieve data from the sessionStorage.\r\n * @returns The `getItem` function returns a value of type `T` or `undefined`.\r\n */\r\n getItem(key: string): T | undefined {\r\n if (key) {\r\n const storageData = sessionStorage.getItem(key);\r\n if (storageData) {\r\n try {\r\n if (JsonHelper.isValidJSON(storageData)) {\r\n const data = JSON.parse(storageData);\r\n return data;\r\n } else {\r\n return storageData as unknown as T;\r\n }\r\n } catch (e) {\r\n console.error(\"sessionStorageService.getItem ~ error\", e);\r\n return undefined;\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * The `deleteItem` function removes an item from the session storage based on the provided key.\r\n * @param {string} key - The `key` parameter in the `deleteItem` function is a string that represents\r\n * the key of the item you want to remove from the sessionStorage.\r\n */\r\n deleteItem(key: string) {\r\n sessionStorage.removeItem(key);\r\n }\r\n\r\n /**\r\n * The function `keyExists` checks if a key exists in the `sessionStorage` object in TypeScript.\r\n * @param {string} key - The `keyExists` function takes a `key` parameter, which is a string representing the key that you want to check\r\n * for existence in the `sessionStorage` object.\r\n * @returns The function `keyExists` is returning a boolean value, which indicates whether the key exists in the `sessionStorage` object.\r\n */\r\n keyExists(key: string): boolean {\r\n return Object.prototype.hasOwnProperty.call(sessionStorage, key);\r\n }\r\n}\r\n\r\nexport default new SessionStorageService();\r\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, Fragment as _Fragment, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"d-flex flex-column min-vh-100\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_LuSpinner = _resolveComponent(\"LuSpinner\")!\n const _component_Backdrop = _resolveComponent(\"Backdrop\")!\n const _component_LuHeader = _resolveComponent(\"LuHeader\")!\n const _component_BreadCrumbs = _resolveComponent(\"BreadCrumbs\")!\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_LuMain = _resolveComponent(\"LuMain\")!\n const _component_LuFooter = _resolveComponent(\"LuFooter\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_ctx.showSpinner)\n ? (_openBlock(), _createBlock(_component_Backdrop, { key: 0 }, {\n default: _withCtx(() => [\n _createVNode(_component_LuSpinner, {\n class: \"spinner\",\n size: 3\n })\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_LuHeader, {\n navbarmenu: null,\n topmenu: _ctx.getMenu,\n mobilemenu: _ctx.getMenu,\n \"empty-search\": \"\",\n \"logo-url\": \"/\",\n \"logo-src\": \r\n require(`@/assets/Lunds_${\r\n _ctx.$root.$i18n.locale === 'sv' ? 'universitet' : 'university'\r\n }.svg`)\r\n ,\n \"logo-title\": _ctx.$t('shared.lunds-university'),\n showMobileMenu: _ctx.showMobileMenu,\n showLogin: _ctx.showLogin,\n compact: \"\"\n }, null, 8, [\"topmenu\", \"mobilemenu\", \"logo-src\", \"logo-title\", \"showMobileMenu\", \"showLogin\"]),\n _createVNode(_component_BreadCrumbs),\n _createVNode(_component_LuMain, {\n compact: \"\",\n class: \"flex-grow-1\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_router_view)\n ]),\n _: 1\n }),\n (_ctx.showFooter)\n ? (_openBlock(), _createBlock(_component_LuFooter, {\n key: 0,\n footerContent: _ctx.footerContent\n }, null, 8, [\"footerContent\"]))\n : _createCommentVNode(\"\", true)\n ])\n ], 64))\n}","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, withCtx as _withCtx, normalizeClass as _normalizeClass, vShow as _vShow, withDirectives as _withDirectives, Transition as _Transition, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-d7a483fa\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"header nav-undecorated\" }\nconst _hoisted_2 = { class: \"border-bottom\" }\nconst _hoisted_3 = { class: \"container-fluid mw-xl\" }\nconst _hoisted_4 = { class: \"col p-0\" }\nconst _hoisted_5 = { class: \"d-flex justify-content-between align-items-center h-100\" }\nconst _hoisted_6 = { class: \"header-logo header-logo-lu flex-grow-1 flex-lg-grow-0\" }\nconst _hoisted_7 = { class: \"m-0 p-0\" }\nconst _hoisted_8 = [\"href\", \"title\"]\nconst _hoisted_9 = [\"src\", \"alt\"]\nconst _hoisted_10 = { class: \"flex-shrink-1 flex-lg-shrink-0 flex-grow-0 d-flex flex-column justify-content-between h-100 mh-120\" }\nconst _hoisted_11 = { class: \"h-lg-auto flex-column justify-content-between align-items-end font-size-sm font-size-sm-base flex-grow-0\" }\nconst _hoisted_12 = { class: \"nav text-center h-100 h-lg-auto align-items-center d-lg-none flex-nowrap\" }\nconst _hoisted_13 = {\n key: 0,\n class: \"nav-item\"\n}\nconst _hoisted_14 = [\"aria-label\"]\nconst _hoisted_15 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_16 = {\n key: 1,\n class: \"nav-item\"\n}\nconst _hoisted_17 = [\"aria-label\"]\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_19 = { key: 2 }\nconst _hoisted_20 = { class: \"d-none d-lg-flex flex-column flex-xl-row w-100 justify-content-end\" }\nconst _hoisted_21 = {\n key: 0,\n class: \"nav align-items-center justify-content-end flex-1 mb-3 mb-xl-0\"\n}\nconst _hoisted_22 = { class: \"nav-item flex-xl-grow-1\" }\nconst _hoisted_23 = { class: \"nav align-items-center justify-content-end\" }\nconst _hoisted_24 = { class: \"nav-item d-none d-lg-block\" }\nconst _hoisted_25 = { class: \"mr-1\" }\nconst _hoisted_26 = {\n key: 0,\n class: \"nav-item\"\n}\nconst _hoisted_27 = { class: \"mr-1\" }\nconst _hoisted_28 = { class: \"nav-item\" }\nconst _hoisted_29 = {\n class: \"nav-link px-0 ml-4\",\n href: \"#\"\n}\nconst _hoisted_30 = { class: \"mr-1\" }\nconst _hoisted_31 = {\n key: 2,\n class: \"nav-item d-none d-lg-block d-xl-none border-left ml-3 pl-3\"\n}\nconst _hoisted_32 = [\"aria-label\"]\nconst _hoisted_33 = { class: \"header-search-form collapse-lg pb-2 px-2\" }\nconst _hoisted_34 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { style: {\"display\":\"none\"} }, [\n /*#__PURE__*/_createElementVNode(\"div\", { id: \"__ba_launchpad\" })\n], -1))\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_LuNavbar = _resolveComponent(\"LuNavbar\")!\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n const _component_LuHeaderAuthButtons = _resolveComponent(\"LuHeaderAuthButtons\")!\n const _component_Search = _resolveComponent(\"Search\")!\n const _component_Badge = _resolveComponent(\"Badge\")!\n const _component_LuTopMenu = _resolveComponent(\"LuTopMenu\")!\n const _component_LuNavMobile = _resolveComponent(\"LuNavMobile\")!\n\n return (_openBlock(), _createElementBlock(\"header\", _hoisted_1, [\n (_ctx.navbarmenu)\n ? (_openBlock(), _createBlock(_component_LuNavbar, {\n key: 0,\n menu: _ctx.navbarmenu\n }, null, 8, [\"menu\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"row m-0\", [_ctx.compact ? 'py-2' : 'py-3 py-lg-5']])\n }, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"h1\", _hoisted_7, [\n _createElementVNode(\"a\", {\n href: _ctx.logoUrl,\n title: _ctx.logoTitle\n }, [\n (_ctx.logoSrc)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: _ctx.logoSrc,\n alt: _ctx.logoTitle,\n class: \"mw-100\",\n style: {\"height\":\"7rem\"}\n }, null, 8, _hoisted_9))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_8)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"nav\", _hoisted_12, [\n (_ctx.hasSearch)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createElementVNode(\"a\", {\n class: \"ml-2 p-1 d-block nav-undecorated\",\n href: \"#\",\n \"data-toggle\": \"collapse\",\n \"aria-controls\": \"header-search-form\",\n \"aria-expanded\": \"false\",\n \"aria-label\": _ctx.$t('header.show-hide-search'),\n onClick: _cache[0] || (_cache[0] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.toggleSearch && _ctx.toggleSearch(...args)), [\"prevent\"]))\n }, [\n _createVNode(_component_font_awesome_icon, { icon: 'search' }),\n _hoisted_15,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t(\"shared.search\")), 1)\n ], 8, _hoisted_14)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.showMobileMenu)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_16, [\n _createElementVNode(\"a\", {\n class: \"ml-2 p-1 d-block nav-undecorated\",\n href: \"#\",\n \"aria-controls\": \"nav-mobile\",\n \"aria-expanded\": \"false\",\n \"aria-label\": _ctx.$t('header.show-menu'),\n onClick: _cache[1] || (_cache[1] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.showNavMobile && _ctx.showNavMobile(...args)), [\"prevent\"]))\n }, [\n _createVNode(_component_font_awesome_icon, { icon: 'bars' }),\n _hoisted_18,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t(\"header.menu\")), 1)\n ], 8, _hoisted_17)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_19, [\n (_ctx.showLogin)\n ? (_openBlock(), _createBlock(_component_LuHeaderAuthButtons, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_20, [\n (_ctx.hasSearch)\n ? (_openBlock(), _createElementBlock(\"nav\", _hoisted_21, [\n _createElementVNode(\"div\", _hoisted_22, [\n (_ctx.hasSearch)\n ? (_openBlock(), _createBlock(_component_Search, {\n key: 0,\n value: _ctx.searchValue,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.searchValue) = $event)),\n onSubmit: _ctx.search,\n placeholder: _ctx.searchPlaceholder\n }, null, 8, [\"value\", \"onSubmit\", \"placeholder\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"nav\", _hoisted_23, [\n _createElementVNode(\"div\", _hoisted_24, [\n _createElementVNode(\"a\", {\n class: \"nav-link px-0 ml-4\",\n href: \"#\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.switchLocale && _ctx.switchLocale(...args)), [\"prevent\"]))\n }, [\n _createElementVNode(\"span\", _hoisted_25, [\n _createVNode(_component_font_awesome_icon, {\n class: \"fa-lg\",\n icon: \"globe\"\n })\n ]),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t(\"header.select-locale.language\")), 1)\n ])\n ]),\n (_ctx.hasListen)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_26, [\n _createElementVNode(\"a\", {\n class: \"nav-link px-0 ml-4\",\n href: \"#\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.listen && _ctx.listen(...args)), [\"prevent\"]))\n }, [\n _createElementVNode(\"span\", _hoisted_27, [\n _createVNode(_component_font_awesome_icon, {\n class: \"fa-solid\",\n icon: \"volume\"\n })\n ]),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t(\"header.listen\")), 1)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.showLogin)\n ? (_openBlock(), _createBlock(_component_LuHeaderAuthButtons, { key: 1 }))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_28, [\n _createElementVNode(\"a\", _hoisted_29, [\n _createElementVNode(\"span\", _hoisted_30, [\n (\r\n _ctx.environment === 'Development' ||\r\n _ctx.environment === 'Test'\r\n )\n ? (_openBlock(), _createBlock(_component_Badge, { key: 0 }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.environment), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n (_ctx.showMobileMenu)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_31, [\n _createElementVNode(\"a\", {\n class: \"nav-link\",\n href: \"#\",\n \"aria-controls\": \"nav-mobile\",\n \"aria-expanded\": \"false\",\n \"aria-label\": _ctx.$t('header.show-menu'),\n onClick: _cache[5] || (_cache[5] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.showNavMobile && _ctx.showNavMobile(...args)), [\"prevent\"]))\n }, [\n _createVNode(_component_font_awesome_icon, { icon: 'bars' }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t(\"header.menu\")), 1)\n ], 8, _hoisted_32)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n (_ctx.topmenu)\n ? (_openBlock(), _createBlock(_component_LuTopMenu, {\n key: 0,\n menu: _ctx.topmenu\n }, null, 8, [\"menu\"]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ])\n ], 2)\n ]),\n _createVNode(_Transition, { name: \"slide\" }, {\n default: _withCtx(() => [\n _withDirectives(_createElementVNode(\"div\", _hoisted_33, [\n (_ctx.hasSearch)\n ? (_openBlock(), _createBlock(_component_Search, {\n key: 0,\n value: _ctx.searchValue,\n \"onUpdate:value\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.searchValue) = $event)),\n onSubmit: _ctx.search,\n placeholder: _ctx.searchPlaceholder,\n ref: \"mobileSearchInput\"\n }, null, 8, [\"value\", \"onSubmit\", \"placeholder\"]))\n : _createCommentVNode(\"\", true)\n ], 512), [\n [_vShow, !_ctx.searchCollapsed]\n ])\n ]),\n _: 1\n })\n ]),\n _createVNode(_component_LuNavMobile, {\n menu: _ctx.mobilemenu,\n ref: \"navMobile\"\n }, null, 8, [\"menu\"]),\n _hoisted_34\n ]))\n}","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, withCtx as _withCtx, createElementBlock as _createElementBlock, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = { class: \"nav-item\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"nav-item\"\n}\nconst _hoisted_3 = { class: \"px-0 ml-2\" }\nconst _hoisted_4 = { class: \"underline\" }\nconst _hoisted_5 = {\n key: 1,\n class: \"px-0 ml-2\"\n}\nconst _hoisted_6 = {\n key: 1,\n class: \"nav-item\"\n}\nconst _hoisted_7 = { class: \"px-0 ml-2\" }\n\nimport { computed, ComputedRef } from \"vue\";\r\nimport { useStore } from \"vuex\";\r\nimport AuthenticationService from \"@/services/authentication-service\";\r\n\r\n\nexport default /*#__PURE__*/_defineComponent({\n setup(__props) {\n\r\nconst store = useStore();\r\n\r\nconst isLoggedIn: ComputedRef = computed(\r\n (): boolean => !!store.state.currentUser\r\n);\r\n\r\nconst isAdmin: ComputedRef = computed(() => {\r\n const currentUser = store.state.currentUser;\r\n return currentUser && currentUser.entitlements.includes(\"Employee\");\r\n});\r\n\r\nfunction login() {\r\n AuthenticationService.authenticate();\r\n}\r\n\r\nfunction logout() {\r\n AuthenticationService.logout();\r\n}\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"a\", {\n class: \"nav-link px-0 ml-4\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(() => (_unref(isLoggedIn) ? logout() : login()), [\"prevent\"])),\n href: \"#\"\n }, [\n (_unref(isLoggedIn))\n ? (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: 0,\n class: \"fa-lg\",\n icon: \"sign-out-alt\",\n title: _ctx.$t('auth.logout')\n }, null, 8, [\"title\"]))\n : (_openBlock(), _createBlock(_component_font_awesome_icon, {\n key: 1,\n class: \"fa-lg\",\n icon: \"sign-in-alt\",\n title: _ctx.$t('auth.login')\n }, null, 8, [\"title\"]))\n ])\n ]),\n (_unref(isLoggedIn))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(isAdmin))\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: { name: 'EmployeeHome' }\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"p\", _hoisted_3, [\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$store.state.currentUser.firstName) + \" \" + _toDisplayString(_ctx.$store.state.currentUser.lastName), 1)\n ])\n ]),\n _: 1\n }))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_5, [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$store.state.currentUser.firstName) + \" \" + _toDisplayString(_ctx.$store.state.currentUser.lastName), 1)\n ]))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"p\", _hoisted_7, _toDisplayString(_ctx.$t(\"auth.login\")), 1)\n ]))\n ], 64))\n}\n}\n\n})","import script from \"./LuHeaderAuthButtons.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LuHeaderAuthButtons.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./LuHeaderAuthButtons.vue?vue&type=style&index=0&id=2f4759b6&lang=css\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createBlock as _createBlock, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"bg-dark d-none d-lg-block\" }\nconst _hoisted_2 = { class: \"container-fluid mw-xl py-0\" }\nconst _hoisted_3 = { class: \"navbar navbar-expand-md navbar-dark bg-dark font-size-sm p-0 text-white\" }\nconst _hoisted_4 = {\n id: \"navbarSupportedContent\",\n class: \"collapse navbar-collapse nmx-2\"\n}\nconst _hoisted_5 = { class: \"navbar-nav flex-row ml-auto\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_LuNavbarItem = _resolveComponent(\"LuNavbarItem\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"nav\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"ul\", _hoisted_5, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.menu, (item) => {\n return (_openBlock(), _createBlock(_component_LuNavbarItem, {\n key: item.id,\n item: item\n }, null, 8, [\"item\"]))\n }), 128))\n ])\n ])\n ])\n ])\n ]))\n}","import { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"nav-item\"\n}\nconst _hoisted_2 = [\"href\"]\nconst _hoisted_3 = {\n key: 1,\n class: \"nav-item dropdown dropdown-hover\"\n}\nconst _hoisted_4 = [\"href\"]\nconst _hoisted_5 = {\n class: \"dropdown-menu dropdown-menu-right text-primary\",\n \"aria-labelledby\": \"sm-lu-fakulteter\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_fa_icon = _resolveComponent(\"fa-icon\")!\n const _component_LuDropdownItem = _resolveComponent(\"LuDropdownItem\")!\n\n return (!_ctx.item.children)\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_1, [\n (_ctx.item.path || _ctx.item.name)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: {\r\n ...(_ctx.item.path ? { path: _ctx.item.path } : {}),\r\n ...(_ctx.item.name ? { name: _ctx.item.name } : {}),\r\n },\n class: \"nav-link px-3\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : (_openBlock(), _createElementBlock(\"a\", {\n key: 1,\n class: \"nav-link px-3\",\n href: _ctx.item.url\n }, _toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text), 9, _hoisted_2))\n ]))\n : (_openBlock(), _createElementBlock(\"li\", _hoisted_3, [\n (_ctx.item.path || _ctx.item.name)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: {\r\n ...(_ctx.item.path ? { path: _ctx.item.path } : {}),\r\n ...(_ctx.item.name ? { name: _ctx.item.name } : {}),\r\n },\n class: \"nav-link dropdown-toggle px-3\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text) + \"  \", 1),\n _createVNode(_component_fa_icon, { icon: ['fal', 'chevron-down'] })\n ]),\n _: 1\n }, 8, [\"to\"]))\n : (_openBlock(), _createElementBlock(\"a\", {\n key: 1,\n class: \"nav-link dropdown-toggle px-3\",\n href: _ctx.item.url,\n \"aria-haspopup\": \"true\"\n }, [\n _createTextVNode(_toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text) + \"  \", 1),\n _createVNode(_component_fa_icon, { icon: ['fal', 'chevron-down'] })\n ], 8, _hoisted_4)),\n _createElementVNode(\"div\", _hoisted_5, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.item.children, (subItem) => {\n return (_openBlock(), _createBlock(_component_LuDropdownItem, {\n key: subItem.id,\n item: subItem\n }, null, 8, [\"item\"]))\n }), 128))\n ])\n ]))\n}","import { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"href\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_ctx.item.path || _ctx.item.name)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: {\r\n ...(_ctx.item.path ? { path: _ctx.item.path } : {}),\r\n ...(_ctx.item.name ? { name: _ctx.item.name } : {}),\r\n },\n class: _normalizeClass([\"dropdown-item\", { active: _ctx.active }])\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text), 1)\n ]),\n _: 1\n }, 8, [\"to\", \"class\"]))\n : (_openBlock(), _createElementBlock(\"a\", {\n key: 1,\n href: _ctx.item.url,\n class: _normalizeClass([\"dropdown-item\", { active: _ctx.active }])\n }, _toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text), 11, _hoisted_1))\n}","\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport { PropType } from \"@vue/runtime-core\";\r\n\r\n@Options({\r\n props: {\r\n /**\r\n * The item to show in dropdown\r\n */\r\n item: {\r\n type: Object as PropType<{ label?: string; text?: string; url?: string }>,\r\n required: true,\r\n },\r\n },\r\n computed: {\r\n /**\r\n * If the route is the currently showing page\r\n */\r\n active() {\r\n return (\r\n this.$route.path === this.item?.path ||\r\n this.$route.name === this.item?.name\r\n );\r\n },\r\n },\r\n})\r\nexport default class LuDropdownItem extends Vue {}\r\n","import { render } from \"./LuDropdownItem.vue?vue&type=template&id=2d0b535b&ts=true\"\nimport script from \"./LuDropdownItem.vue?vue&type=script&lang=ts\"\nexport * from \"./LuDropdownItem.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport LuDropdownItem from \"@/components/Lu/LuDropdownItem.vue\";\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport type { IMenuItem } from \"@/interfaces/IMenuItem\";\r\n\r\n@Options({\r\n components: {\r\n LuDropdownItem,\r\n },\r\n props: {\r\n /**\r\n * The item to show\r\n */\r\n item: { type: Object as PropType, required: true },\r\n },\r\n})\r\nexport default class LuNavbarItem extends Vue {}\r\n","import { render } from \"./LuNavbarItem.vue?vue&type=template&id=73aa604c&ts=true\"\nimport script from \"./LuNavbarItem.vue?vue&type=script&lang=ts\"\nexport * from \"./LuNavbarItem.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport LuNavbarItem from \"@/components/Lu/LuNavbarItem.vue\";\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport type { IMenuItem } from \"@/interfaces/IMenuItem\";\r\n\r\n@Options({\r\n components: {\r\n LuNavbarItem,\r\n },\r\n props: {\r\n /**\r\n * The items to show in navbar\r\n */\r\n menu: { type: Array as PropType, required: true },\r\n },\r\n})\r\nexport default class LuNavbar extends Vue {}\r\n","import { render } from \"./LuNavbar.vue?vue&type=template&id=7126b0ac&ts=true\"\nimport script from \"./LuNavbar.vue?vue&type=script&lang=ts\"\nexport * from \"./LuNavbar.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createBlock as _createBlock, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"d-none d-xl-block font-size-xl-lg font-weight-light\" }\nconst _hoisted_2 = { class: \"nav justify-content-end nav-header-main flex-nowrap\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_LuTopMenuItem = _resolveComponent(\"LuTopMenuItem\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.menu, (menuItem, index) => {\n return (_openBlock(), _createBlock(_component_LuTopMenuItem, {\n key: menuItem.id,\n item: menuItem,\n \"last-item\": index + 1 === _ctx.menu.length\n }, null, 8, [\"item\", \"last-item\"]))\n }), 128))\n ])\n ]))\n}","import { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, renderList as _renderList, Fragment as _Fragment, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e1d9ba4c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = [\"href\"]\nconst _hoisted_2 = [\"href\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_LuDropdownItem = _resolveComponent(\"LuDropdownItem\")!\n const _component_Badge = _resolveComponent(\"Badge\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_ctx.item.children)\n ? (_openBlock(), _createElementBlock(\"li\", {\n key: 0,\n class: _normalizeClass([\"nav-item dropdown dropdown-hover d-flex\", { active: _ctx.active }])\n }, [\n (_ctx.item.path || _ctx.item.name)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: {\r\n ...(_ctx.item.path ? { path: _ctx.item.path } : {}),\r\n ...(_ctx.item.name ? { name: _ctx.item.name } : {}),\r\n },\n class: \"nav-link text-nowrap dropdown-toggle pr-0 cursor-pointer\",\n \"aria-haspopup\": \"true\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : (_openBlock(), _createElementBlock(\"a\", {\n key: 1,\n href: _ctx.item.url,\n class: \"nav-link text-nowrap dropdown-toggle pr-0 cursor-pointer\",\n \"aria-haspopup\": \"true\",\n style: {\"cursor\":\"pointer\"},\n tabindex: \"0\"\n }, _toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text), 9, _hoisted_1)),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"dropdown-menu font-size-base\", [_ctx.lastItem ? 'dropdown-menu-right' : '']])\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.item.children, (subMenuItem) => {\n return (_openBlock(), _createBlock(_component_LuDropdownItem, {\n key: subMenuItem.id,\n item: subMenuItem,\n ref_for: true,\n ref: \"children\"\n }, null, 8, [\"item\"]))\n }), 128))\n ], 2)\n ], 2))\n : (_openBlock(), _createElementBlock(\"li\", {\n key: 1,\n class: _normalizeClass([\"nav-item d-flex\", { active: _ctx.active }])\n }, [\n (_ctx.item.path || _ctx.item.name)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: {\r\n ...(_ctx.item.path ? { path: _ctx.item.path } : {}),\r\n ...(_ctx.item.name ? { name: _ctx.item.name } : {}),\r\n },\n class: \"nav-link text-nowrap pr-0\",\n \"aria-haspopup\": \"true\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : (_openBlock(), _createElementBlock(\"a\", {\n key: 1,\n href: _ctx.item.url,\n class: \"nav-link text-nowrap pr-0\",\n \"aria-haspopup\": \"true\",\n style: {\"cursor\":\"pointer\"}\n }, _toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text), 9, _hoisted_2))\n ], 2)),\n _createVNode(_component_Badge, {\n class: \"badge mb-4\",\n rounded: true,\n backgroundColor: \"crimson\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.item.badge), 1)\n ]),\n _: 1\n })\n ], 64))\n}","\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport LuDropdownItem from \"@/components/Lu/LuDropdownItem.vue\";\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport Badge from \"@/components/Badge.vue\";\r\nimport type { IMenuItem } from \"@/interfaces/IMenuItem\";\r\n\r\ninterface Item {\r\n id: string;\r\n label?: string;\r\n text?: string;\r\n path?: string;\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n children: Item[];\r\n}\r\n\r\n@Options({\r\n components: {\r\n LuDropdownItem,\r\n Badge,\r\n },\r\n\r\n data: () => ({\r\n noteTakerStatusCount: null,\r\n\r\n // Fill with getter from store\r\n menu: {},\r\n }),\r\n\r\n props: {\r\n /**\r\n * The item to show\r\n */\r\n item: { type: Object as PropType, required: true },\r\n /**\r\n * If this is the last item\r\n */\r\n lastItem: Boolean as PropType,\r\n },\r\n\r\n computed: {\r\n active() {\r\n /* Check if any child is active */\r\n let childActive = false;\r\n if (this.item.children && this.$refs.children) {\r\n childActive = this.$refs.children\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map((child: any) => child.active)\r\n .includes(true);\r\n }\r\n\r\n return (\r\n childActive ||\r\n this.$route.path === this.item?.path ||\r\n this.$route.name === this.item?.name\r\n );\r\n },\r\n },\r\n})\r\nexport default class LuTopMenuItem extends Vue {}\r\n","import { render } from \"./LuTopMenuItem.vue?vue&type=template&id=e1d9ba4c&scoped=true&ts=true\"\nimport script from \"./LuTopMenuItem.vue?vue&type=script&lang=ts\"\nexport * from \"./LuTopMenuItem.vue?vue&type=script&lang=ts\"\n\nimport \"./LuTopMenuItem.vue?vue&type=style&index=0&id=e1d9ba4c&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e1d9ba4c\"]])\n\nexport default __exports__","\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport LuTopMenuItem from \"@/components/Lu/LuTopMenuItem.vue\";\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport type { IMenuItem } from \"@/interfaces/IMenuItem\";\r\n\r\n@Options({\r\n components: {\r\n LuTopMenuItem,\r\n },\r\n props: {\r\n /**\r\n * The items to show\r\n */\r\n menu: { type: Array as PropType, required: true },\r\n },\r\n})\r\nexport default class LuTopMenu extends Vue {}\r\n","import { render } from \"./LuTopMenu.vue?vue&type=template&id=6ddc2ebf&ts=true\"\nimport script from \"./LuTopMenu.vue?vue&type=script&lang=ts\"\nexport * from \"./LuTopMenu.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"nav align-items-center justify-content-end\" }\nconst _hoisted_2 = { class: \"mobile-nav mobile-nav-root border-0 nav-collapse font-size-sm nav-undecorated\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_LuHeaderAuthButtons = _resolveComponent(\"LuHeaderAuthButtons\")!\n const _component_LuNavMobileItem = _resolveComponent(\"LuNavMobileItem\")!\n const _component_LuNavMobileItemChangeLanguage = _resolveComponent(\"LuNavMobileItemChangeLanguage\")!\n const _component_Modal = _resolveComponent(\"Modal\")!\n\n return (_openBlock(), _createBlock(_component_Modal, { ref: \"modal\" }, {\n header: _withCtx(() => [\n _createElementVNode(\"nav\", _hoisted_1, [\n _createVNode(_component_LuHeaderAuthButtons)\n ])\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.menu, (item) => {\n return (_openBlock(), _createBlock(_component_LuNavMobileItem, {\n key: item.id,\n item: item,\n onLinkSelected: _ctx.close\n }, null, 8, [\"item\", \"onLinkSelected\"]))\n }), 128)),\n _createVNode(_component_LuNavMobileItemChangeLanguage, { onLinkSelected: _ctx.close }, null, 8, [\"onLinkSelected\"])\n ])\n ]),\n _: 1\n }, 512))\n}","import { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers, createElementBlock as _createElementBlock, vShow as _vShow, createElementVNode as _createElementVNode, withDirectives as _withDirectives, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, Transition as _Transition, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-30bbf18f\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n class: \"mobile-nav-item\"\n}\nconst _hoisted_2 = { class: \"mobile-nav-container\" }\nconst _hoisted_3 = [\"data-target\", \"aria-expanded\", \"aria-controls\"]\nconst _hoisted_4 = { class: \"collapse-show\" }\nconst _hoisted_5 = { class: \"collapse-hide\" }\nconst _hoisted_6 = [\"id\"]\nconst _hoisted_7 = {\n key: 1,\n class: \"mobile-nav-item\"\n}\nconst _hoisted_8 = {\n key: 2,\n class: \"mobile-nav-item\"\n}\nconst _hoisted_9 = [\"href\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Badge = _resolveComponent(\"Badge\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n const _component_LuNavMobileItem = _resolveComponent(\"LuNavMobileItem\", true)!\n\n return (_ctx.item.children)\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_ctx.item.path || _ctx.item.name)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: {\r\n ...(_ctx.item.path ? { path: _ctx.item.path } : {}),\r\n ...(_ctx.item.name ? { name: _ctx.item.name } : {}),\r\n },\n class: \"nav-link d-flex\",\n \"data-dismiss\": \"modal\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text) + \" \", 1),\n _createVNode(_component_Badge, {\n class: \"badge ml-3\",\n rounded: true,\n backgroundColor: \"crimson\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.item.badge), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"to\"]))\n : (_openBlock(), _createElementBlock(\"a\", {\n key: 1,\n href: \"#\",\n class: \"nav-link d-flex\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.toggleExpanded && _ctx.toggleExpanded(...args)), [\"prevent\"]))\n }, [\n _createTextVNode(_toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text) + \" \", 1),\n _createVNode(_component_Badge, {\n class: \"badge ml-3\",\n rounded: true,\n backgroundColor: \"crimson\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.item.badge), 1)\n ]),\n _: 1\n })\n ])),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-nav-toggle\", [_ctx.expanded ? '' : 'collapsed']]),\n \"data-target\": '#sm-' + _ctx.item.id,\n \"aria-expanded\": _ctx.expanded,\n \"aria-controls\": 'sm-' + _ctx.item.id,\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.toggleExpanded && _ctx.toggleExpanded(...args))),\n role: \"button\"\n }, [\n _withDirectives(_createElementVNode(\"span\", _hoisted_4, [\n _createVNode(_component_font_awesome_icon, {\n class: \"fa-lg\",\n icon: 'plus-circle'\n })\n ], 512), [\n [_vShow, !_ctx.expanded]\n ]),\n _withDirectives(_createElementVNode(\"span\", _hoisted_5, [\n _createVNode(_component_font_awesome_icon, {\n class: \"fa-lg\",\n icon: 'minus-circle'\n })\n ], 512), [\n [_vShow, _ctx.expanded]\n ])\n ], 10, _hoisted_3)\n ]),\n _createVNode(_Transition, { name: \"slide\" }, {\n default: _withCtx(() => [\n _withDirectives(_createElementVNode(\"ul\", {\n id: 'sm-' + _ctx.item.id,\n class: \"mobile-nav collapse show\"\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.item.children, (subItem) => {\n return (_openBlock(), _createBlock(_component_LuNavMobileItem, {\n key: subItem.id,\n item: subItem,\n onLinkSelected: _ctx.childSelected\n }, null, 8, [\"item\", \"onLinkSelected\"]))\n }), 128))\n ], 8, _hoisted_6), [\n [_vShow, _ctx.expanded]\n ])\n ]),\n _: 1\n })\n ]))\n : (_ctx.item.path || _ctx.item.name)\n ? (_openBlock(), _createElementBlock(\"li\", _hoisted_7, [\n _createVNode(_component_router_link, {\n to: {\r\n ...(_ctx.item.path ? { path: _ctx.item.path } : {}),\r\n ...(_ctx.item.name ? { name: _ctx.item.name } : {}),\r\n },\n class: \"nav-link d-flex\",\n \"data-dismiss\": \"modal\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text) + \" \", 1),\n _createVNode(_component_Badge, {\n class: \"badge ml-3\",\n rounded: true,\n backgroundColor: \"crimson\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.item.badge), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"to\"])\n ]))\n : (_openBlock(), _createElementBlock(\"li\", _hoisted_8, [\n _createElementVNode(\"a\", {\n href: _ctx.item.url,\n class: \"nav-link d-flex\"\n }, [\n _createTextVNode(_toDisplayString(_ctx.item.label ? _ctx.$t(_ctx.item.label) : _ctx.item.text) + \" \", 1),\n _createVNode(_component_Badge, {\n class: \"badge ml-3\",\n rounded: true,\n backgroundColor: \"crimson a\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.item.badge), 1)\n ]),\n _: 1\n })\n ], 8, _hoisted_9)\n ]))\n}","\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport Badge from \"@/components/Badge.vue\";\r\nimport type { IMenuItem } from \"@/interfaces/IMenuItem\";\r\n\r\n@Options({\r\n props: {\r\n /**\r\n * The item to show\r\n */\r\n item: { type: Object as PropType, required: true },\r\n },\r\n data() {\r\n return {\r\n /**\r\n * If the item is expanded\r\n */\r\n expanded: false,\r\n };\r\n },\r\n watch: {\r\n /**\r\n * Gets called when route/location changes\r\n */\r\n $route(to) {\r\n // If link is selected emit link-selected to parent\r\n if (to.path === this.item.path) {\r\n this.$emit(\"link-selected\");\r\n }\r\n },\r\n },\r\n methods: {\r\n /**\r\n * Toggle visibility\r\n */\r\n toggleExpanded() {\r\n this.expanded = !this.expanded;\r\n },\r\n /**\r\n * Gets called when a child item is selected\r\n */\r\n childSelected() {\r\n this.expanded = true;\r\n // Resend event upwards\r\n this.$emit(\"link-selected\");\r\n },\r\n },\r\n\r\n components: {\r\n Badge,\r\n },\r\n})\r\nexport default class LuNavMobileItem extends Vue {}\r\n","import { render } from \"./LuNavMobileItem.vue?vue&type=template&id=30bbf18f&scoped=true&ts=true\"\nimport script from \"./LuNavMobileItem.vue?vue&type=script&lang=ts\"\nexport * from \"./LuNavMobileItem.vue?vue&type=script&lang=ts\"\n\nimport \"./LuNavMobileItem.vue?vue&type=style&index=0&id=30bbf18f&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-30bbf18f\"]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3f25e875\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"mobile-nav-item\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n\n return (_openBlock(), _createElementBlock(\"li\", _hoisted_1, [\n _createElementVNode(\"a\", {\n href: \"#\",\n class: \"nav-link\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.switchLocale && _ctx.switchLocale(...args)), [\"prevent\"]))\n }, [\n _createVNode(_component_font_awesome_icon, {\n \"aria-hidden\": \"true\",\n icon: 'globe'\n }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t(\"header.select-locale.change-language\")), 1)\n ])\n ]))\n}","\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport LocalStorageService from \"@/services/localstorage-service\";\r\nimport { Constants } from \"@/constants/constants\";\r\n\r\n@Options({\r\n methods: {\r\n switchLocale() {\r\n this.$root.$i18n.locale = this.$root.$i18n.locale === \"sv\" ? \"en\" : \"sv\";\r\n document.getElementsByTagName(\"html\")[0].lang = this.$root.$i18n.locale;\r\n LocalStorageService.setItem(Constants.Language, this.$root.$i18n.locale);\r\n this.$emit(\"link-selected\");\r\n },\r\n },\r\n})\r\nexport default class LuNavMobileItemChangeLanguage extends Vue {}\r\n","import { render } from \"./LuNavMobileItemChangeLanguage.vue?vue&type=template&id=3f25e875&scoped=true&ts=true\"\nimport script from \"./LuNavMobileItemChangeLanguage.vue?vue&type=script&lang=ts\"\nexport * from \"./LuNavMobileItemChangeLanguage.vue?vue&type=script&lang=ts\"\n\nimport \"./LuNavMobileItemChangeLanguage.vue?vue&type=style&index=0&id=3f25e875&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3f25e875\"]])\n\nexport default __exports__","\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport Modal from \"@/components/Modal.vue\";\r\nimport LuNavMobileItem from \"@/components/Lu/LuNavMobileItem.vue\";\r\nimport LuNavMobileItemChangeLanguage from \"@/components/Lu/LuNavMobileItemChangeLanguage.vue\";\r\nimport type { IMenuItem } from \"@/interfaces/IMenuItem\";\r\nimport LuHeaderAuthButtons from \"@/components/Lu/LuHeaderAuthButtons.vue\";\r\n\r\n@Options({\r\n components: {\r\n Modal,\r\n LuNavMobileItem,\r\n LuNavMobileItemChangeLanguage,\r\n LuHeaderAuthButtons,\r\n },\r\n props: {\r\n /**\r\n * The menu to show\r\n */\r\n menu: { type: Array as PropType, required: true },\r\n },\r\n methods: {\r\n /**\r\n * Open the navigation\r\n */\r\n open() {\r\n this.$refs.modal.open();\r\n },\r\n /**\r\n * Close the navigation\r\n */\r\n close() {\r\n this.$refs.modal.close();\r\n },\r\n },\r\n})\r\nexport default class LuNavMobile extends Vue {}\r\n","import { render } from \"./LuNavMobile.vue?vue&type=template&id=4343ec77&ts=true\"\nimport script from \"./LuNavMobile.vue?vue&type=script&lang=ts\"\nexport * from \"./LuNavMobile.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport LuHeaderAuthButtons from \"@/components/Lu/LuHeaderAuthButtons.vue\";\r\nimport LuNavbar from \"@/components/Lu/LuNavbar.vue\";\r\nimport LuTopMenu from \"@/components/Lu/LuTopMenu.vue\";\r\nimport LuNavMobile from \"@/components/Lu/LuNavMobile.vue\";\r\nimport Badge from \"@/components/Badge.vue\";\r\nimport Search from \"@/components/Form/Search.vue\";\r\nimport LocalStorageService from \"@/services/localstorage-service\";\r\nimport { Constants } from \"@/constants/constants\";\r\n\r\ninterface Item {\r\n id: string;\r\n label?: string;\r\n text?: string;\r\n path?: string;\r\n children: Item[];\r\n}\r\n\r\n@Options({\r\n components: {\r\n LuHeaderAuthButtons,\r\n LuNavbar,\r\n LuTopMenu,\r\n Badge,\r\n LuNavMobile,\r\n Search,\r\n },\r\n props: {\r\n /**\r\n * Items in top menu\r\n */\r\n topmenu: { type: Array as PropType, default: null },\r\n /**\r\n * Items in mobile menu\r\n */\r\n mobilemenu: { type: Array as PropType, default: null },\r\n /**\r\n * Items en navbar menu\r\n */\r\n navbarmenu: { type: Array as PropType, default: null },\r\n /**\r\n * Has listen (show button)\r\n */\r\n hasListen: Boolean as PropType,\r\n /**\r\n * Has search (show button)\r\n */\r\n hasSearch: Boolean as PropType,\r\n /**\r\n * Empty the search value after searching\r\n */\r\n emptySearch: Boolean as PropType,\r\n /**\r\n * Placeholder for search field\r\n */\r\n searchPlaceholder: { type: String as PropType, default: \"\" },\r\n /**\r\n * Url of the logo (goto when click)\r\n */\r\n logoUrl: { type: String as PropType, required: true },\r\n /**\r\n * Title of the logo\r\n */\r\n logoTitle: { type: String as PropType, required: true },\r\n /**\r\n * Source of the logo\r\n */\r\n logoSrc: { type: String as PropType, required: true },\r\n /**\r\n * Compact layout\r\n */\r\n compact: Boolean as PropType,\r\n /**\r\n * Show the mobile menu\r\n */\r\n showMobileMenu: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: true,\r\n },\r\n /**\r\n * Show the login buttons\r\n */\r\n showLogin: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: true,\r\n },\r\n language: {\r\n type: String as PropType,\r\n required: false,\r\n default: \"\",\r\n },\r\n },\r\n data() {\r\n return {\r\n searchValue: \"\",\r\n searchCollapsed: true,\r\n /**\r\n * The current environment, Development etc.\r\n */\r\n environment: process.env.VUE_APP_ENV_NAME,\r\n currentLanguage:\r\n this.language ||\r\n LocalStorageService.getItem(Constants.Language) ||\r\n \"sv\",\r\n };\r\n },\r\n mounted() {\r\n if (this.hasListen) {\r\n // window._baMode = \" \"\r\n const baScript = document.createElement(\"script\");\r\n baScript.setAttribute(\"src\", \"//www.browsealoud.com/plus/scripts/ba.js\");\r\n baScript.async = true;\r\n document.head.appendChild(baScript);\r\n }\r\n // Set the language on the initial mount\r\n this.setLanguage(this.currentLanguage);\r\n },\r\n watch: {\r\n language(newLang: string) {\r\n this.setLanguage(newLang);\r\n },\r\n },\r\n methods: {\r\n /**\r\n * Change language\r\n */\r\n switchLocale(): void {\r\n const newLocale = this.currentLanguage === \"sv\" ? \"en\" : \"sv\";\r\n this.setLanguage(newLocale);\r\n },\r\n setLanguage(newLocale: string): void {\r\n this.$root.$i18n.locale = newLocale;\r\n document.getElementsByTagName(\"html\")[0].lang = newLocale;\r\n LocalStorageService.setItem(Constants.Language, newLocale);\r\n this.currentLanguage = newLocale;\r\n this.$emit(\"update:language\", newLocale);\r\n },\r\n listen(): void {\r\n // function imported from browsealoud. Why such generic name :(\r\n // eslint-disable-next-line no-undef\r\n // toggleBar();\r\n },\r\n /**\r\n * Show the mobile navigation\r\n */\r\n showNavMobile(): void {\r\n this.$refs.navMobile.open();\r\n },\r\n /**\r\n * Toggle search field\r\n */\r\n toggleSearch(): void {\r\n this.searchCollapsed = !this.searchCollapsed;\r\n if (!this.searchCollapsed) {\r\n // Wait until rendered to set focus\r\n this.$nextTick(() => this.$refs.mobileSearchInput.setFocus());\r\n }\r\n },\r\n /**\r\n * Make a search\r\n */\r\n search(): void {\r\n if (this.searchValue.trim()) {\r\n this.$emit(\"search\", this.searchValue);\r\n if (this.emptySearch) {\r\n this.searchValue = \"\";\r\n }\r\n }\r\n },\r\n },\r\n})\r\nexport default class LuHeader extends Vue {}\r\n","import { render } from \"./LuHeader.vue?vue&type=template&id=d7a483fa&scoped=true&ts=true\"\nimport script from \"./LuHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./LuHeader.vue?vue&type=script&lang=ts\"\n\nimport \"./LuHeader.vue?vue&type=style&index=0&id=d7a483fa&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d7a483fa\"]])\n\nexport default __exports__","\r\n\r\n\r\n","import { render } from \"./BreadCrumbs.vue?vue&type=template&id=7f10479e\"\nimport script from \"./BreadCrumbs.vue?vue&type=script&lang=js\"\nexport * from \"./BreadCrumbs.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0756f9c7\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"container\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"row\"\n}\nconst _hoisted_3 = { class: \"col-12 col-xl-9 mb-6 mb-xl-0\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"row\"\n}\nconst _hoisted_5 = { class: \"col-12 col-lg-8\" }\nconst _hoisted_6 = { class: \"border-top border-dark mt-5 py-3\" }\nconst _hoisted_7 = [\"href\"]\nconst _hoisted_8 = /*#__PURE__*/_createTextVNode(\"  |  \")\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_10 = { key: 1 }\nconst _hoisted_11 = {\n key: 0,\n class: \"row\"\n}\nconst _hoisted_12 = { class: \"col-12 col-lg-8\" }\nconst _hoisted_13 = { class: \"border-top border-dark mt-5 py-3\" }\nconst _hoisted_14 = [\"href\"]\nconst _hoisted_15 = /*#__PURE__*/_createTextVNode(\"  |  \")\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_17 = [\"data-tooltip\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_LuLeftMenu = _resolveComponent(\"LuLeftMenu\")!\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n\n return (_openBlock(), _createElementBlock(\"main\", {\n class: _normalizeClass([\"main\", { 'mt-2': _ctx.compact }])\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n (_ctx.leftmenu)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(_component_LuLeftMenu, { menu: _ctx.leftmenu }, null, 8, [\"menu\"]),\n _createElementVNode(\"div\", _hoisted_3, [\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true),\n (_ctx.pageManagerMail)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t(\"main.page-manager\")) + \": \", 1),\n _createElementVNode(\"a\", {\n href: `mailto:${_ctx.pageManagerMail}`\n }, _toDisplayString(_ctx.pageManagerMail), 9, _hoisted_7),\n _hoisted_8,\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.lastUpdated), 1),\n (_ctx.pageManagerNotice)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _hoisted_9,\n _createElementVNode(\"small\", null, _toDisplayString(_ctx.pageManagerNotice), 1)\n ], 64))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true),\n (_ctx.pageManagerMail)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t(\"main.page-manager\")) + \": \", 1),\n _createElementVNode(\"a\", {\n href: `mailto:${_ctx.pageManagerMail}`\n }, _toDisplayString(_ctx.pageManagerMail), 9, _hoisted_14),\n _hoisted_15,\n _createElementVNode(\"strong\", null, _toDisplayString(_ctx.lastUpdated), 1),\n (_ctx.pageManagerNotice)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _hoisted_16,\n _createElementVNode(\"small\", null, _toDisplayString(_ctx.pageManagerNotice), 1)\n ], 64))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ])),\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"button\", {\n id: \"toTopButton\",\n onfocus: \"this.blur()\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.scrollToTop && _ctx.scrollToTop(...args))),\n \"data-tooltip\": _ctx.toTopText\n }, [\n _createVNode(_component_font_awesome_icon, { icon: \"arrow-circle-up\" })\n ], 8, _hoisted_17)\n ])\n ])\n ], 2))\n}","\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport LuLeftMenu from \"@/components/Lu/LuLeftMenu.vue\";\r\nimport Tooltip from \"@/components/Tooltip.vue\";\r\n\r\ninterface Item {\r\n id: string;\r\n label?: string;\r\n text?: string;\r\n path?: string;\r\n children: Item[];\r\n}\r\n\r\n@Options({\r\n components: {\r\n LuLeftMenu,\r\n Tooltip,\r\n },\r\n props: {\r\n /**\r\n * Items to show in left menu\r\n */\r\n leftmenu: { type: Array as PropType, default: null },\r\n /**\r\n * Email to page manager\r\n */\r\n pageManagerMail: { type: String as PropType, default: \"\" },\r\n /**\r\n * Page manager notice\r\n */\r\n pageManagerNotice: { type: String as PropType, default: \"\" },\r\n /**\r\n * When the page was last updated\r\n */\r\n lastUpdated: { type: String as PropType, default: \"\" },\r\n /**\r\n * Compact layout\r\n */\r\n compact: Boolean as PropType,\r\n },\r\n computed: {\r\n toTopText() {\r\n return `${this.$t(\"shared.scroll-to-top\")} - `;\r\n },\r\n },\r\n methods: {\r\n /**\r\n * Called from a \"scroll\" event listener to hide or show the scroll to top button\r\n * depending on the distance from the top that the page is scrolled\r\n */\r\n handleScroll() {\r\n const toTopButton = document.getElementById(\"toTopButton\");\r\n const distanceFromTop = 150;\r\n\r\n if (\r\n document.documentElement.scrollTop > distanceFromTop || // Chrome, Firefox, IE & Opera\r\n document.body.scrollTop > distanceFromTop // Safari\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n toTopButton!.style.display = \"block\";\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n toTopButton!.style.display = \"none\";\r\n }\r\n },\r\n scrollToTop() {\r\n document.documentElement.scrollTop = 0; // Chrome, Firefox, IE & Opera\r\n document.body.scrollTop = 0; // Safari\r\n },\r\n },\r\n mounted() {\r\n window.addEventListener(\"scroll\", this.handleScroll);\r\n },\r\n})\r\nexport default class LuMain extends Vue {}\r\n","import { render } from \"./LuMain.vue?vue&type=template&id=0756f9c7&scoped=true&ts=true\"\nimport script from \"./LuMain.vue?vue&type=script&lang=ts\"\nexport * from \"./LuMain.vue?vue&type=script&lang=ts\"\n\nimport \"./LuMain.vue?vue&type=style&index=0&id=0756f9c7&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0756f9c7\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f69ef0a8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"footer\" }\nconst _hoisted_2 = { class: \"container py-2\" }\nconst _hoisted_3 = { class: \"footer-sections\" }\nconst _hoisted_4 = { class: \"logo-container\" }\nconst _hoisted_5 = [\"src\", \"alt\"]\nconst _hoisted_6 = {\n key: 0,\n class: \"footer-links\"\n}\nconst _hoisted_7 = { class: \"link-column\" }\nconst _hoisted_8 = { class: \"column-title\" }\nconst _hoisted_9 = [\"innerHTML\"]\nconst _hoisted_10 = {\n key: 1,\n class: \"footer-link\"\n}\nconst _hoisted_11 = [\"href\", \"innerHTML\"]\nconst _hoisted_12 = [\"href\"]\nconst _hoisted_13 = { class: \"icon\" }\nconst _hoisted_14 = [\"href\", \"innerHTML\"]\nconst _hoisted_15 = [\"innerHTML\"]\nconst _hoisted_16 = [\"innerHTML\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"footer\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"img\", {\n src: _ctx.logoSrc,\n alt: _ctx.logoAlt,\n class: \"footer-logo\"\n }, null, 8, _hoisted_5)\n ]),\n (_ctx.footerContent)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.footerContent, (column) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: column.columnNumber\n }, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, _toDisplayString(_ctx.translate(column.title)), 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(column.links, (link) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"links\",\n key: link.url\n }, [\n (link.leadingText)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n innerHTML: _ctx.translate(link.leadingText) + ' '\n }, null, 8, _hoisted_9))\n : _createCommentVNode(\"\", true),\n (link.linkType === 'external')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, [\n _createElementVNode(\"a\", {\n href: link.url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n class: \"footer-link\",\n innerHTML: _ctx.translate(link.linkLabel)\n }, null, 8, _hoisted_11),\n _createElementVNode(\"a\", {\n href: link.url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n class: \"footer-link\"\n }, [\n _createElementVNode(\"span\", _hoisted_13, [\n _createVNode(_component_font_awesome_icon, { icon: \"external-link\" })\n ])\n ], 8, _hoisted_12)\n ]))\n : _createCommentVNode(\"\", true),\n (link.linkType === 'email')\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 2,\n href: `mailto:${link.url}`,\n class: \"footer-link\",\n innerHTML: _ctx.translate(link.linkLabel)\n }, null, 8, _hoisted_14))\n : _createCommentVNode(\"\", true),\n (link.linkType === 'internal')\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 3,\n to: link.url,\n class: \"footer-link\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", {\n innerHTML: _ctx.translate(link.linkLabel)\n }, null, 8, _hoisted_15)\n ]),\n _: 2\n }, 1032, [\"to\"]))\n : _createCommentVNode(\"\", true),\n (link.trailingText)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 4,\n innerHTML: _ctx.translate(link.trailingText) + ' '\n }, null, 8, _hoisted_16))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ])\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n}","\r\nimport { computed } from \"vue\";\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport i18n from \"@/utilities/i18n\";\r\nimport type { IFooterColumn } from \"@/interfaces/IFooterColumn\";\r\n\r\nconst {\r\n global: { t },\r\n} = i18n;\r\n\r\n@Options({\r\n props: {\r\n /**\r\n * List of footer columns to display\r\n */\r\n footerContent: {\r\n type: Array as PropType,\r\n required: false,\r\n },\r\n },\r\n computed: {\r\n locale(): string {\r\n return this.$root.$i18n.locale;\r\n },\r\n logoSrc(): string {\r\n return this.$i18n.locale === \"sv\"\r\n ? require(\"@/assets/Lunds_universitet_white.svg\")\r\n : require(\"@/assets/Lunds_university_white.svg\");\r\n },\r\n\r\n logoAlt(): string {\r\n return computed(() => t(\"shared.lunds-university\")).value;\r\n },\r\n },\r\n methods: {\r\n /**\r\n * Translates the input string using the current locale\r\n * @param localeKey The key to translate\r\n * @returns The translated string\r\n * @remarks If the input string contains an '@' character, it is assumed not to be a key and is not translated\r\n */\r\n translate(localeKey: string): string {\r\n if (/@/.test(localeKey)) {\r\n return localeKey;\r\n }\r\n return computed(() => t(localeKey)).value;\r\n },\r\n },\r\n})\r\nexport default class LuFooter extends Vue {}\r\n","import { render } from \"./LuFooter.vue?vue&type=template&id=f69ef0a8&scoped=true&ts=true\"\nimport script from \"./LuFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./LuFooter.vue?vue&type=script&lang=ts\"\n\nimport \"./LuFooter.vue?vue&type=style&index=0&id=f69ef0a8&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-f69ef0a8\"]])\n\nexport default __exports__","\r\nimport { computed } from \"vue\";\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport LuHeader from \"@/components/Lu/LuHeader.vue\";\r\nimport BreadCrumbs from \"@/components/BreadCrumbs.vue\";\r\nimport LuSpinner from \"@/components/Lu/LuSpinner.vue\";\r\nimport Backdrop from \"@/components/Backdrop.vue\";\r\nimport LuMain from \"@/components/Lu/LuMain.vue\";\r\nimport LuFooter from \"@/components/Lu/LuFooter.vue\";\r\nimport AuthenticationService from \"@/services/authentication-service\";\r\nimport LocalStorageService from \"@/services/localstorage-service\";\r\nimport i18n from \"@/utilities/i18n\";\r\nimport { Constants } from \"@/constants/constants\";\r\nimport { RouteLocation } from \"vue-router\";\r\n\r\nconst {\r\n global: { locale, t },\r\n} = i18n;\r\n\r\n@Options({\r\n components: {\r\n LuHeader,\r\n LuMain,\r\n LuFooter,\r\n BreadCrumbs,\r\n LuSpinner,\r\n Backdrop,\r\n },\r\n data: () => ({\r\n /**\r\n * The title for the current page\r\n */\r\n headerTitle: \"\",\r\n /**\r\n * Boolean value representing if current route path starts with \"administrator\"\r\n */\r\n isAdminPath: false,\r\n /**\r\n * The footer data for the current page\r\n */\r\n footerContent: [],\r\n /**\r\n * Boolean value representing if current route path is \"/maintenance\"\r\n */\r\n isMaintenancePath: false,\r\n }),\r\n computed: {\r\n /**\r\n * Only returns menu if current route path starts with \"administrator\"\r\n * or current user is \"SuperAdmin\"\r\n */\r\n getMenu() {\r\n if (\r\n this.$store.state.currentUser !== undefined &&\r\n this.$store.state.currentUser.entitlements.includes(\"Employee\")\r\n ) {\r\n return this.$store.getters.getMenu;\r\n }\r\n\r\n return this.isAdminPath ? this.$store.getters.getMenu : [];\r\n },\r\n /**\r\n * Hides footer if current route path starts with \"administrator\"\r\n */\r\n showFooter() {\r\n return !this.isAdminPath;\r\n },\r\n /**\r\n * The currently chosen locale\r\n */\r\n locale() {\r\n return this.$i18n.locale;\r\n },\r\n /**\r\n * If the spinner should be shown\r\n */\r\n showSpinner() {\r\n return this.$store.state.showSpinner;\r\n },\r\n /**\r\n * If the mobile menu should be shown\r\n */\r\n showMobileMenu() {\r\n return this.isAdminPath;\r\n },\r\n /**\r\n * If the mobile menu should be shown\r\n */\r\n showLogin() {\r\n return !this.isMaintenancePath;\r\n },\r\n },\r\n methods: {\r\n /**\r\n * Sets the page title\r\n */\r\n setPageTitle(): void {\r\n (document.activeElement as HTMLElement).blur();\r\n const appName = computed(() => t(\"shared.app-name\")).value;\r\n const titleKey = this.$route.meta.titleKey;\r\n const pageTitle = titleKey ? t(titleKey) : \"\";\r\n document.title = `${pageTitle} - ${appName}` || appName;\r\n this.headerTitle = `${pageTitle}` || appName;\r\n document.getElementsByTagName(\"html\")[0].lang = locale.value;\r\n const footerContent = this.$route.meta.footerContent;\r\n if (footerContent) {\r\n this.footerContent = footerContent;\r\n }\r\n },\r\n },\r\n watch: {\r\n /**\r\n * Gets called when route/location changes\r\n */\r\n $route(to: RouteLocation): void {\r\n this.setPageTitle();\r\n const path = to.fullPath;\r\n this.isAdminPath = path.startsWith(\"/administrator\");\r\n this.isMaintenancePath = path === \"/maintenance\";\r\n\r\n if (\"lang\" in to.query) {\r\n // It doesn't break if the lang is not supported.\r\n // Can be good to leave it if we support more languages in the future.\r\n this.$i18n.locale = to.query.lang;\r\n }\r\n },\r\n /**\r\n * Gets called when locale changes\r\n */\r\n locale(): void {\r\n this.setPageTitle();\r\n },\r\n },\r\n mounted() {\r\n AuthenticationService.populateStore();\r\n\r\n if (LocalStorageService.keyExists(Constants.Language)) {\r\n this.$i18n.locale = LocalStorageService.getItem(Constants.Language);\r\n }\r\n },\r\n})\r\nexport default class App extends Vue {}\r\n","import { render } from \"./App.vue?vue&type=template&id=31e7c78a&ts=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=31e7c78a&lang=scss\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","/* istanbul ignore file */\r\nimport { library } from \"@fortawesome/fontawesome-svg-core\";\r\nimport {\r\n faGlobe,\r\n faChevronLeft,\r\n faChevronRight,\r\n faEllipsisH,\r\n faChevronUp,\r\n faChevronDown,\r\n faCaretDown,\r\n faCaretUp,\r\n faArrowCircleLeft,\r\n faArrowCircleRight,\r\n faArrowCircleUp,\r\n faBars,\r\n faTimes,\r\n faTrashAlt,\r\n faSearch,\r\n faPlusCircle,\r\n faMinusCircle,\r\n faArrowLeft,\r\n faCalendar,\r\n faLock,\r\n faExclamation,\r\n faSignInAlt,\r\n faSignOutAlt,\r\n faExternalLink,\r\n faChevronCircleRight,\r\n faCircleNotch,\r\n faUndo,\r\n faFileExcel,\r\n faInfoCircle,\r\n faWrench,\r\n} from \"@fortawesome/pro-solid-svg-icons\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\r\n\r\nlibrary.add(\r\n faGlobe,\r\n faChevronLeft,\r\n faChevronRight,\r\n faEllipsisH,\r\n faChevronUp,\r\n faChevronDown,\r\n faCaretDown,\r\n faCaretUp,\r\n faArrowCircleLeft,\r\n faArrowCircleRight,\r\n faArrowCircleUp,\r\n faBars,\r\n faTimes,\r\n faTrashAlt,\r\n faSearch,\r\n faPlusCircle,\r\n faMinusCircle,\r\n faArrowLeft,\r\n faCalendar,\r\n faLock,\r\n faExclamation,\r\n faSignInAlt,\r\n faSignOutAlt,\r\n faExternalLink,\r\n faChevronCircleRight,\r\n faCircleNotch,\r\n faUndo,\r\n faFileExcel,\r\n faInfoCircle,\r\n faWrench\r\n);\r\n\r\nexport default FontAwesomeIcon;\r\n","/* istanbul ignore file */\r\nimport { createApp } from \"vue\";\r\nimport \"@/assets/lu-theme/main.scss\";\r\nimport \"@/assets/css/app.css\";\r\nimport App from \"@/App.vue\";\r\nimport router from \"@/router\";\r\nimport store from \"@/store\";\r\nimport i18n from \"@/utilities/i18n\";\r\nimport FontAwesomeIcon from \"@/utilities/fontawesome\";\r\n\r\ncreateApp(App)\r\n .component(\"font-awesome-icon\", FontAwesomeIcon)\r\n .use(i18n)\r\n .use(store)\r\n .use(router)\r\n .mount(\"#app\");\r\n","module.exports = __webpack_public_path__ + \"assets/img/Lunds_university.8f5dad2f.svg\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./LuNavMobileItemChangeLanguage.vue?vue&type=style&index=0&id=3f25e875&scoped=true&lang=css\"","import JsonHelper from \"@/helpers/json-helper\";\r\n\r\nclass LocalStorageService {\r\n setItem(key: string, data: unknown): boolean {\r\n try {\r\n if (typeof data === \"string\") {\r\n localStorage.setItem(key, data);\r\n } else {\r\n localStorage.setItem(key, JSON.stringify(data));\r\n }\r\n return true;\r\n } catch (e) {\r\n console.error(\"LocalStorageService.setItem ~ error\", e);\r\n return false;\r\n }\r\n }\r\n\r\n getItem(key: string): T | undefined {\r\n if (key) {\r\n const storageData = localStorage.getItem(key);\r\n if (storageData) {\r\n try {\r\n if (JsonHelper.isValidJSON(storageData)) {\r\n const data = JSON.parse(storageData);\r\n return data;\r\n } else {\r\n return storageData as unknown as T;\r\n }\r\n } catch (e) {\r\n console.error(\"LocalStorageService.getItem ~ error\", e);\r\n return undefined;\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n deleteItem(key: string) {\r\n localStorage.removeItem(key);\r\n }\r\n\r\n keyExists(key: string): boolean {\r\n return Object.prototype.hasOwnProperty.call(localStorage, key);\r\n }\r\n}\r\n\r\nexport default new LocalStorageService();\r\n"],"sourceRoot":""}