@acedatacloud/nexior 3.30.2 → 3.30.3

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 (161) hide show
  1. package/dist/assets/Auth-C4dVHIKO.js +1 -0
  2. package/dist/assets/BotPlaceholder-Blzus1Ba.js +1 -0
  3. package/dist/assets/Callback-CTYxeo8Z.js +1 -0
  4. package/dist/assets/Console-BbGWMKKZ.js +1 -0
  5. package/dist/assets/Conversation-DiVMGW94.js +23 -0
  6. package/dist/assets/CopyToClipboard-CmHXEPMr.js +1 -0
  7. package/dist/assets/{Detail-HplVitVr.css → Detail-D68ZlN5z.css} +1 -1
  8. package/dist/assets/Detail-VDnCOUUU.js +2 -0
  9. package/dist/assets/{EditArray-DpGXSb1V.js → EditArray-OA-NVBZO.js} +1 -1
  10. package/dist/assets/Extra-BY28y3mx.js +1 -0
  11. package/dist/assets/FilePreview-DQpvzXs_.js +1 -0
  12. package/dist/assets/History-B1pKVuTR.js +1 -0
  13. package/dist/assets/{ImagePreview-Dun0qhAC.js → ImagePreview-DpdyaY-J.js} +1 -1
  14. package/dist/assets/ImageWrapper-D-q49c6z.js +1 -0
  15. package/dist/assets/Index-BCkGN8zE.css +1 -0
  16. package/dist/assets/Index-BJGORTT2.js +1 -0
  17. package/dist/assets/Index-Ba9yXMzu.js +1 -0
  18. package/dist/assets/Index-C7LHJpMK.js +1 -0
  19. package/dist/assets/Index-CCcF6hZ9.js +1 -0
  20. package/dist/assets/Index-Ch-rWHP2.css +1 -0
  21. package/dist/assets/{Index-CXVGa2ZU.css → Index-CuZIoeXJ.css} +1 -1
  22. package/dist/assets/{Index-DtTR08nA.css → Index-CujgCEXB.css} +1 -1
  23. package/dist/assets/Index-D1Rz1tfd.js +1 -0
  24. package/dist/assets/Index-D2oTY94j.js +1 -0
  25. package/dist/assets/Index-D7GnQkM4.js +1 -0
  26. package/dist/assets/{Index-BlTMjqXS.js → Index-DUJTbNQH.js} +1 -1
  27. package/dist/assets/Index-DZMphueF.js +1 -0
  28. package/dist/assets/Index-DZT53ftk.js +1 -0
  29. package/dist/assets/Index-DgsKsh3B.js +1 -0
  30. package/dist/assets/Index-Dia7Vi_r.js +1 -0
  31. package/dist/assets/Index-Ds2oO7k1.js +1 -0
  32. package/dist/assets/{Index-BS4HFQ5A.css → Index-DxzQLCOp.css} +1 -1
  33. package/dist/assets/Index-LTWS2Usl.css +1 -0
  34. package/dist/assets/Index-O0SBFGmH.js +1 -0
  35. package/dist/assets/Index-_Jl_BYAz.js +1 -0
  36. package/dist/assets/Index-dyBrOVOM.js +1 -0
  37. package/dist/assets/Index-guHNQauE.js +1 -0
  38. package/dist/assets/Index-myIt_TK4.js +1 -0
  39. package/dist/assets/Index-sDMWgguk.js +1 -0
  40. package/dist/assets/Index-xfpPqB6k.js +1 -0
  41. package/dist/assets/Invitees-DkWxP4e3.js +1 -0
  42. package/dist/assets/{List-DX7teWzL.js → List-BqzG7ehZ.js} +1 -1
  43. package/dist/assets/List-BxIMcYD8.js +1 -0
  44. package/dist/assets/{List-0wMSr6sl.js → List-CEq_u8D0.js} +1 -1
  45. package/dist/assets/{Login-HaVOMqv1.js → Login-CIXJrgOw.js} +1 -1
  46. package/dist/assets/Main-CQsNTqVL.js +1 -0
  47. package/dist/assets/Navigator-BrdQZd1b.js +1 -0
  48. package/dist/assets/NoTasks-BiOsXlaq.js +1 -0
  49. package/dist/assets/{Pagination-B1kOfzR8.js → Pagination-BbqydTat.js} +1 -1
  50. package/dist/assets/ScrollList-DPLKBqBd.js +1 -0
  51. package/dist/assets/{Status-CviAA8Me.js → Status-UWszJlPM.js} +1 -1
  52. package/dist/assets/Subscribe-DUBYadQ1.js +1 -0
  53. package/dist/assets/TransportWebHID-BEAZzcY0.js +1 -0
  54. package/dist/assets/VideoPlayer-DWTQSZjy.js +1 -0
  55. package/dist/assets/avatar-D84fE3q6.js +1 -0
  56. package/dist/assets/bignumber-C1xKUtxX.js +1 -0
  57. package/dist/assets/common-Cg7wDjqw.js +1 -0
  58. package/dist/assets/common-DFpFqR7d.js +1 -0
  59. package/dist/assets/{distribution-D9pkXpfI.js → distribution-CJuee8y2.js} +1 -1
  60. package/dist/assets/draggabilly-23WCleZP.js +14 -0
  61. package/dist/assets/hailuo-BW-py-iC.js +1 -0
  62. package/dist/assets/hailuo-CPbFju9j.js +1 -0
  63. package/dist/assets/index-BLy_0GNg.js +9 -0
  64. package/dist/assets/index-BfyfYtZm.js +1 -0
  65. package/dist/assets/index-C1rwxuCG.js +48 -0
  66. package/dist/assets/index-C49kyaKg.js +1 -0
  67. package/dist/assets/{index-BhLJWZHg.css → index-CJFrXZHu.css} +1 -1
  68. package/dist/assets/index-D-6_CPHX.js +196 -0
  69. package/dist/assets/index-DLiWuf1u.js +3 -0
  70. package/dist/assets/index-D_w37A4E.js +303 -0
  71. package/dist/assets/index-FyDryJF8.js +613 -0
  72. package/dist/assets/index-jeGnfJ_l.js +3 -0
  73. package/dist/assets/index.es-L8lIAtWn.js +1 -0
  74. package/dist/assets/{midjourney-pGIr4mFy.js → midjourney-7qNi1gDF.js} +1 -1
  75. package/dist/assets/{midjourney-DrEvLpOW.js → midjourney-AZSr0dUI.js} +1 -1
  76. package/dist/assets/{midjourney-DTPFL7H6.js → midjourney-BA9N9EzD.js} +1 -1
  77. package/dist/assets/{midjourney-BiEcgyn_.js → midjourney-BELjzcp_.js} +1 -1
  78. package/dist/assets/{midjourney-3qTfZ2g0.js → midjourney-BXioF2pd.js} +1 -1
  79. package/dist/assets/{midjourney-BB8_8Y0b.js → midjourney-BertSXin.js} +1 -1
  80. package/dist/assets/{midjourney-BX43t6mP.js → midjourney-C45UFOHr.js} +1 -1
  81. package/dist/assets/{midjourney-BSa-zke8.js → midjourney-C9mIk6WS.js} +1 -1
  82. package/dist/assets/{midjourney-BPH2f-mB.js → midjourney-CD2E4s8K.js} +1 -1
  83. package/dist/assets/{midjourney-J2zj1IYa.js → midjourney-CJ_sZW8R.js} +1 -1
  84. package/dist/assets/{midjourney-DrLxaHYR.js → midjourney-CTHpnRlb.js} +1 -1
  85. package/dist/assets/{midjourney-DLjNdgAu.js → midjourney-CZZTzaNU.js} +1 -1
  86. package/dist/assets/{midjourney-CsMxES1u.js → midjourney-CZybL7nq.js} +1 -1
  87. package/dist/assets/{midjourney-S0C_rEm5.js → midjourney-D0jbNv1J.js} +1 -1
  88. package/dist/assets/{midjourney-BforSgJQ.js → midjourney-D7EOsHLu.js} +1 -1
  89. package/dist/assets/{midjourney-DtqGn3W4.js → midjourney-H5Wuq1-p.js} +1 -1
  90. package/dist/assets/{midjourney-CF6rGKLn.js → midjourney-HSS4vV-y.js} +1 -1
  91. package/dist/assets/{midjourney-BlWzdaOt.js → midjourney-NmlOsMCS.js} +1 -1
  92. package/dist/assets/{order-DYcfG_Yw.js → order-DUXA8yqM.js} +1 -1
  93. package/dist/assets/{pagination-bjoHZNQW.js → pagination-CihAE3FS.js} +1 -1
  94. package/dist/assets/price-BRDkc6EK.js +1 -0
  95. package/dist/assets/solana-wallets-o-Zvvwmq.js +2 -0
  96. package/dist/assets/solanaEmbed.esm-B2cUJHFV.js +10 -0
  97. package/dist/assets/string_decoder-BJaILowq.js +1 -0
  98. package/dist/assets/vendor-chart-CZ0ow4AA.js +18 -0
  99. package/dist/assets/vendor-dayjs-CzbnksQQ.js +1 -0
  100. package/dist/assets/vendor-element-plus-B4FTqxj4.js +30 -0
  101. package/dist/assets/{vendor-highlight-BX2iaugd.js → vendor-highlight-CvK2rpA0.js} +2 -2
  102. package/dist/assets/{vendor-vue-BzRnDgD5.js → vendor-vue-1w_NBnjl.js} +1 -1
  103. package/dist/assets/{vendor-vue-router-nHemWFue.js → vendor-vue-router-Dj5bcX0v.js} +2 -2
  104. package/dist/assets/vendor-web3-BWcfcUXi.js +4912 -0
  105. package/dist/assets/vendor-web3-CY2j0e5U.css +1 -0
  106. package/dist/assets/vue-plyr-BqJN4-Iw.css +1 -0
  107. package/dist/assets/vue-plyr-QZFBikSk.js +2 -0
  108. package/dist/assets/web-D_YOPR7Z.js +1 -0
  109. package/dist/assets/web-TogH-A1y.js +1 -0
  110. package/dist/index.html +21 -12
  111. package/dist/llms.txt +43 -0
  112. package/dist/robots.txt +1 -0
  113. package/package.json +1 -1
  114. package/dist/assets/Auth-BkGrZ4Al.js +0 -1
  115. package/dist/assets/BotPlaceholder-ClX8uvvo.js +0 -1
  116. package/dist/assets/Callback-IUPA4O7m.js +0 -1
  117. package/dist/assets/Console-BTsHmxR2.js +0 -1
  118. package/dist/assets/Conversation-BQBR_j0K.js +0 -2
  119. package/dist/assets/CopyToClipboard-D0yPTPYW.js +0 -1
  120. package/dist/assets/Detail-BcwTLOZv.js +0 -2
  121. package/dist/assets/Extra-CE80Lwfe.js +0 -1
  122. package/dist/assets/FilePreview-FTIIxIUg.js +0 -1
  123. package/dist/assets/History-Cq4Psb81.js +0 -1
  124. package/dist/assets/ImageWrapper-DAJLZ3ud.js +0 -1
  125. package/dist/assets/Index-B3g6nU2_.js +0 -1
  126. package/dist/assets/Index-B8R2yKg9.js +0 -1
  127. package/dist/assets/Index-B8lqf5YW.js +0 -1
  128. package/dist/assets/Index-BEZF06uI.js +0 -1
  129. package/dist/assets/Index-BdtTQ6vy.js +0 -1
  130. package/dist/assets/Index-Bj7Azusj.js +0 -1
  131. package/dist/assets/Index-C1IT2qoC.css +0 -1
  132. package/dist/assets/Index-CisgqdWF.js +0 -1
  133. package/dist/assets/Index-DOEux2Eg.js +0 -1
  134. package/dist/assets/Index-DQFKWn2R.js +0 -1
  135. package/dist/assets/Index-DWvt1qKL.js +0 -1
  136. package/dist/assets/Index-DXqYbSJL.js +0 -1
  137. package/dist/assets/Index-DfUlcZfy.js +0 -1
  138. package/dist/assets/Index-DyjIS2LR.js +0 -1
  139. package/dist/assets/Index-KwYNRzOz.js +0 -1
  140. package/dist/assets/Index-M5tWRCsH.js +0 -1
  141. package/dist/assets/Index-Zpzkw1HQ.js +0 -1
  142. package/dist/assets/Index-ocDyFWdk.js +0 -1
  143. package/dist/assets/Invitees-BCHKmn__.js +0 -1
  144. package/dist/assets/List-D-RW25bD.js +0 -1
  145. package/dist/assets/Main-DgiFebD-.js +0 -1
  146. package/dist/assets/Navigator-D08MfOeK.js +0 -1
  147. package/dist/assets/NoTasks-CQZOGbwI.js +0 -1
  148. package/dist/assets/ScrollList-CfFOKFbb.js +0 -1
  149. package/dist/assets/Subscribe-QybZFlvY.js +0 -1
  150. package/dist/assets/VideoPlayer-Bx5Q-Jo7.js +0 -1
  151. package/dist/assets/common-4G-6GjVw.js +0 -1
  152. package/dist/assets/common-Dq_GF8st.js +0 -1
  153. package/dist/assets/hailuo-D-zG7pKA.js +0 -1
  154. package/dist/assets/hailuo-DjqqC0kS.js +0 -1
  155. package/dist/assets/index-BwtxyV6k.js +0 -3
  156. package/dist/assets/price-Clo8IP03.js +0 -1
  157. package/dist/assets/vendor-B4-12K57.js +0 -5564
  158. package/dist/assets/vendor-Cp-P0JlL.css +0 -1
  159. package/dist/assets/vendor-chart-BKONGlyX.js +0 -13
  160. package/dist/assets/vendor-dayjs-D6Igi227.js +0 -1
  161. package/dist/assets/vendor-element-plus-C2t7-rNg.js +0 -6
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-highlight-BX2iaugd.js","assets/vendor-B4-12K57.js","assets/vendor-vue-BzRnDgD5.js","assets/vendor-dayjs-D6Igi227.js","assets/vendor-katex-DHBGsivc.js","assets/vendor-katex-CIur2ABi.css","assets/vendor-Cp-P0JlL.css","assets/vendor-highlight-t6bI8mSi.css"])))=>i.map(i=>d[i]);
2
- import{a as ue}from"./vendor-axios-NIGUFBhG.js";import{d as E,c as u,o as s,b as me,h as pe,U as V,R as f,am as l,at as te,S as m,l as c,a as g,W as y,Z as _,F as L,ak as N,aj as W,a1 as M,Y as D,V as I,_ as he,au as ge,a2 as fe,P as Y}from"./vendor-vue-BzRnDgD5.js";import{ai as J,_ as S,ac as _e,aj as O,ak as Q,al as se,am as oe,an as P,ao as ve,ap as ye,aq as $e,ar as be,as as Ce,at as we,au as R,av as ne,a5 as ke,aw as H,ax as X,ay as Z,az as x,aA as ee,aB as T,ah as z,aC as Ee,aD as j,aE as Se,aF as Re}from"./index-BwtxyV6k.js";import{a5 as De,bR as ae,bU as qe,bV as Ie,bH as A}from"./vendor-B4-12K57.js";import"./vendor-katex-DHBGsivc.js";import"./vendor-highlight-BX2iaugd.js";import{C as Ge}from"./CopyToClipboard-D0yPTPYW.js";import{o as K,q as ie,i as Ae,k as B,r as Oe,s as k,f as re,g as le,h as de,H as Me,E as Te,O as Ve}from"./vendor-element-plus-C2t7-rNg.js";import{F as ce}from"./FilePreview-FTIIxIUg.js";import{I as Le}from"./ImagePreview-Dun0qhAC.js";import"./vendor-vue-router-nHemWFue.js";import"./vendor-dayjs-D6Igi227.js";const Ne=async e=>{const t=(await De(async()=>{const{default:d}=await import("./vendor-highlight-BX2iaugd.js");return{default:d}},__vite__mapDeps([0,1,2,3,4,5,6,7]))).default;e.querySelectorAll("pre code").forEach(d=>{const r=d.parentElement;if(!r)return;if(r.dataset.hasCopy==="1"){"highlightElement"in t?t.highlightElement(d):t.highlightBlock(d);return}const i=document.createElement("div");i.className="relative",r.parentNode.insertBefore(i,r),i.appendChild(r),r.classList.add("overflow-auto");const n=document.createElement("button");n.type="button",n.dataset.copyBtn="1",n.className="absolute top-1 right-1 z-10 rounded-md px-2 py-1 text-xs bg-zinc-800 text-white hover:bg-zinc-700 active:scale-95",n.textContent=J.global.t("common.button.copy").toString(),n.addEventListener("click",()=>{ae(d.innerText);const a=n.textContent;n.textContent=J.global.t("common.button.copied")?.toString(),setTimeout(()=>n.textContent=a,5e3)}),i.appendChild(n),r.dataset.hasCopy="1","highlightElement"in t?t.highlightElement(d):t.highlightBlock(d)})},Ue=E({name:"AnsweringMark",data(){return{}},computed:{conversationId(){return this.$route.params?.id?.toString()}}}),Fe={class:"mark"};function Pe(e,t,o,d,r,i){return s(),u("div",Fe)}const Be=S(Ue,[["render",Pe]]),He=E({name:"VueMarkdown",props:{source:{type:String,required:!0},options:{type:Object,default:()=>({}),required:!1}},setup(e,{attrs:t}){const o=new qe({...e.options,html:!0}).use(Ie,{delimiters:"all",throwOnError:!1,errorColor:"#cc0000",mathFence:!0}),d=me(()=>{const r=e.source;return o?.render(r).replace(/<think>/g,'<div class="think">').replace(/<\/think>/g,"</div>")});return()=>pe("div",{...t,innerHTML:d.value})}}),je=E({name:"MarkdownRenderer",directives:{highlight:Ne},components:{VueMarkdown:He},props:{content:{type:String,required:!1,default:""}}});function ze(e,t,o,d,r,i){const n=l("vue-markdown"),a=te("highlight");return V((s(),f(n,{source:e.content,class:"markdown-body bg-transparent pt-[3px] text-[inherit]"},null,8,["source"])),[[a]])}const We=S(je,[["render",ze],["__scopeId","data-v-de1f7a52"]]),Ke=E({name:"CopyToClipboard",components:{FontAwesomeIcon:A,ElTooltip:K},props:{messages:{type:Array,required:!1,default:()=>[]}},emits:["restart"],data(){return{copied:!1}},methods:{onRestart(){this.$emit("restart")}}});function Ye(e,t,o,d,r,i){const n=l("font-awesome-icon"),a=l("el-tooltip");return s(),f(a,{effect:"dark",content:e.$t("common.button.restart"),placement:"bottom"},{default:m(()=>[c(n,{icon:"fa-solid fa-sync",class:"icon-sync",onClick:e.onRestart},null,8,["onClick"])]),_:1},8,["content"])}const Je=S(Ke,[["render",Ye],["__scopeId","data-v-90e169cb"]]),Qe=E({name:"EditMessage",components:{FontAwesomeIcon:A,ElTooltip:K},props:{messages:{type:Array,required:!1,default:()=>[]}},emits:["click"],data(){return{copied:!1}},methods:{onEdit(){this.$emit("click")}}});function Xe(e,t,o,d,r,i){const n=l("font-awesome-icon"),a=l("el-tooltip");return s(),u("span",null,[c(a,{effect:"dark",content:e.$t("common.button.restart"),placement:"bottom"},{default:m(()=>[c(n,{icon:"fa-solid fa-edit",class:"icon icon-edit",onClick:e.onEdit},null,8,["onClick"])]),_:1},8,["content"])])}const Ze=S(Qe,[["render",Xe],["__scopeId","data-v-8e947e8f"]]),xe=E({name:"Message",components:{EditMessage:Ze,CopyToClipboard:Ge,RestartToGenerate:Je,AnsweringMark:Be,MarkdownRenderer:We,FilePreview:ce,ElButton:B,ElImage:Ae,ElInput:ie,FontAwesomeIcon:A},props:{messages:{type:Array,required:!1,default:()=>[]},message:{type:Object,required:!0},application:{type:Object,required:!0}},emits:["stop","edit","restart"],data(){return{copied:!1,isEditing:!1,questionValue:this.message.content,messageState:R}},computed:{modelGroup(){return this.$store.state.chat.modelGroup},errorText(){if(console.debug("error",this.message.error),!(!this.message.error||!this.message.error?.code)){if(this.message.error?.message)return this.message.error.message;switch(this.message.error?.code){case Q:return this.$t("chat.message.errorUsedUp");case we:return this.$t("chat.message.errorApiError");case Ce:return this.$t("chat.message.errorBadRequest");case be:return this.$t("chat.message.errorTimeout");case $e:return this.$t("chat.message.errorBusy");case ye:return this.$t("chat.message.errorContentTooLarge");case ve:return this.$t("chat.message.errorTooManyRequests");case P:return this.$t("chat.message.errorNotApplied");case oe:return;case se:default:return this.$t("chat.message.errorUnknown")}}},showBuyMore(){return this.message.role===O&&this.message.error?.code===Q}},watch:{},methods:{startEditing(){this.isEditing=!0,this.questionValue=this.message.content,console.debug("start to get answer",this.message)},cancelEdit(){this.isEditing=!1},onRestart(){this.$emit("restart",this.message)},onEdit(){this.isEditing=!1,this.onSubmit()},onSubmit(){this.$emit("edit",this.message,this.questionValue)},onCopy(){ae(this.message.content.toString(),{debug:!0}),this.copied=!0,setTimeout(()=>{this.copied=!1},3e3)},onBuyMore(){this.$router.push({name:_e,params:{id:this.application?.id}})}}}),et=["role"],tt={class:"author"},st={key:0,class:"main"},ot={initial:{opacity:0,y:5},enter:{opacity:1,y:0,scale:1},delay:300,duration:400,layout:!0,transition:{enter:{delay:.3,duration:.5},layout:{duration:.4,easing:"ease-in-out"}},class:"content"},nt={key:0,class:"message-content"},at={key:0},it={key:1,class:"whitespace-pre-wrap break-words w-fit max-w-full py-1"},rt={key:1},lt=["src"],dt={key:2},ct={key:1,class:"whitespace-pre-wrap break-words w-fit max-w-full py-1"},ut={key:1,class:"edits"},mt={class:"flex justify-end"},pt={initial:{opacity:0,y:5},enter:{opacity:1,y:0,scale:1},delay:300,duration:400,layout:!0,transition:{enter:{delay:.3,duration:.5},layout:{duration:.4,easing:"ease-in-out"}},class:"operations"},ht={key:1,class:"error-card"},gt={class:"error-content"},ft={class:"error-text"};function _t(e,t,o,d,r,i){const n=l("el-image"),a=l("markdown-renderer"),b=l("file-preview"),w=l("el-input"),h=l("el-button"),v=l("answering-mark"),p=l("edit-message"),q=l("copy-to-clipboard"),C=l("restart-to-generate"),U=l("font-awesome-icon"),G=te("motion");return s(),u("div",{class:I({message:!0,[e.message.role]:!0}),role:e.message.role},[g("div",tt,[e.message.role==="assistant"?(s(),f(n,{key:0,src:e.modelGroup?.icon,fit:"cover",class:"avatar"},null,8,["src"])):y("",!0)]),e.errorText?(s(),u("div",ht,[g("div",gt,[c(U,{icon:"fa-solid fa-circle-exclamation",class:"error-icon"}),g("span",ft,_(e.errorText),1)]),e.showBuyMore?(s(),f(h,{key:0,round:"",type:"primary",class:"btn-topup",size:"small",onClick:e.onBuyMore},{default:m(()=>[D(_(e.$t("common.button.buyMore")),1)]),_:1},8,["onClick"])):y("",!0)])):(s(),u("div",st,[V((s(),u("div",ot,[e.isEditing?(s(),u("div",ut,[c(w,{modelValue:e.questionValue,"onUpdate:modelValue":t[0]||(t[0]=$=>e.questionValue=$),type:"textarea",class:"mb-2",onKeydown:W(M(e.onEdit,["exact","prevent"]),["enter"])},null,8,["modelValue","onKeydown"]),g("div",mt,[c(h,{round:"",onClick:e.cancelEdit},{default:m(()=>[D(_(e.$t("common.button.cancel")),1)]),_:1},8,["onClick"]),c(h,{type:"primary",class:"btn-confirm",round:"",onClick:e.onEdit},{default:m(()=>[D(_(e.$t("common.button.confirm")),1)]),_:1},8,["onClick"])])])):(s(),u("div",nt,[Array.isArray(e.message.content)?(s(),u("div",rt,[(s(!0),u(L,null,N(e.message.content,($,F)=>(s(),u("div",{key:F},[$.type==="image_url"?(s(),u("img",{key:0,src:typeof $?.image_url=="string"?$.image_url:$.image_url?.url,fit:"cover",class:"image"},null,8,lt)):y("",!0),$.file_url?(s(),f(b,{key:1,name:typeof $?.file_url=="string"?$.file_url:$.file_url?.url,percentage:0,closable:!1,class:"mt-2"},null,8,["name"])):y("",!0),$.type==="text"?(s(),u("div",dt,[e.message.role==="assistant"?(s(),f(a,{key:0,content:$.text},null,8,["content"])):(s(),u("pre",ct,_($.text?.trim()),1))])):y("",!0)]))),128))])):(s(),u("div",at,[e.message.role==="assistant"?(s(),f(a,{key:0,content:e.message?.content},null,8,["content"])):(s(),u("pre",it,_(e.message.content),1))]))])),e.message.state===e.messageState.PENDING?(s(),f(v,{key:2})):y("",!0)])),[[G]]),V((s(),u("div",pt,[e.message.role==="user"&&!e.isEditing&&!Array.isArray(e.message.content)?(s(),f(p,{key:0,class:"btn-edit",onClick:e.startEditing},null,8,["onClick"])):y("",!0),!Array.isArray(e.message.content)&&(e.message.state===e.messageState.FINISHED||e.message.state===e.messageState.FAILED)?(s(),f(q,{key:1,content:e.message.content,class:"btn-copy"},null,8,["content"])):y("",!0),!Array.isArray(e.message.content)&&(e.message.state===e.messageState.FINISHED||e.message.state===e.messageState.FAILED)&&e.message.role==="assistant"&&e.message===e.messages[e.messages.length-1]?(s(),f(C,{key:2,class:"btn-restart",messages:e.messages,onRestart:e.onRestart},null,8,["messages","onRestart"])):y("",!0)])),[[G]])]))],10,et)}const vt=S(xe,[["render",_t],["__scopeId","data-v-8e83775c"]]),yt=E({name:"Composer",components:{FilePreview:ce,ImagePreview:Le,ElTooltip:K,FontAwesomeIcon:A,ElUpload:Oe,ElButton:B},props:{answering:{type:Boolean,required:!1,default:!1},references:{type:Array,required:!1,default:()=>[]},question:{type:String,required:!0}},emits:["update:question","update:references","submit","stop"],data(){return{inputHeight:"35px",questionValue:this.question||"",fileList:[],uploadUrl:ke()+"/api/v1/files/"}},computed:{model(){return this.$store.state.chat.model},modelGroup(){return this.$store.state.chat.modelGroup},isFileSupported(){return this.model?.isFileSupported},isImageSupported(){return this.model?.isImageSupported},headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},uploading(){return!!this.fileList.find(e=>e.percentage!==void 0&&e.percentage>=0&&e.percentage<100)},extensions(){if(this.isFileSupported===!1&&this.isImageSupported===!0)return".png,.jpg,.jpeg,.gif,.bmp,.webp,.svg,.tiff,.ico,.heic"}},watch:{urls(e){console.debug("File URLs:",e),e.length>0&&this.$emit("update:references",e)},questionValue(e){this.$emit("update:question",e.trim())},question(e){e!==this.questionValue&&(this.questionValue=e)},references(e){console.debug("References updated:",e),e.length===0&&(this.fileList=[])},isFileSupported(e,t){t&&!e&&(this.fileList=[])}},methods:{isImageUrl:ne,adjustTextareaHeight(){this.$nextTick(()=>{const e=this.$refs.textarea;e&&(e.style.height="35px",e.style.height=e.scrollHeight+"px")})},onSubmit(){!this.question||this.uploading||this.$emit("submit")},onStop(){this.$emit("stop")},onProgress(e,t){console.debug("File upload progress:",t.name,e.loaded,e.total,t.percentage)},onExceed(){k.warning(this.$t("chat.message.uploadReferencesExceed"))},onError(){k.error(this.$t("chat.message.uploadReferencesError"))}}}),$t={class:"composer"},bt={class:"tools"},Ct=["disabled","placeholder"];function wt(e,t,o,d,r,i){const n=l("image-preview"),a=l("file-preview"),b=l("font-awesome-icon"),w=l("el-tooltip"),h=l("el-upload"),v=l("el-button");return s(),u("div",$t,[g("div",bt,[c(h,{"file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=p=>e.fileList=p),class:I({upload:!0,disabled:!e.isFileSupported&&!e.isImageSupported||e.answering}),accept:e.extensions,disabled:!e.isFileSupported&&!e.isImageSupported||e.answering,name:"file",limit:10,multiple:!0,action:e.uploadUrl,"list-type":"picture","on-exceed":e.onExceed,"on-error":e.onError,"on-progress":e.onProgress,headers:e.headers},{file:m(({file:p})=>[e.isImageUrl(p.name)?(s(),f(n,{key:0,url:p.url||p.response?.file_url,name:p.name,percentage:p.percentage,onRemove:q=>e.fileList.splice(e.fileList.indexOf(p),1)},null,8,["url","name","percentage","onRemove"])):(s(),f(a,{key:1,name:p.name,percentage:p.percentage,onRemove:q=>e.fileList.splice(e.fileList.indexOf(p),1)},null,8,["name","percentage","onRemove"]))]),default:m(()=>[c(w,{class:"box-item",effect:"dark",content:e.$t("chat.message.uploadFile"),placement:"bottom"},{default:m(()=>[g("span",{class:I({btn:!0,"btn-upload":!0,disabled:!e.isFileSupported&&!e.isImageSupported||e.answering})},[c(b,{icon:"fa-solid fa-plus",class:"icon icon-attachment"})],2)]),_:1},8,["content"])]),_:1},8,["file-list","class","accept","disabled","action","on-exceed","on-error","on-progress","headers"])]),c(v,{disabled:e.answering||!e.questionValue||e.uploading,type:"primary",class:I({btn:!0,"btn-send":!0}),onClick:e.onSubmit},{default:m(()=>[c(b,{icon:"fa-solid fa-arrow-up",class:"icon icon-send"})]),_:1},8,["disabled","onClick"]),V(c(v,{disabled:!e.answering,type:"primary",class:I({btn:!0,"btn-stop":!0}),onClick:e.onStop},{default:m(()=>[c(b,{icon:"fa-solid fa-stop",class:"icon icon-stop"})]),_:1},8,["disabled","onClick"]),[[he,e.answering]]),V(g("textarea",{ref:"textarea","onUpdate:modelValue":t[1]||(t[1]=p=>e.questionValue=p),disabled:e.answering,class:"input",placeholder:e.$t("chat.message.newMessagePlaceholder"),style:fe({height:e.inputHeight}),onKeydown:t[2]||(t[2]=W(M((...p)=>e.onSubmit&&e.onSubmit(...p),["exact","prevent"]),["enter"])),onInput:t[3]||(t[3]=(...p)=>e.adjustTextareaHeight&&e.adjustTextareaHeight(...p))},null,44,Ct),[[ge,e.questionValue]])])}const kt=S(yt,[["render",wt],["__scopeId","data-v-2d5d451e"]]),Et=E({name:"ModelSelector",components:{ElDropdown:de,ElDropdownMenu:le,ElDropdownItem:re,FontAwesomeIcon:A},emits:["update:modelValue","select","model-group-changed","model-changed"],data(){return{options:[H,X,Z,x,ee]}},computed:{model(){return console.log("model",this.$store.state.chat.model),this.$store.state.chat.model},modelGroup(){return this.$route.meta?.modelGroup||H}},watch:{modelGroup(e){console.debug("modelGroup from route changed",e),this.$store.dispatch("chat/setModelGroup",e),this.$store.dispatch("chat/setModel",e.models[0])}},mounted(){console.debug("ModelSelector mounted, checking model group");const t=[H,X,Z,x,ee].find(o=>o.name===this.modelGroup.name);console.debug("Found model group:",t),t&&(this.$store.dispatch("chat/setModelGroup",t),this.$store.dispatch("chat/setModel",t.models[0]))},methods:{onModelGroupChange(e){this.$store.dispatch("chat/setModelGroup",e),this.$emit("model-group-changed",e)},onModelChange(e){this.$store.dispatch("chat/setModel",e),this.$emit("model-changed",e)}}}),St={class:"selector"},Rt={class:"trigger"},Dt=["src"],qt={class:"trigger-name"},It={class:"item"},Gt=["src"],At={class:"item-info"},Ot={key:0,class:"item-name"},Mt={key:1,class:"item-desc"};function Tt(e,t,o,d,r,i){const n=l("font-awesome-icon"),a=l("el-dropdown-item"),b=l("el-dropdown-menu"),w=l("el-dropdown");return s(),u("div",St,[c(w,{trigger:"click","popper-class":"model-selector-popper"},{dropdown:m(()=>[e.modelGroup&&e.modelGroup?.models?(s(),f(b,{key:0},{default:m(()=>[(s(!0),u(L,null,N(e.modelGroup?.models?.filter(h=>h.enabled),(h,v)=>(s(),f(a,{key:v,class:I({active:e.model?.name===h?.name}),onClick:p=>e.onModelChange(h)},{default:m(()=>[g("div",It,[h?.icon?(s(),u("img",{key:0,src:h.icon,class:"item-icon"},null,8,Gt)):y("",!0),g("div",At,[h?.getDisplayName?(s(),u("p",Ot,_(h?.getDisplayName()),1)):y("",!0),h?.getDescription?(s(),u("p",Mt,_(h?.getDescription()),1)):y("",!0)]),e.model?.name===h?.name?(s(),f(n,{key:1,icon:"fa-solid fa-check",class:"item-check"})):y("",!0)])]),_:2},1032,["class","onClick"]))),128))]),_:1})):y("",!0)]),default:m(()=>[g("div",Rt,[e.model?.icon?(s(),u("img",{key:0,src:e.model.icon,class:"trigger-icon"},null,8,Dt)):y("",!0),g("span",qt,_(e.model?.getDisplayName()),1),c(n,{icon:"fa-solid fa-chevron-down",class:"trigger-arrow"})])]),_:1})])}const Vt=S(Et,[["render",Tt],["__scopeId","data-v-ef076115"]]),Lt={},Nt={class:"disclaimer"};function Ut(e,t){return s(),u("p",Nt,_(e.$t("chat.message.howToUse")),1)}const Ft=S(Lt,[["render",Ut],["__scopeId","data-v-d2d980ab"]]),Pt=E({name:"SidePanel",components:{ElInput:ie,ElButton:B,ElDialog:Te,ElDropdown:de,ElDropdownItem:re,ElDropdownMenu:le,FontAwesomeIcon:A,ElSkeleton:Me},props:{},emits:["change-conversation"],data(){return{renameDialogVisible:!1,deleteDialogVisible:!1,actingConversation:void 0,renameDraft:"",renameSubmitting:!1,deleteSubmitting:!1}},computed:{modelGroup(){return this.$store.state.chat.modelGroup},conversationId(){return console.debug("conversationId in side",this.$route.params?.id),this.$route.params?.id?.toString()},conversations(){let e=this.$store.state.chat.conversations;return console.debug("conversations",e),console.debug("modelGroup",this.modelGroup),e=e?.filter(t=>t?.model&&this.modelGroup?.models?.map(o=>o.name)?.includes(t?.model)),console.debug("filtered conversations",e),e},conversationGroups(){const e=new Date;e.setHours(0,0,0,0);const t=new Date(e);t.setDate(t.getDate()-1);const o=new Date(e);o.setDate(o.getDate()-e.getDay());const d=new Date(o);d.setDate(d.getDate()-7);const r=this.conversations?.reduce((i,n)=>{const a=new Date(n.updated_at*1e3);return a>=e?i.today.push(n):a>=t?i.yesterday.push(n):a>=o?i.thisWeek.push(n):i.earlier.push(n),i},{today:[],yesterday:[],thisWeek:[],earlier:[]});return{...r?.today?.length>0?{today:r?.today?.sort((i,n)=>n.updated_at-i.updated_at)}:{},...r?.yesterday?.length>0?{yesterday:r?.yesterday?.sort((i,n)=>n.updated_at-i.updated_at)}:{},...r?.thisWeek?.length>0?{thisWeek:r?.thisWeek?.sort((i,n)=>n.updated_at-i.updated_at)}:{},...r?.earlier?.length>0?{earlier:r?.earlier?.sort((i,n)=>n.updated_at-i.updated_at)}:{}}},application(){return this.$store.state.chat.application},loading(){return this.$store.state.chat.status.getConversations===z.Request},token(){return this.$store.state.chat?.credential?.token}},watch:{modelGroup(){console.debug("modelGroup changed, refreshing conversations");const e=this.conversations?.[0];this.$emit("change-conversation",e?.id)}},methods:{async onNewConversation(){console.debug("onNewConversation from side panel"),this.$emit("change-conversation",void 0)},onClickConversation(e){console.debug("onClickConversation in side panel",e),this.$emit("change-conversation",e)},getConversationTitle(e){return e?.title||e?.messages?.[e?.messages.length-1]?.content||e?.messages?.[0]?.content||""},onConversationCommand(e,t){e==="rename"?this.openRenameDialog(t):e==="delete"&&this.openDeleteDialog(t)},openRenameDialog(e){this.actingConversation=e,this.renameDraft=(e?.title||"").trim(),this.renameDialogVisible=!0},openDeleteDialog(e){this.actingConversation=e,this.deleteDialogVisible=!0},async onConfirmRename(){const e=this.token,t=this.actingConversation?.id,o=(this.renameDraft||"").trim();if(!e){k.error("Token 不存在,请重新登录");return}if(!t){k.error("会话不存在");return}if(!o){k.warning("请输入名称");return}this.renameSubmitting=!0;try{await T.updateConversation({id:t,title:o},{token:e}),await this.$store.dispatch("chat/getConversations"),this.renameDialogVisible=!1,k.success("已重命名")}catch(d){console.error(d),k.error("重命名失败,请稍后重试")}finally{this.renameSubmitting=!1}},async onConfirmDelete(){const e=this.token,t=this.actingConversation?.id;if(!e){k.error("Token 不存在,请重新登录");return}if(!t){k.error("会话不存在");return}this.deleteSubmitting=!0;try{await T.deleteConversation(t,{token:e}),await this.$store.dispatch("chat/getConversations"),t===this.conversationId&&this.$emit("change-conversation",void 0),this.deleteDialogVisible=!1,k.success("已删除")}catch(o){console.error(o),k.error("删除失败,请稍后重试")}finally{this.deleteSubmitting=!1}}}}),Bt={class:"panel"},Ht={key:1,class:"conversations"},jt={class:"icons"},zt={class:"title"},Wt={class:"key"},Kt=["onClick"],Yt={class:"title"},Jt={class:"operations"};function Qt(e,t,o,d,r,i){const n=l("el-skeleton"),a=l("font-awesome-icon"),b=l("el-dropdown-item"),w=l("el-dropdown-menu"),h=l("el-dropdown"),v=l("el-input"),p=l("el-button"),q=l("el-dialog");return s(),u("div",Bt,[e.loading&&e.conversationGroups===void 0?(s(),f(n,{key:0})):(s(),u("div",Ht,[g("div",{class:"conversation",onClick:t[0]||(t[0]=(...C)=>e.onNewConversation&&e.onNewConversation(...C))},[g("div",jt,[c(a,{icon:"fa-solid fa-plus",class:"icon"})]),g("div",zt,_(e.$t("chat.message.startNewChat")),1)]),(s(!0),u(L,null,N(e.conversationGroups,(C,U)=>(s(),u("div",{key:U,class:"group"},[g("div",Wt,_(e.$t(`chat.group.${U}`)),1),(s(!0),u(L,null,N(C,(G,$)=>(s(),u("div",{key:$,class:I({conversation:!0,active:G.id===e.conversationId}),onClick:F=>e.onClickConversation(G.id)},[g("div",Yt,_(e.getConversationTitle(G)),1),g("div",Jt,[c(h,{trigger:"click",placement:"bottom-end",teleported:!0,onCommand:F=>e.onConversationCommand(F,G)},{dropdown:m(()=>[c(w,null,{default:m(()=>[c(b,{command:"rename",onClick:t[2]||(t[2]=M(()=>{},["stop"]))},{default:m(()=>[c(a,{icon:"fa-solid fa-pen-to-square",class:"mr-2"}),t[9]||(t[9]=D(" 重命名 ",-1))]),_:1,__:[9]}),c(b,{command:"delete",onClick:t[3]||(t[3]=M(()=>{},["stop"]))},{default:m(()=>[c(a,{icon:"fa-solid fa-trash",class:"mr-2"}),D(" "+_(e.$t("common.button.delete")),1)]),_:1})]),_:1})]),default:m(()=>[g("span",{class:"more",onClick:t[1]||(t[1]=M(()=>{},["stop"]))},[c(a,{icon:"fa-solid fa-ellipsis"})])]),_:2},1032,["onCommand"])])],10,Kt))),128))]))),128))])),c(q,{modelValue:e.renameDialogVisible,"onUpdate:modelValue":t[6]||(t[6]=C=>e.renameDialogVisible=C),width:"420px",title:"重命名","close-on-click-modal":!1},{footer:m(()=>[c(p,{onClick:t[5]||(t[5]=C=>e.renameDialogVisible=!1)},{default:m(()=>[D(_(e.$t("common.button.cancel")),1)]),_:1}),c(p,{type:"primary",loading:e.renameSubmitting,onClick:e.onConfirmRename},{default:m(()=>[D(_(e.$t("common.button.confirm")),1)]),_:1},8,["loading","onClick"])]),default:m(()=>[c(v,{modelValue:e.renameDraft,"onUpdate:modelValue":t[4]||(t[4]=C=>e.renameDraft=C),autofocus:"",onKeydown:W(e.onConfirmRename,["enter"])},null,8,["modelValue","onKeydown"])]),_:1},8,["modelValue"]),c(q,{modelValue:e.deleteDialogVisible,"onUpdate:modelValue":t[8]||(t[8]=C=>e.deleteDialogVisible=C),width:"420px",title:e.$t("chat.message.confirmDelete"),"close-on-click-modal":!1},{footer:m(()=>[c(p,{onClick:t[7]||(t[7]=C=>e.deleteDialogVisible=!1)},{default:m(()=>[D(_(e.$t("common.button.cancel")),1)]),_:1}),c(p,{type:"danger",loading:e.deleteSubmitting,onClick:e.onConfirmDelete},{default:m(()=>[D(_(e.$t("common.button.delete")),1)]),_:1},8,["loading","onClick"])]),default:m(()=>[t[10]||(t[10]=g("div",{class:"delete-tip"},"确认删除该会话?删除后不可恢复。",-1))]),_:1,__:[10]},8,["modelValue","title"])])}const Xt=S(Pt,[["render",Qt],["__scopeId","data-v-9439b6cb"]]),Zt=E({name:"LayoutChat",components:{SidePanel:Xt,ElDrawer:Ve,ElButton:B,FontAwesomeIcon:A},emits:["change-conversation"],data(){return{drawer:!1}},methods:{onChangeConversation(e){console.debug("onChangeConversation in layout",e),this.$emit("change-conversation",e)}}}),xt={class:"main"},es={class:"side"},ts={class:"chat"};function ss(e,t,o,d,r,i){const n=l("side-panel"),a=l("font-awesome-icon"),b=l("el-button"),w=l("el-drawer");return s(),u("div",xt,[g("div",es,[Y(e.$slots,"side",{},()=>[c(n,{onChangeConversation:e.onChangeConversation},null,8,["onChangeConversation"])],!0)]),g("div",ts,[Y(e.$slots,"chat",{},void 0,!0)]),c(b,{circle:"",class:"menu",onClick:t[0]||(t[0]=h=>e.drawer=!0)},{default:m(()=>[c(a,{icon:"fa-solid fa-bars"})]),_:1}),c(w,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=h=>e.drawer=h),direction:"ltr","with-header":!1,size:"290px"},{default:m(()=>[c(n,{onChangeConversation:e.onChangeConversation},null,8,["onChangeConversation"])]),_:1},8,["modelValue"])])}const os=S(Zt,[["render",ss],["__scopeId","data-v-8a46f4f9"]]),ns=E({name:"ChatConversation",components:{Composer:kt,Disclaimer:Ft,ModelSelector:Vt,Message:vt,Layout:os},data(){return{drawer:!1,question:"",references:[],upload:!1,answering:!1,canceler:void 0,messages:this.$store.state.chat.conversations?.find(e=>e.id===this.$route.params.id?.toString())?.messages||[]}},computed:{modelGroup(){return this.$store.state.chat.modelGroup},model(){return this.$store.state.chat.model},conversationId(){return this.$route.params.id?.toString()},conversation(){return this.$store.state.chat.conversations?.find(e=>e.id===this.conversationId)},service(){return this.$store.state.chat.service},application(){return this.$store.state.chat.application},applications(){return this.$store.state.chat.applications},credential(){return this.$store.state.chat?.credential},needApply(){return this.$store.state.chat.status.getApplications===z.Success&&!this.application},conversations(){return this.$store.state.chat.conversations},initializing(){return this.$store.state.chat.status.getApplications===z.Request}},watch:{async references(e){console.log("references changed",e)},async modelGroup(e){console.debug("modelGroup changed",e)},async conversationId(e){console.debug("conversationId changed",e)}},async mounted(){await this.onGetService(),await this.onGetApplication(),await this.onGetConversations()},methods:{async onGetService(){console.debug("start onGetService"),await this.$store.dispatch("chat/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplication"),await this.$store.dispatch("chat/getApplications"),console.debug("end onGetApplication")},async onGetConversations(){console.debug("start onGetConversations"),await this.$store.dispatch("chat/getConversations"),console.debug("end onGetConversations")},async onDraft(e){this.question=e,this.onSubmit()},async onStop(){this.canceler&&(this.canceler.abort(),this.answering=!1)},async onRestart(e){const t=this.messages.findIndex(a=>a===e),o=this.messages[t-1];let d=[];if(t!==-1){if(d=this.messages.slice(0,t-1),this.messages=this.messages.slice(0,t),this.references=[],typeof o.content=="string")this.question=o.content;else if(Array.isArray(o.content))for(let a=0;a<o?.content.length;a++)o.content[a].type==="image_url"&&(typeof o?.content?.[a]?.image_url=="string"?this.references.push(o?.content?.[a]?.image_url):this.references.push(o?.content?.[a]?.image_url?.url)),o.content[a].type==="file_url"&&(typeof o?.content?.[a]?.file_url=="string"?this.references.push(o?.content?.[a]?.file_url):this.references.push(o?.content?.[a]?.file_url?.url)),o.content[a].type==="text"&&(this.question=o.content[a].text)}console.debug("onRestart!",this.question,JSON.stringify(this.references));const r=this.credential?.token,i=this.question.trim();if(!r||!i){console.error("no token or endpoint or question"),this.messages.push({error:{code:P},role:O,state:R.FAILED});return}let n=this.conversationId;T.updateConversation({id:this.conversationId,messages:d},{token:r}).then(async()=>{await this.$store.dispatch("chat/setConversation",{id:n,messages:this.messages}),console.debug("finished update conversation",this.messages),console.debug("onRestart",this.question),await this.onRequest()}).catch(a=>{this.handleRequestError(a)})},async onEdit(e,t){const o=this.messages.findIndex(i=>i===e);o!==-1&&(this.messages=this.messages.slice(0,o)),this.question=t;const d=this.credential?.token;if(!d){console.error("no token or endpoint or question"),this.messages.push({error:{code:P},role:O,state:R.FAILED});return}let r=this.conversationId;T.updateConversation({id:this.conversationId,messages:this.messages},{token:d}).then(async()=>{await this.$store.dispatch("chat/setConversation",{id:r,messages:this.messages}),console.debug("finished update conversation",this.messages),this.messages.push({content:this.question,role:j}),console.debug("onEdit",this.question),await this.onRequest()}).catch(i=>{this.handleRequestError(i)})},async onNewConversation(){this.$router.push({params:{id:""}}),this.messages=[],this.question="",this.references=[]},async onRestoreConversation(e){console.debug("onRestoreConversation id",e);const t=this.conversations?.find(i=>i.id===e),o=t?.model;console.debug("conversation model",o);const d=Se.find(i=>i.name===o);console.debug("target model",d);const r=Re.find(i=>i.name===d?.modelGroup);console.debug("target model group",r),this.$store.dispatch("chat/setModelGroup",r),this.$store.dispatch("chat/setModel",d),console.debug("conversation",t),console.debug("conversation messages",this.messages),this.messages=t?.messages||[],this.onScrollDown()},async onChangeConversation(e){console.log("onChangeConversation in conversation",e),await this.onStop(),e?this.onRestoreConversation(e):this.onNewConversation()},async onSubmit(){if(this.references.length>0){let e=[];e.push({type:"text",text:this.question.trim()});for(let t=0;t<this.references.length;t++)ne(this.references[t])?e.push({type:"image_url",image_url:this.references[t]}):e.push({type:"file_url",file_url:this.references[t]});this.messages.push({content:e,role:j})}else this.messages.push({content:this.question.trim(),role:j});console.debug("onSubmit",this.question,this.references),await this.onRequest()},async onRequest(){console.debug("start to get answer",this.messages);const e=this.credential?.token,t=this.question.trim(),o=this.references;if(console.debug("validated",t,o),this.question="",this.references=[],!e||!t){console.error("no token or endpoint or question"),this.messages.push({error:{code:P},role:O,state:R.FAILED});return}let d=this.conversationId;this.messages.push({content:"",role:O,state:R.PENDING}),console.debug("start to get answer",this.messages),this.onScrollDown(),this.answering=!0,this.canceler=new AbortController,T.chatConversation({question:t,model:this.model.name,references:o,id:this.conversationId,stateful:!0},{token:e,stream:r=>{console.debug("stream response",r);const i=this.messages[this.messages.length-1];this.messages[this.messages.length-1]={role:O,content:r.answer,state:i?.state!==R.FINISHED?R.ANSWERING:i?.state},d=r?.id},signal:this.canceler.signal}).then(async()=>{console.debug("finished fetch answer",this.messages),this.messages[this.messages.length-1].state=R.FINISHED,console.debug("finished fetch answer",JSON.stringify(this.messages)),await this.$store.dispatch("chat/setConversation",{id:d,messages:this.messages}),this.answering=!1,d&&await this.$router.push({params:{id:d}}),this.onScrollDown(),await this.$store.dispatch("chat/getConversations"),await this.$store.dispatch("chat/getApplications")}).catch(r=>{this.handleRequestError(r)})},async handleRequestError(e){if(console.error("error happened",e),this.messages&&this.messages.length>0&&(this.messages[this.messages.length-1].state=R.FAILED),e.name==="AbortError"){console.error("aborted");return}else e instanceof Ee?(console.debug("BaseError",e),this.messages[this.messages.length-1].error={code:e.code,message:e.detail}):ue.isCancel(e)?this.messages[this.messages.length-1].error={code:oe}:this.messages&&this.messages.length>0&&(this.messages[this.messages.length-1].error={code:se});this.answering=!1},async onScrollDown(){setTimeout(()=>{const e=document.querySelector(".messages");!e||!this.messages||this.messages.length===0||(e.scrollTop=e?.scrollHeight)},0)}}}),as={key:0,class:"messages"},is={class:"starter"};function rs(e,t,o,d,r,i){const n=l("model-selector"),a=l("message"),b=l("composer"),w=l("disclaimer"),h=l("layout");return s(),f(h,{onChangeConversation:t[4]||(t[4]=v=>e.onChangeConversation(v))},{chat:m(()=>[c(n,{class:"selector",onModelGroupChanged:t[0]||(t[0]=v=>e.onChangeConversation(void 0))}),g("div",{class:I({dialogue:!0,empty:e.messages.length===0})},[e.messages.length>0?(s(),u("div",as,[(s(!0),u(L,null,N(e.messages,(v,p)=>(s(),f(a,{key:p,message:v,messages:e.messages,question:e.question,application:e.application,class:"message","onUpdate:question":t[1]||(t[1]=q=>e.question=q),onEdit:e.onEdit,onRestart:e.onRestart},null,8,["message","messages","question","application","onEdit","onRestart"]))),128))])):y("",!0),g("div",is,[c(b,{question:e.question,"onUpdate:question":t[2]||(t[2]=v=>e.question=v),answering:e.answering,references:e.references,"onUpdate:references":t[3]||(t[3]=v=>e.references=v),onSubmit:e.onSubmit,onStop:e.onStop},null,8,["question","answering","references","onSubmit","onStop"]),c(w,{class:"disclaimer"})])],2)]),_:1})}const $s=S(ns,[["render",rs],["__scopeId","data-v-c210d08b"]]);export{$s as default};
@@ -1 +0,0 @@
1
- import{bH as p,bR as r}from"./vendor-B4-12K57.js";import{o as m}from"./vendor-element-plus-C2t7-rNg.js";import{d as l,R as n,S as c,l as s,a1 as d,am as a,o as i}from"./vendor-vue-BzRnDgD5.js";import{_ as f}from"./index-BwtxyV6k.js";const u=l({name:"CopyToClipboard",components:{FontAwesomeIcon:p,ElTooltip:m},props:{content:{type:[String,Number],required:!1,default:""}},data(){return{copied:!1}},methods:{onCopy(){this.content&&(r(this.content.toString(),{debug:!0}),this.copied=!0,setTimeout(()=>{this.copied=!1},3e3))}}});function _(o,b,C,y,h,k){const e=a("font-awesome-icon"),t=a("el-tooltip");return o.copied?(i(),n(t,{key:1,visible:o.copied,effect:"dark",content:o.$t("common.message.copied"),placement:"bottom"},{default:c(()=>[s(e,{icon:"fa-solid fa-check",class:"icon-check"})]),_:1},8,["visible","content"])):(i(),n(t,{key:0,effect:"dark",content:o.$t("common.button.copy"),placement:"bottom"},{default:c(()=>[s(e,{icon:"fa-regular fa-copy",class:"icon-copy",onClick:d(o.onCopy,["stop"])},null,8,["onClick"])]),_:1},8,["content"]))}const T=f(u,[["render",_],["__scopeId","data-v-cc8e806b"]]);export{T as C};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-B4-12K57.js","assets/vendor-vue-BzRnDgD5.js","assets/vendor-dayjs-D6Igi227.js","assets/vendor-katex-DHBGsivc.js","assets/vendor-katex-CIur2ABi.css","assets/vendor-Cp-P0JlL.css"])))=>i.map(i=>d[i]);
2
- import{o as V}from"./order-DYcfG_Yw.js";import{_ as M,a6 as me}from"./index-BwtxyV6k.js";import{O as N}from"./order-CB3uOPHS.js";import{ae as ye,a5 as Y,bT as fe}from"./vendor-B4-12K57.js";import{x as ee,y as te,E as x,A as ge,B as we,e as ve,a as se,C as ae,k as ie,s as E,D as be,F as ke,G as Pe,n as Se,H as We,t as $e}from"./vendor-element-plus-C2t7-rNg.js";import{d as X,R as g,S as n,l as u,am as f,a as o,W as y,Z as l,o as a,p as Ce,c as p,F as R,ak as T,Y as P,V as U}from"./vendor-vue-BzRnDgD5.js";import{g as Ae}from"./price-Clo8IP03.js";import{C as _e}from"./CopyToClipboard-D0yPTPYW.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-nHemWFue.js";import"./vendor-dayjs-D6Igi227.js";import"./vendor-katex-DHBGsivc.js";function Ee(){const e=navigator.userAgent.toLowerCase();return/iphone|ipad|ipod|android|windows phone/i.test(e)}const Ne=X({name:"PayOrderDialog",components:{ElDialog:x,QrCode:ye,ElRow:te,ElCol:ee},props:{modelValue:{type:Object,required:!0},visible:{type:Boolean,required:!1,default:!1}},emits:["hide","update:modelValue"],data(){return{refreshTimer:void 0}},mounted(){this.onRefresh()},unmounted(){this.refreshTimer&&clearTimeout(this.refreshTimer)},methods:{onRefresh(){if(!this.modelValue.id){console.error("id does not exist");return}V.refresh(this.modelValue.id).then(({data:e})=>{e.state!==N.PAID?setTimeout(()=>{this.onRefresh()},2e3):this.$emit("hide"),this.$emit("update:modelValue",e)}).catch(()=>{setTimeout(()=>{this.onRefresh()},2e3)})}}}),Ie={class:"paycode wechat"},Re={class:"help-text block bg-[#00c800] text-white text-[14px] h-[35px] w-[240px] text-center leading-[35px] mt-[10px] mx-auto"};function Ve(e,t,s,i,c,d){const r=f("qr-code"),h=f("el-col"),W=f("el-row"),$=f("el-dialog");return a(),g($,{"model-value":e.visible,title:e.$t("application.title.buyService"),width:"500px",center:""},{default:n(()=>[u(W,{class:"paycodes py-[30px] w-[500px] mx-auto"},{default:n(()=>[u(h,{span:12},{default:n(()=>[o("div",Ie,[e.modelValue?.pay_url?(a(),g(r,{key:0,value:e.modelValue?.pay_url,size:200,class:"qrcode m-auto w-[200px] h-[200px]",type:"image/png",color:{dark:"#000000",light:"#ffffff"}},null,8,["value"])):y("",!0),o("p",Re,l(e.$t("order.message.wechatPayHelp")),1)])]),_:1}),u(h,{span:12},{default:n(()=>t[0]||(t[0]=[o("div",{class:"help-img"},[o("img",{src:"https://midas.gtimg.cn/enterprise/images/ep_sys_wx_tip.jpg"})],-1)])),_:1,__:[0]})]),_:1})]),_:1},8,["model-value","title"])}const De=M(Ne,[["render",Ve]]),Le=X({name:"PayOrderDialog",components:{ElDialog:x},props:{modelValue:{type:Object,required:!0},visible:{type:Boolean,required:!1,default:!1}},emits:["hide","update:modelValue"],data(){return{refreshTimer:void 0}},watch:{visible:{handler(e){e&&this.modelValue.pay_url&&window.open(this.modelValue.pay_url,"_blank")}}},mounted(){this.onRefresh()},unmounted(){this.refreshTimer&&clearTimeout(this.refreshTimer)},methods:{onRefresh(){if(!this.modelValue.id){console.error("id does not exist");return}V.refresh(this.modelValue.id).then(({data:e})=>{e.state!==N.PAID?setTimeout(()=>{this.onRefresh()},2e3):this.$emit("hide"),this.$emit("update:modelValue",e)}).catch(()=>{setTimeout(()=>{this.onRefresh()},5e3)})}}}),Te={class:"text-center"};function Be(e,t,s,i,c,d){const r=f("el-dialog");return a(),g(r,{"model-value":e.visible,title:e.$t("application.title.buyService"),width:"500px",center:""},{default:n(()=>[o("p",Te,l(e.$t("order.message.buyInExternalUrl")),1)]),_:1},8,["model-value","title"])}const qe=M(Le,[["render",Be],["__scopeId","data-v-fbea8aa1"]]),Oe=X({name:"PayOrderDialog",components:{ElDialog:x},props:{modelValue:{type:Object,required:!0},visible:{type:Boolean,required:!1,default:!1}},emits:["hide","update:modelValue"],data(){return{refreshTimer:void 0}},watch:{visible:{handler(e){e&&this.modelValue.pay_url&&window.open(this.modelValue.pay_url,"_blank")}}},mounted(){this.onRefresh()},unmounted(){this.refreshTimer&&clearTimeout(this.refreshTimer)},methods:{onRefresh(){if(!this.modelValue.id){console.error("id does not exist");return}V.refresh(this.modelValue.id).then(({data:e})=>{e.state!==N.PAID?setTimeout(()=>{this.onRefresh()},2e3):this.$emit("hide"),this.$emit("update:modelValue",e)}).catch(()=>{setTimeout(()=>{this.onRefresh()},5e3)})}}}),Me={class:"text-center"};function Xe(e,t,s,i,c,d){const r=f("el-dialog");return a(),g(r,{"model-value":e.visible,title:e.$t("application.title.buyService"),width:"500px",center:""},{default:n(()=>[o("p",Me,l(e.$t("order.message.buyInExternalUrl")),1)]),_:1},8,["model-value","title"])}const Fe=M(Oe,[["render",Xe]]);async function He(e){const{requirements:t,payerAddress:s,signTransaction:i,signAllTransactions:c,fetchLatestBlockhash:d}=e,{PublicKey:r,Transaction:h,ComputeBudgetProgram:W,TransactionInstruction:$}=await Y(async()=>{const{PublicKey:v,Transaction:_,ComputeBudgetProgram:D,TransactionInstruction:pe}=await import("./vendor-B4-12K57.js").then(he=>he.c3);return{PublicKey:v,Transaction:_,ComputeBudgetProgram:D,TransactionInstruction:pe}},__vite__mapDeps([0,1,2,3,4,5])),{Buffer:b}=await Y(async()=>{const{Buffer:v}=await import("./vendor-B4-12K57.js").then(_=>_.i);return{Buffer:v}},__vite__mapDeps([0,1,2,3,4,5])),k=new r("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),S=new r("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"),C=new r(s),m=new r(String(t.payTo||t.pay_to)),A=new r(String(t.asset)),I=t.extra||{},B=String(I.feePayer||I.fee_payer||"");if(!B)throw new Error("Missing feePayer in Solana payment requirements");if(B===s)throw new Error("Invalid Solana payment: payer wallet must not be the fee payer wallet (switch wallet and try again).");const z=new r(B),j=Number(I.decimals??6),q=Number(I.computeUnitLimit??I.compute_unit_limit??0),w=Number(I.computeUnitPriceMicroLamports??I.compute_unit_price_micro_lamports??I.computeUnitPriceLamports??0),F=BigInt(String(t.maxAmountRequired||t.max_amount_required||"0"));if(F<=0n)throw new Error("Invalid amount");const J=(v,_)=>{const[D]=r.findProgramAddressSync([v.toBuffer(),k.toBuffer(),_.toBuffer()],S);return D},ne=J(C,A),oe=J(m,A),H=new Uint8Array(10);H[0]=12,new DataView(H.buffer).setBigUint64(1,F,!0),H[9]=j;const le=new $({programId:k,keys:[{pubkey:ne,isSigner:!1,isWritable:!0},{pubkey:A,isSigner:!1,isWritable:!1},{pubkey:oe,isSigner:!1,isWritable:!0},{pubkey:C,isSigner:!0,isWritable:!1}],data:b.from(H)}),L=new h;L.feePayer=z,Number.isFinite(q)&&q>0&&L.add(W.setComputeUnitLimit({units:Math.floor(q)})),Number.isFinite(w)&&w>0&&L.add(W.setComputeUnitPrice({microLamports:Math.floor(w)})),L.add(le);const de=String(t.network||"solana").toLowerCase();L.recentBlockhash=await d(de);const G=v=>{if(!v)return"Unknown error";const _=typeof v?.message=="string"?v.message:String(v),D=typeof v?.name=="string"?v.name:"";return D&&D!=="Error"&&!_.startsWith(D)?`${D}: ${_}`:_},K=async()=>{if(!c)return;const v=await c([L]);return Array.isArray(v)?v[0]:void 0};let O;try{i?O=await i(L):O=await K()}catch(v){if(i&&c)try{O=await K()}catch(_){throw new Error(`Solana wallet signing failed: ${G(v)} (fallback failed: ${G(_)})`)}else throw new Error(`Solana wallet signing failed: ${G(v)}`)}if(!O)throw new Error("Solana wallet did not return a signed transaction");const ce=O.serialize({requireAllSignatures:!1,verifySignatures:!1}),Q=b.from(ce).toString("base64"),ue={x402Version:1,scheme:t.scheme||"exact",network:t.network||"solana",payload:{serializedTransaction:Q,transaction:Q}};return btoa(JSON.stringify(ue))}const Ue=X({name:"X402PayOrderDialog",components:{ElDialog:x,ElButton:ie,ElAlert:ae,ElTag:se,ElIcon:ve,ElRadioGroup:we,ElRadioButton:ge,CreditCard:fe},props:{modelValue:{type:Object,required:!0},session:{type:Object,default:void 0},visible:{type:Boolean,default:!1}},emits:["hide","update:modelValue"],data(){return{signing:!1,paying:!1,chainId:void 0,selectedNetwork:void 0,solanaWalletModalVisible:!1,solanaWalletConnecting:!1,evmWalletModalVisible:!1,evmWalletConnecting:!1,evmWallets:[],selectedEvmWalletId:void 0,evmAddress:void 0,requirementsLoading:!1,runtimeRequirementsByNetwork:{},requirementsAttemptedByNetwork:{}}},computed:{dialogWidth(){return Ee()?"100%":"680px"},acceptsList(){const e=this.session?.accepts;if(Array.isArray(e)&&e.length>0)return e.filter(s=>!!(s&&typeof s=="object"));const t=this.paymentRequirements;return Array.isArray(t)&&t.length>0?t.filter(s=>!!(s&&typeof s=="object")):t&&typeof t=="object"?[t]:[]},selectedNetworkResolved(){return String(this.selectedNetwork||this.acceptsList[0]?.network||"base").toLowerCase()},selectedRequirements(){const e=String(this.selectedNetworkResolved||"").toLowerCase();if(!e)return this.acceptsList[0];const t=this.runtimeRequirementsByNetwork[e];if(t)return t;const s=this.acceptsList.find(i=>String(i.network||"").toLowerCase()===e);if(s)return s;if(!this.selectedNetwork)return this.acceptsList[0]},orderMetadata(){const e=this.modelValue?.metadata;return e&&typeof e=="object"?e:void 0},paymentRequirements(){const e=this.session?.payment_requirements||this.session?.paymentRequirements;if(e&&typeof e=="object")return e;const t=this.orderMetadata?.payment_requirements||this.orderMetadata?.paymentRequirements;if(t&&typeof t=="object")return t},expectedNetwork(){return this.selectedNetworkResolved},expectedNetworkLabel(){return this.formatNetworkLabel(this.expectedNetwork)},isSolanaNetwork(){return!!String(this.selectedNetworkResolved||"").toLowerCase().startsWith("solana")},expectedChainIdHex(){const e={base:"0x2105","base-sepolia":"0x14A34",ethereum:"0x1",sepolia:"0xAA36A7",polygon:"0x89",arbitrum:"0xA4B1",optimism:"0xA",bsc:"0x38",avalanche:"0xA86A"},t=(this.expectedNetwork||"").toLowerCase();return e[t]},networkMismatch(){return this.isSolanaNetwork?!1:!!(this.evmAddress&&this.chainId&&this.expectedChainIdHex&&this.chainId.toLowerCase()!==this.expectedChainIdHex.toLowerCase())},hasEvmProvider(){return this.isSolanaNetwork?!1:this.evmWalletsOrdered.length>0},requirementsAvailable(){return!!this.selectedRequirements},networkOptions(){const e=new Set(this.acceptsList.map(s=>String(s.network||"").toLowerCase()).filter(Boolean));if(e.size===0)return[{network:"base",label:"Base"},{network:"solana",label:"Solana"}];const t=s=>s==="base"?0:s.startsWith("solana")?1:2;return Array.from(e).sort((s,i)=>t(s)-t(i)||s.localeCompare(i)).map(s=>({network:s,label:this.formatNetworkLabel(s)}))},paymentSteps(){const e=this.expectedNetworkLabel||this.expectedNetwork||"";return[String(this.$t("order.message.x402Step1")),String(this.$t("order.message.x402Step2",{network:e})),String(this.$t("order.message.x402Step3")),String(this.$t("order.message.x402Step4"))]},evmConnected(){return!!(this.selectedEvmWalletId&&this.evmAddress)},evmProvider(){if(this.selectedEvmWalletId)return this.evmWallets.find(e=>e.id===this.selectedEvmWalletId)?.provider},selectedEvmWalletName(){if(this.selectedEvmWalletId)return this.evmWallets.find(e=>e.id===this.selectedEvmWalletId)?.name},selectedEvmWalletIcon(){if(this.selectedEvmWalletId)return this.evmWallets.find(e=>e.id===this.selectedEvmWalletId)?.icon},evmWalletsOrdered(){return[...this.evmWallets].sort((e,t)=>e.name.localeCompare(t.name))},solanaConnected(){return!!this.$wallet?.connected?.value},solanaAddress(){const e=this.$wallet?.publicKey?.value;if(!(!e||typeof e.toBase58!="function"))return e.toBase58()},solanaWalletsOrdered(){const e=this.$wallet?.wallets?.value??[],t=s=>s==="Installed"?0:s==="Loadable"?1:s==="NotDetected"?2:3;return[...e].sort((s,i)=>t(s.readyState)-t(i.readyState))},selectedSolanaWalletName(){return this.$wallet?.wallet?.value?.adapter?.name},selectedSolanaWalletIcon(){return this.$wallet?.wallet?.value?.adapter?.icon}},watch:{visible(e){if(!e){this.solanaWalletModalVisible=!1,this.evmWalletModalVisible=!1;return}if(!this.selectedNetwork){const i=this.acceptsList[0]?.network;this.selectedNetwork=String(i||"base").toLowerCase()}const t=new Set(this.networkOptions.map(i=>i.network)),s=String(this.selectedNetwork||"").toLowerCase();if(s&&!t.has(s)){const i=this.networkOptions[0]?.network;i&&(this.selectedNetwork=i)}this.maybeLoadRequirements()},selectedNetwork(){this.visible&&this.maybeLoadRequirements()}},mounted(){this.refreshEvmWallets()},methods:{sleep(e){return new Promise(t=>setTimeout(t,e))},getErrorMessage(e){if(!e)return"";if(typeof e=="string")return e;if(typeof e?.message=="string")return e.message;try{return JSON.stringify(e)}catch{return String(e)}},isRetryableSolanaConnectError(e){if(String(e?.name||"")==="WalletNotSelectedError")return!0;const s=this.getErrorMessage(e).toLowerCase();return s.includes("disconnected port object")||s.includes("failed to send message to service worker")||s.includes("message port closed")||s.includes("extension context invalidated")},async connectSolanaWalletWithRetry(e){const t=this.$wallet;if(!t)throw new Error("Wallet API not available");const s=2;let i;for(let c=1;c<=s;c+=1)try{e&&t.select(e),await Ce(),await t.connect();return}catch(d){if(i=d,c<s&&this.isRetryableSolanaConnectError(d)){const h=String(d?.name||"")==="WalletNotSelectedError"?0:300;h&&await this.sleep(h);continue}throw d}throw i},formatNetworkLabel(e){const t=String(e||"").toLowerCase();return t==="base"?"Base":t==="solana"?"Solana":t==="solana-devnet"?"Solana Devnet":t==="ethereum"?"Ethereum":t==="sepolia"?"Sepolia":t==="polygon"?"Polygon":t==="arbitrum"?"Arbitrum":t==="optimism"?"Optimism":t==="bsc"?"BNB Chain":t==="avalanche"?"Avalanche":e||"Unknown"},async confirmPay(e){const t=e||this.expectedNetworkLabel||this.expectedNetwork||"",s=String(this.$t?.("order.message.x402ConfirmTitle")||"Confirm Payment"),i=String(this.$t?.("order.message.x402ConfirmDesc",{network:t})||`Confirm USDC payment on ${t}?`),c=String(this.$t?.("common.button.pay")||"Pay"),d=String(this.$t?.("common.button.cancel")||"Cancel");return be.confirm(i,s,{confirmButtonText:c,cancelButtonText:d,type:"warning"}).then(()=>!0).catch(()=>!1)},async onSelectSolanaWallet(e){if(!this.solanaWalletConnecting&&e?.adapter?.name){this.solanaWalletConnecting=!0;try{await this.connectSolanaWalletWithRetry(e.adapter.name),this.solanaWalletModalVisible=!1}catch(t){console.warn("wallet connect failed",t),E.error(String(this.$t?.("coin.message.connectError")||"Wallet connect failed"))}finally{this.solanaWalletConnecting=!1}}},async disconnectSolanaWallet(){try{await this.$wallet.disconnect()}catch{}},openEvmWalletModal(){this.evmWalletModalVisible=!0,this.refreshEvmWallets()},async refreshEvmWallets(){if(typeof window>"u")return;const e=new Map,t=s=>{const i=s?.detail,c=i?.info,d=i?.provider;if(!c||!d)return;const r=String(c.uuid||c.rdns||c.name||"");r&&(e.has(r)||e.set(r,{id:r,name:String(c.name||"Wallet"),icon:typeof c.icon=="string"?c.icon:void 0,provider:d}))};try{window.addEventListener("eip6963:announceProvider",t),window.dispatchEvent(new Event("eip6963:requestProvider")),await new Promise(s=>window.setTimeout(s,120))}finally{window.removeEventListener("eip6963:announceProvider",t)}if(e.size===0){const s=window.ethereum;(Array.isArray(s?.providers)?s.providers:s?[s]:[]).forEach((c,d)=>{if(!c)return;let r="Injected";c.isMetaMask?r="MetaMask":c.isCoinbaseWallet?r="Coinbase Wallet":c.isBraveWallet?r="Brave Wallet":c.isRabby?r="Rabby":c.isPhantom&&(r="Phantom");const h=`injected:${r}:${d}`;e.set(h,{id:h,name:r,icon:void 0,provider:c})})}this.evmWallets=Array.from(e.values())},async onSelectEvmWallet(e){if(e?.provider){this.evmWalletModalVisible=!1,this.evmWalletConnecting=!0;try{const t=await e.provider.request({method:"eth_requestAccounts"}),s=Array.isArray(t)?t[0]:void 0;if(!s)throw new Error("No account returned from wallet");this.selectedEvmWalletId=e.id,this.evmAddress=s,await this.refreshChainId(),await this.ensureNetwork()}catch(t){console.warn("EVM wallet connect failed",t),E.error(String(this.$t?.("coin.message.connectError")||"Wallet connect failed")),this.disconnectEvmWallet()}finally{this.evmWalletConnecting=!1}}},disconnectEvmWallet(){this.selectedEvmWalletId=void 0,this.evmAddress=void 0,this.chainId=void 0},async getFreshRequirements(){const e=this.selectedRequirements;if(e)return e;try{const s=(await V.pay(this.modelValue.id,{pay_way:"X402"}))?.data,i=Array.isArray(s?.accepts)?s.accepts:void 0,c=String(this.selectedNetworkResolved||"").toLowerCase();if(Array.isArray(i)&&i.length){const r=i.find(h=>String(h?.network||"").toLowerCase()===c);return r||(this.selectedNetwork?void 0:i[0])}const d=s?.payment_requirements;if(Array.isArray(d)&&d.length){const r=d.find(h=>String(h?.network||"").toLowerCase()===c);return r||(this.selectedNetwork?void 0:d[0])}return d&&typeof d=="object"?d:void 0}catch(t){const s=t?.response?.data;if(s){const i=Array.isArray(s?.accepts)?s.accepts:void 0,c=String(this.selectedNetworkResolved||"").toLowerCase();if(Array.isArray(i)&&i.length){const r=i.find(h=>String(h?.network||"").toLowerCase()===c);return r||(this.selectedNetwork?void 0:i[0])}const d=s?.payment_requirements;if(Array.isArray(d)&&d.length){const r=d.find(h=>String(h?.network||"").toLowerCase()===c);return r||(this.selectedNetwork?void 0:d[0])}if(d&&typeof d=="object")return d}return}},async maybeLoadRequirements(e=!1){const t=String(this.selectedNetworkResolved||"").toLowerCase();if(!(!t||this.runtimeRequirementsByNetwork[t]||this.acceptsList.some(i=>String(i.network||"").toLowerCase()===t))&&!(!e&&this.requirementsAttemptedByNetwork[t])){this.requirementsAttemptedByNetwork[t]=!0,this.requirementsLoading=!0;try{const i=await this.getFreshRequirements();i&&(this.runtimeRequirementsByNetwork[t]=i)}finally{this.requirementsLoading=!1}}},async refreshChainId(){if(this.evmProvider)try{const e=await this.evmProvider.request({method:"eth_chainId"});typeof e=="string"&&(this.chainId=e)}catch{}},async ensureNetwork(){if(!(!this.evmProvider||!this.expectedChainIdHex)&&(await this.refreshChainId(),!(this.chainId&&this.chainId.toLowerCase()===this.expectedChainIdHex.toLowerCase()))){try{await this.evmProvider.request({method:"wallet_switchEthereumChain",params:[{chainId:this.expectedChainIdHex}]})}catch{try{await this.evmProvider.request({method:"wallet_addEthereumChain",params:[this.getExpectedChainParams()]})}catch(e){console.error("Failed to add Ethereum chain:",e);try{const t=this.$t&&this.$t("order.message.x402NetworkSwitchFailed")||"Your wallet does not support automatic network switching. Please switch to the required network in the wallet and try again.";E.warning(t)}catch{}}}await this.refreshChainId()}},getExpectedChainParams(){const e={base:{chainId:"0x2105",chainName:"Base",nativeCurrency:{name:"ETH",symbol:"ETH",decimals:18},rpcUrls:["https://mainnet.base.org"],blockExplorerUrls:["https://basescan.org"]},"base-sepolia":{chainId:"0x14A34",chainName:"Base Sepolia",nativeCurrency:{name:"ETH",symbol:"ETH",decimals:18},rpcUrls:["https://sepolia.base.org"],blockExplorerUrls:["https://sepolia.basescan.org"]}},t=(this.expectedNetwork||"").toLowerCase();return e[t]||{chainId:this.expectedChainIdHex}},buildTypedData(e,t){const s=e?.extra||{};return{types:{EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],TransferWithAuthorization:[{name:"from",type:"address"},{name:"to",type:"address"},{name:"value",type:"uint256"},{name:"validAfter",type:"uint256"},{name:"validBefore",type:"uint256"},{name:"nonce",type:"bytes32"}]},primaryType:"TransferWithAuthorization",domain:{name:s?.name||"USD Coin",version:s?.version||"2",chainId:parseInt(this.expectedChainIdHex||"0x0",16),verifyingContract:e.asset},message:t}},randomNonce32(){const e=new Uint8Array(32);return crypto.getRandomValues(e),"0x"+Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")},async onPayWithSolanaWallet(){if(!this.modelValue?.id)return;const e=this.solanaAddress;if(!e){E.error(String(this.$t?.("order.message.x402NeedConnectAccount")||"Please connect a wallet first."));return}if(!this.requirementsAvailable){E.error(String(this.$t?.("order.message.x402SolanaNotEnabled")||"Solana payment is not available."));return}this.signing=!0;try{if(!await this.confirmPay(this.expectedNetworkLabel))return;let s=await this.getFreshRequirements();if(s||(s=this.selectedRequirements),!s){E.error(String(this.$t?.("order.message.x402PaymentFailed")||"X402 payment failed."));return}const i=this.$wallet?.wallet?.value?.adapter;if(!i?.signTransaction&&!i?.signAllTransactions)throw new Error("Wallet does not support signing transactions");const c=await He({requirements:s,payerAddress:e,signTransaction:i.signTransaction?i.signTransaction.bind(i):void 0,signAllTransactions:i.signAllTransactions?i.signAllTransactions.bind(i):void 0,fetchLatestBlockhash:r=>this.fetchSolanaLatestBlockhash(r)});this.paying=!0;const{data:d}=await V.payX402WithHeader(this.modelValue.id,{pay_way:"X402"},c);this.$emit("update:modelValue",d),this.$emit("hide")}catch(t){const s=t?.response?.data,i=s?.error||s?.detail||"X402 wallet payment failed.";E.error(String(i))}finally{this.signing=!1,this.paying=!1}},async fetchSolanaLatestBlockhash(e){const{data:t}=await me.get("/x402/solana/latest-blockhash/",{params:{network:e||"solana"}}),s=t?.blockhash;if(!s||typeof s!="string")throw new Error("Invalid blockhash response");return s},async onPayWithWallet(){if(!this.modelValue?.id||!this.evmProvider||!this.evmAddress){const e=this.$t&&this.$t("order.message.x402PaymentFailed")||"X402 wallet payment is not available right now. Please try again later.";E.error(e);return}this.signing=!0;try{let e=await this.getFreshRequirements();if(e||(e=this.selectedRequirements),!e){const S=this.$t&&this.$t("order.message.x402PaymentFailed")||"X402 wallet payment failed. Please try again later.";E.error(S);return}if(await this.ensureNetwork(),this.networkMismatch){E.warning(String(this.$t?.("order.message.x402SwitchNetwork",{network:this.expectedNetworkLabel||this.expectedNetwork})||"Please switch your wallet network and try again."));return}if(!await this.confirmPay(this.expectedNetworkLabel))return;const s=Math.floor(Date.now()/1e3),i=Number(e?.maxTimeoutSeconds||e?.max_timeout_seconds||120),c=BigInt(e?.maxAmountRequired||e?.max_amount_required||0).toString(),d={from:this.evmAddress,to:e.payTo||e.pay_to,value:c,validAfter:s,validBefore:s+i,nonce:this.randomNonce32()},r=this.buildTypedData(e,d),h=await this.evmProvider.request({method:"eth_signTypedData_v4",params:[this.evmAddress,JSON.stringify(r)]}),W={from:d.from,to:d.to,value:d.value,validAfter:String(d.validAfter),validBefore:String(d.validBefore),nonce:d.nonce},$={x402Version:1,scheme:e.scheme||"exact",network:e.network||this.expectedNetwork||"base",payload:{authorization:W,signature:h}},b=btoa(JSON.stringify($));this.paying=!0;const{data:k}=await V.payX402WithHeader(this.modelValue.id,{pay_way:"X402"},b);this.$emit("update:modelValue",k),this.$emit("hide")}catch(e){let t;const s=e?.response?.data;if(s){const i=s?.error||s?.detail;typeof i=="string"&&(t=i)}t||(t=this.$t&&this.$t("order.message.x402PaymentFailed")||"X402 wallet payment failed. Please try again later.");try{E.error(t)}catch{}}finally{this.signing=!1,this.paying=!1}}}}),xe={class:"x402-content"},ze={class:"x402-intro"},je={class:"x402-intro-text"},Ge={class:"x402-wallet"},Je={class:"x402-wallet-head"},Ke={class:"x402-network"},Qe={class:"x402-network-label"},Ye={key:1,class:"x402-requirements-actions"},Ze={class:"x402-wallet-card"},et={class:"x402-wallet-card-head"},tt={key:0,class:"x402-wallet-card-sub x402-wallet-name"},st=["src","alt"],at={key:1,class:"x402-wallet-card-sub"},it={class:"x402-wallet-card-actions"},rt={class:"x402-actions"},nt={class:"x402-wallet-card"},ot={class:"x402-wallet-card-head"},lt={key:0,class:"x402-wallet-card-sub x402-wallet-name"},dt=["src","alt"],ct={key:1,class:"x402-wallet-card-sub"},ut={class:"x402-wallet-card-actions"},pt={class:"x402-actions"},ht={class:"x402-steps"},mt={class:"x402-steps-title"},yt={class:"x402-steps-list"},ft={class:"x402-step-index"},gt={class:"x402-step-text"},wt={class:"wallet-list"},vt=["disabled","onClick"],bt=["src","alt"],kt={class:"wallet-list-name"},Pt={key:1,class:"wallet-list-status"},St={class:"wallet-list"},Wt=["disabled","onClick"],$t=["src","alt"],Ct={class:"wallet-list-name"},At={key:0,class:"text-center text-[13px] text-[var(--el-text-color-regular)]"};function _t(e,t,s,i,c,d){const r=f("credit-card"),h=f("el-icon"),W=f("el-radio-button"),$=f("el-radio-group"),b=f("el-alert"),k=f("el-button"),S=f("el-tag"),C=f("el-dialog");return a(),p(R,null,[u(C,{"model-value":e.visible,title:e.$t("order.title.x402"),width:e.dialogWidth,top:"8vh",class:"x402-dialog"},{default:n(()=>[o("section",xe,[o("header",ze,[u(h,{size:20,class:"x402-intro-icon"},{default:n(()=>[u(r)]),_:1}),o("p",je,l(e.$t("order.message.x402IntroShort")),1)]),o("section",Ge,[o("div",Je,[o("div",Ke,[o("span",Qe,l(e.$t("order.message.x402IntegrationNetworkLabel")),1),u($,{modelValue:e.selectedNetwork,"onUpdate:modelValue":t[0]||(t[0]=m=>e.selectedNetwork=m),size:"small",class:"x402-network-group"},{default:n(()=>[(a(!0),p(R,null,T(e.networkOptions,m=>(a(),g(W,{key:m.network,label:m.network},{default:n(()=>[P(l(m.label),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])])]),e.selectedNetworkResolved==="solana"&&!e.selectedRequirements&&!e.requirementsLoading?(a(),g(b,{key:0,type:"info",closable:!1,class:"x402-alert",description:e.$t("order.message.x402SolanaNotEnabled")},null,8,["description"])):y("",!0),!e.selectedRequirements&&!e.requirementsLoading?(a(),p("div",Ye,[u(k,{link:"",type:"primary",size:"small",onClick:t[1]||(t[1]=m=>e.maybeLoadRequirements(!0))},{default:n(()=>[P(l(e.$t("common.button.refresh")),1)]),_:1})])):y("",!0),e.isSolanaNetwork?(a(),p(R,{key:2},[o("div",Ze,[o("div",et,[t[5]||(t[5]=o("span",{class:"x402-wallet-card-title"},"Solana Wallet",-1)),e.solanaConnected?(a(),g(S,{key:0,class:"x402-wallet-card-tag"},{default:n(()=>[P(l(e.$t("order.message.x402WalletConnected")),1)]),_:1})):y("",!0)]),e.solanaConnected&&e.selectedSolanaWalletName?(a(),p("div",tt,[e.selectedSolanaWalletIcon?(a(),p("img",{key:0,class:"wallet-list-icon",src:e.selectedSolanaWalletIcon,alt:e.selectedSolanaWalletName},null,8,st)):y("",!0),o("span",null,l(e.selectedSolanaWalletName),1)])):y("",!0),e.solanaConnected&&e.solanaAddress?(a(),p("div",at,l(e.solanaAddress.substring(0,10))+"..."+l(e.solanaAddress.substring(e.solanaAddress.length-10)),1)):y("",!0),o("div",it,[e.solanaConnected?(a(),g(k,{key:1,onClick:e.disconnectSolanaWallet},{default:n(()=>[P(l(e.$t("coin.button.disconnect")),1)]),_:1},8,["onClick"])):(a(),g(k,{key:0,type:"primary",onClick:t[2]||(t[2]=m=>e.solanaWalletModalVisible=!0)},{default:n(()=>[P(l(e.$t("order.message.x402ConnectWallet")),1)]),_:1}))])]),o("div",rt,[u(k,{type:"primary",disabled:!e.solanaConnected||!e.solanaAddress||!e.requirementsAvailable,loading:e.signing||e.paying,onClick:e.onPayWithSolanaWallet},{default:n(()=>[P(l(e.$t("order.message.x402WalletPayCta")),1)]),_:1},8,["disabled","loading","onClick"])])],64)):(a(),p(R,{key:3},[o("div",nt,[o("div",ot,[t[6]||(t[6]=o("span",{class:"x402-wallet-card-title"},"EVM Wallet",-1)),e.evmConnected?(a(),g(S,{key:0,class:"x402-wallet-card-tag"},{default:n(()=>[P(l(e.$t("order.message.x402WalletConnected")),1)]),_:1})):y("",!0)]),e.evmConnected&&e.selectedEvmWalletName?(a(),p("div",lt,[e.selectedEvmWalletIcon?(a(),p("img",{key:0,class:"wallet-list-icon",src:e.selectedEvmWalletIcon,alt:e.selectedEvmWalletName},null,8,dt)):y("",!0),o("span",null,l(e.selectedEvmWalletName),1)])):y("",!0),e.evmConnected&&e.evmAddress?(a(),p("div",ct,l(e.evmAddress.substring(0,10))+"..."+l(e.evmAddress.substring(e.evmAddress.length-10)),1)):y("",!0),o("div",ut,[e.evmConnected?(a(),g(k,{key:1,onClick:e.disconnectEvmWallet},{default:n(()=>[P(l(e.$t("coin.button.disconnect")),1)]),_:1},8,["onClick"])):(a(),g(k,{key:0,type:"primary",onClick:e.openEvmWalletModal},{default:n(()=>[P(l(e.$t("order.message.x402ConnectWallet")),1)]),_:1},8,["onClick"]))])]),e.hasEvmProvider?e.networkMismatch?(a(),g(b,{key:1,type:"warning",closable:!1,"show-icon":"",class:"x402-alert",title:e.$t("order.message.x402SwitchNetwork",{network:e.expectedNetworkLabel||e.expectedNetwork})},null,8,["title"])):y("",!0):(a(),g(b,{key:0,type:"info",closable:!1,class:"x402-alert",description:e.$t("order.message.x402NoWalletDesc")},null,8,["description"])),o("div",pt,[e.hasEvmProvider?(a(),g(k,{key:0,type:"primary",disabled:!e.evmConnected||!e.requirementsAvailable||e.networkMismatch,loading:e.signing||e.paying,onClick:e.onPayWithWallet},{default:n(()=>[P(l(e.$t("order.message.x402WalletPayCta")),1)]),_:1},8,["disabled","loading","onClick"])):y("",!0)])],64)),o("div",ht,[o("div",mt,l(e.$t("order.message.x402StepsTitle")),1),o("ol",yt,[(a(!0),p(R,null,T(e.paymentSteps,(m,A)=>(a(),p("li",{key:A,class:"x402-step"},[o("span",ft,l(A+1),1),o("span",gt,l(m),1)]))),128))])])])])]),_:1},8,["model-value","title","width"]),u(C,{modelValue:e.solanaWalletModalVisible,"onUpdate:modelValue":t[3]||(t[3]=m=>e.solanaWalletModalVisible=m),title:e.$t("order.message.x402ConnectWallet"),width:"420px","align-center":""},{default:n(()=>[o("div",wt,[(a(!0),p(R,null,T(e.solanaWalletsOrdered,m=>(a(),p("button",{key:m.adapter.name,class:"wallet-list-item",disabled:e.solanaWalletConnecting,onClick:A=>e.onSelectSolanaWallet(m)},[m.adapter.icon?(a(),p("img",{key:0,class:"wallet-list-icon",src:m.adapter.icon,alt:m.adapter.name},null,8,bt)):y("",!0),o("span",kt,l(m.adapter.name),1),m.readyState==="Installed"?(a(),p("span",Pt,"Detected")):y("",!0)],8,vt))),128))])]),_:1},8,["modelValue","title"]),u(C,{modelValue:e.evmWalletModalVisible,"onUpdate:modelValue":t[4]||(t[4]=m=>e.evmWalletModalVisible=m),title:e.$t("order.message.x402ConnectWallet"),width:"420px","align-center":""},{default:n(()=>[o("div",St,[(a(!0),p(R,null,T(e.evmWalletsOrdered,m=>(a(),p("button",{key:m.id,class:"wallet-list-item",disabled:e.evmWalletConnecting,onClick:A=>e.onSelectEvmWallet(m)},[m.icon?(a(),p("img",{key:0,class:"wallet-list-icon",src:m.icon,alt:m.name},null,8,$t)):y("",!0),o("span",Ct,l(m.name),1),t[7]||(t[7]=o("span",{class:"wallet-list-status"},"Detected",-1))],8,Wt))),128)),e.evmWalletsOrdered.length===0?(a(),p("div",At,l(e.$t("order.message.x402NoWalletDesc")),1)):y("",!0)])]),_:1},8,["modelValue","title"])],64)}const Et=M(Ue,[["render",_t],["__scopeId","data-v-43eb4bb3"]]),Nt=7e3,Z=2e3;var re=(e=>(e.WechatPay="WechatPay",e.Stripe="Stripe",e.AliPay="AliPay",e.X402="X402",e))(re||{});const It=X({name:"ConsoleOrderDetail",components:{ElButton:ie,CopyToClipboard:_e,ElRow:te,ElCard:$e,ElCol:ee,ElSkeleton:We,ElDivider:Se,ElAlert:ae,ElDescriptions:Pe,ElDescriptionsItem:ke,ElTag:se,WechatPayOrder:De,StripePayOrder:qe,AlipayPayOrder:Fe,X402PayOrder:Et},data(){return{PayWay:re,payWay:"WechatPay",OrderState:N,order:void 0,x402Session:void 0,showPayWays:!0,loading:!1,paying:!1,prepaying:!1}},computed:{config(){return this.$store.getters.config},id(){return this.$route.params?.id?.toString()},redirect(){return this.$route.query?.redirect},pricingInfo(){const e=this.order?.metadata?.pricing||{},t=S=>typeof S=="number"&&Number.isFinite(S)?S:void 0,s=t(e?.original_price),i=t(e?.discounted_price),c=t(e?.discount_rate),d=t(e?.discount_rate_vip),r=t(e?.discount_rate_x402),h=t(this.order?.price),W=s??h??0,$=i??h??W,b=t(this.order?.discount)??c??0,k=Array.isArray(e?.discounted_methods)?e.discounted_methods.filter(S=>typeof S=="string"&&S.length>0):[];return{original:W,discounted:$,discountRate:b,discountedMethods:k,discountRateVip:d,discountRateX402:r}},appliedDiscountMethods(){return this.pricingInfo.discountedMethods||[]},hasVipApplied(){return this.appliedDiscountMethods.includes("vip")},hasX402Applied(){return this.appliedDiscountMethods.includes("x402")},pendingX402Preview(){return this.payWay==="X402"&&this.order?.pay_way!=="X402"&&this.x402DiscountRate>0},finalOriginalPrice(){return this.pricingInfo.original||0},baseEffectivePrice(){const e=this.order?.price;return typeof e=="number"&&Number.isFinite(e)?e:this.pricingInfo.discounted},previewX402Price(){const e=this.baseEffectivePrice||0,t=this.x402DiscountRate;return!t||t<=0?e:e*(1-t)},finalDiscountedPrice(){return this.pendingX402Preview?this.previewX402Price:this.baseEffectivePrice},showOriginalPrice(){return this.finalOriginalPrice<=0?!1:this.finalOriginalPrice>this.finalDiscountedPrice},totalDiscountRate(){const e=this.pricingInfo.discountRate??0;return this.pendingX402Preview?1-(1-e)*(1-this.x402DiscountRate):e},hasAnyDiscount(){return this.totalDiscountRate>0},discountBadges(){const e=[];return this.hasVipApplied&&this.vipDiscountPercent&&e.push({key:"vip",text:this.$t("order.message.discountTag",{percent:this.vipDiscountPercent}).toString(),type:"success"}),this.shouldDisplayX402Badge&&this.x402BadgePercent&&e.push({key:"x402",text:this.$t("order.message.x402DiscountTag",{percent:this.x402BadgePercent}).toString(),type:"success"}),e},discountHints(){const e=[];return this.hasVipApplied&&this.vipDiscountPercent&&e.push(this.$t("order.message.discountHint",{percent:this.vipDiscountPercent}).toString()),this.hasX402Applied&&this.x402AppliedPercent?e.push(this.$t("order.message.x402DiscountApplied",{percent:this.x402AppliedPercent}).toString()):this.pendingX402Preview&&this.x402BadgePercent&&e.push(this.$t("order.message.x402DiscountHint",{percent:this.x402BadgePercent}).toString()),e},x402DiscountRate(){const e=this.config?.features?.DISCOUNT_FOR_X402;return typeof e=="number"&&Number.isFinite(e)&&e>0?e:0},vipDiscountPercent(){const e=(this.pricingInfo.discountRateVip??0)*100;return!Number.isFinite(e)||e<=0?"":Number.isInteger(e)?e.toFixed(0):e.toFixed(1)},x402AppliedPercent(){const t=(this.pricingInfo.discountRateX402??0)*100;return!Number.isFinite(t)||t<=0?"":Number.isInteger(t)?t.toFixed(0):t.toFixed(1)},x402BadgePercent(){const t=(this.hasX402Applied?this.pricingInfo.discountRateX402??this.x402DiscountRate:this.x402DiscountRate)*100;return!Number.isFinite(t)||t<=0?"":Number.isInteger(t)?t.toFixed(0):t.toFixed(1)},shouldDisplayX402Badge(){return this.hasX402Applied||this.pendingX402Preview},shouldShowPriceBlock(){return this.finalOriginalPrice>0||this.finalDiscountedPrice>0||this.hasAnyDiscount||this.pendingX402Preview},orderFailedReason(){if(!this.order||this.order.state!==N.FAILED)return;const t=(this.order.metadata||{})?.x402?.last_error||{};return(typeof t.reason=="string"?t.reason.trim():"")||void 0}},watch:{paying(e){e?this.startOrderPolling():this.stopOrderPolling()},order:{handler(e){if(e?.state===N.PAID){this.x402Session=void 0,setTimeout(()=>{this.redirect&&window.location.replace(this.redirect?.toString())},2e3);return}e?.state&&e.state!==N.PENDING&&e.state!==N.FAILED&&(this.x402Session=void 0)},deep:!0},payWay(e){e!=="X402"&&(this.x402Session=void 0)}},created(){this._orderRefreshTimer=void 0},mounted(){this.onFetchData()},beforeUnmount(){this.stopOrderPolling()},methods:{getPriceString:Ae,startOrderPolling(e=0){this.stopOrderPolling();const t=async()=>{try{const{data:s}=await V.refresh(this.id);if(this.order=s,s?.state===N.PAID||s?.state===N.FAILED||s?.state===N.EXPIRED){this.paying=!1,this.stopOrderPolling();return}}catch{}this.paying&&(this._orderRefreshTimer=window.setTimeout(t,Nt))};this._orderRefreshTimer=window.setTimeout(t,e)},stopOrderPolling(){const e=this._orderRefreshTimer;e&&(clearTimeout(e),this._orderRefreshTimer=void 0)},onFetchData(){this.loading=!0,V.refresh(this.id).then(({data:e})=>{this.order=e,e.pay_way&&(this.payWay=e.pay_way),this.loading=!1}).catch(()=>{this.loading=!1})},onRepay(){this.payWay==="X402"&&(this.x402Session=void 0),this.paying=!0,this.startOrderPolling()},onPay(){this.prepaying=!0,this.payWay==="X402"&&(this.x402Session=void 0),V.pay(this.id,{pay_way:this.payWay}).then(({data:e})=>{if(this.prepaying=!1,e?.id&&(this.order=e),this.payWay==="X402"&&e){const t=e;t.accepts&&(this.x402Session=t)}(this.order&&this.order.price&&this.order.price>0||this.payWay==="X402")&&(this.paying=!0,this.startOrderPolling(Z))}).catch(e=>{this.prepaying=!1;const t=e?.response?.data;if(this.payWay==="X402"&&t){this.x402Session=t,this.paying=!0,this.startOrderPolling(Z);return}})}}}),Rt={class:"title"},Vt={key:0,class:"pt-5"},Dt={key:1,class:"order"},Lt={key:0},Tt={key:1},Bt={key:2},qt={key:3},Ot={key:0,class:"price-block"},Mt={class:"price-line"},Xt={key:0,class:"price original"},Ft={class:"price current unfree"},Ht={key:1,class:"price free"},Ut={key:0,class:"payways mb-6"},xt={class:"payname"},zt={class:"payname"},jt={class:"payname"},Gt={class:"payname"},Jt={key:1},Kt={key:2};function Qt(e,t,s,i,c,d){const r=f("el-col"),h=f("el-row"),W=f("el-skeleton"),$=f("copy-to-clipboard"),b=f("el-descriptions-item"),k=f("el-tag"),S=f("el-descriptions"),C=f("el-divider"),m=f("el-alert"),A=f("el-button"),I=f("el-card"),B=f("wechat-pay-order"),z=f("stripe-pay-order"),j=f("alipay-pay-order"),q=f("x402-pay-order");return a(),g(h,{class:"panel"},{default:n(()=>[u(r,{span:24},{default:n(()=>[u(h,null,{default:n(()=>[u(r,{span:24},{default:n(()=>[o("h2",Rt,l(e.$t("order.title.info")),1)]),_:1})]),_:1}),u(h,null,{default:n(()=>[u(r,{span:24},{default:n(()=>[u(I,{shadow:"hover"},{default:n(()=>[u(h,null,{default:n(()=>[u(r,{span:16,offset:4},{default:n(()=>[e.loading?(a(),p("div",Vt,[u(W,{animated:""})])):(a(),p("div",Dt,[u(S,{column:1},{default:n(()=>[u(b,{label:e.$t("order.field.id")},{default:n(()=>[o("span",null,l(e.order?.id),1),e.order?.id?(a(),g($,{key:0,content:e.order?.id,class:"inline-block"},null,8,["content"])):y("",!0)]),_:1},8,["label"]),u(b,{label:e.$t("order.field.description")},{default:n(()=>[P(l(e.order?.description),1)]),_:1},8,["label"]),e.order?.application?.service?(a(),g(b,{key:0,label:e.$t("order.field.api")},{default:n(()=>[P(l(e.order?.application?.service?.title),1)]),_:1},8,["label"])):y("",!0),e.order?.pay_way?(a(),g(b,{key:1,label:e.$t("order.field.payWay")},{default:n(()=>[e.order?.pay_way===e.PayWay.WechatPay?(a(),p("span",Lt,l(e.$t("order.title.wechatPay")),1)):e.order?.pay_way===e.PayWay.Stripe?(a(),p("span",Tt,l(e.$t("order.title.stripe")),1)):e.order?.pay_way===e.PayWay.AliPay?(a(),p("span",Bt,l(e.$t("order.title.aliPay")),1)):e.order?.pay_way===e.PayWay.X402?(a(),p("span",qt,l(e.$t("order.title.x402")),1)):y("",!0)]),_:1},8,["label"])):y("",!0),u(b,{label:e.$t("order.field.createdAt")},{default:n(()=>[P(l(e.$dayjs.format(e.order?.created_at)),1)]),_:1},8,["label"]),u(b,{label:e.$t("order.field.price")},{default:n(()=>[e.shouldShowPriceBlock?(a(),p("div",Ot,[o("div",Mt,[e.showOriginalPrice?(a(),p("span",Xt,l(e.getPriceString({value:e.finalOriginalPrice})),1)):y("",!0),o("span",Ft,l(e.getPriceString({value:e.finalDiscountedPrice})),1),(a(!0),p(R,null,T(e.discountBadges,w=>(a(),g(k,{key:w.key,class:"discount-tag",effect:"light",size:"small",type:w.type},{default:n(()=>[P(l(w.text),1)]),_:2},1032,["type"]))),128))]),(a(!0),p(R,null,T(e.discountHints,(w,F)=>(a(),p("p",{key:F,class:"discount-hint"},l(w),1))),128))])):(a(),p("span",Ht,l(e.$t("order.message.free")),1))]),_:1},8,["label"])]),_:1})]))]),_:1})]),_:1}),e.order?.state===e.OrderState.PAID||e.order?.state===e.OrderState.FINISHED?(a(),g(h,{key:0,class:"mb-5"},{default:n(()=>[u(r,{span:16,offset:4},{default:n(()=>[u(C,{"border-style":"dashed"}),u(m,{title:e.$t("order.message.paidSuccessfully"),type:"success","show-icon":"",closable:!1},null,8,["title"])]),_:1})]),_:1})):y("",!0),e.order?.state===e.OrderState.EXPIRED?(a(),g(h,{key:1,class:"mb-5"},{default:n(()=>[u(r,{span:16,offset:4},{default:n(()=>[u(C,{"border-style":"dashed"}),u(m,{title:e.$t("order.message.orderExpired"),type:"error","show-icon":"",closable:!1},null,8,["title"])]),_:1})]),_:1})):y("",!0),e.order?.state===e.OrderState.FAILED?(a(),g(h,{key:2,class:"mb-5"},{default:n(()=>[u(r,{span:16,offset:4},{default:n(()=>[u(C,{"border-style":"dashed"}),u(m,{title:e.$t("order.state.failed"),description:e.orderFailedReason,type:"error","show-icon":"",closable:!1},null,8,["title","description"])]),_:1})]),_:1})):y("",!0),e.order?.state===e.OrderState.PENDING?(a(),g(h,{key:3},{default:n(()=>[u(r,{span:16,offset:4},{default:n(()=>[u(C,{"border-style":"dashed"}),e.showPayWays&&e.order.price&&e.order.price>0&&!e.order.pay_way?(a(),p("div",Ut,[o("div",{class:U({payway:!0,wechatpay:!0,active:e.payWay===e.PayWay.WechatPay}),onClick:t[0]||(t[0]=w=>e.payWay=e.PayWay.WechatPay)},[t[12]||(t[12]=o("span",{class:"payicon wechatpay"},null,-1)),o("span",xt,l(e.$t("order.title.wechatPay")),1)],2),o("div",{class:U({payway:!0,alipay:!0,active:e.payWay===e.PayWay.AliPay}),onClick:t[1]||(t[1]=w=>e.payWay=e.PayWay.AliPay)},[t[13]||(t[13]=o("span",{class:"payicon alipay"},null,-1)),o("span",zt,l(e.$t("order.title.aliPay")),1)],2),o("div",{class:U({payway:!0,stripe:!0,active:e.payWay===e.PayWay.Stripe}),onClick:t[2]||(t[2]=w=>e.payWay=e.PayWay.Stripe)},[t[14]||(t[14]=o("span",{class:"payicon stripe"},null,-1)),o("span",jt,l(e.$t("order.title.stripe")),1)],2),o("div",{class:U({payway:!0,x402:!0,relative:!0,active:e.payWay===e.PayWay.X402}),onClick:t[3]||(t[3]=w=>e.payWay=e.PayWay.X402)},[t[15]||(t[15]=o("span",{class:"payicon x402"},null,-1)),o("span",Gt,l(e.$t("order.title.x402")),1),e.x402DiscountRate>0?(a(),g(k,{key:0,class:"absolute -top-2 right-0",effect:"light",size:"small",type:"success"},{default:n(()=>[P(l(e.$t("order.message.x402DiscountTag",{percent:e.x402BadgePercent})),1)]),_:1})):y("",!0)],2)])):y("",!0),e.order?.pay_way?(a(),p("div",Kt,[u(A,{type:"primary",round:"",size:"large",class:"btn-repay",onClick:e.onRepay},{default:n(()=>[P(l(e.$t("common.button.repay")),1)]),_:1},8,["onClick"])])):(a(),p("div",Jt,[u(A,{loading:e.prepaying,round:"",type:"primary",size:"large",class:"btn-pay",onClick:e.onPay},{default:n(()=>[P(l(e.$t("common.button.pay")),1)]),_:1},8,["loading","onClick"])]))]),_:1})]),_:1})):y("",!0)]),_:1})]),_:1})]),_:1}),u(h,null,{default:n(()=>[u(r,{span:24},{default:n(()=>[e.order&&e.payWay===e.PayWay.WechatPay?(a(),g(B,{key:0,modelValue:e.order,"onUpdate:modelValue":t[4]||(t[4]=w=>e.order=w),visible:e.paying,onHide:t[5]||(t[5]=w=>e.paying=!1)},null,8,["modelValue","visible"])):y("",!0),e.order&&e.payWay===e.PayWay.Stripe?(a(),g(z,{key:1,modelValue:e.order,"onUpdate:modelValue":t[6]||(t[6]=w=>e.order=w),visible:e.paying,onHide:t[7]||(t[7]=w=>e.paying=!1)},null,8,["modelValue","visible"])):y("",!0),e.order&&e.payWay===e.PayWay.AliPay?(a(),g(j,{key:2,modelValue:e.order,"onUpdate:modelValue":t[8]||(t[8]=w=>e.order=w),visible:e.paying,onHide:t[9]||(t[9]=w=>e.paying=!1)},null,8,["modelValue","visible"])):y("",!0),e.order&&e.payWay===e.PayWay.X402?(a(),g(q,{key:3,modelValue:e.order,"onUpdate:modelValue":t[10]||(t[10]=w=>e.order=w),session:e.x402Session,visible:e.paying,onHide:t[11]||(t[11]=w=>e.paying=!1)},null,8,["modelValue","session","visible"])):y("",!0)]),_:1})]),_:1})]),_:1})]),_:1})}const cs=M(It,[["render",Qt],["__scopeId","data-v-62615fcb"]]);export{cs as default};
@@ -1 +0,0 @@
1
- import{I as A}from"./api-Ch0ZHArw.js";import{_ as y,ad as q,ae as F,aa as L}from"./index-BwtxyV6k.js";import"./vendor-B4-12K57.js";import{g as E}from"./price-Clo8IP03.js";import{d as S,c as s,Z as t,o as a,F as _,ak as v,W as l,Y as g,R as d,S as i,l as o,am as n,a as $,U as D,V as R,_ as N}from"./vendor-vue-BzRnDgD5.js";import{o as z}from"./order-DYcfG_Yw.js";import{A as G,B as W,n as j,k as H,I as J,J as Y,t as Z,x as K,y as Q,H as X,s as x}from"./vendor-element-plus-C2t7-rNg.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-nHemWFue.js";import"./vendor-dayjs-D6Igi227.js";import"./vendor-katex-DHBGsivc.js";const ee=S({name:"ApiPrice",props:{price:{type:Number,required:!1,default:0},unit:{type:String,required:!1,default:void 0},start:{type:Boolean,required:!1,default:!1}},methods:{getPriceString:E}}),ae={class:"price-text"},te={key:0,class:"unfree"},ie={key:1,class:"free"};function se(e,p,k,C,I,O){return a(),s("div",ae,[e.price>0?(a(),s("span",te,t(e.getPriceString({value:e.price}))+" "+t(e.unit?` / ${e.unit}`:"")+t(e.start?e.$t("common.message.startPrice"):""),1)):(a(),s("span",ie,t(e.$t("common.message.free")),1))])}const oe=y(ee,[["render",se],["__scopeId","data-v-bb068181"]]),re=S({name:"ServiceEstimation",components:{},props:{service:{type:Object,required:!0},package:{type:Object,required:!0}},methods:{getPriceString:E}}),ne={class:"estimation"},le={key:0,class:"item"},pe={key:0},ce={key:1},ue={key:2},de={key:0},me={key:1};function he(e,p,k,C,I,O){return a(),s("div",ne,[(a(!0),s(_,null,v(e.service?.apis,(m,h)=>(a(),s("div",{key:h},[(a(!0),s(_,null,v(m?.estimation,(c,f)=>(a(),s("div",{key:f,class:"items"},[e.package?.amount&&c?.cost?(a(),s("p",le,[g(" ≈ "+t(c.name)+" "+t(Math.round(e.package.amount/c.cost))+" "+t(e.$t("api.unit.count"))+" ",1),e.package.price>0?(a(),s("span",pe," - "+t(e.getPriceString({value:e.package.price/(e.package.amount/c.cost),fractionDigits:3})+" / "+e.$t("api.unit.count")),1)):l("",!0),c.remark?(a(),s("span",ce," ("+t(c.remark)+") ",1)):l("",!0),c?.comparisons?.length>0?(a(),s("span",ue," - ")):l("",!0),(a(!0),s(_,null,v(c?.comparisons,(r,b)=>(a(),s("span",{key:b,class:"comparison"},[r?.value<0?(a(),s("i",de,t(e.$t("api.message.cheaperThan").replace("$[[value]]",r?.target?.toString()))+" "+t(Math.abs(r?.value)*100)+"% ",1)):l("",!0),r?.value>0?(a(),s("i",me,t(e.$t("api.message.moreExpensiveThan").replace("$[[value]]",r?.target?.toString()))+" "+t(Math.abs(r?.value)*100)+"% ",1)):l("",!0)]))),128))])):l("",!0)]))),128))]))),128))])}const ge=y(re,[["render",he],["__scopeId","data-v-370bc975"]]),fe=S({name:"ConsoleApplicationBuy",components:{ElSkeleton:X,ElRow:Q,ElCol:K,ElCard:Z,ElForm:Y,ElFormItem:J,ElButton:H,ElDivider:j,ElRadioGroup:W,ElRadioButton:G,Price:oe,ServiceEstimation:ge},data(){return{lang:this.$i18n.locale,application:void 0,loading:!1,type:A.USAGE,form:{packageId:void 0,amount:void 0},creating:!1}},computed:{applicationId(){return this.$route.params?.id?.toString()},id(){return this.$route.params?.id?.toString()},price(){return this.application?.service?.price&&this.form.amount?this.form.amount*this.application.service?.price:0},packages(){return this.application?.packages?.filter(e=>e.type===A.USAGE).sort((e,p)=>e.amount-p.amount)||[]},package(){if(this.packages&&this.form.packageId){const e=this.packages.filter(p=>p.id===this.form.packageId);if(e.length>0)return e[0]}}},mounted(){this.onFetchApplication()},methods:{getDiscount(e){return this.packages&&this.packages.length>0?this.lang?.startsWith("zh")?(10*e?.price/e?.amount/(this.packages[0].price/this.packages[0]?.amount)).toFixed(1)+"折":Math.round(100-100*e?.price/e?.amount/(this.packages[0].price/this.packages[0]?.amount))+"% OFF":""},onSubscribe(){this.$router.push({name:F,params:this.$route.params})},getPriceString:E,onFetchApplication(){this.loading=!0,L.get(this.id).then(({data:e})=>{this.application=e,this.loading=!1,this.form.packageId=this.packages?.[0]?.id}).catch(()=>{this.loading=!1})},onChangeType(){this.$router.push({name:F,params:this.$route.params})},onCreateOrder(){if(!this.application?.id)return;this.creating=!0;const e=this.$t(`service.unit.${this.application?.service?.unit}s`);z.create({application_id:this.application?.id,amount:this.package?.amount,...this.form.packageId!=="custom"&&this.package?{package_id:this.package.id}:{},description:this.application?.service?`${this.application?.service?.title} x ${this.package?.amount} ${e}`:this.$t("application.title.globalBuy")+" - "+this.package?.amount+" "+this.$t("service.unit.credits")}).then(({data:p})=>{this.creating=!1;const k=p;this.$router.push({name:q,params:{id:k.id}})}).catch(()=>{x.error(this.$t("order.message.createFailed")),this.creating=!1})}}}),ke={class:"title"},$e={key:0},_e={class:"text-[var(--el-text-color-secondary)] text-[12px] mb-3"},ve={key:0,class:"ml-2"},be={key:1,class:R({price:!0,free:!0})};function ye(e,p,k,C,I,O){const m=n("el-col"),h=n("el-row"),c=n("el-skeleton"),f=n("el-divider"),r=n("el-form-item"),b=n("el-radio-button"),T=n("el-radio-group"),w=n("service-estimation"),V=n("price"),B=n("el-button"),U=n("el-form"),M=n("el-card");return a(),d(h,{class:"panel"},{default:i(()=>[o(m,{span:24},{default:i(()=>[o(h,null,{default:i(()=>[o(m,{span:24},{default:i(()=>[$("h2",ke,t(e.$t("common.title.buyMore")),1)]),_:1})]),_:1}),o(h,null,{default:i(()=>[o(m,{span:24},{default:i(()=>[o(M,{shadow:"hover",class:"min-h-[500px]"},{default:i(()=>[o(h,null,{default:i(()=>[o(m,{span:16,offset:4},{default:i(()=>[e.loading?(a(),d(c,{key:0})):e.application?(a(),d(U,{key:1,"label-width":"100px"},{default:i(()=>[e.application?.service?l("",!0):(a(),s("div",$e,[$("p",_e,t(e.$t("application.message.globalBalanceBuyDescription")),1),o(f,{"border-style":"dashed"})])),e.application?.service?(a(),d(r,{key:1,label:e.$t("application.field.service")},{default:i(()=>[g(t(e.application?.service?.title),1)]),_:1},8,["label"])):(a(),d(r,{key:2,label:e.$t("application.field.scope")},{default:i(()=>[g(t(e.$t("application.title.globalBuy")),1)]),_:1},8,["label"])),o(r,{label:e.$t("application.field.package"),class:"mb-0"},{default:i(()=>[e.packages?(a(),d(T,{key:0,modelValue:e.form.packageId,"onUpdate:modelValue":p[0]||(p[0]=u=>e.form.packageId=u)},{default:i(()=>[(a(!0),s(_,null,v(e.packages,(u,P)=>(a(),d(b,{key:P,label:u.id,class:"mb-2"},{default:i(()=>[D($("span",{class:"corner"},t(e.getDiscount(u)),513),[[N,P!==0]]),g(" "+t(u.amount)+" "+t(e.$t(`service.unit.${e.application?.service?.unit||"credit"}s`)),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])):l("",!0)]),_:1},8,["label"]),e.application?.service?.apis&&e.application?.service?.apis?.map(u=>u?.estimation).filter(u=>!!u)?.length>0?(a(),d(r,{key:3},{default:i(()=>[e.application?.service?(a(),d(w,{key:0,service:e.application.service,package:e.package},null,8,["service","package"])):l("",!0)]),_:1})):l("",!0),o(r,{label:e.$t("service.field.price")},{default:i(()=>[o(V,{price:e.package?.price},null,8,["price"]),e.package?(a(),s("span",ve,"("+t(e.getPriceString({value:e.package?.price/e.package?.amount})+" / "+e.$t(`service.unit.${e.application?.service?.unit||"credits"}`))+") ",1)):l("",!0)]),_:1},8,["label"]),o(f,{"border-style":"dashed"}),o(r,{label:e.$t("application.field.shouldPayPrice")},{default:i(()=>[e.package?(a(),s("span",{key:0,class:R({price:!0,unfree:e.package?.price>0,free:e.package?.price===0})},t(e.getPriceString({value:e.package?.price})),3)):(a(),s("span",be," $ 0 "))]),_:1},8,["label"]),o(r,null,{default:i(()=>[o(B,{type:"primary",size:"large",class:"btn-create",loading:e.creating,round:"",onClick:e.onCreateOrder},{default:i(()=>[g(t(e.$t("application.button.createOrder")),1)]),_:1},8,["loading","onClick"])]),_:1}),o(f,{"border-style":"dashed"}),D(o(r,{label:""},{default:i(()=>[$("span",null,t(e.$t("console.message.doNotWantExtra")),1),o(B,{type:"primary",class:"btn btn-subscribe",round:"",size:"small",onClick:e.onSubscribe},{default:i(()=>[g(t(e.$t("console.message.subscribe")),1)]),_:1},8,["onClick"])]),_:1},512),[[N,!1]])]),_:1})):l("",!0)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}const Re=y(fe,[["render",ye],["__scopeId","data-v-fcfd9ab5"]]);export{Re as default};
@@ -1 +0,0 @@
1
- import{bH as c}from"./vendor-B4-12K57.js";import{av as p,_ as m}from"./index-BwtxyV6k.js";import{P as f}from"./vendor-element-plus-C2t7-rNg.js";import{d,c as a,a as t,W as x,l as o,U as u,am as n,_,Z as g,o as i}from"./vendor-vue-BzRnDgD5.js";const h=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,B,C,F,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"]),[[_,e.percentage&&e.percentage<100]])])]),t("div",b,[t("span",k,g(e.name),1)]),e.closable?(i(),a("div",$,[o(r,{icon:"fa-solid fa-xmark",class:"icon icon-close",onClick:s[0]||(s[0]=P=>e.$emit("remove"))})])):x("",!0)])}const E=m(h,[["render",j]]);export{E as F};
@@ -1 +0,0 @@
1
- import{P as g}from"./Pagination-B1kOfzR8.js";import{C as b}from"./CopyToClipboard-D0yPTPYW.js";import{b as w}from"./distribution-D9pkXpfI.js";import{_ as y}from"./index-BwtxyV6k.js";import"./vendor-B4-12K57.js";import{g as $}from"./price-Clo8IP03.js";import{t as C,u as v,w as D,x as H,y as P}from"./vendor-element-plus-C2t7-rNg.js";import{d as S,R as p,S as o,l as e,am as s,a,Z as n,U as E,at as F,o as u}from"./vendor-vue-BzRnDgD5.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-nHemWFue.js";import"./vendor-dayjs-D6Igi227.js";import"./vendor-katex-DHBGsivc.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"},I={class:"copy"},T={class:"key"},z={class:"copy"},A={class:"price"},N={class:"description"},R={class:"description"},V={class:"created-at"},j={class:"pagination m-v-lg"};function L(t,O,U,Z,G,J){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",I,[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",T,n(i.row.user_id),1),a("span",z,[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",A,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",N,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",R,n(i.row.percentage)+"%",1)]),_:1},8,["label"]),e(r,{label:t.$t("distribution.field.createdAt"),width:"200px"},{default:o(i=>[a("span",V,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",j,[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",L],["__scopeId","data-v-74b9e778"]]);export{st as default};
@@ -1 +0,0 @@
1
- import{k as i}from"./vendor-element-plus-C2t7-rNg.js";import{d as m,c as a,W as p,R as l,S as d,Y as u,Z as f,am as g,o as s}from"./vendor-vue-BzRnDgD5.js";import{_ as w}from"./index-BwtxyV6k.js";const y=m({name:"ImageWrapper",components:{ElButton:i},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()}}}),S={class:"image-wrapper"},_=["src"];function k(e,r,t,o,I,b){const c=g("el-button");return s(),a("div",S,[e.src?(s(),a("img",{key:0,src:e.src,class:"image",onError:r[0]||(r[0]=n=>e.onReload(n))},null,40,_)):p("",!0),e.rawSrc?(s(),l(c,{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-012b4a9e"]]);export{R as I};
@@ -1 +0,0 @@
1
- import{E as T,a as D,b as E}from"./EditArray-DpGXSb1V.js";import{d as U,_ as F}from"./index-BwtxyV6k.js";import"./vendor-B4-12K57.js";import{I as V,j as _,J as q,t as A,x as j,i as B,y as L,n as N}from"./vendor-element-plus-C2t7-rNg.js";import{d as R,R as O,S as s,l as t,am as n,a as l,Z as o,Y as m,c as y,ak as Q,F as W,o as w,U as k,W as J,_ as C}from"./vendor-vue-BzRnDgD5.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-nHemWFue.js";import"./vendor-dayjs-D6Igi227.js";import"./vendor-katex-DHBGsivc.js";const K=R({name:"SiteIndex",components:{EditText:E,EditImage:D,EditArray:T,ElDivider:N,ElRow:L,ElImage:B,ElCol:j,ElCard:A,ElForm:q,ElSwitch:_,ElFormItem:V},data(){return{editing:{title:!1}}},computed:{site(){return this.$store.getters.site}},methods:{onSave(e){const a={...this.site,...e};U.update(this.site?.id,a).then(()=>{console.debug("getSite for id",this.site?.id),this.$store.dispatch("getSite")})}}}),Y={class:"title"},Z={class:"title"},z={class:"block w-full"},G={class:"block tip"},H={class:"block w-full"},M={class:"block tip"},P={class:"block w-full"},X={class:"block tip"},x={class:"block w-full"},ee={class:"block tip"},te={class:"block w-full"},ie={class:"block tip"},se={class:"title"},le={class:"block w-full"},oe={class:"block tip"},ae={class:"block w-full"},de={class:"block tip"},ne={class:"title"},re={class:"block tip"},me={class:"block tip"},ue={class:"title"},pe={class:"w-full"},fe={class:"block tip w-full"},be={key:0},ve={class:"block w-full"},he={class:"block w-full"};function ce(e,a,$e,ge,we,ke){const f=n("el-col"),h=n("el-row"),u=n("el-divider"),d=n("el-form-item"),p=n("edit-text"),c=n("el-image"),$=n("edit-image"),I=n("edit-array"),b=n("el-form"),v=n("el-card"),g=n("el-switch");return w(),O(h,{class:"panel"},{default:s(()=>[t(f,{span:24},{default:s(()=>[t(h,null,{default:s(()=>[t(f,{span:24},{default:s(()=>[l("h2",Y,o(e.$t("common.title.site")),1)]),_:1})]),_:1}),t(h,{gutter:15},{default:s(()=>[t(f,{md:12,xs:24},{default:s(()=>[t(v,{shadow:"hover",class:"mb-4"},{default:s(()=>[l("h4",Z,o(e.$t("site.title.basicConfig")),1),t(u),t(b,{model:e.site,class:"form","label-width":"auto",style:{"max-width":"600px"}},{default:s(()=>[t(d,{label:e.$t("site.field.origin")},{default:s(()=>[l("span",z,o(e.site.origin),1),l("span",G,o(e.$t("site.message.originTip")),1)]),_:1},8,["label"]),t(d,{label:e.$t("site.field.title")},{default:s(()=>[l("span",H,[m(o(e.site.title)+" ",1),t(p,{"model-value":e.site.title,title:e.$t("site.title.editTitle"),placeholder:e.$t("site.placeholder.title"),onConfirm:a[0]||(a[0]=i=>e.onSave({title:i}))},null,8,["model-value","title","placeholder"])]),l("span",M,o(e.$t("site.message.titleTip")),1)]),_:1},8,["label"]),t(d,{label:e.$t("site.field.logo")},{default:s(()=>[l("span",P,[t(c,{src:e.site.logo,class:"logo"},null,8,["src"]),t($,{"model-value":e.site.logo,title:e.$t("site.title.editLogo"),tip:e.$t("site.message.editLogoTip"),onConfirm:a[1]||(a[1]=i=>e.onSave({logo:i}))},null,8,["model-value","title","tip"])]),l("span",X,o(e.$t("site.message.logoTip")),1)]),_:1},8,["label"]),t(d,{label:e.$t("site.field.favicon")},{default:s(()=>[l("span",x,[t(c,{src:e.site.favicon,class:"favicon"},null,8,["src"]),t($,{"model-value":e.site.favicon,title:e.$t("site.title.editFavicon"),tip:e.$t("site.message.editFaviconTip"),onConfirm:a[2]||(a[2]=i=>e.onSave({favicon:i}))},null,8,["model-value","title","tip"])]),l("span",ee,o(e.$t("site.message.faviconTip")),1)]),_:1},8,["label"]),t(u,{"border-style":"dashed"}),t(d,{label:e.$t("site.field.admins")},{default:s(()=>[l("span",te,[m(o(e.site.admins?.join(", "))+" ",1),t(I,{"model-value":e.site?.admins||[],title:e.$t("site.title.editAdmins"),placeholder:e.$t("site.placeholder.admins"),tip:e.$t("site.message.adminsTip2"),min:1,"min-error-message":e.$t("site.message.atLeastOneAdmin"),onConfirm:a[3]||(a[3]=i=>e.onSave({admins:i}))},null,8,["model-value","title","placeholder","tip","min-error-message"])]),l("span",ie,o(e.$t("site.message.adminsTip")),1)]),_:1},8,["label"])]),_:1},8,["model"])]),_:1}),t(v,{shadow:"hover"},{default:s(()=>[l("h4",se,o(e.$t("site.title.seoConfig")),1),t(u),t(b,{model:e.site,class:"form","label-width":"auto",style:{"max-width":"600px"}},{default:s(()=>[t(d,{label:e.$t("site.field.description")},{default:s(()=>[l("span",le,[m(o(e.site.description)+" ",1),t(p,{"model-value":e.site.description,title:e.$t("site.title.editDescription"),placeholder:e.$t("site.placeholder.description"),onConfirm:a[4]||(a[4]=i=>e.onSave({description:i}))},null,8,["model-value","title","placeholder"])]),l("span",oe,o(e.$t("site.message.descriptionTip")),1)]),_:1},8,["label"]),t(d,{label:e.$t("site.field.keywords")},{default:s(()=>[l("span",ae,[m(o(e.site.keywords?.join(", "))+" ",1),t(I,{"model-value":e.site?.keywords||[],title:e.$t("site.title.editKeywords"),placeholder:e.$t("site.placeholder.keywords"),tip:e.$t("site.message.keywordsTip2"),onConfirm:a[5]||(a[5]=i=>e.onSave({keywords:i}))},null,8,["model-value","title","placeholder","tip"])]),l("span",de,o(e.$t("site.message.keywordsTip")),1)]),_:1},8,["label"])]),_:1},8,["model"])]),_:1})]),_:1}),t(f,{md:12,xs:24},{default:s(()=>[t(v,{shadow:"hover",class:"mb-4"},{default:s(()=>[l("h4",ne,o(e.$t("site.title.distributionConfig")),1),t(u),t(b,{model:e.site,class:"form","label-width":"auto",style:{"max-width":"600px"}},{default:s(()=>[t(d,{label:e.$t("site.field.distributionDefaultInviterId")},{default:s(()=>[m(o(e.site.distribution?.default_inviter_id)+" ",1),t(p,{"model-value":e.site.distribution?.default_inviter_id,title:e.$t("site.title.editDistributionDefaultInviterId"),placeholder:e.$t("site.placeholder.editDistributionDefaultInviterId"),onConfirm:a[6]||(a[6]=i=>e.onSave({distribution:{...e.site.distribution,default_inviter_id:i}}))},null,8,["model-value","title","placeholder"]),l("span",re,o(e.$t("site.message.distributionDefaultInviterIdTip")),1)]),_:1},8,["label"]),t(d,{label:e.$t("site.field.distributionForceInviterId")},{default:s(()=>[m(o(e.site.distribution?.force_inviter_id)+" ",1),t(p,{"model-value":e.site.distribution?.force_inviter_id,title:e.$t("site.title.editDistributionForceInviterId"),placeholder:e.$t("site.placeholder.editDistributionForceInviterId"),onConfirm:a[7]||(a[7]=i=>e.onSave({distribution:{...e.site.distribution,force_inviter_id:i}}))},null,8,["model-value","title","placeholder"]),l("span",me,o(e.$t("site.message.distributionForceInviterIdTip")),1)]),_:1},8,["label"])]),_:1},8,["model"])]),_:1}),t(v,{shadow:"hover"},{default:s(()=>[l("h4",ue,o(e.$t("site.title.featuresConfig")),1),t(u),t(b,{model:e.site,class:"form","label-width":"auto",style:{"max-width":"600px"}},{default:s(()=>[(w(),y(W,null,Q(["chat","midjourney","qrart","nanobanana","seedream","seedance","suno","luma","pika","kling","flux","hailuo","headshots","support"],(i,S)=>t(d,{key:S,label:e.$t("site.field.features"+i.charAt(0).toUpperCase()+i.slice(1))},{default:s(()=>[l("div",pe,[t(g,{"model-value":e.site.features[i]?.enabled||!1,"inline-prompt":"","active-text":e.$t("site.button.enabled"),"inactive-text":e.$t("site.button.disabled"),"onUpdate:modelValue":r=>e.onSave({features:{...e.site.features,[i]:{...e.site.features[i],enabled:r}}})},null,8,["model-value","active-text","inactive-text","onUpdate:modelValue"])]),l("span",fe,o(e.$t("site.message.features"+i.charAt(0).toUpperCase()+i.slice(1))),1),i==="support"?k((w(),y("div",be,[t(d,{label:"WeChat"},{default:s(()=>[t(g,{"model-value":e.site.features[i]?.wechat?.enabled||!1,"inline-prompt":"","active-text":e.$t("site.button.enabled"),"inactive-text":e.$t("site.button.disabled"),"onUpdate:modelValue":r=>e.onSave({features:{...e.site.features,[i]:{...e.site.features[i],wechat:{...e.site.features[i]?.wechat,enabled:r}}}})},null,8,["model-value","active-text","inactive-text","onUpdate:modelValue"])]),_:2},1024),k(t(d,{label:e.$t("site.field.qr")},{default:s(()=>[l("span",ve,[t(c,{src:e.site.features[i]?.wechat?.qr},null,8,["src"]),t($,{"model-value":e.site.features[i]?.wechat?.qr,title:e.$t("site.title.editQR"),tip:e.$t("site.message.editQRTip"),onConfirm:r=>e.onSave({features:{...e.site.features,[i]:{...e.site.features[i],wechat:{...e.site.features[i]?.wechat,qr:r}}}})},null,8,["model-value","title","tip","onConfirm"])])]),_:2},1032,["label"]),[[C,e.site.features[i]?.wechat?.enabled]]),t(d,{label:"Discord"},{default:s(()=>[t(g,{"model-value":e.site.features[i]?.discord?.enabled||!1,"inline-prompt":"","active-text":e.$t("site.button.enabled"),"inactive-text":e.$t("site.button.disabled"),"onUpdate:modelValue":r=>e.onSave({features:{...e.site.features,[i]:{...e.site.features[i],discord:{...e.site.features[i]?.discord,enabled:r}}}})},null,8,["model-value","active-text","inactive-text","onUpdate:modelValue"])]),_:2},1024),k(t(d,{label:e.$t("site.field.url")},{default:s(()=>[l("span",he,[m(o(e.site.features[i]?.discord?.url)+" ",1),t(p,{"model-value":e.site.features[i]?.discord?.url,title:e.$t("site.title.editUrl"),placeholder:e.$t("site.placeholder.editUrl"),onConfirm:r=>e.onSave({features:{...e.site.features,[i]:{...e.site.features[i],discord:{...e.site.features[i]?.discord,url:r}}}})},null,8,["model-value","title","placeholder","onConfirm"])])]),_:2},1032,["label"]),[[C,e.site.features[i]?.discord?.enabled]])],512)),[[C,e.site.features[i]?.enabled]]):J("",!0)]),_:2},1032,["label"])),64))]),_:1},8,["model"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}const Ve=F(K,[["render",ce],["__scopeId","data-v-de742379"]]);export{Ve as default};
@@ -1 +0,0 @@
1
- import{bH as A}from"./vendor-B4-12K57.js";import{k as C,O as W,q as H,r as N,s as V,K as j,L as O,o as Z,C as K,i as Y}from"./vendor-element-plus-C2t7-rNg.js";import{d as k,c as i,a as c,l as s,P as D,S as _,am as n,o as a,Z as o,Y as u,F as w,ak as I,R as E,W as v,V as R,a1 as J}from"./vendor-vue-BzRnDgD5.js";import{_ as y,a5 as Q,bY as X,bZ as x,b_ as ee,b$ as se,c0 as te,c1 as oe,c2 as U,c3 as q,c4 as G,c5 as B,c6 as ae,ak as ne,ah as P}from"./index-BwtxyV6k.js";import{I as M,S as le}from"./ScrollList-CfFOKFbb.js";import{I as F}from"./ImagePreview-Dun0qhAC.js";import{C as re,N as ie}from"./NoTasks-CQZOGbwI.js";import{a as ce}from"./price-Clo8IP03.js";import{C as de}from"./CopyToClipboard-D0yPTPYW.js";import{I as me}from"./ImageWrapper-DAJLZ3ud.js";import{B as ue}from"./BotPlaceholder-ClX8uvvo.js";import"./vendor-dayjs-D6Igi227.js";import"./vendor-katex-DHBGsivc.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-nHemWFue.js";const pe=k({name:"LayoutSeedream",components:{ElDrawer:W,ElButton:C,FontAwesomeIcon:A},data(){return{drawer:!1}}}),fe={class:"main flex flex-row flex-1"},he={class:"config w-[300px] h-full overflow-y-scroll bg-[var(--app-sidebar-bg)]"},_e={class:"result h-full p-[15px] flex-1 flex flex-col"};function ge(e,t,g,r,m,p){const f=n("font-awesome-icon"),h=n("el-button"),l=n("el-drawer");return a(),i("div",fe,[c("div",he,[D(e.$slots,"config",{},void 0,!0)]),c("div",_e,[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 $e=y(pe,[["render",ge],["__scopeId","data-v-b4ad94f1"]]),ve="",be=k({name:"SeedreamPromptInput",components:{ElInput:H,InfoIcon:M},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=ve)}}),ke={class:"field"},ye={class:"box"},we={class:"title font-bold"};function Ee(e,t,g,r,m,p){const f=n("info-icon"),h=n("el-input");return a(),i("div",ke,[c("div",ye,[c("h2",we,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 Se=y(be,[["render",Ee],["__scopeId","data-v-5559520a"]]),Ve=k({name:"SeedreamImageInput",components:{ElUpload:N,ElButton:C,InfoIcon:M,ImagePreview:F,FontAwesomeIcon:A},data(){return{fileList:[],uploadUrl:Q()+"/api/v1/files/",suppressWatch:!1}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url).filter(e=>!!e)},value(){return this.$store.state.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()}}}),Ie={class:"field"},Le={class:"label"},Re={class:"box"},Te={class:"title font-bold"},Ae={class:"value"},Ce={class:"file-list mt-2 flex flex-wrap gap-[10px]"};function Me(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",Ie,[c("div",Le,[c("div",Re,[c("h2",Te,o(e.$t("seedream.name.imageUrls")),1),s(f,{content:e.$t("seedream.description.imageUrls"),class:"info"},null,8,["content"])])]),c("div",Ae,[s(d,{"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 De=y(Ve,[["render",Me],["__scopeId","data-v-29737ed9"]]),ze=k({name:"SeedreamModelSelector",components:{ElSelect:O,ElOption:j,InfoIcon:M},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=X)}}),Ue={class:"field"},qe={class:"label"},Ge={class:"box"},Pe={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",Ue,[c("div",qe,[c("div",Ge,[c("h2",Pe,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 Oe=y(ze,[["render",je],["__scopeId","data-v-3c3ca27d"]]),Be=k({name:"SeedreamSizeSelector",components:{ElSelect:O,ElOption:j,InfoIcon:M},data(){return{options:[{value:U,label:U},{value:q,label:q},{value:G,label:G}]}},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)}}),Fe={class:"field"},We={class:"label"},He={class:"box"},Ne={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",Fe,[c("div",We,[c("div",He,[c("h2",Ne,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 Ke=y(Be,[["render",Ze],["__scopeId","data-v-54a9a469"]]),Ye=k({name:"SeedreamConfigPanel",components:{ElButton:C,FontAwesomeIcon:A,PromptInput:Se,Consumption:re,ImageInput:De,ModelSelector:Oe,SizeSelector:Ke},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")}}}),Je={class:"flex flex-col h-full"},Qe={class:"flex-1 overflow-y-auto p-[15px]"},Xe={class:"flex flex-col items-center justify-center px-[15px] pb-[15px]"};function xe(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",Je,[c("div",Qe,[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 es=y(Ye,[["render",xe]]),ss=k({name:"SeedreamTaskPreview",components:{ElImage:Y,CopyToClipboard:de,FontAwesomeIcon:A,ElAlert:K,ImageWrapper:me,ElButton:C,ElTooltip:Z,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)}}}),ts={class:"preview"},os={class:"left"},as={class:"main"},ns={class:"bot"},ls={class:"datetime"},rs={class:"info"},is={key:0,class:"flex justify-start items-center gap-2 mt-2 w-full overflow-x-auto"},cs={key:1,class:"prompt mt-2"},ds={key:0},ms={key:0,class:R({content:!0})},us={class:"text-[var(--el-text-color-regular)] text-xs mb-0"},ps={key:1,class:R({content:!0,failed:!0})},fs={class:"flex justify-start items-center gap-4 w-full overflow-x-auto"},hs={class:R({operations:!0,"mt-2":!0,"mb-2":!0})},_s={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},gs={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},$s={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},vs={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},bs={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},ks={key:2,class:R({content:!0})},ys={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},ws={key:1,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Es={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ss={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Vs={key:2,class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Is={key:3,class:"text-[var(--el-text-color-regular)] text-xs mb-0"},Ls={key:3,class:R({content:!0})},Rs={class:"text-[var(--el-text-color-regular)] text-xs mb-2"},Ts={key:0,class:"text-[var(--el-text-color-regular)] text-xs mb-0"};function As(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",ts,[c("div",os,[s(f,{src:"https://cdn.acedata.cloud/9egrbn.png",class:"avatar"})]),c("div",as,[c("div",ns,[u(o(e.$t("seedream.name.seedreamBot"))+" ",1),c("span",ls,o(e.$dayjs.format(""+new Date(parseFloat((e.modelValue?.created_at||"").toString())*1e3))),1)]),c("div",rs,[Array.isArray(e.modelValue?.request?.image)&&e.modelValue?.request?.image.length>0?(a(),i("div",is,[(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",cs,[u(o(e.modelValue?.request?.prompt)+" ",1),e.modelValue?.response?v("",!0):(a(),i("span",ds," - ("+o(e.$t("seedream.status.pending"))+") ",1))])):v("",!0)]),e.modelValue?.response?e.modelValue?.response?.success===!0?(a(),i("div",ps,[c("div",fs,[(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",hs,[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]=J(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",_s,[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",gs,[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",$s,[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 inline-block"},null,8,["content"])]),e.modelValue?.response?.trace_id?(a(),i("p",bs,[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",ks,[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",ys,[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",ws,[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",Es,[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",Ss,[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",Vs,[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",Is,[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",Ls,[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",Rs,[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",Ts,[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",ms,[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",us,[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(ss,[["render",As],["__scopeId","data-v-f34f00b9"]]),Ms=k({name:"SeedreamRecentPanel",components:{TaskPreview:Cs,BotPlaceholder:ue,NoTasks:ie,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?.()}}}),Ds={key:0},zs={key:2,class:"w-full h-full flex items-center justify-center"};function Us(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",Ds,[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",zs,[s(d)])):v("",!0)],64)}const qs=y(Ms,[["render",Us]]),Gs="https://webhook.acedata.cloud/seedream",Ps=k({name:"SeedreamIndex",components:{ConfigPanel:es,Layout:$e,RecentPanel:qs},inject:["initialized"],data(){return{task:void 0,job:0,loading:!1}},computed:{applicationsLoading(){return this.$store.state.seedream?.status?.getApplications===P.Request},tasksLoading(){return this.$store.state.seedream?.status?.getTasks===P.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:Gs},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 tt=y(Ps,[["render",js]]);export{tt as default};
@@ -1 +0,0 @@
1
- import{bH as z,bX as Z,bY as Q,l as ne,bZ as ie,b_ as D,b$ as ae,c0 as le,c1 as re,c2 as ce}from"./vendor-B4-12K57.js";import{k as R,O as ue,j as de,K as pe,L as me,r as fe,s as k,q as M,Q as ee,e as X,i as W,A as te,B as se,R as J,V as he,W as _e,f as $e,g as ge,h as ve,o as ye,p as ke,H as be,U as we,X as Ce}from"./vendor-element-plus-C2t7-rNg.js";import{d as w,c as u,a as s,l as o,P as q,S as c,am as a,o as n,W as m,Z as l,F as G,ak as H,R as v,Y as C,U as N,at as K,a1 as U,b as I,z as T,w as Ve,X as Se,_ as Ae}from"./vendor-vue-BzRnDgD5.js";import{_ as S,bN as Pe,bO as E,a5 as Ue,ah as F,aa as Te,ag as Ee}from"./index-BwtxyV6k.js";import{I as L,S as Ie}from"./ScrollList-CfFOKFbb.js";import{C as Le,N as ze}from"./NoTasks-CQZOGbwI.js";import{a as Fe}from"./price-Clo8IP03.js";import{l as Ge}from"./pagination-bjoHZNQW.js";import"./vendor-dayjs-D6Igi227.js";import"./vendor-katex-DHBGsivc.js";import"./vendor-axios-NIGUFBhG.js";import"./vendor-vue-router-nHemWFue.js";const je=w({name:"LayoutSuno",components:{ElDrawer:ue,ElButton:R,FontAwesomeIcon:z},data(){return{drawer:!1,preview:!1}},computed:{}}),De={class:"main flex flex-row flex-1"},Re={class:"config w-[300px] h-full overflow-y-scroll bg-[var(--app-sidebar-bg)]"},Me={class:"result h-full flex flex-col flex-1"},We={class:"preview h-full w-[300px] flex flex-col"};function Ne(e,t,r,i,f,p){const d=a("font-awesome-icon"),h=a("el-button"),_=a("el-drawer");return n(),u("div",De,[s("div",Re,[q(e.$slots,"config",{},void 0,!0)]),s("div",Me,[q(e.$slots,"result",{},void 0,!0)]),s("div",We,[q(e.$slots,"preview",{},void 0,!0)]),o(h,{circle:"",class:"menu",onClick:t[0]||(t[0]=$=>e.drawer=!0)},{default:c(()=>[o(d,{icon:"fa-solid fa-magic"})]),_:1}),o(_,{modelValue:e.drawer,"onUpdate:modelValue":t[1]||(t[1]=$=>e.drawer=$),direction:"ltr","with-header":!1,size:"340px",class:"drawer"},{default:c(()=>[q(e.$slots,"config",{},void 0,!0)]),_:3},8,["modelValue"])])}const Oe=S(je,[["render",Ne],["__scopeId","data-v-087f869f"]]),Be=w({name:"TypeSelector",components:{ElSelect:me,ElOption:pe,ElSwitch:de},data(){return{options:[{label:"Suno v5",value:"chirp-v5",info:"8 min"},{label:"Suno v4.5+",value:"chirp-v4-5-plus",info:"8 min"},{label:"Suno v4.5",value:"chirp-v4-5",info:"4 min"},{label:"Suno v4",value:"chirp-v4",info:"2.5 min"},{label:"Suno v3.5",value:"chirp-v3-5",info:"2 min"},{label:"Suno v3",value:"chirp-v3-0",info:"2 min"}]}},computed:{custom:{get(){return this.$store.state.suno?.config?.custom||!1},set(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,custom:e})}},instrumental:{get(){return this.$store.state.suno?.config?.instrumental||!1},set(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,instrumental:e})}},model:{get(){return this.$store.state.suno?.config?.model},set(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,model:e})}}},mounted(){this.model||(this.model=Pe)}}),qe={class:"flex items-center justify-between mb-3"},He={class:"text-sm font-bold"},Xe={class:"mb-3"},Ke={class:"flex items-center mb-1"},Ye={class:"text-sm font-bold"},Ze={class:"flex items-center justify-between w-full"},Qe={class:"text-xs text-[var(--el-text-color-placeholder)]"},Je={key:0,class:"flex items-center justify-between mb-3"},xe={class:"text-sm font-bold"};function et(e,t,r,i,f,p){const d=a("el-switch"),h=a("el-option"),_=a("el-select");return n(),u("div",null,[s("div",qe,[s("span",He,l(e.$t("suno.name.type")),1),o(d,{modelValue:e.custom,"onUpdate:modelValue":t[0]||(t[0]=$=>e.custom=$),size:"small"},null,8,["modelValue"])]),s("div",Xe,[s("div",Ke,[s("span",Ye,l(e.$t("suno.name.model")),1)]),o(_,{modelValue:e.model,"onUpdate:modelValue":t[1]||(t[1]=$=>e.model=$),class:"w-full",size:"default",placeholder:e.$t("suno.placeholder.select")},{default:c(()=>[(n(!0),u(G,null,H(e.options,$=>(n(),v(h,{key:$.value,label:$.label,value:$.value},{default:c(()=>[s("div",Ze,[s("span",null,l($.label),1),s("span",Qe,l($.info),1)])]),_:2},1032,["label","value"]))),128))]),_:1},8,["modelValue","placeholder"])]),e.custom?(n(),u("div",Je,[s("span",xe,l(e.$t("suno.name.instrumental")),1),o(d,{modelValue:e.instrumental,"onUpdate:modelValue":t[2]||(t[2]=$=>e.instrumental=$),size:"small"},null,8,["modelValue"])])):m("",!0)])}const tt=S(Be,[["render",et]]),st=w({name:"UploadAudio",components:{ElUpload:fe,ElButton:R,InfoIcon:L,FontAwesomeIcon:z},emits:["change"],data(){return{fileList:[],uploadUrl:Ue()+"/api/v1/files/"}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},credential(){return this.$store.state.suno.credential},config(){return this.$store.state.suno.config},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state.suno?.config?.audio_id},set(){}}},watch:{urls:{handler(e){this.$emit("change",e)}}},mounted(){this.value||(this.value=void 0),this.onSetAudio()},methods:{onExceed(){k.warning(this.$t("suno.message.uploadReferencesExceed"))},onError(){k.error(this.$t("suno.message.uploadReferencesError"))},async onSuccess(){const e=this.urls?.[0];await this.onGenerateAudioId(e)},async onGenerateAudioId(e){const t={audio_url:e},r=this.credential?.token;if(!r){console.error("no token specified");return}k.info(this.$t("suno.message.startingUploadAudio")),E.upload(t,{token:r}).then(i=>{console.debug("get upload music success",i.data);const f=i.data?.data.audio_id;this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,audio_id:f,action:"upload_extend"}),k.success(this.$t("suno.message.startUploadAudioSuccess"))}).catch(i=>{k.error(i?.response?.data?.error?.message||this.$t("suno.message.startUploadAudioFailed"))})},onSetAudio(){}}}),ot={class:"relative"},nt={class:"flex justify-between"},it={class:"flex justify-start items-center"},at={class:"text-sm font-bold"};function lt(e,t,r,i,f,p){const d=a("info-icon"),h=a("font-awesome-icon"),_=a("el-button"),$=a("el-upload");return n(),u("div",ot,[s("div",nt,[s("div",it,[s("span",at,l(e.$t("suno.name.referenceAudios")),1),o(d,{content:e.$t("suno.description.uploadAudios")},null,8,["content"])])]),o($,{"file-list":e.fileList,"onUpdate:fileList":t[0]||(t[0]=b=>e.fileList=b),name:"file",limit:1,class:"upload-wrapper",action:e.uploadUrl,accept:".mp3","show-file-list":!0,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onSuccess,headers:e.headers},{default:c(()=>[o(_,{round:"",type:"primary",size:"small",class:"btn btn-upload"},{default:c(()=>[o(h,{icon:"fa-solid fa-upload",class:"icon mr-1"}),C(" "+l(e.$t("suno.button.uploadAudios")),1)]),_:1})]),_:1},8,["file-list","action","on-exceed","on-error","on-success","headers"])])}const rt=S(st,[["render",lt],["__scopeId","data-v-6236152c"]]),ct="",ut=w({name:"PromptInput",components:{ElInput:M,InfoIcon:L},computed:{prompt:{get(){return this.$store.state.suno?.config?.prompt},set(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,prompt:e})}}},mounted(){this.prompt||(this.prompt=ct)}}),dt={class:"field"},pt={class:"flex items-center mb-1"},mt={class:"text-sm font-bold"};function ft(e,t,r,i,f,p){const d=a("info-icon"),h=a("el-input");return n(),u("div",dt,[s("div",pt,[s("span",mt,l(e.$t("suno.name.songDescription")),1),o(d,{content:e.$t("suno.description.prompt")},null,8,["content"])]),o(h,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||(t[0]=_=>e.prompt=_),rows:4,type:"textarea",placeholder:e.$t("suno.placeholder.prompt")},null,8,["modelValue","placeholder"])])}const ht=S(ut,[["render",ft]]),_t="",$t=w({name:"LyricInput",components:{ElInput:M,ElButton:R,FontAwesomeIcon:z,InfoIcon:L},data(){return{generatingLyrics:!1}},computed:{lyric:{get(){return this.$store.state.suno?.config?.lyric},set(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,lyric:e})}},config(){return this.$store.state.suno?.config},credential(){return this.$store.state.suno?.credential}},mounted(){this.lyric||(this.lyric=_t)},methods:{async onGenerateLyrics(){const e=this.credential?.token;if(!e)return;const t=this.config?.style||this.config?.title||"a beautiful song";this.generatingLyrics=!0,k.info(this.$t("suno.message.generatingLyrics"));try{const i=(await E.lyric({prompt:t},{token:e})).data?.data;i?.text&&(this.lyric=i.text,i?.title&&!this.config?.title&&this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,lyric:i.text,title:i.title}),k.success(this.$t("suno.message.generateLyricsSuccess")))}catch{k.error(this.$t("suno.message.generateLyricsFailed"))}finally{this.generatingLyrics=!1}}}}),gt={class:"field"},vt={class:"flex items-center justify-between mb-1"},yt={class:"flex items-center"},kt={class:"text-sm font-bold"};function bt(e,t,r,i,f,p){const d=a("info-icon"),h=a("font-awesome-icon"),_=a("el-button"),$=a("el-input");return n(),u("div",gt,[s("div",vt,[s("div",yt,[s("span",kt,l(e.$t("suno.name.lyrics")),1),o(d,{content:e.$t("suno.description.lyrics")},null,8,["content"])]),e.config?.action!=="extend"?(n(),v(_,{key:0,size:"small",loading:e.generatingLyrics,round:"",onClick:e.onGenerateLyrics},{default:c(()=>[e.generatingLyrics?m("",!0):(n(),v(h,{key:0,icon:"fa-solid fa-wand-magic-sparkles",class:"mr-1"})),C(" "+l(e.$t("suno.button.generate_lyrics")),1)]),_:1},8,["loading","onClick"])):m("",!0)]),e.config?.action!=="extend"?(n(),v($,{key:0,modelValue:e.lyric,"onUpdate:modelValue":t[0]||(t[0]=b=>e.lyric=b),rows:5,type:"textarea",class:"lyrics",placeholder:e.$t("suno.placeholder.lyrics")},null,8,["modelValue","placeholder"])):(n(),v($,{key:1,modelValue:e.lyric,"onUpdate:modelValue":t[1]||(t[1]=b=>e.lyric=b),rows:5,type:"textarea",class:"lyrics",placeholder:e.$t("suno.placeholder.extend.lyrics")},null,8,["modelValue","placeholder"]))])}const wt=S($t,[["render",bt],["__scopeId","data-v-210d2670"]]),Ct=w({name:"StyleInput",components:{ElInput:M,ElButton:R,FontAwesomeIcon:z,InfoIcon:L},data(){return{optimizing:!1}},computed:{style:{get(){return this.$store.state.suno?.config?.style},set(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,style:e})}},credential(){return this.$store.state.suno?.credential}},methods:{async onOptimizeStyle(){const e=this.credential?.token;if(!(!e||!this.style)){this.optimizing=!0,k.info(this.$t("suno.message.optimizingStyle"));try{const t=await E.style({prompt:this.style},{token:e}),r=t.data?.text||t.data?.data?.text;r&&(this.style=r,k.success(this.$t("suno.message.optimizeStyleSuccess")))}catch{k.error(this.$t("suno.message.optimizeStyleFailed"))}finally{this.optimizing=!1}}}}}),Vt={class:"field"},St={class:"flex items-center justify-between mb-1"},At={class:"flex items-center"},Pt={class:"text-sm font-bold"};function Ut(e,t,r,i,f,p){const d=a("info-icon"),h=a("font-awesome-icon"),_=a("el-button"),$=a("el-input");return n(),u("div",Vt,[s("div",St,[s("div",At,[s("span",Pt,l(e.$t("suno.name.style")),1),o(d,{content:e.$t("suno.description.style")},null,8,["content"])]),o(_,{size:"small",loading:e.optimizing,round:"",onClick:e.onOptimizeStyle},{default:c(()=>[e.optimizing?m("",!0):(n(),v(h,{key:0,icon:"fa-solid fa-wand-magic-sparkles",class:"mr-1"})),C(" "+l(e.$t("suno.button.optimize_style")),1)]),_:1},8,["loading","onClick"])]),o($,{modelValue:e.style,"onUpdate:modelValue":t[0]||(t[0]=b=>e.style=b),rows:2,type:"textarea",placeholder:e.$t("suno.placeholder.style")},null,8,["modelValue","placeholder"])])}const Tt=S(Ct,[["render",Ut]]),Et=w({name:"TitleInput",components:{ElInput:M,InfoIcon:L},computed:{title:{get(){return this.$store.state.suno?.config?.title},set(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,title:e})}}}}),It={class:"field"},Lt={class:"flex items-center mb-1"},zt={class:"text-sm font-bold"};function Ft(e,t,r,i,f,p){const d=a("info-icon"),h=a("el-input");return n(),u("div",It,[s("div",Lt,[s("span",zt,l(e.$t("suno.name.title")),1),o(d,{content:e.$t("suno.description.title")},null,8,["content"])]),o(h,{modelValue:e.title,"onUpdate:modelValue":t[0]||(t[0]=_=>e.title=_),placeholder:e.$t("suno.placeholder.title")},null,8,["modelValue","placeholder"])])}const Gt=S(Et,[["render",Ft]]);function j(e){const t=Math.floor(e)%60;e=Math.floor(e/60);const r=e%60,i=r<10?`0${r}`:r,f=t<10?`0${t}`:t;return i+":"+f}const jt=w({name:"ExtendFromInput",components:{ElImage:W,ElIcon:X,ElInputNumber:ee,VideoPlay:Q,VideoPause:Z},data(){return{}},computed:{audio(){return this.$store.state.suno?.config?.audio},value:{get(){return this.$store.state.suno?.config?.continue_at},set(e){console.debug("set continue_at",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,continue_at:e?parseInt(e):void 0})}}},mounted(){this.value||(this.value=void 0)},methods:{handleChange(e){if(e===void 0){this.value=void 0;return}e<0?this.value=0:e>this.audio?.duration?this.value=this.audio?.duration:this.value=e},useFormatDuring:j,onPlay(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"playing"}),console.log("on play")},onPause(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"paused"}),console.log("on pause")},onClick(e){this.$store.state?.suno?.audio?.id!==e.id&&this.onPlay({...e,progress:0})}}}),Dt={class:"field"},Rt={class:"box"},Mt={class:"title font-bold"},Wt={class:"input-wrapper"},Nt={class:"task"},Ot={class:"left"},Bt={key:2,class:"duration"},qt={class:"info"},Ht={class:"title"},Xt={class:"style"};function Kt(e,t,r,i,f,p){const d=a("el-input-number"),h=a("el-image"),_=a("video-pause"),$=a("el-icon"),b=a("video-play"),P=K("loading");return n(),u("div",Dt,[s("div",Rt,[s("h2",Mt,l(e.$t("suno.name.extend")),1),s("div",Wt,[o(d,{modelValue:e.value,"onUpdate:modelValue":t[0]||(t[0]=y=>e.value=y),class:"value",min:0,max:e.audio?.duration,controls:!1,placeholder:e.$t("suno.placeholder.extend.continue_at"),onChange:e.handleChange},null,8,["modelValue","max","placeholder","onChange"])])]),s("div",Nt,[e.audio?(n(),u("div",{key:0,class:"audio",onClick:t[3]||(t[3]=y=>e.onClick(e.audio))},[N((n(),u("div",Ot,[o(h,{src:e.audio?.image_url,class:"cover",fit:"cover"},null,8,["src"]),e.audio?.audio_url&&e.$store.state?.suno?.audio?.id===e.audio.id&&e.$store.state?.suno?.audio?.state==="playing"?(n(),u("div",{key:0,class:"overlay",onClick:t[1]||(t[1]=y=>e.onPause(e.audio))},[o($,null,{default:c(()=>[o(_)]),_:1})])):m("",!0),e.audio?.audio_url&&(e.$store.state?.suno?.audio?.id!==e.audio.id||e.$store.state?.suno?.audio?.id===e.audio.id&&e.$store.state?.suno?.audio?.state==="paused")?(n(),u("div",{key:1,class:"overlay",onClick:t[2]||(t[2]=y=>e.onPlay(e.audio))},[o($,null,{default:c(()=>[o(b)]),_:1})])):m("",!0),e.audio?.duration?(n(),u("div",Bt,l(e.useFormatDuring(e.audio?.duration)),1)):m("",!0)])),[[P,!e.audio?.audio_url]]),s("div",qt,[s("h2",Ht,l(e.audio?.title),1),s("p",Xt,l(e.audio?.style),1)])])):m("",!0)])])}const Yt=S(jt,[["render",Kt],["__scopeId","data-v-bcce4821"]]),Zt=w({name:"CoverFromInput",components:{ElImage:W,ElIcon:X,VideoPlay:Q,VideoPause:Z},data(){return{}},computed:{audio(){return this.$store.state.suno?.config?.audio},value:{get(){return this.$store.state.suno?.config?.continue_at},set(e){console.debug("set continue_at",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,continue_at:e?parseInt(e):void 0})}}},mounted(){this.value||(this.value=void 0)},methods:{handleChange(e){e<0?this.value=0:e>this.audio?.duration?this.value=this.audio?.duration:this.value=e},useFormatDuring:j,onPlay(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"playing"}),console.log("on play")},onPause(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"paused"}),console.log("on pause")},onClick(e){this.$store.state?.suno?.audio?.id!==e.id&&this.onPlay({...e,progress:0})}}}),Qt={class:"field"},Jt={class:"box"},xt={class:"title font-bold"},es={class:"task"},ts={class:"left"},ss={key:2,class:"duration"},os={class:"info"},ns={class:"title"},is={class:"style"};function as(e,t,r,i,f,p){const d=a("el-image"),h=a("video-pause"),_=a("el-icon"),$=a("video-play"),b=K("loading");return n(),u("div",Qt,[s("div",Jt,[s("h2",xt,l(e.$t("suno.name.cover")),1)]),s("div",es,[e.audio?(n(),u("div",{key:0,class:"audio",onClick:t[2]||(t[2]=P=>e.onClick(e.audio))},[N((n(),u("div",ts,[o(d,{src:e.audio?.image_url,class:"cover",fit:"cover"},null,8,["src"]),e.audio?.audio_url&&e.$store.state?.suno?.audio?.id===e.audio.id&&e.$store.state?.suno?.audio?.state==="playing"?(n(),u("div",{key:0,class:"overlay",onClick:t[0]||(t[0]=P=>e.onPause(e.audio))},[o(_,null,{default:c(()=>[o(h)]),_:1})])):m("",!0),e.audio?.audio_url&&(e.$store.state?.suno?.audio?.id!==e.audio.id||e.$store.state?.suno?.audio?.id===e.audio.id&&e.$store.state?.suno?.audio?.state==="paused")?(n(),u("div",{key:1,class:"overlay",onClick:t[1]||(t[1]=P=>e.onPlay(e.audio))},[o(_,null,{default:c(()=>[o($)]),_:1})])):m("",!0),e.audio?.duration?(n(),u("div",ss,l(e.useFormatDuring(e.audio?.duration)),1)):m("",!0)])),[[b,!e.audio?.audio_url]]),s("div",os,[s("h2",ns,l(e.audio?.title),1),s("p",is,l(e.audio?.style),1)])])):m("",!0)])])}const ls=S(Zt,[["render",as],["__scopeId","data-v-06640216"]]),rs=w({name:"VocalGenderSelector",components:{ElRadioGroup:se,ElRadioButton:te,InfoIcon:L},computed:{vocalGender:{get(){return this.$store.state.suno?.config?.vocal_gender||""},set(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,vocal_gender:e||void 0})}}}}),cs={class:"mb-2"},us={class:"flex items-center mb-1"},ds={class:"text-sm font-bold"};function ps(e,t,r,i,f,p){const d=a("info-icon"),h=a("el-radio-button"),_=a("el-radio-group");return n(),u("div",cs,[s("div",us,[s("span",ds,l(e.$t("suno.name.vocalGender")),1),o(d,{content:e.$t("suno.description.vocalGender")},null,8,["content"])]),o(_,{modelValue:e.vocalGender,"onUpdate:modelValue":t[0]||(t[0]=$=>e.vocalGender=$),size:"small"},{default:c(()=>[o(h,{value:""},{default:c(()=>[C(l(e.$t("suno.gender.auto")),1)]),_:1}),o(h,{value:"f"},{default:c(()=>[C(l(e.$t("suno.gender.female")),1)]),_:1}),o(h,{value:"m"},{default:c(()=>[C(l(e.$t("suno.gender.male")),1)]),_:1})]),_:1},8,["modelValue"])])}const ms=S(rs,[["render",ps]]),fs=w({name:"AdvancedParams",components:{ElCollapse:_e,ElCollapseItem:he,ElInput:M,ElSlider:J,ElRadioGroup:se,ElRadioButton:te},data(){return{activeNames:[]}},computed:{config(){return this.$store.state.suno?.config},isV5OrAbove(){return(this.config?.model||"")==="chirp-v5"},styleNegative:{get(){return this.$store.state.suno?.config?.style_negative||""},set(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,style_negative:e||void 0})}},lyricPrompt:{get(){return this.$store.state.suno?.config?.lyric_prompt||""},set(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,lyric_prompt:e||void 0})}},weirdness:{get(){return this.$store.state.suno?.config?.weirdness??0},set(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,weirdness:e||void 0})}},styleInfluence:{get(){return this.$store.state.suno?.config?.style_influence??50},set(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,style_influence:e})}},variationCategory:{get(){return this.$store.state.suno?.config?.variation_category||""},set(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,variation_category:e||void 0})}},audioWeight:{get(){return this.$store.state.suno?.config?.audio_weight??50},set(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,audio_weight:e})}}}}),hs={key:0,class:"mb-3"},_s={class:"flex items-center mb-1"},$s={class:"text-xs font-bold"},gs={key:1,class:"mb-3"},vs={class:"flex items-center mb-1"},ys={class:"text-xs font-bold"},ks={key:2,class:"mb-3"},bs={class:"flex items-center justify-between mb-1"},ws={class:"text-xs font-bold"},Cs={class:"text-xs text-[var(--el-text-color-secondary)]"},Vs={key:3,class:"mb-3"},Ss={class:"flex items-center justify-between mb-1"},As={class:"text-xs font-bold"},Ps={class:"text-xs text-[var(--el-text-color-secondary)]"},Us={key:4,class:"mb-3"},Ts={class:"flex items-center mb-1"},Es={class:"text-xs font-bold"},Is={key:5,class:"mb-3"},Ls={class:"flex items-center justify-between mb-1"},zs={class:"text-xs font-bold"},Fs={class:"text-xs text-[var(--el-text-color-secondary)]"};function Gs(e,t,r,i,f,p){const d=a("el-input"),h=a("el-slider"),_=a("el-radio-button"),$=a("el-radio-group"),b=a("el-collapse-item"),P=a("el-collapse");return n(),v(P,{modelValue:e.activeNames,"onUpdate:modelValue":t[6]||(t[6]=y=>e.activeNames=y),class:"advanced-collapse"},{default:c(()=>[o(b,{title:e.$t("suno.name.advancedParams"),name:"advanced"},{default:c(()=>[e.config?.custom?(n(),u("div",hs,[s("div",_s,[s("span",$s,l(e.$t("suno.name.styleNegative")),1)]),o(d,{modelValue:e.styleNegative,"onUpdate:modelValue":t[0]||(t[0]=y=>e.styleNegative=y),size:"small",placeholder:e.$t("suno.placeholder.styleNegative")},null,8,["modelValue","placeholder"])])):m("",!0),e.config?.custom&&!e.config?.instrumental?(n(),u("div",gs,[s("div",vs,[s("span",ys,l(e.$t("suno.name.lyricPrompt")),1)]),o(d,{modelValue:e.lyricPrompt,"onUpdate:modelValue":t[1]||(t[1]=y=>e.lyricPrompt=y),size:"small",placeholder:e.$t("suno.placeholder.lyricPrompt")},null,8,["modelValue","placeholder"])])):m("",!0),e.config?.custom?(n(),u("div",ks,[s("div",bs,[s("span",ws,l(e.$t("suno.name.weirdness")),1),s("span",Cs,l(e.weirdness??0),1)]),o(h,{modelValue:e.weirdness,"onUpdate:modelValue":t[2]||(t[2]=y=>e.weirdness=y),min:0,max:100,step:1,size:"small"},null,8,["modelValue"])])):m("",!0),e.config?.custom?(n(),u("div",Vs,[s("div",Ss,[s("span",As,l(e.$t("suno.name.styleInfluence")),1),s("span",Ps,l(e.styleInfluence??50),1)]),o(h,{modelValue:e.styleInfluence,"onUpdate:modelValue":t[3]||(t[3]=y=>e.styleInfluence=y),min:0,max:100,step:1,size:"small"},null,8,["modelValue"])])):m("",!0),e.isV5OrAbove?(n(),u("div",Us,[s("div",Ts,[s("span",Es,l(e.$t("suno.name.variationCategory")),1)]),o($,{modelValue:e.variationCategory,"onUpdate:modelValue":t[4]||(t[4]=y=>e.variationCategory=y),size:"small"},{default:c(()=>[o(_,{value:""},{default:c(()=>[C(l(e.$t("suno.gender.auto")),1)]),_:1}),o(_,{value:"high"},{default:c(()=>[C(l(e.$t("suno.variation.high")),1)]),_:1}),o(_,{value:"low"},{default:c(()=>[C(l(e.$t("suno.variation.low")),1)]),_:1})]),_:1},8,["modelValue"])])):m("",!0),e.config?.action==="cover"?(n(),u("div",Is,[s("div",Ls,[s("span",zs,l(e.$t("suno.name.audioWeight")),1),s("span",Fs,l(e.audioWeight??50),1)]),o(h,{modelValue:e.audioWeight,"onUpdate:modelValue":t[5]||(t[5]=y=>e.audioWeight=y),min:0,max:100,step:1,size:"small"},null,8,["modelValue"])])):m("",!0)]),_:1},8,["title"])]),_:1},8,["modelValue"])}const js=S(fs,[["render",Gs],["__scopeId","data-v-be135363"]]),Ds=w({name:"ReplaceSectionInput",components:{ElInputNumber:ee,ElImage:W,InfoIcon:L},computed:{audio(){return this.$store.state.suno?.config?.audio},replaceSectionStart:{get(){return this.$store.state.suno?.config?.replace_section_start},set(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,replace_section_start:e})}},replaceSectionEnd:{get(){return this.$store.state.suno?.config?.replace_section_end},set(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,replace_section_end:e})}}},methods:{onClick(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"playing"})}}}),Rs={class:"field"},Ms={class:"flex items-center mb-2"},Ws={class:"text-sm font-bold m-0"},Ns={key:0,class:"task mb-2"},Os={class:"left relative w-[50px] h-[50px] mr-3 flex-shrink-0"},Bs={class:"info flex-1 min-w-0"},qs={class:"text-sm font-bold m-0 truncate"},Hs={class:"text-xs text-[var(--el-text-color-secondary)] m-0 truncate"},Xs={class:"flex gap-2"};function Ks(e,t,r,i,f,p){const d=a("info-icon"),h=a("el-image"),_=a("el-input-number"),$=K("loading");return n(),u("div",Rs,[s("div",Ms,[s("h2",Ws,l(e.$t("suno.name.replaceSection")),1),o(d,{content:e.$t("suno.description.replaceSection")},null,8,["content"])]),e.audio?(n(),u("div",Ns,[s("div",{class:"audio flex items-center",onClick:t[0]||(t[0]=b=>e.onClick(e.audio))},[N((n(),u("div",Os,[o(h,{src:e.audio?.image_url,class:"w-full h-full rounded",fit:"cover"},null,8,["src"])])),[[$,!e.audio?.audio_url]]),s("div",Bs,[s("h2",qs,l(e.audio?.title),1),s("p",Hs,l(e.audio?.style),1)])])])):m("",!0),s("div",Xs,[o(_,{modelValue:e.replaceSectionStart,"onUpdate:modelValue":t[1]||(t[1]=b=>e.replaceSectionStart=b),class:"flex-1",size:"small",min:0,max:e.audio?.duration,controls:!1,placeholder:e.$t("suno.placeholder.replaceSectionStart")},null,8,["modelValue","max","placeholder"]),o(_,{modelValue:e.replaceSectionEnd,"onUpdate:modelValue":t[2]||(t[2]=b=>e.replaceSectionEnd=b),class:"flex-1",size:"small",min:e.replaceSectionStart||0,max:e.audio?.duration,controls:!1,placeholder:e.$t("suno.placeholder.replaceSectionEnd")},null,8,["modelValue","min","max","placeholder"])])])}const Ys=S(Ds,[["render",Ks]]),Zs=w({name:"PresetPanel",components:{TypeSelector:tt,PromptInput:ht,LyricInput:wt,StyleInput:Tt,TitleInput:Gt,ExtendFromInput:Yt,CoverFromInput:ls,UploadAudio:rt,VocalGenderSelector:ms,AdvancedParams:js,ReplaceSectionInput:Ys,FontAwesomeIcon:z,ElButton:R,Consumption:Le},emits:["generate"],computed:{config(){return this.$store.state.suno?.config},consumption(){return Fe(this.config,this.service?.cost)},service(){return this.$store.state.suno?.service},supportsVocalGender(){const e=this.config?.model||"";return["chirp-v4-5-plus","chirp-v5"].includes(e)},generateButtonText(){const e=this.config?.action;return e==="extend"?this.$t("suno.button.extend"):e==="cover"?this.$t("suno.button.cover_music"):e==="remaster"?this.$t("suno.button.remaster"):e==="replace_section"?this.$t("suno.button.replace_section"):e==="mashup"?this.$t("suno.button.mashup"):e==="stems"?this.$t("suno.button.get_stems"):e==="concat"?this.$t("suno.button.concat_music"):this.$t("suno.button.generate")}},methods:{onGenerate(){this.$emit("generate")}}}),Qs={class:"flex flex-col h-full"},Js={class:"flex-1 overflow-y-auto p-[15px]"},xs={class:"flex flex-col items-center justify-center px-[15px] pb-[15px]"};function eo(e,t,r,i,f,p){const d=a("type-selector"),h=a("upload-audio"),_=a("prompt-input"),$=a("lyric-input"),b=a("style-input"),P=a("title-input"),y=a("vocal-gender-selector"),A=a("extend-from-input"),O=a("cover-from-input"),B=a("replace-section-input"),Y=a("advanced-params"),g=a("consumption"),V=a("font-awesome-icon"),oe=a("el-button");return n(),u("div",Qs,[s("div",Js,[o(d,{class:"mb-4"}),o(h,{class:"mb-4"}),e.config?.custom?m("",!0):(n(),v(_,{key:0,class:"mb-4"})),e.config?.custom&&!e.config.instrumental?(n(),v($,{key:1,class:"mb-4"})):m("",!0),e.config?.custom?(n(),v(b,{key:2,class:"mb-4"})):m("",!0),e.config?.custom?(n(),v(P,{key:3,class:"mb-4"})):m("",!0),e.config?.custom&&!e.config.instrumental&&e.supportsVocalGender?(n(),v(y,{key:4,class:"mb-4"})):m("",!0),e.config?.action==="extend"?(n(),v(A,{key:5,class:"mb-4"})):m("",!0),e.config?.action==="cover"?(n(),v(O,{key:6,class:"mb-4"})):m("",!0),e.config?.action==="replace_section"?(n(),v(B,{key:7,class:"mb-4"})):m("",!0),o(Y,{class:"mb-4"})]),s("div",xs,[o(g,{value:e.consumption,service:e.service},null,8,["value","service"]),o(oe,{type:"primary",class:"btn w-full",round:"",onClick:e.onGenerate},{default:c(()=>[o(V,{icon:"fa-solid fa-magic",class:"mr-2"}),C(" "+l(e.generateButtonText),1)]),_:1},8,["onClick"])])])}const to=S(Zs,[["render",eo],["__scopeId","data-v-8201f79d"]]),so="https://webhook.acedata.cloud/suno",oo=w({name:"TaskPreview",components:{ElImage:W,ElIcon:X,ElTooltip:ye,FontAwesomeIcon:z,VideoPlay:Q,VideoPause:Z,ElDropdown:ve,ElDropdownMenu:ge,ElDropdownItem:$e,Loading:ne},props:{modelValue:{type:Object,required:!0}},data(){return{isFetchingVideoUrl:!1,isFetchingWav:!1,isFetchingMidi:!1}},computed:{loading(){return this.$store.state.suno?.status?.getApplications===F.Request},credential(){return this.$store.state.suno.credential},config(){return this.$store.state.suno.config},task(){return this.$store.state.suno?.tasks},audios(){const e=this.modelValue?.response?.data??[],t=this.modelValue?.request?.action;return t?e.map(r=>({...r,action:t})):e},application(){return this.$store.state.suno?.application},active(){return this.$store.state.suno?.tasks?.active}},methods:{useFormatDuring:j,onPlay(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"playing"}),console.log("on play")},onPause(e){this.$store.dispatch("suno/setAudio",{...this.$store.state.suno.audio,...e,state:"paused"}),console.log("on pause")},onClick(e){this.$store.state?.suno?.audio?.id!==e.id&&this.onPlay({...e,progress:0})},onExtend(e,t){e.stopPropagation(),console.log("on extend"),console.debug("set config",t),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,model:t.model,custom:!0,instrumental:!1,style:t.style,action:"extend",audio:t,audio_id:t.id,continue_at:t.duration})},onDownload(e,t){e&&e.stopPropagation(),console.log("on download",t);const i=new URL(t).pathname,f=i.substring(i.lastIndexOf("/")+1);console.log("on preview",f),fetch(t).then(p=>p.blob()).then(p=>{ie.saveAs(p,f)})},async handleVideoDownload(e){if(e.video_url){this.onDownload(null,e.video_url);return}if(!this.isFetchingVideoUrl)try{this.isFetchingVideoUrl=!0;const t=await this.fetchVideoUrlFromApi(e?.id);console.log(`get videoUrl: ${t}`),e.video_url=t,this.onDownload(null,t)}catch(t){console.error("get videoUrl failed:",t),k.error(this.$t("suno.message.getVideoUrlFailed"))}finally{this.isFetchingVideoUrl=!1}},async fetchVideoUrlFromApi(e){return new Promise((t,r)=>{const i={audio_id:e},f=this.credential?.token;if(!f){console.error("no token specified"),r(new Error("No token specified"));return}E.mp4(i,{token:f}).then(p=>{const d=p.data?.data?.video_url;d?t(d):r(new Error("Video URL not found in response"))}).catch(p=>{r(p)})})},onPreview(e,t){e.stopPropagation(),console.log("on preview",t),window.open(t,"_blank")},async onGetStems(e){await this.onGenerateAudioUrl("stems",e)},onCover(e){console.log("on cover"),console.debug("set config",e),this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,model:e.model,custom:!0,instrumental:!1,style:e.style,action:"cover",audio:e,audio_id:e.id})},async onConcatMusic(e){await this.onGenerateAudioUrl("concat",e)},async onRemaster(e){await this.onGenerateAudioUrl("remaster",e)},async onGetAllStems(e){await this.onGenerateAudioUrl("all_stems",e)},onReplaceSection(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,model:e.model,custom:!0,instrumental:!1,style:e.style,action:"replace_section",audio:e,audio_id:e.id,replace_section_start:0,replace_section_end:Math.min(30,e.duration||30)})},onMashup(e){this.$store.commit("suno/setConfig",{...this.$store.state.suno?.config,model:e.model,custom:!0,style:e.style,action:"mashup",audio:e,audio_id:e.id,mashup_audio_ids:[e.id]})},async handleWavDownload(e){if(!e?.id||this.isFetchingWav)return;const t=this.credential?.token;if(t)try{this.isFetchingWav=!0,k.info(this.$t("suno.message.fetchingWav"));const i=(await E.wav({audio_id:e.id},{token:t})).data?.data?.audio_url;i?this.onDownload(null,i):k.error(this.$t("suno.message.fetchWavFailed"))}catch{k.error(this.$t("suno.message.fetchWavFailed"))}finally{this.isFetchingWav=!1}},async handleMidiDownload(e){if(!e?.id||this.isFetchingMidi)return;const t=this.credential?.token;if(t)try{this.isFetchingMidi=!0,k.info(this.$t("suno.message.fetchingMidi"));const i=(await E.midi({audio_id:e.id},{token:t})).data?.data?.midi_url;i?this.onDownload(null,i):k.error(this.$t("suno.message.fetchMidiFailed"))}catch{k.error(this.$t("suno.message.fetchMidiFailed"))}finally{this.isFetchingMidi=!1}},async onGenerateAudioUrl(e,t){const r={action:e,audio_id:t,callback_url:so},i=this.credential?.token;if(!i){console.error("no token specified");return}k.info(this.$t("suno.message.startingTask")),E.audio(r,{token:i}).then(()=>{k.success(this.$t("suno.message.startTaskSuccess"))}).catch(f=>{k.error(f?.response?.data?.error?.message||this.$t("suno.message.startTaskFailed"))}).finally(async()=>{await this.onGetTasks(),await this.onScrollDown()})},async onScrollDown(){setTimeout(()=>{const e=document.querySelector(".tasks");e&&(e.scrollTop=e.scrollHeight)},1e3)},async onGetTasks(){if(this.loading){console.debug("loading");return}await this.$store.dispatch("suno/getTasks",{limit:30,offset:0})}}}),no={class:"task"},io=["onClick"],ao={class:"left"},lo=["onClick"],ro=["onClick"],co={key:2,class:"duration"},uo={class:"info"},po={class:"title"},mo={class:"style"},fo={class:"right"},ho={class:"el-dropdown-link"},_o={class:"flex items-center min-w-[120px]"},$o={class:"flex items-center min-w-[120px]"},go={class:"flex items-center min-w-[120px]"},vo={class:"el-dropdown-link"};function yo(e,t,r,i,f,p){const d=a("el-image"),h=a("video-pause"),_=a("el-icon"),$=a("video-play"),b=a("font-awesome-icon"),P=a("el-tooltip"),y=a("Loading"),A=a("el-dropdown-item"),O=a("el-dropdown-menu"),B=a("el-dropdown"),Y=K("loading");return n(),u("div",no,[(n(!0),u(G,null,H(e.audios,g=>(n(),u("div",{key:g.id,class:"audio",onClick:U(V=>e.onClick(g),["stop"])},[N((n(),u("div",ao,[o(d,{src:g?.image_url,class:"cover",fit:"cover",lazy:""},null,8,["src"]),g?.audio_url&&e.$store.state?.suno?.audio?.id===g.id&&e.$store.state?.suno?.audio?.state==="playing"?(n(),u("div",{key:0,class:"overlay",onClick:U(V=>e.onPause(g),["stop"])},[o(_,null,{default:c(()=>[o(h)]),_:1})],8,lo)):m("",!0),g?.audio_url&&(e.$store.state?.suno?.audio?.id!==g.id||e.$store.state?.suno?.audio?.id===g.id&&e.$store.state?.suno?.audio?.state==="paused")?(n(),u("div",{key:1,class:"overlay",onClick:U(V=>e.onPlay(g),["stop"])},[o(_,null,{default:c(()=>[o($)]),_:1})],8,ro)):m("",!0),g?.duration?(n(),u("div",co,l(e.useFormatDuring(g?.duration)),1)):m("",!0)])),[[Y,!g?.audio_url]]),s("div",uo,[s("h2",po,l(g?.title),1),s("p",mo,l(g?.style),1)]),s("div",fo,[o(B,null,{dropdown:c(()=>[o(O,null,{default:c(()=>[o(A,{disabled:e.isFetchingVideoUrl,onClick:V=>e.handleVideoDownload(g)},{default:c(()=>[s("div",_o,[e.isFetchingVideoUrl?(n(),v(_,{key:0,class:"is-loading mr-2"},{default:c(()=>[o(y)]),_:1})):m("",!0),s("span",null,l(e.$t("suno.button.download_video")),1)])]),_:2},1032,["disabled","onClick"]),g?.audio_url?(n(),v(A,{key:0,onClick:U(V=>e.onDownload(V,g?.audio_url),["stop"])},{default:c(()=>[C(l(e.$t("suno.button.download_audio")),1)]),_:2},1032,["onClick"])):m("",!0),o(A,{disabled:e.isFetchingWav,onClick:V=>e.handleWavDownload(g)},{default:c(()=>[s("div",$o,[e.isFetchingWav?(n(),v(_,{key:0,class:"is-loading mr-2"},{default:c(()=>[o(y)]),_:1})):m("",!0),s("span",null,l(e.$t("suno.button.download_wav")),1)])]),_:2},1032,["disabled","onClick"]),o(A,{disabled:e.isFetchingMidi,onClick:V=>e.handleMidiDownload(g)},{default:c(()=>[s("div",go,[e.isFetchingMidi?(n(),v(_,{key:0,class:"is-loading mr-2"},{default:c(()=>[o(y)]),_:1})):m("",!0),s("span",null,l(e.$t("suno.button.download_midi")),1)])]),_:2},1032,["disabled","onClick"])]),_:2},1024)]),default:c(()=>[s("span",ho,[o(P,{effect:"dark",content:e.$t("suno.button.download"),placement:"top"},{default:c(()=>[g?.audio_url||g?.video_url?(n(),v(b,{key:0,icon:"fa-solid fa-download",class:"icon icon-download"})):m("",!0)]),_:2},1032,["content"])])]),_:2},1024),o(B,null,{dropdown:c(()=>[o(O,null,{default:c(()=>[g?.audio_url?(n(),v(A,{key:0,onClick:U(V=>e.onExtend(V,g),["stop"])},{default:c(()=>[C(l(e.$t("suno.button.extend")),1)]),_:2},1032,["onClick"])):m("",!0),g.id?(n(),v(A,{key:1,onClick:U(V=>e.onGetStems(g.id),["stop"])},{default:c(()=>[C(l(e.$t("suno.button.get_stems")),1)]),_:2},1032,["onClick"])):m("",!0),g.id?(n(),v(A,{key:2,onClick:U(V=>e.onGetAllStems(g.id),["stop"])},{default:c(()=>[C(l(e.$t("suno.button.all_stems")),1)]),_:2},1032,["onClick"])):m("",!0),o(A,{onClick:U(V=>e.onCover(g),["stop"])},{default:c(()=>[C(l(e.$t("suno.button.cover_music")),1)]),_:2},1032,["onClick"]),g?.id?(n(),v(A,{key:3,onClick:U(V=>e.onRemaster(g.id),["stop"])},{default:c(()=>[C(l(e.$t("suno.button.remaster")),1)]),_:2},1032,["onClick"])):m("",!0),g?.id?(n(),v(A,{key:4,onClick:U(V=>e.onReplaceSection(g),["stop"])},{default:c(()=>[C(l(e.$t("suno.button.replace_section")),1)]),_:2},1032,["onClick"])):m("",!0),g?.id?(n(),v(A,{key:5,onClick:U(V=>e.onMashup(g),["stop"])},{default:c(()=>[C(l(e.$t("suno.button.mashup")),1)]),_:2},1032,["onClick"])):m("",!0),g?.id&&g?.action==="extend"?(n(),v(A,{key:6,onClick:U(V=>e.onConcatMusic(g?.id),["stop"])},{default:c(()=>[C(l(e.$t("suno.button.concat_music")),1)]),_:2},1032,["onClick"])):m("",!0)]),_:2},1024)]),default:c(()=>[s("span",vo,[o(P,{effect:"dark",content:e.$t("suno.button.more"),placement:"top"},{default:c(()=>[g?.audio_url||g?.video_url?(n(),v(b,{key:0,icon:"fa-solid fa-ellipsis",class:"icon icon-ellipsis"})):m("",!0)]),_:2},1032,["content"])])]),_:2},1024)])],8,io))),128))])}const ko=S(oo,[["render",yo]]),bo={class:"player-slider"},wo=w({__name:"PlayerSlider",setup(e){const t=D(),r=I({get:()=>t.state.suno?.audio?.progress,set:d=>t.commit("suno/setAudio",{...t.state.suno.audio,progress:d})}),i=I({get:()=>t.state.suno?.audio?.duration,set:d=>t.commit("suno/setAudio",{...t.state.suno.audio,duration:d})}),f=()=>{},p=d=>t.dispatch("suno/setAudio",{...t.state.suno.audio,progress:d});return(d,h)=>(n(),u("div",bo,[o(T(J),{modelValue:r.value,"onUpdate:modelValue":h[0]||(h[0]=_=>r.value=_),"show-tooltip":!1,min:0,max:i.value,onChange:p,onInput:f},null,8,["modelValue","max"])]))}}),Co="/assets/disk-XFRmVAfp.png",Vo={class:"flex player-song"},So=["src"],Ao={class:"ml-2 text-xs flex flex-col justify-between"},Po={class:"w-52 2xl:w-96 cursor-pointer truncate"},Uo={class:"flex"},To={class:"ml-2 text-dc"},Eo=w({__name:"PlayerSong",setup(e){const t=D(),r=I({get:()=>t.state.suno.audio,set:i=>t.commit("suno/setAudio",i)});return Ve(r,(i,f)=>{if(i?.audio_url!==f?.audio_url){console.log("audio changed",i),i.object&&(console.log("111",i.object),i.object.pause(),delete i.object);const p=new Audio(i.audio_url);i.state==="playing"?p.play():p.pause(),p.addEventListener("loadedmetadata",()=>{p.currentTime=0,p.addEventListener("timeupdate",()=>{t.commit("suno/setAudio",{...t.state.suno.audio,progress:p.currentTime})})}),t.commit("suno/setAudio",{...t.state.suno.audio,object:p})}else if(i?.progress!==f?.progress&&Math.abs(i.progress-i.object.currentTime)>2){console.log("progress changed",i.progress);const p=t.state.suno.audio;p.object&&(p.object.currentTime=p.progress)}else i?.state!==f?.state&&(console.log("state changed",i.state),i.object&&(i.state==="playing"?i.object.play():i.object.pause()));i?.volume!==f?.volume&&(console.log("volume changed",i.volume),i.object&&(i.object.volume=i.volume/100))}),(i,f)=>(n(),u("div",Vo,[s("img",{alt:"",class:"w-11 h-11 rounded",src:r.value?.image_url||T(Co)},null,8,So),s("div",Ao,[s("div",Po,[s("div",Uo,[s("span",null,l(r.value?.title||"Music"),1),s("span",To,"- "+l(r.value?.style||"SmallRuralDog"),1)])])])]))}}),Io={class:"flex justify-end items-center gap-x-2.5"},Lo={class:"text-xs"},zo=w({__name:"PlayerAction",setup(e){const t=D(),r=I({get:()=>t.state.suno?.audio?.progress,set:f=>t.commit("suno/setAudio",{...t.state.suno.audio,progress:f})}),i=I({get:()=>t.state.suno?.audio?.duration,set:f=>t.commit("suno/setAudio",{...t.state.suno.audio,duration:f})});return(f,p)=>(n(),u("div",Io,[s("span",Lo,l(T(j)(r.value))+" / "+l(T(j)(i.value)),1)]))}}),x=w({__name:"IconPark",props:{icon:{},theme:{},size:{},spin:{type:Boolean},fill:{},strokeLinecap:{},strokeLinejoin:{},strokeWidth:{}},setup(e){return(t,r)=>(n(),v(Se(t.icon),{theme:t.theme,size:t.size,spin:t.spin,fill:t.fill,"stroke-linecap":t.strokeLinecap,"stroke-linejoin":t.strokeLinejoin,"stroke-width":t.strokeWidth},null,8,["theme","size","spin","fill","stroke-linecap","stroke-linejoin","stroke-width"]))}}),Fo={class:"player-volume flex flex-col items-center pt-2"},Go={class:"text-sm mt-3"},jo=w({__name:"PlayerVolumeSlider",setup(e){const t=D(),r=I({get:()=>t.state.suno.audio?.volume,set:p=>t.commit("suno/setAudio",{...t.state.suno.audio,volume:p})}),i=I({get:()=>t.state.suno.audio?.muted,set:p=>t.commit("suno/setAudio",{...t.state.suno.audio,muted:p})}),f=p=>t.dispatch("suno/setVolume",p);return(p,d)=>(n(),u("div",Fo,[o(T(J),{modelValue:r.value,"onUpdate:modelValue":d[0]||(d[0]=h=>r.value=h),vertical:"",height:"100px","show-tooltip":!1,max:100,min:0,size:"small",disabled:i.value,onInput:f},null,8,["modelValue","disabled"]),s("div",Go,l(r.value),1)]))}}),Do={class:"flex items-center justify-center gap-x-3"},Ro=w({__name:"PlayerController",setup(e){const t=D(),r=()=>t.dispatch("suno/setAudio",{...t.state.suno.audio,state:t.state.suno.audio.state==="playing"?"paused":"playing"}),i=I(()=>t.state.suno.audio);return(f,p)=>(n(),u("div",Do,[o(x,{icon:i.value?.state==="playing"?T(ae):T(le),size:"45",theme:"filled",class:"text-[var(--el-color-primary)] cursor-pointer",onClick:r},null,8,["icon"]),o(T(ke),{placement:"top",width:"50px",trigger:"click"},{reference:c(()=>[o(x,{icon:T(re),size:"20","stroke-width":2,class:"cursor-pointer"},null,8,["icon"])]),default:c(()=>[o(jo)]),_:1})]))}}),Mo={class:"flex flex-col items-stretch h-20"},Wo={class:"flex grow px-5 items-center"},No={class:"flex-1"},Oo={class:"flex-1"},Bo={class:"flex-1"},qo=w({__name:"Player",setup(e){return(t,r)=>(n(),u("div",Mo,[o(wo),s("div",Wo,[s("div",No,[o(Eo)]),s("div",Oo,[o(Ro)]),s("div",Bo,[o(zo)])])]))}}),Ho=w({name:"RecentPanel",components:{ElSkeletonItem:we,ElSkeleton:be,TaskPreview:ko,Player:qo,NoTasks:ze,ScrollList:Ie},props:{loading:{type:Boolean,default:!1}},emits:["reach-top"],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.suno?.tasks,items:this.$store.state.suno?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Xo={key:0,class:"tasks"},Ko={class:"left w-[70px] p-[10px] flex items-center"},Yo={class:"main w-[calc(100%-70px)] flex-1 p-[10px]"},Zo={key:2,class:"w-full flex-1 flex items-center justify-center"},Qo={class:"h-20"};function Jo(e,t,r,i,f,p){const d=a("el-skeleton-item"),h=a("el-skeleton"),_=a("task-preview"),$=a("scroll-list"),b=a("no-tasks"),P=a("player");return n(),u(G,null,[e.tasks?.items===void 0?(n(),u("div",Xo,[(n(),u(G,null,H(3,y=>s("div",{key:y,class:"flex"},[s("div",Ko,[o(h,{animated:""},{template:c(()=>[o(d,{variant:"image",class:"avatar w-[50px] h-[50px]"})]),_:1})]),s("div",Yo,[o(h,{animated:""},{template:c(()=>[o(d,{variant:"p",class:"w-[200px] h-[15px] mb-[5px] mt-[10px]"}),o(d,{variant:"text"})]),_:1})])])),64))])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(n(),v($,{key:1,ref:"scrollList",class:"flex-1 w-full overflow-y-auto tasks p-2",loading:e.loading,onReachTop:t[0]||(t[0]=y=>e.$emit("reach-top"))},{default:c(()=>[(n(!0),u(G,null,H(e.tasks?.items,(y,A)=>(n(),v(_,{key:A,"model-value":y,class:"preview"},null,8,["model-value"]))),128))]),_:1},8,["loading"])):m("",!0),e.tasks?.items?.length===0?(n(),u("div",Zo,[o(b)])):m("",!0),N(s("div",Qo,[o(P)],512),[[Ae,!!e.$store?.state?.suno?.audio?.object]])],64)}const xo=S(Ho,[["render",Jo]]),en=w({name:"TaskPreview",components:{IconPicture:ce,ElImage:W,ElAvatar:Ce,ElIcon:X},computed:{audio(){return this.$store.state.suno?.audio}}}),tn={key:0,class:"size-full overflow-hidden"},sn={class:"relative h-[300px]"},on={class:"flex items-center justify-center size-full bg-[var(--el-bg-color)]"},nn={class:"absolute bottom-0 left-0 right-0 m-0 p-4 text-white z-10 bg-gradient-to-t from-black/70 to-transparent"},an={class:"p-4"},ln={class:"flex items-center font-bold mb-2"},rn={class:"text-[var(--el-text-color-regular)] mb-2"},cn={class:"text-xs text-[var(--el-text-color-regular)]"},un={class:"mt-4 text-sm leading-[25px] whitespace-pre-wrap"},dn={key:1,class:"w-full h-full"};function pn(e,t,r,i,f,p){const d=a("icon-picture"),h=a("el-icon"),_=a("el-image"),$=a("el-avatar");return e.audio?.object?(n(),u("div",tn,[s("div",sn,[o(_,{src:e.audio.image_url,fit:"cover",class:"size-full"},{error:c(()=>[s("div",on,[o(h,{class:"text-3xl"},{default:c(()=>[o(d)]),_:1})])]),_:1},8,["src"]),s("h2",nn,l(e.audio?.title),1)]),s("div",an,[s("div",ln,[o($,{size:30,src:e.audio?.image_url,class:"mr-2"},null,8,["src"]),s("span",null,l(e.audio?.title),1)]),s("p",rn,l(e.audio?.style),1),s("p",cn,l(e.$dayjs.format(e.audio?.created_at)),1),s("div",un,[s("p",null,l(e.audio?.lyric),1)])])])):(n(),u("div",dn))}const mn=S(en,[["render",pn]]),fn="https://webhook.acedata.cloud/suno",hn=w({name:"SunoIndex",components:{Layout:Oe,ConfigPanel:to,RecentPanel:xo,PreviewPanel:mn},inject:["initialized"],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.suno?.status?.getApplications===F.Request},tasksLoading(){return this.$store.state.suno?.status?.getTasks===F.Request||this.fetchingTasks},service(){return this.$store.state.suno.service},credential(){return this.$store.state.suno.credential},config(){return this.$store.state.suno.config},initializing(){return this.$store.state.suno.status.getApplications===F.Request},needApply(){return this.$store.state.suno.status.getApplications===F.Success&&!this.application},application(){return this.$store.state.suno.application},tasks(){return this.$store.state.suno.tasks},applications(){return this.$store.state.suno.applications}},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 Ge({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("suno/getService"),console.debug("end onGetService")},async onGetApplication(){console.debug("start onGetApplications"),await this.$store.dispatch("suno/getApplications"),console.debug("end onGetApplications"),await this.onGetTasks()},onApply(){Te.create({application:this.application}).then(({data:e})=>{this.application=e,k.success(this.$t("application.message.applySuccessfully"))}).catch(e=>{e?.response?.data?.code===Ee&&k.error(this.$t("application.message.alreadyApplied"))})},async onScrollDown(){await this.$nextTick();const e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug("loading");return}console.debug("start onGetTasks",e);const{limit:t=5,createdAtMin:r,createdAtMax:i}=e||{};console.debug("limit",t,"createdAtMin",r,"createdAtMax",i),this.fetchingTasks=!0;try{await this.$store.dispatch("suno/getTasks",{limit:t,createdAtMin:r,createdAtMax:i})}finally{this.fetchingTasks=!1}},async onGenerateAudio(){const e={...this.config,callback_url:fn},t=this.credential?.token;if(!t){console.error("no token specified");return}k.info(this.$t("suno.message.startingTask")),E.audio(e,{token:t}).then(()=>{k.success(this.$t("suno.message.startTaskSuccess"))}).catch(r=>{k.error(r?.response?.data?.error?.message||this.$t("suno.message.startTaskFailed"))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function _n(e,t,r,i,f,p){const d=a("config-panel"),h=a("recent-panel"),_=a("preview-panel"),$=a("layout");return n(),v($,null,{config:c(()=>[o(d,{onGenerate:e.onGenerateAudio},null,8,["onGenerate"])]),result:c(()=>[o(h,{ref:"recentPanel",class:"panel recent",loading:e.loadingMore,onReachTop:e.onReachTop},null,8,["loading","onReachTop"])]),preview:c(()=>[o(_)]),_:1})}const Un=S(hn,[["render",_n],["__scopeId","data-v-d1296b1a"]]);export{Un as default};