1import"./dayjs.min.8ad2b25e.js";import{P as U}from"./index.24e5083e.js";import{R as H}from"./index.5c210d20.js";import{B as K}from"./index.9690c506.js";import{I as z}from"./index.d7d232b0.js";import{B as W}from"./index.06138237.js";import{C as G}from"./index.eb25b46e.js";import{M as X}from"./Modal.d3ed0e5c.js";import{S as Y}from"./ScreenLoader.c61d3167.js";import{b as Z,u as $}from"./vue-router.esm-bundler.bbfbd3ad.js";import"./useHelpers.db2515bc.js";import{f as ee,s as te,e as R}from"./index.9406abbb.js";import{u as se}from"./tryout.b82eb800.js";import{_ as oe,p as ne,v as ae,D as y,u as re,q as le,ak as ie,c as p,j as q,w as v,b as C,ae as ce,s as D,r as m,o as d,d as a,e as f,t as V,g as E,F as Q,h as J,n as N,b9 as de,b6 as ue}from"./_plugin-vue_export-helper.894c23a4.js";import"./_commonjsHelpers.87174ba5.js";import"./runtime-dom.esm-bundler.6a3a7b95.js";import"./iconify.ca3034a7.js";import"./transition.27a73bf4.js";const ge={components:{ProgressBar:U,ScreenLoader:Y,Modal:X,Radio:H,Button:K,Icon:z,Card:G,Badge:W},setup(){const o=ce("$swal"),u=Z(),O=$(),r=ee();te(r),se();const _=ne(null),e=ae({page:1,answer:null,countdown:0,selectedQuestion:{},questions:[],itemsPerPage:5,currentPage:1,detail:null,isLoading:!0,isLoadingScreen:!1,isRedirection:!1,showValidation:!1}),k=()=>{if(!h.value){e.showValidation=!0;return}e.currentPage<x.value&&(e.showValidation=!1,e.currentPage++)},A=()=>{e.currentPage>1&&e.currentPage--},x=y(()=>Math.ceil(e.questions.length/e.itemsPerPage)),I=y(()=>{const t=(e.currentPage-1)*e.itemsPerPage,n=t+e.itemsPerPage;return e.questions.slice(t,n)}),B=()=>{w()},L=async()=>{try{console.log("Starting to fetch questions...");const t=localStorage.getItem("epps-detail-log")?JSON.parse(localStorage.getItem("epps-detail-log")):null;console.log("Local data:",t);const n=localStorage.getItem("epps-answer-log")?JSON.parse(localStorage.getItem("epps-answer-log")):[];console.log("Making API call...");const s=await R.get("/v1/epps-questions",{});if((s==null?void 0:s.code)===200)console.log("Questions data:",s.data.questions),e.questions=s.data.questions.map(l=>{const P=n.find(g=>g.id===l.id),c=[{id:"0",text:l.statementA},{id:"1",text:l.statementB}];return{id:l.id,answers:c,selectedAnswer:P?Number(P.selectedAnswer):null,dimensionA:l.dimensionA,dimensionB:l.dimensionB}}),t||localStorage.setItem("epps-detail-log",JSON.stringify({id:u.params.id})),e.isLoading=!1,T();else throw new Error("Failed to fetch questions")}catch(t){console.error("Error loading questions:",t),e.questions=[],e.isLoading=!1,o.fire({icon:"error",title:"Error",text:"Failed to load questions. Please try again later."})}};re(()=>e.questions,t=>{const n=t.filter(s=>s.selectedAnswer!==null).map(s=>({id:s.id,selectedAnswer:s.selectedAnswer}));localStorage.setItem("epps-answer-log",JSON.stringify(n))},{deep:!0});const S=y(()=>{const t=e.questions.filter(s=>s.selectedAnswer!==null),n=e.questions.length?t.length/e.questions.length*100:0;return parseInt(n)}),T=()=>{try{console.log("Starting countdown...");const t=localStorage.getItem("epps-detail-log")?JSON.parse(localStorage.getItem("epps-detail-log")):null;console.log("Local data:",t);let n;if(t&&t.startTime)n=new Date(t.startTime);else{n=new Date;const g={id:u.params.id,startTime:n.toISOString()};localStorage.setItem("epps-detail-log",JSON.stringify(g))}const s=60,l=new Date(n.getTime()+s*6e4),P=new Date,c=l.getTime()-P.getTime();if(console.log("Start time:",n),console.log("End time:",l),console.log("Remaining time:",c),!c||c<=0){console.log("Setting fresh timer...");const g=new Date,F={id:u.params.id,startTime:g.toISOString()};localStorage.setItem("epps-detail-log",JSON.stringify(F)),e.countdown=s*60*1e3}else console.log("Using remaining time:",c),e.countdown=c;e.countdown<6e4&&(e.countdown=s*60*1e3),console.log("Final countdown value:",e.countdown),D(()=>{_.value?(console.log("Starting countdown with value:",e.countdown),_.value.start()):console.warn("Countdown ref not found")})}catch(t){console.error("Error in startCountdown:",t),e.countdown=60*60*1e3,D(()=>{_.value&&_.value.start()})}},j=()=>{o.fire({title:"Waktu Habis!",icon:"warning",confirmButtonText:"Ok",confirmButtonColor:"#ff0000",allowOutsideClick:!1,allowEscapeKey:!1}).then(t=>{t.isConfirmed&&w()})},i=t=>{const n={};return Object.entries(t).forEach(([s,l])=>{n[s]=l<10?`0${l}`:String(l)}
1),n};le(()=>{const t=localStorage.getItem("epps-detail-log")?JSON.parse(localStorage.getItem("epps-detail-log")):null;t&&t.id!==u.params.id&&(localStorage.removeItem("epps-detail-log"),localStorage.removeItem("epps-answer-log")),L()});const w=async(t=!0)=>{e.isLoadingScreen=!0,e.isRedirection=!0;const s={answers:e.questions.map(c=>{let g="N";return c.selectedAnswer===0&&(g="A"),c.selectedAnswer===1&&(g="B"),`${c.id}:${g}`}).join(",")};console.log(s);const l="/v1/save_answers";(await R.post(l,s,null,"default")).code===200?(e.isLoadingScreen=!1,O.push("/hasil-simulasi-epps")):e.isLoadingScreen=!1},h=y(()=>{const t=(e.currentPage-1)*e.itemsPerPage,n=t+e.itemsPerPage;return e.questions.slice(t,n).every(l=>l.selectedAnswer!==null)}),b=y(()=>e.questions.every(t=>t.selectedAnswer!==null));return{progress:S,finish:B,nextPage:k,previousPage:A,totalPages:x,paginatedQuestions:I,isCurrentPageComplete:h,allQuestionsAnswered:b,refCountdown:_,transformSlotProps:i,onFinishCountdown:j,...ie(e)}}},M=o=>(de("data-v-602d4f0a"),o=o(),ue(),o),me={class:"flex flex-col gap-5"},pe={key:0,class:"flex flex-col items-center justify-center"},fe=M(()=>a("p",{class:"text-center dark:text-white"},"Loadings...",-1)),we=[fe],_e={class:"border-b text-gray-600 dark:text-white p-5 mb-2 flex flex-row justify-between items-center"},he=M(()=>a("p",{class:"font-bold"},"Tes epps",-1)),be={class:"flex items-center gap-4"},Se={class:"countdown"},Pe={class:"p-5"},ye={class:"flex gap-1 items-center"},ve={class:"p-5 flex items-center justify-center"},xe={key:0,class:"text-red-500 ml-1"},Ce={class:"flex flex-col w-full"},ke=["innerHTML"],Ae={class:"flex justify-between align-middle mt
1-4"},Ie={class:"flex flex-col"},Be={key:0,class:"text-red-500 text-sm mb-3"},Le={class:"flex gap-3"};function Te(o,u,O,r,_,e){const k=m("Icon"),A=m("vue-countdown"),x=m("client-only"),I=m("Badge"),B=m("ProgressBar"),L=m("Radio"),S=m("Button"),T=m("Card"),j=m("ScreenLoader");return d(),p("div",me,[o.isLoading?(d(),p("div",pe,we)):(d(),q(T,{key:1,bodyClass:"p-0"},{default:v(()=>[a("div",_e,[he,a("div",be,[f(x,null,{default:v(()=>[f(A,{ref:"refCountdown",time:o.countdown,"auto-start":!1,transform:r.transformSlotProps,onEnd:u[0]||(u[0]=i=>r.onFinishCountdown())},{default:v(({hours:i,minutes:w,seconds:h})=>[a("div",Se,[f(k,{icon:"ri:timer-line",class:"text-[#ff831f]"}),a("p",null,V(`${i} : ${w} : ${h}`),1)])]),_:1},8,["time","transform"])]),_:1}),f(I,{badgeClass:"bg-primary-500 text-primary-500 bg-opacity-[0.12] pill"},{default:v(()=>[E(" EPPS ")]),_:1})])]),a("div",Pe,[a("div",ye,[f(B,{class:"w-full",value:r.progress,barColor:"bg-success-500"},null,8,["value"]),a("span",null,V(r.progress)+"%",1)]),(d(!0),p(Q,null,J(r.paginatedQuestions,(i,w)=>(d(),p("div",{key:w},[a("div",{class:N(["flex flex-row p-3 border-b",{"border-red-300 bg-red-50":o.showValidation&&i.selectedAnswer===null}])},[a("div",ve,[a("strong",null,V((o.currentPage-1)*o.itemsPerPage+w+1)+".",1),o.showValidation&&i.selectedAnswer===null?(d(),p("span",xe,"*")):C("",!0)]),a("div",Ce,[(d(!0),p(Q,null,J(i.answers,(h,b)=>(d(),p("label",{class:N(["flex items-center p-3 cursor-pointer",{"bg-gray-100":i.selectedAnswer===b}]),key:b},[f(L,{modelValue:i.selectedAnswer,"onUpdate:modelValue":t=>i.selectedAnswer=t,name:`question_${i.id}`,class:"mr-2",value:b},null,8,["modelValue","onUpdate:modelValue","name","value"]),a("span",{class:N(["text-base dark:text-white",{"font-bold dark:!text-gray-900":i.selectedAnswer===b}]),innerHTML:h.text},null,10,ke)],2))),128))])],2)]))),128)),a("div",Ae,[a("div",Ie,[o.showValidation&&!r.isCurrentPageComplete?(d(),p("div",Be," * Mohon jawab semua pertanyaan sebelum melanjutkan ke halaman berikutnya ")):C("",!0),a("div",Le,[f(S,{text:"Sebelumnya",icon:"ep:right",iconPosition:"right",iconClass:"text-white text-lg",btnClass:o.currentPage===1?"btn-secondary rounded-[999px] w-[160px]":"btn-primary-blue rounded-[999px] w-[160px]",onClick:r.previousPage,disabled:o.currentPage===1},null,8,["btnClass","onClick","disabled"]),f(S,{text:"Selanjutnya",icon:"ep:right",iconPosition:"right",iconClass:"text-white text-lg",btnClass:[o.currentPage===r.totalPages?"btn-secondary rounded-[999px] w-[160px]":"btn-primary-blue rounded-[999px] w-[160px]",o.showValidation&&!r.isCurrentPageComplete?"opacity-70":""],onClick:u[1]||(u[1]=i=>r.nextPage()),disabled:o.currentPage===r.totalPages},null,8,["btnClass","disabled"])])]),a("div",null,[o.currentPage===r.totalPages?(d(),q(S,{key:0,btnClass:"btn-warning rounded-[999px] ml-auto",onClick:r.finish,disabled:!r.allQuestionsAnswered,title:r.allQuestionsAnswered?"":"Mohon jawab semua pertanyaan terlebih dahulu"},{default:v(()=>[E(" Kirim Jawaban ")]),_:1},8,["onClick","disabled","title"])):C("",!0)])])])]),_:1})),o.isLoadingScreen?(d(),q(j,{key:2})):C("",!0)])}const Xe=oe(ge,[["render",Te],["__scopeId","data-v-602d4f0a"]]);export{Xe 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.