1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[80915],{42477:function(e,t,i){(window.__NEXT_P=window.__NEXT_P||[]).push(["/admin/offline-course/campus",function(){return i(30135)}])},98007:function(e,t,i){"use strict";i.d(t,{Z:function(){return r}});var l=i(85893),a=i(67294),s=i(50788);function r(e){let{label:t,name:i,value:r,onChange:n,type:c="text",placeholder:o="",required:d=!1,error:u="",maxLength:m=1e4,rows:f=3,className:p="",labelClassName:g="",inputClassName:h="",errorClassName:x="",disabled:b=!1,readOnly:y=!1,icon:v=null,iconPosition:j="left",helperText:_="",autoFocus:N=!1,onBlur:w=null,onFocus:C=null,...k}=e,[F,S]=(0,a.useState)(!1),E="password"===c,U="textarea"===c,A=e=>{n&&n(e)},O="w-full px-4 py-2 border rounded-lg\nfocus:outline-none\nfocus:ring-2\nfocus:ring-blue-500\nfocus:border-blue-500\ntransition-all duration-200\n".concat(u?"border-red-500":"border-gray-300","\n").concat(b?"bg-gray-100 cursor-not-allowed":"bg-white","\n").concat(v&&"left"===j?"pl-10":"","\n").concat(v&&"right"===j?"pr-10":"","\n").concat(E?"pr-10":"","\n").concat(h);return(0,l.jsxs)("div",{className:"mb-4 ".concat(p),children:[t&&(0,l.jsxs)("label",{htmlFor:i,className:"block text-sm font-medium text-gray-700 mb-2 ".concat(g),children:[t,d&&(0,l.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),(0,l.jsxs)("div",{className:"relative",children:[v&&"left"===j&&(0,l.jsx)("div",{className:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none",children:(0,l.jsx)("span",{className:"text-gray-500",children:v})}),U?(0,l.jsx)("textarea",{id:i,name:i,value:r||"",onChange:A,placeholder:o,rows:f,maxLength:m,disabled:b,readOnly:y,autoFocus:N,onBlur:w,onFocus:C,className:O,...k}):(0,l.jsx)("input",{id:i,name:i,type:E?F?"text":"password":c,value:r||"",onChange:A,placeholder:o,maxLength:m,disabled:b,readOnly:y,autoFocus:N,onBlur:w,onFocus:C,className:O,...k}),E&&(0,l.jsx)("button",{type:"button",onClick:()=>{S(!F)},className:"absolute inset-y-0 right-0 pr-3 flex items-center text-gray-500 hover:text-gray-700 focus:outline-none",tabIndex:"-1",children:F?(0,l.jsx)(s.wqE,{size:20}):(0,l.jsx)(s.t2l,{size:20})}),v&&"right"===j&&!E&&(0,l.jsx)("div",{className:"absolute inset-y-0 right-0 pr-3 flex items-center pointer-events-none",children:(0,l.jsx)("span",{className:"text-gray-500",children:v})})]}),_&&!u&&(0,l.jsx)("p",{className:"mt-1 text-sm text-gray-500",children:_}),u&&(0,l.jsx)("p",{className:"mt-1 text-sm text-red-500 ".concat(x),children:u}),m&&r&&(0,l.jsxs)("div",{className:"mt-1 text-xs text-gray-400 text-right",children:[String(r).length,"/",m]})]})}},98198:function(e,t,i){"use strict";i.d(t,{Z:function(){return o}});var l=i(85893),a=i(5152),s=i.n(a);i(86834);let r=s()(()=>Promise.all([i.e(22937),i.e(71167)]).then(i.t.bind(i,71167,23)),{loadableGenerated:{webpack:()=>[71167]},ssr:!1}),n={toolbar:[[{header:[1,2,3,4,5,6,!1]}],["bold","italic","underline","strike","blockquote"],[{list:"ordered"},{list:"bullet"}],["link","image"],["clean"]]},c=["header","bold","italic","underline","strike","blockquote","list","bullet","link","image"];function o(e){let{label:t,desc:i="",handleBioChange:a}=e;return(0,l.jsxs)("div",{className:"mb-3 mt-3",children:[(0,l.jsx)("label",{className:"block text-[#FF1B1B] font-semibold mb-2",children:t}),(0,l.jsx)(r,{theme:"snow",value:i||"",onChange:a,modules:n,formats:c})]})}},2958:function(e,t,i){"use strict";i.r(t),i.d(t,{default:function(){return n}});var l=i(85893),a=i(41664),s=i.n(a),r=i(11163);function n(){let{university_id:e,course_id:t}=(0,r.useRouter)().query,i=[{label:"Edit (About)",href:"/admin/offline-course/add?course_id=".concat(t,"&university_id=").concat(e),color:"blue"},{label:"Fees",href:"/admin/offline-course/fees?course_id=".concat(t,"&university_id=").concat(e),color:"yellow"},{label:"Eligibility",href:"/admin/offline-course/eligibility?course_id=".concat(t,"&university_id=").concat(e),color:"red"},{label:"Curriculum",href:"/admin/offline-course/curriculum?course_id=".concat(t,"&university_id=").concat(e),color:"lime"},{label:"Admission",href:"/admin/offline-course/admission?course_id=".concat(t,"&university_id=").concat(e),color:"green"},{label:"CutOff",href:"/admin/offline-course/cutoff?course_id=".concat(t,"&university_id=").concat(e),color:"purple"},{label:"Scholarship",href:"/admin/offline-course/scholarship?course_id=".concat(t,"&university_id=").concat(e),color:"teal"},{label:"Placement",href:"/admin/offline-course/Placement?course_id=".concat(t,"&university_id=").concat(e),color:"cyan"},{label:"FAQ",href:"/admin/offline-course/faq?course_id=".concat(t,"&university_id=").concat(e),color:"orange"}];return(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2 mb-6",children:[(0,l.jsx)(s(),{href:"/admin/offline-course?course_id=".concat(t,"&university_id=").concat(e),className:"px-3 py-1.5 rounded bg-gray-100 text-gray-700 hover:bg-gray-200 text-sm font-medium",children:"â Back"}),null==i?void 0:i.map(e=>(0,l.jsx)(s(),{href:e.href,className:"px-3 py-1.5 rounded bg-blue-50 text-blue-600 hover:bg-blue-100 text-sm font-medium",children:e.label},e.label))]})}},30135:function(e,t,i){"use strict";i.r(t);var l=i(85893),a=i(67294),s=i(11163),r=i(86501),n=i(15122),c=i(98007),o=i(98198),d=i(34291),u=i(2958);t.default=function(){let e=(0,s.useRouter)(),{id:t,universityId:i}=e.query,[m,f]=(0,a.useState)(!1),[p,g]=(0,a.useState)(!1),[h,x]=(0,a.useState)(!1),[b,y]=(0,a.useState)({offline_university_id:i||"",title:"",description:"",images:[],facilities_title:"",facilities_description:"",meta_title:"",meta_description:""}),[v,j]=(0,a.useState)([]),[_,N]=(0,a.useState)({});(0,a.useEffect)(()=>{t&&(g(!0),w(t))},[t]);let w=async e=>{x(!0);try{var i,l;let a=new d.default,s=await a.GetOfflineUniversityByID(e),n=(null==s?void 0:null===(l=s.data)||void 0===l?void 0:null===(i=l.data)||void 0===i?void 0:i.gallery)||(null==s?void 0:s.data);if(!n){r.default.error("University not found");return}let c=[];try{let e="string"==typeof n.images?JSON.parse(n.images):n.images;c=Array.isArray(e)?e:[]}catch(e){c=[]}let o=[];try{let e="string"==typeof n.facilities_json?JSON.parse(n.facilities_json):n.facilities_json;Array.isArray(e)&&(o=e.map(e=>({title:e.title||"",imageUrl:e.image||null,imageFile:null,isNew:!1})))}catch(e){o=[]}y({offline_university_id:Number(t)||"",title:n.title||"",description:n.description||"",meta_title:n.meta_title||"",meta_description:n.meta_description||"",facilities_title:n.facilities_title||"",facilities_description:n.facilities_description||"",images:c.map(e=>({url:e}))}),j(o)}catch(e){console.error(e),r.default.error((null==e?void 0:e.message)||"Failed to fetch university")}finally{x(!1)}},C=e=>{let{name:t,value:i}=e.target;y(e=>({...e,[t]:i})),_[t]&&N(e=>({...e,[t]:""}))},k=(e,t)=>{y(i=>({...i,[e]:t})),_[e]&&N(t=>({...t,[e]:""}))},F=e=>{y(t=>({...t,images:t.images.filter((t,i)=>i!==e)}))},S=e=>{j(v.filter((t,i)=>i!==e))},E=(e,t)=>{let i=[...v];i[e].title=t,j(i)},U=(e,t)=>{if(!t)return;let i=[...v];i[e].imageFile=t,i[e].imageUrl=URL.createObjectURL(t),j(i)},A=()=>{let e={};return b.offline_university_id||(e.offline_university_id="University ID is required"),b.title&&""!==b.title.trim()||(e.title="Title is required"),N(e),0===Object.keys(e).length},O=async e=>{if(e.preventDefault(),A()){f(!0);try{let e=new d.default,l=new FormData;l.append("offline_university_id",Number(null==b?void 0:b.offline_university_id)),l.append("title",null==b?void 0:b.title),l.append("description",null==b?void 0:b.description),l.append("facilities_title",null==b?void 0:b.facilities_title),l.append("facilities_description",null==b?void 0:b.facilities_description),l.append("meta_title",null==b?void 0:b.meta_title),l.append("meta_description",null==b?void 0:b.meta_description),null==b||b.images.forEac
1h(e=>{e.file&&l.append("images",e.file)});let a=v.map((e,t)=>{let i=e.imageUrl;return e.imageFile?i="facility_image_".concat(t):e.isNew&&!e.imageFile&&(i=null),{title:e.title,image:i}});l.append("facilities_json",JSON.stringify(a)),v.forEach((e,t)=>{(null==e?void 0:e.imageFile)&&l.append("facility_image_".concat(t),e.imageFile)});let s=await e.AdminGalleryOfflineUniversity(p?t:null,l);if(s.status){var i;r.default.success((null==s?void 0:null===(i=s.data)||void 0===i?void 0:i.message)||"Campus ".concat(p?"updated":"saved"," successfully!"))}else r.default.error(s.message||"Operation failed")}catch(e){console.error(e),r.default.error(e.message||"Something went wrong")}finally{f(!1)}}};return h?(0,l.jsx)(n.Z,{children:(0,l.jsx)("div",{className:"min-h-screen p-6 bg-gray-50 flex items-center justify-center",children:(0,l.jsxs)("div",{className:"text-center",children:[(0,l.jsx)("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto"}),(0,l.jsx)("p",{className:"mt-4 text-gray-600",children:"Loading facilities data..."})]})})}):(0,l.jsx)(n.Z,{children:(0,l.jsxs)("div",{className:"min-h-screen p-6 bg-gray-50",children:[(0,l.jsx)("h1",{className:"text-2xl font-bold text-gray-800 mb-6",children:p?"Edit Campus":"Add Campus"}),(0,l.jsx)(u.default,{id:t}),(0,l.jsxs)("form",{onSubmit:O,children:[(0,l.jsx)(c.Z,{label:"Title",name:"title",value:b.title,onChange:C,placeholder:"Enter Campus title (e.g., Boys Campus, Girls Campus)",maxLength:255,required:!0,error:_.title}),(0,l.jsxs)("div",{className:"mt-4",children:[(0,l.jsx)("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Description"}),(0,l.jsx)(o.Z,{desc:b.description||"",handleBioChange:e=>k("description",e),placeholder:"Describe the campus facilities..."})]}),(0,l.jsxs)("div",{className:"mt-6",children:[(0,l.jsx)("label",{className:"block text-sm font-medium mb-2",children:"Campus Images"}),(0,l.jsx)("input",{type:"file",multiple:!0,accept:"image/*",onChange:e=>{let t=Array.from(e.target.files);if(!t.length)return;let i=t.map(e=>({file:e,url:URL.createObjectURL(e)}));y(e=>({...e,images:[...Array.isArray(e.images)?e.images:[],...i]}))},className:"block w-full border rounded-lg p-2"}),(0,l.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 mt-5",children:((null==b?void 0:b.images)||[]).map((e,t)=>(0,l.jsxs)("div",{className:"relative",children:[(0,l.jsx)("img",{src:e.url||e,className:"w-full h-40 object-cover rounded-lg border",alt:"campus"}),(0,l.jsx)("button",{type:"button",onClick:()=>F(t),className:"absolute top-2 right-2 bg-red-600 text-white w-7 h-7 rounded-full",children:"\xd7"})]},t))})]}),(0,l.jsxs)("div",{className:"mt-8 border-t pt-6",children:[(0,l.jsx)("h3",{className:"text-lg font-semibold text-gray-700 mb-4",children:"Campus Facilities"}),(0,l.jsx)(c.Z,{label:"Facilities Section Title",name:"facilities_title",value:b.facilities_title,onChange:C,placeholder:"e.g., Campus Fee Structure",maxLength:255}),(0,l.jsxs)("div",{className:"mt-4",children:[(0,l.jsx)("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Facilities Description"}),(0,l.jsx)(o.Z,{desc:b.facilities_description||"",handleBioChange:e=>k("facilities_description",e),placeholder:"Describe the fee structure..."})]}),(0,l.jsxs)("div",{className:"mt-6",children:[(0,l.jsx)("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Individual Facilities (Title + Image)"}),v&&(null==v?void 0:v.map((e,t)=>(0,l.jsxs)("div",{className:"border p-4 rounded-lg mb-4 bg-white shadow-sm",children:[(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-4 items-end",children:[(0,l.jsx)(c.Z,{label:"Facility ".concat(t+1," Title"),value:e.title,onChange:e=>E(t,e.target.value),placeholder:"Enter facility title",type:"textarea"}),(0,l.jsxs)("div",{children:[(0,l.jsx)("label",{className:"block text-sm font-medium text-gray-700",children:"Image"}),(0,l.jsx)("input",{type:"file",accept:"image/*",onChange:e=>{let i=e.target.files[0];i&&U(t,i)},className:"block w-full text-sm text-gray-500 file:mr-4 file:py-2 file:px-4 file:rounded-md file:border-0 file:text-sm file:font-semibold file:bg-blue-50 file:text-blue-700 hover:file:bg-blue-100"}),(0,l.jsx)("button",{type:"button",onClick:()=>S(t),className:"text-red-600 hover:text-red-800 px-2 py-1 border border-red-300 rounded",children:"Remove"})]})]}),(null==e?void 0:e.imageUrl)&&(0,l.jsx)("div",{className:"mt-2",children:(0,l.jsx)("img",{src:e.imageUrl,className:"h-20 w-20 object-cover rounded border",alt:"facility preview"})})]},t))),(0,l.jsx)("button",{type:"button",onClick:()=>{j([...v,{title:"",imageUrl:null,imageFile:null,isNew:!0}])},className:"mt-2 px-4 py-2 bg-green-600 text-white rounded-lg hover:bg-green-700 transition-colors",children:"+ Add Facility"})]}),(0,l.jsx)(c.Z,{label:"meta title",name:"meta_title",value:b.meta_title,onChange:C,placeholder:"Enter meta title"}),(0,l.jsx)(c.Z,{label:"meta description",name:"meta_description",value:b.meta_description,onChange:C,placeholder:"Enter meta description",type:"textarea"})]}),(0,l.jsxs)("div",{className:"flex justify-end space-x-4 mt-8 pt-6 border-t",children:[(0,l.jsx)("button",{type:"button",onClick:()=>e.back(),className:"px-6 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50 transition-colors",children:"Cancel"}),(0,l.jsx)("button",{type:"submit",disabled:m,className:"px-6 py-2 bg-blue-600 hover:bg-blue-700 text-white rounded-lg font-medium shadow-md transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:m?(0,l.jsxs)("span",{className:"flex items-center",children:[(0,l.jsxs)("svg",{className:"animate-spin -ml-1 mr-3 h-5 w-5 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,l.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,l.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),p?"Updating...":"Saving..."]}):p?"Update Campus":"Save Campus"})]})]})]})})}},86834:function(){}},function(e){e.O(0,[64838,76660,13365,60509,56130,34396,92729,41664,63872,77472,34291,15122,92888,49774,40179],function(){return e(e.s=42477)}),_N_E=e.O()}]);
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.