@acedatacloud/nexior 3.35.0 → 3.36.0

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 (166) hide show
  1. package/dist/assets/{Auth-BzXswjE4.js → Auth-BP9lbJeI.js} +1 -1
  2. package/dist/assets/{BotPlaceholder-BV2w6Q4w.js → BotPlaceholder-CInEMDBc.js} +1 -1
  3. package/dist/assets/{Callback-CQ8ko7C9.js → Callback-BIjy-gtY.js} +1 -1
  4. package/dist/assets/{Console-UbGToFD6.js → Console-6tUky-J0.js} +1 -1
  5. package/dist/assets/{Consumption-DEB600BC.js → Consumption-BCbR6ZEO.js} +1 -1
  6. package/dist/assets/{Conversation-T2K_c37M.css → Conversation-BMY_hUX2.css} +1 -1
  7. package/dist/assets/Conversation-rDdJVSyA.js +23 -0
  8. package/dist/assets/{CopyToClipboard-cTbsayFn.js → CopyToClipboard-Djhvl2Fk.js} +1 -1
  9. package/dist/assets/{Detail-BQ0XJdOr.js → Detail-Co0yJXVH.js} +2 -2
  10. package/dist/assets/{EditArray-DzSfUZdI.js → EditArray-BGybpge_.js} +1 -1
  11. package/dist/assets/{Extra-BGXzckZL.js → Extra-CSmGC05b.js} +1 -1
  12. package/dist/assets/{FilePreview-B3Gtn-Tg.js → FilePreview-BNzbUf36.js} +1 -1
  13. package/dist/assets/{History-BeUw1IaF.js → History-B0U-8F9T.js} +1 -1
  14. package/dist/assets/{ImagePreview-B5F24-Vs.js → ImagePreview-SUR7TFTL.js} +1 -1
  15. package/dist/assets/{ImageWrapper-hN1Hdu08.js → ImageWrapper-D7m66Uzp.js} +1 -1
  16. package/dist/assets/{Index-BAn75ep1.js → Index-B2TA3Ri9.js} +1 -1
  17. package/dist/assets/Index-B5xoCX__.js +1 -0
  18. package/dist/assets/{Index-CqyShhjI.js → Index-BGbiVa-Y.js} +1 -1
  19. package/dist/assets/{Index-CLPm-Y4w.js → Index-BN6WLQ8-.js} +1 -1
  20. package/dist/assets/{Index-D7ez9jbr.js → Index-BWY2r3X1.js} +1 -1
  21. package/dist/assets/Index-BqOMnc5W.js +1 -0
  22. package/dist/assets/{Index-CylCKIXE.js → Index-C-6TsdhC.js} +1 -1
  23. package/dist/assets/{Index-q9gZ0XTy.js → Index-CB1O9Y15.js} +1 -1
  24. package/dist/assets/{Index-C6QkxZY6.js → Index-CGhMkR7Q.js} +1 -1
  25. package/dist/assets/Index-CLp6MIQW.js +1 -0
  26. package/dist/assets/Index-Cjxg8NOx.css +1 -0
  27. package/dist/assets/Index-DF06Um2_.js +4 -0
  28. package/dist/assets/Index-DIbGskQz.js +1 -0
  29. package/dist/assets/{Index-UoZMsXXk.js → Index-DM3dFdE3.js} +1 -1
  30. package/dist/assets/{Index-BjX115MB.js → Index-DaH7q9dg.js} +1 -1
  31. package/dist/assets/{Index-BRov3UHm.js → Index-Ditj1i_I.js} +1 -1
  32. package/dist/assets/{Index-3ZiNs4kq.js → Index-DsAb9sPv.js} +1 -1
  33. package/dist/assets/{Index-N-iGX0tk.js → Index-DvSICD7r.js} +1 -1
  34. package/dist/assets/{Index-Bc2v2omV.js → Index-Dz8Os9xl.js} +1 -1
  35. package/dist/assets/{Index-CBMnYQ1o.js → Index-F7xvFuGm.js} +1 -1
  36. package/dist/assets/{Index-Bnh_m2KM.js → Index-LPobDCmU.js} +1 -1
  37. package/dist/assets/{Index-BJdy1_Z6.js → Index-OBOZ0gNk.js} +1 -1
  38. package/dist/assets/{Index-j-TXpN-y.js → Index-cXoD-6RA.js} +1 -1
  39. package/dist/assets/{Index-BUjIH0UD.js → Index-sUp19C7h.js} +1 -1
  40. package/dist/assets/Index-tw3XT7DO.js +1 -0
  41. package/dist/assets/{Invitees-D4zwToOW.js → Invitees-B6HhiNiR.js} +1 -1
  42. package/dist/assets/{List-CnZ4wBge.js → List-Bdy41N41.js} +1 -1
  43. package/dist/assets/{List-8Caks5m2.js → List-ClW1xhXU.js} +1 -1
  44. package/dist/assets/{List-Cogewp0B.js → List-pp0GRwAS.js} +1 -1
  45. package/dist/assets/{Main-COqAQDqW.js → Main-Cd5cePch.js} +1 -1
  46. package/dist/assets/Navigator-B7XcI_Q3.js +1 -0
  47. package/dist/assets/Navigator-HvqoZTM0.css +1 -0
  48. package/dist/assets/{NoTasks-ZsLHgPuo.js → NoTasks-BYOtsKOE.js} +1 -1
  49. package/dist/assets/{OAuthCallback-CGTHAbtF.js → OAuthCallback-gwIcXrf0.js} +1 -1
  50. package/dist/assets/{Pagination-BihGJLjm.js → Pagination-B9EVrZod.js} +1 -1
  51. package/dist/assets/{ScrollList-OteSDitY.js → ScrollList-Dw45lO0t.js} +1 -1
  52. package/dist/assets/Status-B4E0LbhA.js +1 -0
  53. package/dist/assets/Subscribe-GxJ9p8MU.js +1 -0
  54. package/dist/assets/{TransportWebHID-D9wUjmBD.js → TransportWebHID-Bw1vVfFC.js} +1 -1
  55. package/dist/assets/{VideoPlayer-DcumvLkR.js → VideoPlayer-gXXZbisY.js} +1 -1
  56. package/dist/assets/{avatar-B3bcsy-o.css → avatar-BCCBdp_3.css} +1 -1
  57. package/dist/assets/{avatar-B2oLnm2w.js → avatar-Ce400va_.js} +1 -1
  58. package/dist/assets/{bignumber-geB-LwaY.js → bignumber-C8MaMqra.js} +1 -1
  59. package/dist/assets/chat-BVO1_8SQ.js +1 -0
  60. package/dist/assets/chat-DjKrQigG.js +1 -0
  61. package/dist/assets/{common-CS9Ce9sH.js → common-CxZtOHLe.js} +1 -1
  62. package/dist/assets/{common-qDu_zKFN.js → common-wHXkz5ey.js} +1 -1
  63. package/dist/assets/connector-1MWvDBIo.js +1 -0
  64. package/dist/assets/connector-BAyj2tkA.js +1 -0
  65. package/dist/assets/connector-Bgu0sixt.js +1 -0
  66. package/dist/assets/connector-BkxjWFcg.js +1 -0
  67. package/dist/assets/connector-C7xO2r9_.js +1 -0
  68. package/dist/assets/connector-CECEgtKj.js +1 -0
  69. package/dist/assets/connector-CMMvuemS.js +1 -0
  70. package/dist/assets/connector-CUuJtXfl.js +1 -0
  71. package/dist/assets/connector-CjmS-s-6.js +1 -0
  72. package/dist/assets/connector-CvbXdSeL.js +1 -0
  73. package/dist/assets/connector-D7-GesdP.js +1 -0
  74. package/dist/assets/connector-DPOnEKVv.js +1 -0
  75. package/dist/assets/connector-DTrE-fhA.js +1 -0
  76. package/dist/assets/connector-Dbvp3lHf.js +1 -0
  77. package/dist/assets/connector-IkZ28hNg.js +1 -0
  78. package/dist/assets/connector-YtfFjxH9.js +1 -0
  79. package/dist/assets/connector-oEGRAHvd.js +1 -0
  80. package/dist/assets/connector-uPyVfnUv.js +1 -0
  81. package/dist/assets/{distribution-Dmd3XvVp.js → distribution-15g43T9Y.js} +1 -1
  82. package/dist/assets/{index-BmwlFP6v.js → index--OT7e4dB.js} +1 -1
  83. package/dist/assets/{index-BwUy-mpm.css → index-B2wQC53q.css} +1 -1
  84. package/dist/assets/index-CdkIaG4d.js +614 -0
  85. package/dist/assets/{index-CLJileDK.js → index-D9-Jfsua.js} +1 -1
  86. package/dist/assets/{index-CZR89jLL.js → index-DMrAP4TW.js} +1 -1
  87. package/dist/assets/{index-CbXbnDya.js → index-DPbfNZOF.js} +1 -1
  88. package/dist/assets/{index-CXXU863B.js → index-OUFJCHwB.js} +1 -1
  89. package/dist/assets/{index-BKVUDuw-.js → index-bCCSAr1s.js} +1 -1
  90. package/dist/assets/{index-DrABKNoZ.js → index-fXvjznMr.js} +1 -1
  91. package/dist/assets/{index.es-DMehEjXB.js → index.es-D2RJIOwI.js} +1 -1
  92. package/dist/assets/{order-Bw8DFW1R.js → order-D9vIzBpI.js} +1 -1
  93. package/dist/assets/{price-lQeFOa8Q.js → price-CwH8PfMf.js} +1 -1
  94. package/dist/assets/{solana-wallets-CKHfeojs.js → solana-wallets-CDq-Ilig.js} +2 -2
  95. package/dist/assets/{solanaEmbed.esm-CbqLlFds.js → solanaEmbed.esm-2gmdLOlb.js} +1 -1
  96. package/dist/assets/{string_decoder-CEgnOzHn.js → string_decoder-BLnC-ocM.js} +1 -1
  97. package/dist/assets/suno-22kfl5ck.js +7 -0
  98. package/dist/assets/suno-7HaPHxZU.js +7 -0
  99. package/dist/assets/suno-B29yxho6.js +7 -0
  100. package/dist/assets/suno-BAJHVOPY.js +7 -0
  101. package/dist/assets/suno-BC6a0SoY.js +7 -0
  102. package/dist/assets/suno-BHBDnzhm.js +7 -0
  103. package/dist/assets/suno-BOD87qmS.js +7 -0
  104. package/dist/assets/suno-C-aj8gY0.js +7 -0
  105. package/dist/assets/suno-C1qgEZWK.js +7 -0
  106. package/dist/assets/suno-CqLyzrg6.js +7 -0
  107. package/dist/assets/suno-DD4a7suZ.js +7 -0
  108. package/dist/assets/suno-DDvBws7-.js +7 -0
  109. package/dist/assets/suno-DEtbzRzi.js +7 -0
  110. package/dist/assets/suno-DTJZ43lx.js +7 -0
  111. package/dist/assets/suno-Dn0e-NG-.js +7 -0
  112. package/dist/assets/suno-DrFDn-MP.js +7 -0
  113. package/dist/assets/suno-LKtIb9A1.js +7 -0
  114. package/dist/assets/suno-kgN2hSbn.js +7 -0
  115. package/dist/assets/{vendor-element-plus-CmP9-3lX.js → vendor-element-plus-ZfFlETcH.js} +7 -7
  116. package/dist/assets/{vendor-web3-C5RrfhAy.js → vendor-web3-CNlWJWvL.js} +4 -4
  117. package/dist/assets/{veo-DuwlHTCs.js → veo-BEngl79C.js} +1 -1
  118. package/dist/assets/{veo-CmOQ2a9_.js → veo-CNOXWYSa.js} +1 -1
  119. package/dist/assets/{web-Bokrd0eW.js → web-Di9kk2JK.js} +1 -1
  120. package/dist/assets/{web-CV8nB6ef.js → web-DzpfT-sD.js} +1 -1
  121. package/dist/index.html +28 -6
  122. package/package.json +1 -1
  123. package/dist/assets/Browse-BHDvC_mG.js +0 -1
  124. package/dist/assets/Browse-oFjzU0X9.css +0 -1
  125. package/dist/assets/Conversation-B30jTIbD.js +0 -23
  126. package/dist/assets/Index-1KNMLovE.js +0 -1
  127. package/dist/assets/Index-BacfL0a5.js +0 -1
  128. package/dist/assets/Index-BfnWocKp.js +0 -1
  129. package/dist/assets/Index-CBgAolPo.css +0 -1
  130. package/dist/assets/Index-Cwkxn80O.css +0 -1
  131. package/dist/assets/Index-DgEoij9q.js +0 -1
  132. package/dist/assets/Index-DlN6WUHV.js +0 -1
  133. package/dist/assets/Index-W2feDC-T.js +0 -1
  134. package/dist/assets/Index-fbC-lfAY.js +0 -1
  135. package/dist/assets/McpManager-B62KLQ2Z.js +0 -1
  136. package/dist/assets/McpManager-Be2fvTdO.css +0 -1
  137. package/dist/assets/Navigator-Br1lpEYH.css +0 -1
  138. package/dist/assets/Navigator-semGmQ89.js +0 -1
  139. package/dist/assets/OAuthCallback-CbG9_OQj.js +0 -1
  140. package/dist/assets/OAuthCallback-CeJPNVj3.css +0 -1
  141. package/dist/assets/Status-De0L9Wnu.js +0 -1
  142. package/dist/assets/Subscribe-DoFhvrGJ.js +0 -1
  143. package/dist/assets/chat-kZ9fn-6R.js +0 -1
  144. package/dist/assets/chat-sJzMIYHr.js +0 -1
  145. package/dist/assets/connector-DYad3Crz.js +0 -1
  146. package/dist/assets/connector-P8ccoph7.js +0 -1
  147. package/dist/assets/index-CtkD2JaX.js +0 -614
  148. package/dist/assets/suno-BJb9YKu5.js +0 -7
  149. package/dist/assets/suno-BZq-gekM.js +0 -7
  150. package/dist/assets/suno-BaUzgiI0.js +0 -7
  151. package/dist/assets/suno-BgoH7EvV.js +0 -7
  152. package/dist/assets/suno-BruNEjYj.js +0 -7
  153. package/dist/assets/suno-CEmwI35Y.js +0 -7
  154. package/dist/assets/suno-CJGnn6rm.js +0 -7
  155. package/dist/assets/suno-Ca_lW5Zu.js +0 -7
  156. package/dist/assets/suno-Cfh0nfm4.js +0 -7
  157. package/dist/assets/suno-Ckbgo1QW.js +0 -7
  158. package/dist/assets/suno-CpD9AE4x.js +0 -7
  159. package/dist/assets/suno-Cq0tZwiy.js +0 -7
  160. package/dist/assets/suno-DLr3ZtcG.js +0 -7
  161. package/dist/assets/suno-DgruGqk4.js +0 -7
  162. package/dist/assets/suno-Dh13LDPL.js +0 -7
  163. package/dist/assets/suno-DhXFpcet.js +0 -7
  164. package/dist/assets/suno-c271LLEU.js +0 -7
  165. package/dist/assets/suno-jlTQ5956.js +0 -7
  166. package/dist/assets/types-BnylCDhI.js +0 -1
@@ -1 +1 @@
1
- import{F as U}from"./index.es-DMehEjXB.js";import{m as L,X as N,k as j,u as R,w as E,t as H,q as K,H as X,j as J}from"./vendor-element-plus-CmP9-3lX.js";import{d as b,C as m,G as n,T as o,E as C,K as c,ai as s,D as a,R as i,Q as g,J as v,O as _,M as T,X as M,S as D,ag as Q}from"./vendor-vue-BhXato7y.js";import{_ as w,bD as W,bE as Y,bF as Z,av as A,bG as x,aO as ee,aK as z}from"./index-CtkD2JaX.js";import{I as S,S as te}from"./ScrollList-OteSDitY.js";import{p as B}from"./pasteUploadMixin-BurWbGNQ.js";import{I as F}from"./ImagePreview-B5F24-Vs.js";import{F as oe}from"./FilePreview-B3Gtn-Tg.js";import{V as O}from"./VideoPlayer-DcumvLkR.js";import{C as se}from"./Consumption-DEB600BC.js";import{a as ne}from"./price-lQeFOa8Q.js";import{C as ae}from"./CopyToClipboard-cTbsayFn.js";import{B as le}from"./BotPlaceholder-BV2w6Q4w.js";import{N as ie}from"./NoTasks-ZsLHgPuo.js";import{l as re}from"./pagination-DLJ2pbsx.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-C5RrfhAy.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";import"./vue-plyr-QZFBikSk.js";const ce=b({name:"LayoutLuma",components:{ElDrawer:N,ElButton:L,FontAwesomeIcon:U},data(){return{drawer:!1}}}),ue={class:"main flex flex-row flex-1"},de={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},me={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function pe(e,t,p,h,k,y){const r=s("font-awesome-icon"),d=s("el-button"),u=s("el-drawer");return a(),m("div",ue,[n("div",de,[C(e.$slots,"config",{},void 0,!0)]),n("div",me,[C(e.$slots,"result",{},void 0,!0)]),o(d,{circle:"",class:"menu",onClick:t[0]||(t[0]=$=>e.drawer=!0)},{default:c(()=>[o(r,{icon:"fa-solid fa-magic"})]),_:1}),o(u,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=$=>e.drawer=$),direction:"ltr","with-header":!1,size:"350px",class:"drawer"},{default:c(()=>[C(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const fe=w(ce,[["render",pe],["__scopeId","data-v-7be1f25b"]]),_e=b({name:"EnhancementSelector",components:{ElSwitch:j,InfoIcon:S},computed:{value:{get(){return this.$store.state.luma?.config?.enhancement},set(e){console.debug("set enhancement",e),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,enhancement:e})}}},mounted(){this.value===void 0&&(this.value=W)}}),he={class:"relative"},$e={class:"flex justify-between"},ge={class:"flex justify-start items-center"},ve={class:"text-sm font-bold"},be={class:"flex justify-end items-center"};function we(e,t,p,h,k,y){const r=s("info-icon"),d=s("el-switch");return a(),m("div",he,[n("div",$e,[n("div",ge,[n("span",ve,i(e.$t("luma.name.enhancement")),1),o(r,{content:e.$t("luma.description.enhancement")},null,8,["content"])]),n("div",be,[o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=u=>e.value=u),class:"value"},null,8,["modelValue"])])])])}const ke=w(_e,[["render",we]]),ye=b({name:"CustomSelector",components:{ElSwitch:j,InfoIcon:S},computed:{value:{get(){return this.$store.state.luma?.config?.custom},set(e){console.debug("set custom",e),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,custom:e})}}},mounted(){this.value===void 0&&(this.value=Y)}}),Ee={class:"relative"},Ve={class:"flex justify-between"},Se={class:"flex justify-start items-center"},Ue={class:"text-sm font-bold"},Le={class:"flex justify-end items-center"};function Ie(e,t,p,h,k,y){const r=s("info-icon"),d=s("el-switch");return a(),m("div",Ee,[n("div",Ve,[n("div",Se,[n("span",Ue,i(e.$t("luma.name.custom")),1),o(r,{content:e.$t("luma.description.custom")},null,8,["content"])]),n("div",Le,[o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=u=>e.value=u),class:"value"},null,8,["modelValue"])])])])}const Te=w(ye,[["render",Ie]]),Ce=b({name:"LoopSelector",components:{ElSwitch:j,InfoIcon:S},computed:{value:{get(){return this.$store.state.luma?.config?.loop},set(e){console.debug("set loop",e),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,loop:e})}}},mounted(){this.value===void 0&&(this.value=Z)}}),je={class:"relative"},Re={class:"flex justify-between"},Ae={class:"flex justify-start items-center"},Ge={class:"text-sm font-bold"},Pe={class:"flex justify-end items-center"};function Me(e,t,p,h,k,y){const r=s("info-icon"),d=s("el-switch");return a(),m("div",je,[n("div",Re,[n("div",Ae,[n("span",Ge,i(e.$t("luma.name.loop")),1),o(r,{content:e.$t("luma.description.loop")},null,8,["content"])]),n("div",Pe,[o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=u=>e.value=u),class:"value"},null,8,["modelValue"])])])])}const De=w(Ce,[["render",Me]]),ze=b({name:"EndImage",components:{ElUpload:R,ElButton:L,ImagePreview:F,InfoIcon:S,FontAwesomeIcon:U},mixins:[B],data(){return{fileList:[],uploadUrl:A()+"/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?.luma?.config?.start_image_url},set(){}}},mounted(){this.value||(this.value=void 0),this.onSetEndImageUrl()},methods:{onExceed(){E.warning(this.$t("luma.message.uploadReferencesExceed"))},onError(){E.error(this.$t("luma.message.uploadReferencesError"))},onSetEndImageUrl(){const e=this.urls?.[0];this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,end_image_url:e})},async onSuccess(){this.onSetEndImageUrl()}}}),Be={class:"relative"},Fe={class:"flex justify-between"},Oe={class:"flex justify-start items-center"},qe={class:"text-sm font-bold"};function Ne(e,t,p,h,k,y){const r=s("info-icon"),d=s("image-preview"),u=s("font-awesome-icon"),$=s("el-button"),f=s("el-upload");return a(),m("div",Be,[n("div",Fe,[n("div",Oe,[n("span",qe,i(e.$t("luma.name.endImageUrl")),1),o(r,{content:e.$t("luma.description.endImageUrl")},null,8,["content"])])]),o(f,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=l=>e.fileList=l),name:"file",accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",limit:5,class:"upload-wrapper",multiple:!1,action:e.uploadUrl,"list-type":"picture","on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:c(({file:l})=>[l.url&&l.percentage!==void 0?(a(),v(d,{key:0,url:l.url,name:l.name,percentage:l.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(l),1)},null,8,["url","name","percentage","onRemove"])):_("",!0)]),default:c(()=>[o($,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:c(()=>[o(u,{icon:"fa-solid fa-upload",class:"icon mr-1"}),g(" "+i(e.$t("luma.button.uploadEndImageUrl")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])])}const He=w(ze,[["render",Ne],["__scopeId","data-v-7a787b4d"]]),Ke=b({name:"StartImage",components:{ElUpload:R,ElButton:L,ImagePreview:F,InfoIcon:S,FontAwesomeIcon:U},mixins:[B],data(){return{fileList:[],uploadUrl:A()+"/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?.luma?.config?.start_image_url},set(){}}},mounted(){this.value||(this.value=void 0),this.onSetStartImageUrl()},methods:{onExceed(){E.warning(this.$t("luma.message.uploadReferencesExceed"))},onError(){E.error(this.$t("luma.message.uploadReferencesError"))},onSetStartImageUrl(){const e=this.urls?.[0];this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,start_image_url:e})},async onSuccess(){this.onSetStartImageUrl()}}}),Xe={class:"relative"},Je={class:"flex justify-between"},Qe={class:"flex justify-start items-center"},We={class:"text-sm font-bold"};function Ye(e,t,p,h,k,y){const r=s("info-icon"),d=s("image-preview"),u=s("font-awesome-icon"),$=s("el-button"),f=s("el-upload");return a(),m("div",Xe,[n("div",Je,[n("div",Qe,[n("span",We,i(e.$t("luma.name.startImageUrl")),1),o(r,{content:e.$t("luma.description.startImageUrl")},null,8,["content"])])]),o(f,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=l=>e.fileList=l),name:"file",accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",limit:5,class:"upload-wrapper",multiple:!1,action:e.uploadUrl,"list-type":"picture","on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:c(({file:l})=>[l.percentage!=null?(a(),v(d,{key:0,url:l.url||l.response.file_url,name:l.name,percentage:l.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(l),1)},null,8,["url","name","percentage","onRemove"])):_("",!0)]),default:c(()=>[o($,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:c(()=>[o(u,{icon:"fa-solid fa-upload",class:"icon mr-1"}),g(" "+i(e.$t("luma.button.uploadStartImageUrl")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])])}const Ze=w(Ke,[["render",Ye],["__scopeId","data-v-8c5cfe84"]]),xe=b({name:"UploadVideo",components:{ElUpload:R,ElButton:L,InfoIcon:S,FilePreview:oe,FontAwesomeIcon:U},data(){return{fileList:[],uploadUrl:A()+"/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.luma?.config?.video_url},set(){const e=this.urls?.[0];this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,video_url:e})}}},mounted(){this.value||(this.value=void 0)},methods:{onExceed(){E.warning(this.$t("luma.message.uploadVideoExceed"))},onError(){E.error(this.$t("luma.message.uploadVideoError"))},beforeUpload(e){const t=e.type==="video/mp4",p=e.size/1024/1024<10;return t?p?!0:(E.error(this.$t("luma.message.uploadVideoSizeExceed")),!1):(E.error(this.$t("luma.message.uploadVideoTypeFailed")),!1)},onSetVideoUrl(){const e=this.urls?.[0];this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,video_url:e,action:"extend"})},async onSuccess(){this.onSetVideoUrl()}}}),et={class:"relative"},tt={class:"flex justify-between"},ot={class:"flex justify-start items-center"},st={class:"text-sm font-bold"};function nt(e,t,p,h,k,y){const r=s("info-icon"),d=s("file-preview"),u=s("font-awesome-icon"),$=s("el-button"),f=s("el-upload");return a(),m("div",et,[n("div",tt,[n("div",ot,[n("span",st,i(e.$t("luma.name.videoUrl")),1),o(r,{content:e.$t("luma.description.videoUrl")},null,8,["content"])])]),o(f,{"file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=l=>e.fileList=l),accept:".mp4",name:"file",class:"value","show-file-list":!0,limit:1,multiple:!1,action:e.uploadUrl,"before-upload":e.beforeUpload,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:c(({file:l})=>[l.percentage!=null?(a(),v(d,{key:0,url:l.url||l.response?.file_url,name:l.name,percentage:l.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(l),1)},null,8,["url","name","percentage","onRemove"])):_("",!0)]),default:c(()=>[o($,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:c(()=>[o(u,{icon:"fa-solid fa-upload",class:"icon mr-1"}),g(" "+i(e.$t("luma.button.uploadVideoUrl")),1)]),_:1})]),_:1},8,["file-list","action","before-upload","on-exceed","on-error","on-success","headers"])])}const at=w(xe,[["render",nt],["__scopeId","data-v-74e51526"]]),lt="",it=b({name:"PromptInput",components:{ElInput:H,InfoIcon:S},computed:{prompt:{get(){return this.$store.state.luma?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=lt)}}),rt={class:"field"},ct={class:"box"},ut={class:"title font-bold"};function dt(e,t,p,h,k,y){const r=s("info-icon"),d=s("el-input");return a(),m("div",rt,[n("div",ct,[n("h2",ut,i(e.$t("luma.name.prompt")),1),o(r,{content:e.$t("luma.description.prompt"),class:"info"},null,8,["content"])]),o(d,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=u=>e.prompt=u),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("luma.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const mt=w(it,[["render",dt],["__scopeId","data-v-281baab8"]]),pt=b({name:"ExtendFromInput",components:{VideoPlayer:O},props:{modelValue:{type:Object,required:!1,default:void 0}},data(){return{options:{quality:{default:"1080p"}}}},computed:{config(){return this.$store.state.luma?.config}}}),ft={class:"relative"},_t={class:"flex mb-2"},ht={class:"text-sm font-bold"};function $t(e,t,p,h,k,y){const r=s("video-player");return a(),m("div",ft,[n("div",_t,[n("span",ht,i(e.$t("luma.name.extend")),1)]),n("div",null,[e.config?.video_url?(a(),v(r,{key:0,src:e.config?.video_url},null,8,["src"])):_("",!0)])])}const gt=w(pt,[["render",$t]]),vt=b({name:"ConfigPanel",components:{LoopSelector:De,StartImageInput:Ze,EndImageInput:He,EnhancementSelector:ke,ElButton:L,FontAwesomeIcon:U,PromptInput:mt,ExtendFromInput:gt,CustomSelector:Te,UploadVideo:at,Consumption:se},emits:["generate"],computed:{config(){return this.$store.state.luma?.config},consumption(){return ne(this.config,this.service?.cost)},service(){return this.$store.state.luma?.service}},methods:{onGenerate(){this.$emit("generate")}}}),bt={class:"flex flex-col h-full"},wt={class:"flex-1 overflow-y-auto p-5"},kt={class:"flex flex-col items-center justify-center px-5 pb-5"};function yt(e,t,p,h,k,y){const r=s("extend-from-input"),d=s("prompt-input"),u=s("custom-selector"),$=s("upload-video"),f=s("start-image-input"),l=s("end-image-input"),V=s("enhancement-selector"),I=s("loop-selector"),q=s("consumption"),G=s("font-awesome-icon"),P=s("el-button");return a(),m("div",bt,[n("div",wt,[e.config?.video_id||e.config?.video_url?(a(),v(r,{key:0,class:"mb-4"})):_("",!0),o(d,{class:"mb-4"}),e.config?.video_id?_("",!0):(a(),v(u,{key:1,class:"mb-4"})),e.config?.custom?(a(),v($,{key:2,class:"mb-4"})):_("",!0),!(e.config?.video_id||e.config?.video_url)&&!e.config?.custom?(a(),v(f,{key:3,class:"mb-4"})):_("",!0),o(l,{class:"mb-4"}),o(V,{class:"mb-4"}),o(I,{class:"mb-4"})]),n("div",kt,[o(q,{value:e.consumption,service:e.service},null,8,["value","service"]),e.config?.video_url!==void 0||e.config?.custom?(a(),v(P,{key:0,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:c(()=>[o(G,{icon:"fa-solid fa-magic",class:"mr-2"}),g(" "+i(e.$t("luma.button.extend")),1)]),_:1},8,["onClick"])):(a(),v(P,{key:1,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:c(()=>[o(G,{icon:"fa-solid fa-magic",class:"mr-2"}),g(" "+i(e.$t("luma.button.generate")),1)]),_:1},8,["onClick"]))])])}const Et=w(vt,[["render",yt]]),Vt=b({name:"TaskPreview",components:{ElImage:J,CopyToClipboard:ae,FontAwesomeIcon:U,ElAlert:X,VideoPlayer:O,ElTooltip:K,ElButton:L},props:{modelValue:{type:Object,required:!0}},emits:["extend"],data(){return{}},computed:{application(){return this.$store.state.luma?.application},config(){return this.$store.state.luma?.config}},methods:{onExtend(e,t){console.debug("set config",t),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,video_id:t.video_id,prompt:t.prompt,action:"extend",thumbnail_url:t.thumbnail_url,video_url:t.video_url}),this.$emit("extend")},onDownload(e){window.open(e,"_blank")}}}),St={class:"preview"},Ut={class:"left"},Lt={class:"main"},It={class:"bot"},Tt={class:"datetime"},Ct={class:"info"},jt={key:0,class:"prompt mt-2"},Rt={key:0},At={key:1},Gt={key:0,class:T({content:!0,failed:!0})},Pt={key:0,class:"mb-4"},Mt={key:1,class:T({operations:!0,"mt-2":!0,"mb-4":!0})},Dt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},zt={key:1,class:T({content:!0})},Bt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ft={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ot={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},qt={key:2,class:T({content:!0})},Nt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function Ht(e,t,p,h,k,y){const r=s("el-image"),d=s("video-player"),u=s("el-button"),$=s("el-tooltip"),f=s("font-awesome-icon"),l=s("copy-to-clipboard"),V=s("el-alert");return a(),m("div",St,[n("div",Ut,[o(r,{src:"https://cdn.acedata.cloud/ahjfwi.png",class:"avatar"})]),n("div",Lt,[n("div",It,[g(i(e.$t("luma.name.lumaBot"))+" ",1),n("span",Tt,i(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),n("div",Ct,[e.modelValue?.request?.prompt?(a(),m("p",jt,[g(i(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?_("",!0):(a(),m("span",Rt," - ("+i(e.$t("luma.status.pending"))+") ",1)),e.modelValue?.response?.state==="processing"||e.modelValue?.response?.state==="pending"?(a(),m("span",At," - ("+i(e.$t("luma.status.processing"))+") ",1)):_("",!0)])):_("",!0)]),e.modelValue?.response?.success===!0?(a(),m("div",Gt,[e.modelValue.response.video_url?(a(),m("div",Pt,[o(d,{src:e.modelValue.response.video_url},null,8,["src"])])):_("",!0),e.modelValue?.response&&!e.config?.custom?(a(),m("div",Mt,[o($,{class:"box-item",effect:"dark",content:e.$t("luma.message.extendVideo"),placement:"top-start"},{default:c(()=>[o(u,{type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=M(I=>e.onExtend(I,e.modelValue?.response),["stop"]))},{default:c(()=>[g(i(e.$t("luma.button.extend")),1)]),_:1})]),_:1},8,["content"]),o($,{class:"box-item",effect:"dark",content:e.$t("luma.message.downloadVideo"),placement:"top-start"},{default:c(()=>[o(u,{type:"info",size:"small",class:"btn-action",onClick:t[1]||(t[1]=M(I=>e.onDownload(e.modelValue?.response?.video_url),["stop"]))},{default:c(()=>[g(i(e.$t("luma.button.download")),1)]),_:1})]),_:1},8,["content"])])):_("",!0),o(V,{closable:!1,class:"mt-2 success"},{default:c(()=>[n("p",Dt,[o(f,{icon:"fa-solid fa-magic",class:"mr-1"}),g(" "+i(e.$t("luma.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),o(l,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):_("",!0),e.modelValue?.response?.state==="failed"||e.modelValue?.response?.success===!1?(a(),m("div",zt,[o(V,{closable:!1,class:"failure"},{template:c(()=>[o(f,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),g(" "+i(e.$t("luma.name.failure")),1)]),default:c(()=>[n("p",Bt,[o(f,{icon:"fa-solid fa-magic",class:"mr-1"}),g(" "+i(e.$t("luma.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),o(l,{content:e.modelValue?.id},null,8,["content"])]),n("p",Ft,[o(f,{icon:"fa-solid fa-circle-info",class:"mr-1"}),g(" "+i(e.$t("luma.name.failureReason"))+": "+i(e.modelValue?.response?.error?.message)+" ",1),o(l,{content:e.modelValue?.response?.error?.message},null,8,["content"])]),n("p",Ot,[o(f,{icon:"fa-solid fa-hashtag",class:"mr-1"}),g(" "+i(e.$t("luma.name.traceId"))+": "+i(e.modelValue?.trace_id)+" ",1),o(l,{content:e.modelValue?.response?.trace_id},null,8,["content"])])]),_:1})])):_("",!0),!e.modelValue?.response||e.modelValue?.response?.state==="processing"||e.modelValue?.response?.state==="pending"?(a(),m("div",qt,[o(V,{closable:!1,class:"info"},{template:c(()=>[o(f,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),g(" "+i(e.$t("luma.name.failure")),1)]),default:c(()=>[n("p",Nt,[o(f,{icon:"fa-solid fa-magic",class:"mr-1"}),g(" "+i(e.$t("luma.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),o(l,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):_("",!0)])])}const Kt=w(Vt,[["render",Ht],["__scopeId","data-v-79832722"]]),Xt=b({name:"RecentPanel",components:{BotPlaceholder:le,TaskPreview:Kt,NoTasks:ie,ScrollList:te},props:{loading:{type:Boolean,default:!1}},emits:["reach-top","extend"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.luma?.tasks,items:this.$store.state.luma?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Jt={key:0},Qt={key:2,class:"w-full h-full flex items-center justify-center"};function Wt(e,t,p,h,k,y){const r=s("bot-placeholder"),d=s("task-preview"),u=s("scroll-list"),$=s("no-tasks");return a(),m(D,null,[e.tasks?.items===void 0?(a(),m("div",Jt,[o(r)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(a(),v(u,{key:1,ref:"scrollList",class:"tasks w-full h-full overflow-y-auto",loading:e.loading,onReachTop:t[1]||(t[1]=f=>e.$emit("reach-top"))},{default:c(()=>[(a(!0),m(D,null,Q(e.tasks?.items,f=>(a(),v(d,{key:f.id,"model-value":f,onExtend:t[0]||(t[0]=l=>e.$emit("extend"))},null,8,["model-value"]))),128))]),_:1},8,["loading"])):_("",!0),e.tasks?.items?.length===0?(a(),m("div",Qt,[o($)])):_("",!0)],64)}const Yt=w(Xt,[["render",Wt]]),Zt="https://webhook.acedata.cloud/luma",xt=b({name:"LumaIndex",components:{ConfigPanel:Et,Layout:fe,RecentPanel:Yt},inject:["initialized"],emits:["extend"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.luma?.status?.getApplications===z.Request},tasksLoading(){return this.$store.state.luma?.status?.getTasks===z.Request||this.fetchingTasks},credential(){return this.$store.state.luma.credential},config(){return this.$store.state.luma.config},application(){return this.$store.state.luma.application},tasks(){return this.$store.state.luma.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 re({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("luma/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("luma/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){console.debug("scrolling down"),await this.$nextTick();const 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);const{limit:t=5,createdAtMin:p,createdAtMax:h}=e||{};console.debug("limit",t,"createdAtMin",p,"createdAtMax",h),this.fetchingTasks=!0;try{await this.$store.dispatch("luma/getTasks",{limit:t,createdAtMin:p,createdAtMax:h})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:Zt},t=this.credential?.token;if(!t){console.error("no token specified");return}E.info(this.$t("luma.message.startingTask")),x.generate(e,{token:t}).then(()=>{E.success(this.$t("luma.message.startTaskSuccess"))}).catch(p=>{p?.response?.data?.error?.code===ee?E.error(this.$t("luma.message.usedUp")):E.error(this.$t("luma.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function eo(e,t,p,h,k,y){const r=s("config-panel"),d=s("recent-panel"),u=s("layout");return a(),v(u,null,{config:c(()=>[o(r,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:c(()=>[o(d,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop,onExtend:t[0]||(t[0]=$=>e.$emit("extend"))},null,8,["loading","onReachTop"])]),_:1})}const ko=w(xt,[["render",eo]]);export{ko as default};
1
+ import{F as U}from"./index.es-D2RJIOwI.js";import{m as L,W as q,k as j,u as R,w as E,t as H,q as J,H as K,j as Q}from"./vendor-element-plus-ZfFlETcH.js";import{d as b,C as m,G as n,T as o,E as C,K as c,ai as s,D as a,R as i,Q as g,J as v,O as _,M as T,X as M,S as D,ag as W}from"./vendor-vue-BhXato7y.js";import{_ as w,bC as X,bD as Y,bE as Z,au as A,bF as x,aN as ee,aJ as z}from"./index-CdkIaG4d.js";import{I as S,S as te}from"./ScrollList-Dw45lO0t.js";import{p as B}from"./pasteUploadMixin-BurWbGNQ.js";import{I as F}from"./ImagePreview-SUR7TFTL.js";import{F as oe}from"./FilePreview-BNzbUf36.js";import{V as O}from"./VideoPlayer-gXXZbisY.js";import{C as se}from"./Consumption-BCbR6ZEO.js";import{a as ne}from"./price-CwH8PfMf.js";import{C as ae}from"./CopyToClipboard-Djhvl2Fk.js";import{B as le}from"./BotPlaceholder-CInEMDBc.js";import{N as ie}from"./NoTasks-BYOtsKOE.js";import{l as re}from"./pagination-DLJ2pbsx.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-CNlWJWvL.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";import"./vue-plyr-QZFBikSk.js";const ce=b({name:"LayoutLuma",components:{ElDrawer:q,ElButton:L,FontAwesomeIcon:U},data(){return{drawer:!1}}}),ue={class:"main flex flex-row flex-1"},de={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},me={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function pe(e,t,p,h,k,y){const r=s("font-awesome-icon"),d=s("el-button"),u=s("el-drawer");return a(),m("div",ue,[n("div",de,[C(e.$slots,"config",{},void 0,!0)]),n("div",me,[C(e.$slots,"result",{},void 0,!0)]),o(d,{circle:"",class:"menu",onClick:t[0]||(t[0]=$=>e.drawer=!0)},{default:c(()=>[o(r,{icon:"fa-solid fa-magic"})]),_:1}),o(u,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=$=>e.drawer=$),direction:"ltr","with-header":!1,size:"350px",class:"drawer"},{default:c(()=>[C(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const fe=w(ce,[["render",pe],["__scopeId","data-v-7be1f25b"]]),_e=b({name:"EnhancementSelector",components:{ElSwitch:j,InfoIcon:S},computed:{value:{get(){return this.$store.state.luma?.config?.enhancement},set(e){console.debug("set enhancement",e),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,enhancement:e})}}},mounted(){this.value===void 0&&(this.value=X)}}),he={class:"relative"},$e={class:"flex justify-between"},ge={class:"flex justify-start items-center"},ve={class:"text-sm font-bold"},be={class:"flex justify-end items-center"};function we(e,t,p,h,k,y){const r=s("info-icon"),d=s("el-switch");return a(),m("div",he,[n("div",$e,[n("div",ge,[n("span",ve,i(e.$t("luma.name.enhancement")),1),o(r,{content:e.$t("luma.description.enhancement")},null,8,["content"])]),n("div",be,[o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=u=>e.value=u),class:"value"},null,8,["modelValue"])])])])}const ke=w(_e,[["render",we]]),ye=b({name:"CustomSelector",components:{ElSwitch:j,InfoIcon:S},computed:{value:{get(){return this.$store.state.luma?.config?.custom},set(e){console.debug("set custom",e),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,custom:e})}}},mounted(){this.value===void 0&&(this.value=Y)}}),Ee={class:"relative"},Ve={class:"flex justify-between"},Se={class:"flex justify-start items-center"},Ue={class:"text-sm font-bold"},Le={class:"flex justify-end items-center"};function Ie(e,t,p,h,k,y){const r=s("info-icon"),d=s("el-switch");return a(),m("div",Ee,[n("div",Ve,[n("div",Se,[n("span",Ue,i(e.$t("luma.name.custom")),1),o(r,{content:e.$t("luma.description.custom")},null,8,["content"])]),n("div",Le,[o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=u=>e.value=u),class:"value"},null,8,["modelValue"])])])])}const Te=w(ye,[["render",Ie]]),Ce=b({name:"LoopSelector",components:{ElSwitch:j,InfoIcon:S},computed:{value:{get(){return this.$store.state.luma?.config?.loop},set(e){console.debug("set loop",e),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,loop:e})}}},mounted(){this.value===void 0&&(this.value=Z)}}),je={class:"relative"},Re={class:"flex justify-between"},Ae={class:"flex justify-start items-center"},Ge={class:"text-sm font-bold"},Pe={class:"flex justify-end items-center"};function Me(e,t,p,h,k,y){const r=s("info-icon"),d=s("el-switch");return a(),m("div",je,[n("div",Re,[n("div",Ae,[n("span",Ge,i(e.$t("luma.name.loop")),1),o(r,{content:e.$t("luma.description.loop")},null,8,["content"])]),n("div",Pe,[o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=u=>e.value=u),class:"value"},null,8,["modelValue"])])])])}const De=w(Ce,[["render",Me]]),ze=b({name:"EndImage",components:{ElUpload:R,ElButton:L,ImagePreview:F,InfoIcon:S,FontAwesomeIcon:U},mixins:[B],data(){return{fileList:[],uploadUrl:A()+"/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?.luma?.config?.start_image_url},set(){}}},mounted(){this.value||(this.value=void 0),this.onSetEndImageUrl()},methods:{onExceed(){E.warning(this.$t("luma.message.uploadReferencesExceed"))},onError(){E.error(this.$t("luma.message.uploadReferencesError"))},onSetEndImageUrl(){const e=this.urls?.[0];this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,end_image_url:e})},async onSuccess(){this.onSetEndImageUrl()}}}),Be={class:"relative"},Fe={class:"flex justify-between"},Oe={class:"flex justify-start items-center"},Ne={class:"text-sm font-bold"};function qe(e,t,p,h,k,y){const r=s("info-icon"),d=s("image-preview"),u=s("font-awesome-icon"),$=s("el-button"),f=s("el-upload");return a(),m("div",Be,[n("div",Fe,[n("div",Oe,[n("span",Ne,i(e.$t("luma.name.endImageUrl")),1),o(r,{content:e.$t("luma.description.endImageUrl")},null,8,["content"])])]),o(f,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=l=>e.fileList=l),name:"file",accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",limit:5,class:"upload-wrapper",multiple:!1,action:e.uploadUrl,"list-type":"picture","on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:c(({file:l})=>[l.url&&l.percentage!==void 0?(a(),v(d,{key:0,url:l.url,name:l.name,percentage:l.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(l),1)},null,8,["url","name","percentage","onRemove"])):_("",!0)]),default:c(()=>[o($,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:c(()=>[o(u,{icon:"fa-solid fa-upload",class:"icon mr-1"}),g(" "+i(e.$t("luma.button.uploadEndImageUrl")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])])}const He=w(ze,[["render",qe],["__scopeId","data-v-7a787b4d"]]),Je=b({name:"StartImage",components:{ElUpload:R,ElButton:L,ImagePreview:F,InfoIcon:S,FontAwesomeIcon:U},mixins:[B],data(){return{fileList:[],uploadUrl:A()+"/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?.luma?.config?.start_image_url},set(){}}},mounted(){this.value||(this.value=void 0),this.onSetStartImageUrl()},methods:{onExceed(){E.warning(this.$t("luma.message.uploadReferencesExceed"))},onError(){E.error(this.$t("luma.message.uploadReferencesError"))},onSetStartImageUrl(){const e=this.urls?.[0];this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,start_image_url:e})},async onSuccess(){this.onSetStartImageUrl()}}}),Ke={class:"relative"},Qe={class:"flex justify-between"},We={class:"flex justify-start items-center"},Xe={class:"text-sm font-bold"};function Ye(e,t,p,h,k,y){const r=s("info-icon"),d=s("image-preview"),u=s("font-awesome-icon"),$=s("el-button"),f=s("el-upload");return a(),m("div",Ke,[n("div",Qe,[n("div",We,[n("span",Xe,i(e.$t("luma.name.startImageUrl")),1),o(r,{content:e.$t("luma.description.startImageUrl")},null,8,["content"])])]),o(f,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=l=>e.fileList=l),name:"file",accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",limit:5,class:"upload-wrapper",multiple:!1,action:e.uploadUrl,"list-type":"picture","on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:c(({file:l})=>[l.percentage!=null?(a(),v(d,{key:0,url:l.url||l.response.file_url,name:l.name,percentage:l.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(l),1)},null,8,["url","name","percentage","onRemove"])):_("",!0)]),default:c(()=>[o($,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:c(()=>[o(u,{icon:"fa-solid fa-upload",class:"icon mr-1"}),g(" "+i(e.$t("luma.button.uploadStartImageUrl")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])])}const Ze=w(Je,[["render",Ye],["__scopeId","data-v-8c5cfe84"]]),xe=b({name:"UploadVideo",components:{ElUpload:R,ElButton:L,InfoIcon:S,FilePreview:oe,FontAwesomeIcon:U},data(){return{fileList:[],uploadUrl:A()+"/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.luma?.config?.video_url},set(){const e=this.urls?.[0];this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,video_url:e})}}},mounted(){this.value||(this.value=void 0)},methods:{onExceed(){E.warning(this.$t("luma.message.uploadVideoExceed"))},onError(){E.error(this.$t("luma.message.uploadVideoError"))},beforeUpload(e){const t=e.type==="video/mp4",p=e.size/1024/1024<10;return t?p?!0:(E.error(this.$t("luma.message.uploadVideoSizeExceed")),!1):(E.error(this.$t("luma.message.uploadVideoTypeFailed")),!1)},onSetVideoUrl(){const e=this.urls?.[0];this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,video_url:e,action:"extend"})},async onSuccess(){this.onSetVideoUrl()}}}),et={class:"relative"},tt={class:"flex justify-between"},ot={class:"flex justify-start items-center"},st={class:"text-sm font-bold"};function nt(e,t,p,h,k,y){const r=s("info-icon"),d=s("file-preview"),u=s("font-awesome-icon"),$=s("el-button"),f=s("el-upload");return a(),m("div",et,[n("div",tt,[n("div",ot,[n("span",st,i(e.$t("luma.name.videoUrl")),1),o(r,{content:e.$t("luma.description.videoUrl")},null,8,["content"])])]),o(f,{"file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=l=>e.fileList=l),accept:".mp4",name:"file",class:"value","show-file-list":!0,limit:1,multiple:!1,action:e.uploadUrl,"before-upload":e.beforeUpload,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:c(({file:l})=>[l.percentage!=null?(a(),v(d,{key:0,url:l.url||l.response?.file_url,name:l.name,percentage:l.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(l),1)},null,8,["url","name","percentage","onRemove"])):_("",!0)]),default:c(()=>[o($,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:c(()=>[o(u,{icon:"fa-solid fa-upload",class:"icon mr-1"}),g(" "+i(e.$t("luma.button.uploadVideoUrl")),1)]),_:1})]),_:1},8,["file-list","action","before-upload","on-exceed","on-error","on-success","headers"])])}const at=w(xe,[["render",nt],["__scopeId","data-v-74e51526"]]),lt="",it=b({name:"PromptInput",components:{ElInput:H,InfoIcon:S},computed:{prompt:{get(){return this.$store.state.luma?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=lt)}}),rt={class:"field"},ct={class:"box"},ut={class:"title font-bold"};function dt(e,t,p,h,k,y){const r=s("info-icon"),d=s("el-input");return a(),m("div",rt,[n("div",ct,[n("h2",ut,i(e.$t("luma.name.prompt")),1),o(r,{content:e.$t("luma.description.prompt"),class:"info"},null,8,["content"])]),o(d,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=u=>e.prompt=u),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("luma.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const mt=w(it,[["render",dt],["__scopeId","data-v-281baab8"]]),pt=b({name:"ExtendFromInput",components:{VideoPlayer:O},props:{modelValue:{type:Object,required:!1,default:void 0}},data(){return{options:{quality:{default:"1080p"}}}},computed:{config(){return this.$store.state.luma?.config}}}),ft={class:"relative"},_t={class:"flex mb-2"},ht={class:"text-sm font-bold"};function $t(e,t,p,h,k,y){const r=s("video-player");return a(),m("div",ft,[n("div",_t,[n("span",ht,i(e.$t("luma.name.extend")),1)]),n("div",null,[e.config?.video_url?(a(),v(r,{key:0,src:e.config?.video_url},null,8,["src"])):_("",!0)])])}const gt=w(pt,[["render",$t]]),vt=b({name:"ConfigPanel",components:{LoopSelector:De,StartImageInput:Ze,EndImageInput:He,EnhancementSelector:ke,ElButton:L,FontAwesomeIcon:U,PromptInput:mt,ExtendFromInput:gt,CustomSelector:Te,UploadVideo:at,Consumption:se},emits:["generate"],computed:{config(){return this.$store.state.luma?.config},consumption(){return ne(this.config,this.service?.cost)},service(){return this.$store.state.luma?.service}},methods:{onGenerate(){this.$emit("generate")}}}),bt={class:"flex flex-col h-full"},wt={class:"flex-1 overflow-y-auto p-5"},kt={class:"flex flex-col items-center justify-center px-5 pb-5"};function yt(e,t,p,h,k,y){const r=s("extend-from-input"),d=s("prompt-input"),u=s("custom-selector"),$=s("upload-video"),f=s("start-image-input"),l=s("end-image-input"),V=s("enhancement-selector"),I=s("loop-selector"),N=s("consumption"),G=s("font-awesome-icon"),P=s("el-button");return a(),m("div",bt,[n("div",wt,[e.config?.video_id||e.config?.video_url?(a(),v(r,{key:0,class:"mb-4"})):_("",!0),o(d,{class:"mb-4"}),e.config?.video_id?_("",!0):(a(),v(u,{key:1,class:"mb-4"})),e.config?.custom?(a(),v($,{key:2,class:"mb-4"})):_("",!0),!(e.config?.video_id||e.config?.video_url)&&!e.config?.custom?(a(),v(f,{key:3,class:"mb-4"})):_("",!0),o(l,{class:"mb-4"}),o(V,{class:"mb-4"}),o(I,{class:"mb-4"})]),n("div",kt,[o(N,{value:e.consumption,service:e.service},null,8,["value","service"]),e.config?.video_url!==void 0||e.config?.custom?(a(),v(P,{key:0,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:c(()=>[o(G,{icon:"fa-solid fa-magic",class:"mr-2"}),g(" "+i(e.$t("luma.button.extend")),1)]),_:1},8,["onClick"])):(a(),v(P,{key:1,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:c(()=>[o(G,{icon:"fa-solid fa-magic",class:"mr-2"}),g(" "+i(e.$t("luma.button.generate")),1)]),_:1},8,["onClick"]))])])}const Et=w(vt,[["render",yt]]),Vt=b({name:"TaskPreview",components:{ElImage:Q,CopyToClipboard:ae,FontAwesomeIcon:U,ElAlert:K,VideoPlayer:O,ElTooltip:J,ElButton:L},props:{modelValue:{type:Object,required:!0}},emits:["extend"],data(){return{}},computed:{application(){return this.$store.state.luma?.application},config(){return this.$store.state.luma?.config}},methods:{onExtend(e,t){console.debug("set config",t),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,video_id:t.video_id,prompt:t.prompt,action:"extend",thumbnail_url:t.thumbnail_url,video_url:t.video_url}),this.$emit("extend")},onDownload(e){window.open(e,"_blank")}}}),St={class:"preview"},Ut={class:"left"},Lt={class:"main"},It={class:"bot"},Tt={class:"datetime"},Ct={class:"info"},jt={key:0,class:"prompt mt-2"},Rt={key:0},At={key:1},Gt={key:0,class:T({content:!0,failed:!0})},Pt={key:0,class:"mb-4"},Mt={key:1,class:T({operations:!0,"mt-2":!0,"mb-4":!0})},Dt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},zt={key:1,class:T({content:!0})},Bt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ft={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ot={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Nt={key:2,class:T({content:!0})},qt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function Ht(e,t,p,h,k,y){const r=s("el-image"),d=s("video-player"),u=s("el-button"),$=s("el-tooltip"),f=s("font-awesome-icon"),l=s("copy-to-clipboard"),V=s("el-alert");return a(),m("div",St,[n("div",Ut,[o(r,{src:"https://cdn.acedata.cloud/ahjfwi.png",class:"avatar"})]),n("div",Lt,[n("div",It,[g(i(e.$t("luma.name.lumaBot"))+" ",1),n("span",Tt,i(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),n("div",Ct,[e.modelValue?.request?.prompt?(a(),m("p",jt,[g(i(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?_("",!0):(a(),m("span",Rt," - ("+i(e.$t("luma.status.pending"))+") ",1)),e.modelValue?.response?.state==="processing"||e.modelValue?.response?.state==="pending"?(a(),m("span",At," - ("+i(e.$t("luma.status.processing"))+") ",1)):_("",!0)])):_("",!0)]),e.modelValue?.response?.success===!0?(a(),m("div",Gt,[e.modelValue.response.video_url?(a(),m("div",Pt,[o(d,{src:e.modelValue.response.video_url},null,8,["src"])])):_("",!0),e.modelValue?.response&&!e.config?.custom?(a(),m("div",Mt,[o($,{class:"box-item",effect:"dark",content:e.$t("luma.message.extendVideo"),placement:"top-start"},{default:c(()=>[o(u,{type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=M(I=>e.onExtend(I,e.modelValue?.response),["stop"]))},{default:c(()=>[g(i(e.$t("luma.button.extend")),1)]),_:1})]),_:1},8,["content"]),o($,{class:"box-item",effect:"dark",content:e.$t("luma.message.downloadVideo"),placement:"top-start"},{default:c(()=>[o(u,{type:"info",size:"small",class:"btn-action",onClick:t[1]||(t[1]=M(I=>e.onDownload(e.modelValue?.response?.video_url),["stop"]))},{default:c(()=>[g(i(e.$t("luma.button.download")),1)]),_:1})]),_:1},8,["content"])])):_("",!0),o(V,{closable:!1,class:"mt-2 success"},{default:c(()=>[n("p",Dt,[o(f,{icon:"fa-solid fa-magic",class:"mr-1"}),g(" "+i(e.$t("luma.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),o(l,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):_("",!0),e.modelValue?.response?.state==="failed"||e.modelValue?.response?.success===!1?(a(),m("div",zt,[o(V,{closable:!1,class:"failure"},{template:c(()=>[o(f,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),g(" "+i(e.$t("luma.name.failure")),1)]),default:c(()=>[n("p",Bt,[o(f,{icon:"fa-solid fa-magic",class:"mr-1"}),g(" "+i(e.$t("luma.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),o(l,{content:e.modelValue?.id},null,8,["content"])]),n("p",Ft,[o(f,{icon:"fa-solid fa-circle-info",class:"mr-1"}),g(" "+i(e.$t("luma.name.failureReason"))+": "+i(e.modelValue?.response?.error?.message)+" ",1),o(l,{content:e.modelValue?.response?.error?.message},null,8,["content"])]),n("p",Ot,[o(f,{icon:"fa-solid fa-hashtag",class:"mr-1"}),g(" "+i(e.$t("luma.name.traceId"))+": "+i(e.modelValue?.trace_id)+" ",1),o(l,{content:e.modelValue?.response?.trace_id},null,8,["content"])])]),_:1})])):_("",!0),!e.modelValue?.response||e.modelValue?.response?.state==="processing"||e.modelValue?.response?.state==="pending"?(a(),m("div",Nt,[o(V,{closable:!1,class:"info"},{template:c(()=>[o(f,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),g(" "+i(e.$t("luma.name.failure")),1)]),default:c(()=>[n("p",qt,[o(f,{icon:"fa-solid fa-magic",class:"mr-1"}),g(" "+i(e.$t("luma.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),o(l,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):_("",!0)])])}const Jt=w(Vt,[["render",Ht],["__scopeId","data-v-79832722"]]),Kt=b({name:"RecentPanel",components:{BotPlaceholder:le,TaskPreview:Jt,NoTasks:ie,ScrollList:te},props:{loading:{type:Boolean,default:!1}},emits:["reach-top","extend"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.luma?.tasks,items:this.$store.state.luma?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Qt={key:0},Wt={key:2,class:"w-full h-full flex items-center justify-center"};function Xt(e,t,p,h,k,y){const r=s("bot-placeholder"),d=s("task-preview"),u=s("scroll-list"),$=s("no-tasks");return a(),m(D,null,[e.tasks?.items===void 0?(a(),m("div",Qt,[o(r)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(a(),v(u,{key:1,ref:"scrollList",class:"tasks w-full h-full overflow-y-auto",loading:e.loading,onReachTop:t[1]||(t[1]=f=>e.$emit("reach-top"))},{default:c(()=>[(a(!0),m(D,null,W(e.tasks?.items,f=>(a(),v(d,{key:f.id,"model-value":f,onExtend:t[0]||(t[0]=l=>e.$emit("extend"))},null,8,["model-value"]))),128))]),_:1},8,["loading"])):_("",!0),e.tasks?.items?.length===0?(a(),m("div",Wt,[o($)])):_("",!0)],64)}const Yt=w(Kt,[["render",Xt]]),Zt="https://webhook.acedata.cloud/luma",xt=b({name:"LumaIndex",components:{ConfigPanel:Et,Layout:fe,RecentPanel:Yt},inject:["initialized"],emits:["extend"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.luma?.status?.getApplications===z.Request},tasksLoading(){return this.$store.state.luma?.status?.getTasks===z.Request||this.fetchingTasks},credential(){return this.$store.state.luma.credential},config(){return this.$store.state.luma.config},application(){return this.$store.state.luma.application},tasks(){return this.$store.state.luma.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 re({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("luma/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("luma/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){console.debug("scrolling down"),await this.$nextTick();const 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);const{limit:t=5,createdAtMin:p,createdAtMax:h}=e||{};console.debug("limit",t,"createdAtMin",p,"createdAtMax",h),this.fetchingTasks=!0;try{await this.$store.dispatch("luma/getTasks",{limit:t,createdAtMin:p,createdAtMax:h})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:Zt},t=this.credential?.token;if(!t){console.error("no token specified");return}E.info(this.$t("luma.message.startingTask")),x.generate(e,{token:t}).then(()=>{E.success(this.$t("luma.message.startTaskSuccess"))}).catch(p=>{p?.response?.data?.error?.code===ee?E.error(this.$t("luma.message.usedUp")):E.error(this.$t("luma.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function eo(e,t,p,h,k,y){const r=s("config-panel"),d=s("recent-panel"),u=s("layout");return a(),v(u,null,{config:c(()=>[o(r,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:c(()=>[o(d,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop,onExtend:t[0]||(t[0]=$=>e.$emit("extend"))},null,8,["loading","onReachTop"])]),_:1})}const ko=w(xt,[["render",eo]]);export{ko as default};
@@ -1 +1 @@
1
- import{r as $,_ as v,R as x,bm as S,a as T,b as N,c as L,d5 as R,av as D}from"./index-CtkD2JaX.js";import{F as k}from"./index.es-DMehEjXB.js";import{n as U,o as P,r as B,E as A,j as b}from"./vendor-element-plus-CmP9-3lX.js";import{d as E,J as f,K as n,T as o,O as h,ai as t,Q as g,R as m,G as s,D as l,C as _,Y as M,S as V,ag as F,M as H}from"./vendor-vue-BhXato7y.js";import"./vendor-web3-C5RrfhAy.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";const J=E({name:"HelpEntry",components:{ElImage:b,ElDialog:A,ElPopover:B,ElMenu:P,ElMenuItem:U,FontAwesomeIcon:k},props:{visible:{type:Boolean,default:!0}},emits:["close"],computed:{site(){return this.$store.state.site}},methods:{onJoin(){window.open(this.$store.state.site?.features?.support?.discord?.url,"_blank")},onProfit(){this.$router.push({name:$})}}}),X={class:"flex"},j={class:"flex-1 text-center"};function q(e,i,w,I,y,C){const c=t("font-awesome-icon"),r=t("el-menu-item"),d=t("el-image"),u=t("el-popover"),a=t("el-menu"),p=t("el-dialog");return l(),f(p,{"model-value":e.visible,width:200,class:"text-center",onClose:i[0]||(i[0]=O=>e.$emit("close"))},{default:n(()=>[o(a,{collapse:!1,class:"menu"},{default:n(()=>[e.site?.features?.support?.discord?.enabled?(l(),f(r,{key:0,index:"1",onClick:e.onJoin},{title:n(()=>[g(m(e.$t("common.message.joinDiscord")),1)]),default:n(()=>[o(c,{icon:"fa-brands fa-discord",class:"mr-2"})]),_:1},8,["onClick"])):h("",!0),o(u,{width:350,trigger:"hover"},{reference:n(()=>[e.site?.features?.support?.wechat?.enabled?(l(),f(r,{key:0,index:"2"},{title:n(()=>[g(m(e.$t("common.message.addWeChat")),1)]),default:n(()=>[o(c,{icon:"fa-brands fa-weixin",class:"mr-2"})]),_:1})):h("",!0)]),default:n(()=>[s("div",X,[s("div",j,[o(d,{src:e.site?.features?.support?.wechat?.qr},null,8,["src"])])])]),_:1})]),_:1})]),_:1},8,["model-value"])}const z=v(J,[["render",q],["__scopeId","data-v-0fce633f"]]),G=E({name:"ProfileIndex",components:{ElImage:b,HelpDialog:z,FontAwesomeIcon:k},data(){return{operating:{locale:!1,dark:!1,help:!1}}},computed:{user(){return this.$store.getters.user},showSupport(){return this.$store?.state?.site?.features?.support?.enabled&&(this.$store?.state?.site?.features?.support?.discord?.enabled||this.$store?.state?.site?.features?.support?.wechat?.enabled)},showSite(){return this.$store?.state?.site?.admins?.includes(this.$store.getters.user?.id)},links(){return[{key:"profile",text:this.$t("console.menu.userProfile"),href:`${S()}/user/profile`,icon:"fa-regular fa-user"},{key:"application-list",text:this.$t("console.menu.applicationList"),name:T,icon:"fa-solid fa-cube"},{key:"order-list",text:this.$t("console.menu.orderList"),name:N,icon:"fa-solid fa-store"},{key:"usage-list",text:this.$t("console.menu.usageList"),name:L,icon:"fa-solid fa-rotate-left"},{key:"distribution-index",text:this.$t("console.menu.distributionIndex"),name:$,icon:"fa-solid fa-coins"},...this.showSite?[{key:"site-index",text:this.$t("common.nav.site"),name:R,icon:"fa-solid fa-gear"}]:[],{key:"dark-setting",text:this.$t("common.nav.darkMode"),icon:"fa-solid fa-moon",callback:()=>{this.operating.dark=!0}},{key:"locale-setting",text:this.$t("common.nav.locale"),icon:"fa-solid fa-language",callback:()=>{this.operating.locale=!0}},{key:"developerPlatform",text:this.$t("console.menu.developerPlatform"),href:D(),icon:"fa-solid fa-laptop-code"},...this.showSupport?[{key:"support",text:this.$t("common.nav.support"),callback:()=>{this.operating.help=!0},icon:"fa-solid fa-question"}]:[],{key:"logout",text:this.$t("common.nav.logOut"),icon:"fa-solid fa-arrow-right-from-bracket",callback:async()=>{await this.$store.dispatch("logout")}}]}},methods:{onHome(){this.$router.push({name:x})},onNavigate(e){e.name?this.$router.push({name:e.name}):e.href?window.open(e.href,"_blank"):e.callback&&e.callback()}}}),K={class:"profile"},Q={class:"info"},W={class:"links"},Y=["onClick"],Z={class:"icon"},ee={class:"text"},te={class:"suffix"};function oe(e,i,w,I,y,C){const c=t("el-image"),r=t("font-awesome-icon"),d=t("locale-selector"),u=t("help-dialog");return l(),_("div",K,[s("div",Q,[o(c,{src:e.user.avatar,fit:"cover",class:"avatar"},null,8,["src"]),s("h2",null,m(e.user.username),1),s("div",{style:M({backgroundImage:"url("+e.user.avatar+")"}),class:"background"},null,4)]),s("div",W,[(l(!0),_(V,null,F(e.links,(a,p)=>(l(),_("a",{key:p,class:H({link:!0,active:e.$route.name===a.name}),onClick:O=>e.onNavigate(a)},[s("span",Z,[o(r,{icon:a.icon,class:"text-sm"},null,8,["icon"])]),s("span",ee,m(a.text),1),s("span",te,[o(r,{icon:"fa-solid fa-chevron-right",class:"text-sm"})])],10,Y))),128))]),o(d,{visible:e.operating.locale==!0,onClose:i[0]||(i[0]=a=>e.operating.locale=!1)},null,8,["visible"]),o(u,{visible:e.operating.help==!0,onClose:i[1]||(i[1]=a=>e.operating.help=!1)},null,8,["visible"])])}const de=v(G,[["render",oe],["__scopeId","data-v-eeab02e4"]]);export{de as default};
1
+ import{r as $,_ as v,R as x,bl as S,a as T,b as N,c as L,d4 as R,au as D}from"./index-CdkIaG4d.js";import{F as k}from"./index.es-D2RJIOwI.js";import{n as U,o as P,r as B,E as A,j as b}from"./vendor-element-plus-ZfFlETcH.js";import{d as E,J as f,K as n,T as o,O as h,ai as t,Q as g,R as d,G as s,D as l,C as _,Y as M,S as V,ag as F,M as H}from"./vendor-vue-BhXato7y.js";import"./vendor-web3-CNlWJWvL.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";const J=E({name:"HelpEntry",components:{ElImage:b,ElDialog:A,ElPopover:B,ElMenu:P,ElMenuItem:U,FontAwesomeIcon:k},props:{visible:{type:Boolean,default:!0}},emits:["close"],computed:{site(){return this.$store.state.site}},methods:{onJoin(){window.open(this.$store.state.site?.features?.support?.discord?.url,"_blank")},onProfit(){this.$router.push({name:$})}}}),X={class:"flex"},j={class:"flex-1 text-center"};function q(e,i,w,I,y,C){const c=t("font-awesome-icon"),r=t("el-menu-item"),m=t("el-image"),u=t("el-popover"),a=t("el-menu"),p=t("el-dialog");return l(),f(p,{"model-value":e.visible,width:200,class:"text-center",onClose:i[0]||(i[0]=O=>e.$emit("close"))},{default:n(()=>[o(a,{collapse:!1,class:"menu"},{default:n(()=>[e.site?.features?.support?.discord?.enabled?(l(),f(r,{key:0,index:"1",onClick:e.onJoin},{title:n(()=>[g(d(e.$t("common.message.joinDiscord")),1)]),default:n(()=>[o(c,{icon:"fa-brands fa-discord",class:"mr-2"})]),_:1},8,["onClick"])):h("",!0),o(u,{width:350,trigger:"hover"},{reference:n(()=>[e.site?.features?.support?.wechat?.enabled?(l(),f(r,{key:0,index:"2"},{title:n(()=>[g(d(e.$t("common.message.addWeChat")),1)]),default:n(()=>[o(c,{icon:"fa-brands fa-weixin",class:"mr-2"})]),_:1})):h("",!0)]),default:n(()=>[s("div",X,[s("div",j,[o(m,{src:e.site?.features?.support?.wechat?.qr},null,8,["src"])])])]),_:1})]),_:1})]),_:1},8,["model-value"])}const z=v(J,[["render",q],["__scopeId","data-v-0fce633f"]]),G=E({name:"ProfileIndex",components:{ElImage:b,HelpDialog:z,FontAwesomeIcon:k},data(){return{operating:{locale:!1,dark:!1,help:!1}}},computed:{user(){return this.$store.getters.user},showSupport(){return this.$store?.state?.site?.features?.support?.enabled&&(this.$store?.state?.site?.features?.support?.discord?.enabled||this.$store?.state?.site?.features?.support?.wechat?.enabled)},showSite(){return this.$store?.state?.site?.admins?.includes(this.$store.getters.user?.id)},links(){return[{key:"profile",text:this.$t("console.menu.userProfile"),href:`${S()}/user/profile`,icon:"fa-regular fa-user"},{key:"application-list",text:this.$t("console.menu.applicationList"),name:T,icon:"fa-solid fa-cube"},{key:"order-list",text:this.$t("console.menu.orderList"),name:N,icon:"fa-solid fa-store"},{key:"usage-list",text:this.$t("console.menu.usageList"),name:L,icon:"fa-solid fa-rotate-left"},{key:"distribution-index",text:this.$t("console.menu.distributionIndex"),name:$,icon:"fa-solid fa-coins"},...this.showSite?[{key:"site-index",text:this.$t("common.nav.site"),name:R,icon:"fa-solid fa-gear"}]:[],{key:"dark-setting",text:this.$t("common.nav.darkMode"),icon:"fa-solid fa-moon",callback:()=>{this.operating.dark=!0}},{key:"locale-setting",text:this.$t("common.nav.locale"),icon:"fa-solid fa-language",callback:()=>{this.operating.locale=!0}},{key:"developerPlatform",text:this.$t("console.menu.developerPlatform"),href:D(),icon:"fa-solid fa-laptop-code"},...this.showSupport?[{key:"support",text:this.$t("common.nav.support"),callback:()=>{this.operating.help=!0},icon:"fa-solid fa-question"}]:[],{key:"logout",text:this.$t("common.nav.logOut"),icon:"fa-solid fa-arrow-right-from-bracket",callback:async()=>{await this.$store.dispatch("logout")}}]}},methods:{onHome(){this.$router.push({name:x})},onNavigate(e){e.name?this.$router.push({name:e.name}):e.href?window.open(e.href,"_blank"):e.callback&&e.callback()}}}),K={class:"profile"},Q={class:"info"},W={class:"links"},Y=["onClick"],Z={class:"icon"},ee={class:"text"},te={class:"suffix"};function oe(e,i,w,I,y,C){const c=t("el-image"),r=t("font-awesome-icon"),m=t("locale-selector"),u=t("help-dialog");return l(),_("div",K,[s("div",Q,[o(c,{src:e.user.avatar,fit:"cover",class:"avatar"},null,8,["src"]),s("h2",null,d(e.user.username),1),s("div",{style:M({backgroundImage:"url("+e.user.avatar+")"}),class:"background"},null,4)]),s("div",W,[(l(!0),_(V,null,F(e.links,(a,p)=>(l(),_("a",{key:p,class:H({link:!0,active:e.$route.name===a.name}),onClick:O=>e.onNavigate(a)},[s("span",Z,[o(r,{icon:a.icon,class:"text-sm"},null,8,["icon"])]),s("span",ee,d(a.text),1),s("span",te,[o(r,{icon:"fa-solid fa-chevron-right",class:"text-sm"})])],10,Y))),128))]),o(m,{visible:e.operating.locale==!0,onClose:i[0]||(i[0]=a=>e.operating.locale=!1)},null,8,["visible"]),o(u,{visible:e.operating.help==!0,onClose:i[1]||(i[1]=a=>e.operating.help=!1)},null,8,["visible"])])}const me=v(G,[["render",oe],["__scopeId","data-v-eeab02e4"]]);export{me as default};
@@ -1 +1 @@
1
- import{aB as _,_ as g}from"./index-CtkD2JaX.js";import{m as h}from"./vendor-element-plus-CmP9-3lX.js";import{d as b,C as r,G as o,R as e,J as m,O as c,T as d,K as t,Q as l,ai as p,D as i}from"./vendor-vue-BhXato7y.js";import"./vendor-web3-C5RrfhAy.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";const f="3.30.2",v="https://cdn.acedata.cloud/2f29543715.apk",$="",w="",D=b({name:"DownloadIndex",components:{ElButton:h,QrCode:_},computed:{version(){return f},androidDownloadUrl(){return v},hasAndroidDownload(){return!0},iosDownloadUrl(){return $},iosFallbackUrl(){return w},hasIosDownload(){return!1}},methods:{openSupport(){window.open("https://platform.acedata.cloud/support","_blank")}}}),A={class:"download-page"},y={class:"container"},I={class:"hero-shell"},k={class:"hero-copy"},O={class:"subtitle"},S={class:"hero-tags"},U={class:"tag"},L={class:"tag"},N={class:"tag tag--soft"},B={class:"hero-actions"},C={class:"metrics"},E={class:"metric"},R={class:"metric"},z={class:"metric"},F={class:"hero-panels"},V={class:"panel panel--android"},q={class:"panel__head"},M={class:"status status--live"},P={class:"panel__text"},T={key:0,class:"qr-frame"},H={class:"panel__footer"},K={class:"panel__meta"},Q={class:"panel panel--ios"},W={class:"panel__head"},G={class:"status status--pending"},J={class:"panel__text"},j={class:"panel__footer panel__footer--stacked"},X={key:0,class:"button-group"},Y={class:"panel__meta"},Z={class:"advantage-grid"},x={class:"advantage-card"},oo={class:"advantage-card"},so={class:"advantage-card"},eo={class:"note"};function ao(s,a,no,to,lo,io){const n=p("el-button"),u=p("qr-code");return i(),r("div",A,[a[9]||(a[9]=o("div",{class:"ambient ambient--cyan"},null,-1)),a[10]||(a[10]=o("div",{class:"ambient ambient--gold"},null,-1)),o("div",y,[o("section",I,[o("div",k,[a[2]||(a[2]=o("p",{class:"eyebrow"},"AceData App",-1)),o("h1",null,e(s.$t("common.title.mobileApp")),1),o("p",O,e(s.$t("common.message.mobileAppDescription")),1),o("div",S,[o("span",U,e(s.$t("common.message.mobileAvailableNow")),1),o("span",L,"v"+e(s.version),1),o("span",N,e(s.$t("common.message.mobileSecureDelivery")),1)]),o("div",B,[s.hasAndroidDownload?(i(),m(n,{key:0,type:"primary",round:"",size:"large",tag:"a",href:s.androidDownloadUrl,target:"_blank"},{default:t(()=>[l(e(s.$t("common.button.downloadAndroid")),1)]),_:1},8,["href"])):c("",!0),d(n,{round:"",size:"large",class:"secondary-action",onClick:s.openSupport},{default:t(()=>[l(e(s.$t("common.nav.support")),1)]),_:1},8,["onClick"])]),o("div",C,[o("article",E,[a[0]||(a[0]=o("strong",null,"Android",-1)),o("span",null,e(s.$t("common.message.mobileDirectInstall")),1)]),o("article",R,[o("strong",null,"v"+e(s.version),1),o("span",null,e(s.$t("common.message.mobileLatestRelease")),1)]),o("article",z,[a[1]||(a[1]=o("strong",null,"AceData",-1)),o("span",null,e(s.$t("common.message.mobileSharedAccount")),1)])])]),o("div",F,[o("article",V,[o("div",q,[a[3]||(a[3]=o("span",{class:"platform-badge"},"Android",-1)),o("span",M,e(s.$t("common.message.mobileAvailableNow")),1)]),o("h2",null,e(s.$t("common.button.downloadAndroid")),1),o("p",P,e(s.$t("common.message.mobileAndroidHint")),1),s.hasAndroidDownload?(i(),r("div",T,[d(u,{value:s.androidDownloadUrl,width:176,height:176,class:"qr",type:"image/png",color:{dark:"#07253dff",light:"#ffffffff"}},null,8,["value"])])):c("",!0),o("div",H,[s.hasAndroidDownload?(i(),m(n,{key:0,type:"primary",round:"",size:"large",tag:"a",href:s.androidDownloadUrl,target:"_blank"},{default:t(()=>[l(e(s.$t("common.button.downloadAndroid")),1)]),_:1},8,["href"])):c("",!0),o("span",K,e(s.$t("common.message.mobileSecureDelivery")),1)])]),o("article",Q,[o("div",W,[a[4]||(a[4]=o("span",{class:"platform-badge platform-badge--ios"},"iOS",-1)),o("span",G,e(s.$t("common.message.mobileIosPending")),1)]),o("h2",null,e(s.$t("common.button.downloadIos")),1),o("p",J,e(s.hasIosDownload?s.$t("common.message.mobileIosHint"):s.$t("common.message.mobileIosPending")),1),a[5]||(a[5]=o("div",{class:"device-ghost"},[o("div",{class:"device-ghost__screen"},[o("span",null,"iOS"),o("small",null,"Signing in progress")])],-1)),o("div",j,[s.hasIosDownload?(i(),r("div",X,[d(n,{type:"primary",round:"",size:"large",tag:"a",href:s.iosDownloadUrl,target:"_blank"},{default:t(()=>[l(e(s.$t("common.button.installIos")),1)]),_:1},8,["href"]),d(n,{round:"",size:"large",tag:"a",href:s.iosFallbackUrl,target:"_blank"},{default:t(()=>[l(e(s.$t("common.button.downloadIos")),1)]),_:1},8,["href"])])):(i(),m(n,{key:1,round:"",size:"large",class:"secondary-action",onClick:s.openSupport},{default:t(()=>[l(e(s.$t("common.nav.support")),1)]),_:1},8,["onClick"])),o("span",Y,e(s.$t("common.message.mobileInstallNote")),1)])])])]),o("section",Z,[o("article",x,[a[6]||(a[6]=o("p",{class:"advantage-card__eyebrow"},"01",-1)),o("h3",null,e(s.$t("common.title.mobileFastAccess")),1),o("p",null,e(s.$t("common.message.mobileFastAccess")),1)]),o("article",oo,[a[7]||(a[7]=o("p",{class:"advantage-card__eyebrow"},"02",-1)),o("h3",null,e(s.$t("common.title.mobileTrustedRelease")),1),o("p",null,e(s.$t("common.message.mobileTrustedRelease")),1)]),o("article",so,[a[8]||(a[8]=o("p",{class:"advantage-card__eyebrow"},"03",-1)),o("h3",null,e(s.$t("common.title.mobileUnifiedExperience")),1),o("p",null,e(s.$t("common.message.mobileUnifiedExperience")),1)])]),o("section",eo,[o("p",null,e(s.$t("common.message.mobileInstallNote")),1)])])])}const ho=g(D,[["render",ao],["__scopeId","data-v-148fd365"]]);export{ho as default};
1
+ import{aA as _,_ as g}from"./index-CdkIaG4d.js";import{m as h}from"./vendor-element-plus-ZfFlETcH.js";import{d as b,C as r,G as o,R as e,J as m,O as c,T as d,K as t,Q as l,ai as p,D as i}from"./vendor-vue-BhXato7y.js";import"./vendor-web3-CNlWJWvL.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";const f="3.30.2",v="https://cdn.acedata.cloud/2f29543715.apk",$="",w="",D=b({name:"DownloadIndex",components:{ElButton:h,QrCode:_},computed:{version(){return f},androidDownloadUrl(){return v},hasAndroidDownload(){return!0},iosDownloadUrl(){return $},iosFallbackUrl(){return w},hasIosDownload(){return!1}},methods:{openSupport(){window.open("https://platform.acedata.cloud/support","_blank")}}}),A={class:"download-page"},y={class:"container"},I={class:"hero-shell"},k={class:"hero-copy"},O={class:"subtitle"},S={class:"hero-tags"},U={class:"tag"},L={class:"tag"},N={class:"tag tag--soft"},C={class:"hero-actions"},B={class:"metrics"},E={class:"metric"},R={class:"metric"},z={class:"metric"},F={class:"hero-panels"},V={class:"panel panel--android"},q={class:"panel__head"},M={class:"status status--live"},P={class:"panel__text"},T={key:0,class:"qr-frame"},H={class:"panel__footer"},K={class:"panel__meta"},Q={class:"panel panel--ios"},W={class:"panel__head"},G={class:"status status--pending"},J={class:"panel__text"},j={class:"panel__footer panel__footer--stacked"},X={key:0,class:"button-group"},Y={class:"panel__meta"},Z={class:"advantage-grid"},x={class:"advantage-card"},oo={class:"advantage-card"},so={class:"advantage-card"},eo={class:"note"};function ao(s,a,no,to,lo,io){const n=p("el-button"),u=p("qr-code");return i(),r("div",A,[a[9]||(a[9]=o("div",{class:"ambient ambient--cyan"},null,-1)),a[10]||(a[10]=o("div",{class:"ambient ambient--gold"},null,-1)),o("div",y,[o("section",I,[o("div",k,[a[2]||(a[2]=o("p",{class:"eyebrow"},"AceData App",-1)),o("h1",null,e(s.$t("common.title.mobileApp")),1),o("p",O,e(s.$t("common.message.mobileAppDescription")),1),o("div",S,[o("span",U,e(s.$t("common.message.mobileAvailableNow")),1),o("span",L,"v"+e(s.version),1),o("span",N,e(s.$t("common.message.mobileSecureDelivery")),1)]),o("div",C,[s.hasAndroidDownload?(i(),m(n,{key:0,type:"primary",round:"",size:"large",tag:"a",href:s.androidDownloadUrl,target:"_blank"},{default:t(()=>[l(e(s.$t("common.button.downloadAndroid")),1)]),_:1},8,["href"])):c("",!0),d(n,{round:"",size:"large",class:"secondary-action",onClick:s.openSupport},{default:t(()=>[l(e(s.$t("common.nav.support")),1)]),_:1},8,["onClick"])]),o("div",B,[o("article",E,[a[0]||(a[0]=o("strong",null,"Android",-1)),o("span",null,e(s.$t("common.message.mobileDirectInstall")),1)]),o("article",R,[o("strong",null,"v"+e(s.version),1),o("span",null,e(s.$t("common.message.mobileLatestRelease")),1)]),o("article",z,[a[1]||(a[1]=o("strong",null,"AceData",-1)),o("span",null,e(s.$t("common.message.mobileSharedAccount")),1)])])]),o("div",F,[o("article",V,[o("div",q,[a[3]||(a[3]=o("span",{class:"platform-badge"},"Android",-1)),o("span",M,e(s.$t("common.message.mobileAvailableNow")),1)]),o("h2",null,e(s.$t("common.button.downloadAndroid")),1),o("p",P,e(s.$t("common.message.mobileAndroidHint")),1),s.hasAndroidDownload?(i(),r("div",T,[d(u,{value:s.androidDownloadUrl,width:176,height:176,class:"qr",type:"image/png",color:{dark:"#07253dff",light:"#ffffffff"}},null,8,["value"])])):c("",!0),o("div",H,[s.hasAndroidDownload?(i(),m(n,{key:0,type:"primary",round:"",size:"large",tag:"a",href:s.androidDownloadUrl,target:"_blank"},{default:t(()=>[l(e(s.$t("common.button.downloadAndroid")),1)]),_:1},8,["href"])):c("",!0),o("span",K,e(s.$t("common.message.mobileSecureDelivery")),1)])]),o("article",Q,[o("div",W,[a[4]||(a[4]=o("span",{class:"platform-badge platform-badge--ios"},"iOS",-1)),o("span",G,e(s.$t("common.message.mobileIosPending")),1)]),o("h2",null,e(s.$t("common.button.downloadIos")),1),o("p",J,e(s.hasIosDownload?s.$t("common.message.mobileIosHint"):s.$t("common.message.mobileIosPending")),1),a[5]||(a[5]=o("div",{class:"device-ghost"},[o("div",{class:"device-ghost__screen"},[o("span",null,"iOS"),o("small",null,"Signing in progress")])],-1)),o("div",j,[s.hasIosDownload?(i(),r("div",X,[d(n,{type:"primary",round:"",size:"large",tag:"a",href:s.iosDownloadUrl,target:"_blank"},{default:t(()=>[l(e(s.$t("common.button.installIos")),1)]),_:1},8,["href"]),d(n,{round:"",size:"large",tag:"a",href:s.iosFallbackUrl,target:"_blank"},{default:t(()=>[l(e(s.$t("common.button.downloadIos")),1)]),_:1},8,["href"])])):(i(),m(n,{key:1,round:"",size:"large",class:"secondary-action",onClick:s.openSupport},{default:t(()=>[l(e(s.$t("common.nav.support")),1)]),_:1},8,["onClick"])),o("span",Y,e(s.$t("common.message.mobileInstallNote")),1)])])])]),o("section",Z,[o("article",x,[a[6]||(a[6]=o("p",{class:"advantage-card__eyebrow"},"01",-1)),o("h3",null,e(s.$t("common.title.mobileFastAccess")),1),o("p",null,e(s.$t("common.message.mobileFastAccess")),1)]),o("article",oo,[a[7]||(a[7]=o("p",{class:"advantage-card__eyebrow"},"02",-1)),o("h3",null,e(s.$t("common.title.mobileTrustedRelease")),1),o("p",null,e(s.$t("common.message.mobileTrustedRelease")),1)]),o("article",so,[a[8]||(a[8]=o("p",{class:"advantage-card__eyebrow"},"03",-1)),o("h3",null,e(s.$t("common.title.mobileUnifiedExperience")),1),o("p",null,e(s.$t("common.message.mobileUnifiedExperience")),1)])]),o("section",eo,[o("p",null,e(s.$t("common.message.mobileInstallNote")),1)])])])}const ho=g(D,[["render",ao],["__scopeId","data-v-148fd365"]]);export{ho as default};
@@ -1 +1 @@
1
- import{F as L}from"./index.es-DMehEjXB.js";import{m as D,X as N,O as C,P as R,u as q,w as T,t as K,q as Y,H as Z,j as H}from"./vendor-element-plus-CmP9-3lX.js";import{d as b,C as i,G as r,T as o,E as U,K as u,ai as s,D as n,R as l,S as V,ag as A,J as y,M as I,Y as W,Q as h,O as $,L as J,U as Q}from"./vendor-vue-BhXato7y.js";import{_ as k,bY as G,bZ as M,b_ as S,b$ as z,c0 as X,c1 as x,c2 as ee,c3 as te,av as oe,c4 as se,c5 as ae,aO as ne,aK as P}from"./index-CtkD2JaX.js";import{p as le}from"./pasteUploadMixin-BurWbGNQ.js";import{I as j,S as re}from"./ScrollList-OteSDitY.js";import{I as ie}from"./ImagePreview-B5F24-Vs.js";import{C as ce}from"./Consumption-DEB600BC.js";import{a as de}from"./price-lQeFOa8Q.js";import{C as ue}from"./CopyToClipboard-cTbsayFn.js";import{V as pe}from"./VideoPlayer-DcumvLkR.js";import{B as me}from"./BotPlaceholder-BV2w6Q4w.js";import{N as fe}from"./NoTasks-ZsLHgPuo.js";import{l as _e}from"./pagination-DLJ2pbsx.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-C5RrfhAy.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";import"./vue-plyr-QZFBikSk.js";const he=b({name:"LayoutSora",components:{ElDrawer:N,ElButton:D,FontAwesomeIcon:L},data(){return{drawer:!1}}}),$e={class:"main flex flex-row flex-1"},ge={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},ve={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function be(e,t,p,m,g,v){const c=s("font-awesome-icon"),d=s("el-button"),a=s("el-drawer");return n(),i("div",$e,[r("div",ge,[U(e.$slots,"config",{},void 0,!0)]),r("div",ve,[U(e.$slots,"result",{},void 0,!0)]),o(d,{circle:"",class:"menu",onClick:t[0]||(t[0]=w=>e.drawer=!0)},{default:u(()=>[o(c,{icon:"fa-solid fa-magic"})]),_:1}),o(a,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=w=>e.drawer=w),direction:"ltr","with-header":!1,size:"350px"},{default:u(()=>[U(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ke=k(he,[["render",be],["__scopeId","data-v-2dca3c13"]]),we=b({name:"ModelSelector",components:{ElSelect:R,ElOption:C},props:{modelValue:{type:String,default:void 0}},emits:["update:modelValue"],data(){return{options:[{value:X,label:"sora-2"},{value:x,label:"sora-2-pro"}]}},computed:{value:{get(){return this.$store.state.sora?.config?.model},set(e){const t=this.$store.state.sora?.config||{},p=M[e]||[S],m=t.duration,g=m&&p.includes(m)?m:p.includes(S)?S:p[0],v={...t,model:e,duration:g,size:t.size||z};this.$store.commit("sora/setConfig",v)}}},mounted(){this.value||(this.value=G)}}),ye={class:"field"},Se={class:"title font-bold"};function Ve(e,t,p,m,g,v){const c=s("el-option"),d=s("el-select");return n(),i("div",ye,[r("h2",Se,l(e.$t("sora.name.model")),1),o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=a=>e.value=a),class:"value",placeholder:e.$t("sora.placeholder.select")},{default:u(()=>[(n(!0),i(V,null,A(e.options,a=>(n(),y(c,{key:a.value,label:a.label,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ee=k(we,[["render",Ve],["__scopeId","data-v-0cb7913d"]]),Te=b({name:"ActionSelector",components:{ElSelect:R,ElOption:C},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||(this.value=ee)}}),Ie={class:"field"},Ae={class:"title font-bold"},Le={class:"float-left"};function De(e,t,p,m,g,v){const c=s("el-option"),d=s("el-select");return n(),i("div",Ie,[r("h2",Ae,l(e.$t("sora.name.action")),1),o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=a=>e.value=a),class:"value",placeholder:e.$t("sora.placeholder.select"),clearable:""},{default:u(()=>[(n(!0),i(V,null,A(e.options,a=>(n(),y(c,{key:a.value,label:a.label,value:a.value},{default:u(()=>[r("span",Le,l(a.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ce=k(Te,[["render",De],["__scopeId","data-v-7b82fa7f"]]),Re=b({name:"DurationSelector",components:{ElSelect:R,ElOption:C},computed:{model(){return this.$store.state.sora?.config?.model||G},allowedDurations(){return M[this.model]||[S]},optionsForModel(){return this.allowedDurations.map(e=>({value:e,label:`${e}s`}))},value:{get(){return this.$store.state.sora?.config?.duration},set(e){const t=this.$store.state.sora?.config||{};this.$store.commit("sora/setConfig",{...t,duration:e})}}},watch:{allowedDurations(){const e=this.allowedDurations;if(!e.includes(this.value)){const t=e.includes(S)?S:e[0];this.value=t}}},mounted(){this.value||(this.value=S)}}),Oe={class:"field"},Ue={class:"control"},Pe={class:"title font-bold"};function Ge(e,t,p,m,g,v){const c=s("el-option"),d=s("el-select");return n(),i("div",Oe,[r("div",Ue,[r("h2",Pe,l(e.$t("sora.name.duration")),1),o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=a=>e.value=a),class:"value",placeholder:e.$t("sora.placeholder.select")},{default:u(()=>[(n(!0),i(V,null,A(e.optionsForModel,a=>(n(),y(c,{key:a.value,label:a.label,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])])}const Me=k(Re,[["render",Ge],["__scopeId","data-v-c2934598"]]),ze=b({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(){const e=this.options.findIndex(t=>t.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||(this.value=te)}}),je={class:"text-sm font-bold mb-2 block"},Be={class:"items"},Fe=["onClick"],Ne={class:"name"};function qe(e,t,p,m,g,v){return n(),i("div",null,[r("span",je,l(e.$t("sora.name.orientation")),1),r("div",Be,[(n(!0),i(V,null,A(e.options,(c,d)=>(n(),i("div",{key:d,class:I({active:e.active===d,item:!0}),onClick:a=>e.value=c.value},[r("div",{class:I(["preview",c.value])},[r("div",{class:"rect",style:W({width:c.width+"px",height:c.height+"px"})},null,4)],2),r("p",Ne,l(e.$t(c.labelKey)),1)],10,Fe))),128))])])}const Ke=k(ze,[["render",qe],["__scopeId","data-v-a20be6d9"]]),Ye=b({name:"StartEndImage",components:{ElUpload:q,ElButton:D,InfoIcon:j,FontAwesomeIcon:L,ImagePreview:ie},mixins:[le],emits:["change"],data(){return{fileList:[],uploadUrl:oe()+"/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||(this.value=void 0),this.onSetStartEndImageUrl()},methods:{onExceed(){T.warning(this.$t("sora.message.uploadReferencesExceed"))},onError(){T.error(this.$t("sora.message.uploadReferencesError"))},onSetStartEndImageUrl(){const e=this.urls;this.$store.commit("sora/setConfig",{...this.$store.state?.sora?.config,image_urls:e})},async onSuccess(){this.onSetStartEndImageUrl()}}}),Ze={class:"relative"},He={class:"flex justify-between"},We={class:"flex justify-start items-center"},Je={class:"text-sm font-bold"};function Qe(e,t,p,m,g,v){const c=s("info-icon"),d=s("image-preview"),a=s("font-awesome-icon"),w=s("el-button"),_=s("el-upload");return n(),i("div",Ze,[r("div",He,[r("div",We,[r("span",Je,l(e.$t("sora.name.startEndImage")),1),o(c,{content:e.$t("sora.description.uploadStartEndImage")},null,8,["content"])])]),o(_,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=f=>e.fileList=f),name:"file",accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",limit:2,class:"upload-wrapper",multiple:!1,action:e.uploadUrl,"list-type":"picture","on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:u(({file:f})=>[f.url&&f.percentage!==void 0?(n(),y(d,{key:0,url:f.url,name:f.name,percentage:f.percentage,onRemove:E=>e.fileList.splice(e.fileList.indexOf(f),1)},null,8,["url","name","percentage","onRemove"])):$("",!0)]),default:u(()=>[o(w,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:u(()=>[o(a,{icon:"fa-solid fa-upload",class:"icon mr-1"}),h(" "+l(e.$t("sora.button.uploadReferences")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])])}const Xe=k(Ye,[["render",Qe],["__scopeId","data-v-a942382b"]]),xe=e=>e&&e.charAt(0).toUpperCase()+e.slice(1),et=b({name:"SizeSelector",components:{ElSelect:R,ElOption:C},data(){return{options:se.map(e=>({value:e,label:xe(e)}))}},computed:{value:{get(){return this.$store.state.sora?.config?.size},set(e){const t=this.$store.state.sora?.config||{};this.$store.commit("sora/setConfig",{...t,size:e})}}},mounted(){this.value||(this.value=z)}}),tt={class:"field"},ot={class:"control"},st={class:"title font-bold"};function at(e,t,p,m,g,v){const c=s("el-option"),d=s("el-select");return n(),i("div",tt,[r("div",ot,[r("h2",st,l(e.$t("sora.name.size")),1),o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=a=>e.value=a),class:"value",placeholder:e.$t("sora.placeholder.select")},{default:u(()=>[(n(!0),i(V,null,A(e.options,a=>(n(),y(c,{key:a.value,label:a.label,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])])}const nt=k(et,[["render",at],["__scopeId","data-v-8c485f0f"]]),lt="",rt=b({name:"PromptInput",components:{ElInput:K,InfoIcon:j},computed:{prompt:{get(){return this.$store.state.sora?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("sora/setConfig",{...this.$store.state.sora?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=lt)}}),it={class:"field"},ct={class:"box"},dt={class:"title font-bold"};function ut(e,t,p,m,g,v){const c=s("info-icon"),d=s("el-input");return n(),i("div",it,[r("div",ct,[r("h2",dt,l(e.$t("sora.name.prompt")),1),o(c,{content:e.$t("sora.description.prompt"),class:"info"},null,8,["content"])]),o(d,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=a=>e.prompt=a),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("sora.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const pt=k(rt,[["render",ut],["__scopeId","data-v-a57633d5"]]),mt=b({name:"ConfigPanel",components:{ElButton:D,Consumption:ce,FontAwesomeIcon:L,PromptInput:pt,ModelSelector:Ee,StartEndImage:Xe,SizeSelector:nt,ActionSelector:Ce,OrientationSelector:Ke,DurationSelector:Me},emits:["generate"],computed:{config(){return this.$store.state.sora?.config},consumption(){return de(this.config,this.service?.cost)},service(){return this.$store.state.sora?.service}},methods:{onGenerate(){this.$emit("generate")}}}),ft={class:"flex flex-col h-full"},_t={class:"flex-1 overflow-y-auto p-5"},ht={class:"flex flex-col items-center justify-center px-5 pb-5"};function $t(e,t,p,m,g,v){const c=s("model-selector"),d=s("action-selector"),a=s("duration-selector"),w=s("size-selector"),_=s("orientation-selector"),f=s("prompt-input"),E=s("start-end-image"),O=s("consumption"),B=s("font-awesome-icon"),F=s("el-button");return n(),i("div",ft,[r("div",_t,[o(c,{class:"mb-4"}),o(d,{class:"mb-4"}),o(a,{class:"mb-4"}),o(w,{class:"mb-4"}),o(_,{class:"mb-4"}),o(f,{class:"mb-4"}),J(o(E,{class:"mb-2"},null,512),[[Q,e.config?.action==="image2video"]])]),r("div",ht,[o(O,{value:e.consumption,service:e.service},null,8,["value","service"]),o(F,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:u(()=>[o(B,{icon:"fa-solid fa-magic",class:"mr-2"}),h(" "+l(e.$t("sora.button.generate")),1)]),_:1},8,["onClick"])])])}const gt=k(mt,[["render",$t]]),vt=b({name:"TaskPreview",components:{ElImage:H,CopyToClipboard:ue,FontAwesomeIcon:L,ElAlert:Z,VideoPlayer:pe,ElTooltip:Y,ElButton:D},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")}}}),bt={class:"preview"},kt={class:"left"},wt={class:"main"},yt={class:"bot"},St={class:"datetime"},Vt={class:"info"},Et={key:0,class:"prompt mt-2"},Tt={key:0},It={key:1},At={key:0,class:I({content:!0,failed:!0})},Lt={key:0,class:"mb-4"},Dt={key:1,class:I({operations:!0,"mt-2":!0})},Ct={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Rt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Ot={key:1,class:I({content:!0})},Ut={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Pt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Gt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Mt={key:2,class:I({content:!0})},zt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},jt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function Bt(e,t,p,m,g,v){const c=s("el-image"),d=s("video-player"),a=s("el-button"),w=s("el-tooltip"),_=s("font-awesome-icon"),f=s("copy-to-clipboard"),E=s("el-alert");return n(),i("div",bt,[r("div",kt,[o(c,{src:"https://cdn.acedata.cloud/z5id1u.png",class:"avatar"})]),r("div",wt,[r("div",yt,[h(l(e.$t("sora.name.soraBot"))+" ",1),r("span",St,l(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),r("div",Vt,[e.modelValue?.request?.prompt?(n(),i("p",Et,[h(l(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?$("",!0):(n(),i("span",Tt," - ("+l(e.$t("sora.status.pending"))+") ",1)),Array.isArray(e.modelValue?.response?.data)&&e.modelValue?.response?.data[0]?.state==="pending"?(n(),i("span",It," - ("+l(e.$t("sora.status.processing"))+") ",1)):$("",!0)])):$("",!0)]),e.modelValue?.response?.success===!0&&e.modelValue?.response?.data?(n(),i("div",At,[e.modelValue?.response?.data[0]?.video_url?(n(),i("div",Lt,[o(d,{src:e.modelValue?.response?.data[0]?.video_url},null,8,["src"])])):$("",!0),e.modelValue?.response.success?(n(),i("div",Dt,[o(w,{class:"box-item",effect:"dark",content:e.$t("sora.message.downloadVideo"),placement:"top-start"},{default:u(()=>[e.modelValue?.response?.data[0]?.video_url?(n(),y(a,{key:0,type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=O=>e.onDownload(O,e.modelValue?.response?.data[0]?.video_url))},{default:u(()=>[h(l(e.$t("sora.button.download")),1)]),_:1})):$("",!0)]),_:1},8,["content"])])):$("",!0),o(E,{closable:!1,class:"mt-2 success"},{default:u(()=>[r("p",Ct,[o(_,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+l(e.$t("sora.name.model"))+": "+l(e.modelValue?.request?.model),1)]),r("p",Rt,[o(_,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+l(e.$t("sora.name.taskId"))+": "+l(e.modelValue?.id)+" ",1),o(f,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):$("",!0),e.modelValue?.response?.success===!1?(n(),i("div",Ot,[o(E,{closable:!1,class:"failure"},{template:u(()=>[o(_,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),h(" "+l(e.$t("sora.name.failure")),1)]),default:u(()=>[r("p",Ut,[o(_,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+l(e.$t("sora.name.taskId"))+": "+l(e.modelValue?.id)+" ",1),o(f,{content:e.modelValue?.id},null,8,["content"])]),r("p",Pt,[o(_,{icon:"fa-solid fa-circle-info",class:"mr-1"}),h(" "+l(e.$t("sora.name.failureReason"))+": "+l(e.modelValue?.response?.error?.message)+" ",1),o(f,{content:e.modelValue?.response?.error?.message},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),i("p",Gt,[o(_,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+l(e.$t("sora.name.traceId"))+": "+l(e.modelValue?.response?.trace_id)+" ",1),o(f,{content:e.modelValue?.response?.trace_id},null,8,["content"])])):$("",!0)]),_:1})])):$("",!0),e.modelValue?.response?.success===void 0?(n(),i("div",Mt,[o(E,{closable:!1,class:"info"},{template:u(()=>[o(_,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),h(" "+l(e.$t("sora.name.failure")),1)]),default:u(()=>[r("p",zt,[o(_,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+l(e.$t("sora.name.taskId"))+": "+l(e.modelValue?.id)+" ",1),o(f,{content:e.modelValue?.id},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),i("p",jt,[o(_,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+l(e.$t("sora.name.traceId"))+": "+l(e.modelValue?.response?.trace_id)+" ",1),o(f,{content:e.modelValue?.response?.trace_id},null,8,["content"])])):$("",!0)]),_:1})])):$("",!0)])])}const Ft=k(vt,[["render",Bt],["__scopeId","data-v-7b468b7a"]]),Nt=b({name:"RecentPanel",components:{TaskPreview:Ft,NoTasks:fe,BotPlaceholder:me,ScrollList:re},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?.()}}}),qt={key:0},Kt={key:2,class:"w-full h-full flex items-center justify-center"};function Yt(e,t,p,m,g,v){const c=s("bot-placeholder"),d=s("task-preview"),a=s("scroll-list"),w=s("no-tasks");return n(),i(V,null,[e.tasks?.items===void 0?(n(),i("div",qt,[o(c)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),y(a,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:t[0]||(t[0]=_=>e.$emit("reach-top"))},{default:u(()=>[(n(!0),i(V,null,A(e.tasks?.items,(_,f)=>(n(),y(d,{key:f,"model-value":_},null,8,["model-value"]))),128))]),_:1},8,["loading"])):$("",!0),e.tasks?.items?.length===0?(n(),i("div",Kt,[o(w)])):$("",!0)],64)}const Zt=k(Nt,[["render",Yt]]),Ht="https://webhook.acedata.cloud/sora",Wt=b({name:"SoraIndex",components:{ConfigPanel:gt,Layout:ke,RecentPanel:Zt},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.sora?.status?.getApplications===P.Request},tasksLoading(){return this.$store.state.sora?.status?.getTasks===P.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 _e({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();const 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);const{limit:t=5,createdAtMin:p,createdAtMax:m}=e||{};console.debug("limit",t,"createdAtMin",p,"createdAtMax",m),this.fetchingTasks=!0;try{await this.$store.dispatch("sora/getTasks",{limit:t,createdAtMin:p,createdAtMax:m})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:Ht},t=this.credential?.token;if(!t){console.error("no token specified");return}T.info(this.$t("sora.message.startingTask")),ae.generate(e,{token:t}).then(()=>{T.success(this.$t("sora.message.startTaskSuccess"))}).catch(p=>{p?.response?.data?.error?.code===ne?T.error(this.$t("sora.message.usedUp")):T.error(this.$t("sora.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Jt(e,t,p,m,g,v){const c=s("config-panel"),d=s("recent-panel"),a=s("layout");return n(),y(a,null,{config:u(()=>[o(c,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:u(()=>[o(d,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const $o=k(Wt,[["render",Jt]]);export{$o as default};
1
+ import{F as L}from"./index.es-D2RJIOwI.js";import{m as D,W as N,O as C,P as R,u as q,w as T,t as K,q as W,H as Y,j as Z}from"./vendor-element-plus-ZfFlETcH.js";import{d as b,C as i,G as r,T as o,E as U,K as u,ai as s,D as n,R as l,S as V,ag as A,J as y,M as I,Y as H,Q as h,O as $,L as J,U as Q}from"./vendor-vue-BhXato7y.js";import{_ as k,bX as G,bY as M,bZ as S,b_ as z,b$ as X,c0 as x,c1 as ee,c2 as te,au as oe,c3 as se,c4 as ae,aN as ne,aJ as P}from"./index-CdkIaG4d.js";import{p as le}from"./pasteUploadMixin-BurWbGNQ.js";import{I as j,S as re}from"./ScrollList-Dw45lO0t.js";import{I as ie}from"./ImagePreview-SUR7TFTL.js";import{C as ce}from"./Consumption-BCbR6ZEO.js";import{a as de}from"./price-CwH8PfMf.js";import{C as ue}from"./CopyToClipboard-Djhvl2Fk.js";import{V as pe}from"./VideoPlayer-gXXZbisY.js";import{B as me}from"./BotPlaceholder-CInEMDBc.js";import{N as fe}from"./NoTasks-BYOtsKOE.js";import{l as _e}from"./pagination-DLJ2pbsx.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-CNlWJWvL.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";import"./vue-plyr-QZFBikSk.js";const he=b({name:"LayoutSora",components:{ElDrawer:N,ElButton:D,FontAwesomeIcon:L},data(){return{drawer:!1}}}),$e={class:"main flex flex-row flex-1"},ge={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},ve={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function be(e,t,p,m,g,v){const c=s("font-awesome-icon"),d=s("el-button"),a=s("el-drawer");return n(),i("div",$e,[r("div",ge,[U(e.$slots,"config",{},void 0,!0)]),r("div",ve,[U(e.$slots,"result",{},void 0,!0)]),o(d,{circle:"",class:"menu",onClick:t[0]||(t[0]=w=>e.drawer=!0)},{default:u(()=>[o(c,{icon:"fa-solid fa-magic"})]),_:1}),o(a,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=w=>e.drawer=w),direction:"ltr","with-header":!1,size:"350px"},{default:u(()=>[U(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ke=k(he,[["render",be],["__scopeId","data-v-2dca3c13"]]),we=b({name:"ModelSelector",components:{ElSelect:R,ElOption:C},props:{modelValue:{type:String,default:void 0}},emits:["update:modelValue"],data(){return{options:[{value:X,label:"sora-2"},{value:x,label:"sora-2-pro"}]}},computed:{value:{get(){return this.$store.state.sora?.config?.model},set(e){const t=this.$store.state.sora?.config||{},p=M[e]||[S],m=t.duration,g=m&&p.includes(m)?m:p.includes(S)?S:p[0],v={...t,model:e,duration:g,size:t.size||z};this.$store.commit("sora/setConfig",v)}}},mounted(){this.value||(this.value=G)}}),ye={class:"field"},Se={class:"title font-bold"};function Ve(e,t,p,m,g,v){const c=s("el-option"),d=s("el-select");return n(),i("div",ye,[r("h2",Se,l(e.$t("sora.name.model")),1),o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=a=>e.value=a),class:"value",placeholder:e.$t("sora.placeholder.select")},{default:u(()=>[(n(!0),i(V,null,A(e.options,a=>(n(),y(c,{key:a.value,label:a.label,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ee=k(we,[["render",Ve],["__scopeId","data-v-0cb7913d"]]),Te=b({name:"ActionSelector",components:{ElSelect:R,ElOption:C},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||(this.value=ee)}}),Ie={class:"field"},Ae={class:"title font-bold"},Le={class:"float-left"};function De(e,t,p,m,g,v){const c=s("el-option"),d=s("el-select");return n(),i("div",Ie,[r("h2",Ae,l(e.$t("sora.name.action")),1),o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=a=>e.value=a),class:"value",placeholder:e.$t("sora.placeholder.select"),clearable:""},{default:u(()=>[(n(!0),i(V,null,A(e.options,a=>(n(),y(c,{key:a.value,label:a.label,value:a.value},{default:u(()=>[r("span",Le,l(a.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ce=k(Te,[["render",De],["__scopeId","data-v-7b82fa7f"]]),Re=b({name:"DurationSelector",components:{ElSelect:R,ElOption:C},computed:{model(){return this.$store.state.sora?.config?.model||G},allowedDurations(){return M[this.model]||[S]},optionsForModel(){return this.allowedDurations.map(e=>({value:e,label:`${e}s`}))},value:{get(){return this.$store.state.sora?.config?.duration},set(e){const t=this.$store.state.sora?.config||{};this.$store.commit("sora/setConfig",{...t,duration:e})}}},watch:{allowedDurations(){const e=this.allowedDurations;if(!e.includes(this.value)){const t=e.includes(S)?S:e[0];this.value=t}}},mounted(){this.value||(this.value=S)}}),Oe={class:"field"},Ue={class:"control"},Pe={class:"title font-bold"};function Ge(e,t,p,m,g,v){const c=s("el-option"),d=s("el-select");return n(),i("div",Oe,[r("div",Ue,[r("h2",Pe,l(e.$t("sora.name.duration")),1),o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=a=>e.value=a),class:"value",placeholder:e.$t("sora.placeholder.select")},{default:u(()=>[(n(!0),i(V,null,A(e.optionsForModel,a=>(n(),y(c,{key:a.value,label:a.label,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])])}const Me=k(Re,[["render",Ge],["__scopeId","data-v-c2934598"]]),ze=b({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(){const e=this.options.findIndex(t=>t.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||(this.value=te)}}),je={class:"text-sm font-bold mb-2 block"},Be={class:"items"},Fe=["onClick"],Ne={class:"name"};function qe(e,t,p,m,g,v){return n(),i("div",null,[r("span",je,l(e.$t("sora.name.orientation")),1),r("div",Be,[(n(!0),i(V,null,A(e.options,(c,d)=>(n(),i("div",{key:d,class:I({active:e.active===d,item:!0}),onClick:a=>e.value=c.value},[r("div",{class:I(["preview",c.value])},[r("div",{class:"rect",style:H({width:c.width+"px",height:c.height+"px"})},null,4)],2),r("p",Ne,l(e.$t(c.labelKey)),1)],10,Fe))),128))])])}const Ke=k(ze,[["render",qe],["__scopeId","data-v-a20be6d9"]]),We=b({name:"StartEndImage",components:{ElUpload:q,ElButton:D,InfoIcon:j,FontAwesomeIcon:L,ImagePreview:ie},mixins:[le],emits:["change"],data(){return{fileList:[],uploadUrl:oe()+"/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||(this.value=void 0),this.onSetStartEndImageUrl()},methods:{onExceed(){T.warning(this.$t("sora.message.uploadReferencesExceed"))},onError(){T.error(this.$t("sora.message.uploadReferencesError"))},onSetStartEndImageUrl(){const e=this.urls;this.$store.commit("sora/setConfig",{...this.$store.state?.sora?.config,image_urls:e})},async onSuccess(){this.onSetStartEndImageUrl()}}}),Ye={class:"relative"},Ze={class:"flex justify-between"},He={class:"flex justify-start items-center"},Je={class:"text-sm font-bold"};function Qe(e,t,p,m,g,v){const c=s("info-icon"),d=s("image-preview"),a=s("font-awesome-icon"),w=s("el-button"),_=s("el-upload");return n(),i("div",Ye,[r("div",Ze,[r("div",He,[r("span",Je,l(e.$t("sora.name.startEndImage")),1),o(c,{content:e.$t("sora.description.uploadStartEndImage")},null,8,["content"])])]),o(_,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=f=>e.fileList=f),name:"file",accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",limit:2,class:"upload-wrapper",multiple:!1,action:e.uploadUrl,"list-type":"picture","on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:u(({file:f})=>[f.url&&f.percentage!==void 0?(n(),y(d,{key:0,url:f.url,name:f.name,percentage:f.percentage,onRemove:E=>e.fileList.splice(e.fileList.indexOf(f),1)},null,8,["url","name","percentage","onRemove"])):$("",!0)]),default:u(()=>[o(w,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:u(()=>[o(a,{icon:"fa-solid fa-upload",class:"icon mr-1"}),h(" "+l(e.$t("sora.button.uploadReferences")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])])}const Xe=k(We,[["render",Qe],["__scopeId","data-v-a942382b"]]),xe=e=>e&&e.charAt(0).toUpperCase()+e.slice(1),et=b({name:"SizeSelector",components:{ElSelect:R,ElOption:C},data(){return{options:se.map(e=>({value:e,label:xe(e)}))}},computed:{value:{get(){return this.$store.state.sora?.config?.size},set(e){const t=this.$store.state.sora?.config||{};this.$store.commit("sora/setConfig",{...t,size:e})}}},mounted(){this.value||(this.value=z)}}),tt={class:"field"},ot={class:"control"},st={class:"title font-bold"};function at(e,t,p,m,g,v){const c=s("el-option"),d=s("el-select");return n(),i("div",tt,[r("div",ot,[r("h2",st,l(e.$t("sora.name.size")),1),o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=a=>e.value=a),class:"value",placeholder:e.$t("sora.placeholder.select")},{default:u(()=>[(n(!0),i(V,null,A(e.options,a=>(n(),y(c,{key:a.value,label:a.label,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])])}const nt=k(et,[["render",at],["__scopeId","data-v-8c485f0f"]]),lt="",rt=b({name:"PromptInput",components:{ElInput:K,InfoIcon:j},computed:{prompt:{get(){return this.$store.state.sora?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("sora/setConfig",{...this.$store.state.sora?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=lt)}}),it={class:"field"},ct={class:"box"},dt={class:"title font-bold"};function ut(e,t,p,m,g,v){const c=s("info-icon"),d=s("el-input");return n(),i("div",it,[r("div",ct,[r("h2",dt,l(e.$t("sora.name.prompt")),1),o(c,{content:e.$t("sora.description.prompt"),class:"info"},null,8,["content"])]),o(d,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=a=>e.prompt=a),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("sora.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const pt=k(rt,[["render",ut],["__scopeId","data-v-a57633d5"]]),mt=b({name:"ConfigPanel",components:{ElButton:D,Consumption:ce,FontAwesomeIcon:L,PromptInput:pt,ModelSelector:Ee,StartEndImage:Xe,SizeSelector:nt,ActionSelector:Ce,OrientationSelector:Ke,DurationSelector:Me},emits:["generate"],computed:{config(){return this.$store.state.sora?.config},consumption(){return de(this.config,this.service?.cost)},service(){return this.$store.state.sora?.service}},methods:{onGenerate(){this.$emit("generate")}}}),ft={class:"flex flex-col h-full"},_t={class:"flex-1 overflow-y-auto p-5"},ht={class:"flex flex-col items-center justify-center px-5 pb-5"};function $t(e,t,p,m,g,v){const c=s("model-selector"),d=s("action-selector"),a=s("duration-selector"),w=s("size-selector"),_=s("orientation-selector"),f=s("prompt-input"),E=s("start-end-image"),O=s("consumption"),B=s("font-awesome-icon"),F=s("el-button");return n(),i("div",ft,[r("div",_t,[o(c,{class:"mb-4"}),o(d,{class:"mb-4"}),o(a,{class:"mb-4"}),o(w,{class:"mb-4"}),o(_,{class:"mb-4"}),o(f,{class:"mb-4"}),J(o(E,{class:"mb-2"},null,512),[[Q,e.config?.action==="image2video"]])]),r("div",ht,[o(O,{value:e.consumption,service:e.service},null,8,["value","service"]),o(F,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:u(()=>[o(B,{icon:"fa-solid fa-magic",class:"mr-2"}),h(" "+l(e.$t("sora.button.generate")),1)]),_:1},8,["onClick"])])])}const gt=k(mt,[["render",$t]]),vt=b({name:"TaskPreview",components:{ElImage:Z,CopyToClipboard:ue,FontAwesomeIcon:L,ElAlert:Y,VideoPlayer:pe,ElTooltip:W,ElButton:D},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")}}}),bt={class:"preview"},kt={class:"left"},wt={class:"main"},yt={class:"bot"},St={class:"datetime"},Vt={class:"info"},Et={key:0,class:"prompt mt-2"},Tt={key:0},It={key:1},At={key:0,class:I({content:!0,failed:!0})},Lt={key:0,class:"mb-4"},Dt={key:1,class:I({operations:!0,"mt-2":!0})},Ct={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Rt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Ot={key:1,class:I({content:!0})},Ut={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Pt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Gt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Mt={key:2,class:I({content:!0})},zt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},jt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function Bt(e,t,p,m,g,v){const c=s("el-image"),d=s("video-player"),a=s("el-button"),w=s("el-tooltip"),_=s("font-awesome-icon"),f=s("copy-to-clipboard"),E=s("el-alert");return n(),i("div",bt,[r("div",kt,[o(c,{src:"https://cdn.acedata.cloud/z5id1u.png",class:"avatar"})]),r("div",wt,[r("div",yt,[h(l(e.$t("sora.name.soraBot"))+" ",1),r("span",St,l(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),r("div",Vt,[e.modelValue?.request?.prompt?(n(),i("p",Et,[h(l(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?$("",!0):(n(),i("span",Tt," - ("+l(e.$t("sora.status.pending"))+") ",1)),Array.isArray(e.modelValue?.response?.data)&&e.modelValue?.response?.data[0]?.state==="pending"?(n(),i("span",It," - ("+l(e.$t("sora.status.processing"))+") ",1)):$("",!0)])):$("",!0)]),e.modelValue?.response?.success===!0&&e.modelValue?.response?.data?(n(),i("div",At,[e.modelValue?.response?.data[0]?.video_url?(n(),i("div",Lt,[o(d,{src:e.modelValue?.response?.data[0]?.video_url},null,8,["src"])])):$("",!0),e.modelValue?.response.success?(n(),i("div",Dt,[o(w,{class:"box-item",effect:"dark",content:e.$t("sora.message.downloadVideo"),placement:"top-start"},{default:u(()=>[e.modelValue?.response?.data[0]?.video_url?(n(),y(a,{key:0,type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=O=>e.onDownload(O,e.modelValue?.response?.data[0]?.video_url))},{default:u(()=>[h(l(e.$t("sora.button.download")),1)]),_:1})):$("",!0)]),_:1},8,["content"])])):$("",!0),o(E,{closable:!1,class:"mt-2 success"},{default:u(()=>[r("p",Ct,[o(_,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+l(e.$t("sora.name.model"))+": "+l(e.modelValue?.request?.model),1)]),r("p",Rt,[o(_,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+l(e.$t("sora.name.taskId"))+": "+l(e.modelValue?.id)+" ",1),o(f,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):$("",!0),e.modelValue?.response?.success===!1?(n(),i("div",Ot,[o(E,{closable:!1,class:"failure"},{template:u(()=>[o(_,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),h(" "+l(e.$t("sora.name.failure")),1)]),default:u(()=>[r("p",Ut,[o(_,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+l(e.$t("sora.name.taskId"))+": "+l(e.modelValue?.id)+" ",1),o(f,{content:e.modelValue?.id},null,8,["content"])]),r("p",Pt,[o(_,{icon:"fa-solid fa-circle-info",class:"mr-1"}),h(" "+l(e.$t("sora.name.failureReason"))+": "+l(e.modelValue?.response?.error?.message)+" ",1),o(f,{content:e.modelValue?.response?.error?.message},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),i("p",Gt,[o(_,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+l(e.$t("sora.name.traceId"))+": "+l(e.modelValue?.response?.trace_id)+" ",1),o(f,{content:e.modelValue?.response?.trace_id},null,8,["content"])])):$("",!0)]),_:1})])):$("",!0),e.modelValue?.response?.success===void 0?(n(),i("div",Mt,[o(E,{closable:!1,class:"info"},{template:u(()=>[o(_,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),h(" "+l(e.$t("sora.name.failure")),1)]),default:u(()=>[r("p",zt,[o(_,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+l(e.$t("sora.name.taskId"))+": "+l(e.modelValue?.id)+" ",1),o(f,{content:e.modelValue?.id},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),i("p",jt,[o(_,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+l(e.$t("sora.name.traceId"))+": "+l(e.modelValue?.response?.trace_id)+" ",1),o(f,{content:e.modelValue?.response?.trace_id},null,8,["content"])])):$("",!0)]),_:1})])):$("",!0)])])}const Ft=k(vt,[["render",Bt],["__scopeId","data-v-7b468b7a"]]),Nt=b({name:"RecentPanel",components:{TaskPreview:Ft,NoTasks:fe,BotPlaceholder:me,ScrollList:re},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?.()}}}),qt={key:0},Kt={key:2,class:"w-full h-full flex items-center justify-center"};function Wt(e,t,p,m,g,v){const c=s("bot-placeholder"),d=s("task-preview"),a=s("scroll-list"),w=s("no-tasks");return n(),i(V,null,[e.tasks?.items===void 0?(n(),i("div",qt,[o(c)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),y(a,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:t[0]||(t[0]=_=>e.$emit("reach-top"))},{default:u(()=>[(n(!0),i(V,null,A(e.tasks?.items,(_,f)=>(n(),y(d,{key:f,"model-value":_},null,8,["model-value"]))),128))]),_:1},8,["loading"])):$("",!0),e.tasks?.items?.length===0?(n(),i("div",Kt,[o(w)])):$("",!0)],64)}const Yt=k(Nt,[["render",Wt]]),Zt="https://webhook.acedata.cloud/sora",Ht=b({name:"SoraIndex",components:{ConfigPanel:gt,Layout:ke,RecentPanel:Yt},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.sora?.status?.getApplications===P.Request},tasksLoading(){return this.$store.state.sora?.status?.getTasks===P.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 _e({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();const 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);const{limit:t=5,createdAtMin:p,createdAtMax:m}=e||{};console.debug("limit",t,"createdAtMin",p,"createdAtMax",m),this.fetchingTasks=!0;try{await this.$store.dispatch("sora/getTasks",{limit:t,createdAtMin:p,createdAtMax:m})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:Zt},t=this.credential?.token;if(!t){console.error("no token specified");return}T.info(this.$t("sora.message.startingTask")),ae.generate(e,{token:t}).then(()=>{T.success(this.$t("sora.message.startTaskSuccess"))}).catch(p=>{p?.response?.data?.error?.code===ne?T.error(this.$t("sora.message.usedUp")):T.error(this.$t("sora.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Jt(e,t,p,m,g,v){const c=s("config-panel"),d=s("recent-panel"),a=s("layout");return n(),y(a,null,{config:u(()=>[o(c,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:u(()=>[o(d,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const $o=k(Ht,[["render",Jt]]);export{$o as default};
@@ -1 +1 @@
1
- import{F as L}from"./index.es-DMehEjXB.js";import{m as T,X as R,O as A,P as M,u as j,w as S,t as D,q as B,H as O,j as q}from"./vendor-element-plus-CmP9-3lX.js";import{d as b,C as c,G as i,T as t,E,K as u,ai as o,D as a,R as n,S as C,ag as G,J as v,Q as p,O as h,M as V,X as z}from"./vendor-vue-BhXato7y.js";import{_ as k,ch as F,av as N,ci as H,aO as K,aK as U}from"./index-CtkD2JaX.js";import{p as X}from"./pasteUploadMixin-BurWbGNQ.js";import{I as P,S as J}from"./ScrollList-OteSDitY.js";import{I as Q}from"./ImagePreview-B5F24-Vs.js";import{C as W}from"./Consumption-DEB600BC.js";import{a as Y}from"./price-lQeFOa8Q.js";import{C as Z}from"./CopyToClipboard-cTbsayFn.js";import{V as x}from"./VideoPlayer-DcumvLkR.js";import{B as ee}from"./BotPlaceholder-BV2w6Q4w.js";import{N as te}from"./NoTasks-ZsLHgPuo.js";import{l as oe}from"./pagination-DLJ2pbsx.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-C5RrfhAy.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";import"./vue-plyr-QZFBikSk.js";const se=b({name:"LayoutHailuo",components:{ElDrawer:R,ElButton:T,FontAwesomeIcon:L},data(){return{drawer:!1}}}),ae={class:"main flex flex-row flex-1"},ne={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},le={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function ie(e,s,f,g,w,y){const d=o("font-awesome-icon"),m=o("el-button"),r=o("el-drawer");return a(),c("div",ae,[i("div",ne,[E(e.$slots,"config",{},void 0,!0)]),i("div",le,[E(e.$slots,"result",{},void 0,!0)]),t(m,{circle:"",class:"menu",onClick:s[0]||(s[0]=_=>e.drawer=!0)},{default:u(()=>[t(d,{icon:"fa-solid fa-magic"})]),_:1}),t(r,{modelValue:e.drawer,"onUpdate:modelValue":s[1]||(s[1]=_=>e.drawer=_),direction:"ltr","with-header":!1,size:"340px"},{default:u(()=>[E(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const re=k(se,[["render",ie],["__scopeId","data-v-fa61db7a"]]),ce=b({name:"ModelSelector",components:{ElSelect:M,ElOption:A},data(){return{}},computed:{options(){return[{value:"minimax-t2v",label:this.$t("hailuo.button.model1")},{value:"minimax-i2v",label:this.$t("hailuo.button.model2")},{value:"minimax-i2v-director",label:this.$t("hailuo.button.model3")}]},value:{get(){return this.$store.state.hailuo?.config?.model},set(e){this.$store.commit("hailuo/setConfig",{...this.$store.state.hailuo?.config,model:e})}}},mounted(){this.value||(this.value=F)}}),ue={class:"field"},de={class:"title font-bold"},me={class:"float-left"};function pe(e,s,f,g,w,y){const d=o("el-option"),m=o("el-select");return a(),c("div",ue,[i("h2",de,n(e.$t("hailuo.name.model")),1),t(m,{modelValue:e.value,"onUpdate:modelValue":s[0]||(s[0]=r=>e.value=r),class:"value",placeholder:e.$t("hailuo.placeholder.select"),clearable:""},{default:u(()=>[(a(!0),c(C,null,G(e.options,r=>(a(),v(d,{key:r.value,label:r.label,value:r.value},{default:u(()=>[i("span",me,n(r.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const he=k(ce,[["render",pe],["__scopeId","data-v-a768fbd9"]]),fe=b({name:"StartImageUrlInput",components:{ElUpload:j,ElButton:T,InfoIcon:P,ImagePreview:Q},mixins:[X],data(){return{fileList:[],uploadUrl:N()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e.url).filter(e=>e!==void 0)},value:{get(){return this.$store.state.hailuo?.config?.first_image_url},set(){const e=this.urls?.[0];this.$store.commit("hailuo/setConfig",{...this.$store.state.hailuo?.config,first_image_url:e})}}},mounted(){this.value||(this.value=void 0),this.onSetStartImageUrl()},methods:{onExceed(){S.warning(this.$t("hailuo.message.uploadStartImageExceed"))},onError(){S.error(this.$t("hailuo.message.uploadStartImageError"))},async onRemove(){S.error(this.$t("hailuo.message.uploadStartImageError"))},onSetStartImageUrl(){const e=this.urls?.[0];this.$store.commit("hailuo/setConfig",{...this.$store.state.hailuo?.config,first_image_url:e})},async onSuccess(){this.onSetStartImageUrl()}}}),ge={class:"relative"},_e={class:"flex justify-between"},$e={class:"flex justify-start items-center"},ve={class:"text-sm font-bold"};function be(e,s,f,g,w,y){const d=o("info-icon"),m=o("image-preview"),r=o("el-button"),_=o("el-upload");return a(),c("div",ge,[i("div",_e,[i("div",$e,[i("span",ve,n(e.$t("hailuo.name.startImageUrl")),1),t(d,{content:e.$t("hailuo.description.startImageUrl"),class:"info"},null,8,["content"])])]),t(_,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":s[0]||(s[0]=l=>e.fileList=l),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file","show-file-list":!0,limit:1,multiple:!1,"list-type":"picture",action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-remove":e.onRemove,"on-success":e.onSuccess,headers:e.headers},{file:u(({file:l})=>[l.url&&l.percentage!==void 0?(a(),v(m,{key:0,url:l.url,name:l.name,percentage:l.percentage,onRemove:$=>e.fileList.splice(e.fileList.indexOf(l),1)},null,8,["url","name","percentage","onRemove"])):h("",!0)]),default:u(()=>[t(r,{size:"small",type:"primary",class:"btn btn-upload",round:""},{default:u(()=>[p(n(e.$t("hailuo.button.uploadStartImageUrl")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-remove","on-success","headers"])])}const ke=k(fe,[["render",be],["__scopeId","data-v-48f4a681"]]),we="",ye=b({name:"PromptInput",components:{ElInput:D,InfoIcon:P},computed:{prompt:{get(){return this.$store.state.hailuo?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("hailuo/setConfig",{...this.$store.state.hailuo?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=we)}}),Se={class:"field"},Te={class:"box"},Ve={class:"title font-bold"};function Ie(e,s,f,g,w,y){const d=o("info-icon"),m=o("el-input");return a(),c("div",Se,[i("div",Te,[i("h2",Ve,n(e.$t("hailuo.name.prompt")),1),t(d,{content:e.$t("hailuo.description.prompt"),class:"info"},null,8,["content"])]),t(m,{modelValue:e.prompt,"onUpdate:modelValue":s[0]||(s[0]=r=>e.prompt=r),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("hailuo.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const Ee=k(ye,[["render",Ie],["__scopeId","data-v-c601bcba"]]),Ce=b({name:"PresetPanel",components:{ElButton:T,FontAwesomeIcon:L,PromptInput:Ee,StartImageUrlInput:ke,ModelSelector:he,Consumption:W},emits:["generate"],computed:{config(){return this.$store.state.hailuo?.config},consumption(){return Y(this.config,this.service?.cost)},service(){return this.$store.state.hailuo?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Le={class:"flex flex-col h-full"},Ue={class:"flex-1 overflow-y-auto p-5"},Ge={class:"flex flex-col items-center justify-center px-5 pb-5"};function Pe(e,s,f,g,w,y){const d=o("prompt-input"),m=o("model-selector"),r=o("start-image-url-input"),_=o("consumption"),l=o("font-awesome-icon"),$=o("el-button");return a(),c("div",Le,[i("div",Ue,[t(d,{class:"mb-4"}),t(m,{class:"mb-4"}),e.config?.model==="minimax-i2v"?(a(),v(r,{key:0,class:"mb-2"})):h("",!0)]),i("div",Ge,[t(_,{value:e.consumption,service:e.service},null,8,["value","service"]),e.config?.video_url!==void 0||e.config?.custom?(a(),v($,{key:0,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:u(()=>[t(l,{icon:"fa-solid fa-magic",class:"mr-2"}),p(" "+n(e.$t("hailuo.button.extend")),1)]),_:1},8,["onClick"])):(a(),v($,{key:1,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:u(()=>[t(l,{icon:"fa-solid fa-magic",class:"mr-2"}),p(" "+n(e.$t("hailuo.button.generate")),1)]),_:1},8,["onClick"]))])])}const Re=k(Ce,[["render",Pe]]),Ae=b({name:"TaskPreview",components:{ElImage:q,CopyToClipboard:Z,FontAwesomeIcon:L,ElAlert:O,VideoPlayer:x,ElTooltip:B,ElButton:T},props:{modelValue:{type:Object,required:!0}},computed:{application(){return this.$store.state.hailuo?.application},config(){return this.$store.state.hailuo?.config},video(){return this.modelValue?.response?.data?.[0]}},methods:{onDownload(e){console.debug("on download hailuo video",e),window.open(e,"_blank")}}}),Me={class:"preview"},je={class:"left"},De={class:"main"},Be={class:"bot"},Oe={class:"datetime"},qe={class:"info"},ze={key:0,class:"prompt mt-2"},Fe={key:0},Ne={key:1},He={key:0,class:V({content:!0,failed:!0})},Ke={key:0,class:"mb-4"},Xe={key:1,class:V({operations:!0,"mt-2":!0})},Je={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Qe={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},We={key:1,class:V({content:!0})},Ye={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ze={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},xe={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},et={key:2,class:V({content:!0})},tt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function ot(e,s,f,g,w,y){const d=o("el-image"),m=o("video-player"),r=o("el-button"),_=o("el-tooltip"),l=o("font-awesome-icon"),$=o("copy-to-clipboard"),I=o("el-alert");return a(),c("div",Me,[i("div",je,[t(d,{src:"https://cdn.acedata.cloud/0qg4gp.png",class:"avatar"})]),i("div",De,[i("div",Be,[p(n(e.$t("hailuo.name.hailuoBot"))+" ",1),i("span",Oe,n(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),i("div",qe,[e.modelValue?.request?.prompt?(a(),c("p",ze,[p(n(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?h("",!0):(a(),c("span",Fe," - ("+n(e.$t("hailuo.status.pending"))+") ",1)),e.video?.state==="processing"||e.video?.state==="pending"||e.video?.state==="running"?(a(),c("span",Ne," - ("+n(e.$t("hailuo.status.processing"))+") ",1)):h("",!0)])):h("",!0)]),e.modelValue?.response?.success===!0?(a(),c("div",He,[e.video?.video_url?(a(),c("div",Ke,[t(m,{src:e.video?.video_url},null,8,["src"])])):h("",!0),e.video?(a(),c("div",Xe,[t(_,{class:"box-item",effect:"dark",content:e.$t("hailuo.message.downloadVideo"),placement:"top-start"},{default:u(()=>[e.video?.video_url?(a(),v(r,{key:0,type:"info",size:"small",class:"mb-2",onClick:s[0]||(s[0]=z(mt=>e.onDownload(e.video?.video_url),["stop"]))},{default:u(()=>[p(n(e.$t("hailuo.button.download")),1)]),_:1})):h("",!0)]),_:1},8,["content"])])):h("",!0),t(I,{closable:!1,class:"mt-2 success"},{default:u(()=>[e.modelValue?.request?.model?(a(),c("p",Je,[t(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.model"))+": "+n(e.modelValue?.request?.model)+" ",1),t($,{content:e.modelValue?.id},null,8,["content"])])):h("",!0),i("p",Qe,[t(l,{icon:"fa-solid fa-magic",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.taskId"))+": "+n(e.modelValue?.id)+" ",1),t($,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):h("",!0),e.modelValue?.response?.success===!1?(a(),c("div",We,[t(I,{closable:!1,class:"failure"},{template:u(()=>[t(l,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.failure")),1)]),default:u(()=>[i("p",Ye,[t(l,{icon:"fa-solid fa-magic",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.taskId"))+": "+n(e.modelValue?.id)+" ",1),t($,{content:e.modelValue?.id},null,8,["content"])]),i("p",Ze,[t(l,{icon:"fa-solid fa-circle-info",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.failureReason"))+": "+n(e.modelValue?.response?.error?.message)+" ",1),t($,{content:e.modelValue?.response?.error?.message},null,8,["content"])]),i("p",xe,[t(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.traceId"))+": "+n(e.modelValue?.response?.trace_id)+" ",1),t($,{content:e.modelValue?.response?.trace_id},null,8,["content"])])]),_:1})])):h("",!0),e.modelValue?.response?.success===void 0?(a(),c("div",et,[t(I,{closable:!1,class:"info"},{template:u(()=>[t(l,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.failure")),1)]),default:u(()=>[i("p",tt,[t(l,{icon:"fa-solid fa-magic",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.taskId"))+": "+n(e.modelValue?.id)+" ",1),t($,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):h("",!0)])])}const st=k(Ae,[["render",ot],["__scopeId","data-v-48b0ddf9"]]),at=b({name:"RecentPanel",components:{TaskPreview:st,BotPlaceholder:ee,NoTasks:te,ScrollList:J},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.hailuo?.tasks,items:this.$store.state.hailuo?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),nt={key:0},lt={key:2,class:"w-full h-full flex items-center justify-center"};function it(e,s,f,g,w,y){const d=o("bot-placeholder"),m=o("task-preview"),r=o("scroll-list"),_=o("no-tasks");return a(),c(C,null,[e.tasks?.items===void 0?(a(),c("div",nt,[t(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(a(),v(r,{key:1,ref:"scrollList",class:"tasks w-full h-full overflow-y-auto",loading:e.loading,onReachTop:s[0]||(s[0]=l=>e.$emit("reach-top"))},{default:u(()=>[(a(!0),c(C,null,G(e.tasks?.items,l=>(a(),v(m,{key:l.id,"model-value":l},null,8,["model-value"]))),128))]),_:1},8,["loading"])):h("",!0),e.tasks?.items?.length===0?(a(),c("div",lt,[t(_)])):h("",!0)],64)}const rt=k(at,[["render",it]]),ct="https://webhook.acedata.cloud/hailuo",ut=b({name:"HailuoIndex",components:{ConfigPanel:Re,Layout:re,RecentPanel:rt},inject:["initialized"],data(){return{task:void 0,job:0,timer:void 0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.hailuo?.status?.getApplications===U.Request},tasksLoading(){return this.$store.state.hailuo?.status?.getTasks===U.Request||this.fetchingTasks},credential(){return this.$store.state.hailuo.credential},config(){return this.$store.state.hailuo.config},application(){return this.$store.state.hailuo.application},tasks(){return this.$store.state.hailuo.tasks}},watch:{tasks:{handler(e,s){e?.items?.length>s?.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 oe({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("hailuo/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("hailuo/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();const 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);const{limit:s=5,createdAtMin:f,createdAtMax:g}=e||{};console.debug("limit",s,"createdAtMin",f,"createdAtMax",g),this.fetchingTasks=!0;try{await this.$store.dispatch("hailuo/getTasks",{limit:s,createdAtMin:f,createdAtMax:g})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:ct},s=this.credential?.token;if(!s){console.error("no token specified");return}S.info(this.$t("hailuo.message.startingTask")),H.generate(e,{token:s}).then(()=>{S.success(this.$t("hailuo.message.startTaskSuccess"))}).catch(f=>{f?.response?.data?.error?.code===K?S.error(this.$t("hailuo.message.usedUp")):S.error(this.$t("hailuo.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function dt(e,s,f,g,w,y){const d=o("config-panel"),m=o("recent-panel"),r=o("layout");return a(),v(r,null,{config:u(()=>[t(d,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:u(()=>[t(m,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const Gt=k(ut,[["render",dt]]);export{Gt as default};
1
+ import{F as L}from"./index.es-D2RJIOwI.js";import{m as T,W as R,O as A,P as M,u as j,w as S,t as D,q as B,H as O,j as q}from"./vendor-element-plus-ZfFlETcH.js";import{d as b,C as c,G as i,T as t,E,K as u,ai as o,D as a,R as n,S as C,ag as G,J as v,Q as p,O as h,M as V,X as z}from"./vendor-vue-BhXato7y.js";import{_ as k,cg as F,au as N,ch as H,aN as J,aJ as U}from"./index-CdkIaG4d.js";import{p as K}from"./pasteUploadMixin-BurWbGNQ.js";import{I as P,S as Q}from"./ScrollList-Dw45lO0t.js";import{I as W}from"./ImagePreview-SUR7TFTL.js";import{C as X}from"./Consumption-BCbR6ZEO.js";import{a as Y}from"./price-CwH8PfMf.js";import{C as Z}from"./CopyToClipboard-Djhvl2Fk.js";import{V as x}from"./VideoPlayer-gXXZbisY.js";import{B as ee}from"./BotPlaceholder-CInEMDBc.js";import{N as te}from"./NoTasks-BYOtsKOE.js";import{l as oe}from"./pagination-DLJ2pbsx.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-CNlWJWvL.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";import"./vue-plyr-QZFBikSk.js";const se=b({name:"LayoutHailuo",components:{ElDrawer:R,ElButton:T,FontAwesomeIcon:L},data(){return{drawer:!1}}}),ae={class:"main flex flex-row flex-1"},ne={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},le={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function ie(e,s,f,g,w,y){const d=o("font-awesome-icon"),m=o("el-button"),r=o("el-drawer");return a(),c("div",ae,[i("div",ne,[E(e.$slots,"config",{},void 0,!0)]),i("div",le,[E(e.$slots,"result",{},void 0,!0)]),t(m,{circle:"",class:"menu",onClick:s[0]||(s[0]=_=>e.drawer=!0)},{default:u(()=>[t(d,{icon:"fa-solid fa-magic"})]),_:1}),t(r,{modelValue:e.drawer,"onUpdate:modelValue":s[1]||(s[1]=_=>e.drawer=_),direction:"ltr","with-header":!1,size:"340px"},{default:u(()=>[E(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const re=k(se,[["render",ie],["__scopeId","data-v-fa61db7a"]]),ce=b({name:"ModelSelector",components:{ElSelect:M,ElOption:A},data(){return{}},computed:{options(){return[{value:"minimax-t2v",label:this.$t("hailuo.button.model1")},{value:"minimax-i2v",label:this.$t("hailuo.button.model2")},{value:"minimax-i2v-director",label:this.$t("hailuo.button.model3")}]},value:{get(){return this.$store.state.hailuo?.config?.model},set(e){this.$store.commit("hailuo/setConfig",{...this.$store.state.hailuo?.config,model:e})}}},mounted(){this.value||(this.value=F)}}),ue={class:"field"},de={class:"title font-bold"},me={class:"float-left"};function pe(e,s,f,g,w,y){const d=o("el-option"),m=o("el-select");return a(),c("div",ue,[i("h2",de,n(e.$t("hailuo.name.model")),1),t(m,{modelValue:e.value,"onUpdate:modelValue":s[0]||(s[0]=r=>e.value=r),class:"value",placeholder:e.$t("hailuo.placeholder.select"),clearable:""},{default:u(()=>[(a(!0),c(C,null,G(e.options,r=>(a(),v(d,{key:r.value,label:r.label,value:r.value},{default:u(()=>[i("span",me,n(r.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const he=k(ce,[["render",pe],["__scopeId","data-v-a768fbd9"]]),fe=b({name:"StartImageUrlInput",components:{ElUpload:j,ElButton:T,InfoIcon:P,ImagePreview:W},mixins:[K],data(){return{fileList:[],uploadUrl:N()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e.url).filter(e=>e!==void 0)},value:{get(){return this.$store.state.hailuo?.config?.first_image_url},set(){const e=this.urls?.[0];this.$store.commit("hailuo/setConfig",{...this.$store.state.hailuo?.config,first_image_url:e})}}},mounted(){this.value||(this.value=void 0),this.onSetStartImageUrl()},methods:{onExceed(){S.warning(this.$t("hailuo.message.uploadStartImageExceed"))},onError(){S.error(this.$t("hailuo.message.uploadStartImageError"))},async onRemove(){S.error(this.$t("hailuo.message.uploadStartImageError"))},onSetStartImageUrl(){const e=this.urls?.[0];this.$store.commit("hailuo/setConfig",{...this.$store.state.hailuo?.config,first_image_url:e})},async onSuccess(){this.onSetStartImageUrl()}}}),ge={class:"relative"},_e={class:"flex justify-between"},$e={class:"flex justify-start items-center"},ve={class:"text-sm font-bold"};function be(e,s,f,g,w,y){const d=o("info-icon"),m=o("image-preview"),r=o("el-button"),_=o("el-upload");return a(),c("div",ge,[i("div",_e,[i("div",$e,[i("span",ve,n(e.$t("hailuo.name.startImageUrl")),1),t(d,{content:e.$t("hailuo.description.startImageUrl"),class:"info"},null,8,["content"])])]),t(_,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":s[0]||(s[0]=l=>e.fileList=l),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file","show-file-list":!0,limit:1,multiple:!1,"list-type":"picture",action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-remove":e.onRemove,"on-success":e.onSuccess,headers:e.headers},{file:u(({file:l})=>[l.url&&l.percentage!==void 0?(a(),v(m,{key:0,url:l.url,name:l.name,percentage:l.percentage,onRemove:$=>e.fileList.splice(e.fileList.indexOf(l),1)},null,8,["url","name","percentage","onRemove"])):h("",!0)]),default:u(()=>[t(r,{size:"small",type:"primary",class:"btn btn-upload",round:""},{default:u(()=>[p(n(e.$t("hailuo.button.uploadStartImageUrl")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-remove","on-success","headers"])])}const ke=k(fe,[["render",be],["__scopeId","data-v-48f4a681"]]),we="",ye=b({name:"PromptInput",components:{ElInput:D,InfoIcon:P},computed:{prompt:{get(){return this.$store.state.hailuo?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("hailuo/setConfig",{...this.$store.state.hailuo?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=we)}}),Se={class:"field"},Te={class:"box"},Ve={class:"title font-bold"};function Ie(e,s,f,g,w,y){const d=o("info-icon"),m=o("el-input");return a(),c("div",Se,[i("div",Te,[i("h2",Ve,n(e.$t("hailuo.name.prompt")),1),t(d,{content:e.$t("hailuo.description.prompt"),class:"info"},null,8,["content"])]),t(m,{modelValue:e.prompt,"onUpdate:modelValue":s[0]||(s[0]=r=>e.prompt=r),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("hailuo.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const Ee=k(ye,[["render",Ie],["__scopeId","data-v-c601bcba"]]),Ce=b({name:"PresetPanel",components:{ElButton:T,FontAwesomeIcon:L,PromptInput:Ee,StartImageUrlInput:ke,ModelSelector:he,Consumption:X},emits:["generate"],computed:{config(){return this.$store.state.hailuo?.config},consumption(){return Y(this.config,this.service?.cost)},service(){return this.$store.state.hailuo?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Le={class:"flex flex-col h-full"},Ue={class:"flex-1 overflow-y-auto p-5"},Ge={class:"flex flex-col items-center justify-center px-5 pb-5"};function Pe(e,s,f,g,w,y){const d=o("prompt-input"),m=o("model-selector"),r=o("start-image-url-input"),_=o("consumption"),l=o("font-awesome-icon"),$=o("el-button");return a(),c("div",Le,[i("div",Ue,[t(d,{class:"mb-4"}),t(m,{class:"mb-4"}),e.config?.model==="minimax-i2v"?(a(),v(r,{key:0,class:"mb-2"})):h("",!0)]),i("div",Ge,[t(_,{value:e.consumption,service:e.service},null,8,["value","service"]),e.config?.video_url!==void 0||e.config?.custom?(a(),v($,{key:0,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:u(()=>[t(l,{icon:"fa-solid fa-magic",class:"mr-2"}),p(" "+n(e.$t("hailuo.button.extend")),1)]),_:1},8,["onClick"])):(a(),v($,{key:1,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:u(()=>[t(l,{icon:"fa-solid fa-magic",class:"mr-2"}),p(" "+n(e.$t("hailuo.button.generate")),1)]),_:1},8,["onClick"]))])])}const Re=k(Ce,[["render",Pe]]),Ae=b({name:"TaskPreview",components:{ElImage:q,CopyToClipboard:Z,FontAwesomeIcon:L,ElAlert:O,VideoPlayer:x,ElTooltip:B,ElButton:T},props:{modelValue:{type:Object,required:!0}},computed:{application(){return this.$store.state.hailuo?.application},config(){return this.$store.state.hailuo?.config},video(){return this.modelValue?.response?.data?.[0]}},methods:{onDownload(e){console.debug("on download hailuo video",e),window.open(e,"_blank")}}}),Me={class:"preview"},je={class:"left"},De={class:"main"},Be={class:"bot"},Oe={class:"datetime"},qe={class:"info"},ze={key:0,class:"prompt mt-2"},Fe={key:0},Ne={key:1},He={key:0,class:V({content:!0,failed:!0})},Je={key:0,class:"mb-4"},Ke={key:1,class:V({operations:!0,"mt-2":!0})},Qe={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},We={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Xe={key:1,class:V({content:!0})},Ye={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ze={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},xe={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},et={key:2,class:V({content:!0})},tt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function ot(e,s,f,g,w,y){const d=o("el-image"),m=o("video-player"),r=o("el-button"),_=o("el-tooltip"),l=o("font-awesome-icon"),$=o("copy-to-clipboard"),I=o("el-alert");return a(),c("div",Me,[i("div",je,[t(d,{src:"https://cdn.acedata.cloud/0qg4gp.png",class:"avatar"})]),i("div",De,[i("div",Be,[p(n(e.$t("hailuo.name.hailuoBot"))+" ",1),i("span",Oe,n(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),i("div",qe,[e.modelValue?.request?.prompt?(a(),c("p",ze,[p(n(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?h("",!0):(a(),c("span",Fe," - ("+n(e.$t("hailuo.status.pending"))+") ",1)),e.video?.state==="processing"||e.video?.state==="pending"||e.video?.state==="running"?(a(),c("span",Ne," - ("+n(e.$t("hailuo.status.processing"))+") ",1)):h("",!0)])):h("",!0)]),e.modelValue?.response?.success===!0?(a(),c("div",He,[e.video?.video_url?(a(),c("div",Je,[t(m,{src:e.video?.video_url},null,8,["src"])])):h("",!0),e.video?(a(),c("div",Ke,[t(_,{class:"box-item",effect:"dark",content:e.$t("hailuo.message.downloadVideo"),placement:"top-start"},{default:u(()=>[e.video?.video_url?(a(),v(r,{key:0,type:"info",size:"small",class:"mb-2",onClick:s[0]||(s[0]=z(mt=>e.onDownload(e.video?.video_url),["stop"]))},{default:u(()=>[p(n(e.$t("hailuo.button.download")),1)]),_:1})):h("",!0)]),_:1},8,["content"])])):h("",!0),t(I,{closable:!1,class:"mt-2 success"},{default:u(()=>[e.modelValue?.request?.model?(a(),c("p",Qe,[t(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.model"))+": "+n(e.modelValue?.request?.model)+" ",1),t($,{content:e.modelValue?.id},null,8,["content"])])):h("",!0),i("p",We,[t(l,{icon:"fa-solid fa-magic",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.taskId"))+": "+n(e.modelValue?.id)+" ",1),t($,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):h("",!0),e.modelValue?.response?.success===!1?(a(),c("div",Xe,[t(I,{closable:!1,class:"failure"},{template:u(()=>[t(l,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.failure")),1)]),default:u(()=>[i("p",Ye,[t(l,{icon:"fa-solid fa-magic",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.taskId"))+": "+n(e.modelValue?.id)+" ",1),t($,{content:e.modelValue?.id},null,8,["content"])]),i("p",Ze,[t(l,{icon:"fa-solid fa-circle-info",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.failureReason"))+": "+n(e.modelValue?.response?.error?.message)+" ",1),t($,{content:e.modelValue?.response?.error?.message},null,8,["content"])]),i("p",xe,[t(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.traceId"))+": "+n(e.modelValue?.response?.trace_id)+" ",1),t($,{content:e.modelValue?.response?.trace_id},null,8,["content"])])]),_:1})])):h("",!0),e.modelValue?.response?.success===void 0?(a(),c("div",et,[t(I,{closable:!1,class:"info"},{template:u(()=>[t(l,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.failure")),1)]),default:u(()=>[i("p",tt,[t(l,{icon:"fa-solid fa-magic",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.taskId"))+": "+n(e.modelValue?.id)+" ",1),t($,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):h("",!0)])])}const st=k(Ae,[["render",ot],["__scopeId","data-v-48b0ddf9"]]),at=b({name:"RecentPanel",components:{TaskPreview:st,BotPlaceholder:ee,NoTasks:te,ScrollList:Q},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.hailuo?.tasks,items:this.$store.state.hailuo?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),nt={key:0},lt={key:2,class:"w-full h-full flex items-center justify-center"};function it(e,s,f,g,w,y){const d=o("bot-placeholder"),m=o("task-preview"),r=o("scroll-list"),_=o("no-tasks");return a(),c(C,null,[e.tasks?.items===void 0?(a(),c("div",nt,[t(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(a(),v(r,{key:1,ref:"scrollList",class:"tasks w-full h-full overflow-y-auto",loading:e.loading,onReachTop:s[0]||(s[0]=l=>e.$emit("reach-top"))},{default:u(()=>[(a(!0),c(C,null,G(e.tasks?.items,l=>(a(),v(m,{key:l.id,"model-value":l},null,8,["model-value"]))),128))]),_:1},8,["loading"])):h("",!0),e.tasks?.items?.length===0?(a(),c("div",lt,[t(_)])):h("",!0)],64)}const rt=k(at,[["render",it]]),ct="https://webhook.acedata.cloud/hailuo",ut=b({name:"HailuoIndex",components:{ConfigPanel:Re,Layout:re,RecentPanel:rt},inject:["initialized"],data(){return{task:void 0,job:0,timer:void 0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.hailuo?.status?.getApplications===U.Request},tasksLoading(){return this.$store.state.hailuo?.status?.getTasks===U.Request||this.fetchingTasks},credential(){return this.$store.state.hailuo.credential},config(){return this.$store.state.hailuo.config},application(){return this.$store.state.hailuo.application},tasks(){return this.$store.state.hailuo.tasks}},watch:{tasks:{handler(e,s){e?.items?.length>s?.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 oe({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("hailuo/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("hailuo/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();const 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);const{limit:s=5,createdAtMin:f,createdAtMax:g}=e||{};console.debug("limit",s,"createdAtMin",f,"createdAtMax",g),this.fetchingTasks=!0;try{await this.$store.dispatch("hailuo/getTasks",{limit:s,createdAtMin:f,createdAtMax:g})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:ct},s=this.credential?.token;if(!s){console.error("no token specified");return}S.info(this.$t("hailuo.message.startingTask")),H.generate(e,{token:s}).then(()=>{S.success(this.$t("hailuo.message.startTaskSuccess"))}).catch(f=>{f?.response?.data?.error?.code===J?S.error(this.$t("hailuo.message.usedUp")):S.error(this.$t("hailuo.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function dt(e,s,f,g,w,y){const d=o("config-panel"),m=o("recent-panel"),r=o("layout");return a(),v(r,null,{config:u(()=>[t(d,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:u(()=>[t(m,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const Gt=k(ut,[["render",dt]]);export{Gt as default};
@@ -1 +1 @@
1
- import{F as S}from"./index.es-DMehEjXB.js";import{m as q,X as x,t as H,u as K,w as E,O as B,P as M,q as X,H as J,j as Q}from"./vendor-element-plus-CmP9-3lX.js";import{d as k,C as l,G as c,T as a,E as C,K as $,ai as s,D as n,R as o,Q as u,S as A,ag as N,J as V,O as b,M as O,X as Y}from"./vendor-vue-BhXato7y.js";import{_ as y,av as Z,cp as ee,cq as z,cr as P,cs as te,ct as T,cu as G,cv as j,cw as D,cx as ae,aO as oe,aK as F}from"./index-CtkD2JaX.js";import{I as U,S as ne}from"./ScrollList-OteSDitY.js";import{p as se}from"./pasteUploadMixin-BurWbGNQ.js";import{I as W}from"./ImagePreview-B5F24-Vs.js";import{C as le}from"./Consumption-DEB600BC.js";import{a as re}from"./price-lQeFOa8Q.js";import{C as ie}from"./CopyToClipboard-cTbsayFn.js";import{I as ce}from"./ImageWrapper-hN1Hdu08.js";import{B as ue}from"./BotPlaceholder-BV2w6Q4w.js";import{N as de}from"./NoTasks-ZsLHgPuo.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-C5RrfhAy.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";const me=k({name:"LayoutNanobanana",components:{ElDrawer:x,ElButton:q,FontAwesomeIcon:S},data(){return{drawer:!1}}}),pe={class:"main flex flex-row flex-1"},fe={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},he={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function _e(e,t,g,r,d,f){const h=s("font-awesome-icon"),_=s("el-button"),m=s("el-drawer");return n(),l("div",pe,[c("div",fe,[C(e.$slots,"config",{},void 0,!0)]),c("div",he,[C(e.$slots,"result",{},void 0,!0)]),a(_,{circle:"",class:"menu",onClick:t[0]||(t[0]=p=>e.drawer=!0)},{default:$(()=>[a(h,{icon:"fa-solid fa-magic"})]),_:1}),a(m,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=p=>e.drawer=p),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:$(()=>[C(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ge=y(me,[["render",_e],["__scopeId","data-v-9fbc8a5c"]]),be="",$e=k({name:"PromptInput",components:{ElInput:H,InfoIcon:U},computed:{prompt:{get(){return this.$store.state.nanobanana?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=be)}}),ve={class:"field"},ke={class:"box"},ye={class:"title font-bold"};function we(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-input");return n(),l("div",ve,[c("div",ke,[c("h2",ye,o(e.$t("nanobanana.name.prompt")),1),a(h,{content:e.$t("nanobanana.description.prompt"),class:"info"},null,8,["content"])]),a(_,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=m=>e.prompt=m),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("nanobanana.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const Ae=y($e,[["render",we],["__scopeId","data-v-2331e197"]]),Ve=k({name:"ImageUrlsInput",components:{ElUpload:K,ElButton:q,InfoIcon:U,ImagePreview:W,FontAwesomeIcon:S},mixins:[se],data(){return{fileList:[],uploadUrl:Z()+"/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){const r=(this.fileList||[]).filter(d=>!d?.response?.file_url);this.fileList=r.length?r:[];return}const t=[];e.forEach(r=>{const d=this.fileList.find(f=>f?.response?.file_url===r||f?.url===r);d?t.push(d):t.push({name:r.split("/").pop()||r,url:r,status:"success",percentage:100,response:{file_url:r}})}),(this.fileList||[]).filter(r=>!r?.response?.file_url).forEach(r=>{t.some(f=>f===r||f?.url===r?.url||f?.response?.file_url===r?.response?.file_url)||t.push(r)}),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(){E.warning(this.$t("nanobanana.message.uploadImageExceed"))},onError(){E.error(this.$t("nanobanana.message.uploadImageError"))},onSetImageUrls(){const 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()}}}),Ne={class:"field flex items-center justify-between"},Re={class:"title font-bold text-[14px] mb-[10px]"},Ee={class:"upload-wrapper flex flex-col items-start gap-[8px]"},Ie={class:"controls flex items-center"},Le={class:"file-list flex flex-wrap gap-[10px]"};function Te(e,t,g,r,d,f){const h=s("font-awesome-icon"),_=s("el-button"),m=s("el-upload"),p=s("info-icon"),w=s("image-preview");return n(),l(A,null,[c("div",Ne,[c("h2",Re,o(e.$t("nanobanana.name.imageUrls")),1),c("div",Ee,[c("div",Ie,[a(m,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=i=>e.fileList=i),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",class:"value",limit:5,multiple:!0,"show-file-list":!1,action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,"on-change":e.onChange,"on-remove":e.onRemove,headers:e.headers},{default:$(()=>[a(_,{size:"small",type:"primary",round:""},{default:$(()=>[a(h,{icon:"fa-solid fa-upload",class:"mr-1"}),u(" "+o(e.$t("nanobanana.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","on-change","on-remove","headers"]),a(p,{content:e.$t("nanobanana.description.imageUrls"),class:"ml-2"},null,8,["content"])])])]),c("div",Le,[(n(!0),l(A,null,N(e.fileList,(i,v)=>(n(),V(w,{key:i.uid||i?.response?.file_url||i.url||v,url:i.url||i?.response?.file_url,name:i.name,percentage:i.percentage,onRemove:R=>e.onRemovePreview(v,i)},null,8,["url","name","percentage","onRemove"]))),128))])],64)}const Se=y(Ve,[["render",Te]]),qe=k({name:"AspectRatioSelector",components:{ElSelect:M,ElOption:B},data(){return{options:["1:1","3:2","2:3","16:9","9:16","4:3","3:4"]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.aspect_ratio},set(e){console.debug("set aspect_ratio",e);const t={...this.$store.state.nanobanana?.config||{}};e?t.aspect_ratio=e:delete t.aspect_ratio,this.$store.commit("nanobanana/setConfig",t)}}}}),Oe={class:"field"},Ue={class:"title font-bold"};function Ce(e,t,g,r,d,f){const h=s("el-option"),_=s("el-select");return n(),l("div",Oe,[c("h2",Ue,o(e.$t("nanobanana.name.aspectRatio")),1),a(_,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=m=>e.value=m),class:"value",clearable:"",placeholder:e.$t("nanobanana.placeholder.select")},{default:$(()=>[(n(!0),l(A,null,N(e.options,m=>(n(),V(h,{key:m,label:m,value:m},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Pe=y(qe,[["render",Ce],["__scopeId","data-v-67f08a08"]]),Be=k({name:"NanobananaModelSelector",components:{ElSelect:M,ElOption:B,InfoIcon:U},data(){return{options:[{value:z,label:this.$t("nanobanana.model.nanoBanana")},{value:P,label:this.$t("nanobanana.model.nanoBananaPro")},{value:te,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||(this.value=ee)}}),Me={class:"field"},Ge={class:"label"},je={class:"box"},De={class:"title font-bold"};function Fe(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-option"),m=s("el-select");return n(),l("div",Me,[c("div",Ge,[c("div",je,[c("h2",De,o(e.$t("nanobanana.name.model")),1),a(h,{content:e.modelDescription,class:"info"},null,8,["content"])])]),a(m,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"value",placeholder:e.$t("nanobanana.placeholder.select")},{default:$(()=>[(n(!0),l(A,null,N(e.options,p=>(n(),V(_,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const ze=y(Be,[["render",Fe],["__scopeId","data-v-94304d73"]]),We=k({name:"NanobananaResolutionSelector",components:{ElSelect:M,ElOption:B,InfoIcon:U},data(){return{cachedResolution:T,options:[{value:G,label:G},{value:j,label:j},{value:D,label:D}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.resolution},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:e})}},isProModel(){return this.$store.state.nanobanana?.config?.model!==z}},watch:{value(e){this.isProModel&&e&&(this.cachedResolution=e)},isProModel(e){e?this.value||(this.value=this.cachedResolution||T):(this.value&&(this.cachedResolution=this.value),this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}},mounted(){this.isProModel&&!this.value&&(this.value=T),!this.isProModel&&this.value&&(this.cachedResolution=this.value,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}}),xe={class:"field"},He={class:"label"},Ke={class:"box"},Xe={class:"title font-bold"};function Je(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-option"),m=s("el-select");return n(),l("div",xe,[c("div",He,[c("div",Ke,[c("h2",Xe,o(e.$t("nanobanana.name.resolution")),1),a(h,{content:e.$t("nanobanana.description.resolutionProOnly"),class:"info"},null,8,["content"])])]),a(m,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"value",placeholder:e.$t("nanobanana.placeholder.select"),disabled:!e.isProModel},{default:$(()=>[(n(!0),l(A,null,N(e.options,p=>(n(),V(_,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled"])])}const Qe=y(We,[["render",Je],["__scopeId","data-v-fd5ab393"]]),Ye=k({name:"ConfigPanel",components:{ElButton:q,FontAwesomeIcon:S,PromptInput:Ae,Consumption:le,ImageUrlsInput:Se,AspectRatioSelector:Pe,ModelSelector:ze,ResolutionSelector:Qe},emits:["generate"],computed:{config(){return this.$store.state.nanobanana?.config},consumption(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;return re({...e,action:t?"edit":"generate"},this.service?.cost)},service(){return this.$store.state.nanobanana?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Ze={class:"flex flex-col h-full"},et={class:"flex-1 overflow-y-auto p-5"},tt={class:"flex flex-col items-center justify-center px-5 pb-5"};function at(e,t,g,r,d,f){const h=s("model-selector"),_=s("resolution-selector"),m=s("prompt-input"),p=s("aspect-ratio-selector"),w=s("image-urls-input"),i=s("consumption"),v=s("font-awesome-icon"),R=s("el-button");return n(),l("div",Ze,[c("div",et,[a(h,{class:"mb-4"}),a(_,{class:"mb-4"}),a(m,{class:"mb-4"}),a(p,{class:"mb-4"}),a(w,{class:"mb-4"})]),c("div",tt,[a(i,{value:e.consumption,service:e.service},null,8,["value","service"]),a(R,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:$(()=>[a(v,{icon:"fa-solid fa-magic",class:"mr-2"}),u(" "+o(e.$t("nanobanana.button.generate")),1)]),_:1},8,["onClick"])])])}const ot=y(Ye,[["render",at]]),nt=k({name:"TaskPreview",components:{ElImage:Q,CopyToClipboard:ie,FontAwesomeIcon:S,ElAlert:J,ImageWrapper:ce,ElButton:q,ElTooltip:X,ImagePreview:W},props:{modelValue:{type:Object,required:!0}},computed:{images(){const e=[];return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(t=>{e.push(t)}),e}},methods:{onEdit(e){if(!e)return;console.debug("Edit image:",e);const t={...this.$store.state.nanobanana?.config||{}};delete t.action,t.image_urls=[e],this.$store.commit("nanobanana/setConfig",t)}}}),st={class:"preview"},lt={class:"left"},rt={class:"main"},it={class:"bot"},ct={class:"datetime"},ut={class:"info"},dt={key:0,class:"flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto"},mt={key:1,class:"prompt mt-2"},pt={key:0},ft={key:0,class:O({content:!0,failed:!0})},ht={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},_t={class:O({operations:!0,"mt-2":!0,"mb-2":!0})},gt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},bt={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={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"},yt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},wt={key:1,class:O({content:!0})},At={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"},Nt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Rt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Et={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},It={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Lt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Tt={key:2,class:O({content:!0})},St={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},qt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ot={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ut={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ct={class:"text-[var(--el-text-color-regular)] text-xs mb-2"};function Pt(e,t,g,r,d,f){const h=s("el-image"),_=s("image-preview"),m=s("image-wrapper"),p=s("el-button"),w=s("el-tooltip"),i=s("font-awesome-icon"),v=s("copy-to-clipboard"),R=s("el-alert");return n(),l("div",st,[c("div",lt,[a(h,{src:"https://cdn.acedata.cloud/859plc.jpg",class:"avatar"})]),c("div",rt,[c("div",it,[u(o(e.$t("nanobanana.name.nanobananaBot"))+" ",1),c("span",ct,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),c("div",ut,[e.modelValue?.request?.image_urls&&e.modelValue?.request?.image_urls.length>0?(n(),l("div",dt,[(n(!0),l(A,null,N(e.modelValue?.request?.image_urls,(I,L)=>(n(),V(_,{key:L,url:I,name:`image-${L+1}`,closable:!1},null,8,["url","name"]))),128))])):b("",!0),e.modelValue?.request?.prompt?(n(),l("p",mt,[u(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?b("",!0):(n(),l("span",pt," - ("+o(e.$t("nanobanana.status.pending"))+") ",1))])):b("",!0)]),e.modelValue?.response?.success===!0?(n(),l("div",ft,[c("div",ht,[(n(!0),l(A,null,N(e.images,(I,L)=>(n(),V(m,{key:L,src:I?.image_url,"raw-src":I?.image_url},null,8,["src","raw-src"]))),128))]),c("div",_t,[a(w,{class:"box-item",effect:"dark",content:e.$t("common.button.edit"),placement:"top-start"},{default:$(()=>[a(p,{type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=Y(I=>e.onEdit(e.images?.[0]?.image_url),["stop"]))},{default:$(()=>[u(o(e.$t("common.button.edit")),1)]),_:1})]),_:1},8,["content"])]),a(R,{closable:!1,class:"mt-2 success"},{default:$(()=>[e.modelValue?.request?.model?(n(),l("p",gt,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",bt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",$t,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",vt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",kt,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),l("p",yt,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(v,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):b("",!0)]),_:1})])):e.modelValue?.response?.success===!1?(n(),l("div",wt,[a(R,{closable:!1,class:"failure"},{template:$(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failure")),1)]),default:$(()=>[e.modelValue?.request?.model?(n(),l("p",At,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",Vt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Nt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",Rt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",Et,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),c("p",It,[a(i,{icon:"fa-solid fa-circle-info",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failureReason"))+": "+o(e.modelValue?.response?.error?.message)+" ",1),a(v,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),l("p",Lt,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(v,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])):b("",!0)]),_:1})])):(n(),l("div",Tt,[a(R,{closable:!1,class:"info"},{template:$(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failure")),1)]),default:$(()=>[e.modelValue?.request?.model?(n(),l("p",St,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",qt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Ot,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",Ut,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",Ct,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})]))])])}const Bt=y(nt,[["render",Pt],["__scopeId","data-v-72e2ec32"]]),Mt=k({name:"RecentPanel",components:{TaskPreview:Bt,BotPlaceholder:ue,NoTasks:de,ScrollList:ne},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?.()}}}),Gt={key:0},jt={key:2,class:"w-full h-full flex items-center justify-center"};function Dt(e,t,g,r,d,f){const h=s("bot-placeholder"),_=s("task-preview"),m=s("scroll-list"),p=s("no-tasks");return n(),l(A,null,[e.tasks?.items===void 0?(n(),l("div",Gt,[a(h)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),V(m,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:t[0]||(t[0]=w=>e.$emit("reach-top"))},{default:$(()=>[(n(!0),l(A,null,N(e.tasks?.items,w=>(n(),V(_,{key:w.id,"model-value":w},null,8,["model-value"]))),128))]),_:1},8,["loading"])):b("",!0),e.tasks?.items?.length===0?(n(),l("div",jt,[a(p)])):b("",!0)],64)}const Ft=y(Mt,[["render",Dt]]),zt="https://webhook.acedata.cloud/nanobanana",Wt=k({name:"NanobananaIndex",components:{ConfigPanel:ot,Layout:ge,RecentPanel:Ft},inject:["initialized"],data(){return{task:void 0,job:0,loading:!1}},computed:{applicationsLoading(){return this.$store.state.nanobanana?.status?.getApplications===F.Request},tasksLoading(){return this.$store.state.nanobanana?.status?.getTasks===F.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(){if(console.debug("reached top"),this.loading||this.tasksLoading)return;const e=this.tasks?.total,t=this.tasks?.items?.length||0;if(e!==void 0&&e<=t)return;const g=this.tasks?.items?.[0];if(!g?.created_at)return;const d=this.$refs.recentPanel?.getScrollElement?.(),f=d?.scrollHeight||0,h=d?.scrollTop||0;this.loading=!0;try{if(await this.onGetTasks({createdAtMax:g.created_at}),await this.$nextTick(),d){const _=d.scrollHeight;d.scrollTop=_-f+h}}finally{this.loading=!1}},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();const 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);const{limit:t=20,createdAtMin:g,createdAtMax:r}=e||{};console.debug("limit",t,"createdAtMin",g,"createdAtMax",r),await this.$store.dispatch("nanobanana/getTasks",{limit:t,createdAtMin:g,createdAtMax:r})},async onGenerate(){const 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,e?.model!==P&&"resolution"in e&&delete e.resolution,e?.model===P&&!e?.resolution&&(e.resolution=T);const g={...e,action:t?"edit":"generate",callback_url:zt},r=this.credential?.token;if(!r){console.error("no token specified");return}E.info(this.$t("nanobanana.message.startingTask")),ae.generate(g,{token:r}).then(()=>{E.success(this.$t("nanobanana.message.startTaskSuccess"))}).catch(d=>{const f=d?.response?.data;f?.error?.code===oe?E.error(this.$t("nanobanana.message.usedUp")):E.error(this.$t("nanobanana.message.startTaskFailed")+(f?.error?.message||""))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function xt(e,t,g,r,d,f){const h=s("config-panel"),_=s("recent-panel"),m=s("layout");return n(),V(m,null,{config:$(()=>[a(h,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:$(()=>[a(_,{ref:"recentPanel",loading:e.loading,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const ua=y(Wt,[["render",xt]]);export{ua as default};
1
+ import{F as S}from"./index.es-D2RJIOwI.js";import{m as q,W as H,t as x,u as K,w as E,O as B,P as M,q as J,H as Q,j as X}from"./vendor-element-plus-ZfFlETcH.js";import{d as k,C as l,G as c,T as a,E as C,K as $,ai as s,D as n,R as o,Q as u,S as A,ag as N,J as V,O as b,M as O,X as Y}from"./vendor-vue-BhXato7y.js";import{_ as y,au as Z,co as ee,cp as z,cq as P,cr as te,cs as T,ct as G,cu as j,cv as D,cw as ae,aN as oe,aJ as F}from"./index-CdkIaG4d.js";import{I as U,S as ne}from"./ScrollList-Dw45lO0t.js";import{p as se}from"./pasteUploadMixin-BurWbGNQ.js";import{I as W}from"./ImagePreview-SUR7TFTL.js";import{C as le}from"./Consumption-BCbR6ZEO.js";import{a as re}from"./price-CwH8PfMf.js";import{C as ie}from"./CopyToClipboard-Djhvl2Fk.js";import{I as ce}from"./ImageWrapper-D7m66Uzp.js";import{B as ue}from"./BotPlaceholder-CInEMDBc.js";import{N as de}from"./NoTasks-BYOtsKOE.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-CNlWJWvL.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";const me=k({name:"LayoutNanobanana",components:{ElDrawer:H,ElButton:q,FontAwesomeIcon:S},data(){return{drawer:!1}}}),pe={class:"main flex flex-row flex-1"},fe={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},he={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function _e(e,t,g,r,d,f){const h=s("font-awesome-icon"),_=s("el-button"),m=s("el-drawer");return n(),l("div",pe,[c("div",fe,[C(e.$slots,"config",{},void 0,!0)]),c("div",he,[C(e.$slots,"result",{},void 0,!0)]),a(_,{circle:"",class:"menu",onClick:t[0]||(t[0]=p=>e.drawer=!0)},{default:$(()=>[a(h,{icon:"fa-solid fa-magic"})]),_:1}),a(m,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=p=>e.drawer=p),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:$(()=>[C(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ge=y(me,[["render",_e],["__scopeId","data-v-9fbc8a5c"]]),be="",$e=k({name:"PromptInput",components:{ElInput:x,InfoIcon:U},computed:{prompt:{get(){return this.$store.state.nanobanana?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=be)}}),ve={class:"field"},ke={class:"box"},ye={class:"title font-bold"};function we(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-input");return n(),l("div",ve,[c("div",ke,[c("h2",ye,o(e.$t("nanobanana.name.prompt")),1),a(h,{content:e.$t("nanobanana.description.prompt"),class:"info"},null,8,["content"])]),a(_,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=m=>e.prompt=m),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("nanobanana.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const Ae=y($e,[["render",we],["__scopeId","data-v-2331e197"]]),Ve=k({name:"ImageUrlsInput",components:{ElUpload:K,ElButton:q,InfoIcon:U,ImagePreview:W,FontAwesomeIcon:S},mixins:[se],data(){return{fileList:[],uploadUrl:Z()+"/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){const r=(this.fileList||[]).filter(d=>!d?.response?.file_url);this.fileList=r.length?r:[];return}const t=[];e.forEach(r=>{const d=this.fileList.find(f=>f?.response?.file_url===r||f?.url===r);d?t.push(d):t.push({name:r.split("/").pop()||r,url:r,status:"success",percentage:100,response:{file_url:r}})}),(this.fileList||[]).filter(r=>!r?.response?.file_url).forEach(r=>{t.some(f=>f===r||f?.url===r?.url||f?.response?.file_url===r?.response?.file_url)||t.push(r)}),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(){E.warning(this.$t("nanobanana.message.uploadImageExceed"))},onError(){E.error(this.$t("nanobanana.message.uploadImageError"))},onSetImageUrls(){const 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()}}}),Ne={class:"field flex items-center justify-between"},Re={class:"title font-bold text-[14px] mb-[10px]"},Ee={class:"upload-wrapper flex flex-col items-start gap-[8px]"},Ie={class:"controls flex items-center"},Le={class:"file-list flex flex-wrap gap-[10px]"};function Te(e,t,g,r,d,f){const h=s("font-awesome-icon"),_=s("el-button"),m=s("el-upload"),p=s("info-icon"),w=s("image-preview");return n(),l(A,null,[c("div",Ne,[c("h2",Re,o(e.$t("nanobanana.name.imageUrls")),1),c("div",Ee,[c("div",Ie,[a(m,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=i=>e.fileList=i),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",class:"value",limit:5,multiple:!0,"show-file-list":!1,action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,"on-change":e.onChange,"on-remove":e.onRemove,headers:e.headers},{default:$(()=>[a(_,{size:"small",type:"primary",round:""},{default:$(()=>[a(h,{icon:"fa-solid fa-upload",class:"mr-1"}),u(" "+o(e.$t("nanobanana.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","on-change","on-remove","headers"]),a(p,{content:e.$t("nanobanana.description.imageUrls"),class:"ml-2"},null,8,["content"])])])]),c("div",Le,[(n(!0),l(A,null,N(e.fileList,(i,v)=>(n(),V(w,{key:i.uid||i?.response?.file_url||i.url||v,url:i.url||i?.response?.file_url,name:i.name,percentage:i.percentage,onRemove:R=>e.onRemovePreview(v,i)},null,8,["url","name","percentage","onRemove"]))),128))])],64)}const Se=y(Ve,[["render",Te]]),qe=k({name:"AspectRatioSelector",components:{ElSelect:M,ElOption:B},data(){return{options:["1:1","3:2","2:3","16:9","9:16","4:3","3:4"]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.aspect_ratio},set(e){console.debug("set aspect_ratio",e);const t={...this.$store.state.nanobanana?.config||{}};e?t.aspect_ratio=e:delete t.aspect_ratio,this.$store.commit("nanobanana/setConfig",t)}}}}),Oe={class:"field"},Ue={class:"title font-bold"};function Ce(e,t,g,r,d,f){const h=s("el-option"),_=s("el-select");return n(),l("div",Oe,[c("h2",Ue,o(e.$t("nanobanana.name.aspectRatio")),1),a(_,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=m=>e.value=m),class:"value",clearable:"",placeholder:e.$t("nanobanana.placeholder.select")},{default:$(()=>[(n(!0),l(A,null,N(e.options,m=>(n(),V(h,{key:m,label:m,value:m},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Pe=y(qe,[["render",Ce],["__scopeId","data-v-67f08a08"]]),Be=k({name:"NanobananaModelSelector",components:{ElSelect:M,ElOption:B,InfoIcon:U},data(){return{options:[{value:z,label:this.$t("nanobanana.model.nanoBanana")},{value:P,label:this.$t("nanobanana.model.nanoBananaPro")},{value:te,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||(this.value=ee)}}),Me={class:"field"},Ge={class:"label"},je={class:"box"},De={class:"title font-bold"};function Fe(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-option"),m=s("el-select");return n(),l("div",Me,[c("div",Ge,[c("div",je,[c("h2",De,o(e.$t("nanobanana.name.model")),1),a(h,{content:e.modelDescription,class:"info"},null,8,["content"])])]),a(m,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"value",placeholder:e.$t("nanobanana.placeholder.select")},{default:$(()=>[(n(!0),l(A,null,N(e.options,p=>(n(),V(_,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const ze=y(Be,[["render",Fe],["__scopeId","data-v-94304d73"]]),We=k({name:"NanobananaResolutionSelector",components:{ElSelect:M,ElOption:B,InfoIcon:U},data(){return{cachedResolution:T,options:[{value:G,label:G},{value:j,label:j},{value:D,label:D}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.resolution},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:e})}},isProModel(){return this.$store.state.nanobanana?.config?.model!==z}},watch:{value(e){this.isProModel&&e&&(this.cachedResolution=e)},isProModel(e){e?this.value||(this.value=this.cachedResolution||T):(this.value&&(this.cachedResolution=this.value),this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}},mounted(){this.isProModel&&!this.value&&(this.value=T),!this.isProModel&&this.value&&(this.cachedResolution=this.value,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}}),He={class:"field"},xe={class:"label"},Ke={class:"box"},Je={class:"title font-bold"};function Qe(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-option"),m=s("el-select");return n(),l("div",He,[c("div",xe,[c("div",Ke,[c("h2",Je,o(e.$t("nanobanana.name.resolution")),1),a(h,{content:e.$t("nanobanana.description.resolutionProOnly"),class:"info"},null,8,["content"])])]),a(m,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"value",placeholder:e.$t("nanobanana.placeholder.select"),disabled:!e.isProModel},{default:$(()=>[(n(!0),l(A,null,N(e.options,p=>(n(),V(_,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled"])])}const Xe=y(We,[["render",Qe],["__scopeId","data-v-fd5ab393"]]),Ye=k({name:"ConfigPanel",components:{ElButton:q,FontAwesomeIcon:S,PromptInput:Ae,Consumption:le,ImageUrlsInput:Se,AspectRatioSelector:Pe,ModelSelector:ze,ResolutionSelector:Xe},emits:["generate"],computed:{config(){return this.$store.state.nanobanana?.config},consumption(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;return re({...e,action:t?"edit":"generate"},this.service?.cost)},service(){return this.$store.state.nanobanana?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Ze={class:"flex flex-col h-full"},et={class:"flex-1 overflow-y-auto p-5"},tt={class:"flex flex-col items-center justify-center px-5 pb-5"};function at(e,t,g,r,d,f){const h=s("model-selector"),_=s("resolution-selector"),m=s("prompt-input"),p=s("aspect-ratio-selector"),w=s("image-urls-input"),i=s("consumption"),v=s("font-awesome-icon"),R=s("el-button");return n(),l("div",Ze,[c("div",et,[a(h,{class:"mb-4"}),a(_,{class:"mb-4"}),a(m,{class:"mb-4"}),a(p,{class:"mb-4"}),a(w,{class:"mb-4"})]),c("div",tt,[a(i,{value:e.consumption,service:e.service},null,8,["value","service"]),a(R,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:$(()=>[a(v,{icon:"fa-solid fa-magic",class:"mr-2"}),u(" "+o(e.$t("nanobanana.button.generate")),1)]),_:1},8,["onClick"])])])}const ot=y(Ye,[["render",at]]),nt=k({name:"TaskPreview",components:{ElImage:X,CopyToClipboard:ie,FontAwesomeIcon:S,ElAlert:Q,ImageWrapper:ce,ElButton:q,ElTooltip:J,ImagePreview:W},props:{modelValue:{type:Object,required:!0}},computed:{images(){const e=[];return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(t=>{e.push(t)}),e}},methods:{onEdit(e){if(!e)return;console.debug("Edit image:",e);const t={...this.$store.state.nanobanana?.config||{}};delete t.action,t.image_urls=[e],this.$store.commit("nanobanana/setConfig",t)}}}),st={class:"preview"},lt={class:"left"},rt={class:"main"},it={class:"bot"},ct={class:"datetime"},ut={class:"info"},dt={key:0,class:"flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto"},mt={key:1,class:"prompt mt-2"},pt={key:0},ft={key:0,class:O({content:!0,failed:!0})},ht={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},_t={class:O({operations:!0,"mt-2":!0,"mb-2":!0})},gt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},bt={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={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"},yt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},wt={key:1,class:O({content:!0})},At={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"},Nt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Rt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Et={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},It={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Lt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Tt={key:2,class:O({content:!0})},St={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},qt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ot={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ut={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ct={class:"text-[var(--el-text-color-regular)] text-xs mb-2"};function Pt(e,t,g,r,d,f){const h=s("el-image"),_=s("image-preview"),m=s("image-wrapper"),p=s("el-button"),w=s("el-tooltip"),i=s("font-awesome-icon"),v=s("copy-to-clipboard"),R=s("el-alert");return n(),l("div",st,[c("div",lt,[a(h,{src:"https://cdn.acedata.cloud/859plc.jpg",class:"avatar"})]),c("div",rt,[c("div",it,[u(o(e.$t("nanobanana.name.nanobananaBot"))+" ",1),c("span",ct,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),c("div",ut,[e.modelValue?.request?.image_urls&&e.modelValue?.request?.image_urls.length>0?(n(),l("div",dt,[(n(!0),l(A,null,N(e.modelValue?.request?.image_urls,(I,L)=>(n(),V(_,{key:L,url:I,name:`image-${L+1}`,closable:!1},null,8,["url","name"]))),128))])):b("",!0),e.modelValue?.request?.prompt?(n(),l("p",mt,[u(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?b("",!0):(n(),l("span",pt," - ("+o(e.$t("nanobanana.status.pending"))+") ",1))])):b("",!0)]),e.modelValue?.response?.success===!0?(n(),l("div",ft,[c("div",ht,[(n(!0),l(A,null,N(e.images,(I,L)=>(n(),V(m,{key:L,src:I?.image_url,"raw-src":I?.image_url},null,8,["src","raw-src"]))),128))]),c("div",_t,[a(w,{class:"box-item",effect:"dark",content:e.$t("common.button.edit"),placement:"top-start"},{default:$(()=>[a(p,{type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=Y(I=>e.onEdit(e.images?.[0]?.image_url),["stop"]))},{default:$(()=>[u(o(e.$t("common.button.edit")),1)]),_:1})]),_:1},8,["content"])]),a(R,{closable:!1,class:"mt-2 success"},{default:$(()=>[e.modelValue?.request?.model?(n(),l("p",gt,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",bt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",$t,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",vt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",kt,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),l("p",yt,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(v,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):b("",!0)]),_:1})])):e.modelValue?.response?.success===!1?(n(),l("div",wt,[a(R,{closable:!1,class:"failure"},{template:$(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failure")),1)]),default:$(()=>[e.modelValue?.request?.model?(n(),l("p",At,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",Vt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Nt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",Rt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",Et,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),c("p",It,[a(i,{icon:"fa-solid fa-circle-info",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failureReason"))+": "+o(e.modelValue?.response?.error?.message)+" ",1),a(v,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),l("p",Lt,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(v,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])):b("",!0)]),_:1})])):(n(),l("div",Tt,[a(R,{closable:!1,class:"info"},{template:$(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failure")),1)]),default:$(()=>[e.modelValue?.request?.model?(n(),l("p",St,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",qt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Ot,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",Ut,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",Ct,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})]))])])}const Bt=y(nt,[["render",Pt],["__scopeId","data-v-72e2ec32"]]),Mt=k({name:"RecentPanel",components:{TaskPreview:Bt,BotPlaceholder:ue,NoTasks:de,ScrollList:ne},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?.()}}}),Gt={key:0},jt={key:2,class:"w-full h-full flex items-center justify-center"};function Dt(e,t,g,r,d,f){const h=s("bot-placeholder"),_=s("task-preview"),m=s("scroll-list"),p=s("no-tasks");return n(),l(A,null,[e.tasks?.items===void 0?(n(),l("div",Gt,[a(h)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),V(m,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:t[0]||(t[0]=w=>e.$emit("reach-top"))},{default:$(()=>[(n(!0),l(A,null,N(e.tasks?.items,w=>(n(),V(_,{key:w.id,"model-value":w},null,8,["model-value"]))),128))]),_:1},8,["loading"])):b("",!0),e.tasks?.items?.length===0?(n(),l("div",jt,[a(p)])):b("",!0)],64)}const Ft=y(Mt,[["render",Dt]]),zt="https://webhook.acedata.cloud/nanobanana",Wt=k({name:"NanobananaIndex",components:{ConfigPanel:ot,Layout:ge,RecentPanel:Ft},inject:["initialized"],data(){return{task:void 0,job:0,loading:!1}},computed:{applicationsLoading(){return this.$store.state.nanobanana?.status?.getApplications===F.Request},tasksLoading(){return this.$store.state.nanobanana?.status?.getTasks===F.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(){if(console.debug("reached top"),this.loading||this.tasksLoading)return;const e=this.tasks?.total,t=this.tasks?.items?.length||0;if(e!==void 0&&e<=t)return;const g=this.tasks?.items?.[0];if(!g?.created_at)return;const d=this.$refs.recentPanel?.getScrollElement?.(),f=d?.scrollHeight||0,h=d?.scrollTop||0;this.loading=!0;try{if(await this.onGetTasks({createdAtMax:g.created_at}),await this.$nextTick(),d){const _=d.scrollHeight;d.scrollTop=_-f+h}}finally{this.loading=!1}},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();const 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);const{limit:t=20,createdAtMin:g,createdAtMax:r}=e||{};console.debug("limit",t,"createdAtMin",g,"createdAtMax",r),await this.$store.dispatch("nanobanana/getTasks",{limit:t,createdAtMin:g,createdAtMax:r})},async onGenerate(){const 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,e?.model!==P&&"resolution"in e&&delete e.resolution,e?.model===P&&!e?.resolution&&(e.resolution=T);const g={...e,action:t?"edit":"generate",callback_url:zt},r=this.credential?.token;if(!r){console.error("no token specified");return}E.info(this.$t("nanobanana.message.startingTask")),ae.generate(g,{token:r}).then(()=>{E.success(this.$t("nanobanana.message.startTaskSuccess"))}).catch(d=>{const f=d?.response?.data;f?.error?.code===oe?E.error(this.$t("nanobanana.message.usedUp")):E.error(this.$t("nanobanana.message.startTaskFailed")+(f?.error?.message||""))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Ht(e,t,g,r,d,f){const h=s("config-panel"),_=s("recent-panel"),m=s("layout");return n(),V(m,null,{config:$(()=>[a(h,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:$(()=>[a(_,{ref:"recentPanel",loading:e.loading,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const ua=y(Wt,[["render",Ht]]);export{ua as default};