1import{s as b,i as A,a as P}from"./exams-CAjXN8MI.js";import{L as R}from"./Loader-BfmJBKJN.js";import{d as D,u as F,r as d,au as H,b as u,g as I,f as r,m as y,t as f,F as k,n as E,aA as M,p as w,v as O,y as V,x as c,_ as Y}from"./index-Ckf4QHfO.js";const z={class:"slot-content content-container"},G={key:0},J={class:"card-header"},K=["src"],U={class:"card-body"},Q=["checked","onChange","name"],W={class:"question"},X={class:"w-100 d-flex justify-content-end"},Z=["disabled"],q=D({__name:"TakeExam",setup(ee){const p=M(),C=O(),m=F(),g=d(!0);d(null);const e=d(null),j=d(["A","B","C","D","E","F","G","H","I","J","K"]),_=d(!0),h=d(!1);function N(a,t,s){const n=s.target,l=e.value?.exam_object[a];l&&(n.checked?l.user_answer=t:l.user_answer=null,e.value.exam_object[a].choices.forEach((o,i)=>{if(i!==t){const v=document.getElementsByName(`question-${a}`);v[i]instanceof HTMLInputElement&&(v[i].checked=!1)}}),B(a,t,s))}async function B(a,t,s){const l=s.target.checked,o=e.value?.exam_object[a];o&&(l?o.user_answer=t:o.user_answer=null,document.getElementsByName(`question-${a}`).forEach((v,T)=>{T!==t&&v instanceof HTMLInputElement&&(v.checked=!1)})),x(),S()}async function L(){_.value=!0;const a=p.params.id;a&&m.user&&await P(a,m.user?.id).then(t=>{e.value=t.data}),_.value=!1,x()}function x(){e.value&&(g.value=e.value.exam_object.filter(a=>a.user_answer==null).length>0)}async function S(){const a={exam_id:p.params.id,user_id:m.user?.id,user_exam_object:e.value?.exam_object,type:e.value?.type,score:null,is_done:!1,status:null};await b(a).then(()=>{})}async function $(){h.value=!0;let a=0;e.value?.exam_object.forEach(n=>{const l=String(n.c_id).charAt(1);n.user_answer===Number(l)&&(a=a+n.point)});const t=a>=Math.floor((e.value?.total_items??0)*.8)?"passed":"failed",s={exam_id:p.params.id,user_id:m.user?.id,user_exam_object:e.value?.exam_object,score:a,type:e.value?.type,is_done:!0,status:t};await b(s).then(()=>{const n=`You have failed the ${e.value?.exam_name}. Passing rate is 80% but dont worry you can retake the exam anytime.`,l=`Congratulations! You have passed the ${e.value?.exam_name}.`;let o;e.value?.type=="va_1"?o="Please schedule your online verbal assessment to proceed intermediate level":e.value?.type=="va_2"&&(o="Please schedule your online verbal assessment to proceed to advance level"),w.error(n,{position:w.POSITION.TOP_CENTER,autoClose:1e4}),A({user_id:m.user?.id,type:"exam",message:{status:t,title:"Exam Result",message:t=="passed"?l+" "+o:n,exam_id:e.value?.id,score:a,exam_type:e.value?.type,has_button:t=="passed"&&e.value?.type!="reg"}})}),C.push("/exams"),h.value=!1}return H(async()=>{L()}),(a,t)=>(c(),u("div",null,[I(R,{isLoading:_.value,label:"Exam"},null,8,["isLoading"]),r("div",z,[e.value&&!_.value?(c(),u("h4",G,f(e.value.exam_name)+" - "+f(e.value?.total_items)+" Items ",1)):y("",!0),(c(!0),u(k,null,E(e.value?.exam_object,(s,n)=>(c(),u("div",{class:"card mt-3",key:n},[r("div",J,[s.img_link?(c(),u("img",{key:0,class:"question-img",src:s.img_link,alt:"question image"},null,8,K)):y("",!0),r("p",{class:V(s.user_answer!=null?"text-default":"text-danger")},f(`${n+1}. ${s.question} - ${s.point} point`),3)]),r("div",U,[(c(!0),u(k,null,E(s.choices,(l,o)=>(c(),u("div",{key:o,class:"question-container"},[r("input",{type:"checkbox",checked:s.user_answer===o,onChange:i=>N(n,o,i),name:`question-${n}`,autocomplete:"off"},null,40,Q),r("div",W,f(j.value[o])+". "+f(l),1)]))),128))])]))),128))]),r("div",X,[_.value?y("",!0):(c(),u("button",{key:0,onClick:$,disabled:g.value||h.value,class:"btn btn-dark mt-3"}," Submit ",8,Z))])]))}}),ne=Y(q,[["__scopeId","data-v-0c931298"]]);export{ne as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.