{"version":3,"sources":["webpack:///./src/services/notetaker-service.ts","webpack:///./src/interfaces/api.ts","webpack:///./src/views/administrator/NoteTakerList.vue?bdf6","webpack:///./src/components/Form/Filter.vue?1368","webpack:///./src/components/Form/Filter.vue","webpack:///./src/components/Form/Filter.vue?d5b1","webpack:///./src/components/NoteTakerList/StudentsColumn.vue?1aa8","webpack:///./src/components/NoteTakerList/StudentsColumn.vue","webpack:///./src/components/NoteTakerList/StudentsColumn.vue?ae2b","webpack:///./src/views/administrator/NoteTakerList.vue?b6d7","webpack:///./src/views/administrator/NoteTakerList.vue?1abd","webpack:///./src/views/administrator/NoteTakerList.vue?2af4","webpack:///./src/helpers/querystring-helper.ts","webpack:///./src/services/download-service.ts","webpack:///./src/components/Accordion.vue?dbc1","webpack:///./src/components/Accordion.vue","webpack:///./src/components/Accordion.vue?2fef"],"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","CourseOccurrenceStatus","FeeDataExportType","Locale","NoteTakerStatus","SortOrder","n","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","key","_hoisted_9","_hoisted_10","render","_ctx","_cache","$props","$setup","$data","$options","_component_DatePicker","_component_font_awesome_icon","_component_Modal","_component_Search","_component_Accordion","_component_StudentsColumn","_component_router_link","_component_Table","ref","allowCloseOutside","header","$t","default","value","feeExportFromDate","$event","required","clearable","enableTimePicker","type","onClick","exportFeeBasisData","icon","_","name","fn","undefined","button","content","search","onSearchChanged","onSearchChange","rows","hiddenColumns","sortColumn","ascending","stickyFirstColumn","showPagination","allowChangeRowPerPage","showNumRows","unsortableColumns","pagingData","pageHeading","useSpinner","isLoading","onPageNumberChanged","onPageNumberChange","onSortChanged","onSortChange","onPageSizeChanged","onPageSizeChange","actions","openExportDateModal","exportTypeAccounting","exportTypeBasis","td","data","col","val","students","to","params","row","filterTitle","showReset","reset","role","values","group","group_key","$slots","option","option_key","style","checked","onChange","target","for","showSubmit","props","Object","Boolean","String","methods","$emit","__exports__","firstName","lastName","toggle","shown","student","Array","components","Search","Filter","Table","Accordion","StudentsColumn","Modal","DatePicker","navigateToDetailsUrl","selectedStatus","selectedPasswordSent","timer","feeExportType","computed","hidden","statusFilter","Incoming","populateFilterValue","Active","Inactive","Completed","locale","$root","$i18n","Basis","Accounting","localstorageKey","defaultValue","keyExists","getItem","iterateFilter","filter","array","filterType","storageKey","push","setItem","getNoteTakers","parameters","getNoteTakerParameters","getFiltered","then","populatePagingData","items","saveFilteredNoteTakerIds","sortedIds","catch","e","console","error","toLowerCase","sortBy","sortOrder","Asc","Desc","pageNumber","currentPage","pageSize","FilteredNoteTakerIds","numStatus","noteTakers","totalPages","totalCount","hasPrevious","hasNext","generateUserPagingData","userPagingData","columnName","NoteTakerTableUserPagingData","onStatusChange","setSelectedStatus","selected_status","searchPhrase","clearTimeout","setTimeout","SearchSubmissionDelayMilliseconds","getUsersPagingData","$refs","open","close","fromDate","toISOString","substring","downloadFeeData","mounted","QuerystringHelper","DownloadService","fromDateIsoString","feeDataExportType","paramName_1","paramValue_1","paramName_2","paramValue_2","paramName_3","paramValue_3","url","invoiceNo","paramName","paramValue","_expanded","show","expanded","created"],"mappings":"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","file":"assets/js/chunk-2f21e672.0b4c8aed.js","sourcesContent":["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","// ..\\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","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, createTextVNode as _createTextVNode, withModifiers as _withModifiers, withCtx as _withCtx, createSlots as _createSlots, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-68d18340\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"m-0\" }\nconst _hoisted_2 = { class: \"content\" }\nconst _hoisted_3 = { class: \"p-3 date-explanation\" }\nconst _hoisted_4 = { class: \"m-0\" }\nconst _hoisted_5 = { class: \"p-3\" }\nconst _hoisted_6 = { class: \"d-flex\" }\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_8 = { key: 0 }\nconst _hoisted_9 = { key: 2 }\nconst _hoisted_10 = { key: 3 }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DatePicker = _resolveComponent(\"DatePicker\")!\n const _component_font_awesome_icon = _resolveComponent(\"font-awesome-icon\")!\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_Search = _resolveComponent(\"Search\")!\n const _component_Accordion = _resolveComponent(\"Accordion\")!\n const _component_StudentsColumn = _resolveComponent(\"StudentsColumn\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Table = _resolveComponent(\"Table\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_Modal, {\n ref: \"export-modal\",\n allowCloseOutside: true\n }, {\n header: _withCtx(() => [\n _createElementVNode(\"h3\", _hoisted_1, _toDisplayString(_ctx.$t(\"note-taker-list.choose-date\")), 1)\n ]),\n default: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_2, [\n _createVNode(_component_DatePicker, {\n \"aria-label\": \"Date Picker\",\n value: _ctx.feeExportFromDate,\n \"onUpdate:value\": _cache[0] || (_cache[0] = ($event: any) => ((_ctx.feeExportFromDate) = $event)),\n required: true,\n clearable: false,\n enableTimePicker: false\n }, null, 8, [\"value\"]),\n _createElementVNode(\"button\", {\n id: \"exportBtn\",\n type: \"button\",\n class: \"btn btn-sm btn-primary\",\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.exportFeeBasisData()), [\"prevent\"]))\n }, [\n _createVNode(_component_font_awesome_icon, { icon: \"file-excel\" }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t(\"note-taker-list.export\")), 1)\n ]),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(_ctx.$t(\"note-taker-list.choose-date-explanation\")), 1)\n ])\n ]),\n _: 1\n }, 512),\n _createVNode(_component_Modal, { ref: \"error-modal\" }, _createSlots({\n default: _withCtx(() => [\n _createElementVNode(\"p\", _hoisted_5, _toDisplayString(_ctx.$t(\"shared.popup-error.message\")), 1)\n ]),\n _: 2\n }, [\n (_ctx.noteTaker !== null)\n ? {\n name: \"header\",\n fn: _withCtx(() => [\n _createElementVNode(\"h2\", _hoisted_4, _toDisplayString(_ctx.$t(\"shared.popup-error.title\")), 1)\n ])\n }\n : undefined\n ]), 1536),\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_6, [\n _createVNode(_component_Search, {\n value: _ctx.search,\n \"onUpdate:value\": _cache[2] || (_cache[2] = ($event: any) => ((_ctx.search) = $event)),\n onSearchChanged: _ctx.onSearchChange\n }, null, 8, [\"value\", \"onSearchChanged\"])\n ])\n ]),\n _: 1\n }),\n _hoisted_7,\n _createVNode(_component_Table, {\n rows: _ctx.rows,\n hiddenColumns: _ctx.hiddenColumns,\n sortColumn: _ctx.sortColumn,\n \"onUpdate:sortColumn\": _cache[5] || (_cache[5] = ($event: any) => ((_ctx.sortColumn) = $event)),\n ascending: _ctx.ascending,\n \"onUpdate:ascending\": _cache[6] || (_cache[6] = ($event: any) => ((_ctx.ascending) = $event)),\n stickyFirstColumn: \"\",\n showPagination: \"\",\n allowChangeRowPerPage: \"\",\n showNumRows: \"\",\n unsortableColumns: _ctx.unsortableColumns,\n pagingData: _ctx.pagingData,\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 actions: _withCtx(() => [\n _createElementVNode(\"button\", {\n type: \"button\",\n class: \"btn btn-sm btn-primary exportBtn\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (_ctx.openExportDateModal(_ctx.exportTypeAccounting)), [\"prevent\"]))\n }, [\n _createVNode(_component_font_awesome_icon, { icon: \"file-excel\" }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t(\"note-taker-list.export-fee-accounting\")), 1)\n ]),\n _createElementVNode(\"button\", {\n type: \"button\",\n class: \"btn btn-sm btn-primary exportBtn\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.openExportDateModal(_ctx.exportTypeBasis)), [\"prevent\"]))\n }, [\n _createVNode(_component_font_awesome_icon, { icon: \"file-excel\" }),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t(\"note-taker-list.export-fee-basis\")), 1)\n ])\n ]),\n td: _withCtx((data) => [\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`person.${data.col}`)), 1)\n ]),\n default: _withCtx((data) => [\n (data.col === 'status')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_8, _toDisplayString(_ctx.$t(`note-taker-status.${data.val}`)), 1))\n : _createCommentVNode(\"\", true),\n (data.col === 'students')\n ? (_openBlock(), _createBlock(_component_StudentsColumn, {\n key: 1,\n students: data.val\n }, null, 8, [\"students\"]))\n : _createCommentVNode(\"\", true),\n (data.col === 'personalId')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_9, [\n _createVNode(_component_router_link, {\n to: { name: 'NoteTakerDetails', params: { id: data.row.id } }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(data.val), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]))\n : _createCommentVNode(\"\", true),\n (\r\n data.col !== 'status' &&\r\n data.col !== 'students' &&\r\n data.col !== 'personalId'\r\n )\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_10, _toDisplayString(data.val), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"rows\", \"hiddenColumns\", \"sortColumn\", \"ascending\", \"unsortableColumns\", \"pagingData\", \"pageHeading\", \"isLoading\", \"onPageNumberChanged\", \"onSortChanged\", \"onPageSizeChanged\"])\n ], 64))\n}","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, renderSlot as _renderSlot, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"d-flex justify-content-between\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"m-0\"\n}\nconst _hoisted_3 = { class: \"mb-2\" }\nconst _hoisted_4 = [\"id\", \"checked\", \"onChange\"]\nconst _hoisted_5 = [\"for\"]\nconst _hoisted_6 = {\n key: 0,\n class: \"mt-3 text-center\"\n}\nconst _hoisted_7 = [\"value\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n (_ctx.filterTitle.length > 0 || _ctx.showReset)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.filterTitle.length > 0)\n ? (_openBlock(), _createElementBlock(\"h3\", _hoisted_2, _toDisplayString(_ctx.$t(_ctx.filterTitle)), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.showReset)\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 1,\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.reset && _ctx.reset(...args))),\n class: \"d-block\",\n role: \"button\"\n }, _toDisplayString(_ctx.$t(\"form.filter-reset\")), 1))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.values, (group, group_key) => {\n return (_openBlock(), _createElementBlock(\"fieldset\", {\n class: \"form-group\",\n key: group_key\n }, [\n _createElementVNode(\"legend\", null, [\n _renderSlot(_ctx.$slots, \"group-title\", { group: group_key }, () => [\n _createTextVNode(_toDisplayString(group_key), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(group, (option, option_key) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"custom-control custom-checkbox form-check-inline\",\n style: {\"display\":\"inline-flex\",\"margin-right\":\"3rem\"},\n key: option_key\n }, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n class: \"custom-control-input\",\n id: `option-${group_key}-${option_key}`,\n checked: option,\n onChange: ($event: any) => (_ctx.onChange(group_key, option_key, $event.target.checked))\n }, null, 40, _hoisted_4),\n _createElementVNode(\"label\", {\n class: \"custom-control-label\",\n for: `option-${group_key}-${option_key}`\n }, [\n _renderSlot(_ctx.$slots, \"option-title\", { option: option_key }, () => [\n _createTextVNode(_toDisplayString(option_key), 1)\n ])\n ], 8, _hoisted_5)\n ]))\n }), 128))\n ])\n ]))\n }), 128)),\n (_ctx.showSubmit)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createElementVNode(\"input\", {\n type: \"submit\",\n class: \"btn btn-primary\",\n value: _ctx.$t('form.apply')\n }, null, 8, _hoisted_7)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}","\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport { Options, Vue } from \"vue-class-component\";\r\n\r\n@Options({\r\n props: {\r\n /**\r\n * The filter options and default values\r\n */\r\n values: {\r\n type: Object as PropType>>,\r\n required: true,\r\n },\r\n /**\r\n * If submit button should be shown\r\n */\r\n showSubmit: {\r\n type: Boolean,\r\n required: false,\r\n default: false,\r\n },\r\n /**\r\n * The title for the filter section\r\n */\r\n filterTitle: {\r\n type: String,\r\n required: false,\r\n default: \"\",\r\n },\r\n /**\r\n * If reset button should be shown\r\n */\r\n showReset: {\r\n type: Boolean,\r\n required: false,\r\n default: false,\r\n },\r\n },\r\n methods: {\r\n /**\r\n * Gets called when user triggers a change\r\n */\r\n onChange(group_key: string, option_key: string, value: boolean) {\r\n let values = this.values;\r\n values[group_key][option_key] = value;\r\n this.$emit(\"selectionChanged\", values);\r\n },\r\n /**\r\n * Gets called when the user clicks on the reset button\r\n */\r\n reset() {\r\n let values = this.values;\r\n for (let group_key in values) {\r\n for (let option_key in values[group_key]) {\r\n values[group_key][option_key] = false;\r\n }\r\n }\r\n this.$emit(\"selectionChanged\", values);\r\n },\r\n },\r\n})\r\nexport default class Filter extends Vue {}\r\n","import { render } from \"./Filter.vue?vue&type=template&id=9a126b8a&ts=true\"\nimport script from \"./Filter.vue?vue&type=script&lang=ts\"\nexport * from \"./Filter.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { style: {\"display\":\"inline-block\",\"margin\":\"0\"} }\nconst _hoisted_3 = [\"aria-label\"]\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(_Fragment, null, [\n (_ctx.students && _ctx.students.length === 1)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_1, [\n _createElementVNode(\"a\", null, _toDisplayString(_ctx.students[0].firstName) + \" \" + _toDisplayString(_ctx.students[0].lastName), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.students && _ctx.students.length > 1)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createElementVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.students.length), 1),\n _createElementVNode(\"span\", {\n style: {\"padding-left\":\"10px\"},\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.toggle())),\n \"aria-label\": _ctx.$t('note-taker-list.show-students')\n }, [\n _createVNode(_component_font_awesome_icon, {\n icon: _ctx.shown ? 'chevron-up' : 'chevron-down'\n }, null, 8, [\"icon\"])\n ], 8, _hoisted_3),\n _createElementVNode(\"template\", {\n class: _normalizeClass(_ctx.shown ? 'd-block' : 'd-none')\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.students, (student) => {\n return (_openBlock(), _createElementBlock(\"p\", { key: student }, [\n _createElementVNode(\"a\", null, _toDisplayString(student.firstName) + \" \" + _toDisplayString(student.lastName), 1)\n ]))\n }), 128))\n ], 2)\n ], 64))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","\r\nimport type { Student } from \"@/interfaces/api\";\r\nimport { PropType } from \"vue\";\r\nimport { Options, Vue } from \"vue-class-component\";\r\n\r\n@Options({\r\n props: {\r\n /**\r\n * The students\r\n */\r\n students: {\r\n type: Array as PropType,\r\n required: false,\r\n },\r\n },\r\n data: () => ({\r\n /**\r\n * If the details are shown\r\n */\r\n shown: false,\r\n }),\r\n methods: {\r\n /**\r\n * Gets called when the user clicks on the arrow\r\n */\r\n toggle() {\r\n this.shown = !this.shown;\r\n },\r\n },\r\n})\r\nexport default class StudentsColumn extends Vue {}\r\n","import { render } from \"./StudentsColumn.vue?vue&type=template&id=1fc9d360&ts=true\"\nimport script from \"./StudentsColumn.vue?vue&type=script&lang=ts\"\nexport * from \"./StudentsColumn.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\r\nimport { Options, Vue } from \"vue-class-component\";\r\nimport Accordion from \"@/components/Accordion.vue\";\r\nimport DatePicker from \"@/components/Form/DatePicker.vue\";\r\nimport Filter from \"@/components/Form/Filter.vue\";\r\nimport Search from \"@/components/Form/Search.vue\";\r\nimport Modal from \"@/components/Modal.vue\";\r\nimport StudentsColumn from \"@/components/NoteTakerList/StudentsColumn.vue\";\r\nimport Table from \"@/components/Table.vue\";\r\nimport { Constants } from \"@/constants/constants\";\r\nimport {\r\n FeeDataExportType,\r\n OverviewNoteTaker,\r\n NoteTakerParameters,\r\n NoteTakerStatus,\r\n PagedList,\r\n SortOrder,\r\n} from \"@/interfaces/api\";\r\nimport { IPagingData } from \"@/interfaces/IPagingData\";\r\nimport { IUserPagingData } from \"@/interfaces/IUserPagingData\";\r\nimport DownloadService from \"@/services/download-service\";\r\nimport LocalStorageService from \"@/services/localstorage-service\";\r\nimport NoteTakerService from \"@/services/notetaker-service\";\r\n\r\n@Options({\r\n components: {\r\n Search,\r\n Filter,\r\n Table,\r\n Accordion,\r\n StudentsColumn,\r\n Modal,\r\n DatePicker,\r\n },\r\n data: () => ({\r\n /**\r\n * The current sort column\r\n */\r\n sortColumn: \"personalId\",\r\n /**\r\n * Unsortable columns\r\n */\r\n unsortableColumns: [\"students\"],\r\n /**\r\n * If sort order is ascending\r\n */\r\n ascending: false,\r\n /**\r\n * The current search value\r\n */\r\n search: \"\",\r\n /**\r\n * All rows in the table\r\n */\r\n rows: [],\r\n /**\r\n * The url to detailed view\r\n */\r\n navigateToDetailsUrl: \"/administrator/notetakerdetails/\",\r\n /**\r\n * Holds the selected filter values for status\r\n */\r\n selectedStatus: [],\r\n /**\r\n * Holds the selected filter values for password sent\r\n */\r\n selectedPasswordSent: [],\r\n /**\r\n * Holds the paging data sent back with the list of note takers from the backend\r\n */\r\n pagingData: {},\r\n /**\r\n * Used to delay search phrase changes calling backend\r\n */\r\n timer: null,\r\n /**\r\n * If the data is still loading - passed to the table component to show spinner\r\n */\r\n isLoading: true,\r\n /**\r\n * Used for exporting fee basis data - populated from the date picker\r\n */\r\n feeExportFromDate: null,\r\n /**\r\n * Used for setting button action in export modal\r\n */\r\n feeExportType: null,\r\n }),\r\n computed: {\r\n /**\r\n * Hides all unwanted columns\r\n */\r\n hiddenColumns() {\r\n const hidden = [\"id\", \"luEduPersonPrimaryId\", \"status\"];\r\n return hidden;\r\n },\r\n /**\r\n * Holds the filter values for statuses\r\n */\r\n statusFilter() {\r\n return {\r\n status: {\r\n Incoming: this.populateFilterValue(\"selected_status_incoming\", true),\r\n Active: this.populateFilterValue(\"selected_status_active\", false),\r\n Inactive: this.populateFilterValue(\"selected_status_inactive\", false),\r\n Completed: this.populateFilterValue(\r\n \"selected_status_completed\",\r\n false\r\n ),\r\n },\r\n };\r\n },\r\n /**\r\n * The page heading to be displayed above the table\r\n */\r\n pageHeading() {\r\n return this.$t(\"shared.routes.note-taker-overview\");\r\n },\r\n locale(): string {\r\n return this.$root.$i18n.locale;\r\n },\r\n exportTypeBasis(): string {\r\n return FeeDataExportType.Basis;\r\n },\r\n exportTypeAccounting(): string {\r\n return FeeDataExportType.Accounting;\r\n },\r\n },\r\n methods: {\r\n populateFilterValue(\r\n localstorageKey: string,\r\n defaultValue: boolean\r\n ): boolean {\r\n return LocalStorageService.keyExists(localstorageKey)\r\n ? (LocalStorageService.getItem(localstorageKey) as boolean)\r\n : defaultValue;\r\n },\r\n /**\r\n * Iterates a filter and saves selected options to localstorage\r\n */\r\n iterateFilter(\r\n filter: { [x: string]: { [x: string]: boolean } },\r\n array: string[],\r\n filterType: string\r\n ): void {\r\n for (let group_key in filter) {\r\n for (let option_key in filter[group_key]) {\r\n const storageKey = `selected_${filterType}_${option_key}`;\r\n\r\n if (filter[group_key][option_key]) {\r\n array.push(option_key);\r\n LocalStorageService.setItem(storageKey, \"true\");\r\n } else {\r\n LocalStorageService.setItem(storageKey, \"false\");\r\n }\r\n }\r\n }\r\n },\r\n /**\r\n * Fetches note takers that meet the required search, filter and paging data\r\n */\r\n getNoteTakers(): void {\r\n const parameters = this.getNoteTakerParameters();\r\n this.isLoading = true;\r\n\r\n NoteTakerService.getFiltered(parameters)\r\n .then((data: PagedList) => {\r\n this.populatePagingData(data);\r\n this.rows = data.items;\r\n this.saveFilteredNoteTakerIds(data.sortedIds);\r\n this.isLoading = false;\r\n })\r\n .catch((e: Error) => {\r\n console.error(e);\r\n });\r\n },\r\n /**\r\n * Populates and returns parameters for the getFiltered method in the note taker service\r\n */\r\n getNoteTakerParameters(): NoteTakerParameters {\r\n return {\r\n search: this.search.toLowerCase(),\r\n sortBy: this.sortColumn,\r\n sortOrder: this.ascending ? SortOrder.Asc : SortOrder.Desc,\r\n pageNumber: this.pagingData.currentPage || 1,\r\n pageSize: this.pagingData.pageSize || 10,\r\n status: this.selectedStatus,\r\n };\r\n },\r\n /**\r\n * Saves the ids of all filtered note takers to localstorage\r\n *\r\n * @param {NoteTakerParameters} noteTakerParameters - The filter/paging parameters to be added to the service call\r\n */\r\n saveFilteredNoteTakerIds(sortedIds: number[]): void {\r\n LocalStorageService.setItem(Constants.FilteredNoteTakerIds, sortedIds);\r\n },\r\n /**\r\n * Returns the number of note takers with the specified status\r\n */\r\n numStatus(status: NoteTakerStatus): number {\r\n const noteTakers: OverviewNoteTaker[] = this.rows.filter(\r\n (noteTaker: OverviewNoteTaker) => noteTaker.status == status\r\n );\r\n return noteTakers.length;\r\n },\r\n /**\r\n * Populates paging data received from the backend to be passed to the table component\r\n */\r\n populatePagingData(data: PagedList): void {\r\n const pagingData: IPagingData = {\r\n currentPage: data.currentPage,\r\n totalPages: data.totalPages,\r\n pageSize: data.pageSize,\r\n totalCount: data.totalCount,\r\n hasPrevious: data.hasPrevious,\r\n hasNext: data.hasNext,\r\n };\r\n\r\n this.pagingData = pagingData;\r\n },\r\n /**\r\n * Generates user paging data to be saved to local storage\r\n */\r\n generateUserPagingData(): IUserPagingData {\r\n const userPagingData: IUserPagingData = {\r\n sortColumn: this.sortColumn,\r\n sortOrder: this.ascending ? SortOrder.Asc : SortOrder.Desc,\r\n pageSize: this.pagingData.pageSize,\r\n };\r\n\r\n return userPagingData;\r\n },\r\n /**\r\n * Triggered when the user changes the page number of the table\r\n */\r\n onPageNumberChange(pageNumber: number): void {\r\n this.pagingData.currentPage = pageNumber;\r\n this.getNoteTakers();\r\n },\r\n /**\r\n * Triggered when the user changes the sort column/order of the 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.NoteTakerTableUserPagingData,\r\n this.generateUserPagingData()\r\n );\r\n this.getNoteTakers();\r\n },\r\n /**\r\n * Triggered when the user changes the page size of the table\r\n */\r\n onPageSizeChange(pageSize: number): void {\r\n this.pagingData.pageSize = pageSize;\r\n LocalStorageService.setItem(\r\n Constants.NoteTakerTableUserPagingData,\r\n this.generateUserPagingData()\r\n );\r\n this.getNoteTakers();\r\n },\r\n /**\r\n * Triggered when the user changes the selected status options\r\n */\r\n onStatusChange(\r\n statusFilter: Record>\r\n ): void {\r\n this.setSelectedStatus(statusFilter);\r\n this.getNoteTakers();\r\n },\r\n /**\r\n * Sets selected status, called on page load and by onStatusChange\r\n */\r\n setSelectedStatus(\r\n statusFilter: Record>\r\n ): void {\r\n this.statusFilter = statusFilter;\r\n const selected_status = new Array();\r\n this.iterateFilter(statusFilter, selected_status, \"status\");\r\n this.selectedStatus = selected_status;\r\n },\r\n /**\r\n * Triggered when the user enters search text\r\n */\r\n onSearchChange(searchPhrase: string): void {\r\n if (this.timer) {\r\n clearTimeout(this.timer);\r\n this.timer = null;\r\n }\r\n this.timer = setTimeout(() => {\r\n this.search = searchPhrase;\r\n this.getNoteTakers();\r\n }, Constants.SearchSubmissionDelayMilliseconds);\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 Constants.NoteTakerTableUserPagingData\r\n );\r\n\r\n this.pagingData.pageSize = 10;\r\n\r\n if (userPagingData) {\r\n this.sortColumn = userPagingData.sortColumn;\r\n this.ascending = userPagingData.sortOrder === SortOrder.Asc;\r\n this.pagingData.pageSize = userPagingData.pageSize;\r\n }\r\n },\r\n /**\r\n * Opens the modal where the user can enter a date to include fee export data from that date forward\r\n */\r\n openExportDateModal(feeExportType: FeeDataExportType): void {\r\n this.feeExportType = feeExportType;\r\n this.$refs[\"export-modal\"].open();\r\n },\r\n /**\r\n * Exports fee basis data as a downloaded excel file\r\n */\r\n async exportFeeBasisData() {\r\n this.$refs[\"export-modal\"].close();\r\n this.isLoading = true;\r\n\r\n const fromDate = this.feeExportFromDate\r\n ? this.feeExportFromDate.toISOString().substring(0, 10)\r\n : \"\";\r\n\r\n try {\r\n await DownloadService.downloadFeeData(\r\n this.locale,\r\n fromDate,\r\n this.feeExportType\r\n );\r\n this.feeExportFromDate = null;\r\n } catch (e: unknown) {\r\n this.$refs[\"error-modal\"].open();\r\n console.error(e);\r\n } finally {\r\n this.isLoading = false;\r\n }\r\n },\r\n },\r\n async mounted() {\r\n this.setSelectedStatus(this.statusFilter);\r\n this.getUsersPagingData();\r\n this.getNoteTakers();\r\n },\r\n})\r\nexport default class NoteTakerList extends Vue {}\r\n","import { render } from \"./NoteTakerList.vue?vue&type=template&id=68d18340&scoped=true&ts=true\"\nimport script from \"./NoteTakerList.vue?vue&type=script&lang=ts\"\nexport * from \"./NoteTakerList.vue?vue&type=script&lang=ts\"\n\nimport \"./NoteTakerList.vue?vue&type=style&index=0&id=68d18340&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-68d18340\"]])\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!./NoteTakerList.vue?vue&type=style&index=0&id=68d18340&scoped=true&lang=css\"","import { QueryStringParameters } from \"@/interfaces/api\";\r\n\r\nclass QuerystringHelper {\r\n generateSearchAndPagingParameters(parameters: QueryStringParameters): string {\r\n let queryString = \"\";\r\n\r\n if (parameters.search) {\r\n queryString += `Search=${parameters.search}&`;\r\n }\r\n\r\n queryString += `SortBy=${parameters.sortBy}&`;\r\n\r\n queryString += `SortOrder=${parameters.sortOrder}&`;\r\n\r\n queryString += `PageNumber=${parameters.pageNumber}&`;\r\n\r\n queryString += `PageSize=${parameters.pageSize}`;\r\n\r\n return queryString;\r\n }\r\n}\r\n\r\nexport default new QuerystringHelper();\r\n","import { FeeDataExportType } from \"@/interfaces/api\";\r\nimport BaseService from \"@/services/base-service\";\r\n\r\nclass DownloadService extends BaseService {\r\n /**\r\n * Downloads an excel file containing fee data\r\n *\r\n * @param {string} locale - The language of the excel file to download\r\n * @param {string} fromDateIsoString - Include note-taker fee data from this date forward\r\n * @param {FeeDataExportType} feeDataExportType - The type of fee data export\r\n *\r\n * @returns {Promise} A Promise with a boolean representing the success of the operation\r\n */\r\n\r\n async downloadFeeData(\r\n locale: string,\r\n fromDateIsoString: string,\r\n feeDataExportType: FeeDataExportType\r\n ): Promise {\r\n const endpointController = \"Download\";\r\n const enpointRoute = \"feedata\";\r\n const paramName_1 = \"locale\";\r\n const paramValue_1 = locale;\r\n const paramName_2 = \"fromDate\";\r\n const paramValue_2 = fromDateIsoString;\r\n const paramName_3 = \"feeDataExportType\";\r\n const paramValue_3 = feeDataExportType;\r\n const queryString = `${paramName_1}=${paramValue_1}&${paramName_2}=${paramValue_2}&${paramName_3}=${paramValue_3}`;\r\n const url = `${this.baseApiUrl}api/${endpointController}/${enpointRoute}?${queryString}`;\r\n\r\n return await this.fetch(url);\r\n }\r\n\r\n /**\r\n * Downloads a pdf file containing invoice data\r\n *\r\n * @param {string} invoiceNo - The invoice number of the pdf file to download\r\n *\r\n * @returns {Promise} A Promise with a boolean representing the success of the operation\r\n */\r\n async downloadInvoice(invoiceNo: string): Promise {\r\n const endpointController = \"Download\";\r\n const enpointRoute = \"invoice\";\r\n const paramName = \"invoiceNo\";\r\n const paramValue = invoiceNo;\r\n const queryString = `${paramName}=${paramValue}`;\r\n const url = `${this.baseApiUrl}api/${endpointController}/${enpointRoute}?${queryString}`;\r\n\r\n return await this.fetch(url);\r\n }\r\n}\r\n\r\nexport default new DownloadService();\r\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}","\r\nimport { PropType } from \"@vue/runtime-core\";\r\nimport { Options, Vue } from \"vue-class-component\";\r\n\r\n@Options({\r\n props: {\r\n /**\r\n * If the accordion is shown at start\r\n */\r\n expanded: {\r\n type: Boolean as PropType,\r\n required: false,\r\n default: false,\r\n },\r\n },\r\n data: () => ({\r\n /**\r\n * If the accordion is expanded at the moment\r\n */\r\n _expanded: false,\r\n }),\r\n methods: {\r\n /**\r\n * Gets called when the student clicks on the accordion header\r\n */\r\n toggle() {\r\n this._expanded = !this._expanded;\r\n },\r\n },\r\n created() {\r\n this._expanded = this.expanded;\r\n },\r\n})\r\nexport default class Accordion extends Vue {}\r\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:\\\\Users\\\\fr5673mo\\\\Documents\\\\git.lu.se\\\\.net\\\\student-portal\\\\student-portal-web\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"sourceRoot":""}