import{At as e,B as t,G as n,H as r,J as i,K as a,L as o,Nt as s,Tt as c,U as l,W as u,Y as d,Z as f,bt as p,ct as m,gt as h,j as g,kt as _,n as v,nt as y,ot as b,ut as x,vt as S,xt as C}from"./vue-B11_pI9F.js";import{g as w,h as ee,u as T,v as te,y as E}from"./const-BjfH-jZe.js";import{t as D}from"./_plugin-vue_export-helper-B67ILkmu.js";import{d as O,f as k,m as A,p as j,s as M,t as N,u as P}from"./useMessage-Cpv2N0cC.js";import{L as F,a as I,n as L,v as R}from"./index-jtNAhQeK.js";import{n as z,r as B,t as V}from"./Tabs-BfEIxvgH.js";import{at as ne,it as H,nt as re,ot as U,q as W,rt as G,tt as K}from"./ThumbnailSlide-COLdjDXw.js";import{t as q}from"./kimi.button-DiBbOOiZ.js";import{r as J}from"./dom-CWEl93tC.js";import{t as ie}from"./Loading-DTHKpUX9.js";import{a as Y,c as ae,i as oe,n as se,o as ce,r as le}from"./slideTransition-qR4hDwBa.js";import{r as ue}from"./menuExclusive-DWJqMbvd.js";import{t as de}from"./PopoverMenu-D6aS9gI3.js";import{t as fe}from"./pptdExportSignature-DMnND2uP.js";var pe=[`cx`,`cy`,`r`],me=[`cx`,`cy`,`r`,`stroke-dasharray`,`stroke-dashoffset`,`transform`],X=54,Z=5,he=`#f0f0f0`,ge=`#1890ff`,_e=D(f({__name:`ExportProgress`,props:{progress:{}},setup(e){let t=e,n=r(()=>(X-Z)/2),i=r(()=>X/2),o=r(()=>2*Math.PI*n.value),s=r(()=>o.value*(1-t.progress/100));return(e,t)=>(m(),a(`svg`,{width:X,height:X,class:`svg-progress`},[l(`circle`,{cx:i.value,cy:i.value,r:n.value,stroke:he,"stroke-width":Z,fill:`none`},null,8,pe),l(`circle`,{cx:i.value,cy:i.value,r:n.value,stroke:ge,"stroke-width":Z,fill:`none`,"stroke-dasharray":o.value,"stroke-dashoffset":s.value,"stroke-linecap":`round`,transform:`rotate(-90 ${i.value} ${i.value})`},null,8,me)]))}}),[[`__scopeId`,`data-v-ec2247e5`]]),ve=[`disabled`,`aria-checked`],ye={class:`ppt-switch-button`},be=D(f({__name:`Switch`,props:y({disabled:{type:Boolean},loading:{type:Boolean},size:{default:`medium`}},{value:{type:Boolean,default:!1},valueModifiers:{}}),emits:[`update:value`],setup(t){let i=t,o=h(t,`value`),s=r(()=>!i.disabled&&!i.loading),c=()=>{s.value&&(o.value=!o.value)};return(r,i)=>(m(),a(`button`,{type:`button`,class:e([`ppt-switch`,[t.size,{checked:o.value,disabled:t.disabled,loading:t.loading}]]),disabled:t.disabled,"aria-checked":o.value,role:`switch`,onClick:c},[l(`span`,ye,[t.loading?(m(),u(ie,{key:0,class:`ppt-switch-loading`})):n(``,!0)])],10,ve))}}),[[`__scopeId`,`data-v-631badcb`]]),xe=k(),Se={description:`PowerPoint Presentation`,accept:{"application/vnd.openxmlformats-officedocument.presentationml.presentation":[`.pptx`]}},Ce={description:`ZIP Archive`,accept:{"application/zip":[`.zip`]}},we=typeof window<`u`&&`showSaveFilePicker`in window,Q;async function Te(e,t){let n;try{n=await window.showSaveFilePicker?.({suggestedName:e,...t})}catch(e){if(e?.name===`AbortError`||String(e).includes(`aborted`))return;throw e}return n}var Ee=e=>({fileName:e.name,write:async t=>{let n=await e.createWritable();await n.write(t),await n.close()}});async function De(e,t){let n=await Te(e,t);if(n)return Q=Ee(n),Q}function Oe(){return Q}function ke(){Q=void 0}var Ae=D(f({__name:`IconTooltip`,props:{content:{}},setup(e){return(t,n)=>(m(),u(_(J),{content:e.content},{trigger:p(()=>[d(_(R),{class:`icon-tooltip-icon`,name:`Info`,size:`14`})]),_:1},8,[`content`]))}}),[[`__scopeId`,`data-v-b41c9ea0`]]),je={class:`tab-content between`},Me={class:`download-content`},Ne={key:0,class:`download-title`},Pe={class:`form-item-group`},Fe={class:`form-item`},Ie={class:`radio-group`},Le=[`onClick`],Re={class:`form-item-label`},ze={class:`form-item-label`},Be={class:`slide-transition-menu-trigger`},Ve={key:0,class:`form-item`},He={class:`storage-picker-text`},Ue={class:`form-submit`},We=D(f({__name:`DownloadTab`,props:{hasTitle:{type:Boolean}},emits:[`close`,`progress`],setup(o,{emit:u}){let f=u,{exportPPTX:h,exportImageToZip:g}=P(),{pages:v,pageOrder:y,meta:C}=U(),{exporting:D}=W(),k=N(),{t:A}=F(),M=we&&!T,R=[{label:A(`common.name`),value:`ppt`},{label:A(`exportDialog.image`),value:`image`}],z=c(C.value.mode===O.DESIGN?`image`:`ppt`),B=c(!0),V=c(se),H=c(Oe()?.fileName),G=r(()=>y.value.some(e=>v.value.get(e)?.elements.some(e=>e.elementType===`text`))),K=()=>{let e=C.value.title||`未命名演示文稿`;return z.value===`ppt`?`${e}.pptx`:`${e}.zip`},J=r(()=>[{label:A(Y.none),value:`none`},`divider`,...ae.map(e=>({label:A(Y[e]),value:e})),`divider`,{label:A(Y.random),value:`random`}]),ie=r(()=>A(Y[V.value])),pe=e=>{let t=oe(e);t!==V.value&&(V.value=t,ne(le,t),I(`msh_nppt_screen_effect_switch`,{effect:t,from:`export`}))},me=()=>[z.value===`ppt`?Se:Ce];S(z,()=>{ke(),H.value=void 0});let X=async()=>{if(!(D.value||!M))try{let e=await De(K(),{types:me()});e&&(H.value=e.fileName)}catch(e){L(`选择下载路径失败`,e)}},Z=()=>{let e=Oe();if(e)return(t,n)=>e.write(n);let t=z.value===`ppt`;return(e,n)=>t?j(n,e):(0,xe.saveAs)(n,e)},he=async()=>{if(D.value)return;te&&k.info(A(`exportDialog.wechatTip`)),E&&k.info(A(`exportDialog.safariTip`)),(w||ee)&&k.info(A(`exportDialog.mobileTip`));let e=Date.now(),t=z.value===`ppt`,n=t?`pptx`:`image`,r=!!Oe(),i=A(t?`exportDialog.exportPptxFailed`:`exportDialog.exportImageFailed`);I(`msh_nppt_export_start`,{file_type:n,with_picker:r});try{let i=Z();e=Date.now(),f(`progress`,0),t?await h({embedFonts:G.value?B.value:!1,slideTransition:ce(V.value)},e=>{f(`progress`,e)},i):await g(e=>{f(`progress`,e)},i),I(`msh_nppt_export_end`,{file_type:n,with_picker:r,user_activation:navigator.userActivation?.isActive,is_success:!0,export_duration:Date.now()-e}),T?k.success(A(`exportDialog.downloadStarted`),{duration:10*1e3}):k.success(A(`exportDialog.downloadStartTip`),{duration:10*1e3}),f(`close`)}catch(t){D.value=!1,f(`progress`,0),I(`msh_nppt_export_end`,{file_type:n,with_picker:r,user_activation:navigator.userActivation?.isActive,is_success:!1,error_reason:t?.message??`未知错误`,export_duration:Date.now()-e}),L(`导出失败`,t);let a=t instanceof fe?A(`exportDialog.exportPptxSignFailed`):i;k.error(a,{duration:10*1e3})}};return b(()=>{V.value=oe(re(le))}),(r,c)=>(m(),a(`div`,je,[l(`div`,Me,[o.hasTitle?(m(),a(`div`,Ne,s(_(A)(`exportDialog.downloadTitle`)),1)):n(``,!0),l(`div`,Pe,[l(`div`,Fe,[l(`div`,null,s(_(A)(`exportDialog.outputFormat`)),1),l(`div`,Ie,[(m(),a(t,null,x(R,t=>l(`div`,{key:t.value,class:e([`radio-group-item`,{active:z.value===t.value}]),onClick:e=>z.value=t.value},s(t.label),11,Le)),64))])]),l(`div`,{class:e([`form-item`,{"is-disabled":z.value!==`ppt`||!G.value}])},[l(`div`,Re,[i(s(_(A)(`exportDialog.fontEmbed`))+` `,1),d(Ae,{content:_(A)(`exportDialog.fontEmbedTooltip`)},null,8,[`content`])]),d(be,{value:B.value,"onUpdate:value":c[0]||(c[0]=e=>B.value=e),size:`large`,disabled:z.value!==`ppt`||!G.value},null,8,[`value`,`disabled`])],2),l(`div`,{class:e([`form-item`,{"is-disabled":z.value!==`ppt`}])},[l(`div`,ze,[i(s(_(A)(`exportDialog.slideTransition`))+` `,1),d(Ae,{content:_(A)(`exportDialog.slideTransitionTooltip`)},null,8,[`content`])]),d(de,{class:`slide-transition-menu`,"content-class":`slide-transition-menu-content`,disabled:z.value!==`ppt`,"float-options":{teleport:!0,placement:`bottom`,align:`end`,offset:6,withinWindow:!0,zIndex:300}},{trigger:p(()=>[l(`span`,Be,s(ie.value),1)]),popover:p(()=>[d(ue,{class:`slide-transition-menu-list`,"menu-list":J.value,"active-menu":V.value,onClick:pe},null,8,[`menu-list`,`active-menu`])]),_:1},8,[`disabled`])],2),_(T)?n(``,!0):(m(),a(`div`,Ve,[l(`div`,null,s(_(A)(`exportDialog.storageTo`)),1),d(_(q),{type:`primary`,icon:`Folder`,size:`medium`,class:`storage-picker`,disabled:!_(M)||_(D),title:H.value,onClick:X},{default:p(()=>[l(`span`,He,s(H.value||_(A)(`exportDialog.defaultDownloadPath`)),1)]),_:1},8,[`disabled`,`title`])]))]),l(`div`,Ue,[d(_(q),{type:`primary`,onClick:c[1]||(c[1]=e=>he())},{default:p(()=>[i(s(_(A)(`exportDialog.download`)),1)]),_:1})])])]))}}),[[`__scopeId`,`data-v-40ee0444`]]),Ge=`https://accounts.google.com/gsi/client`,Ke=`https://www.googleapis.com/upload/drive/v3/files`,qe=[`https://www.googleapis.com/auth/drive.file`],Je=`982000733428-dgfit79c4gcoed5bbnddghe7899lf52t.apps.googleusercontent.com`,$=void 0;function Ye(e){return new Promise((t,n)=>{if(document.querySelector(`script[src="${e}"]`)){t();return}let r=document.createElement(`script`);r.src=e,r.async=!0,r.onload=()=>t(),r.onerror=()=>n(Error(`Failed to load script: ${e}`)),document.head.appendChild(r)})}async function Xe(){$=$??Ye(Ge),$.catch(()=>$=void 0),await $}async function Ze(e){return K(`googleSlidesTicket-expiry`)||new Promise((t,n)=>{google.accounts.oauth2.initTokenClient({client_id:e,scope:qe.join(` `),callback:e=>{if(e.error){n(Error(`${e.error}: ${e.error_description??``}`));return}H(`googleSlidesTicket-expiry`,e.access_token),t(e.access_token)},error_callback:e=>{n(Error(e.message||`OAuth token request failed`))}}).requestAccessToken()})}async function Qe(e,t){await Xe();let n=await Ze(Je),r={name:t.title||`Kimi Presentation ${new Date().toISOString()}`,mimeType:`application/vnd.google-apps.presentation`},i=new FormData;i.append(`metadata`,new Blob([JSON.stringify(r)],{type:`application/json`})),i.append(`file`,e);let a=await fetch(`${Ke}?uploadType=multipart&fields=id`,{method:`POST`,headers:{Authorization:`Bearer ${n}`},body:i});if(!a.ok){a.status===401&&G(`googleSlidesTicket-expiry`);let e=await a.text();throw Error(`Google Drive upload failed (${a.status}): ${e}`)}let{id:o}=await a.json();return{fileId:o,url:`https://docs.google.com/presentation/d/${o}/edit`}}var $e={class:`tab-content`},et={class:`center-tips`},tt={class:`form-submit center`},nt=D(f({__name:`GoogleSlidesTab`,emits:[`close`,`progress`],setup(e,{emit:t}){let n=t,{exportPPTXBlob:o}=P(),{exporting:u,exportingToGoogle:f}=W(),{pages:h,pageOrder:g,meta:v}=U(),{t:y}=F(),b=N(),x=c(!0),S=c(!0),C=r(()=>g.value.some(e=>h.value.get(e)?.elements.some(e=>e.elementType===`text`))),w=async()=>{if(f.value||u.value)return;u.value=!0,n(`progress`,0);let e=Date.now();I(`msh_nppt_export_start`,{file_type:`pptx`,target:`googleSlides`});let t=null;try{t=await o({embedFonts:C.value?x.value:!1,slideTransition:S.value},e=>{n(`progress`,e)})}catch(e){b.error(y(e instanceof fe?`exportDialog.exportPptxSignFailed`:`exportDialog.exportPptxFailed`))}if(n(`close`),!t){u.value=!1,I(`msh_nppt_export_end`,{is_success:!1,file_type:`pptx`,target:`googleSlides`,export_duration:0,error_reason:`前置export 失败`});return}f.value=!0;let r=b.loading(y(`exportDialog.exportingToGoogle`));try{let n=await Qe(t,{title:v.value.title||`Kimi Presentation`});n?.url&&window.open(n.url,`_blank`),I(`msh_nppt_export_end`,{is_success:!0,file_type:`pptx`,target:`googleSlides`,export_duration:Date.now()-e})}catch(t){let n=t.message;n!==`Popup window closed`&&b.error(y(`exportDialog.exportToGoogleNetworkError`)),I(`msh_nppt_export_end`,{is_success:!1,file_type:`pptx`,target:`googleSlides`,error_reason:n,export_duration:Date.now()-e})}f.value=!1,u.value=!1,b.close(r)};return(e,t)=>(m(),a(`div`,$e,[d(_(R),{name:`WebsiteUrl`,class:`main-icon`,width:32}),l(`div`,et,s(_(y)(`exportDialog.exportToGoogleTips`)),1),l(`div`,tt,[d(_(q),{type:`primary`,disabled:_(f)||_(u),onClick:w},{default:p(()=>[i(s(_(y)(`exportDialog.exportToGoogle`)),1)]),_:1},8,[`disabled`])])]))}}),[[`__scopeId`,`data-v-a8e4c6a0`]]),rt={class:`export-dialog-loading`},it={class:`export-dialog-loading-text`},at=D(f({__name:`ExportDialog`,emits:[`close`],setup(f,{emit:h}){let y=h,{isOverseas:x}=A(),{exporting:w,isEditable:ee}=W(),{functional:te}=M(),{t:E}=F(),D=N(),O=c(0),k=c(!1),j=r(()=>w.value||O.value>0),P=r(()=>te.value.share),L=r(()=>x.value&&!T),R=(e=!1)=>{j.value&&!e||(k.value=!1)};S(ee,e=>{e||R(!0)});let ne=()=>{R()},H={ignore:[`.slide-transition-menu-content`,`.export-dialog-trigger`]},re=S(O,async e=>{e===99&&(re(),await new Promise(e=>setTimeout(e,10*1e3)),w.value&&k.value&&(R(!0),D.error(E(`exportDialog.pendingTip`)),I(`msh_nppt_export_pending`,{})))}),U=()=>{y(`close`)},G=e=>{I(`msh_nppt_export_tab_click`,{type:e,is_oversea:x.value},`type`)},K=c(`download`),q=r(()=>L.value),J=r(()=>K.value===`download`&&j.value);return S(K,e=>{G(e===`google-slides`?`googleSlides`:`download`)}),S(L,e=>{!e&&K.value===`google-slides`&&(K.value=`download`)}),b(()=>{if(!ee.value){y(`close`);return}k.value=!0,I(`msh_nppt_export_show`,{is_oversea:x.value},!0)}),(r,c)=>(m(),a(t,null,[d(g,{name:`export-mask-fade`,appear:``},{default:p(()=>[k.value&&J.value?(m(),a(`div`,{key:0,class:e([`export-mask`,{exporting:J.value}])},null,2)):n(``,!0)]),_:1}),d(g,{name:`export-dialog-fade`,appear:``,onAfterLeave:U},{default:p(()=>[k.value?C((m(),a(`div`,{key:0,class:e([`export-dialog`,{visible:k.value}])},[C(l(`div`,rt,[d(_e,{progress:O.value},null,8,[`progress`]),l(`div`,it,s(_(E)(`exportDialog.loading`))+` `+s(O.value)+`%`,1)],512),[[o,j.value]]),C(d(B,{current:K.value,"onUpdate:current":c[4]||(c[4]=e=>K.value=e),class:e([`export-tabs auto-rtl`,{"without-tabs":!q.value}])},{default:p(()=>[q.value?(m(),u(V,{key:0,class:`tabs`,"tab-style":`switch`},{default:p(()=>[d(z,{name:`download`,class:`tab`},{default:p(()=>[i(s(_(E)(`exportDialog.tabDownload`)),1)]),_:1}),L.value?(m(),u(z,{key:0,name:`google-slides`,class:`tab`},{default:p(()=>[i(s(_(E)(`exportDialog.tabGoogleSlides`)),1)]),_:1})):n(``,!0)]),_:1})):n(``,!0),d(z,{name:`download`},{default:p(()=>[d(We,{class:`common-height`,"has-title":!P.value,onClose:c[0]||(c[0]=e=>R(!0)),onProgress:c[1]||(c[1]=e=>O.value=e)},null,8,[`has-title`])]),_:1}),L.value?(m(),u(z,{key:1,name:`google-slides`},{default:p(()=>[d(nt,{class:`common-height`,onClose:c[2]||(c[2]=e=>R(!0)),onProgress:c[3]||(c[3]=e=>O.value=e)})]),_:1})):n(``,!0)]),_:1},8,[`current`,`class`]),[[o,!j.value]])],2)),[[_(v),[ne,H]]]):n(``,!0)]),_:1})],64))}}),[[`__scopeId`,`data-v-66035257`]]);export{at as default};