{"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?5fff","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.d2458626.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\";\r\nimport {\r\n NoteTaker,\r\n NoteTakerStatusCount,\r\n NoteTakerParameters,\r\n PagedList,\r\n OverviewNoteTaker,\r\n} from \"@/interfaces/api\";\r\nimport BaseService from \"./base-service\";\r\n\r\nclass NoteTakerService extends BaseService {\r\n /**\r\n * Fetches note takers according to the specified filter/paging parameters\r\n *\r\n * @param {NoteTakerParameters} noteTakerParameters - The filter/paging parameters to be added to the resource querystring\r\n * @returns {Promise>} A Promise with all the note takers that matched the parameters\r\n */\r\n getFiltered(\r\n noteTakerParameters: NoteTakerParameters\r\n ): Promise> {\r\n const endpointController = \"NoteTaker\";\r\n const enpointRoute = \"search\";\r\n const queryString = this.generateQuerystring(noteTakerParameters);\r\n const getNoteTakerById = `${this.baseApiUrl}api/${endpointController}/${enpointRoute}${queryString}`;\r\n return this.fetch>(getNoteTakerById);\r\n }\r\n\r\n /**\r\n * Fetches all note takers\r\n * @returns {Promise>} A Promise with all note takers\r\n */\r\n getAllNoteTakers(): Promise> {\r\n const endpointController = \"NoteTaker\";\r\n const enpointRoute = \"one-call\";\r\n const getAllNoteTakers = `${this.baseApiUrl}api/${endpointController}/${enpointRoute}`;\r\n return this.fetch>(getAllNoteTakers);\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 getNoteTakerById(id: number): Promise {\r\n const endpointController = \"NoteTaker\";\r\n const enpointRoute = \"id\";\r\n const parameterName = \"id\";\r\n const parameterArgument = id;\r\n const getNoteTakerById = `${this.baseApiUrl}api/${endpointController}/${enpointRoute}?${parameterName}=${parameterArgument}`;\r\n return this.fetch(getNoteTakerById);\r\n }\r\n\r\n /**\r\n * Fetches the note taker with the specified luEduPersonPrimaryId\r\n *\r\n * @param {string} luEduPersonPrimaryId - The luEduPersonPrimaryId of the note taker to fetch\r\n * @returns {Promise} A promise with the applicant\r\n */\r\n getApplicant(luEduPersonPrimaryId: string): Promise {\r\n const endpointController = \"NoteTaker\";\r\n const enpointRoute = \"primaryId\";\r\n const parameterName = \"luEduPersonPrimaryId\";\r\n const parameterArgument = luEduPersonPrimaryId;\r\n const getApplicant = `${this.baseApiUrl}api/${endpointController}/${enpointRoute}?${parameterName}=${parameterArgument}`;\r\n return this.fetch(getApplicant);\r\n }\r\n\r\n /**\r\n * Fetches the count of statuses\r\n *\r\n * @returns {Promise} A promise with the count of statuses\r\n */\r\n getNoteTakerStatusCount(): Promise {\r\n const endpointController = \"NoteTaker\";\r\n const enpointRoute = \"statusCount\";\r\n const getStatus = `${this.baseApiUrl}api/${endpointController}/${enpointRoute}`;\r\n return this.fetch(getStatus);\r\n }\r\n\r\n /**\r\n * Adds or updates a note taker\r\n *\r\n * @param {NoteTaker} noteTaker - The note taker 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 addOrUpdateNoteTaker(noteTaker: NoteTaker): Promise {\r\n const endpointController = \"NoteTaker\";\r\n const addOrUpdateNoteTaker = `${this.baseApiUrl}api/${endpointController}`;\r\n return this.fetch(addOrUpdateNoteTaker, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(noteTaker),\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 {NoteTakerParameters} noteTakerParameters - 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(\r\n noteTakerParameters: NoteTakerParameters\r\n ): string {\r\n let queryString = \"?\";\r\n\r\n if (noteTakerParameters.status.length > 0) {\r\n noteTakerParameters.status.forEach((status) => {\r\n queryString += `Status=${status}&`;\r\n });\r\n }\r\n\r\n queryString +=\r\n QuerystringHelper.generateSearchAndPagingParameters(noteTakerParameters);\r\n\r\n return queryString;\r\n }\r\n}\r\n\r\nexport default new NoteTakerService();\r\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: {\r\n name: 'CourseOccurrenceDetails',\r\n params: {\r\n id: data.row.courseOccurrenceId,\r\n },\r\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 (\r\n (data.col === 'courseOccurrenceStart' ||\r\n data.col === 'offerDate' ||\r\n data.col === 'assignmentStart' ||\r\n data.col === 'assignmentEnd') &&\r\n data.val\r\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}","\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport DetailsHeader from \"@/components/DetailsHeader.vue\";\r\nimport DetailsRow from \"@/components/DetailsRow.vue\";\r\nimport Table from \"@/components/Table.vue\";\r\nimport Tooltip from \"@/components/Tooltip.vue\";\r\nimport Badge from \"@/components/Badge.vue\";\r\nimport PersonDetails from \"@/components/PersonDetails.vue\";\r\nimport CourseService from \"@/services/course-service\";\r\nimport NoteTakerService from \"@/services/notetaker-service\";\r\nimport LocalStorageService from \"@/services/localstorage-service\";\r\nimport {\r\n NoteTaker,\r\n SupportCourseOccurrence,\r\n SortOrder,\r\n} from \"@/interfaces/api\";\r\n\r\nimport { Constants } from \"@/constants/constants\";\r\nimport ArrayHelper from \"@/helpers/array-helper\";\r\nimport { IUserPagingData } from \"@/interfaces/IUserPagingData\";\r\n\r\n@Options({\r\n components: {\r\n DetailsHeader,\r\n DetailsRow,\r\n Table,\r\n PersonDetails,\r\n Badge,\r\n Tooltip,\r\n },\r\n data: () => ({\r\n /*\r\n * Holds the id of the note taker and is populated from the route's id parameter when the page loads\r\n */\r\n currentNoteTakerId: 0,\r\n /*\r\n * Holds the note taker data and is populated by a call to the note taker service when the page loads\r\n */\r\n noteTaker: null,\r\n /*\r\n * The background color for the tooltip when mousing over course occurrence\r\n */\r\n tooltipBgColor: \"#875E29\",\r\n /**\r\n * The current sort column\r\n */\r\n sortColumn: \"courseOccurrenceStart\",\r\n /**\r\n * If sort order is ascending\r\n */\r\n ascending: true,\r\n }),\r\n computed: {\r\n /**\r\n * Gets note-takers support course occurrences\r\n */\r\n supportCourseRows() {\r\n const noteTaker: NoteTaker = this.noteTaker;\r\n const supportCourseOccurrences =\r\n noteTaker.supportCourseOccurrences as SupportCourseOccurrence[];\r\n ArrayHelper.sortByProperty(\r\n supportCourseOccurrences,\r\n this.sortColumn,\r\n this.ascending\r\n );\r\n return supportCourseOccurrences;\r\n },\r\n /**\r\n * Hides all unwanted columns\r\n */\r\n hiddenSupportCourseColumns() {\r\n const hidden = [\r\n \"titleEn\",\r\n \"titleSv\",\r\n \"courseOccurrenceId\",\r\n \"courseUid\",\r\n \"offerConfirmedDate\",\r\n \"deletedByAdmin\",\r\n ];\r\n return hidden;\r\n },\r\n /*\r\n * Used by the previous/next button logic\r\n */\r\n allNoteTakerIds() {\r\n const filteredNoteTakerIds = LocalStorageService.getItem(\r\n Constants.FilteredNoteTakerIds\r\n );\r\n return filteredNoteTakerIds;\r\n },\r\n /*\r\n * The id of the note taker to load when the next button is clicked\r\n */\r\n nextNoteTakerId() {\r\n const currentIdIndex = this.allNoteTakerIds.indexOf(\r\n this.currentNoteTakerId\r\n );\r\n let nextIdIndex = currentIdIndex + 1;\r\n if (nextIdIndex >= this.allNoteTakerIds.length) {\r\n nextIdIndex = 0;\r\n }\r\n return this.allNoteTakerIds.slice(nextIdIndex, nextIdIndex + 1)[0];\r\n },\r\n /*\r\n * The id of the note taker to load when the previous button is clicked\r\n */\r\n previousNoteTakerId() {\r\n const currentIdIndex = this.allNoteTakerIds.indexOf(\r\n this.currentNoteTakerId\r\n );\r\n let previousIdIndex = currentIdIndex - 1;\r\n if (previousIdIndex < 0) {\r\n previousIdIndex = this.allNoteTakerIds.length - 1;\r\n }\r\n return this.allNoteTakerIds.slice(\r\n previousIdIndex,\r\n previousIdIndex + 1\r\n )[0];\r\n },\r\n },\r\n methods: {\r\n /**\r\n * Fetches the note taker with the id from route parameter\r\n */\r\n getNoteTaker(): void {\r\n const localstorageLang = LocalStorageService.getItem(\"language\");\r\n this.$root.$i18n.locale = localstorageLang;\r\n if (this.$route.name === \"NoteTakerDetails\" && this.$route.params.id) {\r\n this.currentNoteTakerId = parseInt(this.$route.params.id);\r\n NoteTakerService.getNoteTakerById(this.currentNoteTakerId)\r\n .then((data: NoteTaker | undefined) => {\r\n this.noteTaker = data;\r\n })\r\n .catch((e: Error) => {\r\n console.error(e);\r\n });\r\n }\r\n },\r\n /*\r\n * Navigates to a note taker with the specified id\r\n * Called from the next/previous button click\r\n */\r\n navigateToNoteTaker(id: number): void {\r\n this.$router.push({\r\n name: \"NoteTakerDetails\",\r\n params: { id: id },\r\n });\r\n },\r\n /*\r\n * Navigates to the note taker overview\r\n * Called from the overview button click\r\n */\r\n navigateToOverview(): void {\r\n this.$router.push({\r\n name: \"NoteTakerList\",\r\n });\r\n },\r\n /**\r\n * Returns a color based on status\r\n *\r\n * @param {string} status The status we want a color for\r\n */\r\n statusBgColor(status: string): string {\r\n return CourseService.courseOccurrenceStatusColor(status);\r\n },\r\n /**\r\n * Returns a color based on status\r\n *\r\n * @param {string} status The status we want a color for\r\n */\r\n statusTextColor(status: string): string {\r\n return status === \"Yellow\" ? \"black\" : \"white\";\r\n },\r\n /**\r\n * Returns a text based on status\r\n *\r\n * @param {string} status The status we want a tooltip text for\r\n */\r\n statusText(status: string): string {\r\n return this.$t(CourseService.courseOccurrenceStatusText(status));\r\n },\r\n /**\r\n * Triggered when the user changes the sort column/order of the course table\r\n */\r\n onSortChange(columnName: string, ascending: boolean): void {\r\n this.sortColumn = columnName;\r\n this.ascending = ascending;\r\n LocalStorageService.setItem(\r\n Constants.NoteTakerSupportCourseTableUserPagingData,\r\n this.generateUserPagingData()\r\n );\r\n this.sortCourseOccurrences();\r\n },\r\n /**\r\n * Triggered when the user changes the sort column/order of the course table\r\n */\r\n sortCourseOccurrences(): void {\r\n ArrayHelper.sortByProperty(\r\n this.supportCourseRows,\r\n this.sortColumn,\r\n this.ascending\r\n );\r\n },\r\n /**\r\n * Generates user paging data to be saved to local storage\r\n */\r\n generateUserPagingData(): Partial {\r\n const userPagingData: Partial = {\r\n sortColumn: this.sortColumn,\r\n sortOrder: this.ascending ? SortOrder.Asc : SortOrder.Desc,\r\n };\r\n\r\n return userPagingData;\r\n },\r\n /**\r\n * Gets the user's paging data that has been saved to local storage\r\n */\r\n getUsersPagingData(): void {\r\n const userPagingData = LocalStorageService.getItem<\r\n Partial\r\n >(Constants.NoteTakerSupportCourseTableUserPagingData);\r\n\r\n if (userPagingData) {\r\n this.sortColumn = userPagingData.sortColumn;\r\n this.ascending = userPagingData.sortOrder === SortOrder.Asc;\r\n }\r\n },\r\n /**\r\n * Checks if the specified value is unavailable and if so,\r\n * replaces it with the the unavailable translation for the current locale\r\n * Also checks if the value is a date and if so, formats it to YYYY-MM-DD\r\n */\r\n replaceUnvailableOrFormatDate(value: string): string {\r\n return CourseService.replaceUnvailableOrFormatDate(\r\n value,\r\n this.$t(\"course-occurrence.unavailable\")\r\n );\r\n },\r\n /**\r\n * Sets the course title to be used as text for tooltip over link to course detail\r\n */\r\n getCourseTitle(titleSv: string, titleEn: string): string {\r\n if (titleSv === Constants.NotAvailable) {\r\n return CourseService.getCourseTitleTooltipText(\r\n this.$t(\"course-occurrence.title\"),\r\n this.$t(\"course-occurrence.unavailable\")\r\n );\r\n }\r\n\r\n return this.$i18n.locale === \"sv\" ? titleSv : titleEn;\r\n },\r\n },\r\n mounted() {\r\n this.getUsersPagingData();\r\n this.getNoteTaker();\r\n },\r\n watch: {\r\n $route() {\r\n this.getNoteTaker();\r\n },\r\n },\r\n})\r\nexport default class NoteTakerDetails extends Vue {}\r\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:\\\\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-3cd5fd84\"]])\n\nexport default __exports__","// ..\\student-portal-backend\\LU.STP.Common\\Models\\Assignment.cs\r\nexport interface Assignment {\r\n noteTakerLuEduPersonPrimaryId: string;\r\n studentLuEduPersonPrimaryId: string;\r\n courseCode: string;\r\n term: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\Coordinator.cs\r\nexport interface Coordinator extends CoordinatorBase {\r\n email: string;\r\n functionId: number;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\CoordinatorBase.cs\r\nexport interface CoordinatorBase {\r\n id: number;\r\n name: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\Course.cs\r\nexport interface Course {\r\n courseUid: string;\r\n courseCode: string;\r\n titleSv: string;\r\n titleEn: string;\r\n courseStartDate: string;\r\n courseEndDate: string;\r\n term: string;\r\n occasionCode: string;\r\n facultySv: string;\r\n facultyEn: string;\r\n institutionSv: string;\r\n institutionEn: string;\r\n studyPoints: number;\r\n event: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\CourseOccurrence.cs\r\nexport interface CourseOccurrence extends CourseOccurrenceBase {\r\n students?: Student[];\r\n noteTakers?: NoteTaker[];\r\n inactiveStudents?: Student[];\r\n inactiveNoteTakers?: NoteTaker[];\r\n proposedNoteTakers?: NoteTakerProposedCourse[];\r\n noteTakerOffers?: NoteTakerOffer[];\r\n noteTakerUploadSummaries?: NoteTakerUploadSummary[];\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\CourseOccurrenceBase.cs\r\nexport interface CourseOccurrenceBase extends Course, IHasIntId {\r\n id: number;\r\n coordinatorName?: string;\r\n coordinatorId?: number;\r\n occurrence: string;\r\n studentCount: number;\r\n noteTakerCount: number;\r\n proposedNoteTakersCount: number;\r\n status: CourseOccurrenceStatus;\r\n latestNoteTakerOffer: string;\r\n studyPoints: number;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\Faculty.cs\r\nexport interface Faculty {\r\n id: number;\r\n nameSv: string;\r\n nameEn: string;\r\n isCampus: boolean;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\NoteTaker.cs\r\nexport interface NoteTaker\r\n extends NoteTakerBase,\r\n INoteTaker,\r\n ISupportCourseParticipant {\r\n students?: Student[];\r\n proposedCourses?: ProposedCourse[];\r\n supportCourses?: PersonCourse[];\r\n supportCourseOccurrences?: SupportCourseOccurrence[];\r\n isAnActiveStudentInNeed: boolean;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\NoteTakerBase.cs\r\nexport interface NoteTakerBase extends Person {\r\n status: NoteTakerStatus;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\NoteTakerNotes.cs\r\nexport interface NoteTakerNotes {\r\n courseOccurrenceId: number;\r\n courseUid: string;\r\n courseCode: string;\r\n courseTerm: string;\r\n courseTitleEn: string;\r\n courseTitleSv: string;\r\n noteTakerId: number;\r\n noteTakerFirstName: string;\r\n noteTakerLastName: string;\r\n date: string;\r\n time: string;\r\n file: UploadFile;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\NoteTakerOffer.cs\r\nexport interface NoteTakerOffer {\r\n id: number;\r\n courseOccurrenceId: number;\r\n noteTakerId: number;\r\n sent: string;\r\n confirmed?: string;\r\n canceled?: string;\r\n courseOccurrence: CourseOccurrence;\r\n noteTaker: NoteTaker;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\NoteTakerParameters.cs\r\nexport interface NoteTakerParameters extends QueryStringParameters {\r\n status: NoteTakerStatus[];\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\NoteTakerProposedCourse.cs\r\nexport interface NoteTakerProposedCourse {\r\n noteTakerId: number;\r\n noteTaker: NoteTaker;\r\n courseUid: string;\r\n inserted?: string;\r\n deleted?: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\NoteTakerStatusCount.cs\r\nexport interface NoteTakerStatusCount {\r\n status: string;\r\n count: number;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\NoteTakerUploadSummary.cs\r\nexport interface NoteTakerUploadSummary {\r\n noteTakerId: number;\r\n noteTakerName: string;\r\n totalUploads: number;\r\n lastUpload?: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\OverviewNoteTaker.cs\r\nexport interface OverviewNoteTaker extends OverviewPerson, INoteTaker {\r\n status: NoteTakerStatus;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\OverviewPerson.cs\r\nexport interface OverviewPerson extends IPerson, IHasIntId {\r\n id: number;\r\n personalId: string;\r\n luEduPersonPrimaryId: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\OverviewStudent.cs\r\nexport interface OverviewStudent extends OverviewPerson, IStudent {\r\n coordinatorName?: string;\r\n coordinatorId?: number;\r\n grantedSupportDate?: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\PagedList.cs\r\nexport interface PagedList {\r\n items: T[];\r\n currentPage: number;\r\n totalPages: number;\r\n pageSize: number;\r\n totalCount: number;\r\n hasPrevious: boolean;\r\n hasNext: boolean;\r\n sortedIds: number[];\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\PageSection.cs\r\nexport interface PageSection {\r\n id: number;\r\n pageTypeId: number;\r\n titleSv: string;\r\n contentSv: string;\r\n linkTextSv: string;\r\n menuTitleSv: string;\r\n titleEn: string;\r\n contentEn: string;\r\n linkTextEn: string;\r\n menuTitleEn: string;\r\n routerLinkUrl?: string;\r\n externalLinkUrl?: string;\r\n modified: string;\r\n modifiedBy: string;\r\n sortOrder: number;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\PageType.cs\r\nexport interface PageType {\r\n id: number;\r\n name: string;\r\n modified: string;\r\n modifiedBy: string;\r\n pageSections: PageSection[];\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\Person.cs\r\nexport interface Person extends PersonBase, IHasIntId {\r\n id: number;\r\n luEduPersonPrimaryId: string;\r\n personalId: string;\r\n telephoneNumber: string;\r\n address: string;\r\n postcode: string;\r\n city: string;\r\n courses: Course[];\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\PersonBase.cs\r\nexport interface PersonBase {\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\PersonCourse.cs\r\nexport interface PersonCourse {\r\n courseUid: string;\r\n courseOccurrenceId: number;\r\n started?: string;\r\n ended?: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\PersonResponse.cs\r\nexport interface PersonResponse {\r\n studentExists: boolean;\r\n student: Student;\r\n isActiveNoteTaker: boolean;\r\n noteTakerId: number;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\ProposedCourse.cs\r\nexport interface ProposedCourse extends Course {\r\n id: number;\r\n courseOccurrenceId: number;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\QueryStringParameters.cs\r\nexport interface QueryStringParameters {\r\n search?: string;\r\n sortBy: string;\r\n sortOrder: SortOrder;\r\n pageNumber: number;\r\n pageSize: number;\r\n coordinatorId?: number;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\Student.cs\r\nexport interface Student extends Person, ISupportCourseParticipant, IStudent {\r\n coordinatorId?: number;\r\n noteTakers?: NoteTaker[];\r\n coordinator?: Coordinator;\r\n coordinatorName?: string;\r\n grantedSupportDate?: string;\r\n ladokCourseCount: number;\r\n supportCourses?: PersonCourse[];\r\n supportCourseOccurrences?: SupportCourseOccurrence[];\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\StudentCourse.cs\r\nexport interface StudentCourse {\r\n id: number;\r\n studentId?: number;\r\n courseUid: string;\r\n inserted?: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\StudentParameters.cs\r\nexport type StudentParameters = QueryStringParameters;\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\StudyTermInfo.cs\r\nexport interface StudyTermInfo {\r\n previousTerm: string;\r\n thisTerm: string;\r\n nextTerm: string;\r\n startOfPreviousTerm: string;\r\n startOfThisTerm: string;\r\n startOfNextTerm: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\SupportCourseOccurrence.cs\r\nexport interface SupportCourseOccurrence {\r\n courseUid: string;\r\n courseOccurrenceId: number;\r\n titleSv: string;\r\n titleEn: string;\r\n status: CourseOccurrenceStatus;\r\n occurrence: string;\r\n courseOccurrenceStart?: string;\r\n offerDate?: string;\r\n offerConfirmedDate?: string;\r\n assignmentStart?: string;\r\n assignmentEnd?: string;\r\n coordinatorName: string;\r\n deletedByAdmin?: boolean;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\UploadFile.cs\r\nexport interface UploadFile {\r\n name: string;\r\n extension: string;\r\n size: number;\r\n binaryData?: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Interfaces\\IHasIntId.cs\r\nexport interface IHasIntId {\r\n id: number;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Interfaces\\INoteTaker.cs\r\nexport interface INoteTaker extends IPerson {\r\n status: NoteTakerStatus;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Interfaces\\IPerson.cs\r\nexport interface IPerson {\r\n id: number;\r\n personalId: string;\r\n luEduPersonPrimaryId: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Interfaces\\IStudent.cs\r\nexport interface IStudent extends IPerson {\r\n coordinatorName?: string;\r\n grantedSupportDate?: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Interfaces\\ISupportCourseParticipant.cs\r\nexport interface ISupportCourseParticipant {\r\n supportCourses?: PersonCourse[];\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Enums\\CourseOccurrenceStatus.cs\r\nexport enum CourseOccurrenceStatus {\r\n Grey = \"grey\",\r\n Yellow = \"yellow\",\r\n Green = \"green\",\r\n Orange = \"orange\",\r\n Red = \"red\",\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Enums\\FeeDataExportType.cs\r\nexport enum FeeDataExportType {\r\n Basis = \"basis\",\r\n Accounting = \"accounting\",\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Enums\\Locale.cs\r\nexport enum Locale {\r\n Sv = \"sv\",\r\n En = \"en\",\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Enums\\NoteTakerStatus.cs\r\nexport enum NoteTakerStatus {\r\n Incoming = \"incoming\",\r\n Active = \"active\",\r\n Inactive = \"inactive\",\r\n Completed = \"completed\",\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Enums\\SortOrder.cs\r\nexport enum SortOrder {\r\n Asc = \"asc\",\r\n Desc = \"desc\",\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\WebForm\\WF_NationalIdentityNumberChange.cs\r\nexport interface WF_NationalIdentityNumberChange {\r\n luEduPersonPrimaryId: string;\r\n newNationalIdentityNumber: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\TuitionFees\\RegisterCardRequest.cs\r\nexport interface RegisterCardRequest {\r\n invoiceNo: string;\r\n customerEmail: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\TuitionFees\\RegisterCardResponse.cs\r\nexport interface RegisterCardResponse {\r\n resourceUrl: string;\r\n error: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\TuitionFees\\TfPerson.cs\r\nexport interface TfPerson {\r\n luEduPersonPrimaryId: string;\r\n personalId: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n displayName: string;\r\n eduPersonAffiliation: string;\r\n eduPersonPrimaryAffiliation: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\TuitionFees\\Invoice\\Invoice.cs\r\nexport interface Invoice {\r\n customerTrxId: number;\r\n kund: string;\r\n kundNr: string;\r\n nationalIdentification: string;\r\n fakNr: string;\r\n totalAmount: string;\r\n amountDue: string;\r\n transferDate: string;\r\n dueDate: string;\r\n payFlag: string;\r\n description: string;\r\n pending: boolean;\r\n lines: InvoiceLine[];\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\TuitionFees\\Invoice\\InvoiceLine.cs\r\nexport interface InvoiceLine {\r\n description: string;\r\n amount: string;\r\n}\r\n\r\n// ..\\student-portal-backend\\LU.STP.Common\\Models\\TuitionFees\\Nets\\NetsTerminalResponse.cs\r\nexport interface NetsTerminalResponse {\r\n invoiceNumber: string;\r\n transactionId: string;\r\n responseCode: string;\r\n}\r\n","class ArrayHelper {\r\n sortByProperty(\r\n array: T[],\r\n propName: keyof T,\r\n sortAscending: boolean\r\n ): void {\r\n array.sort((a, b) => {\r\n const propA = a[propName] === null ? \"\" : a[propName];\r\n const propB = b[propName] === null ? \"\" : b[propName];\r\n\r\n return propA < propB ? -1 : propA > propB ? 1 : 0;\r\n });\r\n\r\n if (!sortAscending) {\r\n array.reverse();\r\n }\r\n }\r\n}\r\n\r\nexport default new ArrayHelper();\r\n"],"sourceRoot":""}