@acedatacloud/nexior 3.32.0 → 3.32.2

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 (69) hide show
  1. package/dist/assets/{Auth-C_-8Rmbi.js → Auth-CGEKiu-Z.js} +1 -1
  2. package/dist/assets/{BotPlaceholder-CYTkmKw0.js → BotPlaceholder-DryhpfyI.js} +1 -1
  3. package/dist/assets/{Callback-BXMrN7oa.js → Callback-DtvVEe4m.js} +1 -1
  4. package/dist/assets/{Console-dvF1ePGI.js → Console-DWlB6py-.js} +1 -1
  5. package/dist/assets/{Conversation-BtJwcr7Q.js → Conversation-Ct5n2GmN.js} +1 -1
  6. package/dist/assets/{CopyToClipboard-Dbge62aB.js → CopyToClipboard-D1FwD7Ay.js} +1 -1
  7. package/dist/assets/{Detail-DzreQ28r.js → Detail-C4CjoEt1.js} +2 -2
  8. package/dist/assets/{Detail-ChsLhRLm.css → Detail-shClIebZ.css} +1 -1
  9. package/dist/assets/{EditArray-kbszLFHD.js → EditArray-DaBF2vWk.js} +1 -1
  10. package/dist/assets/{Extra-BAOgVtPC.js → Extra-EfdGVpDK.js} +1 -1
  11. package/dist/assets/{FilePreview-BPPZvSzh.js → FilePreview-VFJ-XdCT.js} +1 -1
  12. package/dist/assets/{History-C-x_PgNo.js → History-BP4yRlfz.js} +1 -1
  13. package/dist/assets/{ImagePreview-DQ_Qb42v.js → ImagePreview-DR_hrXkE.js} +1 -1
  14. package/dist/assets/{ImageWrapper-C1ugqc_F.js → ImageWrapper-MeuTnPga.js} +1 -1
  15. package/dist/assets/{Index-BSdPGf98.js → Index-BHuxHDG6.js} +1 -1
  16. package/dist/assets/{Index-QJ6GILis.js → Index-BKd2bB-B.js} +1 -1
  17. package/dist/assets/{Index-KtLWHa0j.js → Index-BSvLdhfj.js} +1 -1
  18. package/dist/assets/{Index-0Q5i_LJ1.js → Index-BXTrrxMx.js} +1 -1
  19. package/dist/assets/{Index-CjZ9X4ck.js → Index-BazAhLwA.js} +1 -1
  20. package/dist/assets/{Index-CZCRkYqB.js → Index-BfOpBSRn.js} +1 -1
  21. package/dist/assets/{Index-DIPHSyV-.js → Index-BkhzvHYz.js} +1 -1
  22. package/dist/assets/{Index-Ch-TNXZU.js → Index-BqqJHpnH.js} +1 -1
  23. package/dist/assets/{Index-BpUb5QvI.js → Index-C9Vq_plI.js} +1 -1
  24. package/dist/assets/{Index-B_IONBV_.js → Index-CHZeRvTi.js} +1 -1
  25. package/dist/assets/{Index-CUvKTE1Q.js → Index-C_6uySr1.js} +1 -1
  26. package/dist/assets/{Index-BFS96C0P.js → Index-D08kqvUN.js} +1 -1
  27. package/dist/assets/{Index-CChRMffd.js → Index-DE2mD85S.js} +1 -1
  28. package/dist/assets/{Index-D12SQj26.js → Index-Dj4NZQMj.js} +1 -1
  29. package/dist/assets/{Index-DmRLqYic.js → Index-DlDmvyyT.js} +1 -1
  30. package/dist/assets/{Index-CbrnJERR.js → Index-DzHqE2qx.js} +1 -1
  31. package/dist/assets/{Index-CDFhUJO-.js → Index-SCuA_jIE.js} +1 -1
  32. package/dist/assets/{Index-DIgnVSg2.js → Index-eRqcMP25.js} +1 -1
  33. package/dist/assets/{Index-YmLgx320.js → Index-s2ebLR20.js} +1 -1
  34. package/dist/assets/{Index-BsDgpuvA.js → Index-wpZJ_a8u.js} +1 -1
  35. package/dist/assets/{Invitees-CvOyViq2.js → Invitees-BKX54iCK.js} +1 -1
  36. package/dist/assets/{List-BYpM1gR8.js → List-B0jEPtRD.js} +1 -1
  37. package/dist/assets/{List-3o4-ZZd6.js → List-Bqz6y2BW.js} +1 -1
  38. package/dist/assets/{List-DStbB3Mz.js → List-CwxtJavB.js} +1 -1
  39. package/dist/assets/{Main-CV8gzoMl.js → Main-DwQecZzJ.js} +1 -1
  40. package/dist/assets/{Navigator-D60ZeYHw.js → Navigator-BKT2mxOy.js} +1 -1
  41. package/dist/assets/{NoTasks-CXu_7YPv.js → NoTasks-BYsoXaVq.js} +1 -1
  42. package/dist/assets/{Pagination-B0I3KZEW.js → Pagination-C3DyJji5.js} +1 -1
  43. package/dist/assets/{ScrollList-CWMs1Ybz.js → ScrollList-DHgQC1_v.js} +1 -1
  44. package/dist/assets/{Status-1ZhJGQFk.js → Status-HltKSvqh.js} +1 -1
  45. package/dist/assets/{Subscribe-Cst-VwSV.js → Subscribe-CJ_hRiPV.js} +1 -1
  46. package/dist/assets/{TransportWebHID-BF7xHbkb.js → TransportWebHID-Y-VgY_nP.js} +1 -1
  47. package/dist/assets/{VideoPlayer-BcmrjJXR.js → VideoPlayer-D4wmigXn.js} +1 -1
  48. package/dist/assets/{avatar-yUeA5vNp.js → avatar-DX-DNBWM.js} +1 -1
  49. package/dist/assets/{bignumber-BD_qFdqc.js → bignumber-CPDvezU8.js} +1 -1
  50. package/dist/assets/{distribution-D9DYjhFi.js → distribution-CRcyt7eH.js} +1 -1
  51. package/dist/assets/{index-BMhMa1nu.js → index-B7OQ5In8.js} +1 -1
  52. package/dist/assets/{index-Dc8QJSjg.js → index-BO0SEINI.js} +1 -1
  53. package/dist/assets/{index-CbNap6do.js → index-BkuLNx2-.js} +4 -4
  54. package/dist/assets/{index-DxmREG7f.js → index-Bo0zQxxu.js} +1 -1
  55. package/dist/assets/{index-C7ppJ-D9.js → index-DD9XxBI7.js} +1 -1
  56. package/dist/assets/{index-D5MMReBk.js → index-JvPlJRt4.js} +1 -1
  57. package/dist/assets/{index-ic5j6ANr.js → index-_FPvQLSk.js} +1 -1
  58. package/dist/assets/{index-DzOUjrug.js → index-cYgcbC7L.js} +1 -1
  59. package/dist/assets/{index.es-BBWlIYNp.js → index.es-7RSklBi_.js} +1 -1
  60. package/dist/assets/{order-B5QEaAoZ.js → order-DKWuqMWf.js} +1 -1
  61. package/dist/assets/{price-BYaiiVhA.js → price-Q1mTRsEK.js} +1 -1
  62. package/dist/assets/{solana-wallets-DUVgm4Oc.js → solana-wallets-BB1etQkQ.js} +2 -2
  63. package/dist/assets/{solanaEmbed.esm-B6g6CPC7.js → solanaEmbed.esm-B3TXfg-6.js} +1 -1
  64. package/dist/assets/{string_decoder-BdzqB8Gu.js → string_decoder-sJVrg_-v.js} +1 -1
  65. package/dist/assets/{vendor-web3-Dsu5cGVO.js → vendor-web3-XrA95VRY.js} +4 -4
  66. package/dist/assets/{web-OmHFC2lG.js → web-D9-VdGMd.js} +1 -1
  67. package/dist/assets/{web-DTVUq2An.js → web-V68mHKbX.js} +1 -1
  68. package/dist/index.html +2 -2
  69. package/package.json +1 -1
@@ -1 +1 @@
1
- import{F as L}from"./index.es-BBWlIYNp.js";import{l as T,S as R,N as A,O as j,t as M,u as S,s as B,p as D,G as O,j as q}from"./vendor-element-plus-B4FTqxj4.js";import{d as b,C as c,G as i,T as t,E,K as u,ai as o,D as a,R as n,S as C,ag as U,J as v,Q as p,O as h,M as V,X as z}from"./vendor-vue-1w_NBnjl.js";import{_ as k,c1 as F,aj as N,c2 as H,aB as K,ay as G}from"./index-CbNap6do.js";import{I as P,S as J}from"./ScrollList-CWMs1Ybz.js";import{I as Q}from"./ImagePreview-DQ_Qb42v.js";import{C as X,N as W}from"./NoTasks-CXu_7YPv.js";import{a as Y}from"./price-BYaiiVhA.js";import{C as Z}from"./CopyToClipboard-Dbge62aB.js";import{V as x}from"./VideoPlayer-BcmrjJXR.js";import{B as ee}from"./BotPlaceholder-CYTkmKw0.js";import{l as te}from"./pagination-CihAE3FS.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-Dsu5cGVO.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-Dj5bcX0v.js";import"./vue-plyr-QZFBikSk.js";const oe=b({name:"LayoutHailuo",components:{ElDrawer:R,ElButton:T,FontAwesomeIcon:L},data(){return{drawer:!1}}}),se={class:"main flex flex-row flex-1"},ae={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},ne={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function le(e,s,f,g,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]=_=>e.drawer=!0)},{default:u(()=>[t(d,{icon:"fa-solid fa-magic"})]),_:1}),t(r,{modelValue:e.drawer,"onUpdate:modelValue":s[1]||(s[1]=_=>e.drawer=_),direction:"ltr","with-header":!1,size:"340px"},{default:u(()=>[E(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ie=k(oe,[["render",le],["__scopeId","data-v-fa61db7a"]]),re=b({name:"ModelSelector",components:{ElSelect:j,ElOption:A},data(){return{}},computed:{options(){return[{value:"minimax-t2v",label:this.$t("hailuo.button.model1")},{value:"minimax-i2v",label:this.$t("hailuo.button.model2")},{value:"minimax-i2v-director",label:this.$t("hailuo.button.model3")}]},value:{get(){return this.$store.state.hailuo?.config?.model},set(e){this.$store.commit("hailuo/setConfig",{...this.$store.state.hailuo?.config,model:e})}}},mounted(){this.value||(this.value=F)}}),ce={class:"field"},ue={class:"title font-bold"},de={class:"float-left"};function me(e,s,f,g,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(C,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=k(re,[["render",me],["__scopeId","data-v-a768fbd9"]]),he=b({name:"StartImageUrlInput",components:{ElUpload:M,ElButton:T,InfoIcon:P,ImagePreview:Q},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"},ge={class:"flex justify-between"},_e={class:"flex justify-start items-center"},$e={class:"text-sm font-bold"};function ve(e,s,f,g,w,y){const d=o("info-icon"),m=o("image-preview"),r=o("el-button"),_=o("el-upload");return a(),c("div",fe,[i("div",ge,[i("div",_e,[i("span",$e,n(e.$t("hailuo.name.startImageUrl")),1),t(d,{content:e.$t("hailuo.description.startImageUrl"),class:"info"},null,8,["content"])])]),t(_,{"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 be=k(he,[["render",ve],["__scopeId","data-v-a906df80"]]),ke="",we=b({name:"PromptInput",components:{ElInput:B,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=ke)}}),ye={class:"field"},Se={class:"box"},Te={class:"title font-bold"};function Ve(e,s,f,g,w,y){const d=o("info-icon"),m=o("el-input");return a(),c("div",ye,[i("div",Se,[i("h2",Te,n(e.$t("hailuo.name.prompt")),1),t(d,{content:e.$t("hailuo.description.prompt"),class:"info"},null,8,["content"])]),t(m,{modelValue:e.prompt,"onUpdate:modelValue":s[0]||(s[0]=r=>e.prompt=r),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("hailuo.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const Ie=k(we,[["render",Ve],["__scopeId","data-v-c601bcba"]]),Ee=b({name:"PresetPanel",components:{ElButton:T,FontAwesomeIcon:L,PromptInput:Ie,StartImageUrlInput:be,ModelSelector:pe,Consumption:X},emits:["generate"],computed:{config(){return this.$store.state.hailuo?.config},consumption(){return Y(this.config,this.service?.cost)},service(){return this.$store.state.hailuo?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Ce={class:"flex flex-col h-full"},Le={class:"flex-1 overflow-y-auto p-5"},Ge={class:"flex flex-col items-center justify-center px-5 pb-5"};function Ue(e,s,f,g,w,y){const d=o("prompt-input"),m=o("model-selector"),r=o("start-image-url-input"),_=o("consumption"),l=o("font-awesome-icon"),$=o("el-button");return a(),c("div",Ce,[i("div",Le,[t(d,{class:"mb-4"}),t(m,{class:"mb-4"}),e.config?.model==="minimax-i2v"?(a(),v(r,{key:0,class:"mb-2"})):h("",!0)]),i("div",Ge,[t(_,{value:e.consumption,service:e.service},null,8,["value","service"]),e.config?.video_url!==void 0||e.config?.custom?(a(),v($,{key:0,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:u(()=>[t(l,{icon:"fa-solid fa-magic",class:"mr-2"}),p(" "+n(e.$t("hailuo.button.extend")),1)]),_:1},8,["onClick"])):(a(),v($,{key:1,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:u(()=>[t(l,{icon:"fa-solid fa-magic",class:"mr-2"}),p(" "+n(e.$t("hailuo.button.generate")),1)]),_:1},8,["onClick"]))])])}const Pe=k(Ee,[["render",Ue]]),Re=b({name:"TaskPreview",components:{ElImage:q,CopyToClipboard:Z,FontAwesomeIcon:L,ElAlert:O,VideoPlayer:x,ElTooltip:D,ElButton:T},props:{modelValue:{type:Object,required:!0}},computed:{application(){return this.$store.state.hailuo?.application},config(){return this.$store.state.hailuo?.config},video(){return this.modelValue?.response?.data?.[0]}},methods:{onDownload(e){console.debug("on download hailuo video",e),window.open(e,"_blank")}}}),Ae={class:"preview"},je={class:"left"},Me={class:"main"},Be={class:"bot"},De={class:"datetime"},Oe={class:"info"},qe={key:0,class:"prompt mt-2"},ze={key:0},Fe={key:1},Ne={key:0,class:V({content:!0,failed:!0})},He={key:0,class:"mb-4"},Ke={key:1,class:V({operations:!0,"mt-2":!0})},Je={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Qe={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Xe={key:1,class:V({content:!0})},We={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ye={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ze={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},xe={key:2,class:V({content:!0})},et={class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function tt(e,s,f,g,w,y){const d=o("el-image"),m=o("video-player"),r=o("el-button"),_=o("el-tooltip"),l=o("font-awesome-icon"),$=o("copy-to-clipboard"),I=o("el-alert");return a(),c("div",Ae,[i("div",je,[t(d,{src:"https://cdn.acedata.cloud/0qg4gp.png",class:"avatar"})]),i("div",Me,[i("div",Be,[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",Oe,[e.modelValue?.request?.prompt?(a(),c("p",qe,[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(_,{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",Qe,[t(l,{icon:"fa-solid fa-magic",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.taskId"))+": "+n(e.modelValue?.id)+" ",1),t($,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):h("",!0),e.modelValue?.response?.success===!1?(a(),c("div",Xe,[t(I,{closable:!1,class:"failure"},{template:u(()=>[t(l,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.failure")),1)]),default:u(()=>[i("p",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"])]),i("p",Ye,[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",Ze,[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=k(Re,[["render",tt],["__scopeId","data-v-968ffc41"]]),st=b({name:"RecentPanel",components:{TaskPreview:ot,BotPlaceholder:ee,NoTasks:W,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,g,w,y){const d=o("bot-placeholder"),m=o("task-preview"),r=o("scroll-list"),_=o("no-tasks");return a(),c(C,null,[e.tasks?.items===void 0?(a(),c("div",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(C,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(_)])):h("",!0)],64)}const it=k(st,[["render",lt]]),rt="https://webhook.acedata.cloud/hailuo",ct=b({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:g}=e||{};console.debug("limit",s,"createdAtMin",f,"createdAtMax",g),this.fetchingTasks=!0;try{await this.$store.dispatch("hailuo/getTasks",{limit:s,createdAtMin:f,createdAtMax:g})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url: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,g,w,y){const d=o("config-panel"),m=o("recent-panel"),r=o("layout");return a(),v(r,null,{config:u(()=>[t(d,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:u(()=>[t(m,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const Ct=k(ct,[["render",ut]]);export{Ct as default};
1
+ import{F as L}from"./index.es-7RSklBi_.js";import{l as T,S as R,N as A,O as j,t as M,u as S,s as B,p as D,G as O,j as q}from"./vendor-element-plus-B4FTqxj4.js";import{d as b,C as c,G as i,T as t,E,K as u,ai as o,D as a,R as n,S as C,ag as U,J as v,Q as p,O as h,M as V,X as z}from"./vendor-vue-1w_NBnjl.js";import{_ as k,c1 as F,aj as N,c2 as H,aB as K,ay as G}from"./index-BkuLNx2-.js";import{I as P,S as J}from"./ScrollList-DHgQC1_v.js";import{I as Q}from"./ImagePreview-DR_hrXkE.js";import{C as X,N as W}from"./NoTasks-BYsoXaVq.js";import{a as Y}from"./price-Q1mTRsEK.js";import{C as Z}from"./CopyToClipboard-D1FwD7Ay.js";import{V as x}from"./VideoPlayer-D4wmigXn.js";import{B as ee}from"./BotPlaceholder-DryhpfyI.js";import{l as te}from"./pagination-CihAE3FS.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-XrA95VRY.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-Dj5bcX0v.js";import"./vue-plyr-QZFBikSk.js";const oe=b({name:"LayoutHailuo",components:{ElDrawer:R,ElButton:T,FontAwesomeIcon:L},data(){return{drawer:!1}}}),se={class:"main flex flex-row flex-1"},ae={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},ne={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function le(e,s,f,g,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]=_=>e.drawer=!0)},{default:u(()=>[t(d,{icon:"fa-solid fa-magic"})]),_:1}),t(r,{modelValue:e.drawer,"onUpdate:modelValue":s[1]||(s[1]=_=>e.drawer=_),direction:"ltr","with-header":!1,size:"340px"},{default:u(()=>[E(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ie=k(oe,[["render",le],["__scopeId","data-v-fa61db7a"]]),re=b({name:"ModelSelector",components:{ElSelect:j,ElOption:A},data(){return{}},computed:{options(){return[{value:"minimax-t2v",label:this.$t("hailuo.button.model1")},{value:"minimax-i2v",label:this.$t("hailuo.button.model2")},{value:"minimax-i2v-director",label:this.$t("hailuo.button.model3")}]},value:{get(){return this.$store.state.hailuo?.config?.model},set(e){this.$store.commit("hailuo/setConfig",{...this.$store.state.hailuo?.config,model:e})}}},mounted(){this.value||(this.value=F)}}),ce={class:"field"},ue={class:"title font-bold"},de={class:"float-left"};function me(e,s,f,g,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(C,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=k(re,[["render",me],["__scopeId","data-v-a768fbd9"]]),he=b({name:"StartImageUrlInput",components:{ElUpload:M,ElButton:T,InfoIcon:P,ImagePreview:Q},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"},ge={class:"flex justify-between"},_e={class:"flex justify-start items-center"},$e={class:"text-sm font-bold"};function ve(e,s,f,g,w,y){const d=o("info-icon"),m=o("image-preview"),r=o("el-button"),_=o("el-upload");return a(),c("div",fe,[i("div",ge,[i("div",_e,[i("span",$e,n(e.$t("hailuo.name.startImageUrl")),1),t(d,{content:e.$t("hailuo.description.startImageUrl"),class:"info"},null,8,["content"])])]),t(_,{"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 be=k(he,[["render",ve],["__scopeId","data-v-a906df80"]]),ke="",we=b({name:"PromptInput",components:{ElInput:B,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=ke)}}),ye={class:"field"},Se={class:"box"},Te={class:"title font-bold"};function Ve(e,s,f,g,w,y){const d=o("info-icon"),m=o("el-input");return a(),c("div",ye,[i("div",Se,[i("h2",Te,n(e.$t("hailuo.name.prompt")),1),t(d,{content:e.$t("hailuo.description.prompt"),class:"info"},null,8,["content"])]),t(m,{modelValue:e.prompt,"onUpdate:modelValue":s[0]||(s[0]=r=>e.prompt=r),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("hailuo.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const Ie=k(we,[["render",Ve],["__scopeId","data-v-c601bcba"]]),Ee=b({name:"PresetPanel",components:{ElButton:T,FontAwesomeIcon:L,PromptInput:Ie,StartImageUrlInput:be,ModelSelector:pe,Consumption:X},emits:["generate"],computed:{config(){return this.$store.state.hailuo?.config},consumption(){return Y(this.config,this.service?.cost)},service(){return this.$store.state.hailuo?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Ce={class:"flex flex-col h-full"},Le={class:"flex-1 overflow-y-auto p-5"},Ge={class:"flex flex-col items-center justify-center px-5 pb-5"};function Ue(e,s,f,g,w,y){const d=o("prompt-input"),m=o("model-selector"),r=o("start-image-url-input"),_=o("consumption"),l=o("font-awesome-icon"),$=o("el-button");return a(),c("div",Ce,[i("div",Le,[t(d,{class:"mb-4"}),t(m,{class:"mb-4"}),e.config?.model==="minimax-i2v"?(a(),v(r,{key:0,class:"mb-2"})):h("",!0)]),i("div",Ge,[t(_,{value:e.consumption,service:e.service},null,8,["value","service"]),e.config?.video_url!==void 0||e.config?.custom?(a(),v($,{key:0,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:u(()=>[t(l,{icon:"fa-solid fa-magic",class:"mr-2"}),p(" "+n(e.$t("hailuo.button.extend")),1)]),_:1},8,["onClick"])):(a(),v($,{key:1,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:u(()=>[t(l,{icon:"fa-solid fa-magic",class:"mr-2"}),p(" "+n(e.$t("hailuo.button.generate")),1)]),_:1},8,["onClick"]))])])}const Pe=k(Ee,[["render",Ue]]),Re=b({name:"TaskPreview",components:{ElImage:q,CopyToClipboard:Z,FontAwesomeIcon:L,ElAlert:O,VideoPlayer:x,ElTooltip:D,ElButton:T},props:{modelValue:{type:Object,required:!0}},computed:{application(){return this.$store.state.hailuo?.application},config(){return this.$store.state.hailuo?.config},video(){return this.modelValue?.response?.data?.[0]}},methods:{onDownload(e){console.debug("on download hailuo video",e),window.open(e,"_blank")}}}),Ae={class:"preview"},je={class:"left"},Me={class:"main"},Be={class:"bot"},De={class:"datetime"},Oe={class:"info"},qe={key:0,class:"prompt mt-2"},ze={key:0},Fe={key:1},Ne={key:0,class:V({content:!0,failed:!0})},He={key:0,class:"mb-4"},Ke={key:1,class:V({operations:!0,"mt-2":!0})},Je={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Qe={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Xe={key:1,class:V({content:!0})},We={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ye={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ze={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},xe={key:2,class:V({content:!0})},et={class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function tt(e,s,f,g,w,y){const d=o("el-image"),m=o("video-player"),r=o("el-button"),_=o("el-tooltip"),l=o("font-awesome-icon"),$=o("copy-to-clipboard"),I=o("el-alert");return a(),c("div",Ae,[i("div",je,[t(d,{src:"https://cdn.acedata.cloud/0qg4gp.png",class:"avatar"})]),i("div",Me,[i("div",Be,[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",Oe,[e.modelValue?.request?.prompt?(a(),c("p",qe,[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(_,{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",Qe,[t(l,{icon:"fa-solid fa-magic",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.taskId"))+": "+n(e.modelValue?.id)+" ",1),t($,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):h("",!0),e.modelValue?.response?.success===!1?(a(),c("div",Xe,[t(I,{closable:!1,class:"failure"},{template:u(()=>[t(l,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),p(" "+n(e.$t("hailuo.name.failure")),1)]),default:u(()=>[i("p",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"])]),i("p",Ye,[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",Ze,[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=k(Re,[["render",tt],["__scopeId","data-v-968ffc41"]]),st=b({name:"RecentPanel",components:{TaskPreview:ot,BotPlaceholder:ee,NoTasks:W,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,g,w,y){const d=o("bot-placeholder"),m=o("task-preview"),r=o("scroll-list"),_=o("no-tasks");return a(),c(C,null,[e.tasks?.items===void 0?(a(),c("div",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(C,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(_)])):h("",!0)],64)}const it=k(st,[["render",lt]]),rt="https://webhook.acedata.cloud/hailuo",ct=b({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:g}=e||{};console.debug("limit",s,"createdAtMin",f,"createdAtMax",g),this.fetchingTasks=!0;try{await this.$store.dispatch("hailuo/getTasks",{limit:s,createdAtMin:f,createdAtMax:g})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url: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,g,w,y){const d=o("config-panel"),m=o("recent-panel"),r=o("layout");return a(),v(r,null,{config:u(()=>[t(d,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:u(()=>[t(m,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const Ct=k(ct,[["render",ut]]);export{Ct as default};
@@ -1 +1 @@
1
- import{F as P}from"./index.es-BBWlIYNp.js";import{l as L,S as O,k as B,N as G,O as M,F as j,D as q,t as N,u as V,s as z,p as F,G as K,j as H}from"./vendor-element-plus-B4FTqxj4.js";import{d as $,C as r,G as l,T as t,E as U,K as u,ai as o,D as a,R as i,S as E,ag as T,J as I,Q as h,O as g,M as R}from"./vendor-vue-1w_NBnjl.js";import{_ as k,bt as J,bu as Q,bv as W,aj as X,bw as Y,aB as Z,ar as x,ax as ee,ay as C}from"./index-CbNap6do.js";import{I as D,S as te}from"./ScrollList-CWMs1Ybz.js";import{I as se}from"./ImagePreview-DQ_Qb42v.js";import{C as oe,N as ae}from"./NoTasks-CXu_7YPv.js";import{a as ne}from"./price-BYaiiVhA.js";import{C as ie}from"./CopyToClipboard-Dbge62aB.js";import{s as le}from"./vue-plyr-QZFBikSk.js";import{B as re}from"./BotPlaceholder-CYTkmKw0.js";import{l as ce}from"./pagination-CihAE3FS.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-Dsu5cGVO.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-Dj5bcX0v.js";const pe=$({name:"LayoutPika",components:{ElDrawer:O,ElButton:L,FontAwesomeIcon:P},data(){return{drawer:!1}}}),de={class:"main flex flex-row flex-1"},ue={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},me={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function fe(e,s,c,d,v,b){const p=o("font-awesome-icon"),m=o("el-button"),n=o("el-drawer");return a(),r("div",de,[l("div",ue,[U(e.$slots,"config",{},void 0,!0)]),l("div",me,[U(e.$slots,"result",{},void 0,!0)]),t(m,{circle:"",class:"menu",onClick:s[0]||(s[0]=y=>e.drawer=!0)},{default:u(()=>[t(p,{icon:"fa-solid fa-magic"})]),_:1}),t(n,{modelValue:e.drawer,"onUpdate:modelValue":s[1]||(s[1]=y=>e.drawer=y),direction:"ltr","with-header":!1,size:"350px"},{default:u(()=>[U(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const _e=k(pe,[["render",fe],["__scopeId","data-v-11f71ab6"]]),he=$({name:"IngredientsSelector",components:{ElSwitch:B,InfoIcon:D},computed:{value:{get(){return this.$store.state.pika?.config?.ingredients},set(e){console.debug("set ingredients",e),e||this.$store.commit("pika/setConfig",{...this.$store.state.pika?.config,ingredients:e,ingredients_mode:void 0,image_url:void 0}),this.$store.commit("pika/setConfig",{...this.$store.state.pika?.config,ingredients:e,model:"2.0"})}}},mounted(){this.value===void 0&&(this.value=J)}}),ge={class:"field"},$e={class:"title font-bold"};function ke(e,s,c,d,v,b){const p=o("el-switch"),m=o("info-icon");return a(),r("div",ge,[l("h2",$e,i(e.$t("pika.name.ingredients")),1),t(p,{modelValue:e.value,"onUpdate:modelValue":s[0]||(s[0]=n=>e.value=n),class:"value"},null,8,["modelValue"]),t(m,{content:e.$t("pika.description.ingredients"),class:"info"},null,8,["content"])])}const ve=k(he,[["render",ke],["__scopeId","data-v-17c0af5c"]]),be=$({name:"EffectSelector",components:{ElSelect:M,ElOption:G},data(){return{}},computed:{options(){return[{value:"Levitate",label:this.$t("pika.style.effect1")},{value:"Decapitate",label:this.$t("pika.style.effect2")},{value:"Eye-pop",label:this.$t("pika.style.effect3")},{value:"Ta-da",label:this.$t("pika.style.effect4")},{value:"Deflate",label:this.$t("pika.style.effect5")},{value:"Crumble",label:this.$t("pika.style.effect6")},{value:"Dissolve",label:this.$t("pika.style.effect7")},{value:"Squish",label:this.$t("pika.style.effect8")},{value:"Inflate",label:this.$t("pika.style.effect9")},{value:"Melt",label:this.$t("pika.style.effect10")},{value:"Cake-ify",label:this.$t("pika.style.effect11")},{value:"Crush",label:this.$t("pika.style.effect12")},{value:"Explode",label:this.$t("pika.style.effect13")}]},value:{get(){return this.$store.state.pika?.config?.effect},set(e){this.$store.commit("pika/setConfig",{...this.$store.state.pika?.config,effect:e})}}}}),ye={class:"field"},we={class:"title font-bold"},Ve={class:"float-left"};function Ie(e,s,c,d,v,b){const p=o("el-option"),m=o("el-select");return a(),r("div",ye,[l("h2",we,i(e.$t("pika.name.effect")),1),t(m,{modelValue:e.value,"onUpdate:modelValue":s[0]||(s[0]=n=>e.value=n),class:"value",placeholder:e.$t("pika.placeholder.select"),clearable:""},{default:u(()=>[(a(!0),r(E,null,T(e.options,n=>(a(),I(p,{key:n.value,label:n.label,value:n.value},{default:u(()=>[l("span",Ve,i(n.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Se=k(be,[["render",Ie],["__scopeId","data-v-d1c54475"]]),Ee=$({name:"IngredientsModelSelector",components:{ElRadioButton:q,ElRadioGroup:j},data(){return{options:[{label:this.$t("pika.button.precise"),value:"precise"},{label:this.$t("pika.button.creative"),value:"creative"}]}},computed:{value:{get(){return this.$store.state.pika?.config?.ingredients_mode},set(e){this.$store.commit("pika/setConfig",{...this.$store.state.pika?.config,ingredients_mode:e})}}},mounted(){this.value||(this.value=Q)}}),Te={class:"field"},Ce={class:"title font-bold"};function Pe(e,s,c,d,v,b){const p=o("el-radio-button"),m=o("el-radio-group");return a(),r("div",Te,[l("h2",Ce,i(e.$t("pika.name.ingredientsModel")),1),t(m,{modelValue:e.value,"onUpdate:modelValue":s[0]||(s[0]=n=>e.value=n),size:"small",class:"quality"},{default:u(()=>[(a(!0),r(E,null,T(e.options,n=>(a(),I(p,{key:n.value,label:n.value},{default:u(()=>[h(i(n.label),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])])}const Le=k(Ee,[["render",Pe],["__scopeId","data-v-b948551f"]]),Re=$({name:"ModelSelector",components:{ElSelect:M,ElOption:G},props:{modelValue:{type:String,default:void 0}},emits:["update:modelValue"],data(){return{options:[{value:"2.0",label:"2.0"},{value:"1.5",label:"1.5"}]}},computed:{value:{get(){return this.$store.state.pika?.config?.model},set(e){this.$store.commit("pika/setConfig",{...this.$store.state.pika.config,model:e})}}},mounted(){this.value||(this.value=W)}}),Ae={class:"field"},Ue={class:"title font-bold"};function De(e,s,c,d,v,b){const p=o("el-option"),m=o("el-select");return a(),r("div",Ae,[l("h2",Ue,i(e.$t("pika.name.model")),1),t(m,{modelValue:e.value,"onUpdate:modelValue":s[0]||(s[0]=n=>e.value=n),class:"value",placeholder:e.$t("pika.placeholder.select")},{default:u(()=>[(a(!0),r(E,null,T(e.options,n=>(a(),I(p,{key:n.value,label:n.label,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ge=k(Re,[["render",De],["__scopeId","data-v-7b2e870a"]]),Me=$({name:"ImageUrlInput",components:{ElUpload:N,ElButton:L,InfoIcon:D,ImagePreview:se,FontAwesomeIcon:P},data(){return{fileList:[],uploadUrl:X()+"/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.pika?.config?.image_url},set(){const e=this.urls?.[0];this.$store.commit("pika/setConfig",{...this.$store.state.pika?.config,image_url:e})}}},mounted(){this.value||(this.value=void 0),this.onSetStartImageUrl()},methods:{onExceed(){V.warning(this.$t("pika.message.uploadStartImageExceed"))},onError(){V.error(this.$t("pika.message.uploadStartImageError"))},async onRemove(){V.error(this.$t("pika.message.uploadStartImageError"))},onSetStartImageUrl(){this.$store.commit("pika/setConfig",{...this.$store.state.pika?.config,image_url:this.urls})},async onSuccess(){this.onSetStartImageUrl()}}}),Oe={class:"field"},Be={class:"title font-bold"},je={class:"upload-wrapper"};function qe(e,s,c,d,v,b){const p=o("image-preview"),m=o("font-awesome-icon"),n=o("el-button"),y=o("el-upload"),_=o("info-icon");return a(),r("div",Oe,[l("h2",Be,i(e.$t("pika.name.imageUrl")),1),l("div",je,[t(y,{"file-list":e.fileList,"onUpdate:fileList":s[0]||(s[0]=f=>e.fileList=f),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",class:"value upload-wrapper",limit:3,multiple:!0,"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:f})=>[t(p,{url:f.url||f.response?.file_url,name:f.name,percentage:f.percentage,onRemove:S=>e.fileList.splice(e.fileList.indexOf(f),1)},null,8,["url","name","percentage","onRemove"])]),default:u(()=>[t(n,{size:"small",type:"primary",round:""},{default:u(()=>[t(m,{icon:"fa-solid fa-upload",class:"mr-1"}),h(" "+i(e.$t("pika.button.uploadImageUrl")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-remove","on-success","headers"])]),t(_,{content:e.$t("pika.description.imageUrl"),class:"info"},null,8,["content"])])}const Ne=k(Me,[["render",qe],["__scopeId","data-v-18cda67a"]]),ze="",Fe=$({name:"PromptInput",components:{ElInput:z,InfoIcon:D},computed:{prompt:{get(){return this.$store.state.pika?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("pika/setConfig",{...this.$store.state.pika?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=ze)}}),Ke={class:"field"},He={class:"box"},Je={class:"title font-bold"};function Qe(e,s,c,d,v,b){const p=o("info-icon"),m=o("el-input");return a(),r("div",Ke,[l("div",He,[l("h2",Je,i(e.$t("pika.name.prompt")),1),t(p,{content:e.$t("pika.description.prompt"),class:"info"},null,8,["content"])]),t(m,{modelValue:e.prompt,"onUpdate:modelValue":s[0]||(s[0]=n=>e.prompt=n),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("pika.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const We=k(Fe,[["render",Qe],["__scopeId","data-v-d7f7cedd"]]),Xe=$({name:"PresetPanel",components:{ImageUrlInput:Ne,ElButton:L,FontAwesomeIcon:P,Consumption:oe,PromptInput:We,IngredientsSelector:ve,IngredientsModelSelector:Le,ModelSelector:Ge,EffectSelector:Se},emits:["generate"],computed:{config(){return this.$store.state.pika?.config},consumption(){return ne(this.config,this.service?.cost)},service(){return this.$store.state.pika?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Ye={class:"flex flex-col h-full"},Ze={class:"flex-1 overflow-y-auto p-5"},xe={class:"flex flex-col items-center justify-center px-5 pb-5"};function et(e,s,c,d,v,b){const p=o("prompt-input"),m=o("model-selector"),n=o("ingredients-selector"),y=o("effect-selector"),_=o("image-url-input"),f=o("ingredients-model-selector"),S=o("consumption"),w=o("font-awesome-icon"),A=o("el-button");return a(),r("div",Ye,[l("div",Ze,[t(p,{class:"mb-4"}),t(m,{class:"mb-4"}),t(n,{class:"mb-4"}),t(y,{class:"mb-4"}),e.config?.ingredients?(a(),I(_,{key:0,class:"mb-4"})):g("",!0),e.config?.ingredients?(a(),I(f,{key:1,class:"mb-4"})):g("",!0)]),l("div",xe,[t(S,{value:e.consumption,service:e.service},null,8,["value","service"]),t(A,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:u(()=>[t(w,{icon:"fa-solid fa-magic",class:"mr-2"}),h(" "+i(e.$t("pika.button.generate")),1)]),_:1},8,["onClick"])])])}const tt=k(Xe,[["render",et]]),st=$({name:"VideoPlayer",components:{VuePlyr:le},props:{modelValue:{type:Object,required:!0}},data(){return{options:{quality:{default:"1080p"}}}}}),ot=["data-poster"],at=["src"];function nt(e,s,c,d,v,b){const p=o("vue-plyr");return a(),r("div",null,[t(p,{options:e.options,class:"video"},{default:u(()=>[l("video",{controls:"",crossorigin:"",playsinline:"","data-poster":e.modelValue?.image_url},[l("source",{size:"1080",src:e.modelValue?.video_url,type:"video/mp4"},null,8,at)],8,ot)]),_:1},8,["options"])])}const it=k(st,[["render",nt],["__scopeId","data-v-fc420430"]]),lt=$({name:"TaskPreview",components:{ElImage:H,CopyToClipboard:ie,FontAwesomeIcon:P,ElAlert:K,VideoPlayer:it,ElTooltip:F,ElButton:L},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.pika?.application},config(){return this.$store.state.pika?.config},videos(){let e=[];const s=this.modelValue?.request?.action;return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(c=>{let d=c;s&&(d.action=s),e.push(d)}),e}},methods:{onDownload(e){console.log("on download"),window.open(e,"_blank")},onReload(e){const s=e.target,c=new URL(s.src),d=c.searchParams.get("retry");if(!d)c.searchParams.set("retry","1");else if(parseInt(d)<2)c.searchParams.set("retry",(parseInt(d)+1).toString());else return;s.src=c.toString()},onOpenVideo(e){window.open(e,"_blank")}}}),rt={class:"left"},ct={class:"main"},pt={class:"bot"},dt={class:"datetime"},ut={class:"info"},mt={key:0,class:"prompt mt-2"},ft={key:0},_t={key:1},ht={key:0,class:R({content:!0,failed:!0})},gt={class:"image-wrapper"},$t={key:0,class:R({operations:!0,"mt-2":!0})},kt={key:0,class:"description"},vt={class:"description"},bt={key:1,class:R({content:!0})},yt={class:"description"},wt={class:"description"},Vt={class:"description"},It={key:2,class:R({content:!0})},St={class:"description"};function Et(e,s,c,d,v,b){const p=o("el-image"),m=o("VideoPlayer"),n=o("el-button"),y=o("el-tooltip"),_=o("font-awesome-icon"),f=o("copy-to-clipboard"),S=o("el-alert");return a(!0),r(E,null,T(e.videos,(w,A)=>(a(),r("div",{key:A,class:"preview"},[l("div",rt,[t(p,{src:"https://cdn.acedata.cloud/i80tgn.png",class:"avatar"})]),l("div",ct,[l("div",pt,[h(i(e.$t("pika.name.pikaBot"))+" ",1),l("span",dt,i(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),l("div",ut,[e.modelValue?.request?.prompt?(a(),r("p",mt,[h(i(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?g("",!0):(a(),r("span",ft," - ("+i(e.$t("pika.status.pending"))+") ",1)),w?.state==="processing"||w?.state==="pending"?(a(),r("span",_t," - ("+i(e.$t("pika.status.processing"))+") ",1)):g("",!0)])):g("",!0)]),e.modelValue?.response?.success===!0?(a(),r("div",ht,[l("div",gt,[t(m,{"model-value":w},null,8,["model-value"])]),w?(a(),r("div",$t,[t(y,{class:"box-item",effect:"dark",content:e.$t("pika.message.downloadVideo"),placement:"top-start"},{default:u(()=>[w?.video_url?(a(),I(n,{key:0,type:"info",size:"small",class:"btn-action",onClick:Mt=>e.onDownload(w?.video_url)},{default:u(()=>[h(i(e.$t("pika.button.download")),1)]),_:2},1032,["onClick"])):g("",!0)]),_:2},1032,["content"])])):g("",!0),t(S,{closable:!1,class:"mt-2 success"},{default:u(()=>[e.modelValue?.request?.model?(a(),r("p",kt,[t(_,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+i(e.$t("pika.name.model"))+": "+i(e.modelValue?.request?.model),1)])):g("",!0),l("p",vt,[t(_,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+i(e.$t("pika.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),t(f,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])):g("",!0),e.modelValue?.response?.success===!1?(a(),r("div",bt,[t(S,{closable:!1,class:"failure"},{template:u(()=>[t(_,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),h(" "+i(e.$t("pika.name.failure")),1)]),default:u(()=>[l("p",yt,[t(_,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+i(e.$t("pika.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),t(f,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),l("p",wt,[t(_,{icon:"fa-solid fa-circle-info",class:"mr-1"}),h(" "+i(e.$t("pika.name.failureReason"))+": "+i(e.modelValue?.response?.error?.message)+" ",1),t(f,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),l("p",Vt,[t(_,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+i(e.$t("pika.name.traceId"))+": "+i(e.modelValue?.response?.trace_id)+" ",1),t(f,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])]),_:1})])):g("",!0),!e.modelValue?.response||w?.state==="processing"||w?.state==="pending"?(a(),r("div",It,[t(S,{closable:!1,class:"info"},{template:u(()=>[t(_,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),h(" "+i(e.$t("pika.name.failure")),1)]),default:u(()=>[l("p",St,[t(_,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+i(e.$t("pika.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),t(f,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])):g("",!0)])]))),128)}const Tt=k(lt,[["render",Et],["__scopeId","data-v-41cbe62b"]]),Ct=$({name:"RecentPanel",components:{TaskPreview:Tt,BotPlaceholder:re,NoTasks:ae,ScrollList:te},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.pika?.tasks,items:this.$store.state.pika?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Pt={key:0},Lt={key:2,class:"w-full h-full flex items-center justify-center"};function Rt(e,s,c,d,v,b){const p=o("bot-placeholder"),m=o("task-preview"),n=o("scroll-list"),y=o("no-tasks");return a(),r(E,null,[e.tasks?.items===void 0?(a(),r("div",Pt,[t(p)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(a(),I(n,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:s[0]||(s[0]=_=>e.$emit("reach-top"))},{default:u(()=>[(a(!0),r(E,null,T(e.tasks?.items,(_,f)=>(a(),I(m,{key:f,"model-value":_},null,8,["model-value"]))),128))]),_:1},8,["loading"])):g("",!0),e.tasks?.items?.length===0?(a(),r("div",Lt,[t(y)])):g("",!0)],64)}const At=k(Ct,[["render",Rt]]),Ut="https://webhook.acedata.cloud/pika",Dt=$({name:"PikaIndex",components:{ConfigPanel:tt,Layout:_e,RecentPanel:At},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.pika?.status?.getApplications===C.Request},tasksLoading(){return this.$store.state.pika?.status?.getTasks===C.Request||this.fetchingTasks},service(){return this.$store.state.pika.service},credential(){return this.$store.state.pika.credential},config(){return this.$store.state.pika.config},initializing(){return this.$store.state.pika.status.getApplications===C.Request},needApply(){return this.$store.state.pika.status.getApplications===C.Success&&!this.application},application(){return this.$store.state.pika.application},applications(){return this.$store.state.pika.applications},tasks(){return this.$store.state.pika.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 ce({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("pika/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("pika/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},onApply(){x.create({application:this.application}).then(({data:e})=>{this.application=e,V.success(this.$t("application.message.applySuccessfully"))}).catch(e=>{e?.response?.data?.code===ee&&V.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:s=5,createdAtMin:c,createdAtMax:d}=e||{};console.debug("limit",s,"createdAtMin",c,"createdAtMax",d),this.fetchingTasks=!0;try{await this.$store.dispatch("pika/getTasks",{limit:s,createdAtMin:c,createdAtMax:d})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:Ut},s=this.credential?.token;if(!s){console.error("no token specified");return}V.info(this.$t("pika.message.startingTask")),Y.generate(e,{token:s}).then(()=>{V.success(this.$t("pika.message.startTaskSuccess")),this.$store.commit("pika/setConfig",{config:void 0})}).catch(c=>{c?.response?.data?.error?.code===Z?V.error(this.$t("pika.message.usedUp")):V.error(this.$t("pika.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Gt(e,s,c,d,v,b){const p=o("config-panel"),m=o("recent-panel"),n=o("layout");return a(),I(n,null,{config:u(()=>[t(p,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:u(()=>[t(m,{ref:"recentPanel",class:"panel recent",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const es=k(Dt,[["render",Gt],["__scopeId","data-v-456819d1"]]);export{es as default};
1
+ import{F as P}from"./index.es-7RSklBi_.js";import{l as L,S as O,k as B,N as G,O as M,F as j,D as q,t as N,u as V,s as z,p as F,G as K,j as H}from"./vendor-element-plus-B4FTqxj4.js";import{d as $,C as r,G as l,T as t,E as U,K as u,ai as o,D as a,R as i,S as E,ag as T,J as I,Q as h,O as g,M as R}from"./vendor-vue-1w_NBnjl.js";import{_ as k,bt as J,bu as Q,bv as W,aj as X,bw as Y,aB as Z,ar as x,ax as ee,ay as C}from"./index-BkuLNx2-.js";import{I as D,S as te}from"./ScrollList-DHgQC1_v.js";import{I as se}from"./ImagePreview-DR_hrXkE.js";import{C as oe,N as ae}from"./NoTasks-BYsoXaVq.js";import{a as ne}from"./price-Q1mTRsEK.js";import{C as ie}from"./CopyToClipboard-D1FwD7Ay.js";import{s as le}from"./vue-plyr-QZFBikSk.js";import{B as re}from"./BotPlaceholder-DryhpfyI.js";import{l as ce}from"./pagination-CihAE3FS.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-XrA95VRY.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-Dj5bcX0v.js";const pe=$({name:"LayoutPika",components:{ElDrawer:O,ElButton:L,FontAwesomeIcon:P},data(){return{drawer:!1}}}),de={class:"main flex flex-row flex-1"},ue={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},me={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function fe(e,s,c,d,v,b){const p=o("font-awesome-icon"),m=o("el-button"),n=o("el-drawer");return a(),r("div",de,[l("div",ue,[U(e.$slots,"config",{},void 0,!0)]),l("div",me,[U(e.$slots,"result",{},void 0,!0)]),t(m,{circle:"",class:"menu",onClick:s[0]||(s[0]=y=>e.drawer=!0)},{default:u(()=>[t(p,{icon:"fa-solid fa-magic"})]),_:1}),t(n,{modelValue:e.drawer,"onUpdate:modelValue":s[1]||(s[1]=y=>e.drawer=y),direction:"ltr","with-header":!1,size:"350px"},{default:u(()=>[U(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const _e=k(pe,[["render",fe],["__scopeId","data-v-11f71ab6"]]),he=$({name:"IngredientsSelector",components:{ElSwitch:B,InfoIcon:D},computed:{value:{get(){return this.$store.state.pika?.config?.ingredients},set(e){console.debug("set ingredients",e),e||this.$store.commit("pika/setConfig",{...this.$store.state.pika?.config,ingredients:e,ingredients_mode:void 0,image_url:void 0}),this.$store.commit("pika/setConfig",{...this.$store.state.pika?.config,ingredients:e,model:"2.0"})}}},mounted(){this.value===void 0&&(this.value=J)}}),ge={class:"field"},$e={class:"title font-bold"};function ke(e,s,c,d,v,b){const p=o("el-switch"),m=o("info-icon");return a(),r("div",ge,[l("h2",$e,i(e.$t("pika.name.ingredients")),1),t(p,{modelValue:e.value,"onUpdate:modelValue":s[0]||(s[0]=n=>e.value=n),class:"value"},null,8,["modelValue"]),t(m,{content:e.$t("pika.description.ingredients"),class:"info"},null,8,["content"])])}const ve=k(he,[["render",ke],["__scopeId","data-v-17c0af5c"]]),be=$({name:"EffectSelector",components:{ElSelect:M,ElOption:G},data(){return{}},computed:{options(){return[{value:"Levitate",label:this.$t("pika.style.effect1")},{value:"Decapitate",label:this.$t("pika.style.effect2")},{value:"Eye-pop",label:this.$t("pika.style.effect3")},{value:"Ta-da",label:this.$t("pika.style.effect4")},{value:"Deflate",label:this.$t("pika.style.effect5")},{value:"Crumble",label:this.$t("pika.style.effect6")},{value:"Dissolve",label:this.$t("pika.style.effect7")},{value:"Squish",label:this.$t("pika.style.effect8")},{value:"Inflate",label:this.$t("pika.style.effect9")},{value:"Melt",label:this.$t("pika.style.effect10")},{value:"Cake-ify",label:this.$t("pika.style.effect11")},{value:"Crush",label:this.$t("pika.style.effect12")},{value:"Explode",label:this.$t("pika.style.effect13")}]},value:{get(){return this.$store.state.pika?.config?.effect},set(e){this.$store.commit("pika/setConfig",{...this.$store.state.pika?.config,effect:e})}}}}),ye={class:"field"},we={class:"title font-bold"},Ve={class:"float-left"};function Ie(e,s,c,d,v,b){const p=o("el-option"),m=o("el-select");return a(),r("div",ye,[l("h2",we,i(e.$t("pika.name.effect")),1),t(m,{modelValue:e.value,"onUpdate:modelValue":s[0]||(s[0]=n=>e.value=n),class:"value",placeholder:e.$t("pika.placeholder.select"),clearable:""},{default:u(()=>[(a(!0),r(E,null,T(e.options,n=>(a(),I(p,{key:n.value,label:n.label,value:n.value},{default:u(()=>[l("span",Ve,i(n.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Se=k(be,[["render",Ie],["__scopeId","data-v-d1c54475"]]),Ee=$({name:"IngredientsModelSelector",components:{ElRadioButton:q,ElRadioGroup:j},data(){return{options:[{label:this.$t("pika.button.precise"),value:"precise"},{label:this.$t("pika.button.creative"),value:"creative"}]}},computed:{value:{get(){return this.$store.state.pika?.config?.ingredients_mode},set(e){this.$store.commit("pika/setConfig",{...this.$store.state.pika?.config,ingredients_mode:e})}}},mounted(){this.value||(this.value=Q)}}),Te={class:"field"},Ce={class:"title font-bold"};function Pe(e,s,c,d,v,b){const p=o("el-radio-button"),m=o("el-radio-group");return a(),r("div",Te,[l("h2",Ce,i(e.$t("pika.name.ingredientsModel")),1),t(m,{modelValue:e.value,"onUpdate:modelValue":s[0]||(s[0]=n=>e.value=n),size:"small",class:"quality"},{default:u(()=>[(a(!0),r(E,null,T(e.options,n=>(a(),I(p,{key:n.value,label:n.value},{default:u(()=>[h(i(n.label),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])])}const Le=k(Ee,[["render",Pe],["__scopeId","data-v-b948551f"]]),Re=$({name:"ModelSelector",components:{ElSelect:M,ElOption:G},props:{modelValue:{type:String,default:void 0}},emits:["update:modelValue"],data(){return{options:[{value:"2.0",label:"2.0"},{value:"1.5",label:"1.5"}]}},computed:{value:{get(){return this.$store.state.pika?.config?.model},set(e){this.$store.commit("pika/setConfig",{...this.$store.state.pika.config,model:e})}}},mounted(){this.value||(this.value=W)}}),Ae={class:"field"},Ue={class:"title font-bold"};function De(e,s,c,d,v,b){const p=o("el-option"),m=o("el-select");return a(),r("div",Ae,[l("h2",Ue,i(e.$t("pika.name.model")),1),t(m,{modelValue:e.value,"onUpdate:modelValue":s[0]||(s[0]=n=>e.value=n),class:"value",placeholder:e.$t("pika.placeholder.select")},{default:u(()=>[(a(!0),r(E,null,T(e.options,n=>(a(),I(p,{key:n.value,label:n.label,value:n.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ge=k(Re,[["render",De],["__scopeId","data-v-7b2e870a"]]),Me=$({name:"ImageUrlInput",components:{ElUpload:N,ElButton:L,InfoIcon:D,ImagePreview:se,FontAwesomeIcon:P},data(){return{fileList:[],uploadUrl:X()+"/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.pika?.config?.image_url},set(){const e=this.urls?.[0];this.$store.commit("pika/setConfig",{...this.$store.state.pika?.config,image_url:e})}}},mounted(){this.value||(this.value=void 0),this.onSetStartImageUrl()},methods:{onExceed(){V.warning(this.$t("pika.message.uploadStartImageExceed"))},onError(){V.error(this.$t("pika.message.uploadStartImageError"))},async onRemove(){V.error(this.$t("pika.message.uploadStartImageError"))},onSetStartImageUrl(){this.$store.commit("pika/setConfig",{...this.$store.state.pika?.config,image_url:this.urls})},async onSuccess(){this.onSetStartImageUrl()}}}),Oe={class:"field"},Be={class:"title font-bold"},je={class:"upload-wrapper"};function qe(e,s,c,d,v,b){const p=o("image-preview"),m=o("font-awesome-icon"),n=o("el-button"),y=o("el-upload"),_=o("info-icon");return a(),r("div",Oe,[l("h2",Be,i(e.$t("pika.name.imageUrl")),1),l("div",je,[t(y,{"file-list":e.fileList,"onUpdate:fileList":s[0]||(s[0]=f=>e.fileList=f),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",class:"value upload-wrapper",limit:3,multiple:!0,"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:f})=>[t(p,{url:f.url||f.response?.file_url,name:f.name,percentage:f.percentage,onRemove:S=>e.fileList.splice(e.fileList.indexOf(f),1)},null,8,["url","name","percentage","onRemove"])]),default:u(()=>[t(n,{size:"small",type:"primary",round:""},{default:u(()=>[t(m,{icon:"fa-solid fa-upload",class:"mr-1"}),h(" "+i(e.$t("pika.button.uploadImageUrl")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-remove","on-success","headers"])]),t(_,{content:e.$t("pika.description.imageUrl"),class:"info"},null,8,["content"])])}const Ne=k(Me,[["render",qe],["__scopeId","data-v-18cda67a"]]),ze="",Fe=$({name:"PromptInput",components:{ElInput:z,InfoIcon:D},computed:{prompt:{get(){return this.$store.state.pika?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("pika/setConfig",{...this.$store.state.pika?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=ze)}}),Ke={class:"field"},He={class:"box"},Je={class:"title font-bold"};function Qe(e,s,c,d,v,b){const p=o("info-icon"),m=o("el-input");return a(),r("div",Ke,[l("div",He,[l("h2",Je,i(e.$t("pika.name.prompt")),1),t(p,{content:e.$t("pika.description.prompt"),class:"info"},null,8,["content"])]),t(m,{modelValue:e.prompt,"onUpdate:modelValue":s[0]||(s[0]=n=>e.prompt=n),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("pika.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const We=k(Fe,[["render",Qe],["__scopeId","data-v-d7f7cedd"]]),Xe=$({name:"PresetPanel",components:{ImageUrlInput:Ne,ElButton:L,FontAwesomeIcon:P,Consumption:oe,PromptInput:We,IngredientsSelector:ve,IngredientsModelSelector:Le,ModelSelector:Ge,EffectSelector:Se},emits:["generate"],computed:{config(){return this.$store.state.pika?.config},consumption(){return ne(this.config,this.service?.cost)},service(){return this.$store.state.pika?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Ye={class:"flex flex-col h-full"},Ze={class:"flex-1 overflow-y-auto p-5"},xe={class:"flex flex-col items-center justify-center px-5 pb-5"};function et(e,s,c,d,v,b){const p=o("prompt-input"),m=o("model-selector"),n=o("ingredients-selector"),y=o("effect-selector"),_=o("image-url-input"),f=o("ingredients-model-selector"),S=o("consumption"),w=o("font-awesome-icon"),A=o("el-button");return a(),r("div",Ye,[l("div",Ze,[t(p,{class:"mb-4"}),t(m,{class:"mb-4"}),t(n,{class:"mb-4"}),t(y,{class:"mb-4"}),e.config?.ingredients?(a(),I(_,{key:0,class:"mb-4"})):g("",!0),e.config?.ingredients?(a(),I(f,{key:1,class:"mb-4"})):g("",!0)]),l("div",xe,[t(S,{value:e.consumption,service:e.service},null,8,["value","service"]),t(A,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:u(()=>[t(w,{icon:"fa-solid fa-magic",class:"mr-2"}),h(" "+i(e.$t("pika.button.generate")),1)]),_:1},8,["onClick"])])])}const tt=k(Xe,[["render",et]]),st=$({name:"VideoPlayer",components:{VuePlyr:le},props:{modelValue:{type:Object,required:!0}},data(){return{options:{quality:{default:"1080p"}}}}}),ot=["data-poster"],at=["src"];function nt(e,s,c,d,v,b){const p=o("vue-plyr");return a(),r("div",null,[t(p,{options:e.options,class:"video"},{default:u(()=>[l("video",{controls:"",crossorigin:"",playsinline:"","data-poster":e.modelValue?.image_url},[l("source",{size:"1080",src:e.modelValue?.video_url,type:"video/mp4"},null,8,at)],8,ot)]),_:1},8,["options"])])}const it=k(st,[["render",nt],["__scopeId","data-v-fc420430"]]),lt=$({name:"TaskPreview",components:{ElImage:H,CopyToClipboard:ie,FontAwesomeIcon:P,ElAlert:K,VideoPlayer:it,ElTooltip:F,ElButton:L},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.pika?.application},config(){return this.$store.state.pika?.config},videos(){let e=[];const s=this.modelValue?.request?.action;return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(c=>{let d=c;s&&(d.action=s),e.push(d)}),e}},methods:{onDownload(e){console.log("on download"),window.open(e,"_blank")},onReload(e){const s=e.target,c=new URL(s.src),d=c.searchParams.get("retry");if(!d)c.searchParams.set("retry","1");else if(parseInt(d)<2)c.searchParams.set("retry",(parseInt(d)+1).toString());else return;s.src=c.toString()},onOpenVideo(e){window.open(e,"_blank")}}}),rt={class:"left"},ct={class:"main"},pt={class:"bot"},dt={class:"datetime"},ut={class:"info"},mt={key:0,class:"prompt mt-2"},ft={key:0},_t={key:1},ht={key:0,class:R({content:!0,failed:!0})},gt={class:"image-wrapper"},$t={key:0,class:R({operations:!0,"mt-2":!0})},kt={key:0,class:"description"},vt={class:"description"},bt={key:1,class:R({content:!0})},yt={class:"description"},wt={class:"description"},Vt={class:"description"},It={key:2,class:R({content:!0})},St={class:"description"};function Et(e,s,c,d,v,b){const p=o("el-image"),m=o("VideoPlayer"),n=o("el-button"),y=o("el-tooltip"),_=o("font-awesome-icon"),f=o("copy-to-clipboard"),S=o("el-alert");return a(!0),r(E,null,T(e.videos,(w,A)=>(a(),r("div",{key:A,class:"preview"},[l("div",rt,[t(p,{src:"https://cdn.acedata.cloud/i80tgn.png",class:"avatar"})]),l("div",ct,[l("div",pt,[h(i(e.$t("pika.name.pikaBot"))+" ",1),l("span",dt,i(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),l("div",ut,[e.modelValue?.request?.prompt?(a(),r("p",mt,[h(i(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?g("",!0):(a(),r("span",ft," - ("+i(e.$t("pika.status.pending"))+") ",1)),w?.state==="processing"||w?.state==="pending"?(a(),r("span",_t," - ("+i(e.$t("pika.status.processing"))+") ",1)):g("",!0)])):g("",!0)]),e.modelValue?.response?.success===!0?(a(),r("div",ht,[l("div",gt,[t(m,{"model-value":w},null,8,["model-value"])]),w?(a(),r("div",$t,[t(y,{class:"box-item",effect:"dark",content:e.$t("pika.message.downloadVideo"),placement:"top-start"},{default:u(()=>[w?.video_url?(a(),I(n,{key:0,type:"info",size:"small",class:"btn-action",onClick:Mt=>e.onDownload(w?.video_url)},{default:u(()=>[h(i(e.$t("pika.button.download")),1)]),_:2},1032,["onClick"])):g("",!0)]),_:2},1032,["content"])])):g("",!0),t(S,{closable:!1,class:"mt-2 success"},{default:u(()=>[e.modelValue?.request?.model?(a(),r("p",kt,[t(_,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+i(e.$t("pika.name.model"))+": "+i(e.modelValue?.request?.model),1)])):g("",!0),l("p",vt,[t(_,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+i(e.$t("pika.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),t(f,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])):g("",!0),e.modelValue?.response?.success===!1?(a(),r("div",bt,[t(S,{closable:!1,class:"failure"},{template:u(()=>[t(_,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),h(" "+i(e.$t("pika.name.failure")),1)]),default:u(()=>[l("p",yt,[t(_,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+i(e.$t("pika.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),t(f,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),l("p",wt,[t(_,{icon:"fa-solid fa-circle-info",class:"mr-1"}),h(" "+i(e.$t("pika.name.failureReason"))+": "+i(e.modelValue?.response?.error?.message)+" ",1),t(f,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),l("p",Vt,[t(_,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+i(e.$t("pika.name.traceId"))+": "+i(e.modelValue?.response?.trace_id)+" ",1),t(f,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])]),_:1})])):g("",!0),!e.modelValue?.response||w?.state==="processing"||w?.state==="pending"?(a(),r("div",It,[t(S,{closable:!1,class:"info"},{template:u(()=>[t(_,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),h(" "+i(e.$t("pika.name.failure")),1)]),default:u(()=>[l("p",St,[t(_,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+i(e.$t("pika.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),t(f,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})])):g("",!0)])]))),128)}const Tt=k(lt,[["render",Et],["__scopeId","data-v-41cbe62b"]]),Ct=$({name:"RecentPanel",components:{TaskPreview:Tt,BotPlaceholder:re,NoTasks:ae,ScrollList:te},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.pika?.tasks,items:this.$store.state.pika?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Pt={key:0},Lt={key:2,class:"w-full h-full flex items-center justify-center"};function Rt(e,s,c,d,v,b){const p=o("bot-placeholder"),m=o("task-preview"),n=o("scroll-list"),y=o("no-tasks");return a(),r(E,null,[e.tasks?.items===void 0?(a(),r("div",Pt,[t(p)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(a(),I(n,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:s[0]||(s[0]=_=>e.$emit("reach-top"))},{default:u(()=>[(a(!0),r(E,null,T(e.tasks?.items,(_,f)=>(a(),I(m,{key:f,"model-value":_},null,8,["model-value"]))),128))]),_:1},8,["loading"])):g("",!0),e.tasks?.items?.length===0?(a(),r("div",Lt,[t(y)])):g("",!0)],64)}const At=k(Ct,[["render",Rt]]),Ut="https://webhook.acedata.cloud/pika",Dt=$({name:"PikaIndex",components:{ConfigPanel:tt,Layout:_e,RecentPanel:At},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.pika?.status?.getApplications===C.Request},tasksLoading(){return this.$store.state.pika?.status?.getTasks===C.Request||this.fetchingTasks},service(){return this.$store.state.pika.service},credential(){return this.$store.state.pika.credential},config(){return this.$store.state.pika.config},initializing(){return this.$store.state.pika.status.getApplications===C.Request},needApply(){return this.$store.state.pika.status.getApplications===C.Success&&!this.application},application(){return this.$store.state.pika.application},applications(){return this.$store.state.pika.applications},tasks(){return this.$store.state.pika.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 ce({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("pika/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("pika/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},onApply(){x.create({application:this.application}).then(({data:e})=>{this.application=e,V.success(this.$t("application.message.applySuccessfully"))}).catch(e=>{e?.response?.data?.code===ee&&V.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:s=5,createdAtMin:c,createdAtMax:d}=e||{};console.debug("limit",s,"createdAtMin",c,"createdAtMax",d),this.fetchingTasks=!0;try{await this.$store.dispatch("pika/getTasks",{limit:s,createdAtMin:c,createdAtMax:d})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:Ut},s=this.credential?.token;if(!s){console.error("no token specified");return}V.info(this.$t("pika.message.startingTask")),Y.generate(e,{token:s}).then(()=>{V.success(this.$t("pika.message.startTaskSuccess")),this.$store.commit("pika/setConfig",{config:void 0})}).catch(c=>{c?.response?.data?.error?.code===Z?V.error(this.$t("pika.message.usedUp")):V.error(this.$t("pika.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Gt(e,s,c,d,v,b){const p=o("config-panel"),m=o("recent-panel"),n=o("layout");return a(),I(n,null,{config:u(()=>[t(p,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:u(()=>[t(m,{ref:"recentPanel",class:"panel recent",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const es=k(Dt,[["render",Gt],["__scopeId","data-v-456819d1"]]);export{es as default};
@@ -1 +1 @@
1
- import{F as T}from"./index.es-BBWlIYNp.js";import{l as q,S as H,s as K,t as x,u as E,N as B,O as G,p as J,G as Q,j as X}from"./vendor-element-plus-B4FTqxj4.js";import{d as k,C as l,G as c,T as a,E as C,K as $,ai as s,D as n,R as o,Q as u,S as A,ag as N,J as V,O as b,M as O,X as Y}from"./vendor-vue-1w_NBnjl.js";import{_ as y,aj as Z,c7 as ee,c8 as z,c9 as P,ca as te,cb as S,cc as M,cd as j,ce as D,cf as ae,aB as oe,ay as F}from"./index-CbNap6do.js";import{I as U,S as ne}from"./ScrollList-CWMs1Ybz.js";import{I as W}from"./ImagePreview-DQ_Qb42v.js";import{C as se,N as le}from"./NoTasks-CXu_7YPv.js";import{a as re}from"./price-BYaiiVhA.js";import{C as ie}from"./CopyToClipboard-Dbge62aB.js";import{I as ce}from"./ImageWrapper-C1ugqc_F.js";import{B as ue}from"./BotPlaceholder-CYTkmKw0.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-Dsu5cGVO.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-Dj5bcX0v.js";const de=k({name:"LayoutNanobanana",components:{ElDrawer:H,ElButton:q,FontAwesomeIcon:T},data(){return{drawer:!1}}}),me={class:"main flex flex-row flex-1"},pe={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},fe={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function he(e,t,g,r,d,f){const h=s("font-awesome-icon"),_=s("el-button"),m=s("el-drawer");return n(),l("div",me,[c("div",pe,[C(e.$slots,"config",{},void 0,!0)]),c("div",fe,[C(e.$slots,"result",{},void 0,!0)]),a(_,{circle:"",class:"menu",onClick:t[0]||(t[0]=p=>e.drawer=!0)},{default:$(()=>[a(h,{icon:"fa-solid fa-magic"})]),_:1}),a(m,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=p=>e.drawer=p),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:$(()=>[C(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const _e=y(de,[["render",he],["__scopeId","data-v-9fbc8a5c"]]),ge="",be=k({name:"PromptInput",components:{ElInput:K,InfoIcon:U},computed:{prompt:{get(){return this.$store.state.nanobanana?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=ge)}}),$e={class:"field"},ve={class:"box"},ke={class:"title font-bold"};function ye(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-input");return n(),l("div",$e,[c("div",ve,[c("h2",ke,o(e.$t("nanobanana.name.prompt")),1),a(h,{content:e.$t("nanobanana.description.prompt"),class:"info"},null,8,["content"])]),a(_,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=m=>e.prompt=m),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("nanobanana.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const we=y(be,[["render",ye],["__scopeId","data-v-2331e197"]]),Ae=k({name:"ImageUrlsInput",components:{ElUpload:x,ElButton:q,InfoIcon:U,ImagePreview:W,FontAwesomeIcon:T},data(){return{fileList:[],uploadUrl:Z()+"/api/v1/files/",suppressWatch:!1}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url).filter(e=>!!e)},value(){return this.$store.state.nanobanana?.config?.image_urls}},watch:{value:{immediate:!0,handler(e){if(this.suppressWatch)return;if(!e||e.length===0){const r=(this.fileList||[]).filter(d=>!d?.response?.file_url);this.fileList=r.length?r:[];return}const t=[];e.forEach(r=>{const d=this.fileList.find(f=>f?.response?.file_url===r||f?.url===r);d?t.push(d):t.push({name:r.split("/").pop()||r,url:r,status:"success",percentage:100,response:{file_url:r}})}),(this.fileList||[]).filter(r=>!r?.response?.file_url).forEach(r=>{t.some(f=>f===r||f?.url===r?.url||f?.response?.file_url===r?.response?.file_url)||t.push(r)}),this.fileList=t}}},mounted(){},methods:{onChange(e){if(!e?.url&&e?.raw)try{e.url=URL.createObjectURL(e.raw)}catch{}},onRemove(e){if(e?.url&&typeof e.url=="string"&&e.url.startsWith("blob:"))try{URL.revokeObjectURL(e.url)}catch{}this.onSetImageUrls()},onExceed(){E.warning(this.$t("nanobanana.message.uploadImageExceed"))},onError(){E.error(this.$t("nanobanana.message.uploadImageError"))},onSetImageUrls(){const e=this.urls;this.suppressWatch=!0,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,image_urls:e}),this.$nextTick(()=>{this.suppressWatch=!1})},async onSuccess(e,t){e?.file_url&&(t.url=e.file_url,t.response=e),this.onSetImageUrls()},onRemovePreview(e,t){if(this.fileList.splice(e,1),t?.url&&typeof t.url=="string"&&t.url.startsWith("blob:"))try{URL.revokeObjectURL(t.url)}catch{}this.onSetImageUrls()}}}),Ve={class:"field flex items-center justify-between"},Ne={class:"title font-bold text-[14px] mb-[10px]"},Re={class:"upload-wrapper flex flex-col items-start gap-[8px]"},Ee={class:"controls flex items-center"},Ie={class:"file-list flex flex-wrap gap-[10px]"};function Le(e,t,g,r,d,f){const h=s("font-awesome-icon"),_=s("el-button"),m=s("el-upload"),p=s("info-icon"),w=s("image-preview");return n(),l(A,null,[c("div",Ve,[c("h2",Ne,o(e.$t("nanobanana.name.imageUrls")),1),c("div",Re,[c("div",Ee,[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(_,{size:"small",type:"primary",round:""},{default:$(()=>[a(h,{icon:"fa-solid fa-upload",class:"mr-1"}),u(" "+o(e.$t("nanobanana.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","on-change","on-remove","headers"]),a(p,{content:e.$t("nanobanana.description.imageUrls"),class:"ml-2"},null,8,["content"])])])]),c("div",Ie,[(n(!0),l(A,null,N(e.fileList,(i,v)=>(n(),V(w,{key:i.uid||i?.response?.file_url||i.url||v,url:i.url||i?.response?.file_url,name:i.name,percentage:i.percentage,onRemove:R=>e.onRemovePreview(v,i)},null,8,["url","name","percentage","onRemove"]))),128))])],64)}const Se=y(Ae,[["render",Le]]),Te=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)}}}}),qe={class:"field"},Oe={class:"title font-bold"};function Ue(e,t,g,r,d,f){const h=s("el-option"),_=s("el-select");return n(),l("div",qe,[c("h2",Oe,o(e.$t("nanobanana.name.aspectRatio")),1),a(_,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=m=>e.value=m),class:"value",clearable:"",placeholder:e.$t("nanobanana.placeholder.select")},{default:$(()=>[(n(!0),l(A,null,N(e.options,m=>(n(),V(h,{key:m,label:m,value:m},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ce=y(Te,[["render",Ue],["__scopeId","data-v-67f08a08"]]),Pe=k({name:"NanobananaModelSelector",components:{ElSelect:G,ElOption:B,InfoIcon:U},data(){return{options:[{value:z,label:this.$t("nanobanana.model.nanoBanana")},{value:P,label:this.$t("nanobanana.model.nanoBananaPro")},{value:te,label:this.$t("nanobanana.model.nanoBanana2")}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.model},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,model:e})}},modelDescription(){return this.$t("nanobanana.description.model")}},mounted(){this.value||(this.value=ee)}}),Be={class:"field"},Ge={class:"label"},Me={class:"box"},je={class:"title font-bold"};function De(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-option"),m=s("el-select");return n(),l("div",Be,[c("div",Ge,[c("div",Me,[c("h2",je,o(e.$t("nanobanana.name.model")),1),a(h,{content:e.modelDescription,class:"info"},null,8,["content"])])]),a(m,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"value",placeholder:e.$t("nanobanana.placeholder.select")},{default:$(()=>[(n(!0),l(A,null,N(e.options,p=>(n(),V(_,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Fe=y(Pe,[["render",De],["__scopeId","data-v-94304d73"]]),ze=k({name:"NanobananaResolutionSelector",components:{ElSelect:G,ElOption:B,InfoIcon:U},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!==z}},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}))}}),We={class:"field"},He={class:"label"},Ke={class:"box"},xe={class:"title font-bold"};function Je(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-option"),m=s("el-select");return n(),l("div",We,[c("div",He,[c("div",Ke,[c("h2",xe,o(e.$t("nanobanana.name.resolution")),1),a(h,{content:e.$t("nanobanana.description.resolutionProOnly"),class:"info"},null,8,["content"])])]),a(m,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"value",placeholder:e.$t("nanobanana.placeholder.select"),disabled:!e.isProModel},{default:$(()=>[(n(!0),l(A,null,N(e.options,p=>(n(),V(_,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled"])])}const Qe=y(ze,[["render",Je],["__scopeId","data-v-fd5ab393"]]),Xe=k({name:"ConfigPanel",components:{ElButton:q,FontAwesomeIcon:T,PromptInput:we,Consumption:se,ImageUrlsInput:Se,AspectRatioSelector:Ce,ModelSelector:Fe,ResolutionSelector:Qe},emits:["generate"],computed:{config(){return this.$store.state.nanobanana?.config},consumption(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;return re({...e,action:t?"edit":"generate"},this.service?.cost)},service(){return this.$store.state.nanobanana?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Ye={class:"flex flex-col h-full"},Ze={class:"flex-1 overflow-y-auto p-5"},et={class:"flex flex-col items-center justify-center px-5 pb-5"};function tt(e,t,g,r,d,f){const h=s("model-selector"),_=s("resolution-selector"),m=s("prompt-input"),p=s("aspect-ratio-selector"),w=s("image-urls-input"),i=s("consumption"),v=s("font-awesome-icon"),R=s("el-button");return n(),l("div",Ye,[c("div",Ze,[a(h,{class:"mb-4"}),a(_,{class:"mb-4"}),a(m,{class:"mb-4"}),a(p,{class:"mb-4"}),a(w,{class:"mb-4"})]),c("div",et,[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 at=y(Xe,[["render",tt]]),ot=k({name:"TaskPreview",components:{ElImage:X,CopyToClipboard:ie,FontAwesomeIcon:T,ElAlert:Q,ImageWrapper:ce,ElButton:q,ElTooltip:J,ImagePreview:W},props:{modelValue:{type:Object,required:!0}},computed:{images(){const e=[];return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(t=>{e.push(t)}),e}},methods:{onEdit(e){if(!e)return;console.debug("Edit image:",e);const t={...this.$store.state.nanobanana?.config||{}};delete t.action,t.image_urls=[e],this.$store.commit("nanobanana/setConfig",t)}}}),nt={class:"preview"},st={class:"left"},lt={class:"main"},rt={class:"bot"},it={class:"datetime"},ct={class:"info"},ut={key:0,class:"flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto"},dt={key:1,class:"prompt mt-2"},mt={key:0},pt={key:0,class:O({content:!0,failed:!0})},ft={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},ht={class:O({operations:!0,"mt-2":!0,"mb-2":!0})},_t={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},gt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},bt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},$t={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},vt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},kt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},yt={key:1,class:O({content:!0})},wt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},At={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"},Nt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Rt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Et={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"},Lt={key:2,class:O({content:!0})},St={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Tt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},qt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ot={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ut={class:"text-[var(--el-text-color-regular)] text-xs mb-2"};function Ct(e,t,g,r,d,f){const h=s("el-image"),_=s("image-preview"),m=s("image-wrapper"),p=s("el-button"),w=s("el-tooltip"),i=s("font-awesome-icon"),v=s("copy-to-clipboard"),R=s("el-alert");return n(),l("div",nt,[c("div",st,[a(h,{src:"https://cdn.acedata.cloud/859plc.jpg",class:"avatar"})]),c("div",lt,[c("div",rt,[u(o(e.$t("nanobanana.name.nanobananaBot"))+" ",1),c("span",it,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),c("div",ct,[e.modelValue?.request?.image_urls&&e.modelValue?.request?.image_urls.length>0?(n(),l("div",ut,[(n(!0),l(A,null,N(e.modelValue?.request?.image_urls,(I,L)=>(n(),V(_,{key:L,url:I,name:`image-${L+1}`,closable:!1},null,8,["url","name"]))),128))])):b("",!0),e.modelValue?.request?.prompt?(n(),l("p",dt,[u(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?b("",!0):(n(),l("span",mt," - ("+o(e.$t("nanobanana.status.pending"))+") ",1))])):b("",!0)]),e.modelValue?.response?.success===!0?(n(),l("div",pt,[c("div",ft,[(n(!0),l(A,null,N(e.images,(I,L)=>(n(),V(m,{key:L,src:I?.image_url,"raw-src":I?.image_url},null,8,["src","raw-src"]))),128))]),c("div",ht,[a(w,{class:"box-item",effect:"dark",content:e.$t("common.button.edit"),placement:"top-start"},{default:$(()=>[a(p,{type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=Y(I=>e.onEdit(e.images?.[0]?.image_url),["stop"]))},{default:$(()=>[u(o(e.$t("common.button.edit")),1)]),_:1})]),_:1},8,["content"])]),a(R,{closable:!1,class:"mt-2 success"},{default:$(()=>[e.modelValue?.request?.model?(n(),l("p",_t,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",gt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",bt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",$t,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",vt,[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",kt,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(v,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):b("",!0)]),_:1})])):e.modelValue?.response?.success===!1?(n(),l("div",yt,[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",wt,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",At,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",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)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",Nt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",Rt,[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",Et,[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"])])):b("",!0)]),_:1})])):(n(),l("div",Lt,[a(R,{closable:!1,class:"info"},{template:$(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failure")),1)]),default:$(()=>[e.modelValue?.request?.model?(n(),l("p",St,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",Tt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",qt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",Ot,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",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})]))])])}const Pt=y(ot,[["render",Ct],["__scopeId","data-v-49f62c2e"]]),Bt=k({name:"RecentPanel",components:{TaskPreview:Pt,BotPlaceholder:ue,NoTasks:le,ScrollList:ne},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.nanobanana?.tasks,items:this.$store.state.nanobanana?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Gt={key:0},Mt={key:2,class:"w-full h-full flex items-center justify-center"};function jt(e,t,g,r,d,f){const h=s("bot-placeholder"),_=s("task-preview"),m=s("scroll-list"),p=s("no-tasks");return n(),l(A,null,[e.tasks?.items===void 0?(n(),l("div",Gt,[a(h)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),V(m,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:t[0]||(t[0]=w=>e.$emit("reach-top"))},{default:$(()=>[(n(!0),l(A,null,N(e.tasks?.items,w=>(n(),V(_,{key:w.id,"model-value":w},null,8,["model-value"]))),128))]),_:1},8,["loading"])):b("",!0),e.tasks?.items?.length===0?(n(),l("div",Mt,[a(p)])):b("",!0)],64)}const Dt=y(Bt,[["render",jt]]),Ft="https://webhook.acedata.cloud/nanobanana",zt=k({name:"NanobananaIndex",components:{ConfigPanel:at,Layout:_e,RecentPanel:Dt},inject:["initialized"],data(){return{task:void 0,job:0,loading:!1}},computed:{applicationsLoading(){return this.$store.state.nanobanana?.status?.getApplications===F.Request},tasksLoading(){return this.$store.state.nanobanana?.status?.getTasks===F.Request},credential(){return this.$store.state.nanobanana?.credential},config(){return this.$store.state.nanobanana?.config},application(){return this.$store.state.nanobanana?.application},tasks(){return this.$store.state.nanobanana?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug("new tasks detected")},deep:!0},initialized:{async handler(e){e&&(console.debug("layout initialized"),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){if(console.debug("reached top"),this.loading||this.tasksLoading)return;const e=this.tasks?.total,t=this.tasks?.items?.length||0;if(e!==void 0&&e<=t)return;const g=this.tasks?.items?.[0];if(!g?.created_at)return;const d=this.$refs.recentPanel?.getScrollElement?.(),f=d?.scrollHeight||0,h=d?.scrollTop||0;this.loading=!0;try{if(await this.onGetTasks({createdAtMax:g.created_at}),await this.$nextTick(),d){const _=d.scrollHeight;d.scrollTop=_-f+h}}finally{this.loading=!1}},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("nanobanana/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("nanobanana/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.tasksLoading){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=20,createdAtMin:g,createdAtMax:r}=e||{};console.debug("limit",t,"createdAtMin",g,"createdAtMax",r),await this.$store.dispatch("nanobanana/getTasks",{limit:t,createdAtMin:g,createdAtMax:r})},async onGenerate(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;delete e.action,!t&&"image_urls"in e&&delete e.image_urls,e?.aspect_ratio||delete e.aspect_ratio,e?.model!==P&&"resolution"in e&&delete e.resolution,e?.model===P&&!e?.resolution&&(e.resolution=S);const g={...e,action:t?"edit":"generate",callback_url:Ft},r=this.credential?.token;if(!r){console.error("no token specified");return}E.info(this.$t("nanobanana.message.startingTask")),ae.generate(g,{token:r}).then(()=>{E.success(this.$t("nanobanana.message.startTaskSuccess"))}).catch(d=>{const f=d?.response?.data;f?.error?.code===oe?E.error(this.$t("nanobanana.message.usedUp")):E.error(this.$t("nanobanana.message.startTaskFailed")+(f?.error?.message||""))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Wt(e,t,g,r,d,f){const h=s("config-panel"),_=s("recent-panel"),m=s("layout");return n(),V(m,null,{config:$(()=>[a(h,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:$(()=>[a(_,{ref:"recentPanel",loading:e.loading,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const ra=y(zt,[["render",Wt]]);export{ra as default};
1
+ import{F as T}from"./index.es-7RSklBi_.js";import{l as q,S as H,s as K,t as x,u as E,N as B,O as G,p as J,G as Q,j as X}from"./vendor-element-plus-B4FTqxj4.js";import{d as k,C as l,G as c,T as a,E as C,K as $,ai as s,D as n,R as o,Q as u,S as A,ag as N,J as V,O as b,M as O,X as Y}from"./vendor-vue-1w_NBnjl.js";import{_ as y,aj as Z,c7 as ee,c8 as z,c9 as P,ca as te,cb as S,cc as M,cd as j,ce as D,cf as ae,aB as oe,ay as F}from"./index-BkuLNx2-.js";import{I as U,S as ne}from"./ScrollList-DHgQC1_v.js";import{I as W}from"./ImagePreview-DR_hrXkE.js";import{C as se,N as le}from"./NoTasks-BYsoXaVq.js";import{a as re}from"./price-Q1mTRsEK.js";import{C as ie}from"./CopyToClipboard-D1FwD7Ay.js";import{I as ce}from"./ImageWrapper-MeuTnPga.js";import{B as ue}from"./BotPlaceholder-DryhpfyI.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-XrA95VRY.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-Dj5bcX0v.js";const de=k({name:"LayoutNanobanana",components:{ElDrawer:H,ElButton:q,FontAwesomeIcon:T},data(){return{drawer:!1}}}),me={class:"main flex flex-row flex-1"},pe={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},fe={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function he(e,t,g,r,d,f){const h=s("font-awesome-icon"),_=s("el-button"),m=s("el-drawer");return n(),l("div",me,[c("div",pe,[C(e.$slots,"config",{},void 0,!0)]),c("div",fe,[C(e.$slots,"result",{},void 0,!0)]),a(_,{circle:"",class:"menu",onClick:t[0]||(t[0]=p=>e.drawer=!0)},{default:$(()=>[a(h,{icon:"fa-solid fa-magic"})]),_:1}),a(m,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=p=>e.drawer=p),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:$(()=>[C(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const _e=y(de,[["render",he],["__scopeId","data-v-9fbc8a5c"]]),ge="",be=k({name:"PromptInput",components:{ElInput:K,InfoIcon:U},computed:{prompt:{get(){return this.$store.state.nanobanana?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=ge)}}),$e={class:"field"},ve={class:"box"},ke={class:"title font-bold"};function ye(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-input");return n(),l("div",$e,[c("div",ve,[c("h2",ke,o(e.$t("nanobanana.name.prompt")),1),a(h,{content:e.$t("nanobanana.description.prompt"),class:"info"},null,8,["content"])]),a(_,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=m=>e.prompt=m),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("nanobanana.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const we=y(be,[["render",ye],["__scopeId","data-v-2331e197"]]),Ae=k({name:"ImageUrlsInput",components:{ElUpload:x,ElButton:q,InfoIcon:U,ImagePreview:W,FontAwesomeIcon:T},data(){return{fileList:[],uploadUrl:Z()+"/api/v1/files/",suppressWatch:!1}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url).filter(e=>!!e)},value(){return this.$store.state.nanobanana?.config?.image_urls}},watch:{value:{immediate:!0,handler(e){if(this.suppressWatch)return;if(!e||e.length===0){const r=(this.fileList||[]).filter(d=>!d?.response?.file_url);this.fileList=r.length?r:[];return}const t=[];e.forEach(r=>{const d=this.fileList.find(f=>f?.response?.file_url===r||f?.url===r);d?t.push(d):t.push({name:r.split("/").pop()||r,url:r,status:"success",percentage:100,response:{file_url:r}})}),(this.fileList||[]).filter(r=>!r?.response?.file_url).forEach(r=>{t.some(f=>f===r||f?.url===r?.url||f?.response?.file_url===r?.response?.file_url)||t.push(r)}),this.fileList=t}}},mounted(){},methods:{onChange(e){if(!e?.url&&e?.raw)try{e.url=URL.createObjectURL(e.raw)}catch{}},onRemove(e){if(e?.url&&typeof e.url=="string"&&e.url.startsWith("blob:"))try{URL.revokeObjectURL(e.url)}catch{}this.onSetImageUrls()},onExceed(){E.warning(this.$t("nanobanana.message.uploadImageExceed"))},onError(){E.error(this.$t("nanobanana.message.uploadImageError"))},onSetImageUrls(){const e=this.urls;this.suppressWatch=!0,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,image_urls:e}),this.$nextTick(()=>{this.suppressWatch=!1})},async onSuccess(e,t){e?.file_url&&(t.url=e.file_url,t.response=e),this.onSetImageUrls()},onRemovePreview(e,t){if(this.fileList.splice(e,1),t?.url&&typeof t.url=="string"&&t.url.startsWith("blob:"))try{URL.revokeObjectURL(t.url)}catch{}this.onSetImageUrls()}}}),Ve={class:"field flex items-center justify-between"},Ne={class:"title font-bold text-[14px] mb-[10px]"},Re={class:"upload-wrapper flex flex-col items-start gap-[8px]"},Ee={class:"controls flex items-center"},Ie={class:"file-list flex flex-wrap gap-[10px]"};function Le(e,t,g,r,d,f){const h=s("font-awesome-icon"),_=s("el-button"),m=s("el-upload"),p=s("info-icon"),w=s("image-preview");return n(),l(A,null,[c("div",Ve,[c("h2",Ne,o(e.$t("nanobanana.name.imageUrls")),1),c("div",Re,[c("div",Ee,[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(_,{size:"small",type:"primary",round:""},{default:$(()=>[a(h,{icon:"fa-solid fa-upload",class:"mr-1"}),u(" "+o(e.$t("nanobanana.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","on-change","on-remove","headers"]),a(p,{content:e.$t("nanobanana.description.imageUrls"),class:"ml-2"},null,8,["content"])])])]),c("div",Ie,[(n(!0),l(A,null,N(e.fileList,(i,v)=>(n(),V(w,{key:i.uid||i?.response?.file_url||i.url||v,url:i.url||i?.response?.file_url,name:i.name,percentage:i.percentage,onRemove:R=>e.onRemovePreview(v,i)},null,8,["url","name","percentage","onRemove"]))),128))])],64)}const Se=y(Ae,[["render",Le]]),Te=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)}}}}),qe={class:"field"},Oe={class:"title font-bold"};function Ue(e,t,g,r,d,f){const h=s("el-option"),_=s("el-select");return n(),l("div",qe,[c("h2",Oe,o(e.$t("nanobanana.name.aspectRatio")),1),a(_,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=m=>e.value=m),class:"value",clearable:"",placeholder:e.$t("nanobanana.placeholder.select")},{default:$(()=>[(n(!0),l(A,null,N(e.options,m=>(n(),V(h,{key:m,label:m,value:m},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ce=y(Te,[["render",Ue],["__scopeId","data-v-67f08a08"]]),Pe=k({name:"NanobananaModelSelector",components:{ElSelect:G,ElOption:B,InfoIcon:U},data(){return{options:[{value:z,label:this.$t("nanobanana.model.nanoBanana")},{value:P,label:this.$t("nanobanana.model.nanoBananaPro")},{value:te,label:this.$t("nanobanana.model.nanoBanana2")}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.model},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,model:e})}},modelDescription(){return this.$t("nanobanana.description.model")}},mounted(){this.value||(this.value=ee)}}),Be={class:"field"},Ge={class:"label"},Me={class:"box"},je={class:"title font-bold"};function De(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-option"),m=s("el-select");return n(),l("div",Be,[c("div",Ge,[c("div",Me,[c("h2",je,o(e.$t("nanobanana.name.model")),1),a(h,{content:e.modelDescription,class:"info"},null,8,["content"])])]),a(m,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"value",placeholder:e.$t("nanobanana.placeholder.select")},{default:$(()=>[(n(!0),l(A,null,N(e.options,p=>(n(),V(_,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Fe=y(Pe,[["render",De],["__scopeId","data-v-94304d73"]]),ze=k({name:"NanobananaResolutionSelector",components:{ElSelect:G,ElOption:B,InfoIcon:U},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!==z}},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}))}}),We={class:"field"},He={class:"label"},Ke={class:"box"},xe={class:"title font-bold"};function Je(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-option"),m=s("el-select");return n(),l("div",We,[c("div",He,[c("div",Ke,[c("h2",xe,o(e.$t("nanobanana.name.resolution")),1),a(h,{content:e.$t("nanobanana.description.resolutionProOnly"),class:"info"},null,8,["content"])])]),a(m,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"value",placeholder:e.$t("nanobanana.placeholder.select"),disabled:!e.isProModel},{default:$(()=>[(n(!0),l(A,null,N(e.options,p=>(n(),V(_,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled"])])}const Qe=y(ze,[["render",Je],["__scopeId","data-v-fd5ab393"]]),Xe=k({name:"ConfigPanel",components:{ElButton:q,FontAwesomeIcon:T,PromptInput:we,Consumption:se,ImageUrlsInput:Se,AspectRatioSelector:Ce,ModelSelector:Fe,ResolutionSelector:Qe},emits:["generate"],computed:{config(){return this.$store.state.nanobanana?.config},consumption(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;return re({...e,action:t?"edit":"generate"},this.service?.cost)},service(){return this.$store.state.nanobanana?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Ye={class:"flex flex-col h-full"},Ze={class:"flex-1 overflow-y-auto p-5"},et={class:"flex flex-col items-center justify-center px-5 pb-5"};function tt(e,t,g,r,d,f){const h=s("model-selector"),_=s("resolution-selector"),m=s("prompt-input"),p=s("aspect-ratio-selector"),w=s("image-urls-input"),i=s("consumption"),v=s("font-awesome-icon"),R=s("el-button");return n(),l("div",Ye,[c("div",Ze,[a(h,{class:"mb-4"}),a(_,{class:"mb-4"}),a(m,{class:"mb-4"}),a(p,{class:"mb-4"}),a(w,{class:"mb-4"})]),c("div",et,[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 at=y(Xe,[["render",tt]]),ot=k({name:"TaskPreview",components:{ElImage:X,CopyToClipboard:ie,FontAwesomeIcon:T,ElAlert:Q,ImageWrapper:ce,ElButton:q,ElTooltip:J,ImagePreview:W},props:{modelValue:{type:Object,required:!0}},computed:{images(){const e=[];return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(t=>{e.push(t)}),e}},methods:{onEdit(e){if(!e)return;console.debug("Edit image:",e);const t={...this.$store.state.nanobanana?.config||{}};delete t.action,t.image_urls=[e],this.$store.commit("nanobanana/setConfig",t)}}}),nt={class:"preview"},st={class:"left"},lt={class:"main"},rt={class:"bot"},it={class:"datetime"},ct={class:"info"},ut={key:0,class:"flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto"},dt={key:1,class:"prompt mt-2"},mt={key:0},pt={key:0,class:O({content:!0,failed:!0})},ft={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},ht={class:O({operations:!0,"mt-2":!0,"mb-2":!0})},_t={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},gt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},bt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},$t={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},vt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},kt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},yt={key:1,class:O({content:!0})},wt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},At={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"},Nt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Rt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Et={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"},Lt={key:2,class:O({content:!0})},St={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Tt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},qt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ot={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ut={class:"text-[var(--el-text-color-regular)] text-xs mb-2"};function Ct(e,t,g,r,d,f){const h=s("el-image"),_=s("image-preview"),m=s("image-wrapper"),p=s("el-button"),w=s("el-tooltip"),i=s("font-awesome-icon"),v=s("copy-to-clipboard"),R=s("el-alert");return n(),l("div",nt,[c("div",st,[a(h,{src:"https://cdn.acedata.cloud/859plc.jpg",class:"avatar"})]),c("div",lt,[c("div",rt,[u(o(e.$t("nanobanana.name.nanobananaBot"))+" ",1),c("span",it,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),c("div",ct,[e.modelValue?.request?.image_urls&&e.modelValue?.request?.image_urls.length>0?(n(),l("div",ut,[(n(!0),l(A,null,N(e.modelValue?.request?.image_urls,(I,L)=>(n(),V(_,{key:L,url:I,name:`image-${L+1}`,closable:!1},null,8,["url","name"]))),128))])):b("",!0),e.modelValue?.request?.prompt?(n(),l("p",dt,[u(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?b("",!0):(n(),l("span",mt," - ("+o(e.$t("nanobanana.status.pending"))+") ",1))])):b("",!0)]),e.modelValue?.response?.success===!0?(n(),l("div",pt,[c("div",ft,[(n(!0),l(A,null,N(e.images,(I,L)=>(n(),V(m,{key:L,src:I?.image_url,"raw-src":I?.image_url},null,8,["src","raw-src"]))),128))]),c("div",ht,[a(w,{class:"box-item",effect:"dark",content:e.$t("common.button.edit"),placement:"top-start"},{default:$(()=>[a(p,{type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=Y(I=>e.onEdit(e.images?.[0]?.image_url),["stop"]))},{default:$(()=>[u(o(e.$t("common.button.edit")),1)]),_:1})]),_:1},8,["content"])]),a(R,{closable:!1,class:"mt-2 success"},{default:$(()=>[e.modelValue?.request?.model?(n(),l("p",_t,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",gt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",bt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",$t,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",vt,[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",kt,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(v,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):b("",!0)]),_:1})])):e.modelValue?.response?.success===!1?(n(),l("div",yt,[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",wt,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",At,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",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)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",Nt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",Rt,[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",Et,[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"])])):b("",!0)]),_:1})])):(n(),l("div",Lt,[a(R,{closable:!1,class:"info"},{template:$(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failure")),1)]),default:$(()=>[e.modelValue?.request?.model?(n(),l("p",St,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",Tt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",qt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",Ot,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",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})]))])])}const Pt=y(ot,[["render",Ct],["__scopeId","data-v-49f62c2e"]]),Bt=k({name:"RecentPanel",components:{TaskPreview:Pt,BotPlaceholder:ue,NoTasks:le,ScrollList:ne},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.nanobanana?.tasks,items:this.$store.state.nanobanana?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Gt={key:0},Mt={key:2,class:"w-full h-full flex items-center justify-center"};function jt(e,t,g,r,d,f){const h=s("bot-placeholder"),_=s("task-preview"),m=s("scroll-list"),p=s("no-tasks");return n(),l(A,null,[e.tasks?.items===void 0?(n(),l("div",Gt,[a(h)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),V(m,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:t[0]||(t[0]=w=>e.$emit("reach-top"))},{default:$(()=>[(n(!0),l(A,null,N(e.tasks?.items,w=>(n(),V(_,{key:w.id,"model-value":w},null,8,["model-value"]))),128))]),_:1},8,["loading"])):b("",!0),e.tasks?.items?.length===0?(n(),l("div",Mt,[a(p)])):b("",!0)],64)}const Dt=y(Bt,[["render",jt]]),Ft="https://webhook.acedata.cloud/nanobanana",zt=k({name:"NanobananaIndex",components:{ConfigPanel:at,Layout:_e,RecentPanel:Dt},inject:["initialized"],data(){return{task:void 0,job:0,loading:!1}},computed:{applicationsLoading(){return this.$store.state.nanobanana?.status?.getApplications===F.Request},tasksLoading(){return this.$store.state.nanobanana?.status?.getTasks===F.Request},credential(){return this.$store.state.nanobanana?.credential},config(){return this.$store.state.nanobanana?.config},application(){return this.$store.state.nanobanana?.application},tasks(){return this.$store.state.nanobanana?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug("new tasks detected")},deep:!0},initialized:{async handler(e){e&&(console.debug("layout initialized"),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){if(console.debug("reached top"),this.loading||this.tasksLoading)return;const e=this.tasks?.total,t=this.tasks?.items?.length||0;if(e!==void 0&&e<=t)return;const g=this.tasks?.items?.[0];if(!g?.created_at)return;const d=this.$refs.recentPanel?.getScrollElement?.(),f=d?.scrollHeight||0,h=d?.scrollTop||0;this.loading=!0;try{if(await this.onGetTasks({createdAtMax:g.created_at}),await this.$nextTick(),d){const _=d.scrollHeight;d.scrollTop=_-f+h}}finally{this.loading=!1}},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("nanobanana/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("nanobanana/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.tasksLoading){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=20,createdAtMin:g,createdAtMax:r}=e||{};console.debug("limit",t,"createdAtMin",g,"createdAtMax",r),await this.$store.dispatch("nanobanana/getTasks",{limit:t,createdAtMin:g,createdAtMax:r})},async onGenerate(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;delete e.action,!t&&"image_urls"in e&&delete e.image_urls,e?.aspect_ratio||delete e.aspect_ratio,e?.model!==P&&"resolution"in e&&delete e.resolution,e?.model===P&&!e?.resolution&&(e.resolution=S);const g={...e,action:t?"edit":"generate",callback_url:Ft},r=this.credential?.token;if(!r){console.error("no token specified");return}E.info(this.$t("nanobanana.message.startingTask")),ae.generate(g,{token:r}).then(()=>{E.success(this.$t("nanobanana.message.startTaskSuccess"))}).catch(d=>{const f=d?.response?.data;f?.error?.code===oe?E.error(this.$t("nanobanana.message.usedUp")):E.error(this.$t("nanobanana.message.startTaskFailed")+(f?.error?.message||""))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Wt(e,t,g,r,d,f){const h=s("config-panel"),_=s("recent-panel"),m=s("layout");return n(),V(m,null,{config:$(()=>[a(h,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:$(()=>[a(_,{ref:"recentPanel",loading:e.loading,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const ra=y(zt,[["render",Wt]]);export{ra as default};
@@ -1 +1 @@
1
- import{F as T}from"./index.es-BBWlIYNp.js";import{l as I,S as K,s as X,N as R,O as U,k as P,t as G,u as y,p as H,G as J,j as Q}from"./vendor-element-plus-B4FTqxj4.js";import{d as b,C as i,G as r,T as s,E as F,K as p,ai as t,D as n,R as o,S as L,ag as A,J as w,O as v,Q as h,M as C,X as W}from"./vendor-vue-1w_NBnjl.js";import{_ as E,cr as Y,cs as Z,ct as x,cu as M,cv as ee,cw as se,cx as te,cy as oe,aj as j,cz as ne,cA as ae,cB as le,cC as ie,Y as re,cD as ce,aB as de,ay as O}from"./index-CbNap6do.js";import{I as S,S as me}from"./ScrollList-CWMs1Ybz.js";import{I as B}from"./ImagePreview-DQ_Qb42v.js";import{C as ue,N as pe}from"./NoTasks-CXu_7YPv.js";import{a as fe}from"./price-BYaiiVhA.js";import{C as _e}from"./CopyToClipboard-Dbge62aB.js";import{V as he}from"./VideoPlayer-BcmrjJXR.js";import{I as ve}from"./ImageWrapper-C1ugqc_F.js";import{B as $e}from"./BotPlaceholder-CYTkmKw0.js";import{l as ge}from"./pagination-CihAE3FS.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-Dsu5cGVO.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-Dj5bcX0v.js";import"./vue-plyr-QZFBikSk.js";const be=b({name:"LayoutSeedance",components:{ElDrawer:K,ElButton:I,FontAwesomeIcon:T},data(){return{drawer:!1}}}),Ee={class:"main flex flex-row flex-1"},ke={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},ye={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function we(e,a,u,f,g,$){const c=t("font-awesome-icon"),l=t("el-button"),m=t("el-drawer");return n(),i("div",Ee,[r("div",ke,[F(e.$slots,"config",{},void 0,!0)]),r("div",ye,[F(e.$slots,"result",{},void 0,!0)]),s(l,{circle:"",class:"menu",onClick:a[0]||(a[0]=d=>e.drawer=!0)},{default:p(()=>[s(c,{icon:"fa-solid fa-magic"})]),_:1}),s(m,{modelValue:e.drawer,"onUpdate:modelValue":a[1]||(a[1]=d=>e.drawer=d),direction:"ltr","with-header":!1,size:"350px"},{default:p(()=>[F(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const Se=E(be,[["render",we],["__scopeId","data-v-02e4e4b3"]]),Ve="",Le=b({name:"SeedancePromptInput",components:{ElInput:X,InfoIcon:S},computed:{prompt:{get(){return this.$store.state.seedance?.config?.prompt},set(e){this.$store.commit("seedance/setConfig",{...this.$store.state.seedance?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=Ve)}}),Te={class:"field"},Ie={class:"box"},Ce={class:"title font-bold"};function Ae(e,a,u,f,g,$){const c=t("info-icon"),l=t("el-input");return n(),i("div",Te,[r("div",Ie,[r("h2",Ce,o(e.$t("seedance.name.prompt")),1),s(c,{content:e.$t("seedance.description.prompt"),class:"info"},null,8,["content"])]),s(l,{modelValue:e.prompt,"onUpdate:modelValue":a[0]||(a[0]=m=>e.prompt=m),rows:4,type:"textarea",class:"prompt",placeholder:e.$t("seedance.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const De=E(Le,[["render",Ae],["__scopeId","data-v-865909f4"]]),Fe=b({name:"SeedanceModelSelector",components:{ElSelect:U,ElOption:R,InfoIcon:S},data(){return{options:[{value:Z,label:this.$t("seedance.model.seedance10pro")},{value:x,label:this.$t("seedance.model.seedance10proFast")},{value:M,label:this.$t("seedance.model.seedance15pro")},{value:ee,label:this.$t("seedance.model.seedance10liteT2v")},{value:se,label:this.$t("seedance.model.seedance10liteI2v")}]}},computed:{value:{get(){return this.$store.state.seedance?.config?.model},set(e){this.$store.commit("seedance/setConfig",{...this.$store.state.seedance?.config,model:e})}}},mounted(){this.value||(this.value=Y)}}),Re={class:"field"},Ue={class:"label"},Ne={class:"box"},Oe={class:"title font-bold"};function Pe(e,a,u,f,g,$){const c=t("info-icon"),l=t("el-option"),m=t("el-select");return n(),i("div",Re,[r("div",Ue,[r("div",Ne,[r("h2",Oe,o(e.$t("seedance.name.model")),1),s(c,{content:e.$t("seedance.description.model"),class:"info"},null,8,["content"])])]),s(m,{modelValue:e.value,"onUpdate:modelValue":a[0]||(a[0]=d=>e.value=d),class:"value",placeholder:e.$t("seedance.placeholder.select")},{default:p(()=>[(n(!0),i(L,null,A(e.options,d=>(n(),w(l,{key:d.value,label:d.label,value:d.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ge=E(Fe,[["render",Pe],["__scopeId","data-v-eaa1425a"]]),Me=b({name:"SeedanceDurationSelector",components:{ElSelect:U,ElOption:R,InfoIcon:S},data(){return{options:[{value:2,label:"2s"},{value:3,label:"3s"},{value:4,label:"4s"},{value:5,label:"5s"},{value:6,label:"6s"},{value:7,label:"7s"},{value:8,label:"8s"},{value:9,label:"9s"},{value:10,label:"10s"},{value:11,label:"11s"},{value:12,label:"12s"}]}},computed:{value:{get(){return this.$store.state.seedance?.config?.duration},set(e){this.$store.commit("seedance/setConfig",{...this.$store.state.seedance?.config,duration:e})}}},mounted(){this.value||(this.value=te)}}),je={class:"field"},Be={class:"label"},ze={class:"box"},qe={class:"title font-bold"};function Ke(e,a,u,f,g,$){const c=t("info-icon"),l=t("el-option"),m=t("el-select");return n(),i("div",je,[r("div",Be,[r("div",ze,[r("h2",qe,o(e.$t("seedance.name.duration")),1),s(c,{content:e.$t("seedance.description.duration"),class:"info"},null,8,["content"])])]),s(m,{modelValue:e.value,"onUpdate:modelValue":a[0]||(a[0]=d=>e.value=d),class:"value",placeholder:e.$t("seedance.placeholder.select")},{default:p(()=>[(n(!0),i(L,null,A(e.options,d=>(n(),w(l,{key:d.value,label:d.label,value:d.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Xe=E(Me,[["render",Ke],["__scopeId","data-v-5c809a72"]]),He=b({name:"SeedanceGenerateAudioSwitch",components:{ElSwitch:P,InfoIcon:S},computed:{isSupported(){return this.$store.state.seedance?.config?.model===M},value:{get(){return this.$store.state.seedance?.config?.generate_audio??!1},set(e){this.$store.commit("seedance/setConfig",{...this.$store.state.seedance?.config,generate_audio:e})}}},watch:{isSupported(e){!e&&this.value&&(this.value=!1)}},mounted(){this.value===void 0&&(this.value=oe)}}),Je={key:0,class:"field"},Qe={class:"label"},We={class:"box"},Ye={class:"title font-bold"},Ze={class:"value"};function xe(e,a,u,f,g,$){const c=t("info-icon"),l=t("el-switch");return e.isSupported?(n(),i("div",Je,[r("div",Qe,[r("div",We,[r("h2",Ye,o(e.$t("seedance.name.generateAudio")),1),s(c,{content:e.$t("seedance.description.generateAudio"),class:"info"},null,8,["content"])])]),r("div",Ze,[s(l,{modelValue:e.value,"onUpdate:modelValue":a[0]||(a[0]=m=>e.value=m),"inline-prompt":"","active-text":e.$t("seedance.button.on"),"inactive-text":e.$t("seedance.button.off")},null,8,["modelValue","active-text","inactive-text"])])])):v("",!0)}const es=E(He,[["render",xe],["__scopeId","data-v-8d716dcc"]]),ss=b({name:"SeedanceFirstFrameImage",components:{ElUpload:G,ElButton:I,InfoIcon:S,FontAwesomeIcon:T,ImagePreview:B},data(){return{fileList:[],uploadUrl:j()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)}},methods:{onExceed(){y.warning(this.$t("seedance.message.uploadExceed"))},onError(){y.error(this.$t("seedance.message.uploadError"))},onSetFirstFrameUrl(){const e=this.urls?.[0],u=(this.$store.state.seedance?.config?.images||[]).filter(f=>f?.role!=="first_frame");e&&u.push({url:e,role:"first_frame"}),this.$store.commit("seedance/setConfig",{...this.$store.state.seedance?.config,images:u.length>0?u:void 0})},async onSuccess(){this.onSetFirstFrameUrl()},async onRemove(){this.onSetFirstFrameUrl()}}}),ts={class:"relative"},os={class:"flex justify-between"},ns={class:"flex justify-start items-center"},as={class:"text-sm font-bold"};function ls(e,a,u,f,g,$){const c=t("info-icon"),l=t("image-preview"),m=t("font-awesome-icon"),d=t("el-button"),k=t("el-upload");return n(),i("div",ts,[r("div",os,[r("div",ns,[r("span",as,o(e.$t("seedance.name.firstFrame")),1),s(c,{content:e.$t("seedance.description.firstFrame")},null,8,["content"])])]),s(k,{"file-list":e.fileList,"onUpdate:fileList":a[0]||(a[0]=_=>e.fileList=_),name:"file",accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",limit:1,class:"upload-wrapper",multiple:!1,action:e.uploadUrl,"list-type":"picture","on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,"on-remove":e.onRemove,headers:e.headers},{file:p(({file:_})=>[_.url&&_.percentage!==void 0?(n(),w(l,{key:0,url:_.url,name:_.name,percentage:_.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(_),1)},null,8,["url","name","percentage","onRemove"])):v("",!0)]),default:p(()=>[s(d,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:p(()=>[s(m,{icon:"fa-solid fa-upload",class:"icon mr-1"}),h(" "+o(e.$t("seedance.button.upload")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","on-remove","headers"])])}const is=E(ss,[["render",ls],["__scopeId","data-v-b49dfa86"]]),rs=b({name:"SeedanceLastFrameImage",components:{ElUpload:G,ElButton:I,ImagePreview:B,InfoIcon:S,FontAwesomeIcon:T},data(){return{fileList:[],uploadUrl:j()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)}},methods:{onExceed(){y.warning(this.$t("seedance.message.uploadExceed"))},onError(){y.error(this.$t("seedance.message.uploadError"))},onSetLastFrameUrl(){const e=this.urls?.[0],u=(this.$store.state.seedance?.config?.images||[]).filter(f=>f?.role!=="last_frame");e&&u.push({url:e,role:"last_frame"}),this.$store.commit("seedance/setConfig",{...this.$store.state.seedance?.config,images:u.length>0?u:void 0})},async onSuccess(){this.onSetLastFrameUrl()},async onRemove(){this.onSetLastFrameUrl()}}}),cs={class:"relative"},ds={class:"flex justify-between"},ms={class:"flex justify-start items-center"},us={class:"text-sm font-bold"};function ps(e,a,u,f,g,$){const c=t("info-icon"),l=t("image-preview"),m=t("font-awesome-icon"),d=t("el-button"),k=t("el-upload");return n(),i("div",cs,[r("div",ds,[r("div",ms,[r("span",us,o(e.$t("seedance.name.lastFrame")),1),s(c,{content:e.$t("seedance.description.lastFrame")},null,8,["content"])])]),s(k,{"file-list":e.fileList,"onUpdate:fileList":a[0]||(a[0]=_=>e.fileList=_),name:"file",accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",limit:1,class:"upload-wrapper",multiple:!1,action:e.uploadUrl,"list-type":"picture","on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,"on-remove":e.onRemove,headers:e.headers},{file:p(({file:_})=>[_.url&&_.percentage!==void 0?(n(),w(l,{key:0,url:_.url,name:_.name,percentage:_.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(_),1)},null,8,["url","name","percentage","onRemove"])):v("",!0)]),default:p(()=>[s(d,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:p(()=>[s(m,{icon:"fa-solid fa-upload",class:"icon mr-1"}),h(" "+o(e.$t("seedance.button.upload")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","on-remove","headers"])])}const fs=E(rs,[["render",ps],["__scopeId","data-v-12a78496"]]),_s=b({name:"SeedanceServiceTierSelector",components:{ElSelect:U,ElOption:R,InfoIcon:S},data(){return{options:[{value:ae,label:this.$t("seedance.serviceTier.default")},{value:le,label:this.$t("seedance.serviceTier.flex")}]}},computed:{value:{get(){return this.$store.state.seedance?.config?.service_tier},set(e){this.$store.commit("seedance/setConfig",{...this.$store.state.seedance?.config,service_tier:e})}}},mounted(){this.value||(this.value=ne)}}),hs={class:"field"},vs={class:"label"},$s={class:"box"},gs={class:"title font-bold"};function bs(e,a,u,f,g,$){const c=t("info-icon"),l=t("el-option"),m=t("el-select");return n(),i("div",hs,[r("div",vs,[r("div",$s,[r("h2",gs,o(e.$t("seedance.name.serviceTier")),1),s(c,{content:e.$t("seedance.description.serviceTier"),class:"info"},null,8,["content"])])]),s(m,{modelValue:e.value,"onUpdate:modelValue":a[0]||(a[0]=d=>e.value=d),class:"value",placeholder:e.$t("seedance.placeholder.select")},{default:p(()=>[(n(!0),i(L,null,A(e.options,d=>(n(),w(l,{key:d.value,label:d.label,value:d.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Es=E(_s,[["render",bs],["__scopeId","data-v-a62125ec"]]),ks=b({name:"SeedanceReturnLastFrameSwitch",components:{ElSwitch:P,InfoIcon:S},computed:{value:{get(){return this.$store.state.seedance?.config?.return_last_frame},set(e){this.$store.commit("seedance/setConfig",{...this.$store.state.seedance?.config,return_last_frame:e})}}},mounted(){this.value===void 0&&(this.value=ie)}}),ys={class:"field"},ws={class:"label"},Ss={class:"box"},Vs={class:"title font-bold"},Ls={class:"value"};function Ts(e,a,u,f,g,$){const c=t("info-icon"),l=t("el-switch");return n(),i("div",ys,[r("div",ws,[r("div",Ss,[r("h2",Vs,o(e.$t("seedance.name.returnLastFrame")),1),s(c,{content:e.$t("seedance.description.returnLastFrame"),class:"info"},null,8,["content"])])]),r("div",Ls,[s(l,{modelValue:e.value,"onUpdate:modelValue":a[0]||(a[0]=m=>e.value=m),"inline-prompt":"","active-text":e.$t("seedance.button.on"),"inactive-text":e.$t("seedance.button.off")},null,8,["modelValue","active-text","inactive-text"])])])}const Is=E(ks,[["render",Ts],["__scopeId","data-v-cd179b1c"]]),Cs=b({name:"SeedanceConfigPanel",components:{ElButton:I,FontAwesomeIcon:T,PromptInput:De,ModelSelector:Ge,DurationSelector:Xe,GenerateAudioSwitch:es,ServiceTierSelector:Es,ReturnLastFrameSwitch:Is,FirstFrameImage:is,LastFrameImage:fs,Consumption:ue},emits:["generate"],computed:{config(){return this.$store.state.seedance?.config},consumption(){return fe(this.config,this.service?.cost)},service(){return this.$store.state.seedance?.service}},methods:{onGenerate(){this.$emit("generate")}}}),As={class:"flex flex-col h-full"},Ds={class:"flex-1 overflow-y-auto p-5"},Fs={class:"flex flex-col items-center justify-center px-5 pb-5"};function Rs(e,a,u,f,g,$){const c=t("prompt-input"),l=t("model-selector"),m=t("duration-selector"),d=t("generate-audio-switch"),k=t("service-tier-selector"),_=t("return-last-frame-switch"),V=t("first-frame-image"),D=t("last-frame-image"),N=t("consumption"),z=t("font-awesome-icon"),q=t("el-button");return n(),i("div",As,[r("div",Ds,[s(c,{class:"mb-4"}),s(l,{class:"mb-4"}),s(m,{class:"mb-4"}),s(d,{class:"mb-4"}),s(k,{class:"mb-4"}),s(_,{class:"mb-4"}),s(V,{class:"mb-2"}),s(D,{class:"mb-2"})]),r("div",Fs,[s(N,{value:e.consumption,service:e.service},null,8,["value","service"]),s(q,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:p(()=>[s(z,{icon:"fa-solid fa-magic",class:"mr-2"}),h(" "+o(e.$t("seedance.button.generate")),1)]),_:1},8,["onClick"])])])}const Us=E(Cs,[["render",Rs]]),Ns=b({name:"SeedanceTaskPreview",components:{ElImage:Q,CopyToClipboard:_e,FontAwesomeIcon:T,ElAlert:J,VideoPlayer:he,ElTooltip:H,ElButton:I,ImageWrapper:ve},props:{modelValue:{type:Object,required:!0}},data(){return{seedanceLogo:re}},computed:{video(){return this.modelValue?.response?.data}},methods:{onDownload(e){window.open(e,"_blank")}}}),Os={class:"preview"},Ps={class:"left"},Gs={class:"main"},Ms={class:"bot"},js={class:"datetime"},Bs={class:"info"},zs={key:0,class:"prompt mt-2"},qs={key:0},Ks={key:1},Xs={key:0,class:C({content:!0})},Hs={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Js={key:1,class:C({content:!0})},Qs={key:0,class:"mb-4"},Ws={key:1,class:"mb-4"},Ys={key:2,class:C({operations:!0,"mt-2":!0,"mb-2":!0})},Zs={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},xs={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},et={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},st={key:0},tt={key:1},ot={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"},at={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},lt={key:2,class:C({content:!0})},it={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},rt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},ct={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},dt={key:3,class:C({content:!0})},mt={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"};function pt(e,a,u,f,g,$){const c=t("el-image"),l=t("font-awesome-icon"),m=t("copy-to-clipboard"),d=t("el-alert"),k=t("video-player"),_=t("image-wrapper"),V=t("el-button"),D=t("el-tooltip");return n(),i("div",Os,[r("div",Ps,[s(c,{src:e.seedanceLogo,class:"avatar"},null,8,["src"])]),r("div",Gs,[r("div",Ms,[h(o(e.$t("seedance.name.seedanceBot"))+" ",1),r("span",js,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),r("div",Bs,[e.modelValue?.request?.prompt?(n(),i("p",zs,[h(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?e.video?.status==="processing"||e.video?.status==="pending"?(n(),i("span",Ks," - ("+o(e.$t("seedance.status.processing"))+") ",1)):v("",!0):(n(),i("span",qs," - ("+o(e.$t("seedance.status.pending"))+") ",1))])):v("",!0)]),e.modelValue?.response?e.modelValue?.response?.success===!0?(n(),i("div",Js,[e.video?.video_url?(n(),i("div",Qs,[s(k,{src:e.video?.video_url},null,8,["src"])])):v("",!0),e.video?.last_frame_url?(n(),i("div",Ws,[s(_,{src:e.video?.last_frame_url,"raw-src":e.video?.last_frame_url},null,8,["src","raw-src"])])):v("",!0),e.video?.video_url?(n(),i("div",Ys,[s(D,{class:"box-item",effect:"dark",content:e.$t("seedance.message.downloadVideo"),placement:"top-start"},{default:p(()=>[s(V,{type:"info",size:"small",class:"btn-action",onClick:a[0]||(a[0]=W(N=>e.onDownload(e.video?.video_url),["stop"]))},{default:p(()=>[h(o(e.$t("seedance.button.download")),1)]),_:1})]),_:1},8,["content"])])):v("",!0),s(d,{closable:!1,class:"mt-2 success"},{default:p(()=>[e.modelValue?.request?.model?(n(),i("p",Zs,[s(l,{icon:"fa-solid fa-cube",class:"mr-1"}),h(" "+o(e.$t("seedance.name.model"))+": "+o(e.modelValue?.request?.model),1)])):v("",!0),e.video?.duration?(n(),i("p",xs,[s(l,{icon:"fa-solid fa-clock",class:"mr-1"}),h(" "+o(e.$t("seedance.name.duration"))+": "+o(e.video?.duration)+"s ",1)])):v("",!0),e.video?.resolution?(n(),i("p",et,[s(l,{icon:"fa-solid fa-expand",class:"mr-1"}),h(" "+o(e.$t("seedance.name.resolution"))+": "+o(e.video?.resolution)+" ",1),e.video?.ratio?(n(),i("span",st," · "+o(e.video?.ratio),1)):v("",!0),e.video?.framespersecond?(n(),i("span",tt," · "+o(e.video?.framespersecond)+"fps",1)):v("",!0)])):v("",!0),e.modelValue?.request?.generate_audio?(n(),i("p",ot,[s(l,{icon:"fa-solid fa-volume-up",class:"mr-1"}),h(" "+o(e.$t("seedance.name.generateAudio"))+": "+o(e.$t("seedance.button.on")),1)])):v("",!0),r("p",nt,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+o(e.$t("seedance.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),s(m,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),i("p",at,[s(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+o(e.$t("seedance.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),s(m,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):v("",!0)]),_:1})])):e.modelValue?.response?.success===!1?(n(),i("div",lt,[s(d,{closable:!1,class:"failure"},{template:p(()=>[s(l,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),h(" "+o(e.$t("seedance.name.failure")),1)]),default:p(()=>[r("p",it,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+o(e.$t("seedance.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),s(m,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.response?.error?.message?(n(),i("p",rt,[s(l,{icon:"fa-solid fa-circle-info",class:"mr-1"}),h(" "+o(e.$t("seedance.name.failureReason"))+": "+o(e.modelValue?.response?.error?.message)+" ",1),s(m,{content:e.modelValue?.response?.error?.message,class:"btn-copy inline-block"},null,8,["content"])])):v("",!0),e.modelValue?.response?.trace_id?(n(),i("p",ct,[s(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+o(e.$t("seedance.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),s(m,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):v("",!0)]),_:1})])):(n(),i("div",dt,[s(d,{closable:!1,class:"info"},{template:p(()=>[s(l,{icon:"fa-solid fa-circle-info",class:"mr-1"}),h(" "+o(e.$t("seedance.name.status")),1)]),default:p(()=>[r("p",mt,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+o(e.$t("seedance.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),s(m,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),i("p",ut,[s(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+o(e.$t("seedance.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),s(m,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):v("",!0)]),_:1})])):(n(),i("div",Xs,[s(d,{closable:!1,class:"info"},{template:p(()=>[s(l,{icon:"fa-regular fa-clock",class:"mr-1"}),h(" "+o(e.$t("seedance.status.pending")),1)]),default:p(()=>[r("p",Hs,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+o(e.$t("seedance.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),s(m,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])])]),_:1})]))])])}const ft=E(Ns,[["render",pt],["__scopeId","data-v-52a2f1ad"]]),_t=b({name:"SeedanceRecentPanel",components:{TaskPreview:ft,BotPlaceholder:$e,NoTasks:pe,ScrollList:me},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],computed:{tasks(){return{...this.$store.state.seedance?.tasks,items:this.$store.state.seedance?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),ht={key:0},vt={key:2,class:"w-full h-full flex items-center justify-center"};function $t(e,a,u,f,g,$){const c=t("bot-placeholder"),l=t("task-preview"),m=t("scroll-list"),d=t("no-tasks");return n(),i(L,null,[e.tasks?.items===void 0?(n(),i("div",ht,[s(c)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),w(m,{key:1,ref:"scrollList",class:"tasks w-full h-full overflow-y-auto",loading:e.loading,onReachTop:a[0]||(a[0]=k=>e.$emit("reach-top"))},{default:p(()=>[(n(!0),i(L,null,A(e.tasks?.items,k=>(n(),w(l,{key:k.id,"model-value":k},null,8,["model-value"]))),128))]),_:1},8,["loading"])):v("",!0),e.tasks?.items?.length===0?(n(),i("div",vt,[s(d)])):v("",!0)],64)}const gt=E(_t,[["render",$t]]),bt="https://webhook.acedata.cloud/seedance",Et=b({name:"SeedanceIndex",components:{ConfigPanel:Us,Layout:Se,RecentPanel:gt},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.seedance?.status?.getApplications===O.Request},tasksLoading(){return this.$store.state.seedance?.status?.getTasks===O.Request||this.fetchingTasks},credential(){return this.$store.state.seedance?.credential},config(){return this.$store.state.seedance?.config},tasks(){return this.$store.state.seedance?.tasks}},watch:{initialized:{async handler(e){e&&(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 ge({tasks: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(){await this.$store.dispatch("seedance/getService")},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks)return;const{limit:a=5,createdAtMin:u,createdAtMax:f}=e||{};this.fetchingTasks=!0;try{await this.$store.dispatch("seedance/getTasks",{limit:a,createdAtMin:u,createdAtMax:f})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config||{}};if(typeof e?.prompt=="string"&&(e.prompt=e.prompt.trim(),e.prompt||delete e.prompt),Array.isArray(e?.images)){e.images=e.images.filter(c=>!!c?.url);const g=e.images.some(c=>c?.role==="first_frame"),$=e.images.some(c=>c?.role==="last_frame");!g&&$&&(e.images=e.images.map(c=>c?.role==="last_frame"?{...c,role:"first_frame"}:c))}!(Array.isArray(e?.images)&&e.images.length>0)&&"images"in e&&delete e.images;const u={...e,callback_url:bt},f=this.credential?.token;if(!f){console.error("no token specified");return}y.info(this.$t("seedance.message.startingTask")),ce.generate(u,{token:f}).then(()=>{y.success(this.$t("seedance.message.startTaskSuccess"))}).catch(g=>{const $=g?.response?.data;$?.error?.code===de?y.error(this.$t("seedance.message.usedUp")):y.error(this.$t("seedance.message.startTaskFailed")+($?.error?.message||""))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function kt(e,a,u,f,g,$){const c=t("config-panel"),l=t("recent-panel"),m=t("layout");return n(),w(m,null,{config:p(()=>[s(c,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:p(()=>[s(l,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const jt=E(Et,[["render",kt]]);export{jt as default};
1
+ import{F as T}from"./index.es-7RSklBi_.js";import{l as I,S as K,s as X,N as R,O as U,k as P,t as G,u as y,p as H,G as J,j as Q}from"./vendor-element-plus-B4FTqxj4.js";import{d as b,C as i,G as r,T as s,E as F,K as p,ai as t,D as n,R as o,S as L,ag as A,J as w,O as v,Q as h,M as C,X as W}from"./vendor-vue-1w_NBnjl.js";import{_ as E,cr as Y,cs as Z,ct as x,cu as M,cv as ee,cw as se,cx as te,cy as oe,aj as j,cz as ne,cA as ae,cB as le,cC as ie,Y as re,cD as ce,aB as de,ay as O}from"./index-BkuLNx2-.js";import{I as S,S as me}from"./ScrollList-DHgQC1_v.js";import{I as B}from"./ImagePreview-DR_hrXkE.js";import{C as ue,N as pe}from"./NoTasks-BYsoXaVq.js";import{a as fe}from"./price-Q1mTRsEK.js";import{C as _e}from"./CopyToClipboard-D1FwD7Ay.js";import{V as he}from"./VideoPlayer-D4wmigXn.js";import{I as ve}from"./ImageWrapper-MeuTnPga.js";import{B as $e}from"./BotPlaceholder-DryhpfyI.js";import{l as ge}from"./pagination-CihAE3FS.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-XrA95VRY.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-Dj5bcX0v.js";import"./vue-plyr-QZFBikSk.js";const be=b({name:"LayoutSeedance",components:{ElDrawer:K,ElButton:I,FontAwesomeIcon:T},data(){return{drawer:!1}}}),Ee={class:"main flex flex-row flex-1"},ke={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},ye={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function we(e,a,u,f,g,$){const c=t("font-awesome-icon"),l=t("el-button"),m=t("el-drawer");return n(),i("div",Ee,[r("div",ke,[F(e.$slots,"config",{},void 0,!0)]),r("div",ye,[F(e.$slots,"result",{},void 0,!0)]),s(l,{circle:"",class:"menu",onClick:a[0]||(a[0]=d=>e.drawer=!0)},{default:p(()=>[s(c,{icon:"fa-solid fa-magic"})]),_:1}),s(m,{modelValue:e.drawer,"onUpdate:modelValue":a[1]||(a[1]=d=>e.drawer=d),direction:"ltr","with-header":!1,size:"350px"},{default:p(()=>[F(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const Se=E(be,[["render",we],["__scopeId","data-v-02e4e4b3"]]),Ve="",Le=b({name:"SeedancePromptInput",components:{ElInput:X,InfoIcon:S},computed:{prompt:{get(){return this.$store.state.seedance?.config?.prompt},set(e){this.$store.commit("seedance/setConfig",{...this.$store.state.seedance?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=Ve)}}),Te={class:"field"},Ie={class:"box"},Ce={class:"title font-bold"};function Ae(e,a,u,f,g,$){const c=t("info-icon"),l=t("el-input");return n(),i("div",Te,[r("div",Ie,[r("h2",Ce,o(e.$t("seedance.name.prompt")),1),s(c,{content:e.$t("seedance.description.prompt"),class:"info"},null,8,["content"])]),s(l,{modelValue:e.prompt,"onUpdate:modelValue":a[0]||(a[0]=m=>e.prompt=m),rows:4,type:"textarea",class:"prompt",placeholder:e.$t("seedance.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const De=E(Le,[["render",Ae],["__scopeId","data-v-865909f4"]]),Fe=b({name:"SeedanceModelSelector",components:{ElSelect:U,ElOption:R,InfoIcon:S},data(){return{options:[{value:Z,label:this.$t("seedance.model.seedance10pro")},{value:x,label:this.$t("seedance.model.seedance10proFast")},{value:M,label:this.$t("seedance.model.seedance15pro")},{value:ee,label:this.$t("seedance.model.seedance10liteT2v")},{value:se,label:this.$t("seedance.model.seedance10liteI2v")}]}},computed:{value:{get(){return this.$store.state.seedance?.config?.model},set(e){this.$store.commit("seedance/setConfig",{...this.$store.state.seedance?.config,model:e})}}},mounted(){this.value||(this.value=Y)}}),Re={class:"field"},Ue={class:"label"},Ne={class:"box"},Oe={class:"title font-bold"};function Pe(e,a,u,f,g,$){const c=t("info-icon"),l=t("el-option"),m=t("el-select");return n(),i("div",Re,[r("div",Ue,[r("div",Ne,[r("h2",Oe,o(e.$t("seedance.name.model")),1),s(c,{content:e.$t("seedance.description.model"),class:"info"},null,8,["content"])])]),s(m,{modelValue:e.value,"onUpdate:modelValue":a[0]||(a[0]=d=>e.value=d),class:"value",placeholder:e.$t("seedance.placeholder.select")},{default:p(()=>[(n(!0),i(L,null,A(e.options,d=>(n(),w(l,{key:d.value,label:d.label,value:d.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Ge=E(Fe,[["render",Pe],["__scopeId","data-v-eaa1425a"]]),Me=b({name:"SeedanceDurationSelector",components:{ElSelect:U,ElOption:R,InfoIcon:S},data(){return{options:[{value:2,label:"2s"},{value:3,label:"3s"},{value:4,label:"4s"},{value:5,label:"5s"},{value:6,label:"6s"},{value:7,label:"7s"},{value:8,label:"8s"},{value:9,label:"9s"},{value:10,label:"10s"},{value:11,label:"11s"},{value:12,label:"12s"}]}},computed:{value:{get(){return this.$store.state.seedance?.config?.duration},set(e){this.$store.commit("seedance/setConfig",{...this.$store.state.seedance?.config,duration:e})}}},mounted(){this.value||(this.value=te)}}),je={class:"field"},Be={class:"label"},ze={class:"box"},qe={class:"title font-bold"};function Ke(e,a,u,f,g,$){const c=t("info-icon"),l=t("el-option"),m=t("el-select");return n(),i("div",je,[r("div",Be,[r("div",ze,[r("h2",qe,o(e.$t("seedance.name.duration")),1),s(c,{content:e.$t("seedance.description.duration"),class:"info"},null,8,["content"])])]),s(m,{modelValue:e.value,"onUpdate:modelValue":a[0]||(a[0]=d=>e.value=d),class:"value",placeholder:e.$t("seedance.placeholder.select")},{default:p(()=>[(n(!0),i(L,null,A(e.options,d=>(n(),w(l,{key:d.value,label:d.label,value:d.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Xe=E(Me,[["render",Ke],["__scopeId","data-v-5c809a72"]]),He=b({name:"SeedanceGenerateAudioSwitch",components:{ElSwitch:P,InfoIcon:S},computed:{isSupported(){return this.$store.state.seedance?.config?.model===M},value:{get(){return this.$store.state.seedance?.config?.generate_audio??!1},set(e){this.$store.commit("seedance/setConfig",{...this.$store.state.seedance?.config,generate_audio:e})}}},watch:{isSupported(e){!e&&this.value&&(this.value=!1)}},mounted(){this.value===void 0&&(this.value=oe)}}),Je={key:0,class:"field"},Qe={class:"label"},We={class:"box"},Ye={class:"title font-bold"},Ze={class:"value"};function xe(e,a,u,f,g,$){const c=t("info-icon"),l=t("el-switch");return e.isSupported?(n(),i("div",Je,[r("div",Qe,[r("div",We,[r("h2",Ye,o(e.$t("seedance.name.generateAudio")),1),s(c,{content:e.$t("seedance.description.generateAudio"),class:"info"},null,8,["content"])])]),r("div",Ze,[s(l,{modelValue:e.value,"onUpdate:modelValue":a[0]||(a[0]=m=>e.value=m),"inline-prompt":"","active-text":e.$t("seedance.button.on"),"inactive-text":e.$t("seedance.button.off")},null,8,["modelValue","active-text","inactive-text"])])])):v("",!0)}const es=E(He,[["render",xe],["__scopeId","data-v-8d716dcc"]]),ss=b({name:"SeedanceFirstFrameImage",components:{ElUpload:G,ElButton:I,InfoIcon:S,FontAwesomeIcon:T,ImagePreview:B},data(){return{fileList:[],uploadUrl:j()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)}},methods:{onExceed(){y.warning(this.$t("seedance.message.uploadExceed"))},onError(){y.error(this.$t("seedance.message.uploadError"))},onSetFirstFrameUrl(){const e=this.urls?.[0],u=(this.$store.state.seedance?.config?.images||[]).filter(f=>f?.role!=="first_frame");e&&u.push({url:e,role:"first_frame"}),this.$store.commit("seedance/setConfig",{...this.$store.state.seedance?.config,images:u.length>0?u:void 0})},async onSuccess(){this.onSetFirstFrameUrl()},async onRemove(){this.onSetFirstFrameUrl()}}}),ts={class:"relative"},os={class:"flex justify-between"},ns={class:"flex justify-start items-center"},as={class:"text-sm font-bold"};function ls(e,a,u,f,g,$){const c=t("info-icon"),l=t("image-preview"),m=t("font-awesome-icon"),d=t("el-button"),k=t("el-upload");return n(),i("div",ts,[r("div",os,[r("div",ns,[r("span",as,o(e.$t("seedance.name.firstFrame")),1),s(c,{content:e.$t("seedance.description.firstFrame")},null,8,["content"])])]),s(k,{"file-list":e.fileList,"onUpdate:fileList":a[0]||(a[0]=_=>e.fileList=_),name:"file",accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",limit:1,class:"upload-wrapper",multiple:!1,action:e.uploadUrl,"list-type":"picture","on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,"on-remove":e.onRemove,headers:e.headers},{file:p(({file:_})=>[_.url&&_.percentage!==void 0?(n(),w(l,{key:0,url:_.url,name:_.name,percentage:_.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(_),1)},null,8,["url","name","percentage","onRemove"])):v("",!0)]),default:p(()=>[s(d,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:p(()=>[s(m,{icon:"fa-solid fa-upload",class:"icon mr-1"}),h(" "+o(e.$t("seedance.button.upload")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","on-remove","headers"])])}const is=E(ss,[["render",ls],["__scopeId","data-v-b49dfa86"]]),rs=b({name:"SeedanceLastFrameImage",components:{ElUpload:G,ElButton:I,ImagePreview:B,InfoIcon:S,FontAwesomeIcon:T},data(){return{fileList:[],uploadUrl:j()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)}},methods:{onExceed(){y.warning(this.$t("seedance.message.uploadExceed"))},onError(){y.error(this.$t("seedance.message.uploadError"))},onSetLastFrameUrl(){const e=this.urls?.[0],u=(this.$store.state.seedance?.config?.images||[]).filter(f=>f?.role!=="last_frame");e&&u.push({url:e,role:"last_frame"}),this.$store.commit("seedance/setConfig",{...this.$store.state.seedance?.config,images:u.length>0?u:void 0})},async onSuccess(){this.onSetLastFrameUrl()},async onRemove(){this.onSetLastFrameUrl()}}}),cs={class:"relative"},ds={class:"flex justify-between"},ms={class:"flex justify-start items-center"},us={class:"text-sm font-bold"};function ps(e,a,u,f,g,$){const c=t("info-icon"),l=t("image-preview"),m=t("font-awesome-icon"),d=t("el-button"),k=t("el-upload");return n(),i("div",cs,[r("div",ds,[r("div",ms,[r("span",us,o(e.$t("seedance.name.lastFrame")),1),s(c,{content:e.$t("seedance.description.lastFrame")},null,8,["content"])])]),s(k,{"file-list":e.fileList,"onUpdate:fileList":a[0]||(a[0]=_=>e.fileList=_),name:"file",accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",limit:1,class:"upload-wrapper",multiple:!1,action:e.uploadUrl,"list-type":"picture","on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,"on-remove":e.onRemove,headers:e.headers},{file:p(({file:_})=>[_.url&&_.percentage!==void 0?(n(),w(l,{key:0,url:_.url,name:_.name,percentage:_.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(_),1)},null,8,["url","name","percentage","onRemove"])):v("",!0)]),default:p(()=>[s(d,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:p(()=>[s(m,{icon:"fa-solid fa-upload",class:"icon mr-1"}),h(" "+o(e.$t("seedance.button.upload")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","on-remove","headers"])])}const fs=E(rs,[["render",ps],["__scopeId","data-v-12a78496"]]),_s=b({name:"SeedanceServiceTierSelector",components:{ElSelect:U,ElOption:R,InfoIcon:S},data(){return{options:[{value:ae,label:this.$t("seedance.serviceTier.default")},{value:le,label:this.$t("seedance.serviceTier.flex")}]}},computed:{value:{get(){return this.$store.state.seedance?.config?.service_tier},set(e){this.$store.commit("seedance/setConfig",{...this.$store.state.seedance?.config,service_tier:e})}}},mounted(){this.value||(this.value=ne)}}),hs={class:"field"},vs={class:"label"},$s={class:"box"},gs={class:"title font-bold"};function bs(e,a,u,f,g,$){const c=t("info-icon"),l=t("el-option"),m=t("el-select");return n(),i("div",hs,[r("div",vs,[r("div",$s,[r("h2",gs,o(e.$t("seedance.name.serviceTier")),1),s(c,{content:e.$t("seedance.description.serviceTier"),class:"info"},null,8,["content"])])]),s(m,{modelValue:e.value,"onUpdate:modelValue":a[0]||(a[0]=d=>e.value=d),class:"value",placeholder:e.$t("seedance.placeholder.select")},{default:p(()=>[(n(!0),i(L,null,A(e.options,d=>(n(),w(l,{key:d.value,label:d.label,value:d.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Es=E(_s,[["render",bs],["__scopeId","data-v-a62125ec"]]),ks=b({name:"SeedanceReturnLastFrameSwitch",components:{ElSwitch:P,InfoIcon:S},computed:{value:{get(){return this.$store.state.seedance?.config?.return_last_frame},set(e){this.$store.commit("seedance/setConfig",{...this.$store.state.seedance?.config,return_last_frame:e})}}},mounted(){this.value===void 0&&(this.value=ie)}}),ys={class:"field"},ws={class:"label"},Ss={class:"box"},Vs={class:"title font-bold"},Ls={class:"value"};function Ts(e,a,u,f,g,$){const c=t("info-icon"),l=t("el-switch");return n(),i("div",ys,[r("div",ws,[r("div",Ss,[r("h2",Vs,o(e.$t("seedance.name.returnLastFrame")),1),s(c,{content:e.$t("seedance.description.returnLastFrame"),class:"info"},null,8,["content"])])]),r("div",Ls,[s(l,{modelValue:e.value,"onUpdate:modelValue":a[0]||(a[0]=m=>e.value=m),"inline-prompt":"","active-text":e.$t("seedance.button.on"),"inactive-text":e.$t("seedance.button.off")},null,8,["modelValue","active-text","inactive-text"])])])}const Is=E(ks,[["render",Ts],["__scopeId","data-v-cd179b1c"]]),Cs=b({name:"SeedanceConfigPanel",components:{ElButton:I,FontAwesomeIcon:T,PromptInput:De,ModelSelector:Ge,DurationSelector:Xe,GenerateAudioSwitch:es,ServiceTierSelector:Es,ReturnLastFrameSwitch:Is,FirstFrameImage:is,LastFrameImage:fs,Consumption:ue},emits:["generate"],computed:{config(){return this.$store.state.seedance?.config},consumption(){return fe(this.config,this.service?.cost)},service(){return this.$store.state.seedance?.service}},methods:{onGenerate(){this.$emit("generate")}}}),As={class:"flex flex-col h-full"},Ds={class:"flex-1 overflow-y-auto p-5"},Fs={class:"flex flex-col items-center justify-center px-5 pb-5"};function Rs(e,a,u,f,g,$){const c=t("prompt-input"),l=t("model-selector"),m=t("duration-selector"),d=t("generate-audio-switch"),k=t("service-tier-selector"),_=t("return-last-frame-switch"),V=t("first-frame-image"),D=t("last-frame-image"),N=t("consumption"),z=t("font-awesome-icon"),q=t("el-button");return n(),i("div",As,[r("div",Ds,[s(c,{class:"mb-4"}),s(l,{class:"mb-4"}),s(m,{class:"mb-4"}),s(d,{class:"mb-4"}),s(k,{class:"mb-4"}),s(_,{class:"mb-4"}),s(V,{class:"mb-2"}),s(D,{class:"mb-2"})]),r("div",Fs,[s(N,{value:e.consumption,service:e.service},null,8,["value","service"]),s(q,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:p(()=>[s(z,{icon:"fa-solid fa-magic",class:"mr-2"}),h(" "+o(e.$t("seedance.button.generate")),1)]),_:1},8,["onClick"])])])}const Us=E(Cs,[["render",Rs]]),Ns=b({name:"SeedanceTaskPreview",components:{ElImage:Q,CopyToClipboard:_e,FontAwesomeIcon:T,ElAlert:J,VideoPlayer:he,ElTooltip:H,ElButton:I,ImageWrapper:ve},props:{modelValue:{type:Object,required:!0}},data(){return{seedanceLogo:re}},computed:{video(){return this.modelValue?.response?.data}},methods:{onDownload(e){window.open(e,"_blank")}}}),Os={class:"preview"},Ps={class:"left"},Gs={class:"main"},Ms={class:"bot"},js={class:"datetime"},Bs={class:"info"},zs={key:0,class:"prompt mt-2"},qs={key:0},Ks={key:1},Xs={key:0,class:C({content:!0})},Hs={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Js={key:1,class:C({content:!0})},Qs={key:0,class:"mb-4"},Ws={key:1,class:"mb-4"},Ys={key:2,class:C({operations:!0,"mt-2":!0,"mb-2":!0})},Zs={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},xs={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},et={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},st={key:0},tt={key:1},ot={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"},at={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},lt={key:2,class:C({content:!0})},it={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},rt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},ct={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},dt={key:3,class:C({content:!0})},mt={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"};function pt(e,a,u,f,g,$){const c=t("el-image"),l=t("font-awesome-icon"),m=t("copy-to-clipboard"),d=t("el-alert"),k=t("video-player"),_=t("image-wrapper"),V=t("el-button"),D=t("el-tooltip");return n(),i("div",Os,[r("div",Ps,[s(c,{src:e.seedanceLogo,class:"avatar"},null,8,["src"])]),r("div",Gs,[r("div",Ms,[h(o(e.$t("seedance.name.seedanceBot"))+" ",1),r("span",js,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),r("div",Bs,[e.modelValue?.request?.prompt?(n(),i("p",zs,[h(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?e.video?.status==="processing"||e.video?.status==="pending"?(n(),i("span",Ks," - ("+o(e.$t("seedance.status.processing"))+") ",1)):v("",!0):(n(),i("span",qs," - ("+o(e.$t("seedance.status.pending"))+") ",1))])):v("",!0)]),e.modelValue?.response?e.modelValue?.response?.success===!0?(n(),i("div",Js,[e.video?.video_url?(n(),i("div",Qs,[s(k,{src:e.video?.video_url},null,8,["src"])])):v("",!0),e.video?.last_frame_url?(n(),i("div",Ws,[s(_,{src:e.video?.last_frame_url,"raw-src":e.video?.last_frame_url},null,8,["src","raw-src"])])):v("",!0),e.video?.video_url?(n(),i("div",Ys,[s(D,{class:"box-item",effect:"dark",content:e.$t("seedance.message.downloadVideo"),placement:"top-start"},{default:p(()=>[s(V,{type:"info",size:"small",class:"btn-action",onClick:a[0]||(a[0]=W(N=>e.onDownload(e.video?.video_url),["stop"]))},{default:p(()=>[h(o(e.$t("seedance.button.download")),1)]),_:1})]),_:1},8,["content"])])):v("",!0),s(d,{closable:!1,class:"mt-2 success"},{default:p(()=>[e.modelValue?.request?.model?(n(),i("p",Zs,[s(l,{icon:"fa-solid fa-cube",class:"mr-1"}),h(" "+o(e.$t("seedance.name.model"))+": "+o(e.modelValue?.request?.model),1)])):v("",!0),e.video?.duration?(n(),i("p",xs,[s(l,{icon:"fa-solid fa-clock",class:"mr-1"}),h(" "+o(e.$t("seedance.name.duration"))+": "+o(e.video?.duration)+"s ",1)])):v("",!0),e.video?.resolution?(n(),i("p",et,[s(l,{icon:"fa-solid fa-expand",class:"mr-1"}),h(" "+o(e.$t("seedance.name.resolution"))+": "+o(e.video?.resolution)+" ",1),e.video?.ratio?(n(),i("span",st," · "+o(e.video?.ratio),1)):v("",!0),e.video?.framespersecond?(n(),i("span",tt," · "+o(e.video?.framespersecond)+"fps",1)):v("",!0)])):v("",!0),e.modelValue?.request?.generate_audio?(n(),i("p",ot,[s(l,{icon:"fa-solid fa-volume-up",class:"mr-1"}),h(" "+o(e.$t("seedance.name.generateAudio"))+": "+o(e.$t("seedance.button.on")),1)])):v("",!0),r("p",nt,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+o(e.$t("seedance.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),s(m,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),i("p",at,[s(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+o(e.$t("seedance.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),s(m,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):v("",!0)]),_:1})])):e.modelValue?.response?.success===!1?(n(),i("div",lt,[s(d,{closable:!1,class:"failure"},{template:p(()=>[s(l,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),h(" "+o(e.$t("seedance.name.failure")),1)]),default:p(()=>[r("p",it,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+o(e.$t("seedance.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),s(m,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.response?.error?.message?(n(),i("p",rt,[s(l,{icon:"fa-solid fa-circle-info",class:"mr-1"}),h(" "+o(e.$t("seedance.name.failureReason"))+": "+o(e.modelValue?.response?.error?.message)+" ",1),s(m,{content:e.modelValue?.response?.error?.message,class:"btn-copy inline-block"},null,8,["content"])])):v("",!0),e.modelValue?.response?.trace_id?(n(),i("p",ct,[s(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+o(e.$t("seedance.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),s(m,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):v("",!0)]),_:1})])):(n(),i("div",dt,[s(d,{closable:!1,class:"info"},{template:p(()=>[s(l,{icon:"fa-solid fa-circle-info",class:"mr-1"}),h(" "+o(e.$t("seedance.name.status")),1)]),default:p(()=>[r("p",mt,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+o(e.$t("seedance.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),s(m,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),i("p",ut,[s(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),h(" "+o(e.$t("seedance.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),s(m,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):v("",!0)]),_:1})])):(n(),i("div",Xs,[s(d,{closable:!1,class:"info"},{template:p(()=>[s(l,{icon:"fa-regular fa-clock",class:"mr-1"}),h(" "+o(e.$t("seedance.status.pending")),1)]),default:p(()=>[r("p",Hs,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),h(" "+o(e.$t("seedance.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),s(m,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])])]),_:1})]))])])}const ft=E(Ns,[["render",pt],["__scopeId","data-v-52a2f1ad"]]),_t=b({name:"SeedanceRecentPanel",components:{TaskPreview:ft,BotPlaceholder:$e,NoTasks:pe,ScrollList:me},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],computed:{tasks(){return{...this.$store.state.seedance?.tasks,items:this.$store.state.seedance?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),ht={key:0},vt={key:2,class:"w-full h-full flex items-center justify-center"};function $t(e,a,u,f,g,$){const c=t("bot-placeholder"),l=t("task-preview"),m=t("scroll-list"),d=t("no-tasks");return n(),i(L,null,[e.tasks?.items===void 0?(n(),i("div",ht,[s(c)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),w(m,{key:1,ref:"scrollList",class:"tasks w-full h-full overflow-y-auto",loading:e.loading,onReachTop:a[0]||(a[0]=k=>e.$emit("reach-top"))},{default:p(()=>[(n(!0),i(L,null,A(e.tasks?.items,k=>(n(),w(l,{key:k.id,"model-value":k},null,8,["model-value"]))),128))]),_:1},8,["loading"])):v("",!0),e.tasks?.items?.length===0?(n(),i("div",vt,[s(d)])):v("",!0)],64)}const gt=E(_t,[["render",$t]]),bt="https://webhook.acedata.cloud/seedance",Et=b({name:"SeedanceIndex",components:{ConfigPanel:Us,Layout:Se,RecentPanel:gt},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.seedance?.status?.getApplications===O.Request},tasksLoading(){return this.$store.state.seedance?.status?.getTasks===O.Request||this.fetchingTasks},credential(){return this.$store.state.seedance?.credential},config(){return this.$store.state.seedance?.config},tasks(){return this.$store.state.seedance?.tasks}},watch:{initialized:{async handler(e){e&&(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 ge({tasks: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(){await this.$store.dispatch("seedance/getService")},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks)return;const{limit:a=5,createdAtMin:u,createdAtMax:f}=e||{};this.fetchingTasks=!0;try{await this.$store.dispatch("seedance/getTasks",{limit:a,createdAtMin:u,createdAtMax:f})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config||{}};if(typeof e?.prompt=="string"&&(e.prompt=e.prompt.trim(),e.prompt||delete e.prompt),Array.isArray(e?.images)){e.images=e.images.filter(c=>!!c?.url);const g=e.images.some(c=>c?.role==="first_frame"),$=e.images.some(c=>c?.role==="last_frame");!g&&$&&(e.images=e.images.map(c=>c?.role==="last_frame"?{...c,role:"first_frame"}:c))}!(Array.isArray(e?.images)&&e.images.length>0)&&"images"in e&&delete e.images;const u={...e,callback_url:bt},f=this.credential?.token;if(!f){console.error("no token specified");return}y.info(this.$t("seedance.message.startingTask")),ce.generate(u,{token:f}).then(()=>{y.success(this.$t("seedance.message.startTaskSuccess"))}).catch(g=>{const $=g?.response?.data;$?.error?.code===de?y.error(this.$t("seedance.message.usedUp")):y.error(this.$t("seedance.message.startTaskFailed")+($?.error?.message||""))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function kt(e,a,u,f,g,$){const c=t("config-panel"),l=t("recent-panel"),m=t("layout");return n(),w(m,null,{config:p(()=>[s(c,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:p(()=>[s(l,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const jt=E(Et,[["render",kt]]);export{jt as default};