PageSourceSearch

https://xquare.net/_nuxt/BZ9rP5Qq.js

js xquare.net collected 2026-10-02 01:07:56 UTC 14,351 bytes, 1 lines download raw bytes

1import{d as G,a as J,u as K,D as Q,E as X,o as Z,H as tt,I as et,w as st,h as e,c as n,e as t,f as I,g as h,t as a,n as B,i as m,F as _,r as v,m as D,j as x,x as k,_ as at,y as j,M as ot,b as r,k as M,R as Y}from"./aDqk-s0q.js";import{_ as rt}from"./CS22o1O1.js";import{u as nt,D as U,a as F}from"./Bi0tlp5E.js";import{u as it}from"./QDoaQyN-.js";const lt={key:0,class:"max-w-2xl mx-auto py-16 text-center"},dt={key:1,class:"max-w-7xl mx-auto"},ct={class:"sticky top-16 z-30 flex items-center gap-2 py-3 mb-6 bg-surface/90 backdrop-blur-md border-b border-outline-variant/10 text-sm"},ut={class:"font-semibold text-on-surface truncate"},mt={class:"mb-6 space-y-2"},pt={class:"text-xl font-black text-on-surface leading-tight"},xt={class:"grid grid-cols-1 lg:grid-cols-12 gap-8"},ft={class:"lg:col-span-8 space-y-8"},_t={class:"absolute top-4 right-4 flex items-center gap-1.5 bg-surface-container-lowest/90 backdrop-blur px-3 py-1.5 rounded-full text-xs font-bold text-on-surface-variant"},bt={class:"material-symbols-outlined icon-sm","aria-hidden":"true"},ht={class:"absolute top-4 left-4 bg-surface-container-lowest/95 backdrop-blur px-3 py-1 rounded-full text-xs font-extrabold uppercase text-primary tracking-widest"},vt={class:"absolute bottom-0 left-0 right-0 flex items-center justify-between px-6 py-4"},yt={class:"text-white font-bold text-lg drop-shadow"},gt={class:"bg-surface-container-lowest p-6 md:p-8 rounded-2xl border border-outline-variant/20"},kt={class:"text-on-surface-variant leading-relaxed"},wt={class:"bg-surface-container-lowest p-6 md:p-8 rounded-2xl border border-outline-variant/20"},Ct={class:"grid grid-cols-1 sm:grid-cols-2 gap-3"},$t={class:"bg-surface-container-lowest rounded-2xl border border-outline-variant/20 overflow-hidden"},Et={class:"p-6 md:p-8 border-b border-outline-variant/10"},St={class:"text-sm text-on-surface-variant mt-1"},It=["aria-expanded","aria-controls","onClick"],Bt={class:"font-bold text-sm"},Dt=["id","aria-label"],jt={class:"material-symbols-outlined icon-lg text-on-surface-variant flex-shrink-0","aria-hidden":"true"},qt={class:"flex-1 text-sm text-on-surface"},Lt={key:0,class:"material-symbols-outlined icon-sm text-primary","aria-label":"Completed"},Nt={key:1,class:"text-xs text-outline flex-shrink-0"},Rt={key:1,class:"flex items-center gap-3 px-6 py-3 bg-surface-container-low/40"},Vt={class:"material-symbols-outlined icon-lg text-on-surface-variant flex-shrink-0","aria-hidden":"true"},At={class:"flex-1 text-sm text-on-surface"},zt={key:0,class:"material-symbols-outlined icon-sm text-primary","aria-label":"Completed"},Mt={key:1,class:"text-xs text-outline flex-shrink-0"},Yt=["aria-expanded","aria-controls","onClick"],Ut={class:"font-bold text-sm"},Ft=["id","aria-label"],Ht={class:"material-symbols-outlined icon-lg text-on-surface-variant flex-shrink-0","aria-hidden":"true"},Pt={class:"flex-1 text-sm text-on-surface"},Tt={class:"text-xs text-outline flex-shrink-0"},Ot={key:2,class:"px-4 py-3 text-center text-sm text-on-surface-variant"},Wt={class:"bg-surface-container-lowest p-5 rounded-2xl border border-outline-variant/20 flex items-start gap-3"},Gt={class:"text-sm text-on-surface-variant"},Jt={class:"lg:col-span-4 space-y-5"},Kt={class:"bg-surface-container-lowest p-6 rounded-2xl border border-outline-variant/20 lg:sticky lg:top-28 space-y-5"},Qt={class:"text-3xl font-black text-on-surface"},Xt={key:0,class:"text-sm text-primary font-medium mt-1 flex items-center gap-1.5"},Zt={key:1,class:"text-sm text-on-surface-variant mt-1 flex items-center gap-1.5"},te=["disabled"],ee={key:0,class:"material-symbols-outlined animate-spin","aria-hidden":"true"},se={key:1,class:"material-symbols-outlined","aria-hidden":"true"},ae={key:2,class:"text-xs text-error text-center mt-1"},oe={class:"pt-4 border-t border-outline-variant/20 space-y-3"},re={class:"flex items-center gap-2.5 text-sm"},ne={class:"material-symbols-outlined icon-md text-primary flex-shrink-0","aria-hidden":"true"},ie={class:"text-on-surface-variant"},le={class:"flex items-center gap-2.5 text-sm"},de={class:"text-on-surface-variant"},ce={class:"flex items-center gap-2.5 text-sm"},ue={class:"text-on-surface-variant"},me={class:"flex items-center gap-2.5 text-sm"},pe={class:"text-on-surface-variant"},xe={class:"bg-surface-container-lowest p-6 rounded-2xl border border-outline-variant/20"},fe={class:"flex items-center gap-3 mb-3"},_e={class:"w-12 h-12 rounded-full bg-primary/10 flex items-center justify-center text-primary font-black text-lg flex-shrink-0 overflow-hidden"},be=["src","alt"],he={key:1},ve={class:"min-w-0"},ye={class:"font-bold text-sm truncate"},ge={class:"text-xs text-on-surface-variant"},ke={key:0,class:"text-sm text-on-surface-variant leading-relaxed"},Ie=G({__name:"[slug]",async setup(we){let q,L;const N=J(),y=j(()=>N.params.slug),{findBySlug:H}=nt(),{detail:i,enrolling:w,enroll:P,fetchDetail:R}=it(y),T=j(()=>H(y.value)),o=j(()=>i.value?{...i.value,_live:!0}:T.value);K(()=>({title:o.value?`${o.value.title} · xquare hub`:"Course · xquare hub"}));const p=k({0:!0}),V=c=>{p.value[c]=!p.value[c]},C={video:"play_circle",pdf:"description",quiz:"quiz",text:"article",file:"description"},$=Q(),A=X(),g=k(!1);let z=null;Z(async()=>{const{data:c}=await $.auth.getSession();g.value=!!c.session;const{data:{subscription:s}}=$.auth.onAuthStateChange((b,S)=>{g.value=!!S});z=s,await R()}),tt(()=>{z?.unsubscribe()}
1),[q,L]=et(()=>ot(`hub2-course-${y.value}`,()=>R().then(()=>!0))),await q,L();const E=k("");async function O(){if(!g.value)return A.push(`/sign-in?redirect=${encodeURIComponent(N.fullPath)}`);const c=i.value;if(c&&!c.is_free&&Number(c.price)>0)return A.push(`/m/courses/${y.value}/checkout`);const s=await P();s?.error&&(E.value=String(s.error))}const f=k(null);async function W(){if(!i.value?.is_enrolled||!i.value?.id){f.value=null;return}try{const{data:c}=await $.schema("lms").from("cohort").select("id").eq("course_id",i.value.id).eq("status","open").order("starts_at",{ascending:!0}).limit(1);f.value=c?.[0]?.id??null}catch{f.value=null}}return st(()=>i.value?.is_enrolled,()=>W(),{immediate:!0}),(c,s)=>{const b=at,S=rt;return e(o)?(r(),n("div",dt,[t("nav",ct,[I(b,{to:"/courses",class:"text-on-surface-variant hover:text-primary transition-colors"},{default:h(()=>[...s[3]||(s[3]=[m(" Courses ",-1)])]),_:1}),s[4]||(s[4]=t("span",{class:"material-symbols-outlined icon-sm text-outline-variant","aria-hidden":"true"},"chevron_right",-1)),t("span",ut,a(e(o).title),1)]),t("div",mt,[t("h1",pt,a(e(o).title),1),I(S,{author:e(i)?.instructor,space:e(i)?.space,"is-authored":!!e(i)?.is_authored,variant:"compact"},null,8,["author","space","is-authored"])]),t("div",xt,[t("div",ft,[t("div",{class:B(`relative w-full aspect-video ${e(o).bg} rounded-2xl overflow-hidden`)},[s[5]||(s[5]=t("div",{class:"absolute inset-0 bg-gradient-to-t from-black/50 via-transparent to-transparent"},null,-1)),t("div",_t,[t("span",bt,a(e(U)[e(o).delivery]),1),m(" "+a(e(F)[e(o).delivery]),1)]),t("div",ht,a(e(o).category),1),t("div",vt,[t("span",yt,a(e(o).price),1)])],2),t("div",gt,[s[6]||(s[6]=t("h2",{class:"text-xl font-bold mb-4 flex items-center gap-2"},[t("span",{class:"w-1 h-6 bg-primary rounded-full flex-shrink-0","aria-hidden":"true"}),m(" About this Course ")],-1)),t("p",kt,a(e(o).overview),1)]),t("div",wt,[s[8]||(s[8]=t("h2",{class:"text-xl font-bold mb-5"},"What You'll Learn",-1)),t("ul",Ct,[(r(!0),n(_,null,v(e(o).objectives,u=>(r(),n("li",{key:u,class:"flex items-start gap-2.5 text-sm text-on-surface-variant"},[s[7]||(s[7]=t("span",{class:"material-symbols-outlined icon-lg text-primary flex-shrink-0","aria-hidden":"true"},"check_circle",-1)),m(" "+a(u),1)]))),128))])]),t("div",$t,[t("div",Et,[s[9]||(s[9]=t("h2",{class:"text-xl font-bold"},"Curriculum",-1)),t("p",St,a(e(o).lessons)+" lessons · "+a(e(o).duration)+" total ",1)]),e(i)?.modules?.length?(r(!0),n(_,{key:0},v(e(i).modules,(u,d)=>(r(),n("div",{key:u.id,class:"border-b border-outline-variant/10 last:border-0"},[t("button",{class:"w-full flex items-center justify-between px-6 py-4 hover:bg-surface-container-low transition-colors text-left","aria-expanded":!!e(p)[d],"aria-controls":`module-panel-${d}`,onClick:l=>V(d)}
1,[t("span",Bt,a(u.title),1),t("span",{class:B(["material-symbols-outlined text-on-surface-variant transition-transform text-xl",e(p)[d]?"rotate-180":""]),"aria-hidden":"true"},"expand_more",2)],8,It),M(t("div",{id:`module-panel-${d}`,role:"region","aria-label":u.title,class:"divide-y divide-outline-variant/10"},[(r(!0),n(_,null,v(u.lessons,l=>(r(),n(_,{key:l.id},[e(i)?.is_enrolled&&e(f)?(r(),D(b,{key:0,to:`/m/cohorts/${e(f)}/lessons/${l.id}`,class:"flex items-center gap-3 px-6 py-3 bg-surface-container-low/40 hover:bg-surface-container-low cursor-pointer transition-colors"},{default:h(()=>[t("span",jt,a(C[l.content_type]??"play_circle"),1),t("span",qt,a(l.title),1),l.is_completed?(r(),n("span",Lt,"check_circle")):x("",!0),l.duration_minutes?(r(),n("span",Nt,a(l.duration_minutes)+" min ",1)):x("",!0)]),_:2},1032,["to"])):(r(),n("div",Rt,[t("span",Vt,a(C[l.content_type]??"play_circle"),1),t("span",At,a(l.title),1),l.is_completed?(r(),n("span",zt,"check_circle")):x("",!0),l.duration_minutes?(r(),n("span",Mt,a(l.duration_minutes)+" min ",1)):x("",!0)]))],64))),128))],8,Dt),[[Y,e(p)[d]]])]))),128)):e(o).curriculum?.length?(r(!0),n(_,{key:1},v(e(o).curriculum,(u,d)=>(r(),n("div",{key:d,class:"border-b border-outline-variant/10 last:border-0"},[t("button",{class:"w-full flex items-center justify-between px-6 py-4 hover:bg-surface-container-low transition-colors text-left","aria-expanded":!!e(p)[d],"aria-controls":`module-panel-seed-${d}`,onClick:l=>V(d)},[t("span",Ut,a(u.module),1),t("span",{class:B(["material-symbols-outlined text-on-surface-variant transition-transform text-xl",e(p)[d]?"rotate-180":""]),"aria-hidden":"true"},"expand_more",2)],8,Yt),M(t("div",{id:`module-panel-seed-${d}`,role:"region","aria-label":u.module,class:"divide-y divide-outline-variant/10"},[(r(!0),n(_,null,v(u.lessons,l=>(r(),n("div",{key:l.title,class:"flex items-center gap-3 px-6 py-3 bg-surface-container-low/40"},[t("span",Ht,a(C[l.type]),1),t("span",Pt,a(l.title),1),t("span",Tt,a(l.duration),1)]))),128))],8,Ft),[[Y,e(p)[d]]])]))),128)):(r(),n("div",Ot," Curriculum not yet available. "))]),t("div",Wt,[s[11]||(s[11]=t("span",{class:"material-symbols-outlined text-primary flex-shrink-0"},"info",-1)),t("div",null,[s[10]||(s[10]=t("p",{class:"text-sm font-bold mb-1"},"Prerequisites",-1)),t("p",Gt,a(e(o).prerequisites),1)])])]),t("aside",Jt,[t("div",Kt,[t("div",null,[t("p",Qt,a(e(o).price),1),e(o).startDate?(r(),n("p",Xt,[s[12]||(s[12]=t("span",{class:"material-symbols-outlined icon-sm","aria-hidden":"true"},"event",-1)),m(" Starts "+a(e(o).startDate),1)])):(r(),n("p",Zt,[...s[13]||(s[13]=[t("span",{class:"material-symbols-outlined icon-sm","aria-hidden":"true"},"event_available",-1),m(" Self-paced · start anytime ",-1)])]))]),e(i)?.is_enrolled?(r(),n(_,{key:0},[s[15]||(s[15]=t("div",{class:"w-full bg-surface-container border border-primary/30 rounded-2xl py-4 px-5 flex items-center gap-3 mb-3"},[t("span",{class:"material-symbols-outlined text-primary","aria-hidden":"true"},"check_circle"),t("div",null,[t("p",{class:"font-bold text-on-surface text-sm"},"Enrolled"),t("p",{class:"text-xs text-on-surface-variant"},"You have access to this course")])],-1)),e(f)?(r(),D(b,{key:0,to:`/m/cohorts/${e(f)}`,class:"w-full bg-primary text-on-primary font-bold py-4 rounded-2xl shadow-lg hover:brightness-110 active:scale-[0.98] transition-[filter,transform] duration-200 flex items-center justify-center gap-2"},{default:h(()=>[...s[14]||(s[14]=[t("span",{class:"material-symbols-outlined","aria-hidden":"true"},"arrow_forward",-1),m(" Start Learning ",-1)])]),_:1},8,["to"])):x("",!0)],64)):(r(),n("button",{key:1,class:"w-full bg-primary text-on-primary font-bold py-4 rounded-2xl shadow-lg hover:brightness-110 active:scale-[0.98] transition-[filter,transform] duration-200 flex items-center justify-center gap-2 disabled:opacity-60 disabled:cursor-not-allowed",disabled:e(w),onClick:O},[e(w)?(r(),n("span",ee,"progress_activity")):(r(),n("span",se,"school")),m(" "+a(e(w)?"Enrolling…":e(g)?"Enrol Now":"Sign in to enrol"),1)],8,te)),e(E)?(r(),n("p",ae,a(e(E)),1)):x("",!0),t("div",oe,[t("div",re,[t("span",ne,a(e(U)[e(o).delivery]),1),t("span",ie,a(e(F)[e(o).delivery]),1)]),t("div",le,[s[16]||(s[16]=t("span",{class:"material-symbols-outlined icon-md text-primary flex-shrink-0","aria-hidden":"true"}
1,"play_circle",-1)),t("span",de,a(e(o).lessons)+" lessons",1)]),t("div",ce,[s[17]||(s[17]=t("span",{class:"material-symbols-outlined icon-md text-primary flex-shrink-0","aria-hidden":"true"},"schedule",-1)),t("span",ue,a(e(o).duration)+" total",1)]),t("div",me,[s[18]||(s[18]=t("span",{class:"material-symbols-outlined icon-md text-primary flex-shrink-0","aria-hidden":"true"},"group",-1)),t("span",pe,a(e(o).students)+" students enrolled",1)])])]),t("div",xe,[s[21]||(s[21]=t("p",{class:"text-xs font-bold text-outline uppercase tracking-widest mb-4"},"Instructor",-1)),t("div",fe,[t("div",_e,[e(i)?.instructor?.avatar_url?(r(),n("img",{key:0,src:e(i).instructor.avatar_url,alt:e(o).instructor||"Instructor",class:"w-full h-full object-cover",loading:"lazy"},null,8,be)):(r(),n("span",he,a((e(o).instructor||"?")[0]),1))]),t("div",ve,[t("p",ye,a(e(o).instructor||"Instructor"),1),t("p",ge,a(e(o).category)+" Instructor",1)])]),e(o).instructorBio?(r(),n("p",ke,a(e(o).instructorBio),1)):x("",!0),e(i)?.space?.slug?(r(),D(b,{key:1,to:`/m/s/${e(i).space.slug}`,class:"mt-4 flex items-center gap-2 text-sm text-primary font-semibold hover:underline"},{default:h(()=>[s[19]||(s[19]=t("span",{class:"material-symbols-outlined icon-sm","aria-hidden":"true"},"groups",-1)),m(" Visit "+a(e(i).space.name)+" space ",1),s[20]||(s[20]=t("span",{class:"material-symbols-outlined icon-sm ml-auto","aria-hidden":"true"},"arrow_forward",-1))]),_:1},8,["to"])):x("",!0)])])])])):(r(),n("div",lt,[s[1]||(s[1]=t("span",{class:"material-symbols-outlined text-5xl text-outline mb-4 block","aria-hidden":"true"},"school",-1)),s[2]||(s[2]=t("h1",{class:"text-xl font-bold mb-2"},"Course not found",-1)),I(b,{to:"/courses",class:"text-sm text-primary hover:underline"},{default:h(()=>[...s[0]||(s[0]=[m("Browse all courses",-1)])]),_:1})]))}}});
1export{Ie 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.