{"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":""}