1import{u as ee,q as se,g as te,r as n,c as F,s as ae,j as s,P as re}from"./index--1RmYx0j.js";import{U as ne}from"./UploadHistoryTable-Bkc_j335.js";import"./ProgressTracker-D8ZS3ZlM.js";import"./relativeTime-BHvvWo8Z.js";const q=[10,25,50,100],z=10,B=[{value:"created:desc",label:"ìµì ì
ë¡ëì"},{value:"created:asc",label:"ì¤ëë ì
ë¡ëì"},{value:"uploader:asc",label:"ì¬ë¦° ì¬ë (ê°ëë¤)"},{value:"org:asc",label:"ì¡°ì§ (ê°ëë¤)"},{value:"company:asc",label:"ì
ì²´ëª
(ê°ëë¤)"},{value:"title:asc",label:"ì¼ì´ì¤ëª
(ê°ëë¤)"},{value:"amount:desc",label:"ê¸ì¡ í° ì"},{value:"amount:asc",label:"ê¸ì¡ ìì ì"},{value:"files:desc",label:"ìë¥ ë§ì ì"},{value:"status:asc",label:"ë¶ì ìí"}],G="created:desc";function ce(o){if(o==null||o==="")return"";const x=Number(o);return Number.isFinite(x)?x.toLocaleString("ko-KR",{maximumFractionDigits:2}):o}function v(o){return o.displayName??o.email??"(íí´/미ì)"}const oe={done:{text:"ë¶ì ìë£",tone:"emerald"},running:{text:"ë¶ì ì¤",tone:"blue"},pending:{text:"ë기",tone:"gray"},partial:{text:"ë¶ë¶ ìë£",tone:"amber"},failed:{text:"ì¤í¨",tone:"amber"}};function b({active:o,onClick:x,children:u,testId:y,tone:l="default"}){return s.jsx("button",{type:"button","aria-pressed":o,"data-testid":y,onClick:x,className:`rounded-full border px-2.5 py-1 text-xs whitespace-nowrap transition-colors ${o?"border-brand-500 bg-brand-500 text-white dark:border-brand-400 dark:bg-brand-400 dark:text-gray-900":l==="muted"?"border-dashed border-gray-300 text-gray-500 hover:bg-gray-50 dark:border-gray-600 dark:text-gray-400 dark:hover:bg-white/5":"border-gray-200 text-gray-700 hover:bg-gray-50 dark:border-gray-700 dark:text-gray-200 dark:hover:bg-white/5"}`,"data-sc-src":"src/pages/Admin/DocsCases.tsx:137",children:u})}const w=10,le="rounded-lg border border-gray-200 px-2 py-1.5 text-sm text-gray-700 focus:border-brand-300 focus:ring-2 focus:ring-brand-500/20 focus:outline-none dark:border-gray-700 dark:bg-gray-900 dark:text-gray-200";function me(){const o=ee(),{me:x}=se(),[u,y]=te(),l=u.get("internal")==="1",a=u.get("org")??"",c=u.get("user")??"",p=u.get("q")??"",k=B.some(e=>e.value===u.get("sort"))?u.get("sort"):G,E=Number(u.get("size")),h=q.includes(E)?E:z,g=Math.max(0,(Number(u.get("page"))||1)-1),d=n.useCallback((e,t={})=>{y(r=>{const i=new URLSearchParams(r);for(const[f,N]of Object.entries(e))N==null||N===""?i.delete(f):i.set(f,N);return t.keepPage||i.delete("page"),i},{replace:!1})},[y]),[j,H]=n.useState([]),[S,K]=n.useState([]),[A,Z]=n.useState([]),[C,Q]=n.useState(0),[$,P]=n.useState(p),[U,T]=n.useState(!0),[L,R]=n.useState(null),[D,W]=n.useState(!1);n.useEffect(()=>{P(p)},[p]),n.useEffect(()=>{(async()=>{try{const e=await F("/api/admin/docs-cases/summary");if(!e.ok)return;const t=await e.json();H(t.users),K(t.orgs??[])}catch{}})()},[]);const O=n.useCallback(async()=>{T(!0),R(null);try{const[e,t]=k.split(":"),r=new URLSearchParams;r.set("limit",String(h)),r.set("offset",String(g*h)),r.set("sort",e),r.set("dir",t),l&&r.set("includeInternal","1"),a&&r.set("orgId",a),c&&r.set("userId",c),p&&r.set("q",p);const i=await F(`/api/admin/docs-cases?${r.toString()}`);if(!i.ok)throw new Error(`${i.status}`);const f=await i.json();Z(f.cases),Q(f.total)}catch{R("ì¼ì´ì¤ 목ë¡ì ë¶ë¬ì¤ì§ 못íìµëë¤.")}finally{T(!1)}},[g,h,k,p,c,a,l]);n.useEffect(()=>{O()},[O]);const m=n.useMemo(()=>j.filter(e=>{var t;return!l&&e.internal?!1:a==="none"?e.org==null:a?((t=e.org)==null?void 0:t.id)===a:!0}).sort((e,t)=>t.caseCount-e.caseCount),[j,l,a]),_=n.useMemo(()=>{if(D||m.length<=w)return m;const e=m.slice(0,w);if(c&&!e.some(t=>t.userId===c)){const t=m.find(r=>r.userId===c);t&&e.push(t)}return e},[m,D,c]),J=n.useMemo(()=>A.map(e=>{var i;const t=oe[e.analysisStatus],r=[e.caseType==="personal_ems"?"EMS":null,e.companyName||null,e.totalAmount?`${e.currency} ${ce(e.totalAmount)}`.trim():null].filter(Boolean);return{id:e.id,title:e.title||e.humanId||e.id.slice(0,8),subtitle:r.length>0?r.join(" · "):void 0,badge:(t==null?void 0:t.text)??e.analysisStatus,badgeTone:(t==null?void 0:t.tone)??"gray",fileCount:e.fileCount,createdAt:e.createdAt,uploader:{name:e.user.internal?`${v(e.user)} (í
ì¤í¸)`:v(e.user),email:e.user.email,org:((i=e.org)==null?void 0:i.name)??null}}}),[A]);if(x&&!ae(x))return s.jsx("div",{className:"p-6 text-sm text-gray-500","data-sc-src":"src/pages/Admin/DocsCases.tsx:316",children:"ì´ììë§ ë³¼ ì ìë íë©´ì
ëë¤."});const M=c?j.find(e=>e.userId===c):void 0,I=a&&a!=="none"?S.find(e=>e.orgId===a):void 0,V=Math.max(1,Math.ceil(C/h)),X=!!(p||c||a),Y=U?"ë¶ë¬ì¤ë ì¤â¦":[(I==null?void 0:I.name)??(a==="none"?"ì¡°ì§ ìì":null),M?v(M):null,`${C}
1ê±´`].filter(Boolean).join(" · ");return s.jsxs(s.Fragment,{children:[s.jsx(re,{title:"íì ìë¥ ê´ë¦¬",description:"íìì´ ì¬ë¦° ìë¥ì ë¶ì 결과를 ì´ììê° íì¸í©ëë¤"}),s.jsxs("div",{className:"mx-auto max-w-6xl space-y-4 p-4","data-sc-src":"src/pages/Admin/DocsCases.tsx:345",children:[s.jsx("h1",{className:"text-xl font-semibold","data-sc-src":"src/pages/Admin/DocsCases.tsx:346",children:"íì ìë¥ ê´ë¦¬"}),L&&s.jsx("div",{className:"text-xs text-red-600","data-sc-src":"src/pages/Admin/DocsCases.tsx:348",children:L}),s.jsxs("div",{className:"space-y-2 text-sm","data-testid":"admin-cases-filters","data-sc-src":"src/pages/Admin/DocsCases.tsx:351",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-1.5","data-sc-src":"src/pages/Admin/DocsCases.tsx:353",children:[s.jsx(b,{active:l,onClick:()=>d({internal:l?null:"1"}),testId:"toggle-internal",tone:"muted",children:l?"â í
ì¤í¸ ê³ì í¬í¨":"í
ì¤í¸ ê³ì í¬í¨"}),S.length>0&&s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"ml-2 text-xs text-gray-400","data-sc-src":"src/pages/Admin/DocsCases.tsx:364",children:"ì¡°ì§"}),s.jsx(b,{active:a==="",onClick:()=>d({org:null,user:null}),testId:"org-chip-all",children:"ì ì²´"}),S.map(e=>s.jsx(b,{active:a===e.orgId,onClick:()=>d({org:a===e.orgId?null:e.orgId,user:null}),testId:`org-chip-${e.orgId}`,children:`${e.name} ${l?e.caseCount:e.customerCaseCount}`},e.orgId)),s.jsx(b,{active:a==="none",onClick:()=>d({org:a==="none"?null:"none",user:null}),testId:"org-chip-none",children:"ì¡°ì§ ìì(ê°ì¸)"})]})]}),m.length>0&&s.jsxs("div",{className:"flex flex-wrap items-center gap-1.5","data-sc-src":"src/pages/Admin/DocsCases.tsx:398",children:[s.jsx("span",{className:"text-xs text-gray-400","data-sc-src":"src/pages/Admin/DocsCases.tsx:399",children:"ì¬ë¦° ì¬ë"}),s.jsx(b,{active:c==="",onClick:()=>d({user:null}),testId:"user-chip-all",children:"ì ì²´"}),_.map(e=>s.jsx(b,{active:c===e.userId,onClick:()=>d({user:c===e.userId?null:e.userId}),testId:`user-chip-${e.userId}`,children:`${v(e)}${e.internal?" (í
ì¤í¸)":""} ${e.caseCount}`},e.userId)),m.length>w&&s.jsx("button",{type:"button",onClick:()=>W(e=>!e),className:"text-xs text-blue-600 hover:underline dark:text-blue-400","data-testid":"user-chips-more","data-sc-src":"src/pages/Admin/DocsCases.tsx:418",children:D?"ì 기":`ì¸ ${m.length-_.length}ëª
ë 보기`})]}),s.jsxs("div",{className:"flex flex-wrap items-center gap-1.5","data-sc-src":"src/pages/Admin/DocsCases.tsx:433",children:[s.jsx("select",{value:k,onChange:e=>d({sort:e.target.value===G?null:e.target.value}),"aria-label":"ì ë ¬",className:le,"data-testid":"sort","data-sc-src":"src/pages/Admin/DocsCases.tsx:434",children:B.map(e=>s.jsx("option",{value:e.value,"data-sc-src":"src/pages/Admin/DocsCases.tsx:444",children:e.label},e.value))}),s.jsx("span",{className:"ml-2 text-xs text-gray-400","data-sc-src":"src/pages/Admin/DocsCases.tsx:449",children:"í íë©´ì"}),q.map(e=>s.jsx(b,{active:h===e,onClick:()=>d({size:e===z?null:String(e)}),testId:`size-chip-${e}`,children:`${e}ê±´`},e))]})]}),s.jsx(ne,{rows:J,loading:U&&A.length===0,onRowClick:e=>o(`/admin/docs/cases/${e}`),title:"ì
ë¡ë ë´ì",countText:Y,showUploader:!0,emptyText:X?"ì¡°ê±´ì ë§ë ì¼ì´ì¤ê° ììµëë¤.":l?"ìì§ ì
ë¡ëë ìë¥ê° ìì´ì.":"ê³ ê°ì´ ì¬ë¦° ìë¥ê° ìì§ ìì´ì. í
ì¤í¸ ê³ì ê±´ì ì í ê¸ì ì¼ë©´ ë³´ì
ëë¤.",headerRight:s.jsxs("form",{className:"flex items-center gap-1.5",onSubmit:e=>{e.preventDefault(),d({q:$.trim()})},"data-sc-src":"src/pages/Admin/DocsCases.tsx:481",children:[s.jsx("input",{value:$,onChange:e=>P(e.target.value),placeholder:"íì·조ì§Â·ì 목·ì
체·ì¸ë³´ì´ì¤Â·BL ê²ì",className:"w-64 rounded-lg border border-gray-200 px-3 py-1.5 text-sm placeholder:text-gray-400 focus:border-brand-300 focus:ring-2 focus:ring-brand-500/20 focus:outline-none dark:border-gray-700 dark:bg-gray-900 dark:text-gray-200","data-sc-src":"src/pages/Admin/DocsCases.tsx:488"}),s.jsx("button",{className:"rounded-lg border border-gray-200 px-3 py-1.5 text-sm text-gray-600 hover:bg-gray-50 dark:border-gray-700 dark:text-gray-300 dark:hover:bg-white/5","data-sc-src":"src/pages/Admin/DocsCases.tsx:494",children:"ê²ì"})]})}),C>h&&s.jsxs("div",{className:"flex items-center justify-between text-sm text-gray-500 dark:text-gray-400","data-sc-src":"src/pages/Admin/DocsCases.tsx:504",children:[s.jsxs("span",{className:"tabular-nums","data-sc-src":"src/pages/Admin/DocsCases.tsx:505",children:[g+1," / ",V," íì´ì§"]}),s.jsxs("div",{className:"flex gap-1.5","data-sc-src":"src/pages/Admin/DocsCases.tsx:508",children:[s.jsx("button",{disabled:g===0,onClick:()=>d({page:g===1?null:String(g)},{keepPage:!0}),className:"rounded-lg border border-gray-200 px-3 py-1 disabled:opacity-40 dark:border-gray-700","data-sc-src":"src/pages/Admin/DocsCases.tsx:509",children:"ì´ì "}),s.jsx("button",{disabled:(g+1)*h>=C,onClick:()=>d({page:String(g+2)},{keepPage:!0}),className:"rounded-lg border border-gray-200 px-3 py-1 disabled:opacity-40 dark:border-gray-700","data-sc-src":"src/pages/Admin/DocsCases.tsx:516",children:"ë¤ì"})]})]})]})]})}export{me 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.