{"version":3,"sources":["webpack:///./src/views/administrator/CourseOccurrenceList.vue?5a48","webpack:///./src/views/administrator/CourseOccurrenceList.vue","webpack:///./src/views/administrator/CourseOccurrenceList.vue?3079","webpack:///./src/views/administrator/CourseOccurrenceList.vue?9db8","webpack:///./src/components/Form/CheckboxInput.vue?2387","webpack:///./src/components/Form/CheckboxInput.vue","webpack:///./src/components/Form/CheckboxInput.vue?0481","webpack:///./src/interfaces/api.ts","webpack:///./src/helpers/string-helper.ts","webpack:///./src/components/Accordion.vue?dbc1","webpack:///./src/components/Accordion.vue","webpack:///./src/components/Accordion.vue?2fef"],"names":["n","_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","_hoisted_14","_hoisted_15","_hoisted_16","render","_ctx","_cache","$props","$setup","$data","$options","_component_SelectItem","_component_Accordion","_component_Badge","_component_Tooltip","_component_router_link","_component_Table","button","$t","content","id","value","selectedCoordinator","$event","name","onSelectionChanged","onCoordinatorChange","options","coordinators","placeholder","placeholderValue","enableReset","label","_","rows","sortColumn","ascending","stickyFirstColumn","showPagination","allowChangeRowPerPage","showNumRows","pagingData","hiddenColumns","unsortableColumns","pageHeading","useSpinner","isLoading","onPageNumberChanged","onPageNumberChange","onSortChanged","onSortChange","onPageSizeChanged","onPageSizeChange","td","data","col","default","text","statusText","val","bgColor","statusBgColor","color","statusTextColor","rounded","backgroundColor","currentUser","checkEntitlement","to","navigateToDetailsUrl","row","replaceUnvailableOrFormatDate","$i18n","locale","innerHTML","truncate","courseTitleTruncationLength","title","length","getLatestCourseInstanceOfferDate","components","Table","Badge","Tooltip","Accordion","SelectItem","CheckboxInput","courseOccurrences","CourseTitleTruncationLength","Array","computed","this","mapToPartialCourseOccurrenceOverviewArray","methods","activeOffers","filter","offer","canceled","undefined","confirmed","sortedActiveOffers","sort","offerA","offerB","dateCompareFunction","sent","formatDate","getCourseOccurrences","parameters","getQueryStringParameters","then","populatePagingData","items","saveFilteredCourseOccurrenceIds","sortedIds","catch","e","console","error","sortBy","sortOrder","Asc","Desc","pageNumber","currentPage","pageSize","coordinatorId","getUsersPagingData","userPagingData","getItem","CourseOccurrenceTableUserPagingData","coordinator","totalPages","totalCount","hasPrevious","hasNext","generateUserPagingData","setItem","SortedCourseOccurrenceIds","status","courseOccurrenceStatusColor","courseOccurrenceStatusText","input","stringLength","columnName","getColumnName","getCoordinators","getCachedCoordinatorsByFunctionId","NoteTakingFunctionId","mounted","__exports__","type","ariaLabel","fieldId","checked","disabled","required","onChange","onUpdate","target","style","cursor","ref","onInvalid","validityMessage","setValidityMessage","for","helpText","props","String","Boolean","emits","isChecked","$emit","message","$refs","setCustomValidity","CourseOccurrenceStatus","FeeDataExportType","Locale","NoteTakerStatus","SortOrder","StringHelper","useLastWordBoundary","subString","substring","lastIndexOf","item","JSON","stringify","toLowerCase","toString","_component_font_awesome_icon","onClick","toggle","_expanded","$slots","icon","show","expanded","created"],"mappings":"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","file":"assets/js/chunk-342f82b6.eda673ab.js","sourcesContent":["import { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-52623bb2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"d-flex accordian\" }\nconst _hoisted_2 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = { key: 2 }\nconst _hoisted_6 = { key: 3 }\nconst _hoisted_7 = { key: 4 }\nconst _hoisted_8 = { key: 5 }\nconst _hoisted_9 = /*#__PURE__*/_createTextVNode(\"   \")\nconst _hoisted_10 = { key: 1 }\nconst _hoisted_11 = { key: 1 }\nconst _hoisted_12 = [\"innerHTML\", \"title\"]\nconst _hoisted_13 = [\"innerHTML\", \"title\"]\nconst _hoisted_14 = { key: 4 }\nconst _hoisted_15 = { key: 5 }\nconst _hoisted_16 = { key: 6 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_SelectItem = _resolveComponent(\"SelectItem\")!\n const _component_Accordion = _resolveComponent(\"Accordion\")!\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\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createVNode(_component_Accordion, null, {\n button: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"shared.search-and-filter\")), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_component_SelectItem, {\n id: \"coordinator\",\n value: _ctx.selectedCoordinator.id,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.selectedCoordinator.id) = $event)),\n name: _ctx.selectedCoordinator.name,\n \"onUpdate:name\": _cache[1] || (_cache[1] = ($event: any) => ((_ctx.selectedCoordinator.name) = $event)),\n onSelectionChanged: _ctx.onCoordinatorChange,\n options: _ctx.coordinators,\n placeholder: `- ${_ctx.$t('shared.choose')} -`,\n placeholderValue: \"0\",\n enableReset: true,\n label: _ctx.$t('shared.coordinator')\n }, null, 8, [\"value\", \"name\", \"onSelectionChanged\", \"options\", \"placeholder\", \"label\"])\n ])\n ]),\n _: 1\n }),\n _hoisted_2,\n _createVNode(_component_Table, {\n rows: _ctx.rows,\n sortColumn: _ctx.sortColumn,\n \"onUpdate:sortColumn\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.sortColumn) = $event)),\n ascending: _ctx.ascending,\n \"onUpdate:ascending\": _cache[3] || (_cache[3] = ($event: any) => ((_ctx.ascending) = $event)),\n stickyFirstColumn: \"\",\n showPagination: \"\",\n allowChangeRowPerPage: \"\",\n showNumRows: \"\",\n pagingData: _ctx.pagingData,\n hiddenColumns: _ctx.hiddenColumns,\n unsortableColumns: _ctx.unsortableColumns,\n pageHeading: _ctx.pageHeading,\n useSpinner: true,\n isLoading: _ctx.isLoading,\n onPageNumberChanged: _ctx.onPageNumberChange,\n onSortChanged: _ctx.onSortChange,\n onPageSizeChanged: _ctx.onPageSizeChange\n }, {\n td: _withCtx((data) => [\n (data.col === 'coordinatorName')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _toDisplayString(_ctx.$t(\"shared.coordinator\")), 1))\n : (data.col === 'proposedNoteTakersCount')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, _toDisplayString(_ctx.$t(\"shared.proposedNoteTakersCount\")), 1))\n : (data.col === 'offer')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, _toDisplayString(_ctx.$t(\"shared.offer\")), 1))\n : (data.col === 'titleSv' || data.col === 'titleEn')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_6, _toDisplayString(_ctx.$t(\"course-occurrence.title\")), 1))\n : (data.col === 'latestNoteTakerOffer')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_7, _toDisplayString(_ctx.$t(\"course-occurrence.offer.offer\")), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_8, _toDisplayString(_ctx.$t(`course-occurrence.${data.col}`)), 1))\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_9\n ]),\n _: 2\n }, 1032, [\"backgroundColor\"])\n ]),\n _: 2\n }, 1032, [\"text\", \"bgColor\", \"color\"]))\n : (data.col === 'occurrence')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, [\n (\n _ctx.currentUser.checkEntitlement([\n [\n 'Anteckningsstödsadministratör',\n 'or',\n 'Anteckningsadministratör',\n ],\n 'or',\n 'Samordnare',\n ])\n )\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: _ctx.navigateToDetailsUrl + data.row.id\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.replaceUnvailableOrFormatDate(data.val)), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_11, _toDisplayString(_ctx.replaceUnvailableOrFormatDate(data.val)), 1))\n ]))\n : _createCommentVNode(\"\", true),\n (this.$i18n.locale === 'en' && data.col === 'titleEn')\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 2,\n innerHTML: \n _ctx.truncate(\n _ctx.replaceUnvailableOrFormatDate(data.val),\n _ctx.courseTitleTruncationLength\n )\n ,\n title: data.val.length > _ctx.courseTitleTruncationLength ? data.val : ''\n }, null, 8, _hoisted_12))\n : _createCommentVNode(\"\", true),\n (this.$i18n.locale === 'sv' && data.col === 'titleSv')\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 3,\n innerHTML: \n _ctx.truncate(\n _ctx.replaceUnvailableOrFormatDate(data.val),\n _ctx.courseTitleTruncationLength\n )\n ,\n title: data.val.length > _ctx.courseTitleTruncationLength ? data.val : ''\n }, null, 8, _hoisted_13))\n : (data.col === 'offer')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_14, _toDisplayString(_ctx.getLatestCourseInstanceOfferDate(data.val)), 1))\n : (\n data.col === 'courseStartDate' || data.col === 'courseEndDate'\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_15, _toDisplayString(_ctx.replaceUnvailableOrFormatDate(data.val)), 1))\n : (\n data.col !== 'occurrence' &&\n data.col !== 'titleEn' &&\n data.col !== 'titleSv' &&\n data.col !== 'status' &&\n data.col !== 'offer' &&\n data.col !== 'courseStartDate' &&\n data.col !== 'courseEndDate'\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_16, _toDisplayString(data.val), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"rows\", \"sortColumn\", \"ascending\", \"pagingData\", \"hiddenColumns\", \"unsortableColumns\", \"pageHeading\", \"isLoading\", \"onPageNumberChanged\", \"onSortChanged\", \"onPageSizeChanged\"])\n ]))\n}","\nimport { Options, Vue } from \"vue-class-component\";\nimport Accordion from \"@/components/Accordion.vue\";\nimport Tooltip from \"@/components/Tooltip.vue\";\nimport Table from \"@/components/Table.vue\";\nimport Badge from \"@/components/Badge.vue\";\nimport CheckboxInput from \"@/components/Form/CheckboxInput.vue\";\nimport SelectItem from \"@/components/Form/SelectItem.vue\";\nimport { Constants } from \"@/constants/constants\";\nimport {\n CourseOccurrenceBase,\n PagedList,\n SortOrder,\n QueryStringParameters,\n NoteTakerOffer,\n} from \"@/interfaces/api\";\nimport { INameAndId } from \"@/interfaces/INameAndId\";\nimport { IPagingData } from \"@/interfaces/IPagingData\";\nimport { IUserPagingData } from \"@/interfaces/IUserPagingData\";\nimport CourseService from \"@/services/course-service\";\nimport LocalStorageService from \"@/services/localstorage-service\";\nimport DateHelper from \"@/helpers/date-helper\";\nimport MappingHelper from \"@/helpers/mapping-helper\";\nimport StringHelper from \"@/helpers/string-helper\";\nimport CoordinatorService from \"@/services/coordinator-service\";\nimport { mapState } from \"vuex\";\n\n@Options({\n components: {\n Table,\n Badge,\n Tooltip,\n Accordion,\n SelectItem,\n CheckboxInput,\n },\n data: () => ({\n /**\n * The current sort column\n */\n sortColumn: \"endDate\",\n /**\n * If sort order is ascending\n */\n ascending: false,\n /**\n * All course ocurrences\n */\n courseOccurrences: [],\n /**\n * Holds the paging data sent back with the list of course occurrences from the backend\n */\n pagingData: {},\n /**\n * The url to detailed view\n */\n navigateToDetailsUrl: \"/administrator/courseoccurrencedetails/\",\n /**\n * If the data is still loading - passed to the table component to show spinner\n */\n isLoading: true,\n /**\n * The length to truncate the course title to\n */\n courseTitleTruncationLength: Constants.CourseTitleTruncationLength,\n /*\n * Holds a list of coordinator names and ids and is populated by a call to the coordinator service when the page loads\n */\n coordinators: new Array(),\n /**\n * The selected coordinator to filter on\n */\n selectedCoordinator: { id: 0, name: \"\" },\n }),\n computed: {\n /**\n * Hides course title column in one language depending on chosen locale\n */\n hiddenColumns() {\n return this.$i18n.locale === \"sv\" ? [\"id\", \"titleEn\"] : [\"id\", \"titleSv\"];\n },\n /**\n * Columns that should not be sortable\n */\n unsortableColumns() {\n return [\"latestNoteTakerOffer\"];\n },\n /**\n * The page heading to be displayed above the table\n */\n pageHeading() {\n return this.$t(\"shared.routes.course-occurrence-overview\");\n },\n /**\n * All rows in the table\n */\n rows() {\n return MappingHelper.mapToPartialCourseOccurrenceOverviewArray(\n this.courseOccurrences\n );\n },\n ...mapState([\"currentUser\"]),\n },\n methods: {\n /**\n * Fetches and filters course instance offers to output the first offer date\n */\n getLatestCourseInstanceOfferDate(data: NoteTakerOffer[]): string {\n const activeOffers = data.filter((offer) => {\n return (\n (offer.canceled === null || offer.canceled === undefined) &&\n (offer.confirmed === null || offer.confirmed === undefined)\n );\n });\n const sortedActiveOffers = activeOffers.sort((offerA, offerB) => {\n return DateHelper.dateCompareFunction(offerA.sent, offerB.sent);\n });\n if (!sortedActiveOffers[0]) {\n return \"\";\n }\n return DateHelper.formatDate(sortedActiveOffers[0]?.sent);\n },\n /**\n * Fetches course occurrences that meet the required paging data\n */\n getCourseOccurrences(): void {\n const parameters = this.getQueryStringParameters();\n this.isLoading = true;\n CourseService.getCourseOccurrences(parameters)\n .then((data: PagedList) => {\n this.populatePagingData(data);\n this.courseOccurrences = data.items;\n this.rows = MappingHelper.mapToPartialCourseOccurrenceOverviewArray(\n data.items\n );\n this.isLoading = false;\n this.saveFilteredCourseOccurrenceIds(data.sortedIds);\n })\n .catch((e: Error) => {\n console.error(e);\n });\n },\n /**\n * Populates and returns parameters for the getCourseOccurrences method in the course service\n */\n getQueryStringParameters(): QueryStringParameters {\n return {\n sortBy: this.sortColumn,\n sortOrder: this.ascending ? SortOrder.Asc : SortOrder.Desc,\n pageNumber: this.pagingData.currentPage || 1,\n pageSize: this.pagingData.pageSize || 10,\n coordinatorId: this.selectedCoordinator.id,\n };\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 Constants.CourseOccurrenceTableUserPagingData\n );\n\n this.pagingData.pageSize = 10;\n\n if (userPagingData) {\n this.sortColumn = userPagingData.sortColumn;\n this.ascending = userPagingData.sortOrder === SortOrder.Asc;\n this.pagingData.pageSize = userPagingData.pageSize;\n if (userPagingData.coordinator) {\n this.selectedCoordinator = userPagingData.coordinator;\n }\n }\n },\n /**\n * Populates paging data received from the backend to be passed to the table component\n */\n populatePagingData(data: PagedList): void {\n const pagingData: IPagingData = {\n currentPage: data.currentPage,\n totalPages: data.totalPages,\n pageSize: data.pageSize,\n totalCount: data.totalCount,\n hasPrevious: data.hasPrevious,\n hasNext: data.hasNext,\n };\n\n this.pagingData = pagingData;\n },\n /**\n * Generates user paging data to be saved to local storage\n */\n generateUserPagingData(): IUserPagingData {\n const userPagingData: IUserPagingData = {\n sortColumn: this.sortColumn,\n sortOrder: this.ascending ? SortOrder.Asc : SortOrder.Desc,\n pageSize: this.pagingData.pageSize,\n coordinator: this.selectedCoordinator,\n };\n\n return userPagingData;\n },\n /**\n * Saves the ids of all sorted course occurrences to localstorage\n *\n * @param {QueryStringParameters} parameters - The paging parameters to be added to the service call\n */\n saveFilteredCourseOccurrenceIds(sortedIds: number[]): void {\n LocalStorageService.setItem(\n Constants.SortedCourseOccurrenceIds,\n sortedIds\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 * Returns a string truncated to the end of the last word in the substring with a trailing \"...\"\n *\n */\n truncate(input: string, stringLength: number): string {\n return StringHelper.truncate(input, stringLength, true);\n },\n /**\n * Triggered when the user changes the page number of the table\n */\n onPageNumberChange(pageNumber: number): void {\n this.pagingData.currentPage = pageNumber;\n this.getCourseOccurrences();\n },\n /**\n * Triggered when the user changes the sort column/order of the table\n */\n onSortChange(columnName: string, ascending: boolean): void {\n this.sortColumn = this.getColumnName(columnName);\n this.ascending = ascending;\n LocalStorageService.setItem(\n Constants.CourseOccurrenceTableUserPagingData,\n this.generateUserPagingData()\n );\n this.getCourseOccurrences();\n },\n /**\n * Triggered when the user changes the sort column/order of the table\n */\n getColumnName(columnName: string): string {\n if (columnName === \"title\") {\n return this.$i18n.locale === \"sv\" ? \"titleSv\" : \"titleEn\";\n }\n return columnName;\n },\n /**\n * Triggered when the user changes the page size of the table\n */\n onPageSizeChange(pageSize: number): void {\n this.pagingData.pageSize = pageSize;\n LocalStorageService.setItem(\n Constants.CourseOccurrenceTableUserPagingData,\n this.generateUserPagingData()\n );\n this.getCourseOccurrences();\n },\n /**\n * Triggered when the user changes the selected coordinator option\n */\n onCoordinatorChange(coordinator: INameAndId): void {\n this.selectedCoordinator = coordinator;\n this.pagingData.coordinator = coordinator;\n LocalStorageService.setItem(\n Constants.CourseOccurrenceTableUserPagingData,\n this.generateUserPagingData()\n );\n this.getCourseOccurrences();\n },\n /**\n * Fetches the coordinators for the function with the supplied id\n */\n getCoordinators() {\n CoordinatorService.getCachedCoordinatorsByFunctionId(\n Constants.NoteTakingFunctionId\n ).then((coordinators) => {\n this.coordinators = coordinators;\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 mounted() {\n this.getUsersPagingData();\n this.getCourseOccurrences();\n this.getCoordinators();\n },\n})\nexport default class CourseOccurrenceList extends Vue {}\n","import { render } from \"./CourseOccurrenceList.vue?vue&type=template&id=52623bb2&scoped=true&ts=true\"\nimport script from \"./CourseOccurrenceList.vue?vue&type=script&lang=ts\"\nexport * from \"./CourseOccurrenceList.vue?vue&type=script&lang=ts\"\n\nimport \"./CourseOccurrenceList.vue?vue&type=style&index=0&id=52623bb2&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-52623bb2\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./CourseOccurrenceList.vue?vue&type=style&index=0&id=52623bb2&scoped=true&lang=css\"","import { normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"form-group form-check\" }\nconst _hoisted_2 = [\"aria-label\", \"id\", \"checked\", \"disabled\", \"required\"]\nconst _hoisted_3 = [\"for\"]\nconst _hoisted_4 = {\n key: 1,\n class: \"form-text text-muted\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n class: \"form-check-input\",\n \"aria-label\": _ctx.ariaLabel,\n id: _ctx.fieldId,\n checked: _ctx.checked,\n disabled: _ctx.disabled,\n required: _ctx.required,\n onChange: _cache[0] || (_cache[0] = ($event: any) => (_ctx.onUpdate($event.target.checked))),\n style: _normalizeStyle({ cursor: _ctx.disabled ? 'not-allowed' : 'pointer' }),\n ref: \"input\",\n onInvalid: _cache[1] || (_cache[1] = ($event: any) => (_ctx.validityMessage ? _ctx.setValidityMessage(_ctx.validityMessage) : null))\n }, null, 44, _hoisted_2),\n (_ctx.label)\n ? (_openBlock(), _createElementBlock(\"label\", {\n key: 0,\n class: \"form-check-label\",\n for: _ctx.fieldId\n }, _toDisplayString(_ctx.label), 9, _hoisted_3))\n : _createCommentVNode(\"\", true),\n (_ctx.helpText)\n ? (_openBlock(), _createElementBlock(\"small\", _hoisted_4, _toDisplayString(_ctx.helpText), 1))\n : _createCommentVNode(\"\", true)\n ]))\n}","\nimport { PropType } from \"@vue/runtime-core\";\nimport { Options, Vue } from \"vue-class-component\";\n\n@Options({\n props: {\n /**\n * The Id of the checkbox\n */\n fieldId: {\n type: String as PropType,\n required: false,\n },\n /**\n * The label value for the checkbox\n */\n label: {\n type: String as PropType,\n required: false,\n },\n /**\n * The aria label value for the checkbox\n */\n ariaLabel: {\n type: String as PropType,\n required: false,\n },\n /**\n * If the checkbox is checked\n */\n checked: {\n type: Boolean as PropType,\n required: false,\n default: false,\n },\n /**\n * If the checkbox is disabled\n */\n disabled: {\n type: Boolean as PropType,\n required: false,\n default: false,\n },\n /**\n * The help text for the checkbox\n */\n helpText: {\n type: String as PropType,\n required: false,\n },\n /**\n * If the input is required\n */\n required: {\n type: Boolean as PropType,\n required: false,\n default: false,\n },\n /**\n * Custom validity message\n */\n validityMessage: {\n type: String as PropType,\n required: false,\n },\n },\n emits: [\"update:checked\", \"update\"],\n methods: {\n /**\n * Gets called when the value changes\n */\n onUpdate(isChecked: boolean): void {\n this.setValidityMessage(\"\");\n this.$emit(\"update:checked\", isChecked);\n this.$emit(\"update\", isChecked);\n },\n /**\n * Sets a custom validity message\n *\n * @param {string} message The message\n */\n setValidityMessage(message: string): void {\n this.$refs.input.setCustomValidity(message);\n },\n },\n})\nexport default class CheckboxInput extends Vue {}\n","import { render } from \"./CheckboxInput.vue?vue&type=template&id=77a7f6a0&ts=true\"\nimport script from \"./CheckboxInput.vue?vue&type=script&lang=ts\"\nexport * from \"./CheckboxInput.vue?vue&type=script&lang=ts\"\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]])\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 StringHelper {\n /**\n * Returns a truncated string with a trailing \"...\"\n *\n * @param {string} input The string to truncate\n * @param {number} stringLength The length to truncate the string to\n * @param {boolean} useLastWordBoundary If set to true the string is truncated to the end of the last word in the resulting substring\n *\n * @returns {string} The truncated input string\n */\n truncate(\n input: string,\n stringLength: number,\n useLastWordBoundary = false\n ): string {\n if (input.length <= stringLength) {\n return input;\n }\n\n const subString = input.substring(0, stringLength);\n\n return (\n (useLastWordBoundary\n ? subString.substring(0, subString.lastIndexOf(\" \"))\n : subString) + \"…\"\n );\n }\n /**\n * JSON stringifys the specified item to lower case\n *\n * @param {unknown} item The item to stringify\n *\n * @returns {string} The stringified item\n */\n stringifyToLowerCase(item: unknown): string {\n return JSON.stringify(item).toLowerCase();\n }\n /**\n * Adds a leading zero to the input number if it is les than 10\n *\n * @param {number} input The input number\n *\n * @returns {string} The number as string\n */\n addLeadingZero(input: number): string {\n return input < 10 ? `0${input}` : input.toString();\n }\n}\n\nexport default new StringHelper();\n","import { renderSlot as _renderSlot, resolveComponent as _resolveComponent, createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"card\" }\nconst _hoisted_2 = { class: \"card-header\" }\nconst _hoisted_3 = { class: \"mb-0\" }\nconst _hoisted_4 = [\"aria-expanded\"]\nconst _hoisted_5 = { style: {\"padding-left\":\"10px\"} }\nconst _hoisted_6 = { class: \"card-body\" }\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(\"h2\", _hoisted_3, [\n _createElementVNode(\"button\", {\n class: \"btn btn-link text-left\",\n type: \"button\",\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.toggle && _ctx.toggle(...args))),\n \"aria-expanded\": this._expanded\n }, [\n _renderSlot(_ctx.$slots, \"button\"),\n _createElementVNode(\"span\", _hoisted_5, [\n _createVNode(_component_font_awesome_icon, {\n icon: this._expanded ? 'chevron-up' : 'chevron-down'\n }, null, 8, [\"icon\"])\n ])\n ], 8, _hoisted_4)\n ])\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"collapse\", { show: this._expanded }])\n }, [\n _createElementVNode(\"div\", _hoisted_6, [\n _renderSlot(_ctx.$slots, \"content\")\n ])\n ], 2)\n ]))\n}","\nimport { PropType } from \"@vue/runtime-core\";\nimport { Options, Vue } from \"vue-class-component\";\n\n@Options({\n props: {\n /**\n * If the accordion is shown at start\n */\n expanded: {\n type: Boolean as PropType,\n required: false,\n default: false,\n },\n },\n data: () => ({\n /**\n * If the accordion is expanded at the moment\n */\n _expanded: false,\n }),\n methods: {\n /**\n * Gets called when the student clicks on the accordion header\n */\n toggle() {\n this._expanded = !this._expanded;\n },\n },\n created() {\n this._expanded = this.expanded;\n },\n})\nexport default class Accordion extends Vue {}\n","import { render } from \"./Accordion.vue?vue&type=template&id=3b4f29b9&ts=true\"\nimport script from \"./Accordion.vue?vue&type=script&lang=ts\"\nexport * from \"./Accordion.vue?vue&type=script&lang=ts\"\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]])\n\nexport default __exports__"],"sourceRoot":""}