1import{aC as L,aD as k,j as t,F as N,v as S,a as p,aE as P,b as H,r as m,aF as w,i as v,o as $,S as b,aG as O,I as V,p as B,t as G,B as D,y as j,d as R,A as Y,m as _,D as I,z as U}from"./index-b482bd3b.js";import{g as z,d as M,u as W}from"./classes.masterdata.service-54a9c103.js";import{D as q,H as J}from"./index-5cc1f179.js";L.extend(k);const K=[{Header:"Class Name",accessor:"className",Cell:({row:l})=>{var i,o,c;return t(N,{children:`${S(l.original.syllabus)} ${(i=l.original.className)==null?void 0:i.subjectName} ${S((o=l.original.productGrade)==null?void 0:o.sittingYear,!0)} ${S((c=l.original.productGrade)==null?void 0:c.productName,!0)}`})}},{Header:"No. of Students",accessor:"participants",Cell:({row:l})=>p(N,{children:[l.original.participants.length," Students"]})},{Header:"Teacher",accessor:"classTeacher",Cell:({row:l})=>{var i;return t(N,{children:(i=l.original.classTeacher)==null?void 0:i.fullName})}},{Header:"Date & Time",accessor:"dateTime",Cell:({row:l})=>p(N,{children:[L(l.original.dateTime,"HH:mm").format("hh:mm A")," ",P(l.original.classDay)]})}],Q=l=>{const{classList:i,onFilter:o,defaultValues:c,onReset:n}=l,{register:y,handleSubmit:C,control:d,reset:f}=H({defaultValues:c||{}}),[F,A]=m.useState([]),[T,E]=m.useState([]),[x,g]=m.useState(!1);m.useEffect(()=>{s(),a()},[]),m.useEffect(()=>{f(c||{})},[c,f]);const s=async()=>{try{g(!0);const{data:e}=await w();e&&e.results&&A(e.results),g(!1)}catch(e){g(!1),v(e)}},a=async()=>{try{const{data:e}=await $();E(e)}catch(e){console.error("Error fetching master data:",e)}},r=async e=>{try{const h={...e};j(h),o(h)}catch(h){v(h)}},u=()=>{f({}),n==null||n()};return t("div",{className:"w-full",children:p("form",{className:"space-y-5 dark:text-white mt-8",onSubmit:C(r),noValidate:!0,children:[p("div",{className:"flex gap-8",children:[t(b,{control:d,label:"Class Day",id:"classDay",isClearable:!0,options:O.map(e=>{var h;return{value:(h=P(e))==null?void 0:h.toString(),label:e}})}),t(V,{register:y,label:"Class Name (Subject)",placeholder:"Class Name",id:"className"}),t(b,{control:d,label:"Teacher",id:"classTeacher",isClearable:!0,options:F.map(e=>({value:e._id,label:`${e.firstName} ${e.lastName}`}))}),t(b,{control:d,label:"Syllabus",id:"syllabus",isClearable:!0,options:B.map(e=>({value:e,label:e}))}),t(b,{control:d,label:"Exam Sitting Year",id:"sittingYear",isClearable:!0,options:G.map(e=>({value:e,label:e}))}),t(b,{control:d,label:"Product / Grade",id:"productGrade",isClearable:!0,options:T.map(e=>({value:e._id,label:`${S(e.sittingYear)} ${e.productName}`}))})]}),p("div",{className:"flex justify-end gap-3 !mt-0 !mb-5",children:[t(D,{title:"Filter",type:"submit"}),t(D,{title:"Reset Filters",type:"button",onClick:u})]})]})})},ae=()=>{const l=R(),[i,o]=m.useState([]),[c,n]=m.useState(!1),[y,C]=Y();m.useEffect(()=>{const s=d();f(s)},[y.toString()]);const d=()=>{const s=Array.from(y.entries()),a={};for(const[r,u]of s)a[r]=u;return a},f=async s=>{try{n(!0);const{data:a}=await z(s||{});o(a||[]),n(!1)}catch(a){n(!1),v(a)}},F=s=>{l("form",{state:{classData:s,type:"Edit"}})},A=async s=>{try{const{data:a}=await M(s._id);U.success("Class deleted successfully"),f()}catch(a){v(a)}},T=async(s,a)=>{const r=[...i],[u]=r.splice(s,1);r.splice(a,0,u),o(r)}
1,E=async()=>{const s=i.map((a,r)=>({id:a.id,_id:a._id,position:r}));n(!0),await W(s),n(!1)},x=()=>{C({})},g=s=>{const a={...s};j(a);const r=new URLSearchParams;Object.entries(a).forEach(([u,e])=>{e!=null&&e!==""&&r.set(u,String(e))}),C(r)};return c?t(_,{}):p("div",{className:"container",children:[p("div",{className:"flex justify-between items-center",children:[t("div",{className:"font-bold text-md mb-6",children:"Class Details"}),p("div",{className:"flex gap-4",children:[t(D,{title:"Create Class",onClick:()=>l("form",{state:{type:"Create"}})}),t(D,{title:"Save Class Order",onClick:()=>E()})]})]}),t(Q,{classList:i,onFilter:s=>g(s),defaultValues:d(),onReset:x}),t(q,{backend:J,children:t("div",{className:"mt-10",children:t(I,{moveRow:T,columns:K,data:i,actions:!0,isDraggable:!0,handleOnDelete:A,handleOnEdit:F})})})]})};export{ae 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.