PageSourceSearch

https://www.hussde.com/assets/Institutions-x8Udzn8d.js

js hussde.com collected 2026-09-29 02:05:15 UTC 26,579 bytes, 1 lines download raw bytes

1import{r as d,j as e,E as F,a9 as B}from"./index-CitDxPDD.js";import{f as L}from"./dateUtils-BPzYxBeH.js";import{L as G}from"./LMSHeader-BkpnkaSX.js";import{O as E}from"./OperatorSidebar-CCSsJ9qJ.js";import{g as R,b as D,a as J,d as $,u as A,c as O,e as T,f as U}from"./institutions-CS7Y8-J8.js";const z=({institution:a,onClose:o,onSubmit:v,onDelete:j})=>{const[l,u]=d.useState({ins_id:a?.ins_id||"",ins_name:a?.ins_name||"",type:a?.type||"기타",homepage:a?.homepage||"",sort_order:a?.sort_order??0,representatives_for_certificate:a?.representatives_for_certificate||""}),[H,c]=d.useState(null),[w,b]=d.useState(a?.ins_logo?R(a.ins_logo):null),[k,S]=d.useState(null),[p,y]=d.useState(a?.stamp_for_certificate?D(a.stamp_for_certificate):null),[x,N]=d.useState({}),m=i=>{const{name:r,value:t}=i.target;u(n=>({...n,[r]:t})),x[r]&&N(n=>({...n,[r]:void 0}))},M=i=>{const r=i.target.files?.[0];if(r){const t=["image/jpeg","image/jpg","image/png","image/gif","image/svg+xml"],n=[".jpg",".jpeg",".jfif",".png",".gif",".svg"],g=r.name.toLowerCase().substring(r.name.lastIndexOf("."));if(!t.includes(r.type)&&!n.includes(g)){alert("지원하지 않는 파일 형식입니다. (JPG, JPEG, JFIF, PNG, GIF, SVG만 가능)");return}if(r.size>5*1024*1024){alert("파일 크기는 5MB 이하여야 합니다.");return}c(r);const s=new FileReader;s.onloadend=()=>{b(s.result)},s.readAsDataURL(r)}},f=i=>{const r=i.target.files?.[0];if(r){const t=["image/jpeg","image/jpg","image/png","image/gif","image/svg+xml"],n=[".jpg",".jpeg",".jfif",".png",".gif",".svg"],g=r.name.toLowerCase().substring(r.name.lastIndexOf("."));if(!t.includes(r.type)&&!n.includes(g)){alert("지원하지 않는 파일 형식입니다. (JPG, JPEG, JFIF, PNG, GIF, SVG만 가능)");return}if(r.size>5*1024*1024){alert("파일 크기는 5MB 이하여야 합니다.");return}S(r);const s=new FileReader;s.onloadend=()=>{y(s.result)},s.readAsDataURL(r)}},I=()=>{const i={};return l.ins_id.trim()||(i.ins_id="기관 ID를 입력해주세요."),l.ins_name.trim()||(i.ins_name="기관명을 입력해주세요."),N(i),Object.keys(i).length===0},P=i=>{if(i.preventDefault(),I()){const r=a?{ins_name:l.ins_name,type:l.type,homepage:l.homepage,sort_order:Number(l.sort_order)||0,representatives_for_certificate:l.representatives_for_certificate}:{...l,sort_order:Number(l.sort_order)||0};v(r,H,k)}},C=()=>{a&&window.confirm(`정말로 "${a.ins_name}" 기관을 삭제하시겠습니까?`)&&j?.(a)};return e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",onClick:o,children:e.jsxs("div",{className:"bg-white rounded-xl shadow-xl max-w-[500px] w-full mx-4",onClick:i=>i.stopPropagation(),children:[e.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-gray-200",children:[e.jsx("h2",{className:"text-xl font-semibold text-gray-800 [font-family:'Pretendard-SemiBold',Helvetica]",children:a?"교육기관 수정":"교육기관 생성"}),e.jsx("button",{className:"text-gray-400 hover:text-gray-600 text-2xl font-light leading-none",onClick:o,children:"×"})]}),e.jsxs("form",{onSubmit:P,children:[e.jsxs("div",{className:"px-6 py-4 space-y-4",children:[e.jsxs("div",{children:[e.jsxs("label",{htmlFor:"ins_id",className:"block text-sm font-medium text-gray-700 mb-1 [font-family:'Pretendard-Medium',Helvetica]",children:["기관 ID ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx("input",{type:"text",id:"ins_id",name:"ins_id",value:l.ins_id,onChange:m,className:`w-full px-3 py-2 border rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-green1-007062 [font-family:'Pretendard-Regular',Helvetica] ${x.ins_id?"border-red-500":"border-gray-300"}`,placeholder:"예: 14B02539B10A4021F2CC83C8D93E31BF",disabled:!!a}),x.ins_id&&e.jsx("span",{className:"text-red-500 text-xs mt-1 block",children:x.ins_id})]}),e.jsxs("div",{children:[e.jsxs("label",{htmlFor:"ins_name",className:"block text-sm font-medium text-gray-700 mb-1 [font-family:'Pretendard-Medium',Helvetica]",children:["기관명 ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx("input",{type:"text",id:"ins_name",name:"ins_name",value:l.ins_name,onChange:m,className:`w-full px-3 py-2 border rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-green1-007062 [font-family:'Pretendard-Regular',Helvetica] ${x.ins_name?"border-red-500":"border-gray-300"}`,placeholder:"예: 광주전남 지역혁신플랫폼"}),x.ins_name&&e.jsx("span",{className:"text-red-500 text-xs mt-1 block",children:x.ins_name})]}),e.jsxs("div",{children:[e.jsxs("label",{htmlFor:"type",className:"block text-sm font-medium text-gray-700 mb-1 [font-family:'Pretendard-Medium',Helvetica]",children:["기관 유형 ",e.jsx("span",{className:"text-red-500",children:"*"})]}
1),e.jsxs("select",{id:"type",name:"type",value:l.type,onChange:m,className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-green1-007062 [font-family:'Pretendard-Regular',Helvetica]",children:[e.jsx("option",{value:"HUSS 참여기관",children:"HUSS 참여기관"}),e.jsx("option",{value:"콘텐츠제공기관",children:"콘텐츠제공기관"}),e.jsx("option",{value:"기타",children:"기타"})]})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"homepage",className:"block text-sm font-medium text-gray-700 mb-1 [font-family:'Pretendard-Medium',Helvetica]",children:"홈페이지"}),e.jsx("input",{type:"url",id:"homepage",name:"homepage",value:l.homepage,onChange:m,className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-green1-007062 [font-family:'Pretendard-Regular',Helvetica]",placeholder:"예: https://www.example.com"}),e.jsx("p",{className:"text-xs text-gray-500 mt-1 [font-family:'Pretendard-Regular',Helvetica]",children:"http:// 또는 https://로 시작하는 URL을 입력해주세요"})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"sort_order",className:"block text-sm font-medium text-gray-700 mb-1 [font-family:'Pretendard-Medium',Helvetica]",children:"순서"}),e.jsx("select",{id:"sort_order",name:"sort_order",value:l.sort_order,onChange:m,className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-green1-007062 [font-family:'Pretendard-Regular',Helvetica]",children:Array.from({length:20},(i,r)=>e.jsx("option",{value:r,children:r===0?"0 (기본)":r},r))}),e.jsx("p",{className:"text-xs text-gray-500 mt-1 [font-family:'Pretendard-Regular',Helvetica]",children:"숫자가 작을수록 먼저 표시됩니다"})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"logo",className:"block text-sm font-medium text-gray-700 mb-1 [font-family:'Pretendard-Medium',Helvetica]",children:"기관 로고"}),e.jsx("input",{type:"file",id:"logo",accept:".jpg,.jpeg,.jfif,.png,.gif,.svg",onChange:M,className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-green1-007062 [font-family:'Pretendard-Regular',Helvetica]"}),w&&e.jsx("div",{className:"mt-3",children:e.jsx("img",{src:w,alt:"로고 미리보기",className:"max-w-[200px] max-h-[100px] object-contain border border-gray-300 rounded p-2"})}),e.jsx("p",{className:"text-xs text-gray-500 mt-1 [font-family:'Pretendard-Regular',Helvetica]",children:"JPG, JPEG, JFIF, PNG, GIF, SVG 파일만 가능 (최대 5MB)"})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"stamp",className:"block text-sm font-medium text-gray-700 mb-1 [font-family:'Pretendard-Medium',Helvetica]",children:"수료증용 직인"}),e.jsx("input",{type:"file",id:"stamp",accept:".jpg,.jpeg,.jfif,.png,.gif,.svg",onChange:f,className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-green1-007062 [font-family:'Pretendard-Regular',Helvetica]"}),p&&e.jsx("div",{className:"mt-3",children:e.jsx("img",{src:p,alt:"직인 미리보기",className:"max-w-[200px] max-h-[100px] object-contain border border-gray-300 rounded p-2"})}),e.jsx("p",{className:"text-xs text-gray-500 mt-1 [font-family:'Pretendard-Regular',Helvetica]",children:"JPG, JPEG, JFIF, PNG, GIF, SVG 파일만 가능 (최대 5MB)"})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"representatives_for_certificate",className:"block text-sm font-medium text-gray-700 mb-1 [font-family:'Pretendard-Medium',Helvetica]",children:"수료증용 기관장명"}),e.jsx("input",{type:"text",id:"representatives_for_certificate",name:"representatives_for_certificate",value:l.representatives_for_certificate,onChange:m,className:"w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-green1-007062 [font-family:'Pretendard-Regular',Helvetica]",placeholder:"예: 총장 홍길동"}),e.jsx("p",{className:"text-xs text-gray-500 mt-1 [font-family:'Pretendard-Regular',Helvetica]",children:"수료증에 표시될 기관장명을 입력해주세요"})]})]}),e.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-t border-gray-200 gap-3",children:[e.jsx("div",{children:a&&j&&e.jsx("button",{type:"button",onClick:C,className:"px-4 py-2 bg-red-600 text-white rounded-lg text-sm font-medium hover:bg-red-700 transition-colors [font-family:'Pretendard-Medium',Helvetica]",children:"삭제"})}),e.jsxs("div",{className:"flex gap-3",children:[e.jsx("button",{type:"button",onClick:o,className:"px-4 py-2 bg-gray-200 text-gray-700 rounded-lg text-sm font-medium hover:bg-gray-300 transition-colors [font-family:'Pretendard-Medium',Helvetica]",children:"취소"}),e.jsx("button",{type:"submit",className:"px-4 py-2 bg-green1-007062 text-white rounded-lg text-sm font-medium hover:bg-green-700 transition-colors [font-family:'Pretendard-Medium',Helvetica]",children:a?"수정":"생성"})]})]})]})]})})},_=({type:a,className:o=""})=>({building:e.jsxs("svg",{className:o,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("rect",{x:"4",y:"2",width:"16",height:"20",rx:"2",ry:"2"}),e.jsx("path",{d:"M9 22v-4h6v4"}),e.jsx("path",{d:"M8 6h.01"}),e.jsx("path",{d:"M16 6h.01"}),e.jsx("path",{d:"M12 6h.01"}),e.jsx("path",{d:"M12 10h.01"}),e.jsx("path",{d:"M12 14h.01"}),e.jsx("path",{d:"M16 10h.01"}),e.jsx("path",{d:"M16 14h.01"}),e.jsx("path",{d:"M8 10h.01"}),e.jsx("path",{d:"M8 14h.01"})]}),plus:e.jsxs("svg",{className:o,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),e.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),edit:e.jsxs("svg",{className:o,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),e.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]}),trash:e.jsxs("svg",{className:o,width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("polyline",{points:"3 6 5 6 21 6"}),e.jsx("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})]})})[a]||null,V=()=>{const{isAuthenticated:a}=B(),[o,v]=d.useState([]),[j,l]=d.useState(!1),[u,H]=d.useState(""),[c,w]=d.use
1State(1),[b,k]=d.useState(1),[S,p]=d.useState(!1),[y,x]=d.useState(null),[N,m]=d.useState(!1),M=t=>{m(t)},f=async(t=1)=>{const n=localStorage.getItem("auth_token");if(a||n){l(!0);try{const s=await J({page:t,size:10,search:u||void 0});v(s.items),w(s.page),k(s.pages)}catch(s){console.error("[Institutions] Failed to fetch institutions:",s),alert("교육기관 목록을 불러오는데 실패했습니다.")}finally{l(!1)}}};d.useEffect(()=>{f(1)},[a,u]);const I=()=>{x(null),p(!0)},P=t=>{x(t),p(!0)},C=async t=>{try{await $(t.id),alert("교육기관이 삭제되었습니다."),p(!1),f(c)}catch(n){alert(`삭제 실패: ${n.message}`)}},i=async(t,n,g)=>{try{let s;if(y?(s=(await A(y.id,t)).id,alert("교육기관이 수정되었습니다.")):(s=(await O(t)).id,alert("교육기관이 생성되었습니다.")),n)try{await T(s,n)}catch(h){console.error("Logo upload failed:",h),alert(`기관은 저장되었으나 로고 업로드 실패: ${h.message}`)}if(g)try{await U(s,g)}catch(h){console.error("Stamp upload failed:",h),alert(`기관은 저장되었으나 직인 업로드 실패: ${h.message}`)}p(!1),f(c)}catch(s){alert(`오류: ${s.message}`)}},r=t=>L(t);return e.jsxs("div",{className:"lms-layout operator-mode",children:[e.jsx(G,{onMobileMenuToggle:M}),e.jsx(E,{isMobileOpen:N,onMobileClose:()=>m(!1)}),e.jsx("main",{className:"lms-main-content operator-main flex-1 flex justify-center overflow-x-hidden pt-[90px] max-md:pt-[70px] ml-[260px] max-md:ml-0 transition-all duration-300",children:e.jsxs("div",{className:"lms-content-wrapper w-full max-w-[1400px] p-8 max-md:p-4",children:[e.jsxs("div",{className:"bg-x-ffffff rounded-xl p-4 min-h-[calc(100vh-150px)]",children:[e.jsxs("div",{className:"mb-5",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[e.jsx(_,{type:"building",className:"text-x-333333 w-6 h-6"}),e.jsx("h1",{className:"text-2xl font-semibold text-x-333333 m-0 [font-family:'Pretendard-SemiBold',Helvetica]",children:"교육기관 관리"})]}),e.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap mb-4",children:[e.jsxs("button",{onClick:I,className:"flex items-center gap-1.5 px-3 py-2 rounded-lg text-[13px] font-medium transition-all bg-[#888888] text-x-ffffff hover:bg-[#777777] [font-family:'Pretendard-Medium',Helvetica]",children:[e.jsx(_,{type:"plus"}),"교육기관 생성"]}),e.jsxs("div",{className:"flex items-center ml-auto gap-1.5",children:[e.jsx("input",{type:"text",placeholder:"기관명 검색",value:u,onChange:t=>H(t.target.value),className:"px-3 py-2 border border-gray2-dddddd rounded-lg text-[13px] text-gray2-5a5a5a w-[150px] focus:outline-none focus:border-green1-007062"}),e.jsx("button",{className:"px-3.5 py-2 bg-[#888888] text-x-ffffff rounded-lg text-xs font-medium cursor-pointer hover:bg-[#777777] [font-family:'Pretendard-Medium',Helvetica]",children:"GO"})]})]})]}),e.jsxs("div",{className:"flex flex-col items-start w-full border-t-2 border-x-333333 max-md:hidden",children:[e.jsxs("div",{className:"flex h-12 items-start w-full bg-white",role:"row",children:[e.jsx("div",{className:"flex w-[50px] min-w-[50px] max-w-[50px] h-12 items-center justify-center px-1.5 py-0 bg-gray1-f8f8f8 border-b border-line1-e9e9e9",role:"columnheader",children:e.jsx("span",{className:"font-['Pretendard-SemiBold',Helvetica] font-semibold text-[#333333] text-sm text-center tracking-[0] leading-[19.6px] whitespace-nowrap",children:"번호"})}),e.jsx("div",{className:"flex w-[50px] min-w-[50px] max-w-[50px] h-12 items-center justify-center px-1.5 py-0 bg-gray1-f8f8f8 border-b border-line1-e9e9e9",role:"columnheader",children:e.jsx("span",{className:"font-['Pretendard-SemiBold',Helvetica] font-semibold text-[#333333] text-sm text-center tracking-[0] leading-[19.6px] whitespace-nowrap",children:"순서"})}),e.jsx("div",{className:"flex w-[120px] min-w-[120px] max-w-[120px] h-12 items-center justify-center px-2.5 py-0 bg-gray1-f8f8f8 border-b border-line1-e9e9e9",role:"columnheader",children:e.jsx("span",{className:"font-['Pretendard-SemiBold',Helvetica] font-semibold text-[#333333] text-sm text-center tracking-[0] leading-[19.6px] whitespace-nowrap",children:"기관 ID"})}),e.jsx("div",{className:"flex flex-1 min-w-0 h-12 items-center justify-center px-2.5 py-0 bg-gray1-f8f8f8 border-b border-line1-e9e9e9",role:"columnheader",children:e.jsx("span",{className:"font-['Pretendard-SemiBold',Helvetica] font-semibold text-[#333333] text-sm text-center tracking-[0] leading-[19.6px] whitespace-nowrap",children:"기관명"})}),e.jsx("div",{className:"flex w-[120px] min-w-[120px] max-w-[120px] h-12 items-center justify-center px-2.5 py-0 bg-gray1-f8f8f8 border-b border-line1-e9e9e9",role:"columnheader",children:e.jsx("span",{className:"font-['Pretendard-SemiBold',Helvetica] font-semibold text-[#333333] text-sm text-center tracking-[0] leading-[19.6px] whitespace-nowrap",children:"기관 유형"})}),e.jsx("div",{className:"flex w-[100px] min-w-[100px] max-w-[100px] h-12 items-center justify-center px-2.5 py-0 bg-gray1-f8f8f8 border-b border-line1-e9e9e9",role:"columnheader",children:e.jsx("span",{className:"font-['Pretendard-SemiBold',Helvetica] font-semibold text-[#333333] text-sm text-center tracking-[0] leading-[19.6px] whitespace-nowrap",children:"로고"})}),e.jsx("div",{className:"flex w-[140px] min-w-[140px] max-w-[140px] h-12 items-center justify-center px-2.5 py-0 bg-gray1-f8f8f8 border-b border-line1-e9e9e9",role:"columnheader",children:e.jsx("span",{className:"font-['Pretendard-SemiBold',Helvetica] font-semibold text-[#333333] text-sm text-center tracking-[0] leading-[19.6px] whitespace-nowrap",children:"수료증용(직인/기관장명)"})}),e.jsx("div",{className:"flex w-[120px] min-w-[120px] max-w-[120px] h-12 items-center justify-center px-2.5 py-0 bg-gray1-f8f8f8 border-b border-line1-e9e9e9",role:"columnheader",children:e.jsx("span",{className:"font-['Pretendard-SemiBold',Helvetica] font-semibold text-[#333333] text-sm text-center tracking-[0] leading-[19.6px] whitespace-nowrap",children:"생성일"})}),e.jsx("div",{className:"flex w-[120px] min-w-[120px] max-w-[120px] h-12 items-center justify-center px-2.5 py-0 bg-gray1-f8f8f8 border-b border-line1-e9e9e9",role:"columnheader",children:e.jsx("span",{className:"font-['Pretendard-SemiBold',Helvetica] font-semibold text-[#333333] text-sm text-center tracking-[0] leading-[19.6px] whitespace-nowrap",children:"수정일"})}),e.jsx("div",{className:"flex w-[70px] min-w-[70px] max-w-[70px] h-12 items-center justify-center px-2.5 py-0 bg-gray1-f8f8f8 border-b border-line1-e9e9e9",role:"columnheader",children:e.jsx("span",{className:"font-['Pretendard-SemiBold',Helvetica] font-semibold text-[#333333] text-sm text-center tracking-[0] leading-[19.6px] whitespace-nowrap",children:"작업"})})]}),j?e.jsx("div",{className:"flex h-12 items-start w-full",role:"row",children:e.jsx("div",{className:"flex w-full h-12 items-center justify-center px-2.5 py-0 border-b border-line1-e9e9e9",role:"cell",children:e.jsx("span",{className:"text-[#333333] text-sm",children:"로딩 중..."})})}):o.length===0?e.jsx("div",{className:"flex h-12 items-start w-full",role:"row",children:e.jsx("div",{className:"flex w-full h-12 items-center justify-center px-2.5 py-0 border-b border-line1-e9e9e9",role:"cell",children:e.jsx("span",{className:"text-[#333333] text-sm",children:"교육기관이 없습니다."})})}):o.map((t,n)=>e.jsxs("div",{className:"flex h-12 items-start w-full hover:bg-gray-50 cursor-pointer transition-colors",role:"row",children:[e.jsx("div",{className:"flex w-[50px] min-w-[50px] max-w-[50px] h-12 items-center justify-center px-1.5 py-0 border-b border-line1-e9e9e9",role:"cell",children:e.jsx("span",{className:"text-[#333333] text-sm leading-[19.6px] tracking-[0] font-['Pretendard-Regular',Helvetica] font-normal text-center",children:(c-1)*10+n+1})}),e.jsx("div",{className:"flex w-[50px] min-w-[50px] max-w-[50px] h-12 items-center justify-center px-1.5 py-0 border-b border-line1-e9e9e9",role:"cell",children:e.jsx("span",{className:"text-[#1E4199] text-sm leading-[19.6px] tracking-[0] font-['Pretendard-Medium',Helvetica] font-medium text-center",children:t.sort_order||0})}),e.jsx("div",{className:"flex w-[120px] min-w-[120px] max-w-[120px] h-12 items-center px-2.5 py-0 border-b border-line1-e9e9e9",role:"cell",children:e.jsx("span",{className:"flex-1 text-[#333333] text-sm leading-[19.6px] tracking-[0] overflow-hidden text-ellipsis whitespace-nowrap font-['Pretendard-Regular',Helvetica] font-normal text-center",children:t.ins_id})}),e.jsx("div",{className:"flex flex-1 min-w-0 h-12 items-center px-2.5 py-0 border-b border-line1-e9e9e9",role:"cell",children:e.jsx("span",{className:"flex-1 text-[#333333] text-sm leading-[19.6px] tracking-[0] overflow-hidden text-ellipsis whitespace-nowrap font-['Pretendard-Regular',Helvetica] font-normal text-left",children:t.ins_name})}),e.jsx("div",{className:"flex w-[120px] min-w-[120px] max-w-[120px] h-12 items-center justify-center px-2.5 py-0 border-b border-line1-e9e9e9",role:"cell",children:e.jsx("span",{className:"text-[#333333] text-sm leading-[19.6px] tracking-[0] font-['Pretendard-Regular',Helvetica] font-normal text-center",children:t.type})}),e.jsx("div",{className:"flex w-[100px] min-w-[100px] max-w-[100px] h-12 items-center justify-center px-2.5 py-0 border-b border-line1-e9e9e9",role:"cell",children:t.ins_logo?e.jsx("img",{src:R(t.ins_logo)||"",alt:`${t.ins_name} 로고`,className:"max-w-[60px] max-h-[40px] object-contain"}):e.jsx("span",{className:"text-gray-400 text-xs",children:"없음"})}),e.jsx("div",{className:"flex w-[140px] min-w-[140px] max-w-[140px] h-12 items-center justify-center px-2.5 py-0 border-b border-line1-e9e9e9",role:"cell",children:e.jsxs("div",{className:"flex flex-col items-center gap-0.5",children:[e.jsxs("span",{className:"text-[#333333] text-xs leading-[16
1px] font-['Pretendard-Regular',Helvetica]",children:["직인: ",t.stamp_for_certificate?e.jsx("span",{className:"text-green-600",children:"✓"}):e.jsx("span",{className:"text-gray-400",children:"✗"})]}),e.jsxs("span",{className:"text-[#333333] text-xs leading-[16px] font-['Pretendard-Regular',Helvetica]",children:["기관장: ",t.representatives_for_certificate?e.jsx("span",{className:"text-green-600",children:"✓"}):e.jsx("span",{className:"text-gray-400",children:"✗"})]})]})}),e.jsx("div",{className:"flex w-[120px] min-w-[120px] max-w-[120px] h-12 items-center justify-center px-2.5 py-0 border-b border-line1-e9e9e9",role:"cell",children:e.jsx("span",{className:"text-[#333333] text-sm leading-[19.6px] tracking-[0] font-['Pretendard-Regular',Helvetica] font-normal text-center",children:r(t.createdAt)})}),e.jsx("div",{className:"flex w-[120px] min-w-[120px] max-w-[120px] h-12 items-center justify-center px-2.5 py-0 border-b border-line1-e9e9e9",role:"cell",children:e.jsx("span",{className:"text-[#333333] text-sm leading-[19.6px] tracking-[0] font-['Pretendard-Regular',Helvetica] font-normal text-center",children:r(t.updatedAt)})}),e.jsx("div",{className:"flex w-[70px] min-w-[70px] max-w-[70px] h-12 items-center justify-center px-2.5 py-0 border-b border-line1-e9e9e9",role:"cell",children:e.jsx("button",{onClick:()=>P(t),className:"p-1 rounded hover:bg-gray-200 transition-colors",children:e.jsx(_,{type:"edit"})})})]},t.id))]}),e.jsx("div",{className:"md:hidden flex flex-col gap-3 mt-4",children:j?e.jsx("div",{className:"bg-white rounded-lg border border-gray2-dddddd p-4 text-center",children:e.jsx("span",{className:"text-[#333333] text-sm",children:"로딩 중..."})}):o.length===0?e.jsx("div",{className:"bg-white rounded-lg border border-gray2-dddddd p-4 text-center",children:e.jsx("span",{className:"text-[#333333] text-sm",children:"교육기관이 없습니다."})}):o.map((t,n)=>e.jsxs("div",{className:"bg-white rounded-lg border border-gray2-dddddd p-4",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-3 pb-3 border-b border-gray1-e9e9e9",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"text-[12px] font-semibold text-gray2-5a5a5a font-['Pretendard-SemiBold',Helvetica]",children:["#",(c-1)*10+n+1]}),e.jsx("span",{className:"text-[12px] text-green1-007062 font-medium font-['Pretendard-Medium',Helvetica]",children:t.ins_id})]}),e.jsx("button",{onClick:()=>P(t),className:"p-1.5 rounded hover:bg-gray-200 transition-colors",children:e.jsx(_,{type:"edit"})})]}),e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[t.ins_logo?e.jsx("img",{src:R(t.ins_logo)||"",alt:`${t.ins_name} 로고`,className:"max-w-[60px] max-h-[40px] object-contain"}):e.jsx("div",{className:"w-[60px] h-[40px] flex items-center justify-center bg-gray-100 rounded",children:e.jsx("span",{className:"text-gray-400 text-[10px]",children:"로고없음"})}),e.jsx("h3",{className:"text-[15px] font-semibold text-x-333333 flex-1 font-['Pretendard-SemiBold',Helvetica]",children:t.ins_name})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[12px] text-gray2-5a5a5a min-w-[60px] font-['Pretendard-Regular',Helvetica]",children:"기관유형:"}),e.jsx("span",{className:"text-[12px] text-gray2-696969 font-['Pretendard-Regular',Helvetica]",children:t.type})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[12px] text-gray2-5a5a5a min-w-[60px] font-['Pretendard-Regular',Helvetica]",children:"생성일:"}),e.jsx("span",{className:"text-[12px] text-gray2-696969 font-['Pretendard-Regular',Helvetica]",children:r(t.createdAt)})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx("span",{className:"text-[12px] text-gray2-5a5a5a min-w-[60px] font-['Pretendard-Regular',Helvetica]",children:"수정일:"}),e.jsx("span",{className:"text-[12px] text-gray2-696969 font-['Pretendard-Regular',Helvetica]",children:r(t.updatedAt)})]})]})]},t.id))})]}),b>1&&e.jsxs("div",{className:"flex items-center justify-center gap-2 mt-6",children:[e.jsx("button",{onClick:()=>f(c-1),disabled:c===1,className:`px-3 py-1.5 rounded-lg text-sm font-medium transition-colors [font-family:'Pretendard-Medium',Helvetica] ${c===1?"bg-gray-100 text-gray-400 cursor-not-allowed":"bg-white border border-gray-300 text-gray-700 hover:bg-gray-50"}`,children:"‹"}),Array.from({length:b},(t,n)=>n+1).map(t=>e.jsx("button",{onClick:()=>f(t),className:`px-3 py-1.5 rounded-lg text-sm font-medium transition-colors [font-family:'Pretendard-Medium',Helvetica] ${t===c?"bg-green1-007062 text-white":"bg-white border border-gray-300 text-gray-700 hover:bg-gray-50"}`,children:t},t)),e.jsx("button",{onClick:()=>f(c+1),disabled:c===b,className:`px-3 py-1.5 rounded-lg text-sm font-medium transition-colors [font-family:'Pretendard-Medium',Helvetica] ${c===b?"bg-gray-100 text-gray-400 cursor-not-allowed":"bg-white border border-gray-300 text-gray-700 hover:bg-gray-50"}`,children:"›"})]})]})}),S&&e.jsx(z,{institution:y,onClose:()=>p(!1),onSubmit:i,onDelete:C})]})},Y=()=>e.jsx(F,{children:e.jsx(V,{})});
1export{Y 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.