1import{v as u,j as o,m as c,x as y,l as n,z as I,p as i,B as p,F as b,y as _,J as m,w as N,f as x,r as R,u as l}from"./sq8n79Zx.js";import{_ as f}from"./DleFfKJz.js";import{_ as F}from"./BPgpnLB8.js";import{_ as Q}from"./DlAUqK2U.js";import{u as j}from"./BvarpF3j.js";import{e as J}from"./JG84WnTm.js";import{a as M}from"./rHY0capd.js";import"./B_lx0gwq.js";import"./CRiQBIDr.js";import"./xkIdePKz.js";import"./D6ltPAd4.js";import"./CGWH6Nkj.js";import"./C_Dt5I35.js";const V={class:"flex flex-col gap-2 mb-4"},D={class:"text-xl sm:text-2xl font-semibold text-gray-900"},H=u({__name:"LatexCheckHeader",props:{title:{}},setup(e){return(s,t)=>(n(),o("div",V,[t[0]||(t[0]=c("p",{class:"text-xs uppercase tracking-wider text-emerald-600 font-semibold"},"Latex Check",-1)),c("h1",D,y(e.title),1)]))}}),O={class:"bg-red-50 border border-red-200 text-red-700 p-4 rounded-xl"},P={class:"flex items-center justify-between gap-3"},K=u({__name:"LatexCheckErrorState",emits:["retry"],setup(e,{emit:s}){const t=s;return(a,r)=>(n(),o("div",O,[c("div",P,[r[1]||(r[1]=c("p",{class:"text-sm"},"Impossible de charger la leçon.",-1)),c("button",{class:"text-xs font-semibold text-red-700 hover:text-red-800",onClick:r[0]||(r[0]=d=>t("retry"))}," Réessayer ")])]))}}),U={class:"mt-2 markdown-content"},h=u({__name:"LatexCheckFieldBlock",props:{label:{},content:{},labelClass:{}},setup(e){return(s,t)=>(n(),o("div",null,[c("p",{class:I(["text-xs font-semibold uppercase tracking-wide",e.labelClass])},y(e.label),3),c("div",U,[i(f,{content:e.content},null,8,["content"])])]))}}),X={class:"space-y-4"},G={key:0,class:"bg-white rounded-xl shadow-sm border border-gray-100 p-4 sm:p-6 text-sm text-gray-500 text-center"},W=u({__name:"LatexCheckExercicesTab",props:{exercices:{}},setup(e){return(s,t)=>(n(),o("section",X,[e.exercices.length===0?(n(),o("div",G," Aucun exercice disponible. ")):p("",!0),(n(!0),o(b,null,_(e.exercices,(a,r)=>(n(),o("article",{key:`exercice-${r}`,class:"bg-white rounded-xl shadow-sm border border-gray-100 p-4 sm:p-6 space-y-3"},[i(h,{label:`Exercice ${r+1}`,"label-class":"text-emerald-600",content:a.question},null,8,["label","content"]),i(h,{label:"Réponse",content:a.answer},null,8,["content"]),a.explanation?(n(),m(h,{key:0,label:"Explication",content:a.explanation},null,8,["content"])):p("",!0)]))),128))]))}}),Y={class:"bg-white rounded-xl shadow-sm border border-gray-100 p-4 sm:p-6"},Z={key:0,class:"overflow-x-auto"},ee={class:"min-w-full text-left text-xs sm:text-sm"},te={class:"divide-y divide-gray-100"},se={class:"px-3 py-3 align-top w-1/2"},ne={class:"px-3 py-3 align-top w-1/2"},re={key:1,class:"text-sm text-gray-500 text-center"},oe=u({__name:"LatexCheckFlashcardsTab",props:{flashcards:{}},setup(e){return(s,t)=>(n(),o("section",Y,[e.flashcards.length?(n(),o("div",Z,[c("table",ee,[t[0]||(t[0]=c("thead",{class:"bg-gray-50 text-gray-600 uppercase text-[11px] tracking-wide"},[c("tr",null,[c("th",{class:"px-3 py-2 font-semibold"},"Question"),c("th",{class:"px-3 py-2 font-semibold"},"Réponse")])],-1)),c("tbody",te,[(n(!0),o(b,null,_(e.flashcards,(a,r)=>(n(),o("tr",{key:`flashcard-${r}`},[c("td",se,[i(f,{content:a.question},null,8,["content"])]),c("td",ne,[i(f,{content:a.answer},null,8,["content"])])]))),128))])])])):(n(),o("div",re," Aucune flashcard disponible. "))]))}}),ae={},ce={class:"flex justify-center items-center py-10"};function ie(e,s){const t=F;return n(),o("div",ce,[i(t)])}const le=Q(ae,[["render",ie]]),ue={class:"bg-white rounded-xl shadow-sm border border-gray-100 p-4 sm:p-6"},de={key:0,class:"markdown-content"},me={key:1,class:"text-sm text-gray-500 text-center"},S=u({__name:"LatexCheckMarkdownSection",props:{content:{},emptyMessage:{}},setup(e){return(s,t)=>(n(),o("section",ue,[e.content?(n(),o("div",de,[i(f,{content:e.content},null,8,["content"])])):(n(),o("div",me,y(e.emptyMessage),1))]))}}),xe={key:0,class:"mt-2 space-y-1"},he={class:"text-gray-400"},pe={class:"markdown-content flex-1"},fe={key:1,class:"mt-2 text-xs text-gray-500"},ye=u({__name:"LatexCheckQuizChoices",props:{choices:{},quizIndex:{}},setup(e){return(s,t)=>(n(),o("div",null,[t[0]||(t[0]=c("p",{class:"text-xs font-semibold text-gray-500 uppercase tracking-wide"}," Propositions ",-1)),e.choices.length?(n(),o("ul",xe,[(n(!0),o(b,null,_(e.choices,(a,r)=>(n(),o("li",{key:`quiz-${e.quizIndex}-choice-${r}`,class:"flex gap-2 text-sm text-gray-700"},[c("span",he,y(r+1)+".",1),c("div",pe,[i(f,{content:a},null,8,["content"])])]))),128))])):(n(),o("p",fe," Aucune proposition trouvée. "))]))}}),be={class:"space-y-4"},_e={key:0,class:"bg-white rounded-xl shadow-sm border border-gray-100 p-4 sm:p-6 text-sm text-gray-500 text-center"},ge=u({__name:"LatexCheckQuizTab",props:{quizItems:{}},setup(e){return(s,t)=>(n(),o("section",be,[e.quizItems.length===0?(n(),o("div",_e," Aucun quiz disponible. ")):p("",!0),(n(!0),o(b,null,_(e.quizItems,(a,r)=>(n(),o("article",{key:`quiz-${r}`,class:"bg-white rounded-xl shadow-sm border border-gray-100 p-4 sm:p-6 space-y-3"},[i(h,{label:`Question ${r+1}`,"label-class":"text-emerald-600",content:a.question},null,8,["label","content"]),i(h,{label:"Réponse",content:a.answer},null,8,["content"]),i(ye,{choices:a.choices,"quiz-index":r},null,8,["choices","quiz-index"]),a.explanation?(n(),m(h,{key:0,label:"Explication",content:a.explanation},null,8,["content"])):p("",!0)]))),128))]))}}),ke={class:"mt-6"},ve={key:2,class:"text-gray-500 text-sm text-center py-10"},we={key:3,class:"space-y-6"},$e=u({__name:"LatexCheckLessonBody",props:{pending:{type:Boolean},error:{},lesson:{},activeTab:{},lessonContent:{},lessonSynthesis:{},flashcards:{},exercices:{},quizItems:{}},emits:["refresh"],setup(e,{emit:s}){const t=s;return(a,r)=>(n(),o("div",ke,[e.pending?(n(),m(le,{key:0})):e.error?(n(),m(K,{key:1,onRetry:r[0]||(r[0]=d=>t("refresh"))})):e.lesson?(n(),o("div",we,[e.activeTab==="lecons"?(n(),m(S,{key:0,content:e.lessonContent,"empty-message":"Aucun contenu de leçon disponible."},null,8,["content"])):e.activeTab==="synthese"?(n(),m(S,{key:1,content:e.lessonSynthesis,"empty-message":"Aucune synthèse disponible."},null,8,["content"])):e.activeTab==="flashcard"?(n(),m(oe,{key:2,flashcards:e.flashcards},null,8,["flashcards"])):e.activeTab==="exercice"?(n(),m(W,{key:3,exercices:e.exercices},null,8,["exercices"])):e.activeTab==="quizz"?(n(),m(ge,{key:4,"quiz-items":e.quizItems},null,8,["quiz-items"])):p("",!0)])):(n(),o("div",ve," Leçon introuvable. "))]))}}),Ce={class:"bg-white rounded-xl shadow-sm border border-gray-100 p-3 sm:p-4"},qe={class:"flex flex-wrap gap-2"},ze=["onClick"],Le=u({__name:"LatexCheckTabBar",props:{tabs:{},activeTab:{}},emits:["update:activeTab"],setup(e,{emit:s}){const t=s;return(a,r)=>(n(),o("div",Ce,[c("div",qe,[(n(!0),o(b,null,_(e.tabs,d=>(n(),o("button",{key:d.id,class:I(["px-3 py-1.5 rounded-lg text-xs sm:text-sm font-medium transition-colors",e.activeTab===d.id?"bg-emerald-500 text-white":"bg-gray-50 text-gray-700 hover:bg-gray-100"]),onClick:g=>t("update:activeTab",d.id)},y(d.label),11,ze))),128))])]))}});function E(e){if(!e)return[];if(Array.isArray(e))return e;if(typeof e=="string")try{const s=JSON.parse(e);return Array.isArray(s)?s:[]}catch{return[]}if(e&&typeof e=="object"){const s=e;if(Array.isArray(s.items))return s.items;if(Array.isArray(s.questions))return s.questions}return[]}function Ae(e){if(!e)return[];if(Array.isArray(e))return e.map(s=>
1typeof s=="string"?s:String(s)).filter(Boolean);if(typeof e=="string"){const s=e.trim();if(!s)return[];try{const a=JSON.parse(s);if(Array.isArray(a))return a.map(r=>typeof r=="string"?r:String(r)).filter(Boolean)}catch{}const t=s.split(/\r?\n/).map(a=>a.trim()).filter(Boolean);return t.length>1?t:[]}return[]}function Te(e){return E(e).map(s=>{const t=s;return{question:String(t.avant||t.recto||t.question||t.q||t.front||""),answer:String(t.arrière||t.arriere||t.verso||t.reponse||t.answer||"")}}).filter(s=>s.question||s.answer)}function B(e){return E(e).map(s=>{const t=s,a=Ae(t.choix||t.choice||t.answers||t.answer);return{question:String(t.question||t.libelle||t.titre||""),answer:String(t.correctAnswer||t.correcte||t.correct||t.bonne_reponse||""),explanation:String(t.explication||t.explication_markdown||t.commentaire||""),choices:a}}).filter(s=>s.question||s.answer||s.explanation||s.choices.length)}const v=[{id:"lecons",label:"Leçons"},{id:"synthese",label:"Fiche"},{id:"flashcard",label:"Flashcards"},{id:"exercice",label:"Exercices"},{id:"quizz",label:"Quiz"}];function Se(e){const s=e?.toString().trim().toLowerCase();if(!s)return null;if(v.some(a=>a.id===s))return s;const t=Number.parseInt(s,10);return Number.isNaN(t)||t<1||t>v.length?null:v[t-1]?.id??null}function Be(){const e=J(),s=R("lecons"),t=x(()=>e.params.leconId?.toString()||""),{getLecon:a}=j();N(()=>e.params.tab,k=>{const A=Se(k);s.value=A??"lecons"},{immediate:!0});const{data:r,pending:d,error:g,refresh:w}=M("latexcheck-lesson",async()=>t.value?a(t.value):null,{watch:[t],server:!1,default:()=>null}),$=x(()=>r.value?r.value.titre||"Leçon sans titre":"Leçon"),C=x(()=>r.value?.contenu_markdown||""),q=x(()=>r.value?.synthese||r.value?.knowledge_points||""),z=x(()=>Te(r.value?.flashcards)),L=x(()=>B(r.value?.exercices)),T=x(()=>B(r.value?.quizz||r.value?.questions));return{tabs:v,activeTab:s,lesson:r,pending:d,error:g,refresh:w,lessonTitle:$,lessonContent:C,lessonSynthesis:q,flashcards:z,exercices:L,quizItems:T}}const Ie={class:"page-shell-scroll bg-gray-50"},Ee={class:"max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 py-6"},Ue=u({__name:"[[tab]]",setup(e){const{tabs:s,activeTab:t,lesson:a,pending:r,error:d,refresh:g,lessonTitle:w,lessonContent:$,lessonSynthesis:C,flashcards:q,exercices:z,quizItems:L}=Be();return(T,k)=>(n(),o("div",Ie,[c("div",Ee,[i(H,{title:l(w)},null,8,["title"]),i(Le,{tabs:l(s),"active-tab":l(t),"onUpdate:activeTab":k[0]||(k[0]=A=>t.value=A)},null,8,["tabs","active-tab"]),i($e,{pending:l(r),error:l(d),lesson:l(a),"active-tab":l(t),"lesson-content":l($),"lesson-synthesis":l(C),flashcards:l(q),exercices:l(z),"quiz-items":l(L),onRefresh:l(g)},null,8,["pending","error","lesson","active-tab","lesson-content","lesson-synthesis","flashcards","exercices","quiz-items","onRefresh"])])]))}});export{Ue 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.