1import{r as j,E as fe,c as $e,o as f,B as ne,w as a,h as l,I as Fe,m as Re,l as Ye,J as pe,e,K as Dt,i as re,O as Me,R as nt,j as oe,k as W,T as ot,U as He,_ as Ge,a as Lt,u as it,y as Y,G as Ee,d as T,t as k,Y as se,F as ue,g as qe,M as C,au as ts,W as Qe,Q as ie,V as mt,a3 as we,S as M,aq as ns,a7 as ss,b as ls,ap as as,H as zt,X as Oe,N as Pe,n as yn,av as os,aw as is,z as pt,ae as ds,Z as tt,am as mn,$ as bn,ax as hn,a9 as us,aa as rs,ab as cs,L as Yt,a2 as It,ay as ms,ah as fs,ai as _s,az as ps,aA as gs,p as vs,aB as ys,a5 as bs,a1 as fn,aC as hs,P as ks}from"./admin-CMGpZsj2.js";import{Q as je,a as kn}from"./QTabs-CkD-UOeg.js";import{Q as Et}from"./QFile-Bq86BXPA.js";import{h as Ze}from"./moment-BLMuvzoS.js";import{Q as be}from"./QTd-Pnig8V5e.js";import{Q as $t}from"./QBadge-NJgRm31p.js";import{Q as gt}from"./QTable-B2XxdEIW.js";import{u as dt}from"./index-CVqh2yr9.js";import{u as xn}from"./index-DxmhhkXg.js";import{u as Ct}from"./index-CVLLq_jD.js";import{u as xs}from"./index-DAq73jVQ.js";import{_ as Ss}from"./UpdateStudentDialog.vue_vue_type_style_index_1_lang-dNCf-i74.js";import{u as $s}from"./index-Vf6Wb2c6.js";import{E as Ds,g as _n,f as pn,a as gn,l as Cs}from"./en-GB-B59XTk9E.js";import"./intlTelInput-dlHoitdu.js";import Fs from"./index-gmhhC3dA.js";import{Q as Sn}from"./QDate-CoAqzP1D.js";import{Q as $n}from"./QPopupProxy-DD8RCFON.js";import{_ as qs}from"./PhoneWithCountryCodes-DLXU7_S-.js";import{u as vt}from"./index-DSl-A3Xc.js";import{u as Vs}from"./index-DxEO6SDl.js";import{u as Ns}from"./index-DBjGHZHf.js";import{n as ct,s as Ts,c as As,m as vn,f as ws}from"./ukAdmissionMealDays-ZZlvfpPQ.js";import{u as Us}from"./index-1yPX-0cs.js";import"./use-fullscreen-C0ckTti0.js";import"./QSlideTransition-Cds_cfmS.js";/* empty css */import"./StatusToggle-DVaGwNKH.js";import"./use-render-cache-DLxPkVnQ.js";import"./date-aDOCyHkh.js";const Bs={class:"col-12 col-md-6 q-mb-sm"},Ms={class:"col-12 col-md-6 q-mb-xxs"},Os={class:"col-12 q-mb-xxs"},Ps={__name:"UpdateHourlyFeeDialog",props:{modelValue:Boolean,rowData:Object},emits:["update:modelValue","save"],setup(ae,{emit:$}){const q=ae,w=$,N=j(q.modelValue);fe(()=>q.modelValue,O=>N.value=O);const z=$e({total_hours_attended:"",funded_hours_used:"",hourly_rate_at_billing:""}),V=()=>{var O,b,p;z.total_hours_attended=((O=q.rowData)==null?void 0:O.total_hours_attended)||"",z.funded_hours_used=((b=q.rowData)==null?void 0:b.funded_hours_used)||"",z.hourly_rate_at_billing=((p=q.rowData)==null?void 0:p.hourly_rate_at_billing)||""};fe(N,O=>{w("update:modelValue",O),O||V()}),fe(()=>q.rowData,()=>V(),{immediate:!0});const x=()=>{w("save",{...z}),N.value=!1};return(O,b)=>(f(),ne(He,{modelValue:N.value,"onUpdate:modelValue":b[3]||(b[3]=p=>N.value=p),persistent:""},{default:a(()=>[l(Fe,{style:{width:"500px","max-width":"80vw"}},{default:a(()=>[l(Re,{onSubmit:Ye(x,["prevent"])},{default:a(()=>[l(pe,null,{default:a(()=>[...b[4]||(b[4]=[e("div",{class:"text-h6 text-center"},"Edit Hourly Billing",-1)])]),_:1}),l(Dt),l(pe,{class:"row q-col-gutter-md"},{default:a(()=>[e("div",Bs,[b[5]||(b[5]=e("label",{class:"label-required"},"Total Hours Attended",-1)),l(re,{outlined:"",dense:"",type:"number",min:"0",modelValue:z.total_hours_attended,"onUpdate:modelValue":b[0]||(b[0]=p=>z.total_hours_attended=p),rules:[p=>p!==""&&p!==null||"Required",p=>p>=0||"No negative values allowed"]},null,8,["modelValue","rules"])]),e("div",Ms,[b[6]||(b[6]=e("label",{class:"label-required"},"Funded Hours Used",-1)),l(re,{outlined:"",dense:"",type:"number",min:"0",modelValue:z.funded_hours_used,"onUpdate:modelValue":b[1]||(b[1]=p=>z.funded_hours_used=p),rules:[p=>p!==""&&p!==null||"Required",p=>p>=0||"No negative values allowed",p=>parseFloat(p)<=parseFloat(z.total_hours_attended)||"Cannot exceed total hours attended"]},null,8,["modelValue","rules"])]),e("div",Os,[b[7]||(b[7]=e("label",{class:"label-required"},"Hourly Rate",-1)),l(re,{outlined:"",dense:"",type:"number",min:"0",modelValue:z.hourly_rate_at_billing,"onUpdate:modelValue":b[2]||(b[2]=p=>z.hourly_rate_at_billing=p),rules:[p=>p!==""&&p!==null||"Required",p=>p>=0||"No negative values allowed"]},null,8,["modelValue","rules"])])]),_:1}),l(Me,{align:"right"},{default:a(()=>[nt((f(),ne(oe,{color:"red"},{default:a(()=>[...b[8]||(b[8]=[W("Cancel",-1)])]),_:1})),[[ot]]),l(oe,{color:"primary",type:"submit"},{default:a(()=>[...b[9]||(b[9]=[W("Submit",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"]))}},Rs={class:"col-12 col-md-6 q-mb-xs"},Is={class:"col-12 col-md-6 q-mb-xs"},Ls={class:"col-12 col-md-6 q-mb-xs"},zs={class:"col-12 col-md-6 q-mb-xs"},Ys={__name:"UpdateFixedFeeDialog",props:{modelValue:Boolean,rowData:Object},emits:["update:modelValue","save"],setup(ae,{emit:$}){const q=ae,w=$,N=j(q.modelValue);fe(()=>q.modelValue,O=>N.value=O);const z=()=>{var O,b,p,A;V.registration_fee=((O=q.rowData)==null?void 0:O.registration_fee)||"",V.admission_fee=((b=q.rowData)==null?void 0:b.admission_fee)||"",V.late_fee=((p=q.rowData)==null?void 0:p.late_fee)||"",V.due_date=((A=q.rowData)==null?void 0:A.due_date)||""},V=$e({registration_fee:"",admission_fee:"",late_fee:"",due_date:""});fe(N,O=>{w("update:modelValue",O),O||z()}),fe(()=>q.rowData,()=>z(),{immediate:!0});const x=()=>{w("save",{...V}),N.value=!1};return(O,b)=>(f(),ne(He,{modelValue:N.value,"onUpdate:modelValue":b[4]||(b[4]=p=>N.value=p),persistent:""},{default:a(()=>[l(Fe,{style:{width:"500px","max-width":"80vw"}},{default:a(()=>[l(Re,{onSubmit:Ye(x,["prevent"])},{default:a(()=>[l(pe,null,{default:a(()=>[...b[5]||(b[5]=[e("div",{class:"text-h6 text-center"},"Edit Fixed Billing",-1)])]),_:1}),l(Dt),l(pe,{class:"row q-col-gutter-xs"},{default:a(()=>[e("div",Rs,[b[6]||(b[6]=e("label",{class:"label-required"},"Registration Fee",-1)),l(re,{outlined:"",dense:"",type:"number",min:"0",modelValue:V.registration_fee,"onUpdate:modelValue":b[0]||(b[0]=p=>V.registration_fee=p),rules:[p=>p!==""&&p!==null||"Required",p=>p>=0||"No negative values allowed"]},null,8,["modelValue","rules"])]),e("div",Is,[b[7]||(b[7]=e("label",{class:"label-required"},"Admission Fee",-1)),l(re,{outlined:"",dense:"",type:"number",min:"0",modelValue:V.admission_fee,"onUpdate:modelValue":b[1]||(b[1]=p=>V.admission_fee=p),rules:[p=>p!==""&&p!==null||"Required",p=>p>=0||"No negative values allowed"]},null,8,["modelValue","rules"])]),e("div",Ls,[b[8]||(b[8]=e("label",{class:"label-required"},"Late Fee",-1)),l(re,{outlined:"",dense:"",type:"number",min:"0",modelValue:V.late_fee,"onUpdate:modelValue":b[2]||(b[2]=p=>V.late_fee=p),rules:[p=>p!==""&&p!==null||"Required",p=>p>=0||"No negative values allowed"]},null,8,["modelValue","rules"])]),e("div",zs,[b[9]||(b[9]=e("label",{class:"label-required"},"Due Date",-1)),l(re,{outlined:"",dense:"",type:"date",modelValue:V.due_date,"onUpdate:modelValue":b[3]||(b[3]=p=>V.due_date=p),rules:[p=>!!p||"Required"]},null,8,["modelValue","rules"])])]),_:1}),l(Me,{align:"right"},{default:a(()=>[nt((f(),ne(oe,{color:"red"},{default:a(()=>[...b[10]||(b[10]=[W("Cancel",-1)])]),_:1})),[[ot]]),l(oe,{color:"primary",type:"submit"},{default:a(()=>[...b[11]||(b[11]=[W("Submit",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"]))}},Es={class:"text-center"},js={class:"text-subtitle2 text-grey"},Qs={class:"q-mb-md"},Hs={class:"salary-slip-table-container"},Gs={class:"salary-slip-table"},Ws={key:0},Js={key:1},Xs={key:2}
1,Zs={key:3},Ks={key:0,class:"text-caption text-grey-7"},el={class:"text-deep-purple"},tl={class:"text-caption text-grey-7"},nl={class:"q-mt-md text-right"},sl={key:0},ll={key:0},al={key:0,class:"text-deep-purple text-weight-medium"},ol={key:1,class:"text-grey-6"},il={key:1,class:"text-grey-6"},dl={key:0,color:"blue-grey-9"},ul={key:1},rl={key:1},cl={__name:"StudentFeeCycleRecord",props:{std_data:Object},setup(ae){const $=dt(),q=Lt(),w=$s();xn(),xs();const N=Ct(),z=it();let V=j(""),x=j("");const O=j(null),b=j(null),p=j(!1),A=j(null),Q=j(null);j({});const o=j(!1),_=j(!1),u=j({}),d=j(!1),D=j({old_value:"",new_value:"",changed_by:""}),P=ae;let K=$e({student_id:null});$e({branch_id:[]});const ee=Y(()=>q.isSelectedBranchUK);function I(m){if(!ee.value)return m??"N/A";if(m==null||m==="")return"N/A";if(typeof m=="number")return Number.isFinite(m)?new Intl.NumberFormat("en-GB",{style:"currency",currency:"GBP",maximumFractionDigits:0,minimumFractionDigits:0}).format(Math.round(m)):"N/A";const v=String(m).replace(/,/g,"").replace(/[^0-9.-]/g,""),S=Number.parseFloat(v||"NaN");return Number.isFinite(S)?new Intl.NumberFormat("en-GB",{style:"currency",currency:"GBP",maximumFractionDigits:0,minimumFractionDigits:0}).format(Math.round(S)):String(m)}const H=[{name:"field",label:"Field",field:m=>{var v,S;return((S=(v=m.field)==null?void 0:v.replace(/_/g," "))==null?void 0:S.replace(/\b\w/g,J=>J.toUpperCase()))??""},align:"left"},{name:"old_value",label:"Old Value",field:"old_value",align:"left"},{name:"new_value",label:"New Value",field:"new_value",align:"left"},{name:"changed_by",label:"Changed By",align:"left",field:m=>m!=null&&m.user?[m.user.id,m.user.name,m.user.designation].filter(Boolean).join(" - "):"N/A"},{name:"created_at",label:"Updated At",field:"created_at",align:"left"}];function he(m){var S;if(m==null||m==="")return"N/A";const v=String(m).padStart(2,"0");return((S=N.months_list.find(J=>J.id===v))==null?void 0:S.name)??v}function De(m){if(!(m!=null&&m.remarks))return{};try{const v=JSON.parse(m.remarks);return v&&typeof v=="object"?v:{}}catch{return{}}}function B(m){const v=Number((m==null?void 0:m.discount_amount)??0);if(v>0)return v;const S=Number((m==null?void 0:m.before_discount_total)??0),J=Number((m==null?void 0:m.total)??0);return S>0&&J<S?Math.round((S-J)*100)/100:0}function i(m){var J;const S=De(m).discount_code??((J=m==null?void 0:m.discount_staff_user)==null?void 0:J.discount_code)??"";return S?String(S).toUpperCase():""}function c(m){var ve,X,Ve;const v=De(m);if(v.discount_description)return String(v.discount_description);const S=i(m),J=v.discount_staff_name??((ve=m==null?void 0:m.discount_staff_user)==null?void 0:ve.name)??"",U=v.discount_type??((X=m==null?void 0:m.discount_staff_user)==null?void 0:X.discount_type),te=v.discount_value??((Ve=m==null?void 0:m.discount_staff_user)==null?void 0:Ve.discount_value);return U==="percentage"&&te!=null?S?`Code ${S} (${J}) â ${te}% off`:`${J} â ${te}% off`:U==="fixed"&&te!=null?S?`Code ${S} (${J}) â £${Number(te).toFixed(2)} off`:`${J} â £${Number(te).toFixed(2)} off`:S?`Code ${S}`:J||""}function g(m){return B(m)>0}const h=Y(()=>{var J,U,te,ve;const m=[{name:"id",label:"Voucher ID",field:X=>X.id,align:"left"},{name:"payment_status",label:"Status",field:X=>X.is_paid==1?"Paid":"Unpaid",align:"left"},{name:"registration_fee",label:"Registration Fee",field:X=>I(X.registration_fee),align:"left"},{name:"admission_fee",label:"Admission Fee",field:X=>I(X.admission_fee),align:"left"},{name:"fee_month",label:"Month",field:X=>he(X.fee_month),align:"left"},{name:"fee_year",label:"Year",field:X=>X.fee_year??"N/A",align:"left"}];return(J=$.student_fee_cycle)==null||J.some(X=>X.billing_type==="hourly"),m.push({name:"due_date",label:"Due Date",field:X=>X.due_date?Ze(X.due_date).format("Do MMM YYYY"):"N/A",align:"left"},{name:"sub_total",label:(U=$.student_fee_cycle)!=null&&U.some(g)?"Subtotal (gross)":"Sub Total",field:X=>I((X==null?void 0:X.before_discount_total)>0?X.before_discount_total:X==null?void 0:X.sub_total),align:"left"}),((te=$.student_fee_cycle)==null?void 0:te.some(g))&&m.push({name:"discount_amount",label:"Discount",field:X=>g(X)?`-${I(B(X))}`:"â",align:"left"},{name:"discount_code",label:"Discount code",field:X=>i(X)||"â",align:"left"}),m.push({name:"total",label:"Total",field:X=>I(X==null?void 0:X.total),align:"left"}),((ve=$.student_fee_cycle)==null?void 0:ve.some(X=>X.is_paid==1))&&m.push({name:"transaction_id",label:"Transaction ID",field:"transaction_id",align:"left"}),m.push({name:"voucher_actions",label:"Actions",align:"center"}),m.push({name:"challan_download",label:"Challan",align:"center"}),m}),R=j(!1),y=j(null),ce=Y(()=>{var v;const m=(v=y.value)==null?void 0:v.billing_type;return m==="hourly"?"Hourly":m==="half_time"?"Half Time":m==="full_time"?"Full Time":"N/A"}),ke=Y(()=>{var v,S;const m=(v=y.value)==null?void 0:v.fee_month;return((S=N.months_list.find(J=>J.id===m))==null?void 0:S.name)??"N/A"}),le=m=>{$.getStudentFeeLogs(m.id).then(v=>{if(!v.status||!v.data.length){M.fire({icon:"info",title:"No Logs History",confirmButtonText:"OK"});return}D.value=v.data,d.value=!0},v=>{M.fire({icon:"error",text:(v==null?void 0:v.message)||"Failed to fetch Logs History.",confirmButtonText:"OK"})})},Ue=m=>{const v={student_id:u.value.student_id,id:u.value.id,billing_type:"hourly",total_hours_attended:m.total_hours_attended,funded_hours_used:m.funded_hours_used,hourly_rate_at_billing:m.hourly_rate_at_billing};$.updateStudentFeeStructure(v).then(S=>{M.fire({text:S.message,icon:"success",confirmButtonText:"Continue"}),ge({student_id:u.value.student_id}),o.value=!1},S=>{M.fire({text:(S==null?void 0:S.message)||"Failed to update hourly billing",icon:"error",confirmButtonText:"Continue"})})},We=m=>{const v={student_id:u.value.student_id,id:u.value.id,billing_type:"fixed",registration_fee:m.registration_fee,admission_fee:m.admission_fee,late_fee:m.late_fee,due_date:m.due_date};$.updateStudentFeeStructure(v).then(S=>{M.fire({text:S.message,icon:"success",confirmButtonText:"Continue"}),ge({student_id:u.value.student_id}),_.value=!1},S=>{M.fire({text:(S==null?void 0:S.message)||"Failed to update fixed billing",icon:"error",confirmButtonText:"Continue"})})},st=m=>m?Ze(m).format("Do MMMM YYYY, h:mm A"):"N/A",Ce=m=>m?Ze(m).format("Do MMM YYYY"):"N/A",L=m=>{y.value=m,R.value=!0},F=()=>{R.value=!1,y.value=null},de=async m=>{var v,S,J;if(m!=null&&m.id){O.value=m.id;try{const U=await w.downloadFeeVoucherPdf(m.id),te=U==null?void 0:U.data;if(!te||!(te instanceof Blob))throw new Error("Invalid response");if(te.type&&te.type.includes("application/json")){const Ae=await te.text(),Le=JSON.parse(Ae);
1throw new Error((Le==null?void 0:Le.message)||"Download failed")}const ve=(v=U.headers)==null?void 0:v["content-disposition"];let X=`fee-voucher-${m.id}.pdf`;if(ve&&/filename="?([^";]+)"?/i.test(ve)){const Ae=ve.match(/filename="?([^";]+)"?/i);Ae!=null&&Ae[1]&&(X=Ae[1])}const Ve=URL.createObjectURL(new Blob([te],{type:"application/pdf"})),Be=document.createElement("a");Be.href=Ve,Be.download=X,document.body.appendChild(Be),Be.click(),document.body.removeChild(Be),URL.revokeObjectURL(Ve)}catch(U){M.fire({icon:"error",title:"Download failed",text:((J=(S=U==null?void 0:U.response)==null?void 0:S.data)==null?void 0:J.message)||(U==null?void 0:U.message)||"Could not download the voucher PDF."})}finally{O.value=null}}},_e=async m=>{var v,S,J,U;if(!(!(m!=null&&m.id)||m.is_paid==1)){try{const te=await w.showFeeVoucher(m.id),ve=(te==null?void 0:te.data)??m;A.value={...ve,student_id:ve.student_id??((v=P==null?void 0:P.std_data)==null?void 0:v.id),student:ve.student??{name:((S=P==null?void 0:P.std_data)==null?void 0:S.name)??""}}}catch{A.value={...m,student_id:m.student_id??((J=P==null?void 0:P.std_data)==null?void 0:J.id),student:{name:((U=P==null?void 0:P.std_data)==null?void 0:U.name)??""}}}p.value=!0}},G=async m=>{var v,S,J,U;(v=Q.value)==null||v.setSaving(!0);try{const te={...m,student_id:m.student_id??((S=P==null?void 0:P.std_data)==null?void 0:S.id)},ve=await w.updateFeeVoucher(te);M.fire({icon:"success",text:(ve==null?void 0:ve.message)||"Voucher updated successfully.",confirmButtonText:"Continue"}),(J=Q.value)==null||J.close(),ge()}catch(te){M.fire({icon:"error",text:(te==null?void 0:te.message)||"Failed to update voucher.",confirmButtonText:"Continue"})}finally{(U=Q.value)==null||U.setSaving(!1)}},Ne=m=>{if(!(m!=null&&m.id)||m.is_paid==1)return;const v=he(m.fee_month),S=m.fee_year??"";M.fire({title:"Regenerate voucher?",html:`Recalculate fees for <strong>${v} ${S}</strong> using the student's current session setup?`,icon:"question",showCancelButton:!0,confirmButtonText:"Regenerate",cancelButtonText:"Cancel"}).then(J=>{J.isConfirmed&&me(m)})},me=m=>{var v;!((v=P==null?void 0:P.std_data)!=null&&v.id)||!(m!=null&&m.id)||(b.value=m.id,$.regenerateStudentVoucher({student_id:P.std_data.id,voucher_id:m.id}).then(S=>{M.fire({icon:"success",title:"Voucher regenerated",text:(S==null?void 0:S.message)||"Fees were recalculated for this month.",confirmButtonText:"Continue"}),ge()}).catch(S=>{M.fire({icon:"error",title:"Regenerate failed",text:(S==null?void 0:S.message)||"Could not regenerate this voucher. Check session info and try again.",confirmButtonText:"Continue"})}).finally(()=>{b.value=null}))},Ie=async m=>{var v;if(!(!ee.value||!(m!=null&&m.id)))try{const S={fee_structure_id:m.id},J=await ss.post("uk-admission-invoice/download",S,{responseType:"blob"}),U=(v=J.headers)==null?void 0:v["content-disposition"];let te="uk-admission-invoice.pdf";if(U&&/filename="?([^";]+)"?/i.test(U)){const Ve=U.match(/filename="?([^";]+)"?/i);Ve!=null&&Ve[1]&&(te=Ve[1])}else m.id&&(te=`admission-invoice-${String(m.id).replace(/[^a-zA-Z0-9_-]+/g,"-")}.pdf`);const ve=URL.createObjectURL(new Blob([J.data],{type:"application/pdf"})),X=document.createElement("a");X.href=ve,X.download=te,document.body.appendChild(X),X.click(),document.body.removeChild(X),URL.revokeObjectURL(ve)}catch(S){console.error("UK challan download failed:",S),M.fire({icon:"error",title:"Download failed",text:"Could not generate the challan PDF. Please try again."})}},ut=async()=>{var J,U,te,ve,X,Ve,Be,Ae,Le,Je,Te,Ke,Xe,lt,et;await ns();const m=document.querySelector(".hidden-print-content");if(!m)return;const v=m.querySelectorAll(".hide-print");v.forEach(ze=>ze.style.display="none");const S=window.open("","_blank");S.document.write(` 2 <html> 3 <head> 4 <title>Fee Invoice</title> 5 <style> 6 body { 7 font-family: 'Segoe UI', sans-serif; 8 margin: 20mm; 9 color: #333; 10 } 11 12 .invoice-container { 13 width: 100%; 14 max-width: 800px; 15 margin: auto; 16 } 17 18 .invoice-header { 19 text-align: center; 20 margin-bottom: 20px; 21 } 22 23 .invoice-header h2 { 24 font-size: 22px; 25 margin: 0; 26 color: #0d47a1; 27 } 28 29 .invoice-subtitle { 30 font-size: 14px; 31 color: #555; 32 margin-top: 5px; 33 } 34 35 .info-section { 36 margin-top: 20px; 37 font-size: 14px; 38 } 39 40 .info-section b { 41 display: inline-block; 42 width: 140px; 43 } 44 45 table { 46 width: 100%; 47 border-collapse: collapse; 48 margin-top: 25px; 49 font-size: 14px; 50 } 51 52 table th { 53 background-color: #e3f2fd; 54 text-align: left; 55 padding: 10px; 56 font-weight: 600; 57 border: 1px solid #ccc; 58 } 59 60 table td { 61 padding: 10px; 62 border: 1px solid #ccc; 63 } 64 65 @media print { 66 @page { 67 size: A4; 68 margin: 20mm; 69 } 70 } 71 </style> 72 </head> 73 <body> 74 <div class="invoice-container"> 75 <div class="invoice-header"> 76 <h2>Fee Invoice</h2> 77 <div class="invoice-subtitle"> 78 ${ke.value} ${(J=y.value)==null?void 0:J.fee_year} | 79 Transaction ID: ${(U=y.value)==null?void 0:U.transaction_id} 80 </div> 81 </div> 82 83 <div class="info-section"> 84 <div><b>Student ID:</b> ${(te=y.value)==null?void 0:te.student_id}</div> 85 <div><b>Billing Type:</b> ${ce.value}</div> 86 <div><b>Due Date:</b> ${Ce((ve=y.value)==null?void 0:ve.due_date)}</div> 87 </div> 88 89 <table> 90 <tbody> 91 <tr><th>Item</th><th>
91Amount</th></tr> 92 <tr><td>Registration Fee</td><td>${I((X=y.value)==null?void 0:X.registration_fee)}</td></tr> 93 <tr><td>Admission Fee</td><td>${I((Ve=y.value)==null?void 0:Ve.admission_fee)}</td></tr> 94 ${((Be=y.value)==null?void 0:Be.billing_type)==="hourly"?` 95 <tr><td>Total Hours Attended</td><td>${(Ae=y.value)==null?void 0:Ae.total_hours_attended}</td></tr> 96 <tr><td>Funded Hours Used</td><td>${(Le=y.value)==null?void 0:Le.funded_hours_used}</td></tr> 97 <tr><td>Hourly Rate</td><td>${I((Je=y.value)==null?void 0:Je.hourly_rate_at_billing)}</td></tr> 98 `:""} 99 <tr><td>${B(y.value)>0?"Subtotal (gross)":"Sub Total"}</td><td>${I(((Te=y.value)==null?void 0:Te.before_discount_total)>0?y.value.before_discount_total:(Ke=y.value)==null?void 0:Ke.sub_total)}</td></tr> 100 ${B(y.value)>0?`<tr><td>Discount${c(y.value)?`<br><small>${c(y.value)}</small>`:""}</td><td>-${I(B(y.value))}</td></tr>`:""} 101 ${_n(y.value).map(ze=>`<tr><td>${pn(ze)}<br><small>${ze.type} adjustment</small></td><td>${gn(ze,I)}</td></tr>`).join("")} 102 <tr><td>Total</td><td>${I((Xe=y.value)==null?void 0:Xe.total)}</td></tr> 103 <tr><td>Late Fee</td><td>${I((lt=y.value)==null?void 0:lt.late_fee)}</td></tr> 104 <tr><td>Late Fee Applied On</td><td>${Ce((et=y.value)==null?void 0:et.late_fee_applied_on)}</td></tr> 105 </tbody> 106 </table> 107 </div> 108 </body> 109 </html> 110 `),S.document.close(),S.focus(),S.print(),S.close(),v.forEach(ze=>ze.style.display="inline-block")},ge=()=>{var m;$.student_fee_cycle=[],K.student_id=(m=P==null?void 0:P.std_data)==null?void 0:m.id,$.getStudentFeeCycle(K).then(v=>{var S;$.fee_updated=!1,((S=v==null?void 0:v.data)==null?void 0:S.length)==0&&M.fire({text:"No record found",icon:"info",confirmButtonText:"Continue"})},v=>{M.fire({text:v==null?void 0:v.message,icon:"error",confirmButtonText:"Continue"})})},Ft=()=>{z.dialog({component:Ss,componentProps:{std_data:P==null?void 0:P.std_data}})};return fe(()=>$.fee_updated,(m,v)=>{$.fee_updated==!0&&(ge(),$.fee_updated=!1)}),fe(()=>$.is_add_fee_cycle_modal_closed,(m,v)=>{$.is_add_fee_cycle_modal_closed==!0&&(ge(),$.is_add_fee_cycle_modal_closed=!1)}),Ee(()=>{ge(),console.log("rec",P==null?void 0:P.std_data)}),(m,v)=>(f(),T(ue,null,[l(Ds,{modelValue:p.value,"onUpdate:modelValue":v[0]||(v[0]=S=>p.value=S),"row-data":A.value,ref_key:"editVoucherDialogRef",ref:Q,onSave:G},null,8,["modelValue","row-data"]),l(He,{modelValue:R.value,"onUpdate:modelValue":v[1]||(v[1]=S=>R.value=S)},{default:a(()=>[l(Fe,{class:"hidden-print-content",style:{"max-width":"850px",width:"100%",margin:"auto"}},{default:a(()=>[l(pe,{class:"q-px-lg q-pt-lg q-pb-none"},{default:a(()=>{var S,J;return[e("div",Es,[v[8]||(v[8]=e("div",{class:"text-h6 q-mb-xs"},"Fee Invoice",-1)),e("div",js,k(ke.value)+" "+k((S=y.value)==null?void 0:S.fee_year)+" | Transaction ID: "+k((J=y.value)==null?void 0:J.transaction_id),1)])]}),_:1}),l(pe,{class:"q-pt-md q-px-lg"},{default:a(()=>{var S,J,U,te,ve,X,Ve,Be,Ae,Le,Je,Te,Ke,Xe,lt;return[e("div",Qs,[e("div",null,[v[9]||(v[9]=e("strong",null,"Student ID:",-1)),W(" "+k((S=y.value)==null?void 0:S.student_id),1)]),e("div",null,[v[10]||(v[10]=e("strong",null,"Billing Type:",-1)),W(" "+k(ce.value),1)]),e("div",null,[v[11]||(v[11]=e("strong",null,"Due Date:",-1)),W(" "+k(Ce((J=y.value)==null?void 0:J.due_date)),1)])]),e("div",Hs,[e("table",Gs,[e("tbody",null,[e("tr",null,[v[12]||(v[12]=e("td",null,[e("strong",null,"Registration Fee")],-1)),e("td",null,k(I((U=y.value)==null?void 0:U.registration_fee)),1)]),e("tr",null,[v[13]||(v[13]=e("td",null,[e("strong",null,"Admission Fee")],-1)),e("td",null,k(I((te=y.value)==null?void 0:te.admission_fee)),1)]),((ve=y.value)==null?void 0:ve.billing_type)==="hourly"?(f(),T("tr",Ws,[v[14]||(v[14]=e("td",null,[e("strong",null,"Total Hours Attended")],-1)),e("td",null,k((X=y.value)==null?void 0:X.total_hours_attended),1)])):se("",!0),((Ve=y.value)==null?void 0:Ve.billing_type)==="hourly"?(f(),T("tr",Js,[v[15]||(v[15]=e("td",null,[e("strong",null,"Funded Hours Used")],-1)),e("td",null,k((Be=y.value)==null?void 0:Be.funded_hours_used),1)])):se("",!0),((Ae=y.value)==null?void 0:Ae.billing_type)==="hourly"?(f(),T("tr",Xs,[v[16]||(v[16]=e("td",null,[e("strong",null,"Hourly Rate")],-1)),e("td",null,k(I((Le=y.value)==null?void 0:Le.hourly_rate_at_billing)),1)])):se("",!0),e("tr",null,[e("td",null,[e("strong",null,k(B(y.value)>0?"Subtotal (gross)":"Sub Total"),1)]),e("td",null,k(I(((Je=y.value)==null?void 0:Je.before_discount_total)>0?y.value.before_discount_total:(Te=y.value)==null?void 0:Te.sub_total)),1)]),B(y.value)>0?(f(),T("tr",Zs,[e("td",null,[v[17]||(v[17]=e("strong",null,"Discount",-1)),c(y.value)?(f(),T("div",Ks,k(c(y.value)),1)):se("",!0)]),e("td",el," -"+k(I(B(y.value))),1)])):se("",!0),(f(!0),T(ue,null,qe(C(_n)(y.value),(et,ze)=>(f(),T("tr",{key:`fee-adj-${ze}`},[e("td",null,[e("strong",null,k(C(pn)(et)),1),e("div",tl,k(et.type)+" adjustment ",1)]),e("td",null,k(C(gn)(et,I)),1)]))),128)),e("tr",null,[v[18]||(v[18]=e("td",null,[e("strong",null,"Total")],-1)),e("td",null,k(I((Ke=y.value)==null?void 0:Ke.total)),1)]),e("tr",null,[v[19]||(v[19]=e("td",null,[e("strong",null,"Late Fee")
110],-1)),e("td",null,k(I((Xe=y.value)==null?void 0:Xe.late_fee)),1)]),e("tr",null,[v[20]||(v[20]=e("td",null,[e("strong",null,"Late Fee Applied On")],-1)),e("td",null,k(Ce((lt=y.value)==null?void 0:lt.late_fee_applied_on)),1)])])])]),e("div",nl,[l(oe,{label:"Print",color:"primary",onClick:ut,class:"hide-print"}),l(oe,{label:"Cancel",color:"red",class:"q-ml-sm hide-print",onClick:F})])]}),_:1})]),_:1})]),_:1},8,["modelValue"]),l(Ps,{modelValue:o.value,"onUpdate:modelValue":v[2]||(v[2]=S=>o.value=S),"row-data":u.value,onSave:Ue},null,8,["modelValue","row-data"]),l(Ys,{modelValue:_.value,"onUpdate:modelValue":v[3]||(v[3]=S=>_.value=S),"row-data":u.value,onSave:We},null,8,["modelValue","row-data"]),l(Fe,{class:"fee-cycle-card"},{default:a(()=>{var S;return[l(pe,{class:"q-pb-none row items-center justify-end"},{default:a(()=>[l(oe,{color:"primary",label:"Manual Voucher",icon:"add",unelevated:"","no-caps":"",onClick:Ft})]),_:1}),((S=C($).student_fee_cycle)==null?void 0:S.length)>0?(f(),T("div",sl,[l(pe,{class:"q-pt-none"},{default:a(()=>{var J;return[((J=C($).student_fee_cycle)==null?void 0:J.length)>0?(f(),T("div",ll,[(f(),ne(gt,{key:h.value.length,class:"my-sticky-table q-mt-md",rows:C($).student_fee_cycle,columns:h.value,filter:C(V),pagination:C(N).initialPagination},ts({"body-cell-id":a(U=>[l(be,{props:U},{default:a(()=>[e("span",null,k(U.row.id),1)]),_:2},1032,["props"])]),"body-cell-voucher_pdf":a(U=>[l(be,{props:U,class:"text-center"},{default:a(()=>[l(oe,{round:"",flat:"",dense:"",color:"primary",icon:"download",loading:O.value===U.row.id,onClick:Ye(te=>de(U.row),["stop"])},{default:a(()=>[l(mt,null,{default:a(()=>[...v[21]||(v[21]=[W("Download voucher (PDF)",-1)])]),_:1})]),_:1},8,["loading","onClick"])]),_:2},1032,["props"])]),"body-cell-payment_status":a(U=>[l(be,{props:U},{default:a(()=>[e("span",{class:we(U.row.is_paid==1?"text-positive":"text-negative")},k(U.row.is_paid==1?"Paid":"Unpaid"),3)]),_:2},1032,["props"])]),"body-cell-change_history":a(U=>[l(be,{props:U,class:"text-center"},{default:a(()=>[l(ie,{name:"description",color:"primary",size:"sm",class:"cursor-pointer",onClick:Ye(te=>le(U.row),["stop"])},null,8,["onClick"])]),_:2},1032,["props"])]),"body-cell-voucher_actions":a(U=>[l(be,{props:U,class:"text-center"},{default:a(()=>[U.row.is_paid!=1?(f(),T(ue,{key:0},[l(oe,{round:"",flat:"",dense:"",color:"primary",icon:"edit",onClick:Ye(te=>_e(U.row),["stop"])},{default:a(()=>[l(mt,null,{default:a(()=>[...v[22]||(v[22]=[W("Edit voucher manually",-1)])]),_:1})]),_:1},8,["onClick"]),l(oe,{round:"",flat:"",dense:"",color:"primary",icon:"refresh",loading:b.value===U.row.id,onClick:Ye(te=>Ne(U.row),["stop"])},{default:a(()=>[l(mt,null,{default:a(()=>[...v[23]||(v[23]=[W("Regenerate voucher for this month",-1)])]),_:1})]),_:1},8,["loading","onClick"])],64)):se("",!0)]),_:2},1032,["props"])]),"body-cell-student_id":a(U=>[l(be,{props:U},{default:a(()=>[e("span",null,k(U.row.student_id),1)]),_:2},1032,["props"])]),"top-right":a(U=>[l(oe,{flat:"",round:"",dense:"",icon:U.inFullscreen?"fullscreen_exit":"fullscreen",onClick:U.toggleFullscreen},null,8,["icon","onClick"]),l(re,{class:"tableSearch",borderless:"",dense:"",debounce:"300",modelValue:C(V),"onUpdate:modelValue":v[4]||(v[4]=te=>Qe(V)?V.value=te:V=te),placeholder:"Search"},{append:a(()=>[l(ie,{name:"search"})]),_:1},8,["modelValue"])]),_:2},[h.value.some(U=>U.name==="discount_amount")?{name:"body-cell-discount_amount",fn:a(U=>[l(be,{props:U},{default:a(()=>[g(U.row)?(f(),T("span",al," -"+k(I(B(U.row))),1)):(f(),T("span",ol,"â"))]),_:2},1032,["props"])]),key:"0"}:void 0,h.value.some(U=>U.name==="discount_code")?{name:"body-cell-discount_code",fn:a(U=>[l(be,{props:U},{default:a(()=>[i(U.row)?(f(),T(ue,{key:0},[l($t,{color:"deep-purple-2","text-color":"deep-purple-10",label:i(U.row)},null,8,["label"]),c(U.row)?(f(),ne(mt,{key:0,"max-width":"280px"},{default:a(()=>[W(k(c(U.row)),1)]),_:2},1024)):se("",!0)],64)):(f(),T("span",il,"â"))]),_:2},1032,["props"])]),key:"1"}:void 0,ee.value?{name:"body-cell-challan_download",fn:a(U=>[l(be,{props:U,class:"text-center"},{default:a(()=>[l(ie,{name:"download",color:"primary",size:"sm",class:"cursor-pointer",onClick:Ye(te=>Ie(U.row),["stop"])},null,8,["onClick"])]),_:2},1032,["props"])]),key:"2"}:void 0,h.value.some(U=>U.name==="transaction_id")?{name:"body-cell-transaction_id",fn:a(U=>[l(be,{props:U},{default:a(()=>[U.row.is_paid==1?(f(),T("span",dl,k(U.row.transaction_id),1)):(f(),T("span",ul,"N/A"))]),_:2},1032,["props"])]),key:"3"}:void 0,h.value.some(U=>U.name==="transaction_id")?{name:"body-cell-print_invoice",fn:a(U=>[l(be,{props:U},{default:a(()=>[U.row.is_paid==1?(f(),ne(ie,{key:0,name:"print",color:"primary",size:"sm",class:"cursor-pointer",onClick:te=>L(U.row)},null,8,["onClick"])):(f(),T("span",rl,"N/A"))]),_:2},1032,["props"])]),key:"4"}:void 0]),1032,["rows","columns","filter","pagination"]))])):se("",!0)]}),_:1})])):se("",!0)]}),_:1}
110),l(He,{modelValue:d.value,"onUpdate:modelValue":v[7]||(v[7]=S=>d.value=S)},{default:a(()=>[l(Fe,{style:{"max-width":"900px",width:"100%","max-height":"600px"}},{default:a(()=>[l(pe,{class:"text-h5 text-center"},{default:a(()=>[...v[24]||(v[24]=[W(" Fee Logs ",-1)])]),_:1}),l(pe,{class:"q-pt-none"},{default:a(()=>[l(gt,{rows:D.value,columns:H,filter:C(x),"row-key":"id",class:"my-sticky-table q-mt-md styled-log-table",flat:"",bordered:"",pagination:{rowsPerPage:10}},{"body-cell-old_value":a(S=>[l(be,{props:S},{default:a(()=>[W(k(S.row.old_value),1)]),_:2},1032,["props"])]),"body-cell-new_value":a(S=>[l(be,{props:S},{default:a(()=>[W(k(S.row.new_value),1)]),_:2},1032,["props"])]),"body-cell-user":a(S=>[l(be,{props:S},{default:a(()=>{var J;return[W(k(((J=S.row.user)==null?void 0:J.name)??"N/A"),1)]}),_:2},1032,["props"])]),"body-cell-created_at":a(S=>[l(be,{props:S},{default:a(()=>[W(k(st(S.row.created_at)??"N/A"),1)]),_:2},1032,["props"])]),"top-right":a(S=>[l(oe,{flat:"",round:"",dense:"",icon:S.inFullscreen?"fullscreen_exit":"fullscreen",onClick:S.toggleFullscreen},null,8,["icon","onClick"]),l(re,{class:"tableSearch",borderless:"",dense:"",debounce:"300",modelValue:C(x),"onUpdate:modelValue":v[5]||(v[5]=J=>Qe(x)?x.value=J:x=J),placeholder:"Search"},{append:a(()=>[l(ie,{name:"search"})]),_:1},8,["modelValue"])]),_:1},8,["rows","filter"])]),_:1}),l(Me,{align:"right"},{default:a(()=>[l(oe,{label:"Close",color:"red",onClick:v[6]||(v[6]=S=>d.value=!1)})]),_:1})]),_:1})]),_:1},8,["modelValue"])],64))}},ml=Ge(cl,[["__scopeId","data-v-c2c9f7f7"]]),fl={class:"row q-col-gutter-md student-basic-info-grid"},_l={class:"col-12 col-lg-6"},pl={class:"info-card student-basic-info-card"},gl={class:"q-mb-xs"},vl={class:"q-mb-xs"},yl={class:"q-mb-xs"},bl={class:"q-mb-xs"},hl={class:"col-12 col-lg-6"},kl={class:"info-card student-basic-info-card"},xl={class:"q-mb-xs"},Sl={class:"q-mb-xs"},$l={class:"q-mb-xs"},Dl={__name:"UpdateStudentDialog",props:["std_data"],setup(ae){let $=ae;const q=Ct();ls();const w=dt(),N=it();j(1),j(!1),j(!1),j([1,2,3,4]),j([]);const z=new Date;z.getMonth(),z.getFullYear(),j([]);let V=j({}),x=j({});j("");const O=j("");function b(){const B=new Date,i=B.getFullYear(),c=String(B.getMonth()+1).padStart(2,"0"),g=String(B.getDate()).padStart(2,"0");return`${i}-${c}-${g}`}function p(B){const c=String(B??"").trim().split(/[T\s]/)[0].match(/^(\d{4})-(\d{1,2})-(\d{1,2})$/);if(!c)return"";const g=Number(c[1]),h=Number(c[2]),R=Number(c[3]);if(!Number.isFinite(g)||!Number.isFinite(h)||!Number.isFinite(R))return"";const y=new Date(g,h-1,R);return y.getFullYear()!==g||y.getMonth()!==h-1||y.getDate()!==R?"":`${g}-${String(h).padStart(2,"0")}-${String(R).padStart(2,"0")}`}function A(B){const c=String(B??"").trim().match(/^(\d{2})\/(\d{2})\/(\d{4})$/);if(!c)return"";const g=Number(c[1]),h=Number(c[2]),R=Number(c[3]);if(h<1||h>12||g<1||g>31)return"";const y=new Date(R,h-1,g);return y.getFullYear()!==R||y.getMonth()!==h-1||y.getDate()!==g?"":`${R}-${String(h).padStart(2,"0")}-${String(g).padStart(2,"0")}`}function Q(B){const i=p(B);if(!i)return"";const[c,g,h]=i.split("-");return`${h}/${g}/${c}`}function o(B){const i=p(B);return i?i.replace(/-/g,"/"):null}function _(B){return B?p(String(B).replace(/\//g,"-")):""}function u(B){return _(B)<=b()}function d(B){const i=_(B);H.std_dob=i||null,O.value=Q(i)}function D(B){const i=String(B??"").trim();if(i)return i;const c=String(O.value??"").trim();return c||Q(H.std_dob)}const P=B=>{const i=D(B);return i?A(i)?!0:"Enter a valid date (dd/mm/yyyy)":"This field is required"},K=B=>{const i=A(String(D(B)??"").trim());return i?i<=b()||"DOB exceeds limit":!0},ee=Y(()=>({fontSize:N.screen.xs||N.screen.sm?"1.2rem":"1.25rem"})),I=Y(()=>({width:"100%"}));let H=$e({id:null,parent_id:null,parent_name:null,parent_country_id:null,parent_email:null,parent_phone:null,std_name:null,std_dob:null,gender:null,profile_avatar:null});$e({id:null,parent_id:null});const he=()=>{w.updateStudent(H).then(B=>{(B==null?void 0:B.status)==!0?(w.is_student_profile_updated=!0,M.fire({text:(B==null?void 0:B.message)??"Success!",icon:"success",confirmButtonText:"Continue"})):M.fire({text:(B==null?void 0:B.message)??"An error occured",icon:"error",confirmButtonText:"Continue"})},B=>{M.fire({text:(B==null?void 0:B.message)??"An error occured",icon:"error",confirmButtonText:"Continue"})})},De=()=>{var B;
110(B=q.all_countries)==null||B.forEach(i=>{i.id==H.parent_country_id&&(q.selected_country=i==null?void 0:i.iso)})};return fe(()=>q.phone_no,(B,i)=>{H.parent_phone=B}),fe(()=>H.std_dob,B=>{const i=p(B),c=Q(B),g=A(String(O.value??"").trim());i&&g===i||c!==O.value&&(O.value=c)}),fe(O,B=>{if(String(B??"").replace(/\D/g,"").length===0){H.std_dob!=null&&H.std_dob!==""&&(H.std_dob=null);return}const c=A(String(B??"").trim());c&&H.std_dob!==c&&(H.std_dob=c)}),as(()=>{!($!=null&&$.std_data)||Object.keys($.std_data).length===0||!$.std_data.id||!$.std_data.parent_id||H.id===$.std_data.id&&H.parent_id===$.std_data.parent_id||(H.id=$.std_data.id,H.parent_id=$.std_data.parent_id,w.getStudentInfo(H).then(B=>{var i,c,g,h,R;V.value=B.student_record,x.value=B.parent_record,H.parent_name=(i=x==null?void 0:x.value)==null?void 0:i.name,H.parent_email=(c=x==null?void 0:x.value)==null?void 0:c.email,H.std_name=V.value.name,H.std_dob=p(V.value.dob)||null,H.gender=V.value.gender,q.phone_no=((g=x==null?void 0:x.value)==null?void 0:g.phone)??null,H.parent_country_id=(h=x==null?void 0:x.value)!=null&&h.country_id?parseInt((R=x==null?void 0:x.value)==null?void 0:R.country_id):null},B=>{M.fire({text:B==null?void 0:B.message,icon:"error",confirmButtonText:"Continue"})}))}),Ee(()=>{q.getAllCountries().then(B=>{},B=>{M.fire({text:B==null?void 0:B.message,icon:"error",confirmButtonText:"Continue"})})}),zt(()=>{q.phone_no=null,q.selected_country=null}),(B,i)=>(f(),ne(Fe,{flat:"",class:"update-std-card app-form-card"},{default:a(()=>[l(Re,{onSubmit:i[8]||(i[8]=c=>he()),class:"addStudentForm"},{default:a(()=>[l(pe,{class:"q-pt-none q-pb-none"},{default:a(()=>[e("div",fl,[e("div",_l,[e("div",pl,[e("div",{class:"info-card__title",style:Oe(ee.value)}," Parent Info / Login Info ",4),e("div",gl,[i[9]||(i[9]=e("label",{class:"label-required"},"Name",-1)),l(re,{outlined:"",dense:"",modelValue:C(H).parent_name,"onUpdate:modelValue":i[0]||(i[0]=c=>C(H).parent_name=c),rules:[c=>c!==null&&c!==""||"This field is required"],style:Oe(I.value)},null,8,["modelValue","rules","style"])]),e("div",vl,[i[10]||(i[10]=e("label",{class:"label-required"},"Email",-1)),l(re,{type:"email",outlined:"",dense:"",modelValue:C(H).parent_email,"onUpdate:modelValue":i[1]||(i[1]=c=>C(H).parent_email=c),rules:[c=>c!==null&&c!==""||"This field is required"],style:Oe(I.value)},null,8,["modelValue","rules","style"])]),e("div",yl,[i[11]||(i[11]=e("label",{class:"label-required"},"Country",-1)),l(Pe,{outlined:"",dense:"",modelValue:C(H).parent_country_id,"onUpdate:modelValue":[i[2]||(i[2]=c=>C(H).parent_country_id=c),i[3]||(i[3]=c=>De())],options:C(q).all_countries,"option-value":"id",rules:[c=>c!==null&&c!==""||"This field is required"],"option-label":"name","map-options":"","emit-value":"",style:Oe(I.value)},null,8,["modelValue","options","rules","style"])]),e("div",bl,[i[12]||(i[12]=e("label",{class:"label-required"},"Phone No.",-1)),l(qs,{modelValue:C(q).phone_no,"onUpdate:modelValue":i[4]||(i[4]=c=>C(q).phone_no=c),style:Oe(I.value)},null,8,["modelValue","style"])])])]),e("div",hl,[e("div",kl,[e("div",{style:Oe(ee.value),class:"info-card__title"}," Student Info ",4),e("div",xl,[i[13]||(i[13]=e("label",{class:"label-required"},"Name",-1)),l(re,{outlined:"",dense:"",modelValue:C(H).std_name,"onUpdate:modelValue":i[5]||(i[5]=c=>C(H).std_name=c),rules:[c=>c!==null&&c!==""||"This field is required"],style:Oe(I.value)},null,8,["modelValue","rules","style"])]),e("div",Sl,[i[14]||(i[14]=e("label",{class:"label-required"},"Date of Birth",-1)),l(re,{modelValue:O.value,"onUpdate:modelValue":i[6]||(i[6]=c=>O.value=c),mask:"##/##/####","fill-mask":!1,outlined:"",dense:"",placeholder:"dd/mm/yyyy",style:Oe(I.value),rules:[P,K]},{append:a(()=>[l(ie,{name:"event",class:"cursor-pointer"},{default:a(()=>[l($n,{cover:"","transition-show":"scale","transition-hide":"scale"},{default:a(()=>[l(Sn,{"model-value":o(C(H).std_dob),options:u,"onUpdate:modelValue":d},null,8,["model-value","onUpdate:modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue","style","rules"])]),e("div",$l,[i[15]||(i[15]=e("label",{class:"label-required"}
110,"Gender",-1)),l(Pe,{outlined:"",dense:"",modelValue:C(H).gender,"onUpdate:modelValue":i[7]||(i[7]=c=>C(H).gender=c),options:C(q).gender,"option-value":"id","option-label":"name","map-options":"","emit-value":"",style:Oe(I.value),rules:[c=>c!==null&&c!==""||"This field is required"]},null,8,["modelValue","options","style","rules"])])])])])]),_:1}),l(Me,{style:{display:"flex"},align:"right"},{default:a(()=>[l(oe,{color:"primary",type:"submit"},{default:a(()=>[...i[16]||(i[16]=[W("Update",-1)])]),_:1})]),_:1})]),_:1})]),_:1}))}},Cl=Ge(Dl,[["__scopeId","data-v-1e06296e"]]),Fl='<circle cx="15" cy="15" r="15"><animate attributeName="r" from="15" to="15" begin="0s" dur="0.8s" values="15;9;15" calcMode="linear" repeatCount="indefinite"></animate><animate attributeName="fill-opacity" from="1" to="1" begin="0s" dur="0.8s" values="1;.5;1" calcMode="linear" repeatCount="indefinite"></animate></circle><circle cx="60" cy="15" r="9" fill-opacity=".3"><animate attributeName="r" from="9" to="9" begin="0s" dur="0.8s" values="9;15;9" calcMode="linear" repeatCount="indefinite"></animate><animate attributeName="fill-opacity" from=".5" to=".5" begin="0s" dur="0.8s" values=".5;1;.5" calcMode="linear" repeatCount="indefinite"></animate></circle><circle cx="105" cy="15" r="15"><animate attributeName="r" from="15" to="15" begin="0s" dur="0.8s" values="15;9;15" calcMode="linear" repeatCount="indefinite"></animate><animate attributeName="fill-opacity" from="1" to="1" begin="0s" dur="0.8s" values="1;.5;1" calcMode="linear" repeatCount="indefinite"></animate></circle>',ql=yn({name:"QSpinnerDots",props:os,setup(ae){const{cSize:$,classes:q}=is(ae);return()=>pt("svg",{class:q.value,fill:"currentColor",width:$.value,height:$.value,viewBox:"0 0 120 30",xmlns:"http://www.w3.org/2000/svg",innerHTML:Fl})}}),Vl={class:"student-notes-layout"},Nl={class:"q-mt-sm"},Tl={class:"info-card student-notes-list-card"},Al={class:"note-avatar"},wl=["src"],Ul={class:"note-body"},Bl={class:"note-header"},Ml={class:"note-author"},Ol={class:"note-timestamp"},Pl={class:"note-severity"},Rl=["innerHTML"],Il={key:0},Ll="https://cdn-icons-png.flaticon.com/512/847/847969.png",zl={__name:"StudentNotesPage",props:{std_data:Object},setup(ae){var b;ds(),it();const $=dt(),q=Ct();let w=ae;const N=$e({id:(b=w==null?void 0:w.std_data)==null?void 0:b.id,severity:"",description:""}),z=p=>{switch(p){case"Moderate":return"#e9f7ef";case"Cautious":return"#fcfcd9";case"Important":return"#fff0f0";default:return"#f9f9ff"}},V=()=>{var p,A;console.log("Student Id"),console.log((p=w==null?void 0:w.std_data)==null?void 0:p.id),$.getStudentNotes((A=w==null?void 0:w.std_data)==null?void 0:A.id).then(Q=>{console.log(Q)},Q=>{M.fire({text:Q==null?void 0:Q.message,icon:"error",confirmButtonText:"Continue"})})},x=()=>{$.addNote(N).then(p=>{var A;M.fire({text:p==null?void 0:p.message,icon:"success",confirmButtonText:"Continue"}),(A=document.getElementById("reset-btn-std-notes"))==null||A.click(),V()},p=>{M.fire({text:p==null?void 0:p.message,icon:"error",confirmButtonText:"Continue"})})},O=()=>{N.severity=null,N.description=null};return Ee(()=>{V()}),(p,A)=>{var Q,o,_,u,d,D,P;return f(),T("div",Vl,[l(Re,{class:"info-card student-notes-form-card",onSubmit:x,onReset:O},{default:a(()=>[l(pe,{style:{"padding-bottom":"0",padding:"0"}},{default:a(()=>[A[4]||(A[4]=e("div",{class:"info-card__title"}," Add note ",-1)),e("div",null,[A[2]||(A[2]=e("label",{class:"label-required"},"Severity",-1)),l(Pe,{dense:"",outlined:"",options:C(q).note_severities,modelValue:N.severity,"onUpdate:modelValue":A[0]||(A[0]=K=>N.severity=K),rules:[K=>!!K||"This field is required"]},null,8,["options","modelValue","rules"])]),e("div",Nl,[A[3]||(A[3]=e("label",{class:"label-required"},"Description",-1)),l(re,{modelValue:N.description,"onUpdate:modelValue":A[1]||(A[1]=K=>N.description=K),type:"textarea",outlined:"",dense:"",rows:"6",style:{"min-height":"120px"},rules:[K=>!!K||"This field is required"]},null,8,["modelValue","rules"])])]),_:1}),l(Me,{align:"right",class:"q-mr-sm",style:{"padding-top":"0"}},{default:a(()=>[l(oe,{color:"secondary",id:"reset-btn-std-notes",style:{display:"none"},type:"reset"},{default:a(()=>
110[...A[5]||(A[5]=[W("Reset",-1)])]),_:1}),l(oe,{color:"primary",id:"closeBtn",type:"submit"},{default:a(()=>[...A[6]||(A[6]=[W("Submit",-1)])]),_:1})]),_:1})]),_:1}),e("div",Tl,[A[7]||(A[7]=e("div",{class:"info-card__title"},"Notes",-1)),e("div",{style:Oe({height:((o=(Q=C($))==null?void 0:Q.student_notes)==null?void 0:o.length)>0?"25rem":"fit-content",overflow:((u=(_=C($))==null?void 0:_.student_notes)==null?void 0:u.length)>0?"auto":"visible"})},[(f(!0),T(ue,null,qe((d=C($))==null?void 0:d.student_notes,K=>{var ee;return f(),T(ue,{key:K.id},[(f(!0),T(ue,null,qe((ee=C($))==null?void 0:ee.student_notes,I=>{var H,he;return f(),T("div",{class:"note-card",style:Oe({backgroundColor:z(I==null?void 0:I.severity)}),key:I.id},[e("div",Al,[e("img",{src:((H=I==null?void 0:I.user)==null?void 0:H.avatar)||Ll,width:"50"},null,8,wl)]),e("div",Ul,[e("div",Bl,[e("span",Ml,k(((he=I==null?void 0:I.user)==null?void 0:he.name)||"N/A"),1),e("span",Ol,k(new Date(I==null?void 0:I.created_at).toLocaleDateString("en-GB"))+" at "+k(new Date(I==null?void 0:I.created_at).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!0})),1)]),e("div",Pl,[l($t,{color:(I==null?void 0:I.severity)==="Moderate"?"green":(I==null?void 0:I.severity)==="Cautious"?"yellow-7":(I==null?void 0:I.severity)==="Important"?"red":"grey","text-color":"white"},{default:a(()=>[W(k((I==null?void 0:I.severity)||"N/A"),1)]),_:2},1032,["color"])]),e("div",{class:"note-description",innerHTML:(I==null?void 0:I.description)||"N/A"},null,8,Rl)])],4)}),128))],64)}),128))],4),((P=(D=C($))==null?void 0:D.student_notes)==null?void 0:P.length)>0?(f(),T("hr",Il)):se("",!0)])])}}},Yl=Ge(zl,[["__scopeId","data-v-f820c9d0"]]),El={style:{"margin-top":"-10px"},class:"col-12 col-xl-3 col-lg-3 col-md-3 col-sm-6"},jl={style:{"margin-top":"-10px"},class:"col-12 col-xl-3 col-lg-3 col-md-3 col-sm-6"},Ql={style:{"margin-top":"13px","margin-left":"8px"},class:"col-12 col-xl-2 col-lg-2 col-md-2 col-sm-6"},Hl={key:0,class:"q-mt-md student-status-history-empty"},Gl={key:1,class:"q-mt-md student-status-history-table-wrap"},Wl={class:"main-form-container student-status-history-table"},Jl={__name:"StudentStatusHistory",props:{id:{type:Number,required:!0}},setup(ae){const $=ae;it();const q=Ct(),w=dt(),{status_history:N}=tt(w);let z=j("");const V=j(!1);let x=$e({from_date:null,to_date:null});const O=[{name:"index",label:"Sr. No",align:"left"},{name:"status",label:"Status Name",align:"left",field:p=>{var A;return((A=p==null?void 0:p.status)==null?void 0:A.name)??"N/A"}},{name:"assignment_state",label:"State",align:"left",field:p=>p!=null&&p.assignment_status?"Current":"Past"},{label:"Assigned By",align:"left",field:p=>{const A=p==null?void 0:p.assigned_by;if(!A)return"N/A";const Q=(A==null?void 0:A.id)||null,o=(A==null?void 0:A.name)||null,_=(A==null?void 0:A.designation)||null;return[Q,o,_].filter(Boolean).join(" - ")}},{label:"Assigned On",align:"left",field:p=>p!=null&&p.created_at?Ze(p.created_at).format("Do MMM YYYY"):"N/A"}],b=async(p=!1)=>{var Q;const A={student_id:$.id,from_date:x.from_date||null,to_date:x.to_date||null};try{const o=await w.getStudentStatusHistory(A);if(V.value=!0,(o==null?void 0:o.status)===!1){M.fire({text:(o==null?void 0:o.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"});return}p&&!((Q=o==null?void 0:o.data)!=null&&Q.length)&&M.fire({text:"No records found for the selected date range",icon:"info",confirmButtonText:"Continue"})}catch(o){V.value=!0,M.fire({text:(o==null?void 0:o.message)||"Could not load status history",icon:"error",confirmButtonText:"Continue"})}};return Ee(()=>{b(!1)}),(p,A)=>(f(),T(ue,null,[l(Re,{onSubmit:A[2]||(A[2]=Ye(Q=>b(!0),["prevent"])),class:"row main-form-container q-col-gutter-sm q-mt-none"},{default:a(()=>[e("div",El,[A[4]||(A[4]=e("label",null,"From Date",-1)),l(re,{outlined:"",dense:"",modelValue:C(x).from_date,"onUpdate:modelValue":A[0]||(A[0]=Q=>C(x).from_date=Q),type:"date"},null,8,["modelValue"])]),e("div",jl,[A[5]||(A[5]=e("label",null,"To Date",-1)),l(re,{outlined:"",dense:"",modelValue:C(x).to_date,"onUpdate:modelValue":A[1]||(A[1]=Q=>C(x).to_date=Q),type:"date"},null,8,["modelValue"])]),e("div",Ql,[l(oe,{color:"primary",type:"submit",label:"Submit"})])]),_:1}),V.value&&(!C(N)||C(N).length===0)?(f(),T("div",Hl,[l(ie,{name:"history",size:"32px",color:"grey-6"}),A[6]||(A[6]=e("p",null,"No status history found for the selected date range.",-1))])):C(N)&&C(N).length>0?(f(),T("div",Gl,[e("div",Wl,[l(gt,{flat:"",bordered:"",class:"my-sticky-table",rows:C(N),columns:O,"row-key":"id",pagination:C(q).initialPagination,filter:C(z)},{"top-right":a(Q=>[l(oe,{flat:"",round:"",dense:"",icon:Q.inFullscreen?"fullscreen_exit":"fullscreen",onClick:Q.toggleFullscreen},{default:a(()=>[l(mt,null,{default:a(()=>[W(k(Q.inFullscreen?"Exit Fullscreen":"Toggle Fullscreen"),1)]),_:2},1024)]),_:2},1032,["icon","onClick"]),l(re,{class:"tableSearch",borderless:"",dense:"",debounce:"300",modelValue:C(z),"onUpdate:modelValue":A[3]||(A[3]=o=>Qe(z)?z.value=o:z=o),placeholder:"Search"},{append:a(()=>[l(ie,{name:"search"})]),_:1},8,["modelValue"])]),"body-cell-index":a(Q=>[l(be,{props:Q},{default:a(()=>[W(k(Q.pageIndex+1),1)]),_:2},1032,["props"])]),"body-cell-status":a(Q=>[l(be,{props:Q},{default:a(()=>{var o,_,u,d;return[l(mn,{label:((_=(o=Q.row)==null?void 0:o.status)==null?void 0:_.name)??"N/A",color:((d=(u=Q.row)==null?void 0:u.status)==null?void 0:d.color_code)||"#6b7280"},null,8,["label","color"])]}),_:2},1032,["props"])]),"body-cell-assignment_state":a(Q=>[l(be,{props:Q},{default:a(()=>{var o,_;return[l(mn,{label:(o=Q.row)!=null&&o.assignment_status?"Current":"Past",variant:(_=Q.row)!=null&&_.assignment_status?"green":"grey"},null,8,["label","variant"])]}),_:2},1032,["props"])]),_:1},8,["rows","pagination","filter"])])])):se("",!0)],64))}}
110,Xl=Ge(Jl,[["__scopeId","data-v-50296e8e"]]),Zl={class:"text-h5 text-center text-capitalize"},Kl={class:"col-lg-6 col-md-6 col-sm-6 col-xs-12"},ea={class:"col-lg-6 col-md-6 col-sm-6 col-xs-12"},ta={class:"col-lg-6 col-md-6 col-sm-6 col-xs-12"},na={class:"col-lg-6 col-md-6 col-sm-6 col-xs-12"},sa={class:"col-12 q-mt-md"},la={__name:"ObservationsModal",props:["title","std_id"],setup(ae){const $=ae,q=Vs(),w=Lt(),N=vt(),{milestones_through_areas:z}=tt(N),{activity_areas:V}=tt(q),x=$e({student_id:null,attachment:null,milestone_area_id:null,milestone_id:null,note:null,observation_date:null});let O=$e({branch_id:[]});const b=_=>`${_==null?void 0:_.title} (${_==null?void 0:_.age_min_months} - ${_==null?void 0:_.age_max_months} months)`,p=async()=>{var u;z.value=[],x.milestone_id=null;let _={student_id:$==null?void 0:$.std_id,milestone_area_id:x.milestone_area_id};try{const d=await N.getMilestonesOnBasisOfMilestoneAreas(_);(d==null?void 0:d.status)===!1?M.fire({text:(d==null?void 0:d.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"}):((u=d==null?void 0:d.data)==null?void 0:u.length)==0&&M.fire({text:" No milestones found for the selected area. Please add milestones that are in the range of student's age.",icon:"info",confirmButtonText:"Continue"})}catch(d){M.fire({text:(d==null?void 0:d.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"})}},A=async()=>{try{const _=await N.addObservation(x);(_==null?void 0:_.status)===!1?M.fire({text:(_==null?void 0:_.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"}):(M.fire({text:(_==null?void 0:_.message)||"Observation added successfully",icon:"success",confirmButtonText:"Continue"}),N.is_observation_modal_closed=!0,document.getElementById("closeBtn").click())}catch(_){M.fire({text:(_==null?void 0:_.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"})}},Q=()=>{q.getActivityAreas(x).then(_=>{var u;((u=_==null?void 0:_.data)==null?void 0:u.length)==0&&M.fire({text:"No record found",icon:"info",confirmButtonText:"Continue"})},_=>{M.fire({text:_==null?void 0:_.message,icon:"error",confirmButtonText:"Continue"})})},o=async()=>{};return bn(()=>{w.getUser().then(_=>{var u,d;((u=_==null?void 0:_.selected_branch)==null?void 0:u.length)>0&&((d=_==null?void 0:_.selected_branch)==null||d.forEach((D,P)=>{var K,ee;(ee=O.branch_id)==null||ee.push((K=D==null?void 0:D.branch)==null?void 0:K.id)}),Q())})}),hn(()=>{z.value=[]}),Ee(()=>{x.student_id=$==null?void 0:$.std_id,($==null?void 0:$.title)=="Update"}),(_,u)=>(f(),ne(He,{ref:"dialogRef",persistent:""},{default:a(()=>[l(Fe,{style:{width:"700px","max-width":"90vw"}},{default:a(()=>[l(pe,{class:"q-pt-sm q-pb-xs"},{default:a(()=>[e("div",Zl,k($==null?void 0:$.title)+" Observation ",1)]),_:1}),u[14]||(u[14]=e("hr",null,null,-1)),l(Re,{onSubmit:u[6]||(u[6]=d=>($==null?void 0:$.title)=="Add"?A():o())},{default:a(()=>[l(pe,{class:"q-pt-none q-pb-none row q-col-gutter-sm"},{default:a(()=>[e("div",Kl,[u[7]||(u[7]=e("label",{class:"label-required"},"Milestone Area",-1)),l(Pe,{dense:"",outlined:"",modelValue:x.milestone_area_id,"onUpdate:modelValue":[u[0]||(u[0]=d=>x.milestone_area_id=d),u[1]||(u[1]=d=>p())],options:C(V),"option-value":"id","option-label":"name","emit-value":"","map-options":"",rules:[d=>d!==null&&d!==""||"This field is required"]},null,8,["modelValue","options","rules"])]),e("div",ea,[u[8]||(u[8]=e("label",{class:"label-required"},"Milestone",-1)),l(Pe,{dense:"",outlined:"",modelValue:x.milestone_id,"onUpdate:modelValue":u[2]||(u[2]=d=>x.milestone_id=d),options:C(z),"option-value":"id","option-label":b,"emit-value":"","map-options":"",rules:[d=>d!==null&&d!==""||"This field is required"]},null,8,["modelValue","options","rules"])]),e("div",ta,[u[9]||(u[9]=e("label",{class:"label-required"},"Observation Date",-1)),l(re,{type:"date",dense:"",outlined:"",modelValue:x.observation_date,"onUpdate:modelValue":u[3]||(u[3]=d=>x.observation_date=d),rules:[d=>d!==null&&d!==""||"This field is required"]},null,8,["modelValue","rules"])]),e("div",na,[u[10]||(u[10]=e("label",null,"Attachment",-1)),l(Et,{outlined:"",dense:"",modelValue:x.attachment,"onUpdate:modelValue":u[4]||(u[4]=d=>x.attachment=d)},{prepend:a(()=>[l(ie,{name:"attach_file"})]),_:1},8,["modelValue"])]),e("div",sa,[u[11]||(u[11]=e("label",null,"Notes",-1)),l(re,{type:"textarea",modelValue:x.note,"onUpdate:modelValue":u[5]||(u[5]=d=>x.note=d),dense:"",outlined:""},null,8,["modelValue"])])]),_:1}),l(Me,{align:"right",class:"q-mt-sm"},{default:a(()=>[nt((f(),ne(oe,{id:"closeBtn",color:"red"},{default:a(()=>[...u[12]||(u[12]=[W("Cancel",-1)])]),_:1})),[[ot]]),l(oe,{color:"primary",type:"submit",class:"q-mr-xs"},{default:a(()=>[...u[13]||(u[13]=[W("Submit",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},512))}},aa={class:"q-mt-sm q-ml-auto q-mr-md",style:{width:"fit-content"}},oa={class:"q-mt-lg q-mr-md q-ml-sm q-mb-md"},ia={class:"col-12 col-xl-4 col-lg-4 col-md-4 col-sm-4 col-xs-12 q-mb-md"},da={class:"col-12 col-xl-4 col-lg-4 col-md-4 col-sm-4 col-xs-12 q-mb-md"},ua={key:0,class:"q-mr-md q-ml-sm q-mb-md"},ra=["href"],ca={__name:"index",props:["std_data"],setup(ae){const $=j({page:1,rowsPerPage:15});let q=j(""),w=j(!1),N=j("");const z=vt(),V=it(),x=ae,{observations_list:O}=tt(z);let b=$e({student_id:null,to:null,from:null});const p=[{label:"Milestone",align:"left",field:_=>{var u;return((u=_==null?void 0:_.milestone)==null?void 0:u.title)??"N/A"}},{label:"Observation Date",align:"left",field:_=>_!=null&&_.observation_date?Ze(_==null?void 0:_.observation_date).format("MM-DD-YYYY"):"N/A"},{label:"Note",align:"left",name:"note"},{label:"Attachment",align:"left",name:"attachment"}],A=async()=>{var _,u;b.student_id=(_=x==null?void 0:x.std_data)==null?void 0:_.id;try{const d=await z.getObservations(b);(d==null?void 0:d.status)===!1?M.fire({text:(d==null?void 0:d.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"}):((u=d==null?void 0:d.data)==null?void 0:u.length)==0&&M.fire({text:"No observations foun
110d",icon:"info",confirmButtonText:"Continue"})}catch(d){M.fire({text:(d==null?void 0:d.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"})}},Q=_=>{N.value=_,w.value=!0},o=()=>{var _;V.dialog({component:la,componentProps:{title:"Add",std_id:(_=x==null?void 0:x.std_data)==null?void 0:_.id}})};return fe(()=>z.is_observation_modal_closed,(_,u)=>{z.is_observation_modal_closed==!0&&(A(),z.is_observation_modal_closed=!1)}),Ee(()=>{A()}),(_,u)=>{var d;return f(),T(ue,null,[e("div",aa,[l(oe,{color:"primary",icon:"add",onClick:u[0]||(u[0]=D=>o())},{default:a(()=>[...u[7]||(u[7]=[W("Add Observation",-1)])]),_:1})]),e("div",oa,[l(Re,{onSubmit:u[3]||(u[3]=D=>A()),class:"row main-form-container q-col-gutter-sm"},{default:a(()=>[e("div",ia,[u[8]||(u[8]=e("label",null,"From",-1)),l(re,{clearable:"",type:"date",modelValue:C(b).from,"onUpdate:modelValue":u[1]||(u[1]=D=>C(b).from=D),dense:"",outlined:""},null,8,["modelValue"])]),e("div",da,[u[9]||(u[9]=e("label",null,"To",-1)),l(re,{clearable:"",type:"date",min:C(b).from,modelValue:C(b).to,"onUpdate:modelValue":u[2]||(u[2]=D=>C(b).to=D),dense:"",outlined:""},null,8,["min","modelValue"])]),l(Me,{align:"right",class:"q-mt-sm"},{default:a(()=>[l(oe,{color:"primary",type:"submit"},{default:a(()=>[...u[10]||(u[10]=[W("Submit",-1)])]),_:1})]),_:1})]),_:1})]),((d=C(O))==null?void 0:d.length)>0?(f(),T("div",ua,[l(gt,{class:"my-sticky-table q-mt-md",rows:C(O),columns:p,filter:C(q),pagination:$.value},{"top-right":a(D=>[l(oe,{flat:"",round:"",dense:"",icon:D.inFullscreen?"fullscreen_exit":"fullscreen",onClick:D.toggleFullscreen},null,8,["icon","onClick"]),l(re,{class:"tableSearch",borderless:"",dense:"",debounce:"300",modelValue:C(q),"onUpdate:modelValue":u[4]||(u[4]=P=>Qe(q)?q.value=P:q=P),placeholder:"Search"},{append:a(()=>[l(ie,{name:"search"})]),_:1},8,["modelValue"])]),"body-cell-note":a(D=>{var P;return[((P=D==null?void 0:D.row)==null?void 0:P.note)!=null?(f(),ne(be,{key:0,props:D},{default:a(()=>[l(ie,{name:"info",color:"primary",size:"sm",style:{cursor:"pointer"},onClick:K=>{var ee;return Q((ee=D==null?void 0:D.row)==null?void 0:ee.note)}},null,8,["onClick"])]),_:2},1032,["props"])):(f(),ne(be,{key:1,props:D},{default:a(()=>[...u[11]||(u[11]=[W("N/A",-1)])]),_:1},8,["props"]))]}),"body-cell-attachment":a(D=>{var P;return[((P=D==null?void 0:D.row)==null?void 0:P.attachment)!=null?(f(),ne(be,{key:0,props:D},{default:a(()=>{var K;return[e("a",{href:(K=D==null?void 0:D.row)==null?void 0:K.attachment,target:"_blank"},[l(ie,{name:"description",color:"primary",size:"sm"})],8,ra)]}),_:2},1032,["props"])):(f(),ne(be,{key:1,props:D},{default:a(()=>[...u[12]||(u[12]=[W("N/A",-1)])]),_:1},8,["props"]))]}),_:1},8,["rows","filter","pagination"])])):se("",!0),l(He,{modelValue:C(w),"onUpdate:modelValue":u[6]||(u[6]=D=>Qe(w)?w.value=D:w=D),persistent:""},{default:a(()=>[l(Fe,{style:{width:"500px","max-width":"90vw"}},{default:a(()=>[l(pe,{class:"q-pt-sm q-pb-xs"},{default:a(()=>[...u[13]||(u[13]=[e("div",{class:"text-h5 text-center text-capitalize"}," Observation Note ",-1)])]),_:1}),u[15]||(u[15]=e("hr",null,null,-1)),l(pe,{class:"q-pt-none q-pb-none row"},{default:a(()=>[l(re,{type:"textarea",modelValue:C(N),"onUpdate:modelValue":u[5]||(u[5]=D=>Qe(N)?N.value=D:N=D),outlined:"",readonly:"",style:{resize:"none",width:"100%"}},null,8,["modelValue"])]),_:1}),l(Me,{align:"right",class:"q-pt-sm"},{default:a(()=>[nt((f(),ne(oe,{color:"primary",id:"closeBtn"},{default:a(()=>[...u[14]||(u[14]=[W("Done",-1)])]),_:1})),[[ot]])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)}}},ma={class:"text-h5 text-center text-capitalize"},fa={class:"col-lg-3 col-md-3 col-sm-6 col-xs-12"},_a={class:"col-lg-3 col-md-3 col-sm-6 col-xs-12"},pa={class:"col-lg-3 col-md-3 col-sm-6 col-xs-12"},ga={class:"col-lg-3 col-md-3 col-sm-6 col-xs-12"},va={key:0,class:"col-12"},ya={class:"row q-col-gutter-md"},ba={class:"text-h6 q-mb-sm"},ha={class:"row q-col-gutter-sm items-center"},ka={class:"col-12 col-md-4"},xa={class:"text-body1"},Sa={class:"text-caption text-grey-7"},$a={class:"col-12 col-md-3"},Da={class:"col-12 col-md-5"},Ca={class:"col-12 q-mt-md"},Fa={__name:"AssessmentsModal",props:["title","std_id"],setup(ae){const $=[{value:"achieved",label:"Achieved"},{value:"emerging",label:"Emerging"},{value:"concern",label:"Concern"}];let q=[{id:"regular",name:"Regular"},{id:"two_year",name:"Two Year Check"}];const w=$e({student_id:null,curriculum_id:null,type:null,assessment_date:null,summary:null,attachment:null,details:[]}),N=ae,z=vt(),V=j(!1),x=u=>{let d=w.details.find(D=>D.milestone_id===u);return d||(d={milestone_id:u,status:null,comment:""},w.details.push(d)),d},O=u=>x(u),{milestone_groups:b}=tt(z),p=async u=>{var D;z.milestone_areas_list=[];let d={status:u};try{const P=await z.getMilestoneAreas(d);(P==null?void 0:P.status)===!1?M.fire({text:(P==null?void 0:P.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"}):((D=P==null?void 0:P.data)==null?void 0:D.length)==0&&M.fire({text:"No active milestone areas foun
110d",icon:"info",confirmButtonText:"Continue"})}catch(P){M.fire({text:(P==null?void 0:P.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"})}},A=async()=>{try{const u=await z.createAssessment(w);(u==null?void 0:u.status)===!1?M.fire({text:(u==null?void 0:u.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"}):(M.fire({text:(u==null?void 0:u.message)||"Assessment added successfully",icon:"success",confirmButtonText:"Continue"}),z.is_assessment_modal_closed=!0,document.getElementById("closeBtn").click())}catch(u){M.fire({text:(u==null?void 0:u.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"})}},Q=async()=>{},o=async()=>{let u={student_id:N==null?void 0:N.std_id,curriculum_id:w.curriculum_id};try{const d=await z.getMilestonesGroupByAreas(u);(d==null?void 0:d.status)===!1?(V.value=!1,M.fire({text:(d==null?void 0:d.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"})):!(d!=null&&d.data)||Object.keys(d.data).length===0?(V.value=!1,M.fire({text:"No milestones found for the selected curriculum. Please add milestones that are in the range of student's age.",icon:"info",confirmButtonText:"Continue"})):V.value=!0}catch(d){V.value=!1,M.fire({text:(d==null?void 0:d.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"})}},_=async()=>{var d;z.curriculums_list=[];let u={status:1};try{const D=await z.getCurriculums(u);(D==null?void 0:D.status)===!1?M.fire({text:(D==null?void 0:D.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"}):((d=D==null?void 0:D.data)==null?void 0:d.length)==0&&M.fire({text:`No ${tabs.value} curriculums found`,icon:"info",confirmButtonText:"Continue"})}catch(D){M.fire({text:(D==null?void 0:D.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"})}};return fe(()=>b.value,u=>{u&&Object.values(u).forEach(d=>{d.forEach(D=>x(D.id))})},{immediate:!0,deep:!0}),hn(()=>{z.milestone_areas_list=[],z.curriculums_list=[],z.milestone_groups={}}),bn(()=>{p(1)}),Ee(()=>{w.student_id=N==null?void 0:N.std_id,(N==null?void 0:N.title)=="Update",_()}),(u,d)=>(f(),ne(He,{ref:"dialogRef",persistent:""},{default:a(()=>[l(Fe,{style:{width:"1200px","max-width":"90vw"}},{default:a(()=>[l(pe,{class:"q-pt-sm q-pb-xs"},{default:a(()=>[e("div",ma,k(N==null?void 0:N.title)+" Assessment ",1),l(Re,{onSubmit:d[5]||(d[5]=D=>(N==null?void 0:N.title)=="Add"?A():Q())},{default:a(()=>[l(pe,{class:"q-pt-lg q-pb-none row q-col-gutter-sm"},{default:a(()=>[e("div",fa,[d[6]||(d[6]=e("label",{class:"label-required"},"Curriculum",-1)),l(Pe,{dense:"",outlined:"",modelValue:w.curriculum_id,"onUpdate:modelValue":[d[0]||(d[0]=D=>w.curriculum_id=D),o],options:C(z).curriculums_list,"option-value":"id","option-label":"name","emit-value":"","map-options":"",rules:[D=>D!==null&&D!==""||"This field is required"]},null,8,["modelValue","options","rules"])]),e("div",_a,[d[7]||(d[7]=e("label",{class:"label-required"},"Type",-1)),l(Pe,{dense:"",outlined:"",modelValue:w.type,"onUpdate:modelValue":d[1]||(d[1]=D=>w.type=D),options:C(q),"option-value":"id","option-label":"name","emit-value":"","map-options":"",rules:[D=>D!==null&&D!==""||"This field is required"]},null,8,["modelValue","options","rules"])]),e("div",pa,[d[8]||(d[8]=e("label",{class:"label-required"},"Assessment Date",-1)),l(re,{type:"date",dense:"",outlined:"",modelValue:w.assessment_date,"onUpdate:modelValue":d[2]||(d[2]=D=>w.assessment_date=D),rules:[D=>D!==null&&D!==""||"This field is required"]},null,8,["modelValue","rules"])]),e("div",ga,[d[9]||(d[9]=e("label",null,"Attachment",-1)),l(Et,{outlined:"",dense:"",modelValue:w.attachment,"onUpdate:modelValue":d[3]||(d[3]=D=>w.attachment=D)},{prepend:a(()=>[l(ie,{name:"attach_file"})]),_:1},8,["modelValue"])]),Object.keys(C(b)).length>0?(f(),T("div",va,[d[12]||(d[12]=e("div",{class:"text-subtitle1 q-mb-sm"}," Milestone Assessment ",-1)),e("div",ya,[(f(!0),T(ue,null,qe(C(b),(D,P)=>(f(),T("div",{key:P,class:"col-12 q-mb-xs"},[l(Fe,{class:"q-pa-sm"},{default:a(()=>[e("div",ba,k(P),1),l(us,{bordered:"",separator:""},{default:a(()=>[(f(!0),T(ue,null,qe(D,K=>(f(),ne(rs,{key:K.id,class:"items-start"},{default:a(()=>[l(cs,null,{default:a(()=>[e("div",ha,[e("div",ka,[e("div",xa,k(K.title),1),e("div",Sa,k(K.age_min_months)+"â"+k(K.age_max_months)+" months ",1)]),e("div",$a,[d[10]||(d[10]=e("label",{class:"text-caption label-required"},"Status",-1)),l(Pe,{dense:"",outlined:"",modelValue:O(K.id).status,"onUpdate:modelValue":ee=>O(K.id).status=ee,options:$,"emit-value":"","map-options":"","option-value":"value","o
110ption-label":"label",rules:[ee=>ee!==null&&ee!==""||"This field is required"]},null,8,["modelValue","onUpdate:modelValue","options","rules"])]),e("div",Da,[d[11]||(d[11]=e("label",{class:"text-caption label-required"},"Comment",-1)),l(re,{dense:"",outlined:"",modelValue:O(K.id).comment,"onUpdate:modelValue":ee=>O(K.id).comment=ee,placeholder:"Add a noteâ¦",rules:[ee=>ee!==null&&ee!==""||"This field is required"]},null,8,["modelValue","onUpdate:modelValue","rules"])])])]),_:2},1024)]),_:2},1024))),128))]),_:2},1024)]),_:2},1024)]))),128))])])):se("",!0),e("div",Ca,[d[13]||(d[13]=e("label",null,"Summary",-1)),l(re,{type:"textarea",modelValue:w.summary,"onUpdate:modelValue":d[4]||(d[4]=D=>w.summary=D),dense:"",outlined:""},null,8,["modelValue"])])]),_:1}),l(Me,{align:"right",class:"q-mt-sm"},{default:a(()=>[l(oe,{color:"primary",type:"submit",class:"q-mr-xs",disable:!V.value},{default:a(()=>[...d[14]||(d[14]=[W("Submit",-1)])]),_:1},8,["disable"]),nt((f(),ne(oe,{id:"closeBtn",color:"red"},{default:a(()=>[...d[15]||(d[15]=[W("Cancel",-1)])]),_:1})),[[ot]])]),_:1})]),_:1})]),_:1}),d[16]||(d[16]=e("hr",null,null,-1))]),_:1})]),_:1},512))}},qa={class:"q-mt-sm q-ml-auto q-mr-md",style:{width:"fit-content"}},Va={class:"q-mt-lg q-mr-md q-ml-sm q-mb-md"},Na={class:"col-12 col-xl-4 col-lg-4 col-md-4 col-sm-4 col-xs-12 q-mb-md"},Ta={class:"col-12 col-xl-4 col-lg-4 col-md-4 col-sm-4 col-xs-12 q-mb-md"},Aa={key:0,class:"q-mr-md q-ml-sm q-mb-md"},wa=["href"],Ua={class:"report-header q-pa-md q-mb-md"},Ba={class:"row items-center q-col-gutter-md"},Ma={class:"col-auto"},Oa=["src"],Pa={class:"col"},Ra={class:"text-h6"},Ia={class:"text-body2"},La={class:"text-body2"},za={class:"col-auto text-right"},Ya={class:"text-body2"},Ea={class:"type-value"},ja={class:"text-body2 q-mt-xs"},Qa={key:0,class:"milestone-section"},Ha={class:"milestone-grid"},Ga={class:"row items-center no-wrap q-mb-xs"},Wa={class:"col ellipsis milestone-title"},Ja={class:"col-auto"},Xa={class:"milestone-comment"},Za=["onClick"],Ka={key:1,class:"text-center text-grey-7 q-mt-md"},eo={key:0,class:"q-ma-md"},to={__name:"index",props:["std_data"],setup(ae){const $=vt(),q=it(),w=ae,{assessments_list:N,milestone_groups:z}=tt($);let V=$e({student_id:null,to:null,from:null});const x=j({page:1,rowsPerPage:15});let O=j("");const b=[{label:"Assessment Type",align:"left",field:g=>({regular:"Regular",two_year:"Two Year Check"})[g==null?void 0:g.type]??"N/A"},{label:"Assessment Date",align:"left",field:g=>g!=null&&g.assessment_date?Ze(g==null?void 0:g.assessment_date).format("MM-DD-YYYY"):"N/A"},{label:"Attachment",align:"left",name:"attachment"},{label:"Assessment Details",align:"left",name:"details"}],p=()=>{var g;q.dialog({component:Fa,componentProps:{title:"Add",std_id:(g=w==null?void 0:w.std_data)==null?void 0:g.id}})},A=async()=>{var g,h;V.student_id=(g=w==null?void 0:w.std_data)==null?void 0:g.id;try{const R=await $.getAssessments(V);(R==null?void 0:R.status)===!1?M.fire({text:(R==null?void 0:R.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"}):((h=R==null?void 0:R.data)==null?void 0:h.length)==0&&M.fire({text:"No assessments found",icon:"info",confirmButtonText:"Continue"})}catch(R){M.fire({text:(R==null?void 0:R.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"})}};j({});const Q=j(!1),o=j(null),_=g=>{o.value=g,P.value=!0,Q.value=!0},u=Y(()=>{var g,h,R;return((g=w==null?void 0:w.std_data)==null?void 0:g.name)??((R=(h=o.value)==null?void 0:h.student)==null?void 0:R.name)??"N/A"}),d=Y(()=>{var h;const g=((h=w==null?void 0:w.std_data)==null?void 0:h.dob)??null;return g?Ze(g).format("MM-DD-YYYY"):"N/A"}),D=Y(()=>{var g,h,R;return((R=(h=(g=w==null?void 0:w.std_data)==null?void 0:g.active_class_room)==null?void 0:h.classroom)==null?void 0:R.name)??"N/A"}),P=j(!0),K=()=>{P.value=!1},ee=Y(()=>{var h,R,y;return((h=w==null?void 0:w.std_data)==null?void 0:h.avatar)||((y=(R=o.value)==null?void 0:R.student)==null?void 0:y.avatar)||""||null}),I=Y(()=>o.value?{regular:"Regular",two_year:"Two Year Check"}[o.value.type]??"â":"â"),H=Y(()=>{var h;const g=(h=o.value)==null?void 0:h.assessment_date;return g?Ze(g).format("MM-DD-YYYY"):"â"}),he=g=>({achieved:"Achieved",emerging:"Emerging",concern:"Concern",not_observed:"Not Ob
110served"})[g]??(g||"â"),De=g=>({achieved:"positive",emerging:"warning",concern:"negative",not_observed:"grey-5"})[g]||"grey-5",B=g=>({achieved:"check_circle",emerging:"trending_up",concern:"report_problem",not_observed:"help_outline"})[g]||"help_outline",i=j({}),c=g=>{i.value={...i.value,[g]:!i.value[g]}};return fe(()=>$.is_assessment_modal_closed,(g,h)=>{$.is_assessment_modal_closed==!0&&(A(),$.is_assessment_modal_closed=!1)}),Ee(()=>{A()}),(g,h)=>{var R;return f(),T(ue,null,[e("div",qa,[l(oe,{color:"primary",icon:"add",onClick:h[0]||(h[0]=y=>p())},{default:a(()=>[...h[6]||(h[6]=[W("Add Assessment",-1)])]),_:1})]),e("div",Va,[l(Re,{onSubmit:h[3]||(h[3]=y=>A()),class:"row main-form-container q-col-gutter-sm"},{default:a(()=>[e("div",Na,[h[7]||(h[7]=e("label",null,"From",-1)),l(re,{clearable:"",type:"date",modelValue:C(V).from,"onUpdate:modelValue":h[1]||(h[1]=y=>C(V).from=y),dense:"",outlined:""},null,8,["modelValue"])]),e("div",Ta,[h[8]||(h[8]=e("label",null,"To",-1)),l(re,{clearable:"",type:"date",min:C(V).from,modelValue:C(V).to,"onUpdate:modelValue":h[2]||(h[2]=y=>C(V).to=y),dense:"",outlined:""},null,8,["min","modelValue"])]),l(Me,{align:"right",class:"q-mt-sm"},{default:a(()=>[l(oe,{color:"primary",type:"submit"},{default:a(()=>[...h[9]||(h[9]=[W("Submit",-1)])]),_:1})]),_:1})]),_:1})]),((R=C(N))==null?void 0:R.length)>0?(f(),T("div",Aa,[l(gt,{class:"my-sticky-table q-mt-md",rows:C(N),columns:b,filter:C(O),pagination:x.value},{"top-right":a(y=>[l(oe,{flat:"",round:"",dense:"",icon:y.inFullscreen?"fullscreen_exit":"fullscreen",onClick:y.toggleFullscreen},null,8,["icon","onClick"]),l(re,{class:"tableSearch",borderless:"",dense:"",debounce:"300",modelValue:C(O),"onUpdate:modelValue":h[4]||(h[4]=ce=>Qe(O)?O.value=ce:O=ce),placeholder:"Search"},{append:a(()=>[l(ie,{name:"search"})]),_:1},8,["modelValue"])]),"body-cell-attachment":a(y=>{var ce;return[((ce=y==null?void 0:y.row)==null?void 0:ce.attachment)!=null?(f(),ne(be,{key:0,props:y},{default:a(()=>{var ke;return[e("a",{href:(ke=y==null?void 0:y.row)==null?void 0:ke.attachment,target:"_blank"},[l(ie,{name:"description",color:"primary",size:"sm"})],8,wa)]}),_:2},1032,["props"])):(f(),ne(be,{key:1,props:y},{default:a(()=>[...h[10]||(h[10]=[W("N/A",-1)])]),_:1},8,["props"]))]}),"body-cell-details":a(y=>{var ce,ke;return[(ke=(ce=y==null?void 0:y.row)==null?void 0:ce.details)!=null&&ke.length?(f(),ne(be,{key:0,props:y},{default:a(()=>[l(ie,{name:"add_chart",color:"primary",size:"sm",style:{cursor:"pointer"},onClick:le=>_(y.row)},null,8,["onClick"])]),_:2},1032,["props"])):(f(),ne(be,{key:1,props:y},{default:a(()=>[...h[11]||(h[11]=[W("N/A",-1)])]),_:1},8,["props"]))]}),_:1},8,["rows","filter","pagination"])])):se("",!0),l(He,{modelValue:Q.value,"onUpdate:modelValue":h[5]||(h[5]=y=>Q.value=y),persistent:""},{default:a(()=>[l(Fe,{style:{width:"900px","max-width":"95vw"}},{default:a(()=>{var y,ce;return[l(pe,{class:"q-pt-sm q-pb-xs"},{default:a(()=>[...h[12]||(h[12]=[e("div",{class:"text-h5 text-center"},"Assessment Report",-1)])]),_:1}),h[20]||(h[20]=e("hr",null,null,-1)),l(pe,{class:"q-pt-none q-pb-md"},{default:a(()=>{var ke;return[e("div",Ua,[e("div",Ba,[e("div",Ma,[l(Yt,{size:"84px"},{default:a(()=>[ee.value&&P.value?(f(),T("img",{key:0,src:ee.value,alt:"avatar",style:{width:"100%",height:"100%","object-fit":"cover"},onError:K},null,40,Oa)):(f(),ne(ie,{key:1,name:"person",size:"56px"}))]),_:1})]),e("div",Pa,[e("div",Ra,k(u.value),1),e("div",Ia,[h[13]||(h[13]=e("span",{class:"text-weight-medium"},"Date of Birth:",-1)),W(" "+k(d.value),1)]),e("div",La,[h[14]||(h[14]=e("span",{class:"text-weight-medium"},"Class:",-1)),W(" "+k(D.value),1)])]),e("div",za,[e("div",Ya,[h[15]||(h[15]=e("span",{class:"text-weight-medium"},"Assessment Type:",-1)),e("span",Ea,k(I.value),1)]),e("div",ja,[h[16]||(h[16]=e("span",{class:"text-weight-medium"},"Assessment Date:",-1)),W(" "+k(H.value),1)])])])]),(((ke=o.value)==null?void 0:ke.details)||[]).length?(f(),T("div",Qa,[h[17]||(h[17]=e("div",{class:"section-title"},"Progress Overview",-1)),e("div",Ha,[(f(!0),T(ue,null,qe(o.value.details,le=>{var Ue;return f(),T("div",{key:le.id,class:"milestone-item"},[e("div",Ga,[e("div",Wa,k(((Ue=le==null?void 0:le.milestone)==null?void 0:Ue.title)||"â"),1),e("div",Ja,[l(It,{dense:"",outline:"",size:"sm",icon:B(le.status),label:he(le.status),color:De(le.status),class:"status-chip"},null,8,["icon","label","color"])])]),e("div",Xa,[l(ie,{name:"chat_bubble_outline",size:"16px",class:"q-mr-xs text-grey-6"}),e("span",{class:"comment-text",style:{cursor:"pointer"},onClick:We=>c(le.id)},[W(k((le==null?void 0:le.comments)||"â")+" ",1),le!=null&&le.comments?(f(),ne(mt,{key:0,modelValue:i.value[le.id],"onUpdate:modelValue":We=>i.value[le.id]=We,anchor:"bottom middle",self:"top middle"},{default:a(()=>[W(k(le.comments),1)]),_:2},1032,["modelValue","onUpdate:modelValue"])):se("",!0)],8,Za)])])}),128))])])):(f(),T("div",Ka," No milestones available. "))]}),_:1}),l(Dt,{spaced:"",class:"q-mt-md q-mb-sm"}),(y=o.value)!=null&&y.summary?(f(),T("div",eo,[h[18]||(h[18]=e("div",{class:"section-title"},"Assessment Summary",-1)),l(re,{type:"textarea",autogrow:"",outlined:"",readonly:"",dense:"","model-value":((ce=o.value)==null?void 0:ce.summary)||"N/A"},null,8,["model-value"])])):se("",!0),l(Me,{align:"right",class:"q-pt-sm q-pb-sm"},{default:a(()=>[nt((f(),ne(oe,{color:"primary"},{default:a(()=>[...h[19]||(h[19]=[W("Done",-1)])]),_:1})),[[ot]])]),_:1})]}),_:1})]),_:1},8,["modelValue"])],64)}}},no=Ge(to,[["__scopeId","data-v-1b3e2fb4"]]),so={class:"q-pa-lg"},lo={class:"col-12 col-md-4"},ao={class:"q-mt-lg"},oo={key:0},io={key:1,class:"q-mt-lg"},uo={class:"curriculum-header q-pa-md q-mb-xl"},ro={class:"text-h5 text-weight-bold text-primary"},co={class:"text-h6 text-weight-bold text-indigo-9 q-mb-md area-title"},mo={class:"row justify-between items-center q-mb-md"},fo={class:"text-body1 text-weight-medium"},_o={class:"row q-gutter-sm"},po={key:0,class:"observation-list"},go={class:"row q-col-gutter-md"},vo={class:"row items-start no-wrap"},yo={class:"col"},bo={class:"text-body2"},ho={class:"text-weight-medium"},ko={class:"text-caption text-grey-7"},xo={key:0,class:"q-mt-xs"},So=["href"],$o={key:1,class:"text-caption text-grey"},Do={__name:"index",props:["std_data"],setup(ae){const $=vt(),{curriculums_list:q,curriculum_progress_report:w}=tt($),N=ae,z=$e({student_id:null,curriculum_id:null}),V=j(!1),x=async o=>{q.value=[];try{const _=await $.getCurriculums({status:o});(_==null?void 0:_.status)===!1&&M.fire({text:(_==null?void 0:_.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"})}catch(_){M.fire({text:(_==null?void 0:_.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"})}},O=async()=>{var o,_,u;z.student_id=(o=N==null?void 0:N.std_data)==null?void 0:o.id,V.value=!0;try{const d=await $.getCurriculumProgressReport(z);(d==null?void 0:d.status)===!1?M.fire({text:(d==null?void 0:d.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"}):(!((_=d==null?void 0:d.data)!=null&&_.areas)||((u=d==null?void 0:d.data)==null?void 0:u.areas.length)===0)&&(w.value={},M.fire({text:"No progress report available for the selected curriculum.",icon:"info",confirmButtonText:"Continue"}))}catch(d){M.fire({text:(d==null?void 0:d.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"})}},b=()=>{w.value={},V.value=!1},p=o=>o?Ze(o).format("DD-MMM-YYYY"):"â",A=o=>o?{achieved:"Achieved",emerging:"Emerging",concern:"Concern"}[o]||o:"N/A",Q=o=>o&&{achieved:"positive",emerging:"warning",concern:"negative"}[o]||"grey-5";return zt(()=>{w.value={},V.value=!1}),Ee(()=>{x(1)}),(o,_)=>{var u,d,D,P;return f(),T("div",so,[l(Re,{onSubmit:O,class:"row q-col-gutter-sm q-mb-lg"},{default:a(()=>[e("div",lo,[_[1]||(_[1]=e("label",{class:"label-required"},"Curriculum",-1)),l(Pe,{dense:"",outlined:"",modelValue:z.curriculum_id,"onUpdate:modelValue":[_[0]||(_[0]=K=>z.curriculum_id=K),b],options:C(q),"option-value":"id","option-label":"name","emit-value":"","map-options":"",rules:[K=>K!==null&&K!==""||"This field is required"]},null,8,["modelValue","options","rules"])]),e("div",ao,[l(oe,{color:"primary",type:"submit",label:"Submit"})])]),_:1}),z.curriculum_id?V.value&&((u=C(w))!=null&&u.curriculum)&&((D=(d=C(w))==null?void 0:d.areas)!=null&&D.length)?(f(),T("div",io,[e("div",uo,[e("div",ro," Curriculum: "+k((P=C(w).curriculum)==null?void 0:P.name),1)]),(f(!0),T(ue,null,qe(C(w).areas,K=>(f(),T("div",{key:K.id,class:"q-mb-xl"},[e("div",co,k(K.name),1),(f(!0),T(ue,null,qe(K.milestones,ee=>{var I,H,he,De,B,i,c,g,h;return f(),T("div",{key:ee.id,class:"milestone-card q-pa-md q-mb-md"}
110,[e("div",mo,[e("div",null,[e("div",fo,k(ee.title),1)]),e("div",_o,[(H=(I=ee.assessments)==null?void 0:I.regular)!=null&&H.status?(f(),ne(It,{key:0,color:Q((De=(he=ee.assessments)==null?void 0:he.regular)==null?void 0:De.status),"text-color":"white",dense:""},{default:a(()=>{var R,y;return[W(" Regular: "+k(A((y=(R=ee.assessments)==null?void 0:R.regular)==null?void 0:y.status)),1)]}),_:2},1032,["color"])):se("",!0),(i=(B=ee.assessments)==null?void 0:B.two_year)!=null&&i.status?(f(),ne(It,{key:1,color:Q((g=(c=ee.assessments)==null?void 0:c.two_year)==null?void 0:g.status),"text-color":"white",dense:""},{default:a(()=>{var R,y;return[W(" Two Year: "+k(A((y=(R=ee.assessments)==null?void 0:R.two_year)==null?void 0:y.status)),1)]}),_:2},1032,["color"])):se("",!0)])]),(h=ee.observations)!=null&&h.length?(f(),T("div",po,[_[3]||(_[3]=e("div",{class:"text-caption text-weight-bold q-mb-sm"},"Observations",-1)),e("div",go,[(f(!0),T(ue,null,qe(ee.observations,R=>(f(),T("div",{key:R.id,class:"col-12"},[l(Fe,{flat:"",bordered:"",class:"q-pa-sm observation-card"},{default:a(()=>{var y;return[e("div",vo,[l(ie,{name:"event",color:"primary",size:"20px",class:"q-mr-sm"}),e("div",yo,[e("div",bo,[e("span",ho,k(p(R.date)),1),W(" "+k(R.note?` - ${R.note}`:""),1)]),e("div",ko," by "+k(((y=R.created_by)==null?void 0:y.name)||"N/A"),1),R.attachment?(f(),T("div",xo,[e("a",{href:R.attachment,target:"_blank",class:"text-primary"},[l(ie,{name:"attach_file",size:"16px"}),_[2]||(_[2]=W(" Attachment ",-1))],8,So)])):se("",!0)])])]}),_:2},1024)]))),128))])])):(f(),T("div",$o," No observations yet. "))])}),128))]))),128))])):se("",!0):(f(),T("div",oo))])}}},Co=Ge(Do,[["__scopeId","data-v-811e5b0d"]]),Fo={__name:"index",props:["std_data"],setup(ae){let $=j("observations");const q=ae;return(w,N)=>(f(),T(ue,null,[l(kn,{modelValue:C($),"onUpdate:modelValue":N[0]||(N[0]=z=>Qe($)?$.value=z:$=z),dense:"","active-color":"white","text-color":"primary","active-bg-color":"primary","indicator-color":"primary",align:"left","narrow-indicator":"",class:"tabsContainer student-child-dev-tabs"},{default:a(()=>[l(je,{name:"observations",label:"Observations"}),l(je,{name:"assessments",label:"Assessments"}),l(je,{name:"progress_report",label:"Progress Report"})]),_:1},8,["modelValue"]),C($)==="observations"?(f(),ne(ca,{key:0,std_data:q==null?void 0:q.std_data},null,8,["std_data"])):se("",!0),C($)==="assessments"?(f(),ne(no,{key:1,std_data:q==null?void 0:q.std_data},null,8,["std_data"])):se("",!0),C($)==="progress_report"?(f(),ne(Co,{key:2,std_data:q==null?void 0:q.std_data},null,8,["std_data"])):se("",!0)],64))}},qo=Ge(Fo,[["__scopeId","data-v-42694ace"]]),Vo=yn({name:"QInnerLoading",props:{...fs,...ms,showing:Boolean,color:String,size:{type:[String,Number],default:"42px"},label:String,labelClass:String,labelStyle:[String,Array,Object]},setup(ae,{slots:$}){const q=vs(),w=_s(ae,q.proxy.$q),{transitionProps:N,transitionStyle:z}=ps(ae),V=Y(()=>"q-inner-loading q--avoid-card-border absolute-full column flex-center"+(w.value===!0?" q-inner-loading--dark":"")),x=Y(()=>"q-inner-loading__label"+(ae.labelClass!==void 0?` ${ae.labelClass}`:""));function O(){const p=[pt(ys,{size:ae.size,color:ae.color})];return ae.label!==void 0&&p.push(pt("div",{class:x.value,style:ae.labelStyle},[ae.label])),p}function b(){return ae.showing===!0?pt("div",{class:V.value,style:z.value},$.default!==void 0?$.default():O()):null}return()=>pt(gs,N.value,b)}}),No={class:"session-edit-dialog__student"},To=["src"],Ao={class:"session-edit-dialog__name"},wo={class:"session-edit-dialog__meta"},Uo={class:"row q-col-gutter-md"},Bo={class:"col-12 col-sm-4"},Mo={class:"session-edit-dialog__stat-card"},Oo={class:"session-edit-dialog__stat-value"},Po={class:"col-12 col-sm-4"},Ro={class:"session-edit-dialog__stat-card"},Io={class:"session-edit-dialog__stat-value"},Lo={class:"col-12 col-sm-4"},zo={class:"session-edit-dialog__stat-card"},Yo={class:"session-edit-dialog__stat-value"},Eo={class:"row q-col-gutter-md"},jo={class:"col-12 col-sm-6"},Qo={class:"col-12 col-sm-6"},Ho={class:"row q-col-gutter-md q-mt-sm session-edit-dialog__funding-fields-row"},Go={class:"col-12 col-sm-6"},Wo={class:"col-12 col-sm-6"},Jo={class:"row q-col-gutter-md q-mt-sm session-edit-dialog__funding-fields-row session-edit-dialog__funding-fields-row--applicable"},Xo={class:"col-12 col-sm-6"},Zo={class:"col-12 col-sm-6"},Ko={key:0,class:"text-caption text-grey-7 q-mt-xs"},ei={class:"session-edit-dialog__hint session-edit-dialog__hint--below-funding"},ti={class:"session-edit-dialog__table-wrap"},ni={class:"session-edit-dialog__table"},si={class:"session-edit-dialog__session-cell"},li={key:0,class:"session-edit-dialog__topup-block"},ai={key:0,class:"session-edit-dialog__calendar-topup-sub"},oi={key:1,class:"session-edit-dialog__calendar-topup-title"},ii={key:2,class:"session-edit-dialog__session-main"},di={key:0,class:"session-edit-dialog__funded-mark"},ui={class:"session-edit-dialog__day-content"},ri={class:"session-edit-dialog__row--meals"},ci={class:"session-edit-dialog__session-cell"},mi={class:"session-edit-dialog__meal-head"},fi={class:"session-edit-dialog__meal-rate"},_i={class:"session-edit-dialog__day-content session-edit-dialog__day-content--meal"},pi={key:0,class:"session-edit-dialog__meal-hint"},gi={key:1,class:"session-edit-dialog__meal-hint session-edit-dialog__meal-hint--spacer","aria-hidden":"true"},vi={class:"session-edit-dialog__summary"},yi={class:"session-edit-dialog__summary-row"},bi={key:0,class:"session-edit-dialog__summary-row"},hi={class:"session-edit-dialog__summary-row"},ki={class:"session-edit-dialog__summary-row"},xi={key:1,class:"session-edit-dialog__summary-row"},Si={class:"session-edit-dialog__summary-total-block"},$i={class:"session-edit-dialog__summary-formula"},Di={key:0,class:"text-caption text-negative q-mt-xs"},Ci={class:"session-edit-dialog__summary-total"},St="topup_calendar",Fi="https://cdn-icons-png.flaticon.com/512/847/847969.png",qi="Monthly",Vi={__name:"SessionInfoEditDialog",props:{modelValue:{type:Boolean,default:!1},sessionData:{type:Object,default:()=>({})},studentData:{type:Object,default:()=>({})}},emits:["update:modelValue","save"],setup(ae,{emit:$}){const q=ae,w=$,N=j(q.modelValue),z=j(null),V=Ns(),x=dt(),O=it(),b=[{key:"monday",label:"Mon"},{key:"tuesday",label:"Tue"},{key:"wednesday",label:"Wed"},{key:"thursday",label:"Thu"},{key:"friday",label:"Fri"},{key:"saturday",label:"Sat"},{key:"sunday",label:"Sun"}];function p(){return b.map(t=>t.key).filter(t=>t!=="saturday"&&t!=="sunday")}function A(){for(const t of u.value)t.source!=="funding_package"||t.kind!=="funded"||(xe(t.id).saturday=!1,xe(t.id).sunday=!1)}function Q(){const t=new Set(_.value.filter(n=>n.source==="nursery_slot").map(n=>n.id));for(const n of Object.keys(H))String(n).startsWith("slot_")&&(t.has(n)||delete H[n]);for(const n of _.value)if(n.source==="nursery_slot")for(const s of b)Se(n.id,s.key)&&!n.allowedDays.includes(s.key)&&(xe(n.id)[s.key]=!1)}const o=$e({fundingFlow:"none",fundingOption:null,topUpDaysLabel:"Top-up 0 days",applicableFrom:"",topUpDays:0,mealDays:[],discountCode:""}),_=j([]),u=j([]),d=j(null),D=j(!1);let P=0;const K=j(!1),ee=j(!1),I=j({fundingFlow:"none",fundingOptionId:null,topUpDays:0}),H=$e({}),he=j("");function De(t){const s=String(t??"").trim().split(/[T\s]/)[0].match(/^(\d{4})-(\d{1,2})-(\d{1,2})$/);if(!s)return"";const r=Number(s[1]),E=Number(s[2]),Z=Number(s[3]);if(!Number.isFinite(r)||!Number.isFinite(E)||!Number.isFinite(Z))return"";const ye=new Date(r,E-1,Z);return ye.getFullYear()!==r||ye.getMonth()!==E-1||ye.getDate()!==Z?"":`${r}-${String(E).padStart(2,"0")}-${String(Z).padStart(2,"0")}`}function B(t){const s=String(t??"").trim().match(/^(\d{2})\/(\d{2})\/(\d{4})$/);if(!s)return"";const r=Number(s[1]),E=Number(s[2]),Z=Number(s[3]);if(E<1||E>12||r<1||r>31)return"";const ye=new Date(Z,E-1,r);return ye.getFullYear()!==Z||ye.getMonth()!==E-1||ye.getDate()!==r?"":`${Z}-${String(E).padStart(2,"0")}-${String(r).padStart(2,"0")}`}function i(t){const n=De(t);if(!n)return"";const[s,r,E]=n.split("-");return`${E}/${r}/${s}`}function c(t){const n=De(t);return n?n.replace(/-/g,"/"):null}function g(t){return t?De(String(t).replace(/\//g,"-")):""}function h(t){const n=g(t);o.applicableFrom=n||"",he.value=i(n)}fe(()=>o.applicableFrom,t=>{const n=De(t),s=i(t),r=B(String(he.value??"").trim());n&&r===n||s!==he.value&&(he.value=s)}),fe(he,t=>{if(String(t??"").replace(/\D/g,"").length===0){o.applicableFrom!==""&&(o.applicableFrom="");return}const s=B(String(t??"").trim());s&&o.applicableFrom!==s&&(o.applicableFrom=s)});const R=Y(()=>{var t;return((t=q.sessionData)==null?void 0:t.fundingOptions)??[]}),y=Y(()=>{var t;return(((t=q.sessionData)==null?void 0:t.sessionRows)??[]).find(n=>String((n==null?void 0:n.id)||"").startsWith("funding_pkg_"))??null});function ce(t){const n=Math.max(0,Math.floor(Number(t)||0));return n===1?"Top-up 1 day":`Top-up ${n} days`}function ke(){const t=I.value;if(o.fundingFlow!==t.fundingFlow)return!1;if(o.fundingFlow==="none")return!0;const n=o.fundingOption,s=t.fundingOptionId,r=(n==null||n==="")&&(s==null||s==="")?!0:Number(n)===Number(s),E=Number(o.topUpDays??0)===Number(t.topUpDays??0);return r&&E}function le(){const t=new Set;for(const n of u.value)if(!(n.kind!=="funded"||n.source!=="funding_package"))for(const s of b)Se(n.id,s.key)&&t.add(s.key);return t}function Ue(t){return o.fundingFlow!=="funding"||!o.fundingOption?!1:le().has(t)}function We(t){return Ue(t)?"":o.fundingFlow!=="funding"||!o.fundingOption?"Requires funded session":"Select funded session first"}function st(t){return`session-edit-meal-${t}`}const Ce=Y(()=>ct(o.mealDays));function L(t){return Ue(t)&&Ce.value.includes(t)}function F(t){o.mealDays=ct(t)}function de(t,n){if(!Ue(t))return;const s=new Set(Ce.value);n?s.add(t):s.delete(t),F([...s])}function _e(t){!Ue(t)&&Ce.value.includes(t)&&F(Ce.value.filter(n=>n!==t))}function G(){if(D.value)return;const t=ct(o.mealDays),n=t.filter(s=>Ue(s));n.length!==t.length&&F(n)}function Ne(){var s;const t=ct(((s=q.sessionData)==null?void 0:s.mealDays)??[]);if(!t.length)return;const n=t.filter(r=>Ue(r));n.length&&F(n)}const me=Y(()=>o.fundingFlow==="funding"&&o.fundingOption?Math.max(0,Math.floor(Number(o.topUpDays)||0)):0),Ie=Y(()=>{if(o.fundingFlow!=="funding"||!o.fundingOption||!u.value.length||me.value<=0)return null;const t=le(),n=b.map(s=>s.key).filter(s=>t.has(s));return{id:St,source:"topup_calendar",isTopUp:!1,timeRange:"",description:"",shortDayLabel:"Top-up",kind:"topup",allowedDays:n,dayAvailability:{},topUpPerDay:0}}),ut=Y(()=>
110o.fundingFlow==="funding"&&o.fundingOption?me.value:Number.MAX_SAFE_INTEGER),ge=Y(()=>[..._.value,...u.value,...Ie.value?[Ie.value]:[]]),Ft=Y(()=>R.value.find(t=>Number(t.value)===Number(o.fundingOption))??null);function m(t){const n=String(t??"").toLowerCase().match(/(\d+)\s*days?\s*a\s*week/);if(!n)return null;const s=Number(n[1]);return!Number.isFinite(s)||s<2||s>b.length?null:s}function v(t){const s=String(t??"").trim().toLowerCase().match(/^(\d+)\s+days?\s+a\s+week$/);if(!s)return null;const r=Number(s[1]);return!Number.isFinite(r)||r<2||r>b.length?null:r}function S(){var r,E,Z;const t=m((r=Ft.value)==null?void 0:r.label);if(t!=null)return t;const n=m((E=q.sessionData)==null?void 0:E.fundingOption);if(n!=null)return n;const s=m((Z=y.value)==null?void 0:Z.label);return s??4}const J=Y(()=>{if(o.fundingFlow==="none"||!o.fundingOption)return 0;const t=S();return Math.max(0,Math.floor(Number(t)||0))}),U=Y(()=>{const t=J.value,n=[];for(let s=0;s<=t;s++)n.push(ce(s));return n}),te=Y(()=>o.fundingFlow!=="funding"?[]:[t=>t!=null&&t!==""&&Number.isFinite(Number(t))&&Number(t)>0||"Funding option is required"]),ve=Y(()=>o.fundingFlow!=="funding"?[]:[t=>{const n=String(t??"").trim();return n?U.value.includes(n)||"Choose a valid top-up days option":"Top-up days is required"}]),X=Y(()=>{var t;return((t=q.studentData)==null?void 0:t.name)||"Leo Miller"}),Ve=Y(()=>{var t;return((t=q.studentData)==null?void 0:t.avatar)||Fi}),Be=Y(()=>{var t,n,s,r,E,Z;return((s=(n=(t=q.studentData)==null?void 0:t.active_class_room)==null?void 0:n.classroom)==null?void 0:s.name)||((Z=(E=(r=q.studentData)==null?void 0:r.activeClassRoom)==null?void 0:E.classroom)==null?void 0:Z.name)||"Toddlers A"}),Ae=Y(()=>{var r,E,Z;const t=String(((r=q.sessionData)==null?void 0:r.discountCode)||"").trim();if(!t)return"";const n=String(((E=q.sessionData)==null?void 0:E.discountStaffName)||"").trim(),s=(Z=q.sessionData)!=null&&Z.discountIsPreset?"CMS discount":"Discount";return n?`${s}: ${t} (${n})`:`${s}: ${t}`});function Le(t){return`£${Number(t||0).toFixed(2)}`}function Je(t){const n=Number(t);return Number.isFinite(n)?String(Math.round(n)):"0"}function Te(t){const n=Number(t);return Number.isFinite(n)?new Intl.NumberFormat("en-GB",{style:"currency",currency:"GBP",maximumFractionDigits:0,minimumFractionDigits:0}).format(Math.round(n)):new Intl.NumberFormat("en-GB",{style:"currency",currency:"GBP",maximumFractionDigits:0,minimumFractionDigits:0}).format(0)}function Ke(t){const n=String(t||"").trim();return n?n.slice(0,5):""}function Xe(t,n){const s=Ke(t),r=Ke(n);return s&&r?`${s} - ${r}`:""}function lt(t){const n=String((t==null?void 0:t.day_type)||"").toLowerCase().trim(),s=String((t==null?void 0:t.slot_name)||"").toLowerCase().trim();return s.includes("top")?"topup":s.includes("fund")?"funded":n==="half"||n.includes("half")?"half":n==="full"||n.includes("full")?"full":s.includes("half")?"half":s.includes("full")?"full":"other"}function et(t){const n=lt(t);return{id:`slot_${t.id}`,source:"nursery_slot",apiSlotId:t.id,timeRange:Xe(t.start_time,t.end_time),description:t.slot_name||"Session",shortDayLabel:t.slot_name||"Session",kind:n,allowedDays:Array.isArray(t.days)?t.days.map(s=>String((s==null?void 0:s.day)||"").toLowerCase()).filter(Boolean):[],dayAvailability:t.day_availability||{}}}function ze(t){const n=[t.funding_type,t.days_label].filter(Boolean),s=v(t.days_label)??m(n.join(" | "))??S();return{id:`funding_pkg_${t.id}`,source:"funding_package",apiFundingOptionId:t.id,timeRange:Xe(t.session_start_time,t.session_end_time),description:n.length?n.join(" | "):"Funded place",shortDayLabel:t.funding_type||"Funded",kind:"funded",requiredFundedDaysPerWeek:s,allowedDays:p(),dayAvailability:t.day_availability||{},topUpPerDay:Number(t.top_up_per_day??0)}}function Dn(t){const n=Number(String((t==null?void 0:t.id)||"").replace("funding_pkg_","")),s=String((t==null?void 0:t.label)||"").split(" - ").map(Z=>Z.trim()).filter(Boolean),r=(t==null?void 0:t.timeRange)||Xe(t==null?void 0:t.session_start_time,t==null?void 0:t.session_end_time)||(t==null?void 0:t.subLabel)||"",E=m(t.label)??S();return{id:t.id,source:"funding_package",apiFundingOptionId:Number.isFinite(n)?n:null,timeRange:r,de
110scription:t.label||"Funded place",shortDayLabel:s[0]||"Funded",kind:"funded",requiredFundedDaysPerWeek:E,allowedDays:p(),dayAvailability:b.reduce((Z,ye)=>(Z[ye.key]={seat_status:"available",available_seats:99,overbooked_seats:0},Z),{}),topUpPerDay:0}}function xe(t){return H[t]||(H[t]=$e({})),H[t]}function Cn(){for(const t of Object.keys(H))delete H[t]}function Se(t,n){return!!xe(t)[n]}function qt(t,n){var E,Z;const s=ge.value.find(ye=>ye.id===t);if(!s||!s.allowedDays.includes(n))return null;if(s.source==="funding_package"){const ye=((E=s.dayAvailability)==null?void 0:E[n])||null;return ye?{status:ye.seat_status,available:Number(ye.available_seats??0),overbooked:Number(ye.overbooked_seats??0)}:{status:"available",available:99,overbooked:0}}const r=((Z=s.dayAvailability)==null?void 0:Z[n])||null;return{status:(r==null?void 0:r.seat_status)||"available",available:Number((r==null?void 0:r.available_seats)??0),overbooked:Number((r==null?void 0:r.overbooked_seats)??0)}}function Fn(t,n){const s=qt(t,n);return s==null?"â":s.status==="full"?"Full":s.status==="overbooked"?String(s.overbooked||0):String(s.available||0)}function qn(t,n){const s=qt(t,n);return s==null?"session-edit-dialog__availability--muted":s.status==="full"?"session-edit-dialog__availability--full":s.status==="overbooked"?"session-edit-dialog__availability--warning":"session-edit-dialog__availability--count"}function jt(t,n){const s=qt(t,n);return s==null||s.status==="full"}function Vt(t){return ge.value.find(n=>n.id===t)||null}function Nt(t,n=null){let s=0;for(const r of b)n!==null&&r.key===n||Se(t,r.key)&&s++;return s}function Tt(t=null,n=null){let s=0;for(const r of ge.value)if(r.kind==="topup")for(const E of b)t!==null&&r.id===t&&E.key===n||Se(r.id,E.key)&&s++;return s}function Vn(t){for(const n of ge.value)n.source==="nursery_slot"&&(xe(n.id)[t]=!1)}function Nn(t,n){for(const s of ge.value)s.source!=="nursery_slot"&&!(s.source==="funding_package"&&s.kind==="funded")||s.id!==n&&(xe(s.id)[t]=!1)}function Qt(t,n){for(const s of ge.value)s.source==="nursery_slot"&&s.id!==n&&(xe(s.id)[t]=!1)}function Ht(t,n=null){var s;for(const r of ge.value)r.id!==n&&(s=H[r.id])!=null&&s[t]&&(xe(r.id)[t]=!1)}function Tn(t,n=null){var s;for(const r of ge.value)r.kind==="full"&&r.id!==n&&(s=H[r.id])!=null&&s[t]&&(xe(r.id)[t]=!1)}function yt(){if(o.fundingFlow!=="funding"||!o.fundingOption)return;const t=le();for(const n of ge.value)if(n.kind==="topup")for(const s of b)!t.has(s.key)&&Se(n.id,s.key)&&(xe(n.id)[s.key]=!1)}function Gt(){for(const t of ge.value){if(t.source!=="funding_package"||t.kind!=="funded")continue;const n=t.requiredFundedDaysPerWeek;if(n==null)continue;let s=Nt(t.id);if(!(s<=n))for(const r of[...b].reverse()){if(s<=n)break;Se(t.id,r.key)&&(xe(t.id)[r.key]=!1,s--)}}}function At(){const t=ut.value;if(!Number.isFinite(t)||t>=Number.MAX_SAFE_INTEGER/4)return;let n=Tt();if(n<=t)return;const s=[...ge.value].reverse();for(const r of[...b].reverse())for(const E of s)if(E.kind==="topup"){if(n<=t)return;Se(E.id,r.key)&&(xe(E.id)[r.key]=!1,n--)}}function An(){const t=me.value;O.notify({type:"warning",message:`You can select at most ${t} top-up day(s) (set in Top-Up Days).`,position:"top",timeout:3200})}function wn(t){O.notify({type:"warning",message:`This funded package is for ${t} days per week. Deselect a day if you want to change which weekdays you use.`,position:"top",timeout:3600})}function Un(t,n){const s=Vt(t);if(!s||s.source!=="funding_package"||s.kind!=="funded"||s.requiredFundedDaysPerWeek==null)return!0;const r=s.requiredFundedDaysPerWeek;for(;Nt(t,n)>=r;){let E=!1;for(const Z of[...b].reverse())if(Z.key!==n&&Se(t,Z.key)){xe(t)[Z.key]=!1,E=!0;break}if(!E)return!1}return!0}function Bn(t,n){const s=Vt(t);if(!s||o.fundingFlow==="funding"&&o.fundingOption&&s.kind==="topup"&&!le().has(n)&&!Se(t,n)||jt(t,n))return!0;if(o.fundingFlow==="funding"&&o.fundingOption&&s.kind==="topup"){const r=me.value;if(r<=0||!Se(t,n)&&Tt(t,n)>=r)return!0}return!1}function Mn(t,n,s){const r=Vt(t);if(!r)return;const E=!!s;if(r.source==="funding_package"&&r.kind==="funded"&&(n==="saturday"||n==="sunday")){xe(t)[n]=!1;return}if(o.fundingFlow==="funding"&&o.fundingOption&&r.kind==="topup"&&!le().has(n)){E||(xe(t)[n]=!1);return}if(!jt(t,n)){if(!E){xe(t)[n]=!1,_e(n);return}if(r.kind==="topup"){const Z=ut.value;if(Z<Number.MAX_SAFE_INTEGER/4&&Tt(t,n)>=Z){An();return}}if(r.source==="funding_package"&&r.kind==="funded"&&r.requiredFundedDaysPerWeek!=null&&!Un(t,n)){wn(r.requiredFundedDaysPerWeek);return}if(o.fundingFlow==="funding"&&o.fundingOption&&(r.source==="nursery_slot"||r.source==="funding_package"&&r.kind==="funded")&&(Nn(n,t),yt()),r.source==="nursery_slot"&&Qt(n,t),r.kind==="full"){Ht(n,t),xe(t)[n]=!0,_e(n);return}Tn(n,t),xe(t)[n]=!0,_e(n)}}function On(){if(!(o.fundingFlow!=="funding"||!o.fundingOption))for(const t of b){let n=!1,s=!1;for(const r of ge.value)r.source==="nursery_slot"&&Se(r.id,t.key)&&
110(n=!0),r.source==="funding_package"&&r.kind==="funded"&&Se(r.id,t.key)&&(s=!0);n&&s&&Vn(t.key)}}function Wt(){for(const t of b){const n=ge.value.filter(r=>r.kind==="full"&&Se(r.id,t.key));if(!n.length)continue;const s=n[0];Ht(t.key,s.id),xe(s.id)[t.key]=!0}}function Jt(){for(const t of b){const n=ge.value.filter(r=>r.source==="nursery_slot"&&Se(r.id,t.key));if(n.length<=1)continue;const s=n[0];Qt(t.key,s.id)}}function Pn(){var n,s;Cn();const t=((n=q.sessionData)==null?void 0:n.sessionRows)??[];for(const r of t)if(r!=null&&r.id&&!(String(r.id).startsWith("funding_pkg_")&&(o.fundingFlow==="none"||!ke()))&&!(String(r.id)===St&&(o.fundingFlow==="none"||K.value||!ke())))for(const E of b)(s=r.selected)!=null&&s[E.key]&&(xe(r.id)[E.key]=!0);A(),Q()}function Rn(){var s,r;if(o.fundingFlow==="none"||!o.fundingOption||K.value||!ke())return;const t=((s=q.sessionData)==null?void 0:s.topUpCalendarSelected)??((r=q.sessionData)==null?void 0:r.top_up_calendar_selected);if(!t||typeof t!="object")return;const n=St;xe(n);for(const E of b){const Z=t[E.key];xe(n)[E.key]=Z===!0||Z===1||Z==="1"||String(Z).toLowerCase()==="true"}}function In(){var n,s,r,E,Z;const t=((n=q.studentData)==null?void 0:n.active_class_room)??((s=q.studentData)==null?void 0:s.activeClassRoom)??null;return((r=t==null?void 0:t.classroom)==null?void 0:r.id)??(t==null?void 0:t.class_room_id)??((Z=(E=q.studentData)==null?void 0:E.activeClassRoom)==null?void 0:Z.class_room_id)??null}async function bt(){var s;const t=In(),n=++P;if(!t){_.value=[],u.value=[];return}(o.fundingFlow==="none"||!o.fundingOption)&&(u.value=[]),D.value=!0;try{const[r,E,Z]=await Promise.all([V.getOccupancySlots({class_room_id:t}),V.getClassroomFundingOptionsAvailability({class_room_id:t,days:(()=>{const xt=S();return[2,3,4].includes(xt)?xt:4})()}),V.getClassroomForAdmission({class_room_id:t})]);if(n!==P)return;_.value=Array.isArray(r==null?void 0:r.data)?r.data.map(et):[];const ye=Array.isArray(E==null?void 0:E.data)?E.data.filter(xt=>Number(xt.id)===Number(o.fundingOption)).map(ze):[],cn=y.value&&Number((s=y.value.id)==null?void 0:s.replace("funding_pkg_",""))===Number(o.fundingOption)?Dn(y.value):null;u.value=ye.length>0?ye:cn?[cn]:[],d.value=(Z==null?void 0:Z.data)??null,Pn(),On(),Wt(),Jt(),Gt(),Rn(),yt(),At(),Xt(),G(),Ne(),Rt()}catch{n===P&&(_.value=[],u.value=[])}finally{n===P&&(D.value=!1)}}function Xt(){const t=J.value;o.topUpDays>t&&(o.topUpDays=t,o.topUpDaysLabel=ce(t))}function Ln(t){if(String((t==null?void 0:t.fundingOption)??"").trim().toLowerCase()==="no funding")return{fundingFlow:"none",fundingOptionId:null};const s=(t==null?void 0:t.fundingOptionId)??null,r=s!=null&&s!==""?Number(s):NaN;if(!Number.isFinite(r)||r<=0)return{fundingFlow:"none",fundingOptionId:null};const E=((t==null?void 0:t.fundingOptions)??[]).map(ye=>Number(ye==null?void 0:ye.value)).filter(ye=>Number.isFinite(ye)&&ye>0),Z=new Set(E);return Z.size>0&&!Z.has(r)?{fundingFlow:"none",fundingOptionId:null}:{fundingFlow:"funding",fundingOptionId:r}}function Zt(){var t,n,s,r;ee.value=!0;try{const{fundingFlow:E,fundingOptionId:Z}=Ln(q.sessionData);o.fundingFlow=E,o.fundingOption=Z,o.fundingFlow==="none"?(o.topUpDays=0,o.topUpDaysLabel=ce(0)):(o.topUpDays=((t=q.sessionData)==null?void 0:t.topUpDays)??0,o.topUpDaysLabel=ce(o.topUpDays)),o.applicableFrom=De((n=q.sessionData)==null?void 0:n.applicableFrom)||"",o.mealDays=ct(((s=q.sessionData)==null?void 0:s.mealDays)??[]),o.discountCode=String(((r=q.sessionData)==null?void 0:r.discountCode)||"").trim().toUpperCase(),Xt(),I.value={fundingFlow:o.fundingFlow,fundingOptionId:o.fundingOption,topUpDays:o.topUpDays},bt()}finally{ee.value=!1}}function Kt(t){if(o.fundingFlow!==t){if(o.fundingFlow=t,t==="none"){K.value=!0,o.fundingOption=null,o.topUpDays=0,o.topUpDaysLabel=ce(0),o.mealDays=[],u.value=[];for(const n of Object.keys(H))(String(n).startsWith("funding_pkg_")||n===St)&&delete H[n]}N.value&&bt()}}fe(()=>q.modelValue,t=>{N.value=t}),fe(N,t=>{w("update:modelValue",t),t&&(K.value=!1,Zt())}),fe(()=>[o.fundingFlow,o.fundingOption,o.topUpDays],()=>{ke()&&(K.value=!1)}),fe(()=>q.sessionData,()=>{N.value&&Zt()},{deep:!0,immediate:!0});function wt(t,n){return`session-edit-checkbox-${t}-${n}`}const rt=Y(()=>{const t=d.value,n=Number((t==null?void 0:t.half_day_per_day_rate)??0),s=Number((t==null?void 0:t.full_day_per_day_rate)??0);return{halfDay:Number.isFinite(n)?Math.max(0,n):0,fullDay:Number.isFinite(s)?Math.max(0,s):0}});function zn(t,n=0){const s=Number(t);return!Number.isFinite(s)||s<0?n:Math.round(s)}const Ut=Y(()=>{var t;return zn((t=d.value)==null?void 0:t.all_meals_per_day_charges)}),Bt=Y(()=>{const t=u.value[0];if(t!=null&&t.topUpPerDay)return t.topUpPerDay;
110const n=d.value,s=S(),r=s===2?"two_day_top_up_per_day":s===3?"three_day_top_up_per_day":s===4?"four_day_top_up_per_day":"default_top_up_per_day";return Number((n==null?void 0:n[r])??(n==null?void 0:n.default_top_up_per_day)??18)||18}),Yn=Y(()=>{const t=[];for(const n of u.value)if(!(n.source!=="funding_package"||n.kind!=="funded")){for(const s of b)t.push(Se(n.id,s.key)?"1":"0");t.push("|")}return t.join("")}),ft=Y(()=>{const t=[];for(const n of ge.value)for(const s of b)Se(n.id,s.key)&&t.push({rowId:n.id,day:s.key,kind:n.kind});return Ts(t,o.fundingFlow==="funding"&&o.fundingOption?"funding":"none")}),ht=Y(()=>ft.value.halfDayCount),kt=Y(()=>ft.value.fullDayCount),Mt=Y(()=>ft.value.topUpChargedSlots);Y(()=>ft.value.totalAttendedDays??0);const en=Y(()=>As(Ce.value,Ut.value,o.applicableFrom)),En=Y(()=>en.value.calendarDays),_t=Y(()=>en.value.total),at=j(null),Ot=j(!1);let Pt=null;async function jn(){var t;if(!N.value||!((t=q.studentData)!=null&&t.id)||Ce.value.length===0){at.value=null;return}Ot.value=!0;try{const n=vn({days:Ce.value}),s=await x.previewSessionMeal({student_id:q.studentData.id,applicable_from:o.applicableFrom||null,selections:un(),meals:{type:n.type,days:n.days},funding_option_id:o.fundingFlow==="none"?null:o.fundingOption});at.value=(s==null?void 0:s.meal)??null}catch{at.value=null}finally{Ot.value=!1}}function Rt(){Pt&&clearTimeout(Pt),Pt=setTimeout(()=>{jn()},350)}const Qn=Y(()=>{if(Ce.value.length===0||_t.value<=0)return"";if(Ot.value)return"Meals (calculatingâ¦)";const t=at.value,n=Number(t==null?void 0:t.calendarDays)>0?t.calendarDays:En.value,s=Number(t==null?void 0:t.ratePerDay)>0?t.ratePerDay:Ut.value,r=t!=null&&t.periodLabel?` · ${t.periodLabel}`:"";return`All meals (${n} days à ${Te(s)})${r}`}),tn=Y(()=>{var n;const t=Number(((n=at.value)==null?void 0:n.amount)??0);return t>0?Te(t):Te(_t.value)}),Hn=Y(()=>{const t=[];for(const n of b)for(const s of ge.value)!s.shortDayLabel||!Se(s.id,n.key)||(s.kind==="full"?t.push(`${n.label} full`):t.push(`${n.label} ${s.shortDayLabel}`));return t.length?t.join(" + "):"â"}),nn=Y(()=>Mt.value*Bt.value),sn=Y(()=>kt.value*rt.value.fullDay),ln=Y(()=>ht.value*rt.value.halfDay),an=Y(()=>ln.value+sn.value+nn.value),on=Y(()=>Math.round(an.value*52/12)),Gn=Y(()=>Te(on.value)),dn=Y(()=>kt.value>0&&rt.value.fullDay<=0?"Full-day rate is £0.00 for this classroom, so full-day charge is £0.00 in posting.":ht.value>0&&rt.value.halfDay<=0?"Half-day rate is £0.00 for this classroom, so half-day charge is £0.00 in posting.":""),Wn=Y(()=>Te(nn.value)),Jn=Y(()=>Te(sn.value)),Xn=Y(()=>Te(ln.value));function un(){const t=[];for(const n of ge.value)for(const s of b)Se(n.id,s.key)&&t.push({rowId:n.id,day:s.key,kind:n.kind,source:n.source});return t}function Zn(){if(o.fundingFlow==="none"||!o.fundingOption)return!0;const t=ge.value.filter(s=>s.source==="funding_package"&&s.kind==="funded"&&s.requiredFundedDaysPerWeek!=null);if(!t.length)return!0;let n=!1;for(const s of t){const r=s.requiredFundedDaysPerWeek,E=Nt(s.id);if(E===r&&(n=!0),E>0&&E!==r){const Z=s.shortDayLabel||s.description||"funded";return M.fire({icon:"warning",text:`Select exactly ${r} weekdays for "${Z}" (${r} days a week). You currently have ${E} selected.`,confirmButtonText:"Continue"}),!1}}if(!n){const s=[...new Set(t.map(E=>E.requiredFundedDaysPerWeek))].sort((E,Z)=>E-Z),r=s.length===1?`Please select all ${s[0]} funded weekdays (${s[0]} days a week) before continuing.`:"Please complete your funded weekday selection for each package (days per week) before continuing.";return M.fire({icon:"warning",text:r,confirmButtonText:"Continue"}),!1}return!0}const rn=Y(()=>{var t;return Te(on.value+(Number((t=at.value)==null?void 0:t.amount)>0?Number(at.value.amount):_t.value))});fe(()=>{var t;return[N.value,(t=q.studentData)==null?void 0:t.id,JSON.stringify(o.mealDays),o.applicableFrom,o.fundingFlow,o.fundingOption,ft.value.fundedSessionCount]},()=>{N.value&&Rt()}),fe(H,()=>{N.value&&Rt()},{deep:!0}),fe(()=>o.topUpDaysLabel,t=>{const n=String(t||"").match(/(\d+)/);if(o.topUpDays=n?Number(n[1]):0,!ee.value){if(N.value&&o.fundingFlow==="funding"&&o.fundingOption){bt();return}o.fundingFlow==="funding"&&o.fundingOption&&At()}},{immediate:!0}),fe(Yn,()=>{D.value||o.fundingFlow!=="funding"||!o.fundingOption||(yt(),G())});const Kn=Y(()=>{const t=[];for(const n of ge.value)if(n.source!=="topup_calendar")for(const s of b)t.push(Se(n.id,s.key)?"1":"0");return t.join("")});fe(Kn,()=>{D.value||G()}),fe(()=>o.fundingFlow,()=>{G()}),fe(()=>o.fundingOption,(t,n)=>{if(t!=null&&Number(t)>0&&(o.fundingFlow="funding"),!(t===n&&n!==void 0)){for(const s of Object.keys(H))String(s).startsWith("funding_pkg_")&&delete H[s];N.value&&bt()}});async function es(){var t;try{if(A(),Q(),Wt(),Jt(),Gt(),At(),yt(),!Zn())return;const n=vn({days:o.mealDays}),s=await x.updateStudentSessionInfo({student_id:(t=q.studentData)==null?void 0:t.id,payment_cycle:"monthly",funding_option_id:o.fundingFlow==="none"?null:o.fundingOption,top_up_days:o.fundingFlow==="none"?0:o.topUpDays,applicable_from:o.applicableFrom||null,selections:un(),meals:{type:n.type,days:n.days},discount_code:String(o.discountCode||"").trim()||null});w("save",(s==null?void 0:s.data)??q.sessionData),N.value=!1,M.fire({text:(s==null?void 0:s.message)||"Session information updated successfully.",icon:"success",confirmButtonText:"Continue"})}catch(n){M.fire({text:(n==null?void 0:n.message)||"Failed to update session information.",icon:"error",confirmButtonText:"Continue"})}}return(t,n)=>(f(),ne(He,{modelValue:N.value,"onUpdate:modelValue":n[9]||(n[9]=s=>N.value=s),persistent:""},{default:a(()=>[l(Fe,{class:"session-edit-dialog"},{default:a(()=>[l(Re,{ref_key:"sessionEditFormRef",ref:z,onSubmit:Ye(es,["prevent"])},{default:a(()=>[l(pe,{class:"session-edit-dialog__header"},{default:a(()=>[e("div",No,[l(Yt,{size:"38px",class:"session-edit-dialog__avatar"},{default:a(()=>[e("img",{src:Ve.value,alt:"Student avatar"},null,8,To)]),_:1}
110),e("div",null,[e("div",Ao,k(X.value),1),e("div",wo,k(Be.value)+" - Update Session ",1)])]),l(oe,{flat:"",round:"",dense:"",icon:"close",color:"grey-6",onClick:n[0]||(n[0]=s=>N.value=!1)})]),_:1}),l(Dt),l(pe,{class:"session-edit-dialog__body"},{default:a(()=>[n[26]||(n[26]=e("div",{class:"session-edit-dialog__section-title"}," Rate & Days ",-1)),e("div",Uo,[e("div",Bo,[e("div",Mo,[n[10]||(n[10]=e("div",{class:"session-edit-dialog__stat-label"}," Top-up Rate / Day ",-1)),e("div",Oo,k(o.fundingFlow==="none"?"â":Le(Bt.value)),1)])]),e("div",Po,[e("div",Ro,[n[11]||(n[11]=e("div",{class:"session-edit-dialog__stat-label"}," Half Days ",-1)),e("div",Io,k(ht.value),1)])]),e("div",Lo,[e("div",zo,[n[12]||(n[12]=e("div",{class:"session-edit-dialog__stat-label"}," Full Days ",-1)),e("div",Yo,k(kt.value),1)])])]),n[27]||(n[27]=e("div",{class:"session-edit-dialog__section-title q-mt-md"}," Funding plan ",-1)),e("div",Eo,[e("div",jo,[e("button",{type:"button",class:we(["session-edit-dialog__funding-type-card",{"session-edit-dialog__funding-type-card--active":o.fundingFlow==="funding"}]),onClick:n[1]||(n[1]=s=>Kt("funding"))},[...n[13]||(n[13]=[e("span",{class:"session-edit-dialog__funding-type-radio","aria-hidden":"true"},null,-1),e("span",{class:"session-edit-dialog__funding-type-body"},[e("span",{class:"session-edit-dialog__funding-type-label"},"Funding"),e("span",{class:"session-edit-dialog__funding-type-hint"},"Government-funded hours / package for this room")],-1)])],2)]),e("div",Qo,[e("button",{type:"button",class:we(["session-edit-dialog__funding-type-card",{"session-edit-dialog__funding-type-card--active":o.fundingFlow==="none"}]),onClick:n[2]||(n[2]=s=>Kt("none"))},[...n[14]||(n[14]=[e("span",{class:"session-edit-dialog__funding-type-radio","aria-hidden":"true"},null,-1),e("span",{class:"session-edit-dialog__funding-type-body"},[e("span",{class:"session-edit-dialog__funding-type-label"},"No funding"),e("span",{class:"session-edit-dialog__funding-type-hint"},"Full fees apply for all sessions")],-1)])],2)])]),nt(e("div",Ho,[e("div",Go,[n[15]||(n[15]=e("label",{class:"session-edit-dialog__label label-required"}," Funding option ",-1)),l(Pe,{modelValue:o.fundingOption,"onUpdate:modelValue":n[3]||(n[3]=s=>o.fundingOption=s),options:R.value,"option-label":"label","option-value":"value","emit-value":"","map-options":"",outlined:"",dense:"","lazy-rules":"",rules:te.value,class:"session-edit-dialog__input"},null,8,["modelValue","options","rules"])]),e("div",Wo,[n[16]||(n[16]=e("label",{class:"session-edit-dialog__label label-required"}," Top-up days ",-1)),l(Pe,{modelValue:o.topUpDaysLabel,"onUpdate:modelValue":n[4]||(n[4]=s=>o.topUpDaysLabel=s),options:U.value,outlined:"",dense:"","lazy-rules":"",rules:ve.value,class:"session-edit-dialog__input"},null,8,["modelValue","options","rules"])])],512),[[bs,o.fundingFlow==="funding"]]),e("div",Jo,[e("div",Xo,[n[17]||(n[17]=e("label",{class:"session-edit-dialog__label"},"Applicable from",-1)),l(re,{modelValue:he.value,"onUpdate:modelValue":n[5]||(n[5]=s=>he.value=s),mask:"##/##/####","fill-mask":!1,outlined:"",dense:"",clearable:"",placeholder:"dd/mm/yyyy",hint:"Day / month / year (UK), e.g. 11 June 2026 â 11/06/2026","persistent-hint":"",class:"session-edit-dialog__input"},{append:a(()=>[l(ie,{name:"event",class:"cursor-pointer"},{default:a(()=>[l($n,{cover:"","transition-show":"scale","transition-hide":"scale"},{default:a(()=>[l(Sn,{locale:C(Cs),"model-value":c(o.applicableFrom),"onUpdate:modelValue":h},null,8,["locale","model-value","onUpdate:modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue"])]),e("div",Zo,[n[18]||(n[18]=e("label",{class:"session-edit-dialog__label"},"Discount code",-1)),l(re,{modelValue:o.discountCode,"onUpdate:modelValue":[n[6]||(n[6]=s=>o.discountCode=s),n[7]||(n[7]=s=>o.discountCode=String(s||"").toUpperCase())],outlined:"",dense:"",clearable:"",placeholder:"Optional (e.g. AC20)",hint:"Optional â apply a CMS discount code from Discount Codes.","persistent-hint":"",class:"session-edit-dialog__input"},null,8,["modelValue"]),Ae.value?(f(),T("div",Ko,k(Ae.value),1)):se("",!0)])]),n[28]||(n[28]=e("div",{class:"session-edit-dialog__section-title q-mt-lg"}," Select Sessions & Days ",-1)),e("div",ei,[o.fundingFlow==="funding"?(f(),T(ue,{key:0},[W(" Select the sessions your child will attend. With funding, use the Top-up row for which funded weekdays include top-up (only on funded days above, up to the number set in Top-up days). ")],64)):(f(),T(ue,{key:1},[W(" Choose nursery sessions for each weekday. No government funding or calendar top-up applies when No funding is selected. ")],64))]),e("div",ti,[e("table",ni,[e("colgroup",null,[n[19]||(n[19]=e("col",{class:"session-edit-dialog__col-session"},null,-1)),(f(),T(ue,null,qe(b,s=>e("col",{key:`col-${s.key}`,class:"session-edit-dialog__col-day"})),64))]),e("thead",null,[e("tr",null,[n[20]||(n[20]=e("th",null,"Session",-1)),(f(),T(ue,null,qe(b,s=>e("th",{key:s.key},k(s.label),1)),64))])]),e("tbody",null,[(f(!0),T(ue,null,qe(ge.value,s=>(f(),T("tr",{key:s.id,class:we({"session-edit-dialog__row--funded":s.kind==="funded","session-edit-dialog__row--topup":s.kind==="topup"})}
110,[e("td",si,[s.source==="topup_calendar"?(f(),T("div",li,[n[21]||(n[21]=e("span",{class:"session-edit-dialog__calendar-topup-title"}," Top-up ",-1)),o.topUpDays>0?(f(),T("span",ai," Up to "+k(o.topUpDays)+" day(s) ",1)):se("",!0)])):s.kind==="topup"?(f(),T("span",oi," Top-up ")):(f(),T("div",ii,[s.source==="funding_package"?(f(),T("span",di," * ")):se("",!0),s.timeRange?(f(),T(ue,{key:1},[W(k(s.timeRange)+" ",1),n[22]||(n[22]=e("span",{class:"session-edit-dialog__session-sep"}," | ",-1))],64)):se("",!0),W(" "+k(s.description),1)]))]),(f(),T(ue,null,qe(b,r=>e("td",{key:`${s.id}-${r.key}`,class:"session-edit-dialog__day-cell"},[e("div",ui,[(f(),ne(fn,{key:wt(s.id,r.key),id:wt(s.id,r.key),name:wt(s.id,r.key),"model-value":Se(s.id,r.key),dense:"",color:"deep-purple",class:"session-edit-dialog__checkbox",disable:Bn(s.id,r.key),"onUpdate:modelValue":E=>Mn(s.id,r.key,E)},null,8,["id","name","model-value","disable","onUpdate:modelValue"])),s.source!=="topup_calendar"?(f(),T("span",{key:0,class:we(["session-edit-dialog__availability",qn(s.id,r.key)])},k(Fn(s.id,r.key)),3)):se("",!0)])])),64))],2))),128))]),e("tfoot",null,[e("tr",ri,[e("td",ci,[e("span",mi,[l(ie,{name:"restaurant",size:"16px"}),n[23]||(n[23]=W(" All meals ",-1))]),e("span",fi,k(Te(Ut.value))+" / day ",1)]),(f(),T(ue,null,qe(b,s=>e("td",{key:`meal-${s.key}`,class:"session-edit-dialog__day-cell session-edit-dialog__day-cell--meal"},[e("div",_i,[l(fn,{id:st(s.key),name:st(s.key),"model-value":L(s.key),dense:"",color:"deep-purple",class:"session-edit-dialog__checkbox",disable:!Ue(s.key),"onUpdate:modelValue":r=>de(s.key,r)},null,8,["id","name","model-value","disable","onUpdate:modelValue"]),We(s.key)?(f(),T("span",pi,k(We(s.key)),1)):(f(),T("span",gi))])])),64))])])])]),n[29]||(n[29]=e("div",{class:"session-edit-dialog__section-title q-mt-md"}," Payment ",-1)),e("div",vi,[n[25]||(n[25]=e("div",{class:"session-edit-dialog__summary-title"}," Session Cost Preview ",-1)),e("div",yi,[n[24]||(n[24]=e("span",null,"Sessions selected",-1)),e("strong",null,k(Hn.value),1)]),Mt.value>0?(f(),T("div",bi,[e("span",null,"Top-ups (£"+k(Je(Bt.value))+"/day à "+k(Mt.value)+")",1),e("strong",null,k(Wn.value),1)])):se("",!0),e("div",hi,[e("span",null,"Full days (£"+k(Je(rt.value.fullDay))+" à "+k(kt.value)+")",1),e("strong",null,k(Jn.value),1)]),e("div",ki,[e("span",null,"Half days (£"+k(Je(rt.value.halfDay))+" à "+k(ht.value)+")",1),e("strong",null,k(Xn.value),1)]),Ce.value.length>0&&_t.value>0?(f(),T("div",xi,[e("span",null,k(Qn.value),1),e("strong",null,k(tn.value),1)])):se("",!0),e("div",Si,[e("div",$i,[W(" Sessions: "+k(Te(an.value))+" à 52 ÷ 12 = "+k(Gn.value)+" ",1),Ce.value.length>0&&_t.value>0?(f(),T(ue,{key:0},[W(" + Meals "+k(tn.value)+" = "+k(rn.value),1)],64)):se("",!0)]),dn.value?(f(),T("div",Di,k(dn.value),1)):se("",!0),e("div",Ci,[e("span",null,"Total ("+k(qi)+")"),e("strong",null,k(rn.value),1)])])])]),_:1}),l(Me,{class:"session-edit-dialog__footer"},{default:a(()=>[l(oe,{flat:"","no-caps":"",label:"Cancel",onClick:n[8]||(n[8]=s=>N.value=!1)}),l(hs),l(oe,{unelevated:"","no-caps":"",color:"primary",class:"session-edit-dialog__save-btn",label:"Save Session Changes",type:"submit"})]),_:1})]),_:1},512)]),_:1})]),_:1},8,["modelValue"]))}},Ni=Ge(Vi,[["__scopeId","data-v-ea9768ad"]]),Ti={class:"session-info-page"},Ai={class:"session-info-grid"},wi={class:"session-info-card__title"},Ui={class:"session-info-card__subtitle"},Bi={class:"session-info-card__hero-actions"},Mi={class:"session-info-card__stat-grid session-info-card__stat-grid--three"},Oi={class:"session-info-card__stat"},Pi={class:"session-info-card__stat"},Ri={class:"session-info-card__stat"},Ii={class:"session-info-card__list"},Li={class:"session-info-card__list-row"},zi={class:"session-info-card__list-value-stack"},Yi={key:0,class:"session-info-card__list-detail"},Ei={key:1,class:"session-info-card__list-detail"},ji={key:0,class:"session-info-card__list-row"},Qi={class:"session-info-card__list-row"},Hi={class:"session-info-card__list-row"},Gi={key:0,class:"session-info-card__breakdown-grid"},Wi={class:"session-info-card__breakdown-label"},Ji={class:"session-info-card__breakdown-meta"},Xi={key:1,class:"session-info-card__empty-breakdown"},Zi={class:"session-slots-table-wrap",role:"region","aria-label":"Saved session slots"},Ki={class:"session-slots-table"},ed={key:0},td=["colspan"],nd={scope:"row",class:"session-slots-table__session-cell"},sd={class:"session-slots-table__session-main"},ld={key:0,class:"session-slots-table__session-sub"},ad={__name:"StudentSessionInfo",props:{studentData:{type:Object,default:()=>({})}},setup(ae){const $=ae,q=dt(),w=j(!1),N=[{key:"monday",label:"Mon"},{key:"tuesday",label:"Tue"},{key:"wednesday",label:"Wed"},{key:"thursday",label:"Thu"},{key:"friday",label:"Fri"},{key:"saturday",label:"Sat"},{key:"sunday",label:"Sun"}],z=j(!1),V=j({billingMonth:"â",status:"Loading",topUpDays:0,fullDays:0,halfDays:0,food:"£0.00",mealsMonthly:"£0.00",misc:"£0.00",fundingOption:"No funding",fundingOptionId:null,paymentDue:"â",invoiceRef:"â",billingCycle:"Monthly",total:"£0.00",breakdown:[],fundingOptions:[],sessionRows:[],applicableFrom:null,mealType:"none",mealDays:[],mealCalendarDays:0,mealPeriodLabel:null,mealRatePerDay:0,mealUsesCalendarDays:!1,mealPreviewNote:null}),x=Y(()=>{var i;return((i=$.studentData)==null?void 0:i.name)||"Leo Miller"}),O=Y(()=>{var i,c,g,h,R,y;return((g=(c=(i=$.studentData)==null?void 0:i.active_class_room)==null?void 0:c.classroom)==null?void 0:g.name)||((y=(R=(h=$.studentData)==null?void 0:h.activeClassRoom)==null?void 0:R.classroom)==null?void 0:y.name)||"Toddlers A"});function b(i){if(i==null||i==="")return"â";const c=String(i).trim(),g=c.match(/^(\d{4})-(\d{1,2})-(\d{1,2})/);if(g){const R=Number(g[1]),y=Number(g[2]),ce=Number(g[3]),ke=new Date(R,y-1,ce);
110if(ke.getFullYear()===R&&ke.getMonth()===y-1&&ke.getDate()===ce)return`${String(ce).padStart(2,"0")}/${String(y).padStart(2,"0")}/${R}`}const h=new Date(c);if(!Number.isNaN(h.getTime())){const R=String(h.getDate()).padStart(2,"0"),y=String(h.getMonth()+1).padStart(2,"0"),ce=String(h.getFullYear());return`${R}/${y}/${ce}`}return c}const p=Y(()=>b(V.value.applicableFrom));function A(i){const c=Number(i);return Number.isFinite(c)?new Intl.NumberFormat("en-GB",{style:"currency",currency:"GBP",minimumFractionDigits:2}).format(c):"£0.00"}const Q=Y(()=>{const i=ct(V.value.mealDays??[]);return i.length?ws(i):""}),o=Y(()=>V.value.mealsMonthly||V.value.food||"£0.00"),_=Y(()=>V.value.misc||"£0.00"),u=Y(()=>{const i=Number(V.value.mealCalendarDays??0),c=Number(V.value.mealRatePerDay??0),g=String(V.value.mealPeriodLabel??"").trim();if(i>0&&c>0&&V.value.mealUsesCalendarDays!==!1){const h=g?` (${g})`:"";return`${i} calendar days${h} à ${A(c)}`}return Q.value&&V.value.mealPreviewNote?V.value.mealPreviewNote:""}),d=Y(()=>(Array.isArray(V.value.breakdown)?V.value.breakdown:[]).filter(c=>(c==null?void 0:c.label)==="Meals"?!0:(c==null?void 0:c.label)==="Misc"?D(c.amount)>0:D(c==null?void 0:c.amount)>0));function D(i){const c=String(i??"").replace(/,/g,"").replace(/[^0-9.-]/g,""),g=Number.parseFloat(c||"0");return Number.isFinite(g)?g:0}function P(i){return(i==null?void 0:i.type)==="topup"?2:(i==null?void 0:i.type)==="funded"?1:0}function K(i){return!Array.isArray(i)||i.length===0?[]:[...i].sort((c,g)=>P(c)-P(g))}const ee=Y(()=>K(V.value.sessionRows));function I(i,c){const g=String(i||"").trim(),h=String(c||"").trim();return g&&h?`${g} - ${h}`:g||h||""}function H(i){return(i==null?void 0:i.type)==="funded"?(i==null?void 0:i.label)||"Funded place":(i==null?void 0:i.timeRange)||I(i==null?void 0:i.session_start_time,i==null?void 0:i.session_end_time)||(i==null?void 0:i.label)||"Session"}function he(i){return(i==null?void 0:i.type)==="funded"?(i==null?void 0:i.timeRange)||I(i==null?void 0:i.session_start_time,i==null?void 0:i.session_end_time)||(i==null?void 0:i.subLabel)||"":(i==null?void 0:i.subLabel)||""}async function De(){await B({silent:!0})}async function B(i={}){var R,y,ce,ke;const c=!!i.silent,g=(R=$.studentData)==null?void 0:R.id,h=((y=$.studentData)==null?void 0:y.parent_id)??((ke=(ce=$.studentData)==null?void 0:ce.parent)==null?void 0:ke.id);if(!(!g||!h)){c||(z.value=!0);try{const le=await q.getStudentInfo({id:g,parent_id:h});le!=null&&le.session_info&&(V.value={...V.value,...le.session_info,sessionRows:K(Array.isArray(le.session_info.sessionRows)?le.session_info.sessionRows:[]),fundingOptions:Array.isArray(le.session_info.fundingOptions)?le.session_info.fundingOptions:[],breakdown:Array.isArray(le.session_info.breakdown)?le.session_info.breakdown:[]})}catch(le){M.fire({text:(le==null?void 0:le.message)||"Failed to load session information.",icon:"error",confirmButtonText:"Continue"})}finally{c||(z.value=!1)}}}return Ee(()=>{B()}),fe(()=>{var i,c,g,h;return[(i=$.studentData)==null?void 0:i.id,((c=$.studentData)==null?void 0:c.parent_id)??((h=(g=$.studentData)==null?void 0:g.parent)==null?void 0:h.id)]},()=>{B()}),(i,c)=>(f(),T("div",Ti,[l(Vo,{showing:z.value,color:"primary",label:"Loading sessionâ¦"},null,8,["showing"]),e("div",Ai,[l(Fe,{class:"session-info-card session-info-card--hero"},{default:a(()=>[l(pe,{class:"session-info-card__hero"},{default:a(()=>[e("div",null,[c[2]||(c[2]=e("div",{class:"session-info-card__eyebrow"}," Session information ",-1)),e("div",wi,k(x.value),1),e("div",Ui,k(O.value)+" - "+k(V.value.billingMonth),1)]),e("div",Bi,[l($t,{rounded:"",class:"session-info-card__status-badge"},{default:a(()=>[W(k(V.value.status),1)]),_:1}),l(oe,{unelevated:"","no-caps":"",color:"white","text-color":"primary",icon:"edit",label:"Edit Session",class:"session-info-card__edit-btn",onClick:c[0]||(c[0]=g=>w.value=!0)})])]),_:1})]),_:1}),l(Fe,{class:"session-info-card"},{default:a(()=>[l(pe,null,{default:a(()=>[c[6]||(c[6]=e("div",{class:"session-info-card__section-title"}," Attendance Summary ",-1)),e("div",Mi,[e("div",Oi,[c[3]||(c[3]=e("span",{class:"session-info-card__stat-label"},"Top-up Days",-1)),e("strong",null,k(V.value.topUpDays),1)]),e("div",Pi,[c[4]||(c[4]=e("span",{class:"session-info-card__stat-label"},"Full Days",-1)),e("strong",null,k(V.value.fullDays),1)]),e("div",Ri,[c[5]||(c[5]=e("span",{class:"session-info-card__stat-label"},"Half Days",-1)),e("strong",null,k(V.value.halfDays),1)])])]),_:1})]),_:1}),l(Fe,{class:"session-info-card"},{default:a(()=>[l(pe,null,{default:a(()=>[c[11]||(c[11]=e("div",{class:"session-info-card__section-title"}," Charges & Adjustments ",-1)),e("div",Ii,[e("div",Li,[c[7]||(c[7]=e("span",null,"Meals (monthly)",-1)),e("div",zi,[e("strong",null,k(o.value),1),Q.value?(f(),T("div",Yi,k(Q.value),1)):se("",!0),u.value?(f(),T("div",Ei,k(u.value),1)):se("",!0)])]),_.value!=="£0.00"?(f(),T("div",ji,[c[8]||(c[8]=e("span",null,"Misc",-1)),e("strong",null,k(_.value),1)])):se("",!0),e("div",Qi,[c[9]||(c[9]=e("span",null,"Funding Option",-1)),l($t,{outline:"",color:"primary",class:"session-info-card__funding-badge"},{default:a(()=>[W(k(V.value.fundingOption),1)]),_:1})]),e("div",Hi,[c[10]||(c[10]=e("span",null,"Applicable from",-1)),e("strong",null,k(p.value),1)])])]),_:1})]),_:1}),l(Fe,{class:"session-info-card session-info-card--breakdown"},{default:a(()=>[l(pe,null,{default:a(()=>[c[12]||(c[12]=e("div",{class:"session-info-card__section-title"}," Amount Breakdown ",-1)),d.value.length?(f(),T("div",Gi,[(f(!0),T(ue,null,qe(d.value,g=>(f(),T("div",{key:g.label,class:"session-info-card__breakdown-item"},[e("span",Wi,k(g.label),1),e("span",Ji,k(g.meta),1),e("strong",null,k(g.amount),1)]))),128))])):(f(),T("p",Xi," No session charges for this billing period. "))]),_:1})]),_:1}),l(Fe,{class:"session-info-card session-info-card--breakdown"},{default:a(()=>[l(pe,null,{default:a(()=>[c[14]||(c[14]=e("div",{class:"session-info-card__section-title"}," Saved Session Slots ",-1)),e("div",Zi,[e("table",Ki,[e("thead",null,[e("tr",null,[c[13]||(c[13]=e("th",{scope:"col",class:"session-slots-table__th-session"}," Session ",-1)),(f(),T(ue,null,qe(N,g=>e("th",{key:g.key,scope:"col",class:"session-slots-table__th-day"},k(g.label),1)),64))])]),e("tbody",null,[ee.value.length?se("",!0):(f(),T("tr",ed,[e("td",{colspan:1+N.length,class:"session-info-card__empty-slots"}," No session rows returned yet. Open Edit Session after assigning a classroom if this stays empty. ",8,td)])),(f(!0),T(ue,null,qe(ee.value,g=>(f(),T("tr",{key:g.id,class:we({"session-slots-table__row--funded":g.type==="funded","session-slots-table__row--topup":g.type==="topup"})}
110,[e("th",nd,[e("div",sd,k(H(g)),1),he(g)?(f(),T("div",ld,k(he(g)),1)):se("",!0)]),(f(),T(ue,null,qe(N,h=>{var R,y;return e("td",{key:`${g.id}-${h.key}`,class:"session-slots-table__cell"},[e("span",{class:we(["session-slots-table__marker",{"session-slots-table__marker--active":(R=g.selected)==null?void 0:R[h.key]}])},k((y=g.selected)!=null&&y[h.key]?"Selected":"â"),3)])}),64))],2))),128))])])])]),_:1})]),_:1})]),l(Ni,{modelValue:w.value,"onUpdate:modelValue":c[1]||(c[1]=g=>w.value=g),"session-data":V.value,"student-data":ae.studentData,onSave:De},null,8,["modelValue","session-data","student-data"])]))}},od=Ge(ad,[["__scopeId","data-v-64ea6646"]]),id={class:"student-detail-page"},dd={class:"module-hub__heading"},ud={class:"student-detail-tab__content"},rd={class:"student-detail-tab__content"},cd={class:"student-detail-tab__content"},md={class:"student-detail-tab__content"},fd={class:"student-detail-tab__content"},_d={class:"student-detail-tab__content"},pd={class:"student-detail-tab__content"},gd={class:"row q-col-gutter-md student-info-wrapper"},vd={class:"col-12 col-md-9 student-detail-tab-content"},yd={class:"col-12 col-md-3 student-profile-sidebar"},bd={class:"student-sidebar-sticky"},hd={class:"student-sidebar-card student-sidebar-card--profile"},kd={class:"student-sidebar-card__hero"},xd={class:"avatar-container rounded-avatar"},Sd=["src"],$d={class:"student-sidebar-card__body"},Dd={class:"student-sidebar-card__name"},Cd={class:"student-quick-stats"},Fd={class:"student-quick-stat"},qd={class:"student-quick-stat__text"},Vd={class:"student-quick-stat__value"},Nd={class:"student-quick-stat"},Td={class:"student-quick-stat__text"},Ad={class:"student-quick-stat__value"},wd={class:"student-quick-stat"},Ud={class:"student-quick-stat__text"},Bd={class:"student-quick-stat__value"},Md={class:"student-quick-stat"},Od={class:"student-quick-stat__text"},Pd={class:"student-quick-stat__value"},Rd={key:0,class:"assigned-status-chip status-badge-wrapper"},Id={class:"student-sidebar-actions"},Ld={class:"student-sidebar-card student-sidebar-card--status"},zd={class:"student-sidebar-card__section-head"},Yd={class:"student-sidebar-card__section-icon"},Ed={class:"lifecycle-options"},jd=["disabled","onClick"],Qd={class:"lifecycle-option__label"},Hd={class:"lifecycle-option__hint"},Gd={key:0,class:"student-status-updating"},Wd={class:"col-12"},Jd="https://cdn-icons-png.flaticon.com/512/847/847969.png",Xd={__name:"StudentInformation",setup(ae){const $=Us(),q=xn(),w=j(!1),N=j(null),z=Lt(),V=dt(),x=j(null);let O=j("basic_info");const{subscribed_plan:b}=tt(z);let p=j(""),A=j(null);const Q=j(null),o=j(null),_=j(!1),u=j("active");function d(L){const F=L==null?void 0:L.status;return F===1||F===!0||F==="1"?"active":F===2||F==="2"?"freeze":"inactive"}function D(){x.value&&(u.value=d(x.value))}const P=[{value:"active",label:"Active",icon:"check_circle",hint:"Billing runs normally"},{value:"freeze",label:"Freeze",icon:"ac_unit",hint:"Billing paused"},{value:"inactive",label:"Inactive",icon:"block",hint:"Hidden from workflows"}],K=Y(()=>{var L,F,de;return((de=(F=(L=x.value)==null?void 0:L.active_class_room)==null?void 0:F.classroom)==null?void 0:de.name)||"N/A"}),ee=Y(()=>{var de,_e,G,Ne,me;const L=x.value;if(!L)return"N/A";if((de=L.branch)!=null&&de.name)return L.branch.name;if((Ne=(G=(_e=L.active_class_room)==null?void 0:_e.classroom)==null?void 0:G.branch)!=null&&Ne.name)return L.active_class_room.classroom.branch.name;const F=L.branch_id;if(F!=null&&F!==""){const Ie=(me=q.all_branches)==null?void 0:me.find(ut=>Number(ut.id)===Number(F));if(Ie!=null&&Ie.name)return Ie.name}return"N/A"}),I=Y(()=>{var L,F;return((F=(L=x.value)==null?void 0:L.parent)==null?void 0:F.name)||"N/A"});Y(()=>u.value==="active");const H=L=>{const F=d(x.value);L===F||_.value||(u.value=L,B(L))},he=()=>{var L;(L=x.value)!=null&&L.id&&localStorage.setItem("studentData",JSON.stringify(x.value))},De={inactive:{title:"Mark student inactive?",text:"This student will be marked as inactive and hidden from active workflows.",confirmText:"Yes, mark inactive"},freeze:{title:"Mark student on freeze?",text:"This student will be marked as on freeze. Billing will not be generated until they are set back to Active.",confirmText:"Yes, mark freeze"},active:{title:"Mark student active?",text:"This student will be marked as active.",confirmText:"Yes, mark active"}}
110,B=async L=>{var Ne;const F=(Ne=x.value)==null?void 0:Ne.id;if(!F||_.value||!L)return;const de=d(x.value);if(L===de)return;const _e=De[L];if(!(await M.fire({title:_e.title,text:_e.text,icon:"question",showCancelButton:!0,confirmButtonColor:"#ac89e9",cancelButtonColor:"#d33",confirmButtonText:_e.confirmText,cancelButtonText:"Cancel"})).isConfirmed){u.value=de;return}_.value=!0,V.updateStudentStatus({student_id:F,status:L}).then(me=>{const Ie={active:1,inactive:0,freeze:2};x.value&&(x.value.status=Ie[L],he()),st(),M.fire({text:me==null?void 0:me.message,icon:"success",confirmButtonText:"Continue"})},me=>{u.value=de,M.fire({text:(me==null?void 0:me.message)||"Could not update student status.",icon:"error",confirmButtonText:"Continue"})}).finally(()=>{_.value=!1})};$e({id:null,parent_id:null,parent_name:null,parent_country_id:null,parent_email:null,parent_phone:null,std_branch_id:null,std_name:null,std_class_room_id:null,std_dob:null,gender:null,profile_avatar:null});let i=$e({email:null}),c=$e({student_id:null,status_id:null});const g=Y(()=>$.statuses_list.filter(L=>L.status==1).map(L=>({label:L.name,value:L.id}))),h=()=>{N.value=null,c.student_id=null,c.status_id=null},R=()=>{h()},y=async()=>{var L;if(await $.getStatuses(),!((L=x.value)!=null&&L.id)){M.fire({icon:"error",text:"Student ID not found",confirmButtonText:"Continue"});return}if(c.student_id=x.value.id,c.status_id=null,w.value=!0,$.statuses_list.length===0||$.statuses_list.every(F=>F.status===0)){M.fire({icon:"info",text:"No active status available. Please add status to assign",confirmButtonText:"Continue"});return}},ce=()=>{var L;c.student_id=((L=x.value)==null?void 0:L.id)||null,c.status_id=N.value,V.assignStudentStatus({...c}).then(F=>{M.fire({icon:"success",text:(F==null?void 0:F.message)||"Status assigned successfully",confirmButtonText:"Continue"}),w.value=!1,h(),Ce()}).catch(F=>{M.fire({icon:"error",text:(F==null?void 0:F.message)||"Failed to assign status",confirmButtonText:"Continue"})})},ke=async L=>{if((await M.fire({title:"Are you sure?",text:"Do you want to deactivate the status?",icon:"warning",showCancelButton:!0,confirmButtonText:"Yes",cancelButtonText:"Cancel"})).isConfirmed)try{const de=await V.deactivateCurrentStatus({student_id:L});M.fire({icon:"success",text:(de==null?void 0:de.message)||"Status deactivated successfully",confirmButtonText:"Continue"}),Ce()}catch(de){M.fire({icon:"error",text:(de==null?void 0:de.message)||"Failed to deactivate status",confirmButtonText:"Continue"})}},le=async()=>{var de,_e;const L=A.value;if(!L||!(L instanceof File))return;p.value=URL.createObjectURL(L);const F={id:(de=x.value)==null?void 0:de.id,profile_avatar:L};try{const G=await V.updateStudentAvatar(F);(G==null?void 0:G.status)===!1?(p.value="",A.value=null,M.fire({text:(G==null?void 0:G.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"})):((_e=G==null?void 0:G.data)!=null&&_e.avatar_url&&(x.value.avatar=G.data.avatar_url),V.is_student_profile_updated=!0,M.fire({text:(G==null?void 0:G.message)||"Success!",icon:"success",confirmButtonText:"Continue"}))}catch(G){p.value="",A.value=null,M.fire({text:(G==null?void 0:G.message)||"An error occurred",icon:"error",confirmButtonText:"Continue"})}},Ue=()=>{Q.value&&typeof Q.value.pickFiles=="function"&&Q.value.pickFiles()},We=L=>{var F,de;if(!((de=(F=x==null?void 0:x.value)==null?void 0:F.parent)!=null&&de.email)){M.fire({text:"No email found for this parent.",icon:"error",confirmButtonText:"Okay"});return}M.fire({text:"Are you sure you want to reset the credentials?",icon:"warning",showCancelButton:!0,confirmButtonColor:"#ac89e9",cancelButtonColor:"#d33",confirmButtonText:"Yes",cancelButtonText:"No"}).then(_e=>{var G,Ne;_e.isConfirmed&&(i.email=(Ne=(G=x==null?void 0:x.value)==null?void 0:G.parent)==null?void 0:Ne.email,V.parentReset(i).then(me=>{me!=null&&me.status?M.fire({text:(me==null?void 0:me.message)??"Password has been successfully sent to this email address",icon:"success",confirmButtonText:"Continue"}):M.fire({text:(me==null?void 0:me.message)??"An error occured",icon:"error",confirmButtonText:"Continue"})},me=>{M.fire({text:(me==null?void 0:me.message)??"An error occured",icon:"error",confirmButtonText:"Continue",allowOutsideClick:!1,allowEscapeKey:!1,allowEnterKey:!1})}))})},st=()=>{V.getStudents().then(L=>{var F,de;((F=L==null?void 0:L.data)==null?void 0:F.length)>0&&((de=L==null?void 0:L.data)==null||de.forEach((_e,G)=>{var Ne;(_e==null?void 0:_e.id)==((Ne=x.value)==null?void 0:Ne.id)&&(x.value=_e,D(),localStorage.removeItem("studentData"),setTimeout(()=>{localStorage.setItem("studentData",JSON.stringify(_e))},500))}))},L=>{M.fire({text:L==null?void 0:L.message,icon:"error",confirmButtonText:"Continue"})})},Ce=async()=>{var L;try{const F=await V.getCurrentStudentStatus((L=x.value)==null?void 0:L.id);F!=null&&F.status?o.value=F.data.status:o.value=null}catch{o.value=null}};return fe(()=>V.is_student_profile_updated,(L,F)=>{L==!0&&(st(),V.is_student_profile_updated=!1)}),fe(()=>{var L;return(L=x.value)==null?void 0:L.status},()=>D(),{immediate:!0}),Ee(()=>{var F,de,_e;const L=localStorage.getItem("studentData");
110L&&(x.value=JSON.parse(L),D(),Ce()),(de=(F=z.user_parent)==null?void 0:F.country)!=null&&de.name||z.getUser().catch(()=>{}),(_e=q.all_branches)!=null&&_e.length||q.getBranches().catch(()=>{}),localStorage.getItem("move_to_medication")&&(O.value="medication_observations",localStorage.removeItem("move_to_medication"))}),zt(()=>{localStorage.removeItem("studentData")}),(L,F)=>{var de,_e;return f(),T(ue,null,[e("div",id,[e("div",dd,[l(ks,{page_heading:"Student Information",module_link:"Student",module_link1:"Student Management"})]),l(kn,{modelValue:C(O),"onUpdate:modelValue":F[0]||(F[0]=G=>Qe(O)?O.value=G:O=G),class:"student-detail-tabs",align:"left","narrow-indicator":"","indicator-color":"transparent","outside-arrows":"","mobile-arrows":""},{default:a(()=>[l(je,{name:"basic_info",class:we(["student-detail-tab",{"student-detail-tab--active":C(O)==="basic_info"}])},{default:a(()=>[e("div",ud,[l(ie,{name:"person_outline",size:"18px"}),F[5]||(F[5]=e("span",null,"Basic Info",-1))])]),_:1},8,["class"]),C(z).isSelectedBranchUK?(f(),ne(je,{key:0,name:"session_info",class:we(["student-detail-tab",{"student-detail-tab--active":C(O)==="session_info"}])},{default:a(()=>[e("div",rd,[l(ie,{name:"schedule",size:"18px"}),F[6]||(F[6]=e("span",null,"Session Info",-1))])]),_:1},8,["class"])):se("",!0),l(je,{name:"billings",class:we(["student-detail-tab",{"student-detail-tab--active":C(O)==="billings"}])},{default:a(()=>[e("div",cd,[l(ie,{name:"payments",size:"18px"}),F[7]||(F[7]=e("span",null,"Billing",-1))])]),_:1},8,["class"]),C(b)!=1?(f(),ne(je,{key:1,name:"medication_observations",class:we(["student-detail-tab",{"student-detail-tab--active":C(O)==="medication_observations"}])},{default:a(()=>[e("div",md,[l(ie,{name:"medication",size:"18px"}),F[8]||(F[8]=e("span",null,"Medication & Observations",-1))])]),_:1},8,["class"])):se("",!0),C(b)!=1?(f(),ne(je,{key:2,name:"student_notes",class:we(["student-detail-tab",{"student-detail-tab--active":C(O)==="student_notes"}])},{default:a(()=>[e("div",fd,[l(ie,{name:"sticky_note_2",size:"18px"}),F[9]||(F[9]=e("span",null,"Student Notes",-1))])]),_:1},8,["class"])):se("",!0),C(b)!=1?(f(),ne(je,{key:3,name:"status_history",class:we(["student-detail-tab",{"student-detail-tab--active":C(O)==="status_history"}])},{default:a(()=>[e("div",_d,[l(ie,{name:"history",size:"18px"}),F[10]||(F[10]=e("span",null,"Status History",-1))])]),_:1},8,["class"])):se("",!0),C(b)!=1?(f(),ne(je,{key:4,name:"child_development",class:we(["student-detail-tab",{"student-detail-tab--active":C(O)==="child_development"}])},{default:a(()=>[e("div",pd,[l(ie,{name:"child_care",size:"18px"}),F[11]||(F[11]=e("span",null,"Child Development",-1))])]),_:1},8,["class"])):se("",!0)]),_:1},8,["modelValue"]),e("div",gd,[e("div",vd,[(f(),T("div",{key:C(O)},[C(O)==="basic_info"?(f(),ne(Cl,{key:0,std_data:x.value},null,8,["std_data"])):C(O)==="session_info"?(f(),ne(od,{key:1,"student-data":x.value},null,8,["student-data"])):C(O)==="billings"?(f(),ne(ml,{key:2,std_data:x.value},null,8,["std_data"])):C(O)==="student_notes"?(f(),ne(Yl,{key:3,std_data:x.value},null,8,["std_data"])):C(O)==="medication_observations"?(f(),ne(Fs,{key:4,id:x.value.id},null,8,["id"])):C(O)==="status_history"?(f(),ne(Xl,{key:5,id:x.value.id},null,8,["id"])):C(O)==="child_development"?(f(),ne(qo,{key:6,std_data:x.value},null,8,["std_data"])):se("",!0)]))]),e("div",yd,[e("div",bd,[e("div",hd,[e("div",kd,[e("div",xd,[l(Yt,{size:"108px"},{default:a(()=>{var G;return[e("img",{src:C(p)||((G=x.value)==null?void 0:G.avatar)||Jd,class:"profile-image",alt:"Student avatar"},null,8,Sd)]}),_:1}),l(Et,{ref_key:"avatarPicker",ref:Q,modelValue:C(A),"onUpdate:modelValue":[F[1]||(F[1]=G=>Qe(A)?A.value=G:A=G),le],accept:".jpg, image/*",borderless:"",dense:"",style:{display:"none"}},null,8,["modelValue"]),e("button",{type:"button",class:"camera-icon","aria-label":"Change profile photo",onClick:Ue},[l(ie,{name:"photo_camera",size:"16px",color:"white"})])])]),e("div",$d,[e("h3",Dd,k(((de=x.value)==null?void 0:de.name)||"N/A"),1),e("div",Cd,[e("div",Fd,[l(ie,{name:"badge",size:"18px",class:"student-quick-stat__icon"}),e("div",qd,[F[12]||(F[12]=e("span",{class:"student-quick-stat__label"},"Student ID",-1)),e("span",Vd,k(((_e=x.value)==null?void 0:_e.id)||"N/A"),1)])]),e("div",Nd,[l(ie,{name:"meeting_room",size:"18px",class:"student-quick-stat__icon"}),e("div",Td,[F[13]||(F[13]=e("span",{class:"student-quick-stat__label"},"Classroom",-1)),e("span",Ad,k(K.value),1)])]),e("div",wd,[l(ie,{name:"apartment",size:"18px",class:"student-quick-stat__icon"}),e("div",Ud,[F[14]||(F[14]=e("span",{class:"student-quick-stat__label"}
110,"Branch",-1)),e("span",Bd,k(ee.value),1)])]),e("div",Md,[l(ie,{name:"family_restroom",size:"18px",class:"student-quick-stat__icon"}),e("div",Od,[F[15]||(F[15]=e("span",{class:"student-quick-stat__label"},"Parent",-1)),e("span",Pd,k(I.value),1)])])]),o.value?(f(),T("div",Rd,[l(ie,{name:"label",size:"16px"}),e("span",{class:"assigned-status-chip__label",style:Oe({color:o.value.color_code})},k(o.value.name),5),l(ie,{name:"close",size:"16px",class:"assigned-status-chip__remove cancel-icon-outside",onClick:F[2]||(F[2]=Ye(G=>ke(x.value.id),["stop"]))})])):se("",!0),e("div",Id,[l(oe,{label:"Assign Status",icon:"sell",color:"primary",unelevated:"","no-caps":"",class:"student-sidebar-actions__btn",onClick:y}),C(b)!=1?(f(),ne(oe,{key:0,label:"Reset Password",icon:"lock_reset",color:"primary",outline:"","no-caps":"",class:"student-sidebar-actions__btn",onClick:We})):se("",!0)])])]),e("div",Ld,[e("div",zd,[e("div",Yd,[l(ie,{name:"toggle_on",size:"20px"})]),F[16]||(F[16]=e("div",null,[e("div",{class:"student-status-card__title"}," Student Status "),e("p",{class:"student-status-card__hint"}," Billing only runs while the student is active. ")],-1))]),e("div",Ed,[(f(),T(ue,null,qe(P,G=>e("button",{key:G.value,type:"button",class:we(["lifecycle-option",[`lifecycle-option--${G.value}`,{"lifecycle-option--selected":u.value===G.value}]]),disabled:_.value,onClick:Ne=>H(G.value)},[l(ie,{name:G.icon,size:"20px"},null,8,["name"]),e("span",Qd,k(G.label),1),e("span",Hd,k(G.hint),1)],10,jd)),64))]),_.value?(f(),T("div",Gd,[l(ql,{color:"primary",size:"20px"}),F[17]||(F[17]=e("span",null,"Updating statusâ¦",-1))])):se("",!0)])])])])]),l(He,{modelValue:w.value,"onUpdate:modelValue":F[4]||(F[4]=G=>w.value=G),persistent:""},{default:a(()=>[l(Fe,{class:"app-dialog-card",style:{width:"400px","max-width":"80vw"}},{default:a(()=>[l(Re,{onSubmit:Ye(ce,["prevent"])},{default:a(()=>[l(pe,{class:"q-pt-md q-pb-sm"},{default:a(()=>[...F[18]||(F[18]=[e("div",{class:"app-dialog-card__title"},"Assign Status",-1)])]),_:1}),F[22]||(F[22]=e("hr",{class:"app-dialog-card__divider"},null,-1)),l(pe,{class:"row q-col-gutter-sm q-pt-md"},{default:a(()=>[e("div",Wd,[F[19]||(F[19]=e("label",{class:"label-required"},"Select Status",-1)),l(Pe,{modelValue:N.value,"onUpdate:modelValue":F[3]||(F[3]=G=>N.value=G),options:g.value,outlined:"",dense:"","emit-value":"","map-options":"",rules:[G=>!!G||"This field is required"]},null,8,["modelValue","options","rules"])])]),_:1}),l(Me,{align:"right",class:"app-dialog-card__actions"},{default:a(()=>[nt((f(),ne(oe,{color:"red",flat:"","no-caps":"",id:"closeBtn",onClick:R},{default:a(()=>[...F[20]||(F[20]=[W("Cancel",-1)])]),_:1})),[[ot]]),l(oe,{color:"primary",unelevated:"","no-caps":"",type:"submit"},{default:a(()=>[...F[21]||(F[21]=[W("Submit",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"])],64)}}},qu=Ge(Xd,[["__scopeId","data-v-1daa58a1"]]);export{qu 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.