@acedatacloud/nexior 3.329.21 → 3.329.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/dist/assets/{ApiCodeButton-BJQ_-Mv-.js → ApiCodeButton-CM7BtdyA.js} +1 -1
  2. package/dist/assets/{Artifacts-CVItghvu.js → Artifacts-CRKtRUR4.js} +1 -1
  3. package/dist/assets/{AskUserQuestionCard-M1-8YPxc.js → AskUserQuestionCard-CwL7xXjo.js} +1 -1
  4. package/dist/assets/{AudioPreview-Dw-NgOLz.js → AudioPreview-CARb_UdQ.js} +1 -1
  5. package/dist/assets/{Auth-BTNNqa85.js → Auth-Cg2Q1npF.js} +1 -1
  6. package/dist/assets/{Bare-c1-4poM3.js → Bare-BeXTtoHA.js} +1 -1
  7. package/dist/assets/{BotPlaceholder-D7BqsbjS.js → BotPlaceholder-DB2Xrk_m.js} +1 -1
  8. package/dist/assets/{BottomFooter-L49II5Cy.js → BottomFooter-D_XD319_.js} +1 -1
  9. package/dist/assets/{Callback-BJigfVcK.js → Callback-Bvx3_F1p.js} +1 -1
  10. package/dist/assets/{CodeSnippet-N1o8TBhX.js → CodeSnippet-D2hz10S4.js} +1 -1
  11. package/dist/assets/{Console-D_hah-iD.js → Console-J1rGyvVt.js} +1 -1
  12. package/dist/assets/{Consumption-CVNKq_zt.js → Consumption-Dd9pOXfP.js} +1 -1
  13. package/dist/assets/{Conversation-BZ6_sXyO.js → Conversation-BCMSGxO6.js} +1 -1
  14. package/dist/assets/{Conversation-CCxQuMnZ.js → Conversation-BWsl2jgO.js} +1 -1
  15. package/dist/assets/{CopyToClipboard-Dj7UuZZf.js → CopyToClipboard-CWAv9J74.js} +1 -1
  16. package/dist/assets/{Detail-DwiNm0rC.js → Detail-D0Zq1G-Q.js} +2 -2
  17. package/dist/assets/{Extra-Dv-u0rdf.js → Extra-Cpvwb1Ts.js} +1 -1
  18. package/dist/assets/{FilePreview-C-kWuqQI.js → FilePreview-CN4Fx4Xi.js} +1 -1
  19. package/dist/assets/{Hailuo-TVNy8uzL.js → Hailuo-B55aJgWD.js} +1 -1
  20. package/dist/assets/{History-BkN75k2f.js → History-BzbCvdH3.js} +1 -1
  21. package/dist/assets/{ImagePreview-D5gMOtPF.js → ImagePreview-B1i4A6CJ.js} +1 -1
  22. package/dist/assets/{ImageWrapper-B5OeDjs-.js → ImageWrapper-BIYaLgtn.js} +1 -1
  23. package/dist/assets/{Index-C8jeZiXX.js → Index-AwLaIdQF.js} +1 -1
  24. package/dist/assets/{Index-jIjXqlVX.js → Index-B8TxIo3r.js} +1 -1
  25. package/dist/assets/{Index-Doap3hDP.js → Index-BC0lr159.js} +1 -1
  26. package/dist/assets/{Index-DuU6TVOM.js → Index-BCDKZC0V.js} +1 -1
  27. package/dist/assets/{Index-CO-H_Q81.js → Index-BHIYAhge.js} +1 -1
  28. package/dist/assets/{Index-C1q3wOrq.js → Index-BQG5nA37.js} +1 -1
  29. package/dist/assets/{Index-DPAvpmH6.js → Index-BflO9Y0K.js} +1 -1
  30. package/dist/assets/{Index-585_Do9y.js → Index-BfoVSZ8p.js} +1 -1
  31. package/dist/assets/{Index-BtwCP1fi.js → Index-BifuRPyV.js} +1 -1
  32. package/dist/assets/{Index-DQPiqg-K.js → Index-C3_2lYu0.js} +1 -1
  33. package/dist/assets/{Index-BeBZAnLz.js → Index-CJVmSu6P.js} +1 -1
  34. package/dist/assets/{Index-CeTKt-_z.js → Index-CThaj-Js.js} +1 -1
  35. package/dist/assets/{Index-CoMJb5W9.js → Index-CoMTIQzd.js} +1 -1
  36. package/dist/assets/{Index-CXqdSfST.js → Index-Cp8meWs6.js} +1 -1
  37. package/dist/assets/{Index-Duvrwjbr.js → Index-CtK6pzmD.js} +1 -1
  38. package/dist/assets/{Index-BPLDKufK.js → Index-Cvc8wGpC.js} +1 -1
  39. package/dist/assets/{Index-CGkvt-vt.js → Index-D-R5FJgI.js} +1 -1
  40. package/dist/assets/{Index-D38gUkL6.js → Index-D2CnGtXr.js} +1 -1
  41. package/dist/assets/{Index-DZdQUCuL.js → Index-D7IIngZK.js} +1 -1
  42. package/dist/assets/{Index-DMq345jk.js → Index-D8SBn6Zb.js} +1 -1
  43. package/dist/assets/{Index-De_Ei1OR.js → Index-DDTlhOe4.js} +1 -1
  44. package/dist/assets/{Index-DQki_7yz.js → Index-DegwBxRC.js} +1 -1
  45. package/dist/assets/{Index-BXmYxLVr.js → Index-DsWNj7cy.js} +1 -1
  46. package/dist/assets/{Index-BUixJbfE.js → Index-Q9MCxEzK.js} +1 -1
  47. package/dist/assets/{Index-CsQ0JXpG.js → Index-VxeVaPox.js} +1 -1
  48. package/dist/assets/{Index-hm_PTab7.js → Index-clfVEv_U.js} +1 -1
  49. package/dist/assets/{Index-B4xOxBlJ.js → Index-lGaVTrtE.js} +1 -1
  50. package/dist/assets/{Index-ZEnF-v2Q.js → Index-luLvaEO9.js} +1 -1
  51. package/dist/assets/{Index-D1sB0-C7.js → Index-mpMj_93E.js} +1 -1
  52. package/dist/assets/{Invitees-CKf9OHUG.js → Invitees-CPnQOW3N.js} +1 -1
  53. package/dist/assets/{List-DbFe3lTx.js → List-BflVw3p1.js} +1 -1
  54. package/dist/assets/{List-DD8hVYV-.js → List-CjtdQovO.js} +1 -1
  55. package/dist/assets/{List-CiP0luGB.js → List-gRJ7ZWKY.js} +1 -1
  56. package/dist/assets/{LocalTools-DaL85bP2.js → LocalTools-BhN6ntS1.js} +1 -1
  57. package/dist/assets/{LocalTools-BcM36WuU.js → LocalTools-WlC8Lv_M.js} +1 -1
  58. package/dist/assets/{Main-CEAuc5Dg.js → Main-CNccGyNE.js} +1 -1
  59. package/dist/assets/{Message-01TO4KJb.js → Message-BYeGOAMv.js} +1 -1
  60. package/dist/assets/{Model-CDDVBnqt.js → Model-Bqunk6Wv.js} +1 -1
  61. package/dist/assets/{Navigator-0tmkQYlG.js → Navigator-50GkEeQX.js} +3 -3
  62. package/dist/assets/{NotFound-C6Ee3hjX.js → NotFound-BRdmXF_c.js} +1 -1
  63. package/dist/assets/{Pay-By8RnYVM.js → Pay-K_5n15Fb.js} +1 -1
  64. package/dist/assets/{Player-Bt3VEHjp.js → Player-CazTza7_.js} +1 -1
  65. package/dist/assets/{PromptTextarea-D0nC7f4W.js → PromptTextarea-CQd8dTtu.js} +1 -1
  66. package/dist/assets/{RealtimeCall-DwOv_1OT.js → RealtimeCall-CLvjsh3h.js} +1 -1
  67. package/dist/assets/{ScheduledTasks-CYIJRm0B.js → ScheduledTasks-D6C_DsJ_.js} +1 -1
  68. package/dist/assets/{Status-Du6AiNOh.js → Status-DbnddWGa.js} +1 -1
  69. package/dist/assets/{Subscribe-DnhEXQgf.js → Subscribe-CeoNYMdb.js} +1 -1
  70. package/dist/assets/{TabSwitcher-CBlBah8Q.js → TabSwitcher-BAchPb6_.js} +1 -1
  71. package/dist/assets/{Tts-DDzFkd7l.css → Tts-BS6I3lCP.css} +1 -1
  72. package/dist/assets/{Tts-Cwj7_6Kq.js → Tts-rBrnMH2j.js} +1 -1
  73. package/dist/assets/{VideoPlayer-CPZmeDkt.js → VideoPlayer-ePiO9_gl.js} +1 -1
  74. package/dist/assets/{alert-C_L8fDII.js → alert-CjWvi_14.js} +1 -1
  75. package/dist/assets/{avatar-CBZ6k50G.js → avatar-GFnqKFYb.js} +1 -1
  76. package/dist/assets/{basic-pHBkAAai.js → basic-DvWd_mxi.js} +1 -1
  77. package/dist/assets/{chat-B5Xbnbg-.js → chat-DmPkkqkA.js} +1 -1
  78. package/dist/assets/{codingBridge-DQqW1lgw.js → codingBridge-CluqzJ7y.js} +1 -1
  79. package/dist/assets/{codingBridgeNotify-k6wJ-mt1.js → codingBridgeNotify-DpItCFmk.js} +2 -2
  80. package/dist/assets/{collapse-BKXjoxHj.js → collapse-ZWZHjLCZ.js} +1 -1
  81. package/dist/assets/{createTaskActions-CuzNk5_V.js → createTaskActions-DqU3jMy_.js} +1 -1
  82. package/dist/assets/{date-picker-D4jF2T4b.js → date-picker-DU7iVhlF.js} +1 -1
  83. package/dist/assets/{digitalhuman-DKcxmMC1.js → digitalhuman-B6y4Firi.js} +1 -1
  84. package/dist/assets/{drawer-C5yapa5u.js → drawer-BuZZ_aaC.js} +1 -1
  85. package/dist/assets/{dropdown-BoBIlRDL.js → dropdown-Bx9RMIci.js} +1 -1
  86. package/dist/assets/{dropdown-CQWaqz_3.js → dropdown-BxIu8cuU.js} +1 -1
  87. package/dist/assets/{esm-BP2XImoy.js → esm-BVUKa97a.js} +3 -3
  88. package/dist/assets/{esm-BBIKNDF4.js → esm-BmDFfKnV.js} +2 -2
  89. package/dist/assets/{esm-D5RAFyte.js → esm-ChqRTG4m.js} +2 -2
  90. package/dist/assets/esm-ClvQxpgR.js +1 -0
  91. package/dist/assets/{esm-Bsx92DNw.js → esm-DFE44olS.js} +1 -1
  92. package/dist/assets/{esm-DDQ6KOjB.js → esm-DSuyDYMu.js} +1 -1
  93. package/dist/assets/{esm-BsBT7YjS.js → esm-PxD4Gwt9.js} +1 -1
  94. package/dist/assets/{fish-CGowfv1g.js → fish-BrXjsrGv.js} +1 -1
  95. package/dist/assets/{flux-CK73jZ17.js → flux-Bd7VueoG.js} +1 -1
  96. package/dist/assets/{grokvideo-4RtbpYrX.js → grokvideo-C9cLEEUt.js} +1 -1
  97. package/dist/assets/{hailuo-DrkKt2E3.js → hailuo-BnwTd1vI.js} +1 -1
  98. package/dist/assets/{index-D01uplks.js → index-C_zMaSTl.js} +3 -3
  99. package/dist/assets/{index.browser.esm-DNDpDgkK.js → index.browser.esm-BfeGLnVb.js} +1 -1
  100. package/dist/assets/{index.es-B8pcsdkV.js → index.es-BM-ykXwl.js} +1 -1
  101. package/dist/assets/{input-number-CYEyjQ6q.js → input-number-DCWd0Elh.js} +1 -1
  102. package/dist/assets/{kling-DwFkVLSS.js → kling-DGDJujYo.js} +1 -1
  103. package/dist/assets/{luma-D6q6J8Bk.js → luma-Dvkgitjv.js} +1 -1
  104. package/dist/assets/{maestro-BcicQKVH.js → maestro-CxPJR2aR.js} +1 -1
  105. package/dist/assets/{midjourney-_RWGDDRu.js → midjourney-Bk2U6YH6.js} +1 -1
  106. package/dist/assets/{mobileLocalExec-OjGsbxlU.js → mobileLocalExec-DB6_08aI.js} +2 -2
  107. package/dist/assets/{nanobanana-BLb0O9Kj.js → nanobanana-CqIYDsw2.js} +1 -1
  108. package/dist/assets/{omni-DurrYwah.js → omni-Dj_bfZIa.js} +1 -1
  109. package/dist/assets/{openaiimage-BXc68-m4.js → openaiimage-BMk1OsCb.js} +1 -1
  110. package/dist/assets/{pagination-DtjNdMzy.js → pagination-BM_xhv6e.js} +1 -1
  111. package/dist/assets/{pagination-CQHdmXDb.js → pagination-bCazEobg.js} +1 -1
  112. package/dist/assets/{pika-Q5eMje9B.js → pika-KS7eq7cu.js} +1 -1
  113. package/dist/assets/{pixverse-DyOGdsO3.js → pixverse-BhsgoVOr.js} +1 -1
  114. package/dist/assets/{popover-QeQGGKtd.js → popover-CHHOZQzK.js} +1 -1
  115. package/dist/assets/{producer-BMMRfE8q.js → producer-BS_lKXgr.js} +1 -1
  116. package/dist/assets/{qrart-I4gl30uK.js → qrart-6tCgrrds.js} +1 -1
  117. package/dist/assets/{realtime-An39O5lx.js → realtime-BRcuSeDV.js} +1 -1
  118. package/dist/assets/{row-sb2dbbaj.js → row-CVCTs90F.js} +1 -1
  119. package/dist/assets/{seedance-wOR-403H.js → seedance-B1AvfIf9.js} +1 -1
  120. package/dist/assets/{seedream-DwpmOTLM.js → seedream-CsXatSHI.js} +1 -1
  121. package/dist/assets/{select-Bwi16hQj.js → select-S6bNmWoA.js} +1 -1
  122. package/dist/assets/{serp-CulOUH0j.js → serp-CRMmlusi.js} +1 -1
  123. package/dist/assets/{slider-ie9xb9oi.js → slider-DfMXN5xR.js} +1 -1
  124. package/dist/assets/{solana-wallets-DFyJf0A-.js → solana-wallets-BFdthO2C.js} +2 -2
  125. package/dist/assets/{solana-wallets-vue-CgN9-WQq.js → solana-wallets-vue-RiELNJHl.js} +1 -1
  126. package/dist/assets/{sora--9bnetp_.js → sora-BpEjsjLP.js} +1 -1
  127. package/dist/assets/{suno-BvP7Y8lx.js → suno-BC7_gQyE.js} +1 -1
  128. package/dist/assets/{switch-D_xOnAgE.js → switch-D0NaSYP3.js} +1 -1
  129. package/dist/assets/{table-CnYjeBf6.js → table-Bn4kb5ML.js} +1 -1
  130. package/dist/assets/{tabs-Cug8a11o.js → tabs-CWW7Z-8_.js} +1 -1
  131. package/dist/assets/{time-picker--ScxbO-S.js → time-picker-BXz4Lvi8.js} +1 -1
  132. package/dist/assets/{tooltip-Db9KJiGJ.js → tooltip-CpUlXrrs.js} +1 -1
  133. package/dist/assets/{upload-Br9SsMuL.js → upload-BZf6dfKs.js} +1 -1
  134. package/dist/assets/{veo-CRrh4zRd.js → veo-BNt_Ia2h.js} +1 -1
  135. package/dist/assets/{wan-d4Sze1ve.js → wan-Do5h1j8q.js} +1 -1
  136. package/dist/assets/{web-CR-0liSU.js → web-BMZXt5qX.js} +1 -1
  137. package/dist/assets/{web-scs98bYP.js → web-BoW9tjfK.js} +1 -1
  138. package/dist/assets/{web-BCzhJnlr.js → web-C6JmQi5v.js} +1 -1
  139. package/dist/assets/{web-B_GSPOfR.js → web-LXizrjfR.js} +1 -1
  140. package/dist/assets/{web-DoFXL7lA.js → web-W9cvdvjE.js} +1 -1
  141. package/dist/assets/{webextrator-BZSJeaRf.js → webextrator-6Kmy9tLk.js} +1 -1
  142. package/dist/index.html +1 -1
  143. package/package.json +1 -1
  144. package/dist/assets/esm-DJosW0U2.js +0 -1
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,S as c,T as l,at as u,ht as d,it as f,j as p,mt as m,qt as h,rt as g,tt as _,x as v,z as y}from"./vendor-chart-Dw-P17PN.js";import{r as b,t as x}from"./select-Bwi16hQj.js";import{t as S}from"./upload-Br9SsMuL.js";import{t as C}from"./tooltip-Db9KJiGJ.js";import{t as w}from"./alert-C_L8fDII.js";import{t as T}from"./drawer-C5yapa5u.js";import{Gn as E,Kn as D,Un as ee,Vn as O,Wn as k}from"./constants-DgIJABTq.js";import{Ii as A,Ir as j,J as M,Si as N,Ti as te,Xi as P,cn as F,fn as I,ln as L,qn as R,sn as z,un as B,xn as V}from"./index-D01uplks.js";import{t as H}from"./index.es-B8pcsdkV.js";import{t as U}from"./CopyToClipboard-Dj7UuZZf.js";import{t as W}from"./ImagePreview-D5gMOtPF.js";import{n as G}from"./taskDrawerMixin-DyAUhFEq.js";import{t as K}from"./Consumption-CVNKq_zt.js";import{a as q,n as J,r as Y,t as X}from"./pagination-DtjNdMzy.js";import{t as Z}from"./ApiCodeButton-BJQ_-Mv-.js";import{t as Q}from"./BotPlaceholder-D7BqsbjS.js";import{t as ne}from"./PromptTextarea-D0nC7f4W.js";import{t as re}from"./ImageWrapper-B5OeDjs-.js";var ie=y({name:`LayoutNanobanana`,components:{ElDrawer:T,ElButton:P,FontAwesomeIcon:H},mixins:[G]}),ae={class:`main flex flex-row flex-1`},oe={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},se={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function ce(t,n,r,i,o,c){let l=u(`font-awesome-icon`),p=u(`el-button`),h=u(`el-drawer`);return _(),s(`div`,ae,[e(`div`,oe,[f(t.$slots,`config`,{},void 0,!0)]),e(`div`,se,[f(t.$slots,`result`,{},void 0,!0)]),d(a(p,{circle:``,class:`menu`,onClick:n[0]||=e=>t.drawer=!0},{default:m(()=>[a(l,{icon:`fa-solid fa-magic`})]),_:1},512),[[v,!t.tasksEmpty]]),a(h,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`drawer generator-drawer`},{default:m(()=>[f(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var le=M(ie,[[`render`,ce],[`__scopeId`,`data-v-e85e3b68`]]),ue=y({name:`PromptInput`,components:{PromptTextarea:ne},computed:{prompt:{get(){return this.$store.state.nanobanana?.config?.prompt},set(e){this.$store.commit(`nanobanana/setConfig`,{...this.$store.state.nanobanana?.config,prompt:e})}}},mounted(){this.prompt||=``}});function de(e,t,n,r,i,a){let o=u(`prompt-textarea`);return _(),p(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`nanobanana.name.prompt`),info:e.$t(`nanobanana.description.prompt`),placeholder:e.$t(`nanobanana.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var fe=M(ue,[[`render`,de]]),pe=y({name:`ImageUrlsInput`,components:{ElUpload:S,ElButton:P,InfoIcon:q,ImagePreview:W,FontAwesomeIcon:H},mixins:[B,F],data(){return{fileList:[],uploadUrl:te()+`/api/v1/files/`,suppressWatch:!1}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url).filter(e=>!!e)},value(){return this.$store.state.nanobanana?.config?.image_urls}},watch:{value:{immediate:!0,handler(e){if(this.suppressWatch)return;if(!e||e.length===0){let e=(this.fileList||[]).filter(e=>!e?.response?.file_url);this.fileList=e.length?e:[];return}let t=[];e.forEach(e=>{let n=this.fileList.find(t=>t?.response?.file_url===e||t?.url===e);n?t.push(n):t.push({name:e.split(`/`).pop()||e,url:e,status:`success`,percentage:100,response:{file_url:e}})}),(this.fileList||[]).filter(e=>!e?.response?.file_url).forEach(e=>{t.some(t=>t===e||t?.url===e?.url||t?.response?.file_url===e?.response?.file_url)||t.push(e)}),this.fileList=t}}},mounted(){},methods:{onChange(e){if(!e?.url&&e?.raw)try{e.url=URL.createObjectURL(e.raw)}catch{}},onRemove(e){if(e?.url&&typeof e.url==`string`&&e.url.startsWith(`blob:`))try{URL.revokeObjectURL(e.url)}catch{}this.onSetImageUrls()},onExceed(){A.warning(this.$t(`nanobanana.message.uploadImageExceed`))},onError(){A.error(this.$t(`nanobanana.message.uploadImageError`))},onSetImageUrls(){let e=this.urls;this.suppressWatch=!0,this.$store.commit(`nanobanana/setConfig`,{...this.$store.state.nanobanana?.config,image_urls:e}),this.$nextTick(()=>{this.suppressWatch=!1})},async onSuccess(e,t){e?.file_url&&(t.url=e.file_url,t.response=e),this.onSetImageUrls()},onRemovePreview(e,t){if(this.fileList.splice(e,1),t?.url&&typeof t.url==`string`&&t.url.startsWith(`blob:`))try{URL.revokeObjectURL(t.url)}catch{}this.onSetImageUrls()}}}),me={class:`field flex items-center justify-between`},he={class:`title font-bold text-[14px] mb-[10px]`},ge={class:`upload-wrapper flex flex-col items-start gap-[8px]`},_e={class:`controls flex items-center`},ve={class:`file-list flex flex-wrap gap-[10px]`};function ye(t,n,o,c,d,f){let h=u(`font-awesome-icon`),v=u(`el-button`),y=u(`el-upload`),b=u(`info-icon`),x=u(`image-preview`);return _(),s(l,null,[e(`div`,me,[e(`h2`,he,i(t.$t(`nanobanana.name.imageUrls`)),1),e(`div`,ge,[e(`div`,_e,[a(y,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,name:`file`,class:`value`,limit:5,multiple:!0,"show-file-list":!1,action:t.uploadUrl,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,"on-change":t.onChange,"on-remove":t.onRemove,headers:t.headers},{default:m(()=>[a(v,{size:`small`,type:`primary`,round:``},{default:m(()=>[a(h,{icon:`fa-solid fa-upload`,class:`mr-1`}),r(` `+i(t.$t(`nanobanana.button.uploadImageUrls`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`on-success`,`on-change`,`on-remove`,`headers`]),a(b,{content:t.$t(`nanobanana.description.imageUrls`),class:`ml-2`},null,8,[`content`])])])]),e(`div`,ve,[(_(!0),s(l,null,g(t.fileList,(e,n)=>(_(),p(x,{key:e.uid||e?.response?.file_url||e.url||n,url:e.url||e?.response?.file_url,name:e.name,percentage:e.percentage,onRemove:r=>t.onRemovePreview(n,e)},null,8,[`url`,`name`,`percentage`,`onRemove`]))),128))])],64)}var be=M(pe,[[`render`,ye]]),xe=y({name:`AspectRatioSelector`,components:{InfoIcon:q},data(){return{options:[{value:`1:1`,label:`1:1`,width:20,height:20},{value:`3:2`,label:`3:2`,width:27,height:18},{value:`2:3`,label:`2:3`,width:18,height:27},{value:`16:9`,label:`16:9`,width:25,height:13},{value:`9:16`,label:`9:16`,width:13,height:25},{value:`4:3`,label:`4:3`,width:24,height:18},{value:`3:4`,label:`3:4`,width:18,height:24}]}},computed:{value(){return this.$store.state.nanobanana?.config?.aspect_ratio}},methods:{onSelect(e){let t=this.value===e?void 0:e,n={...this.$store.state.nanobanana?.config||{}};t?n.aspect_ratio=t:delete n.aspect_ratio,this.$store.commit(`nanobanana/setConfig`,n)}}}),Se={class:`ratio`},Ce={class:`header`},we={class:`title font-bold`},Te=[`aria-label`],Ee=[`aria-checked`,`aria-label`,`onClick`,`onKeydown`],De={class:`preview`},Oe={class:`name`};function ke(r,o,d,f,p,m){let v=u(`info-icon`);return _(),s(`div`,Se,[e(`div`,Ce,[e(`h2`,we,i(r.$t(`nanobanana.name.aspectRatio`)),1),a(v,{content:r.$t(`nanobanana.description.aspectRatio`),class:`ml-1`},null,8,[`content`])]),e(`div`,{class:`items`,role:`radiogroup`,"aria-label":r.$t(`nanobanana.name.aspectRatio`)},[(_(!0),s(l,null,g(r.options,a=>(_(),s(`div`,{key:a.value,class:n([`item`,{active:r.value===a.value}]),role:`radio`,"aria-checked":r.value===a.value,"aria-label":a.label,tabindex:`0`,onClick:e=>r.onSelect(a.value),onKeydown:[c(t(e=>r.onSelect(a.value),[`prevent`]),[`enter`]),c(t(e=>r.onSelect(a.value),[`prevent`]),[`space`])]},[e(`div`,De,[e(`div`,{class:`rect`,style:h({width:a.width+`px`,height:a.height+`px`})},null,4)]),e(`p`,Oe,i(a.label),1)],42,Ee))),128))],8,Te)])}var Ae=M(xe,[[`render`,ke],[`__scopeId`,`data-v-7131eb97`]]),je=y({name:`NanobananaModelSelector`,components:{ElSelect:b,ElOption:x,InfoIcon:q},data(){return{options:[{value:ee,label:this.$t(`nanobanana.model.nanoBanana`)},{value:E,label:E},{value:D,label:this.$t(`nanobanana.model.nanoBananaPro`)},{value:k,label:this.$t(`nanobanana.model.nanoBanana2`)}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.model},set(e){this.$store.commit(`nanobanana/setConfig`,{...this.$store.state.nanobanana?.config,model:e})}},modelDescription(){return this.$t(`nanobanana.description.model`)}},mounted(){this.value||=O}}),Me={class:`field`},Ne={class:`label`},Pe={class:`box`},Fe={class:`title font-bold`};function Ie(t,n,r,o,c,d){let f=u(`info-icon`),h=u(`el-option`),v=u(`el-select`);return _(),s(`div`,Me,[e(`div`,Ne,[e(`div`,Pe,[e(`h2`,Fe,i(t.$t(`nanobanana.name.model`)),1),a(f,{content:t.modelDescription,class:`info`},null,8,[`content`])])]),a(v,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`nanobanana.placeholder.select`)},{default:m(()=>[(_(!0),s(l,null,g(t.options,e=>(_(),p(h,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Le=M(je,[[`render`,Ie],[`__scopeId`,`data-v-11cb675b`]]),Re=y({name:`NanobananaResolutionSelector`,components:{ElSelect:b,ElOption:x,InfoIcon:q},data(){return{cachedResolution:`1K`,options:[{value:`1K`,label:`1K`},{value:`2K`,label:`2K`},{value:`4K`,label:`4K`}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.resolution},set(e){this.$store.commit(`nanobanana/setConfig`,{...this.$store.state.nanobanana?.config,resolution:e})}},supportsResolution(){let e=this.$store.state.nanobanana?.config?.model;return e===`nano-banana-2`||e===`nano-banana-pro`}},watch:{value(e){this.supportsResolution&&e&&(this.cachedResolution=e)},supportsResolution(e){e?this.value||=this.cachedResolution||`1K`:(this.value&&(this.cachedResolution=this.value),this.$store.commit(`nanobanana/setConfig`,{...this.$store.state.nanobanana?.config,resolution:void 0}))}},mounted(){this.supportsResolution&&!this.value&&(this.value=`1K`),!this.supportsResolution&&this.value&&(this.cachedResolution=this.value,this.$store.commit(`nanobanana/setConfig`,{...this.$store.state.nanobanana?.config,resolution:void 0}))}}),ze={class:`field`},Be={class:`label`},Ve={class:`box`},He={class:`title font-bold`};function Ue(t,n,r,o,c,d){let f=u(`info-icon`),h=u(`el-option`),v=u(`el-select`);return _(),s(`div`,ze,[e(`div`,Be,[e(`div`,Ve,[e(`h2`,He,i(t.$t(`nanobanana.name.resolution`)),1),a(f,{content:t.$t(`nanobanana.description.resolutionProOnly`),class:`info`},null,8,[`content`])])]),a(v,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`nanobanana.placeholder.select`),disabled:!t.supportsResolution},{default:m(()=>[(_(!0),s(l,null,g(t.options,e=>(_(),p(h,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`disabled`])])}var We=y({name:`ConfigPanel`,components:{ElButton:P,FontAwesomeIcon:H,PromptInput:fe,Consumption:K,ImageUrlsInput:be,AspectRatioSelector:Ae,ModelSelector:Le,ResolutionSelector:M(Re,[[`render`,Ue],[`__scopeId`,`data-v-7ab9d4d4`]])},emits:[`generate`],computed:{config(){return this.$store.state.nanobanana?.config},consumption(){let e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;return I({...e,action:t?`edit`:`generate`},this.service?.cost)},service(){return this.$store.state.nanobanana?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),Ge={class:`flex flex-col h-full`},Ke={class:`flex-1 overflow-y-auto p-5`},qe={class:`flex flex-col items-center justify-center px-5 pb-5`};function Je(t,n,o,c,l,d){let f=u(`model-selector`),p=u(`resolution-selector`),h=u(`prompt-input`),g=u(`aspect-ratio-selector`),v=u(`image-urls-input`),y=u(`consumption`),b=u(`font-awesome-icon`),x=u(`el-button`);return _(),s(`div`,Ge,[e(`div`,Ke,[a(f,{class:`mb-4`}),a(p,{class:`mb-4`}),a(h,{class:`mb-4`}),a(g,{class:`mb-4`}),a(v,{class:`mb-4`})]),e(`div`,qe,[a(y,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),a(x,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:m(()=>[a(b,{icon:`fa-solid fa-magic`,class:`mr-2`}),r(` `+i(t.$t(`nanobanana.button.generate`)),1)]),_:1},8,[`onClick`])])])}var Ye=M(We,[[`render`,Je]]),Xe=y({name:`TaskPreview`,components:{CopyToClipboard:U,FontAwesomeIcon:H,ElAlert:w,ImageWrapper:re,ElButton:P,ElTooltip:C,ImagePreview:W,ApiCodeButton:Z},props:{modelValue:{type:Object,required:!0}},computed:{images(){let e=[];return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(t=>{e.push(t)}),e},hasImages(){return this.images.some(e=>!!e?.image_url)},showResult(){let e=this.modelValue?.response;return e?e.success===!0?!0:this.hasImages&&e.success!==!1:!1}},methods:{onEdit(e){if(!e)return;console.debug(`Edit image:`,e);let t={...this.$store.state.nanobanana?.config||{}};delete t.action,t.image_urls=[e],this.$store.commit(`nanobanana/setConfig`,t)}}}),Ze={class:`preview`},Qe={class:`left`},$e={class:`main`},et={class:`bot`},tt={class:`datetime`},nt={class:`info`},rt={key:0,class:`flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto`},it={key:1,class:`prompt mt-2`},at={key:0},ot={key:0,class:n({content:!0,failed:!0})},st={class:`flex justify-start items-center gap-4 w-full overflow-x-auto`},ct={class:n({operations:!0,"mt-2":!0,"mb-2":!0})},lt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ut={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},dt={key:2,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ft={key:3,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},pt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},mt={key:4,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ht={key:5,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},gt={key:1,class:n({content:!0})},_t={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},vt={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},yt={key:2,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},bt={key:3,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},xt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},St={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ct={key:4,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},wt={key:5,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Tt={key:2,class:n({content:!0})},Et={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Dt={key:2,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ot={key:3,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},kt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`};function At(n,c,d,f,h,v){let y=u(`capability-presentation`),b=u(`image-preview`),x=u(`image-wrapper`),S=u(`el-button`),C=u(`el-tooltip`),w=u(`api-code-button`),T=u(`font-awesome-icon`),E=u(`copy-to-clipboard`),D=u(`el-alert`);return _(),s(`div`,Ze,[e(`div`,Qe,[a(y,{capability:`nanobanana`,part:`avatar`,class:`avatar`})]),e(`div`,$e,[e(`div`,et,[a(y,{capability:`nanobanana`,part:`name`}),e(`span`,tt,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1)]),e(`div`,nt,[n.modelValue?.request?.image_urls&&n.modelValue?.request?.image_urls.length>0?(_(),s(`div`,rt,[(_(!0),s(l,null,g(n.modelValue?.request?.image_urls,(e,t)=>(_(),p(b,{key:t,url:e,name:`image-${t+1}`,closable:!1},null,8,[`url`,`name`]))),128))])):o(``,!0),n.modelValue?.request?.prompt?(_(),s(`p`,it,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(_(),s(`span`,at,` - (`+i(n.$t(`nanobanana.status.pending`))+`) `,1))])):o(``,!0)]),n.showResult?(_(),s(`div`,ot,[e(`div`,st,[(_(!0),s(l,null,g(n.images,(e,t)=>(_(),p(x,{key:t,src:e?.image_url,"raw-src":e?.image_url},null,8,[`src`,`raw-src`]))),128))]),e(`div`,ct,[a(C,{class:`box-item`,effect:`dark`,content:n.$t(`common.button.edit`),placement:`top-start`},{default:m(()=>[a(S,{type:`info`,size:`small`,class:`btn-action`,onClick:c[0]||=t(e=>n.onEdit(n.images?.[0]?.image_url),[`stop`])},{default:m(()=>[r(i(n.$t(`common.button.edit`)),1)]),_:1})]),_:1},8,[`content`]),a(w,{path:`/nano-banana/images`,body:n.modelValue?.request},null,8,[`body`])]),a(D,{closable:!1,class:`mt-2 success`},{default:m(()=>[n.modelValue?.request?.model?(_(),s(`p`,lt,[a(T,{icon:`fa-solid fa-cube`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.model`))+`: `+i(n.modelValue?.request?.model),1)])):o(``,!0),n.modelValue?.request?.resolution?(_(),s(`p`,ut,[a(T,{icon:`fa-solid fa-image`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.resolution`))+`: `+i(n.modelValue?.request?.resolution),1)])):o(``,!0),n.modelValue?.request?.aspect_ratio?(_(),s(`p`,dt,[a(T,{icon:`fa-solid fa-up-right-from-square`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.aspectRatio`))+`: `+i(n.modelValue?.request?.aspect_ratio),1)])):o(``,!0),n.modelValue?.request?.action?(_(),s(`p`,ft,[a(T,{icon:`fa-solid fa-bolt`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.task`))+`: `+i(n.modelValue?.request?.action===`generate`?n.$t(`nanobanana.name.generate`):n.$t(`nanobanana.name.edits`)),1)])):o(``,!0),e(`p`,pt,[a(T,{icon:`fa-solid fa-magic`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy inline-block`},null,8,[`content`])]),n.modelValue?.elapsed?(_(),s(`p`,mt,[a(T,{icon:`fa-solid fa-clock`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),n.modelValue?.response?.trace_id?(_(),s(`p`,ht,[a(T,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id,class:`btn-copy inline-block`},null,8,[`content`])])):o(``,!0)]),_:1})])):n.modelValue?.response?.success===!1?(_(),s(`div`,gt,[a(D,{closable:!1,class:`failure`},{template:m(()=>[a(T,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.failure`)),1)]),default:m(()=>[n.modelValue?.request?.model?(_(),s(`p`,_t,[a(T,{icon:`fa-solid fa-cube`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.model`))+`: `+i(n.modelValue?.request?.model),1)])):o(``,!0),n.modelValue?.request?.resolution?(_(),s(`p`,vt,[a(T,{icon:`fa-solid fa-image`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.resolution`))+`: `+i(n.modelValue?.request?.resolution),1)])):o(``,!0),n.modelValue?.request?.aspect_ratio?(_(),s(`p`,yt,[a(T,{icon:`fa-solid fa-up-right-from-square`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.aspectRatio`))+`: `+i(n.modelValue?.request?.aspect_ratio),1)])):o(``,!0),n.modelValue?.request?.action?(_(),s(`p`,bt,[a(T,{icon:`fa-solid fa-bolt`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.task`))+`: `+i(n.modelValue?.request?.action===`generate`?n.$t(`nanobanana.name.generate`):n.$t(`nanobanana.name.edits`)),1)])):o(``,!0),e(`p`,xt,[a(T,{icon:`fa-solid fa-magic`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy`},null,8,[`content`])]),e(`p`,St,[a(T,{icon:`fa-solid fa-circle-info`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(E,{content:n.modelValue?.response?.error?.message,class:`btn-copy`},null,8,[`content`])]),n.modelValue?.elapsed?(_(),s(`p`,Ct,[a(T,{icon:`fa-solid fa-clock`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),n.modelValue?.response?.trace_id?(_(),s(`p`,wt,[a(T,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id,class:`btn-copy`},null,8,[`content`])])):o(``,!0)]),_:1})])):n.modelValue?.response?(_(),s(`div`,Tt,[a(D,{closable:!1,class:`info`},{template:m(()=>[a(T,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.failure`)),1)]),default:m(()=>[n.modelValue?.request?.model?(_(),s(`p`,Et,[a(T,{icon:`fa-solid fa-cube`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.model`))+`: `+i(n.modelValue?.request?.model),1)])):o(``,!0),n.modelValue?.request?.resolution?(_(),s(`p`,$,[a(T,{icon:`fa-solid fa-image`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.resolution`))+`: `+i(n.modelValue?.request?.resolution),1)])):o(``,!0),n.modelValue?.request?.aspect_ratio?(_(),s(`p`,Dt,[a(T,{icon:`fa-solid fa-up-right-from-square`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.aspectRatio`))+`: `+i(n.modelValue?.request?.aspect_ratio),1)])):o(``,!0),n.modelValue?.request?.action?(_(),s(`p`,Ot,[a(T,{icon:`fa-solid fa-bolt`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.task`))+`: `+i(n.modelValue?.request?.action===`generate`?n.$t(`nanobanana.name.generate`):n.$t(`nanobanana.name.edits`)),1)])):o(``,!0),e(`p`,kt,[a(T,{icon:`fa-solid fa-magic`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy`},null,8,[`content`])])]),_:1})])):o(``,!0)])])}var jt=y({name:`RecentPanel`,components:{TaskPreview:M(Xe,[[`render`,At],[`__scopeId`,`data-v-e59cb82a`]]),BotPlaceholder:Q,NoTasks:Y,ScrollList:J},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.nanobanana?.tasks,items:this.$store.state.nanobanana?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Mt={key:0},Nt={key:2,class:`w-full h-full flex items-center justify-center`};function Pt(e,t,n,r,i,c){let d=u(`bot-placeholder`),f=u(`task-preview`),h=u(`scroll-list`),v=u(`no-tasks`);return _(),s(l,null,[e.tasks?.items===void 0?(_(),s(`div`,Mt,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(_(),p(h,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:m(()=>[(_(!0),s(l,null,g(e.tasks?.items,e=>(_(),p(f,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(_(),s(`div`,Nt,[a(v)])):o(``,!0)],64)}var Ft=y({name:`NanobananaIndex`,components:{ConfigPanel:Ye,Layout:le,RecentPanel:M(jt,[[`render`,Pt]])},mixins:[L],inject:[`initialized`],data(){return{task:void 0,job:0,loading:!1}},computed:{applicationsLoading(){return this.$store.state.nanobanana?.status?.getApplications===N.Request},tasksLoading(){return this.$store.state.nanobanana?.status?.getTasks===N.Request},credential(){return this.$store.state.nanobanana?.credential},config(){return this.$store.state.nanobanana?.config},application(){return this.$store.state.nanobanana?.application},tasks(){return this.$store.state.nanobanana?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await X({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loading,setLoading:e=>this.loading=e,isBlocked:()=>this.tasksLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`nanobanana/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`nanobanana/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.tasksLoading){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=20,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),await this.$store.dispatch(`nanobanana/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})},async onGenerate(){if(!z(this.uploadTracker,e=>this.$t(e),e=>A.warning(e)))return;let e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;delete e.action,!t&&`image_urls`in e&&delete e.image_urls,e?.aspect_ratio||delete e.aspect_ratio;let n=e?.model===`nano-banana-2`||e?.model===`nano-banana-pro`;!n&&`resolution`in e&&delete e.resolution,n&&!e?.resolution&&(e.resolution=`1K`);let r={...e,action:t?`edit`:`generate`,async:!0};if(!V())return;let i=this.credential?.token;if(!i){console.error(`no token specified`);return}A.info(this.$t(`nanobanana.message.startingTask`)),j(`nanobanana`,R.generate(r,{token:i})).then(()=>{A.success(this.$t(`nanobanana.message.startTaskSuccess`))}).catch(e=>{let t=e?.response?.data;t?.error?.code===`used_up`?A.error(this.$t(`nanobanana.message.usedUp`)):A.error(this.$t(`nanobanana.message.startTaskFailed`)+(t?.error?.message||``))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function It(e,t,n,r,i,o){let s=u(`config-panel`),c=u(`recent-panel`),l=u(`layout`);return _(),p(l,null,{config:m(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:m(()=>[a(c,{ref:`recentPanel`,loading:e.loading,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Lt=M(Ft,[[`render`,It]]);export{Lt as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,S as c,T as l,at as u,ht as d,it as f,j as p,mt as m,qt as h,rt as g,tt as _,x as v,z as y}from"./vendor-chart-Dw-P17PN.js";import{r as b,t as x}from"./select-S6bNmWoA.js";import{t as S}from"./upload-BZf6dfKs.js";import{t as C}from"./tooltip-CpUlXrrs.js";import{t as w}from"./alert-CjWvi_14.js";import{t as T}from"./drawer-BuZZ_aaC.js";import{Gn as E,Kn as D,Un as ee,Vn as O,Wn as k}from"./constants-DgIJABTq.js";import{Ii as A,Ir as j,J as M,Si as N,Ti as te,Xi as P,cn as F,fn as I,ln as L,qn as R,sn as z,un as B,xn as V}from"./index-C_zMaSTl.js";import{t as H}from"./index.es-BM-ykXwl.js";import{t as U}from"./CopyToClipboard-CWAv9J74.js";import{t as W}from"./ImagePreview-B1i4A6CJ.js";import{n as G}from"./taskDrawerMixin-DyAUhFEq.js";import{t as K}from"./Consumption-Dd9pOXfP.js";import{a as q,n as J,r as Y,t as X}from"./pagination-BM_xhv6e.js";import{t as Z}from"./ApiCodeButton-CM7BtdyA.js";import{t as Q}from"./BotPlaceholder-DB2Xrk_m.js";import{t as ne}from"./PromptTextarea-CQd8dTtu.js";import{t as re}from"./ImageWrapper-BIYaLgtn.js";var ie=y({name:`LayoutNanobanana`,components:{ElDrawer:T,ElButton:P,FontAwesomeIcon:H},mixins:[G]}),ae={class:`main flex flex-row flex-1`},oe={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},se={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function ce(t,n,r,i,o,c){let l=u(`font-awesome-icon`),p=u(`el-button`),h=u(`el-drawer`);return _(),s(`div`,ae,[e(`div`,oe,[f(t.$slots,`config`,{},void 0,!0)]),e(`div`,se,[f(t.$slots,`result`,{},void 0,!0)]),d(a(p,{circle:``,class:`menu`,onClick:n[0]||=e=>t.drawer=!0},{default:m(()=>[a(l,{icon:`fa-solid fa-magic`})]),_:1},512),[[v,!t.tasksEmpty]]),a(h,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`drawer generator-drawer`},{default:m(()=>[f(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var le=M(ie,[[`render`,ce],[`__scopeId`,`data-v-e85e3b68`]]),ue=y({name:`PromptInput`,components:{PromptTextarea:ne},computed:{prompt:{get(){return this.$store.state.nanobanana?.config?.prompt},set(e){this.$store.commit(`nanobanana/setConfig`,{...this.$store.state.nanobanana?.config,prompt:e})}}},mounted(){this.prompt||=``}});function de(e,t,n,r,i,a){let o=u(`prompt-textarea`);return _(),p(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`nanobanana.name.prompt`),info:e.$t(`nanobanana.description.prompt`),placeholder:e.$t(`nanobanana.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var fe=M(ue,[[`render`,de]]),pe=y({name:`ImageUrlsInput`,components:{ElUpload:S,ElButton:P,InfoIcon:q,ImagePreview:W,FontAwesomeIcon:H},mixins:[B,F],data(){return{fileList:[],uploadUrl:te()+`/api/v1/files/`,suppressWatch:!1}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url).filter(e=>!!e)},value(){return this.$store.state.nanobanana?.config?.image_urls}},watch:{value:{immediate:!0,handler(e){if(this.suppressWatch)return;if(!e||e.length===0){let e=(this.fileList||[]).filter(e=>!e?.response?.file_url);this.fileList=e.length?e:[];return}let t=[];e.forEach(e=>{let n=this.fileList.find(t=>t?.response?.file_url===e||t?.url===e);n?t.push(n):t.push({name:e.split(`/`).pop()||e,url:e,status:`success`,percentage:100,response:{file_url:e}})}),(this.fileList||[]).filter(e=>!e?.response?.file_url).forEach(e=>{t.some(t=>t===e||t?.url===e?.url||t?.response?.file_url===e?.response?.file_url)||t.push(e)}),this.fileList=t}}},mounted(){},methods:{onChange(e){if(!e?.url&&e?.raw)try{e.url=URL.createObjectURL(e.raw)}catch{}},onRemove(e){if(e?.url&&typeof e.url==`string`&&e.url.startsWith(`blob:`))try{URL.revokeObjectURL(e.url)}catch{}this.onSetImageUrls()},onExceed(){A.warning(this.$t(`nanobanana.message.uploadImageExceed`))},onError(){A.error(this.$t(`nanobanana.message.uploadImageError`))},onSetImageUrls(){let e=this.urls;this.suppressWatch=!0,this.$store.commit(`nanobanana/setConfig`,{...this.$store.state.nanobanana?.config,image_urls:e}),this.$nextTick(()=>{this.suppressWatch=!1})},async onSuccess(e,t){e?.file_url&&(t.url=e.file_url,t.response=e),this.onSetImageUrls()},onRemovePreview(e,t){if(this.fileList.splice(e,1),t?.url&&typeof t.url==`string`&&t.url.startsWith(`blob:`))try{URL.revokeObjectURL(t.url)}catch{}this.onSetImageUrls()}}}),me={class:`field flex items-center justify-between`},he={class:`title font-bold text-[14px] mb-[10px]`},ge={class:`upload-wrapper flex flex-col items-start gap-[8px]`},_e={class:`controls flex items-center`},ve={class:`file-list flex flex-wrap gap-[10px]`};function ye(t,n,o,c,d,f){let h=u(`font-awesome-icon`),v=u(`el-button`),y=u(`el-upload`),b=u(`info-icon`),x=u(`image-preview`);return _(),s(l,null,[e(`div`,me,[e(`h2`,he,i(t.$t(`nanobanana.name.imageUrls`)),1),e(`div`,ge,[e(`div`,_e,[a(y,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,name:`file`,class:`value`,limit:5,multiple:!0,"show-file-list":!1,action:t.uploadUrl,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,"on-change":t.onChange,"on-remove":t.onRemove,headers:t.headers},{default:m(()=>[a(v,{size:`small`,type:`primary`,round:``},{default:m(()=>[a(h,{icon:`fa-solid fa-upload`,class:`mr-1`}),r(` `+i(t.$t(`nanobanana.button.uploadImageUrls`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`on-success`,`on-change`,`on-remove`,`headers`]),a(b,{content:t.$t(`nanobanana.description.imageUrls`),class:`ml-2`},null,8,[`content`])])])]),e(`div`,ve,[(_(!0),s(l,null,g(t.fileList,(e,n)=>(_(),p(x,{key:e.uid||e?.response?.file_url||e.url||n,url:e.url||e?.response?.file_url,name:e.name,percentage:e.percentage,onRemove:r=>t.onRemovePreview(n,e)},null,8,[`url`,`name`,`percentage`,`onRemove`]))),128))])],64)}var be=M(pe,[[`render`,ye]]),xe=y({name:`AspectRatioSelector`,components:{InfoIcon:q},data(){return{options:[{value:`1:1`,label:`1:1`,width:20,height:20},{value:`3:2`,label:`3:2`,width:27,height:18},{value:`2:3`,label:`2:3`,width:18,height:27},{value:`16:9`,label:`16:9`,width:25,height:13},{value:`9:16`,label:`9:16`,width:13,height:25},{value:`4:3`,label:`4:3`,width:24,height:18},{value:`3:4`,label:`3:4`,width:18,height:24}]}},computed:{value(){return this.$store.state.nanobanana?.config?.aspect_ratio}},methods:{onSelect(e){let t=this.value===e?void 0:e,n={...this.$store.state.nanobanana?.config||{}};t?n.aspect_ratio=t:delete n.aspect_ratio,this.$store.commit(`nanobanana/setConfig`,n)}}}),Se={class:`ratio`},Ce={class:`header`},we={class:`title font-bold`},Te=[`aria-label`],Ee=[`aria-checked`,`aria-label`,`onClick`,`onKeydown`],De={class:`preview`},Oe={class:`name`};function ke(r,o,d,f,p,m){let v=u(`info-icon`);return _(),s(`div`,Se,[e(`div`,Ce,[e(`h2`,we,i(r.$t(`nanobanana.name.aspectRatio`)),1),a(v,{content:r.$t(`nanobanana.description.aspectRatio`),class:`ml-1`},null,8,[`content`])]),e(`div`,{class:`items`,role:`radiogroup`,"aria-label":r.$t(`nanobanana.name.aspectRatio`)},[(_(!0),s(l,null,g(r.options,a=>(_(),s(`div`,{key:a.value,class:n([`item`,{active:r.value===a.value}]),role:`radio`,"aria-checked":r.value===a.value,"aria-label":a.label,tabindex:`0`,onClick:e=>r.onSelect(a.value),onKeydown:[c(t(e=>r.onSelect(a.value),[`prevent`]),[`enter`]),c(t(e=>r.onSelect(a.value),[`prevent`]),[`space`])]},[e(`div`,De,[e(`div`,{class:`rect`,style:h({width:a.width+`px`,height:a.height+`px`})},null,4)]),e(`p`,Oe,i(a.label),1)],42,Ee))),128))],8,Te)])}var Ae=M(xe,[[`render`,ke],[`__scopeId`,`data-v-7131eb97`]]),je=y({name:`NanobananaModelSelector`,components:{ElSelect:b,ElOption:x,InfoIcon:q},data(){return{options:[{value:ee,label:this.$t(`nanobanana.model.nanoBanana`)},{value:E,label:E},{value:D,label:this.$t(`nanobanana.model.nanoBananaPro`)},{value:k,label:this.$t(`nanobanana.model.nanoBanana2`)}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.model},set(e){this.$store.commit(`nanobanana/setConfig`,{...this.$store.state.nanobanana?.config,model:e})}},modelDescription(){return this.$t(`nanobanana.description.model`)}},mounted(){this.value||=O}}),Me={class:`field`},Ne={class:`label`},Pe={class:`box`},Fe={class:`title font-bold`};function Ie(t,n,r,o,c,d){let f=u(`info-icon`),h=u(`el-option`),v=u(`el-select`);return _(),s(`div`,Me,[e(`div`,Ne,[e(`div`,Pe,[e(`h2`,Fe,i(t.$t(`nanobanana.name.model`)),1),a(f,{content:t.modelDescription,class:`info`},null,8,[`content`])])]),a(v,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`nanobanana.placeholder.select`)},{default:m(()=>[(_(!0),s(l,null,g(t.options,e=>(_(),p(h,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Le=M(je,[[`render`,Ie],[`__scopeId`,`data-v-11cb675b`]]),Re=y({name:`NanobananaResolutionSelector`,components:{ElSelect:b,ElOption:x,InfoIcon:q},data(){return{cachedResolution:`1K`,options:[{value:`1K`,label:`1K`},{value:`2K`,label:`2K`},{value:`4K`,label:`4K`}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.resolution},set(e){this.$store.commit(`nanobanana/setConfig`,{...this.$store.state.nanobanana?.config,resolution:e})}},supportsResolution(){let e=this.$store.state.nanobanana?.config?.model;return e===`nano-banana-2`||e===`nano-banana-pro`}},watch:{value(e){this.supportsResolution&&e&&(this.cachedResolution=e)},supportsResolution(e){e?this.value||=this.cachedResolution||`1K`:(this.value&&(this.cachedResolution=this.value),this.$store.commit(`nanobanana/setConfig`,{...this.$store.state.nanobanana?.config,resolution:void 0}))}},mounted(){this.supportsResolution&&!this.value&&(this.value=`1K`),!this.supportsResolution&&this.value&&(this.cachedResolution=this.value,this.$store.commit(`nanobanana/setConfig`,{...this.$store.state.nanobanana?.config,resolution:void 0}))}}),ze={class:`field`},Be={class:`label`},Ve={class:`box`},He={class:`title font-bold`};function Ue(t,n,r,o,c,d){let f=u(`info-icon`),h=u(`el-option`),v=u(`el-select`);return _(),s(`div`,ze,[e(`div`,Be,[e(`div`,Ve,[e(`h2`,He,i(t.$t(`nanobanana.name.resolution`)),1),a(f,{content:t.$t(`nanobanana.description.resolutionProOnly`),class:`info`},null,8,[`content`])])]),a(v,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`nanobanana.placeholder.select`),disabled:!t.supportsResolution},{default:m(()=>[(_(!0),s(l,null,g(t.options,e=>(_(),p(h,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`disabled`])])}var We=y({name:`ConfigPanel`,components:{ElButton:P,FontAwesomeIcon:H,PromptInput:fe,Consumption:K,ImageUrlsInput:be,AspectRatioSelector:Ae,ModelSelector:Le,ResolutionSelector:M(Re,[[`render`,Ue],[`__scopeId`,`data-v-7ab9d4d4`]])},emits:[`generate`],computed:{config(){return this.$store.state.nanobanana?.config},consumption(){let e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;return I({...e,action:t?`edit`:`generate`},this.service?.cost)},service(){return this.$store.state.nanobanana?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),Ge={class:`flex flex-col h-full`},Ke={class:`flex-1 overflow-y-auto p-5`},qe={class:`flex flex-col items-center justify-center px-5 pb-5`};function Je(t,n,o,c,l,d){let f=u(`model-selector`),p=u(`resolution-selector`),h=u(`prompt-input`),g=u(`aspect-ratio-selector`),v=u(`image-urls-input`),y=u(`consumption`),b=u(`font-awesome-icon`),x=u(`el-button`);return _(),s(`div`,Ge,[e(`div`,Ke,[a(f,{class:`mb-4`}),a(p,{class:`mb-4`}),a(h,{class:`mb-4`}),a(g,{class:`mb-4`}),a(v,{class:`mb-4`})]),e(`div`,qe,[a(y,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),a(x,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:m(()=>[a(b,{icon:`fa-solid fa-magic`,class:`mr-2`}),r(` `+i(t.$t(`nanobanana.button.generate`)),1)]),_:1},8,[`onClick`])])])}var Ye=M(We,[[`render`,Je]]),Xe=y({name:`TaskPreview`,components:{CopyToClipboard:U,FontAwesomeIcon:H,ElAlert:w,ImageWrapper:re,ElButton:P,ElTooltip:C,ImagePreview:W,ApiCodeButton:Z},props:{modelValue:{type:Object,required:!0}},computed:{images(){let e=[];return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(t=>{e.push(t)}),e},hasImages(){return this.images.some(e=>!!e?.image_url)},showResult(){let e=this.modelValue?.response;return e?e.success===!0?!0:this.hasImages&&e.success!==!1:!1}},methods:{onEdit(e){if(!e)return;console.debug(`Edit image:`,e);let t={...this.$store.state.nanobanana?.config||{}};delete t.action,t.image_urls=[e],this.$store.commit(`nanobanana/setConfig`,t)}}}),Ze={class:`preview`},Qe={class:`left`},$e={class:`main`},et={class:`bot`},tt={class:`datetime`},nt={class:`info`},rt={key:0,class:`flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto`},it={key:1,class:`prompt mt-2`},at={key:0},ot={key:0,class:n({content:!0,failed:!0})},st={class:`flex justify-start items-center gap-4 w-full overflow-x-auto`},ct={class:n({operations:!0,"mt-2":!0,"mb-2":!0})},lt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ut={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},dt={key:2,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ft={key:3,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},pt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},mt={key:4,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ht={key:5,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},gt={key:1,class:n({content:!0})},_t={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},vt={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},yt={key:2,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},bt={key:3,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},xt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},St={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ct={key:4,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},wt={key:5,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Tt={key:2,class:n({content:!0})},Et={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Dt={key:2,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ot={key:3,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},kt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`};function At(n,c,d,f,h,v){let y=u(`capability-presentation`),b=u(`image-preview`),x=u(`image-wrapper`),S=u(`el-button`),C=u(`el-tooltip`),w=u(`api-code-button`),T=u(`font-awesome-icon`),E=u(`copy-to-clipboard`),D=u(`el-alert`);return _(),s(`div`,Ze,[e(`div`,Qe,[a(y,{capability:`nanobanana`,part:`avatar`,class:`avatar`})]),e(`div`,$e,[e(`div`,et,[a(y,{capability:`nanobanana`,part:`name`}),e(`span`,tt,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1)]),e(`div`,nt,[n.modelValue?.request?.image_urls&&n.modelValue?.request?.image_urls.length>0?(_(),s(`div`,rt,[(_(!0),s(l,null,g(n.modelValue?.request?.image_urls,(e,t)=>(_(),p(b,{key:t,url:e,name:`image-${t+1}`,closable:!1},null,8,[`url`,`name`]))),128))])):o(``,!0),n.modelValue?.request?.prompt?(_(),s(`p`,it,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(_(),s(`span`,at,` - (`+i(n.$t(`nanobanana.status.pending`))+`) `,1))])):o(``,!0)]),n.showResult?(_(),s(`div`,ot,[e(`div`,st,[(_(!0),s(l,null,g(n.images,(e,t)=>(_(),p(x,{key:t,src:e?.image_url,"raw-src":e?.image_url},null,8,[`src`,`raw-src`]))),128))]),e(`div`,ct,[a(C,{class:`box-item`,effect:`dark`,content:n.$t(`common.button.edit`),placement:`top-start`},{default:m(()=>[a(S,{type:`info`,size:`small`,class:`btn-action`,onClick:c[0]||=t(e=>n.onEdit(n.images?.[0]?.image_url),[`stop`])},{default:m(()=>[r(i(n.$t(`common.button.edit`)),1)]),_:1})]),_:1},8,[`content`]),a(w,{path:`/nano-banana/images`,body:n.modelValue?.request},null,8,[`body`])]),a(D,{closable:!1,class:`mt-2 success`},{default:m(()=>[n.modelValue?.request?.model?(_(),s(`p`,lt,[a(T,{icon:`fa-solid fa-cube`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.model`))+`: `+i(n.modelValue?.request?.model),1)])):o(``,!0),n.modelValue?.request?.resolution?(_(),s(`p`,ut,[a(T,{icon:`fa-solid fa-image`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.resolution`))+`: `+i(n.modelValue?.request?.resolution),1)])):o(``,!0),n.modelValue?.request?.aspect_ratio?(_(),s(`p`,dt,[a(T,{icon:`fa-solid fa-up-right-from-square`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.aspectRatio`))+`: `+i(n.modelValue?.request?.aspect_ratio),1)])):o(``,!0),n.modelValue?.request?.action?(_(),s(`p`,ft,[a(T,{icon:`fa-solid fa-bolt`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.task`))+`: `+i(n.modelValue?.request?.action===`generate`?n.$t(`nanobanana.name.generate`):n.$t(`nanobanana.name.edits`)),1)])):o(``,!0),e(`p`,pt,[a(T,{icon:`fa-solid fa-magic`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy inline-block`},null,8,[`content`])]),n.modelValue?.elapsed?(_(),s(`p`,mt,[a(T,{icon:`fa-solid fa-clock`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),n.modelValue?.response?.trace_id?(_(),s(`p`,ht,[a(T,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id,class:`btn-copy inline-block`},null,8,[`content`])])):o(``,!0)]),_:1})])):n.modelValue?.response?.success===!1?(_(),s(`div`,gt,[a(D,{closable:!1,class:`failure`},{template:m(()=>[a(T,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.failure`)),1)]),default:m(()=>[n.modelValue?.request?.model?(_(),s(`p`,_t,[a(T,{icon:`fa-solid fa-cube`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.model`))+`: `+i(n.modelValue?.request?.model),1)])):o(``,!0),n.modelValue?.request?.resolution?(_(),s(`p`,vt,[a(T,{icon:`fa-solid fa-image`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.resolution`))+`: `+i(n.modelValue?.request?.resolution),1)])):o(``,!0),n.modelValue?.request?.aspect_ratio?(_(),s(`p`,yt,[a(T,{icon:`fa-solid fa-up-right-from-square`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.aspectRatio`))+`: `+i(n.modelValue?.request?.aspect_ratio),1)])):o(``,!0),n.modelValue?.request?.action?(_(),s(`p`,bt,[a(T,{icon:`fa-solid fa-bolt`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.task`))+`: `+i(n.modelValue?.request?.action===`generate`?n.$t(`nanobanana.name.generate`):n.$t(`nanobanana.name.edits`)),1)])):o(``,!0),e(`p`,xt,[a(T,{icon:`fa-solid fa-magic`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy`},null,8,[`content`])]),e(`p`,St,[a(T,{icon:`fa-solid fa-circle-info`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(E,{content:n.modelValue?.response?.error?.message,class:`btn-copy`},null,8,[`content`])]),n.modelValue?.elapsed?(_(),s(`p`,Ct,[a(T,{icon:`fa-solid fa-clock`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),n.modelValue?.response?.trace_id?(_(),s(`p`,wt,[a(T,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id,class:`btn-copy`},null,8,[`content`])])):o(``,!0)]),_:1})])):n.modelValue?.response?(_(),s(`div`,Tt,[a(D,{closable:!1,class:`info`},{template:m(()=>[a(T,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.failure`)),1)]),default:m(()=>[n.modelValue?.request?.model?(_(),s(`p`,Et,[a(T,{icon:`fa-solid fa-cube`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.model`))+`: `+i(n.modelValue?.request?.model),1)])):o(``,!0),n.modelValue?.request?.resolution?(_(),s(`p`,$,[a(T,{icon:`fa-solid fa-image`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.resolution`))+`: `+i(n.modelValue?.request?.resolution),1)])):o(``,!0),n.modelValue?.request?.aspect_ratio?(_(),s(`p`,Dt,[a(T,{icon:`fa-solid fa-up-right-from-square`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.aspectRatio`))+`: `+i(n.modelValue?.request?.aspect_ratio),1)])):o(``,!0),n.modelValue?.request?.action?(_(),s(`p`,Ot,[a(T,{icon:`fa-solid fa-bolt`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.task`))+`: `+i(n.modelValue?.request?.action===`generate`?n.$t(`nanobanana.name.generate`):n.$t(`nanobanana.name.edits`)),1)])):o(``,!0),e(`p`,kt,[a(T,{icon:`fa-solid fa-magic`,class:`mr-1`}),r(` `+i(n.$t(`nanobanana.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id,class:`btn-copy`},null,8,[`content`])])]),_:1})])):o(``,!0)])])}var jt=y({name:`RecentPanel`,components:{TaskPreview:M(Xe,[[`render`,At],[`__scopeId`,`data-v-e59cb82a`]]),BotPlaceholder:Q,NoTasks:Y,ScrollList:J},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.nanobanana?.tasks,items:this.$store.state.nanobanana?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Mt={key:0},Nt={key:2,class:`w-full h-full flex items-center justify-center`};function Pt(e,t,n,r,i,c){let d=u(`bot-placeholder`),f=u(`task-preview`),h=u(`scroll-list`),v=u(`no-tasks`);return _(),s(l,null,[e.tasks?.items===void 0?(_(),s(`div`,Mt,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(_(),p(h,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:m(()=>[(_(!0),s(l,null,g(e.tasks?.items,e=>(_(),p(f,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(_(),s(`div`,Nt,[a(v)])):o(``,!0)],64)}var Ft=y({name:`NanobananaIndex`,components:{ConfigPanel:Ye,Layout:le,RecentPanel:M(jt,[[`render`,Pt]])},mixins:[L],inject:[`initialized`],data(){return{task:void 0,job:0,loading:!1}},computed:{applicationsLoading(){return this.$store.state.nanobanana?.status?.getApplications===N.Request},tasksLoading(){return this.$store.state.nanobanana?.status?.getTasks===N.Request},credential(){return this.$store.state.nanobanana?.credential},config(){return this.$store.state.nanobanana?.config},application(){return this.$store.state.nanobanana?.application},tasks(){return this.$store.state.nanobanana?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await X({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loading,setLoading:e=>this.loading=e,isBlocked:()=>this.tasksLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`nanobanana/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`nanobanana/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.tasksLoading){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=20,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),await this.$store.dispatch(`nanobanana/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})},async onGenerate(){if(!z(this.uploadTracker,e=>this.$t(e),e=>A.warning(e)))return;let e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;delete e.action,!t&&`image_urls`in e&&delete e.image_urls,e?.aspect_ratio||delete e.aspect_ratio;let n=e?.model===`nano-banana-2`||e?.model===`nano-banana-pro`;!n&&`resolution`in e&&delete e.resolution,n&&!e?.resolution&&(e.resolution=`1K`);let r={...e,action:t?`edit`:`generate`,async:!0};if(!V())return;let i=this.credential?.token;if(!i){console.error(`no token specified`);return}A.info(this.$t(`nanobanana.message.startingTask`)),j(`nanobanana`,R.generate(r,{token:i})).then(()=>{A.success(this.$t(`nanobanana.message.startTaskSuccess`))}).catch(e=>{let t=e?.response?.data;t?.error?.code===`used_up`?A.error(this.$t(`nanobanana.message.usedUp`)):A.error(this.$t(`nanobanana.message.startTaskFailed`)+(t?.error?.message||``))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function It(e,t,n,r,i,o){let s=u(`config-panel`),c=u(`recent-panel`),l=u(`layout`);return _(),p(l,null,{config:m(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:m(()=>[a(c,{ref:`recentPanel`,loading:e.loading,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Lt=M(Ft,[[`render`,It]]);export{Lt as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,Gt as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,ht as l,it as u,j as d,mt as f,qt as p,rt as m,tt as h,x as g,z as _}from"./vendor-chart-Dw-P17PN.js";import{r as v,t as y}from"./select-Bwi16hQj.js";import{t as b}from"./upload-Br9SsMuL.js";import{t as x}from"./tooltip-Db9KJiGJ.js";import{t as S}from"./alert-C_L8fDII.js";import{t as C}from"./drawer-C5yapa5u.js";import{Gr as w,Jr as T,Kr as ee,Ur as E,Wr as D,Xr as O,Zr as k,qr as A}from"./constants-DgIJABTq.js";import{Ii as j,Ir as te,J as M,Si as N,Ti as P,Xi as F,cn as I,fn as L,ln as R,sn as z,sr as B,un as V,xn as H}from"./index-D01uplks.js";import{t as U}from"./index.es-B8pcsdkV.js";import{t as W}from"./CopyToClipboard-Dj7UuZZf.js";import{t as G}from"./ImagePreview-D5gMOtPF.js";import{n as K}from"./taskDrawerMixin-DyAUhFEq.js";import{t as q}from"./Consumption-CVNKq_zt.js";import{a as J,n as Y,r as X,t as Z}from"./pagination-DtjNdMzy.js";import{t as Q}from"./VideoPlayer-CPZmeDkt.js";import{t as ne}from"./ApiCodeButton-BJQ_-Mv-.js";import{t as re}from"./BotPlaceholder-D7BqsbjS.js";import{t as ie}from"./PromptTextarea-D0nC7f4W.js";var ae=_({name:`LayoutSora`,components:{ElDrawer:C,ElButton:F,FontAwesomeIcon:U},mixins:[K]}),oe={class:`main flex flex-row flex-1`},se={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},ce={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function le(t,n,r,a,s,d){let p=c(`font-awesome-icon`),m=c(`el-button`),_=c(`el-drawer`);return h(),o(`div`,oe,[e(`div`,se,[u(t.$slots,`config`,{},void 0,!0)]),e(`div`,ce,[u(t.$slots,`result`,{},void 0,!0)]),l(i(m,{circle:``,class:`menu`,onClick:n[0]||=e=>t.drawer=!0},{default:f(()=>[i(p,{icon:`fa-solid fa-magic`})]),_:1},512),[[g,!t.tasksEmpty]]),i(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`generator-drawer`},{default:f(()=>[u(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var ue=M(ae,[[`render`,le],[`__scopeId`,`data-v-b03a6a71`]]),de=_({name:`ModelSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:k,label:`sora-2`},{value:O,label:`sora-2-pro`}]}},computed:{value:{get(){return this.$store.state.sora?.config?.model},set(e){let t=this.$store.state.sora?.config||{},n=E[e]||[10],r=t.duration,i=r&&n.includes(r)?r:n.includes(10)?10:n[0],a={...t,model:e,duration:i,size:t.size||`small`};this.$store.commit(`sora/setConfig`,a)}}},mounted(){this.value||=ee}}),fe={class:`field`},pe={class:`title font-bold`};function me(t,n,a,l,u,p){let g=c(`el-option`),_=c(`el-select`);return h(),o(`div`,fe,[e(`h2`,pe,r(t.$t(`sora.name.model`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:f(()=>[(h(!0),o(s,null,m(t.options,e=>(h(),d(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var he=M(de,[[`render`,me],[`__scopeId`,`data-v-0cb7913d`]]),ge=_({name:`ActionSelector`,components:{ElSelect:v,ElOption:y},data(){return{}},computed:{options(){return[{value:`text2video`,label:this.$t(`sora.button.action1`)},{value:`image2video`,label:this.$t(`sora.button.action2`)}]},value:{get(){return this.$store.state.sora?.config?.action},set(e){this.$store.commit(`sora/setConfig`,{...this.$store.state.sora?.config,action:e})}}},mounted(){this.value||=w}}),_e={class:`field`},ve={class:`title font-bold`},ye={class:`float-left`};function be(t,n,a,l,u,p){let g=c(`el-option`),_=c(`el-select`);return h(),o(`div`,_e,[e(`h2`,ve,r(t.$t(`sora.name.action`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`),clearable:``},{default:f(()=>[(h(!0),o(s,null,m(t.options,t=>(h(),d(g,{key:t.value,label:t.label,value:t.value},{default:f(()=>[e(`span`,ye,r(t.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var xe=M(ge,[[`render`,be],[`__scopeId`,`data-v-7b82fa7f`]]),Se=_({name:`DurationSelector`,components:{ElSelect:v,ElOption:y},computed:{model(){return this.$store.state.sora?.config?.model||`sora-2`},allowedDurations(){return E[this.model]||[10]},optionsForModel(){return this.allowedDurations.map(e=>({value:e,label:`${e}s`}))},value:{get(){return this.$store.state.sora?.config?.duration},set(e){let t=this.$store.state.sora?.config||{};this.$store.commit(`sora/setConfig`,{...t,duration:e})}}},watch:{allowedDurations(){let e=this.allowedDurations;if(!e.includes(this.value)){let t=e.includes(10)?10:e[0];this.value=t}}},mounted(){this.value||=10}}),Ce={class:`field`},we={class:`control`},Te={class:`title font-bold`};function Ee(t,n,a,l,u,p){let g=c(`el-option`),_=c(`el-select`);return h(),o(`div`,Ce,[e(`div`,we,[e(`h2`,Te,r(t.$t(`sora.name.duration`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:f(()=>[(h(!0),o(s,null,m(t.optionsForModel,e=>(h(),d(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])])}var De=M(Se,[[`render`,Ee],[`__scopeId`,`data-v-c2934598`]]),Oe=_({name:`OrientationSelector`,data(){return{options:[{value:`portrait`,labelKey:`sora.option.portrait`,width:13,height:25},{value:`landscape`,labelKey:`sora.option.landscape`,width:25,height:13}]}},computed:{active(){let e=this.options.findIndex(e=>e.value===this.value);return e>=0?e:0},value:{get(){return this.$store.state.sora?.config?.orientation},set(e){console.debug(`set orientation`,e),this.$store.commit(`sora/setConfig`,{...this.$store.state?.sora?.config,orientation:e})}}},mounted(){this.value||=A}}),ke={class:`text-sm font-bold mb-2 block`},Ae={class:`items`},je=[`onClick`],Me={class:`name`};function Ne(n,i,a,c,l,u){return h(),o(`div`,null,[e(`span`,ke,r(n.$t(`sora.name.orientation`)),1),e(`div`,Ae,[(h(!0),o(s,null,m(n.options,(i,a)=>(h(),o(`div`,{key:a,class:t({active:n.active===a,item:!0}),onClick:e=>n.value=i.value},[e(`div`,{class:t([`preview`,i.value])},[e(`div`,{class:`rect`,style:p({width:i.width+`px`,height:i.height+`px`})},null,4)],2),e(`p`,Me,r(n.$t(i.labelKey)),1)],10,je))),128))])])}var Pe=M(Oe,[[`render`,Ne],[`__scopeId`,`data-v-a20be6d9`]]),Fe=_({name:`StartEndImage`,components:{ElUpload:b,ElButton:F,InfoIcon:J,FontAwesomeIcon:U,ImagePreview:G},mixins:[V,I],emits:[`change`],data(){return{fileList:[],uploadUrl:P()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state?.sora?.config?.image_urls},set(){}}},mounted(){this.value||=void 0,this.onSetStartEndImageUrl()},methods:{onExceed(){j.warning(this.$t(`sora.message.uploadReferencesExceed`))},onError(){j.error(this.$t(`sora.message.uploadReferencesError`))},onSetStartEndImageUrl(){let e=this.urls;this.$store.commit(`sora/setConfig`,{...this.$store.state?.sora?.config,image_urls:e})},async onSuccess(){this.onSetStartEndImageUrl()}}}),Ie={class:`relative`},Le={class:`flex justify-between`},Re={class:`flex justify-start items-center`},ze={class:`text-sm font-bold`};function Be(t,s,l,u,p,m){let g=c(`info-icon`),_=c(`image-preview`),v=c(`font-awesome-icon`),y=c(`el-button`),b=c(`el-upload`);return h(),o(`div`,Ie,[e(`div`,Le,[e(`div`,Re,[e(`span`,ze,r(t.$t(`sora.name.startEndImage`)),1),i(g,{content:t.$t(`sora.description.uploadStartEndImage`)},null,8,[`content`])])]),i(b,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":s[0]||=e=>t.fileList=e,name:`file`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,limit:2,class:`upload-wrapper`,multiple:!1,action:t.uploadUrl,"list-type":`picture`,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,headers:t.headers},{file:f(({file:e})=>[e.url&&e.percentage!==void 0?(h(),d(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])):a(``,!0)]),default:f(()=>[i(y,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:f(()=>[i(v,{icon:`fa-solid fa-upload`,class:`icon mr-1`}),n(` `+r(t.$t(`sora.button.uploadReferences`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`on-success`,`headers`])])}var Ve=M(Fe,[[`render`,Be],[`__scopeId`,`data-v-4f7d9ba5`]]),He=e=>e&&e.charAt(0).toUpperCase()+e.slice(1),Ue=_({name:`SizeSelector`,components:{ElSelect:v,ElOption:y},data(){return{options:D.map(e=>({value:e,label:He(e)}))}},computed:{value:{get(){return this.$store.state.sora?.config?.size},set(e){let t=this.$store.state.sora?.config||{};this.$store.commit(`sora/setConfig`,{...t,size:e})}}},mounted(){this.value||=T}}),We={class:`field`},Ge={class:`control`},Ke={class:`title font-bold`};function qe(t,n,a,l,u,p){let g=c(`el-option`),_=c(`el-select`);return h(),o(`div`,We,[e(`div`,Ge,[e(`h2`,Ke,r(t.$t(`sora.name.size`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:f(()=>[(h(!0),o(s,null,m(t.options,e=>(h(),d(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])])}var Je=M(Ue,[[`render`,qe],[`__scopeId`,`data-v-8c485f0f`]]),Ye=_({name:`PromptInput`,components:{PromptTextarea:ie},computed:{prompt:{get(){return this.$store.state.sora?.config?.prompt},set(e){this.$store.commit(`sora/setConfig`,{...this.$store.state.sora?.config,prompt:e})}}},mounted(){this.prompt||=``}});function Xe(e,t,n,r,i,a){let o=c(`prompt-textarea`);return h(),d(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`sora.name.prompt`),info:e.$t(`sora.description.prompt`),placeholder:e.$t(`sora.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var Ze=_({name:`ConfigPanel`,components:{ElButton:F,Consumption:q,FontAwesomeIcon:U,PromptInput:M(Ye,[[`render`,Xe]]),ModelSelector:he,StartEndImage:Ve,SizeSelector:Je,ActionSelector:xe,OrientationSelector:Pe,DurationSelector:De},emits:[`generate`],computed:{config(){return this.$store.state.sora?.config},consumption(){return L(this.config,this.service?.cost)},service(){return this.$store.state.sora?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),Qe={class:`flex flex-col h-full`},$e={class:`flex-1 overflow-y-auto p-5`},et={class:`flex flex-col items-center justify-center px-5 pb-5`};function tt(t,a,s,u,d,p){let m=c(`model-selector`),_=c(`action-selector`),v=c(`duration-selector`),y=c(`size-selector`),b=c(`orientation-selector`),x=c(`prompt-input`),S=c(`start-end-image`),C=c(`consumption`),w=c(`font-awesome-icon`),T=c(`el-button`);return h(),o(`div`,Qe,[e(`div`,$e,[i(m,{class:`mb-4`}),i(_,{class:`mb-4`}),i(v,{class:`mb-4`}),i(y,{class:`mb-4`}),i(b,{class:`mb-4`}),i(x,{class:`mb-4`}),l(i(S,{class:`mb-2`},null,512),[[g,t.config?.action===`image2video`]])]),e(`div`,et,[i(C,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),i(T,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:f(()=>[i(w,{icon:`fa-solid fa-magic`,class:`mr-2`}),n(` `+r(t.$t(`sora.button.generate`)),1)]),_:1},8,[`onClick`])])])}var nt=M(Ze,[[`render`,tt]]),rt=_({name:`TaskPreview`,components:{CopyToClipboard:W,FontAwesomeIcon:U,ElAlert:S,VideoPlayer:Q,ElTooltip:x,ElButton:F,ApiCodeButton:ne},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.sora?.application},config(){return this.$store.state.sora?.config}},methods:{onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenVideo(e){window.open(e,`_blank`)}}}),it={class:`preview`},at={class:`left`},ot={class:`main`},st={class:`bot`},ct={class:`datetime`},lt={class:`info`},ut={key:0,class:`prompt mt-2`},dt={key:0},ft={key:1},pt={key:0,class:t({content:!0,failed:!0})},mt={key:0,class:`mb-4`},ht={key:1,class:t({operations:!0,"mt-2":!0})},gt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},_t={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},vt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},yt={key:1,class:t({content:!0})},$={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},bt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},xt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},St={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Ct={key:2,class:t({content:!0})},wt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Tt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function Et(t,s,l,u,p,m){let g=c(`capability-presentation`),_=c(`video-player`),v=c(`el-button`),y=c(`el-tooltip`),b=c(`api-code-button`),x=c(`font-awesome-icon`),S=c(`copy-to-clipboard`),C=c(`el-alert`);return h(),o(`div`,it,[e(`div`,at,[i(g,{capability:`sora`,part:`avatar`,class:`avatar`})]),e(`div`,ot,[e(`div`,st,[i(g,{capability:`sora`,part:`name`}),e(`span`,ct,r(t.$dayjs.format(``+new Date(parseFloat((t.modelValue?.created_at||``).toString())*1e3))),1)]),e(`div`,lt,[t.modelValue?.request?.prompt?(h(),o(`p`,ut,[n(r(t.modelValue?.request?.prompt)+` `,1),t.modelValue?.response?a(``,!0):(h(),o(`span`,dt,` - (`+r(t.$t(`sora.status.pending`))+`) `,1)),Array.isArray(t.modelValue?.response?.data)&&t.modelValue?.response?.data[0]?.state===`pending`?(h(),o(`span`,ft,` - (`+r(t.$t(`sora.status.processing`))+`) `,1)):a(``,!0)])):a(``,!0)]),t.modelValue?.response?.success===!0&&t.modelValue?.response?.data?(h(),o(`div`,pt,[t.modelValue?.response?.data[0]?.video_url?(h(),o(`div`,mt,[i(_,{src:t.modelValue?.response?.data[0]?.video_url},null,8,[`src`])])):a(``,!0),t.modelValue?.response.success?(h(),o(`div`,ht,[i(y,{class:`box-item`,effect:`dark`,content:t.$t(`sora.message.downloadVideo`),placement:`top-start`},{default:f(()=>[t.modelValue?.response?.data[0]?.video_url?(h(),d(v,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:s[0]||=e=>t.onDownload(e,t.modelValue?.response?.data[0]?.video_url)},{default:f(()=>[n(r(t.$t(`sora.button.download`)),1)]),_:1})):a(``,!0)]),_:1},8,[`content`]),i(b,{path:`/sora/videos`,body:t.modelValue?.request},null,8,[`body`])])):a(``,!0),i(C,{closable:!1,class:`mt-2 success`},{default:f(()=>[e(`p`,gt,[i(x,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.model`))+`: `+r(t.modelValue?.request?.model),1)]),e(`p`,_t,[i(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.taskId`))+`: `+r(t.modelValue?.id)+` `,1),i(S,{content:t.modelValue?.id},null,8,[`content`])]),t.modelValue?.elapsed?(h(),o(`p`,vt,[i(x,{icon:`fa-solid fa-clock`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.elapsed`))+`: `+r(t.modelValue?.elapsed?.toFixed(2))+`s `,1)])):a(``,!0)]),_:1})])):a(``,!0),t.modelValue?.response?.success===!1?(h(),o(`div`,yt,[i(C,{closable:!1,class:`failure`},{template:f(()=>[i(x,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.failure`)),1)]),default:f(()=>[e(`p`,$,[i(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.taskId`))+`: `+r(t.modelValue?.id)+` `,1),i(S,{content:t.modelValue?.id},null,8,[`content`])]),e(`p`,bt,[i(x,{icon:`fa-solid fa-circle-info`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.failureReason`))+`: `+r(t.modelValue?.response?.error?.message)+` `,1),i(S,{content:t.modelValue?.response?.error?.message},null,8,[`content`])]),t.modelValue?.elapsed?(h(),o(`p`,xt,[i(x,{icon:`fa-solid fa-clock`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.elapsed`))+`: `+r(t.modelValue?.elapsed?.toFixed(2))+`s `,1)])):a(``,!0),t.modelValue?.response?.trace_id?(h(),o(`p`,St,[i(x,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.traceId`))+`: `+r(t.modelValue?.response?.trace_id)+` `,1),i(S,{content:t.modelValue?.response?.trace_id},null,8,[`content`])])):a(``,!0)]),_:1})])):a(``,!0),t.modelValue?.response?.success===void 0?(h(),o(`div`,Ct,[i(C,{closable:!1,class:`info`},{template:f(()=>[i(x,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.failure`)),1)]),default:f(()=>[e(`p`,wt,[i(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.taskId`))+`: `+r(t.modelValue?.id)+` `,1),i(S,{content:t.modelValue?.id},null,8,[`content`])]),t.modelValue?.response?.trace_id?(h(),o(`p`,Tt,[i(x,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.traceId`))+`: `+r(t.modelValue?.response?.trace_id)+` `,1),i(S,{content:t.modelValue?.response?.trace_id},null,8,[`content`])])):a(``,!0)]),_:1})])):a(``,!0)])])}var Dt=_({name:`RecentPanel`,components:{TaskPreview:M(rt,[[`render`,Et],[`__scopeId`,`data-v-ac6d711d`]]),NoTasks:X,BotPlaceholder:re,ScrollList:Y},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.sora?.tasks,items:this.$store.state.sora?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Ot={key:0},kt={key:2,class:`w-full h-full flex items-center justify-center`};function At(e,t,n,r,l,u){let p=c(`bot-placeholder`),g=c(`task-preview`),_=c(`scroll-list`),v=c(`no-tasks`);return h(),o(s,null,[e.tasks?.items===void 0?(h(),o(`div`,Ot,[i(p)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(h(),d(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:f(()=>[(h(!0),o(s,null,m(e.tasks?.items,(e,t)=>(h(),d(g,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):a(``,!0),e.tasks?.items?.length===0?(h(),o(`div`,kt,[i(v)])):a(``,!0)],64)}var jt=_({name:`SoraIndex`,components:{ConfigPanel:nt,Layout:ue,RecentPanel:M(Dt,[[`render`,At]])},mixins:[R],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.sora?.status?.getApplications===N.Request},tasksLoading(){return this.$store.state.sora?.status?.getTasks===N.Request||this.fetchingTasks},credential(){return this.$store.state.sora.credential},config(){return this.$store.state.sora.config},tasks(){return this.$store.state.sora.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await Z({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`sora/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`sora/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`sora/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!z(this.uploadTracker,e=>this.$t(e),e=>j.warning(e)))return;let e={...this.config,async:!0};if(!H())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}j.info(this.$t(`sora.message.startingTask`)),te(`sora`,B.generate(e,{token:t})).then(()=>{j.success(this.$t(`sora.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?j.error(this.$t(`sora.message.usedUp`)):j.error(this.$t(`sora.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Mt(e,t,n,r,a,o){let s=c(`config-panel`),l=c(`recent-panel`),u=c(`layout`);return h(),d(u,null,{config:f(()=>[i(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:f(()=>[i(l,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Nt=M(jt,[[`render`,Mt]]);export{Nt as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,Gt as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,ht as l,it as u,j as d,mt as f,qt as p,rt as m,tt as h,x as g,z as _}from"./vendor-chart-Dw-P17PN.js";import{r as v,t as y}from"./select-S6bNmWoA.js";import{t as b}from"./upload-BZf6dfKs.js";import{t as x}from"./tooltip-CpUlXrrs.js";import{t as S}from"./alert-CjWvi_14.js";import{t as C}from"./drawer-BuZZ_aaC.js";import{Gr as w,Jr as T,Kr as ee,Ur as E,Wr as D,Xr as O,Zr as k,qr as A}from"./constants-DgIJABTq.js";import{Ii as j,Ir as te,J as M,Si as N,Ti as P,Xi as F,cn as I,fn as L,ln as R,sn as z,sr as B,un as V,xn as H}from"./index-C_zMaSTl.js";import{t as U}from"./index.es-BM-ykXwl.js";import{t as W}from"./CopyToClipboard-CWAv9J74.js";import{t as G}from"./ImagePreview-B1i4A6CJ.js";import{n as K}from"./taskDrawerMixin-DyAUhFEq.js";import{t as q}from"./Consumption-Dd9pOXfP.js";import{a as J,n as Y,r as X,t as Z}from"./pagination-BM_xhv6e.js";import{t as Q}from"./VideoPlayer-ePiO9_gl.js";import{t as ne}from"./ApiCodeButton-CM7BtdyA.js";import{t as re}from"./BotPlaceholder-DB2Xrk_m.js";import{t as ie}from"./PromptTextarea-CQd8dTtu.js";var ae=_({name:`LayoutSora`,components:{ElDrawer:C,ElButton:F,FontAwesomeIcon:U},mixins:[K]}),oe={class:`main flex flex-row flex-1`},se={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},ce={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function le(t,n,r,a,s,d){let p=c(`font-awesome-icon`),m=c(`el-button`),_=c(`el-drawer`);return h(),o(`div`,oe,[e(`div`,se,[u(t.$slots,`config`,{},void 0,!0)]),e(`div`,ce,[u(t.$slots,`result`,{},void 0,!0)]),l(i(m,{circle:``,class:`menu`,onClick:n[0]||=e=>t.drawer=!0},{default:f(()=>[i(p,{icon:`fa-solid fa-magic`})]),_:1},512),[[g,!t.tasksEmpty]]),i(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`generator-drawer`},{default:f(()=>[u(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var ue=M(ae,[[`render`,le],[`__scopeId`,`data-v-b03a6a71`]]),de=_({name:`ModelSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:k,label:`sora-2`},{value:O,label:`sora-2-pro`}]}},computed:{value:{get(){return this.$store.state.sora?.config?.model},set(e){let t=this.$store.state.sora?.config||{},n=E[e]||[10],r=t.duration,i=r&&n.includes(r)?r:n.includes(10)?10:n[0],a={...t,model:e,duration:i,size:t.size||`small`};this.$store.commit(`sora/setConfig`,a)}}},mounted(){this.value||=ee}}),fe={class:`field`},pe={class:`title font-bold`};function me(t,n,a,l,u,p){let g=c(`el-option`),_=c(`el-select`);return h(),o(`div`,fe,[e(`h2`,pe,r(t.$t(`sora.name.model`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:f(()=>[(h(!0),o(s,null,m(t.options,e=>(h(),d(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var he=M(de,[[`render`,me],[`__scopeId`,`data-v-0cb7913d`]]),ge=_({name:`ActionSelector`,components:{ElSelect:v,ElOption:y},data(){return{}},computed:{options(){return[{value:`text2video`,label:this.$t(`sora.button.action1`)},{value:`image2video`,label:this.$t(`sora.button.action2`)}]},value:{get(){return this.$store.state.sora?.config?.action},set(e){this.$store.commit(`sora/setConfig`,{...this.$store.state.sora?.config,action:e})}}},mounted(){this.value||=w}}),_e={class:`field`},ve={class:`title font-bold`},ye={class:`float-left`};function be(t,n,a,l,u,p){let g=c(`el-option`),_=c(`el-select`);return h(),o(`div`,_e,[e(`h2`,ve,r(t.$t(`sora.name.action`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`),clearable:``},{default:f(()=>[(h(!0),o(s,null,m(t.options,t=>(h(),d(g,{key:t.value,label:t.label,value:t.value},{default:f(()=>[e(`span`,ye,r(t.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var xe=M(ge,[[`render`,be],[`__scopeId`,`data-v-7b82fa7f`]]),Se=_({name:`DurationSelector`,components:{ElSelect:v,ElOption:y},computed:{model(){return this.$store.state.sora?.config?.model||`sora-2`},allowedDurations(){return E[this.model]||[10]},optionsForModel(){return this.allowedDurations.map(e=>({value:e,label:`${e}s`}))},value:{get(){return this.$store.state.sora?.config?.duration},set(e){let t=this.$store.state.sora?.config||{};this.$store.commit(`sora/setConfig`,{...t,duration:e})}}},watch:{allowedDurations(){let e=this.allowedDurations;if(!e.includes(this.value)){let t=e.includes(10)?10:e[0];this.value=t}}},mounted(){this.value||=10}}),Ce={class:`field`},we={class:`control`},Te={class:`title font-bold`};function Ee(t,n,a,l,u,p){let g=c(`el-option`),_=c(`el-select`);return h(),o(`div`,Ce,[e(`div`,we,[e(`h2`,Te,r(t.$t(`sora.name.duration`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:f(()=>[(h(!0),o(s,null,m(t.optionsForModel,e=>(h(),d(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])])}var De=M(Se,[[`render`,Ee],[`__scopeId`,`data-v-c2934598`]]),Oe=_({name:`OrientationSelector`,data(){return{options:[{value:`portrait`,labelKey:`sora.option.portrait`,width:13,height:25},{value:`landscape`,labelKey:`sora.option.landscape`,width:25,height:13}]}},computed:{active(){let e=this.options.findIndex(e=>e.value===this.value);return e>=0?e:0},value:{get(){return this.$store.state.sora?.config?.orientation},set(e){console.debug(`set orientation`,e),this.$store.commit(`sora/setConfig`,{...this.$store.state?.sora?.config,orientation:e})}}},mounted(){this.value||=A}}),ke={class:`text-sm font-bold mb-2 block`},Ae={class:`items`},je=[`onClick`],Me={class:`name`};function Ne(n,i,a,c,l,u){return h(),o(`div`,null,[e(`span`,ke,r(n.$t(`sora.name.orientation`)),1),e(`div`,Ae,[(h(!0),o(s,null,m(n.options,(i,a)=>(h(),o(`div`,{key:a,class:t({active:n.active===a,item:!0}),onClick:e=>n.value=i.value},[e(`div`,{class:t([`preview`,i.value])},[e(`div`,{class:`rect`,style:p({width:i.width+`px`,height:i.height+`px`})},null,4)],2),e(`p`,Me,r(n.$t(i.labelKey)),1)],10,je))),128))])])}var Pe=M(Oe,[[`render`,Ne],[`__scopeId`,`data-v-a20be6d9`]]),Fe=_({name:`StartEndImage`,components:{ElUpload:b,ElButton:F,InfoIcon:J,FontAwesomeIcon:U,ImagePreview:G},mixins:[V,I],emits:[`change`],data(){return{fileList:[],uploadUrl:P()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state?.sora?.config?.image_urls},set(){}}},mounted(){this.value||=void 0,this.onSetStartEndImageUrl()},methods:{onExceed(){j.warning(this.$t(`sora.message.uploadReferencesExceed`))},onError(){j.error(this.$t(`sora.message.uploadReferencesError`))},onSetStartEndImageUrl(){let e=this.urls;this.$store.commit(`sora/setConfig`,{...this.$store.state?.sora?.config,image_urls:e})},async onSuccess(){this.onSetStartEndImageUrl()}}}),Ie={class:`relative`},Le={class:`flex justify-between`},Re={class:`flex justify-start items-center`},ze={class:`text-sm font-bold`};function Be(t,s,l,u,p,m){let g=c(`info-icon`),_=c(`image-preview`),v=c(`font-awesome-icon`),y=c(`el-button`),b=c(`el-upload`);return h(),o(`div`,Ie,[e(`div`,Le,[e(`div`,Re,[e(`span`,ze,r(t.$t(`sora.name.startEndImage`)),1),i(g,{content:t.$t(`sora.description.uploadStartEndImage`)},null,8,[`content`])])]),i(b,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":s[0]||=e=>t.fileList=e,name:`file`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,limit:2,class:`upload-wrapper`,multiple:!1,action:t.uploadUrl,"list-type":`picture`,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,headers:t.headers},{file:f(({file:e})=>[e.url&&e.percentage!==void 0?(h(),d(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])):a(``,!0)]),default:f(()=>[i(y,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:f(()=>[i(v,{icon:`fa-solid fa-upload`,class:`icon mr-1`}),n(` `+r(t.$t(`sora.button.uploadReferences`)),1)]),_:1})]),_:1},8,[`file-list`,`action`,`on-exceed`,`on-error`,`on-success`,`headers`])])}var Ve=M(Fe,[[`render`,Be],[`__scopeId`,`data-v-4f7d9ba5`]]),He=e=>e&&e.charAt(0).toUpperCase()+e.slice(1),Ue=_({name:`SizeSelector`,components:{ElSelect:v,ElOption:y},data(){return{options:D.map(e=>({value:e,label:He(e)}))}},computed:{value:{get(){return this.$store.state.sora?.config?.size},set(e){let t=this.$store.state.sora?.config||{};this.$store.commit(`sora/setConfig`,{...t,size:e})}}},mounted(){this.value||=T}}),We={class:`field`},Ge={class:`control`},Ke={class:`title font-bold`};function qe(t,n,a,l,u,p){let g=c(`el-option`),_=c(`el-select`);return h(),o(`div`,We,[e(`div`,Ge,[e(`h2`,Ke,r(t.$t(`sora.name.size`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:f(()=>[(h(!0),o(s,null,m(t.options,e=>(h(),d(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])])}var Je=M(Ue,[[`render`,qe],[`__scopeId`,`data-v-8c485f0f`]]),Ye=_({name:`PromptInput`,components:{PromptTextarea:ie},computed:{prompt:{get(){return this.$store.state.sora?.config?.prompt},set(e){this.$store.commit(`sora/setConfig`,{...this.$store.state.sora?.config,prompt:e})}}},mounted(){this.prompt||=``}});function Xe(e,t,n,r,i,a){let o=c(`prompt-textarea`);return h(),d(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`sora.name.prompt`),info:e.$t(`sora.description.prompt`),placeholder:e.$t(`sora.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var Ze=_({name:`ConfigPanel`,components:{ElButton:F,Consumption:q,FontAwesomeIcon:U,PromptInput:M(Ye,[[`render`,Xe]]),ModelSelector:he,StartEndImage:Ve,SizeSelector:Je,ActionSelector:xe,OrientationSelector:Pe,DurationSelector:De},emits:[`generate`],computed:{config(){return this.$store.state.sora?.config},consumption(){return L(this.config,this.service?.cost)},service(){return this.$store.state.sora?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),Qe={class:`flex flex-col h-full`},$e={class:`flex-1 overflow-y-auto p-5`},et={class:`flex flex-col items-center justify-center px-5 pb-5`};function tt(t,a,s,u,d,p){let m=c(`model-selector`),_=c(`action-selector`),v=c(`duration-selector`),y=c(`size-selector`),b=c(`orientation-selector`),x=c(`prompt-input`),S=c(`start-end-image`),C=c(`consumption`),w=c(`font-awesome-icon`),T=c(`el-button`);return h(),o(`div`,Qe,[e(`div`,$e,[i(m,{class:`mb-4`}),i(_,{class:`mb-4`}),i(v,{class:`mb-4`}),i(y,{class:`mb-4`}),i(b,{class:`mb-4`}),i(x,{class:`mb-4`}),l(i(S,{class:`mb-4`},null,512),[[g,t.config?.action===`image2video`]])]),e(`div`,et,[i(C,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),i(T,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:f(()=>[i(w,{icon:`fa-solid fa-magic`,class:`mr-2`}),n(` `+r(t.$t(`sora.button.generate`)),1)]),_:1},8,[`onClick`])])])}var nt=M(Ze,[[`render`,tt]]),rt=_({name:`TaskPreview`,components:{CopyToClipboard:W,FontAwesomeIcon:U,ElAlert:S,VideoPlayer:Q,ElTooltip:x,ElButton:F,ApiCodeButton:ne},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.sora?.application},config(){return this.$store.state.sora?.config}},methods:{onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenVideo(e){window.open(e,`_blank`)}}}),it={class:`preview`},at={class:`left`},ot={class:`main`},st={class:`bot`},ct={class:`datetime`},lt={class:`info`},ut={key:0,class:`prompt mt-2`},dt={key:0},ft={key:1},pt={key:0,class:t({content:!0,failed:!0})},mt={key:0,class:`mb-4`},ht={key:1,class:t({operations:!0,"mt-2":!0})},gt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},_t={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},vt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},yt={key:1,class:t({content:!0})},$={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},bt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},xt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},St={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Ct={key:2,class:t({content:!0})},wt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Tt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function Et(t,s,l,u,p,m){let g=c(`capability-presentation`),_=c(`video-player`),v=c(`el-button`),y=c(`el-tooltip`),b=c(`api-code-button`),x=c(`font-awesome-icon`),S=c(`copy-to-clipboard`),C=c(`el-alert`);return h(),o(`div`,it,[e(`div`,at,[i(g,{capability:`sora`,part:`avatar`,class:`avatar`})]),e(`div`,ot,[e(`div`,st,[i(g,{capability:`sora`,part:`name`}),e(`span`,ct,r(t.$dayjs.format(``+new Date(parseFloat((t.modelValue?.created_at||``).toString())*1e3))),1)]),e(`div`,lt,[t.modelValue?.request?.prompt?(h(),o(`p`,ut,[n(r(t.modelValue?.request?.prompt)+` `,1),t.modelValue?.response?a(``,!0):(h(),o(`span`,dt,` - (`+r(t.$t(`sora.status.pending`))+`) `,1)),Array.isArray(t.modelValue?.response?.data)&&t.modelValue?.response?.data[0]?.state===`pending`?(h(),o(`span`,ft,` - (`+r(t.$t(`sora.status.processing`))+`) `,1)):a(``,!0)])):a(``,!0)]),t.modelValue?.response?.success===!0&&t.modelValue?.response?.data?(h(),o(`div`,pt,[t.modelValue?.response?.data[0]?.video_url?(h(),o(`div`,mt,[i(_,{src:t.modelValue?.response?.data[0]?.video_url},null,8,[`src`])])):a(``,!0),t.modelValue?.response.success?(h(),o(`div`,ht,[i(y,{class:`box-item`,effect:`dark`,content:t.$t(`sora.message.downloadVideo`),placement:`top-start`},{default:f(()=>[t.modelValue?.response?.data[0]?.video_url?(h(),d(v,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:s[0]||=e=>t.onDownload(e,t.modelValue?.response?.data[0]?.video_url)},{default:f(()=>[n(r(t.$t(`sora.button.download`)),1)]),_:1})):a(``,!0)]),_:1},8,[`content`]),i(b,{path:`/sora/videos`,body:t.modelValue?.request},null,8,[`body`])])):a(``,!0),i(C,{closable:!1,class:`mt-2 success`},{default:f(()=>[e(`p`,gt,[i(x,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.model`))+`: `+r(t.modelValue?.request?.model),1)]),e(`p`,_t,[i(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.taskId`))+`: `+r(t.modelValue?.id)+` `,1),i(S,{content:t.modelValue?.id},null,8,[`content`])]),t.modelValue?.elapsed?(h(),o(`p`,vt,[i(x,{icon:`fa-solid fa-clock`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.elapsed`))+`: `+r(t.modelValue?.elapsed?.toFixed(2))+`s `,1)])):a(``,!0)]),_:1})])):a(``,!0),t.modelValue?.response?.success===!1?(h(),o(`div`,yt,[i(C,{closable:!1,class:`failure`},{template:f(()=>[i(x,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.failure`)),1)]),default:f(()=>[e(`p`,$,[i(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.taskId`))+`: `+r(t.modelValue?.id)+` `,1),i(S,{content:t.modelValue?.id},null,8,[`content`])]),e(`p`,bt,[i(x,{icon:`fa-solid fa-circle-info`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.failureReason`))+`: `+r(t.modelValue?.response?.error?.message)+` `,1),i(S,{content:t.modelValue?.response?.error?.message},null,8,[`content`])]),t.modelValue?.elapsed?(h(),o(`p`,xt,[i(x,{icon:`fa-solid fa-clock`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.elapsed`))+`: `+r(t.modelValue?.elapsed?.toFixed(2))+`s `,1)])):a(``,!0),t.modelValue?.response?.trace_id?(h(),o(`p`,St,[i(x,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.traceId`))+`: `+r(t.modelValue?.response?.trace_id)+` `,1),i(S,{content:t.modelValue?.response?.trace_id},null,8,[`content`])])):a(``,!0)]),_:1})])):a(``,!0),t.modelValue?.response?.success===void 0?(h(),o(`div`,Ct,[i(C,{closable:!1,class:`info`},{template:f(()=>[i(x,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.failure`)),1)]),default:f(()=>[e(`p`,wt,[i(x,{icon:`fa-solid fa-magic`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.taskId`))+`: `+r(t.modelValue?.id)+` `,1),i(S,{content:t.modelValue?.id},null,8,[`content`])]),t.modelValue?.response?.trace_id?(h(),o(`p`,Tt,[i(x,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),n(` `+r(t.$t(`sora.name.traceId`))+`: `+r(t.modelValue?.response?.trace_id)+` `,1),i(S,{content:t.modelValue?.response?.trace_id},null,8,[`content`])])):a(``,!0)]),_:1})])):a(``,!0)])])}var Dt=_({name:`RecentPanel`,components:{TaskPreview:M(rt,[[`render`,Et],[`__scopeId`,`data-v-ac6d711d`]]),NoTasks:X,BotPlaceholder:re,ScrollList:Y},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.sora?.tasks,items:this.$store.state.sora?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Ot={key:0},kt={key:2,class:`w-full h-full flex items-center justify-center`};function At(e,t,n,r,l,u){let p=c(`bot-placeholder`),g=c(`task-preview`),_=c(`scroll-list`),v=c(`no-tasks`);return h(),o(s,null,[e.tasks?.items===void 0?(h(),o(`div`,Ot,[i(p)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(h(),d(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:f(()=>[(h(!0),o(s,null,m(e.tasks?.items,(e,t)=>(h(),d(g,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):a(``,!0),e.tasks?.items?.length===0?(h(),o(`div`,kt,[i(v)])):a(``,!0)],64)}var jt=_({name:`SoraIndex`,components:{ConfigPanel:nt,Layout:ue,RecentPanel:M(Dt,[[`render`,At]])},mixins:[R],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.sora?.status?.getApplications===N.Request},tasksLoading(){return this.$store.state.sora?.status?.getTasks===N.Request||this.fetchingTasks},credential(){return this.$store.state.sora.credential},config(){return this.$store.state.sora.config},tasks(){return this.$store.state.sora.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await Z({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`sora/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`sora/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`sora/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!z(this.uploadTracker,e=>this.$t(e),e=>j.warning(e)))return;let e={...this.config,async:!0};if(!H())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}j.info(this.$t(`sora.message.startingTask`)),te(`sora`,B.generate(e,{token:t})).then(()=>{j.success(this.$t(`sora.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?j.error(this.$t(`sora.message.usedUp`)):j.error(this.$t(`sora.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Mt(e,t,n,r,a,o){let s=c(`config-panel`),l=c(`recent-panel`),u=c(`layout`);return h(),d(u,null,{config:f(()=>[i(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:f(()=>[i(l,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Nt=M(jt,[[`render`,Mt]]);export{Nt as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,Gt as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,j as l,mt as u,rt as d,tt as f,z as p}from"./vendor-chart-Dw-P17PN.js";import{J as m,Q as h,Tn as ee,Xi as g,i as _,r as v}from"./index-D01uplks.js";import{t as y}from"./index.es-B8pcsdkV.js";var b=(e,t)=>({zh:e,en:t}),x=`https://platform.acedata.cloud/documents/studio-overview`,S=new Set([`qrart`,`pika`]),C={auth:b(`https://cdn.acedata.cloud/ae2dceaacc.png`,`https://cdn.acedata.cloud/61f717db6c.png`),branding:b(`https://cdn.acedata.cloud/d54f145c5c.png`,`https://cdn.acedata.cloud/6d59646c4d.png`),capabilities:b(`https://cdn.acedata.cloud/2369fa145f.png`,`https://cdn.acedata.cloud/082a69ca54.png`),digitalHumanDesktop:b(`https://cdn.acedata.cloud/b9ee357c33.png`,`https://cdn.acedata.cloud/a0228b206a.png`),distributionDesktop:b(`https://cdn.acedata.cloud/6c25c74a49.png`,`https://cdn.acedata.cloud/a1e62e4425.png`),klingDesktop:b(`https://cdn.acedata.cloud/e45bc3e2e2.png`,`https://cdn.acedata.cloud/03d73b16ce.png`),klingMobile:b(`https://cdn.acedata.cloud/10dc431467.png`,`https://cdn.acedata.cloud/ea10c8e395.png`),maestroDesktop:b(`https://cdn.acedata.cloud/1791398216.png`,`https://cdn.acedata.cloud/7854458ee3.png`),nanoDesktop:b(`https://cdn.acedata.cloud/82252ec647.png`,`https://cdn.acedata.cloud/e047aea679.png`),nanoMobile:b(`https://cdn.acedata.cloud/c7da634c96.png`,`https://cdn.acedata.cloud/dc5b2cca1d.png`),subsites:b(`https://cdn.acedata.cloud/bf4356fffc.png`,`https://cdn.acedata.cloud/b1948ec2a2.png`),sunoDesktop:b(`https://cdn.acedata.cloud/8ce288065b.png`,`https://cdn.acedata.cloud/1eebf72e3a.png`)},w=[{key:`subsites`,eyebrowKey:`index.eyebrow.subsites`,titleKey:`index.title.subsites`,subtitleKey:`index.subtitle.subsites`,buttonKey:`index.button.learnBusiness`,path:`/chatgpt?dialog=settings&tab=subsites`,href:x,desktop:C.subsites,bulletKeys:[`index.benefit.subsites.noServer`,`index.benefit.subsites.customDomain`,`index.benefit.subsites.branding`]},{key:`capabilities`,eyebrowKey:`index.eyebrow.capabilities`,titleKey:`index.title.capabilities`,subtitleKey:`index.subtitle.capabilities`,buttonKey:`index.button.learnBusiness`,path:`/chatgpt?dialog=settings&tab=function`,href:x,desktop:C.capabilities,bulletKeys:[`index.benefit.capabilities.catalog`,`index.benefit.capabilities.display`,`index.benefit.capabilities.pricing`]},{key:`operations`,eyebrowKey:`index.eyebrow.operations`,titleKey:`index.title.operations`,subtitleKey:`index.subtitle.operations`,buttonKey:`index.button.learnBusiness`,path:`/chatgpt?dialog=settings&tab=seo`,href:x,desktop:C.auth,bulletKeys:[`index.benefit.operations.seo`,`index.benefit.operations.auth`,`index.benefit.operations.localization`]},{key:`distribution`,eyebrowKey:`index.eyebrow.distribution`,titleKey:`index.title.distribution`,subtitleKey:`index.subtitle.distribution`,buttonKey:`index.button.learnBusiness`,path:`/distribution`,href:x,desktop:C.distributionDesktop,bulletKeys:[`index.benefit.distribution.noBarrier`,`index.benefit.distribution.levels`,`index.benefit.distribution.withdrawal`]}],T=[{key:`image`,featureKeys:[`nanobanana`],eyebrowKey:`index.eyebrow.image`,titleKey:`index.title.image`,subtitleKey:`index.subtitle.image`,buttonKey:`index.button.try`,path:`/nanobanana`,desktop:C.nanoDesktop,mobile:C.nanoMobile},{key:`music`,featureKeys:[`suno`],eyebrowKey:`index.eyebrow.music`,titleKey:`index.title.music`,subtitleKey:`index.subtitle.music`,buttonKey:`index.button.try`,path:`/suno`,desktop:C.sunoDesktop},{key:`workflow`,featureKeys:[`maestro`],eyebrowKey:`index.eyebrow.workflow`,titleKey:`index.title.workflow`,subtitleKey:`index.subtitle.workflow`,buttonKey:`index.button.try`,path:`/maestro`,desktop:C.maestroDesktop},{key:`digitalHuman`,featureKeys:[`digitalhuman`],eyebrowKey:`index.eyebrow.digitalHuman`,titleKey:`index.title.digitalHuman`,subtitleKey:`index.subtitle.digitalHuman`,buttonKey:`index.button.try`,path:`/digital-human`,desktop:C.digitalHumanDesktop}],E=p({name:`Index`,components:{ElButton:g,FontAwesomeIcon:y},data(){return{}},computed:{site(){return this.$store.state.site},enabledFeatures(){return this.site?.features??{}},isMainSite(){let e=typeof window>`u`?``:window.location.hostname,t=e.endsWith(`.plain-river-2dfc.workers.dev`)&&this.site?.origin===e&&this.site?.title===`Ace Data Cloud`&&this.site?.branding===null;return this.site?.origin===`studio.acedata.cloud`||ee()||t},capabilityCount(){return this.site?.id?this.capabilityCards.length:_.length},isChineseLocale(){return String(this.$i18n.locale).toLowerCase()===`zh-cn`},heroDesktop(){return this.localizedImage(C.klingDesktop)},heroMobile(){return this.localizedImage(C.klingMobile)},businessShowcases(){return w.filter(e=>e.key!==`subsites`||this.isMainSite).map(e=>this.resolveShowcase(e))},creationShowcases(){return(this.isMainSite?T:T.filter(e=>e.featureKeys?.some(e=>this.enabledFeatures[e]?.enabled))).map(e=>this.resolveShowcase(e))},capabilityCards(){return(this.isMainSite?_:_.filter(e=>this.enabledFeatures[e]?.enabled)).filter(e=>!S.has(e)).map(e=>({key:e,label:this.$t(`site.field.features${e.charAt(0).toUpperCase()}${e.slice(1)}`),icon:v[e]}))}},methods:{localizedImage(e){return this.isChineseLocale?e.zh:e.en},resolveShowcase(e){return{...e,desktop:this.localizedImage(e.desktop),mobile:e.mobile?this.localizedImage(e.mobile):void 0}},onStart(){this.$router.push(h())},openShowcase(e){this.$router.push(e.path)},openSubsites(){this.$router.push(`/chatgpt?dialog=settings&tab=subsites`)},scrollToPlatform(){this.scrollToSection(`platform`)},scrollToCreation(){this.scrollToSection(`creation`)},scrollToSubsites(){this.scrollToSection(`subsites`)},scrollToSection(e){let t=document.getElementById(`app`),n=document.getElementById(e);if(!t||!n)return;let r=document.querySelector(`.header`)?.offsetHeight??0;t.scrollTop=n.offsetTop-r}}}),D={class:`landing`},O={class:`hero`},k={class:`container hero__content`},A={class:`hero__copy`},j={class:`eyebrow`},M={class:`hero__headline`},N={class:`hero__summary`},P={class:`hero__actions`},F={class:`hero__stats`},I={class:`hero__screens`},L={class:`macbook-frame hero__desktop`,"aria-hidden":`true`},R={class:`macbook-frame__lid`},z={class:`macbook-frame__viewport`},B=[`src`],V={class:`phone-device hero__mobile`,"aria-hidden":`true`},H={class:`phone-device__screen`},U=[`src`],W={id:`platform`,class:`section platform-section`},G={class:`container`},K={class:`section-heading section-heading--wide`},q={class:`eyebrow eyebrow--light`},J=[`id`],Y={class:`platform-story__copy`},te={class:`story-number`},X={class:`story-kicker`},Z={class:`feature-points`},Q={class:`screen-pair screen-pair--large`},ne={class:`macbook-frame screen-pair__desktop`},re={class:`macbook-frame__lid`},ie={class:`macbook-frame__viewport`},ae=[`src`,`alt`],oe={id:`creation`,class:`section creation-section`},se={class:`container`},ce={class:`section-heading`},le={class:`eyebrow eyebrow--light`},ue={class:`creation-grid`},de={class:`macbook-frame screen-pair__desktop`},fe={class:`macbook-frame__lid`},pe={class:`macbook-frame__viewport`},me=[`src`,`alt`],he={key:0,class:`phone-device screen-pair__mobile`},ge={class:`phone-device__screen`},_e=[`src`],ve={class:`creation-item__copy`},ye={class:`story-kicker`},be=[`onClick`],$={class:`section capability-section`},xe={class:`container`},Se={class:`section-heading section-heading--wide`},Ce={class:`eyebrow eyebrow--light`},we={class:`capability-directory`},Te=[`src`],Ee={class:`final-cta`},De={class:`container final-cta__content`},Oe={class:`story-kicker`},ke={class:`final-cta__actions`};function Ae(p,m,h,ee,g,_){let v=c(`el-button`),y=c(`font-awesome-icon`);return f(),o(`div`,D,[e(`section`,O,[m[9]||=e(`div`,{class:`hero__grid`},null,-1),e(`div`,k,[e(`div`,A,[e(`span`,j,r(p.$t(`index.badge.hero`)),1),e(`h1`,null,r(p.site?.title),1),e(`p`,M,r(p.$t(`index.subtitle.banner`)),1),e(`p`,N,r(p.$t(`index.subtitle.hero`)),1),e(`div`,P,[i(v,{type:`primary`,size:`large`,onClick:p.onStart},{default:u(()=>[n(r(p.$t(`common.button.startForFree`)),1)]),_:1},8,[`onClick`]),i(v,{size:`large`,onClick:p.scrollToPlatform},{default:u(()=>[n(r(p.$t(`index.button.explore`)),1)]),_:1},8,[`onClick`])]),e(`dl`,F,[e(`div`,null,[e(`dt`,null,r(p.capabilityCount)+`+`,1),e(`dd`,null,r(p.$t(`index.stat.capabilities`)),1)]),e(`div`,null,[m[2]||=e(`dt`,null,`5 min`,-1),e(`dd`,null,r(p.$t(`index.stat.subsite`)),1)]),e(`div`,null,[m[3]||=e(`dt`,null,`24%`,-1),e(`dd`,null,r(p.$t(`index.stat.commission`)),1)])])]),e(`div`,I,[e(`div`,L,[e(`div`,R,[m[4]||=e(`span`,{class:`macbook-frame__camera`},null,-1),e(`div`,z,[e(`img`,{src:p.heroDesktop,alt:``},null,8,B)]),m[5]||=e(`div`,{class:`macbook-frame__chin`},null,-1)]),m[6]||=e(`div`,{class:`macbook-frame__base`},[e(`span`)],-1)]),e(`div`,V,[m[8]||=e(`span`,{class:`phone-device__speaker`},null,-1),e(`div`,H,[m[7]||=e(`span`,{class:`phone-device__island`},null,-1),e(`img`,{src:p.heroMobile,alt:``},null,8,U)])]),e(`button`,{type:`button`,class:`hero__note hero__note--top`,onClick:m[0]||=(...e)=>p.scrollToCreation&&p.scrollToCreation(...e)},[i(y,{icon:`fa-solid fa-wand-magic-sparkles`}),e(`span`,null,r(p.$t(`index.note.allInOne`)),1)]),p.isMainSite?(f(),o(`button`,{key:0,type:`button`,class:`hero__note hero__note--bottom`,onClick:m[1]||=(...e)=>p.scrollToSubsites&&p.scrollToSubsites(...e)},[i(y,{icon:`fa-solid fa-globe`}),e(`span`,null,r(p.$t(`index.note.customDomain`)),1)])):a(``,!0)])])]),e(`section`,W,[e(`div`,G,[e(`div`,K,[e(`span`,q,r(p.$t(`index.eyebrow.business`)),1),e(`h2`,null,r(p.$t(`index.title.business`)),1),e(`p`,null,r(p.$t(`index.subtitle.business`)),1)]),(f(!0),o(s,null,d(p.businessShowcases,(a,c)=>(f(),o(`article`,{id:a.key,key:a.key,class:t([`platform-story`,{"platform-story--reverse":c%2==1}])},[e(`div`,Y,[e(`span`,te,`0`+r(c+1),1),e(`p`,X,r(p.$t(a.eyebrowKey)),1),e(`h3`,null,r(p.$t(a.titleKey)),1),e(`p`,null,r(p.$t(a.subtitleKey)),1),e(`ul`,Z,[(f(!0),o(s,null,d(a.bulletKeys,t=>(f(),o(`li`,{key:t},[i(y,{icon:`fa-solid fa-check`}),e(`span`,null,r(p.$t(t)),1)]))),128))]),a.href?(f(),l(v,{key:0,tag:`a`,type:`primary`,plain:``,href:a.href,target:`_blank`,rel:`noopener noreferrer`},{default:u(()=>[n(r(p.$t(a.buttonKey))+` `,1),i(y,{icon:`fa-solid fa-arrow-right`})]),_:2},1032,[`href`])):(f(),l(v,{key:1,type:`primary`,plain:``,onClick:e=>p.openShowcase(a)},{default:u(()=>[n(r(p.$t(a.buttonKey))+` `,1),i(y,{icon:`fa-solid fa-arrow-right`})]),_:2},1032,[`onClick`]))]),e(`div`,Q,[e(`div`,ne,[e(`div`,re,[m[10]||=e(`span`,{class:`macbook-frame__camera`,"aria-hidden":`true`},null,-1),e(`div`,ie,[e(`img`,{src:a.desktop,alt:p.$t(a.titleKey),loading:`lazy`},null,8,ae)]),m[11]||=e(`div`,{class:`macbook-frame__chin`},null,-1)]),m[12]||=e(`div`,{class:`macbook-frame__base`},[e(`span`)],-1)])])],10,J))),128))])]),e(`section`,oe,[e(`div`,se,[e(`div`,ce,[e(`span`,le,r(p.$t(`index.eyebrow.creation`)),1),e(`h2`,null,r(p.$t(`index.title.creation`)),1),e(`p`,null,r(p.$t(`index.subtitle.creation`)),1)]),e(`div`,ue,[(f(!0),o(s,null,d(p.creationShowcases,n=>(f(),o(`article`,{key:n.key,class:`creation-item`},[e(`div`,{class:t([`screen-pair`,{"screen-pair--with-phone":n.mobile}])},[e(`div`,de,[e(`div`,fe,[m[13]||=e(`span`,{class:`macbook-frame__camera`,"aria-hidden":`true`},null,-1),e(`div`,pe,[e(`img`,{src:n.desktop,alt:p.$t(n.titleKey),loading:`lazy`},null,8,me)]),m[14]||=e(`div`,{class:`macbook-frame__chin`},null,-1)]),m[15]||=e(`div`,{class:`macbook-frame__base`},[e(`span`)],-1)]),n.mobile?(f(),o(`div`,he,[m[17]||=e(`span`,{class:`phone-device__speaker`,"aria-hidden":`true`},null,-1),e(`div`,ge,[m[16]||=e(`span`,{class:`phone-device__island`,"aria-hidden":`true`},null,-1),e(`img`,{src:n.mobile,alt:``,loading:`lazy`},null,8,_e)])])):a(``,!0)],2),e(`div`,ve,[e(`div`,null,[e(`p`,ye,r(p.$t(n.eyebrowKey)),1),e(`h3`,null,r(p.$t(n.titleKey)),1)]),i(y,{icon:`fa-solid fa-arrow-up-right-from-square`}),e(`p`,null,r(p.$t(n.subtitleKey)),1),e(`button`,{type:`button`,class:`creation-item__link`,onClick:e=>p.openShowcase(n)},r(p.$t(`index.button.try`)),9,be)])]))),128))])])]),e(`section`,$,[e(`div`,xe,[e(`div`,Se,[e(`span`,Ce,r(p.$t(`index.eyebrow.directory`)),1),e(`h2`,null,r(p.$t(`index.title.directory`)),1),e(`p`,null,r(p.$t(`index.subtitle.directory`)),1)]),e(`div`,we,[(f(!0),o(s,null,d(p.capabilityCards,t=>(f(),o(`div`,{key:t.key,class:`capability-row`},[e(`img`,{src:t.icon,alt:``},null,8,Te),e(`span`,null,r(t.label),1)]))),128))])])]),e(`section`,Ee,[e(`div`,De,[e(`div`,null,[e(`p`,Oe,r(p.$t(`index.eyebrow.cta`)),1),e(`h2`,null,r(p.$t(`index.title.cta`)),1),e(`p`,null,r(p.$t(`index.subtitle.cta`)),1)]),e(`div`,ke,[i(v,{type:`primary`,size:`large`,onClick:p.onStart},{default:u(()=>[n(r(p.$t(`common.button.startForFree`)),1)]),_:1},8,[`onClick`]),p.isMainSite?(f(),l(v,{key:0,size:`large`,onClick:p.openSubsites},{default:u(()=>[n(r(p.$t(`index.button.createSubsite`)),1)]),_:1},8,[`onClick`])):a(``,!0)])])])])}var je=m(E,[[`render`,Ae],[`__scopeId`,`data-v-87902b18`]]);export{je as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,Gt as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,j as l,mt as u,rt as d,tt as f,z as p}from"./vendor-chart-Dw-P17PN.js";import{J as m,Q as h,Tn as ee,Xi as g,i as _,r as v}from"./index-C_zMaSTl.js";import{t as y}from"./index.es-BM-ykXwl.js";var b=(e,t)=>({zh:e,en:t}),x=`https://platform.acedata.cloud/documents/studio-overview`,S=new Set([`qrart`,`pika`]),C={auth:b(`https://cdn.acedata.cloud/ae2dceaacc.png`,`https://cdn.acedata.cloud/61f717db6c.png`),branding:b(`https://cdn.acedata.cloud/d54f145c5c.png`,`https://cdn.acedata.cloud/6d59646c4d.png`),capabilities:b(`https://cdn.acedata.cloud/2369fa145f.png`,`https://cdn.acedata.cloud/082a69ca54.png`),digitalHumanDesktop:b(`https://cdn.acedata.cloud/b9ee357c33.png`,`https://cdn.acedata.cloud/a0228b206a.png`),distributionDesktop:b(`https://cdn.acedata.cloud/6c25c74a49.png`,`https://cdn.acedata.cloud/a1e62e4425.png`),klingDesktop:b(`https://cdn.acedata.cloud/e45bc3e2e2.png`,`https://cdn.acedata.cloud/03d73b16ce.png`),klingMobile:b(`https://cdn.acedata.cloud/10dc431467.png`,`https://cdn.acedata.cloud/ea10c8e395.png`),maestroDesktop:b(`https://cdn.acedata.cloud/1791398216.png`,`https://cdn.acedata.cloud/7854458ee3.png`),nanoDesktop:b(`https://cdn.acedata.cloud/82252ec647.png`,`https://cdn.acedata.cloud/e047aea679.png`),nanoMobile:b(`https://cdn.acedata.cloud/c7da634c96.png`,`https://cdn.acedata.cloud/dc5b2cca1d.png`),subsites:b(`https://cdn.acedata.cloud/bf4356fffc.png`,`https://cdn.acedata.cloud/b1948ec2a2.png`),sunoDesktop:b(`https://cdn.acedata.cloud/8ce288065b.png`,`https://cdn.acedata.cloud/1eebf72e3a.png`)},w=[{key:`subsites`,eyebrowKey:`index.eyebrow.subsites`,titleKey:`index.title.subsites`,subtitleKey:`index.subtitle.subsites`,buttonKey:`index.button.learnBusiness`,path:`/chatgpt?dialog=settings&tab=subsites`,href:x,desktop:C.subsites,bulletKeys:[`index.benefit.subsites.noServer`,`index.benefit.subsites.customDomain`,`index.benefit.subsites.branding`]},{key:`capabilities`,eyebrowKey:`index.eyebrow.capabilities`,titleKey:`index.title.capabilities`,subtitleKey:`index.subtitle.capabilities`,buttonKey:`index.button.learnBusiness`,path:`/chatgpt?dialog=settings&tab=function`,href:x,desktop:C.capabilities,bulletKeys:[`index.benefit.capabilities.catalog`,`index.benefit.capabilities.display`,`index.benefit.capabilities.pricing`]},{key:`operations`,eyebrowKey:`index.eyebrow.operations`,titleKey:`index.title.operations`,subtitleKey:`index.subtitle.operations`,buttonKey:`index.button.learnBusiness`,path:`/chatgpt?dialog=settings&tab=seo`,href:x,desktop:C.auth,bulletKeys:[`index.benefit.operations.seo`,`index.benefit.operations.auth`,`index.benefit.operations.localization`]},{key:`distribution`,eyebrowKey:`index.eyebrow.distribution`,titleKey:`index.title.distribution`,subtitleKey:`index.subtitle.distribution`,buttonKey:`index.button.learnBusiness`,path:`/distribution`,href:x,desktop:C.distributionDesktop,bulletKeys:[`index.benefit.distribution.noBarrier`,`index.benefit.distribution.levels`,`index.benefit.distribution.withdrawal`]}],T=[{key:`image`,featureKeys:[`nanobanana`],eyebrowKey:`index.eyebrow.image`,titleKey:`index.title.image`,subtitleKey:`index.subtitle.image`,buttonKey:`index.button.try`,path:`/nanobanana`,desktop:C.nanoDesktop,mobile:C.nanoMobile},{key:`music`,featureKeys:[`suno`],eyebrowKey:`index.eyebrow.music`,titleKey:`index.title.music`,subtitleKey:`index.subtitle.music`,buttonKey:`index.button.try`,path:`/suno`,desktop:C.sunoDesktop},{key:`workflow`,featureKeys:[`maestro`],eyebrowKey:`index.eyebrow.workflow`,titleKey:`index.title.workflow`,subtitleKey:`index.subtitle.workflow`,buttonKey:`index.button.try`,path:`/maestro`,desktop:C.maestroDesktop},{key:`digitalHuman`,featureKeys:[`digitalhuman`],eyebrowKey:`index.eyebrow.digitalHuman`,titleKey:`index.title.digitalHuman`,subtitleKey:`index.subtitle.digitalHuman`,buttonKey:`index.button.try`,path:`/digital-human`,desktop:C.digitalHumanDesktop}],E=p({name:`Index`,components:{ElButton:g,FontAwesomeIcon:y},data(){return{}},computed:{site(){return this.$store.state.site},enabledFeatures(){return this.site?.features??{}},isMainSite(){let e=typeof window>`u`?``:window.location.hostname,t=e.endsWith(`.plain-river-2dfc.workers.dev`)&&this.site?.origin===e&&this.site?.title===`Ace Data Cloud`&&this.site?.branding===null;return this.site?.origin===`studio.acedata.cloud`||ee()||t},capabilityCount(){return this.site?.id?this.capabilityCards.length:_.length},isChineseLocale(){return String(this.$i18n.locale).toLowerCase()===`zh-cn`},heroDesktop(){return this.localizedImage(C.klingDesktop)},heroMobile(){return this.localizedImage(C.klingMobile)},businessShowcases(){return w.filter(e=>e.key!==`subsites`||this.isMainSite).map(e=>this.resolveShowcase(e))},creationShowcases(){return(this.isMainSite?T:T.filter(e=>e.featureKeys?.some(e=>this.enabledFeatures[e]?.enabled))).map(e=>this.resolveShowcase(e))},capabilityCards(){return(this.isMainSite?_:_.filter(e=>this.enabledFeatures[e]?.enabled)).filter(e=>!S.has(e)).map(e=>({key:e,label:this.$t(`site.field.features${e.charAt(0).toUpperCase()}${e.slice(1)}`),icon:v[e]}))}},methods:{localizedImage(e){return this.isChineseLocale?e.zh:e.en},resolveShowcase(e){return{...e,desktop:this.localizedImage(e.desktop),mobile:e.mobile?this.localizedImage(e.mobile):void 0}},onStart(){this.$router.push(h())},openShowcase(e){this.$router.push(e.path)},openSubsites(){this.$router.push(`/chatgpt?dialog=settings&tab=subsites`)},scrollToPlatform(){this.scrollToSection(`platform`)},scrollToCreation(){this.scrollToSection(`creation`)},scrollToSubsites(){this.scrollToSection(`subsites`)},scrollToSection(e){let t=document.getElementById(`app`),n=document.getElementById(e);if(!t||!n)return;let r=document.querySelector(`.header`)?.offsetHeight??0;t.scrollTop=n.offsetTop-r}}}),D={class:`landing`},O={class:`hero`},k={class:`container hero__content`},A={class:`hero__copy`},j={class:`eyebrow`},M={class:`hero__headline`},N={class:`hero__summary`},P={class:`hero__actions`},F={class:`hero__stats`},I={class:`hero__screens`},L={class:`macbook-frame hero__desktop`,"aria-hidden":`true`},R={class:`macbook-frame__lid`},z={class:`macbook-frame__viewport`},B=[`src`],V={class:`phone-device hero__mobile`,"aria-hidden":`true`},H={class:`phone-device__screen`},U=[`src`],W={id:`platform`,class:`section platform-section`},G={class:`container`},K={class:`section-heading section-heading--wide`},q={class:`eyebrow eyebrow--light`},J=[`id`],Y={class:`platform-story__copy`},te={class:`story-number`},X={class:`story-kicker`},Z={class:`feature-points`},Q={class:`screen-pair screen-pair--large`},ne={class:`macbook-frame screen-pair__desktop`},re={class:`macbook-frame__lid`},ie={class:`macbook-frame__viewport`},ae=[`src`,`alt`],oe={id:`creation`,class:`section creation-section`},se={class:`container`},ce={class:`section-heading`},le={class:`eyebrow eyebrow--light`},ue={class:`creation-grid`},de={class:`macbook-frame screen-pair__desktop`},fe={class:`macbook-frame__lid`},pe={class:`macbook-frame__viewport`},me=[`src`,`alt`],he={key:0,class:`phone-device screen-pair__mobile`},ge={class:`phone-device__screen`},_e=[`src`],ve={class:`creation-item__copy`},ye={class:`story-kicker`},be=[`onClick`],$={class:`section capability-section`},xe={class:`container`},Se={class:`section-heading section-heading--wide`},Ce={class:`eyebrow eyebrow--light`},we={class:`capability-directory`},Te=[`src`],Ee={class:`final-cta`},De={class:`container final-cta__content`},Oe={class:`story-kicker`},ke={class:`final-cta__actions`};function Ae(p,m,h,ee,g,_){let v=c(`el-button`),y=c(`font-awesome-icon`);return f(),o(`div`,D,[e(`section`,O,[m[9]||=e(`div`,{class:`hero__grid`},null,-1),e(`div`,k,[e(`div`,A,[e(`span`,j,r(p.$t(`index.badge.hero`)),1),e(`h1`,null,r(p.site?.title),1),e(`p`,M,r(p.$t(`index.subtitle.banner`)),1),e(`p`,N,r(p.$t(`index.subtitle.hero`)),1),e(`div`,P,[i(v,{type:`primary`,size:`large`,onClick:p.onStart},{default:u(()=>[n(r(p.$t(`common.button.startForFree`)),1)]),_:1},8,[`onClick`]),i(v,{size:`large`,onClick:p.scrollToPlatform},{default:u(()=>[n(r(p.$t(`index.button.explore`)),1)]),_:1},8,[`onClick`])]),e(`dl`,F,[e(`div`,null,[e(`dt`,null,r(p.capabilityCount)+`+`,1),e(`dd`,null,r(p.$t(`index.stat.capabilities`)),1)]),e(`div`,null,[m[2]||=e(`dt`,null,`5 min`,-1),e(`dd`,null,r(p.$t(`index.stat.subsite`)),1)]),e(`div`,null,[m[3]||=e(`dt`,null,`24%`,-1),e(`dd`,null,r(p.$t(`index.stat.commission`)),1)])])]),e(`div`,I,[e(`div`,L,[e(`div`,R,[m[4]||=e(`span`,{class:`macbook-frame__camera`},null,-1),e(`div`,z,[e(`img`,{src:p.heroDesktop,alt:``},null,8,B)]),m[5]||=e(`div`,{class:`macbook-frame__chin`},null,-1)]),m[6]||=e(`div`,{class:`macbook-frame__base`},[e(`span`)],-1)]),e(`div`,V,[m[8]||=e(`span`,{class:`phone-device__speaker`},null,-1),e(`div`,H,[m[7]||=e(`span`,{class:`phone-device__island`},null,-1),e(`img`,{src:p.heroMobile,alt:``},null,8,U)])]),e(`button`,{type:`button`,class:`hero__note hero__note--top`,onClick:m[0]||=(...e)=>p.scrollToCreation&&p.scrollToCreation(...e)},[i(y,{icon:`fa-solid fa-wand-magic-sparkles`}),e(`span`,null,r(p.$t(`index.note.allInOne`)),1)]),p.isMainSite?(f(),o(`button`,{key:0,type:`button`,class:`hero__note hero__note--bottom`,onClick:m[1]||=(...e)=>p.scrollToSubsites&&p.scrollToSubsites(...e)},[i(y,{icon:`fa-solid fa-globe`}),e(`span`,null,r(p.$t(`index.note.customDomain`)),1)])):a(``,!0)])])]),e(`section`,W,[e(`div`,G,[e(`div`,K,[e(`span`,q,r(p.$t(`index.eyebrow.business`)),1),e(`h2`,null,r(p.$t(`index.title.business`)),1),e(`p`,null,r(p.$t(`index.subtitle.business`)),1)]),(f(!0),o(s,null,d(p.businessShowcases,(a,c)=>(f(),o(`article`,{id:a.key,key:a.key,class:t([`platform-story`,{"platform-story--reverse":c%2==1}])},[e(`div`,Y,[e(`span`,te,`0`+r(c+1),1),e(`p`,X,r(p.$t(a.eyebrowKey)),1),e(`h3`,null,r(p.$t(a.titleKey)),1),e(`p`,null,r(p.$t(a.subtitleKey)),1),e(`ul`,Z,[(f(!0),o(s,null,d(a.bulletKeys,t=>(f(),o(`li`,{key:t},[i(y,{icon:`fa-solid fa-check`}),e(`span`,null,r(p.$t(t)),1)]))),128))]),a.href?(f(),l(v,{key:0,tag:`a`,type:`primary`,plain:``,href:a.href,target:`_blank`,rel:`noopener noreferrer`},{default:u(()=>[n(r(p.$t(a.buttonKey))+` `,1),i(y,{icon:`fa-solid fa-arrow-right`})]),_:2},1032,[`href`])):(f(),l(v,{key:1,type:`primary`,plain:``,onClick:e=>p.openShowcase(a)},{default:u(()=>[n(r(p.$t(a.buttonKey))+` `,1),i(y,{icon:`fa-solid fa-arrow-right`})]),_:2},1032,[`onClick`]))]),e(`div`,Q,[e(`div`,ne,[e(`div`,re,[m[10]||=e(`span`,{class:`macbook-frame__camera`,"aria-hidden":`true`},null,-1),e(`div`,ie,[e(`img`,{src:a.desktop,alt:p.$t(a.titleKey),loading:`lazy`},null,8,ae)]),m[11]||=e(`div`,{class:`macbook-frame__chin`},null,-1)]),m[12]||=e(`div`,{class:`macbook-frame__base`},[e(`span`)],-1)])])],10,J))),128))])]),e(`section`,oe,[e(`div`,se,[e(`div`,ce,[e(`span`,le,r(p.$t(`index.eyebrow.creation`)),1),e(`h2`,null,r(p.$t(`index.title.creation`)),1),e(`p`,null,r(p.$t(`index.subtitle.creation`)),1)]),e(`div`,ue,[(f(!0),o(s,null,d(p.creationShowcases,n=>(f(),o(`article`,{key:n.key,class:`creation-item`},[e(`div`,{class:t([`screen-pair`,{"screen-pair--with-phone":n.mobile}])},[e(`div`,de,[e(`div`,fe,[m[13]||=e(`span`,{class:`macbook-frame__camera`,"aria-hidden":`true`},null,-1),e(`div`,pe,[e(`img`,{src:n.desktop,alt:p.$t(n.titleKey),loading:`lazy`},null,8,me)]),m[14]||=e(`div`,{class:`macbook-frame__chin`},null,-1)]),m[15]||=e(`div`,{class:`macbook-frame__base`},[e(`span`)],-1)]),n.mobile?(f(),o(`div`,he,[m[17]||=e(`span`,{class:`phone-device__speaker`,"aria-hidden":`true`},null,-1),e(`div`,ge,[m[16]||=e(`span`,{class:`phone-device__island`,"aria-hidden":`true`},null,-1),e(`img`,{src:n.mobile,alt:``,loading:`lazy`},null,8,_e)])])):a(``,!0)],2),e(`div`,ve,[e(`div`,null,[e(`p`,ye,r(p.$t(n.eyebrowKey)),1),e(`h3`,null,r(p.$t(n.titleKey)),1)]),i(y,{icon:`fa-solid fa-arrow-up-right-from-square`}),e(`p`,null,r(p.$t(n.subtitleKey)),1),e(`button`,{type:`button`,class:`creation-item__link`,onClick:e=>p.openShowcase(n)},r(p.$t(`index.button.try`)),9,be)])]))),128))])])]),e(`section`,$,[e(`div`,xe,[e(`div`,Se,[e(`span`,Ce,r(p.$t(`index.eyebrow.directory`)),1),e(`h2`,null,r(p.$t(`index.title.directory`)),1),e(`p`,null,r(p.$t(`index.subtitle.directory`)),1)]),e(`div`,we,[(f(!0),o(s,null,d(p.capabilityCards,t=>(f(),o(`div`,{key:t.key,class:`capability-row`},[e(`img`,{src:t.icon,alt:``},null,8,Te),e(`span`,null,r(t.label),1)]))),128))])])]),e(`section`,Ee,[e(`div`,De,[e(`div`,null,[e(`p`,Oe,r(p.$t(`index.eyebrow.cta`)),1),e(`h2`,null,r(p.$t(`index.title.cta`)),1),e(`p`,null,r(p.$t(`index.subtitle.cta`)),1)]),e(`div`,ke,[i(v,{type:`primary`,size:`large`,onClick:p.onStart},{default:u(()=>[n(r(p.$t(`common.button.startForFree`)),1)]),_:1},8,[`onClick`]),p.isMainSite?(f(),l(v,{key:0,size:`large`,onClick:p.openSubsites},{default:u(()=>[n(r(p.$t(`index.button.createSubsite`)),1)]),_:1},8,[`onClick`])):a(``,!0)])])])])}var je=m(E,[[`render`,Ae],[`__scopeId`,`data-v-87902b18`]]);export{je as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,Gt as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,ht as l,it as u,j as d,mt as f,qt as p,rt as m,tt as h,x as g,z as _}from"./vendor-chart-Dw-P17PN.js";import{r as v,t as y}from"./select-Bwi16hQj.js";import{n as b,t as x}from"./tabs-Cug8a11o.js";import{t as S}from"./upload-Br9SsMuL.js";import{t as C}from"./tooltip-Db9KJiGJ.js";import{t as w}from"./alert-C_L8fDII.js";import{t as T}from"./drawer-C5yapa5u.js";import{t as E}from"./switch-D_xOnAgE.js";import{$r as D,ei as O,ti as k}from"./constants-DgIJABTq.js";import{Ii as A,Ir as j,J as M,Si as N,Ti as P,Xi as F,cn as ee,cr as te,fn as ne,ln as re,sn as I,un as L,xn as R}from"./index-D01uplks.js";import{t as z}from"./index.es-B8pcsdkV.js";import{t as B}from"./CopyToClipboard-Dj7UuZZf.js";import{t as V}from"./ImagePreview-D5gMOtPF.js";import{n as H}from"./taskDrawerMixin-DyAUhFEq.js";import{t as U}from"./Consumption-CVNKq_zt.js";import{a as W,n as G,r as K,t as q}from"./pagination-DtjNdMzy.js";import{t as J}from"./VideoPlayer-CPZmeDkt.js";import{t as Y}from"./ApiCodeButton-BJQ_-Mv-.js";import{t as X}from"./BotPlaceholder-D7BqsbjS.js";import{t as ie}from"./PromptTextarea-D0nC7f4W.js";var ae=_({name:`LayoutVeo`,components:{ElDrawer:T,ElButton:F,FontAwesomeIcon:z},mixins:[H]}),oe={class:`main flex flex-row flex-1`},se={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},ce={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function le(t,n,r,a,s,d){let p=c(`font-awesome-icon`),m=c(`el-button`),_=c(`el-drawer`);return h(),o(`div`,oe,[e(`div`,se,[u(t.$slots,`config`,{},void 0,!0)]),e(`div`,ce,[u(t.$slots,`result`,{},void 0,!0)]),l(i(m,{circle:``,class:`menu`,onClick:n[0]||=e=>t.drawer=!0},{default:f(()=>[i(p,{icon:`fa-solid fa-magic`})]),_:1},512),[[g,!t.tasksEmpty]]),i(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`generator-drawer`},{default:f(()=>[u(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var ue=M(ae,[[`render`,le],[`__scopeId`,`data-v-1bcf9800`]]),Z=`veo31-fast-ingredients`,de=[{value:`veo31-fast`,label:`Veo 3.1 Fast`},{value:`veo3-fast`,label:`Veo 3 Fast`},{value:`veo31`,label:`Veo 3.1`},{value:`veo3`,label:`Veo 3`}],Q=(e,t)=>{let n=!!(e?.action&&e.action!==t),r={...e,action:t};return t===`text2video`?(r.model=r.model===`veo31-fast-ingredients`?k:r.model||`veo31-fast`,delete r.image_urls,r):t===`ingredients2video`?(r.model=Z,n?delete r.image_urls:r.image_urls=r.image_urls?.slice(0,3),r):(r.model=r.model===`veo31-fast-ingredients`?k:r.model||`veo31-fast`,n?delete r.image_urls:r.image_urls=r.image_urls?.slice(0,2),r)},fe=e=>{let t={...Q(e,e?.action||`text2video`),async:!0};return t.image_urls?.length||delete t.image_urls,t},pe=_({name:`ModelSelector`,components:{ElSelect:v,ElOption:y},computed:{isModelLocked(){return this.$store.state.veo?.config?.action===`ingredients2video`},options(){return this.isModelLocked?[{value:Z,label:`Veo 3.1 Fast`}]:de},value:{get(){return this.$store.state.veo?.config?.model},set(e){this.$store.commit(`veo/setConfig`,{...this.$store.state.veo.config,model:e})}}},mounted(){this.value||=k}}),me={class:`field`},he={class:`title font-bold`};function ge(t,n,a,l,u,p){let g=c(`el-option`),_=c(`el-select`);return h(),o(`div`,me,[e(`h2`,he,r(t.$t(`veo.name.model`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`veo.placeholder.select`),disabled:t.isModelLocked},{default:f(()=>[(h(!0),o(s,null,m(t.options,e=>(h(),d(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`disabled`])])}var _e=M(pe,[[`render`,ge],[`__scopeId`,`data-v-90ed8cff`]]),ve=_({name:`ActionSelector`,components:{ElTabs:b,ElTabPane:x},data(){return{}},computed:{options(){return[{value:`text2video`,label:this.$t(`veo.button.action1`)},{value:`image2video`,label:this.$t(`veo.button.action2`)},{value:`ingredients2video`,label:this.$t(`veo.button.actionIngredients`)}]},value(){return this.$store.state.veo?.config?.action||`text2video`}},mounted(){this.$store.state.veo?.config?.action||this.onUpdate(D)},methods:{onUpdate(e){this.$store.commit(`veo/setConfig`,Q(this.$store.state.veo?.config,e))}}});function ye(e,t,n,r,i,a){let l=c(`el-tab-pane`),u=c(`el-tabs`);return h(),d(u,{"model-value":e.value,class:`action-tabs`,stretch:``,"onUpdate:modelValue":e.onUpdate},{default:f(()=>[(h(!0),o(s,null,m(e.options,e=>(h(),d(l,{key:e.value,name:e.value,label:e.label},null,8,[`name`,`label`]))),128))]),_:1},8,[`model-value`,`onUpdate:modelValue`])}var be=M(ve,[[`render`,ye],[`__scopeId`,`data-v-349937fd`]]),xe=_({name:`TranslationSelector`,components:{ElSwitch:E,InfoIcon:W},computed:{value:{get(){return this.$store.state.veo?.config?.translation},set(e){console.debug(`set translation`,e),this.$store.commit(`veo/setConfig`,{...this.$store.state.veo?.config,translation:e})}}},mounted(){this.value===void 0&&(this.value=!1)}}),Se={class:`relative`},Ce={class:`flex justify-between`},we={class:`flex justify-start items-center`},Te={class:`text-sm font-bold`},Ee={class:`flex justify-end items-center`};function De(t,n,a,s,l,u){let d=c(`info-icon`),f=c(`el-switch`);return h(),o(`div`,Se,[e(`div`,Ce,[e(`div`,we,[e(`span`,Te,r(t.$t(`veo.name.translation`)),1),i(d,{content:t.$t(`veo.description.translation`)},null,8,[`content`])]),e(`div`,Ee,[i(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`},null,8,[`modelValue`])])])])}var Oe=M(xe,[[`render`,De]]),ke=_({name:`AspectRatioSelector`,data(){return{options:[{value:`16:9`,label:`16:9`,width:25,height:13},{value:`9:16`,label:`9:16`,width:13,height:25}]}},computed:{active(){return this.options.findIndex(e=>e.value===this.value)||0},value:{get(){return this.$store.state.veo?.config?.aspect_ratio},set(e){console.debug(`set aspect_ratio`,e),this.$store.commit(`veo/setConfig`,{...this.$store.state?.veo?.config,aspect_ratio:e})}}},mounted(){this.value||=O}}),Ae={class:`text-sm font-bold mb-2 block`},je={class:`items`},Me=[`onClick`],Ne={class:`name`};function Pe(n,i,a,c,l,u){return h(),o(`div`,null,[e(`span`,Ae,r(n.$t(`veo.name.ratio`)),1),e(`div`,je,[(h(!0),o(s,null,m(n.options,(i,a)=>(h(),o(`div`,{key:a,class:t({active:n.active===a,item:!0}),onClick:e=>n.value=i.value},[e(`div`,{class:t([`preview`,i.label])},[e(`div`,{class:`rect`,style:p({width:i.width+`px`,height:i.height+`px`})},null,4)],2),e(`p`,Ne,r(i.label),1)],10,Me))),128))])])}var Fe=M(ke,[[`render`,Pe],[`__scopeId`,`data-v-28c472c4`]]),Ie=_({name:`StartEndImage`,components:{ElUpload:S,ElButton:F,InfoIcon:W,FontAwesomeIcon:z,ImagePreview:V},mixins:[L,ee],props:{limit:{type:Number,default:2},ingredients:{type:Boolean,default:!1}},emits:[`change`],data(){return{fileList:[],uploadUrl:P()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},title(){return this.ingredients?this.$t(`veo.button.actionIngredients`):this.$t(`veo.name.startEndImage`)},description(){return this.ingredients?this.$t(`veo.description.imageUrl`):this.$t(`veo.description.uploadStartEndImage`)},urls(){return this.fileList.map(e=>e.response?.file_url||e.url).filter(e=>!!e)},value:{get(){return this.$store.state?.veo?.config?.image_urls},set(){}}},watch:{limit(){this.fileList.length>this.limit&&(this.fileList=this.fileList.slice(0,this.limit),this.onSetStartEndImageUrl())}},mounted(){this.fileList=(this.value||[]).map((e,t)=>({name:`reference-${t+1}`,percentage:100,response:{file_url:e},status:`success`,uid:Date.now()+t,url:e}))},methods:{onExceed(){A.warning(this.$t(`veo.message.uploadReferencesLimit`,{limit:this.limit}))},onError(){A.error(this.$t(`veo.message.uploadReferencesError`))},onSetStartEndImageUrl(){let e=this.urls;this.$store.commit(`veo/setConfig`,{...this.$store.state?.veo?.config,image_urls:e})},async onSuccess(){this.onSetStartEndImageUrl()},onRemove(e){let t=this.fileList.indexOf(e);t>=0&&this.fileList.splice(t,1),this.onSetStartEndImageUrl()}}}),Le={class:`relative`},Re={class:`flex justify-between`},ze={class:`flex justify-start items-center`},Be={class:`text-sm font-bold`};function Ve(t,s,l,u,p,m){let g=c(`info-icon`),_=c(`image-preview`),v=c(`font-awesome-icon`),y=c(`el-button`),b=c(`el-upload`);return h(),o(`div`,Le,[e(`div`,Re,[e(`div`,ze,[e(`span`,Be,r(t.title),1),i(g,{content:t.description},null,8,[`content`])])]),i(b,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":s[0]||=e=>t.fileList=e,name:`file`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,limit:t.limit,class:`upload-wrapper`,multiple:!0,action:t.uploadUrl,"list-type":`picture`,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,headers:t.headers},{file:f(({file:e})=>[e.url&&e.percentage!==void 0?(h(),d(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:n=>t.onRemove(e)},null,8,[`url`,`name`,`percentage`,`onRemove`])):a(``,!0)]),default:f(()=>[i(y,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:f(()=>[i(v,{icon:`fa-solid fa-upload`,class:`icon mr-1`}),n(` `+r(t.$t(`veo.button.uploadReferences`)),1)]),_:1})]),_:1},8,[`file-list`,`limit`,`action`,`on-exceed`,`on-error`,`on-success`,`headers`])])}var He=M(Ie,[[`render`,Ve],[`__scopeId`,`data-v-4f7ed755`]]),Ue=_({name:`PromptInput`,components:{PromptTextarea:ie},computed:{prompt:{get(){return this.$store.state.veo?.config?.prompt},set(e){this.$store.commit(`veo/setConfig`,{...this.$store.state.veo?.config,prompt:e})}}},mounted(){this.prompt||=``}});function We(e,t,n,r,i,a){let o=c(`prompt-textarea`);return h(),d(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`veo.name.prompt`),info:e.$t(`veo.description.prompt`),placeholder:e.$t(`veo.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var Ge=_({name:`ConfigPanel`,components:{ElButton:F,Consumption:U,FontAwesomeIcon:z,PromptInput:M(Ue,[[`render`,We]]),ModelSelector:_e,StartEndImage:He,ActionSelector:be,TranslationSelector:Oe,AspectRatioSelector:Fe},emits:[`generate`],computed:{config(){return this.$store.state.veo?.config},showsImages(){return this.config?.action===`image2video`||this.config?.action===`ingredients2video`},imageLimit(){return this.config?.action===`ingredients2video`?3:2},consumption(){return ne(this.config,this.service?.cost)},service(){return this.$store.state.veo?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),Ke={class:`flex flex-col h-full`},qe={class:`flex-1 overflow-y-auto p-5`},Je={class:`flex flex-col items-center justify-center px-5 pb-5`};function Ye(t,s,l,u,p,m){let g=c(`action-selector`),_=c(`model-selector`),v=c(`start-end-image`),y=c(`prompt-input`),b=c(`aspect-ratio-selector`),x=c(`translation-selector`),S=c(`consumption`),C=c(`font-awesome-icon`),w=c(`el-button`);return h(),o(`div`,Ke,[e(`div`,qe,[i(g,{class:`mb-5`}),i(_,{class:`mb-4`}),t.showsImages?(h(),d(v,{key:t.config?.action,class:`mb-4`,limit:t.imageLimit,ingredients:t.config?.action===`ingredients2video`},null,8,[`limit`,`ingredients`])):a(``,!0),i(y,{class:`mb-4`}),i(b,{class:`mb-4`}),i(x,{class:`mb-2`})]),e(`div`,Je,[i(S,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),i(w,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:f(()=>[i(C,{icon:`fa-solid fa-magic`,class:`mr-2`}),n(` `+r(t.$t(`veo.button.generate`)),1)]),_:1},8,[`onClick`])])])}var Xe=M(Ge,[[`render`,Ye]]),Ze=_({name:`TaskPreview`,components:{CopyToClipboard:B,FontAwesomeIcon:z,ElAlert:w,VideoPlayer:J,ImagePreview:V,ElTooltip:C,ElButton:F,ApiCodeButton:Y},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{referenceImages(){let e=this.modelValue?.request?.image_urls;return Array.isArray(e)?e.filter(e=>typeof e==`string`&&!!e):[]},actionLabel(){let e=this.modelValue?.request,t=e?.model===`veo31-fast-ingredients`||this.referenceImages.length>2?`ingredients2video`:this.referenceImages.length>0?`image2video`:`text2video`,n=e?.action||t;return this.$t({text2video:`veo.button.action1`,image2video:`veo.button.action2`,ingredients2video:`veo.button.actionIngredients`}[n]||`veo.name.action`)},traceId(){return this.modelValue?.response?.trace_id||this.modelValue?.trace_id},taskInfoClass(){return this.modelValue?.response?.success===!0?`success`:this.modelValue?.response?.success===!1?`failure`:`info`}},methods:{onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenVideo(e){window.open(e,`_blank`)}}}),Qe={class:`preview`},$e={class:`left`},et={class:`main`},tt={class:`bot`},nt={class:`datetime`},rt={class:`info`},it={key:0,class:`flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto`},at={key:1,class:`prompt mt-2`},ot={key:0},st={key:1},ct={key:0,class:t({content:!0,failed:!0})},lt={key:0,class:`mb-4`},ut={key:1,class:t({operations:!0,"mt-2":!0})},dt={key:1,class:t({content:!0})},ft={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},pt={class:t({content:!0})},mt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ht={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},gt={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},_t={key:2,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},vt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},yt={key:3,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={key:4,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function bt(l,u,p,g,_,v){let y=c(`capability-presentation`),b=c(`image-preview`),x=c(`video-player`),S=c(`el-button`),C=c(`el-tooltip`),w=c(`api-code-button`),T=c(`font-awesome-icon`),E=c(`copy-to-clipboard`),D=c(`el-alert`);return h(),o(`div`,Qe,[e(`div`,$e,[i(y,{capability:`veo`,part:`avatar`,class:`avatar`})]),e(`div`,et,[e(`div`,tt,[i(y,{capability:`veo`,part:`name`}),e(`span`,nt,r(l.$dayjs.format(``+new Date(parseFloat((l.modelValue?.created_at||``).toString())*1e3))),1)]),e(`div`,rt,[l.referenceImages.length>0?(h(),o(`div`,it,[(h(!0),o(s,null,m(l.referenceImages,(e,t)=>(h(),d(b,{key:`${t}-${e}`,url:e,name:`reference-${t+1}`,closable:!1},null,8,[`url`,`name`]))),128))])):a(``,!0),l.modelValue?.request?.prompt?(h(),o(`p`,at,[n(r(l.modelValue?.request?.prompt)+` `,1),l.modelValue?.response?a(``,!0):(h(),o(`span`,ot,` - (`+r(l.$t(`veo.status.pending`))+`) `,1)),Array.isArray(l.modelValue?.response?.data)&&l.modelValue?.response?.data[0]?.state===`running`?(h(),o(`span`,st,` - (`+r(l.$t(`veo.status.processing`))+`) `,1)):a(``,!0)])):a(``,!0)]),l.modelValue?.response?.success===!0&&l.modelValue?.response?.data?(h(),o(`div`,ct,[l.modelValue?.response?.data[0]?.video_url?(h(),o(`div`,lt,[i(x,{src:l.modelValue?.response?.data[0]?.video_url},null,8,[`src`])])):a(``,!0),l.modelValue?.response.success?(h(),o(`div`,ut,[i(C,{class:`box-item`,effect:`dark`,content:l.$t(`veo.message.downloadVideo`),placement:`top-start`},{default:f(()=>[l.modelValue?.response?.data[0]?.video_url?(h(),d(S,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:u[0]||=e=>l.onDownload(e,l.modelValue?.response?.data[0]?.video_url)},{default:f(()=>[n(r(l.$t(`veo.button.download`)),1)]),_:1})):a(``,!0)]),_:1},8,[`content`]),i(w,{path:`/veo/videos`,body:l.modelValue?.request},null,8,[`body`])])):a(``,!0)])):a(``,!0),l.modelValue?.response?.success===!1?(h(),o(`div`,dt,[i(D,{closable:!1,class:`failure`},{template:f(()=>[i(T,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.failure`)),1)]),default:f(()=>[e(`p`,ft,[i(T,{icon:`fa-solid fa-circle-info`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.failureReason`))+`: `+r(l.modelValue?.response?.error?.message)+` `,1),i(E,{content:l.modelValue?.response?.error?.message},null,8,[`content`])])]),_:1})])):a(``,!0),e(`div`,pt,[i(D,{closable:!1,class:t([`mt-2`,`task-metadata`,l.taskInfoClass])},{default:f(()=>[l.modelValue?.request?.model?(h(),o(`p`,mt,[i(T,{icon:`fa-solid fa-cube`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.model`))+`: `+r(l.modelValue?.request?.model),1)])):a(``,!0),e(`p`,ht,[i(T,{icon:`fa-solid fa-bolt`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.action`))+`: `+r(l.actionLabel),1)]),l.modelValue?.request?.aspect_ratio?(h(),o(`p`,gt,[i(T,{icon:`fa-solid fa-up-right-from-square`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.ratio`))+`: `+r(l.modelValue?.request?.aspect_ratio),1)])):a(``,!0),l.modelValue?.request?.translation===void 0?a(``,!0):(h(),o(`p`,_t,[i(T,{icon:`fa-solid fa-language`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.translation`))+`: `+r(l.$t(l.modelValue?.request?.translation?`seedance.button.on`:`seedance.button.off`)),1)])),e(`p`,vt,[i(T,{icon:`fa-solid fa-magic`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.taskId`))+`: `+r(l.modelValue?.id)+` `,1),i(E,{content:l.modelValue?.id,class:`btn-copy inline-block`},null,8,[`content`])]),l.modelValue?.elapsed?(h(),o(`p`,yt,[i(T,{icon:`fa-solid fa-clock`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.elapsed`))+`: `+r(l.modelValue?.elapsed?.toFixed(2))+`s `,1)])):a(``,!0),l.traceId?(h(),o(`p`,$,[i(T,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.traceId`))+`: `+r(l.traceId)+` `,1),i(E,{content:l.traceId,class:`btn-copy inline-block`},null,8,[`content`])])):a(``,!0)]),_:1},8,[`class`])])])])}var xt=_({name:`RecentPanel`,components:{TaskPreview:M(Ze,[[`render`,bt],[`__scopeId`,`data-v-32e97821`]]),NoTasks:K,BotPlaceholder:X,ScrollList:G},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.veo?.tasks,items:this.$store.state.veo?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),St={key:0},Ct={key:2,class:`w-full h-full flex items-center justify-center`};function wt(e,t,n,r,l,u){let p=c(`bot-placeholder`),g=c(`task-preview`),_=c(`scroll-list`),v=c(`no-tasks`);return h(),o(s,null,[e.tasks?.items===void 0?(h(),o(`div`,St,[i(p)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(h(),d(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:f(()=>[(h(!0),o(s,null,m(e.tasks?.items,(e,t)=>(h(),d(g,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):a(``,!0),e.tasks?.items?.length===0?(h(),o(`div`,Ct,[i(v)])):a(``,!0)],64)}var Tt=_({name:`VeoIndex`,components:{ConfigPanel:Xe,Layout:ue,RecentPanel:M(xt,[[`render`,wt]])},mixins:[re],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.veo?.status?.getApplications===N.Request},tasksLoading(){return this.$store.state.veo?.status?.getTasks===N.Request||this.fetchingTasks},credential(){return this.$store.state.veo.credential},config(){return this.$store.state.veo.config},tasks(){return this.$store.state.veo.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await q({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`veo/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`veo/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`veo/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!I(this.uploadTracker,e=>this.$t(e),e=>A.warning(e)))return;let e=fe(this.config);if(!R())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}if((e.action===`image2video`||e.action===`ingredients2video`)&&!(e.image_urls&&e.image_urls.length>0)){A.warning(this.$t(`veo.message.imageRequired`));return}A.info(this.$t(`veo.message.startingTask`)),j(`veo`,te.generate(e,{token:t})).then(()=>{A.success(this.$t(`veo.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?A.error(this.$t(`veo.message.usedUp`)):A.error(this.$t(`veo.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Et(e,t,n,r,a,o){let s=c(`config-panel`),l=c(`recent-panel`),u=c(`layout`);return h(),d(u,null,{config:f(()=>[i(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:f(()=>[i(l,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Dt=M(Tt,[[`render`,Et]]);export{Dt as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,Gt as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,ht as l,it as u,j as d,mt as f,qt as p,rt as m,tt as h,x as g,z as _}from"./vendor-chart-Dw-P17PN.js";import{r as v,t as y}from"./select-S6bNmWoA.js";import{n as b,t as x}from"./tabs-CWW7Z-8_.js";import{t as S}from"./upload-BZf6dfKs.js";import{t as C}from"./tooltip-CpUlXrrs.js";import{t as w}from"./alert-CjWvi_14.js";import{t as T}from"./drawer-BuZZ_aaC.js";import{t as E}from"./switch-D0NaSYP3.js";import{$r as D,ei as O,ti as k}from"./constants-DgIJABTq.js";import{Ii as A,Ir as j,J as M,Si as N,Ti as P,Xi as F,cn as ee,cr as te,fn as ne,ln as re,sn as I,un as L,xn as R}from"./index-C_zMaSTl.js";import{t as z}from"./index.es-BM-ykXwl.js";import{t as B}from"./CopyToClipboard-CWAv9J74.js";import{t as V}from"./ImagePreview-B1i4A6CJ.js";import{n as H}from"./taskDrawerMixin-DyAUhFEq.js";import{t as U}from"./Consumption-Dd9pOXfP.js";import{a as W,n as G,r as K,t as q}from"./pagination-BM_xhv6e.js";import{t as J}from"./VideoPlayer-ePiO9_gl.js";import{t as Y}from"./ApiCodeButton-CM7BtdyA.js";import{t as X}from"./BotPlaceholder-DB2Xrk_m.js";import{t as ie}from"./PromptTextarea-CQd8dTtu.js";var ae=_({name:`LayoutVeo`,components:{ElDrawer:T,ElButton:F,FontAwesomeIcon:z},mixins:[H]}),oe={class:`main flex flex-row flex-1`},se={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},ce={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function le(t,n,r,a,s,d){let p=c(`font-awesome-icon`),m=c(`el-button`),_=c(`el-drawer`);return h(),o(`div`,oe,[e(`div`,se,[u(t.$slots,`config`,{},void 0,!0)]),e(`div`,ce,[u(t.$slots,`result`,{},void 0,!0)]),l(i(m,{circle:``,class:`menu`,onClick:n[0]||=e=>t.drawer=!0},{default:f(()=>[i(p,{icon:`fa-solid fa-magic`})]),_:1},512),[[g,!t.tasksEmpty]]),i(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`generator-drawer`},{default:f(()=>[u(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var ue=M(ae,[[`render`,le],[`__scopeId`,`data-v-1bcf9800`]]),Z=`veo31-fast-ingredients`,de=[{value:`veo31-fast`,label:`Veo 3.1 Fast`},{value:`veo3-fast`,label:`Veo 3 Fast`},{value:`veo31`,label:`Veo 3.1`},{value:`veo3`,label:`Veo 3`}],Q=(e,t)=>{let n=!!(e?.action&&e.action!==t),r={...e,action:t};return t===`text2video`?(r.model=r.model===`veo31-fast-ingredients`?k:r.model||`veo31-fast`,delete r.image_urls,r):t===`ingredients2video`?(r.model=Z,n?delete r.image_urls:r.image_urls=r.image_urls?.slice(0,3),r):(r.model=r.model===`veo31-fast-ingredients`?k:r.model||`veo31-fast`,n?delete r.image_urls:r.image_urls=r.image_urls?.slice(0,2),r)},fe=e=>{let t={...Q(e,e?.action||`text2video`),async:!0};return t.image_urls?.length||delete t.image_urls,t},pe=_({name:`ModelSelector`,components:{ElSelect:v,ElOption:y},computed:{isModelLocked(){return this.$store.state.veo?.config?.action===`ingredients2video`},options(){return this.isModelLocked?[{value:Z,label:`Veo 3.1 Fast`}]:de},value:{get(){return this.$store.state.veo?.config?.model},set(e){this.$store.commit(`veo/setConfig`,{...this.$store.state.veo.config,model:e})}}},mounted(){this.value||=k}}),me={class:`field`},he={class:`title font-bold`};function ge(t,n,a,l,u,p){let g=c(`el-option`),_=c(`el-select`);return h(),o(`div`,me,[e(`h2`,he,r(t.$t(`veo.name.model`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`veo.placeholder.select`),disabled:t.isModelLocked},{default:f(()=>[(h(!0),o(s,null,m(t.options,e=>(h(),d(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`disabled`])])}var _e=M(pe,[[`render`,ge],[`__scopeId`,`data-v-90ed8cff`]]),ve=_({name:`ActionSelector`,components:{ElTabs:b,ElTabPane:x},data(){return{}},computed:{options(){return[{value:`text2video`,label:this.$t(`veo.button.action1`)},{value:`image2video`,label:this.$t(`veo.button.action2`)},{value:`ingredients2video`,label:this.$t(`veo.button.actionIngredients`)}]},value(){return this.$store.state.veo?.config?.action||`text2video`}},mounted(){this.$store.state.veo?.config?.action||this.onUpdate(D)},methods:{onUpdate(e){this.$store.commit(`veo/setConfig`,Q(this.$store.state.veo?.config,e))}}});function ye(e,t,n,r,i,a){let l=c(`el-tab-pane`),u=c(`el-tabs`);return h(),d(u,{"model-value":e.value,class:`action-tabs`,stretch:``,"onUpdate:modelValue":e.onUpdate},{default:f(()=>[(h(!0),o(s,null,m(e.options,e=>(h(),d(l,{key:e.value,name:e.value,label:e.label},null,8,[`name`,`label`]))),128))]),_:1},8,[`model-value`,`onUpdate:modelValue`])}var be=M(ve,[[`render`,ye],[`__scopeId`,`data-v-349937fd`]]),xe=_({name:`TranslationSelector`,components:{ElSwitch:E,InfoIcon:W},computed:{value:{get(){return this.$store.state.veo?.config?.translation},set(e){console.debug(`set translation`,e),this.$store.commit(`veo/setConfig`,{...this.$store.state.veo?.config,translation:e})}}},mounted(){this.value===void 0&&(this.value=!1)}}),Se={class:`relative`},Ce={class:`flex justify-between`},we={class:`flex justify-start items-center`},Te={class:`text-sm font-bold`},Ee={class:`flex justify-end items-center`};function De(t,n,a,s,l,u){let d=c(`info-icon`),f=c(`el-switch`);return h(),o(`div`,Se,[e(`div`,Ce,[e(`div`,we,[e(`span`,Te,r(t.$t(`veo.name.translation`)),1),i(d,{content:t.$t(`veo.description.translation`)},null,8,[`content`])]),e(`div`,Ee,[i(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`},null,8,[`modelValue`])])])])}var Oe=M(xe,[[`render`,De]]),ke=_({name:`AspectRatioSelector`,data(){return{options:[{value:`16:9`,label:`16:9`,width:25,height:13},{value:`9:16`,label:`9:16`,width:13,height:25}]}},computed:{active(){return this.options.findIndex(e=>e.value===this.value)||0},value:{get(){return this.$store.state.veo?.config?.aspect_ratio},set(e){console.debug(`set aspect_ratio`,e),this.$store.commit(`veo/setConfig`,{...this.$store.state?.veo?.config,aspect_ratio:e})}}},mounted(){this.value||=O}}),Ae={class:`text-sm font-bold mb-2 block`},je={class:`items`},Me=[`onClick`],Ne={class:`name`};function Pe(n,i,a,c,l,u){return h(),o(`div`,null,[e(`span`,Ae,r(n.$t(`veo.name.ratio`)),1),e(`div`,je,[(h(!0),o(s,null,m(n.options,(i,a)=>(h(),o(`div`,{key:a,class:t({active:n.active===a,item:!0}),onClick:e=>n.value=i.value},[e(`div`,{class:t([`preview`,i.label])},[e(`div`,{class:`rect`,style:p({width:i.width+`px`,height:i.height+`px`})},null,4)],2),e(`p`,Ne,r(i.label),1)],10,Me))),128))])])}var Fe=M(ke,[[`render`,Pe],[`__scopeId`,`data-v-28c472c4`]]),Ie=_({name:`StartEndImage`,components:{ElUpload:S,ElButton:F,InfoIcon:W,FontAwesomeIcon:z,ImagePreview:V},mixins:[L,ee],props:{limit:{type:Number,default:2},ingredients:{type:Boolean,default:!1}},emits:[`change`],data(){return{fileList:[],uploadUrl:P()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},title(){return this.ingredients?this.$t(`veo.button.actionIngredients`):this.$t(`veo.name.startEndImage`)},description(){return this.ingredients?this.$t(`veo.description.imageUrl`):this.$t(`veo.description.uploadStartEndImage`)},urls(){return this.fileList.map(e=>e.response?.file_url||e.url).filter(e=>!!e)},value:{get(){return this.$store.state?.veo?.config?.image_urls},set(){}}},watch:{limit(){this.fileList.length>this.limit&&(this.fileList=this.fileList.slice(0,this.limit),this.onSetStartEndImageUrl())}},mounted(){this.fileList=(this.value||[]).map((e,t)=>({name:`reference-${t+1}`,percentage:100,response:{file_url:e},status:`success`,uid:Date.now()+t,url:e}))},methods:{onExceed(){A.warning(this.$t(`veo.message.uploadReferencesLimit`,{limit:this.limit}))},onError(){A.error(this.$t(`veo.message.uploadReferencesError`))},onSetStartEndImageUrl(){let e=this.urls;this.$store.commit(`veo/setConfig`,{...this.$store.state?.veo?.config,image_urls:e})},async onSuccess(){this.onSetStartEndImageUrl()},onRemove(e){let t=this.fileList.indexOf(e);t>=0&&this.fileList.splice(t,1),this.onSetStartEndImageUrl()}}}),Le={class:`relative`},Re={class:`flex justify-between`},ze={class:`flex justify-start items-center`},Be={class:`text-sm font-bold`};function Ve(t,s,l,u,p,m){let g=c(`info-icon`),_=c(`image-preview`),v=c(`font-awesome-icon`),y=c(`el-button`),b=c(`el-upload`);return h(),o(`div`,Le,[e(`div`,Re,[e(`div`,ze,[e(`span`,Be,r(t.title),1),i(g,{content:t.description},null,8,[`content`])])]),i(b,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":s[0]||=e=>t.fileList=e,name:`file`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,limit:t.limit,class:`upload-wrapper`,multiple:!0,action:t.uploadUrl,"list-type":`picture`,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,headers:t.headers},{file:f(({file:e})=>[e.url&&e.percentage!==void 0?(h(),d(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:n=>t.onRemove(e)},null,8,[`url`,`name`,`percentage`,`onRemove`])):a(``,!0)]),default:f(()=>[i(y,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:f(()=>[i(v,{icon:`fa-solid fa-upload`,class:`icon mr-1`}),n(` `+r(t.$t(`veo.button.uploadReferences`)),1)]),_:1})]),_:1},8,[`file-list`,`limit`,`action`,`on-exceed`,`on-error`,`on-success`,`headers`])])}var He=M(Ie,[[`render`,Ve],[`__scopeId`,`data-v-4f7ed755`]]),Ue=_({name:`PromptInput`,components:{PromptTextarea:ie},computed:{prompt:{get(){return this.$store.state.veo?.config?.prompt},set(e){this.$store.commit(`veo/setConfig`,{...this.$store.state.veo?.config,prompt:e})}}},mounted(){this.prompt||=``}});function We(e,t,n,r,i,a){let o=c(`prompt-textarea`);return h(),d(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`veo.name.prompt`),info:e.$t(`veo.description.prompt`),placeholder:e.$t(`veo.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var Ge=_({name:`ConfigPanel`,components:{ElButton:F,Consumption:U,FontAwesomeIcon:z,PromptInput:M(Ue,[[`render`,We]]),ModelSelector:_e,StartEndImage:He,ActionSelector:be,TranslationSelector:Oe,AspectRatioSelector:Fe},emits:[`generate`],computed:{config(){return this.$store.state.veo?.config},showsImages(){return this.config?.action===`image2video`||this.config?.action===`ingredients2video`},imageLimit(){return this.config?.action===`ingredients2video`?3:2},consumption(){return ne(this.config,this.service?.cost)},service(){return this.$store.state.veo?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),Ke={class:`flex flex-col h-full`},qe={class:`flex-1 overflow-y-auto p-5`},Je={class:`flex flex-col items-center justify-center px-5 pb-5`};function Ye(t,s,l,u,p,m){let g=c(`action-selector`),_=c(`model-selector`),v=c(`start-end-image`),y=c(`prompt-input`),b=c(`aspect-ratio-selector`),x=c(`translation-selector`),S=c(`consumption`),C=c(`font-awesome-icon`),w=c(`el-button`);return h(),o(`div`,Ke,[e(`div`,qe,[i(g,{class:`mb-4`}),i(_,{class:`mb-4`}),t.showsImages?(h(),d(v,{key:t.config?.action,class:`mb-4`,limit:t.imageLimit,ingredients:t.config?.action===`ingredients2video`},null,8,[`limit`,`ingredients`])):a(``,!0),i(y,{class:`mb-4`}),i(b,{class:`mb-4`}),i(x,{class:`mb-4`})]),e(`div`,Je,[i(S,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),i(w,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:f(()=>[i(C,{icon:`fa-solid fa-magic`,class:`mr-2`}),n(` `+r(t.$t(`veo.button.generate`)),1)]),_:1},8,[`onClick`])])])}var Xe=M(Ge,[[`render`,Ye]]),Ze=_({name:`TaskPreview`,components:{CopyToClipboard:B,FontAwesomeIcon:z,ElAlert:w,VideoPlayer:J,ImagePreview:V,ElTooltip:C,ElButton:F,ApiCodeButton:Y},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{referenceImages(){let e=this.modelValue?.request?.image_urls;return Array.isArray(e)?e.filter(e=>typeof e==`string`&&!!e):[]},actionLabel(){let e=this.modelValue?.request,t=e?.model===`veo31-fast-ingredients`||this.referenceImages.length>2?`ingredients2video`:this.referenceImages.length>0?`image2video`:`text2video`,n=e?.action||t;return this.$t({text2video:`veo.button.action1`,image2video:`veo.button.action2`,ingredients2video:`veo.button.actionIngredients`}[n]||`veo.name.action`)},traceId(){return this.modelValue?.response?.trace_id||this.modelValue?.trace_id},taskInfoClass(){return this.modelValue?.response?.success===!0?`success`:this.modelValue?.response?.success===!1?`failure`:`info`}},methods:{onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenVideo(e){window.open(e,`_blank`)}}}),Qe={class:`preview`},$e={class:`left`},et={class:`main`},tt={class:`bot`},nt={class:`datetime`},rt={class:`info`},it={key:0,class:`flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto`},at={key:1,class:`prompt mt-2`},ot={key:0},st={key:1},ct={key:0,class:t({content:!0,failed:!0})},lt={key:0,class:`mb-4`},ut={key:1,class:t({operations:!0,"mt-2":!0})},dt={key:1,class:t({content:!0})},ft={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},pt={class:t({content:!0})},mt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},ht={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},gt={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},_t={key:2,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},vt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},yt={key:3,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={key:4,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function bt(l,u,p,g,_,v){let y=c(`capability-presentation`),b=c(`image-preview`),x=c(`video-player`),S=c(`el-button`),C=c(`el-tooltip`),w=c(`api-code-button`),T=c(`font-awesome-icon`),E=c(`copy-to-clipboard`),D=c(`el-alert`);return h(),o(`div`,Qe,[e(`div`,$e,[i(y,{capability:`veo`,part:`avatar`,class:`avatar`})]),e(`div`,et,[e(`div`,tt,[i(y,{capability:`veo`,part:`name`}),e(`span`,nt,r(l.$dayjs.format(``+new Date(parseFloat((l.modelValue?.created_at||``).toString())*1e3))),1)]),e(`div`,rt,[l.referenceImages.length>0?(h(),o(`div`,it,[(h(!0),o(s,null,m(l.referenceImages,(e,t)=>(h(),d(b,{key:`${t}-${e}`,url:e,name:`reference-${t+1}`,closable:!1},null,8,[`url`,`name`]))),128))])):a(``,!0),l.modelValue?.request?.prompt?(h(),o(`p`,at,[n(r(l.modelValue?.request?.prompt)+` `,1),l.modelValue?.response?a(``,!0):(h(),o(`span`,ot,` - (`+r(l.$t(`veo.status.pending`))+`) `,1)),Array.isArray(l.modelValue?.response?.data)&&l.modelValue?.response?.data[0]?.state===`running`?(h(),o(`span`,st,` - (`+r(l.$t(`veo.status.processing`))+`) `,1)):a(``,!0)])):a(``,!0)]),l.modelValue?.response?.success===!0&&l.modelValue?.response?.data?(h(),o(`div`,ct,[l.modelValue?.response?.data[0]?.video_url?(h(),o(`div`,lt,[i(x,{src:l.modelValue?.response?.data[0]?.video_url},null,8,[`src`])])):a(``,!0),l.modelValue?.response.success?(h(),o(`div`,ut,[i(C,{class:`box-item`,effect:`dark`,content:l.$t(`veo.message.downloadVideo`),placement:`top-start`},{default:f(()=>[l.modelValue?.response?.data[0]?.video_url?(h(),d(S,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:u[0]||=e=>l.onDownload(e,l.modelValue?.response?.data[0]?.video_url)},{default:f(()=>[n(r(l.$t(`veo.button.download`)),1)]),_:1})):a(``,!0)]),_:1},8,[`content`]),i(w,{path:`/veo/videos`,body:l.modelValue?.request},null,8,[`body`])])):a(``,!0)])):a(``,!0),l.modelValue?.response?.success===!1?(h(),o(`div`,dt,[i(D,{closable:!1,class:`failure`},{template:f(()=>[i(T,{icon:`fa-solid fa-exclamation-triangle`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.failure`)),1)]),default:f(()=>[e(`p`,ft,[i(T,{icon:`fa-solid fa-circle-info`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.failureReason`))+`: `+r(l.modelValue?.response?.error?.message)+` `,1),i(E,{content:l.modelValue?.response?.error?.message},null,8,[`content`])])]),_:1})])):a(``,!0),e(`div`,pt,[i(D,{closable:!1,class:t([`mt-2`,`task-metadata`,l.taskInfoClass])},{default:f(()=>[l.modelValue?.request?.model?(h(),o(`p`,mt,[i(T,{icon:`fa-solid fa-cube`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.model`))+`: `+r(l.modelValue?.request?.model),1)])):a(``,!0),e(`p`,ht,[i(T,{icon:`fa-solid fa-bolt`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.action`))+`: `+r(l.actionLabel),1)]),l.modelValue?.request?.aspect_ratio?(h(),o(`p`,gt,[i(T,{icon:`fa-solid fa-up-right-from-square`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.ratio`))+`: `+r(l.modelValue?.request?.aspect_ratio),1)])):a(``,!0),l.modelValue?.request?.translation===void 0?a(``,!0):(h(),o(`p`,_t,[i(T,{icon:`fa-solid fa-language`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.translation`))+`: `+r(l.$t(l.modelValue?.request?.translation?`seedance.button.on`:`seedance.button.off`)),1)])),e(`p`,vt,[i(T,{icon:`fa-solid fa-magic`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.taskId`))+`: `+r(l.modelValue?.id)+` `,1),i(E,{content:l.modelValue?.id,class:`btn-copy inline-block`},null,8,[`content`])]),l.modelValue?.elapsed?(h(),o(`p`,yt,[i(T,{icon:`fa-solid fa-clock`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.elapsed`))+`: `+r(l.modelValue?.elapsed?.toFixed(2))+`s `,1)])):a(``,!0),l.traceId?(h(),o(`p`,$,[i(T,{icon:`fa-solid fa-hashtag`,class:`mr-1`}),n(` `+r(l.$t(`veo.name.traceId`))+`: `+r(l.traceId)+` `,1),i(E,{content:l.traceId,class:`btn-copy inline-block`},null,8,[`content`])])):a(``,!0)]),_:1},8,[`class`])])])])}var xt=_({name:`RecentPanel`,components:{TaskPreview:M(Ze,[[`render`,bt],[`__scopeId`,`data-v-32e97821`]]),NoTasks:K,BotPlaceholder:X,ScrollList:G},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.veo?.tasks,items:this.$store.state.veo?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),St={key:0},Ct={key:2,class:`w-full h-full flex items-center justify-center`};function wt(e,t,n,r,l,u){let p=c(`bot-placeholder`),g=c(`task-preview`),_=c(`scroll-list`),v=c(`no-tasks`);return h(),o(s,null,[e.tasks?.items===void 0?(h(),o(`div`,St,[i(p)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(h(),d(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:f(()=>[(h(!0),o(s,null,m(e.tasks?.items,(e,t)=>(h(),d(g,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):a(``,!0),e.tasks?.items?.length===0?(h(),o(`div`,Ct,[i(v)])):a(``,!0)],64)}var Tt=_({name:`VeoIndex`,components:{ConfigPanel:Xe,Layout:ue,RecentPanel:M(xt,[[`render`,wt]])},mixins:[re],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.veo?.status?.getApplications===N.Request},tasksLoading(){return this.$store.state.veo?.status?.getTasks===N.Request||this.fetchingTasks},credential(){return this.$store.state.veo.credential},config(){return this.$store.state.veo.config},tasks(){return this.$store.state.veo.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await q({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`veo/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`veo/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`veo/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!I(this.uploadTracker,e=>this.$t(e),e=>A.warning(e)))return;let e=fe(this.config);if(!R())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}if((e.action===`image2video`||e.action===`ingredients2video`)&&!(e.image_urls&&e.image_urls.length>0)){A.warning(this.$t(`veo.message.imageRequired`));return}A.info(this.$t(`veo.message.startingTask`)),j(`veo`,te.generate(e,{token:t})).then(()=>{A.success(this.$t(`veo.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?A.error(this.$t(`veo.message.usedUp`)):A.error(this.$t(`veo.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Et(e,t,n,r,a,o){let s=c(`config-panel`),l=c(`recent-panel`),u=c(`layout`);return h(),d(u,null,{config:f(()=>[i(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:f(()=>[i(l,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Dt=M(Tt,[[`render`,Et]]);export{Dt as default};