1import{o,e as r,f as l,t as m,m as M,d as a,w as b,q as c,x as k,c as F,g as $,F as j,s as z,H as O,K as T,r as i}from"./vendor-C6V2Yy0r.js";import{c as be,b as n,B as p,d as J}from"./index-DcYtce52.js";import{u as _e}from"./useOLevelAssessment-CG8y2B6-.js";const ce={class:"results-tab"},pe={class:"results-tab__filters-card mb-3"},ve={class:"small text-muted mb-2"},ke={class:"results-tab__filters-actions"},Ve={class:"results-tab__filters-card mb-3"},fe={class:"results-tab__filters-grid results-tab__filters-grid--3"},ye={class:"results-tab__filters-actions"},ge={class:"lrn-table"},je={class:"lrn-table__code"},xe={class:"lrn-table__actions-col"},Se={class:"lrn-table__actions"},Ce=["onClick"],Ue=["onClick"],Pe={class:"results-tab__filters-card mb-3"},we={class:"results-tab__filters-grid results-tab__filters-grid--3 mb-2"},Ie={class:"lrn-table mb-2"},qe={class:"text-center"},De=["onUpdate:modelValue"],Re=["onClick"],Be={class:"d-flex gap-2"},Ee={key:0,class:"lp-json-preview"},Ne={class:"results-tab__filters-card mb-3"},Le={class:"mb-3"},$e={class:"results-tab__filters-actions"},ze={key:0,class:"lp-json-preview"},Ae={class:"results-tab__filters-card mb-3"},Me={class:"results-tab__filters-grid results-tab__filters-grid--5"},Fe={class:"results-tab__filters-actions"},Oe={class:"results-tab__filters-actions"},Te={class:"lrn-table"},Je={class:"small"},He={key:0},Ke={class:"lrn-table__actions-col"},Qe={class:"lrn-table__actions"},Ge=["onClick"],We=["onClick"],Xe={__name:"SplitSubjectsPanel",setup(Ye){const{isLoading:x,isSubmitting:q,extractList:D,getSubjectPapers:H,createSubjectPaper:K,updateSubjectPaper:Q,deleteSubjectPaper:G,getSubjectPaperResults:W,createSubjectPaperResult:X,bulkCreateSubjectPaperResults:Y,getSubjectPaperResultsByExam:Z,updateSubjectPaperResult:h,deleteSubjectPaperResult:ee}=_e(),V=i({subject_id:"",class_id:""}),R=i([]),B=async()=>{R.value=D({data:await H({subject_id:V.value.subject_id||void 0,class_id:V.value.class_id||void 0})})},v=i(null),d=i({curriculum_subject_id:"",class_id:"",paper_code:"",paper_name:"",total_marks:100,sequence_order:1}),A=()=>{v.value=null,d.value={curriculum_subject_id:"",class_id:"",paper_code:"",paper_name:"",total_marks:100,sequence_order:1}},le=s=>{v.value=s.id,d.value={curriculum_subject_id:s.curriculum_subject_id??s.curriculum_subject,class_id:s.class_id??s.class_obj,paper_code:s.paper_code,paper_name:s.paper_name,total_marks:s.total_marks,sequence_order:s.sequence_order??1}},te=async()=>{(v.value?await Q(v.value,d.value):await K(d.value))&&(A(),await B())},ae=async s=>{await G(s)&&await B()},u=i({exam_id:"",learner_id:"",subject_paper_id:"",marks_obtained:"",is_absent:!1,teacher_comments:""}),E=i(null),se=async()=>{E.value=await X({exam_id:u.value.exam_id,learner_id:u.value.learner_id,subject_paper_id:u.value.subject_paper_id,marks_obtained:u.value.is_absent?void 0:Number(u.value.marks_obtained),is_absent:u.value.is_absent,teacher_comments:u.value.teacher_comments||void 0})},S=i(""),C=i(""),U=i([{learner_id:"",marks_obtained:"",is_absent:!1}]),ne=()=>U.value.push({learner_id:"",marks_obtained:"",is_absent:!1}),ue=s=>U.value.splice(s,1),N=i(null),de=async()=>{!S.value||!C.value||(N.value=await Y({results:U.value.filter(s=>s.learner_id).map(s=>({exam_id:S.value,subject_paper_id:C.value,learner_id:s.learner_id,marks_obtained:s.is_absent?void 0:Number(s.marks_obtained),is_absent:s.is_absent}))}))},f=i({exam_id:"",learner_id:""}),P=i([]),L=async()=>{P.value=D({data:await W({exam_id:f.value.exam_id||void 0,learner_id:f.value.learner_id||void 0})})},w=i(""),ie=async()=>{w.value&&(P.value=D({data:await Z(w.value)}))},y=i(null),I=i(""),oe=s=>{y.value=s.id,I.value=s.marks_obtained??""},re=async()=>{await h(y.value,{marks_obtained:Number(I.value)})&&(y.value=null,await L())},me=async s=>{await ee(s)&&await L()};return(s,e)=>(o(),r("div",ce,[l("div",pe,[l("h6",ve,m(v.value?"Edit paper":"Define a paper"),1),l("form",{class:"results-tab__filters-grid results-tab__filters-grid--5",onSubmit:M(te,["prevent"])},[a(n,{kind:"number",label:"Curriculum subject ID",modelValue:d.value.curriculum_subject_id,"onUpdate:modelValue":e[0]||(e[0]=t=>d.value.curriculum_subject_id=t),required:""},null,8,["modelValue"]),a(n,{kind:"number",label:"Class ID",modelValue:d.value.class_id,"onUpdate:modelValue":e[1]||(e[1]=t=>d.value.class_id=t),required:""},null,8,["modelValue"]),a(n,{label:"Paper code",modelValue:d.value.paper_code,"onUpdate:modelValue":e[2]||(e[2]=t=>d.value.paper_code=t),placeholder:"e.g. P1",required:""},null,8,["modelValue"]),a(n,{label:"Paper name",modelValue:d.value.paper_name,"onUpdate:modelValue":e[3]||(e[3]=t=>d.value.paper_name=t),placeholder:"e.g. Physics Paper 1",required:""},null,8,["modelValue"]),a(n,{kind:"number",label:"Total marks",modelValue:d.value.total_marks,"onUpdate:modelValue":e[4]||(e[4]=t=>d.value.total_marks=t)},null,8,["modelValue"]),a(n,{kind:"number",label:"Sequence order",modelValue:d.value.sequence_order,"onUpdate:modelValue":e[5]||(e[5]=t=>d.value.sequence_order=t)},null,8,["modelValue"]),l("div",ke,[a(p,{type:"submit",color:"primary",size:"medium",loading:k(q)},{default:b(()=>
1[c(m(v.value?"Update paper":"Add paper"),1)]),_:1},8,["loading"]),v.value?(o(),F(p,{key:0,type:"button",color:"secondary",size:"medium",onClick:A},{default:b(()=>[...e[21]||(e[21]=[c(" Cancel ",-1)])]),_:1})):$("",!0)])],32)]),l("div",Ve,[e[23]||(e[23]=l("h6",{class:"small text-muted mb-2"},"Browse papers",-1)),l("div",fe,[a(n,{kind:"number",label:"Subject ID",modelValue:V.value.subject_id,"onUpdate:modelValue":e[6]||(e[6]=t=>V.value.subject_id=t)},null,8,["modelValue"]),a(n,{kind:"number",label:"Class ID",modelValue:V.value.class_id,"onUpdate:modelValue":e[7]||(e[7]=t=>V.value.class_id=t)},null,8,["modelValue"]),l("div",ye,[a(p,{color:"secondary",size:"medium",loading:k(x),onClick:B},{default:b(()=>[...e[22]||(e[22]=[c("Load",-1)])]),_:1},8,["loading"])])])]),a(J,{loading:k(x),empty:!R.value.length,"empty-title":"No papers defined yet",class:"mb-3"},{default:b(()=>[l("table",ge,[e[26]||(e[26]=l("thead",null,[l("tr",null,[l("th",null,"Code"),l("th",null,"Name"),l("th",null,"Total marks"),l("th",null,"Order"),l("th",{class:"lrn-table__actions-col"},"Actions")])],-1)),l("tbody",null,[(o(!0),r(j,null,z(R.value,t=>(o(),r("tr",{key:t.id,class:"lrn-table__row"},[l("td",je,m(t.paper_code),1),l("td",null,m(t.paper_name),1),l("td",null,m(t.total_marks),1),l("td",null,m(t.sequence_order),1),l("td",xe,[l("div",Se,[l("button",{type:"button",class:"lrn-action-btn",title:"Edit",onClick:_=>le(t)},[...e[24]||(e[24]=[l("i",{class:"bi bi-pencil"},null,-1)])],8,Ce),l("button",{type:"button",class:"lrn-action-btn lrn-action-btn--danger",title:"Delete",onClick:_=>ae(t.id)},[...e[25]||(e[25]=[l("i",{class:"bi bi-trash"},null,-1)])],8,Ue)])])]))),128))])])]),_:1},8,["loading","empty"]),l("div",Pe,[e[31]||(e[31]=l("h6",{class:"small text-muted mb-2"},"Mark a whole class on one paper (bulk)",-1)),l("div",we,[a(n,{kind:"number",label:"Exam ID",modelValue:S.value,"onUpdate:modelValue":e[8]||(e[8]=t=>S.value=t),required:""},null,8,["modelValue"]),a(n,{kind:"number",label:"Subject paper ID",modelValue:C.value,"onUpdate:modelValue":e[9]||(e[9]=t=>C.value=t),required:""},null,8,["modelValue"])]),l("table",Ie,[e[28]||(e[28]=l("thead",null,[l("tr",null,[l("th",null,"Learner ID"),l("th",null,"Marks obtained"),l("th",null,"Absent"),l("th")])],-1)),l("tbody",null,[(o(!0),r(j,null,z(U.value,(t,_)=>(o(),r("tr",{key:_,class:"lrn-table__row"},[l("td",null,[a(n,{kind:"number",modelValue:t.learner_id,"onUpdate:modelValue":g=>t.learner_id=g},null,8,["modelValue","onUpdate:modelValue"])]),l("td",null,[a(n,{kind:"number",modelValue:t.marks_obtained,"onUpdate:modelValue":g=>t.marks_obtained=g,disabled:t.is_absent},null,8,["modelValue","onUpdate:modelValue","disabled"])]),l("td",qe,[O(l("input",{type:"checkbox",class:"form-check-input","onUpdate:modelValue":g=>t.is_absent=g},null,8,De),[[T,t.is_absent]])]),l("td",null,[l("button",{type:"button",class:"lrn-action-btn lrn-action-btn--danger",onClick:g=>ue(_)},[...e[27]||(e[27]=[l("i",{class:"bi bi-trash"},null,-1)])],8,Re)])]))),128))])]),l("div",Be,[a(p,{type:"button",color:"secondary",size:"small",onClick:ne},{default:b(()=>[...e[29]||(e[29]=[c("+ Add learner",-1)])]),_:1}),a(p,{type:"button",color:"primary",size:"small",loading:k(q),onClick:de},{default:b(()=>[...e[30]||(e[30]=[c(" Save paper marks for class ",-1)])]),_:1},8,["loading"])]),N.value?(o(),r("pre",Ee,m(JSON.stringify(N.value,null,2)),1)):$("",!0)]),l("div",Ne,[e[34]||(e[34]=l("h6",{class:"small text-muted mb-2"},"Quick single paper mark",-1)),l("form",{class:"results-tab__filters-grid results-tab__filters-grid--5",onSubmit:M(se,["prevent"])},[a(n,{kind:"number",label:"Exam ID",modelValue:u.value.exam_id,"onUpdate:modelValue":e[10]||(e[10]=t=>u.value.exam_id=t),required:""},null,8,["modelValue"]),a(n,{kind:"number",label:"Learner ID",modelValue:u.value.learner_id,"onUpdate:modelValue":e[11]||(e[11]=t=>u.value.learner_id=t),required:""},null,8,["modelValue"]),a(n,{kind:"number",label:"Subject paper ID",modelValue:u.value.subject_paper_id,"onUpdate:modelValue":e[12]||(e[12]=t=>u.value.subject_paper_id=t),required:""},null,8,["modelValue"]),a(n,{kind:"number",label:"Marks obtained",modelValue:u.value.marks_obtained,"onUpdate:modelValue":e[13]||(e[13]=t=>u.value.marks_obtained=t),disabled:u.value.is_absent},null,8,["modelValue","disabled"]),a(n,{label:"Teacher comments",modelValue:u.value.teacher_comments,"onUpdate:modelValue":e[14]||(e[14]=t=>u.value.teacher_comments=t)},null,8,["modelValue"]),l("div",Le,[e[32]||(e[32]=l("label",{class:"form-label d-block"},"Absent",-1)),O(l("input",{type:"checkbox",class:"form-check-input","onUpdate:modelValue":e[15]||(e[15]=t=>u.value.is_absent=t)},null,512),[[T,u.value.is_absent]])]),l("div",$e,[a(p,{type:"submit",color:"primary",size:"medium",loading:k(q)},{default:b(()=>[...e[33]||(e[33]=[c("Save (idempotent)",-1)])]),_:1},8,["loading"])])],32),E.value?(o(),r("pre",ze,m(JSON.stringify(E.value,
1null,2)),1)):$("",!0)]),l("div",Ae,[e[37]||(e[37]=l("h6",{class:"small text-muted mb-2"},"Browse per-paper results",-1)),l("div",Me,[a(n,{kind:"number",label:"Exam ID",modelValue:f.value.exam_id,"onUpdate:modelValue":e[16]||(e[16]=t=>f.value.exam_id=t)},null,8,["modelValue"]),a(n,{kind:"number",label:"Learner ID",modelValue:f.value.learner_id,"onUpdate:modelValue":e[17]||(e[17]=t=>f.value.learner_id=t)},null,8,["modelValue"]),l("div",Fe,[a(p,{color:"secondary",size:"medium",loading:k(x),onClick:L},{default:b(()=>[...e[35]||(e[35]=[c("Load",-1)])]),_:1},8,["loading"])]),a(n,{kind:"number",label:"Exam ID (by-exam view)",modelValue:w.value,"onUpdate:modelValue":e[18]||(e[18]=t=>w.value=t)},null,8,["modelValue"]),l("div",Oe,[a(p,{color:"secondary",size:"medium",onClick:ie},{default:b(()=>[...e[36]||(e[36]=[c("By exam",-1)])]),_:1})])])]),a(J,{loading:k(x),empty:!P.value.length,"empty-title":"No per-paper results found"},{default:b(()=>[l("table",Te,[e[42]||(e[42]=l("thead",null,[l("tr",null,[l("th",null,"Learner"),l("th",null,"Paper"),l("th",null,"Marks"),l("th",null,"%"),l("th",{class:"lrn-table__actions-col"},"Actions")])],-1)),l("tbody",null,[(o(!0),r(j,null,z(P.value,t=>(o(),r("tr",{key:t.id,class:"lrn-table__row"},[l("td",null,m(t.learner_name||`#${t.learner_id??t.learner}`),1),l("td",Je,m(t.paper_name||t.paper_code||`#${t.subject_paper}`),1),l("td",null,[y.value!==t.id?(o(),r("span",He,m(t.is_absent?"Absent":t.marks_obtained),1)):(o(),F(n,{key:1,kind:"number",modelValue:I.value,"onUpdate:modelValue":e[19]||(e[19]=_=>I.value=_)},null,8,["modelValue"]))]),l("td",null,m(t.percentage??"â"),1),l("td",Ke,[l("div",Qe,[y.value===t.id?(o(),r(j,{key:0},[l("button",{type:"button",class:"lrn-action-btn",title:"Save",onClick:re},[...e[38]||(e[38]=[l("i",{class:"bi bi-check-lg"},null,-1)])]),l("button",{type:"button",class:"lrn-action-btn",title:"Cancel",onClick:e[20]||(e[20]=_=>y.value=null)},[...e[39]||(e[39]=[l("i",{class:"bi bi-x-lg"},null,-1)])])],64)):(o(),r(j,{key:1},[l("button",{type:"button",class:"lrn-action-btn",title:"Edit",onClick:_=>oe(t)},[...e[40]||(e[40]=[l("i",{class:"bi bi-pencil"},null,-1)])],8,Ge),l("button",{type:"button",class:"lrn-action-btn lrn-action-btn--danger",title:"Delete",onClick:_=>me(t.id)},[...e[41]||(e[41]=[l("i",{class:"bi bi-trash"},null,-1)])],8,We)],64))])])]))),128))])])]),_:1},8,["loading","empty"])]))}},ll=be(Xe,[["__scopeId","data-v-be3b4a51"]]);export{ll 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.