@acedatacloud/nexior 3.26.2 → 3.28.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 (172) hide show
  1. package/dist/assets/{Auth-DcpGIqwi.js → Auth-CKgx69lg.js} +1 -1
  2. package/dist/assets/{BotPlaceholder-Drm6xiuT.js → BotPlaceholder-BA4i65l4.js} +1 -1
  3. package/dist/assets/{Callback-REiOMkuD.js → Callback-CQUelAiG.js} +1 -1
  4. package/dist/assets/Console-Dl4hlofP.js +1 -0
  5. package/dist/assets/Conversation-JdOWk9fk.js +2 -0
  6. package/dist/assets/{CopyToClipboard-CBliPgeP.js → CopyToClipboard-BqFSadU9.js} +1 -1
  7. package/dist/assets/{Detail-Dnd4Nd0T.js → Detail-CnRTBwJJ.js} +1 -1
  8. package/dist/assets/{EditArray-KYrcEW6W.js → EditArray-CBm5KJ-K.js} +1 -1
  9. package/dist/assets/Extra-DnJrYfev.js +1 -0
  10. package/dist/assets/FilePreview-BBdjPKEP.js +1 -0
  11. package/dist/assets/{History-CeaaKZfy.js → History-c2ENkbMd.js} +1 -1
  12. package/dist/assets/{ImagePreview-BnQhS1sy.js → ImagePreview-CGACVsa5.js} +1 -1
  13. package/dist/assets/{ImageWrapper-LkV6h7vR.js → ImageWrapper-un-KLqfT.js} +1 -1
  14. package/dist/assets/{Index-DhUCvaCi.js → Index-2k3Mx99m.js} +1 -1
  15. package/dist/assets/{Index-CLEC89Jo.js → Index-B_4HK3Aa.js} +1 -1
  16. package/dist/assets/{Index-BPs_CTLK.js → Index-B_ZTe-X9.js} +1 -1
  17. package/dist/assets/{Index-BWPDDqlj.js → Index-BjcHYTxP.js} +1 -1
  18. package/dist/assets/Index-BnfIxLqg.js +1 -0
  19. package/dist/assets/{Index-6xzU8HJN.js → Index-BoRIPlmI.js} +1 -1
  20. package/dist/assets/Index-BuWsdzqC.css +1 -0
  21. package/dist/assets/{Index-CqoL0s33.js → Index-BuecK55z.js} +1 -1
  22. package/dist/assets/{Index-DC_YoIhM.js → Index-BxGDNe0H.js} +1 -1
  23. package/dist/assets/Index-CScLeGbw.js +1 -0
  24. package/dist/assets/{Index-xa7bNKA9.js → Index-Cbe8yM6k.js} +1 -1
  25. package/dist/assets/{Index-CLBa1eAb.js → Index-Cf_9AsIJ.js} +1 -1
  26. package/dist/assets/{Index-CaI6zBZ3.js → Index-Cr59hhnT.js} +1 -1
  27. package/dist/assets/Index-DICPM4zM.css +1 -0
  28. package/dist/assets/Index-DRfMbnUx.css +1 -0
  29. package/dist/assets/{Index-DjI-ZL96.js → Index-DrjNWPyQ.js} +1 -1
  30. package/dist/assets/{Index-E1wsWno5.js → Index-DsQw14S4.js} +1 -1
  31. package/dist/assets/{Index-CRTcv7xy.js → Index-KY3i1fI4.js} +1 -1
  32. package/dist/assets/{Index-B17LFoFo.js → Index-MhhxeK5x.js} +1 -1
  33. package/dist/assets/Index-RYUTR7xN.js +1 -0
  34. package/dist/assets/{Index-VAxSP8lV.js → Index-bASnRn4N.js} +1 -1
  35. package/dist/assets/{Invitees-BdKbK4gL.js → Invitees-DIKvvhGa.js} +1 -1
  36. package/dist/assets/{List-DURh04Gf.js → List-CjwJw7FD.js} +1 -1
  37. package/dist/assets/{List-4_OW5KaJ.js → List-ClAjNyDW.js} +1 -1
  38. package/dist/assets/List-D0uTUiwL.js +1 -0
  39. package/dist/assets/Main-CfA2RB2w.js +1 -0
  40. package/dist/assets/Navigator-BV1q9HcH.js +1 -0
  41. package/dist/assets/{Navigator-uXDelqaG.css → Navigator-YFB2f3eV.css} +1 -1
  42. package/dist/assets/{NoTasks-3Z1b05wG.js → NoTasks-DjsZiiOP.js} +1 -1
  43. package/dist/assets/{Pagination-DXYXr-Qm.js → Pagination-BpYLj791.js} +1 -1
  44. package/dist/assets/{ScrollList-BkRXLc_a.js → ScrollList-CZI70Mqs.js} +1 -1
  45. package/dist/assets/Status-C8yB_Nxb.js +1 -0
  46. package/dist/assets/Subscribe-DUkTgiWZ.js +1 -0
  47. package/dist/assets/{VideoPlayer-Ci_7fcAo.js → VideoPlayer-B9VH6gxB.js} +1 -1
  48. package/dist/assets/common-BI0LhzSA.js +1 -0
  49. package/dist/assets/common-BZm0QYo9.js +1 -0
  50. package/dist/assets/common-B_PmT7TM.js +1 -0
  51. package/dist/assets/common-Bcx_BuZz.js +1 -0
  52. package/dist/assets/common-BeAEyklZ.js +1 -0
  53. package/dist/assets/{common-Bj1QcGsP.js → common-BjxSss9r.js} +1 -1
  54. package/dist/assets/common-C4PrbbM4.js +1 -0
  55. package/dist/assets/common-CDLAbQQ3.js +1 -0
  56. package/dist/assets/common-CGNSiMOk.js +1 -0
  57. package/dist/assets/common-CH8h4IdQ.js +1 -0
  58. package/dist/assets/common-CILlPjke.js +1 -0
  59. package/dist/assets/common-CWvsYwT3.js +1 -0
  60. package/dist/assets/{common-C9eXfUEo.js → common-CogTVkeR.js} +1 -1
  61. package/dist/assets/common-DF-bVCeJ.js +1 -0
  62. package/dist/assets/common-DMKFGH3m.js +1 -0
  63. package/dist/assets/common-DWvZ0iLq.js +1 -0
  64. package/dist/assets/common-Dor4ISLG.js +1 -0
  65. package/dist/assets/common-opQd1j77.js +1 -0
  66. package/dist/assets/{distribution-zXeAGkCu.js → distribution-D2uFDwGl.js} +1 -1
  67. package/dist/assets/index-wwpmx6zW.js +3 -0
  68. package/dist/assets/{order-CCQxecEz.js → order-D3C49qOJ.js} +1 -1
  69. package/dist/assets/{price-7kPhVK1M.js → price-BhobpaMO.js} +1 -1
  70. package/dist/assets/seedance-AnsihtIj.js +1 -0
  71. package/dist/assets/seedance-B6dBTNgm.js +1 -0
  72. package/dist/assets/seedance-B6f4XmIA.js +1 -0
  73. package/dist/assets/seedance-B8F_qZdM.js +1 -0
  74. package/dist/assets/seedance-BDqaGwRr.js +1 -0
  75. package/dist/assets/seedance-BE7oMOQE.js +1 -0
  76. package/dist/assets/seedance-BrPtBqgE.js +1 -0
  77. package/dist/assets/seedance-BretSuo5.js +1 -0
  78. package/dist/assets/seedance-Byj_hTQM.js +1 -0
  79. package/dist/assets/seedance-CXmwBwwO.js +1 -0
  80. package/dist/assets/seedance-D-azcSOL.js +1 -0
  81. package/dist/assets/seedance-D6T3LEXH.js +1 -0
  82. package/dist/assets/seedance-DBsvf-IB.js +1 -0
  83. package/dist/assets/seedance-DKyDfWeT.js +1 -0
  84. package/dist/assets/seedance-DrsmZxns.js +1 -0
  85. package/dist/assets/seedance-EU03IQt8.js +1 -0
  86. package/dist/assets/seedance-She0JWii.js +1 -0
  87. package/dist/assets/seedance-b_hRKF1n.js +1 -0
  88. package/dist/assets/seedance-yK0TntAo.js +1 -0
  89. package/dist/assets/seedream-9HGQrnmQ.js +1 -0
  90. package/dist/assets/seedream-BEQqbfFP.js +1 -0
  91. package/dist/assets/seedream-BJvUKBMX.js +1 -0
  92. package/dist/assets/seedream-BzuZ9hds.js +1 -0
  93. package/dist/assets/seedream-C6rINsxU.js +1 -0
  94. package/dist/assets/seedream-C8bJfp7Y.js +1 -0
  95. package/dist/assets/seedream-CffIOH3S.js +1 -0
  96. package/dist/assets/seedream-CgXKrCnZ.js +1 -0
  97. package/dist/assets/seedream-D05SQiHI.js +1 -0
  98. package/dist/assets/seedream-DCfjNk41.js +1 -0
  99. package/dist/assets/seedream-DLhhcuXI.js +1 -0
  100. package/dist/assets/seedream-DNZIPdbv.js +1 -0
  101. package/dist/assets/seedream-DPAubfF6.js +1 -0
  102. package/dist/assets/seedream-DS_yjXKY.js +1 -0
  103. package/dist/assets/seedream-D_xiuCd2.js +1 -0
  104. package/dist/assets/seedream-Dpkzm6Hz.js +1 -0
  105. package/dist/assets/seedream-U4U12u73.js +1 -0
  106. package/dist/assets/seedream-Vmqg9HQO.js +1 -0
  107. package/dist/assets/site-4iqz8_DA.js +1 -0
  108. package/dist/assets/site-55ppI4T-.js +1 -0
  109. package/dist/assets/site-BOvSZod0.js +1 -0
  110. package/dist/assets/site-BToY4pDJ.js +1 -0
  111. package/dist/assets/site-BbiBmtgk.js +1 -0
  112. package/dist/assets/site-BjefqfUj.js +1 -0
  113. package/dist/assets/site-BjfA71I2.js +1 -0
  114. package/dist/assets/site-Btp5Ha7f.js +1 -0
  115. package/dist/assets/site-BwCaBH7a.js +1 -0
  116. package/dist/assets/site-BzBwAuD5.js +1 -0
  117. package/dist/assets/site-CMUQEyEt.js +1 -0
  118. package/dist/assets/site-Co5l2JxL.js +1 -0
  119. package/dist/assets/site-D47nORF0.js +1 -0
  120. package/dist/assets/site-DKlIZ3ul.js +1 -0
  121. package/dist/assets/site-Dh1MiTgO.js +1 -0
  122. package/dist/assets/site-cRD3uvaR.js +1 -0
  123. package/dist/assets/site-lF_qw_wu.js +1 -0
  124. package/dist/assets/site-ngPqPggL.js +1 -0
  125. package/dist/index.html +1 -1
  126. package/package.json +1 -1
  127. package/dist/assets/Console-BrjF9_It.js +0 -1
  128. package/dist/assets/Conversation-Clf-3NQi.js +0 -2
  129. package/dist/assets/Extra-y_XywERF.js +0 -1
  130. package/dist/assets/FilePreview-Bz-RkJBC.js +0 -1
  131. package/dist/assets/Index-CZVUVmvo.css +0 -1
  132. package/dist/assets/Index-DcyyV6Sz.js +0 -1
  133. package/dist/assets/List-B9hq6lUq.js +0 -1
  134. package/dist/assets/Main-F_4zsEk0.js +0 -1
  135. package/dist/assets/Navigator-CGT5cZ47.js +0 -1
  136. package/dist/assets/Status-D-2VRcqL.js +0 -1
  137. package/dist/assets/Subscribe-B5VcnrBh.js +0 -1
  138. package/dist/assets/common-B-EGiyep.js +0 -1
  139. package/dist/assets/common-B_8azNNB.js +0 -1
  140. package/dist/assets/common-BjCDdbb-.js +0 -1
  141. package/dist/assets/common-BkT5tE0t.js +0 -1
  142. package/dist/assets/common-C-IzjSKC.js +0 -1
  143. package/dist/assets/common-CRr8UPV-.js +0 -1
  144. package/dist/assets/common-CSbTh7Es.js +0 -1
  145. package/dist/assets/common-CnDyLF8c.js +0 -1
  146. package/dist/assets/common-CpvsNb6Z.js +0 -1
  147. package/dist/assets/common-DCBdMh4C.js +0 -1
  148. package/dist/assets/common-DEzGcp3u.js +0 -1
  149. package/dist/assets/common-Dfjl8VXX.js +0 -1
  150. package/dist/assets/common-DgsCAY9A.js +0 -1
  151. package/dist/assets/common-giBfYpVG.js +0 -1
  152. package/dist/assets/common-ifG7Jngn.js +0 -1
  153. package/dist/assets/common-oJuxEHvM.js +0 -1
  154. package/dist/assets/index-Dn72Szn0.js +0 -3
  155. package/dist/assets/site-30as7Eeg.js +0 -1
  156. package/dist/assets/site-BAkQ9Ebj.js +0 -1
  157. package/dist/assets/site-BGJJwm3f.js +0 -1
  158. package/dist/assets/site-BQAPnMQd.js +0 -1
  159. package/dist/assets/site-B_Erv7Zj.js +0 -1
  160. package/dist/assets/site-Bim3ymPz.js +0 -1
  161. package/dist/assets/site-BisuSdQk.js +0 -1
  162. package/dist/assets/site-C-W6v7PI.js +0 -1
  163. package/dist/assets/site-C3e25vk6.js +0 -1
  164. package/dist/assets/site-CMWmjdtE.js +0 -1
  165. package/dist/assets/site-DTaSBDt2.js +0 -1
  166. package/dist/assets/site-Dhz6GeYq.js +0 -1
  167. package/dist/assets/site-Dp9WkF7a.js +0 -1
  168. package/dist/assets/site-PQi6t6Pz.js +0 -1
  169. package/dist/assets/site-PmEEuVq1.js +0 -1
  170. package/dist/assets/site-cZxo4Kq3.js +0 -1
  171. package/dist/assets/site-gT_romL1.js +0 -1
  172. package/dist/assets/site-up7No6yR.js +0 -1
@@ -1 +1 @@
1
- import{bG as q}from"./vendor-BVnhgPs4.js";import{o as U,N as W,p as H,q as K,r as I,J as B,K as G,n as x,B as J,i as Y}from"./vendor-element-plus-BUOzLm6W.js";import{d as k,c as l,a as c,l as a,P,S as $,al as s,o as n,Z as o,Y as u,F as V,ai as N,R as A,W as f,V as C,a1 as Z}from"./vendor-vue-Bb02XvLT.js";import{_ as y,S as Q,bB as X,bC as ee,bD as T,bE as S,bF as M,bG as j,bH as D,bI as te,a6 as ae,a3 as F}from"./index-Dn72Szn0.js";import{I as O,S as oe}from"./ScrollList-BkRXLc_a.js";import{I as z}from"./ImagePreview-BnQhS1sy.js";import{C as ne,N as se}from"./NoTasks-3Z1b05wG.js";import{a as le}from"./price-7kPhVK1M.js";import{C as re}from"./CopyToClipboard-CBliPgeP.js";import{I as ie}from"./ImageWrapper-LkV6h7vR.js";import{B as ce}from"./BotPlaceholder-Drm6xiuT.js";import"./vendor-dayjs-C40ROiFS.js";import"./vendor-katex-DHBGsivc.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";const ue=k({name:"LayoutNanobanana",components:{ElDrawer:W,ElButton:U,FontAwesomeIcon:q},data(){return{drawer:!1}}}),de={class:"main flex flex-row flex-1"},me={class:"config w-[300px] h-full overflow-y-scroll border-r border-[var(--el-border-color)]"},pe={class:"result h-full p-[15px] flex-1 flex flex-col"};function fe(e,t,b,r,d,h){const _=s("font-awesome-icon"),g=s("el-button"),m=s("el-drawer");return n(),l("div",de,[c("div",me,[P(e.$slots,"config",{},void 0,!0)]),c("div",pe,[P(e.$slots,"result",{},void 0,!0)]),a(g,{circle:"",class:"menu",onClick:t[0]||(t[0]=p=>e.drawer=!0)},{default:$(()=>[a(_,{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:$(()=>[P(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const he=y(ue,[["render",fe],["__scopeId","data-v-3794959b"]]),_e="",ge=k({name:"PromptInput",components:{ElInput:H,InfoIcon:O},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=_e)}}),be={class:"field"},$e={class:"box"},ve={class:"title font-bold"};function ke(e,t,b,r,d,h){const _=s("info-icon"),g=s("el-input");return n(),l("div",be,[c("div",$e,[c("h2",ve,o(e.$t("nanobanana.name.prompt")),1),a(_,{content:e.$t("nanobanana.description.prompt"),class:"info"},null,8,["content"])]),a(g,{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"),maxlength:300,"show-word-limit":""},null,8,["modelValue","placeholder"])])}const ye=y(ge,[["render",ke],["__scopeId","data-v-38b040ab"]]),we=k({name:"ImageUrlsInput",components:{ElUpload:K,ElButton:U,InfoIcon:O,ImagePreview:z,FontAwesomeIcon:q},data(){return{fileList:[],uploadUrl:Q()+"/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(h=>h?.response?.file_url===r||h?.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(h=>h===r||h?.url===r?.url||h?.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(){I.warning(this.$t("nanobanana.message.uploadImageExceed"))},onError(){I.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()}}}),Ve={class:"field flex items-center justify-between"},Ae={class:"title font-bold text-[14px] mb-[10px]"},Ne={class:"upload-wrapper flex flex-col items-start gap-[8px]"},Re={class:"controls flex items-center"},Ie={class:"file-list flex flex-wrap gap-[10px]"};function Ee(e,t,b,r,d,h){const _=s("font-awesome-icon"),g=s("el-button"),m=s("el-upload"),p=s("info-icon"),w=s("image-preview");return n(),l(V,null,[c("div",Ve,[c("h2",Ae,o(e.$t("nanobanana.name.imageUrls")),1),c("div",Ne,[c("div",Re,[a(m,{"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(g,{size:"small",type:"primary",round:""},{default:$(()=>[a(_,{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",Ie,[(n(!0),l(V,null,N(e.fileList,(i,v)=>(n(),A(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 Le=y(we,[["render",Ee]]),Se=k({name:"AspectRatioSelector",components:{ElSelect:G,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)}}}}),Te={class:"field"},qe={class:"title font-bold"};function Ue(e,t,b,r,d,h){const _=s("el-option"),g=s("el-select");return n(),l("div",Te,[c("h2",qe,o(e.$t("nanobanana.name.aspectRatio")),1),a(g,{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(V,null,N(e.options,m=>(n(),A(_,{key:m,label:m,value:m},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ce=y(Se,[["render",Ue],["__scopeId","data-v-67f08a08"]]),Oe=k({name:"NanobananaModelSelector",components:{ElSelect:G,ElOption:B,InfoIcon:O},data(){return{options:[{value:ee,label:this.$t("nanobanana.model.nanoBanana")},{value:T,label:this.$t("nanobanana.model.nanoBananaPro")}]}},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=X)}}),Pe={class:"field"},Be={class:"label"},Ge={class:"box"},Me={class:"title font-bold"};function je(e,t,b,r,d,h){const _=s("info-icon"),g=s("el-option"),m=s("el-select");return n(),l("div",Pe,[c("div",Be,[c("div",Ge,[c("h2",Me,o(e.$t("nanobanana.name.model")),1),a(_,{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(V,null,N(e.options,p=>(n(),A(g,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const De=y(Oe,[["render",je],["__scopeId","data-v-e279ee32"]]),Fe=k({name:"NanobananaResolutionSelector",components:{ElSelect:G,ElOption:B,InfoIcon:O},data(){return{cachedResolution:S,options:[{value:M,label:M},{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===T}},watch:{value(e){this.isProModel&&e&&(this.cachedResolution=e)},isProModel(e){e?this.value||(this.value=this.cachedResolution||S):(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=S),!this.isProModel&&this.value&&(this.cachedResolution=this.value,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}}),ze={class:"field"},We={class:"label"},He={class:"box"},Ke={class:"title font-bold"};function xe(e,t,b,r,d,h){const _=s("info-icon"),g=s("el-option"),m=s("el-select");return n(),l("div",ze,[c("div",We,[c("div",He,[c("h2",Ke,o(e.$t("nanobanana.name.resolution")),1),a(_,{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(V,null,N(e.options,p=>(n(),A(g,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled"])])}const Je=y(Fe,[["render",xe],["__scopeId","data-v-05ae87bb"]]),Ye=k({name:"ConfigPanel",components:{ElButton:U,FontAwesomeIcon:q,PromptInput:ye,Consumption:ne,ImageUrlsInput:Le,AspectRatioSelector:Ce,ModelSelector:De,ResolutionSelector:Je},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 le({...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"},Qe={class:"flex-1 overflow-y-auto p-[15px]"},Xe={class:"flex flex-col items-center justify-center px-[15px] pb-[15px]"};function et(e,t,b,r,d,h){const _=s("model-selector"),g=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",Qe,[a(_,{class:"mb-4"}),a(g,{class:"mb-4"}),a(m,{class:"mb-4"}),a(p,{class:"mb-4"}),a(w,{class:"mb-4"})]),c("div",Xe,[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 tt=y(Ye,[["render",et]]),at=k({name:"TaskPreview",components:{ElImage:Y,CopyToClipboard:re,FontAwesomeIcon:q,ElAlert:J,ImageWrapper:ie,ElButton:U,ElTooltip:x,ImagePreview:z},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)}}}),ot={class:"preview"},nt={class:"left"},st={class:"main"},lt={class:"bot"},rt={class:"datetime"},it={class:"info"},ct={key:0,class:"flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto"},ut={key:1,class:"prompt mt-2"},dt={key:0},mt={key:0,class:C({content:!0,failed:!0})},pt={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},ft={class:C({operations:!0,"mt-2":!0,"mb-2":!0})},ht={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},_t={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},gt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},bt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},$t={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},vt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},kt={key:1,class:C({content:!0})},yt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},wt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Vt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},At={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Nt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Rt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},It={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Et={key:2,class:C({content:!0})},Lt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},St={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Tt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},qt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ut={class:"text-[var(--el-text-color-regular)] text-xs mb-2"};function Ct(e,t,b,r,d,h){const _=s("el-image"),g=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",ot,[c("div",nt,[a(_,{src:"https://cdn.acedata.cloud/859plc.jpg",class:"avatar"})]),c("div",st,[c("div",lt,[u(o(e.$t("nanobanana.name.nanobananaBot"))+" ",1),c("span",rt,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),c("div",it,[e.modelValue?.request?.image_urls&&e.modelValue?.request?.image_urls.length>0?(n(),l("div",ct,[(n(!0),l(V,null,N(e.modelValue?.request?.image_urls,(E,L)=>(n(),A(g,{key:L,url:E,name:`image-${L+1}`,closable:!1},null,8,["url","name"]))),128))])):f("",!0),e.modelValue?.request?.prompt?(n(),l("p",ut,[u(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?f("",!0):(n(),l("span",dt," - ("+o(e.$t("nanobanana.status.pending"))+") ",1))])):f("",!0)]),e.modelValue?.response?.success===!0?(n(),l("div",mt,[c("div",pt,[(n(!0),l(V,null,N(e.images,(E,L)=>(n(),A(m,{key:L,src:E?.image_url,"raw-src":E?.image_url},null,8,["src","raw-src"]))),128))]),c("div",ft,[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]=Z(E=>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",ht,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):f("",!0),e.modelValue?.request?.resolution?(n(),l("p",_t,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):f("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",gt,[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)])):f("",!0),e.modelValue?.request?.action?(n(),l("p",bt,[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)])):f("",!0),c("p",$t,[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",vt,[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"])])):f("",!0)]),_:1})])):f("",!0),e.modelValue?.response?.success===!1?(n(),l("div",kt,[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",yt,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):f("",!0),e.modelValue?.request?.resolution?(n(),l("p",wt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):f("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Vt,[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)])):f("",!0),e.modelValue?.request?.action?(n(),l("p",At,[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)])):f("",!0),c("p",Nt,[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",Rt,[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",It,[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"])])):f("",!0)]),_:1})])):f("",!0),!e.modelValue?.response||!e.modelValue?.response?.data?.[0]?.image_url?(n(),l("div",Et,[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",Lt,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):f("",!0),e.modelValue?.request?.resolution?(n(),l("p",St,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):f("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Tt,[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)])):f("",!0),e.modelValue?.request?.action?(n(),l("p",qt,[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)])):f("",!0),c("p",Ut,[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})])):f("",!0)])])}const Ot=y(at,[["render",Ct],["__scopeId","data-v-9e0f580a"]]),Pt=k({name:"RecentPanel",components:{TaskPreview:Ot,BotPlaceholder:ce,NoTasks:se,ScrollList:oe},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?.()}}}),Bt={key:0},Gt={key:2,class:"w-full h-full flex items-center justify-center"};function Mt(e,t,b,r,d,h){const _=s("bot-placeholder"),g=s("task-preview"),m=s("scroll-list"),p=s("no-tasks");return n(),l(V,null,[e.tasks?.items===void 0?(n(),l("div",Bt,[a(_)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),A(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(V,null,N(e.tasks?.items,w=>(n(),A(g,{key:w.id,"model-value":w},null,8,["model-value"]))),128))]),_:1},8,["loading"])):f("",!0),e.tasks?.items?.length===0?(n(),l("div",Gt,[a(p)])):f("",!0)],64)}const jt=y(Pt,[["render",Mt]]),Dt="https://webhook.acedata.cloud/nanobanana",Ft=k({name:"NanobananaIndex",components:{ConfigPanel:tt,Layout:he,RecentPanel:jt},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 b=this.tasks?.items?.[0];if(!b?.created_at)return;const d=this.$refs.recentPanel?.getScrollElement?.(),h=d?.scrollHeight||0,_=d?.scrollTop||0;this.loading=!0;try{if(await this.onGetTasks({createdAtMax:b.created_at}),await this.$nextTick(),d){const g=d.scrollHeight;d.scrollTop=g-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:b,createdAtMax:r}=e||{};console.debug("limit",t,"createdAtMin",b,"createdAtMax",r),await this.$store.dispatch("nanobanana/getTasks",{limit:t,createdAtMin:b,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!==T&&"resolution"in e&&delete e.resolution,e?.model===T&&!e?.resolution&&(e.resolution=S);const b={...e,action:t?"edit":"generate",callback_url:Dt},r=this.credential?.token;if(!r){console.error("no token specified");return}I.info(this.$t("nanobanana.message.startingTask")),te.generate(b,{token:r}).then(()=>{I.success(this.$t("nanobanana.message.startTaskSuccess"))}).catch(d=>{const h=d?.response?.data;h?.error?.code===ae?I.error(this.$t("nanobanana.message.usedUp")):I.error(this.$t("nanobanana.message.startTaskFailed")+(h?.error?.message||""))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function zt(e,t,b,r,d,h){const _=s("config-panel"),g=s("recent-panel"),m=s("layout");return n(),A(m,null,{config:$(()=>[a(_,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:$(()=>[a(g,{ref:"recentPanel",loading:e.loading,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const la=y(Ft,[["render",zt]]);export{la as default};
1
+ import{bG as q}from"./vendor-BVnhgPs4.js";import{o as U,N as W,p as H,q as K,r as I,J as B,K as G,n as x,B as J,i as Y}from"./vendor-element-plus-BUOzLm6W.js";import{d as k,c as l,a as c,l as a,P,S as $,al as s,o as n,Z as o,Y as u,F as V,ai as N,R as A,W as f,V as C,a1 as Z}from"./vendor-vue-Bb02XvLT.js";import{_ as y,U as Q,bD as X,bE as ee,bF as T,bG as S,bH as M,bI as j,bJ as D,bK as te,a8 as ae,a5 as F}from"./index-wwpmx6zW.js";import{I as O,S as oe}from"./ScrollList-CZI70Mqs.js";import{I as z}from"./ImagePreview-CGACVsa5.js";import{C as ne,N as se}from"./NoTasks-DjsZiiOP.js";import{a as le}from"./price-BhobpaMO.js";import{C as re}from"./CopyToClipboard-BqFSadU9.js";import{I as ie}from"./ImageWrapper-un-KLqfT.js";import{B as ce}from"./BotPlaceholder-BA4i65l4.js";import"./vendor-dayjs-C40ROiFS.js";import"./vendor-katex-DHBGsivc.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";const ue=k({name:"LayoutNanobanana",components:{ElDrawer:W,ElButton:U,FontAwesomeIcon:q},data(){return{drawer:!1}}}),de={class:"main flex flex-row flex-1"},me={class:"config w-[300px] h-full overflow-y-scroll border-r border-[var(--el-border-color)]"},pe={class:"result h-full p-[15px] flex-1 flex flex-col"};function fe(e,t,b,r,d,h){const _=s("font-awesome-icon"),g=s("el-button"),m=s("el-drawer");return n(),l("div",de,[c("div",me,[P(e.$slots,"config",{},void 0,!0)]),c("div",pe,[P(e.$slots,"result",{},void 0,!0)]),a(g,{circle:"",class:"menu",onClick:t[0]||(t[0]=p=>e.drawer=!0)},{default:$(()=>[a(_,{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:$(()=>[P(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const he=y(ue,[["render",fe],["__scopeId","data-v-3794959b"]]),_e="",ge=k({name:"PromptInput",components:{ElInput:H,InfoIcon:O},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=_e)}}),be={class:"field"},$e={class:"box"},ve={class:"title font-bold"};function ke(e,t,b,r,d,h){const _=s("info-icon"),g=s("el-input");return n(),l("div",be,[c("div",$e,[c("h2",ve,o(e.$t("nanobanana.name.prompt")),1),a(_,{content:e.$t("nanobanana.description.prompt"),class:"info"},null,8,["content"])]),a(g,{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"),maxlength:300,"show-word-limit":""},null,8,["modelValue","placeholder"])])}const ye=y(ge,[["render",ke],["__scopeId","data-v-38b040ab"]]),we=k({name:"ImageUrlsInput",components:{ElUpload:K,ElButton:U,InfoIcon:O,ImagePreview:z,FontAwesomeIcon:q},data(){return{fileList:[],uploadUrl:Q()+"/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(h=>h?.response?.file_url===r||h?.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(h=>h===r||h?.url===r?.url||h?.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(){I.warning(this.$t("nanobanana.message.uploadImageExceed"))},onError(){I.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()}}}),Ve={class:"field flex items-center justify-between"},Ae={class:"title font-bold text-[14px] mb-[10px]"},Ne={class:"upload-wrapper flex flex-col items-start gap-[8px]"},Re={class:"controls flex items-center"},Ie={class:"file-list flex flex-wrap gap-[10px]"};function Ee(e,t,b,r,d,h){const _=s("font-awesome-icon"),g=s("el-button"),m=s("el-upload"),p=s("info-icon"),w=s("image-preview");return n(),l(V,null,[c("div",Ve,[c("h2",Ae,o(e.$t("nanobanana.name.imageUrls")),1),c("div",Ne,[c("div",Re,[a(m,{"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(g,{size:"small",type:"primary",round:""},{default:$(()=>[a(_,{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",Ie,[(n(!0),l(V,null,N(e.fileList,(i,v)=>(n(),A(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 Le=y(we,[["render",Ee]]),Se=k({name:"AspectRatioSelector",components:{ElSelect:G,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)}}}}),Te={class:"field"},qe={class:"title font-bold"};function Ue(e,t,b,r,d,h){const _=s("el-option"),g=s("el-select");return n(),l("div",Te,[c("h2",qe,o(e.$t("nanobanana.name.aspectRatio")),1),a(g,{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(V,null,N(e.options,m=>(n(),A(_,{key:m,label:m,value:m},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ce=y(Se,[["render",Ue],["__scopeId","data-v-67f08a08"]]),Oe=k({name:"NanobananaModelSelector",components:{ElSelect:G,ElOption:B,InfoIcon:O},data(){return{options:[{value:ee,label:this.$t("nanobanana.model.nanoBanana")},{value:T,label:this.$t("nanobanana.model.nanoBananaPro")}]}},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=X)}}),Pe={class:"field"},Be={class:"label"},Ge={class:"box"},Me={class:"title font-bold"};function je(e,t,b,r,d,h){const _=s("info-icon"),g=s("el-option"),m=s("el-select");return n(),l("div",Pe,[c("div",Be,[c("div",Ge,[c("h2",Me,o(e.$t("nanobanana.name.model")),1),a(_,{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(V,null,N(e.options,p=>(n(),A(g,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const De=y(Oe,[["render",je],["__scopeId","data-v-e279ee32"]]),Fe=k({name:"NanobananaResolutionSelector",components:{ElSelect:G,ElOption:B,InfoIcon:O},data(){return{cachedResolution:S,options:[{value:M,label:M},{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===T}},watch:{value(e){this.isProModel&&e&&(this.cachedResolution=e)},isProModel(e){e?this.value||(this.value=this.cachedResolution||S):(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=S),!this.isProModel&&this.value&&(this.cachedResolution=this.value,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}}),ze={class:"field"},We={class:"label"},He={class:"box"},Ke={class:"title font-bold"};function xe(e,t,b,r,d,h){const _=s("info-icon"),g=s("el-option"),m=s("el-select");return n(),l("div",ze,[c("div",We,[c("div",He,[c("h2",Ke,o(e.$t("nanobanana.name.resolution")),1),a(_,{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(V,null,N(e.options,p=>(n(),A(g,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled"])])}const Je=y(Fe,[["render",xe],["__scopeId","data-v-05ae87bb"]]),Ye=k({name:"ConfigPanel",components:{ElButton:U,FontAwesomeIcon:q,PromptInput:ye,Consumption:ne,ImageUrlsInput:Le,AspectRatioSelector:Ce,ModelSelector:De,ResolutionSelector:Je},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 le({...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"},Qe={class:"flex-1 overflow-y-auto p-[15px]"},Xe={class:"flex flex-col items-center justify-center px-[15px] pb-[15px]"};function et(e,t,b,r,d,h){const _=s("model-selector"),g=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",Qe,[a(_,{class:"mb-4"}),a(g,{class:"mb-4"}),a(m,{class:"mb-4"}),a(p,{class:"mb-4"}),a(w,{class:"mb-4"})]),c("div",Xe,[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 tt=y(Ye,[["render",et]]),at=k({name:"TaskPreview",components:{ElImage:Y,CopyToClipboard:re,FontAwesomeIcon:q,ElAlert:J,ImageWrapper:ie,ElButton:U,ElTooltip:x,ImagePreview:z},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)}}}),ot={class:"preview"},nt={class:"left"},st={class:"main"},lt={class:"bot"},rt={class:"datetime"},it={class:"info"},ct={key:0,class:"flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto"},ut={key:1,class:"prompt mt-2"},dt={key:0},mt={key:0,class:C({content:!0,failed:!0})},pt={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},ft={class:C({operations:!0,"mt-2":!0,"mb-2":!0})},ht={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},_t={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},gt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},bt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},$t={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},vt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},kt={key:1,class:C({content:!0})},yt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},wt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Vt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},At={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Nt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Rt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},It={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Et={key:2,class:C({content:!0})},Lt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},St={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Tt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},qt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ut={class:"text-[var(--el-text-color-regular)] text-xs mb-2"};function Ct(e,t,b,r,d,h){const _=s("el-image"),g=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",ot,[c("div",nt,[a(_,{src:"https://cdn.acedata.cloud/859plc.jpg",class:"avatar"})]),c("div",st,[c("div",lt,[u(o(e.$t("nanobanana.name.nanobananaBot"))+" ",1),c("span",rt,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),c("div",it,[e.modelValue?.request?.image_urls&&e.modelValue?.request?.image_urls.length>0?(n(),l("div",ct,[(n(!0),l(V,null,N(e.modelValue?.request?.image_urls,(E,L)=>(n(),A(g,{key:L,url:E,name:`image-${L+1}`,closable:!1},null,8,["url","name"]))),128))])):f("",!0),e.modelValue?.request?.prompt?(n(),l("p",ut,[u(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?f("",!0):(n(),l("span",dt," - ("+o(e.$t("nanobanana.status.pending"))+") ",1))])):f("",!0)]),e.modelValue?.response?.success===!0?(n(),l("div",mt,[c("div",pt,[(n(!0),l(V,null,N(e.images,(E,L)=>(n(),A(m,{key:L,src:E?.image_url,"raw-src":E?.image_url},null,8,["src","raw-src"]))),128))]),c("div",ft,[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]=Z(E=>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",ht,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):f("",!0),e.modelValue?.request?.resolution?(n(),l("p",_t,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):f("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",gt,[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)])):f("",!0),e.modelValue?.request?.action?(n(),l("p",bt,[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)])):f("",!0),c("p",$t,[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",vt,[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"])])):f("",!0)]),_:1})])):f("",!0),e.modelValue?.response?.success===!1?(n(),l("div",kt,[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",yt,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):f("",!0),e.modelValue?.request?.resolution?(n(),l("p",wt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):f("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Vt,[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)])):f("",!0),e.modelValue?.request?.action?(n(),l("p",At,[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)])):f("",!0),c("p",Nt,[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",Rt,[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",It,[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"])])):f("",!0)]),_:1})])):f("",!0),!e.modelValue?.response||!e.modelValue?.response?.data?.[0]?.image_url?(n(),l("div",Et,[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",Lt,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):f("",!0),e.modelValue?.request?.resolution?(n(),l("p",St,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):f("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Tt,[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)])):f("",!0),e.modelValue?.request?.action?(n(),l("p",qt,[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)])):f("",!0),c("p",Ut,[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})])):f("",!0)])])}const Ot=y(at,[["render",Ct],["__scopeId","data-v-9e0f580a"]]),Pt=k({name:"RecentPanel",components:{TaskPreview:Ot,BotPlaceholder:ce,NoTasks:se,ScrollList:oe},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?.()}}}),Bt={key:0},Gt={key:2,class:"w-full h-full flex items-center justify-center"};function Mt(e,t,b,r,d,h){const _=s("bot-placeholder"),g=s("task-preview"),m=s("scroll-list"),p=s("no-tasks");return n(),l(V,null,[e.tasks?.items===void 0?(n(),l("div",Bt,[a(_)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),A(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(V,null,N(e.tasks?.items,w=>(n(),A(g,{key:w.id,"model-value":w},null,8,["model-value"]))),128))]),_:1},8,["loading"])):f("",!0),e.tasks?.items?.length===0?(n(),l("div",Gt,[a(p)])):f("",!0)],64)}const jt=y(Pt,[["render",Mt]]),Dt="https://webhook.acedata.cloud/nanobanana",Ft=k({name:"NanobananaIndex",components:{ConfigPanel:tt,Layout:he,RecentPanel:jt},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 b=this.tasks?.items?.[0];if(!b?.created_at)return;const d=this.$refs.recentPanel?.getScrollElement?.(),h=d?.scrollHeight||0,_=d?.scrollTop||0;this.loading=!0;try{if(await this.onGetTasks({createdAtMax:b.created_at}),await this.$nextTick(),d){const g=d.scrollHeight;d.scrollTop=g-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:b,createdAtMax:r}=e||{};console.debug("limit",t,"createdAtMin",b,"createdAtMax",r),await this.$store.dispatch("nanobanana/getTasks",{limit:t,createdAtMin:b,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!==T&&"resolution"in e&&delete e.resolution,e?.model===T&&!e?.resolution&&(e.resolution=S);const b={...e,action:t?"edit":"generate",callback_url:Dt},r=this.credential?.token;if(!r){console.error("no token specified");return}I.info(this.$t("nanobanana.message.startingTask")),te.generate(b,{token:r}).then(()=>{I.success(this.$t("nanobanana.message.startTaskSuccess"))}).catch(d=>{const h=d?.response?.data;h?.error?.code===ae?I.error(this.$t("nanobanana.message.usedUp")):I.error(this.$t("nanobanana.message.startTaskFailed")+(h?.error?.message||""))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function zt(e,t,b,r,d,h){const _=s("config-panel"),g=s("recent-panel"),m=s("layout");return n(),A(m,null,{config:$(()=>[a(_,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:$(()=>[a(g,{ref:"recentPanel",loading:e.loading,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const la=y(Ft,[["render",zt]]);export{la as default};
@@ -1 +1 @@
1
- import{bG as L}from"./vendor-BVnhgPs4.js";import{o as R,N as q,J as D,K as O,j as z,q as N,r as E,p as H,n as J,B as K,i as W}from"./vendor-element-plus-BUOzLm6W.js";import{d as g,c as r,a as l,l as t,P as U,S as u,al as s,o as n,Z as a,F as A,ai as G,R as y,V as I,a2 as Y,W as v,Y as h,U as S,_ as T}from"./vendor-vue-Bb02XvLT.js";import{_ as $,b6 as Z,b7 as Q,b8 as X,b9 as x,S as ee,ba as te,a6 as oe,a3 as j}from"./index-Dn72Szn0.js";import{I as P,S as se}from"./ScrollList-BkRXLc_a.js";import{V as B}from"./VideoPlayer-Ci_7fcAo.js";import{I as ne}from"./ImagePreview-BnQhS1sy.js";import{C as ae,N as le}from"./NoTasks-3Z1b05wG.js";import{a as ie}from"./price-7kPhVK1M.js";import{C as re}from"./CopyToClipboard-CBliPgeP.js";import{B as ce}from"./BotPlaceholder-Drm6xiuT.js";import{l as de}from"./pagination-dbPQoMuV.js";import"./vendor-dayjs-C40ROiFS.js";import"./vendor-katex-DHBGsivc.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";const ue=g({name:"LayoutVeo",components:{ElDrawer:q,ElButton:R,FontAwesomeIcon:L},data(){return{drawer:!1}}}),pe={class:"main flex flex-row flex-1"},me={class:"config w-[300px] h-full overflow-y-scroll border-r border-[var(--el-border-color)]"},fe={class:"result h-full p-[15px] flex-1 flex flex-col"};function ve(e,o,m,_,b,k){const c=s("font-awesome-icon"),d=s("el-button"),i=s("el-drawer");return n(),r("div",pe,[l("div",me,[U(e.$slots,"config",{},void 0,!0)]),l("div",fe,[U(e.$slots,"result",{},void 0,!0)]),t(d,{circle:"",class:"menu",onClick:o[0]||(o[0]=w=>e.drawer=!0)},{default:u(()=>[t(c,{icon:"fa-solid fa-magic"})]),_:1}),t(i,{modelValue:e.drawer,"onUpdate:modelValue":o[1]||(o[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 _e=$(ue,[["render",ve],["__scopeId","data-v-cfe3cae3"]]),he=g({name:"ModelSelector",components:{ElSelect:O,ElOption:D},props:{modelValue:{type:String,default:void 0}},emits:["update:modelValue"],data(){return{options:[{value:"veo2-fast",label:"veo2-fast"},{value:"veo3",label:"veo3"},{value:"veo3-fast",label:"veo3-fast"},{value:"veo31-fast",label:"veo31-fast"},{value:"veo31",label:"veo31"},{value:"veo31-fast-ingredient",label:"veo31-fast-ingredient"}]}},computed:{value:{get(){return this.$store.state.veo?.config?.model},set(e){this.$store.commit("veo/setConfig",{...this.$store.state.veo.config,model:e})}}},mounted(){this.value||(this.value=Z)}}),ge={class:"field"},$e={class:"title font-bold"};function be(e,o,m,_,b,k){const c=s("el-option"),d=s("el-select");return n(),r("div",ge,[l("h2",$e,a(e.$t("veo.name.model")),1),t(d,{modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=i=>e.value=i),class:"value",placeholder:e.$t("veo.placeholder.select")},{default:u(()=>[(n(!0),r(A,null,G(e.options,i=>(n(),y(c,{key:i.value,label:i.label,value:i.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const ke=$(he,[["render",be],["__scopeId","data-v-5bb2f809"]]),we=g({name:"ActionSelector",components:{ElSelect:O,ElOption:D},data(){return{}},computed:{options(){return[{value:"text2video",label:this.$t("veo.button.action1")},{value:"image2video",label:this.$t("veo.button.action2")},{value:"get1080p",label:this.$t("veo.button.action3")}]},value:{get(){return this.$store.state.veo?.config?.action},set(e){this.$store.commit("veo/setConfig",{...this.$store.state.veo?.config,action:e})}}},mounted(){this.value||(this.value=Q)}}),ye={class:"field"},Ve={class:"title font-bold"},Se={class:"float-left"};function Te(e,o,m,_,b,k){const c=s("el-option"),d=s("el-select");return n(),r("div",ye,[l("h2",Ve,a(e.$t("veo.name.action")),1),t(d,{modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=i=>e.value=i),class:"value",placeholder:e.$t("veo.placeholder.select"),clearable:""},{default:u(()=>[(n(!0),r(A,null,G(e.options,i=>(n(),y(c,{key:i.value,label:i.label,value:i.value},{default:u(()=>[l("span",Se,a(i.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ee=$(we,[["render",Te],["__scopeId","data-v-ba5abc8a"]]),Ie=g({name:"TranslationSelector",components:{ElSwitch:z,InfoIcon:P},computed:{value:{get(){return this.$store.state.veo?.config?.translation},set(e){console.debug("set translation",e),this.$store.commit("veo/setConfig",{...this.$store.state.veo?.config,translation:e})}}},mounted(){this.value===void 0&&(this.value=X)}}),Ce={class:"relative"},Ae={class:"flex justify-between"},Le={class:"flex justify-start items-center"},Re={class:"text-sm font-bold"},Ge={class:"flex justify-end items-center"};function Ue(e,o,m,_,b,k){const c=s("info-icon"),d=s("el-switch");return n(),r("div",Ce,[l("div",Ae,[l("div",Le,[l("span",Re,a(e.$t("veo.name.translation")),1),t(c,{content:e.$t("veo.description.translation")},null,8,["content"])]),l("div",Ge,[t(d,{modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=i=>e.value=i),class:"value"},null,8,["modelValue"])])])])}const Pe=$(Ie,[["render",Ue]]),je=g({name:"AspectRatioSelector",data(){return{options:[{value:"1:1",label:"1:1",width:20,height:20},{value:"4:3",label:"4:3",width:20,height:15},{value:"3:4",label:"3:4",width:15,height:20},{value:"16:9",label:"16:9",width:25,height:13},{value:"9:16",label:"9:16",width:13,height:25}]}},computed:{active(){return this.options.findIndex(e=>e.value===this.value)||0},value:{get(){return this.$store.state.veo?.config?.aspect_ratio},set(e){console.debug("set aspect_ratio",e),this.$store.commit("veo/setConfig",{...this.$store.state?.veo?.config,aspect_ratio:e})}}},mounted(){this.value||(this.value=x)}}),De={class:"text-sm font-bold mb-2 block"},Oe={class:"items"},Be=["onClick"],Me={class:"name"};function Fe(e,o,m,_,b,k){return n(),r("div",null,[l("span",De,a(e.$t("veo.name.ratio")),1),l("div",Oe,[(n(!0),r(A,null,G(e.options,(c,d)=>(n(),r("div",{key:d,class:I({active:e.active===d,item:!0}),onClick:i=>e.value=c.value},[l("div",{class:I(["preview",c.label])},[l("div",{class:"rect",style:Y({width:c.width+"px",height:c.height+"px"})},null,4)],2),l("p",Me,a(c.label),1)],10,Be))),128))])])}const qe=$(je,[["render",Fe],["__scopeId","data-v-688d3e9d"]]),ze=g({name:"VideoFromInput",components:{VideoPlayer:B},props:{modelValue:{type:Object,required:!1,default:void 0}},data(){return{options:{quality:{default:"1080p"}}}},computed:{config(){return this.$store.state.veo?.config}}}),Ne={class:"relative"},He={class:"flex mb-2"},Je={class:"text-sm font-bold"};function Ke(e,o,m,_,b,k){const c=s("video-player");return n(),r("div",Ne,[l("div",He,[l("span",Je,a(e.$t("veo.name.action3")),1)]),l("div",null,[e.config?.video_url?(n(),y(c,{key:0,src:e.config?.video_url},null,8,["src"])):v("",!0)])])}const We=$(ze,[["render",Ke]]),Ye=g({name:"StartEndImage",components:{ElUpload:N,ElButton:R,InfoIcon:P,FontAwesomeIcon:L,ImagePreview:ne},emits:["change"],data(){return{fileList:[],uploadUrl:ee()+"/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?.veo?.config?.image_urls},set(){}}},mounted(){this.value||(this.value=void 0),this.onSetStartEndImageUrl()},methods:{onExceed(){E.warning(this.$t("veo.message.uploadReferencesExceed"))},onError(){E.error(this.$t("veo.message.uploadReferencesError"))},onSetStartEndImageUrl(){const e=this.urls;this.$store.commit("veo/setConfig",{...this.$store.state?.veo?.config,image_urls:e})},async onSuccess(){this.onSetStartEndImageUrl()}}}),Ze={class:"relative"},Qe={class:"flex justify-between"},Xe={class:"flex justify-start items-center"},xe={class:"text-sm font-bold"};function et(e,o,m,_,b,k){const c=s("info-icon"),d=s("image-preview"),i=s("font-awesome-icon"),w=s("el-button"),f=s("el-upload");return n(),r("div",Ze,[l("div",Qe,[l("div",Xe,[l("span",xe,a(e.$t("veo.name.startEndImage")),1),t(c,{content:e.$t("veo.description.uploadStartEndImage")},null,8,["content"])])]),t(f,{"file-list":e.fileList,"onUpdate:fileList":o[0]||(o[0]=p=>e.fileList=p),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:p})=>[p.url&&p.percentage!==void 0?(n(),y(d,{key:0,url:p.url,name:p.name,percentage:p.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(p),1)},null,8,["url","name","percentage","onRemove"])):v("",!0)]),default:u(()=>[t(w,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:u(()=>[t(i,{icon:"fa-solid fa-upload",class:"icon mr-1"}),h(" "+a(e.$t("veo.button.uploadReferences")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])])}const tt=$(Ye,[["render",et],["__scopeId","data-v-43d971b7"]]),ot="",st=g({name:"PromptInput",components:{ElInput:H,InfoIcon:P},computed:{prompt:{get(){return this.$store.state.veo?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("veo/setConfig",{...this.$store.state.veo?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=ot)}}),nt={class:"field"},at={class:"box"},lt={class:"title font-bold"};function it(e,o,m,_,b,k){const c=s("info-icon"),d=s("el-input");return n(),r("div",nt,[l("div",at,[l("h2",lt,a(e.$t("veo.name.prompt")),1),t(c,{content:e.$t("veo.description.prompt"),class:"info"},null,8,["content"])]),t(d,{modelValue:e.prompt,"onUpdate:modelValue":o[0]||(o[0]=i=>e.prompt=i),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("veo.placeholder.prompt"),maxlength:500,"show-word-limit":""},null,8,["modelValue","placeholder"])])}const rt=$(st,[["render",it],["__scopeId","data-v-9189572a"]]),ct=g({name:"ConfigPanel",components:{ElButton:R,Consumption:ae,FontAwesomeIcon:L,PromptInput:rt,ModelSelector:ke,StartEndImage:tt,ActionSelector:Ee,VideoFromInput:We,TranslationSelector:Pe,AspectRatioSelector:qe},emits:["generate"],computed:{config(){return this.$store.state.veo?.config},consumption(){return ie(this.config,this.service?.cost)},service(){return this.$store.state.veo?.service}},methods:{onGenerate(){this.$emit("generate")}}}),dt={class:"flex flex-col h-full"},ut={class:"flex-1 overflow-y-auto p-[15px]"},pt={class:"flex flex-col items-center justify-center px-[15px] pb-[15px]"};function mt(e,o,m,_,b,k){const c=s("video-from-input"),d=s("action-selector"),i=s("translation-selector"),w=s("aspect-ratio-selector"),f=s("prompt-input"),p=s("model-selector"),V=s("start-end-image"),C=s("consumption"),M=s("font-awesome-icon"),F=s("el-button");return n(),r("div",dt,[l("div",ut,[S(t(c,{class:"mb-4"},null,512),[[T,e.config?.action==="get1080p"]]),t(d,{class:"mb-4"}),S(t(i,{class:"mb-4"},null,512),[[T,e.config?.action!=="get1080p"]]),S(t(w,{class:"mb-4"},null,512),[[T,e.config?.action==="image2video"]]),S(t(f,{class:"mb-4"},null,512),[[T,e.config?.action!=="get1080p"]]),S(t(p,{class:"mb-4"},null,512),[[T,e.config?.action!=="get1080p"]]),S(t(V,{class:"mb-2"},null,512),[[T,e.config?.action==="image2video"]])]),l("div",pt,[t(C,{value:e.consumption,service:e.service},null,8,["value","service"]),t(F,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:u(()=>[t(M,{icon:"fa-solid fa-magic",class:"mr-2"}),h(" "+a(e.$t("veo.button.generate")),1)]),_:1},8,["onClick"])])])}const ft=$(ct,[["render",mt]]),vt=g({name:"TaskPreview",components:{ElImage:W,CopyToClipboard:re,FontAwesomeIcon:L,ElAlert:K,VideoPlayer:B,ElTooltip:J,ElButton:R},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.veo?.application},config(){return this.$store.state.veo?.config}},methods:{onGet1080p(e,o){console.debug("set config",o),this.$store.commit("veo/setConfig",{...this.$store.state.veo?.config,video_id:o?.data?.[0]?.id,video_url:o?.data[0]?.video_url,action:"get1080p"})},onDownload(e,o){e.stopPropagation(),console.log("on download"),window.open(o,"_blank")},onOpenVideo(e){window.open(e,"_blank")}}}),_t={class:"preview"},ht={class:"left"},gt={class:"main"},$t={class:"bot"},bt={class:"datetime"},kt={class:"info"},wt={key:0,class:"prompt mt-2"},yt={key:0},Vt={key:1},St={key:0,class:I({content:!0,failed:!0})},Tt={key:0,class:"mb-4"},Et={key:1,class:I({operations:!0,"mt-2":!0})},It={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ct={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},At={key:1,class:I({content:!0})},Lt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Rt={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"},Ut={key:2,class:I({content:!0})},Pt={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 Dt(e,o,m,_,b,k){const c=s("el-image"),d=s("video-player"),i=s("el-button"),w=s("el-tooltip"),f=s("font-awesome-icon"),p=s("copy-to-clipboard"),V=s("el-alert");return n(),r("div",_t,[l("div",ht,[t(c,{src:"https://cdn.acedata.cloud/8nxyy9.jpg",class:"avatar"})]),l("div",gt,[l("div",$t,[h(a(e.$t("veo.name.veoBot"))+" ",1),l("span",bt,a(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),l("div",kt,[e.modelValue?.request?.prompt?(n(),r("p",wt,[h(a(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?v("",!0):(n(),r("span",yt," - ("+a(e.$t("veo.status.pending"))+") ",1)),Array.isArray(e.modelValue?.response?.data)&&e.modelValue?.response?.data[0]?.state==="running"?(n(),r("span",Vt," - ("+a(e.$t("veo.status.processing"))+") ",1)):v("",!0)])):v("",!0)]),e.modelValue?.response?.success===!0&&e.modelValue?.response?.data?(n(),r("div",St,[e.modelValue?.response?.data[0]?.video_url?(n(),r("div",Tt,[t(d,{src:e.modelValue?.response?.data[0]?.video_url},null,8,["src"])])):v("",!0),e.modelValue?.response.success?(n(),r("div",Et,[t(w,{class:"box-item",effect:"dark",content:e.$t("veo.message.downloadVideo"),placement:"top-start"},{default:u(()=>[e.modelValue?.response?.data[0]?.video_url?(n(),y(i,{key:0,type:"info",size:"small",class:"btn-action",onClick:o[0]||(o[0]=C=>e.onGet1080p(C,e.modelValue?.response))},{default:u(()=>[h(a(e.$t("veo.button.action3")),1)]),_:1})):v("",!0)]),_:1},8,["content"]),t(w,{class:"box-item",effect:"dark",content:e.$t("veo.message.downloadVideo"),placement:"top-start"},{default:u(()=>[e.modelValue?.response?.data[0]?.video_url?(n(),y(i,{key:0,type:"info",size:"small",class:"btn-action",onClick:o[1]||(o[1]=C=>e.onDownload(C,e.modelValue?.response?.data[0]?.video_url))},{default:u(()=>[h(a(e.$t("veo.button.download")),1)]),_:1})):v("",!0)]),_:1},8,["content"])])):v("",!0),t(V,{closable:!1,class:"mt-2 success"},{default:u(()=>[l("p",It,[t(f,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+a(e.$t("veo.name.model"))+": "+a(e.modelValue?.request?.model),1)]),l("p",Ct,[t(f,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+a(e.$t("veo.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(p,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):v("",!0),e.modelValue?.response?.success===!1?(n(),r("div",At,[t(V,{closable:!1,class:"failure"},{template:u(()=>[t(f,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),h(" "+a(e.$t("veo.name.failure")),1)]),default:u(()=>[l("p",Lt,[t(f,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+a(e.$t("veo.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(p,{content:e.modelValue?.id},null,8,["content"])]),l("p",Rt,[t(f,{icon:"fa-solid fa-circle-info",class:"mr-1"}),h(" "+a(e.$t("veo.name.failureReason"))+": "+a(e.modelValue?.response?.error?.message)+" ",1),t(p,{content:e.modelValue?.response?.error?.message},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),r("p",Gt,[t(f,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+a(e.$t("veo.name.traceId"))+": "+a(e.modelValue?.response?.trace_id)+" ",1),t(p,{content:e.modelValue?.response?.trace_id},null,8,["content"])])):v("",!0)]),_:1})])):v("",!0),e.modelValue?.response?.success===void 0?(n(),r("div",Ut,[t(V,{closable:!1,class:"info"},{template:u(()=>[t(f,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),h(" "+a(e.$t("veo.name.failure")),1)]),default:u(()=>[l("p",Pt,[t(f,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+a(e.$t("veo.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(p,{content:e.modelValue?.id},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),r("p",jt,[t(f,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+a(e.$t("veo.name.traceId"))+": "+a(e.modelValue?.response?.trace_id)+" ",1),t(p,{content:e.modelValue?.response?.trace_id},null,8,["content"])])):v("",!0)]),_:1})])):v("",!0)])])}const Ot=$(vt,[["render",Dt],["__scopeId","data-v-5372c9d1"]]),Bt=g({name:"RecentPanel",components:{TaskPreview:Ot,NoTasks:le,BotPlaceholder:ce,ScrollList:se},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.veo?.tasks,items:this.$store.state.veo?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Mt={key:0},Ft={key:2,class:"w-full h-full flex items-center justify-center"};function qt(e,o,m,_,b,k){const c=s("bot-placeholder"),d=s("task-preview"),i=s("scroll-list"),w=s("no-tasks");return n(),r(A,null,[e.tasks?.items===void 0?(n(),r("div",Mt,[t(c)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),y(i,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:o[0]||(o[0]=f=>e.$emit("reach-top"))},{default:u(()=>[(n(!0),r(A,null,G(e.tasks?.items,(f,p)=>(n(),y(d,{key:p,"model-value":f},null,8,["model-value"]))),128))]),_:1},8,["loading"])):v("",!0),e.tasks?.items?.length===0?(n(),r("div",Ft,[t(w)])):v("",!0)],64)}const zt=$(Bt,[["render",qt]]),Nt="https://webhook.acedata.cloud/veo",Ht=g({name:"VeoIndex",components:{ConfigPanel:ft,Layout:_e,RecentPanel:zt},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.veo?.status?.getApplications===j.Request},tasksLoading(){return this.$store.state.veo?.status?.getTasks===j.Request||this.fetchingTasks},credential(){return this.$store.state.veo.credential},config(){return this.$store.state.veo.config},tasks(){return this.$store.state.veo.tasks}},watch:{tasks:{handler(e,o){e?.items?.length>o?.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 de({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("veo/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("veo/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();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:o=5,createdAtMin:m,createdAtMax:_}=e||{};console.debug("limit",o,"createdAtMin",m,"createdAtMax",_),this.fetchingTasks=!0;try{await this.$store.dispatch("veo/getTasks",{limit:o,createdAtMin:m,createdAtMax:_})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:Nt},o=this.credential?.token;if(!o){console.error("no token specified");return}E.info(this.$t("veo.message.startingTask")),te.generate(e,{token:o}).then(()=>{E.success(this.$t("veo.message.startTaskSuccess"))}).catch(m=>{m?.response?.data?.error?.code===oe?E.error(this.$t("veo.message.usedUp")):E.error(this.$t("veo.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Jt(e,o,m,_,b,k){const c=s("config-panel"),d=s("recent-panel"),i=s("layout");return n(),y(i,null,{config:u(()=>[t(c,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:u(()=>[t(d,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const co=$(Ht,[["render",Jt]]);export{co as default};
1
+ import{bG as L}from"./vendor-BVnhgPs4.js";import{o as R,N as q,J as D,K as O,j as z,q as N,r as E,p as H,n as J,B as K,i as W}from"./vendor-element-plus-BUOzLm6W.js";import{d as g,c as r,a as l,l as t,P as G,S as u,al as s,o as n,Z as a,F as A,ai as U,R as y,V as I,a2 as Y,W as v,Y as h,U as S,_ as T}from"./vendor-vue-Bb02XvLT.js";import{_ as $,b8 as Z,b9 as Q,ba as X,bb as x,U as ee,bc as te,a8 as oe,a5 as j}from"./index-wwpmx6zW.js";import{I as P,S as se}from"./ScrollList-CZI70Mqs.js";import{V as B}from"./VideoPlayer-B9VH6gxB.js";import{I as ne}from"./ImagePreview-CGACVsa5.js";import{C as ae,N as le}from"./NoTasks-DjsZiiOP.js";import{a as ie}from"./price-BhobpaMO.js";import{C as re}from"./CopyToClipboard-BqFSadU9.js";import{B as ce}from"./BotPlaceholder-BA4i65l4.js";import{l as de}from"./pagination-dbPQoMuV.js";import"./vendor-dayjs-C40ROiFS.js";import"./vendor-katex-DHBGsivc.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";const ue=g({name:"LayoutVeo",components:{ElDrawer:q,ElButton:R,FontAwesomeIcon:L},data(){return{drawer:!1}}}),pe={class:"main flex flex-row flex-1"},me={class:"config w-[300px] h-full overflow-y-scroll border-r border-[var(--el-border-color)]"},fe={class:"result h-full p-[15px] flex-1 flex flex-col"};function ve(e,o,m,_,b,k){const c=s("font-awesome-icon"),d=s("el-button"),i=s("el-drawer");return n(),r("div",pe,[l("div",me,[G(e.$slots,"config",{},void 0,!0)]),l("div",fe,[G(e.$slots,"result",{},void 0,!0)]),t(d,{circle:"",class:"menu",onClick:o[0]||(o[0]=w=>e.drawer=!0)},{default:u(()=>[t(c,{icon:"fa-solid fa-magic"})]),_:1}),t(i,{modelValue:e.drawer,"onUpdate:modelValue":o[1]||(o[1]=w=>e.drawer=w),direction:"ltr","with-header":!1,size:"350px"},{default:u(()=>[G(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const _e=$(ue,[["render",ve],["__scopeId","data-v-cfe3cae3"]]),he=g({name:"ModelSelector",components:{ElSelect:O,ElOption:D},props:{modelValue:{type:String,default:void 0}},emits:["update:modelValue"],data(){return{options:[{value:"veo2-fast",label:"veo2-fast"},{value:"veo3",label:"veo3"},{value:"veo3-fast",label:"veo3-fast"},{value:"veo31-fast",label:"veo31-fast"},{value:"veo31",label:"veo31"},{value:"veo31-fast-ingredient",label:"veo31-fast-ingredient"}]}},computed:{value:{get(){return this.$store.state.veo?.config?.model},set(e){this.$store.commit("veo/setConfig",{...this.$store.state.veo.config,model:e})}}},mounted(){this.value||(this.value=Z)}}),ge={class:"field"},$e={class:"title font-bold"};function be(e,o,m,_,b,k){const c=s("el-option"),d=s("el-select");return n(),r("div",ge,[l("h2",$e,a(e.$t("veo.name.model")),1),t(d,{modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=i=>e.value=i),class:"value",placeholder:e.$t("veo.placeholder.select")},{default:u(()=>[(n(!0),r(A,null,U(e.options,i=>(n(),y(c,{key:i.value,label:i.label,value:i.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const ke=$(he,[["render",be],["__scopeId","data-v-5bb2f809"]]),we=g({name:"ActionSelector",components:{ElSelect:O,ElOption:D},data(){return{}},computed:{options(){return[{value:"text2video",label:this.$t("veo.button.action1")},{value:"image2video",label:this.$t("veo.button.action2")},{value:"get1080p",label:this.$t("veo.button.action3")}]},value:{get(){return this.$store.state.veo?.config?.action},set(e){this.$store.commit("veo/setConfig",{...this.$store.state.veo?.config,action:e})}}},mounted(){this.value||(this.value=Q)}}),ye={class:"field"},Ve={class:"title font-bold"},Se={class:"float-left"};function Te(e,o,m,_,b,k){const c=s("el-option"),d=s("el-select");return n(),r("div",ye,[l("h2",Ve,a(e.$t("veo.name.action")),1),t(d,{modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=i=>e.value=i),class:"value",placeholder:e.$t("veo.placeholder.select"),clearable:""},{default:u(()=>[(n(!0),r(A,null,U(e.options,i=>(n(),y(c,{key:i.value,label:i.label,value:i.value},{default:u(()=>[l("span",Se,a(i.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ee=$(we,[["render",Te],["__scopeId","data-v-ba5abc8a"]]),Ie=g({name:"TranslationSelector",components:{ElSwitch:z,InfoIcon:P},computed:{value:{get(){return this.$store.state.veo?.config?.translation},set(e){console.debug("set translation",e),this.$store.commit("veo/setConfig",{...this.$store.state.veo?.config,translation:e})}}},mounted(){this.value===void 0&&(this.value=X)}}),Ce={class:"relative"},Ae={class:"flex justify-between"},Le={class:"flex justify-start items-center"},Re={class:"text-sm font-bold"},Ue={class:"flex justify-end items-center"};function Ge(e,o,m,_,b,k){const c=s("info-icon"),d=s("el-switch");return n(),r("div",Ce,[l("div",Ae,[l("div",Le,[l("span",Re,a(e.$t("veo.name.translation")),1),t(c,{content:e.$t("veo.description.translation")},null,8,["content"])]),l("div",Ue,[t(d,{modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=i=>e.value=i),class:"value"},null,8,["modelValue"])])])])}const Pe=$(Ie,[["render",Ge]]),je=g({name:"AspectRatioSelector",data(){return{options:[{value:"1:1",label:"1:1",width:20,height:20},{value:"4:3",label:"4:3",width:20,height:15},{value:"3:4",label:"3:4",width:15,height:20},{value:"16:9",label:"16:9",width:25,height:13},{value:"9:16",label:"9:16",width:13,height:25}]}},computed:{active(){return this.options.findIndex(e=>e.value===this.value)||0},value:{get(){return this.$store.state.veo?.config?.aspect_ratio},set(e){console.debug("set aspect_ratio",e),this.$store.commit("veo/setConfig",{...this.$store.state?.veo?.config,aspect_ratio:e})}}},mounted(){this.value||(this.value=x)}}),De={class:"text-sm font-bold mb-2 block"},Oe={class:"items"},Be=["onClick"],Me={class:"name"};function Fe(e,o,m,_,b,k){return n(),r("div",null,[l("span",De,a(e.$t("veo.name.ratio")),1),l("div",Oe,[(n(!0),r(A,null,U(e.options,(c,d)=>(n(),r("div",{key:d,class:I({active:e.active===d,item:!0}),onClick:i=>e.value=c.value},[l("div",{class:I(["preview",c.label])},[l("div",{class:"rect",style:Y({width:c.width+"px",height:c.height+"px"})},null,4)],2),l("p",Me,a(c.label),1)],10,Be))),128))])])}const qe=$(je,[["render",Fe],["__scopeId","data-v-688d3e9d"]]),ze=g({name:"VideoFromInput",components:{VideoPlayer:B},props:{modelValue:{type:Object,required:!1,default:void 0}},data(){return{options:{quality:{default:"1080p"}}}},computed:{config(){return this.$store.state.veo?.config}}}),Ne={class:"relative"},He={class:"flex mb-2"},Je={class:"text-sm font-bold"};function Ke(e,o,m,_,b,k){const c=s("video-player");return n(),r("div",Ne,[l("div",He,[l("span",Je,a(e.$t("veo.name.action3")),1)]),l("div",null,[e.config?.video_url?(n(),y(c,{key:0,src:e.config?.video_url},null,8,["src"])):v("",!0)])])}const We=$(ze,[["render",Ke]]),Ye=g({name:"StartEndImage",components:{ElUpload:N,ElButton:R,InfoIcon:P,FontAwesomeIcon:L,ImagePreview:ne},emits:["change"],data(){return{fileList:[],uploadUrl:ee()+"/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?.veo?.config?.image_urls},set(){}}},mounted(){this.value||(this.value=void 0),this.onSetStartEndImageUrl()},methods:{onExceed(){E.warning(this.$t("veo.message.uploadReferencesExceed"))},onError(){E.error(this.$t("veo.message.uploadReferencesError"))},onSetStartEndImageUrl(){const e=this.urls;this.$store.commit("veo/setConfig",{...this.$store.state?.veo?.config,image_urls:e})},async onSuccess(){this.onSetStartEndImageUrl()}}}),Ze={class:"relative"},Qe={class:"flex justify-between"},Xe={class:"flex justify-start items-center"},xe={class:"text-sm font-bold"};function et(e,o,m,_,b,k){const c=s("info-icon"),d=s("image-preview"),i=s("font-awesome-icon"),w=s("el-button"),f=s("el-upload");return n(),r("div",Ze,[l("div",Qe,[l("div",Xe,[l("span",xe,a(e.$t("veo.name.startEndImage")),1),t(c,{content:e.$t("veo.description.uploadStartEndImage")},null,8,["content"])])]),t(f,{"file-list":e.fileList,"onUpdate:fileList":o[0]||(o[0]=p=>e.fileList=p),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:p})=>[p.url&&p.percentage!==void 0?(n(),y(d,{key:0,url:p.url,name:p.name,percentage:p.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(p),1)},null,8,["url","name","percentage","onRemove"])):v("",!0)]),default:u(()=>[t(w,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:u(()=>[t(i,{icon:"fa-solid fa-upload",class:"icon mr-1"}),h(" "+a(e.$t("veo.button.uploadReferences")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])])}const tt=$(Ye,[["render",et],["__scopeId","data-v-43d971b7"]]),ot="",st=g({name:"PromptInput",components:{ElInput:H,InfoIcon:P},computed:{prompt:{get(){return this.$store.state.veo?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("veo/setConfig",{...this.$store.state.veo?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=ot)}}),nt={class:"field"},at={class:"box"},lt={class:"title font-bold"};function it(e,o,m,_,b,k){const c=s("info-icon"),d=s("el-input");return n(),r("div",nt,[l("div",at,[l("h2",lt,a(e.$t("veo.name.prompt")),1),t(c,{content:e.$t("veo.description.prompt"),class:"info"},null,8,["content"])]),t(d,{modelValue:e.prompt,"onUpdate:modelValue":o[0]||(o[0]=i=>e.prompt=i),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("veo.placeholder.prompt"),maxlength:500,"show-word-limit":""},null,8,["modelValue","placeholder"])])}const rt=$(st,[["render",it],["__scopeId","data-v-9189572a"]]),ct=g({name:"ConfigPanel",components:{ElButton:R,Consumption:ae,FontAwesomeIcon:L,PromptInput:rt,ModelSelector:ke,StartEndImage:tt,ActionSelector:Ee,VideoFromInput:We,TranslationSelector:Pe,AspectRatioSelector:qe},emits:["generate"],computed:{config(){return this.$store.state.veo?.config},consumption(){return ie(this.config,this.service?.cost)},service(){return this.$store.state.veo?.service}},methods:{onGenerate(){this.$emit("generate")}}}),dt={class:"flex flex-col h-full"},ut={class:"flex-1 overflow-y-auto p-[15px]"},pt={class:"flex flex-col items-center justify-center px-[15px] pb-[15px]"};function mt(e,o,m,_,b,k){const c=s("video-from-input"),d=s("action-selector"),i=s("translation-selector"),w=s("aspect-ratio-selector"),f=s("prompt-input"),p=s("model-selector"),V=s("start-end-image"),C=s("consumption"),M=s("font-awesome-icon"),F=s("el-button");return n(),r("div",dt,[l("div",ut,[S(t(c,{class:"mb-4"},null,512),[[T,e.config?.action==="get1080p"]]),t(d,{class:"mb-4"}),S(t(i,{class:"mb-4"},null,512),[[T,e.config?.action!=="get1080p"]]),S(t(w,{class:"mb-4"},null,512),[[T,e.config?.action==="image2video"]]),S(t(f,{class:"mb-4"},null,512),[[T,e.config?.action!=="get1080p"]]),S(t(p,{class:"mb-4"},null,512),[[T,e.config?.action!=="get1080p"]]),S(t(V,{class:"mb-2"},null,512),[[T,e.config?.action==="image2video"]])]),l("div",pt,[t(C,{value:e.consumption,service:e.service},null,8,["value","service"]),t(F,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:u(()=>[t(M,{icon:"fa-solid fa-magic",class:"mr-2"}),h(" "+a(e.$t("veo.button.generate")),1)]),_:1},8,["onClick"])])])}const ft=$(ct,[["render",mt]]),vt=g({name:"TaskPreview",components:{ElImage:W,CopyToClipboard:re,FontAwesomeIcon:L,ElAlert:K,VideoPlayer:B,ElTooltip:J,ElButton:R},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.veo?.application},config(){return this.$store.state.veo?.config}},methods:{onGet1080p(e,o){console.debug("set config",o),this.$store.commit("veo/setConfig",{...this.$store.state.veo?.config,video_id:o?.data?.[0]?.id,video_url:o?.data[0]?.video_url,action:"get1080p"})},onDownload(e,o){e.stopPropagation(),console.log("on download"),window.open(o,"_blank")},onOpenVideo(e){window.open(e,"_blank")}}}),_t={class:"preview"},ht={class:"left"},gt={class:"main"},$t={class:"bot"},bt={class:"datetime"},kt={class:"info"},wt={key:0,class:"prompt mt-2"},yt={key:0},Vt={key:1},St={key:0,class:I({content:!0,failed:!0})},Tt={key:0,class:"mb-4"},Et={key:1,class:I({operations:!0,"mt-2":!0})},It={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ct={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},At={key:1,class:I({content:!0})},Lt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Rt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ut={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Gt={key:2,class:I({content:!0})},Pt={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 Dt(e,o,m,_,b,k){const c=s("el-image"),d=s("video-player"),i=s("el-button"),w=s("el-tooltip"),f=s("font-awesome-icon"),p=s("copy-to-clipboard"),V=s("el-alert");return n(),r("div",_t,[l("div",ht,[t(c,{src:"https://cdn.acedata.cloud/8nxyy9.jpg",class:"avatar"})]),l("div",gt,[l("div",$t,[h(a(e.$t("veo.name.veoBot"))+" ",1),l("span",bt,a(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),l("div",kt,[e.modelValue?.request?.prompt?(n(),r("p",wt,[h(a(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?v("",!0):(n(),r("span",yt," - ("+a(e.$t("veo.status.pending"))+") ",1)),Array.isArray(e.modelValue?.response?.data)&&e.modelValue?.response?.data[0]?.state==="running"?(n(),r("span",Vt," - ("+a(e.$t("veo.status.processing"))+") ",1)):v("",!0)])):v("",!0)]),e.modelValue?.response?.success===!0&&e.modelValue?.response?.data?(n(),r("div",St,[e.modelValue?.response?.data[0]?.video_url?(n(),r("div",Tt,[t(d,{src:e.modelValue?.response?.data[0]?.video_url},null,8,["src"])])):v("",!0),e.modelValue?.response.success?(n(),r("div",Et,[t(w,{class:"box-item",effect:"dark",content:e.$t("veo.message.downloadVideo"),placement:"top-start"},{default:u(()=>[e.modelValue?.response?.data[0]?.video_url?(n(),y(i,{key:0,type:"info",size:"small",class:"btn-action",onClick:o[0]||(o[0]=C=>e.onGet1080p(C,e.modelValue?.response))},{default:u(()=>[h(a(e.$t("veo.button.action3")),1)]),_:1})):v("",!0)]),_:1},8,["content"]),t(w,{class:"box-item",effect:"dark",content:e.$t("veo.message.downloadVideo"),placement:"top-start"},{default:u(()=>[e.modelValue?.response?.data[0]?.video_url?(n(),y(i,{key:0,type:"info",size:"small",class:"btn-action",onClick:o[1]||(o[1]=C=>e.onDownload(C,e.modelValue?.response?.data[0]?.video_url))},{default:u(()=>[h(a(e.$t("veo.button.download")),1)]),_:1})):v("",!0)]),_:1},8,["content"])])):v("",!0),t(V,{closable:!1,class:"mt-2 success"},{default:u(()=>[l("p",It,[t(f,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+a(e.$t("veo.name.model"))+": "+a(e.modelValue?.request?.model),1)]),l("p",Ct,[t(f,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+a(e.$t("veo.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(p,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):v("",!0),e.modelValue?.response?.success===!1?(n(),r("div",At,[t(V,{closable:!1,class:"failure"},{template:u(()=>[t(f,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),h(" "+a(e.$t("veo.name.failure")),1)]),default:u(()=>[l("p",Lt,[t(f,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+a(e.$t("veo.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(p,{content:e.modelValue?.id},null,8,["content"])]),l("p",Rt,[t(f,{icon:"fa-solid fa-circle-info",class:"mr-1"}),h(" "+a(e.$t("veo.name.failureReason"))+": "+a(e.modelValue?.response?.error?.message)+" ",1),t(p,{content:e.modelValue?.response?.error?.message},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),r("p",Ut,[t(f,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+a(e.$t("veo.name.traceId"))+": "+a(e.modelValue?.response?.trace_id)+" ",1),t(p,{content:e.modelValue?.response?.trace_id},null,8,["content"])])):v("",!0)]),_:1})])):v("",!0),e.modelValue?.response?.success===void 0?(n(),r("div",Gt,[t(V,{closable:!1,class:"info"},{template:u(()=>[t(f,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),h(" "+a(e.$t("veo.name.failure")),1)]),default:u(()=>[l("p",Pt,[t(f,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+a(e.$t("veo.name.taskId"))+": "+a(e.modelValue?.id)+" ",1),t(p,{content:e.modelValue?.id},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),r("p",jt,[t(f,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+a(e.$t("veo.name.traceId"))+": "+a(e.modelValue?.response?.trace_id)+" ",1),t(p,{content:e.modelValue?.response?.trace_id},null,8,["content"])])):v("",!0)]),_:1})])):v("",!0)])])}const Ot=$(vt,[["render",Dt],["__scopeId","data-v-5372c9d1"]]),Bt=g({name:"RecentPanel",components:{TaskPreview:Ot,NoTasks:le,BotPlaceholder:ce,ScrollList:se},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.veo?.tasks,items:this.$store.state.veo?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Mt={key:0},Ft={key:2,class:"w-full h-full flex items-center justify-center"};function qt(e,o,m,_,b,k){const c=s("bot-placeholder"),d=s("task-preview"),i=s("scroll-list"),w=s("no-tasks");return n(),r(A,null,[e.tasks?.items===void 0?(n(),r("div",Mt,[t(c)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),y(i,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:o[0]||(o[0]=f=>e.$emit("reach-top"))},{default:u(()=>[(n(!0),r(A,null,U(e.tasks?.items,(f,p)=>(n(),y(d,{key:p,"model-value":f},null,8,["model-value"]))),128))]),_:1},8,["loading"])):v("",!0),e.tasks?.items?.length===0?(n(),r("div",Ft,[t(w)])):v("",!0)],64)}const zt=$(Bt,[["render",qt]]),Nt="https://webhook.acedata.cloud/veo",Ht=g({name:"VeoIndex",components:{ConfigPanel:ft,Layout:_e,RecentPanel:zt},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.veo?.status?.getApplications===j.Request},tasksLoading(){return this.$store.state.veo?.status?.getTasks===j.Request||this.fetchingTasks},credential(){return this.$store.state.veo.credential},config(){return this.$store.state.veo.config},tasks(){return this.$store.state.veo.tasks}},watch:{tasks:{handler(e,o){e?.items?.length>o?.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 de({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("veo/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("veo/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();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:o=5,createdAtMin:m,createdAtMax:_}=e||{};console.debug("limit",o,"createdAtMin",m,"createdAtMax",_),this.fetchingTasks=!0;try{await this.$store.dispatch("veo/getTasks",{limit:o,createdAtMin:m,createdAtMax:_})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:Nt},o=this.credential?.token;if(!o){console.error("no token specified");return}E.info(this.$t("veo.message.startingTask")),te.generate(e,{token:o}).then(()=>{E.success(this.$t("veo.message.startTaskSuccess"))}).catch(m=>{m?.response?.data?.error?.code===oe?E.error(this.$t("veo.message.usedUp")):E.error(this.$t("veo.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Jt(e,o,m,_,b,k){const c=s("config-panel"),d=s("recent-panel"),i=s("layout");return n(),y(i,null,{config:u(()=>[t(c,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:u(()=>[t(d,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const co=$(Ht,[["render",Jt]]);export{co as default};
@@ -1 +1 @@
1
- import{e as $,_ as v,R as x,bJ as O,a as N,b as T,c as L,bK as R,S as U}from"./index-Dn72Szn0.js";import{bG as k}from"./vendor-BVnhgPs4.js";import{k as D,l as P,U as B,E as A,i as b}from"./vendor-element-plus-BUOzLm6W.js";import{d as E,R as f,S as n,l as o,W as h,al as t,Y as g,Z as d,a as s,o as l,c as _,a2 as V,F,ai as H,V as J}from"./vendor-vue-Bb02XvLT.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";import"./vendor-dayjs-C40ROiFS.js";import"./vendor-katex-DHBGsivc.js";const M=E({name:"HelpEntry",components:{ElImage:b,ElDialog:A,ElPopover:B,ElMenu:P,ElMenuItem:D,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"},q={class:"flex-1 text-center"};function z(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]=S=>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",q,[o(m,{src:e.site?.features?.support?.wechat?.qr},null,8,["src"])])])]),_:1})]),_:1})]),_:1},8,["model-value"])}const G=v(M,[["render",z],["__scopeId","data-v-0fce633f"]]),W=E({name:"ProfileIndex",components:{ElImage:b,HelpDialog:G,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:`${O()}/user/profile`,icon:"fa-regular fa-user"},{key:"application-list",text:this.$t("console.menu.applicationList"),name:N,icon:"fa-solid fa-cube"},{key:"order-list",text:this.$t("console.menu.orderList"),name:T,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:U(),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()}}}),j={class:"profile"},K={class:"info"},Y={class:"links"},Z=["onClick"],Q={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",j,[s("div",K,[o(c,{src:e.user.avatar,fit:"cover",class:"avatar"},null,8,["src"]),s("h2",null,d(e.user.username),1),s("div",{style:V({backgroundImage:"url("+e.user.avatar+")"}),class:"background"},null,4)]),s("div",Y,[(l(!0),_(F,null,H(e.links,(a,p)=>(l(),_("a",{key:p,class:J({link:!0,active:e.$route.name===a.name}),onClick:S=>e.onNavigate(a)},[s("span",Q,[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,Z))),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(W,[["render",oe],["__scopeId","data-v-8eb3b1d9"]]);export{me as default};
1
+ import{e as $,_ as v,R as O,c5 as S,a as N,b as T,c as U,c6 as L,U as R}from"./index-wwpmx6zW.js";import{bG as k}from"./vendor-BVnhgPs4.js";import{k as D,l as P,U as B,E as A,i as b}from"./vendor-element-plus-BUOzLm6W.js";import{d as E,R as f,S as n,l as o,W as h,al as t,Y as g,Z as d,a as s,o as l,c as _,a2 as V,F,ai as H,V as M}from"./vendor-vue-Bb02XvLT.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";import"./vendor-dayjs-C40ROiFS.js";import"./vendor-katex-DHBGsivc.js";const X=E({name:"HelpEntry",components:{ElImage:b,ElDialog:A,ElPopover:B,ElMenu:P,ElMenuItem:D,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:$})}}}),q={class:"flex"},z={class:"flex-1 text-center"};function G(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]=x=>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",q,[s("div",z,[o(m,{src:e.site?.features?.support?.wechat?.qr},null,8,["src"])])])]),_:1})]),_:1})]),_:1},8,["model-value"])}const J=v(X,[["render",G],["__scopeId","data-v-0fce633f"]]),W=E({name:"ProfileIndex",components:{ElImage:b,HelpDialog:J,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:N,icon:"fa-solid fa-cube"},{key:"order-list",text:this.$t("console.menu.orderList"),name:T,icon:"fa-solid fa-store"},{key:"usage-list",text:this.$t("console.menu.usageList"),name:U,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:L,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:R(),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:O})},onNavigate(e){e.name?this.$router.push({name:e.name}):e.href?window.open(e.href,"_blank"):e.callback&&e.callback()}}}),j={class:"profile"},Y={class:"info"},Z={class:"links"},K=["onClick"],Q={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",j,[s("div",Y,[o(c,{src:e.user.avatar,fit:"cover",class:"avatar"},null,8,["src"]),s("h2",null,d(e.user.username),1),s("div",{style:V({backgroundImage:"url("+e.user.avatar+")"}),class:"background"},null,4)]),s("div",Z,[(l(!0),_(F,null,H(e.links,(a,p)=>(l(),_("a",{key:p,class:M({link:!0,active:e.$route.name===a.name}),onClick:x=>e.onNavigate(a)},[s("span",Q,[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,K))),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(W,[["render",oe],["__scopeId","data-v-8eb3b1d9"]]);export{me as default};
@@ -1 +1 @@
1
- import{E as T,a as D,b as E}from"./EditArray-KYrcEW6W.js";import{d as U,_ as F}from"./index-Dn72Szn0.js";import"./vendor-BVnhgPs4.js";import{H as V,j as _,I as q,s as A,w as j,i as B,x as L,m as N}from"./vendor-element-plus-BUOzLm6W.js";import{d as R,R as O,S as s,l as t,al as n,a as l,Z as o,Y as m,c as y,ai as Q,F as W,o as g,U as k,W as H,_ as C}from"./vendor-vue-Bb02XvLT.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";import"./vendor-dayjs-C40ROiFS.js";import"./vendor-katex-DHBGsivc.js";const K=R({name:"SiteIndex",components:{EditText:E,EditImage:D,EditArray:T,ElDivider:N,ElRow:L,ElImage:B,ElCol:j,ElCard:A,ElForm:q,ElSwitch:_,ElFormItem:V},data(){return{editing:{title:!1}}},computed:{site(){return this.$store.getters.site}},methods:{onSave(e){const a={...this.site,...e};U.update(this.site?.id,a).then(()=>{console.debug("getSite for id",this.site?.id),this.$store.dispatch("getSite")})}}}),Y={class:"title"},Z={class:"title"},z={class:"block w-full"},G={class:"block tip"},J={class:"block w-full"},M={class:"block tip"},P={class:"block w-full"},X={class:"block tip"},x={class:"block w-full"},ee={class:"block tip"},te={class:"block w-full"},ie={class:"block tip"},se={class:"title"},le={class:"block w-full"},oe={class:"block tip"},ae={class:"block w-full"},de={class:"block tip"},ne={class:"title"},re={class:"block tip"},me={class:"block tip"},ue={class:"title"},pe={class:"w-full"},fe={class:"block tip w-full"},be={key:0},ve={class:"block w-full"},he={class:"block w-full"};function ce(e,a,$e,we,ge,ke){const f=n("el-col"),h=n("el-row"),u=n("el-divider"),d=n("el-form-item"),p=n("edit-text"),c=n("el-image"),$=n("edit-image"),I=n("edit-array"),b=n("el-form"),v=n("el-card"),w=n("el-switch");return g(),O(h,{class:"panel"},{default:s(()=>[t(f,{span:24},{default:s(()=>[t(h,null,{default:s(()=>[t(f,{span:24},{default:s(()=>[l("h2",Y,o(e.$t("common.title.site")),1)]),_:1})]),_:1}),t(h,{gutter:15},{default:s(()=>[t(f,{md:12,xs:24},{default:s(()=>[t(v,{shadow:"hover",class:"mb-4"},{default:s(()=>[l("h4",Z,o(e.$t("site.title.basicConfig")),1),t(u),t(b,{model:e.site,class:"form","label-width":"auto",style:{"max-width":"600px"}},{default:s(()=>[t(d,{label:e.$t("site.field.origin")},{default:s(()=>[l("span",z,o(e.site.origin),1),l("span",G,o(e.$t("site.message.originTip")),1)]),_:1},8,["label"]),t(d,{label:e.$t("site.field.title")},{default:s(()=>[l("span",J,[m(o(e.site.title)+" ",1),t(p,{"model-value":e.site.title,title:e.$t("site.title.editTitle"),placeholder:e.$t("site.placeholder.title"),onConfirm:a[0]||(a[0]=i=>e.onSave({title:i}))},null,8,["model-value","title","placeholder"])]),l("span",M,o(e.$t("site.message.titleTip")),1)]),_:1},8,["label"]),t(d,{label:e.$t("site.field.logo")},{default:s(()=>[l("span",P,[t(c,{src:e.site.logo,class:"logo"},null,8,["src"]),t($,{"model-value":e.site.logo,title:e.$t("site.title.editLogo"),tip:e.$t("site.message.editLogoTip"),onConfirm:a[1]||(a[1]=i=>e.onSave({logo:i}))},null,8,["model-value","title","tip"])]),l("span",X,o(e.$t("site.message.logoTip")),1)]),_:1},8,["label"]),t(d,{label:e.$t("site.field.favicon")},{default:s(()=>[l("span",x,[t(c,{src:e.site.favicon,class:"favicon"},null,8,["src"]),t($,{"model-value":e.site.favicon,title:e.$t("site.title.editFavicon"),tip:e.$t("site.message.editFaviconTip"),onConfirm:a[2]||(a[2]=i=>e.onSave({favicon:i}))},null,8,["model-value","title","tip"])]),l("span",ee,o(e.$t("site.message.faviconTip")),1)]),_:1},8,["label"]),t(u,{"border-style":"dashed"}),t(d,{label:e.$t("site.field.admins")},{default:s(()=>[l("span",te,[m(o(e.site.admins?.join(", "))+" ",1),t(I,{"model-value":e.site?.admins||[],title:e.$t("site.title.editAdmins"),placeholder:e.$t("site.placeholder.admins"),tip:e.$t("site.message.adminsTip2"),min:1,"min-error-message":e.$t("site.message.atLeastOneAdmin"),onConfirm:a[3]||(a[3]=i=>e.onSave({admins:i}))},null,8,["model-value","title","placeholder","tip","min-error-message"])]),l("span",ie,o(e.$t("site.message.adminsTip")),1)]),_:1},8,["label"])]),_:1},8,["model"])]),_:1}),t(v,{shadow:"hover"},{default:s(()=>[l("h4",se,o(e.$t("site.title.seoConfig")),1),t(u),t(b,{model:e.site,class:"form","label-width":"auto",style:{"max-width":"600px"}},{default:s(()=>[t(d,{label:e.$t("site.field.description")},{default:s(()=>[l("span",le,[m(o(e.site.description)+" ",1),t(p,{"model-value":e.site.description,title:e.$t("site.title.editDescription"),placeholder:e.$t("site.placeholder.description"),onConfirm:a[4]||(a[4]=i=>e.onSave({description:i}))},null,8,["model-value","title","placeholder"])]),l("span",oe,o(e.$t("site.message.descriptionTip")),1)]),_:1},8,["label"]),t(d,{label:e.$t("site.field.keywords")},{default:s(()=>[l("span",ae,[m(o(e.site.keywords?.join(", "))+" ",1),t(I,{"model-value":e.site?.keywords||[],title:e.$t("site.title.editKeywords"),placeholder:e.$t("site.placeholder.keywords"),tip:e.$t("site.message.keywordsTip2"),onConfirm:a[5]||(a[5]=i=>e.onSave({keywords:i}))},null,8,["model-value","title","placeholder","tip"])]),l("span",de,o(e.$t("site.message.keywordsTip")),1)]),_:1},8,["label"])]),_:1},8,["model"])]),_:1})]),_:1}),t(f,{md:12,xs:24},{default:s(()=>[t(v,{shadow:"hover",class:"mb-4"},{default:s(()=>[l("h4",ne,o(e.$t("site.title.distributionConfig")),1),t(u),t(b,{model:e.site,class:"form","label-width":"auto",style:{"max-width":"600px"}},{default:s(()=>[t(d,{label:e.$t("site.field.distributionDefaultInviterId")},{default:s(()=>[m(o(e.site.distribution?.default_inviter_id)+" ",1),t(p,{"model-value":e.site.distribution?.default_inviter_id,title:e.$t("site.title.editDistributionDefaultInviterId"),placeholder:e.$t("site.placeholder.editDistributionDefaultInviterId"),onConfirm:a[6]||(a[6]=i=>e.onSave({distribution:{...e.site.distribution,default_inviter_id:i}}))},null,8,["model-value","title","placeholder"]),l("span",re,o(e.$t("site.message.distributionDefaultInviterIdTip")),1)]),_:1},8,["label"]),t(d,{label:e.$t("site.field.distributionForceInviterId")},{default:s(()=>[m(o(e.site.distribution?.force_inviter_id)+" ",1),t(p,{"model-value":e.site.distribution?.force_inviter_id,title:e.$t("site.title.editDistributionForceInviterId"),placeholder:e.$t("site.placeholder.editDistributionForceInviterId"),onConfirm:a[7]||(a[7]=i=>e.onSave({distribution:{...e.site.distribution,force_inviter_id:i}}))},null,8,["model-value","title","placeholder"]),l("span",me,o(e.$t("site.message.distributionForceInviterIdTip")),1)]),_:1},8,["label"])]),_:1},8,["model"])]),_:1}),t(v,{shadow:"hover"},{default:s(()=>[l("h4",ue,o(e.$t("site.title.featuresConfig")),1),t(u),t(b,{model:e.site,class:"form","label-width":"auto",style:{"max-width":"600px"}},{default:s(()=>[(g(),y(W,null,Q(["chat","midjourney","qrart","suno","luma","pika","kling","flux","hailuo","headshots","support"],(i,S)=>t(d,{key:S,label:e.$t("site.field.features"+i.charAt(0).toUpperCase()+i.slice(1))},{default:s(()=>[l("div",pe,[t(w,{"model-value":e.site.features[i]?.enabled||!1,"inline-prompt":"","active-text":e.$t("site.button.enabled"),"inactive-text":e.$t("site.button.disabled"),"onUpdate:modelValue":r=>e.onSave({features:{...e.site.features,[i]:{...e.site.features[i],enabled:r}}})},null,8,["model-value","active-text","inactive-text","onUpdate:modelValue"])]),l("span",fe,o(e.$t("site.message.features"+i.charAt(0).toUpperCase()+i.slice(1))),1),i==="support"?k((g(),y("div",be,[t(d,{label:"WeChat"},{default:s(()=>[t(w,{"model-value":e.site.features[i]?.wechat?.enabled||!1,"inline-prompt":"","active-text":e.$t("site.button.enabled"),"inactive-text":e.$t("site.button.disabled"),"onUpdate:modelValue":r=>e.onSave({features:{...e.site.features,[i]:{...e.site.features[i],wechat:{...e.site.features[i]?.wechat,enabled:r}}}})},null,8,["model-value","active-text","inactive-text","onUpdate:modelValue"])]),_:2},1024),k(t(d,{label:e.$t("site.field.qr")},{default:s(()=>[l("span",ve,[t(c,{src:e.site.features[i]?.wechat?.qr},null,8,["src"]),t($,{"model-value":e.site.features[i]?.wechat?.qr,title:e.$t("site.title.editQR"),tip:e.$t("site.message.editQRTip"),onConfirm:r=>e.onSave({features:{...e.site.features,[i]:{...e.site.features[i],wechat:{...e.site.features[i]?.wechat,qr:r}}}})},null,8,["model-value","title","tip","onConfirm"])])]),_:2},1032,["label"]),[[C,e.site.features[i]?.wechat?.enabled]]),t(d,{label:"Discord"},{default:s(()=>[t(w,{"model-value":e.site.features[i]?.discord?.enabled||!1,"inline-prompt":"","active-text":e.$t("site.button.enabled"),"inactive-text":e.$t("site.button.disabled"),"onUpdate:modelValue":r=>e.onSave({features:{...e.site.features,[i]:{...e.site.features[i],discord:{...e.site.features[i]?.discord,enabled:r}}}})},null,8,["model-value","active-text","inactive-text","onUpdate:modelValue"])]),_:2},1024),k(t(d,{label:e.$t("site.field.url")},{default:s(()=>[l("span",he,[m(o(e.site.features[i]?.discord?.url)+" ",1),t(p,{"model-value":e.site.features[i]?.discord?.url,title:e.$t("site.title.editUrl"),placeholder:e.$t("site.placeholder.editUrl"),onConfirm:r=>e.onSave({features:{...e.site.features,[i]:{...e.site.features[i],discord:{...e.site.features[i]?.discord,url:r}}}})},null,8,["model-value","title","placeholder","onConfirm"])])]),_:2},1032,["label"]),[[C,e.site.features[i]?.discord?.enabled]])],512)),[[C,e.site.features[i]?.enabled]]):H("",!0)]),_:2},1032,["label"])),64))]),_:1},8,["model"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}const Ve=F(K,[["render",ce],["__scopeId","data-v-61e4ae55"]]);export{Ve as default};
1
+ import{E as T,a as D,b as E}from"./EditArray-CBm5KJ-K.js";import{d as U,_ as F}from"./index-wwpmx6zW.js";import"./vendor-BVnhgPs4.js";import{H as V,j as _,I as q,s as A,w as j,i as B,x as L,m as N}from"./vendor-element-plus-BUOzLm6W.js";import{d as R,R as O,S as s,l as t,al as n,a as l,Z as o,Y as m,c as y,ai as Q,F as W,o as g,U as k,W as H,_ as C}from"./vendor-vue-Bb02XvLT.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";import"./vendor-dayjs-C40ROiFS.js";import"./vendor-katex-DHBGsivc.js";const K=R({name:"SiteIndex",components:{EditText:E,EditImage:D,EditArray:T,ElDivider:N,ElRow:L,ElImage:B,ElCol:j,ElCard:A,ElForm:q,ElSwitch:_,ElFormItem:V},data(){return{editing:{title:!1}}},computed:{site(){return this.$store.getters.site}},methods:{onSave(e){const a={...this.site,...e};U.update(this.site?.id,a).then(()=>{console.debug("getSite for id",this.site?.id),this.$store.dispatch("getSite")})}}}),Y={class:"title"},Z={class:"title"},z={class:"block w-full"},G={class:"block tip"},J={class:"block w-full"},M={class:"block tip"},P={class:"block w-full"},X={class:"block tip"},x={class:"block w-full"},ee={class:"block tip"},te={class:"block w-full"},ie={class:"block tip"},se={class:"title"},le={class:"block w-full"},oe={class:"block tip"},ae={class:"block w-full"},de={class:"block tip"},ne={class:"title"},re={class:"block tip"},me={class:"block tip"},ue={class:"title"},pe={class:"w-full"},fe={class:"block tip w-full"},be={key:0},ve={class:"block w-full"},he={class:"block w-full"};function ce(e,a,$e,we,ge,ke){const f=n("el-col"),h=n("el-row"),u=n("el-divider"),d=n("el-form-item"),p=n("edit-text"),c=n("el-image"),$=n("edit-image"),I=n("edit-array"),b=n("el-form"),v=n("el-card"),w=n("el-switch");return g(),O(h,{class:"panel"},{default:s(()=>[t(f,{span:24},{default:s(()=>[t(h,null,{default:s(()=>[t(f,{span:24},{default:s(()=>[l("h2",Y,o(e.$t("common.title.site")),1)]),_:1})]),_:1}),t(h,{gutter:15},{default:s(()=>[t(f,{md:12,xs:24},{default:s(()=>[t(v,{shadow:"hover",class:"mb-4"},{default:s(()=>[l("h4",Z,o(e.$t("site.title.basicConfig")),1),t(u),t(b,{model:e.site,class:"form","label-width":"auto",style:{"max-width":"600px"}},{default:s(()=>[t(d,{label:e.$t("site.field.origin")},{default:s(()=>[l("span",z,o(e.site.origin),1),l("span",G,o(e.$t("site.message.originTip")),1)]),_:1},8,["label"]),t(d,{label:e.$t("site.field.title")},{default:s(()=>[l("span",J,[m(o(e.site.title)+" ",1),t(p,{"model-value":e.site.title,title:e.$t("site.title.editTitle"),placeholder:e.$t("site.placeholder.title"),onConfirm:a[0]||(a[0]=i=>e.onSave({title:i}))},null,8,["model-value","title","placeholder"])]),l("span",M,o(e.$t("site.message.titleTip")),1)]),_:1},8,["label"]),t(d,{label:e.$t("site.field.logo")},{default:s(()=>[l("span",P,[t(c,{src:e.site.logo,class:"logo"},null,8,["src"]),t($,{"model-value":e.site.logo,title:e.$t("site.title.editLogo"),tip:e.$t("site.message.editLogoTip"),onConfirm:a[1]||(a[1]=i=>e.onSave({logo:i}))},null,8,["model-value","title","tip"])]),l("span",X,o(e.$t("site.message.logoTip")),1)]),_:1},8,["label"]),t(d,{label:e.$t("site.field.favicon")},{default:s(()=>[l("span",x,[t(c,{src:e.site.favicon,class:"favicon"},null,8,["src"]),t($,{"model-value":e.site.favicon,title:e.$t("site.title.editFavicon"),tip:e.$t("site.message.editFaviconTip"),onConfirm:a[2]||(a[2]=i=>e.onSave({favicon:i}))},null,8,["model-value","title","tip"])]),l("span",ee,o(e.$t("site.message.faviconTip")),1)]),_:1},8,["label"]),t(u,{"border-style":"dashed"}),t(d,{label:e.$t("site.field.admins")},{default:s(()=>[l("span",te,[m(o(e.site.admins?.join(", "))+" ",1),t(I,{"model-value":e.site?.admins||[],title:e.$t("site.title.editAdmins"),placeholder:e.$t("site.placeholder.admins"),tip:e.$t("site.message.adminsTip2"),min:1,"min-error-message":e.$t("site.message.atLeastOneAdmin"),onConfirm:a[3]||(a[3]=i=>e.onSave({admins:i}))},null,8,["model-value","title","placeholder","tip","min-error-message"])]),l("span",ie,o(e.$t("site.message.adminsTip")),1)]),_:1},8,["label"])]),_:1},8,["model"])]),_:1}),t(v,{shadow:"hover"},{default:s(()=>[l("h4",se,o(e.$t("site.title.seoConfig")),1),t(u),t(b,{model:e.site,class:"form","label-width":"auto",style:{"max-width":"600px"}},{default:s(()=>[t(d,{label:e.$t("site.field.description")},{default:s(()=>[l("span",le,[m(o(e.site.description)+" ",1),t(p,{"model-value":e.site.description,title:e.$t("site.title.editDescription"),placeholder:e.$t("site.placeholder.description"),onConfirm:a[4]||(a[4]=i=>e.onSave({description:i}))},null,8,["model-value","title","placeholder"])]),l("span",oe,o(e.$t("site.message.descriptionTip")),1)]),_:1},8,["label"]),t(d,{label:e.$t("site.field.keywords")},{default:s(()=>[l("span",ae,[m(o(e.site.keywords?.join(", "))+" ",1),t(I,{"model-value":e.site?.keywords||[],title:e.$t("site.title.editKeywords"),placeholder:e.$t("site.placeholder.keywords"),tip:e.$t("site.message.keywordsTip2"),onConfirm:a[5]||(a[5]=i=>e.onSave({keywords:i}))},null,8,["model-value","title","placeholder","tip"])]),l("span",de,o(e.$t("site.message.keywordsTip")),1)]),_:1},8,["label"])]),_:1},8,["model"])]),_:1})]),_:1}),t(f,{md:12,xs:24},{default:s(()=>[t(v,{shadow:"hover",class:"mb-4"},{default:s(()=>[l("h4",ne,o(e.$t("site.title.distributionConfig")),1),t(u),t(b,{model:e.site,class:"form","label-width":"auto",style:{"max-width":"600px"}},{default:s(()=>[t(d,{label:e.$t("site.field.distributionDefaultInviterId")},{default:s(()=>[m(o(e.site.distribution?.default_inviter_id)+" ",1),t(p,{"model-value":e.site.distribution?.default_inviter_id,title:e.$t("site.title.editDistributionDefaultInviterId"),placeholder:e.$t("site.placeholder.editDistributionDefaultInviterId"),onConfirm:a[6]||(a[6]=i=>e.onSave({distribution:{...e.site.distribution,default_inviter_id:i}}))},null,8,["model-value","title","placeholder"]),l("span",re,o(e.$t("site.message.distributionDefaultInviterIdTip")),1)]),_:1},8,["label"]),t(d,{label:e.$t("site.field.distributionForceInviterId")},{default:s(()=>[m(o(e.site.distribution?.force_inviter_id)+" ",1),t(p,{"model-value":e.site.distribution?.force_inviter_id,title:e.$t("site.title.editDistributionForceInviterId"),placeholder:e.$t("site.placeholder.editDistributionForceInviterId"),onConfirm:a[7]||(a[7]=i=>e.onSave({distribution:{...e.site.distribution,force_inviter_id:i}}))},null,8,["model-value","title","placeholder"]),l("span",me,o(e.$t("site.message.distributionForceInviterIdTip")),1)]),_:1},8,["label"])]),_:1},8,["model"])]),_:1}),t(v,{shadow:"hover"},{default:s(()=>[l("h4",ue,o(e.$t("site.title.featuresConfig")),1),t(u),t(b,{model:e.site,class:"form","label-width":"auto",style:{"max-width":"600px"}},{default:s(()=>[(g(),y(W,null,Q(["chat","midjourney","qrart","nanobanana","seedream","seedance","suno","luma","pika","kling","flux","hailuo","headshots","support"],(i,S)=>t(d,{key:S,label:e.$t("site.field.features"+i.charAt(0).toUpperCase()+i.slice(1))},{default:s(()=>[l("div",pe,[t(w,{"model-value":e.site.features[i]?.enabled||!1,"inline-prompt":"","active-text":e.$t("site.button.enabled"),"inactive-text":e.$t("site.button.disabled"),"onUpdate:modelValue":r=>e.onSave({features:{...e.site.features,[i]:{...e.site.features[i],enabled:r}}})},null,8,["model-value","active-text","inactive-text","onUpdate:modelValue"])]),l("span",fe,o(e.$t("site.message.features"+i.charAt(0).toUpperCase()+i.slice(1))),1),i==="support"?k((g(),y("div",be,[t(d,{label:"WeChat"},{default:s(()=>[t(w,{"model-value":e.site.features[i]?.wechat?.enabled||!1,"inline-prompt":"","active-text":e.$t("site.button.enabled"),"inactive-text":e.$t("site.button.disabled"),"onUpdate:modelValue":r=>e.onSave({features:{...e.site.features,[i]:{...e.site.features[i],wechat:{...e.site.features[i]?.wechat,enabled:r}}}})},null,8,["model-value","active-text","inactive-text","onUpdate:modelValue"])]),_:2},1024),k(t(d,{label:e.$t("site.field.qr")},{default:s(()=>[l("span",ve,[t(c,{src:e.site.features[i]?.wechat?.qr},null,8,["src"]),t($,{"model-value":e.site.features[i]?.wechat?.qr,title:e.$t("site.title.editQR"),tip:e.$t("site.message.editQRTip"),onConfirm:r=>e.onSave({features:{...e.site.features,[i]:{...e.site.features[i],wechat:{...e.site.features[i]?.wechat,qr:r}}}})},null,8,["model-value","title","tip","onConfirm"])])]),_:2},1032,["label"]),[[C,e.site.features[i]?.wechat?.enabled]]),t(d,{label:"Discord"},{default:s(()=>[t(w,{"model-value":e.site.features[i]?.discord?.enabled||!1,"inline-prompt":"","active-text":e.$t("site.button.enabled"),"inactive-text":e.$t("site.button.disabled"),"onUpdate:modelValue":r=>e.onSave({features:{...e.site.features,[i]:{...e.site.features[i],discord:{...e.site.features[i]?.discord,enabled:r}}}})},null,8,["model-value","active-text","inactive-text","onUpdate:modelValue"])]),_:2},1024),k(t(d,{label:e.$t("site.field.url")},{default:s(()=>[l("span",he,[m(o(e.site.features[i]?.discord?.url)+" ",1),t(p,{"model-value":e.site.features[i]?.discord?.url,title:e.$t("site.title.editUrl"),placeholder:e.$t("site.placeholder.editUrl"),onConfirm:r=>e.onSave({features:{...e.site.features,[i]:{...e.site.features[i],discord:{...e.site.features[i]?.discord,url:r}}}})},null,8,["model-value","title","placeholder","onConfirm"])])]),_:2},1032,["label"]),[[C,e.site.features[i]?.discord?.enabled]])],512)),[[C,e.site.features[i]?.enabled]]):H("",!0)]),_:2},1032,["label"])),64))]),_:1},8,["model"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}const Ve=F(K,[["render",ce],["__scopeId","data-v-de742379"]]);export{Ve as default};
@@ -0,0 +1 @@
1
+ import{bG as C}from"./vendor-BVnhgPs4.js";import{o as R,N as L,q as U,r as w,A as z,z as B,i as G,R as D,S as j,B as M,T as O,G as q}from"./vendor-element-plus-BUOzLm6W.js";import{d as v,c as l,a as r,l as s,P as A,S as d,al as o,o as a,Z as i,Y as _,F as T,ai as I,R as S,V,b as N,W as $}from"./vendor-vue-Bb02XvLT.js";import{_ as b,U as F,bA as H,a8 as Z,Z as W,a4 as Y,a5 as E}from"./index-wwpmx6zW.js";import{I as J,S as K}from"./ScrollList-CZI70Mqs.js";import{I as Q}from"./ImagePreview-CGACVsa5.js";import{A as X}from"./Status-C8yB_Nxb.js";import{C as x}from"./CopyToClipboard-BqFSadU9.js";import{l as ee}from"./pagination-dbPQoMuV.js";import"./vendor-dayjs-C40ROiFS.js";import"./vendor-katex-DHBGsivc.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";const se=v({name:"LayoutHeadshots",components:{ElDrawer:L,ElButton:R,FontAwesomeIcon:C},data(){return{drawer:!1}}}),te={class:"main flex flex-row flex-1"},ae={class:"config w-[300px] h-full overflow-y-scroll border-r border-[var(--el-border-color)]"},oe={class:"result h-full p-[15px] flex-1 flex flex-col"};function ne(e,t,m,h,k,y){const p=o("font-awesome-icon"),u=o("el-button"),n=o("el-drawer");return a(),l("div",te,[r("div",ae,[A(e.$slots,"config",{},void 0,!0)]),r("div",oe,[A(e.$slots,"result",{},void 0,!0)]),s(u,{circle:"",class:"menu",onClick:t[0]||(t[0]=c=>e.drawer=!0)},{default:d(()=>[s(p,{icon:"fa-solid fa-gear"})]),_:1}),s(n,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=c=>e.drawer=c),"with-header":!1,size:"340px",class:"drawer"},{default:d(()=>[A(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ie=b(se,[["render",ne],["__scopeId","data-v-21e11492"]]),le=v({name:"ImageUrlsInput",components:{ElUpload:U,ElButton:R,InfoIcon:J,ImagePreview:Q,FontAwesomeIcon:C},data(){return{fileList:[],uploadUrl:F()+"/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.headshots?.config?.image_urls},set(){const e=this.urls;this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,image_urls:e})}}},mounted(){this.value||(this.value=void 0),this.onSetImageUrls()},methods:{onExceed(){w.warning(this.$t("headshots.message.uploadImageExceed"))},onError(){w.error(this.$t("headshots.message.uploadImageError"))},onSetImageUrls(){const e=this.urls;this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,image_urls:e})},async onSuccess(){this.onSetImageUrls()}}}),re={class:"field"},ce={class:"title font-bold"},de={class:"upload-wrapper"};function pe(e,t,m,h,k,y){const p=o("image-preview"),u=o("font-awesome-icon"),n=o("el-button"),c=o("el-upload"),g=o("info-icon");return a(),l("div",re,[r("h2",ce,i(e.$t("headshots.name.endImageUrls")),1),r("div",de,[s(c,{"file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=f=>e.fileList=f),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",class:"value upload-wrapper",limit:2,multiple:!0,"list-type":"picture",action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:d(({file:f})=>[s(p,{url:f.url||f.response?.file_url,name:f.name,percentage:f.percentage,onRemove:P=>e.fileList.splice(e.fileList.indexOf(f),1)},null,8,["url","name","percentage","onRemove"])]),default:d(()=>[s(n,{size:"small",type:"primary",round:""},{default:d(()=>[s(u,{icon:"fa-solid fa-upload",class:"mr-1"}),_(" "+i(e.$t("headshots.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])]),s(g,{content:e.$t("headshots.description.endImageUrls"),class:"info"},null,8,["content"])])}const me=b(le,[["render",pe],["__scopeId","data-v-1690629a"]]),he="fast",ue=v({name:"ModeSelector",components:{ElRadioButton:B,ElRadioGroup:z},data(){return{options:[{label:this.$t("headshots.button.fast"),value:"fast"},{label:this.$t("headshots.button.relax"),value:"relax"}]}},computed:{value:{get(){return this.$store.state.headshots.config?.mode},set(e){console.debug("set mode",e),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots.config,mode:e})}}},mounted(){this.value||(this.value=he)}}),ge={class:"field"},fe={class:"title font-bold"};function _e(e,t,m,h,k,y){const p=o("el-radio-button"),u=o("el-radio-group");return a(),l("div",ge,[r("h2",fe,i(e.$t("headshots.name.mode")),1),s(u,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=n=>e.value=n),size:"small",class:"mode"},{default:d(()=>[(a(!0),l(T,null,I(e.options,n=>(a(),S(p,{key:n.value,label:n.value},{default:d(()=>[_(i(n.label),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])])}const $e=b(ue,[["render",_e],["__scopeId","data-v-a2a0d5fa"]]),ve=v({name:"StylizeSelector",components:{ElTabs:j,ElTabPane:D,ElImage:G},data(){return{tab:"styles",value:"",elements:{styles:{displayName:this.$t("headshots.styleCategory.styles"),items:[{image:"https://static.aipedias.com/aicamera/common/20241008/20241008202314260779439.png",label:this.$t("headshots.styleTag.malePportrait"),value:"male_portrait"},{image:"https://static.aipedias.com/aicamera/common/20241008/202410082022241e9755548.png",label:this.$t("headshots.styleTag.malePportrait2"),value:"male_portrait2"},{image:"https://static.aipedias.com/aicamera/common/20241101/20241101170130d78f66521.png",label:this.$t("headshots.styleTag.kindergarten"),value:"kindergarten"},{image:"https://static.aipedias.com/aicamera/common/20240923/20240923123233accf60398.webp",label:this.$t("headshots.styleTag.logoTshirt"),value:"logo_tshirt"},{image:"https://static.aipedias.com/aicamera/common/20241025/202410252012329472d0656.jpg",label:this.$t("headshots.styleTag.wedding"),value:"wedding"},{image:"https://static.aipedias.com/aicamera/common/20240915/20240915145045254931400.webp",label:this.$t("headshots.styleTag.businessPphoto"),value:"business_photo"},{image:"https://static.aipedias.com/aicamera/common/20240810/20240810194526040341795.jpg",label:this.$t("headshots.styleTag.bobSuit"),value:"bob_suit"},{image:"https://static.aipedias.com/aicamera/common/20240717/20240717152654e0b348173.webp",label:this.$t("headshots.styleTag.femalePortrait"),value:"female_portrait"}]}}}},watch:{value(e){console.debug("set template",e),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,template:e})}},mounted(){this.value||(this.value=""),console.debug("set template",this.value),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,template:this.value})},methods:{onToggle(e){this.value===e?this.value="":this.value=e,console.debug("set template",this.value),this.$store.commit("headshots/setConfig",{...this.$store.state.headshots?.config,template:this.value})}}}),be={class:"field"},ke=["onClick"],ye={class:"name"};function we(e,t,m,h,k,y){const p=o("el-image"),u=o("el-tab-pane"),n=o("el-tabs");return a(),l("div",be,[s(n,{modelValue:e.tab,"onUpdate:modelValue":t[0]||(t[0]=c=>e.tab=c)},{default:d(()=>[(a(!0),l(T,null,I(e.elements,(c,g)=>(a(),S(u,{key:g,label:c.displayName,name:g,class:"pane"},{default:d(()=>[(a(!0),l(T,null,I(c.items,(f,P)=>(a(),l("div",{key:P,class:V({item:!0,active:e.value===f.value}),onClick:_s=>e.onToggle(f.value)},[s(p,{src:f.image,fit:"fill",class:"preview"},null,8,["src"]),r("span",ye,i(f.label),1)],10,ke))),128))]),_:2},1032,["label","name"]))),128))]),_:1},8,["modelValue"])])}const Te=b(ve,[["render",we],["__scopeId","data-v-be4bd25d"]]),Ie=v({name:"PresetPanel",components:{ModeSelector:$e,ImageUrlsInput:me,ElButton:R,FontAwesomeIcon:C,ElementsSelector:Te},emits:["generate"],computed:{config(){return this.$store.state.headshots?.config}},methods:{onGenerate(){this.$emit("generate")}}}),Se={class:"panel"},Ve={class:"config"},Ee={class:"actions"};function Ce(e,t,m,h,k,y){const p=o("elements-selector"),u=o("mode-selector"),n=o("image-urls-input"),c=o("font-awesome-icon"),g=o("el-button");return a(),l("div",Se,[r("div",Ve,[s(p,{class:"mb-4"}),s(u,{class:"mb-4"}),s(n,{class:"mb-4"}),r("div",Ee,[s(g,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:d(()=>[s(c,{icon:"fa-solid fa-magic",class:"mr-2"}),_(" "+i(e.$t("headshots.button.generate")),1)]),_:1},8,["onClick"])])])])}const Ae=b(Ie,[["render",Ce],["__scopeId","data-v-78172a54"]]),Re=v({name:"ImageGallery",props:{modelValue:{type:Object,required:!0}},setup(e){return{images:N(()=>e.modelValue?.response?.data?.slice(0,2)||[]),viewImage:h=>{window.open(h,"_blank")}}}}),Pe={class:"image-gallery"},Ge=["src"],Le=["onClick"];function Ue(e,t,m,h,k,y){return a(),l("div",Pe,[(a(!0),l(T,null,I(e.images,(p,u)=>(a(),l("div",{key:u,class:"image-container"},[r("img",{src:p.image_url,alt:"Image"},null,8,Ge),p.image_url?(a(),l("button",{key:0,class:"view-button",onClick:n=>e.viewImage(p.image_url)},i(e.$t("headshots.button.viewImage")),9,Le)):$("",!0)]))),128))])}const ze=b(Re,[["render",Ue],["__scopeId","data-v-03641510"]]),Be=v({name:"TaskPreview",components:{ElImage:G,CopyToClipboard:x,FontAwesomeIcon:C,ElAlert:M,ImageGallery:ze},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.headshots?.application},config(){return this.$store.state.headshots?.config}},methods:{onDownload(e,t){e.stopPropagation(),console.log("on download"),window.open(t,"_blank")},onReload(e){const t=e.target,m=new URL(t.src),h=m.searchParams.get("retry");if(!h)m.searchParams.set("retry","1");else if(parseInt(h)<2)m.searchParams.set("retry",(parseInt(h)+1).toString());else return;t.src=m.toString()},onOpenVideo(e){window.open(e,"_blank")}}}),De={class:"preview"},je={class:"left"},Me={class:"main"},Oe={class:"bot"},qe={class:"datetime"},Ne={class:"info"},Fe={key:0,class:"prompt mt-2"},He={key:0},Ze={key:1},We={key:0,class:V({content:!0,failed:!0})},Ye={class:"image-wrapper"},Je={class:"description"},Ke={key:1,class:V({content:!0})},Qe={class:"description"},Xe={class:"description"},xe={class:"description"},es={key:2,class:V({content:!0})},ss={class:"description"},ts={key:3,class:V({content:!0})},as={class:"description"};function os(e,t,m,h,k,y){const p=o("el-image"),u=o("image-gallery"),n=o("font-awesome-icon"),c=o("copy-to-clipboard"),g=o("el-alert");return a(),l("div",De,[r("div",je,[s(p,{src:"https://cdn.acedata.cloud/isxyfw.png",class:"avatar"})]),r("div",Me,[r("div",Oe,[_(i(e.$t("headshots.name.headshotsBot"))+" ",1),r("span",qe,i(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),r("div",Ne,[e.modelValue?.request?.template?(a(),l("p",Fe,[_(i(e.modelValue?.request?.template)+" ",1),e.modelValue?.response?$("",!0):(a(),l("span",He," - ("+i(e.$t("headshots.status.pending"))+") ",1)),e.modelValue?.response?.status==="unknown"?(a(),l("span",Ze," - ("+i(e.$t("headshots.status.processing"))+") ",1)):$("",!0)])):$("",!0)]),e.modelValue?.response?.success===!0?(a(),l("div",We,[r("div",Ye,[s(u,{"model-value":e.modelValue},null,8,["model-value"])]),s(g,{closable:!1,class:"mt-2 success"},{default:d(()=>[r("p",Je,[s(n,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+i(e.$t("headshots.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),s(c,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])):$("",!0),e.modelValue?.response?.success===!1?(a(),l("div",Ke,[s(g,{closable:!1,class:"failure"},{template:d(()=>[s(n,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+i(e.$t("headshots.name.failure")),1)]),default:d(()=>[r("p",Qe,[s(n,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+i(e.$t("headshots.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),s(c,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),r("p",Xe,[s(n,{icon:"fa-solid fa-circle-info",class:"mr-1"}),_(" "+i(e.$t("headshots.name.failureReason"))+": "+i(e.modelValue?.response?.error?.message)+" ",1),s(c,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),r("p",xe,[s(n,{icon:"fa-solid fa-hashtag",class:"mr-1"}),_(" "+i(e.$t("headshots.name.traceId"))+": "+i(e.modelValue?.response?.trace_id)+" ",1),s(c,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])]),_:1})])):$("",!0),e.modelValue?.response?$("",!0):(a(),l("div",es,[s(g,{closable:!1,class:"info"},{template:d(()=>[s(n,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+i(e.$t("headshots.name.failure")),1)]),default:d(()=>[r("p",ss,[s(n,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+i(e.$t("headshots.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),s(c,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])),e.modelValue?.response?.status==="unknown"?(a(),l("div",ts,[s(g,{closable:!1,class:"info"},{template:d(()=>[s(n,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),_(" "+i(e.$t("headshots.name.failure")),1)]),default:d(()=>[r("p",as,[s(n,{icon:"fa-solid fa-magic",class:"mr-1"}),_(" "+i(e.$t("headshots.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),s(c,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])):$("",!0)])])}const ns=b(Be,[["render",os],["__scopeId","data-v-77229910"]]),is=v({name:"RecentPanel",components:{TaskPreview:ns,ElSkeleton:q,ElSkeletonItem:O,ScrollList:K},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.headshots?.tasks,items:this.$store.state.headshots?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),ls={key:0,class:"tasks"},rs={class:"left"},cs={class:"main"},ds={key:1,class:"tasks"},ps={key:2,class:"description"};function ms(e,t,m,h,k,y){const p=o("el-skeleton-item"),u=o("el-skeleton"),n=o("task-preview"),c=o("scroll-list");return a(),S(c,{ref:"scrollList",class:"panel recent",loading:e.loading,onReachTop:t[0]||(t[0]=g=>e.$emit("reach-top"))},{default:d(()=>[e.tasks?.items===void 0?(a(),l("div",ls,[(a(),l(T,null,I(3,g=>r("div",{key:g,class:"task placeholder"},[r("div",rs,[s(u,{animated:""},{template:d(()=>[s(p,{variant:"image",class:"avatar"})]),_:1})]),r("div",cs,[s(u,{animated:""},{template:d(()=>[s(p,{variant:"p",class:"title"}),s(p,{variant:"image",class:"icon"})]),_:1})])])),64))])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(a(),l("div",ds,[(a(!0),l(T,null,I(e.tasks?.items,(g,f)=>(a(),S(n,{key:f,"model-value":g,class:"preview"},null,8,["model-value"]))),128))])):$("",!0),e.tasks?.items?.length===0?(a(),l("p",ps,i(e.$t("headshots.message.noTasks")),1)):$("",!0)]),_:1},8,["loading"])}const hs=b(is,[["render",ms],["__scopeId","data-v-ffd55c16"]]),us="https://webhook.acedata.cloud/headshots",gs=v({name:"HeadshotsIndex",components:{ConfigPanel:Ae,Layout:ie,ApplicationStatus:X,RecentPanel:hs},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.headshots?.status?.getApplications===E.Request},tasksLoading(){return this.$store.state.headshots?.status?.getTasks===E.Request||this.fetchingTasks},service(){return this.$store.state.headshots.service},credential(){return this.$store.state.headshots.credential},config(){return this.$store.state.headshots.config},initializing(){return this.$store.state.headshots.status.getApplications===E.Request},needApply(){return this.$store.state.headshots.status.getApplications===E.Success&&!this.application},application(){return this.$store.state.headshots.application},applications(){return this.$store.state.headshots.applications},tasks(){return this.$store.state.headshots.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 ee({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("headshots/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("headshots/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},onApply(){W.create({application:this.application}).then(({data:e})=>{this.application=e,w.success(this.$t("application.message.applySuccessfully"))}).catch(e=>{e?.response?.data?.code===Y&&w.error(this.$t("application.message.alreadyApplied"))})},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:m,createdAtMax:h}=e||{};console.debug("limit",t,"createdAtMin",m,"createdAtMax",h),this.fetchingTasks=!0;try{await this.$store.dispatch("headshots/getTasks",{limit:t,createdAtMin:m,createdAtMax:h})}finally{this.fetchingTasks=!1}},async onGeneratePicture(){const e={...this.config,callback_url:us},t=this.credential?.token;if(!t){console.error("no token specified");return}w.info(this.$t("headshots.message.startingTask")),H.generate(e,{token:t}).then(()=>{w.success(this.$t("headshots.message.startTaskSuccess")),this.$store.commit("headshots/setConfig",{config:void 0})}).catch(m=>{m?.response?.data?.error?.code===Z?w.error(this.$t("headshots.message.usedUp")):w.error(this.$t("headshots.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function fs(e,t,m,h,k,y){const p=o("config-panel"),u=o("application-status"),n=o("recent-panel"),c=o("layout");return a(),S(c,null,{config:d(()=>[s(p,{onGenerate:e.onGeneratePicture},null,8,["onGenerate"])]),result:d(()=>[s(u,{initializing:e.initializing,application:e.application,applications:e.applications,service:e.service,"need-apply":e.needApply,class:"mb-4",onRefresh:e.onGetApplication,onSelect:t[0]||(t[0]=g=>e.$store.dispatch("headshots/setApplication",g))},null,8,["initializing","application","applications","service","need-apply","onRefresh"]),s(n,{ref:"recentPanel",class:"panel recent",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const Rs=b(gs,[["render",fs],["__scopeId","data-v-6cafffbd"]]);export{Rs as default};
@@ -1 +1 @@
1
- import{bG as C}from"./vendor-BVnhgPs4.js";import{o as V,N as R,J as A,K as B,q as M,r as S,p as j,n as D,B as q,i as O}from"./vendor-element-plus-BUOzLm6W.js";import{d as k,c,a as i,l as t,P as E,S as u,al as o,o as a,Z as n,F as L,ai as U,R as v,Y as p,W as h,V as T,a1 as z}from"./vendor-vue-Bb02XvLT.js";import{_ as b,bw as F,S as N,bx as H,a6 as K,a3 as G}from"./index-Dn72Szn0.js";import{I as P,S as J}from"./ScrollList-BkRXLc_a.js";import{I as W}from"./ImagePreview-BnQhS1sy.js";import{C as Y,N as Z}from"./NoTasks-3Z1b05wG.js";import{a as Q}from"./price-7kPhVK1M.js";import{C as X}from"./CopyToClipboard-CBliPgeP.js";import{V as x}from"./VideoPlayer-Ci_7fcAo.js";import{B as ee}from"./BotPlaceholder-Drm6xiuT.js";import{l as te}from"./pagination-dbPQoMuV.js";import"./vendor-dayjs-C40ROiFS.js";import"./vendor-katex-DHBGsivc.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";const oe=k({name:"LayoutHailuo",components:{ElDrawer:R,ElButton:V,FontAwesomeIcon:C},data(){return{drawer:!1}}}),se={class:"main flex flex-row flex-1"},ae={class:"config w-[300px] h-full overflow-y-scroll border-r border-[var(--el-border-color)]"},ne={class:"result h-full p-[15px] flex-1 flex flex-col"};function le(e,s,f,_,w,y){const d=o("font-awesome-icon"),m=o("el-button"),r=o("el-drawer");return a(),c("div",se,[i("div",ae,[E(e.$slots,"config",{},void 0,!0)]),i("div",ne,[E(e.$slots,"result",{},void 0,!0)]),t(m,{circle:"",class:"menu",onClick:s[0]||(s[0]=g=>e.drawer=!0)},{default:u(()=>[t(d,{icon:"fa-solid fa-magic"})]),_:1}),t(r,{modelValue:e.drawer,"onUpdate:modelValue":s[1]||(s[1]=g=>e.drawer=g),direction:"ltr","with-header":!1,size:"340px"},{default:u(()=>[E(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ie=b(oe,[["render",le],["__scopeId","data-v-096d9205"]]),re=k({name:"ModelSelector",components:{ElSelect:B,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:{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)}}),ce={class:"field"},ue={class:"title font-bold"},de={class:"float-left"};function me(e,s,f,_,w,y){const d=o("el-option"),m=o("el-select");return a(),c("div",ce,[i("h2",ue,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(L,null,U(e.options,r=>(a(),v(d,{key:r.value,label:r.label,value:r.value},{default:u(()=>[i("span",de,n(r.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const pe=b(re,[["render",me],["__scopeId","data-v-30ff1e69"]]),he=k({name:"StartImageUrlInput",components:{ElUpload:M,ElButton:V,InfoIcon:P,ImagePreview:W},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()}}}),fe={class:"relative"},_e={class:"flex justify-between"},ge={class:"flex justify-start items-center"},$e={class:"text-sm font-bold"};function ve(e,s,f,_,w,y){const d=o("info-icon"),m=o("image-preview"),r=o("el-button"),g=o("el-upload");return a(),c("div",fe,[i("div",_e,[i("div",ge,[i("span",$e,n(e.$t("hailuo.name.startImageUrl")),1),t(d,{content:e.$t("hailuo.description.startImageUrl"),class:"info"},null,8,["content"])])]),t(g,{"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=b(he,[["render",ve],["__scopeId","data-v-a906df80"]]),be="",we=k({name:"PromptInput",components:{ElInput:j,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=be)}}),ye={class:"field"},Se={class:"box"},Ve={class:"title font-bold"};function Te(e,s,f,_,w,y){const d=o("info-icon"),m=o("el-input");return a(),c("div",ye,[i("div",Se,[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"),maxlength:300,"show-word-limit":""},null,8,["modelValue","placeholder"])])}const Ie=b(we,[["render",Te],["__scopeId","data-v-d54ffa64"]]),Ee=k({name:"PresetPanel",components:{ElButton:V,FontAwesomeIcon:C,PromptInput:Ie,StartImageUrlInput:ke,ModelSelector:pe,Consumption:Y},emits:["generate"],computed:{config(){return this.$store.state.hailuo?.config},consumption(){return Q(this.config,this.service?.cost)},service(){return this.$store.state.hailuo?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Le={class:"flex flex-col h-full"},Ce={class:"flex-1 overflow-y-auto p-[15px]"},Ge={class:"flex flex-col items-center justify-center px-[15px] pb-[15px]"};function Ue(e,s,f,_,w,y){const d=o("prompt-input"),m=o("model-selector"),r=o("start-image-url-input"),g=o("consumption"),l=o("font-awesome-icon"),$=o("el-button");return a(),c("div",Le,[i("div",Ce,[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(g,{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 Pe=b(Ee,[["render",Ue]]),Re=k({name:"TaskPreview",components:{ElImage:O,CopyToClipboard:X,FontAwesomeIcon:C,ElAlert:q,VideoPlayer:x,ElTooltip:D,ElButton:V},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")}}}),Ae={class:"preview"},Be={class:"left"},Me={class:"main"},je={class:"bot"},De={class:"datetime"},qe={class:"info"},Oe={key:0,class:"prompt mt-2"},ze={key:0},Fe={key:1},Ne={key:0,class:T({content:!0,failed:!0})},He={key:0,class:"mb-4"},Ke={key:1,class:T({operations:!0,"mt-2":!0})},Je={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"},Ye={key:1,class:T({content:!0})},Ze={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Qe={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Xe={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},xe={key:2,class:T({content:!0})},et={class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function tt(e,s,f,_,w,y){const d=o("el-image"),m=o("video-player"),r=o("el-button"),g=o("el-tooltip"),l=o("font-awesome-icon"),$=o("copy-to-clipboard"),I=o("el-alert");return a(),c("div",Ae,[i("div",Be,[t(d,{src:"https://cdn.acedata.cloud/0qg4gp.png",class:"avatar"})]),i("div",Me,[i("div",je,[p(n(e.$t("hailuo.name.hailuoBot"))+" ",1),i("span",De,n(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),i("div",qe,[e.modelValue?.request?.prompt?(a(),c("p",Oe,[p(n(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?h("",!0):(a(),c("span",ze," - ("+n(e.$t("hailuo.status.pending"))+") ",1)),e.video?.state==="processing"||e.video?.state==="pending"||e.video?.state==="running"?(a(),c("span",Fe," - ("+n(e.$t("hailuo.status.processing"))+") ",1)):h("",!0)])):h("",!0)]),e.modelValue?.response?.success===!0?(a(),c("div",Ne,[e.video?.video_url?(a(),c("div",He,[t(m,{src:e.video?.video_url},null,8,["src"])])):h("",!0),e.video?(a(),c("div",Ke,[t(g,{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(dt=>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",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",Ye,[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",Ze,[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",Qe,[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",xe,[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",et,[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 ot=b(Re,[["render",tt],["__scopeId","data-v-72acd507"]]),st=k({name:"RecentPanel",components:{TaskPreview:ot,BotPlaceholder:ee,NoTasks:Z,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?.()}}}),at={key:0},nt={key:2,class:"w-full h-full flex items-center justify-center"};function lt(e,s,f,_,w,y){const d=o("bot-placeholder"),m=o("task-preview"),r=o("scroll-list"),g=o("no-tasks");return a(),c(L,null,[e.tasks?.items===void 0?(a(),c("div",at,[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(L,null,U(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",nt,[t(g)])):h("",!0)],64)}const it=b(st,[["render",lt]]),rt="https://webhook.acedata.cloud/hailuo",ct=k({name:"HailuoIndex",components:{ConfigPanel:Pe,Layout:ie,RecentPanel:it},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===G.Request},tasksLoading(){return this.$store.state.hailuo?.status?.getTasks===G.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 te({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:_}=e||{};console.debug("limit",s,"createdAtMin",f,"createdAtMax",_),this.fetchingTasks=!0;try{await this.$store.dispatch("hailuo/getTasks",{limit:s,createdAtMin:f,createdAtMax:_})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:rt},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 ut(e,s,f,_,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 Et=b(ct,[["render",ut]]);export{Et as default};
1
+ import{bG as C}from"./vendor-BVnhgPs4.js";import{o as V,N as R,J as A,K as B,q as M,r as S,p as j,n as D,B as q,i as z}from"./vendor-element-plus-BUOzLm6W.js";import{d as k,c,a as i,l as t,P as E,S as u,al as o,o as a,Z as n,F as L,ai as G,R as v,Y as p,W as h,V as T,a1 as O}from"./vendor-vue-Bb02XvLT.js";import{_ as b,by as F,U as N,bz as H,a8 as K,a5 as U}from"./index-wwpmx6zW.js";import{I as P,S as J}from"./ScrollList-CZI70Mqs.js";import{I as W}from"./ImagePreview-CGACVsa5.js";import{C as Y,N as Z}from"./NoTasks-DjsZiiOP.js";import{a as Q}from"./price-BhobpaMO.js";import{C as X}from"./CopyToClipboard-BqFSadU9.js";import{V as x}from"./VideoPlayer-B9VH6gxB.js";import{B as ee}from"./BotPlaceholder-BA4i65l4.js";import{l as te}from"./pagination-dbPQoMuV.js";import"./vendor-dayjs-C40ROiFS.js";import"./vendor-katex-DHBGsivc.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-D4avMJL1.js";const oe=k({name:"LayoutHailuo",components:{ElDrawer:R,ElButton:V,FontAwesomeIcon:C},data(){return{drawer:!1}}}),se={class:"main flex flex-row flex-1"},ae={class:"config w-[300px] h-full overflow-y-scroll border-r border-[var(--el-border-color)]"},ne={class:"result h-full p-[15px] flex-1 flex flex-col"};function le(e,s,f,_,w,y){const d=o("font-awesome-icon"),m=o("el-button"),r=o("el-drawer");return a(),c("div",se,[i("div",ae,[E(e.$slots,"config",{},void 0,!0)]),i("div",ne,[E(e.$slots,"result",{},void 0,!0)]),t(m,{circle:"",class:"menu",onClick:s[0]||(s[0]=g=>e.drawer=!0)},{default:u(()=>[t(d,{icon:"fa-solid fa-magic"})]),_:1}),t(r,{modelValue:e.drawer,"onUpdate:modelValue":s[1]||(s[1]=g=>e.drawer=g),direction:"ltr","with-header":!1,size:"340px"},{default:u(()=>[E(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ie=b(oe,[["render",le],["__scopeId","data-v-096d9205"]]),re=k({name:"ModelSelector",components:{ElSelect:B,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:{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)}}),ce={class:"field"},ue={class:"title font-bold"},de={class:"float-left"};function me(e,s,f,_,w,y){const d=o("el-option"),m=o("el-select");return a(),c("div",ce,[i("h2",ue,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(L,null,G(e.options,r=>(a(),v(d,{key:r.value,label:r.label,value:r.value},{default:u(()=>[i("span",de,n(r.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const pe=b(re,[["render",me],["__scopeId","data-v-30ff1e69"]]),he=k({name:"StartImageUrlInput",components:{ElUpload:M,ElButton:V,InfoIcon:P,ImagePreview:W},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()}}}),fe={class:"relative"},_e={class:"flex justify-between"},ge={class:"flex justify-start items-center"},$e={class:"text-sm font-bold"};function ve(e,s,f,_,w,y){const d=o("info-icon"),m=o("image-preview"),r=o("el-button"),g=o("el-upload");return a(),c("div",fe,[i("div",_e,[i("div",ge,[i("span",$e,n(e.$t("hailuo.name.startImageUrl")),1),t(d,{content:e.$t("hailuo.description.startImageUrl"),class:"info"},null,8,["content"])])]),t(g,{"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=b(he,[["render",ve],["__scopeId","data-v-a906df80"]]),be="",we=k({name:"PromptInput",components:{ElInput:j,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=be)}}),ye={class:"field"},Se={class:"box"},Ve={class:"title font-bold"};function Te(e,s,f,_,w,y){const d=o("info-icon"),m=o("el-input");return a(),c("div",ye,[i("div",Se,[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"),maxlength:300,"show-word-limit":""},null,8,["modelValue","placeholder"])])}const Ie=b(we,[["render",Te],["__scopeId","data-v-d54ffa64"]]),Ee=k({name:"PresetPanel",components:{ElButton:V,FontAwesomeIcon:C,PromptInput:Ie,StartImageUrlInput:ke,ModelSelector:pe,Consumption:Y},emits:["generate"],computed:{config(){return this.$store.state.hailuo?.config},consumption(){return Q(this.config,this.service?.cost)},service(){return this.$store.state.hailuo?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Le={class:"flex flex-col h-full"},Ce={class:"flex-1 overflow-y-auto p-[15px]"},Ue={class:"flex flex-col items-center justify-center px-[15px] pb-[15px]"};function Ge(e,s,f,_,w,y){const d=o("prompt-input"),m=o("model-selector"),r=o("start-image-url-input"),g=o("consumption"),l=o("font-awesome-icon"),$=o("el-button");return a(),c("div",Le,[i("div",Ce,[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",Ue,[t(g,{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 Pe=b(Ee,[["render",Ge]]),Re=k({name:"TaskPreview",components:{ElImage:z,CopyToClipboard:X,FontAwesomeIcon:C,ElAlert:q,VideoPlayer:x,ElTooltip:D,ElButton:V},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")}}}),Ae={class:"preview"},Be={class:"left"},Me={class:"main"},je={class:"bot"},De={class:"datetime"},qe={class:"info"},ze={key:0,class:"prompt mt-2"},Oe={key:0},Fe={key:1},Ne={key:0,class:T({content:!0,failed:!0})},He={key:0,class:"mb-4"},Ke={key:1,class:T({operations:!0,"mt-2":!0})},Je={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"},Ye={key:1,class:T({content:!0})},Ze={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Qe={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Xe={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},xe={key:2,class:T({content:!0})},et={class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function tt(e,s,f,_,w,y){const d=o("el-image"),m=o("video-player"),r=o("el-button"),g=o("el-tooltip"),l=o("font-awesome-icon"),$=o("copy-to-clipboard"),I=o("el-alert");return a(),c("div",Ae,[i("div",Be,[t(d,{src:"https://cdn.acedata.cloud/0qg4gp.png",class:"avatar"})]),i("div",Me,[i("div",je,[p(n(e.$t("hailuo.name.hailuoBot"))+" ",1),i("span",De,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",Oe," - ("+n(e.$t("hailuo.status.pending"))+") ",1)),e.video?.state==="processing"||e.video?.state==="pending"||e.video?.state==="running"?(a(),c("span",Fe," - ("+n(e.$t("hailuo.status.processing"))+") ",1)):h("",!0)])):h("",!0)]),e.modelValue?.response?.success===!0?(a(),c("div",Ne,[e.video?.video_url?(a(),c("div",He,[t(m,{src:e.video?.video_url},null,8,["src"])])):h("",!0),e.video?(a(),c("div",Ke,[t(g,{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]=O(dt=>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",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",Ye,[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",Ze,[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",Qe,[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",xe,[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",et,[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 ot=b(Re,[["render",tt],["__scopeId","data-v-72acd507"]]),st=k({name:"RecentPanel",components:{TaskPreview:ot,BotPlaceholder:ee,NoTasks:Z,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?.()}}}),at={key:0},nt={key:2,class:"w-full h-full flex items-center justify-center"};function lt(e,s,f,_,w,y){const d=o("bot-placeholder"),m=o("task-preview"),r=o("scroll-list"),g=o("no-tasks");return a(),c(L,null,[e.tasks?.items===void 0?(a(),c("div",at,[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(L,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",nt,[t(g)])):h("",!0)],64)}const it=b(st,[["render",lt]]),rt="https://webhook.acedata.cloud/hailuo",ct=k({name:"HailuoIndex",components:{ConfigPanel:Pe,Layout:ie,RecentPanel:it},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 te({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:_}=e||{};console.debug("limit",s,"createdAtMin",f,"createdAtMax",_),this.fetchingTasks=!0;try{await this.$store.dispatch("hailuo/getTasks",{limit:s,createdAtMin:f,createdAtMax:_})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:rt},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 ut(e,s,f,_,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 Et=b(ct,[["render",ut]]);export{Et as default};
@@ -0,0 +1 @@
1
+ .panel[data-v-de742379]{padding:30px;background-color:var(--el-bg-color-page);overflow-y:auto}.panel h2.title[data-v-de742379]{font-size:26px;font-weight:700;margin-bottom:20px;color:var(--el-text-color-primary)}.panel h4.title[data-v-de742379]{font-size:20px;font-weight:700;margin-bottom:20px;color:var(--el-text-color-primary)}.panel .form .logo[data-v-de742379]{max-width:200px}.panel .form .tip[data-v-de742379]{color:var(--el-text-color-secondary);font-size:12px}