{"version":3,"sources":["webpack:///./src/pages/employment/booking-interviews/index.vue?d7d9","webpack:///./src/pages/employment/booking-interviews/index.vue","webpack:///./src/pages/employment/booking-interviews/create.vue","webpack:///./src/pages/employment/booking-interviews/form.vue","webpack:///./src/pages/employment/booking-interviews/form.vue?28d9","webpack:///./src/pages/employment/booking-interviews/create.vue?a3cc","webpack:///./src/pages/employment/booking-interviews/edit.vue","webpack:///./src/pages/employment/booking-interviews/edit.vue?ab93","webpack:///./src/pages/employment/booking-interviews/interview-candidates.vue","webpack:///./src/pages/employment/booking-interviews/interview-candidates.vue?8212","webpack:///./src/pages/employment/booking-interviews/index.vue?ddcc","webpack:///./src/components/icons/IconMagnifyingGlass.vue","webpack:///./src/components/icons/IconMagnifyingGlass.vue?72df","webpack:///./src/pages/employment/booking-interviews/form.vue?bede","webpack:///./src/components/icons/IconTrash.vue","webpack:///./src/components/icons/IconTrash.vue?00c3","webpack:///./src/components/shared/search.vue","webpack:///./src/components/shared/search.vue?4250"],"names":["class","value","scope","to","role","filterByPartner","partnersList","item","index","id","key","en_company_name","onSearch","class-list","hasPermission","createModal","$apollo","queries","interviews","loading","titleHeaders","rows","first","hasItems","items","paginatorInfo","firstItem","job","position_name","field_of_job","interview_through","href","meeting_link","target","location","partner","interview_candidates","length","showStudentsList","group_name","title","editItem","deleteItem","setPage","name","mode","closeModal","onCreated","viewStudentProfile","editModal","onUpdated","selected-item","selectedItem","isShowCandidates","selectedInterviewGroupName","height","interview-id","selectedInterviewId","showFullModal","closeFullModal","student-id","studentId","$emit","ref","for","stroke-linecap","stroke-linejoin","d","submitForm","selectedTab","groupName","isValid","val","clearValidity","nameOfPositions","getNameOfPosition","msg","fieldOfJob","type","placeholder","interviewThrough","showLocation","showMeetingLink","meetingLink","showDropDown","search","selectedCandidates","fullname","removeCandidate","xmlns","fill","viewBox","stroke-width","stroke","filteredApprovedCandidates","is_selected","addCandidate","student_id","selectedCandidatesIsValid","selectedCandidatesIsValidMsg","goToNextTab","style","getStyle","start_date_and_time","end_date_and_time","scheduleInterviewDatesisValid","scheduleInterviewDatesMsg","goToPrevTab","isLoading","text","getLoadingBtnText","text-class-list","getBtnText","components","IconEye","emits","props","interviewDateTime","interviewEndDateTime","supervisor","formIsValid","error","approvedCount","approvedCandidates","this","setFormData","watch","newVal","fetchJobApplicationCandidates","computed","$store","getters","partner_id","filter","user","toLowerCase","includes","divElement","$refs","tab1","divHeight","clientHeight","apollo","query","parseInt","partnerId","fetchPolicy","methods","validateForm1","input","startDateIsNull","endDateIsNull","validateForm2","selectedNameOfPosition","find","obj","formData","job_id","interview_date_time","interview_end_date_time","selected_candidates","CREATE_MUTATION","UPDATE_MUTATION","mutate","mutation","variables","then","data","createInterview","message","updateInterview","catch","console","log","$swal","fire","icon","result","dismiss","map","email","jobId","is_approved","application","students","forEach","aItem","matchingBItem","bItem","findIndex","selectedUser","push","userId","splice","approvedIndex","job_title","render","__scopeId","InterviewForm","RolesFrom","src","getProfilePicture","entity","profile_picture_url","alt","getInterviewDateTime","Pagination","page","fetchStudentsList","GET_INTERVIEW_CANDIDATES_QUERY","interview_id","interviewId","getCandidatesListPerInterview","profilePictureUrl","date","IconPen","IconTrash","IconPlus","TableShimmer","Create","Edit","InterviewCandidates","StudentProfile","Search","isViewItem","modalTitle","searchText","error_code","$router","replace","alert","getPartnersList","filter_by_partner","refetch","Toast","mixin","toast","position","showConfirmButton","timer","timerProgressBar","didOpen","addEventListener","stopTimer","resumeTimer","showToast","showCancelButton","confirmButtonColor","cancelButtonColor","confirmButtonText","async","isConfirmed","DELETE_MUTATION","deleteInterview","crudName","permissions","permissionsArray","split","activePartners","script","classList","IconMagnifyingGlass"],"mappings":"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","file":"js/chunk-21d7bb60.14202ead.js","sourcesContent":["export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./index.vue?vue&type=style&index=0&id=d9e2d522&lang=scss&scoped=true\"","<template>\n <div class=\"h-full w-full flex flex-col\">\n <div class=\"h-full container mx-auto\">\n <div class=\"px-8 flex flex-col h-full w-full py-8\">\n <div class=\"w-full bg-white rounded-2xl border shadow-lg px-6 md:px-8 py-4 flex flex-col\">\n <div class=\"flex items-center text-sm font-light\">\n <router-link to=\"/dashboard\" class=\"opacity-50 hover:opacity-100\">Dashboard</router-link>\n <span class=\"mx-2\">/</span>\n <router-link to=\"/employment\" class=\"opacity-50 hover:opacity-100\">Employment</router-link>\n <span class=\"mx-2\">/</span>\n <span>Booking Interviews</span>\n </div>\n <div class=\"font-bold\">Booking Interviews</div>\n </div>\n <section class=\"mt-8 h-full w-full flex flex-col bg-white rounded-2xl border shadow-lg p-6 md:p-8\">\n <div class=\"flex justify-between flex-wrap\">\n <h1 class=\"text-base md:text-lg font-semibold mb-4\">Interviews List</h1>\n <div class=\"flex justify-start items-center flex-wrap\">\n <div v-if=\"role == 'admin' || role == 'superadmin'\"\n class=\"w-full sm:w-auto mb-4 border rounded-lg px-4 h-8 flex items-center\">\n <div class=\"text-sm mr-2\">Employer:</div>\n <select v-model=\"filterByPartner\" class=\"outline-none text-sm w-full sm:w-auto\">\n <option value=\"\">All Employers</option>\n <option :value=\"item.id\" v-for=\"(item, index) in partnersList\" :key=\"index\">{{\n item.en_company_name }}</option>\n </select>\n </div>\n <div class=\"w-full sm:w-auto ml-0 sm:ml-8 mb-4\">\n <search @on-search=\"onSearch\" class-list=\"px-4 h-8\"></search>\n </div>\n <div v-if=\"hasPermission('booking-interviews-create')\" @click.stop=\"createModal = true\"\n class=\"flex items-center bg-ternary hover:bg-white border-ternary border px-4 py-2 rounded-lg cursor-pointer text-white hover:text-ternary\">\n <icon-plus class=\"w-4 h-4\"></icon-plus>\n <span class=\"text-xs ml-2\">Book Interview</span>\n </div>\n </div>\n </div>\n <div class=\"flex flex-col\" v-if=\"$apollo.queries.interviews.loading\">\n <table-shimmer\n :titleHeaders=\"['#', 'Position', 'Field of Job', 'Interview Through', 'Candidates Count', 'Actions']\"\n :rows=\"first\"></table-shimmer>\n </div>\n <div v-else-if=\"!$apollo.queries.interviews.loading && !hasItems\"\n class=\"h-full flex justify-center items-center\">\n <h1 class=\"text-center text-xl font-medium\">No interviews found!</h1>\n </div>\n <div v-else class=\"flex flex-col\">\n <div class=\"flex flex-col overflow-x-auto\">\n <div class=\"inline-block min-w-full py-2\">\n <div class=\"overflow-x-auto\">\n <table class=\"min-w-full text-left text-sm font-light\">\n <thead class=\"border-b font-medium dark:border-neutral-500\">\n <tr>\n <th scope=\"col\" class=\"px-6 py-2 text-gray-400 w-8\">#</th>\n <th scope=\"col\" class=\"px-6 py-2 text-gray-400\">Position</th>\n <th scope=\"col\" class=\"px-6 py-2 text-gray-400\">Field of Job</th>\n <th scope=\"col\" class=\"px-6 py-2 text-gray-400\">Interview Type</th>\n <th v-if=\"role == 'admin' || role == 'superadmin'\" scope=\"col\"\n class=\"px-6 py-2 text-gray-400\">Partner</th>\n <th scope=\"col\" class=\"px-6 py-2 text-gray-400 text-center\">Candidates\n Count</th>\n <th v-if=\"role == 'partner'\" scope=\"col\"\n class=\"px-6 py-2 text-gray-400\">Actions</th>\n </tr>\n </thead>\n <tbody>\n <tr v-for=\"(item, index) in items\" :key=\"index\"\n class=\"border-b border-dashed dark:border-neutral-500\">\n <td class=\"whitespace-nowrap px-6 py-2 font-medium\">{{\n paginatorInfo.firstItem + index }}</td>\n <td class=\"whitespace-nowrap px-6 py-2\">{{ item.job.position_name }}\n </td>\n <td class=\"whitespace-nowrap px-6 py-2\">{{ item.field_of_job }}</td>\n <td class=\"whitespace-nowrap px-6 py-2\">\n <div class=\"flex flex-col\">\n <div>{{ item.interview_through }}</div>\n <div v-if=\"item.interview_through == 'virtual interview'\">\n <a :href=\"item.meeting_link\" target=\"_blank\"\n class=\"text-blue-600 hover:underline\">{{\n item.meeting_link }}</a>\n </div>\n <div v-else>\n {{ item.location }}\n </div>\n </div>\n </td>\n <td v-if=\"role == 'admin' || role == 'superadmin'\"\n class=\"whitespace-nowrap px-6 py-2\">{{\n item.job.partner.en_company_name }}</td>\n <td class=\"whitespace-nowrap px-6 py-2 text-center\">\n <span v-if=\"item.interview_candidates.length > 0\"\n @click.stop=\"showStudentsList(item.id, item.group_name)\"\n class=\"hover:underline hover:text-blue-600 cursor-pointer\"\n title=\"Click to view the students list\">{{\n item.interview_candidates.length }}</span>\n <span v-else>0</span>\n </td>\n <td v-if=\"role == 'partner'\" class=\"px-6 py-2\">\n <div class=\"flex\">\n <!-- <div v-if=\"hasPermission('booking-interviews-show')\" @click.stop=\"viewItem(item)\" class=\"bg-gray-100 hover:bg-blue-50 w-8 h-8 flex justify-center items-center rounded-lg group cursor-pointer mr-2\">\n <icon-eye class=\"w-4 h-4 transform group-hover:text-purple-pink group-hover:scale-110 hover:scale-110\"></icon-eye>\n </div> -->\n <div v-if=\"hasPermission('booking-interviews-edit')\"\n @click.stop=\"editItem(item)\"\n class=\"bg-gray-100 hover:bg-blue-50 w-8 h-8 flex justify-center items-center rounded-lg group cursor-pointer mr-2\">\n <icon-pen\n class=\"w-4 h-4 transform group-hover:text-purple-pink group-hover:scale-110 hover:scale-110\"></icon-pen>\n </div>\n <div v-if=\"hasPermission('booking-interviews-delete')\"\n @click.stop=\"deleteItem(item.id)\"\n class=\"bg-gray-100 hover:bg-blue-50 w-8 h-8 flex justify-center items-center rounded-lg group cursor-pointer\">\n <icon-trash\n class=\"w-4 h-4 transform group-hover:text-purple-pink group-hover:scale-110 hover:scale-110\"></icon-trash>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n <div class=\"mt-4\">\n <pagination :paginatorInfo=\"paginatorInfo\" :setPage=\"setPage\"></pagination>\n </div>\n </div>\n\n <transition name=\"fade\" mode=\"out-in\">\n <base-modal v-if=\"createModal\" :title=\"`Book Interview`\" @close=\"closeModal\">\n <create @created=\"onCreated\" @close=\"closeModal\" @view-student-profile=\"viewStudentProfile\">\n </create>\n </base-modal>\n </transition>\n\n <transition name=\"fade\" mode=\"out-in\">\n <base-modal v-if=\"editModal\" :title=\"`Edit Interview`\" @close=\"closeModal\">\n <edit @updated=\"onUpdated\" @close=\"closeModal\" :selected-item=\"selectedItem\"></edit>\n </base-modal>\n </transition>\n\n <!-- <transition name=\"fade\" mode=\"out-in\">\n <base-modal v-if=\"isViewItem\" :title=\"`View Job - #${selectedItem.id}`\" height=\"\" @close=\"closeModal\">\n <apply-job :item=\"selectedItem\" user-type=\"partner\" @close=\"closeModal\"></apply-job>\n </base-modal>\n </transition> -->\n\n <transition name=\"fade\" mode=\"out-in\">\n <base-modal v-if=\"isShowCandidates\"\n :title=\"`Interview - ${selectedInterviewGroupName} - Students List`\" height=\"\"\n @close=\"closeModal\">\n <interview-candidates :interview-id=\"selectedInterviewId\"\n @close=\"closeModal\"></interview-candidates>\n </base-modal>\n </transition>\n\n <transition name=\"fade\" mode=\"out-in\">\n <base-full-modal v-if=\"showFullModal\" title=\"Student Profile\" @close=\"closeFullModal\">\n <student-profile :student-id=\"studentId\"></student-profile>\n </base-full-modal>\n </transition>\n\n </section>\n </div>\n </div>\n </div>\n</template>\n\n<script>\n// import IconEye from \"../../../components/icons/IconEye.vue\";\nimport IconPen from \"../../../components/icons/IconPen.vue\";\nimport IconTrash from \"../../../components/icons/IconTrash.vue\";\nimport IconPlus from \"../../../components/icons/IconPlus.vue\";\nimport gql from 'graphql-tag';\nimport Pagination from \"../../../components/shared/pagination.vue\";\nimport TableShimmer from '../../../components/shared/TableShimmer.vue';\nimport Create from \"./create.vue\";\nimport Edit from \"./edit.vue\";\nimport InterviewCandidates from \"./interview-candidates.vue\";\nimport { formattedDateWithTimeAmPm } from \"../../../helpers/utils\";\nimport StudentProfile from \"../../student-profile/index.vue\";\nimport Search from \"../../../components/shared/search.vue\";\nexport default {\n name: \"booking-interviews-index\",\n components: {\n // IconEye,\n IconPen,\n IconTrash,\n IconPlus,\n Pagination,\n TableShimmer,\n Create,\n Edit,\n InterviewCandidates,\n StudentProfile,\n Search,\n },\n data() {\n return {\n interviews: [],\n first: 10,\n page: 1,\n createModal: false,\n editModal: false,\n isViewItem: false,\n modalTitle: \"\",\n selectedItem: null,\n error: null,\n isShowCandidates: false,\n selectedInterviewId: null,\n selectedInterviewGroupName: null,\n showFullModal: false,\n studentId: null,\n filterByPartner: \"\",\n partnersList: [],\n searchText: \"\",\n };\n },\n watch: {\n searchText() {\n this.page = 1;\n },\n interviews(newVal) {\n if (newVal.error) {\n if (newVal.error_code == 403) {\n this.$router.replace('/no-permission');\n } else if (newVal.error_code == 401) {\n this.$router.replace('/');\n } else {\n alert(newVal.message);\n this.$router.replace('/');\n }\n }\n },\n filterByPartner() {\n this.page = 1;\n },\n },\n computed: {\n items() {\n return this.interviews.data;\n },\n hasItems() {\n if (this.items && this.items.length > 0) {\n return true;\n } else {\n return false;\n }\n },\n paginatorInfo() {\n return this.interviews.paginatorInfo;\n },\n role() {\n return this.$store.getters.role;\n },\n },\n created() {\n if (this.role == 'admin' || this.role == 'superadmin') {\n this.getPartnersList();\n }\n },\n apollo: {\n interviews() {\n return {\n query: gql`query GetAllInterviews($first: Int!, $page: Int!, $filter_by_partner: Int, $search: String) {\n interviews(first: $first, page: $page, filter_by_partner: $filter_by_partner, search: $search) {\n error\n error_code\n message\n data {\n id\n job_id\n group_name\n field_of_job\n interview_through\n meeting_link\n location\n supervisor\n interview_candidates {\n start_date_and_time\n end_date_and_time\n user {\n id\n name\n email\n students {\n student_id\n }\n }\n }\n job {\n position_name\n partner {\n en_company_name\n }\n }\n }\n paginatorInfo {\n count\n currentPage\n firstItem\n hasMorePages\n lastItem\n lastPage\n perPage\n total\n }\n }\n }`,\n variables() {\n return {\n first: this.first,\n page: this.page,\n filter_by_partner: parseInt(this.filterByPartner),\n search: this.searchText,\n }\n },\n fetchPolicy: 'cache-and-network'\n }\n },\n },\n methods: {\n onSearch(searchText) {\n this.searchText = searchText;\n },\n getInterviewDateTime(date) {\n return formattedDateWithTimeAmPm(date);\n },\n setPage(page) {\n this.page = page;\n },\n closeModal() {\n this.createModal = false;\n this.editModal = false;\n this.isViewItem = false;\n this.modalTitle = \"\";\n this.selectedItem = null;\n this.isShowCandidates = false\n this.selectedInterviewId = null;\n this.selectedInterviewGroupName = null;\n },\n showToast(message = '') {\n this.$apollo.queries.interviews.refetch();\n const Toast = this.$swal.mixin({\n toast: true,\n position: 'top-end',\n showConfirmButton: false,\n timer: 1000,\n timerProgressBar: true,\n didOpen: (toast) => {\n toast.addEventListener('mouseenter', this.$swal.stopTimer)\n toast.addEventListener('mouseleave', this.$swal.resumeTimer)\n }\n })\n Toast.fire({\n icon: 'success',\n title: message\n })\n this.closeModal();\n },\n onCreated() {\n this.showToast('Interview Created Successfully');\n },\n editItem(item) {\n this.selectedItem = item;\n this.editModal = true;\n },\n async deleteItem(id) {\n\n this.$swal.fire({\n title: 'Are you sure?',\n text: \"Do you want to delete this interview? You won't be able to revert this!\",\n icon: 'warning',\n showCancelButton: true,\n confirmButtonColor: '#3085d6',\n cancelButtonColor: '#d33',\n confirmButtonText: 'Yes, delete it!'\n }).then(async (result) => {\n if (result.isConfirmed) {\n\n const DELETE_MUTATION = gql`\n mutation DeleteInterview($id: ID!) {\n deleteInterview(id: $id) {\n error\n message\n }\n }\n `;\n\n try {\n await this.$apollo.mutate({\n mutation: DELETE_MUTATION,\n variables: {\n id: id,\n }\n }).then((data) => {\n if (data.data.deleteInterview.error) {\n this.error = data.data.deleteInterview.message;\n }\n }).catch((error) => {\n this.error = error.message;\n })\n\n } catch (error) {\n this.error = error.message || \"Please try again.\";\n }\n\n if (this.error === null) {\n this.showToast('Your interview has been deleted.');\n } else {\n this.$swal.fire({\n icon: 'error',\n title: 'Oops...',\n text: this.error,\n }).then((result) => {\n if (result.value || result.dismiss) {\n this.error = null\n }\n })\n }\n\n }\n })\n\n },\n onUpdated() {\n this.showToast('Interview Updated Successfully');\n },\n hasPermission(crudName) {\n const permissions = this.$store.getters.permissions;\n const permissionsArray = permissions.split(\",\");\n if (permissionsArray.includes(crudName)) {\n return true;\n } else {\n return false;\n }\n },\n showStudentsList(id, groupName) {\n this.selectedInterviewId = id;\n this.selectedInterviewGroupName = groupName;\n this.isShowCandidates = true;\n },\n viewItem(item) {\n this.selectedItem = item;\n this.isViewItem = true;\n },\n viewStudentProfile(studentId) {\n this.studentId = studentId;\n this.showFullModal = true;\n },\n closeFullModal() {\n this.showFullModal = false;\n this.studentId = null;\n },\n async getPartnersList() {\n try {\n const { data } = await this.$apollo.query({\n query: gql`\n query GetActivePartnersList {\n activePartners {\n data {\n id\n en_company_name\n }\n }\n }\n `,\n fetchPolicy: 'network-only',\n });\n this.partnersList = data.activePartners.data;\n } catch (error) {\n console.log(error);\n }\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.fade-enter-active,\n.fade-leave-active {\n transition: opacity 0.3s ease;\n}\n\n.fade-enter-from,\n.fade-leave-to {\n opacity: 0;\n}\n</style>","<template>\n <div class=\"h-full w-full flex flex-col\">\n <InterviewForm mode=\"create\" @created=\"$emit('created')\" @close=\"$emit('close')\" @view-student-profile=\"viewStudentProfile\" />\n </div>\n</template>\n\n<script>\nimport InterviewForm from \"./form.vue\";\nexport default {\n name: \"interview-create\",\n emits: [\"created\", \"close\", \"view-student-profile\"],\n components: { InterviewForm, },\n methods: {\n viewStudentProfile(studentId) {\n this.$emit('view-student-profile', studentId);\n }\n },\n}\n</script>","<template>\n <form class=\"h-full w-full flex flex-col p-8\" @submit.prevent=\"submitForm\">\n <transition name=\"rsdfade\" mode=\"out-in\">\n <div key=\"1\" ref=\"tab1\" v-if=\"selectedTab == 1\" class=\"h-full w-full flex flex-col\">\n <div class=\"grid grid-cols-2 gap-6\">\n <div v-if=\"mode == 'edit'\" class=\"flex flex-col form-input\" :class=\"{ invalid: !groupName.isValid }\">\n <label for=\"groupName\">Name of Position</label>\n <div class=\"border rounded-lg py-2 px-2 cursor-not-allowed\">{{ selectedItem.job.position_name }}</div>\n </div>\n <div v-else class=\"flex flex-col form-input\" :class=\"{ invalid: !groupName.isValid }\">\n <label for=\"groupName\">Name of Position</label>\n <select v-model.trim=\"groupName.val\" @blur=\"clearValidity('groupName')\" class=\"ht-42\">\n <option value=\"\">Select a position</option>\n <option v-for=\"(item, index) in nameOfPositions\" :key=\"index\" :value=\"item.id\">{{ getNameOfPosition(item) }}</option>\n </select>\n <transition name=\"fade\" mode=\"out-in\">\n <p v-if=\"!groupName.isValid\" class=\"h-4 text-xs text-red-600\">\n {{ groupName.msg }}\n </p>\n </transition>\n </div>\n <div class=\"flex flex-col form-input\" :class=\"{ invalid: !fieldOfJob.isValid }\">\n <label for=\"fieldOfJob\">Select the field of job</label>\n <input\n type=\"text\"\n id=\"fieldOfJob\"\n v-model.trim=\"fieldOfJob.val\"\n placeholder=\"\"\n @blur=\"clearValidity('fieldOfJob')\"\n />\n <transition name=\"fade\" mode=\"out-in\">\n <p v-if=\"!fieldOfJob.isValid\" class=\"h-4 text-xs text-red-600\">\n {{ fieldOfJob.msg }}\n </p>\n </transition>\n </div>\n <!-- <div class=\"flex flex-col form-input\" :class=\"{ invalid: !interviewDateTime.isValid }\">\n <label for=\"interviewDateTime\">Set interview scheduling: Start Date & Time</label>\n <input\n type=\"datetime-local\"\n id=\"interviewDateTime\"\n v-model.trim=\"interviewDateTime.val\"\n placeholder=\"\"\n @blur=\"clearValidity('interviewDateTime')\"\n />\n <transition name=\"fade\" mode=\"out-in\">\n <p v-if=\"!interviewDateTime.isValid\" class=\"h-4 text-xs text-red-600\">\n {{ interviewDateTime.msg }}\n </p>\n </transition>\n </div>\n <div class=\"flex flex-col form-input\" :class=\"{ invalid: !interviewEndDateTime.isValid }\">\n <label for=\"interviewEndDateTime\">Set interview scheduling: End Date & Time</label>\n <input\n type=\"datetime-local\"\n id=\"interviewEndDateTime\"\n v-model.trim=\"interviewEndDateTime.val\"\n placeholder=\"\"\n @blur=\"clearValidity('interviewEndDateTime')\"\n />\n <transition name=\"fade\" mode=\"out-in\">\n <p v-if=\"!interviewEndDateTime.isValid\" class=\"h-4 text-xs text-red-600\">\n {{ interviewEndDateTime.msg }}\n </p>\n </transition>\n </div> -->\n <div class=\"flex flex-col form-input\" :class=\"{ invalid: !interviewThrough.isValid }\">\n <label for=\"interviewThrough\">Interview Type</label>\n <select class=\"ht-42\" id=\"interviewThrough\" v-model.trim=\"interviewThrough.val\" placeholder=\"\" @blur=\"clearValidity('interviewThrough')\">\n <option value=\"\">Select an option</option>\n <option value=\"in-person interview\">in-person interview</option>\n <option value=\"phone interview\">phone interview</option>\n <option value=\"virtual interview\">virtual interview</option>\n </select>\n <transition name=\"fade\" mode=\"out-in\">\n <p v-if=\"!interviewThrough.isValid\" class=\"h-4 text-xs text-red-600\">\n {{ interviewThrough.msg }}\n </p>\n </transition>\n </div>\n <div v-if=\"showLocation\" class=\"flex flex-col form-input\" :class=\"{ invalid: !location.isValid }\">\n <label for=\"location\">Interview Location</label>\n <input\n type=\"text\"\n id=\"location\"\n v-model.trim=\"location.val\"\n placeholder=\"\"\n @blur=\"clearValidity('location')\"\n />\n <transition name=\"fade\" mode=\"out-in\">\n <p v-if=\"!location.isValid\" class=\"h-4 text-xs text-red-600\">\n {{ location.msg }}\n </p>\n </transition>\n </div>\n <div v-if=\"showMeetingLink\" class=\"flex flex-col form-input\" :class=\"{ invalid: !meetingLink.isValid }\">\n <label for=\"meetingLink\">Meeting Link</label>\n <input\n type=\"text\"\n id=\"meetingLink\"\n v-model.trim=\"meetingLink.val\"\n placeholder=\"\"\n @blur=\"clearValidity('meetingLink')\"\n />\n <transition name=\"fade\" mode=\"out-in\">\n <p v-if=\"!meetingLink.isValid\" class=\"h-4 text-xs text-red-600\">\n {{ meetingLink.msg }}\n </p>\n </transition>\n </div>\n </div>\n <!-- <div class=\"mt-6 grid grid-cols-2 gap-6\">\n <div class=\"flex flex-col\" :class=\"{ invalid: !supervisor.isValid }\">\n <label for=\"supervisor\">Supervisor</label>\n <input\n type=\"text\"\n id=\"supervisor\"\n v-model.trim=\"supervisor.val\"\n placeholder=\"\"\n @blur=\"clearValidity('supervisor')\"\n />\n <transition name=\"fade\" mode=\"out-in\">\n <p v-if=\"!supervisor.isValid\" class=\"h-4 text-xs text-red-600\">\n {{ supervisor.msg }}\n </p>\n </transition>\n </div>\n </div> -->\n <div class=\"mt-6 flex flex-col\">\n <label for=\"select-students\">Select Candidates</label>\n <div class=\"flex flex-col border min-ht-44 rounded-t-md\" :class=\"showDropDown ? '' : 'rounded-b-md'\">\n <div>\n <input v-model=\"search\" type=\"text\" placeholder=\"Type to search\" class=\"w-full rounded-t-md rounded-b-md p-2 outline-none\" @focus=\"showDropDown = true\">\n </div>\n <div v-if=\"selectedCandidates.length > 0\" class=\"flex justify-start flex-wrap p-2 max-ht-224 overflow-y-auto\">\n <div v-for=\"(item, index) in selectedCandidates\" :key=\"index\" class=\"flex items-center bg-green-600 px-2 py-1 rounded-md mr-2 mb-2\">\n <div class=\"text-white text-sm\">{{ item.fullname }}</div>\n <div class=\"ml-2\">\n <svg @click.stop=\"removeCandidate(item.id)\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"4\" stroke=\"currentColor\" class=\"w-3 h-3 text-gray-600 hover:text-white cursor-pointer\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </div>\n </div>\n </div>\n </div>\n <div v-if=\"showDropDown\" class=\"h-56 border border-t-0 rounded-b-md overflow-y-auto\">\n <div v-for=\"(item, index) in filteredApprovedCandidates\" :key=\"index\" :class=\"item.is_selected ? 'bg-green-600 cursor-not-allowed' : ''\" class=\"px-4 py-2 hover:bg-gray-600 hover:text-white\" @click.stop=\"addCandidate(item)\">\n <div class=\"flex justify-between items-center\">\n <div>{{ item.fullname }} - {{ item.student_id }}</div>\n <div class=\"flex-shrink-0 flex justify-start items-center\">\n <div class=\"ml-4\">\n <icon-eye @click.stop=\"viewStudentProfile(item.student_id)\" class=\"w-4 h-4 transform hover:scale-110 cursor-pointer\"></icon-eye>\n </div>\n </div>\n </div>\n </div>\n </div>\n <transition name=\"fade\" mode=\"out-in\">\n <p v-if=\"!selectedCandidatesIsValid\" class=\"h-4 text-xs text-red-600\">\n {{ selectedCandidatesIsValidMsg }}\n </p>\n </transition>\n </div>\n <div class=\"w-full flex justify-end mt-8\">\n <div @click.stop=\"goToNextTab\" class=\"border-2 font-medium border-ternary text-white hover:text-ternary bg-ternary hover:bg-white rounded-lg px-5 py-2 uppercase text-sm cursor-pointer\">Next</div>\n </div>\n </div>\n <div key=\"2\" v-else class=\"h-full w-full flex flex-col\" :style=\"getStyle\">\n <div class=\"flex-auto flex flex-col overflow-y-auto\">\n <div class=\"text-gray-600 text-xl font-medium\">Schedule the interview</div>\n <div class=\"flex flex-col\">\n <div class=\"overflow-x-auto sm:-mx-6 lg:-mx-8\">\n <div class=\"inline-block min-w-full py-2 sm:px-6 lg:px-8\">\n <div class=\"overflow-hidden\">\n <table class=\"min-w-full border text-center text-sm font-light\">\n <thead class=\"border-b font-medium bg-primary text-white\">\n <tr>\n <th\n scope=\"col\"\n class=\"border-r px-6 py-4\">\n #\n </th>\n <th\n scope=\"col\"\n class=\"border-r px-6 py-4\">\n Student Name\n </th>\n <th\n scope=\"col\"\n class=\"border-r px-6 py-4\">\n Start Date & Time\n </th>\n <th scope=\"col\" class=\"px-6 py-4\">End Date & Time</th>\n </tr>\n </thead>\n <tbody>\n <tr v-for=\"(item, index) in selectedCandidates\" :key=\"index\" class=\"border-b\">\n <td class=\"whitespace-nowrap border-r px-6 py-4 font-medium\">\n {{ index + 1 }}\n </td>\n <td class=\"whitespace-nowrap border-r px-6 py-4\">\n {{ item.fullname }}\n </td>\n <td class=\"whitespace-nowrap border-r px-6 py-4\">\n <input\n type=\"datetime-local\"\n id=\"interviewDateTime\"\n v-model.trim=\"item.start_date_and_time\"\n class=\"outline-none\"\n @blur=\"clearValidity('interviewDateTime')\"\n />\n </td>\n <td class=\"whitespace-nowrap px-6 py-4\">\n <input\n type=\"datetime-local\"\n id=\"interviewDateTime\"\n v-model.trim=\"item.end_date_and_time\"\n class=\"outline-none\"\n @blur=\"clearValidity('interviewDateTime')\"\n />\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n </div>\n <transition name=\"fade\" mode=\"out-in\">\n <p v-if=\"!scheduleInterviewDatesisValid\" class=\"h-4 text-xs text-red-600\">\n {{ scheduleInterviewDatesMsg }}\n </p>\n </transition>\n </div>\n <div class=\"w-full flex justify-between items-center mt-8\">\n <div @click.stop=\"goToPrevTab\" class=\"border-2 font-medium border-ternary text-white hover:text-ternary bg-ternary hover:bg-white rounded-lg px-5 py-2 uppercase text-sm cursor-pointer\">Back</div>\n <div v-if=\"isLoading\" class=\"w-36 bg-gradient-to-r from-primary to-secondaryLight px-4 py-2 rounded-lg text-white flex items-center justify-center\">\n <base-spinner-with-text class-list=\"h-6 w-6 text-white capitalize\" :text=\"getLoadingBtnText\" text-class-list=\"text-white\"></base-spinner-with-text>\n </div>\n <button v-else class=\"w-36 bg-gradient-to-r from-primary hover:from-white to-secondaryLight hover:to-white px-4 py-2 rounded-lg text-white hover:text-secondaryLight border border-secondaryLight\">{{ getBtnText }}</button>\n </div>\n </div>\n </transition>\n </form>\n</template>\n\n<script>\nimport gql from 'graphql-tag';\nimport IconEye from \"../../../components/icons/IconEye.vue\";\nexport default {\n name: \"interview-form\",\n components: { IconEye, },\n emits: [\"created\", \"updated\", \"close\", \"view-student-profile\"],\n props: [\"mode\", \"selectedItem\", \"candidates\"],\n data() {\n return {\n selectedCandidates: [],\n selectedCandidatesIsValid: true,\n selectedCandidatesIsValidMsg: \"\",\n groupName: {\n val: \"\",\n isValid: true,\n msg: \"\",\n },\n interviewDateTime: {\n val: null,\n isValid: true,\n msg: \"\",\n },\n interviewEndDateTime: {\n val: null,\n isValid: true,\n msg: \"\",\n },\n fieldOfJob: {\n val: \"\",\n isValid: true,\n msg: \"\",\n },\n interviewThrough: {\n val: \"\",\n isValid: true,\n msg: \"\",\n },\n location: {\n val: \"\",\n isValid: true,\n msg: \"\",\n },\n meetingLink: {\n val: \"\",\n isValid: true,\n msg: \"\",\n },\n supervisor: {\n val: \"\",\n isValid: true,\n msg: \"\",\n },\n formIsValid: true,\n isLoading: false,\n error: null,\n approvedCount: null,\n nameOfPositions: [],\n approvedCandidates: [],\n search: \"\",\n showDropDown: false,\n selectedTab: 1,\n scheduleInterviewDatesisValid: true,\n scheduleInterviewDatesMsg: \"\",\n };\n },\n created() {\n if (this.mode == 'edit') {\n this.setFormData();\n }\n },\n watch: {\n 'groupName.val': function(newVal) {\n if (newVal) {\n this.fetchJobApplicationCandidates(newVal);\n }\n },\n },\n computed: {\n getBtnText() {\n if (this.mode == 'create') {\n return \"Create\";\n } else {\n return \"Update\";\n }\n },\n getLoadingBtnText() {\n if (this.mode == 'create') {\n return \"Creating...\";\n } else {\n return \"Updating...\";\n }\n },\n showMeetingLink() {\n if (this.interviewThrough.val == 'virtual interview') {\n return true;\n } else {\n return false;\n }\n },\n showLocation() {\n if (this.interviewThrough.val == 'in-person interview') {\n return true;\n } else {\n return false;\n }\n },\n partnerId() {\n return this.$store.getters.partner_id;\n },\n filteredApprovedCandidates() {\n return this.approvedCandidates.filter(user =>\n user.fullname.toLowerCase().includes(this.search.toLowerCase())\n );\n },\n getStyle() {\n const divElement = this.$refs.tab1;\n if (divElement) {\n const divHeight = divElement.clientHeight;\n return `height: ${divHeight}px;`;\n } else {\n return \"height: 594px;\";\n }\n },\n },\n apollo: {\n nameOfPositions() {\n return {\n query: gql`query GetNameOfPositions($partner_id: Int!) {\n nameOfPositions(partner_id: $partner_id) {\n id\n job_title\n position_name\n }\n }`,\n variables () {\n return {\n partner_id: parseInt(this.partnerId),\n }\n },\n fetchPolicy: 'cache-and-network'\n }\n },\n },\n methods: {\n goToNextTab() {\n if (this.selectedTab == 1) {\n this.validateForm1();\n if (!this.formIsValid) {\n return;\n }\n this.selectedTab = 2;\n }\n },\n goToPrevTab() {\n this.selectedTab = 1;\n },\n clearValidity(input) {\n this[input].isValid = true;\n this[input].msg = \"\";\n },\n validateForm1() {\n this.formIsValid = true;\n \n if (this.groupName.val === \"\") {\n this.groupName.isValid = false;\n this.groupName.msg = \"Group Name must not be empty.\";\n this.formIsValid = false;\n }\n\n if (this.interviewThrough.val === \"\") {\n this.interviewThrough.isValid = false;\n this.interviewThrough.msg = \"You must select an Interview Type.\";\n this.formIsValid = false;\n }\n\n if (this.selectedCandidates.length == 0) {\n this.selectedCandidatesIsValid = false;\n this.selectedCandidatesIsValidMsg = \"You must select atleast 1 candidate\";\n this.formIsValid = false;\n }\n \n \n },\n validateForm2() {\n this.formIsValid = true;\n this.scheduleInterviewDatesisValid = true;\n this.scheduleInterviewDatesMsg = \"\";\n for (const item of this.selectedCandidates) {\n const startDateIsNull = item.start_date_and_time === null;\n const endDateIsNull = item.end_date_and_time === null;\n if (startDateIsNull || endDateIsNull) {\n this.formIsValid = false;\n this.scheduleInterviewDatesisValid = false;\n this.scheduleInterviewDatesMsg = \"Please fill out all the dates\";\n break;\n }\n }\n },\n async submitForm() {\n\n this.validateForm2();\n if (!this.formIsValid) {\n return;\n }\n\n const selectedNameOfPosition = this.nameOfPositions.find(obj => obj.id == this.groupName.val);\n const groupName = selectedNameOfPosition.position_name;\n\n const formData = {\n job_id: parseInt(this.groupName.val),\n group_name: groupName,\n interview_date_time: this.interviewDateTime.val,\n interview_end_date_time: this.interviewEndDateTime.val,\n field_of_job: this.fieldOfJob.val,\n interview_through: this.interviewThrough.val,\n location: this.location.val,\n supervisor: this.supervisor.val,\n meeting_link: this.meetingLink.val,\n selected_candidates: this.selectedCandidates,\n };\n\n const CREATE_MUTATION = gql`\n mutation CreateInterview($input: CreateInterviewInput!) {\n createInterview(input: $input) {\n error\n message\n }\n }\n `;\n\n const UPDATE_MUTATION = gql`\n mutation UpdateInterview($id: ID!, $input: CreateInterviewInput!) {\n updateInterview(id: $id, input: $input) {\n error\n message\n }\n }\n `;\n\n this.isLoading = true;\n\n try {\n await this.$apollo.mutate({\n mutation: this.mode == 'create' ? CREATE_MUTATION : UPDATE_MUTATION,\n variables: {\n id: this.mode == 'edit' ? this.selectedItem.id : null,\n input: formData\n }\n }).then((data) => {\n if (this.mode == 'create') {\n if (data.data.createInterview.error) {\n this.error = data.data.createInterview.message;\n }\n } else {\n if (data.data.updateInterview.error) {\n this.error = data.data.updateInterview.message;\n }\n }\n }).catch((error) => {\n console.log(error)\n })\n\n } catch (error) {\n console.log(error);\n this.error = error.message || \"Failed to authenticate, try later.\";\n }\n\n if (this.error === null) {\n if (this.mode == 'create') {\n this.$emit('created');\n } else {\n this.$emit('updated');\n }\n } else {\n this.$swal.fire({\n icon: 'error',\n title: 'Oops...',\n text: this.error,\n }).then((result) => {\n if (result.value || result.dismiss) {\n this.$emit('close');\n }\n })\n }\n\n this.isLoading = false;\n\n },\n setFormData() {\n this.selectedCandidates = this.selectedItem.interview_candidates.map((item) => {\n return {\n id: parseInt(item.user.id),\n email: item.user.email,\n fullname: `${item.user.name}`,\n start_date_and_time: item.start_date_and_time,\n end_date_and_time: item.end_date_and_time,\n }\n });\n\n this.groupName.val = this.selectedItem.job_id;\n this.fieldOfJob.val = this.selectedItem.field_of_job;\n this.interviewDateTime.val = null;\n this.interviewEndDateTime.val = null;\n this.interviewThrough.val = this.selectedItem.interview_through;\n this.location.val = this.selectedItem.location;\n this.supervisor.val = this.selectedItem.supervisor;\n this.meetingLink.val = this.selectedItem.meeting_link;\n },\n async fetchJobApplicationCandidates(jobId) {\n \n try {\n const { data } = await this.$apollo.query({\n query: gql`\n query FetchJobApplicationCandidates($job_id: Int!, $is_approved: Boolean!) {\n fetchJobApplicationCandidates(job_id: $job_id, is_approved: $is_approved) {\n data {\n user {\n id\n name\n email\n students {\n student_id\n }\n }\n }\n }\n }\n `,\n variables: {\n job_id: parseInt(jobId),\n is_approved: true,\n },\n fetchPolicy: 'network-only',\n });\n\n this.approvedCandidates = data.fetchJobApplicationCandidates.data.map(application => {\n const user = application.user;\n return {\n id: parseInt(user.id),\n fullname: user.name,\n email: user.email,\n student_id: user.students.student_id,\n is_selected: false,\n };\n });\n\n if (this.mode == 'edit') {\n this.approvedCandidates.forEach(aItem => {\n const matchingBItem = this.selectedCandidates.find(bItem => bItem.id === aItem.id);\n\n if (matchingBItem) {\n aItem.is_selected = true;\n }\n });\n }\n\n } catch (error) {\n console.error(error);\n }\n \n },\n viewStudentProfile(studentId) {\n this.$emit('view-student-profile', studentId);\n },\n addCandidate(user) {\n\n const index = this.approvedCandidates.findIndex(item => item.id === user.id);\n\n if (index !== -1) {\n if (!this.approvedCandidates[index].is_selected) {\n const selectedUser = {\n id: user.id,\n email: user.email,\n fullname: user.fullname,\n start_date_and_time: null,\n end_date_and_time: null,\n };\n this.selectedCandidates.push(selectedUser);\n this.approvedCandidates[index].is_selected = true;\n\n this.selectedCandidatesIsValid = true;\n this.selectedCandidatesIsValidMsg = \"\";\n\n }\n } else {\n console.log('User not found in approvedCandidates');\n }\n },\n removeCandidate(userId) {\n const index = this.selectedCandidates.findIndex(item => item.id === userId);\n if (index !== -1) {\n this.selectedCandidates.splice(index, 1);\n const approvedIndex = this.approvedCandidates.findIndex(item => item.id === userId);\n if (approvedIndex !== -1) {\n this.approvedCandidates[approvedIndex].is_selected = false;\n } else {\n console.log('User not found in approvedCandidates');\n }\n } else {\n console.log('User not found in selectedCandidates');\n }\n },\n getNameOfPosition(item) {\n if (item.job_title != '' && item.position_name != '') {\n return `${item.job_title} - ${item.position_name}`;\n } else {\n return item.job_title != '' ? item.job_title : item.position_name;\n }\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\nlabel {\n @apply mb-1 block text-sm;\n}\n.form-input {\n input[type=\"text\"],\ninput[type=\"email\"],\ninput[type=\"number\"],\ninput[type=\"password\"],\ninput[type=\"date\"],\ninput[type=\"datetime-local\"],\nselect {\n @apply block w-full border rounded-lg py-2 px-2;\n}\ninput[type=\"text\"]:focus,\ninput[type=\"email\"]:focus,\ninput[type=\"number\"]:focus,\ninput[type=\"password\"]:focus,\ninput[type=\"date\"]:focus,\ninput[type=\"datetime-local\"]:focus,\nselect:focus {\n outline: none;\n border-color: #394867;\n box-shadow: 0 0 0 2px #394867;\n}\n}\n.invalid label {\n @apply text-red-600;\n}\n.invalid input,\n.invalid select {\n border: 1px solid red;\n}\ninput[type=\"checkbox\"] {\n @apply w-auto;\n}\n.fade-enter-active,\n.fade-leave-active {\n transition: all 0.5s ease;\n}\n.fade-enter-from,\n.fade-leave-to {\n opacity: 0;\n height: 0px;\n}\n.ht-42 {\n height: 42px;\n}\n.max-ht-224 {\n max-height: 224px;\n}\n.rsdfade-enter-active,\n.rsdfade-leave-active {\n transition: all 0.3s ease;\n}\n.rsdfade-enter-from,\n.rsdfade-leave-to {\n opacity: 0;\n}\n</style>","import { render } from \"./form.vue?vue&type=template&id=1b9115ec&scoped=true\"\nimport script from \"./form.vue?vue&type=script&lang=js\"\nexport * from \"./form.vue?vue&type=script&lang=js\"\n\nimport \"./form.vue?vue&type=style&index=0&id=1b9115ec&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-1b9115ec\"\n\nexport default script","import { render } from \"./create.vue?vue&type=template&id=7b035db1\"\nimport script from \"./create.vue?vue&type=script&lang=js\"\nexport * from \"./create.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","<template>\n <div class=\"h-full w-full flex flex-col\">\n <RolesFrom mode=\"edit\" :selected-item=\"selectedItem\" @close=\"$emit('close')\" @updated=\"$emit('updated')\" @view-student-profile=\"viewStudentProfile\" />\n </div>\n</template>\n\n<script>\nimport RolesFrom from \"./form.vue\";\nexport default {\n name: \"roles-edit\",\n emits: [\"updated\"],\n components: { RolesFrom, },\n props: [\"selectedItem\"],\n methods: {\n viewStudentProfile(studentId) {\n this.$emit('view-student-profile', studentId);\n }\n },\n}\n</script>","import { render } from \"./edit.vue?vue&type=template&id=17c57c79\"\nimport script from \"./edit.vue?vue&type=script&lang=js\"\nexport * from \"./edit.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","<template>\n <div class=\"flex flex-col px-8\">\n <div v-if=\"isLoading\" class=\"h-full flex flex-col justify-center items-center\">\n <base-spinner></base-spinner>\n </div>\n <div v-else-if=\"!isLoading && !hasItems\" class=\"h-full flex justify-center items-center\">\n <h1 class=\"text-center text-xl font-medium py-16\">No students found!</h1>\n </div>\n <div v-else class=\"flex flex-col\">\n <div class=\"flex flex-col overflow-x-auto\">\n <div class=\"inline-block min-w-full py-2\">\n <div class=\"overflow-x-auto\">\n <table class=\"min-w-full text-left text-sm font-light\">\n <thead class=\"border-b font-medium dark:border-neutral-500\">\n <tr>\n <th scope=\"col\" class=\"px-6 py-2 text-gray-400 w-8\">#</th>\n <th scope=\"col\" class=\"px-6 py-2 text-gray-400\">Student</th>\n <th scope=\"col\" class=\"px-6 py-2 text-gray-400\">Start Date & Time</th>\n <th scope=\"col\" class=\"px-6 py-2 text-gray-400\">End Date & Time</th>\n <th scope=\"col\" class=\"px-6 py-2 text-gray-400\">Student ID</th>\n <th scope=\"col\" class=\"px-6 py-2 text-gray-400\">Entity</th>\n </tr>\n </thead>\n <tbody>\n <tr v-for=\"(item, index) in items\" :key=\"index\" class=\"border-b border-dashed dark:border-neutral-500\">\n <td class=\"whitespace-nowrap px-6 py-2 font-medium\">{{ paginatorInfo.firstItem + index }}</td>\n <td class=\"whitespace-nowrap px-6 py-2\">\n <div class=\"flex items-center\">\n <div class=\"flex-shrink-0 mr-3\">\n <img class=\"h-12 w-12 rounded-lg object-cover cursor-pointer\" :src=\"getProfilePicture(item.user.students.student_id, item.user.students.entity, item.user.profile_picture_url)\" alt=\"\">\n </div>\n <div class=\"flex-grow flex flex-col mr-4\">\n <h1 class=\"text-sm font-semibold flex items-center\">\n <span class=\"text-heading\">{{ item.user.name }}</span>\n </h1>\n <p class=\"text-xs text-gray-400\">{{ item.user.email }}</p>\n </div>\n </div>\n </td>\n <td class=\"whitespace-nowrap px-6 py-2\">{{ getInterviewDateTime(item.start_date_and_time) }}</td>\n <td class=\"whitespace-nowrap px-6 py-2\">{{ getInterviewDateTime(item.end_date_and_time) }}</td>\n <td class=\"whitespace-nowrap px-6 py-2\">{{ item.user.students.student_id }}</td>\n <td class=\"whitespace-nowrap px-6 py-2\">{{ item.user.students.entity }}</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n <div class=\"mt-4\">\n <pagination\n :paginatorInfo=\"paginatorInfo\"\n :setPage=\"setPage\"\n ></pagination>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport gql from 'graphql-tag';\nimport Pagination from \"../../../components/shared/pagination.vue\";\nimport { formattedDateWithTimeAmPm } from \"../../../helpers/utils\";\nexport default {\n name: 'interview-candidates',\n props: [\"interviewId\"],\n components: {\n Pagination,\n },\n data() {\n return {\n isLoading: false,\n error: null,\n first: 10,\n page: 1,\n hasItems: false,\n items: [],\n paginatorInfo: [],\n };\n },\n created() {\n this.fetchStudentsList();\n },\n methods: {\n async fetchStudentsList() {\n \n this.isLoading = true;\n\n const GET_INTERVIEW_CANDIDATES_QUERY = gql`\n query GetCandidatesListPerInterview($first: Int!, $page: Int!, $interview_id: Int!) {\n getCandidatesListPerInterview(first: $first, page: $page, interview_id: $interview_id) {\n error\n error_code\n message\n data {\n start_date_and_time\n end_date_and_time\n user {\n id\n name\n email\n profile_picture_url\n students {\n student_id\n entity\n }\n }\n }\n paginatorInfo {\n count\n currentPage\n firstItem\n hasMorePages\n lastItem\n lastPage\n perPage\n total\n }\n }\n }\n `;\n\n try {\n await this.$apollo.query({\n query: GET_INTERVIEW_CANDIDATES_QUERY,\n fetchPolicy: 'network-only',\n variables: {\n first: this.first,\n page: this.page,\n interview_id: parseInt(this.interviewId),\n },\n }).then((data) => {\n if (data.data.getCandidatesListPerInterview.error) {\n this.error = data.data.getCandidatesListPerInterview.message;\n } else {\n this.items = data.data.getCandidatesListPerInterview.data;\n this.paginatorInfo = data.data.getCandidatesListPerInterview.paginatorInfo;\n this.hasItems = this.items.length > 0 ? true : false;\n }\n }).catch((error) => {\n this.error = error.message;\n })\n\n } catch (error) {\n this.error = error.message || \"Please try again.\";\n }\n\n this.isLoading = false;\n\n },\n getProfilePicture(studentId, entity, profilePictureUrl) {\n if (profilePictureUrl == '/storage/alumni-profile-pictures/default-avatar.jpg') {\n return `https://www.iat.ac.ae/sis/Integrations/Get_Student_Image/Q4tphjXBanCMiro8Kpfbi1QEU5qZb01uWtpkQlpfet8/${studentId}/${entity}`;\n } else {\n return process.env.VUE_APP_PUBLIC_URL + profilePictureUrl;\n }\n },\n setPage(page) {\n this.page = page;\n this.fetchStudentsList();\n },\n getInterviewDateTime(date) {\n if (date) {\n return formattedDateWithTimeAmPm(date);\n } else {\n return \"\";\n }\n },\n },\n}\n</script>","import { render } from \"./interview-candidates.vue?vue&type=template&id=c8ff115e\"\nimport script from \"./interview-candidates.vue?vue&type=script&lang=js\"\nexport * from \"./interview-candidates.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script","import { render } from \"./index.vue?vue&type=template&id=d9e2d522&scoped=true\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\nimport \"./index.vue?vue&type=style&index=0&id=d9e2d522&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-d9e2d522\"\n\nexport default script","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 5.196a7.5 7.5 0 0010.607 10.607z\" />\n </svg>\n</template>","import { render } from \"./IconMagnifyingGlass.vue?vue&type=template&id=3f325d64\"\nconst script = {}\nscript.render = render\n\nexport default script","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./form.vue?vue&type=style&index=0&id=1b9115ec&lang=scss&scoped=true\"","<template>\n <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" class=\"\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0\" />\n </svg>\n</template>","import { render } from \"./IconTrash.vue?vue&type=template&id=782e99e5\"\nconst script = {}\nscript.render = render\n\nexport default script","<template>\n <div class=\"w-full border rounded-lg flex items-center\" :class=\"classList\">\n <icon-magnifying-glass class=\"h-4 w-4 text-gray-500 mr-2\"></icon-magnifying-glass>\n <input type=\"text\" v-model=\"searchText\" placeholder=\"search\" class=\"w-full outline-none text-sm text-gray-600\">\n </div>\n</template>\n\n<script>\nimport IconMagnifyingGlass from \"../icons/IconMagnifyingGlass.vue\";\nexport default {\n name: \"search\",\n props: [\"classList\"],\n emits: [\"on-search\"],\n components: { IconMagnifyingGlass, },\n data() {\n return {\n searchText: \"\",\n };\n },\n watch: {\n searchText(newVal) {\n this.$emit('on-search', newVal);\n },\n },\n methods: {\n clearInput() {\n this.searchText = \"\";\n },\n },\n}\n</script>","import { render } from \"./search.vue?vue&type=template&id=78872e51\"\nimport script from \"./search.vue?vue&type=script&lang=js\"\nexport * from \"./search.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script"],"sourceRoot":""}