const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./lib-DVPOsS0g.js","./package-Bop5TfAT.js","./runtime-core.esm-bundler-DO-WTVbd.js","./package-OvxnQO7z.css","./__vite-browser-external-BZdVR8v7.js"])))=>i.map(i=>d[i]);
import{M as e,h as t,r as n}from"./package-Bop5TfAT.js";import{D as r,J as i,X as a,_ as o,b as s,f as c,g as l,h as u,i as d,l as f,o as p,r as m,s as h,t as g,y as _}from"./runtime-core.esm-bundler-DO-WTVbd.js";import{t as v}from"./nestedRender-BAYFA7cb.js";var y={class:`email-viewer`},b={class:`email-header`},x={key:0,class:`email-meta`},S={key:0},C={key:0,class:`email-body`},w={class:`email-sidebar`},T={class:`body-tabs`},E=[`disabled`,`onClick`],D={class:`attachment-panel`},O={class:`attachment-title`},ee=[`onClick`],te={class:`message-panel`},k=[`srcdoc`],A={key:1,class:`email-text`},j={key:2,class:`email-text`},M={key:3,class:`attachment-preview`},N={class:`attachment-preview-head`},P={key:1,class:`email-state`},F={key:2,class:`email-error`},I=t(c({__name:`EmailViewer`,props:{data:{},type:{},filename:{},options:{}},setup(t){let c=t,I=r(null),L=r(!0),R=r(`正在解析邮件...`),z=r(``),B=r(`html`),V=r(null),H=r(null),U=new Map,W=[],G,K=e=>{if(!Number.isFinite(e)||e<0)return`-`;if(e<1024)return`${e} B`;let t=e/1024/1024;return t>=1?`${t.toFixed(+(t<10))} MB`:`${(e/1024).toFixed(+(e<10*1024))} KB`},q=e=>e?(Array.isArray(e)?e:[e]).flatMap(e=>{let t=e;return t.group?q(t.group):[{name:t.name||``,address:t.address||t.email||``}]}):[],J=e=>e.map(e=>e.name&&e.address?`${e.name} <${e.address}>`:e.address||e.name||``).filter(Boolean).join(`, `),Y=m(()=>{let e=I.value?.html||``;if(!e)return``;let t=e;return U.forEach((e,n)=>{t=t.replace(RegExp(`cid:${n.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}`,`gi`),e)}),`
${t}`}),X=m(()=>[{key:`html`,label:`HTML`,disabled:!I.value?.html},{key:`text`,label:`正文`,disabled:!I.value?.text},{key:`headers`,label:`头信息`,disabled:!I.value?.headers}]),Z=async e=>{if(e instanceof ArrayBuffer)return e;if(e instanceof Uint8Array){let t=new Uint8Array(e.byteLength);return t.set(e),t.buffer}return Z(new TextEncoder().encode(e))},Q=async()=>{let e=await(await n(async()=>{let{default:e}=await import(`./postal-mime-kkzCFkih.js`);return{default:e}},[],import.meta.url)).default.parse(c.data,{attachmentEncoding:`arraybuffer`,maxNestingDepth:24,maxHeadersSize:2*1024*1024}),t=e.attachments.map((e,t)=>{let n=typeof e.content==`string`?e.content.length:e.content.byteLength,r=e.filename||`attachment-${t+1}`;return{id:`${t}-${r}`,name:r,mimeType:e.mimeType,size:n,contentId:e.contentId,load:()=>Z(e.content)}});return await Promise.all(t.map(async e=>{if(!e.contentId||!e.mimeType?.startsWith(`image/`))return;let t=await e.load(),n=URL.createObjectURL(new Blob([t],{type:e.mimeType}));W.push(n),U.set(e.contentId.replace(/[<>]/g,``),n)})),{kind:`eml`,subject:e.subject||c.filename,from:q(e.from),to:q(e.to),cc:q(e.cc),date:e.date,text:e.text,html:e.html,headers:e.headerLines?.map(e=>e.line).join(`
`)||e.headers?.map(e=>`${e.originalKey}: ${e.value}`).join(`
`),attachments:t}},ne=async()=>{let t=await n(()=>import(`./lib-DVPOsS0g.js`).then(t=>e(t.default,1)),__vite__mapDeps([0,1,2,3,4]),import.meta.url),r=new(t.default?.default||t.default)(c.data),i=r.getFileData(),a=(i.attachments||[]).map((e,t)=>{let n=e.fileName||e.fileNameShort||e.name||`attachment-${t+1}${e.extension||``}`;return{id:`${t}-${n}`,name:n,mimeType:`application/octet-stream`,size:e.contentLength||e.size||0,contentId:e.pidContentId,async load(){return Z(r.getAttachment(e).content)}}});return{kind:`msg`,subject:i.subject||c.filename,from:q({name:i.senderName,address:i.senderEmail}),to:q(i.recipients||[]).filter(e=>e.name||e.address),cc:[],date:i.messageDeliveryTime||i.clientSubmitTime||i.creationTime,text:i.body,html:i.html||``,headers:i.headers,attachments:a}},re=async()=>{L.value=!0,z.value=``;try{I.value=c.type===`msg`?await ne():await Q(),B.value=I.value.html?`html`:I.value.text?`text`:`headers`}catch(e){console.error(e),z.value=e instanceof Error?e.message:String(e)}finally{L.value=!1}},$=()=>{G?.unmount?.(),G=void 0;let e=H.value;if(e)for(;e.firstChild;)e.removeChild(e.firstChild)},ie=async e=>{V.value=e,L.value=!0,R.value=`正在打开附件 ${e.name}...`;try{let t=await e.load();await u(),$();let n=H.value;if(!n)return;let r=document.createElement(`div`);r.className=`email-attachment-render`,n.appendChild(r),G=await v(t,e.name.includes(`.`)?e.name.slice(e.name.lastIndexOf(`.`)+1).toLowerCase():`txt`,r,{filename:e.name,options:c.options})}catch(e){console.error(e),z.value=e instanceof Error?e.message:String(e)}finally{L.value=!1,R.value=`正在解析邮件...`}},ae=async e=>{let t=await e.load(),n=URL.createObjectURL(new Blob([t],{type:e.mimeType||`application/octet-stream`}));W.push(n);let r=document.createElement(`a`);r.href=n,r.download=e.name,document.body.appendChild(r),r.click(),r.remove()};return o(()=>{re()}),l(()=>{$(),W.forEach(e=>URL.revokeObjectURL(e))}),(e,n)=>(_(),h(`section`,y,[d(`header`,b,[d(`span`,null,a(I.value?.kind?.toUpperCase()||t.type.toUpperCase()),1),d(`h2`,null,a(I.value?.subject||t.filename),1),I.value?(_(),h(`div`,x,[d(`p`,null,[n[1]||=d(`strong`,null,`发件人`,-1),f(a(J(I.value.from)||`-`),1)]),d(`p`,null,[n[2]||=d(`strong`,null,`收件人`,-1),f(a(J(I.value.to)||`-`),1)]),I.value.cc.length?(_(),h(`p`,S,[n[3]||=d(`strong`,null,`抄送`,-1),f(a(J(I.value.cc)),1)])):p(``,!0),d(`p`,null,[n[4]||=d(`strong`,null,`时间`,-1),f(a(I.value.date||`-`),1)])])):p(``,!0)]),I.value?(_(),h(`div`,C,[d(`aside`,w,[d(`div`,T,[(_(!0),h(g,null,s(X.value,e=>(_(),h(`button`,{key:e.key,type:`button`,disabled:e.disabled,class:i({active:B.value===e.key}),onClick:t=>B.value=e.key},a(e.label),11,E))),128))]),d(`section`,D,[d(`div`,O,[n[5]||=d(`strong`,null,`附件`,-1),d(`span`,null,a(I.value.attachments.length),1)]),(_(!0),h(g,null,s(I.value.attachments,e=>(_(),h(`button`,{key:e.id,type:`button`,class:i([`attachment-item`,{active:V.value?.id===e.id}]),onClick:t=>ie(e)},[d(`span`,null,a(e.name.split(`.`).pop()?.toUpperCase()||`FILE`),1),d(`strong`,null,a(e.name),1),d(`em`,null,a(K(e.size)),1)],10,ee))),128))])]),d(`main`,te,[B.value===`html`&&Y.value?(_(),h(`iframe`,{key:0,class:`email-html`,sandbox:``,srcdoc:Y.value},null,8,k)):B.value===`text`?(_(),h(`pre`,A,a(I.value.text),1)):(_(),h(`pre`,j,a(I.value.headers),1)),V.value?(_(),h(`section`,M,[d(`div`,N,[d(`strong`,null,a(V.value.name),1),d(`button`,{type:`button`,onClick:n[0]||=e=>ae(V.value)},`下载附件`)]),d(`div`,{ref_key:`attachmentTarget`,ref:H,class:`attachment-target`},null,512)])):p(``,!0)])])):p(``,!0),L.value?(_(),h(`div`,P,[n[6]||=d(`span`,null,null,-1),d(`strong`,null,a(R.value),1)])):p(``,!0),z.value?(_(),h(`div`,F,[n[7]||=d(`strong`,null,`邮件预览提示`,-1),d(`p`,null,a(z.value),1)])):p(``,!0)]))}}),[[`__scopeId`,`data-v-0989d798`]]);export{I as default};