PageSourceSearch

https://phishscan.io/assets/CourseView-BwFtVoh_.js

js phishscan.io collected 2026-09-24 15:05:06 UTC 6,941 bytes, 1 lines download raw bytes

1import{u as L,G as z,C as A,c as o,a as s,d as D,e as $,t as e,E as m,F as y,p as v,f as k,m as E,r as f,k as S,P as O,o as l}from"./vendor-DcWJ6w6z.js";import{b as N,e as U}from"./index-DmBseAOX.js";const j={class:"min-h-screen py-8 px-4",style:{background:"#0f1a35"}},q={class:"max-w-2xl mx-auto"},G={class:"flex items-center gap-2 mb-5"},H={key:0,class:"rounded-2xl p-8 text-center text-sm",style:{background:"#1a1a2e",color:"#8899bb"}},M={key:1,class:"rounded-2xl p-8 text-center",style:{background:"#1a1a2e"}},Y={class:"text-sm font-semibold",style:{color:"#f0f4ff"}},J={class:"text-xs mt-2",style:{color:"#8899bb"}},K={key:2,class:"rounded-2xl p-6 md:p-8",style:{background:"#1a1a2e",border:"1px solid #2a3a5c"}},Q={class:"font-grotesk font-bold text-2xl mb-1",style:{color:"#f0f4ff"}},W={class:"text-[15px] mb-5",style:{color:"#cdd6f4"}},X={class:"text-[14px] font-medium mb-1",style:{color:"#f0f4ff"}},Z={class:"text-[13.5px]",style:{color:"#cdd6f4"}},ee={class:"text-[13px] mt-1",style:{color:"#8a9bbe"}},se={key:3,class:"rounded-2xl p-6 md:p-8",style:{background:"#1a1a2e",border:"1px solid #2a3a5c"}},te={class:"flex items-center gap-1.5 mb-4"},oe={class:"text-xs mb-2",style:{color:"#8a9bbe"}},le={class:"font-grotesk font-bold text-xl md:text-2xl mb-3",style:{color:"#f0f4ff"}},ae={class:"rounded-xl px-4 py-3 mb-5",style:{background:"rgba(37,99,235,.1)",border:"1px solid rgba(37,99,235,.3)"}},ne={class:"text-xs font-semibold mb-1",style:{color:"#93c5fd"}},ce={class:"text-[14.5px] leading-relaxed",style:{color:"#cdd6f4"}},re={class:"text-[15px] font-medium mb-2",style:{color:"#f0f4ff"}},de=["name","value","checked","onChange"],ue={class:"flex items-center gap-3"},ie=["disabled"],pe={key:4,class:"text-center text-xs mt-5",style:{color:"#6b7ba3"}},ye={__name:"CourseView",setup(be){const{locale:P}=L(),t=(r,u)=>P.value==="uk"?r:u,w=E(),b=f({lessons:[]}),i=O({}),p=f(0),_=f(!0),h=f(!1),g=f(!1),c=f(null),n=S(()=>b.value.lessons[p.value]||{body:[],questions:[]}),R=S(()=>(n.value.questions||[]).every((r,u)=>{var a;return((a=i[n.value.id])==null?void 0:a[u])!=null}));z({title:t("Курс про фішинг — PhishScan","Phishing course — PhishScan"),meta:[{name:"robots",content:"noindex, nofollow"}]});function V(r,u){i[n.value.id]||(i[n.value.id]=[]),i[n.value.id][r]=u}async function B(){if(p.value+1<b.value.lessons.length){p.value++,window.scrollTo(0,0);return}g.value=!0;try{const{data:r}=await N.post(`/learn/course/${encodeURIComponent(w.params.token)}/answers`,{answers:i});c.value=r,window.scrollTo(0,0)}catch{h.value=!0}finally{g.value=!1}}function F(){c.value=null,p.value=0;for(const r of Object.keys(i))delete i[r];window.scrollTo(0,0)}return A(async()=>{try{const{data:r}=await N.get(`/learn/course/${encodeURIComponent(w.params.token)}`);b.value=r}catch{h.value=!0}finally{_.value=!1}}),(r,u)=>(l(),o("div",j,[s("div",q,[s("div",G,[D(U,{size:22}),u[1]||(u[1]=s("span",{class:"font-grotesk font-bold text-white"},[$("Phish"),s("span",{class:"text-blue-400"},"Scan")],-1))]),_.value?(l(),o("div",H,e(t("Завантаження…","Loading…")),1)):h.value?(l(),o("div",M,[s("p",Y,e(t("Посилання недійсне","This link is not valid")),1),s("p",J,e(t("Попросіть у своїй компанії призначити курс ще раз.","Ask your company to assign the course again.")),1)])):c.value?(l(),o("div",K,[s("p",{class:"text-xs font-semibold uppercase tracking-wide mb-2",style:m({color:c.value.passed?"#34d399":"#fbbf24"})},e(c.value.passed?t("Курс пройдено","Course complete"):t("Майже","Almost there")),5),s("h1",Q,e(c.value.correct)+" / "+e(c.value.total)+" · "+e(c.value.score)+"% ",1),s("p",W,e(c.value.passed?t("Готово — ваша компанія побачить, що курс завершено.","Done — your company will see the course as finished."):t("Подивіться розбір нижче й пройдіть ще раз: мета не оцінка, а щоб ці листи більше не спрацьовували.","Read the explanations below and try again: the goal is not a grade but that these messages stop w
1orking on you.")),1),(l(!0),o(y,null,v(c.value.review,(a,d)=>(l(),o("div",{key:d,class:"rounded-xl px-4 py-3 mb-2",style:m(a.correct?"background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.25)":"background:rgba(220,38,38,.07);border:1px solid rgba(220,38,38,.25)")},[s("p",X,e(a.q),1),s("p",Z,[s("span",{style:m({color:a.correct?"#34d399":"#f87171"})},e(a.correct?t("Правильно","Correct"):t("Правильна відповідь","The right answer"))+": ",5),$(" "+e(a.answer),1)]),s("p",ee,e(a.why),1)],4))),128)),c.value.passed?k("",!0):(l(),o("button",{key:0,onClick:F,class:"mt-4 px-5 py-2.5 rounded-xl text-sm font-semibold",style:{background:"#2563eb",color:"#fff"}},e(t("Пройти ще раз","Try again")),1))])):(l(),o("div",se,[s("div",te,[(l(!0),o(y,null,v(b.value.lessons,(a,d)=>(l(),o("span",{key:a.id,class:"h-1 flex-1 rounded-full",style:m({background:d<=p.value?"#2563eb":"#2a3a5c"})},null,4))),128))]),s("p",oe,e(t("Урок","Lesson"))+" "+e(p.value+1)+" "+e(t("з","of"))+" "+e(b.value.lessons.length),1),s("h1",le,e(n.value.title),1),(l(!0),o(y,null,v(n.value.body,(a,d)=>(l(),o("p",{key:d,class:"text-[15px] leading-relaxed mb-3",style:{color:"#cdd6f4"}},e(a),1))),128)),s("div",ae,[s("p",ne,e(t("Запам’ятати","Remember")),1),s("p",ce,e(n.value.sign),1)]),(l(!0),o(y,null,v(n.value.questions,(a,d)=>(l(),o("div",{key:d,class:"mb-4"},[s("p",re,e(a.q),1),(l(!0),o(y,null,v(a.options,(I,x)=>{var C,T;return l(),o("label",{key:x,class:"flex items-start gap-2 py-2 px-3 rounded-lg mb-1.5 cursor-pointer text-[14.5px]",style:m(((C=i[n.value.id])==null?void 0:C[d])===x?"background:rgba(37,99,235,.16);border:1px solid rgba(37,99,235,.5);color:#f0f4ff":"background:#0f1626;border:1px solid #2a3a5c;color:#cdd6f4")},[s("input",{type:"radio",name:`${n.value.id}-${d}`,value:x,checked:((T=i[n.value.id])==null?void 0:T[d])===x,onChange:fe=>V(d,x),class:"mt-1"},null,40,de),s("span",null,e(I),1)],4)}),128))]))),128)),s("div",ue,[p.value>0?(l(),o("button",{key:0,onClick:u[0]||(u[0]=a=>p.value--),class:"text-sm",style:{color:"#8a9bbe"}},e(t("Назад","Back")),1)):k("",!0),s("button",{onClick:B,disabled:!R.value||g.value,class:"ml-auto px-5 py-2.5 rounded-xl text-sm font-semibold disabled:opacity-50",style:{background:"#2563eb",color:"#fff"}},e(p.value+1<b.value.lessons.length?t("Далі","Next"):g.value?t("Надсилаємо…","Sending…"):t("Завершити","Finish")),9,ie)])])),!_.value&&!h.value?(l(),o("p",pe,e(t("Курс призначено вашою компанією. Ваші відповіді бачить лише вона, у вигляді загального результату.","Your company assigned this course. Only they see your result, as a single score.")),1)):k("",!0)])]))}};export{ye 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.