1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7645],{2980:(e,t,r)=>{r.d(t,{i:()=>s.A});var s=r(60690)},19816:(e,t,r)=>{r.d(t,{A:()=>l});var s=r(29142);let a=r(93017).env.NEXT_PUBLIC_BACKEND_URL||"http://localhost:8000",l=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{outputExtension:r=".converted",outputMimeType:l="application/octet-stream",timeout:n=3e5}=t;return async function(t,o){let i=[];try{t.forEach((e,t)=>{o(t,"processing","Converting ".concat(e.name,"..."))});let d=new FormData;t.forEach(e=>{d.append("files",e)});let c=await s.Ay.post("".concat(a,"/convert/").concat(e),d,{headers:{"Content-Type":"multipart/form-data"},responseType:"blob",timeout:n,onUploadProgress:e=>{let r=Math.round(100*e.loaded/e.total);t.forEach((e,t)=>{o(t,"processing","Uploading... ".concat(r,"%"))})}}),m=(e=>{let t=e.headers["content-disposition"];if(t){let e=t.match(/filename="(.+)"/);if(e)return e[1]}return null})(c),h=new Blob([c.data]);if(1===t.length){let e=t[0].name,s=e.substring(0,e.lastIndexOf("."))||e,a=m||"".concat(s).concat(r),n=new File([h],a,{type:l});i.push({originalFile:t[0],convertedFile:n,status:"completed"}),o(0,"completed","".concat(t[0].name," converted successfully"))}else{let r=m||"converted_".concat(e,"_").concat(Date.now(),".zip"),s=new File([h],r,{type:"application/zip"});i.push({originalFiles:t,convertedFile:s,status:"completed",isZip:!0}),t.forEach((e,t)=>{o(t,"completed","All files converted to ZIP")})}}catch(s){console.error("".concat(e," conversion error:"),s);let r="Conversion failed. Please try again.";if(s.response)if(s.response.data instanceof Blob)try{let e=await s.response.data.text();r=JSON.parse(e).detail||r}catch(e){r="Server error: ".concat(s.response.status)}else{var d;r=(null==(d=s.response.data)?void 0:d.detail)||"Server error: ".concat(s.response.status)}else s.request?r="Network error. Please check your connection.":"ECONNABORTED"===s.code&&(r="Request timeout. File might be too large.");t.forEach((e,t)=>{i.push({originalFile:e,status:"failed",error:r}),o(t,"failed","Failed to convert ".concat(e.name,": ").concat(r))})}return i}}},80174:(e,t,r)=>{r.d(t,{Jl:()=>a.A,RI:()=>s.A,TB:()=>n.A,X:()=>i.A,_O:()=>o.A,f5:()=>l.A});var s=r(29763),a=r(60324),l=r(53716),n=r(58901),o=r(70517),i=r(920)},94525:(e,t,r)=>{r.d(t,{A:()=>o});var s=r(98914),a=r(59626),l=r(80174);let n=e=>{let{file:t,onRemove:r,config:a}=e,n=a.icon;return(0,s.jsxs)("div",{className:"flex items-center gap-3 p-3 border-l-4 rounded-r-lg backdrop-blur-sm transition-all duration-300 ".concat((e=>{switch(e){case"ready":return"border-blue-400 bg-blue-500/20";case"processing":return"border-yellow-400 bg-yellow-500/20";case"completed":return"border-green-400 bg-green-500/20";case"failed":return"border-red-400 bg-red-500/20";default:return"border-gray-400 bg-gray-500/20"}})(t.status)),children:[(0,s.jsx)("div",{className:"flex items-center justify-center w-8 h-8 rounded-full bg-gradient-to-br from-cyan-400 to-purple-500 flex-shrink-0",children:(0,s.jsx)(n,{className:"w-4 h-4 text-white drop-shadow-sm"})}),(0,s.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-sm font-semibold text-white truncate drop-shadow-sm",children:t.name}),"processing"===t.status&&(0,s.jsx)("div",{className:"w-3 h-3 border-2 border-yellow-400 border-t-transparent rounded-full animate-spin flex-shrink-0 drop-shadow-sm"}),"completed"===t.status&&(0,s.jsx)("div",{className:"flex items-center justify-center w-5 h-5 bg-gradient-to-br from-green-400 to-emerald-500 rounded-full flex-shrink-0",children:(0,s.jsx)(l.Jl,{className:"w-3 h-3 text-white"})}),"failed"===t.status&&(0,s.jsx)("div",{className:"flex items-center justify-center w-5 h-5 bg-gradient-to-br from-red-400 to-pink-500 rounded-full flex-shrink-0",children:(0,s.jsx)(l.RI,{className:"w-3 h-3 text-white"})})]}),(0,s.jsxs)("div",{className:"flex items-center gap-2 text-xs text-gray-300",children:[(0,s.jsx)("span",{className:"font-medium",children:(e=>{if(0===e)return"0 Bytes";let t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,t)).toFixed(2))+" "+["Bytes","KB","MB","GB"][t]})(t.size)}),t.statusMessage&&(0,s.jsxs)("span",{children:["⢠",t.statusMessage]})]})]}),(0,s.jsx)("button",{onClick:()=>r(t.id),className:"p-2 text-gray-300 hover:text-red-400 transition-all duration-200 hover:bg-red-500/20 rounded-full flex-shrink-0",children:(0,s.jsx)(l.X,{className:"w-3 h-3"})})]})},o=e=>{let{files:t,setFiles:r,results:o,setResults:i,config:d}=e,[c,m]=(0,a.useState)(!1),[h,p]=(0,a.useState)(!1),u=(0,a.useRef)(null),x=e=>{if(!e)return;let t=Array.from(e).map(e=>({id:Date.now()+Math.random(),file:e,name:e.name,size:e.size,status:"ready",statusMessage:""}));r(e=>[...e,...t])},f=e=>{r(t=>t.filter(t=>t.id!==e)),i(t=>t.filter(t=>t.fileId!==e))},g=function(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";r(r=>r.map((r,a)=>a===e?{...r,status:t,statusMessage:s}:r))},b=async()=>{let e=t.filter(e=>"ready"===e.status);if(0!==e.length){p(!0);try{let t=(await d.processor(e.map(e=>e.file),g)).map(e=>({id:Date.now()+Math.random(),...e,downloadUrl:e.convertedFile?URL.createObjectURL(e.convertedFile):null}));i(e=>[...e,...t])}catch(e){console.error("Processing error:",e)}finally{p(!1)}}},v=e=>{if(!e.downloadUrl||!e.convertedFile)return;let t=document.createElement("a");t.href=e.downloadUrl,t.download=e.convertedFile.name,document.body.appendChild(t),t.click(),document.body.removeChild(t)},w=t.filter(e=>"completed"===e.status).length,y=t.filter(e=>"failed"===e.status).length,j=t.filter(e=>"ready"===e.status).length,N=o.filter(e=>"completed"===e.status);return(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{className:"\n rounded-xl p-8 text-center transition-all duration-300 cursor-pointer mb-6 relative overflow-hidden\n ".concat(c?"border-cyan-400 bg-gradient-to-br from-cyan-500/20 to-purple-500/20 scale-105 shadow-2xl":" hover:bg-white/10","\n "),onDragOver:e=>{e.preventDefault(),m(!0)},onDragLeave:()=>m(!1),onDrop:e=>{e.preventDefault(),m(!1),x(e.dataTransfer.files)},onClick:()=>{var e;return null==(e=u.current)?void 0:e.click()},children:[(0,s.jsxs)("div",{className:"relative z-10",children:[(0,s.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-gradient-to-br from-cyan-400 to-purple-500 mb-4 shadow-lg",children:(0,s.jsx)(l._O,{className:"w-8 h-8 text-white drop-shadow-sm"})}),(0,s.jsx)("p",{className:"text-lg font-bold text-white mb-2",children:"Drop files or click to browse"}),(0,s.jsxs)("p",{className:"text-sm text-gray-300 leading-relaxed",children:[(e=>e?"Accepted: ".concat(e.split(",").map(e=>e.trim().toUpperCase()).join(", ")):"Any file type")(d.acceptedTypes),d.maxSize&&(0,s.jsxs)("span",{className:"text-cyan-400",children:[" ⢠Max ",d.maxSize," MB"]}),d.maxFiles&&(0,s.jsxs)("span",{className:"text-purple-400",children:[" ⢠Up to ",d.maxFiles," files"]})]})]}),(0,s.jsx)("input",{ref:u,type:"file",accept:d.acceptedTypes,multiple:1!==d.maxFiles,onChange:e=>x(e.target.files),className:"hidden"})]}),t.length>0&&(0,s.jsxs)("div",{className:"flex items-center justify-between mb-6 p-4 bg-white/10 backdrop-blur-md rounded-xl border border-white/20 shadow-lg",children:[(0,s.jsxs)("div",{className:"flex items-center gap-4 text-sm",children:[(0,s.jsxs)("span",{className:"font-bold text-white",children:[t.length," files"]}),w>0&&(0,s.jsxs)("span",{className:"px-2 py-1 bg-gradient-to-r from-green-400 to-emerald-500 text-white text-xs font-semibold rounded-full",children:["â ",w," completed"]}),y>0&&(0,s.jsxs)("span",{className:"px-2 py-1 bg-gradient-to-r from-red-400 to-pink-500 text-white text-xs font-semibold rounded-full",children:["â ",y," failed"]})]}),(0,s.jsxs)("div",{className:"flex items-center gap-3",children:[(0,s.jsx)("button",{onClick:()=>{r([]),i([])},className:"p-2 text-gray-300 hover:text-red-400 transition-all duration-200 hover:bg-red-500/20 rounded-full",title:"Clear all",children:(0,s.jsx)(l.TB,{className:"cursor-pointer w-4 h-4"})}),!h&&j>0&&(0,s.jsx)("button",{onClick:b,disabled:h,className:"cursor-pointer px-6 py-2 bg-gradient-to-r from-cyan-500 to-purple-600 text-white rounded-lg hover:from-cyan-600 hover:to-purple-700 transition-all duration-300 text-sm font-bold shadow-lg hover:shadow-xl transform hover:scale-105 disabled:opacity-50",children:h?"â³ Convert
1ing...":"â¡ Convert All"}),N.length>0&&(0,s.jsxs)("button",{onClick:()=>{o.filter(e=>"completed"===e.status&&e.downloadUrl).forEach((e,t)=>{setTimeout(()=>v(e),100*t)})},className:"cursor-pointer px-6 py-2 bg-gradient-to-r from-green-500 to-emerald-600 text-white rounded-lg hover:from-green-600 hover:to-emerald-700 transition-all duration-300 text-sm font-bold flex items-center gap-2 shadow-lg hover:shadow-xl transform hover:scale-105",children:[(0,s.jsx)(l.f5,{className:"cursor-pointer w-4 h-4"}),"\uD83D\uDCE5 Download All (",N.length,")"]})]})]}),t.length>0&&(0,s.jsx)("div",{className:"space-y-2 max-h-96 overflow-y-auto pr-2",children:t.map(e=>(0,s.jsx)(n,{file:e,onRemove:f,config:d},e.id))}),o.length>0&&(0,s.jsxs)("div",{className:"mt-6 p-4 bg-white/10 backdrop-blur-md rounded-xl border border-white/20",children:[(0,s.jsx)("h3",{className:"text-white font-bold mb-3",children:"\uD83D\uDCC1 Converted Files"}),(0,s.jsx)("div",{className:"space-y-2",children:o.map(e=>{var t;return(0,s.jsxs)("div",{className:"flex items-center justify-between p-3 bg-white/5 rounded-lg",children:[(0,s.jsxs)("div",{className:"flex-1",children:[(0,s.jsx)("span",{className:"text-white text-sm font-medium",children:(null==(t=e.convertedFile)?void 0:t.name)||"Converted file"}),e.isZip&&(0,s.jsx)("span",{className:"ml-2 px-2 py-1 bg-blue-500/20 text-blue-300 text-xs rounded",children:"ZIP Archive"}),"failed"===e.status&&(0,s.jsx)("p",{className:"text-red-200 text-xs mt-1",children:e.error})]}),"completed"===e.status&&e.downloadUrl&&(0,s.jsxs)("button",{onClick:()=>v(e),className:"px-4 py-2 bg-gradient-to-r from-green-500 to-emerald-600 text-white rounded-lg hover:from-green-600 hover:to-emerald-700 transition-all duration-300 text-xs font-bold flex items-center gap-2",children:[(0,s.jsx)(l.f5,{className:"w-3 h-3"}),"Download"]})]},e.id)})})]})]})}}}]);
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.