@acedatacloud/nexior 3.34.1 → 3.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/assets/{Auth-BR7AQdFb.js → Auth-BzXswjE4.js} +1 -1
  2. package/dist/assets/{BotPlaceholder-CcWrwFmL.js → BotPlaceholder-BV2w6Q4w.js} +1 -1
  3. package/dist/assets/Browse-BHDvC_mG.js +1 -0
  4. package/dist/assets/Browse-oFjzU0X9.css +1 -0
  5. package/dist/assets/{Callback-xXjmMOcU.js → Callback-CQ8ko7C9.js} +1 -1
  6. package/dist/assets/{Console-nj_hwu1u.js → Console-UbGToFD6.js} +1 -1
  7. package/dist/assets/{Consumption-DB4jsCIw.js → Consumption-DEB600BC.js} +1 -1
  8. package/dist/assets/Conversation-B30jTIbD.js +23 -0
  9. package/dist/assets/{Conversation-BhCBL3G3.css → Conversation-T2K_c37M.css} +1 -1
  10. package/dist/assets/{CopyToClipboard-DY-UF17o.js → CopyToClipboard-cTbsayFn.js} +1 -1
  11. package/dist/assets/{Detail-Ja14bXDU.js → Detail-BQ0XJdOr.js} +2 -2
  12. package/dist/assets/{EditArray-BFLjz-wW.js → EditArray-DzSfUZdI.js} +1 -1
  13. package/dist/assets/{Extra-Clq8boad.js → Extra-BGXzckZL.js} +1 -1
  14. package/dist/assets/{FilePreview-xVo0BsJp.js → FilePreview-B3Gtn-Tg.js} +1 -1
  15. package/dist/assets/{History-Do3SJVGQ.js → History-BeUw1IaF.js} +1 -1
  16. package/dist/assets/{ImagePreview-eVaabJZn.js → ImagePreview-B5F24-Vs.js} +1 -1
  17. package/dist/assets/{ImageWrapper-BPES620_.js → ImageWrapper-hN1Hdu08.js} +1 -1
  18. package/dist/assets/Index-1KNMLovE.js +1 -0
  19. package/dist/assets/{Index-Bv3aPtGw.js → Index-3ZiNs4kq.js} +1 -1
  20. package/dist/assets/{Index-DPCPO7cj.js → Index-BAn75ep1.js} +1 -1
  21. package/dist/assets/{Index-DyFEHsky.js → Index-BJdy1_Z6.js} +1 -1
  22. package/dist/assets/{Index-D27OMdID.js → Index-BRov3UHm.js} +1 -1
  23. package/dist/assets/{Index-C7lBym9k.js → Index-BUjIH0UD.js} +1 -1
  24. package/dist/assets/{Index-Dq4ojYPG.js → Index-BacfL0a5.js} +1 -1
  25. package/dist/assets/{Index-mq2BOvvk.js → Index-Bc2v2omV.js} +1 -1
  26. package/dist/assets/{Index-B_SMVoYZ.js → Index-BfnWocKp.js} +1 -1
  27. package/dist/assets/{Index-Be0Zf-VK.js → Index-BjX115MB.js} +1 -1
  28. package/dist/assets/{Index-BGwx8RuY.js → Index-Bnh_m2KM.js} +1 -1
  29. package/dist/assets/{Index-CwPif7U2.js → Index-C6QkxZY6.js} +1 -1
  30. package/dist/assets/{Index-BU9oZ6JY.js → Index-CBMnYQ1o.js} +1 -1
  31. package/dist/assets/Index-CBgAolPo.css +1 -0
  32. package/dist/assets/{Index-JUELlnZe.css → Index-CGa5D6En.css} +1 -1
  33. package/dist/assets/{Index-DqZLjJG6.js → Index-CLPm-Y4w.js} +1 -1
  34. package/dist/assets/{Index-DWgoBNcF.js → Index-CqyShhjI.js} +1 -1
  35. package/dist/assets/{Index-BipMjUVy.js → Index-CylCKIXE.js} +1 -1
  36. package/dist/assets/{Index-edVjS9Fq.js → Index-D7ez9jbr.js} +1 -1
  37. package/dist/assets/Index-DgEoij9q.js +1 -0
  38. package/dist/assets/{Index-DT-Iu1eV.js → Index-DlN6WUHV.js} +1 -1
  39. package/dist/assets/{Index-DpR3wEnE.js → Index-N-iGX0tk.js} +1 -1
  40. package/dist/assets/{Index-DS9xL4zc.js → Index-UoZMsXXk.js} +1 -1
  41. package/dist/assets/{Index-B6QAUsOF.js → Index-W2feDC-T.js} +1 -1
  42. package/dist/assets/Index-fbC-lfAY.js +1 -0
  43. package/dist/assets/{Index-BoI2jXTx.js → Index-j-TXpN-y.js} +1 -1
  44. package/dist/assets/{Index-BtuiXvN8.js → Index-q9gZ0XTy.js} +1 -1
  45. package/dist/assets/{Invitees-BFkwxUqa.js → Invitees-D4zwToOW.js} +1 -1
  46. package/dist/assets/{List-C-kCE03H.js → List-8Caks5m2.js} +1 -1
  47. package/dist/assets/{List-Br3Pd6pi.js → List-CnZ4wBge.js} +1 -1
  48. package/dist/assets/{List-BGUJQ1_j.js → List-Cogewp0B.js} +1 -1
  49. package/dist/assets/{Main-BYUMd6qO.js → Main-COqAQDqW.js} +1 -1
  50. package/dist/assets/McpManager-B62KLQ2Z.js +1 -0
  51. package/dist/assets/McpManager-Be2fvTdO.css +1 -0
  52. package/dist/assets/Navigator-semGmQ89.js +1 -0
  53. package/dist/assets/{NoTasks-Dk7Wt2AG.js → NoTasks-ZsLHgPuo.js} +1 -1
  54. package/dist/assets/{OAuthCallback-8_rUp3M5.js → OAuthCallback-CGTHAbtF.js} +1 -1
  55. package/dist/assets/OAuthCallback-CbG9_OQj.js +1 -0
  56. package/dist/assets/OAuthCallback-CeJPNVj3.css +1 -0
  57. package/dist/assets/{Pagination-CfUAmnFo.js → Pagination-BihGJLjm.js} +1 -1
  58. package/dist/assets/{ScrollList-ZiMJkMBw.js → ScrollList-OteSDitY.js} +1 -1
  59. package/dist/assets/Status-De0L9Wnu.js +1 -0
  60. package/dist/assets/Subscribe-DoFhvrGJ.js +1 -0
  61. package/dist/assets/{TransportWebHID-CdbyD8Nb.js → TransportWebHID-D9wUjmBD.js} +1 -1
  62. package/dist/assets/{VideoPlayer-DCxEj90A.js → VideoPlayer-DcumvLkR.js} +1 -1
  63. package/dist/assets/{avatar-DhwSCd0o.js → avatar-B2oLnm2w.js} +1 -1
  64. package/dist/assets/{bignumber-qGuqSDbJ.js → bignumber-geB-LwaY.js} +1 -1
  65. package/dist/assets/connector-DYad3Crz.js +1 -0
  66. package/dist/assets/connector-P8ccoph7.js +1 -0
  67. package/dist/assets/{distribution-ClKMo0TJ.js → distribution-Dmd3XvVp.js} +1 -1
  68. package/dist/assets/{index-BK4USX41.js → index-BKVUDuw-.js} +1 -1
  69. package/dist/assets/{index-0JZkSLcy.js → index-BmwlFP6v.js} +1 -1
  70. package/dist/assets/{index-DzuxpefT.js → index-CLJileDK.js} +1 -1
  71. package/dist/assets/{index-MSQW00oH.js → index-CXXU863B.js} +1 -1
  72. package/dist/assets/{index-ssOK1z8u.js → index-CZR89jLL.js} +1 -1
  73. package/dist/assets/{index-Bw6POElb.js → index-CbXbnDya.js} +1 -1
  74. package/dist/assets/{index-muIEJvsu.js → index-CtkD2JaX.js} +14 -14
  75. package/dist/assets/{index-D3HoJv4E.js → index-DrABKNoZ.js} +1 -1
  76. package/dist/assets/{index.es-Bqj83sQx.js → index.es-DMehEjXB.js} +1 -1
  77. package/dist/assets/{order-D4zdmHv8.js → order-Bw8DFW1R.js} +1 -1
  78. package/dist/assets/{price-Bva0CFLK.js → price-lQeFOa8Q.js} +1 -1
  79. package/dist/assets/{solana-wallets-nnfzRTGt.js → solana-wallets-CKHfeojs.js} +2 -2
  80. package/dist/assets/{solanaEmbed.esm-MqSs0vxC.js → solanaEmbed.esm-CbqLlFds.js} +1 -1
  81. package/dist/assets/{string_decoder-BUnST7cI.js → string_decoder-CEgnOzHn.js} +1 -1
  82. package/dist/assets/types-BnylCDhI.js +1 -0
  83. package/dist/assets/{vendor-element-plus-DN048TGi.js → vendor-element-plus-CmP9-3lX.js} +1 -1
  84. package/dist/assets/{vendor-web3-CIJ0oOq5.js → vendor-web3-C5RrfhAy.js} +4 -4
  85. package/dist/assets/{web-wXYMF4s3.js → web-Bokrd0eW.js} +1 -1
  86. package/dist/assets/{web-COanpFvz.js → web-CV8nB6ef.js} +1 -1
  87. package/dist/index.html +3 -3
  88. package/package.json +12 -1
  89. package/dist/assets/Conversation-CiAYoNDT.js +0 -23
  90. package/dist/assets/Index-BA5k_6bJ.js +0 -1
  91. package/dist/assets/Index-Bnsr9aoW.js +0 -1
  92. package/dist/assets/Navigator-qudQv6Ew.js +0 -1
  93. package/dist/assets/Status-KsOIucfx.js +0 -1
  94. package/dist/assets/Subscribe-De8de3Zo.js +0 -1
@@ -1 +1 @@
1
- import{F as c}from"./index.es-Bqj83sQx.js";import{aY as p,_ as m}from"./index-muIEJvsu.js";import{Z as f}from"./vendor-element-plus-DN048TGi.js";import{d,C as a,G as t,O as x,T as o,L as u,ai as n,U as g,R as h,D as i}from"./vendor-vue-BhXato7y.js";const _=d({name:"FilePreview",components:{FontAwesomeIcon:c,ElProgress:f},props:{name:{type:String,required:!0},percentage:{type:Number,required:!1,default:void 0},closable:{type:Boolean,required:!1,default:!0}},emits:["remove"],methods:{isImageUrl:p}}),v={class:"file cursor-pointer relative rounded-[10px] h-[50px] w-[250px] flex flex-row items-center justify-start bg-[var(--el-bg-color)]"},w={class:"left h-[50px] w-[50px] flex items-center justify-center"},y={class:"wrapper relative w-[35px] h-[35px] flex items-center justify-center rounded-[10px] text-white bg-[#10a37f] m-auto"},b={class:"right flex-1 h-[50px] flex items-center justify-start pl-[2px] text-[14px] text-[var(--el-text-color-primary)] truncate"},k={class:"text-xs font-bold truncate"},$={key:0,class:"close absolute cursor-pointer top-[5px] right-[5px] bg-[rgba(0,0,0,0.7)] text-white w-[15px] rounded-full h-[15px] flex text-[10px] text-center items-center justify-center"};function j(e,s,C,F,B,N){const r=n("font-awesome-icon"),l=n("el-progress");return i(),a("div",v,[t("div",w,[t("div",y,[o(r,{icon:"fa-regular fa-file-alt"}),u(o(l,{type:"circle","stroke-width":3,percentage:e.percentage,width:25,class:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[25px] h-[25px] z-[10] m-auto"},null,8,["percentage"]),[[g,e.percentage&&e.percentage<100]])])]),t("div",b,[t("span",k,h(e.name),1)]),e.closable?(i(),a("div",$,[o(r,{icon:"fa-solid fa-xmark",class:"icon icon-close",onClick:s[0]||(s[0]=q=>e.$emit("remove"))})])):x("",!0)])}const E=m(_,[["render",j]]);export{E as F};
1
+ import{F as c}from"./index.es-DMehEjXB.js";import{aZ as p,_ as m}from"./index-CtkD2JaX.js";import{Z as f}from"./vendor-element-plus-CmP9-3lX.js";import{d,C as a,G as t,O as x,T as o,L as u,ai as n,U as g,R as h,D as i}from"./vendor-vue-BhXato7y.js";const _=d({name:"FilePreview",components:{FontAwesomeIcon:c,ElProgress:f},props:{name:{type:String,required:!0},percentage:{type:Number,required:!1,default:void 0},closable:{type:Boolean,required:!1,default:!0}},emits:["remove"],methods:{isImageUrl:p}}),v={class:"file cursor-pointer relative rounded-[10px] h-[50px] w-[250px] flex flex-row items-center justify-start bg-[var(--el-bg-color)]"},w={class:"left h-[50px] w-[50px] flex items-center justify-center"},y={class:"wrapper relative w-[35px] h-[35px] flex items-center justify-center rounded-[10px] text-white bg-[#10a37f] m-auto"},b={class:"right flex-1 h-[50px] flex items-center justify-start pl-[2px] text-[14px] text-[var(--el-text-color-primary)] truncate"},k={class:"text-xs font-bold truncate"},$={key:0,class:"close absolute cursor-pointer top-[5px] right-[5px] bg-[rgba(0,0,0,0.7)] text-white w-[15px] rounded-full h-[15px] flex text-[10px] text-center items-center justify-center"};function j(e,s,C,F,B,N){const r=n("font-awesome-icon"),l=n("el-progress");return i(),a("div",v,[t("div",w,[t("div",y,[o(r,{icon:"fa-regular fa-file-alt"}),u(o(l,{type:"circle","stroke-width":3,percentage:e.percentage,width:25,class:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[25px] h-[25px] z-[10] m-auto"},null,8,["percentage"]),[[g,e.percentage&&e.percentage<100]])])]),t("div",b,[t("span",k,h(e.name),1)]),e.closable?(i(),a("div",$,[o(r,{icon:"fa-solid fa-xmark",class:"icon icon-close",onClick:s[0]||(s[0]=q=>e.$emit("remove"))})])):x("",!0)])}const E=m(_,[["render",j]]);export{E as F};
@@ -1 +1 @@
1
- import{P as g}from"./Pagination-CfUAmnFo.js";import{C as b}from"./CopyToClipboard-DY-UF17o.js";import{b as w}from"./distribution-ClKMo0TJ.js";import{_ as y}from"./index-muIEJvsu.js";import{g as $}from"./price-Bva0CFLK.js";import{x as C,y as v,z as D,A as H,B as P}from"./vendor-element-plus-DN048TGi.js";import{d as S,J as p,K as o,T as e,ai as s,G as a,R as n,L as E,aq as F,D as u}from"./vendor-vue-BhXato7y.js";import"./index.es-Bqj83sQx.js";import"./vendor-web3-CIJ0oOq5.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";const k=S({name:"ConsoleDistributionList",components:{Pagination:g,CopyToClipboard:b,ElRow:P,ElCol:H,ElTable:D,ElTableColumn:v,ElCard:C},data(){return{distributionHistories:[],distributionStatus:void 0,loading:!1,total:void 0,limit:10}},computed:{redirect(){return this.$route.query.redirect},page(){return parseInt(this.$route.query.page?.toString()||"1")}},watch:{page:{handler(){this.onFetchData()}}},mounted(){this.onFetchData()},methods:{getPriceString:$,onPageChange(t){this.$router.push({name:this.$route.name?.toString(),query:{page:t}})},onFetchData(){this.loading=!0,Promise.all([this.onFetchDistributionHistory()]).finally(()=>{this.loading=!1})},async onFetchDistributionHistory(){const{data:t}=await w.getAll({user_id:this.$store.getters.user.id,ordering:"-created_at",limit:this.limit,offset:(this.page-1)*this.limit});this.distributionHistories=t.items,this.total=t.count}}}),q={class:"title"},B={class:"key"},T={class:"copy"},z={class:"key"},A={class:"copy"},I={class:"price"},L={class:"description"},N={class:"description"},R={class:"created-at"},V={class:"pagination m-v-lg"};function j(t,G,J,K,O,M){const l=s("el-col"),d=s("el-row"),c=s("copy-to-clipboard"),r=s("el-table-column"),_=s("el-table"),m=s("el-card"),h=s("pagination"),f=F("loading");return u(),p(d,{class:"panel"},{default:o(()=>[e(l,{span:24},{default:o(()=>[e(d,null,{default:o(()=>[e(l,{span:24},{default:o(()=>[a("h2",q,n(t.$t("common.title.distributionHistory")),1)]),_:1})]),_:1}),e(d,null,{default:o(()=>[e(l,{span:24},{default:o(()=>[e(m,{shadow:"hover"},{default:o(()=>[E((u(),p(_,{data:t.distributionHistories,stripe:""},{default:o(()=>[e(r,{prop:"id",label:t.$t("distribution.field.id"),"class-name":"text-center",width:"350px"},{default:o(i=>[a("span",B,n(i.row.id),1),a("span",T,[e(c,{content:i.row.id},null,8,["content"])])]),_:1},8,["label"]),e(r,{prop:"id",label:t.$t("distribution.field.userId"),"class-name":"text-center",width:"350px"},{default:o(i=>[a("span",z,n(i.row.user_id),1),a("span",A,[e(c,{content:i.row.user_id},null,8,["content"])])]),_:1},8,["label"]),e(r,{label:t.$t("distribution.field.price"),width:"100px"},{default:o(i=>[a("span",I,n(t.getPriceString({value:i.row?.price})),1)]),_:1},8,["label"]),e(r,{label:t.$t("distribution.field.reward"),width:"100px"},{default:o(i=>[a("span",L,n(t.getPriceString({value:i.row?.reward})),1)]),_:1},8,["label"]),e(r,{label:t.$t("distribution.field.percentage"),width:"120px"},{default:o(i=>[a("span",N,n(i.row.percentage)+"%",1)]),_:1},8,["label"]),e(r,{label:t.$t("distribution.field.createdAt"),width:"200px"},{default:o(i=>[a("span",R,n(t.$dayjs.format(i.row.created_at)),1)]),_:1},8,["label"])]),_:1},8,["data"])),[[f,t.loading]])]),_:1})]),_:1})]),_:1}),e(d,null,{default:o(()=>[e(l,{span:10,offset:14},{default:o(()=>[a("div",V,[e(h,{"current-page":t.page,"page-size":t.limit,total:t.total,onChange:t.onPageChange},null,8,["current-page","page-size","total","onChange"])])]),_:1})]),_:1})]),_:1})]),_:1})}const st=y(k,[["render",j],["__scopeId","data-v-74b9e778"]]);export{st as default};
1
+ import{P as g}from"./Pagination-BihGJLjm.js";import{C as b}from"./CopyToClipboard-cTbsayFn.js";import{b as w}from"./distribution-Dmd3XvVp.js";import{_ as y}from"./index-CtkD2JaX.js";import{g as $}from"./price-lQeFOa8Q.js";import{x as C,y as v,z as D,A as H,B as P}from"./vendor-element-plus-CmP9-3lX.js";import{d as S,J as p,K as o,T as e,ai as s,G as a,R as n,L as E,aq as F,D as u}from"./vendor-vue-BhXato7y.js";import"./index.es-DMehEjXB.js";import"./vendor-web3-C5RrfhAy.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";const k=S({name:"ConsoleDistributionList",components:{Pagination:g,CopyToClipboard:b,ElRow:P,ElCol:H,ElTable:D,ElTableColumn:v,ElCard:C},data(){return{distributionHistories:[],distributionStatus:void 0,loading:!1,total:void 0,limit:10}},computed:{redirect(){return this.$route.query.redirect},page(){return parseInt(this.$route.query.page?.toString()||"1")}},watch:{page:{handler(){this.onFetchData()}}},mounted(){this.onFetchData()},methods:{getPriceString:$,onPageChange(t){this.$router.push({name:this.$route.name?.toString(),query:{page:t}})},onFetchData(){this.loading=!0,Promise.all([this.onFetchDistributionHistory()]).finally(()=>{this.loading=!1})},async onFetchDistributionHistory(){const{data:t}=await w.getAll({user_id:this.$store.getters.user.id,ordering:"-created_at",limit:this.limit,offset:(this.page-1)*this.limit});this.distributionHistories=t.items,this.total=t.count}}}),q={class:"title"},B={class:"key"},T={class:"copy"},z={class:"key"},A={class:"copy"},I={class:"price"},L={class:"description"},N={class:"description"},R={class:"created-at"},V={class:"pagination m-v-lg"};function j(t,G,J,K,O,M){const l=s("el-col"),d=s("el-row"),c=s("copy-to-clipboard"),r=s("el-table-column"),_=s("el-table"),m=s("el-card"),h=s("pagination"),f=F("loading");return u(),p(d,{class:"panel"},{default:o(()=>[e(l,{span:24},{default:o(()=>[e(d,null,{default:o(()=>[e(l,{span:24},{default:o(()=>[a("h2",q,n(t.$t("common.title.distributionHistory")),1)]),_:1})]),_:1}),e(d,null,{default:o(()=>[e(l,{span:24},{default:o(()=>[e(m,{shadow:"hover"},{default:o(()=>[E((u(),p(_,{data:t.distributionHistories,stripe:""},{default:o(()=>[e(r,{prop:"id",label:t.$t("distribution.field.id"),"class-name":"text-center",width:"350px"},{default:o(i=>[a("span",B,n(i.row.id),1),a("span",T,[e(c,{content:i.row.id},null,8,["content"])])]),_:1},8,["label"]),e(r,{prop:"id",label:t.$t("distribution.field.userId"),"class-name":"text-center",width:"350px"},{default:o(i=>[a("span",z,n(i.row.user_id),1),a("span",A,[e(c,{content:i.row.user_id},null,8,["content"])])]),_:1},8,["label"]),e(r,{label:t.$t("distribution.field.price"),width:"100px"},{default:o(i=>[a("span",I,n(t.getPriceString({value:i.row?.price})),1)]),_:1},8,["label"]),e(r,{label:t.$t("distribution.field.reward"),width:"100px"},{default:o(i=>[a("span",L,n(t.getPriceString({value:i.row?.reward})),1)]),_:1},8,["label"]),e(r,{label:t.$t("distribution.field.percentage"),width:"120px"},{default:o(i=>[a("span",N,n(i.row.percentage)+"%",1)]),_:1},8,["label"]),e(r,{label:t.$t("distribution.field.createdAt"),width:"200px"},{default:o(i=>[a("span",R,n(t.$dayjs.format(i.row.created_at)),1)]),_:1},8,["label"])]),_:1},8,["data"])),[[f,t.loading]])]),_:1})]),_:1})]),_:1}),e(d,null,{default:o(()=>[e(l,{span:10,offset:14},{default:o(()=>[a("div",V,[e(h,{"current-page":t.page,"page-size":t.limit,total:t.total,onChange:t.onPageChange},null,8,["current-page","page-size","total","onChange"])])]),_:1})]),_:1})]),_:1})]),_:1})}const st=y(k,[["render",j],["__scopeId","data-v-74b9e778"]]);export{st as default};
@@ -1 +1 @@
1
- import{F as m}from"./index.es-Bqj83sQx.js";import{Z as d}from"./vendor-element-plus-DN048TGi.js";import{d as u,C as r,G as t,L as s,O as f,U as a,T as n,ai as l,X as g,D as i}from"./vendor-vue-BhXato7y.js";import{_ as v}from"./index-muIEJvsu.js";const h=u({name:"ImagePreview",components:{FontAwesomeIcon:m,ElProgress:d},props:{url:{type:String,required:!0},name:{type:String,required:!0},percentage:{type:Number,required:!1,default:void 0},closable:{type:Boolean,required:!1,default:!0}},emits:["remove"]}),b={class:"image w-[50px] h-[50px] relative rounded-[var(--el-border-radius-base)] overflow-hidden shadow-sm bg-[var(--el-fill-color-lighter)]"},w=["src","alt"],_={class:"overlay absolute inset-0 bg-[var(--el-mask-color)] backdrop-blur-[1px]"},x={key:0,class:"close absolute cursor-pointer top-[4px] right-[4px] bg-[rgba(0,0,0,0.65)] text-white w-[16px] h-[16px] rounded-full flex text-[10px] text-center items-center justify-center hover:bg-[rgba(0,0,0,0.8)]"};function y(e,o,k,$,C,q){const c=l("el-progress"),p=l("font-awesome-icon");return i(),r("div",b,[t("img",{class:"w-full h-full object-cover",src:e.url,alt:e.name},null,8,w),s(t("div",_,null,512),[[a,e.percentage&&e.percentage<100]]),s(n(c,{type:"circle","stroke-width":4,percentage:e.percentage,width:34,class:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[34px] h-[34px] z-[10] m-auto text-[12px]"},null,8,["percentage"]),[[a,e.percentage&&e.percentage<100]]),e.closable?(i(),r("div",x,[n(p,{icon:"fa-solid fa-xmark",class:"icon icon-close",onClick:o[0]||(o[0]=g(B=>e.$emit("remove"),["stop"]))})])):f("",!0)])}const V=v(h,[["render",y]]);export{V as I};
1
+ import{F as m}from"./index.es-DMehEjXB.js";import{Z as d}from"./vendor-element-plus-CmP9-3lX.js";import{d as u,C as r,G as t,L as s,O as f,U as a,T as n,ai as l,X as g,D as i}from"./vendor-vue-BhXato7y.js";import{_ as v}from"./index-CtkD2JaX.js";const h=u({name:"ImagePreview",components:{FontAwesomeIcon:m,ElProgress:d},props:{url:{type:String,required:!0},name:{type:String,required:!0},percentage:{type:Number,required:!1,default:void 0},closable:{type:Boolean,required:!1,default:!0}},emits:["remove"]}),b={class:"image w-[50px] h-[50px] relative rounded-[var(--el-border-radius-base)] overflow-hidden shadow-sm bg-[var(--el-fill-color-lighter)]"},w=["src","alt"],_={class:"overlay absolute inset-0 bg-[var(--el-mask-color)] backdrop-blur-[1px]"},x={key:0,class:"close absolute cursor-pointer top-[4px] right-[4px] bg-[rgba(0,0,0,0.65)] text-white w-[16px] h-[16px] rounded-full flex text-[10px] text-center items-center justify-center hover:bg-[rgba(0,0,0,0.8)]"};function y(e,o,k,$,C,q){const c=l("el-progress"),p=l("font-awesome-icon");return i(),r("div",b,[t("img",{class:"w-full h-full object-cover",src:e.url,alt:e.name},null,8,w),s(t("div",_,null,512),[[a,e.percentage&&e.percentage<100]]),s(n(c,{type:"circle","stroke-width":4,percentage:e.percentage,width:34,class:"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[34px] h-[34px] z-[10] m-auto text-[12px]"},null,8,["percentage"]),[[a,e.percentage&&e.percentage<100]]),e.closable?(i(),r("div",x,[n(p,{icon:"fa-solid fa-xmark",class:"icon icon-close",onClick:o[0]||(o[0]=g(B=>e.$emit("remove"),["stop"]))})])):f("",!0)])}const V=v(h,[["render",y]]);export{V as I};
@@ -1 +1 @@
1
- import{m as c}from"./vendor-element-plus-DN048TGi.js";import{d as m,C as a,O as p,J as l,K as d,Q as u,R as f,ai as g,D as s}from"./vendor-vue-BhXato7y.js";import{_ as w}from"./index-muIEJvsu.js";const y=m({name:"ImageWrapper",components:{ElButton:c},props:{src:{type:String,required:!0},rawSrc:{type:String,required:!1,default:void 0}},methods:{onOpenUrl(e){window.open(e,"_blank")},onReload(e){const r=e.target,t=new URL(r.src),o=t.searchParams.get("retry");if(!o)t.searchParams.set("retry","1");else if(parseInt(o)<2)t.searchParams.set("retry",(parseInt(o)+1).toString());else return;r.src=t.toString()}}}),_={class:"image-wrapper"},S=["src"];function k(e,r,t,o,I,C){const i=g("el-button");return s(),a("div",_,[e.src?(s(),a("img",{key:0,src:e.src,class:"image",onError:r[0]||(r[0]=n=>e.onReload(n))},null,40,S)):p("",!0),e.rawSrc?(s(),l(i,{key:1,type:"info",round:"",class:"btn-raw",onClick:r[1]||(r[1]=n=>e.onOpenUrl(e.rawSrc))},{default:d(()=>[u(f(e.$t("common.button.seeRawImage")),1)]),_:1})):p("",!0)])}const R=w(y,[["render",k],["__scopeId","data-v-4deff0d6"]]);export{R as I};
1
+ import{m as c}from"./vendor-element-plus-CmP9-3lX.js";import{d as m,C as a,O as p,J as l,K as d,Q as u,R as f,ai as g,D as s}from"./vendor-vue-BhXato7y.js";import{_ as w}from"./index-CtkD2JaX.js";const y=m({name:"ImageWrapper",components:{ElButton:c},props:{src:{type:String,required:!0},rawSrc:{type:String,required:!1,default:void 0}},methods:{onOpenUrl(e){window.open(e,"_blank")},onReload(e){const r=e.target,t=new URL(r.src),o=t.searchParams.get("retry");if(!o)t.searchParams.set("retry","1");else if(parseInt(o)<2)t.searchParams.set("retry",(parseInt(o)+1).toString());else return;r.src=t.toString()}}}),_={class:"image-wrapper"},S=["src"];function k(e,r,t,o,I,C){const i=g("el-button");return s(),a("div",_,[e.src?(s(),a("img",{key:0,src:e.src,class:"image",onError:r[0]||(r[0]=n=>e.onReload(n))},null,40,S)):p("",!0),e.rawSrc?(s(),l(i,{key:1,type:"info",round:"",class:"btn-raw",onClick:r[1]||(r[1]=n=>e.onOpenUrl(e.rawSrc))},{default:d(()=>[u(f(e.$t("common.button.seeRawImage")),1)]),_:1})):p("",!0)])}const R=w(y,[["render",k],["__scopeId","data-v-4deff0d6"]]);export{R as I};
@@ -0,0 +1 @@
1
+ import{F as M}from"./index.es-DMehEjXB.js";import{_ as O,d6 as B}from"./index-CtkD2JaX.js";import{m as P,c as b,M as N}from"./McpManager-B62KLQ2Z.js";import{a as R,F as G,G as j,O as U,P as q,k as J,m as T,w as p,I as K,f as Q,g as W,h as H,t as X}from"./vendor-element-plus-CmP9-3lX.js";import{d as A,C as r,G as n,T as t,ai as d,J as y,O as m,R as i,K as c,Q as g,M as Y,D as s,S as I,ag as S,L as Z,aq as x}from"./vendor-vue-BhXato7y.js";import{l as L,s as ee,P as oe}from"./types-BnylCDhI.js";import"./vendor-web3-C5RrfhAy.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";const te=A({name:"ConnectorListItem",components:{ElTag:R,FontAwesomeIcon:M},props:{item:{type:Object,required:!0},selected:{type:Boolean,default:!1}},emits:["click"]}),se={class:"icon"},ne={class:"meta"},ie={class:"name-row"},ae={class:"name"};function re(e,o,a,f,_,$){const l=d("font-awesome-icon"),v=d("el-tag");return s(),r("div",{class:Y(["row",{selected:e.selected}]),onClick:o[0]||(o[0]=k=>e.$emit("click"))},[n("div",se,[t(l,{icon:e.item.icon||"fa-solid fa-plug"},null,8,["icon"])]),n("div",ne,[n("div",ie,[n("span",ae,i(e.item.name),1),e.item.isCustom?(s(),y(v,{key:0,size:"small",type:"info",effect:"plain",round:"",class:"custom-tag"},{default:c(()=>[g(i(e.$t("connector.badge.custom")),1)]),_:1})):m("",!0)])])],2)}const le=O(te,[["render",re],["__scopeId","data-v-694b363e"]]),ce=A({name:"ConnectorDetail",components:{ElButton:T,ElSwitch:J,ElTag:R,ElSelect:q,ElOption:U,ElRadioGroup:j,ElRadioButton:G,FontAwesomeIcon:M},props:{item:{type:Object,required:!0},token:{type:String,default:""}},emits:["change"],data(){return{connecting:!1,authorizing:!1,defaultPermission:"ask",permissions:{}}},computed:{tools(){return this.item.mcp?.tools_cache||[]}},watch:{"item.id":{immediate:!0,handler(){this.reloadPermissions()}}},methods:{reloadPermissions(){const o=L()[this.item.id]||{};this.permissions={...o},this.defaultPermission=o.__default||"ask"},persist(){const e=L(),o={...this.permissions,__default:this.defaultPermission};e[this.item.id]=o,ee(e)},getPermission(e){return this.permissions[e]||this.defaultPermission},setPermission(e,o){this.permissions={...this.permissions,[e]:o},this.persist()},onDefaultChanged(){this.persist()},async onConnectProvider(){const e=this.item.provider?.id;if(!(!e||!this.token)){this.connecting=!0;try{const{data:o}=await b.authorize(e,this.token),a=window.open(o.authorization_url,"oauth-popup","width=600,height=700,scrollbars=yes"),f=async $=>{if($.data?.type!=="oauth-callback")return;window.removeEventListener("message",f);const{code:l,state:v}=$.data;if(!l||!v){p.error(this.$t("connector.common.authFailed"));return}try{await b.exchange(l,v,this.token),p.success(this.$t("connector.detail.connected")),this.$emit("change")}catch{p.error(this.$t("connector.common.authFailed"))}};window.addEventListener("message",f);const _=setInterval(()=>{a?.closed&&(clearInterval(_),this.connecting=!1)},500)}catch{p.error(this.$t("connector.common.authFailed")),this.connecting=!1}}},async onDisconnectProvider(){const e=this.item.provider?.id;if(!(!e||!this.token))try{await b.disconnect(e,this.token),p.success(this.$t("connector.detail.disconnected")),this.$emit("change")}catch{p.error(this.$t("connector.common.toggleError"))}},async onToggleConnector(e){const o=this.item.provider?.id;if(!(!o||!this.token))try{await b.toggle(o,e,this.token),this.$emit("change")}catch{p.error(this.$t("connector.common.toggleError"))}},async onToggleMcp(e){const o=this.item.mcp?.id;if(!(!o||!this.token))try{await P.update({id:o,is_enabled:e},this.token),this.$emit("change")}catch{p.error(this.$t("connector.common.toggleError"))}},async onDeleteMcp(){const e=this.item.mcp;if(!(!e||!this.token)){try{await K.confirm(this.$t("connector.custom.deleteConfirm",{name:e.name}),this.$t("connector.common.confirm"),{type:"warning"})}catch{return}try{await P.delete(e.id,this.token),p.success(this.$t("connector.custom.deleted")),this.$emit("change")}catch{p.error(this.$t("connector.common.toggleError"))}}},async onAuthorizeMcp(){const e=this.item.mcp?.id;if(!(!e||!this.token)){this.authorizing=!0;try{const{data:o}=await P.oauthStart(e,this.token);if(o.status==="authorized"){p.success(this.$t("connector.common.authSuccess")),this.$emit("change");return}if(!o.authorization_url)return;const a=window.open(o.authorization_url,"oauth-popup","width=600,height=700,scrollbars=yes"),f=async $=>{if($.data?.type!=="oauth-callback")return;window.removeEventListener("message",f);const{code:l}=$.data;if(!l){p.error(this.$t("connector.common.authFailed"));return}try{await P.oauthCallback(e,l,this.token),p.success(this.$t("connector.common.authSuccess")),this.$emit("change")}catch{p.error(this.$t("connector.common.authFailed"))}};window.addEventListener("message",f);const _=setInterval(()=>{a?.closed&&(clearInterval(_),this.authorizing=!1)},500)}catch{p.error(this.$t("connector.common.authFailed")),this.authorizing=!1}}}}}),de={class:"detail"},me={class:"detail-header"},ue={class:"lead"},pe={class:"icon"},he={class:"info"},fe={class:"title-row"},ge={class:"title"},_e={key:0,class:"desc"},$e={class:"actions"},ve={key:0,class:"profile"},ke={class:"section-title"},ye={class:"profile-row"},we=["src"],Ce={class:"profile-name"},be={key:1,class:"profile-email"},Ie={key:1,class:"profile"},Ee={class:"url"},Pe={key:2,class:"permissions"},De={class:"section-title-row"},Ve={class:"section-title"},ze={class:"section-help"},Se={key:0,class:"empty"},Me={key:1,class:"tool-list"},Oe={class:"tool-info"},Ae={class:"tool-name"},Le={key:0,class:"tool-desc"};function Re(e,o,a,f,_,$){const l=d("font-awesome-icon"),v=d("el-tag"),k=d("el-switch"),w=d("el-button"),E=d("el-option"),D=d("el-select"),C=d("el-radio-button"),V=d("el-radio-group");return s(),r("div",de,[n("header",me,[n("div",ue,[n("div",pe,[t(l,{icon:e.item.icon||"fa-solid fa-plug"},null,8,["icon"])]),n("div",he,[n("div",fe,[n("span",ge,i(e.item.name),1),e.item.isCustom?(s(),y(v,{key:0,type:"info",effect:"plain",round:""},{default:c(()=>[g(i(e.$t("connector.badge.custom")),1)]),_:1})):m("",!0)]),e.item.description?(s(),r("div",_e,i(e.item.description),1)):m("",!0)])]),n("div",$e,[e.item.kind==="provider"?(s(),r(I,{key:0},[e.item.connected?(s(),r(I,{key:0},[e.item.connector?(s(),y(k,{key:0,"model-value":e.item.connector.is_enabled,onChange:o[0]||(o[0]=h=>e.onToggleConnector(h))},null,8,["model-value"])):m("",!0),t(w,{type:"danger",plain:"",onClick:e.onDisconnectProvider},{default:c(()=>[g(i(e.$t("connector.detail.disconnect")),1)]),_:1},8,["onClick"])],64)):(s(),y(w,{key:1,type:"primary",loading:e.connecting,onClick:e.onConnectProvider},{default:c(()=>[t(l,{icon:"fa-solid fa-plug",class:"mr-1"}),g(" "+i(e.$t("connector.detail.connect")),1)]),_:1},8,["loading","onClick"]))],64)):e.item.kind==="custom"&&e.item.mcp?(s(),r(I,{key:1},[t(k,{"model-value":e.item.mcp.is_enabled,onChange:o[1]||(o[1]=h=>e.onToggleMcp(h))},null,8,["model-value"]),e.item.mcp.auth_type==="oauth"&&e.item.mcp.oauth_status!=="authorized"?(s(),y(w,{key:0,type:"warning",loading:e.authorizing,onClick:e.onAuthorizeMcp},{default:c(()=>[t(l,{icon:"fa-solid fa-key",class:"mr-1"}),g(" "+i(e.$t("connector.custom.authorize")),1)]),_:1},8,["loading","onClick"])):m("",!0),t(w,{type:"danger",plain:"",onClick:e.onDeleteMcp},{default:c(()=>[g(i(e.$t("connector.detail.disconnect")),1)]),_:1},8,["onClick"])],64)):m("",!0)])]),e.item.connector?.profile?(s(),r("section",ve,[n("div",ke,i(e.$t("connector.detail.profile")),1),n("div",ye,[e.item.connector.profile.avatar?(s(),r("img",{key:0,src:e.item.connector.profile.avatar,class:"avatar"},null,8,we)):m("",!0),n("span",Ce,i(e.item.connector.profile.name),1),e.item.connector.profile.email?(s(),r("span",be,i(e.item.connector.profile.email),1)):m("",!0)])])):m("",!0),e.item.mcp?.url?(s(),r("section",Ie,[o[3]||(o[3]=n("div",{class:"section-title"},"URL",-1)),n("code",Ee,i(e.item.mcp.url),1)])):m("",!0),e.tools.length||e.item.kind==="custom"?(s(),r("section",Pe,[n("div",De,[n("span",Ve,i(e.$t("connector.detail.toolPermissions"))+" ("+i(e.tools.length)+")",1),t(D,{modelValue:e.defaultPermission,"onUpdate:modelValue":o[2]||(o[2]=h=>e.defaultPermission=h),class:"default-select",onChange:e.onDefaultChanged},{default:c(()=>[t(E,{value:"always",label:e.$t("connector.permission.always")},null,8,["label"]),t(E,{value:"ask",label:e.$t("connector.permission.ask")},null,8,["label"]),t(E,{value:"never",label:e.$t("connector.permission.never")},null,8,["label"])]),_:1},8,["modelValue","onChange"])]),n("p",ze,i(e.$t("connector.detail.toolPermissions.help")),1),e.tools.length===0?(s(),r("div",Se,i(e.$t("connector.detail.noTools")),1)):(s(),r("ul",Me,[(s(!0),r(I,null,S(e.tools,h=>(s(),r("li",{key:h.name,class:"tool-row"},[n("div",Oe,[n("div",Ae,i(h.name),1),h.description?(s(),r("div",Le,i(h.description),1)):m("",!0)]),t(V,{"model-value":e.getPermission(h.name),onChange:z=>e.setPermission(h.name,z)},{default:c(()=>[t(C,{value:"always",title:e.$t("connector.permission.always")},{default:c(()=>[t(l,{icon:"fa-solid fa-check"})]),_:1},8,["title"]),t(C,{value:"ask",title:e.$t("connector.permission.ask")},{default:c(()=>[t(l,{icon:"fa-solid fa-hand"})]),_:1},8,["title"]),t(C,{value:"never",title:e.$t("connector.permission.never")},{default:c(()=>[t(l,{icon:"fa-solid fa-ban"})]),_:1},8,["title"])]),_:2},1032,["model-value","onChange"])]))),128))]))])):m("",!0)])}const Te=O(ce,[["render",Re],["__scopeId","data-v-7bc668df"]]),Fe=A({name:"ConnectorsIndex",components:{ElInput:X,ElButton:T,ElDropdown:H,ElDropdownMenu:W,ElDropdownItem:Q,FontAwesomeIcon:M,ConnectorListItem:le,ConnectorDetail:Te,McpManager:N},data(){return{providers:[],connectors:[],mcpServers:[],loading:!1,loadError:!1,search:"",selectedId:"",customDialogVisible:!1}},computed:{token(){return this.$store.state.chat?.credential?.token??""},items(){const e=[];for(const a of this.providers){if(a.available===!1&&!a.connected)continue;const f=this.connectors.find(_=>_.provider===a.id);e.push({id:`provider:${a.id}`,kind:"provider",name:a.name,description:a.description,icon:oe[a.id]||"fa-solid fa-plug",isCustom:!1,connected:!!f||a.connected,provider:a,connector:f})}for(const a of this.mcpServers)e.push({id:`mcp:${a.id}`,kind:"custom",name:a.name,description:a.description,icon:"fa-solid fa-cube",isCustom:!0,connected:!0,mcp:a});const o=this.search.trim().toLowerCase();return o?e.filter(a=>a.name.toLowerCase().includes(o)||(a.description?.toLowerCase().includes(o)??!1)):e},webGroupItems(){return this.items.filter(e=>e.connected)},notConnectedItems(){return this.items.filter(e=>!e.connected)},selectedItem(){return this.items.find(e=>e.id===this.selectedId)}},watch:{token:{immediate:!0,handler(e){e&&this.loadAll()}}},methods:{async loadAll(){if(this.token){this.loading=!0,this.loadError=!1;try{const[e,o,a]=await Promise.allSettled([b.listProviders(this.token),b.list(this.token),P.list(this.token)]);e.status==="fulfilled"&&(this.providers=e.value.data.providers||[]),o.status==="fulfilled"&&(this.connectors=o.value.data.items||[]),a.status==="fulfilled"&&(this.mcpServers=a.value.data.items||[]),e.status==="rejected"&&o.status==="rejected"&&a.status==="rejected"&&(this.loadError=!0),!this.selectedId&&this.items.length&&(this.selectedId=this.items[0].id)}finally{this.loading=!1}}},onAddCommand(e){e==="browse"?this.$router.push({name:B}):e==="custom"&&(this.customDialogVisible=!0)}}}),Be={class:"connectors-page"},Ne={class:"rail"},Ge={class:"rail-header"},je={class:"title"},Ue={class:"rail-header-actions"},qe={class:"rail-body"},Je={key:0,class:"empty-hint"},Ke={key:1,class:"group"},Qe={class:"group-title"},We={key:2,class:"group"},He={class:"group-title"},Xe={key:3,class:"rail-empty"},Ye={class:"rail-empty-title"},Ze={class:"rail-empty-desc"},xe={class:"detail-pane"},eo={key:1,class:"detail-empty"},oo={class:"empty-title"},to={class:"empty-desc"},so={class:"empty-actions"};function no(e,o,a,f,_,$){const l=d("font-awesome-icon"),v=d("el-input"),k=d("el-button"),w=d("el-dropdown-item"),E=d("el-dropdown-menu"),D=d("el-dropdown"),C=d("connector-list-item"),V=d("connector-detail"),h=d("mcp-manager"),z=x("loading");return s(),r("div",Be,[n("aside",Ne,[n("div",Ge,[n("span",je,i(e.$t("connector.title")),1),n("div",Ue,[t(v,{modelValue:e.search,"onUpdate:modelValue":o[0]||(o[0]=u=>e.search=u),placeholder:e.$t("connector.search.placeholder"),class:"search-input",clearable:""},{prefix:c(()=>[t(l,{icon:"fa-solid fa-magnifying-glass"})]),_:1},8,["modelValue","placeholder"]),t(D,{trigger:"click",onCommand:e.onAddCommand},{dropdown:c(()=>[t(E,null,{default:c(()=>[t(w,{command:"browse"},{default:c(()=>[t(l,{icon:"fa-solid fa-book",class:"mr-2"}),g(" "+i(e.$t("connector.menu.browse")),1)]),_:1}),t(w,{command:"custom"},{default:c(()=>[t(l,{icon:"fa-solid fa-cube",class:"mr-2"}),g(" "+i(e.$t("connector.menu.custom")),1)]),_:1})]),_:1})]),default:c(()=>[t(k,{class:"add-btn"},{default:c(()=>[t(l,{icon:"fa-solid fa-plus"})]),_:1})]),_:1},8,["onCommand"])])]),Z((s(),r("div",qe,[e.loadError?(s(),r("div",Je,i(e.$t("connector.common.loadError")),1)):m("",!0),e.webGroupItems.length?(s(),r("div",Ke,[n("div",Qe,i(e.$t("connector.group.web")),1),(s(!0),r(I,null,S(e.webGroupItems,u=>(s(),y(C,{key:u.id,item:u,selected:e.selectedId===u.id,onClick:F=>e.selectedId=u.id},null,8,["item","selected","onClick"]))),128))])):m("",!0),e.notConnectedItems.length?(s(),r("div",We,[n("div",He,i(e.$t("connector.group.notConnected")),1),(s(!0),r(I,null,S(e.notConnectedItems,u=>(s(),y(C,{key:u.id,item:u,selected:e.selectedId===u.id,onClick:F=>e.selectedId=u.id},null,8,["item","selected","onClick"]))),128))])):m("",!0),!e.loading&&!e.loadError&&e.items.length===0?(s(),r("div",Xe,[t(l,{icon:"fa-solid fa-plug",class:"rail-empty-icon"}),n("p",Ye,i(e.$t("connector.empty.title")),1),n("p",Ze,i(e.$t("connector.empty.desc")),1),t(k,{type:"primary",onClick:o[1]||(o[1]=u=>e.onAddCommand("browse"))},{default:c(()=>[t(l,{icon:"fa-solid fa-book",class:"mr-1"}),g(" "+i(e.$t("connector.menu.browse")),1)]),_:1})])):m("",!0)])),[[z,e.loading]])]),n("section",xe,[e.selectedItem?(s(),y(V,{key:0,item:e.selectedItem,token:e.token,onChange:e.loadAll},null,8,["item","token","onChange"])):e.loading?m("",!0):(s(),r("div",eo,[t(l,{icon:"fa-solid fa-plug",class:"empty-icon"}),n("p",oo,i(e.$t("connector.detail.empty.title")),1),n("p",to,i(e.$t("connector.detail.empty.desc")),1),n("div",so,[t(k,{type:"primary",onClick:o[2]||(o[2]=u=>e.onAddCommand("browse"))},{default:c(()=>[t(l,{icon:"fa-solid fa-book",class:"mr-1"}),g(" "+i(e.$t("connector.menu.browse")),1)]),_:1}),t(k,{onClick:o[3]||(o[3]=u=>e.onAddCommand("custom"))},{default:c(()=>[t(l,{icon:"fa-solid fa-cube",class:"mr-1"}),g(" "+i(e.$t("connector.menu.custom")),1)]),_:1})])]))]),t(h,{modelValue:e.customDialogVisible,"onUpdate:modelValue":o[4]||(o[4]=u=>e.customDialogVisible=u),onChange:e.loadAll},null,8,["modelValue","onChange"])])}const go=O(Fe,[["render",no],["__scopeId","data-v-4266a457"]]);export{go as default};
@@ -1 +1 @@
1
- import{F as U}from"./index.es-Bqj83sQx.js";import{m as L,Y as q,k as j,u as R,w as E,t as H,q as J,H as K,j as Q}from"./vendor-element-plus-DN048TGi.js";import{d as b,C as m,G as n,T as o,E as C,K as c,ai as s,D as a,R as i,Q as g,J as v,O as _,M as T,X as M,S as D,ag as X}from"./vendor-vue-BhXato7y.js";import{_ as w,bC as Y,bD as W,bE as Z,au as A,bF as x,aN as ee,aJ as z}from"./index-muIEJvsu.js";import{I as S,S as te}from"./ScrollList-ZiMJkMBw.js";import{p as B}from"./pasteUploadMixin-BurWbGNQ.js";import{I as F}from"./ImagePreview-eVaabJZn.js";import{F as oe}from"./FilePreview-xVo0BsJp.js";import{V as O}from"./VideoPlayer-DCxEj90A.js";import{C as se}from"./Consumption-DB4jsCIw.js";import{a as ne}from"./price-Bva0CFLK.js";import{C as ae}from"./CopyToClipboard-DY-UF17o.js";import{B as le}from"./BotPlaceholder-CcWrwFmL.js";import{N as ie}from"./NoTasks-Dk7Wt2AG.js";import{l as re}from"./pagination-DLJ2pbsx.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-CIJ0oOq5.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";import"./vue-plyr-QZFBikSk.js";const ce=b({name:"LayoutLuma",components:{ElDrawer:q,ElButton:L,FontAwesomeIcon:U},data(){return{drawer:!1}}}),ue={class:"main flex flex-row flex-1"},de={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},me={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function pe(e,t,p,h,k,y){const r=s("font-awesome-icon"),d=s("el-button"),u=s("el-drawer");return a(),m("div",ue,[n("div",de,[C(e.$slots,"config",{},void 0,!0)]),n("div",me,[C(e.$slots,"result",{},void 0,!0)]),o(d,{circle:"",class:"menu",onClick:t[0]||(t[0]=$=>e.drawer=!0)},{default:c(()=>[o(r,{icon:"fa-solid fa-magic"})]),_:1}),o(u,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=$=>e.drawer=$),direction:"ltr","with-header":!1,size:"350px",class:"drawer"},{default:c(()=>[C(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const fe=w(ce,[["render",pe],["__scopeId","data-v-7be1f25b"]]),_e=b({name:"EnhancementSelector",components:{ElSwitch:j,InfoIcon:S},computed:{value:{get(){return this.$store.state.luma?.config?.enhancement},set(e){console.debug("set enhancement",e),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,enhancement:e})}}},mounted(){this.value===void 0&&(this.value=Y)}}),he={class:"relative"},$e={class:"flex justify-between"},ge={class:"flex justify-start items-center"},ve={class:"text-sm font-bold"},be={class:"flex justify-end items-center"};function we(e,t,p,h,k,y){const r=s("info-icon"),d=s("el-switch");return a(),m("div",he,[n("div",$e,[n("div",ge,[n("span",ve,i(e.$t("luma.name.enhancement")),1),o(r,{content:e.$t("luma.description.enhancement")},null,8,["content"])]),n("div",be,[o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=u=>e.value=u),class:"value"},null,8,["modelValue"])])])])}const ke=w(_e,[["render",we]]),ye=b({name:"CustomSelector",components:{ElSwitch:j,InfoIcon:S},computed:{value:{get(){return this.$store.state.luma?.config?.custom},set(e){console.debug("set custom",e),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,custom:e})}}},mounted(){this.value===void 0&&(this.value=W)}}),Ee={class:"relative"},Ve={class:"flex justify-between"},Se={class:"flex justify-start items-center"},Ue={class:"text-sm font-bold"},Le={class:"flex justify-end items-center"};function Ie(e,t,p,h,k,y){const r=s("info-icon"),d=s("el-switch");return a(),m("div",Ee,[n("div",Ve,[n("div",Se,[n("span",Ue,i(e.$t("luma.name.custom")),1),o(r,{content:e.$t("luma.description.custom")},null,8,["content"])]),n("div",Le,[o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=u=>e.value=u),class:"value"},null,8,["modelValue"])])])])}const Te=w(ye,[["render",Ie]]),Ce=b({name:"LoopSelector",components:{ElSwitch:j,InfoIcon:S},computed:{value:{get(){return this.$store.state.luma?.config?.loop},set(e){console.debug("set loop",e),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,loop:e})}}},mounted(){this.value===void 0&&(this.value=Z)}}),je={class:"relative"},Re={class:"flex justify-between"},Ae={class:"flex justify-start items-center"},Ge={class:"text-sm font-bold"},Pe={class:"flex justify-end items-center"};function Me(e,t,p,h,k,y){const r=s("info-icon"),d=s("el-switch");return a(),m("div",je,[n("div",Re,[n("div",Ae,[n("span",Ge,i(e.$t("luma.name.loop")),1),o(r,{content:e.$t("luma.description.loop")},null,8,["content"])]),n("div",Pe,[o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=u=>e.value=u),class:"value"},null,8,["modelValue"])])])])}const De=w(Ce,[["render",Me]]),ze=b({name:"EndImage",components:{ElUpload:R,ElButton:L,ImagePreview:F,InfoIcon:S,FontAwesomeIcon:U},mixins:[B],data(){return{fileList:[],uploadUrl:A()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state?.luma?.config?.start_image_url},set(){}}},mounted(){this.value||(this.value=void 0),this.onSetEndImageUrl()},methods:{onExceed(){E.warning(this.$t("luma.message.uploadReferencesExceed"))},onError(){E.error(this.$t("luma.message.uploadReferencesError"))},onSetEndImageUrl(){const e=this.urls?.[0];this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,end_image_url:e})},async onSuccess(){this.onSetEndImageUrl()}}}),Be={class:"relative"},Fe={class:"flex justify-between"},Oe={class:"flex justify-start items-center"},Ne={class:"text-sm font-bold"};function qe(e,t,p,h,k,y){const r=s("info-icon"),d=s("image-preview"),u=s("font-awesome-icon"),$=s("el-button"),f=s("el-upload");return a(),m("div",Be,[n("div",Fe,[n("div",Oe,[n("span",Ne,i(e.$t("luma.name.endImageUrl")),1),o(r,{content:e.$t("luma.description.endImageUrl")},null,8,["content"])])]),o(f,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=l=>e.fileList=l),name:"file",accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",limit:5,class:"upload-wrapper",multiple:!1,action:e.uploadUrl,"list-type":"picture","on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:c(({file:l})=>[l.url&&l.percentage!==void 0?(a(),v(d,{key:0,url:l.url,name:l.name,percentage:l.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(l),1)},null,8,["url","name","percentage","onRemove"])):_("",!0)]),default:c(()=>[o($,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:c(()=>[o(u,{icon:"fa-solid fa-upload",class:"icon mr-1"}),g(" "+i(e.$t("luma.button.uploadEndImageUrl")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])])}const He=w(ze,[["render",qe],["__scopeId","data-v-7a787b4d"]]),Je=b({name:"StartImage",components:{ElUpload:R,ElButton:L,ImagePreview:F,InfoIcon:S,FontAwesomeIcon:U},mixins:[B],data(){return{fileList:[],uploadUrl:A()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state?.luma?.config?.start_image_url},set(){}}},mounted(){this.value||(this.value=void 0),this.onSetStartImageUrl()},methods:{onExceed(){E.warning(this.$t("luma.message.uploadReferencesExceed"))},onError(){E.error(this.$t("luma.message.uploadReferencesError"))},onSetStartImageUrl(){const e=this.urls?.[0];this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,start_image_url:e})},async onSuccess(){this.onSetStartImageUrl()}}}),Ke={class:"relative"},Qe={class:"flex justify-between"},Xe={class:"flex justify-start items-center"},Ye={class:"text-sm font-bold"};function We(e,t,p,h,k,y){const r=s("info-icon"),d=s("image-preview"),u=s("font-awesome-icon"),$=s("el-button"),f=s("el-upload");return a(),m("div",Ke,[n("div",Qe,[n("div",Xe,[n("span",Ye,i(e.$t("luma.name.startImageUrl")),1),o(r,{content:e.$t("luma.description.startImageUrl")},null,8,["content"])])]),o(f,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=l=>e.fileList=l),name:"file",accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",limit:5,class:"upload-wrapper",multiple:!1,action:e.uploadUrl,"list-type":"picture","on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:c(({file:l})=>[l.percentage!=null?(a(),v(d,{key:0,url:l.url||l.response.file_url,name:l.name,percentage:l.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(l),1)},null,8,["url","name","percentage","onRemove"])):_("",!0)]),default:c(()=>[o($,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:c(()=>[o(u,{icon:"fa-solid fa-upload",class:"icon mr-1"}),g(" "+i(e.$t("luma.button.uploadStartImageUrl")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])])}const Ze=w(Je,[["render",We],["__scopeId","data-v-8c5cfe84"]]),xe=b({name:"UploadVideo",components:{ElUpload:R,ElButton:L,InfoIcon:S,FilePreview:oe,FontAwesomeIcon:U},data(){return{fileList:[],uploadUrl:A()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state.luma?.config?.video_url},set(){const e=this.urls?.[0];this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,video_url:e})}}},mounted(){this.value||(this.value=void 0)},methods:{onExceed(){E.warning(this.$t("luma.message.uploadVideoExceed"))},onError(){E.error(this.$t("luma.message.uploadVideoError"))},beforeUpload(e){const t=e.type==="video/mp4",p=e.size/1024/1024<10;return t?p?!0:(E.error(this.$t("luma.message.uploadVideoSizeExceed")),!1):(E.error(this.$t("luma.message.uploadVideoTypeFailed")),!1)},onSetVideoUrl(){const e=this.urls?.[0];this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,video_url:e,action:"extend"})},async onSuccess(){this.onSetVideoUrl()}}}),et={class:"relative"},tt={class:"flex justify-between"},ot={class:"flex justify-start items-center"},st={class:"text-sm font-bold"};function nt(e,t,p,h,k,y){const r=s("info-icon"),d=s("file-preview"),u=s("font-awesome-icon"),$=s("el-button"),f=s("el-upload");return a(),m("div",et,[n("div",tt,[n("div",ot,[n("span",st,i(e.$t("luma.name.videoUrl")),1),o(r,{content:e.$t("luma.description.videoUrl")},null,8,["content"])])]),o(f,{"file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=l=>e.fileList=l),accept:".mp4",name:"file",class:"value","show-file-list":!0,limit:1,multiple:!1,action:e.uploadUrl,"before-upload":e.beforeUpload,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:c(({file:l})=>[l.percentage!=null?(a(),v(d,{key:0,url:l.url||l.response?.file_url,name:l.name,percentage:l.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(l),1)},null,8,["url","name","percentage","onRemove"])):_("",!0)]),default:c(()=>[o($,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:c(()=>[o(u,{icon:"fa-solid fa-upload",class:"icon mr-1"}),g(" "+i(e.$t("luma.button.uploadVideoUrl")),1)]),_:1})]),_:1},8,["file-list","action","before-upload","on-exceed","on-error","on-success","headers"])])}const at=w(xe,[["render",nt],["__scopeId","data-v-74e51526"]]),lt="",it=b({name:"PromptInput",components:{ElInput:H,InfoIcon:S},computed:{prompt:{get(){return this.$store.state.luma?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=lt)}}),rt={class:"field"},ct={class:"box"},ut={class:"title font-bold"};function dt(e,t,p,h,k,y){const r=s("info-icon"),d=s("el-input");return a(),m("div",rt,[n("div",ct,[n("h2",ut,i(e.$t("luma.name.prompt")),1),o(r,{content:e.$t("luma.description.prompt"),class:"info"},null,8,["content"])]),o(d,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=u=>e.prompt=u),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("luma.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const mt=w(it,[["render",dt],["__scopeId","data-v-281baab8"]]),pt=b({name:"ExtendFromInput",components:{VideoPlayer:O},props:{modelValue:{type:Object,required:!1,default:void 0}},data(){return{options:{quality:{default:"1080p"}}}},computed:{config(){return this.$store.state.luma?.config}}}),ft={class:"relative"},_t={class:"flex mb-2"},ht={class:"text-sm font-bold"};function $t(e,t,p,h,k,y){const r=s("video-player");return a(),m("div",ft,[n("div",_t,[n("span",ht,i(e.$t("luma.name.extend")),1)]),n("div",null,[e.config?.video_url?(a(),v(r,{key:0,src:e.config?.video_url},null,8,["src"])):_("",!0)])])}const gt=w(pt,[["render",$t]]),vt=b({name:"ConfigPanel",components:{LoopSelector:De,StartImageInput:Ze,EndImageInput:He,EnhancementSelector:ke,ElButton:L,FontAwesomeIcon:U,PromptInput:mt,ExtendFromInput:gt,CustomSelector:Te,UploadVideo:at,Consumption:se},emits:["generate"],computed:{config(){return this.$store.state.luma?.config},consumption(){return ne(this.config,this.service?.cost)},service(){return this.$store.state.luma?.service}},methods:{onGenerate(){this.$emit("generate")}}}),bt={class:"flex flex-col h-full"},wt={class:"flex-1 overflow-y-auto p-5"},kt={class:"flex flex-col items-center justify-center px-5 pb-5"};function yt(e,t,p,h,k,y){const r=s("extend-from-input"),d=s("prompt-input"),u=s("custom-selector"),$=s("upload-video"),f=s("start-image-input"),l=s("end-image-input"),V=s("enhancement-selector"),I=s("loop-selector"),N=s("consumption"),G=s("font-awesome-icon"),P=s("el-button");return a(),m("div",bt,[n("div",wt,[e.config?.video_id||e.config?.video_url?(a(),v(r,{key:0,class:"mb-4"})):_("",!0),o(d,{class:"mb-4"}),e.config?.video_id?_("",!0):(a(),v(u,{key:1,class:"mb-4"})),e.config?.custom?(a(),v($,{key:2,class:"mb-4"})):_("",!0),!(e.config?.video_id||e.config?.video_url)&&!e.config?.custom?(a(),v(f,{key:3,class:"mb-4"})):_("",!0),o(l,{class:"mb-4"}),o(V,{class:"mb-4"}),o(I,{class:"mb-4"})]),n("div",kt,[o(N,{value:e.consumption,service:e.service},null,8,["value","service"]),e.config?.video_url!==void 0||e.config?.custom?(a(),v(P,{key:0,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:c(()=>[o(G,{icon:"fa-solid fa-magic",class:"mr-2"}),g(" "+i(e.$t("luma.button.extend")),1)]),_:1},8,["onClick"])):(a(),v(P,{key:1,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:c(()=>[o(G,{icon:"fa-solid fa-magic",class:"mr-2"}),g(" "+i(e.$t("luma.button.generate")),1)]),_:1},8,["onClick"]))])])}const Et=w(vt,[["render",yt]]),Vt=b({name:"TaskPreview",components:{ElImage:Q,CopyToClipboard:ae,FontAwesomeIcon:U,ElAlert:K,VideoPlayer:O,ElTooltip:J,ElButton:L},props:{modelValue:{type:Object,required:!0}},emits:["extend"],data(){return{}},computed:{application(){return this.$store.state.luma?.application},config(){return this.$store.state.luma?.config}},methods:{onExtend(e,t){console.debug("set config",t),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,video_id:t.video_id,prompt:t.prompt,action:"extend",thumbnail_url:t.thumbnail_url,video_url:t.video_url}),this.$emit("extend")},onDownload(e){window.open(e,"_blank")}}}),St={class:"preview"},Ut={class:"left"},Lt={class:"main"},It={class:"bot"},Tt={class:"datetime"},Ct={class:"info"},jt={key:0,class:"prompt mt-2"},Rt={key:0},At={key:1},Gt={key:0,class:T({content:!0,failed:!0})},Pt={key:0,class:"mb-4"},Mt={key:1,class:T({operations:!0,"mt-2":!0,"mb-4":!0})},Dt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},zt={key:1,class:T({content:!0})},Bt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ft={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ot={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Nt={key:2,class:T({content:!0})},qt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function Ht(e,t,p,h,k,y){const r=s("el-image"),d=s("video-player"),u=s("el-button"),$=s("el-tooltip"),f=s("font-awesome-icon"),l=s("copy-to-clipboard"),V=s("el-alert");return a(),m("div",St,[n("div",Ut,[o(r,{src:"https://cdn.acedata.cloud/ahjfwi.png",class:"avatar"})]),n("div",Lt,[n("div",It,[g(i(e.$t("luma.name.lumaBot"))+" ",1),n("span",Tt,i(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),n("div",Ct,[e.modelValue?.request?.prompt?(a(),m("p",jt,[g(i(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?_("",!0):(a(),m("span",Rt," - ("+i(e.$t("luma.status.pending"))+") ",1)),e.modelValue?.response?.state==="processing"||e.modelValue?.response?.state==="pending"?(a(),m("span",At," - ("+i(e.$t("luma.status.processing"))+") ",1)):_("",!0)])):_("",!0)]),e.modelValue?.response?.success===!0?(a(),m("div",Gt,[e.modelValue.response.video_url?(a(),m("div",Pt,[o(d,{src:e.modelValue.response.video_url},null,8,["src"])])):_("",!0),e.modelValue?.response&&!e.config?.custom?(a(),m("div",Mt,[o($,{class:"box-item",effect:"dark",content:e.$t("luma.message.extendVideo"),placement:"top-start"},{default:c(()=>[o(u,{type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=M(I=>e.onExtend(I,e.modelValue?.response),["stop"]))},{default:c(()=>[g(i(e.$t("luma.button.extend")),1)]),_:1})]),_:1},8,["content"]),o($,{class:"box-item",effect:"dark",content:e.$t("luma.message.downloadVideo"),placement:"top-start"},{default:c(()=>[o(u,{type:"info",size:"small",class:"btn-action",onClick:t[1]||(t[1]=M(I=>e.onDownload(e.modelValue?.response?.video_url),["stop"]))},{default:c(()=>[g(i(e.$t("luma.button.download")),1)]),_:1})]),_:1},8,["content"])])):_("",!0),o(V,{closable:!1,class:"mt-2 success"},{default:c(()=>[n("p",Dt,[o(f,{icon:"fa-solid fa-magic",class:"mr-1"}),g(" "+i(e.$t("luma.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),o(l,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):_("",!0),e.modelValue?.response?.state==="failed"||e.modelValue?.response?.success===!1?(a(),m("div",zt,[o(V,{closable:!1,class:"failure"},{template:c(()=>[o(f,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),g(" "+i(e.$t("luma.name.failure")),1)]),default:c(()=>[n("p",Bt,[o(f,{icon:"fa-solid fa-magic",class:"mr-1"}),g(" "+i(e.$t("luma.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),o(l,{content:e.modelValue?.id},null,8,["content"])]),n("p",Ft,[o(f,{icon:"fa-solid fa-circle-info",class:"mr-1"}),g(" "+i(e.$t("luma.name.failureReason"))+": "+i(e.modelValue?.response?.error?.message)+" ",1),o(l,{content:e.modelValue?.response?.error?.message},null,8,["content"])]),n("p",Ot,[o(f,{icon:"fa-solid fa-hashtag",class:"mr-1"}),g(" "+i(e.$t("luma.name.traceId"))+": "+i(e.modelValue?.trace_id)+" ",1),o(l,{content:e.modelValue?.response?.trace_id},null,8,["content"])])]),_:1})])):_("",!0),!e.modelValue?.response||e.modelValue?.response?.state==="processing"||e.modelValue?.response?.state==="pending"?(a(),m("div",Nt,[o(V,{closable:!1,class:"info"},{template:c(()=>[o(f,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),g(" "+i(e.$t("luma.name.failure")),1)]),default:c(()=>[n("p",qt,[o(f,{icon:"fa-solid fa-magic",class:"mr-1"}),g(" "+i(e.$t("luma.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),o(l,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):_("",!0)])])}const Jt=w(Vt,[["render",Ht],["__scopeId","data-v-79832722"]]),Kt=b({name:"RecentPanel",components:{BotPlaceholder:le,TaskPreview:Jt,NoTasks:ie,ScrollList:te},props:{loading:{type:Boolean,default:!1}},emits:["reach-top","extend"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.luma?.tasks,items:this.$store.state.luma?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Qt={key:0},Xt={key:2,class:"w-full h-full flex items-center justify-center"};function Yt(e,t,p,h,k,y){const r=s("bot-placeholder"),d=s("task-preview"),u=s("scroll-list"),$=s("no-tasks");return a(),m(D,null,[e.tasks?.items===void 0?(a(),m("div",Qt,[o(r)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(a(),v(u,{key:1,ref:"scrollList",class:"tasks w-full h-full overflow-y-auto",loading:e.loading,onReachTop:t[1]||(t[1]=f=>e.$emit("reach-top"))},{default:c(()=>[(a(!0),m(D,null,X(e.tasks?.items,f=>(a(),v(d,{key:f.id,"model-value":f,onExtend:t[0]||(t[0]=l=>e.$emit("extend"))},null,8,["model-value"]))),128))]),_:1},8,["loading"])):_("",!0),e.tasks?.items?.length===0?(a(),m("div",Xt,[o($)])):_("",!0)],64)}const Wt=w(Kt,[["render",Yt]]),Zt="https://webhook.acedata.cloud/luma",xt=b({name:"LumaIndex",components:{ConfigPanel:Et,Layout:fe,RecentPanel:Wt},inject:["initialized"],emits:["extend"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.luma?.status?.getApplications===z.Request},tasksLoading(){return this.$store.state.luma?.status?.getTasks===z.Request||this.fetchingTasks},credential(){return this.$store.state.luma.credential},config(){return this.$store.state.luma.config},application(){return this.$store.state.luma.application},tasks(){return this.$store.state.luma.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug("new tasks detected")},deep:!0},initialized:{async handler(e){e&&(console.debug("layout initialized"),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await re({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("luma/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("luma/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){console.debug("scrolling down"),await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=5,createdAtMin:p,createdAtMax:h}=e||{};console.debug("limit",t,"createdAtMin",p,"createdAtMax",h),this.fetchingTasks=!0;try{await this.$store.dispatch("luma/getTasks",{limit:t,createdAtMin:p,createdAtMax:h})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:Zt},t=this.credential?.token;if(!t){console.error("no token specified");return}E.info(this.$t("luma.message.startingTask")),x.generate(e,{token:t}).then(()=>{E.success(this.$t("luma.message.startTaskSuccess"))}).catch(p=>{p?.response?.data?.error?.code===ee?E.error(this.$t("luma.message.usedUp")):E.error(this.$t("luma.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function eo(e,t,p,h,k,y){const r=s("config-panel"),d=s("recent-panel"),u=s("layout");return a(),v(u,null,{config:c(()=>[o(r,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:c(()=>[o(d,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop,onExtend:t[0]||(t[0]=$=>e.$emit("extend"))},null,8,["loading","onReachTop"])]),_:1})}const ko=w(xt,[["render",eo]]);export{ko as default};
1
+ import{F as U}from"./index.es-DMehEjXB.js";import{m as L,X as N,k as j,u as R,w as E,t as H,q as K,H as X,j as J}from"./vendor-element-plus-CmP9-3lX.js";import{d as b,C as m,G as n,T as o,E as C,K as c,ai as s,D as a,R as i,Q as g,J as v,O as _,M as T,X as M,S as D,ag as Q}from"./vendor-vue-BhXato7y.js";import{_ as w,bD as W,bE as Y,bF as Z,av as A,bG as x,aO as ee,aK as z}from"./index-CtkD2JaX.js";import{I as S,S as te}from"./ScrollList-OteSDitY.js";import{p as B}from"./pasteUploadMixin-BurWbGNQ.js";import{I as F}from"./ImagePreview-B5F24-Vs.js";import{F as oe}from"./FilePreview-B3Gtn-Tg.js";import{V as O}from"./VideoPlayer-DcumvLkR.js";import{C as se}from"./Consumption-DEB600BC.js";import{a as ne}from"./price-lQeFOa8Q.js";import{C as ae}from"./CopyToClipboard-cTbsayFn.js";import{B as le}from"./BotPlaceholder-BV2w6Q4w.js";import{N as ie}from"./NoTasks-ZsLHgPuo.js";import{l as re}from"./pagination-DLJ2pbsx.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-C5RrfhAy.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";import"./vue-plyr-QZFBikSk.js";const ce=b({name:"LayoutLuma",components:{ElDrawer:N,ElButton:L,FontAwesomeIcon:U},data(){return{drawer:!1}}}),ue={class:"main flex flex-row flex-1"},de={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},me={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function pe(e,t,p,h,k,y){const r=s("font-awesome-icon"),d=s("el-button"),u=s("el-drawer");return a(),m("div",ue,[n("div",de,[C(e.$slots,"config",{},void 0,!0)]),n("div",me,[C(e.$slots,"result",{},void 0,!0)]),o(d,{circle:"",class:"menu",onClick:t[0]||(t[0]=$=>e.drawer=!0)},{default:c(()=>[o(r,{icon:"fa-solid fa-magic"})]),_:1}),o(u,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=$=>e.drawer=$),direction:"ltr","with-header":!1,size:"350px",class:"drawer"},{default:c(()=>[C(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const fe=w(ce,[["render",pe],["__scopeId","data-v-7be1f25b"]]),_e=b({name:"EnhancementSelector",components:{ElSwitch:j,InfoIcon:S},computed:{value:{get(){return this.$store.state.luma?.config?.enhancement},set(e){console.debug("set enhancement",e),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,enhancement:e})}}},mounted(){this.value===void 0&&(this.value=W)}}),he={class:"relative"},$e={class:"flex justify-between"},ge={class:"flex justify-start items-center"},ve={class:"text-sm font-bold"},be={class:"flex justify-end items-center"};function we(e,t,p,h,k,y){const r=s("info-icon"),d=s("el-switch");return a(),m("div",he,[n("div",$e,[n("div",ge,[n("span",ve,i(e.$t("luma.name.enhancement")),1),o(r,{content:e.$t("luma.description.enhancement")},null,8,["content"])]),n("div",be,[o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=u=>e.value=u),class:"value"},null,8,["modelValue"])])])])}const ke=w(_e,[["render",we]]),ye=b({name:"CustomSelector",components:{ElSwitch:j,InfoIcon:S},computed:{value:{get(){return this.$store.state.luma?.config?.custom},set(e){console.debug("set custom",e),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,custom:e})}}},mounted(){this.value===void 0&&(this.value=Y)}}),Ee={class:"relative"},Ve={class:"flex justify-between"},Se={class:"flex justify-start items-center"},Ue={class:"text-sm font-bold"},Le={class:"flex justify-end items-center"};function Ie(e,t,p,h,k,y){const r=s("info-icon"),d=s("el-switch");return a(),m("div",Ee,[n("div",Ve,[n("div",Se,[n("span",Ue,i(e.$t("luma.name.custom")),1),o(r,{content:e.$t("luma.description.custom")},null,8,["content"])]),n("div",Le,[o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=u=>e.value=u),class:"value"},null,8,["modelValue"])])])])}const Te=w(ye,[["render",Ie]]),Ce=b({name:"LoopSelector",components:{ElSwitch:j,InfoIcon:S},computed:{value:{get(){return this.$store.state.luma?.config?.loop},set(e){console.debug("set loop",e),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,loop:e})}}},mounted(){this.value===void 0&&(this.value=Z)}}),je={class:"relative"},Re={class:"flex justify-between"},Ae={class:"flex justify-start items-center"},Ge={class:"text-sm font-bold"},Pe={class:"flex justify-end items-center"};function Me(e,t,p,h,k,y){const r=s("info-icon"),d=s("el-switch");return a(),m("div",je,[n("div",Re,[n("div",Ae,[n("span",Ge,i(e.$t("luma.name.loop")),1),o(r,{content:e.$t("luma.description.loop")},null,8,["content"])]),n("div",Pe,[o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=u=>e.value=u),class:"value"},null,8,["modelValue"])])])])}const De=w(Ce,[["render",Me]]),ze=b({name:"EndImage",components:{ElUpload:R,ElButton:L,ImagePreview:F,InfoIcon:S,FontAwesomeIcon:U},mixins:[B],data(){return{fileList:[],uploadUrl:A()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state?.luma?.config?.start_image_url},set(){}}},mounted(){this.value||(this.value=void 0),this.onSetEndImageUrl()},methods:{onExceed(){E.warning(this.$t("luma.message.uploadReferencesExceed"))},onError(){E.error(this.$t("luma.message.uploadReferencesError"))},onSetEndImageUrl(){const e=this.urls?.[0];this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,end_image_url:e})},async onSuccess(){this.onSetEndImageUrl()}}}),Be={class:"relative"},Fe={class:"flex justify-between"},Oe={class:"flex justify-start items-center"},qe={class:"text-sm font-bold"};function Ne(e,t,p,h,k,y){const r=s("info-icon"),d=s("image-preview"),u=s("font-awesome-icon"),$=s("el-button"),f=s("el-upload");return a(),m("div",Be,[n("div",Fe,[n("div",Oe,[n("span",qe,i(e.$t("luma.name.endImageUrl")),1),o(r,{content:e.$t("luma.description.endImageUrl")},null,8,["content"])])]),o(f,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=l=>e.fileList=l),name:"file",accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",limit:5,class:"upload-wrapper",multiple:!1,action:e.uploadUrl,"list-type":"picture","on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:c(({file:l})=>[l.url&&l.percentage!==void 0?(a(),v(d,{key:0,url:l.url,name:l.name,percentage:l.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(l),1)},null,8,["url","name","percentage","onRemove"])):_("",!0)]),default:c(()=>[o($,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:c(()=>[o(u,{icon:"fa-solid fa-upload",class:"icon mr-1"}),g(" "+i(e.$t("luma.button.uploadEndImageUrl")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])])}const He=w(ze,[["render",Ne],["__scopeId","data-v-7a787b4d"]]),Ke=b({name:"StartImage",components:{ElUpload:R,ElButton:L,ImagePreview:F,InfoIcon:S,FontAwesomeIcon:U},mixins:[B],data(){return{fileList:[],uploadUrl:A()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state?.luma?.config?.start_image_url},set(){}}},mounted(){this.value||(this.value=void 0),this.onSetStartImageUrl()},methods:{onExceed(){E.warning(this.$t("luma.message.uploadReferencesExceed"))},onError(){E.error(this.$t("luma.message.uploadReferencesError"))},onSetStartImageUrl(){const e=this.urls?.[0];this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,start_image_url:e})},async onSuccess(){this.onSetStartImageUrl()}}}),Xe={class:"relative"},Je={class:"flex justify-between"},Qe={class:"flex justify-start items-center"},We={class:"text-sm font-bold"};function Ye(e,t,p,h,k,y){const r=s("info-icon"),d=s("image-preview"),u=s("font-awesome-icon"),$=s("el-button"),f=s("el-upload");return a(),m("div",Xe,[n("div",Je,[n("div",Qe,[n("span",We,i(e.$t("luma.name.startImageUrl")),1),o(r,{content:e.$t("luma.description.startImageUrl")},null,8,["content"])])]),o(f,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=l=>e.fileList=l),name:"file",accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",limit:5,class:"upload-wrapper",multiple:!1,action:e.uploadUrl,"list-type":"picture","on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:c(({file:l})=>[l.percentage!=null?(a(),v(d,{key:0,url:l.url||l.response.file_url,name:l.name,percentage:l.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(l),1)},null,8,["url","name","percentage","onRemove"])):_("",!0)]),default:c(()=>[o($,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:c(()=>[o(u,{icon:"fa-solid fa-upload",class:"icon mr-1"}),g(" "+i(e.$t("luma.button.uploadStartImageUrl")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])])}const Ze=w(Ke,[["render",Ye],["__scopeId","data-v-8c5cfe84"]]),xe=b({name:"UploadVideo",components:{ElUpload:R,ElButton:L,InfoIcon:S,FilePreview:oe,FontAwesomeIcon:U},data(){return{fileList:[],uploadUrl:A()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state.luma?.config?.video_url},set(){const e=this.urls?.[0];this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,video_url:e})}}},mounted(){this.value||(this.value=void 0)},methods:{onExceed(){E.warning(this.$t("luma.message.uploadVideoExceed"))},onError(){E.error(this.$t("luma.message.uploadVideoError"))},beforeUpload(e){const t=e.type==="video/mp4",p=e.size/1024/1024<10;return t?p?!0:(E.error(this.$t("luma.message.uploadVideoSizeExceed")),!1):(E.error(this.$t("luma.message.uploadVideoTypeFailed")),!1)},onSetVideoUrl(){const e=this.urls?.[0];this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,video_url:e,action:"extend"})},async onSuccess(){this.onSetVideoUrl()}}}),et={class:"relative"},tt={class:"flex justify-between"},ot={class:"flex justify-start items-center"},st={class:"text-sm font-bold"};function nt(e,t,p,h,k,y){const r=s("info-icon"),d=s("file-preview"),u=s("font-awesome-icon"),$=s("el-button"),f=s("el-upload");return a(),m("div",et,[n("div",tt,[n("div",ot,[n("span",st,i(e.$t("luma.name.videoUrl")),1),o(r,{content:e.$t("luma.description.videoUrl")},null,8,["content"])])]),o(f,{"file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=l=>e.fileList=l),accept:".mp4",name:"file",class:"value","show-file-list":!0,limit:1,multiple:!1,action:e.uploadUrl,"before-upload":e.beforeUpload,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{file:c(({file:l})=>[l.percentage!=null?(a(),v(d,{key:0,url:l.url||l.response?.file_url,name:l.name,percentage:l.percentage,onRemove:V=>e.fileList.splice(e.fileList.indexOf(l),1)},null,8,["url","name","percentage","onRemove"])):_("",!0)]),default:c(()=>[o($,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:c(()=>[o(u,{icon:"fa-solid fa-upload",class:"icon mr-1"}),g(" "+i(e.$t("luma.button.uploadVideoUrl")),1)]),_:1})]),_:1},8,["file-list","action","before-upload","on-exceed","on-error","on-success","headers"])])}const at=w(xe,[["render",nt],["__scopeId","data-v-74e51526"]]),lt="",it=b({name:"PromptInput",components:{ElInput:H,InfoIcon:S},computed:{prompt:{get(){return this.$store.state.luma?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=lt)}}),rt={class:"field"},ct={class:"box"},ut={class:"title font-bold"};function dt(e,t,p,h,k,y){const r=s("info-icon"),d=s("el-input");return a(),m("div",rt,[n("div",ct,[n("h2",ut,i(e.$t("luma.name.prompt")),1),o(r,{content:e.$t("luma.description.prompt"),class:"info"},null,8,["content"])]),o(d,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=u=>e.prompt=u),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("luma.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const mt=w(it,[["render",dt],["__scopeId","data-v-281baab8"]]),pt=b({name:"ExtendFromInput",components:{VideoPlayer:O},props:{modelValue:{type:Object,required:!1,default:void 0}},data(){return{options:{quality:{default:"1080p"}}}},computed:{config(){return this.$store.state.luma?.config}}}),ft={class:"relative"},_t={class:"flex mb-2"},ht={class:"text-sm font-bold"};function $t(e,t,p,h,k,y){const r=s("video-player");return a(),m("div",ft,[n("div",_t,[n("span",ht,i(e.$t("luma.name.extend")),1)]),n("div",null,[e.config?.video_url?(a(),v(r,{key:0,src:e.config?.video_url},null,8,["src"])):_("",!0)])])}const gt=w(pt,[["render",$t]]),vt=b({name:"ConfigPanel",components:{LoopSelector:De,StartImageInput:Ze,EndImageInput:He,EnhancementSelector:ke,ElButton:L,FontAwesomeIcon:U,PromptInput:mt,ExtendFromInput:gt,CustomSelector:Te,UploadVideo:at,Consumption:se},emits:["generate"],computed:{config(){return this.$store.state.luma?.config},consumption(){return ne(this.config,this.service?.cost)},service(){return this.$store.state.luma?.service}},methods:{onGenerate(){this.$emit("generate")}}}),bt={class:"flex flex-col h-full"},wt={class:"flex-1 overflow-y-auto p-5"},kt={class:"flex flex-col items-center justify-center px-5 pb-5"};function yt(e,t,p,h,k,y){const r=s("extend-from-input"),d=s("prompt-input"),u=s("custom-selector"),$=s("upload-video"),f=s("start-image-input"),l=s("end-image-input"),V=s("enhancement-selector"),I=s("loop-selector"),q=s("consumption"),G=s("font-awesome-icon"),P=s("el-button");return a(),m("div",bt,[n("div",wt,[e.config?.video_id||e.config?.video_url?(a(),v(r,{key:0,class:"mb-4"})):_("",!0),o(d,{class:"mb-4"}),e.config?.video_id?_("",!0):(a(),v(u,{key:1,class:"mb-4"})),e.config?.custom?(a(),v($,{key:2,class:"mb-4"})):_("",!0),!(e.config?.video_id||e.config?.video_url)&&!e.config?.custom?(a(),v(f,{key:3,class:"mb-4"})):_("",!0),o(l,{class:"mb-4"}),o(V,{class:"mb-4"}),o(I,{class:"mb-4"})]),n("div",kt,[o(q,{value:e.consumption,service:e.service},null,8,["value","service"]),e.config?.video_url!==void 0||e.config?.custom?(a(),v(P,{key:0,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:c(()=>[o(G,{icon:"fa-solid fa-magic",class:"mr-2"}),g(" "+i(e.$t("luma.button.extend")),1)]),_:1},8,["onClick"])):(a(),v(P,{key:1,type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:c(()=>[o(G,{icon:"fa-solid fa-magic",class:"mr-2"}),g(" "+i(e.$t("luma.button.generate")),1)]),_:1},8,["onClick"]))])])}const Et=w(vt,[["render",yt]]),Vt=b({name:"TaskPreview",components:{ElImage:J,CopyToClipboard:ae,FontAwesomeIcon:U,ElAlert:X,VideoPlayer:O,ElTooltip:K,ElButton:L},props:{modelValue:{type:Object,required:!0}},emits:["extend"],data(){return{}},computed:{application(){return this.$store.state.luma?.application},config(){return this.$store.state.luma?.config}},methods:{onExtend(e,t){console.debug("set config",t),this.$store.commit("luma/setConfig",{...this.$store.state.luma?.config,video_id:t.video_id,prompt:t.prompt,action:"extend",thumbnail_url:t.thumbnail_url,video_url:t.video_url}),this.$emit("extend")},onDownload(e){window.open(e,"_blank")}}}),St={class:"preview"},Ut={class:"left"},Lt={class:"main"},It={class:"bot"},Tt={class:"datetime"},Ct={class:"info"},jt={key:0,class:"prompt mt-2"},Rt={key:0},At={key:1},Gt={key:0,class:T({content:!0,failed:!0})},Pt={key:0,class:"mb-4"},Mt={key:1,class:T({operations:!0,"mt-2":!0,"mb-4":!0})},Dt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},zt={key:1,class:T({content:!0})},Bt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ft={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ot={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},qt={key:2,class:T({content:!0})},Nt={class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function Ht(e,t,p,h,k,y){const r=s("el-image"),d=s("video-player"),u=s("el-button"),$=s("el-tooltip"),f=s("font-awesome-icon"),l=s("copy-to-clipboard"),V=s("el-alert");return a(),m("div",St,[n("div",Ut,[o(r,{src:"https://cdn.acedata.cloud/ahjfwi.png",class:"avatar"})]),n("div",Lt,[n("div",It,[g(i(e.$t("luma.name.lumaBot"))+" ",1),n("span",Tt,i(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),n("div",Ct,[e.modelValue?.request?.prompt?(a(),m("p",jt,[g(i(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?_("",!0):(a(),m("span",Rt," - ("+i(e.$t("luma.status.pending"))+") ",1)),e.modelValue?.response?.state==="processing"||e.modelValue?.response?.state==="pending"?(a(),m("span",At," - ("+i(e.$t("luma.status.processing"))+") ",1)):_("",!0)])):_("",!0)]),e.modelValue?.response?.success===!0?(a(),m("div",Gt,[e.modelValue.response.video_url?(a(),m("div",Pt,[o(d,{src:e.modelValue.response.video_url},null,8,["src"])])):_("",!0),e.modelValue?.response&&!e.config?.custom?(a(),m("div",Mt,[o($,{class:"box-item",effect:"dark",content:e.$t("luma.message.extendVideo"),placement:"top-start"},{default:c(()=>[o(u,{type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=M(I=>e.onExtend(I,e.modelValue?.response),["stop"]))},{default:c(()=>[g(i(e.$t("luma.button.extend")),1)]),_:1})]),_:1},8,["content"]),o($,{class:"box-item",effect:"dark",content:e.$t("luma.message.downloadVideo"),placement:"top-start"},{default:c(()=>[o(u,{type:"info",size:"small",class:"btn-action",onClick:t[1]||(t[1]=M(I=>e.onDownload(e.modelValue?.response?.video_url),["stop"]))},{default:c(()=>[g(i(e.$t("luma.button.download")),1)]),_:1})]),_:1},8,["content"])])):_("",!0),o(V,{closable:!1,class:"mt-2 success"},{default:c(()=>[n("p",Dt,[o(f,{icon:"fa-solid fa-magic",class:"mr-1"}),g(" "+i(e.$t("luma.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),o(l,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):_("",!0),e.modelValue?.response?.state==="failed"||e.modelValue?.response?.success===!1?(a(),m("div",zt,[o(V,{closable:!1,class:"failure"},{template:c(()=>[o(f,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),g(" "+i(e.$t("luma.name.failure")),1)]),default:c(()=>[n("p",Bt,[o(f,{icon:"fa-solid fa-magic",class:"mr-1"}),g(" "+i(e.$t("luma.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),o(l,{content:e.modelValue?.id},null,8,["content"])]),n("p",Ft,[o(f,{icon:"fa-solid fa-circle-info",class:"mr-1"}),g(" "+i(e.$t("luma.name.failureReason"))+": "+i(e.modelValue?.response?.error?.message)+" ",1),o(l,{content:e.modelValue?.response?.error?.message},null,8,["content"])]),n("p",Ot,[o(f,{icon:"fa-solid fa-hashtag",class:"mr-1"}),g(" "+i(e.$t("luma.name.traceId"))+": "+i(e.modelValue?.trace_id)+" ",1),o(l,{content:e.modelValue?.response?.trace_id},null,8,["content"])])]),_:1})])):_("",!0),!e.modelValue?.response||e.modelValue?.response?.state==="processing"||e.modelValue?.response?.state==="pending"?(a(),m("div",qt,[o(V,{closable:!1,class:"info"},{template:c(()=>[o(f,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),g(" "+i(e.$t("luma.name.failure")),1)]),default:c(()=>[n("p",Nt,[o(f,{icon:"fa-solid fa-magic",class:"mr-1"}),g(" "+i(e.$t("luma.name.taskId"))+": "+i(e.modelValue?.id)+" ",1),o(l,{content:e.modelValue?.id},null,8,["content"])])]),_:1})])):_("",!0)])])}const Kt=w(Vt,[["render",Ht],["__scopeId","data-v-79832722"]]),Xt=b({name:"RecentPanel",components:{BotPlaceholder:le,TaskPreview:Kt,NoTasks:ie,ScrollList:te},props:{loading:{type:Boolean,default:!1}},emits:["reach-top","extend"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.luma?.tasks,items:this.$store.state.luma?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Jt={key:0},Qt={key:2,class:"w-full h-full flex items-center justify-center"};function Wt(e,t,p,h,k,y){const r=s("bot-placeholder"),d=s("task-preview"),u=s("scroll-list"),$=s("no-tasks");return a(),m(D,null,[e.tasks?.items===void 0?(a(),m("div",Jt,[o(r)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(a(),v(u,{key:1,ref:"scrollList",class:"tasks w-full h-full overflow-y-auto",loading:e.loading,onReachTop:t[1]||(t[1]=f=>e.$emit("reach-top"))},{default:c(()=>[(a(!0),m(D,null,Q(e.tasks?.items,f=>(a(),v(d,{key:f.id,"model-value":f,onExtend:t[0]||(t[0]=l=>e.$emit("extend"))},null,8,["model-value"]))),128))]),_:1},8,["loading"])):_("",!0),e.tasks?.items?.length===0?(a(),m("div",Qt,[o($)])):_("",!0)],64)}const Yt=w(Xt,[["render",Wt]]),Zt="https://webhook.acedata.cloud/luma",xt=b({name:"LumaIndex",components:{ConfigPanel:Et,Layout:fe,RecentPanel:Yt},inject:["initialized"],emits:["extend"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.luma?.status?.getApplications===z.Request},tasksLoading(){return this.$store.state.luma?.status?.getTasks===z.Request||this.fetchingTasks},credential(){return this.$store.state.luma.credential},config(){return this.$store.state.luma.config},application(){return this.$store.state.luma.application},tasks(){return this.$store.state.luma.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug("new tasks detected")},deep:!0},initialized:{async handler(e){e&&(console.debug("layout initialized"),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await re({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("luma/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("luma/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){console.debug("scrolling down"),await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=5,createdAtMin:p,createdAtMax:h}=e||{};console.debug("limit",t,"createdAtMin",p,"createdAtMax",h),this.fetchingTasks=!0;try{await this.$store.dispatch("luma/getTasks",{limit:t,createdAtMin:p,createdAtMax:h})}finally{this.fetchingTasks=!1}},async onGenerate(){const e={...this.config,callback_url:Zt},t=this.credential?.token;if(!t){console.error("no token specified");return}E.info(this.$t("luma.message.startingTask")),x.generate(e,{token:t}).then(()=>{E.success(this.$t("luma.message.startTaskSuccess"))}).catch(p=>{p?.response?.data?.error?.code===ee?E.error(this.$t("luma.message.usedUp")):E.error(this.$t("luma.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function eo(e,t,p,h,k,y){const r=s("config-panel"),d=s("recent-panel"),u=s("layout");return a(),v(u,null,{config:c(()=>[o(r,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:c(()=>[o(d,{ref:"recentPanel",loading:e.loadingMore,onReachTop:e.onReachTop,onExtend:t[0]||(t[0]=$=>e.$emit("extend"))},null,8,["loading","onReachTop"])]),_:1})}const ko=w(xt,[["render",eo]]);export{ko as default};
@@ -1 +1 @@
1
- import{F as A}from"./index.es-Bqj83sQx.js";import{m as M,Y as N,t as H,u as W,w as V,O,P as j,q as K,H as Z,j as J}from"./vendor-element-plus-DN048TGi.js";import{d as k,C as i,G as c,T as s,E as D,K as _,ai as n,D as a,R as o,Q as u,S as w,ag as I,J as E,O as v,M as R,X as Q}from"./vendor-vue-BhXato7y.js";import{_ as y,au as X,cG as Y,cH as x,cI as ee,cJ as se,cK as te,cL as oe,cM as U,cN as G,cO as P,cP as B,cQ as ae,aN as ne,aJ as q}from"./index-muIEJvsu.js";import{I as C,S as le}from"./ScrollList-ZiMJkMBw.js";import{p as re}from"./pasteUploadMixin-BurWbGNQ.js";import{I as F}from"./ImagePreview-eVaabJZn.js";import{C as ie}from"./Consumption-DB4jsCIw.js";import{a as ce}from"./price-Bva0CFLK.js";import{C as de}from"./CopyToClipboard-DY-UF17o.js";import{I as me}from"./ImageWrapper-BPES620_.js";import{B as ue}from"./BotPlaceholder-CcWrwFmL.js";import{N as pe}from"./NoTasks-Dk7Wt2AG.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-CIJ0oOq5.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";const fe=k({name:"LayoutSeedream",components:{ElDrawer:N,ElButton:M,FontAwesomeIcon:A},data(){return{drawer:!1}}}),he={class:"main flex flex-row flex-1"},_e={class:"config w-[320px] h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},ge={class:"result h-full p-6 flex-1 flex flex-col bg-[var(--app-content-bg)]"};function $e(e,t,g,r,m,p){const f=n("font-awesome-icon"),h=n("el-button"),l=n("el-drawer");return a(),i("div",he,[c("div",_e,[D(e.$slots,"config",{},void 0,!0)]),c("div",ge,[D(e.$slots,"result",{},void 0,!0)]),s(h,{circle:"",class:"menu",onClick:t[0]||(t[0]=d=>e.drawer=!0)},{default:_(()=>[s(f,{icon:"fa-solid fa-magic"})]),_:1}),s(l,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=d=>e.drawer=d),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:_(()=>[D(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ve=y(fe,[["render",$e],["__scopeId","data-v-5ff0c320"]]),be="",ke=k({name:"SeedreamPromptInput",components:{ElInput:H,InfoIcon:C},computed:{prompt:{get(){return this.$store.state.seedream?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("seedream/setConfig",{...this.$store.state.seedream?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=be)}}),ye={class:"field"},we={class:"box"},Ee={class:"title font-bold"};function Se(e,t,g,r,m,p){const f=n("info-icon"),h=n("el-input");return a(),i("div",ye,[c("div",we,[c("h2",Ee,o(e.$t("seedream.name.prompt")),1),s(f,{content:e.$t("seedream.description.prompt"),class:"info"},null,8,["content"])]),s(h,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=l=>e.prompt=l),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("seedream.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const Ve=y(ke,[["render",Se],["__scopeId","data-v-5559520a"]]),Ie=k({name:"SeedreamImageInput",components:{ElUpload:W,ElButton:M,InfoIcon:C,ImagePreview:F,FontAwesomeIcon:A},mixins:[re],data(){return{fileList:[],uploadUrl:X()+"/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.seedream?.config?.image}},watch:{value:{immediate:!0,handler(e){if(this.suppressWatch)return;if(!e||e.length===0){const r=(this.fileList||[]).filter(m=>!m?.response?.file_url);this.fileList=r.length?r:[];return}const t=[];e.forEach(r=>{const m=this.fileList.find(p=>p?.response?.file_url===r||p?.url===r);m?t.push(m):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(p=>p===r||p?.url===r?.url||p?.response?.file_url===r?.response?.file_url)||t.push(r)}),this.fileList=t}}},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.onSetImages()},onExceed(){V.warning(this.$t("seedream.message.uploadImageExceed"))},onError(){V.error(this.$t("seedream.message.uploadImageError"))},onSetImages(){const e=this.urls;this.suppressWatch=!0,this.$store.commit("seedream/setConfig",{...this.$store.state.seedream?.config,image:e}),this.$nextTick(()=>{this.suppressWatch=!1})},async onSuccess(e,t){e?.file_url&&(t.url=e.file_url,t.response=e),this.onSetImages()},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.onSetImages()}}}),Le={class:"field"},Re={class:"label"},Te={class:"box"},Ae={class:"title font-bold"},Me={class:"value"},Ce={class:"file-list mt-2 flex flex-wrap gap-[10px]"};function De(e,t,g,r,m,p){const f=n("info-icon"),h=n("font-awesome-icon"),l=n("el-button"),d=n("el-upload"),b=n("image-preview");return a(),i(w,null,[c("div",Le,[c("div",Re,[c("div",Te,[c("h2",Ae,o(e.$t("seedream.name.imageUrls")),1),s(f,{content:e.$t("seedream.description.imageUrls"),class:"info"},null,8,["content"])])]),c("div",Me,[s(d,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=$=>e.fileList=$),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",limit:14,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:_(()=>[s(l,{size:"small",type:"primary",round:""},{default:_(()=>[s(h,{icon:"fa-solid fa-upload",class:"mr-1"}),u(" "+o(e.$t("seedream.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","on-change","on-remove","headers"])])]),c("div",Ce,[(a(!0),i(w,null,I(e.fileList,($,S)=>(a(),E(b,{key:$.uid||$?.response?.file_url||$.url||S,url:$.url||$?.response?.file_url,name:$.name,percentage:$.percentage,onRemove:z=>e.onRemovePreview(S,$)},null,8,["url","name","percentage","onRemove"]))),128))])],64)}const ze=y(Ie,[["render",De],["__scopeId","data-v-dc18c674"]]),Ue=k({name:"SeedreamModelSelector",components:{ElSelect:j,ElOption:O,InfoIcon:C},data(){return{options:[{value:x,label:this.$t("seedream.model.seedream45")},{value:ee,label:this.$t("seedream.model.seedream40")},{value:se,label:this.$t("seedream.model.seedream30t2i")},{value:te,label:this.$t("seedream.model.seededit30i2i")}]}},computed:{value:{get(){return this.$store.state.seedream?.config?.model},set(e){this.$store.commit("seedream/setConfig",{...this.$store.state.seedream?.config,model:e})}}},mounted(){this.value||(this.value=Y)}}),Ge={class:"field"},Pe={class:"label"},qe={class:"box"},Oe={class:"title font-bold"};function je(e,t,g,r,m,p){const f=n("info-icon"),h=n("el-option"),l=n("el-select");return a(),i("div",Ge,[c("div",Pe,[c("div",qe,[c("h2",Oe,o(e.$t("seedream.name.model")),1),s(f,{content:e.$t("seedream.description.model"),class:"info"},null,8,["content"])])]),s(l,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=d=>e.value=d),class:"value",placeholder:e.$t("seedream.placeholder.select")},{default:_(()=>[(a(!0),i(w,null,I(e.options,d=>(a(),E(h,{key:d.value,label:d.label,value:d.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Be=y(Ue,[["render",je],["__scopeId","data-v-3c3ca27d"]]),Fe=k({name:"SeedreamSizeSelector",components:{ElSelect:j,ElOption:O,InfoIcon:C},data(){return{options:[{value:U,label:U},{value:G,label:G},{value:P,label:P}]}},computed:{value:{get(){return this.$store.state.seedream?.config?.size},set(e){this.$store.commit("seedream/setConfig",{...this.$store.state.seedream?.config,size:e})}}},mounted(){this.value||(this.value=oe)}}),Ne={class:"field"},He={class:"label"},We={class:"box"},Ke={class:"title font-bold"};function Ze(e,t,g,r,m,p){const f=n("info-icon"),h=n("el-option"),l=n("el-select");return a(),i("div",Ne,[c("div",He,[c("div",We,[c("h2",Ke,o(e.$t("seedream.name.size")),1),s(f,{content:e.$t("seedream.description.size"),class:"info"},null,8,["content"])])]),s(l,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=d=>e.value=d),class:"value",placeholder:e.$t("seedream.placeholder.select"),filterable:"","allow-create":"","default-first-option":""},{default:_(()=>[(a(!0),i(w,null,I(e.options,d=>(a(),E(h,{key:d.value,label:d.label,value:d.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Je=y(Fe,[["render",Ze],["__scopeId","data-v-54a9a469"]]),Qe=k({name:"SeedreamConfigPanel",components:{ElButton:M,FontAwesomeIcon:A,PromptInput:Ve,Consumption:ie,ImageInput:ze,ModelSelector:Be,SizeSelector:Je},emits:["generate"],computed:{config(){return this.$store.state.seedream?.config},consumption(){const e={...this.config||{}},t=Array.isArray(e?.image)&&e.image.length>0;return ce({...e,action:t?"edit":"generate",model:B(e?.model),count:1},this.service?.cost)},service(){return this.$store.state.seedream?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Xe={class:"flex flex-col h-full"},Ye={class:"flex-1 overflow-y-auto p-5"},xe={class:"flex flex-col items-center justify-center px-5 pb-5"};function es(e,t,g,r,m,p){const f=n("model-selector"),h=n("size-selector"),l=n("prompt-input"),d=n("image-input"),b=n("consumption"),$=n("font-awesome-icon"),S=n("el-button");return a(),i("div",Xe,[c("div",Ye,[s(f,{class:"mb-4"}),s(h,{class:"mb-4"}),s(l,{class:"mb-4"}),s(d,{class:"mb-4"})]),c("div",xe,[s(b,{value:e.consumption,service:e.service},null,8,["value","service"]),s(S,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:_(()=>[s($,{icon:"fa-solid fa-magic",class:"mr-2"}),u(" "+o(e.$t("seedream.button.generate")),1)]),_:1},8,["onClick"])])])}const ss=y(Qe,[["render",es]]),ts=k({name:"SeedreamTaskPreview",components:{ElImage:J,CopyToClipboard:de,FontAwesomeIcon:A,ElAlert:Z,ImageWrapper:me,ElButton:M,ElTooltip:K,ImagePreview:F},props:{modelValue:{type:Object,required:!0}},computed:{isEdit(){return Array.isArray(this.modelValue?.request?.image)&&(this.modelValue?.request?.image?.length||0)>0},images(){const e=[];return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(t=>{e.push(t)}),e}},methods:{shortModel(e){return B(e)||e},onEdit(e){if(!e)return;console.debug("Edit image:",e);const t={...this.$store.state.seedream?.config||{}};t.image=[e],this.$store.commit("seedream/setConfig",t)}}}),os={class:"preview"},as={class:"left"},ns={class:"main"},ls={class:"bot"},rs={class:"datetime"},is={class:"info"},cs={key:0,class:"flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto"},ds={key:1,class:"prompt mt-2"},ms={key:0},us={key:0,class:R({content:!0})},ps={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},fs={key:1,class:R({content:!0,failed:!0})},hs={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},_s={class:R({operations:!0,"mt-2":!0,"mb-2":!0})},gs={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},$s={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},vs={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},bs={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},ks={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},ys={key:2,class:R({content:!0})},ws={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Es={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ss={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Vs={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Is={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ls={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Rs={key:3,class:R({content:!0})},Ts={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},As={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function Ms(e,t,g,r,m,p){const f=n("el-image"),h=n("image-preview"),l=n("font-awesome-icon"),d=n("copy-to-clipboard"),b=n("el-alert"),$=n("image-wrapper"),S=n("el-button"),z=n("el-tooltip");return a(),i("div",os,[c("div",as,[s(f,{src:"https://cdn.acedata.cloud/9egrbn.png",class:"avatar"})]),c("div",ns,[c("div",ls,[u(o(e.$t("seedream.name.seedreamBot"))+" ",1),c("span",rs,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),c("div",is,[Array.isArray(e.modelValue?.request?.image)&&e.modelValue?.request?.image.length>0?(a(),i("div",cs,[(a(!0),i(w,null,I(e.modelValue?.request?.image,(L,T)=>(a(),E(h,{key:T,url:L,name:`image-${T+1}`,closable:!1},null,8,["url","name"]))),128))])):v("",!0),e.modelValue?.request?.prompt?(a(),i("p",ds,[u(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?v("",!0):(a(),i("span",ms," - ("+o(e.$t("seedream.status.pending"))+") ",1))])):v("",!0)]),e.modelValue?.response?e.modelValue?.response?.success===!0?(a(),i("div",fs,[c("div",hs,[(a(!0),i(w,null,I(e.images,(L,T)=>(a(),E($,{key:T,src:L?.image_url,"raw-src":L?.image_url},null,8,["src","raw-src"]))),128))]),c("div",_s,[s(z,{class:"box-item",effect:"dark",content:e.$t("common.button.edit"),placement:"top-start"},{default:_(()=>[s(S,{type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=Q(L=>e.onEdit(e.images?.[0]?.image_url),["stop"]))},{default:_(()=>[u(o(e.$t("common.button.edit")),1)]),_:1})]),_:1},8,["content"])]),s(b,{closable:!1,class:"mt-2 success"},{default:_(()=>[e.modelValue?.request?.model?(a(),i("p",gs,[s(l,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("seedream.name.model"))+": "+o(e.shortModel(e.modelValue?.request?.model)),1)])):v("",!0),e.modelValue?.request?.size?(a(),i("p",$s,[s(l,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("seedream.name.size"))+": "+o(e.modelValue?.request?.size),1)])):v("",!0),c("p",vs,[s(l,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("seedream.name.task"))+": "+o(e.isEdit?e.$t("seedream.name.edits"):e.$t("seedream.name.generate")),1)]),c("p",bs,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("seedream.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),s(d,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.response?.trace_id?(a(),i("p",ks,[s(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("seedream.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),s(d,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):v("",!0)]),_:1})])):e.modelValue?.response?.success===!1?(a(),i("div",ys,[s(b,{closable:!1,class:"failure"},{template:_(()=>[s(l,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),u(" "+o(e.$t("seedream.name.failure")),1)]),default:_(()=>[e.modelValue?.request?.model?(a(),i("p",ws,[s(l,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("seedream.name.model"))+": "+o(e.shortModel(e.modelValue?.request?.model)),1)])):v("",!0),e.modelValue?.request?.size?(a(),i("p",Es,[s(l,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("seedream.name.size"))+": "+o(e.modelValue?.request?.size),1)])):v("",!0),c("p",Ss,[s(l,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("seedream.name.task"))+": "+o(e.isEdit?e.$t("seedream.name.edits"):e.$t("seedream.name.generate")),1)]),c("p",Vs,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("seedream.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),s(d,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),e.modelValue?.response?.error?.message?(a(),i("p",Is,[s(l,{icon:"fa-solid fa-circle-info",class:"mr-1"}),u(" "+o(e.$t("seedream.name.failureReason"))+": "+o(e.modelValue?.response?.error?.message)+" ",1),s(d,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])])):v("",!0),e.modelValue?.response?.trace_id?(a(),i("p",Ls,[s(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("seedream.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),s(d,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])):v("",!0)]),_:1})])):(a(),i("div",Rs,[s(b,{closable:!1,class:"info"},{template:_(()=>[s(l,{icon:"fa-solid fa-circle-info",class:"mr-1"}),u(" "+o(e.$t("seedream.name.status")),1)]),default:_(()=>[c("p",Ts,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("seedream.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),s(d,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),e.modelValue?.response?.trace_id?(a(),i("p",As,[s(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("seedream.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),s(d,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])):v("",!0)]),_:1})])):(a(),i("div",us,[s(b,{closable:!1,class:"info"},{template:_(()=>[s(l,{icon:"fa-regular fa-clock",class:"mr-1"}),u(" "+o(e.$t("seedream.status.pending")),1)]),default:_(()=>[c("p",ps,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("seedream.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),s(d,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])])]),_:1})]))])])}const Cs=y(ts,[["render",Ms],["__scopeId","data-v-e939362a"]]),Ds=k({name:"SeedreamRecentPanel",components:{TaskPreview:Cs,BotPlaceholder:ue,NoTasks:pe,ScrollList:le},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],computed:{tasks(){return{...this.$store.state.seedream?.tasks,items:this.$store.state.seedream?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),zs={key:0},Us={key:2,class:"w-full h-full flex items-center justify-center"};function Gs(e,t,g,r,m,p){const f=n("bot-placeholder"),h=n("task-preview"),l=n("scroll-list"),d=n("no-tasks");return a(),i(w,null,[e.tasks?.items===void 0?(a(),i("div",zs,[s(f)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(a(),E(l,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:t[0]||(t[0]=b=>e.$emit("reach-top"))},{default:_(()=>[(a(!0),i(w,null,I(e.tasks?.items,b=>(a(),E(h,{key:b.id,"model-value":b},null,8,["model-value"]))),128))]),_:1},8,["loading"])):v("",!0),e.tasks?.items?.length===0?(a(),i("div",Us,[s(d)])):v("",!0)],64)}const Ps=y(Ds,[["render",Gs]]),qs="https://webhook.acedata.cloud/seedream",Os=k({name:"SeedreamIndex",components:{ConfigPanel:ss,Layout:ve,RecentPanel:Ps},inject:["initialized"],data(){return{task:void 0,job:0,loading:!1}},computed:{applicationsLoading(){return this.$store.state.seedream?.status?.getApplications===q.Request},tasksLoading(){return this.$store.state.seedream?.status?.getTasks===q.Request},credential(){return this.$store.state.seedream?.credential},config(){return this.$store.state.seedream?.config},application(){return this.$store.state.seedream?.application},tasks(){return this.$store.state.seedream?.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 m=this.$refs.recentPanel?.getScrollElement?.(),p=m?.scrollHeight||0,f=m?.scrollTop||0;this.loading=!0;try{if(await this.onGetTasks({createdAtMax:g.created_at}),await this.$nextTick(),m){const h=m.scrollHeight;m.scrollTop=h-p+f}}finally{this.loading=!1}},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("seedream/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("seedream/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("seedream/getTasks",{limit:t,createdAtMin:g,createdAtMax:r})},async onGenerate(){const e={...this.config||{}};!(Array.isArray(e?.image)&&e.image.length>0)&&"image"in e&&delete e.image,e?.size||delete e.size;const g={...e,callback_url:qs},r=this.credential?.token;if(!r){console.error("no token specified");return}V.info(this.$t("seedream.message.startingTask")),ae.generate(g,{token:r}).then(()=>{V.success(this.$t("seedream.message.startTaskSuccess"))}).catch(m=>{const p=m?.response?.data;p?.error?.code===ne?V.error(this.$t("seedream.message.usedUp")):V.error(this.$t("seedream.message.startTaskFailed")+(p?.error?.message||""))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function js(e,t,g,r,m,p){const f=n("config-panel"),h=n("recent-panel"),l=n("layout");return a(),E(l,null,{config:_(()=>[s(f,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:_(()=>[s(h,{ref:"recentPanel",loading:e.loading,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const nt=y(Os,[["render",js]]);export{nt as default};
1
+ import{F as A}from"./index.es-DMehEjXB.js";import{m as M,X as H,t as K,u as N,w as V,O,P as j,q as W,H as Z,j as J}from"./vendor-element-plus-CmP9-3lX.js";import{d as k,C as i,G as c,T as s,E as D,K as _,ai as n,D as a,R as o,Q as u,S as w,ag as I,J as E,O as v,M as R,X as Q}from"./vendor-vue-BhXato7y.js";import{_ as y,av as X,cH as Y,cI as x,cJ as ee,cK as se,cL as te,cM as oe,cN as U,cO as G,cP as P,cQ as B,cR as ae,aO as ne,aK as q}from"./index-CtkD2JaX.js";import{I as C,S as le}from"./ScrollList-OteSDitY.js";import{p as re}from"./pasteUploadMixin-BurWbGNQ.js";import{I as F}from"./ImagePreview-B5F24-Vs.js";import{C as ie}from"./Consumption-DEB600BC.js";import{a as ce}from"./price-lQeFOa8Q.js";import{C as de}from"./CopyToClipboard-cTbsayFn.js";import{I as me}from"./ImageWrapper-hN1Hdu08.js";import{B as ue}from"./BotPlaceholder-BV2w6Q4w.js";import{N as pe}from"./NoTasks-ZsLHgPuo.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-C5RrfhAy.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";const fe=k({name:"LayoutSeedream",components:{ElDrawer:H,ElButton:M,FontAwesomeIcon:A},data(){return{drawer:!1}}}),he={class:"main flex flex-row flex-1"},_e={class:"config w-[320px] h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},ge={class:"result h-full p-6 flex-1 flex flex-col bg-[var(--app-content-bg)]"};function $e(e,t,g,r,m,p){const f=n("font-awesome-icon"),h=n("el-button"),l=n("el-drawer");return a(),i("div",he,[c("div",_e,[D(e.$slots,"config",{},void 0,!0)]),c("div",ge,[D(e.$slots,"result",{},void 0,!0)]),s(h,{circle:"",class:"menu",onClick:t[0]||(t[0]=d=>e.drawer=!0)},{default:_(()=>[s(f,{icon:"fa-solid fa-magic"})]),_:1}),s(l,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=d=>e.drawer=d),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:_(()=>[D(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ve=y(fe,[["render",$e],["__scopeId","data-v-5ff0c320"]]),be="",ke=k({name:"SeedreamPromptInput",components:{ElInput:K,InfoIcon:C},computed:{prompt:{get(){return this.$store.state.seedream?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("seedream/setConfig",{...this.$store.state.seedream?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=be)}}),ye={class:"field"},we={class:"box"},Ee={class:"title font-bold"};function Se(e,t,g,r,m,p){const f=n("info-icon"),h=n("el-input");return a(),i("div",ye,[c("div",we,[c("h2",Ee,o(e.$t("seedream.name.prompt")),1),s(f,{content:e.$t("seedream.description.prompt"),class:"info"},null,8,["content"])]),s(h,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=l=>e.prompt=l),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("seedream.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const Ve=y(ke,[["render",Se],["__scopeId","data-v-5559520a"]]),Ie=k({name:"SeedreamImageInput",components:{ElUpload:N,ElButton:M,InfoIcon:C,ImagePreview:F,FontAwesomeIcon:A},mixins:[re],data(){return{fileList:[],uploadUrl:X()+"/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.seedream?.config?.image}},watch:{value:{immediate:!0,handler(e){if(this.suppressWatch)return;if(!e||e.length===0){const r=(this.fileList||[]).filter(m=>!m?.response?.file_url);this.fileList=r.length?r:[];return}const t=[];e.forEach(r=>{const m=this.fileList.find(p=>p?.response?.file_url===r||p?.url===r);m?t.push(m):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(p=>p===r||p?.url===r?.url||p?.response?.file_url===r?.response?.file_url)||t.push(r)}),this.fileList=t}}},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.onSetImages()},onExceed(){V.warning(this.$t("seedream.message.uploadImageExceed"))},onError(){V.error(this.$t("seedream.message.uploadImageError"))},onSetImages(){const e=this.urls;this.suppressWatch=!0,this.$store.commit("seedream/setConfig",{...this.$store.state.seedream?.config,image:e}),this.$nextTick(()=>{this.suppressWatch=!1})},async onSuccess(e,t){e?.file_url&&(t.url=e.file_url,t.response=e),this.onSetImages()},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.onSetImages()}}}),Le={class:"field"},Re={class:"label"},Te={class:"box"},Ae={class:"title font-bold"},Me={class:"value"},Ce={class:"file-list mt-2 flex flex-wrap gap-[10px]"};function De(e,t,g,r,m,p){const f=n("info-icon"),h=n("font-awesome-icon"),l=n("el-button"),d=n("el-upload"),b=n("image-preview");return a(),i(w,null,[c("div",Le,[c("div",Re,[c("div",Te,[c("h2",Ae,o(e.$t("seedream.name.imageUrls")),1),s(f,{content:e.$t("seedream.description.imageUrls"),class:"info"},null,8,["content"])])]),c("div",Me,[s(d,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=$=>e.fileList=$),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",limit:14,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:_(()=>[s(l,{size:"small",type:"primary",round:""},{default:_(()=>[s(h,{icon:"fa-solid fa-upload",class:"mr-1"}),u(" "+o(e.$t("seedream.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","on-change","on-remove","headers"])])]),c("div",Ce,[(a(!0),i(w,null,I(e.fileList,($,S)=>(a(),E(b,{key:$.uid||$?.response?.file_url||$.url||S,url:$.url||$?.response?.file_url,name:$.name,percentage:$.percentage,onRemove:z=>e.onRemovePreview(S,$)},null,8,["url","name","percentage","onRemove"]))),128))])],64)}const ze=y(Ie,[["render",De],["__scopeId","data-v-dc18c674"]]),Ue=k({name:"SeedreamModelSelector",components:{ElSelect:j,ElOption:O,InfoIcon:C},data(){return{options:[{value:x,label:this.$t("seedream.model.seedream45")},{value:ee,label:this.$t("seedream.model.seedream40")},{value:se,label:this.$t("seedream.model.seedream30t2i")},{value:te,label:this.$t("seedream.model.seededit30i2i")}]}},computed:{value:{get(){return this.$store.state.seedream?.config?.model},set(e){this.$store.commit("seedream/setConfig",{...this.$store.state.seedream?.config,model:e})}}},mounted(){this.value||(this.value=Y)}}),Ge={class:"field"},Pe={class:"label"},qe={class:"box"},Oe={class:"title font-bold"};function je(e,t,g,r,m,p){const f=n("info-icon"),h=n("el-option"),l=n("el-select");return a(),i("div",Ge,[c("div",Pe,[c("div",qe,[c("h2",Oe,o(e.$t("seedream.name.model")),1),s(f,{content:e.$t("seedream.description.model"),class:"info"},null,8,["content"])])]),s(l,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=d=>e.value=d),class:"value",placeholder:e.$t("seedream.placeholder.select")},{default:_(()=>[(a(!0),i(w,null,I(e.options,d=>(a(),E(h,{key:d.value,label:d.label,value:d.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Be=y(Ue,[["render",je],["__scopeId","data-v-3c3ca27d"]]),Fe=k({name:"SeedreamSizeSelector",components:{ElSelect:j,ElOption:O,InfoIcon:C},data(){return{options:[{value:U,label:U},{value:G,label:G},{value:P,label:P}]}},computed:{value:{get(){return this.$store.state.seedream?.config?.size},set(e){this.$store.commit("seedream/setConfig",{...this.$store.state.seedream?.config,size:e})}}},mounted(){this.value||(this.value=oe)}}),He={class:"field"},Ke={class:"label"},Ne={class:"box"},We={class:"title font-bold"};function Ze(e,t,g,r,m,p){const f=n("info-icon"),h=n("el-option"),l=n("el-select");return a(),i("div",He,[c("div",Ke,[c("div",Ne,[c("h2",We,o(e.$t("seedream.name.size")),1),s(f,{content:e.$t("seedream.description.size"),class:"info"},null,8,["content"])])]),s(l,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=d=>e.value=d),class:"value",placeholder:e.$t("seedream.placeholder.select"),filterable:"","allow-create":"","default-first-option":""},{default:_(()=>[(a(!0),i(w,null,I(e.options,d=>(a(),E(h,{key:d.value,label:d.label,value:d.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Je=y(Fe,[["render",Ze],["__scopeId","data-v-54a9a469"]]),Qe=k({name:"SeedreamConfigPanel",components:{ElButton:M,FontAwesomeIcon:A,PromptInput:Ve,Consumption:ie,ImageInput:ze,ModelSelector:Be,SizeSelector:Je},emits:["generate"],computed:{config(){return this.$store.state.seedream?.config},consumption(){const e={...this.config||{}},t=Array.isArray(e?.image)&&e.image.length>0;return ce({...e,action:t?"edit":"generate",model:B(e?.model),count:1},this.service?.cost)},service(){return this.$store.state.seedream?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Xe={class:"flex flex-col h-full"},Ye={class:"flex-1 overflow-y-auto p-5"},xe={class:"flex flex-col items-center justify-center px-5 pb-5"};function es(e,t,g,r,m,p){const f=n("model-selector"),h=n("size-selector"),l=n("prompt-input"),d=n("image-input"),b=n("consumption"),$=n("font-awesome-icon"),S=n("el-button");return a(),i("div",Xe,[c("div",Ye,[s(f,{class:"mb-4"}),s(h,{class:"mb-4"}),s(l,{class:"mb-4"}),s(d,{class:"mb-4"})]),c("div",xe,[s(b,{value:e.consumption,service:e.service},null,8,["value","service"]),s(S,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:_(()=>[s($,{icon:"fa-solid fa-magic",class:"mr-2"}),u(" "+o(e.$t("seedream.button.generate")),1)]),_:1},8,["onClick"])])])}const ss=y(Qe,[["render",es]]),ts=k({name:"SeedreamTaskPreview",components:{ElImage:J,CopyToClipboard:de,FontAwesomeIcon:A,ElAlert:Z,ImageWrapper:me,ElButton:M,ElTooltip:W,ImagePreview:F},props:{modelValue:{type:Object,required:!0}},computed:{isEdit(){return Array.isArray(this.modelValue?.request?.image)&&(this.modelValue?.request?.image?.length||0)>0},images(){const e=[];return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(t=>{e.push(t)}),e}},methods:{shortModel(e){return B(e)||e},onEdit(e){if(!e)return;console.debug("Edit image:",e);const t={...this.$store.state.seedream?.config||{}};t.image=[e],this.$store.commit("seedream/setConfig",t)}}}),os={class:"preview"},as={class:"left"},ns={class:"main"},ls={class:"bot"},rs={class:"datetime"},is={class:"info"},cs={key:0,class:"flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto"},ds={key:1,class:"prompt mt-2"},ms={key:0},us={key:0,class:R({content:!0})},ps={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},fs={key:1,class:R({content:!0,failed:!0})},hs={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},_s={class:R({operations:!0,"mt-2":!0,"mb-2":!0})},gs={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},$s={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},vs={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},bs={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},ks={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},ys={key:2,class:R({content:!0})},ws={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Es={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ss={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Vs={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Is={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ls={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Rs={key:3,class:R({content:!0})},Ts={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},As={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function Ms(e,t,g,r,m,p){const f=n("el-image"),h=n("image-preview"),l=n("font-awesome-icon"),d=n("copy-to-clipboard"),b=n("el-alert"),$=n("image-wrapper"),S=n("el-button"),z=n("el-tooltip");return a(),i("div",os,[c("div",as,[s(f,{src:"https://cdn.acedata.cloud/9egrbn.png",class:"avatar"})]),c("div",ns,[c("div",ls,[u(o(e.$t("seedream.name.seedreamBot"))+" ",1),c("span",rs,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),c("div",is,[Array.isArray(e.modelValue?.request?.image)&&e.modelValue?.request?.image.length>0?(a(),i("div",cs,[(a(!0),i(w,null,I(e.modelValue?.request?.image,(L,T)=>(a(),E(h,{key:T,url:L,name:`image-${T+1}`,closable:!1},null,8,["url","name"]))),128))])):v("",!0),e.modelValue?.request?.prompt?(a(),i("p",ds,[u(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?v("",!0):(a(),i("span",ms," - ("+o(e.$t("seedream.status.pending"))+") ",1))])):v("",!0)]),e.modelValue?.response?e.modelValue?.response?.success===!0?(a(),i("div",fs,[c("div",hs,[(a(!0),i(w,null,I(e.images,(L,T)=>(a(),E($,{key:T,src:L?.image_url,"raw-src":L?.image_url},null,8,["src","raw-src"]))),128))]),c("div",_s,[s(z,{class:"box-item",effect:"dark",content:e.$t("common.button.edit"),placement:"top-start"},{default:_(()=>[s(S,{type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=Q(L=>e.onEdit(e.images?.[0]?.image_url),["stop"]))},{default:_(()=>[u(o(e.$t("common.button.edit")),1)]),_:1})]),_:1},8,["content"])]),s(b,{closable:!1,class:"mt-2 success"},{default:_(()=>[e.modelValue?.request?.model?(a(),i("p",gs,[s(l,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("seedream.name.model"))+": "+o(e.shortModel(e.modelValue?.request?.model)),1)])):v("",!0),e.modelValue?.request?.size?(a(),i("p",$s,[s(l,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("seedream.name.size"))+": "+o(e.modelValue?.request?.size),1)])):v("",!0),c("p",vs,[s(l,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("seedream.name.task"))+": "+o(e.isEdit?e.$t("seedream.name.edits"):e.$t("seedream.name.generate")),1)]),c("p",bs,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("seedream.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),s(d,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.response?.trace_id?(a(),i("p",ks,[s(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("seedream.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),s(d,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):v("",!0)]),_:1})])):e.modelValue?.response?.success===!1?(a(),i("div",ys,[s(b,{closable:!1,class:"failure"},{template:_(()=>[s(l,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),u(" "+o(e.$t("seedream.name.failure")),1)]),default:_(()=>[e.modelValue?.request?.model?(a(),i("p",ws,[s(l,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("seedream.name.model"))+": "+o(e.shortModel(e.modelValue?.request?.model)),1)])):v("",!0),e.modelValue?.request?.size?(a(),i("p",Es,[s(l,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("seedream.name.size"))+": "+o(e.modelValue?.request?.size),1)])):v("",!0),c("p",Ss,[s(l,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("seedream.name.task"))+": "+o(e.isEdit?e.$t("seedream.name.edits"):e.$t("seedream.name.generate")),1)]),c("p",Vs,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("seedream.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),s(d,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),e.modelValue?.response?.error?.message?(a(),i("p",Is,[s(l,{icon:"fa-solid fa-circle-info",class:"mr-1"}),u(" "+o(e.$t("seedream.name.failureReason"))+": "+o(e.modelValue?.response?.error?.message)+" ",1),s(d,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])])):v("",!0),e.modelValue?.response?.trace_id?(a(),i("p",Ls,[s(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("seedream.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),s(d,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])):v("",!0)]),_:1})])):(a(),i("div",Rs,[s(b,{closable:!1,class:"info"},{template:_(()=>[s(l,{icon:"fa-solid fa-circle-info",class:"mr-1"}),u(" "+o(e.$t("seedream.name.status")),1)]),default:_(()=>[c("p",Ts,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("seedream.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),s(d,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),e.modelValue?.response?.trace_id?(a(),i("p",As,[s(l,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("seedream.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),s(d,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])):v("",!0)]),_:1})])):(a(),i("div",us,[s(b,{closable:!1,class:"info"},{template:_(()=>[s(l,{icon:"fa-regular fa-clock",class:"mr-1"}),u(" "+o(e.$t("seedream.status.pending")),1)]),default:_(()=>[c("p",ps,[s(l,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("seedream.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),s(d,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])])]),_:1})]))])])}const Cs=y(ts,[["render",Ms],["__scopeId","data-v-e939362a"]]),Ds=k({name:"SeedreamRecentPanel",components:{TaskPreview:Cs,BotPlaceholder:ue,NoTasks:pe,ScrollList:le},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],computed:{tasks(){return{...this.$store.state.seedream?.tasks,items:this.$store.state.seedream?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),zs={key:0},Us={key:2,class:"w-full h-full flex items-center justify-center"};function Gs(e,t,g,r,m,p){const f=n("bot-placeholder"),h=n("task-preview"),l=n("scroll-list"),d=n("no-tasks");return a(),i(w,null,[e.tasks?.items===void 0?(a(),i("div",zs,[s(f)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(a(),E(l,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:t[0]||(t[0]=b=>e.$emit("reach-top"))},{default:_(()=>[(a(!0),i(w,null,I(e.tasks?.items,b=>(a(),E(h,{key:b.id,"model-value":b},null,8,["model-value"]))),128))]),_:1},8,["loading"])):v("",!0),e.tasks?.items?.length===0?(a(),i("div",Us,[s(d)])):v("",!0)],64)}const Ps=y(Ds,[["render",Gs]]),qs="https://webhook.acedata.cloud/seedream",Os=k({name:"SeedreamIndex",components:{ConfigPanel:ss,Layout:ve,RecentPanel:Ps},inject:["initialized"],data(){return{task:void 0,job:0,loading:!1}},computed:{applicationsLoading(){return this.$store.state.seedream?.status?.getApplications===q.Request},tasksLoading(){return this.$store.state.seedream?.status?.getTasks===q.Request},credential(){return this.$store.state.seedream?.credential},config(){return this.$store.state.seedream?.config},application(){return this.$store.state.seedream?.application},tasks(){return this.$store.state.seedream?.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 m=this.$refs.recentPanel?.getScrollElement?.(),p=m?.scrollHeight||0,f=m?.scrollTop||0;this.loading=!0;try{if(await this.onGetTasks({createdAtMax:g.created_at}),await this.$nextTick(),m){const h=m.scrollHeight;m.scrollTop=h-p+f}}finally{this.loading=!1}},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("seedream/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("seedream/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("seedream/getTasks",{limit:t,createdAtMin:g,createdAtMax:r})},async onGenerate(){const e={...this.config||{}};!(Array.isArray(e?.image)&&e.image.length>0)&&"image"in e&&delete e.image,e?.size||delete e.size;const g={...e,callback_url:qs},r=this.credential?.token;if(!r){console.error("no token specified");return}V.info(this.$t("seedream.message.startingTask")),ae.generate(g,{token:r}).then(()=>{V.success(this.$t("seedream.message.startTaskSuccess"))}).catch(m=>{const p=m?.response?.data;p?.error?.code===ne?V.error(this.$t("seedream.message.usedUp")):V.error(this.$t("seedream.message.startTaskFailed")+(p?.error?.message||""))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function js(e,t,g,r,m,p){const f=n("config-panel"),h=n("recent-panel"),l=n("layout");return a(),E(l,null,{config:_(()=>[s(f,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:_(()=>[s(h,{ref:"recentPanel",loading:e.loading,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const nt=y(Os,[["render",js]]);export{nt as default};
@@ -1 +1 @@
1
- import{F as S}from"./index.es-Bqj83sQx.js";import{m as q,Y as H,t as x,u as K,w as E,O as B,P as M,q as J,H as Q,j as X}from"./vendor-element-plus-DN048TGi.js";import{d as k,C as l,G as c,T as a,E as C,K as $,ai as s,D as n,R as o,Q as u,S as A,ag as N,J as V,O as b,M as O,X as Y}from"./vendor-vue-BhXato7y.js";import{_ as y,au as Z,co as ee,cp as z,cq as P,cr as te,cs as T,ct as G,cu as j,cv as D,cw as ae,aN as oe,aJ as F}from"./index-muIEJvsu.js";import{I as U,S as ne}from"./ScrollList-ZiMJkMBw.js";import{p as se}from"./pasteUploadMixin-BurWbGNQ.js";import{I as W}from"./ImagePreview-eVaabJZn.js";import{C as le}from"./Consumption-DB4jsCIw.js";import{a as re}from"./price-Bva0CFLK.js";import{C as ie}from"./CopyToClipboard-DY-UF17o.js";import{I as ce}from"./ImageWrapper-BPES620_.js";import{B as ue}from"./BotPlaceholder-CcWrwFmL.js";import{N as de}from"./NoTasks-Dk7Wt2AG.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-CIJ0oOq5.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";const me=k({name:"LayoutNanobanana",components:{ElDrawer:H,ElButton:q,FontAwesomeIcon:S},data(){return{drawer:!1}}}),pe={class:"main flex flex-row flex-1"},fe={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},he={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function _e(e,t,g,r,d,f){const h=s("font-awesome-icon"),_=s("el-button"),m=s("el-drawer");return n(),l("div",pe,[c("div",fe,[C(e.$slots,"config",{},void 0,!0)]),c("div",he,[C(e.$slots,"result",{},void 0,!0)]),a(_,{circle:"",class:"menu",onClick:t[0]||(t[0]=p=>e.drawer=!0)},{default:$(()=>[a(h,{icon:"fa-solid fa-magic"})]),_:1}),a(m,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=p=>e.drawer=p),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:$(()=>[C(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ge=y(me,[["render",_e],["__scopeId","data-v-9fbc8a5c"]]),be="",$e=k({name:"PromptInput",components:{ElInput:x,InfoIcon:U},computed:{prompt:{get(){return this.$store.state.nanobanana?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=be)}}),ve={class:"field"},ke={class:"box"},ye={class:"title font-bold"};function we(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-input");return n(),l("div",ve,[c("div",ke,[c("h2",ye,o(e.$t("nanobanana.name.prompt")),1),a(h,{content:e.$t("nanobanana.description.prompt"),class:"info"},null,8,["content"])]),a(_,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=m=>e.prompt=m),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("nanobanana.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const Ae=y($e,[["render",we],["__scopeId","data-v-2331e197"]]),Ve=k({name:"ImageUrlsInput",components:{ElUpload:K,ElButton:q,InfoIcon:U,ImagePreview:W,FontAwesomeIcon:S},mixins:[se],data(){return{fileList:[],uploadUrl:Z()+"/api/v1/files/",suppressWatch:!1}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url).filter(e=>!!e)},value(){return this.$store.state.nanobanana?.config?.image_urls}},watch:{value:{immediate:!0,handler(e){if(this.suppressWatch)return;if(!e||e.length===0){const r=(this.fileList||[]).filter(d=>!d?.response?.file_url);this.fileList=r.length?r:[];return}const t=[];e.forEach(r=>{const d=this.fileList.find(f=>f?.response?.file_url===r||f?.url===r);d?t.push(d):t.push({name:r.split("/").pop()||r,url:r,status:"success",percentage:100,response:{file_url:r}})}),(this.fileList||[]).filter(r=>!r?.response?.file_url).forEach(r=>{t.some(f=>f===r||f?.url===r?.url||f?.response?.file_url===r?.response?.file_url)||t.push(r)}),this.fileList=t}}},mounted(){},methods:{onChange(e){if(!e?.url&&e?.raw)try{e.url=URL.createObjectURL(e.raw)}catch{}},onRemove(e){if(e?.url&&typeof e.url=="string"&&e.url.startsWith("blob:"))try{URL.revokeObjectURL(e.url)}catch{}this.onSetImageUrls()},onExceed(){E.warning(this.$t("nanobanana.message.uploadImageExceed"))},onError(){E.error(this.$t("nanobanana.message.uploadImageError"))},onSetImageUrls(){const e=this.urls;this.suppressWatch=!0,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,image_urls:e}),this.$nextTick(()=>{this.suppressWatch=!1})},async onSuccess(e,t){e?.file_url&&(t.url=e.file_url,t.response=e),this.onSetImageUrls()},onRemovePreview(e,t){if(this.fileList.splice(e,1),t?.url&&typeof t.url=="string"&&t.url.startsWith("blob:"))try{URL.revokeObjectURL(t.url)}catch{}this.onSetImageUrls()}}}),Ne={class:"field flex items-center justify-between"},Re={class:"title font-bold text-[14px] mb-[10px]"},Ee={class:"upload-wrapper flex flex-col items-start gap-[8px]"},Ie={class:"controls flex items-center"},Le={class:"file-list flex flex-wrap gap-[10px]"};function Te(e,t,g,r,d,f){const h=s("font-awesome-icon"),_=s("el-button"),m=s("el-upload"),p=s("info-icon"),w=s("image-preview");return n(),l(A,null,[c("div",Ne,[c("h2",Re,o(e.$t("nanobanana.name.imageUrls")),1),c("div",Ee,[c("div",Ie,[a(m,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=i=>e.fileList=i),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",class:"value",limit:5,multiple:!0,"show-file-list":!1,action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,"on-change":e.onChange,"on-remove":e.onRemove,headers:e.headers},{default:$(()=>[a(_,{size:"small",type:"primary",round:""},{default:$(()=>[a(h,{icon:"fa-solid fa-upload",class:"mr-1"}),u(" "+o(e.$t("nanobanana.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","on-change","on-remove","headers"]),a(p,{content:e.$t("nanobanana.description.imageUrls"),class:"ml-2"},null,8,["content"])])])]),c("div",Le,[(n(!0),l(A,null,N(e.fileList,(i,v)=>(n(),V(w,{key:i.uid||i?.response?.file_url||i.url||v,url:i.url||i?.response?.file_url,name:i.name,percentage:i.percentage,onRemove:R=>e.onRemovePreview(v,i)},null,8,["url","name","percentage","onRemove"]))),128))])],64)}const Se=y(Ve,[["render",Te]]),qe=k({name:"AspectRatioSelector",components:{ElSelect:M,ElOption:B},data(){return{options:["1:1","3:2","2:3","16:9","9:16","4:3","3:4"]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.aspect_ratio},set(e){console.debug("set aspect_ratio",e);const t={...this.$store.state.nanobanana?.config||{}};e?t.aspect_ratio=e:delete t.aspect_ratio,this.$store.commit("nanobanana/setConfig",t)}}}}),Oe={class:"field"},Ue={class:"title font-bold"};function Ce(e,t,g,r,d,f){const h=s("el-option"),_=s("el-select");return n(),l("div",Oe,[c("h2",Ue,o(e.$t("nanobanana.name.aspectRatio")),1),a(_,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=m=>e.value=m),class:"value",clearable:"",placeholder:e.$t("nanobanana.placeholder.select")},{default:$(()=>[(n(!0),l(A,null,N(e.options,m=>(n(),V(h,{key:m,label:m,value:m},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Pe=y(qe,[["render",Ce],["__scopeId","data-v-67f08a08"]]),Be=k({name:"NanobananaModelSelector",components:{ElSelect:M,ElOption:B,InfoIcon:U},data(){return{options:[{value:z,label:this.$t("nanobanana.model.nanoBanana")},{value:P,label:this.$t("nanobanana.model.nanoBananaPro")},{value:te,label:this.$t("nanobanana.model.nanoBanana2")}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.model},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,model:e})}},modelDescription(){return this.$t("nanobanana.description.model")}},mounted(){this.value||(this.value=ee)}}),Me={class:"field"},Ge={class:"label"},je={class:"box"},De={class:"title font-bold"};function Fe(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-option"),m=s("el-select");return n(),l("div",Me,[c("div",Ge,[c("div",je,[c("h2",De,o(e.$t("nanobanana.name.model")),1),a(h,{content:e.modelDescription,class:"info"},null,8,["content"])])]),a(m,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"value",placeholder:e.$t("nanobanana.placeholder.select")},{default:$(()=>[(n(!0),l(A,null,N(e.options,p=>(n(),V(_,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const ze=y(Be,[["render",Fe],["__scopeId","data-v-94304d73"]]),We=k({name:"NanobananaResolutionSelector",components:{ElSelect:M,ElOption:B,InfoIcon:U},data(){return{cachedResolution:T,options:[{value:G,label:G},{value:j,label:j},{value:D,label:D}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.resolution},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:e})}},isProModel(){return this.$store.state.nanobanana?.config?.model!==z}},watch:{value(e){this.isProModel&&e&&(this.cachedResolution=e)},isProModel(e){e?this.value||(this.value=this.cachedResolution||T):(this.value&&(this.cachedResolution=this.value),this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}},mounted(){this.isProModel&&!this.value&&(this.value=T),!this.isProModel&&this.value&&(this.cachedResolution=this.value,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}}),He={class:"field"},xe={class:"label"},Ke={class:"box"},Je={class:"title font-bold"};function Qe(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-option"),m=s("el-select");return n(),l("div",He,[c("div",xe,[c("div",Ke,[c("h2",Je,o(e.$t("nanobanana.name.resolution")),1),a(h,{content:e.$t("nanobanana.description.resolutionProOnly"),class:"info"},null,8,["content"])])]),a(m,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"value",placeholder:e.$t("nanobanana.placeholder.select"),disabled:!e.isProModel},{default:$(()=>[(n(!0),l(A,null,N(e.options,p=>(n(),V(_,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled"])])}const Xe=y(We,[["render",Qe],["__scopeId","data-v-fd5ab393"]]),Ye=k({name:"ConfigPanel",components:{ElButton:q,FontAwesomeIcon:S,PromptInput:Ae,Consumption:le,ImageUrlsInput:Se,AspectRatioSelector:Pe,ModelSelector:ze,ResolutionSelector:Xe},emits:["generate"],computed:{config(){return this.$store.state.nanobanana?.config},consumption(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;return re({...e,action:t?"edit":"generate"},this.service?.cost)},service(){return this.$store.state.nanobanana?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Ze={class:"flex flex-col h-full"},et={class:"flex-1 overflow-y-auto p-5"},tt={class:"flex flex-col items-center justify-center px-5 pb-5"};function at(e,t,g,r,d,f){const h=s("model-selector"),_=s("resolution-selector"),m=s("prompt-input"),p=s("aspect-ratio-selector"),w=s("image-urls-input"),i=s("consumption"),v=s("font-awesome-icon"),R=s("el-button");return n(),l("div",Ze,[c("div",et,[a(h,{class:"mb-4"}),a(_,{class:"mb-4"}),a(m,{class:"mb-4"}),a(p,{class:"mb-4"}),a(w,{class:"mb-4"})]),c("div",tt,[a(i,{value:e.consumption,service:e.service},null,8,["value","service"]),a(R,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:$(()=>[a(v,{icon:"fa-solid fa-magic",class:"mr-2"}),u(" "+o(e.$t("nanobanana.button.generate")),1)]),_:1},8,["onClick"])])])}const ot=y(Ye,[["render",at]]),nt=k({name:"TaskPreview",components:{ElImage:X,CopyToClipboard:ie,FontAwesomeIcon:S,ElAlert:Q,ImageWrapper:ce,ElButton:q,ElTooltip:J,ImagePreview:W},props:{modelValue:{type:Object,required:!0}},computed:{images(){const e=[];return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(t=>{e.push(t)}),e}},methods:{onEdit(e){if(!e)return;console.debug("Edit image:",e);const t={...this.$store.state.nanobanana?.config||{}};delete t.action,t.image_urls=[e],this.$store.commit("nanobanana/setConfig",t)}}}),st={class:"preview"},lt={class:"left"},rt={class:"main"},it={class:"bot"},ct={class:"datetime"},ut={class:"info"},dt={key:0,class:"flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto"},mt={key:1,class:"prompt mt-2"},pt={key:0},ft={key:0,class:O({content:!0,failed:!0})},ht={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},_t={class:O({operations:!0,"mt-2":!0,"mb-2":!0})},gt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},bt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},$t={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},vt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},kt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},yt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},wt={key:1,class:O({content:!0})},At={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Vt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Nt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Rt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Et={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},It={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Lt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Tt={key:2,class:O({content:!0})},St={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},qt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ot={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ut={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ct={class:"text-[var(--el-text-color-regular)] text-xs mb-2"};function Pt(e,t,g,r,d,f){const h=s("el-image"),_=s("image-preview"),m=s("image-wrapper"),p=s("el-button"),w=s("el-tooltip"),i=s("font-awesome-icon"),v=s("copy-to-clipboard"),R=s("el-alert");return n(),l("div",st,[c("div",lt,[a(h,{src:"https://cdn.acedata.cloud/859plc.jpg",class:"avatar"})]),c("div",rt,[c("div",it,[u(o(e.$t("nanobanana.name.nanobananaBot"))+" ",1),c("span",ct,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),c("div",ut,[e.modelValue?.request?.image_urls&&e.modelValue?.request?.image_urls.length>0?(n(),l("div",dt,[(n(!0),l(A,null,N(e.modelValue?.request?.image_urls,(I,L)=>(n(),V(_,{key:L,url:I,name:`image-${L+1}`,closable:!1},null,8,["url","name"]))),128))])):b("",!0),e.modelValue?.request?.prompt?(n(),l("p",mt,[u(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?b("",!0):(n(),l("span",pt," - ("+o(e.$t("nanobanana.status.pending"))+") ",1))])):b("",!0)]),e.modelValue?.response?.success===!0?(n(),l("div",ft,[c("div",ht,[(n(!0),l(A,null,N(e.images,(I,L)=>(n(),V(m,{key:L,src:I?.image_url,"raw-src":I?.image_url},null,8,["src","raw-src"]))),128))]),c("div",_t,[a(w,{class:"box-item",effect:"dark",content:e.$t("common.button.edit"),placement:"top-start"},{default:$(()=>[a(p,{type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=Y(I=>e.onEdit(e.images?.[0]?.image_url),["stop"]))},{default:$(()=>[u(o(e.$t("common.button.edit")),1)]),_:1})]),_:1},8,["content"])]),a(R,{closable:!1,class:"mt-2 success"},{default:$(()=>[e.modelValue?.request?.model?(n(),l("p",gt,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",bt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",$t,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",vt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",kt,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),l("p",yt,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(v,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):b("",!0)]),_:1})])):e.modelValue?.response?.success===!1?(n(),l("div",wt,[a(R,{closable:!1,class:"failure"},{template:$(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failure")),1)]),default:$(()=>[e.modelValue?.request?.model?(n(),l("p",At,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",Vt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Nt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",Rt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",Et,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),c("p",It,[a(i,{icon:"fa-solid fa-circle-info",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failureReason"))+": "+o(e.modelValue?.response?.error?.message)+" ",1),a(v,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),l("p",Lt,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(v,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])):b("",!0)]),_:1})])):(n(),l("div",Tt,[a(R,{closable:!1,class:"info"},{template:$(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failure")),1)]),default:$(()=>[e.modelValue?.request?.model?(n(),l("p",St,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",qt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Ot,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",Ut,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",Ct,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})]))])])}const Bt=y(nt,[["render",Pt],["__scopeId","data-v-72e2ec32"]]),Mt=k({name:"RecentPanel",components:{TaskPreview:Bt,BotPlaceholder:ue,NoTasks:de,ScrollList:ne},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.nanobanana?.tasks,items:this.$store.state.nanobanana?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Gt={key:0},jt={key:2,class:"w-full h-full flex items-center justify-center"};function Dt(e,t,g,r,d,f){const h=s("bot-placeholder"),_=s("task-preview"),m=s("scroll-list"),p=s("no-tasks");return n(),l(A,null,[e.tasks?.items===void 0?(n(),l("div",Gt,[a(h)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),V(m,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:t[0]||(t[0]=w=>e.$emit("reach-top"))},{default:$(()=>[(n(!0),l(A,null,N(e.tasks?.items,w=>(n(),V(_,{key:w.id,"model-value":w},null,8,["model-value"]))),128))]),_:1},8,["loading"])):b("",!0),e.tasks?.items?.length===0?(n(),l("div",jt,[a(p)])):b("",!0)],64)}const Ft=y(Mt,[["render",Dt]]),zt="https://webhook.acedata.cloud/nanobanana",Wt=k({name:"NanobananaIndex",components:{ConfigPanel:ot,Layout:ge,RecentPanel:Ft},inject:["initialized"],data(){return{task:void 0,job:0,loading:!1}},computed:{applicationsLoading(){return this.$store.state.nanobanana?.status?.getApplications===F.Request},tasksLoading(){return this.$store.state.nanobanana?.status?.getTasks===F.Request},credential(){return this.$store.state.nanobanana?.credential},config(){return this.$store.state.nanobanana?.config},application(){return this.$store.state.nanobanana?.application},tasks(){return this.$store.state.nanobanana?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug("new tasks detected")},deep:!0},initialized:{async handler(e){e&&(console.debug("layout initialized"),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){if(console.debug("reached top"),this.loading||this.tasksLoading)return;const e=this.tasks?.total,t=this.tasks?.items?.length||0;if(e!==void 0&&e<=t)return;const g=this.tasks?.items?.[0];if(!g?.created_at)return;const d=this.$refs.recentPanel?.getScrollElement?.(),f=d?.scrollHeight||0,h=d?.scrollTop||0;this.loading=!0;try{if(await this.onGetTasks({createdAtMax:g.created_at}),await this.$nextTick(),d){const _=d.scrollHeight;d.scrollTop=_-f+h}}finally{this.loading=!1}},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("nanobanana/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("nanobanana/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.tasksLoading){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=20,createdAtMin:g,createdAtMax:r}=e||{};console.debug("limit",t,"createdAtMin",g,"createdAtMax",r),await this.$store.dispatch("nanobanana/getTasks",{limit:t,createdAtMin:g,createdAtMax:r})},async onGenerate(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;delete e.action,!t&&"image_urls"in e&&delete e.image_urls,e?.aspect_ratio||delete e.aspect_ratio,e?.model!==P&&"resolution"in e&&delete e.resolution,e?.model===P&&!e?.resolution&&(e.resolution=T);const g={...e,action:t?"edit":"generate",callback_url:zt},r=this.credential?.token;if(!r){console.error("no token specified");return}E.info(this.$t("nanobanana.message.startingTask")),ae.generate(g,{token:r}).then(()=>{E.success(this.$t("nanobanana.message.startTaskSuccess"))}).catch(d=>{const f=d?.response?.data;f?.error?.code===oe?E.error(this.$t("nanobanana.message.usedUp")):E.error(this.$t("nanobanana.message.startTaskFailed")+(f?.error?.message||""))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Ht(e,t,g,r,d,f){const h=s("config-panel"),_=s("recent-panel"),m=s("layout");return n(),V(m,null,{config:$(()=>[a(h,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:$(()=>[a(_,{ref:"recentPanel",loading:e.loading,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const ua=y(Wt,[["render",Ht]]);export{ua as default};
1
+ import{F as S}from"./index.es-DMehEjXB.js";import{m as q,X as x,t as H,u as K,w as E,O as B,P as M,q as X,H as J,j as Q}from"./vendor-element-plus-CmP9-3lX.js";import{d as k,C as l,G as c,T as a,E as C,K as $,ai as s,D as n,R as o,Q as u,S as A,ag as N,J as V,O as b,M as O,X as Y}from"./vendor-vue-BhXato7y.js";import{_ as y,av as Z,cp as ee,cq as z,cr as P,cs as te,ct as T,cu as G,cv as j,cw as D,cx as ae,aO as oe,aK as F}from"./index-CtkD2JaX.js";import{I as U,S as ne}from"./ScrollList-OteSDitY.js";import{p as se}from"./pasteUploadMixin-BurWbGNQ.js";import{I as W}from"./ImagePreview-B5F24-Vs.js";import{C as le}from"./Consumption-DEB600BC.js";import{a as re}from"./price-lQeFOa8Q.js";import{C as ie}from"./CopyToClipboard-cTbsayFn.js";import{I as ce}from"./ImageWrapper-hN1Hdu08.js";import{B as ue}from"./BotPlaceholder-BV2w6Q4w.js";import{N as de}from"./NoTasks-ZsLHgPuo.js";import"./vendor-dayjs-CzbnksQQ.js";import"./vendor-web3-C5RrfhAy.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-8bYQCSwj.js";const me=k({name:"LayoutNanobanana",components:{ElDrawer:x,ElButton:q,FontAwesomeIcon:S},data(){return{drawer:!1}}}),pe={class:"main flex flex-row flex-1"},fe={class:"config w-[320px] flex-none h-full overflow-y-auto bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]"},he={class:"result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]"};function _e(e,t,g,r,d,f){const h=s("font-awesome-icon"),_=s("el-button"),m=s("el-drawer");return n(),l("div",pe,[c("div",fe,[C(e.$slots,"config",{},void 0,!0)]),c("div",he,[C(e.$slots,"result",{},void 0,!0)]),a(_,{circle:"",class:"menu",onClick:t[0]||(t[0]=p=>e.drawer=!0)},{default:$(()=>[a(h,{icon:"fa-solid fa-magic"})]),_:1}),a(m,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=p=>e.drawer=p),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:$(()=>[C(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const ge=y(me,[["render",_e],["__scopeId","data-v-9fbc8a5c"]]),be="",$e=k({name:"PromptInput",components:{ElInput:H,InfoIcon:U},computed:{prompt:{get(){return this.$store.state.nanobanana?.config?.prompt},set(e){console.debug("set prompt",e),this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=be)}}),ve={class:"field"},ke={class:"box"},ye={class:"title font-bold"};function we(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-input");return n(),l("div",ve,[c("div",ke,[c("h2",ye,o(e.$t("nanobanana.name.prompt")),1),a(h,{content:e.$t("nanobanana.description.prompt"),class:"info"},null,8,["content"])]),a(_,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=m=>e.prompt=m),rows:3,type:"textarea",class:"prompt",placeholder:e.$t("nanobanana.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const Ae=y($e,[["render",we],["__scopeId","data-v-2331e197"]]),Ve=k({name:"ImageUrlsInput",components:{ElUpload:K,ElButton:q,InfoIcon:U,ImagePreview:W,FontAwesomeIcon:S},mixins:[se],data(){return{fileList:[],uploadUrl:Z()+"/api/v1/files/",suppressWatch:!1}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url).filter(e=>!!e)},value(){return this.$store.state.nanobanana?.config?.image_urls}},watch:{value:{immediate:!0,handler(e){if(this.suppressWatch)return;if(!e||e.length===0){const r=(this.fileList||[]).filter(d=>!d?.response?.file_url);this.fileList=r.length?r:[];return}const t=[];e.forEach(r=>{const d=this.fileList.find(f=>f?.response?.file_url===r||f?.url===r);d?t.push(d):t.push({name:r.split("/").pop()||r,url:r,status:"success",percentage:100,response:{file_url:r}})}),(this.fileList||[]).filter(r=>!r?.response?.file_url).forEach(r=>{t.some(f=>f===r||f?.url===r?.url||f?.response?.file_url===r?.response?.file_url)||t.push(r)}),this.fileList=t}}},mounted(){},methods:{onChange(e){if(!e?.url&&e?.raw)try{e.url=URL.createObjectURL(e.raw)}catch{}},onRemove(e){if(e?.url&&typeof e.url=="string"&&e.url.startsWith("blob:"))try{URL.revokeObjectURL(e.url)}catch{}this.onSetImageUrls()},onExceed(){E.warning(this.$t("nanobanana.message.uploadImageExceed"))},onError(){E.error(this.$t("nanobanana.message.uploadImageError"))},onSetImageUrls(){const e=this.urls;this.suppressWatch=!0,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,image_urls:e}),this.$nextTick(()=>{this.suppressWatch=!1})},async onSuccess(e,t){e?.file_url&&(t.url=e.file_url,t.response=e),this.onSetImageUrls()},onRemovePreview(e,t){if(this.fileList.splice(e,1),t?.url&&typeof t.url=="string"&&t.url.startsWith("blob:"))try{URL.revokeObjectURL(t.url)}catch{}this.onSetImageUrls()}}}),Ne={class:"field flex items-center justify-between"},Re={class:"title font-bold text-[14px] mb-[10px]"},Ee={class:"upload-wrapper flex flex-col items-start gap-[8px]"},Ie={class:"controls flex items-center"},Le={class:"file-list flex flex-wrap gap-[10px]"};function Te(e,t,g,r,d,f){const h=s("font-awesome-icon"),_=s("el-button"),m=s("el-upload"),p=s("info-icon"),w=s("image-preview");return n(),l(A,null,[c("div",Ne,[c("h2",Re,o(e.$t("nanobanana.name.imageUrls")),1),c("div",Ee,[c("div",Ie,[a(m,{ref:"uploader","file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=i=>e.fileList=i),accept:".png,.jpg,.jpeg,.gif,.bmp,.webp",name:"file",class:"value",limit:5,multiple:!0,"show-file-list":!1,action:e.uploadUrl,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,"on-change":e.onChange,"on-remove":e.onRemove,headers:e.headers},{default:$(()=>[a(_,{size:"small",type:"primary",round:""},{default:$(()=>[a(h,{icon:"fa-solid fa-upload",class:"mr-1"}),u(" "+o(e.$t("nanobanana.button.uploadImageUrls")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","on-change","on-remove","headers"]),a(p,{content:e.$t("nanobanana.description.imageUrls"),class:"ml-2"},null,8,["content"])])])]),c("div",Le,[(n(!0),l(A,null,N(e.fileList,(i,v)=>(n(),V(w,{key:i.uid||i?.response?.file_url||i.url||v,url:i.url||i?.response?.file_url,name:i.name,percentage:i.percentage,onRemove:R=>e.onRemovePreview(v,i)},null,8,["url","name","percentage","onRemove"]))),128))])],64)}const Se=y(Ve,[["render",Te]]),qe=k({name:"AspectRatioSelector",components:{ElSelect:M,ElOption:B},data(){return{options:["1:1","3:2","2:3","16:9","9:16","4:3","3:4"]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.aspect_ratio},set(e){console.debug("set aspect_ratio",e);const t={...this.$store.state.nanobanana?.config||{}};e?t.aspect_ratio=e:delete t.aspect_ratio,this.$store.commit("nanobanana/setConfig",t)}}}}),Oe={class:"field"},Ue={class:"title font-bold"};function Ce(e,t,g,r,d,f){const h=s("el-option"),_=s("el-select");return n(),l("div",Oe,[c("h2",Ue,o(e.$t("nanobanana.name.aspectRatio")),1),a(_,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=m=>e.value=m),class:"value",clearable:"",placeholder:e.$t("nanobanana.placeholder.select")},{default:$(()=>[(n(!0),l(A,null,N(e.options,m=>(n(),V(h,{key:m,label:m,value:m},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const Pe=y(qe,[["render",Ce],["__scopeId","data-v-67f08a08"]]),Be=k({name:"NanobananaModelSelector",components:{ElSelect:M,ElOption:B,InfoIcon:U},data(){return{options:[{value:z,label:this.$t("nanobanana.model.nanoBanana")},{value:P,label:this.$t("nanobanana.model.nanoBananaPro")},{value:te,label:this.$t("nanobanana.model.nanoBanana2")}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.model},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,model:e})}},modelDescription(){return this.$t("nanobanana.description.model")}},mounted(){this.value||(this.value=ee)}}),Me={class:"field"},Ge={class:"label"},je={class:"box"},De={class:"title font-bold"};function Fe(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-option"),m=s("el-select");return n(),l("div",Me,[c("div",Ge,[c("div",je,[c("h2",De,o(e.$t("nanobanana.name.model")),1),a(h,{content:e.modelDescription,class:"info"},null,8,["content"])])]),a(m,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"value",placeholder:e.$t("nanobanana.placeholder.select")},{default:$(()=>[(n(!0),l(A,null,N(e.options,p=>(n(),V(_,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])])}const ze=y(Be,[["render",Fe],["__scopeId","data-v-94304d73"]]),We=k({name:"NanobananaResolutionSelector",components:{ElSelect:M,ElOption:B,InfoIcon:U},data(){return{cachedResolution:T,options:[{value:G,label:G},{value:j,label:j},{value:D,label:D}]}},computed:{value:{get(){return this.$store.state.nanobanana?.config?.resolution},set(e){this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:e})}},isProModel(){return this.$store.state.nanobanana?.config?.model!==z}},watch:{value(e){this.isProModel&&e&&(this.cachedResolution=e)},isProModel(e){e?this.value||(this.value=this.cachedResolution||T):(this.value&&(this.cachedResolution=this.value),this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}},mounted(){this.isProModel&&!this.value&&(this.value=T),!this.isProModel&&this.value&&(this.cachedResolution=this.value,this.$store.commit("nanobanana/setConfig",{...this.$store.state.nanobanana?.config,resolution:void 0}))}}),xe={class:"field"},He={class:"label"},Ke={class:"box"},Xe={class:"title font-bold"};function Je(e,t,g,r,d,f){const h=s("info-icon"),_=s("el-option"),m=s("el-select");return n(),l("div",xe,[c("div",He,[c("div",Ke,[c("h2",Xe,o(e.$t("nanobanana.name.resolution")),1),a(h,{content:e.$t("nanobanana.description.resolutionProOnly"),class:"info"},null,8,["content"])])]),a(m,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=p=>e.value=p),class:"value",placeholder:e.$t("nanobanana.placeholder.select"),disabled:!e.isProModel},{default:$(()=>[(n(!0),l(A,null,N(e.options,p=>(n(),V(_,{key:p.value,label:p.label,value:p.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled"])])}const Qe=y(We,[["render",Je],["__scopeId","data-v-fd5ab393"]]),Ye=k({name:"ConfigPanel",components:{ElButton:q,FontAwesomeIcon:S,PromptInput:Ae,Consumption:le,ImageUrlsInput:Se,AspectRatioSelector:Pe,ModelSelector:ze,ResolutionSelector:Qe},emits:["generate"],computed:{config(){return this.$store.state.nanobanana?.config},consumption(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;return re({...e,action:t?"edit":"generate"},this.service?.cost)},service(){return this.$store.state.nanobanana?.service}},methods:{onGenerate(){this.$emit("generate")}}}),Ze={class:"flex flex-col h-full"},et={class:"flex-1 overflow-y-auto p-5"},tt={class:"flex flex-col items-center justify-center px-5 pb-5"};function at(e,t,g,r,d,f){const h=s("model-selector"),_=s("resolution-selector"),m=s("prompt-input"),p=s("aspect-ratio-selector"),w=s("image-urls-input"),i=s("consumption"),v=s("font-awesome-icon"),R=s("el-button");return n(),l("div",Ze,[c("div",et,[a(h,{class:"mb-4"}),a(_,{class:"mb-4"}),a(m,{class:"mb-4"}),a(p,{class:"mb-4"}),a(w,{class:"mb-4"})]),c("div",tt,[a(i,{value:e.consumption,service:e.service},null,8,["value","service"]),a(R,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:$(()=>[a(v,{icon:"fa-solid fa-magic",class:"mr-2"}),u(" "+o(e.$t("nanobanana.button.generate")),1)]),_:1},8,["onClick"])])])}const ot=y(Ye,[["render",at]]),nt=k({name:"TaskPreview",components:{ElImage:Q,CopyToClipboard:ie,FontAwesomeIcon:S,ElAlert:J,ImageWrapper:ce,ElButton:q,ElTooltip:X,ImagePreview:W},props:{modelValue:{type:Object,required:!0}},computed:{images(){const e=[];return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(t=>{e.push(t)}),e}},methods:{onEdit(e){if(!e)return;console.debug("Edit image:",e);const t={...this.$store.state.nanobanana?.config||{}};delete t.action,t.image_urls=[e],this.$store.commit("nanobanana/setConfig",t)}}}),st={class:"preview"},lt={class:"left"},rt={class:"main"},it={class:"bot"},ct={class:"datetime"},ut={class:"info"},dt={key:0,class:"flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto"},mt={key:1,class:"prompt mt-2"},pt={key:0},ft={key:0,class:O({content:!0,failed:!0})},ht={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},_t={class:O({operations:!0,"mt-2":!0,"mb-2":!0})},gt={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},bt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},$t={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},vt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},kt={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},yt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},wt={key:1,class:O({content:!0})},At={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Vt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Nt={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Rt={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Et={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},It={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Lt={key:4,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Tt={key:2,class:O({content:!0})},St={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},qt={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ot={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ut={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ct={class:"text-[var(--el-text-color-regular)] text-xs mb-2"};function Pt(e,t,g,r,d,f){const h=s("el-image"),_=s("image-preview"),m=s("image-wrapper"),p=s("el-button"),w=s("el-tooltip"),i=s("font-awesome-icon"),v=s("copy-to-clipboard"),R=s("el-alert");return n(),l("div",st,[c("div",lt,[a(h,{src:"https://cdn.acedata.cloud/859plc.jpg",class:"avatar"})]),c("div",rt,[c("div",it,[u(o(e.$t("nanobanana.name.nanobananaBot"))+" ",1),c("span",ct,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),c("div",ut,[e.modelValue?.request?.image_urls&&e.modelValue?.request?.image_urls.length>0?(n(),l("div",dt,[(n(!0),l(A,null,N(e.modelValue?.request?.image_urls,(I,L)=>(n(),V(_,{key:L,url:I,name:`image-${L+1}`,closable:!1},null,8,["url","name"]))),128))])):b("",!0),e.modelValue?.request?.prompt?(n(),l("p",mt,[u(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?b("",!0):(n(),l("span",pt," - ("+o(e.$t("nanobanana.status.pending"))+") ",1))])):b("",!0)]),e.modelValue?.response?.success===!0?(n(),l("div",ft,[c("div",ht,[(n(!0),l(A,null,N(e.images,(I,L)=>(n(),V(m,{key:L,src:I?.image_url,"raw-src":I?.image_url},null,8,["src","raw-src"]))),128))]),c("div",_t,[a(w,{class:"box-item",effect:"dark",content:e.$t("common.button.edit"),placement:"top-start"},{default:$(()=>[a(p,{type:"info",size:"small",class:"btn-action",onClick:t[0]||(t[0]=Y(I=>e.onEdit(e.images?.[0]?.image_url),["stop"]))},{default:$(()=>[u(o(e.$t("common.button.edit")),1)]),_:1})]),_:1},8,["content"])]),a(R,{closable:!1,class:"mt-2 success"},{default:$(()=>[e.modelValue?.request?.model?(n(),l("p",gt,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",bt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",$t,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",vt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",kt,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy inline-block"},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),l("p",yt,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(v,{content:e.modelValue?.response?.trace_id,class:"btn-copy inline-block"},null,8,["content"])])):b("",!0)]),_:1})])):e.modelValue?.response?.success===!1?(n(),l("div",wt,[a(R,{closable:!1,class:"failure"},{template:$(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failure")),1)]),default:$(()=>[e.modelValue?.request?.model?(n(),l("p",At,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",Vt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Nt,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",Rt,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",Et,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])]),c("p",It,[a(i,{icon:"fa-solid fa-circle-info",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failureReason"))+": "+o(e.modelValue?.response?.error?.message)+" ",1),a(v,{content:e.modelValue?.response?.error?.message,class:"btn-copy"},null,8,["content"])]),e.modelValue?.response?.trace_id?(n(),l("p",Lt,[a(i,{icon:"fa-solid fa-hashtag",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.traceId"))+": "+o(e.modelValue?.response?.trace_id)+" ",1),a(v,{content:e.modelValue?.response?.trace_id,class:"btn-copy"},null,8,["content"])])):b("",!0)]),_:1})])):(n(),l("div",Tt,[a(R,{closable:!1,class:"info"},{template:$(()=>[a(i,{icon:"fa-solid fa-exclamation-triangle",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.failure")),1)]),default:$(()=>[e.modelValue?.request?.model?(n(),l("p",St,[a(i,{icon:"fa-solid fa-cube",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.model"))+": "+o(e.modelValue?.request?.model),1)])):b("",!0),e.modelValue?.request?.resolution?(n(),l("p",qt,[a(i,{icon:"fa-solid fa-image",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.resolution"))+": "+o(e.modelValue?.request?.resolution),1)])):b("",!0),e.modelValue?.request?.aspect_ratio?(n(),l("p",Ot,[a(i,{icon:"fa-solid fa-up-right-from-square",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.aspectRatio"))+": "+o(e.modelValue?.request?.aspect_ratio),1)])):b("",!0),e.modelValue?.request?.action?(n(),l("p",Ut,[a(i,{icon:"fa-solid fa-bolt",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.task"))+": "+o(e.modelValue?.request?.action==="generate"?e.$t("nanobanana.name.generate"):e.$t("nanobanana.name.edits")),1)])):b("",!0),c("p",Ct,[a(i,{icon:"fa-solid fa-magic",class:"mr-1"}),u(" "+o(e.$t("nanobanana.name.taskId"))+": "+o(e.modelValue?.id)+" ",1),a(v,{content:e.modelValue?.id,class:"btn-copy"},null,8,["content"])])]),_:1})]))])])}const Bt=y(nt,[["render",Pt],["__scopeId","data-v-72e2ec32"]]),Mt=k({name:"RecentPanel",components:{TaskPreview:Bt,BotPlaceholder:ue,NoTasks:de,ScrollList:ne},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.nanobanana?.tasks,items:this.$store.state.nanobanana?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Gt={key:0},jt={key:2,class:"w-full h-full flex items-center justify-center"};function Dt(e,t,g,r,d,f){const h=s("bot-placeholder"),_=s("task-preview"),m=s("scroll-list"),p=s("no-tasks");return n(),l(A,null,[e.tasks?.items===void 0?(n(),l("div",Gt,[a(h)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),V(m,{key:1,ref:"scrollList",class:"tasks h-full w-full overflow-y-auto",loading:e.loading,onReachTop:t[0]||(t[0]=w=>e.$emit("reach-top"))},{default:$(()=>[(n(!0),l(A,null,N(e.tasks?.items,w=>(n(),V(_,{key:w.id,"model-value":w},null,8,["model-value"]))),128))]),_:1},8,["loading"])):b("",!0),e.tasks?.items?.length===0?(n(),l("div",jt,[a(p)])):b("",!0)],64)}const Ft=y(Mt,[["render",Dt]]),zt="https://webhook.acedata.cloud/nanobanana",Wt=k({name:"NanobananaIndex",components:{ConfigPanel:ot,Layout:ge,RecentPanel:Ft},inject:["initialized"],data(){return{task:void 0,job:0,loading:!1}},computed:{applicationsLoading(){return this.$store.state.nanobanana?.status?.getApplications===F.Request},tasksLoading(){return this.$store.state.nanobanana?.status?.getTasks===F.Request},credential(){return this.$store.state.nanobanana?.credential},config(){return this.$store.state.nanobanana?.config},application(){return this.$store.state.nanobanana?.application},tasks(){return this.$store.state.nanobanana?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug("new tasks detected")},deep:!0},initialized:{async handler(e){e&&(console.debug("layout initialized"),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){if(console.debug("reached top"),this.loading||this.tasksLoading)return;const e=this.tasks?.total,t=this.tasks?.items?.length||0;if(e!==void 0&&e<=t)return;const g=this.tasks?.items?.[0];if(!g?.created_at)return;const d=this.$refs.recentPanel?.getScrollElement?.(),f=d?.scrollHeight||0,h=d?.scrollTop||0;this.loading=!0;try{if(await this.onGetTasks({createdAtMax:g.created_at}),await this.$nextTick(),d){const _=d.scrollHeight;d.scrollTop=_-f+h}}finally{this.loading=!1}},async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("nanobanana/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("nanobanana/getApplications"),console.debug("end onGetApplication"),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.tasksLoading){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=20,createdAtMin:g,createdAtMax:r}=e||{};console.debug("limit",t,"createdAtMin",g,"createdAtMax",r),await this.$store.dispatch("nanobanana/getTasks",{limit:t,createdAtMin:g,createdAtMax:r})},async onGenerate(){const e={...this.config||{}},t=Array.isArray(e?.image_urls)&&e.image_urls.length>0;delete e.action,!t&&"image_urls"in e&&delete e.image_urls,e?.aspect_ratio||delete e.aspect_ratio,e?.model!==P&&"resolution"in e&&delete e.resolution,e?.model===P&&!e?.resolution&&(e.resolution=T);const g={...e,action:t?"edit":"generate",callback_url:zt},r=this.credential?.token;if(!r){console.error("no token specified");return}E.info(this.$t("nanobanana.message.startingTask")),ae.generate(g,{token:r}).then(()=>{E.success(this.$t("nanobanana.message.startTaskSuccess"))}).catch(d=>{const f=d?.response?.data;f?.error?.code===oe?E.error(this.$t("nanobanana.message.usedUp")):E.error(this.$t("nanobanana.message.startTaskFailed")+(f?.error?.message||""))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function xt(e,t,g,r,d,f){const h=s("config-panel"),_=s("recent-panel"),m=s("layout");return n(),V(m,null,{config:$(()=>[a(h,{onGenerate:e.onGenerate},null,8,["onGenerate"])]),result:$(()=>[a(_,{ref:"recentPanel",loading:e.loading,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),_:1})}const ua=y(Wt,[["render",xt]]);export{ua as default};