{"version":3,"sources":["webpack:///./node_modules/core-js/internals/engine-ff-version.js","webpack:///./src/services/student-service.ts","webpack:///./src/helpers/date-helper.ts","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/core-js/internals/engine-webkit-version.js","webpack:///./src/components/DetailsHeader.vue?ba0f","webpack:///./src/components/DetailsHeader.vue?507c","webpack:///./src/components/DetailsHeader.vue?135b","webpack:///./node_modules/dayjs/dayjs.min.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./src/helpers/querystring-helper.ts","webpack:///./src/components/PersonDetails.vue?d6c3","webpack:///./src/components/DetailsRow.vue?13ad","webpack:///./src/services/coordinator-service.ts","webpack:///./src/services/course-service.ts","webpack:///./src/components/DetailsHeader.vue?067d","webpack:///./src/components/PersonDetails.vue?9f9f","webpack:///./src/components/PersonDetails.vue?28fb","webpack:///./src/components/PersonDetails.vue?e022","webpack:///./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack:///./src/components/DetailsRow.vue?5ff4","webpack:///./src/components/DetailsRow.vue?0d0e","webpack:///./src/components/DetailsRow.vue?864c"],"names":["userAgent","firefox","match","module","exports","StudentService","id","endpointController","enpointRoute","parameterName","parameterArgument","getStudentById","this","baseApiUrl","fetch","studentParameters","queryString","generateQuerystring","coordinatorId","generateSearchAndPagingParameters","personalId","endpointRoute","getStudentResponseByPersonalId","luEduPersonPrimaryId","getStudentByLuEduPersonPrimaryId","student","addOrUpdateStudent","method","headers","body","JSON","stringify","studentData","console","error","encodeURIComponent","getUpdateNationalIdentityNumber","startDate","endDate","url","Authorization","getJWTToken","response","DateHelper","dateA","dateB","a","b","isBefore","isAfter","date","format","DateFormat","earlierDate","laterDate","diff","days","result","add","toDate","$","uncurryThis","aCallable","toObject","lengthOfArrayLike","toString","fails","internalSort","arrayMethodIsStrict","FF","IE_OR_EDGE","V8","WEBKIT","test","un$Sort","sort","push","FAILS_ON_UNDEFINED","undefined","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","code","chr","value","index","String","fromCharCode","k","v","length","charAt","FORCED","getSortCompare","comparefn","x","y","target","proto","forced","array","itemsLength","items","arrayLength","webkit","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","style","_hoisted_5","tabindex","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","render","_ctx","_cache","$props","$setup","$data","$options","_component_font_awesome_icon","showPrevious","key","onfocus","onClick","$event","$emit","icon","$t","title","showNext","props","type","required","default","Boolean","emits","__exports__","t","e","n","r","i","s","u","o","f","h","c","d","l","M","name","weekdays","split","months","m","Array","join","g","z","utcOffset","Math","abs","floor","year","month","clone","ceil","p","w","D","ms","Q","toLowerCase","replace","_","S","args","arguments","O","locale","$L","utc","$u","$x","$offset","parse","prototype","$d","Date","NaN","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","$g","set","unix","valueOf","getTime","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","invalidDate","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","A","mm","ss","SSS","Z","getTimezoneOffset","toJSON","toISOString","toUTCString","T","forEach","extend","$i","isDayjs","en","Ls","$find","find","addToUnscopables","FIND","SKIPS_HOLES","callbackfn","QuerystringHelper","parameters","search","sortBy","sortOrder","pageNumber","pageSize","CoordinatorService","functionId","getCoordinatorByFunctionId","coordinators","setItem","Coordinators","getItem","getCoordinatorsByFunctionId","CourseService","paramName","paramValue","querystring","getCoursesByLuEduPersonPrimaryId","getCourseOccurrences","getCourseOccurrenceById","course","updateCourseOccurrence","courseOccurrenceId","noteTakerId","parameterName2","parameterArgument2","DeleteNoteTakerFromCourseOccurrence","studentId","paramName2","paramValue2","DeleteStudentFromCourseOccurrence","SendOfferToNoteTaker","offerId","CancelOffer","status","addStudentToCourseInstance","replacement","NotAvailable","startsWith","MinDateValue","startsWithIsoShortDate","formatDate","input","isoShortDatePattern","unavailable","grantedSupportDate","selectedCourses","filter","dateAisBeforeDateB","courseStartDate","courseUid","courses","completedCourse","courseEndDate","_hoisted_10","_hoisted_11","_component_DetailsRow","_component_Select","_component_DatePicker","caption","details","person","firstName","lastName","address","postcode","city","email","telephoneNumber","showCourses","mappedCourses","detailsAreList","detailsAreHtml","showCoordinator","requiredCoordinator","editEnable","editCoordinator","options","coordinatorIds","placeholder","isNumber","data","getCoordinatorName","coordinator","hasOwnProperty","clearable","formatedDate","showSuccessMsg","$slots","showEditButton","edit","editCoordinatorEnable","cancel","save","disabled","saveBtnDisabled","components","DetailsRow","Select","DatePicker","showDatePicker","Object","updateOnChange","saveButtonDisabled","personCopy","updateOnChangeCopy","saveWasSuccessful","methods","store","commit","then","catch","finally","assign","chooseCoordinator","fetchCoordinators","computed","map","showStudentDetails","log","mounted","localstorageLang","$root","$i18n","created","UA","_hoisted_12","_hoisted_13","_hoisted_14","_component_MandatoryFieldFlag","_component_Badge","_component_Tooltip","showDetailsAsBadge","innerHTML","showTooltip","text","tooltipText","bgColor","tooltipColor","color","tooltipTextColor","rounded","backgroundColor","badgeBackgroundColor","showDetailsInBadge","item","Badge","Tooltip","MandatoryFieldFlag"],"mappings":"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","file":"assets/js/chunk-31436b70.1750111f.js","sourcesContent":["var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","import QuerystringHelper from \"@/helpers/querystring-helper\";\r\nimport AuthenticationService from \"./authentication-service\";\r\nimport {\r\n PagedList,\r\n Student,\r\n StudentParameters,\r\n OverviewStudent,\r\n PersonResponse,\r\n WF_NationalIdentityNumberChange,\r\n} from \"@/interfaces/api\";\r\nimport BaseService from \"@/services/base-service\";\r\n\r\nexport interface UpdateResponse {\r\n response: WF_NationalIdentityNumberChange;\r\n success: boolean;\r\n}\r\n\r\nclass StudentService extends BaseService {\r\n /**\r\n * Fetches the student with the specified id\r\n *\r\n * @param {number} id - The id of the student to fetch\r\n * @returns {Promise} A Promise with a person response\r\n */\r\n getStudentById(id: number): Promise {\r\n const endpointController = \"Student\";\r\n const enpointRoute = \"id\";\r\n const parameterName = \"id\";\r\n const parameterArgument = id;\r\n const getStudentById = `${this.baseApiUrl}api/${endpointController}/${enpointRoute}?${parameterName}=${parameterArgument}`;\r\n return this.fetch(getStudentById);\r\n }\r\n\r\n /* Fetches students according to the specified filter/paging parameters\r\n *\r\n * @param {StudentParameters} studentParameters - The filter/paging parameters to be added to the resource querystring\r\n * @returns {Promise>} A Promise with all the students that matched the parameters\r\n */\r\n getFiltered(\r\n studentParameters: StudentParameters\r\n ): Promise> {\r\n const endpointController = \"Student\";\r\n const enpointRoute = \"search\";\r\n const queryString = this.generateQuerystring(studentParameters);\r\n const getStudentById = `${this.baseApiUrl}api/${endpointController}/${enpointRoute}${queryString}`;\r\n return this.fetch>(getStudentById);\r\n }\r\n\r\n /**\r\n * Returns a query string according to the specified filter parameters\r\n *\r\n * @param {StudentParameters} studentParameters - The filter/paging parameters to be added to the resource querystring\r\n * @returns {string} The generated query string\r\n */\r\n private generateQuerystring(studentParameters: StudentParameters): string {\r\n let queryString = \"?\";\r\n\r\n queryString += `CoordinatorId=${studentParameters.coordinatorId}&`;\r\n\r\n queryString +=\r\n QuerystringHelper.generateSearchAndPagingParameters(studentParameters);\r\n\r\n return queryString;\r\n }\r\n\r\n /**\r\n * Fetches a student response containing the student with the specified personal id and also a\r\n * boolean value representing whether or not the student already exists in the STP database\r\n *\r\n * @param {string} personalId - The personal id of the student to fetch\r\n * @returns {Promise} A Promise with a person response\r\n */\r\n getStudentResponseByPersonalId(personalId: string): Promise {\r\n const endpointController = \"Student\";\r\n const endpointRoute = \"personalId\";\r\n const parameterName = \"personalId\";\r\n const parameterArgument = personalId;\r\n const queryString = `${parameterName}=${parameterArgument}`;\r\n const getStudentResponseByPersonalId = `${this.baseApiUrl}api/${endpointController}/${endpointRoute}?${queryString}`;\r\n return this.fetch(getStudentResponseByPersonalId);\r\n }\r\n\r\n /**\r\n * Fetches the student with the specified luEduPersonPrimaryId\r\n *\r\n * @param {string} luEduPersonPrimaryId - The luEduPersonPrimaryId of the student to fetch\r\n * @returns {Promise} A Promise with a student response\r\n */\r\n getStudentByLuEduPersonPrimaryId(\r\n luEduPersonPrimaryId: string\r\n ): Promise {\r\n const endpointController = \"Student\";\r\n const endpointRoute = \"primaryId\";\r\n const parameterName = \"luEduPersonPrimaryId\";\r\n const parameterArgument = luEduPersonPrimaryId;\r\n const queryString = `${parameterName}=${parameterArgument}`;\r\n const getStudentByLuEduPersonPrimaryId = `${this.baseApiUrl}api/${endpointController}/${endpointRoute}?${queryString}`;\r\n return this.fetch(getStudentByLuEduPersonPrimaryId);\r\n }\r\n\r\n /**\r\n * Adds or updates a student\r\n *\r\n * @param {Student} student - The student to add och update\r\n * @returns {Promise} A promise with a boolean value indicating whether or not the operation was successful\r\n */\r\n addOrUpdateStudent(student: Student): Promise {\r\n const endpointController = \"Student\";\r\n const addOrUpdateStudent = `${this.baseApiUrl}api/${endpointController}`;\r\n return this.fetch(addOrUpdateStudent, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(student),\r\n });\r\n }\r\n\r\n /**\r\n * The `submitStudentData` function sends a POST request to submit student data.\r\n * @param {any} studentData - The data of the student to be submitted.\r\n * @returns A Promise that resolves to the response data.\r\n */\r\n async submitStudentData(\r\n studentData: WF_NationalIdentityNumberChange\r\n ): Promise {\r\n try {\r\n const endpointController = \"Student/socialSecurityNumber\";\r\n const submitStudentData = `${this.baseApiUrl}api/${endpointController}`;\r\n return this.fetch(submitStudentData, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(studentData),\r\n });\r\n } catch (error) {\r\n // Handle errors appropriately\r\n console.error(\"Error submitting student data: \", error);\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * Checks if the update of the national identity number for the student with the specified luEduPersonPrimaryId exists.\r\n *\r\n * @param {string} luEduPersonPrimaryId - The luEduPersonPrimaryId of the student to check\r\n * @returns {Promise<{ response: WF_NationalIdentityNumberChange | null; success: boolean }>} A Promise with the updated information\r\n */\r\n getIfUpdateIsInsertedByLuEduPersonPrimaryId(\r\n luEduPersonPrimaryId: string\r\n ): Promise<{\r\n response: WF_NationalIdentityNumberChange | null;\r\n success: boolean;\r\n }> {\r\n const endpointController = \"Student\";\r\n const endpointRoute = \"updatedNationalIdentityNumber\";\r\n const parameterName = \"lucatid\";\r\n const queryString = `${parameterName}=${encodeURIComponent(\r\n luEduPersonPrimaryId\r\n )}`;\r\n const getUpdateNationalIdentityNumber = `${this.baseApiUrl}api/${endpointController}/${endpointRoute}?${queryString}`;\r\n return this.fetch<{\r\n response: WF_NationalIdentityNumberChange | null;\r\n success: boolean;\r\n }>(getUpdateNationalIdentityNumber);\r\n }\r\n\r\n /**\r\n * Exports student data to a excel file based on the provided date range.\r\n *\r\n * @param {string} startDate - The start date of the date range for the export.\r\n * @param {string} endDate - The end date of the date range for the export.\r\n */\r\n async exportStudentsToExcel(startDate: string, endDate: string) {\r\n const endpointController = \"Student\";\r\n const endpointRoute = \"export\";\r\n const queryString = `startDate=${startDate}&endDate=${endDate}`;\r\n const url = `${this.baseApiUrl}api/${endpointController}/${endpointRoute}?${queryString}`;\r\n\r\n const response = await fetch(url, {\r\n method: \"GET\",\r\n headers: {\r\n Authorization: `Bearer ${AuthenticationService.getJWTToken()}`,\r\n },\r\n });\r\n\r\n return response;\r\n }\r\n}\r\n\r\nexport default new StudentService();\r\n","import dayjs from \"dayjs\";\r\nimport { Constants } from \"@/constants/constants\";\r\n\r\ntype DateType = dayjs.Dayjs | Date | string;\r\n\r\nclass DateHelper {\r\n /*\r\n * Compared the two dates\r\n * Returns 0 if the dates are equal\r\n * Returns -1 if dateA is before dateB\r\n * Returns 1 if dateA is after dateB\r\n */\r\n dateCompareFunction(dateA: DateType, dateB: DateType): -1 | 0 | 1 {\r\n const a = dayjs(dateA);\r\n const b = dayjs(dateB);\r\n if (a.isBefore(b)) return -1;\r\n if (a.isAfter(b)) return 1;\r\n return 0;\r\n }\r\n\r\n /*\r\n * Formats the date to the specific format\r\n * Defaults to YYYY-MM-DD\r\n */\r\n formatDate(date: DateType, format: string = Constants.DateFormat): string {\r\n return date ? dayjs(date).format(format) : \"\";\r\n }\r\n\r\n /*\r\n * Returns a boolean value indicating whether dateA is before dateB\r\n */\r\n dateAisBeforeDateB(\r\n dateA: string | DateType,\r\n dateB: string | DateType\r\n ): boolean {\r\n return dayjs(dateA).isBefore(dayjs(dateB));\r\n }\r\n\r\n /*\r\n * Returns the number of days between the 2 specified dates\r\n */\r\n daysBetweenDates(\r\n earlierDate: string | DateType,\r\n laterDate: string | DateType\r\n ): number {\r\n return dayjs(laterDate).diff(dayjs(earlierDate), \"days\");\r\n }\r\n\r\n /*\r\n * Adds the number of specified days to the specified date\r\n */\r\n addDaysToDate(date: DateType, days: number): Date {\r\n const result = dayjs(date).add(days, \"day\");\r\n return dayjs(result).toDate();\r\n }\r\n}\r\n\r\nexport default new DateHelper();\r\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0f3c00a4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"container\" }\nconst _hoisted_2 = { class: \"d-flex flex-row align-items-center p-2\" }\nconst _hoisted_3 = { class: \"d-flex justify-content-start w-100\" }\nconst _hoisted_4 = { style: {\"padding\":\"0 10px\"} }\nconst _hoisted_5 = { tabindex: \"0\" }\nconst _hoisted_6 = { class: \"page-heading\" }\nconst _hoisted_7 = { class: \"d-flex justify-content-end w-100\" }\nconst _hoisted_8 = { tabindex: \"0\" }\nconst _hoisted_9 = { style: {\"padding\":\"0 10px\"} }\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(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_ctx.showPrevious)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n id: \"previousBtn\",\n class: \"btn btn-link btn-block text-left\",\n onfocus: \"this.blur()\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$emit('previous')))\n }, [\n _createElementVNode(\"span\", _hoisted_4, [\n _createVNode(_component_font_awesome_icon, { icon: \"arrow-circle-left\" })\n ]),\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.$t(\"pagination.previous\")), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"h1\", _hoisted_6, _toDisplayString(_ctx.title), 1),\n _createElementVNode(\"div\", _hoisted_7, [\n (_ctx.showNext)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n id: \"nextBtn\",\n class: \"btn btn-link btn-block text-right\",\n onfocus: \"this.blur()\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('next')))\n }, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t(\"pagination.next\")), 1),\n _createElementVNode(\"span\", _hoisted_9, [\n _createVNode(_component_font_awesome_icon, { icon: \"arrow-circle-right\" })\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\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 * Holds the id of the item and is populated from the route's id parameter when the page loads\r\n */\r\n title: {\r\n type: String as PropType,\r\n required: false,\r\n default: \"\",\r\n },\r\n\r\n showPrevious: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: true,\r\n },\r\n\r\n showNext: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: true,\r\n },\r\n },\r\n emits: [\"previous\", \"next\"],\r\n})\r\nexport default class DetailsHeader extends Vue {}\r\n","import { render } from \"./DetailsHeader.vue?vue&type=template&id=0f3c00a4&scoped=true&ts=true\"\nimport script from \"./DetailsHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./DetailsHeader.vue?vue&type=script&lang=ts\"\n\nimport \"./DetailsHeader.vue?vue&type=style&index=0&id=0f3c00a4&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-0f3c00a4\"]])\n\nexport default __exports__","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",$=\"Invalid Date\",l=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(v=i),i||!r&&v},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=g;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match(l);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===$)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t) 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","import { QueryStringParameters } from \"@/interfaces/api\";\r\n\r\nclass QuerystringHelper {\r\n generateSearchAndPagingParameters(parameters: QueryStringParameters): string {\r\n let queryString = \"\";\r\n\r\n if (parameters.search) {\r\n queryString += `Search=${parameters.search}&`;\r\n }\r\n\r\n queryString += `SortBy=${parameters.sortBy}&`;\r\n\r\n queryString += `SortOrder=${parameters.sortOrder}&`;\r\n\r\n queryString += `PageNumber=${parameters.pageNumber}&`;\r\n\r\n queryString += `PageSize=${parameters.pageSize}`;\r\n\r\n return queryString;\r\n }\r\n}\r\n\r\nexport default new QuerystringHelper();\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!./PersonDetails.vue?vue&type=style&index=0&id=5526427c&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!./DetailsRow.vue?vue&type=style&index=0&id=0948d347&scoped=true&lang=css\"","import { SessionStorageKeys } from \"@/constants/constants\";\r\nimport { CoordinatorBase } from \"@/interfaces/api\";\r\nimport BaseService from \"@/services/base-service\";\r\nimport SessionStorageService from \"@/services/sessionstorage-service\";\r\n\r\nclass CoordinatorService extends BaseService {\r\n /**\r\n * Fetches the coordinators with the specified function id\r\n *\r\n * @param {number} functionId - The function id of the coordinators to fetch\r\n * @returns {Promise} A Promise with the coordinators\r\n */\r\n async getCoordinatorsByFunctionId(\r\n functionId: number\r\n ): Promise {\r\n const endpointController = \"Coordinator\";\r\n const parameterName = \"functionId\";\r\n const parameterArgument = functionId;\r\n const getCoordinatorByFunctionId = `${this.baseApiUrl}api/${endpointController}?${parameterName}=${parameterArgument}`;\r\n\r\n const coordinators = await this.fetch(\r\n getCoordinatorByFunctionId\r\n );\r\n\r\n if (coordinators) {\r\n SessionStorageService.setItem(\r\n SessionStorageKeys.Coordinators,\r\n coordinators\r\n );\r\n }\r\n\r\n return coordinators;\r\n }\r\n\r\n /**\r\n * Fetches the coordinators with the specified function id from session storage\r\n * if it exists, otherwise it fetches it from the API and stores it in session storage\r\n *\r\n * @param {number} functionId - The function id of the coordinators to fetch\r\n * @returns {Promise} A Promise with the coordinators\r\n */\r\n async getCachedCoordinatorsByFunctionId(\r\n functionId: number\r\n ): Promise {\r\n let coordinators = SessionStorageService.getItem(\r\n SessionStorageKeys.Coordinators\r\n );\r\n\r\n if (coordinators) {\r\n return coordinators;\r\n }\r\n\r\n coordinators = await this.getCoordinatorsByFunctionId(functionId);\r\n return coordinators;\r\n }\r\n}\r\n\r\nexport default new CoordinatorService();\r\n","import { Constants } from \"@/constants/constants\";\r\nimport DateHelper from \"@/helpers/date-helper\";\r\nimport QuerystringHelper from \"@/helpers/querystring-helper\";\r\nimport {\r\n Course,\r\n CourseOccurrence,\r\n CourseOccurrenceBase,\r\n PagedList,\r\n QueryStringParameters,\r\n} from \"@/interfaces/api\";\r\nimport { PersonCourse } from \"@/interfaces/PersonCourse\";\r\nimport BaseService from \"@/services/base-service\";\r\n\r\nclass CourseService extends BaseService {\r\n /**\r\n * Fetches all the courses for a person with a specific luEduPersonPrimaryId\r\n *\r\n * @param {string} luEduPersonPrimaryId - The luEduPersonPrimaryId of the person\r\n * @returns {Promise>} A promise with all the courses\r\n */\r\n getCoursesByLuEduPersonPrimaryId(\r\n luEduPersonPrimaryId: string\r\n ): Promise> {\r\n const endpointController = \"Course\";\r\n const endpointRoute = \"luEduPersonPrimaryId\";\r\n const paramName = \"luEduPersonPrimaryId\";\r\n const paramValue = luEduPersonPrimaryId;\r\n const querystring = `${paramName}=${paramValue}`;\r\n const getCoursesByLuEduPersonPrimaryId = `${this.baseApiUrl}api/${endpointController}/${endpointRoute}?${querystring}`;\r\n return this.fetch>(getCoursesByLuEduPersonPrimaryId);\r\n }\r\n\r\n /**\r\n * Fetches all course occurrences according to the specified paging parameters\r\n *\r\n * @param {QueryStringParameters} parameters - A Promise with a paged list containing paging data and a list of\r\n * all the course occurrences sorted according to the specified parameters\r\n */\r\n getCourseOccurrences(\r\n parameters: QueryStringParameters\r\n ): Promise> {\r\n const endpointController = \"Course\";\r\n const enpointRoute = \"courseOccurrences\";\r\n const queryString = this.generateQuerystring(parameters);\r\n const getCourseOccurrences = `${this.baseApiUrl}api/${endpointController}/${enpointRoute}${queryString}`;\r\n return this.fetch>(getCourseOccurrences);\r\n }\r\n\r\n /**\r\n * Fetches the note taker with the specified id\r\n *\r\n * @param {number} id - The id of the note taker to fetch\r\n * @returns {Promise} A Promise with the note taker\r\n */\r\n getCourseOccurrenceById(id: number): Promise {\r\n const endpointController = \"Course\";\r\n const enpointRoute = \"courseOccurrenceId\";\r\n const paramName = \"id\";\r\n const paramValue = id;\r\n const getCourseOccurrenceById = `${this.baseApiUrl}api/${endpointController}/${enpointRoute}?${paramName}=${paramValue}`;\r\n return this.fetch(getCourseOccurrenceById);\r\n }\r\n\r\n /**\r\n * Updates a course occurrence\r\n *\r\n * @param {CourseOccurrence} course - The course to update\r\n *\r\n * @returns {Promise} A promise with a boolean value indicating whether or not the operation was successful\r\n */\r\n updateCourseOccurrence(course: CourseOccurrence): Promise {\r\n const endpointController = \"Course\";\r\n const updateCourseOccurrence = `${this.baseApiUrl}api/${endpointController}`;\r\n return this.fetch(updateCourseOccurrence, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(course),\r\n });\r\n }\r\n\r\n deleteNoteTakerFromCourseOccurrence(\r\n courseOccurrenceId: number,\r\n noteTakerId: number\r\n ): Promise {\r\n const endpointController = \"Course\";\r\n const endpointRoute = \"courseOccurrences/noteTaker\";\r\n const parameterName = \"courseOccurrenceId\";\r\n const parameterArgument = courseOccurrenceId;\r\n const parameterName2 = \"noteTakerId\";\r\n const parameterArgument2 = noteTakerId;\r\n const queryString = `${parameterName}=${parameterArgument}&${parameterName2}=${parameterArgument2}`;\r\n const DeleteNoteTakerFromCourseOccurrence = `${this.baseApiUrl}api/${endpointController}/${endpointRoute}?${queryString}`;\r\n return this.fetch(DeleteNoteTakerFromCourseOccurrence, {\r\n method: \"DELETE\",\r\n });\r\n }\r\n\r\n deleteStudentFromCourseOccurrence(\r\n courseOccurrenceId: number,\r\n studentId: number\r\n ): Promise {\r\n const endpointController = \"Course\";\r\n const endpointRoute = \"courseOccurrences/student\";\r\n const paramName = \"courseOccurrenceId\";\r\n const paramValue = courseOccurrenceId;\r\n const paramName2 = \"studentId\";\r\n const paramValue2 = studentId;\r\n const queryString = `${paramName}=${paramValue}&${paramName2}=${paramValue2}`;\r\n const DeleteStudentFromCourseOccurrence = `${this.baseApiUrl}api/${endpointController}/${endpointRoute}?${queryString}`;\r\n return this.fetch(DeleteStudentFromCourseOccurrence, {\r\n method: \"DELETE\",\r\n });\r\n }\r\n\r\n sendOfferToNoteTaker(\r\n courseOccurrenceId: number,\r\n noteTakerId: number\r\n ): Promise {\r\n const endpointController = \"Course\";\r\n const endpointRoute = \"courseOccurrences/offer\";\r\n const paramName = \"courseOccurrenceId\";\r\n const paramValue = courseOccurrenceId;\r\n const paramName2 = \"noteTakerId\";\r\n const paramValue2 = noteTakerId;\r\n const queryString = `${paramName}=${paramValue}&${paramName2}=${paramValue2}`;\r\n const SendOfferToNoteTaker = `${this.baseApiUrl}api/${endpointController}/${endpointRoute}?${queryString}`;\r\n return this.fetch(SendOfferToNoteTaker, { method: \"POST\" });\r\n }\r\n\r\n cancelOffer(offerId: number): Promise {\r\n const endpointController = \"Course\";\r\n const endpointRoute = \"courseOccurrences/offer\";\r\n const paramName = \"offerId\";\r\n const paramValue = offerId;\r\n const CancelOffer = `${this.baseApiUrl}api/${endpointController}/${endpointRoute}?${paramName}=${paramValue}`;\r\n return this.fetch(CancelOffer, { method: \"DELETE\" });\r\n }\r\n\r\n /**\r\n * Returns a color based on course occurrence status\r\n *\r\n * @param {string} status The status we want a color for\r\n */\r\n courseOccurrenceStatusColor(status: string): string {\r\n switch (status) {\r\n case \"Green\":\r\n return \"#3d7d40\";\r\n case \"Orange\":\r\n return \"#ef8943\";\r\n case \"Yellow\":\r\n return \"#f8dc7b\";\r\n case \"Red\":\r\n return \"#c83532\";\r\n case \"Grey\":\r\n return \"#909090\";\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n /**\r\n * Returns a text based on course occurrence status\r\n *\r\n * @param {string} status The status we want text for\r\n */\r\n courseOccurrenceStatusText(status: string): string {\r\n return `course-occurrence.statusText.${status}`;\r\n }\r\n\r\n /**\r\n * Adds student to a course instance\r\n *\r\n * @param {number} studentId The id of the student\r\n * @param {string} courseUid The course Uid of where the student should be added\r\n * @param {string} facultySv The course's faculty name in Swedish\r\n * @param {string} occurrence A concatenation of the course code and term\r\n * @param {string} courseEndDate The course's end date\r\n *\r\n * @returns {Promise} A promise with a boolean value indicating whether or not the operation was successful\r\n */\r\n addStudentToCourseInstance(\r\n studentId: number,\r\n course: Course\r\n ): Promise {\r\n const endpointController = \"Course\";\r\n const endpointRoute = \"courseOccurrences/student\";\r\n const paramName = \"studentId\";\r\n const paramValue = studentId;\r\n const queryString = `${paramName}=${paramValue}`;\r\n const addStudentToCourseInstance = `${this.baseApiUrl}api/${endpointController}/${endpointRoute}?${queryString}`;\r\n return this.fetch(addStudentToCourseInstance, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(course),\r\n });\r\n }\r\n\r\n /**\r\n * Returns a query string according to the specified filter parameters\r\n *\r\n * @param {QueryStringParameters} parameters - The filter/paging parameters to be added to the resource querystring\r\n * @returns {string} The generated query string\r\n */\r\n private generateQuerystring(parameters: QueryStringParameters): string {\r\n let queryString = \"?\";\r\n\r\n queryString += `CoordinatorId=${parameters.coordinatorId}&`;\r\n\r\n queryString +=\r\n QuerystringHelper.generateSearchAndPagingParameters(parameters);\r\n\r\n return queryString;\r\n }\r\n\r\n /**\r\n * Checks if the specified value is \"unavailable\" and if so, replaces it with the specified replacement.\r\n * This occurs when the backend could not find the course in Ladok\r\n *\r\n * Also checks if the value is a date and if so, formats it\r\n * This is in conjunction with the backend now using a DateTime type for dates instead of a string\r\n *\r\n * @param {string} value - The value to check\r\n * @param {string} replacement - The replacement value\r\n *\r\n * @returns {string} The checked string\r\n */\r\n replaceUnvailableOrFormatDate(value: string, replacement: string): string {\r\n if (\r\n value === Constants.NotAvailable ||\r\n value.startsWith(Constants.MinDateValue)\r\n ) {\r\n value = replacement;\r\n } else if (this.startsWithIsoShortDate(value)) {\r\n value = DateHelper.formatDate(value);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n /**\r\n * Checks if the specified string starts with an ISO short date\r\n *\r\n * @param {string} input - The string to check\r\n *\r\n * @returns {boolean} Whether the string starts with an ISO short date\r\n */\r\n startsWithIsoShortDate(input: string): boolean {\r\n const isoShortDatePattern = /^\\d{4}-\\d{2}-\\d{2}/;\r\n return isoShortDatePattern.test(input);\r\n }\r\n\r\n /**\r\n * Sets the course title to be used as text for tooltip over link to course detail view\r\n * because just the text \"unavailable\" could be misunderstood to mean the linked view is unavailable\r\n */\r\n getCourseTitleTooltipText(title: string, unavailable: string): string {\r\n return `${title} ${unavailable.toLowerCase()}`;\r\n }\r\n\r\n /**\r\n * Checks if the granted support date is earlier than any of the selected course start dates\r\n *\r\n * @param {Date | string} grantedSupportDate The granted support date\r\n * @returns {Array} selectedCourses The selected courses\r\n *\r\n * @returns {Array} The courses that match the criteria\r\n */\r\n checkGrantedSupportDate(\r\n grantedSupportDate: Date | string,\r\n selectedCourses: Array\r\n ): Array {\r\n if (grantedSupportDate) {\r\n return selectedCourses.filter((course: PersonCourse) =>\r\n DateHelper.dateAisBeforeDateB(\r\n grantedSupportDate,\r\n course.courseStartDate\r\n )\r\n );\r\n }\r\n return new Array();\r\n }\r\n\r\n /**\r\n * Checks whether the course with the specified course Uid has an end date that has passed\r\n * Used for setting the disabled attribute on the course checkbox\r\n *\r\n * @param {string} courseUid The course Uid\r\n * @param {Array} courses The courses to search\r\n *\r\n * @returns {boolean} whether the course has an end date that has passed\r\n */\r\n isCompletedCourse(courseUid: string, courses: Array): boolean {\r\n if (!courses) {\r\n return false;\r\n }\r\n\r\n const completedCourse = courses.find(\r\n (course: Course) =>\r\n course.courseUid.toLowerCase() === courseUid.toLowerCase() &&\r\n DateHelper.dateAisBeforeDateB(course.courseEndDate, new Date())\r\n );\r\n\r\n return completedCourse != null;\r\n }\r\n}\r\n\r\nexport default new CourseService();\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!./DetailsHeader.vue?vue&type=style&index=0&id=0f3c00a4&scoped=true&lang=css\"","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, renderSlot as _renderSlot, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5526427c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { key: 1 }\nconst _hoisted_2 = { key: 2 }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = {\n key: 4,\n class: \"save-successful\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { \"aria-hidden\": \"true\" }, \"×\", -1))\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = {\n key: 5,\n class: \"detailsRow d-flex\"\n}\nconst _hoisted_9 = { class: \"detailsCol\" }\nconst _hoisted_10 = [\"title\"]\nconst _hoisted_11 = [\"disabled\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DetailsRow = _resolveComponent(\"DetailsRow\")!\n const _component_Select = _resolveComponent(\"Select\")!\n const _component_DatePicker = _resolveComponent(\"DatePicker\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_DetailsRow, {\n caption: \"person.personalId\",\n details: _ctx.person.personalId\n }, null, 8, [\"details\"]),\n _createVNode(_component_DetailsRow, {\n caption: \"person.name\",\n details: `${_ctx.person.firstName} ${_ctx.person.lastName}`\n }, null, 8, [\"details\"]),\n (_ctx.person.address)\n ? (_openBlock(), _createBlock(_component_DetailsRow, {\n key: 0,\n caption: \"person.address\",\n details: `${_ctx.person.address}, ${_ctx.person.postcode}, ${_ctx.person.city}`\n }, null, 8, [\"details\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_DetailsRow, {\n caption: \"person.email\",\n details: _ctx.person.email\n }, null, 8, [\"details\"]),\n _createVNode(_component_DetailsRow, {\n caption: \"person.telephoneNumber\",\n details: _ctx.person.telephoneNumber\n }, null, 8, [\"details\"]),\n (_ctx.showCourses)\n ? (_openBlock(), _createBlock(_component_DetailsRow, {\n key: 1,\n caption: \"shared.courses\",\n details: _ctx.mappedCourses,\n detailsAreList: true,\n detailsAreHtml: true\n }, null, 8, [\"details\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.showCoordinator)\n ? (_openBlock(), _createBlock(_component_DetailsRow, {\n key: 2,\n caption: \"person.coordinator\",\n required: _ctx.requiredCoordinator\n }, {\n default: _withCtx(() => [\n (_ctx.editEnable || _ctx.editCoordinator)\n ? (_openBlock(), _createBlock(_component_Select, {\n key: 0,\n id: \"coordinator\",\n options: _ctx.coordinatorIds,\n value: _ctx.person.coordinatorId,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.person.coordinatorId) = $event)),\n placeholder: `- ${_ctx.$t('shared.choose')} -`,\n isNumber: true\n }, {\n default: _withCtx((data) => [\n _createTextVNode(_toDisplayString(_ctx.getCoordinatorName(data.value)), 1)\n ]),\n _: 1\n }, 8, [\"options\", \"value\", \"placeholder\"]))\n : (_ctx.coordinator)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, _toDisplayString(_ctx.coordinator.name), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(_ctx.$t(\"student-details.no-coordinator\")), 1))\n ]),\n _: 1\n }, 8, [\"required\"]))\n : _createCommentVNode(\"\", true),\n (\r\n this.person.hasOwnProperty('grantedSupportDate') &&\r\n this.person.grantedSupportDate !== null\r\n )\n ? (_openBlock(), _createBlock(_component_DetailsRow, {\n key: 3,\n caption: \"person.grantedSupportDate\"\n }, {\n default: _withCtx(() => [\n (_ctx.editEnable)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, [\n _createVNode(_component_DatePicker, {\n value: _ctx.person.grantedSupportDate,\n \"onUpdate:value\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.person.grantedSupportDate) = $event)),\n required: true,\n clearable: false\n }, null, 8, [\"value\"])\n ]))\n : _createCommentVNode(\"\", true),\n (!_ctx.editEnable)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, _toDisplayString(_ctx.formatedDate), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_ctx.showSuccessMsg)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createTextVNode(_toDisplayString(_ctx.$t(\"shared.saveSuccessful\")) + \" \", 1),\n (_ctx.showSuccessMsg)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n type: \"button\",\n class: \"close\",\n \"data-dismiss\": \"alert\",\n \"aria-label\": \"Close\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.showSuccessMsg = null))\n }, _hoisted_7))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true),\n (_ctx.showEditButton)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"div\", _hoisted_9, [\n (!_ctx.editEnable)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n title: _ctx.$t('student-details.edit-btn-tooltip'),\n id: \"editBtn\",\n type: \"button\",\n class: \"btn btn-outline-primary\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.edit()))\n }, _toDisplayString(_ctx.$t(\"shared.edit\")), 9, _hoisted_10))\n : _createCommentVNode(\"\", true),\n (_ctx.editEnable || _ctx.editCoordinatorEnable)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n id: \"cancelBtn\",\n type: \"button\",\n class: \"btn btn-outline-primary mr-2\",\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.cancel()))\n }, _toDisplayString(_ctx.$t(\"shared.cancel\")), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.editEnable || _ctx.editCoordinatorEnable)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 2,\n \"background-color\": \"btn btn-primary\",\n id: \"saveBtn\",\n type: \"button\",\n class: \"btn btn-primary\",\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.save())),\n disabled: _ctx.saveBtnDisabled\n }, _toDisplayString(_ctx.$t(\"shared.save\")), 9, _hoisted_11))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport dayjs from \"dayjs\";\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport { Coordinator, Person, Student } from \"@/interfaces/api\";\r\nimport DetailsRow from \"@/components/DetailsRow.vue\";\r\nimport Select from \"@/components/Form/Select.vue\";\r\nimport DateHelper from \"@/helpers/date-helper\";\r\nimport LocalStorageService from \"@/services/localstorage-service\";\r\nimport CoordinatorService from \"@/services/coordinator-service\";\r\nimport DatePicker from \"./Form/DatePicker.vue\";\r\nimport StudentService from \"@/services/student-service\";\r\nimport store from \"@/store\";\r\n\r\n@Options({\r\n components: {\r\n DetailsRow,\r\n Select,\r\n DatePicker,\r\n },\r\n props: {\r\n /**\r\n * Enables edit Coordinator dropdown\r\n */\r\n editCoordinator: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: false,\r\n },\r\n /**\r\n * Show Coordinator dropdown\r\n */\r\n showCoordinator: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: false,\r\n },\r\n /**\r\n * Required if showCoordinator\r\n * The functionId to fetch coordinators from\r\n */\r\n functionId: {\r\n type: Number as PropType,\r\n required: false,\r\n },\r\n /**\r\n * Show date picker\r\n */\r\n showDatePicker: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: true,\r\n },\r\n /**\r\n * Show edit button\r\n */\r\n showEditButton: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: false,\r\n },\r\n /**\r\n * The Person object containing the data to be displayed\r\n */\r\n person: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n /**\r\n * The Coordinator object containing the data to be displayed\r\n */\r\n coordinator: {\r\n type: Object as PropType,\r\n required: false,\r\n default: {},\r\n },\r\n /**\r\n * If coordinator is required or not\r\n */\r\n requiredCoordinator: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: false,\r\n },\r\n updateOnChange: {\r\n required: false,\r\n default: [],\r\n },\r\n /**\r\n * If the save button is disabled\r\n */\r\n saveButtonDisabled: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: false,\r\n },\r\n },\r\n emits: [\"saveEdit\", \"editEnable\", \"cancelEdit\", \"newCoordinator\"],\r\n data: () => ({\r\n /**\r\n * If edit-mode is enabled or not\r\n */\r\n editEnable: false,\r\n /**\r\n * A Person copy object as backup\r\n * to re-paste if you chose to cancel edit mode.\r\n */\r\n personCopy: {\r\n type: Object as PropType,\r\n default: {},\r\n },\r\n\r\n updateOnChangeCopy: {\r\n type: Array as PropType,\r\n default: [],\r\n },\r\n /**\r\n * The coordinators working with the specified function (functionId)\r\n */\r\n coordinators: {\r\n type: Array as PropType>,\r\n required: false,\r\n default: [],\r\n },\r\n /**\r\n * Save call to service returns a boolean value idicating whether the save was successful or not\r\n * Used to display the result to the student\r\n */\r\n saveWasSuccessful: null,\r\n /**\r\n * The message to display when edit is saved\r\n */\r\n showSuccessMsg: null,\r\n }),\r\n methods: {\r\n /**\r\n * Saves the the changes made on the student profile\r\n */\r\n async save() {\r\n store.commit(\"showSpinner\", true);\r\n const grantedSupportDate = DateHelper.formatDate(\r\n this.person.grantedSupportDate\r\n );\r\n\r\n StudentService.addOrUpdateStudent({\r\n ...this.person,\r\n grantedSupportDate: grantedSupportDate,\r\n })\r\n .then((response: Student) => {\r\n this.saveWasSuccessful = !!response;\r\n this.showSuccessMsg = true;\r\n this.editEnable = false;\r\n this.person.coordinator = this.coordinators.find(\r\n (coordinator: Coordinator) =>\r\n coordinator.id === this.person.coordinatorId\r\n );\r\n this.$emit(\"saveEdit\");\r\n })\r\n .catch((e: Error) => {\r\n console.error(e);\r\n })\r\n .finally(() => {\r\n store.commit(\"showSpinner\", false);\r\n });\r\n },\r\n\r\n /**\r\n * Activates edit-mode\r\n */\r\n edit() {\r\n this.editEnable = true;\r\n this.personCopy = { ...this.person };\r\n this.$emit(\"editEnable\");\r\n\r\n this.updateOnChangeCopy = JSON.stringify(this.updateOnChange);\r\n },\r\n\r\n /**\r\n * Cancels edit mode and restores the person copy to null\r\n */\r\n cancel() {\r\n this.editEnable = false;\r\n Object.assign(this.person, this.personCopy);\r\n this.personCopy = null;\r\n this.showSuccessMsg = false;\r\n this.$emit(\"cancelEdit\");\r\n },\r\n\r\n /**\r\n * Emit event to parent that the coordinator should be updated for the person\r\n */\r\n chooseCoordinator(): void {\r\n this.$emit(\"newCoordinator\", this.person.coordinatorId);\r\n },\r\n\r\n /**\r\n * Gets the name for the coordinator with the specified Id\r\n */\r\n getCoordinatorName(coordinatorId: number): string {\r\n const coordinator = this.coordinators.find(\r\n (coordinator: Coordinator) => coordinator.id === coordinatorId\r\n );\r\n\r\n return coordinator ? coordinator.name : null;\r\n },\r\n /**\r\n * Fetch coordinators from the function with the specified Id\r\n */\r\n fetchCoordinators(functionId: number) {\r\n CoordinatorService.getCoordinatorsByFunctionId(functionId).then(\r\n (coordinators) => {\r\n if (coordinators) {\r\n this.coordinators = coordinators;\r\n }\r\n }\r\n );\r\n },\r\n },\r\n computed: {\r\n saveBtnDisabled() {\r\n return (\r\n this.saveButtonDisabled ||\r\n (JSON.stringify(this.personCopy) === JSON.stringify(this.person) &&\r\n this.updateOnChangeCopy === JSON.stringify(this.updateOnChange))\r\n );\r\n },\r\n /*\r\n * To format the displayed granted support date\r\n */\r\n formatedDate() {\r\n return dayjs(this.person.grantedSupportDate).format(\"YYYY-MM-DD\");\r\n },\r\n /*\r\n * The Id of the current coordinator\r\n */\r\n coordinatorId() {\r\n return this.coordinator ? this.coordinator.id : null;\r\n },\r\n /*\r\n * A list of Ids for all the coordinators\r\n */\r\n coordinatorIds() {\r\n return this.coordinators.length\r\n ? this.coordinators.map((coordinator: Coordinator) => coordinator.id)\r\n : [];\r\n },\r\n showStudentDetails(): boolean {\r\n console.log(\"THIS PERSON: \", this.person);\r\n return this.person;\r\n },\r\n },\r\n mounted() {\r\n const localstorageLang = LocalStorageService.getItem(\"language\");\r\n this.$root.$i18n.locale = localstorageLang;\r\n this.saveWasSuccessful = null;\r\n },\r\n created() {\r\n if (this.showCoordinator) {\r\n this.fetchCoordinators(this.functionId);\r\n }\r\n },\r\n})\r\nexport default class PersonDetails extends Vue {}\r\n","import { render } from \"./PersonDetails.vue?vue&type=template&id=5526427c&scoped=true&ts=true\"\nimport script from \"./PersonDetails.vue?vue&type=script&lang=ts\"\nexport * from \"./PersonDetails.vue?vue&type=script&lang=ts\"\n\nimport \"./PersonDetails.vue?vue&type=style&index=0&id=5526427c&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-5526427c\"]])\n\nexport default __exports__","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","import { toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, withCtx as _withCtx, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, renderSlot as _renderSlot, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0948d347\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"detailsRow\" }\nconst _hoisted_2 = { class: \"detailsCaption\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"detailsCol\"\n}\nconst _hoisted_4 = [\"innerHTML\"]\nconst _hoisted_5 = {\n key: 2,\n class: \"detailsCol\"\n}\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = { key: 1 }\nconst _hoisted_8 = { key: 0 }\nconst _hoisted_9 = { key: 1 }\nconst _hoisted_10 = {\n key: 3,\n class: \"detailsCol\"\n}\nconst _hoisted_11 = { key: 0 }\nconst _hoisted_12 = [\"innerHTML\"]\nconst _hoisted_13 = { key: 1 }\nconst _hoisted_14 = {\n key: 4,\n class: \"detailsCol\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_MandatoryFieldFlag = _resolveComponent(\"MandatoryFieldFlag\")!\n const _component_Badge = _resolveComponent(\"Badge\")!\n const _component_Tooltip = _resolveComponent(\"Tooltip\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createTextVNode(_toDisplayString(_ctx.caption ? _ctx.$t(_ctx.caption) : \"\") + \" \", 1),\n (_ctx.required)\n ? (_openBlock(), _createBlock(_component_MandatoryFieldFlag, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]),\n (\r\n !_ctx.detailsAreHtml && !_ctx.showDetailsAsBadge && !_ctx.detailsAreList && _ctx.details\r\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.details), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.detailsAreHtml && !_ctx.showDetailsAsBadge && !_ctx.detailsAreList)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"detailsCol\",\n innerHTML: _ctx.details\n }, null, 8, _hoisted_4))\n : _createCommentVNode(\"\", true),\n (_ctx.showDetailsAsBadge)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n (_ctx.showTooltip)\n ? (_openBlock(), _createBlock(_component_Tooltip, {\n key: 0,\n text: _ctx.tooltipText,\n bgColor: _ctx.tooltipColor,\n color: _ctx.tooltipTextColor\n }, {\n default: _withCtx(() => [\n _createVNode(_component_Badge, {\n rounded: true,\n backgroundColor: _ctx.badgeBackgroundColor\n }, {\n default: _withCtx(() => [\n (_ctx.showDetailsInBadge)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_6, _toDisplayString(_ctx.details), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_7, \" \"))\n ]),\n _: 1\n }, 8, [\"backgroundColor\"])\n ]),\n _: 1\n }, 8, [\"text\", \"bgColor\", \"color\"]))\n : (_openBlock(), _createBlock(_component_Badge, {\n key: 1,\n rounded: true,\n backgroundColor: _ctx.badgeBackgroundColor\n }, {\n default: _withCtx(() => [\n (_ctx.showDetailsInBadge)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_8, _toDisplayString(_ctx.details), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_9, \" \"))\n ]),\n _: 1\n }, 8, [\"backgroundColor\"]))\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.detailsAreList)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n (_ctx.detailsAreHtml)\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_11, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.details, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: item,\n innerHTML: item\n }, null, 8, _hoisted_12))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"ul\", _hoisted_13, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.details, (item) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: item }, _toDisplayString(item), 1))\n }), 128))\n ]))\n ]))\n : _createCommentVNode(\"\", true),\n (!_ctx.details || !_ctx.details.length)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _renderSlot(_ctx.$slots, \"default\", {}, undefined, true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}","\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport Badge from \"@/components/Badge.vue\";\r\nimport Tooltip from \"@/components/Tooltip.vue\";\r\nimport MandatoryFieldFlag from \"@/components/Form/MandatoryFieldFlag.vue\";\r\n\r\n@Options({\r\n components: {\r\n Badge,\r\n Tooltip,\r\n MandatoryFieldFlag,\r\n },\r\n props: {\r\n /**\r\n * The caption for the row\r\n */\r\n caption: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n /**\r\n * The info/details for the row\r\n */\r\n details: {\r\n type: [String, Array] as PropType>,\r\n required: false,\r\n },\r\n /**\r\n * If set to true the details are shown as a badge\r\n */\r\n showDetailsAsBadge: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: false,\r\n },\r\n /**\r\n * If set to true the details are shown in the badge,\r\n * otherwise the badge can be used for example purely as a status color\r\n * showDetailsAsBadge must also be set to true\r\n */\r\n showDetailsInBadge: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: false,\r\n },\r\n /**\r\n * Background color of the badge\r\n */\r\n badgeBackgroundColor: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n /**\r\n * If set to true the details are shown as a list\r\n */\r\n detailsAreList: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: false,\r\n },\r\n /**\r\n * If set to true the details are rendered as a HTML\r\n */\r\n detailsAreHtml: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: false,\r\n },\r\n showTooltip: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: false,\r\n },\r\n tooltipText: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n tooltipColor: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n tooltipTextColor: {\r\n type: String as PropType,\r\n required: false,\r\n },\r\n required: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: false,\r\n },\r\n },\r\n})\r\nexport default class DetailsRow extends Vue {}\r\n","import { render } from \"./DetailsRow.vue?vue&type=template&id=0948d347&scoped=true&ts=true\"\nimport script from \"./DetailsRow.vue?vue&type=script&lang=ts\"\nexport * from \"./DetailsRow.vue?vue&type=script&lang=ts\"\n\nimport \"./DetailsRow.vue?vue&type=style&index=0&id=0948d347&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-0948d347\"]])\n\nexport default __exports__"],"sourceRoot":""}