1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8331],{49589:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("LockOpen",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 9.9-1",key:"1mm8w8"}]])},45884:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("Maximize",[["path",{d:"M8 3H5a2 2 0 0 0-2 2v3",key:"1dcmit"}],["path",{d:"M21 8V5a2 2 0 0 0-2-2h-3",key:"1e4gt3"}],["path",{d:"M3 16v3a2 2 0 0 0 2 2h3",key:"wsl5sc"}],["path",{d:"M16 21h3a2 2 0 0 0 2-2v-3",key:"18trek"}]])},34415:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("Minimize",[["path",{d:"M8 3v3a2 2 0 0 1-2 2H3",key:"hohbtr"}],["path",{d:"M21 8h-3a2 2 0 0 1-2-2V3",key:"5jw1f3"}],["path",{d:"M3 16h3a2 2 0 0 1 2 2v3",key:"198tvr"}],["path",{d:"M16 21v-3a2 2 0 0 1 2-2h3",key:"ph8mxp"}]])},8522:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(79205).Z)("Shuffle",[["path",{d:"M2 18h1.4c1.3 0 2.5-.6 3.3-1.7l6.1-8.6c.7-1.1 2-1.7 3.3-1.7H22",key:"1wmou1"}],["path",{d:"m18 2 4 4-4 4",key:"pucp1d"}],["path",{d:"M2 6h1.9c1.5 0 2.9.9 3.6 2.2",key:"10bdb2"}],["path",{d:"M22 18h-5.9c-1.3 0-2.6-.7-3.3-1.8l-.5-.8",key:"vgxac0"}],["path",{d:"m18 14 4 4-4 4",key:"10pe0f"}]])},58331:function(e,t,n){n.r(t),n.d(t,{default:function(){return S}});var r=n(57437),l=n(90982),s=n(78529),a=n(28691),i=n(2265),d=n(95805),o=n(8522),c=n(41905),u=n(92735);let h=(0,n(79205).Z)("Eraser",[["path",{d:"m7 21-4.3-4.3c-1-1-1-2.5 0-3.4l9.6-9.6c1-1 2.5-1 3.4 0l5.6 5.6c1 1 1 2.5 0 3.4L13 21",key:"182aya"}],["path",{d:"M22 21H7",key:"t4ddhn"}],["path",{d:"m5 11 9 9",key:"1mo9qw"}]]);var x=n(34415),m=n(45884),p=n(99397),f=n(30401),b=n(66337),g=n(49589),v=n(18930),w=n(32489),y=n(93448),j=n(4908),k=n(83008),N=n(67920),z=n(58652);let I=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"íê¸",r=e=>e.map(e=>{let n=t.find(t=>t.id===e);return n?"".concat(n.name):""}).filter(Boolean).join(", "),l="";return e.forEach(e=>{let t=r(e.studentIds),n=e.studentIds.length;l+='\n <tr>\n <td style="width: 25%; height: 40px; text-align: center; border: 0.12mm solid black; background-color: #f0f0f0; font-weight: bold;">'.concat(e.name,'</td>\n <td style="width: 15%; height: 40px; text-align: center; border: 0.12mm solid black;">').concat(n,'ëª
</td>\n <td style="width: 60%; height: 40px; text-align: left; padding-left: 10px; border: 0.12mm solid black;">').concat(t||'<span style="color: #888;">(미배ì )</span>',"</td>\n </tr>\n ")}),'\n<!DOCTYPE html>\n<html>\n<head>\n<meta charset="utf-8">\n<title>'.concat(n,' ì²ì 구ì</title>\n<style>\n @page { margin: 20mm; size: A4 portrait; }\n body { font-family: \'Malgun Gothic\', sans-serif; }\n table { width: 100%; border-collapse: collapse; }\n td, th { font-size: 12pt; }\n</style>\n</head>\n<body>\n <table>\n <thead>\n <tr>\n <th style="background-color: #ddd; border: 0.12mm solid black; height: 50px; text-align: center; width: 25%;">ì²ì 구ì</th>\n <th style="background-color: #ddd; border: 0.12mm solid black; height: 50px; text-align: center; width: 15%;">ì¸ì ì</th>\n <th style="background-color: #ddd; border: 0.12mm solid black; height: 50px; text-align: center; width: 60%;">ë´ë¹ íì</th>\n </tr>\n </thead>\n <tbody>\n ').concat(l,"\n </tbody>\n </table>\n ").concat((0,z.mv)(),"\n</body>\n</html>\n ")};var C=n(27526),A=n(54696),D=n(64954);function S(){let{students:e,isLoading:t}=(0,j.AF)(),z=(0,N.XC)(),{status:S}=(0,C.kP)(),E=(0,A.Dv)(),Z=E?e:e.filter(e=>"ë´ì íê¸"===e.homeClassId),[M,R]=(0,i.useState)([]),[L,F]=(0,i.useState)(null),[T,_]=(0,i.useState)(null),[O,V]=(0,i.useState)(null),[P,q]=(0,i.useState)(null),[U,H]=(0,i.useState)(null),[G,W]=(0,i.useState)(""),[B,J]=(0,i.useState)(!1),[K,X]=(0,i.useState)([]),[Y,Q]=(0,i.useState)(!1),[$,ee]=(0,i.useState)({}),[et,en]=(0,i.useState)(new Set),[er,el]=(0,i.useState)(!1),es=(0,i.useRef)([]),[ea,ei]=(0,i.useState)(!1),ed=(0,i.useRef)(null);(0,i.useEffect)(()=>{let e=()=>{ei(!!(document.fullscreenElement||document.webkitFullscreenElement))};return document.addEventListener("fullscreenchange",e),document.addEventListener("webkitfullscreenchange",e),()=>{document.removeEventListener("fullscreenchange",e),document.removeEventListener("webkitfullscreenchange",e)}},[]);let eo=async()=>
1{if(ea)try{let e=document;e.exitFullscreen?await e.exitFullscreen():e.webkitExitFullscreen?await e.webkitExitFullscreen():ei(!1)}catch(e){ei(!1)}else try{let e=ed.current;if(!e)return;e.requestFullscreen?await e.requestFullscreen():e.webkitRequestFullscreen?await e.webkitRequestFullscreen():ei(!0)}catch(e){ei(!0)}},ec=(0,i.useCallback)(()=>{es.current.push({zones:JSON.parse(JSON.stringify(M)),isShuffled:B,shuffledOrder:[...K]}),es.current.length>20&&es.current.shift()},[M,B,K]);(0,i.useEffect)(()=>{let e=e=>{if((e.metaKey||e.ctrlKey)&&"z"===e.key){e.preventDefault();let t=es.current.pop();t&&(R(t.zones),J(t.isShuffled),X(t.shuffledOrder))}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]);let eu=(0,i.useRef)(!1),eh=(0,i.useRef)(!1),ex=(0,i.useRef)(!1),em=(0,i.useRef)([]),ep=(0,i.useRef)(null),ef=(0,i.useRef)(!1),eb=(0,i.useRef)(!1),eg=(0,i.useRef)(!1),ev=(0,i.useRef)(E);ev.current=E;let ew=(0,i.useRef)(z);ew.current=z;let[ey,ej]=(0,i.useState)(!0),[ek,eN]=(0,i.useState)(!1),ez=(0,i.useRef)(0);(0,i.useEffect)(()=>()=>{ez.current++,ex.current=!1},[]);let eI=(0,i.useCallback)(async()=>{let e=++ez.current;ej(!0),eN(!1);try{var t;if(ev.current){let t=await Promise.resolve().then(n.bind(n,96214)),r=await (0,a.W)(()=>t.getGuestCleaningZones());if(e!==ez.current)return;eu.current=!0,eh.current=!0,R(r);return}let r=await (0,a.W)(()=>(0,k.X)("getCleaningZones",{},ew.current));if(e!==ez.current)return;if(console.log("[CleaningView] Load result:",r.success,"data count:",null===(t=r.data)||void 0===t?void 0:t.length),r.success&&r.data&&Array.isArray(r.data)){let e=r.data.map((e,t)=>{var n,r,l;return{id:e.id,name:e.name,studentIds:e.studentIds||[],order:null!==(n=e.sortOrder)&&void 0!==n?n:t,locked:null!==(r=e.locked)&&void 0!==r&&r,columnId:void 0!==e.columnId?e.columnId:t%4,capacity:null!==(l=e.capacity)&&void 0!==l?l:null}});console.log("[CleaningView] Setting zones:",e.length),eu.current=!0,eh.current=!0,R(e)}else throw Error("ì²ì 구ì ì¡°í ì¤í¨")}catch(t){e===ez.current&&eN(!0)}finally{e===ez.current&&ej(!1)}},[]),eC=(0,i.useCallback)(async e=>{if(ev.current){let t=await Promise.resolve().then(n.bind(n,96214));await t.saveGuestCleaningZones(e);return}let t={},r=e.map(e=>{var n,r,l;let s=null!==(n=e.columnId)&&void 0!==n?n:0;void 0===t[s]&&(t[s]=0);let a=t[s]++;return{id:e.id,name:e.name,studentIds:e.studentIds,columnId:s,sortOrder:a,locked:null!==(r=e.locked)&&void 0!==r&&r,capacity:null!==(l=e.capacity)&&void 0!==l?l:null}});try{console.log("[CleaningView] Saving zones:",r.length);let e=await (0,k.X)("saveAllCleaningZones",{zones:r},ew.current);e.success?console.log("[CleaningView] Save successful"):console.error("[CleaningView] Save failed:",e.error)}catch(e){console.error("[CleaningView] Save error:",e)}},[]),eA=(0,i.useCallback)(async()=>{if(!eu.current)return;if(ef.current){eb.current=!0;return}ef.current=!0;let e=!0;try{do{eb.current=!1;try{await eC(em.current)}catch(t){console.error("[CleaningView] flush save error:",t),e=!1;break}}while(eb.current);e&&(eg.current=!1)}finally{ef.current=!1}},[eC]),eD=(0,i.useCallback)(()=>{ep.current&&clearTimeout(ep.current),ep.current=setTimeout(()=>{ep.current=null,eA()},600)},[eA]);(0,i.useEffect)(()=>{"loading"!==S&&(ex.current||(ex.current=!0,eI()))},[S,eI]),(0,i.useEffect)(()=>{if(eu.current){if(eh.current){eh.current=!1;return}em.current=M,eg.current=!0,eD()}},[M,eD]),(0,i.useEffect)(()=>{let e=()=>{ep.current&&(clearTimeout(ep.current),ep.current=null),eu.current&&eg.current&&eA()},t=()=>{"hidden"===document.visibilityState&&e()};return window.addEventListener("pagehide",e),document.addEventListener("visibilitychange",t),()=>{window.removeEventListener("pagehide",e),document.removeEventListener("visibilitychange",t),e()}},[eA]);let eS=()=>{let e=[,,,,].fill(0);M.forEach(t=>{var n;let r=null!==(n=t.columnId)&&void 0!==n?n:0;r>=0&&r<4&&e[r]++});let t=e.indexOf(Math.min(...e)),n={id:crypto.randomUUID(),name:"ì²ì 구ì ".concat(M.length+1),studentIds:[],order:M.length,locked:!1,columnId:t,capacity:null};R(e=>[...e,n])},eE=(e,t)=>{let n=parseInt(t),r=isNaN(n)?null:Math.max(1,n);R(t=>t.map(t=>
1t.id===e?{...t,capacity:r}:t))},eZ=e=>{R(t=>t.map(t=>t.id===e?{...t,locked:!t.locked}:t))},eM=e=>{R(t=>t.filter(t=>t.id!==e))},eR=(e,t)=>{R(n=>n.map(n=>n.id===e?{...n,name:t}:n)),H(null)},eL=(e,t)=>{e.stopPropagation(),F(t),e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",t)},eF=(e,t)=>{e.stopPropagation(),_(t),e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("zoneId",t);let n=e.currentTarget,r=n.cloneNode(!0);r.style.position="absolute",r.style.top="-9999px",r.style.left="-9999px",r.style.width="".concat(n.offsetWidth,"px"),r.style.height="".concat(n.offsetHeight,"px"),r.style.opacity="1",r.style.zIndex="9999",r.style.backgroundColor="#1A1A1A",document.body.appendChild(r),e.dataTransfer.setDragImage(r,n.offsetWidth/2,20),requestAnimationFrame(()=>{r.remove()})},eT=()=>{F(null),_(null),V(null),q(null)},e_=(e,t)=>{if(e.preventDefault(),e.dataTransfer.dropEffect="move",T){if(T===t){V(null),q(null);return}let n=e.currentTarget.getBoundingClientRect(),r=e.clientY-n.top<n.height/2?"top":"bottom";V(t),q(r)}else L&&(V(t),q(null))},eO=()=>{V(null),q(null)},eV=(e,t,n)=>{if(e.preventDefault(),V(null),q(null),L){let r=e.dataTransfer.getData("text/plain");if(!r||"column"===n)return;R(e=>{let n=e.find(e=>e.id===t);return n&&(n.studentIds.includes(r)||null===n.capacity||!(n.studentIds.length>=n.capacity))?e.map(e=>({...e,studentIds:e.studentIds.filter(e=>e!==r)})).map(e=>e.id===t?{...e,studentIds:[...e.studentIds,r]}:e):e}),F(null);return}T&&(R(e=>{let r=[...e],l=r.findIndex(e=>e.id===T);if(l<0)return e;let s={...r[l]};if(r.splice(l,1),"column"===n){let e=parseInt(t);s.columnId=e,r.push(s)}else{let e=r.findIndex(e=>e.id===t);if(e<0)return r.push(s),r;let n=r[e];s.columnId=n.columnId,r.splice("bottom"===P?e+1:e,0,s)}return r}),_(null))},eP=(e,t)=>{e.preventDefault(),T&&(e.dataTransfer.dropEffect="move")},eq=(e,t)=>{eV(e,t.toString(),"column")},eU=(e,t)=>{R(n=>n.map(n=>n.id===e?{...n,studentIds:n.studentIds.filter(e=>e!==t)}:n))},eH=e=>{let t=[...e];for(let e=t.length-1;e>0;e--){let n=Math.floor(Math.random()*(e+1));[t[e],t[n]]=[t[n],t[e]]}return t},eG=e=>{ec();let t=new Set(e.flatMap(e=>e.studentIds)),n=eH(Z.filter(e=>!t.has(e.id))).map(e=>e.id),r=e.map(e=>({...e,studentIds:[...e.studentIds]})),l=r.filter(e=>!e.locked&&null!==e.capacity),s=0,a=!0;for(;s<n.length&&a;)for(let e of(a=!1,l)){if(s>=n.length)break;e.studentIds.length<e.capacity&&(e.studentIds.push(n[s]),s++,a=!0)}let i=new Set(n.slice(0,s));R(r),J(!1),X([]),en(i),window.setTimeout(()=>en(new Set),1600)},eW=M.length>0&&M.every(e=>{let t=$[e.id];if(void 0===t||""===t.trim())return!1;let n=parseInt(t,10);return!isNaN(n)&&n>=1}),eB=new Set(M.flatMap(e=>e.studentIds)),eJ=Z.filter(e=>!eB.has(e.id)),eK=B&&K.length>0?K.map(e=>eJ.find(t=>t.id===e)).filter(e=>void 0!==e):[...eJ].sort((e,t)=>(e.number||0)-(t.number||0)),eX=e=>Z.find(t=>t.id===e);return ek?(0,r.jsx)(s.A,{message:"ì²ì 구ìì ë¶ë¬ì¤ì§ 못íì´ì.",onRetry:()=>void eI()}):ey||t&&0===e.length?(0,r.jsx)(l.ContentLoadingState,{variant:"zones",label:"ì²ì 구ìì ë¶ë¬ì¤ê³ ìì´ì"}):(0,r.jsxs)("div",{ref:ed,className:(0,y.cn)("h-full flex overflow-hidden bg-[#0D0D0D] print:overflow-visible print:h-auto print:bg-white",ea&&"absolute inset-0 z-[9999]"),children:[(0,r.jsxs)("div",{className:(0,y.cn)("border-r border-white/5 flex flex-col bg-[#0D0D0D] shrink-0 print:hidden transition-colors cleaning-sidebar nav-rail-shadow sub-sidebar-enter",ea?"w-80":"w-64",L&&"bg-white/[0.02] border-r-blue-500/30"),onDragOver:e=>e.preventDefault(),onDrop:e=>{e.preventDefault();let t=e.dataTransfer.getData("text/plain");t&&R(e=>e.map(e=>({...e,studentIds:e.studentIds.filter(e=>e!==t)}))),F(null)},children:[(0,r.jsxs)("div",{className:"p-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,r.jsxs)("h3",{className:"font-bold text-white flex items-center gap-2",children:[(0,r.jsx)(d.Z,{size:18}),"미배ì íì"]}),(0,r.jsx)("button",{onClick:()=>{if(ec(),B)J(!1),X([]);else{let e=new Set(M.flatMap(e=>e.studentIds));X(eH(Z.filter(t=>!e.has(t.id))).map(e=>e.id)),J(!0)}},className:(0,y.cn)("p-1.5 rounded transition-all",B?"bg-blue-500/20 text-blue-400 hover:bg-blue-500/30":"text-[#666] hover:text-white hover:bg-white/10"),title:B?"ë²í¸ ìì¼ë¡ ì ë ¬":"무ììë¡ ì기",children:(0,r.jsx)(o.Z,{size:16})})]}),(0,r.jsx)("p",{className:"text-xs text-[#666] mt-1",children:"ëëê·¸íì¬ êµ¬ìì ë°°ì "})]}),(0,r.jsx)("div",{className:"flex-1 overflow-y-auto custom-scrollbar px-2 pb-4",children:0===eJ.length?(0,r.jsx)("div",{className:"text-center text-[#444] text-xs py-10",children:"모ë íìì´ ë°°ì ëììµëë¤."}):(0,r.jsx)("div",{className:"space-y-1",children:eK.map(e=>(0,r.jsxs)("div",{draggable:!0,onDragStart:t=>eL(t,e.id),onDragEnd:eT,className:(0,y.cn)("flex items-center gap-2 px-3 py-2.5 rounded-lg cursor-grab active:cursor-grabbing transition-all border cleaning-student-card",L===e.id?"bg-blue-500/20 border-blue-500/50 scale-95 opacity-50":"bg-[#1A1A1A] border-transparent"),children:[(0,r.jsx)(c.Z,{size:14,className:"text-[#555] shrink-0"}),(0,r.jsx)("span",{className:(0,y.cn)("rounded-full flex items-center justify-center font-bold bg-white/10 text-[#888] cleaning-number-badge shrink-0",ea?"w-7 h-7 text-sm":"w-6 h-6 text-xs"),children:e.number}),(0,r.jsx)("span",{className:(0,y.cn)("text-[#CCC] flex-1",ea?"text-lg":"text-sm"),children:e.name})]},e.id))})})]}),(0,r.jsxs)("div",{className:"flex-1 p-3 overflow-auto print:overflow-visible print:p-0 flex flex-col",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-4 mb-4 print:mb-4",children:[(0,r.jsxs)("div",{className:"min-w-0 ml-2",children:[(0,r.jsx)("h2",{className:"text-xl font-bold text-white print:text-black",children:"ì²ì ë´ë¹"}),(0,r.jsx)("p",{className:"text-sm text-[#666] mt-1 print:hidden",children:"ì²ì 구ìì ì¶ê°íê³ íìì ë°°ì íì¸ì (ê° ì´ë¡ ëëê·¸íì¬ ì´ë ê°ë¥)"})]}),(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2 print:hidden [&>button]:whitespace-nowrap",children:[(0,r.jsxs)("button",{onClick:()=>{let t=new Blob([I(M,e)],{type:"application/hwp"}),n=URL.createObjectURL(t),r=document.createElement("a");r.href=n;let l=(0,y.RJ)();r.download="ì²ì구ìë°°ì _".concat(l,".hwp"),document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)},className:"h-10 px-3.5 rounded-lg bg-[#2A2A2A] hover:bg-[#333] border border-white/10 text-white/70 hover:text-white transition flex items-center justify-center gap-1.5 hover:shadow-xl active:scale-95 text-sm font-medium",title:"íê¸ íì¼ ë¤ì´ë¡ë",children:[(0,r.jsx)(u.Z,{size:18}),(0,r.jsx)("span",{children:"íê¸"})]}),(0,r.jsxs)("button",{onClick:()=>{ec(),R(e=>e.map(e=>e.locked?e:{...e,studentIds:[]}))},className:"h-10 px-3.5 rounded-lg bg-[#2A2A2A] hover:bg-[#333] border border-white/10 text-white/70 hover:text-white transition flex items-center justify-center gap-1.5 hover:shadow-xl active:scale-95 text-sm font-medium",title:"ì ê¸ëì§ ìì 구ìì íìë¤ì 미배ì ì¼ë¡ ëë립ëë¤",children:[(0,r.jsx)(h,{size:18}),(0,r.jsx)("span",{children:"ë°°ì ì´ê¸°í"})]}),(0,r.jsxs)("button",{onClick:()=>
1{if(0!==M.length){if(el(!0),window.setTimeout(()=>el(!1),450),M.some(e=>null===e.capacity)){let e={};M.forEach(t=>{e[t.id]=null!==t.capacity?String(t.capacity):""}),ee(e),Q(!0);return}eG(M)}},disabled:0===M.length,className:"h-10 px-3.5 rounded-lg bg-[#2A2A2A] hover:bg-[#333] border border-white/10 text-white/70 hover:text-white transition flex items-center justify-center gap-1.5 hover:shadow-xl active:scale-95 text-sm font-medium disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-[#2A2A2A] disabled:hover:text-white/70",title:"구ìë³ ìµë ì¸ìì ë§ê² 미배ì íìì ëë¤ì¼ë¡ ë°°ì¹í©ëë¤",children:[(0,r.jsx)(o.Z,{size:18,className:(0,y.cn)(er&&"animate-shuffle-shake")}),(0,r.jsx)("span",{children:"ëë¤ ë°°ì¹"})]}),(0,r.jsxs)("button",{onClick:eo,className:"h-10 px-3.5 rounded-lg bg-[#2A2A2A] hover:bg-[#333] border border-white/10 text-white/70 hover:text-white transition flex items-center justify-center gap-1.5 hover:shadow-xl active:scale-95 text-sm font-medium",title:ea?"ì ì²´íë©´ ë기":"ì ì²´íë©´ì¼ë¡ í¬ê² 보기",children:[ea?(0,r.jsx)(x.Z,{size:18}):(0,r.jsx)(m.Z,{size:18}),(0,r.jsx)("span",{children:ea?"ì ì²´íë©´ ë기":"ì ì²´íë©´"})]}),(0,r.jsxs)("button",{onClick:eS,className:"h-10 px-3.5 rounded-lg bg-[#007AFF] hover:bg-[#0066DD] text-white hover:shadow-blue-500/40 transition flex items-center justify-center gap-1.5 hover:shadow-xl active:scale-95 text-sm font-medium",title:"구ì ì¶ê°",children:[(0,r.jsx)(p.Z,{size:18}),(0,r.jsx)("span",{children:"구ì ì¶ê°"})]})]})]}),0===M.length?(0,r.jsx)("div",{className:"flex-1 flex items-center justify-center p-8",children:(0,r.jsx)(D.Z,{size:"lg",title:"ì²ì 구ìì´ ììµëë¤",description:"ìì '+ 구ì ì¶ê°' ë²í¼ì ëë¬ ì²ì 구ìì ë§ë¤ê³ íìì ë°°ì í´ ë³´ì¸ì.",action:(0,r.jsxs)("button",{onClick:eS,className:"px-6 py-2.5 bg-zinc-900 hover:bg-black dark:bg-white dark:hover:bg-zinc-100 text-white dark:text-zinc-900 rounded-xl text-sm font-semibold transition-all shadow-sm active:scale-95 flex items-center gap-1.5",children:[(0,r.jsx)(p.Z,{size:16}),"구ì ì¶ê°í기"]})})}):(0,r.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4 pb-20 items-start content-start xl:content-stretch min-h-full",children:[0,1,2,3].map(e=>(0,r.jsx)("div",{onDragOver:t=>eP(t,e),onDrop:t=>eq(t,e),className:(0,y.cn)("flex flex-col gap-4 min-h-[200px] min-h-full rounded-xl transition-colors p-2 -m-2",T&&"bg-white/5 border border-white/5 border-dashed"),children:M.filter(t=>{var n;return(null!==(n=t.columnId)&&void 0!==n?n:0)===e}).map(e=>{var t;return(0,r.jsxs)("div",{draggable:!0,onDragStart:t=>eF(t,e.id),onDragEnd:eT,onDragOver:t=>e_(t,e.id),onDragLeave:eO,onDrop:t=>{t.stopPropagation(),eV(t,e.id,"zone")},className:(0,y.cn)("relative rounded-2xl border-2 p-4 min-h-[200px] transition group/card flex flex-col shrink-0",T===e.id&&"opacity-30 border-dashed",!L&&"cursor-grab active:cursor-grabbing",O!==e.id||L?O===e.id&&L?"border-blue-500 bg-blue-500/10 scale-[1.02]":null!==e.capacity&&e.studentIds.length>=e.capacity?"border-blue-500 shadow-[0_0_15px_rgba(59,130,246,0.15)]":"border-white/10 bg-[#121212] hover:border-white/20":"border-blue-500/50"),children:[O===e.id&&"top"===P&&!L&&(0,r.jsx)("div",{className:"absolute -top-3 left-0 right-0 h-1 bg-blue-500 rounded-full shadow-[0_0_10px_rgba(59,130,246,0.5)] z-50 pointer-events-none"}),O===e.id&&"bottom"===P&&!L&&(0,r.jsx)("div",{className:"absolute -bottom-3 left-0 right-0 h-1 bg-blue-500 rounded-full shadow-[0_0_10px_rgba(59,130,246,0.5)] z-50 pointer-events-none"}),(0,r.jsx)("div",{className:"absolute top-[18px] left-3 text-[#333] group-hover/card:text-[#666] transition-colors cursor-grab active:cursor-grabbing",children:(0,r.jsx)(c.Z,{size:20})}),(0,r.jsx)("div",{className:"flex items-center justify-between mb-3 pb-2 border-b border-white/5 pl-6 shrink-0",children:U===e.id?(0,r.jsxs)("div",{className:"flex items-center gap-2 flex-1",children:[(0,r.jsx)("input",{type:"text",value:G,onChange:e=>W(e.target.value),onKeyDown:t=>"Enter"===t.key&&eR(e.id,G),className:"flex-1 bg-[#1A1A1A] border border-white/10 rounded-lg px-2 py-1 text-sm text-white focus:outline-none focus:ring-2 focus:ring-blue-500/50",autoFocus:!0}),(0,r.jsx)("button",{"aria-label":"ì´ë¦ ì ì¥",onClick:()=>eR(e.id,G),className:"p-1 text-green-500 hover:bg-green-500/10 rounded",children:(0,r.jsx)(f.Z,{size:16})})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("input",{type:"text",value:e.name,onChange:t=>eR(e.id,t.target.value),className:(0,y.cn)("bg-transparent font-bold text-white focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus:bg-white/5 rounded px-1 -ml-1 flex-1 min-w-0 cleaning-zone-name-input",ea?"text-lg":"text-sm")}),(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)("button",{"aria-label":e.locked?"ì ê¸ í´ì ":"ì ê¸",onClick:()=>eZ(e.id),className:(0,y.cn)("p-1.5 rounded transition-colors",e.locked?"text-amber-400 hover:bg-amber-500/10":"text-[#666] hover:text-white hover:bg-white/10"),children:e.locked?(0,r.jsx)(b.Z,{size:14}):(0,r.jsx)(g.Z,{size:14})}),(0,r.jsx)("button",{"aria-label":"ìì ",onClick:()=>eM(e.id),className:"p-1.5 text-[#666] hover:text-red-400 hover:bg-red-500/10 rounded transition-colors zone-delete-btn",children:(0,r.jsx)(v.Z,{size:14})})]})]})}
1),(0,r.jsx)("div",{className:"space-y-1.5 flex-1 min-h-[60px]",children:0===e.studentIds.length?(0,r.jsx)("div",{className:"text-center text-[#444] text-xs py-6",children:"ì¬ê¸°ì íìì ëëê·¸íì¸ì"}):e.studentIds.map((t,n)=>{let l=eX(t);if(!l)return null;let s=et.has(t);return(0,r.jsxs)("div",{draggable:!0,onDragStart:e=>eL(e,t),onDragEnd:eT,className:(0,y.cn)("cleaning-student-block flex items-center justify-between px-3 py-2 bg-[#1A1A1A] rounded-lg group cursor-grab active:cursor-grabbing border border-transparent hover:border-white/10",s&&"animate-chip-pop-in"),style:s?{animationDelay:"".concat(50*n,"ms")}:void 0,children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 pointer-events-none",children:[(0,r.jsx)("span",{className:(0,y.cn)("rounded-full flex items-center justify-center font-bold bg-white/10 text-[#888] shrink-0",ea?"w-7 h-7 text-xs":"w-5 h-5 text-[10px]"),children:l.number}),(0,r.jsx)("span",{className:(0,y.cn)("text-white",ea?"text-xl":"text-sm"),children:l.name})]}),(0,r.jsx)("button",{"aria-label":"ì ì¸",onClick:()=>eU(e.id,t),className:"opacity-100 [@media(hover:hover)]:opacity-0 group-hover:opacity-100 group-focus-within:opacity-100 p-1 text-[#666] hover:text-red-400 transition-all",children:(0,r.jsx)(w.Z,{size:14})})]},t)})}),(0,r.jsxs)("div",{className:(0,y.cn)("mt-auto pt-3 text-[#555] flex items-center justify-end gap-1 shrink-0",ea?"text-base":"text-sm"),children:[(0,r.jsxs)("span",{className:(0,y.cn)(null!==e.capacity&&e.studentIds.length>=e.capacity?"text-blue-400 font-bold":""),children:[0===e.studentIds.length?"-":e.studentIds.length,"ëª
"]}),(0,r.jsx)("span",{className:"text-[#333]",children:"/"}),(0,r.jsxs)("div",{className:"relative group/input",children:[(0,r.jsx)("input",{type:"text",value:null!==(t=e.capacity)&&void 0!==t?t:"",placeholder:"-",onChange:t=>eE(e.id,t.target.value),className:"w-8 bg-transparent text-right focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus:bg-white/5 rounded px-0.5 m-0 p-0 h-auto font-medium text-[#666] hover:text-white transition-colors placeholder-[#666]"}),(0,r.jsx)("div",{className:"absolute inset-0 border border-white/10 rounded opacity-0 group-hover/input:opacity-100 pointer-events-none"})]}),(0,r.jsx)("span",{children:"ëª
"})]})]},e.id)})},e))})]}),Y&&(0,r.jsx)("div",{className:"modal-viewport z-[100] flex items-center justify-center bg-black/40 backdrop-blur-sm p-4 animate-in fade-in duration-200",children:(0,r.jsxs)("div",{className:"bg-white dark:bg-[#1c1c1e] rounded-2xl shadow-2xl w-full max-w-md border border-zinc-200 dark:border-white/10 overflow-hidden animate-in zoom-in-95 duration-200 flex flex-col max-h-[90vh]",children:[(0,r.jsxs)("div",{className:"px-6 py-5 flex items-center justify-between shrink-0",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h3",{className:"text-lg font-bold text-zinc-900 dark:text-white",children:"구ìë³ ìµë ì¸ì ì¤ì "}),(0,r.jsx)("p",{className:"text-xs text-zinc-500 mt-0.5",children:"ê° êµ¬ìì ìµë ì¸ìì ì
ë ¥íë©´ 미배ì íìì ëë¤ì¼ë¡ ë°°ì¹í©ëë¤."})]}),(0,r.jsx)("button",{"aria-label":"ë«ê¸°",onClick:()=>Q(!1),className:"p-2 hover:bg-zinc-100 dark:hover:bg-white/5 rounded-full transition-colors text-zinc-400",children:(0,r.jsx)(w.Z,{size:20})})]}),(0,r.jsx)("div",{className:"p-6 space-y-2.5 overflow-y-auto custom-scrollbar flex-1",children:M.map(e=>{var t;let n=null!==(t=$[e.id])&&void 0!==t?t:"",l=""===n.trim()||isNaN(parseInt(n,10))||1>parseInt(n,10);return(0,r.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,r.jsxs)("span",{className:"text-sm font-medium text-zinc-700 dark:text-zinc-200 truncate flex items-center gap-1.5",children:[e.locked&&(0,r.jsx)(b.Z,{size:13,className:"text-zinc-400 shrink-0"}),e.name]}),(0,r.jsxs)("div",{className:"flex items-center gap-1.5 shrink-0",children:[(0,r.jsx)("input",{type:"number",min:1,inputMode:"numeric",value:n,placeholder:"ì: 4",onChange:t=>ee(n=>({...n,[e.id]:t.target.value})),className:(0,y.cn)("w-20 h-10 px-3 text-right bg-zinc-50 dark:bg-white/5 border rounded-xl text-sm font-medium text-zinc-900 dark:text-zinc-100 focus:outline-none focus:ring-2 focus:ring-blue-500/20",l?"border-red-400/60 dark:border-red-500/40":"border-zinc-200 dark:border-white/10")}),(0,r.jsx)("span",{className:"text-sm text-zinc-500 w-5",children:"ëª
"})]})]},e.id)})}),(0,r.jsxs)("div",{className:"px-6 py-4 flex items-center justify-end gap-2 shrink-0",children:[(0,r.jsx)("button",{onClick:()=>
1Q(!1),className:"h-10 px-4 rounded-xl text-sm font-medium text-zinc-600 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-white/5 transition-colors",children:"ì·¨ì"}),(0,r.jsxs)("button",{onClick:()=>{if(!eW)return;let e=M.map(e=>({...e,capacity:Math.max(1,parseInt($[e.id],10))}));Q(!1),eG(e)},disabled:!eW,className:"h-10 px-4 rounded-xl text-sm font-semibold bg-[#007AFF] hover:bg-[#0066DD] text-white transition-colors flex items-center gap-1.5 disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-[#007AFF]",children:[(0,r.jsx)(o.Z,{size:16}),"ë°°ì¹í기"]})]})]})})]})}},58652:function(e,t,n){n.d(t,{mv:function(){return r}});let r=()=>"<div style=\"margin-top: 6mm; text-align: right; font-size: 8pt; color: #A0A0A0; font-family: 'Malgun Gothic', sans-serif;\">".concat("ë´ëª¨"," ").concat("https://naemo.ai","</div>")}}]);
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.