1import{a as ie,b as le,r as j,j as e}from"./vendor-react-wpXF2Dvf.js";import{b as oe,f as ce,h as K}from"./main-BDOnhuy4.js";import{Y as a,L as k,a0 as v,k as m,ar as P,as as D,at as N,au as M,av as S,a7 as de,T as B,a as me,e as he,Q as ue,V as xe,$ as je,ah as ge,ai as z,aj as Y,ak as C,al as fe,am as E,aY as pe,w as ye,P as we,A as Z}from"./superschool-ui-DXud_9UO.js";import{aD as O,aY as Ae,aH as be,bu as ve,bx as p,bB as Pe,U as g,I as _,Q as f}from"./superschool-sdk-BmtTBy0Q.js";import"./modulepreload-polyfill-B5Qt9EMX.js";import"./vendor-query-fYiNqPbw.js";import"./vendor-react-pdf-3ecbNM6a.js";import"./vendor-i18n-BUJziXlB.js";import"./vendor-radix-kOLjYi5a.js";import"./vendor-recharts-DgZqauKz.js";import"./vendor-tiptap-DtaI5KiI.js";function Ee(){var G,H;const I=ie(),[F,Q]=le(),[l,R]=j.useState(null),[h,T]=j.useState(null),[J,V]=j.useState(!1),{schoolYearList:i}=oe(),{data:x}=O().useGetTimetableVersionList({schoolYear:l==null?void 0:l.year,semester:h==null?void 0:h.semester},{enabled:l!==null&&h!==null,queryKey:["/api/admin/timetable-version/list",{schoolYear:l==null?void 0:l.year,semester:h==null?void 0:h.semester}]}),d=Ae({schema:be.timetableVersionCreateSchema,defaultValues:{name:"",schoolYearId:"",semesterId:"",timetableVersionPeriods:[{startAt:"",endAt:""}]},mode:"onSubmit"}),{fields:W}=ve({control:d.control,name:"timetableVersionPeriods"}),w=d.watch("schoolYearId"),A=d.watch("semesterId"),u=j.useMemo(()=>!w||!i?null:i.find(s=>s.id.toString()===w)??null,[w,i]),n=j.useMemo(()=>!A||!u?null:u.schoolSemesters.find(s=>s.id.toString()===A)??null,[A,u]),{data:o}=O().useGetTimetableVersionList({schoolYear:u==null?void 0:u.year,semester:n==null?void 0:n.semester},{enabled:u!==null&&n!==null,queryKey:["/api/admin/timetable-version/list",{schoolYear:u==null?void 0:u.year,semester:n==null?void 0:n.semester}]}),X=j.useMemo(()=>{if(n!=null&&n.startAt)return p(n.startAt)},[n]),L=j.useMemo(()=>{if(n!=null&&n.endAt)return p(n.endAt)},[n]),ee=j.useMemo(()=>{if(!(o!=null&&o.data))return[];const s=[];for(const t of o.data)for(const r of t.timetableVersionPeriods)if(r.startAt&&r.endAt){const c=Pe({start:p(r.startAt),end:p(r.endAt)});s.push(...c)}return s},[o]);j.useEffect(()=>{d.setValue("semesterId","")},[w]),j.useEffect(()=>{if(!n){d.setValue("timetableVersionPeriods",[{startAt:"",endAt:""}]);return}o!=null&&o.data&&o.data.length>0?d.setValue("timetableVersionPeriods",[{startAt:"",endAt:""}]):d.setValue("timetableVersionPeriods",[{startAt:n.startAt,endAt:n.endAt}])},[A,n,o==null?void 0:o.data]);const{mutateAsync:se,isPending:U}=O().useCreateTimetableVersion(),q=s=>{V(s),s||d.reset()},te=async s=>{const t=i==null?void 0:i.find(c=>c.id.toString()===s.schoolYearId),r=t==null?void 0:t.schoolSemesters.find(c=>c.id.toString()===s.semesterId);if(!(!t||!r))try{await se({data:{name:s.name,schoolYear:t.year,semester:r.semester,timetableVersionPeriods:s.timetableVersionPeriods}},{onSuccess:()=>{Z({message:"ìê°í ê·¸ë£¹ì´ ìì±ëììµëë¤.",type:"success"}),q(!1)},onError:()=>{Z({message:"ìê°í 그룹 ìì±ì ì¤í¨íìµëë¤.",type:"error"})}})}catch(c){console.error(c)}};return j.useEffect(()=>{if(!i||i.length===0)return;const s=F.get("year"),t=F.get("semester"),c=(s?i.find(y=>y.year.toString()===s)??null:null)??ce(i);if(R(c),c){const y=t?c.schoolSemesters.find($=>$.semester.toString()===t)??null:null;T(y??K(c.schoolSemesters))}},[i]),j.useEffect(()=>{const s=new URLSearchParams;l&&s.set("year",l.year.toString()),h&&s.set("semester",h.semester.toString()),Q(s,{replace:!0})},[l,h,Q]),e.jsxs(e.Fragment,{children:[i&&i.length<1?e.jsxs(a,{direction:"col",gap:"4",items:"center",justify:"center",className:"min-h-[597px] rounded-[12px] bg-white py-6",children:[e.jsx(k,{title:"íë
ë ì ë³´ê° ììµëë¤.",description:"íë
ë, í기 ì¤ì ì 먼ì ì§íí´ì£¼ì¸ì."}),e.jsx(v,{iconName:"Plus",position:"front",color:"sub",variant:"solid",size:"sm",stroke:!0,onClick:()=>I("/admin/school"),children:"íì¬ì ë³´ ì¸í
íë¬ ê°ê¸°"})]}):e.jsx(a,{direction:"col",items:"center",gap:"8",children:e.jsxs(a,{direction:"col",className:"max-h-full min-h-[597px] overflow-y-scroll roun
1ded-[12px] bg-white p-8",gap:"4",children:[e.jsxs(a,{direction:"row",items:"center",justify:"between",children:[e.jsxs(a,{direction:"col",items:"start",gap:"2",width:"fit-content",children:[e.jsx(m,{variant:"title",children:"ìê°í ì¤ì "}),e.jsx(m,{size:"sm",weight:"sm",variant:"dim",children:"ì´ìë³ ìê°íì íë
ë/í기, ì íì ì¤ì íê³ íì¼ì ë±ë¡í©ëë¤."})]}),h&&e.jsx(v,{iconName:"Plus",position:"front",stroke:!0,variant:"solid",color:"secondary",size:"md",onClick:()=>V(!0),children:"ìê°í ì í ìì±"})]}),e.jsxs(a,{direction:"row",items:"center",gap:"2",children:[e.jsxs(P,{value:(l==null?void 0:l.id.toString())||"",onValueChange:s=>{const t=(i==null?void 0:i.find(r=>r.id.toString()===s))??null;R(t),T(t?K(t.schoolSemesters):null)},children:[e.jsx(D,{children:e.jsx(N,{placeholder:"íë
ë ì í"})}),e.jsx(M,{children:i==null?void 0:i.map(s=>e.jsxs(S,{value:s.id.toString(),children:[s.year,"íë
ë"]},s.id))})]}),e.jsxs(P,{value:(h==null?void 0:h.id.toString())||"",onValueChange:s=>{const t=(l==null?void 0:l.schoolSemesters.find(r=>r.id.toString()===s))??null;T(t)},disabled:!l,children:[e.jsx(D,{children:e.jsx(N,{placeholder:"í기 ì í"})}),e.jsx(M,{children:l==null?void 0:l.schoolSemesters.map(s=>e.jsxs(S,{value:s.id.toString(),children:[s.semester,"í기"]},s.id))})]})]}),h?x!=null&&x.data&&((G=x==null?void 0:x.data)==null?void 0:G.length)<1?e.jsxs(a,{direction:"col",gap:"4",items:"center",justify:"center",className:"py-6",children:[e.jsx(k,{title:"ìê°í ì íì´ ììµëë¤.",description:"ìê°í ì íì ìì±íì¬ ìê°í를 ë±ë¡í´ 주ì¸ì."}),e.jsx(v,{iconName:"Plus",position:"front",color:"sub",variant:"solid",size:"sm",stroke:!0,onClick:()=>V(!0),children:"ìê°í ì í ìì±í기"})]}):e.jsx(de,{col:4,gap:4,className:"grid-rows-[auto]",children:(H=x==null?void 0:x.data)==null?void 0:H.map(s=>{var t,r;return e.jsxs(a,{direction:"col",className:"h-44 cursor-pointer rounded-lg border border-gray-200 p-5",onClick:()=>I(`/admin/timetable/setting/${s.id}`,{state:{timetableVersion:s,schoolYear:l,semester:h,versionList:x==null?void 0:x.data}}),children:[e.jsxs(a,{items:"center",gap:"2",children:[e.jsx(B,{title:`${s.schoolYear}íë
ë`,variant:"fill",color:"navy",size:"md"}),e.jsx(B,{title:`${s.semester}í기`,variant:"sub",color:"gray",size:"md"})]}),e.jsxs(a,{direction:"col",gap:"3",className:"pt-6",children:[e.jsx(m,{size:"xl",weight:"lg",className:"line-clamp-1 truncate",ellipsis:!0,children:s.name}),e.jsxs(a,{direction:"col",gap:"1",children:[e.jsxs(a,{direction:"row",items:"center",gap:"1",children:[e.jsx(m,{size:"sm",weight:"sm",variant:"dim",className:"min-w-14",children:"ì ì©ê¸°ê°"}),e.jsx(m,{size:"sm",weight:"sm",children:(t=s.timetableVersionPeriods[0])!=null&&t.startAt&&((r=s.timetableVersionPeriods[0])!=null&&r.endAt)?g(s.timetableVersionPeriods[0].startAt,f["YYYY.MM.DD"])+" ~ "+g(s.timetableVersionPeriods[0].endAt,f["YYYY.MM.DD"]):"-"})]}),e.jsxs(a,{direction:"row",items:"center",gap:"1",children:[e.jsx(m,{size:"sm",weight:"sm",variant:"dim",className:"min-w-14",children:"ì
ë¡ëì¼"}),e.jsx(m,{size:"sm",weight:"sm",children:s.createdAt?g(s.createdAt,f["YYYY.MM.DD"]):"-"})]})]})]})]},s.id)})}):e.jsxs(a,{direction:"col",gap:"4",items:"center",justify:"center",className:"py-20",children:[e.jsx(k,{title:"í기 ì ë³´ê° ììµëë¤.",description:"íë
ëì í기 ì¤ì ì 먼ì ì§íí´ì£¼ì¸ì."}),e.jsx(v,{iconName:"Plus",position:"front",color:"sub",variant:"solid",size:"sm",stroke:!0,onClick:()=>I("/admin/school"),children:"í기 ì¤ì íë¬ ê°ê¸°"})]})]})}),e.jsx(me,{open:J,onOpenChange:q,children:e.jsxs(he,{preventOutsideClose:!0,children:[e.jsxs(ue,{className:"flex flex-col items-start pb-4",children:[e.jsx(xe,{children:"ìê°í ì í ìì±"}),e.jsxs(je,{className:"text-left",children:["ìê°í ì íì í기 ë´ í¹ì 기ê°ì ì ì©ëë ìê°í 묶ìì
ëë¤.",e.jsx("br",{}),"ìí기ê°, í¹ë³ íì¬ ë± ìê°íê° ë¬ë¼ì§ë 기ê°ë³ë¡ ì íì ëëì´ ê´ë¦¬í ì ììµëë¤."]})]}),e.jsx(ge,{...d,children:e.jsxs("form",{onSubmit:d.handleSubmit(te),children:[e.jsxs(a,{direction:"col",gap:"4",children:[e.jsx(z,{control:d.control,name:"name",render:({field:s})=>e.jsxs(Y,{className:"w-full",children:[e.jsx(m,{size:"lg",weight:"lg",children:"ìê°í ì í ì 목"}),e.jsx(C,{children:e.jsx(fe,{placeholder:"ì) 2026-1í기 ì ê· ìê°í, 2026-1í기 ì¤ê° ê³ ì¬ ìê°í",...s})}),e.jsx(E,{})]})}),e.jsxs(a,{direction:"row",gap:"4",children:[e.jsx(z,{control:d.control,name:"schoolYearId",render:({field:s})=>e.jsxs(Y,{className:"w-full",children:[e.jsx(m,{size:"lg",weight:"lg",children:"íë
ë"}),e.jsx(C,{children:e.jsxs(P,{value:s.value,onValueChange:s.onChange,children:[e.jsx(D,{className:"w-full",children:e.jsx(N,{placeholder:"íë
ë ì í"})}),e.jsx(M,{children:i==null?void 0:i.map(t=>e.jsx(S,{value:t.id.toString(),children:t.year},t.id))})]})}),e.jsx(E,{})]})}),e.jsx(z,{control:d.control,name:"semesterId",render:({field:s})=>e.jsxs(Y,{className:"w-full",children:[e.jsx(m,{size:"lg",weight:"lg",children:"í기"}),e.jsx(C,{children:e.jsxs(P,{value:s.value,onValueChange:s.onChange,disabled:!u,children:[e.jsx(D,{className:"w-full",children:e.jsx(N,{placeholder:"í기 ì í"})}),e.jsx(M,{children:u==null?void 0:u.schoolSemesters.map(t=>e.jsxs(S,{value:t.id.toString(),children:[t.semester,"í기"]},t.id))})]})}),e.jsx(E,{})]})})]}),n&&e.jsxs(a,{direction:"col",gap:"2",children:[e.jsx(a,{direction:"row",items:"center",justify:"between",children:e.jsx(m,{size:"lg",weight:"lg",children:"ì ì©ê¸°ê° ì¤ì "})}),W.map((s,t)=>{const r=d.watch(`timetableVersionPeriods.${t}`);return e.jsx(a,{direction:"row",items:"center",gap:"2",children:e.jsx(z,{control:d.control,name:`timetableVersionPeriods.${t}.startAt`,render:()=>e.jsx(Y,{className:"w-full",children:e.jsx(C,{children:e.jsx(pe.Default,{minDate:X,maxDate:L,excludeDates:ee,dateRange:{from:r!=null&&r.startAt?new Date(r.startAt):void 0,to:r!=null&&r.endAt?new Date(r.endAt):void 0},setDateRange:c=>{if(c.from&&c.to&&(o!=null&&o.data)){const y=c.from.getTime(),$=c.to.getTime();o.data.some(re=>re.timetableVersionPeriods.some(b=>{if(!b.startAt||!b.endAt)return!1;const ne=p(b.startAt).getTime(),ae=p(b.endAt).getTime();return y<=ae&&$>=ne}))?d.setError(`timetableVersionPeriods.${t}.startAt`,{type:"manual",message:"ì´ë¯¸ ë±ë¡ë ìê°í 그룹ì 기ê°ê³¼ 겹칩ëë¤."}):d.clearErrors(`timetableVersionPeriods.${t}.startAt`)}d.setValue(`timetableVersionPeriods.${t}.startAt`,c.from?_(c.from,"yyyy-MM-dd"):""),d.setValue(`timetableVersionPeriods.${t}.endAt`,c.to?_(c.to,"yyyy-MM-dd"):"")}})})})})},s.id)}),e.jsxs(a,{direction:"col",gap:"1",className:"rounded-md bg-gray-50 p-3",children:[e.jsxs(a,{direction:"row",items:"center",gap:"1",children:[e.jsxs(m,{size:"sm",weight:"lg",variant:"dim",children:[n.semester,"í기 기ê°:"]}),e.jsxs(m,{size:"sm",weight:"sm",children:[g(n.startAt,f["YYYY.MM.DD"])," ~"," ",g(n.endAt,f["YYYY.MM.DD"])]})]}),o!=null&&o.data&&o.data.length>0?e.jsxs(a,{direction:"col",gap:"0.5",children:[e.jsx(m,{size:"xs",weight:"lg",variant:"dim",className:"mt-1",children:"ë±ë¡ë ìê°í 그룹"}),o.data.map(s=>e.jsx(a,{direction:"col",gap:"0.5",children:s.timetableVersionPeriods.map((t,r)=>t.startAt&&t.endAt?e.jsxs(a,{direction:"row",items:"center",gap:"1",children:[e.jsxs(m,{size:"xs",variant:"dim",children:["ã» ",s.name,s.timetableVersionPeriods.length>1?` (${r+1})`:"",":"]}),e.jsxs(m,{size:"xs",children:[g(t.startAt,f["YYYY.MM.DD"])," ~"," ",g(t.endAt,f["YYYY.MM.DD"])]})]},t.id):null)},s.id))]}):e.jsx(m,{size:"xs",variant:"dim",className:"mt-1",children:"ë±ë¡ë ìê°í ê·¸ë£¹ì´ ììµëë¤."})]})]})]}),e.jsx(ye,{className:"mt-4",children:e.jsx(we,{type:"submit",variant:"solid",color:"primary",size:"md",loading:U,children:U?"ì ì¥ì¤...":"ì ì¥"})})]})})]})})]})}export{Ee as TimetableSettingPage};
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.