{"version":3,"sources":["webpack:///./src/views/administrator/NoteTakerDetails.vue?c278","webpack:///./src/services/notetaker-service.ts","webpack:///./src/views/administrator/NoteTakerDetails.vue?71b8","webpack:///./src/views/administrator/NoteTakerDetails.vue","webpack:///./src/views/administrator/NoteTakerDetails.vue?57f7","webpack:///./src/interfaces/api.ts","webpack:///./src/helpers/array-helper.ts"],"names":["NoteTakerService","noteTakerParameters","endpointController","enpointRoute","queryString","this","generateQuerystring","getNoteTakerById","baseApiUrl","fetch","getAllNoteTakers","id","parameterName","parameterArgument","luEduPersonPrimaryId","getApplicant","getStatus","noteTaker","addOrUpdateNoteTaker","method","headers","body","JSON","stringify","status","length","forEach","generateSearchAndPagingParameters","_hoisted_1","class","_hoisted_2","_hoisted_3","key","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","render","_ctx","_cache","$props","$setup","$data","$options","_component_DetailsHeader","_component_Badge","_component_Tooltip","_component_router_link","_component_Table","_component_DetailsRow","_component_PersonDetails","title","$t","onBack","$event","navigateToOverview","onPrevious","navigateToNoteTaker","previousNoteTakerId","onNext","nextNoteTakerId","person","default","caption","rows","supportCourseRows","hiddenColumns","hiddenSupportCourseColumns","sortColumn","ascending","onSortChanged","onSortChange","td","data","col","text","statusText","val","bgColor","statusBgColor","color","statusTextColor","rounded","backgroundColor","_","getCourseTitle","row","titleSv","titleEn","tooltipBgColor","to","name","params","courseOccurrenceId","replaceUnvailableOrFormatDate","components","DetailsHeader","DetailsRow","Table","PersonDetails","Badge","Tooltip","currentNoteTakerId","computed","supportCourseOccurrences","sortByProperty","hidden","allNoteTakerIds","filteredNoteTakerIds","getItem","FilteredNoteTakerIds","currentIdIndex","indexOf","nextIdIndex","slice","previousIdIndex","methods","getNoteTaker","localstorageLang","$root","$i18n","locale","$route","parseInt","then","catch","e","console","error","$router","push","courseOccurrenceStatusColor","courseOccurrenceStatusText","columnName","setItem","NoteTakerSupportCourseTableUserPagingData","generateUserPagingData","sortCourseOccurrences","userPagingData","sortOrder","Asc","Desc","getUsersPagingData","value","NotAvailable","getCourseTitleTooltipText","mounted","watch","__exports__","CourseOccurrenceStatus","FeeDataExportType","Locale","NoteTakerStatus","SortOrder","ArrayHelper","array","propName","sortAscending","sort","a","b","propA","propB","reverse"],"mappings":"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","file":"assets/js/chunk-531d7557.5216f45c.js","sourcesContent":["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!./NoteTakerDetails.vue?vue&type=style&index=0&id=3cd5fd84&scoped=true&lang=css\"","import QuerystringHelper from \"@/helpers/querystring-helper\";\nimport {\n NoteTaker,\n NoteTakerStatusCount,\n NoteTakerParameters,\n PagedList,\n OverviewNoteTaker,\n} from \"@/interfaces/api\";\nimport BaseService from \"./base-service\";\n\nclass NoteTakerService extends BaseService {\n /**\n * Fetches note takers according to the specified filter/paging parameters\n *\n * @param {NoteTakerParameters} noteTakerParameters - The filter/paging parameters to be added to the resource querystring\n * @returns {Promise>} A Promise with all the note takers that matched the parameters\n */\n getFiltered(\n noteTakerParameters: NoteTakerParameters\n ): Promise> {\n const endpointController = \"NoteTaker\";\n const enpointRoute = \"search\";\n const queryString = this.generateQuerystring(noteTakerParameters);\n const getNoteTakerById = `${this.baseApiUrl}api/${endpointController}/${enpointRoute}${queryString}`;\n return this.fetch>(getNoteTakerById);\n }\n\n /**\n * Fetches all note takers\n * @returns {Promise>} A Promise with all note takers\n */\n getAllNoteTakers(): Promise> {\n const endpointController = \"NoteTaker\";\n const enpointRoute = \"one-call\";\n const getAllNoteTakers = `${this.baseApiUrl}api/${endpointController}/${enpointRoute}`;\n return this.fetch>(getAllNoteTakers);\n }\n\n /**\n * Fetches the note taker with the specified id\n *\n * @param {number} id - The id of the note taker to fetch\n * @returns {Promise} A Promise with the note taker\n */\n getNoteTakerById(id: number): Promise {\n const endpointController = \"NoteTaker\";\n const enpointRoute = \"id\";\n const parameterName = \"id\";\n const parameterArgument = id;\n const getNoteTakerById = `${this.baseApiUrl}api/${endpointController}/${enpointRoute}?${parameterName}=${parameterArgument}`;\n return this.fetch(getNoteTakerById);\n }\n\n /**\n * Fetches the note taker with the specified luEduPersonPrimaryId\n *\n * @param {string} luEduPersonPrimaryId - The luEduPersonPrimaryId of the note taker to fetch\n * @returns {Promise} A promise with the applicant\n */\n getApplicant(luEduPersonPrimaryId: string): Promise {\n const endpointController = \"NoteTaker\";\n const enpointRoute = \"primaryId\";\n const parameterName = \"luEduPersonPrimaryId\";\n const parameterArgument = luEduPersonPrimaryId;\n const getApplicant = `${this.baseApiUrl}api/${endpointController}/${enpointRoute}?${parameterName}=${parameterArgument}`;\n return this.fetch(getApplicant);\n }\n\n /**\n * Fetches the count of statuses\n *\n * @returns {Promise} A promise with the count of statuses\n */\n getNoteTakerStatusCount(): Promise {\n const endpointController = \"NoteTaker\";\n const enpointRoute = \"statusCount\";\n const getStatus = `${this.baseApiUrl}api/${endpointController}/${enpointRoute}`;\n return this.fetch(getStatus);\n }\n\n /**\n * Adds or updates a note taker\n *\n * @param {NoteTaker} noteTaker - The note taker to Add och Update\n * @returns {Promise} A promise with a boolean value indicating whether or not the operation was successful\n */\n addOrUpdateNoteTaker(noteTaker: NoteTaker): Promise {\n const endpointController = \"NoteTaker\";\n const addOrUpdateNoteTaker = `${this.baseApiUrl}api/${endpointController}`;\n return this.fetch(addOrUpdateNoteTaker, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify(noteTaker),\n });\n }\n\n /**\n * Returns a query string according to the specified filter parameters\n *\n * @param {NoteTakerParameters} noteTakerParameters - The filter/paging parameters to be added to the resource querystring\n * @returns {string} The generated query string\n */\n private generateQuerystring(\n noteTakerParameters: NoteTakerParameters\n ): string {\n let queryString = \"?\";\n\n if (noteTakerParameters.status.length > 0) {\n noteTakerParameters.status.forEach((status) => {\n queryString += `Status=${status}&`;\n });\n }\n\n queryString +=\n QuerystringHelper.generateSearchAndPagingParameters(noteTakerParameters);\n\n return queryString;\n }\n}\n\nexport default new NoteTakerService();\n","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, createBlock as _createBlock, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3cd5fd84\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"container w-75\" }\nconst _hoisted_2 = { class: \"card\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"form-container\"\n}\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = { key: 1 }\nconst _hoisted_6 = { key: 2 }\nconst _hoisted_7 = { key: 3 }\nconst _hoisted_8 = { key: 4 }\nconst _hoisted_9 = { key: 5 }\nconst _hoisted_10 = { key: 6 }\nconst _hoisted_11 = /*#__PURE__*/_createTextVNode(\"   \")\nconst _hoisted_12 = { key: 2 }\nconst _hoisted_13 = { key: 3 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DetailsHeader = _resolveComponent(\"DetailsHeader\")!\n const _component_Badge = _resolveComponent(\"Badge\")!\n const _component_Tooltip = _resolveComponent(\"Tooltip\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Table = _resolveComponent(\"Table\")!\n const _component_DetailsRow = _resolveComponent(\"DetailsRow\")!\n const _component_PersonDetails = _resolveComponent(\"PersonDetails\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_DetailsHeader, {\n title: _ctx.$t('shared.routes.note-taker-details'),\n onBack: _cache[0] || (_cache[0] = ($event: any) => (_ctx.navigateToOverview())),\n onPrevious: _cache[1] || (_cache[1] = ($event: any) => (_ctx.navigateToNoteTaker(_ctx.previousNoteTakerId))),\n onNext: _cache[2] || (_cache[2] = ($event: any) => (_ctx.navigateToNoteTaker(_ctx.nextNoteTakerId)))\n }, null, 8, [\"title\"]),\n _createElementVNode(\"form\", _hoisted_2, [\n (_ctx.noteTaker !== null)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createVNode(_component_PersonDetails, { person: _ctx.noteTaker }, {\n default: _withCtx(() => [\n _createVNode(_component_DetailsRow, { caption: \"shared.courses\" }, {\n default: _withCtx(() => [\n _createVNode(_component_Table, {\n rows: _ctx.supportCourseRows,\n hiddenColumns: _ctx.hiddenSupportCourseColumns,\n sortColumn: _ctx.sortColumn,\n \"onUpdate:sortColumn\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.sortColumn) = $event)),\n ascending: _ctx.ascending,\n \"onUpdate:ascending\": _cache[4] || (_cache[4] = ($event: any) => ((_ctx.ascending) = $event)),\n onSortChanged: _ctx.onSortChange\n }, {\n td: _withCtx((data) => [\n (data.col === 'status')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, _toDisplayString(_ctx.$t(\"course-occurrence.status\")), 1))\n : (data.col === 'occurrence')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, _toDisplayString(_ctx.$t(\"course-occurrence.occurrence\")), 1))\n : (data.col === 'courseOccurrenceStart')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_6, _toDisplayString(_ctx.$t(\"course-occurrence.courseStartDate\")) + \" \" + _toDisplayString(_ctx.$t(\"course-occurrence.abbreviation\")), 1))\n : (data.col === 'offerDate')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_7, _toDisplayString(_ctx.$t(\"shared.offer\")) + \" \" + _toDisplayString(_ctx.$t(\"note-taker-details.note-taker-abbreviation\")), 1))\n : (data.col === 'assignmentStart')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_8, _toDisplayString(_ctx.$t(\"course-occurrence.assignment.assignment-start\")), 1))\n : (data.col === 'assignmentEnd')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_9, _toDisplayString(_ctx.$t(\"course-occurrence.assignment.assignment-end\")), 1))\n : (data.col === 'coordinatorName')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, _toDisplayString(_ctx.$t(\"shared.coordinator\")) + \" \" + _toDisplayString(_ctx.$t(\"course-occurrence.abbreviation\")), 1))\n : _createCommentVNode(\"\", true)\n ]),\n default: _withCtx((data) => [\n (data.col === 'status')\n ? (_openBlock(), _createBlock(_component_Tooltip, {\n key: 0,\n text: _ctx.statusText(data.val),\n bgColor: _ctx.statusBgColor(data.val),\n color: _ctx.statusTextColor(data.val)\n }, {\n default: _withCtx(() => [\n _createVNode(_component_Badge, {\n rounded: true,\n backgroundColor: _ctx.statusBgColor(data.val)\n }, {\n default: _withCtx(() => [\n _hoisted_11\n ]),\n _: 2\n }, 1032, [\"backgroundColor\"])\n ]),\n _: 2\n }, 1032, [\"text\", \"bgColor\", \"color\"]))\n : _createCommentVNode(\"\", true),\n (data.col === 'occurrence')\n ? (_openBlock(), _createBlock(_component_Tooltip, {\n key: 1,\n text: _ctx.getCourseTitle(data.row.titleSv, data.row.titleEn),\n bgColor: _ctx.tooltipBgColor\n }, {\n default: _withCtx(() => [\n _createVNode(_component_router_link, {\n to: {\n name: 'CourseOccurrenceDetails',\n params: {\n id: data.row.courseOccurrenceId,\n },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.replaceUnvailableOrFormatDate(data.val)), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]),\n _: 2\n }, 1032, [\"text\", \"bgColor\"]))\n : _createCommentVNode(\"\", true),\n (\n (data.col === 'courseOccurrenceStart' ||\n data.col === 'offerDate' ||\n data.col === 'assignmentStart' ||\n data.col === 'assignmentEnd') &&\n data.val\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_12, _toDisplayString(_ctx.replaceUnvailableOrFormatDate(data.val)), 1))\n : _createCommentVNode(\"\", true),\n (data.col === 'coordinatorName')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_13, _toDisplayString(data.val), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"rows\", \"hiddenColumns\", \"sortColumn\", \"ascending\", \"onSortChanged\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"person\"])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}","\nimport { Options, Vue } from \"vue-class-component\";\nimport DetailsHeader from \"@/components/DetailsHeader.vue\";\nimport DetailsRow from \"@/components/DetailsRow.vue\";\nimport Table from \"@/components/Table.vue\";\nimport Tooltip from \"@/components/Tooltip.vue\";\nimport Badge from \"@/components/Badge.vue\";\nimport PersonDetails from \"@/components/PersonDetails.vue\";\nimport CourseService from \"@/services/course-service\";\nimport NoteTakerService from \"@/services/notetaker-service\";\nimport LocalStorageService from \"@/services/localstorage-service\";\nimport {\n NoteTaker,\n SupportCourseOccurrence,\n SortOrder,\n} from \"@/interfaces/api\";\n\nimport { Constants } from \"@/constants/constants\";\nimport ArrayHelper from \"@/helpers/array-helper\";\nimport { IUserPagingData } from \"@/interfaces/IUserPagingData\";\n\n@Options({\n components: {\n DetailsHeader,\n DetailsRow,\n Table,\n PersonDetails,\n Badge,\n Tooltip,\n },\n data: () => ({\n /*\n * Holds the id of the note taker and is populated from the route's id parameter when the page loads\n */\n currentNoteTakerId: 0,\n /*\n * Holds the note taker data and is populated by a call to the note taker service when the page loads\n */\n noteTaker: null,\n /*\n * The background color for the tooltip when mousing over course occurrence\n */\n tooltipBgColor: \"#875E29\",\n /**\n * The current sort column\n */\n sortColumn: \"courseOccurrenceStart\",\n /**\n * If sort order is ascending\n */\n ascending: true,\n }),\n computed: {\n /**\n * Gets note-takers support course occurrences\n */\n supportCourseRows() {\n const noteTaker: NoteTaker = this.noteTaker;\n const supportCourseOccurrences =\n noteTaker.supportCourseOccurrences as SupportCourseOccurrence[];\n ArrayHelper.sortByProperty(\n supportCourseOccurrences,\n this.sortColumn,\n this.ascending\n );\n return supportCourseOccurrences;\n },\n /**\n * Hides all unwanted columns\n */\n hiddenSupportCourseColumns() {\n const hidden = [\n \"titleEn\",\n \"titleSv\",\n \"courseOccurrenceId\",\n \"courseUid\",\n \"offerConfirmedDate\",\n \"deletedByAdmin\",\n ];\n return hidden;\n },\n /*\n * Used by the previous/next button logic\n */\n allNoteTakerIds() {\n const filteredNoteTakerIds = LocalStorageService.getItem(\n Constants.FilteredNoteTakerIds\n );\n return filteredNoteTakerIds;\n },\n /*\n * The id of the note taker to load when the next button is clicked\n */\n nextNoteTakerId() {\n const currentIdIndex = this.allNoteTakerIds.indexOf(\n this.currentNoteTakerId\n );\n let nextIdIndex = currentIdIndex + 1;\n if (nextIdIndex >= this.allNoteTakerIds.length) {\n nextIdIndex = 0;\n }\n return this.allNoteTakerIds.slice(nextIdIndex, nextIdIndex + 1)[0];\n },\n /*\n * The id of the note taker to load when the previous button is clicked\n */\n previousNoteTakerId() {\n const currentIdIndex = this.allNoteTakerIds.indexOf(\n this.currentNoteTakerId\n );\n let previousIdIndex = currentIdIndex - 1;\n if (previousIdIndex < 0) {\n previousIdIndex = this.allNoteTakerIds.length - 1;\n }\n return this.allNoteTakerIds.slice(\n previousIdIndex,\n previousIdIndex + 1\n )[0];\n },\n },\n methods: {\n /**\n * Fetches the note taker with the id from route parameter\n */\n getNoteTaker(): void {\n const localstorageLang = LocalStorageService.getItem(\"language\");\n this.$root.$i18n.locale = localstorageLang;\n if (this.$route.name === \"NoteTakerDetails\" && this.$route.params.id) {\n this.currentNoteTakerId = parseInt(this.$route.params.id);\n NoteTakerService.getNoteTakerById(this.currentNoteTakerId)\n .then((data: NoteTaker | undefined) => {\n this.noteTaker = data;\n })\n .catch((e: Error) => {\n console.error(e);\n });\n }\n },\n /*\n * Navigates to a note taker with the specified id\n * Called from the next/previous button click\n */\n navigateToNoteTaker(id: number): void {\n this.$router.push({\n name: \"NoteTakerDetails\",\n params: { id: id },\n });\n },\n /*\n * Navigates to the note taker overview\n * Called from the overview button click\n */\n navigateToOverview(): void {\n this.$router.push({\n name: \"NoteTakerList\",\n });\n },\n /**\n * Returns a color based on status\n *\n * @param {string} status The status we want a color for\n */\n statusBgColor(status: string): string {\n return CourseService.courseOccurrenceStatusColor(status);\n },\n /**\n * Returns a color based on status\n *\n * @param {string} status The status we want a color for\n */\n statusTextColor(status: string): string {\n return status === \"Yellow\" ? \"black\" : \"white\";\n },\n /**\n * Returns a text based on status\n *\n * @param {string} status The status we want a tooltip text for\n */\n statusText(status: string): string {\n return this.$t(CourseService.courseOccurrenceStatusText(status));\n },\n /**\n * Triggered when the user changes the sort column/order of the course table\n */\n onSortChange(columnName: string, ascending: boolean): void {\n this.sortColumn = columnName;\n this.ascending = ascending;\n LocalStorageService.setItem(\n Constants.NoteTakerSupportCourseTableUserPagingData,\n this.generateUserPagingData()\n );\n this.sortCourseOccurrences();\n },\n /**\n * Triggered when the user changes the sort column/order of the course table\n */\n sortCourseOccurrences(): void {\n ArrayHelper.sortByProperty(\n this.supportCourseRows,\n this.sortColumn,\n this.ascending\n );\n },\n /**\n * Generates user paging data to be saved to local storage\n */\n generateUserPagingData(): Partial {\n const userPagingData: Partial = {\n sortColumn: this.sortColumn,\n sortOrder: this.ascending ? SortOrder.Asc : SortOrder.Desc,\n };\n\n return userPagingData;\n },\n /**\n * Gets the user's paging data that has been saved to local storage\n */\n getUsersPagingData(): void {\n const userPagingData = LocalStorageService.getItem<\n Partial\n >(Constants.NoteTakerSupportCourseTableUserPagingData);\n\n if (userPagingData) {\n this.sortColumn = userPagingData.sortColumn;\n this.ascending = userPagingData.sortOrder === SortOrder.Asc;\n }\n },\n /**\n * Checks if the specified value is unavailable and if so,\n * replaces it with the the unavailable translation for the current locale\n * Also checks if the value is a date and if so, formats it to YYYY-MM-DD\n */\n replaceUnvailableOrFormatDate(value: string): string {\n return CourseService.replaceUnvailableOrFormatDate(\n value,\n this.$t(\"course-occurrence.unavailable\")\n );\n },\n /**\n * Sets the course title to be used as text for tooltip over link to course detail\n */\n getCourseTitle(titleSv: string, titleEn: string): string {\n if (titleSv === Constants.NotAvailable) {\n return CourseService.getCourseTitleTooltipText(\n this.$t(\"course-occurrence.title\"),\n this.$t(\"course-occurrence.unavailable\")\n );\n }\n\n return this.$i18n.locale === \"sv\" ? titleSv : titleEn;\n },\n },\n mounted() {\n this.getUsersPagingData();\n this.getNoteTaker();\n },\n watch: {\n $route() {\n this.getNoteTaker();\n },\n },\n})\nexport default class NoteTakerDetails extends Vue {}\n","import { render } from \"./NoteTakerDetails.vue?vue&type=template&id=3cd5fd84&scoped=true&ts=true\"\nimport script from \"./NoteTakerDetails.vue?vue&type=script&lang=ts\"\nexport * from \"./NoteTakerDetails.vue?vue&type=script&lang=ts\"\n\nimport \"./NoteTakerDetails.vue?vue&type=style&index=0&id=3cd5fd84&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\GIT\\\\StudentPortal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3cd5fd84\"]])\n\nexport default __exports__","// ..\\student-portal-backend\\LU.STP.Common\\Models\\Assignment.cs\nexport interface Assignment {\n noteTakerLuEduPersonPrimaryId: string;\n studentLuEduPersonPrimaryId: string;\n courseCode: string;\n term: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\Coordinator.cs\nexport interface Coordinator extends CoordinatorBase {\n email: string;\n functionId: number;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\CoordinatorBase.cs\nexport interface CoordinatorBase {\n id: number;\n name: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\Course.cs\nexport interface Course {\n courseUid: string;\n courseCode: string;\n titleSv: string;\n titleEn: string;\n courseStartDate: string;\n courseEndDate: string;\n term: string;\n occasionCode: string;\n facultySv: string;\n facultyEn: string;\n institutionSv: string;\n institutionEn: string;\n studyPoints: number;\n event: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\CourseOccurrence.cs\nexport interface CourseOccurrence extends CourseOccurrenceBase {\n students?: Student[];\n noteTakers?: NoteTaker[];\n inactiveStudents?: Student[];\n inactiveNoteTakers?: NoteTaker[];\n proposedNoteTakers?: NoteTakerProposedCourse[];\n noteTakerOffers?: NoteTakerOffer[];\n noteTakerUploadSummaries?: NoteTakerUploadSummary[];\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\CourseOccurrenceBase.cs\nexport interface CourseOccurrenceBase extends Course, IHasIntId {\n id: number;\n coordinatorName?: string;\n coordinatorId?: number;\n occurrence: string;\n studentCount: number;\n noteTakerCount: number;\n proposedNoteTakersCount: number;\n status: CourseOccurrenceStatus;\n latestNoteTakerOffer: string;\n studyPoints: number;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\Faculty.cs\nexport interface Faculty {\n id: number;\n nameSv: string;\n nameEn: string;\n isCampus: boolean;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\NoteTaker.cs\nexport interface NoteTaker\n extends NoteTakerBase,\n INoteTaker,\n ISupportCourseParticipant {\n students?: Student[];\n proposedCourses?: ProposedCourse[];\n supportCourses?: PersonCourse[];\n supportCourseOccurrences?: SupportCourseOccurrence[];\n isAnActiveStudentInNeed: boolean;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\NoteTakerBase.cs\nexport interface NoteTakerBase extends Person {\n status: NoteTakerStatus;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\NoteTakerNotes.cs\nexport interface NoteTakerNotes {\n courseOccurrenceId: number;\n courseUid: string;\n courseCode: string;\n courseTerm: string;\n courseTitleEn: string;\n courseTitleSv: string;\n noteTakerId: number;\n noteTakerFirstName: string;\n noteTakerLastName: string;\n date: string;\n time: string;\n file: UploadFile;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\NoteTakerOffer.cs\nexport interface NoteTakerOffer {\n id: number;\n courseOccurrenceId: number;\n noteTakerId: number;\n sent: string;\n confirmed?: string;\n canceled?: string;\n courseOccurrence: CourseOccurrence;\n noteTaker: NoteTaker;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\NoteTakerParameters.cs\nexport interface NoteTakerParameters extends QueryStringParameters {\n status: NoteTakerStatus[];\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\NoteTakerProposedCourse.cs\nexport interface NoteTakerProposedCourse {\n noteTakerId: number;\n noteTaker: NoteTaker;\n courseUid: string;\n inserted?: string;\n deleted?: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\NoteTakerStatusCount.cs\nexport interface NoteTakerStatusCount {\n status: string;\n count: number;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\NoteTakerUploadSummary.cs\nexport interface NoteTakerUploadSummary {\n noteTakerId: number;\n noteTakerName: string;\n totalUploads: number;\n lastUpload?: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\OverviewNoteTaker.cs\nexport interface OverviewNoteTaker extends OverviewPerson, INoteTaker {\n status: NoteTakerStatus;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\OverviewPerson.cs\nexport interface OverviewPerson extends IPerson, IHasIntId {\n id: number;\n personalId: string;\n luEduPersonPrimaryId: string;\n firstName: string;\n lastName: string;\n email: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\OverviewStudent.cs\nexport interface OverviewStudent extends OverviewPerson, IStudent {\n coordinatorName?: string;\n coordinatorId?: number;\n grantedSupportDate?: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\PagedList.cs\nexport interface PagedList {\n items: T[];\n currentPage: number;\n totalPages: number;\n pageSize: number;\n totalCount: number;\n hasPrevious: boolean;\n hasNext: boolean;\n sortedIds: number[];\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\PageSection.cs\nexport interface PageSection {\n id: number;\n pageTypeId: number;\n titleSv: string;\n contentSv: string;\n linkTextSv: string;\n menuTitleSv: string;\n titleEn: string;\n contentEn: string;\n linkTextEn: string;\n menuTitleEn: string;\n routerLinkUrl?: string;\n externalLinkUrl?: string;\n modified: string;\n modifiedBy: string;\n sortOrder: number;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\PageType.cs\nexport interface PageType {\n id: number;\n name: string;\n modified: string;\n modifiedBy: string;\n pageSections: PageSection[];\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\Person.cs\nexport interface Person extends PersonBase, IHasIntId {\n id: number;\n luEduPersonPrimaryId: string;\n personalId: string;\n telephoneNumber: string;\n address: string;\n postcode: string;\n city: string;\n courses: Course[];\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\PersonBase.cs\nexport interface PersonBase {\n firstName: string;\n lastName: string;\n email: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\PersonCourse.cs\nexport interface PersonCourse {\n courseUid: string;\n courseOccurrenceId: number;\n started?: string;\n ended?: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\PersonResponse.cs\nexport interface PersonResponse {\n studentExists: boolean;\n student: Student;\n isActiveNoteTaker: boolean;\n noteTakerId: number;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\ProposedCourse.cs\nexport interface ProposedCourse extends Course {\n id: number;\n courseOccurrenceId: number;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\QueryStringParameters.cs\nexport interface QueryStringParameters {\n search?: string;\n sortBy: string;\n sortOrder: SortOrder;\n pageNumber: number;\n pageSize: number;\n coordinatorId?: number;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\Student.cs\nexport interface Student extends Person, ISupportCourseParticipant, IStudent {\n coordinatorId?: number;\n noteTakers?: NoteTaker[];\n coordinator?: Coordinator;\n coordinatorName?: string;\n grantedSupportDate?: string;\n ladokCourseCount: number;\n supportCourses?: PersonCourse[];\n supportCourseOccurrences?: SupportCourseOccurrence[];\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\StudentCourse.cs\nexport interface StudentCourse {\n id: number;\n studentId?: number;\n courseUid: string;\n inserted?: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\StudentParameters.cs\nexport type StudentParameters = QueryStringParameters;\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\StudyTermInfo.cs\nexport interface StudyTermInfo {\n previousTerm: string;\n thisTerm: string;\n nextTerm: string;\n startOfPreviousTerm: string;\n startOfThisTerm: string;\n startOfNextTerm: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\SupportCourseOccurrence.cs\nexport interface SupportCourseOccurrence {\n courseUid: string;\n courseOccurrenceId: number;\n titleSv: string;\n titleEn: string;\n status: CourseOccurrenceStatus;\n occurrence: string;\n courseOccurrenceStart?: string;\n offerDate?: string;\n offerConfirmedDate?: string;\n assignmentStart?: string;\n assignmentEnd?: string;\n coordinatorName: string;\n deletedByAdmin?: boolean;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\UploadFile.cs\nexport interface UploadFile {\n name: string;\n extension: string;\n size: number;\n binaryData?: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Interfaces\\IHasIntId.cs\nexport interface IHasIntId {\n id: number;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Interfaces\\INoteTaker.cs\nexport interface INoteTaker extends IPerson {\n status: NoteTakerStatus;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Interfaces\\IPerson.cs\nexport interface IPerson {\n id: number;\n personalId: string;\n luEduPersonPrimaryId: string;\n firstName: string;\n lastName: string;\n email: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Interfaces\\IStudent.cs\nexport interface IStudent extends IPerson {\n coordinatorName?: string;\n grantedSupportDate?: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Interfaces\\ISupportCourseParticipant.cs\nexport interface ISupportCourseParticipant {\n supportCourses?: PersonCourse[];\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Enums\\CourseOccurrenceStatus.cs\nexport enum CourseOccurrenceStatus {\n Grey = \"grey\",\n Yellow = \"yellow\",\n Green = \"green\",\n Orange = \"orange\",\n Red = \"red\",\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Enums\\FeeDataExportType.cs\nexport enum FeeDataExportType {\n Basis = \"basis\",\n Accounting = \"accounting\",\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Enums\\Locale.cs\nexport enum Locale {\n Sv = \"sv\",\n En = \"en\",\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Enums\\NoteTakerStatus.cs\nexport enum NoteTakerStatus {\n Incoming = \"incoming\",\n Active = \"active\",\n Inactive = \"inactive\",\n Completed = \"completed\",\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Enums\\SortOrder.cs\nexport enum SortOrder {\n Asc = \"asc\",\n Desc = \"desc\",\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\WebForm\\WF_NationalIdentityNumberChange.cs\nexport interface WF_NationalIdentityNumberChange {\n luEduPersonPrimaryId: string;\n newNationalIdentityNumber: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\TuitionFees\\RegisterCardRequest.cs\nexport interface RegisterCardRequest {\n invoiceNo: string;\n customerEmail: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\TuitionFees\\RegisterCardResponse.cs\nexport interface RegisterCardResponse {\n resourceUrl: string;\n error: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\TuitionFees\\TfPerson.cs\nexport interface TfPerson {\n luEduPersonPrimaryId: string;\n personalId: string;\n firstName: string;\n lastName: string;\n email: string;\n displayName: string;\n eduPersonAffiliation: string;\n eduPersonPrimaryAffiliation: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\TuitionFees\\Invoice\\Invoice.cs\nexport interface Invoice {\n customerTrxId: number;\n kund: string;\n kundNr: string;\n nationalIdentification: string;\n fakNr: string;\n totalAmount: string;\n amountDue: string;\n transferDate: string;\n dueDate: string;\n payFlag: string;\n description: string;\n pending: boolean;\n lines: InvoiceLine[];\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\TuitionFees\\Invoice\\InvoiceLine.cs\nexport interface InvoiceLine {\n description: string;\n amount: string;\n}\n\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\TuitionFees\\Nets\\NetsTerminalResponse.cs\nexport interface NetsTerminalResponse {\n invoiceNumber: string;\n transactionId: string;\n responseCode: string;\n}\n","class ArrayHelper {\n sortByProperty(\n array: T[],\n propName: keyof T,\n sortAscending: boolean\n ): void {\n array.sort((a, b) => {\n const propA = a[propName] === null ? \"\" : a[propName];\n const propB = b[propName] === null ? \"\" : b[propName];\n\n return propA < propB ? -1 : propA > propB ? 1 : 0;\n });\n\n if (!sortAscending) {\n array.reverse();\n }\n }\n}\n\nexport default new ArrayHelper();\n"],"sourceRoot":""}